基于嵌入式控制器的远程监控系统的开发
图4 嵌入式TCP/IP的总体数据流图
应用程序通过Socket应用编程接口使用TCP/IP协议栈提供的数据通讯功能[3]。发送数据时,如果选择的是面向连接的TCP协议,则应用程序将用户数据交给TCP协议模块处理,TCP模块将其首部和数据封装成TCP报文段;如果选择的是无连接的UDP协议,则将用户数据交给UDP协议模块处理,UDP模块将其首部和数据封装成UDP数据报。然后将封装好的TCP报文段或UDP数据报交给IP协议模块,IP模块在TCP报文段或UDP数据报上添加IP首部,并封装成IP数据包,然后根据路由表为IP数据包确定路由;找到了路由则将数据包发送到网络接口层,网络接口层判断发送的数据是从以太网接口还是从异步串口发出,如果是从以太网接口发出,则要利用ARP协议找到目的IP地址对应的物理地址,然后封装成以太网帧,由网卡驱动程序将以太网帧发送出去。
3.2 总体数据结构
TCP通过一个数据结构为每个TCP连接协调发送、接收和重发动作,该数据结构称作TCP传输控制块TCB。TCP为每个活跃的连接保留一个TCB,TCB中包含了有关TCP连接的所有信息,包括连接端点的地址和端口号,当前平均往返时间的估计值,发送或接收的数据,是否需要确认或重传,以及一组有关该连接的使用情况的统计数据,所以TCB较大,本设计对TCB进行了简化,只保留了用于控制面向连接的数据收发所必需的基本信息。
用于UDP协议的数据收发控制块UTCB包含了UDP端结点的所有信息:外部和本地IP地址、外部和本地端口号以及其它控制信息。UTCB的使用及分配与TCB完全一样,只是因为UDP不需要建立连接,所以只要有数据进行发送,则立即分配UTCB,一旦数据发送完成,则释放该UTCB。
4 嵌入式控制器软件设计
根据系统的控制要求和编程的需要,将系统软件的模块划分如下部分,共分六个模块,分别是主控模块、初始化模块、协议封装模块、协议拆包重组模块、网络接口模块和应用层应用模块。图5分别是各模块之间的逻辑关系。
图5软件系统模块之间的关系
(1)主控模块设计。主控模块中通常包含一些变量的定义和函数的调用。另外一些重要的I/O端口定义也放在主控函数中。在主控模块中定义了延时信号函数、端口设置函数、同步串口设置函数、中断服务函数等。系统工作时程序从主控模块的main()函数开始运行,首先是调用DSP及RTL8019AS的初始化程序,完成初始化之后,主程序以一个无条件循环进入工作状态。
(2)初始化模块设计。系统软件在运行的时候首先要调用初始化程序,对系统的各资源进行初始化,然后才能正常工作。初始化模块包括了四个初始化函数,分别是net_init()、dsp5402_init()、interrupt_init()、nic_atl_init()。
(3)协议封装模块设计。协议封装部分的作用是将数据进行分组,并以不同的协议打包封装使其成为符合TCP/IP协议规范的分组数据。在设计中,对于不同协议的封装,分别由不同的函数实现。在本系统中,监控终端系统需要对位于网络层的IP协议、位于传输层的TCP协议进行封装。封装顺序是先传输层协议TCP封装,后网络层协议IP封装。之后传入网络接口模块发送出去。
(4)协议拆包重组模块设计。本模块的工作过程是这样的,数据从以太网上被接收下来之后,首先会放在网卡芯片的片上内存当中,由DSP即网络接口模块将其读入后进行协议分解,根据协议的内容进行相应处理,如果是UDP封装的数据则将其放入系统的接收缓冲区当中。由DSP根据协议中序列号字段的值对数据包进行重新分组排队,最后将数据拆包、合并,形成连续的数据流后,传送到应用层进行进一步处理。
5 小结
本文详细阐明了嵌入式控制器的硬件和软件的设计和实现过程,包括微处理器系统硬件设计和实现、和智能仪表的接口模块实现、TCP/IP协议分析和实现等。嵌入式远程监控系统的成功实现将有很大的实用价值和很好的应用前景。它不仅仅应用在工业控制方面,而且它还将会在气象、环境监测、智能家居等领域得到广泛的应用。在以后的开发过程中,还可以提出比较标准化的应用层通信协议,以实现多家产品的兼容通信。还可以尝试将多个单系统连接在一块,来进行协调工作,真正实现监控系统的远程化和网络化。
本文作者创新点
本系统采用了16位定点高速DSP微处理器(其程序易于移植到同类32位微处理器芯片上),其运行速度可达100MIPS性能较早前流行的8位微处理器有明显的提高。方案设计的本身就也是一种创新,通过采用较优技术和高性能的硬件,组合出了高性能的监控系统。借用了计算机的模块化(包括软件和硬件)设计思想,使系统可以根据需要进行重新组合。
参考文献:
[1] 康军,戴冠中.基于Internet的工业以太网远程监控系统设计[J].控制工程,2004.7: 16-20
[2] 杨克俭,赵巍,庞慧等. 嵌入式系统产品接入Internet的技术研究[J]. 微计算机信息, 2006, 1-2: 43-44、65
[3] 李凤保.网络化测控系统技术[M]. 四川大学出版社,2004.5
[4] 董小国,王蓉. 基于Web的中水远程监控系统的设计与实现[J]. 微计算机信息, 2006, 12-1: 86-88
- 支持汽车电子的嵌入式软件编程接口库设计(11-29)
- 用IXP网络处理器设计的数字家庭媒体中心系统 (02-12)
- 基于DSP和CPLD的智能相机系统设计与研制(08-19)
- 基于DM642嵌入式无线视频监控硬件设计 (10-15)
- 基于AD7892SQ和CPLD的数据采集系统的设计(11-10)
- 嵌入式向产业上游迈进(01-06)