APP下载

基于以太网通信的远程监护系统的设计

2011-08-11马富华

通信技术 2011年10期
关键词:以太网数据包嵌入式

陈 梅, 马富华, 李 鑫, 陈 薇

(合肥工业大学 电气与自动化工程学院,安徽 合肥230009)

0 引言

21世纪是一个信息时代,一方面,嵌入式系统已经广泛地在工业控制中应用,并且越来越成熟;另一方面,web技术的快速发展为internet的发展创造了良好的发展航向。现今的很多工业应用已逐渐在向嵌入式web服务器方面机遇。

将嵌入式web技术应用于工业自动化领域,则可以更方便的在嵌入式控制系统中采用internet技术,并将实时数据远程采集、远程监控都通过internet来实现。

这里介绍了基于dspic33f单片机和enc28j60以太网控制器的小型嵌入式web系统,将tcp/ip等网络协议嵌入到单片机系统,在应用层使用http协议使嵌入式系统实现web服务器的功能。

1 系统硬件设计

本系统所采用的控制器是dspic33f单片机,系统主要由以太网接口模块、电源模块、复位电路、RS232通讯电路、模拟和开关量电路等。dspic33f单片机的ADC模块可以根据需要配置成10位/12位ADC模式。当配置成10位工作模式时可同时采用4个模拟输入引脚。同时,dspic33f系列单片机包含有RS232串口模块,以及SPI接口,I2C接口等各种常用的接口,极大地满足了不同接口的控制器接入的需求。系统硬件电路如图1所示。

ENC28J60是美国微芯科技公司(Microchip Technology)推出的带SPI接口的独立以太网控制器。该控制器引脚较少,只有28个。符合IEEE 802.3标准,内置lO Mb/s以太网物理层器件(PHY)及媒介接人控制器(MAC),支持10-BASE-T,可按业界标准的以太网协议可靠地接收、发送以太网数据包。并且它含有8 KB的可编程双端口SRAM缓冲器,在减少主控单元负荷的同时进行信息包的存储、检索等。

图1 系统硬件电路

ENC28j60的工作电压是3.3 V因此可通过 SPI接口与dspic33f单片机直接相连而无需电平转换,它对SPI模式有特定的要求,要求SPI端口的SCK在空闲状态时为低电平,在SCK的每个上升沿移入命令和数据。ENC28j60提供了7个SPI指令(RCR、RBM、WCR、WBM、BFS、BFC、SC),因此,enc所执行的操作完全依据于主控制器通过SPI接口发出的命令。命令和数据通过 SI引脚送入器件,简化了电路的设计[1]。以太网接口电路如图2所示。

图2 以太网接口电路

2 系统软件设计

本系统软件设计主要采用C编程包括系统的初始化、tcp/ip协议栈、tcp/ip协议栈的管理[2]、客户端上位机的撰写以及系统功能模块的处理程序。其中,系统初始化程序主要用来初始化dspic33f单片机端口等,协议栈初始化是对tcp/ip协议的初始化,协议栈管理是对协议类型的判断及管理。系统软件工作流程如图3所示。

图3 系统软件工作流程

2.1 tcp/ip协议简介

为了使该系统实现远程web监控,必须在软件中实现tcp/ip协议。tcp/ip是internet的核心协议,由于其体系结构较OSI参考模型而言,由OSI的7层模型简化成了4层,正是由于该体系结构的简单实用,它被广泛的应用在局域网和广域网中,已经成为事实上的国际标准。tcp/ip采用层次化的体系结构,从低到高分别是数据链路层、网络层、传输层和应用层。

2.2 tcp/ip协议的实现

由于嵌入式系统的资源相对是非常有限的。所以必须对标准的tcp/ip协议进行剪裁[3],以减小控制器的负担。本系统中要实现web控制,故采用HTTP协议作为应用层协议,为保证数据传输的可靠性和稳定性以TCP协议作为传输层协议。同时,还要使用IP、ICMP等协议以及用ARP实现IP地址与MAC地址的映射。通信流程如图4所示。

图4 TCP/IP通信流程

2.3 tcp/ip协议栈管理程序

由于tcp/ip协议有4层构成,并且分层实现其功能,每一层都有自己特定的功能。因此,这里使用模块化程序设计的方法进行 tcp/ip协议栈程序的设计,构造协议栈管理程序[2]来实现对接收到的数据包类型的处理。只有当接收到正确的数据包以后才会做进一步的处理工作。

