关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于以太网和CAN总线的楼宇自动化系统设计

基于以太网和CAN总线的楼宇自动化系统设计

作者:时间:2012-11-21来源:网络收藏

3.3 嵌入式TCP/IP协议栈的实现方法
嵌入式TCP/IP协议栈同样由套接字来实现,主要包括IP、ARP、ICMP、TCP、UDP协议等等。TCP/IP模型结构分为4层,由上到下分别是:应用层、运输层、网络层、物理和数据链路层。数据从应用层发出,经过套接字封装,传输至数据链路层,交由发送模块处理。同样的,接收模块收到的数据,经过解包,最终交由应用层接收。考虑到系统实时性,我们采用UDP传输协议进行数据和命令的传送。编写UDP通信的任务时分为服务器方式和客户机方式两种,服务器方式是先接收到数据再进行处理,而客户机则是先发生数据,然后等待回应处理。UDP进程的流程如图4所示。

本文引用地址:http://www.eepw.com.cn/article/159681.htm

e.JPG


数据报的接收是通过一个任务来进行的。该任务优先级较高,可以通过时问片来触发,也可以通过中断来触发。Rec_Packet()函数是底层的驱动程序函数,它在接收时调用了Rec_Ethemet_Packed()函数进行层处理,而Rec_Ethemet_Packed()函数又调用了IP_PROCESS()函数。IP层的处理由IP_PROESS()函数执行,它将UDP报通过消息队列交给UDP处理任务去执行。
数据报的发送与数据报的接收是一个相反的过程,是由上层协议函数调用下层协议函数来进行的。上层UDP处理函数或Socket接口函数都是通过调用Send_Ip_Frame()函数来发送IP报的,而Send_Ip_Frame()函数则调用Send_Ip_To_LLC()函数来处理IP地址对应MAC地址的事情,然后Send_Ip_To_LLC()再调用Send_Ethemet_Frame()函数,把对应的MAC地址写入发送区,最后调用驱动程序的发送函数Send_Packet()。

4 关键部位实验验证
设备节点样机如图5所示,它带有一个DS18B20数字温度传感器,实时将温度数据通过CAN传输至上位机,再通过局域网传至主控计算机;具有多路I/O接口(可外接继电器),能接收上位机命令改变I/O口的输出。上位机使用ARM核心板外扩通信接口作为实验板,主控机使用路由器接入,控制界面由VC++编写。实验时将IP地址设为一固定的私有IP,网关IP设为内置交换机的TP-LINK路由器IP,设置好路由器工作方式后即可运行。以温度采集与继电器控制为例,验证了主控机对设备节点的监控和管理功能,表明该方案技术切实可行。

b.JPG



5 结束语
提出了一种实时性较高、实用性较强的解决方案,并对关键技术进行了验证。系统技术成熟,易于维护和扩展,可以将建筑内各种机电设备的信息进行分析、归类、处理、判断,对各系统设备进行集中监控和管理,使各下属设备协调有序的工作,并及时处理故障。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