2.4 web服务器端设计

嵌入式服务器知名http端口(80)监听来自远程监控端的请求(在这里调用函数TCPOpen(0, TCP_OPEN_SERVER,HTTP_PORT, TCP_PURPOSE_HTTP_SERVER)),建立TCP连接(由于在这里使用http协议,因此,要在传输层必须使用tcp协议,它是一种面向连接的可靠的服务,tcp连接的建立要经过3次握手)[4]。查询相关套接字[5]锁定连接,根据HTTP请求作出正确的响应(调用HTTPExecuteGet()和HTTPExecute Post()函数进行处理.)并将响应后回复的内容发送至远程监控端(在浏览器中打开上传到监控系统中的网页可以看到回复的内容)。通讯完成后断开本次TCP连接(由于tcp的半关闭,它需要经过4次握手才能断开本次tcp连接)。

2.5 web客户端的设计

本系统在应用层使用http协议来进行实时信息的交互,以达到实时信息的监控。要采用动态更改网页的形式来发布实时信息,使用html、css以及javascript来编写系统的动态客户端网页[6]。采用http/1.1版本,它主要有GET、HEAD、POST 3种请求方式[7-8]。服务器端通过客户端的请求方式对客户端的请求进行相应的处理。在客户端与服务器交互的每1个模块都会有一个对应的callbackID以便准确对应到相应的处理模块。客户端与服务器端交互信息的流程如图5所示。

图5 客户端与服务器端信息交互流程

3 监控系统的应用

本系统应用于多电机PID补偿集中控制,只使用一台电脑对多台电机进行监控。以达到对各个电机实际速度、给定速度以及温度等一些参数的实时监测。监控模块实现程序设计如下所示:

该系统上位监控界面如图6所示。

图6 上位web监控界面

运行监控系统后,通过协议分析仪抓到的数据包如图 7所示。

图7 运行后抓取到的数据包

从抓取到的数据包中可以清楚地看到一次http应用交互数据的过程(3次握手建立连接、数据交互、4次握手关闭本次连接)。同时,通过分析数据包的源地址、目标地址及传输的状态位可以确定该数据包的类型(请求包、响应包)。

4 结语

随着网络技术的发展,在嵌入式系统中应用web技术必将是未来工业自动化、楼宇自动化以及安防领域的主导发展方向,尤其是在远程监控系统的应用方面。在远程监护系统中采用html和嵌入式web服务,完成数据的整合、处理以及系统中各种应用服务的集成,大大节约了远程监护系统的成本;同时,也大幅度地提升了监护系统的智能化水平,具有非常广泛的应用价值。

[1]Microchip.ENC28J60 Data Sheet[M]. Microchip Technology Inc,2006.

[2]徐冬寅,栾玖华.利用ENC28J60实现嵌入式WEB服务器[J].计算机工程应用技术,2009,5(26):75-76.

[3]李琪,刘延飞,刘岩.基于 STR710的 IP传感器在车间系统中的应用[J].仪器仪表学报,2008,4(29):166-168.

[4]STEVENS Richard W.TCP/IP详解 卷1:协议[M].北京:机械工业出版社,2000.

[5]武奇生 潘若禹.网络与TCP/IP协议[M].西安:西安电子科技大学出版社,2010:22-162.

[6]朱印宏.网页制作与网站开发[M].北京:北京希望电子出版社,2010.

[7]STEVENS Richard W.TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议[M].北京:机械工业出版社,2000(01):129-165.

[8]张丽娜 朱永红.嵌入式 Internet技术的研究与实现[J].计算机工程与设计,2008,29(12):3266-3268.

[9]阳宪惠.工业数据通信与控制网络[M].北京:清华大学出版社,2003.

猜你喜欢

以太网数据包嵌入式
二维隐蔽时间信道构建的研究*
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
TS系列红外传感器在嵌入式控制系统中的应用
SmartSniff
搭建基于Qt的嵌入式开发平台
谈实时以太网EtherCAT技术在变电站自动化中的应用
浅谈EPON与工业以太网在贵遵高速公路中的应用
万兆以太网在连徐高速公路通信系统改造中的应用