基于LwIP协议的多点控制系统研究
2016-06-27来爱华游继安
来爱华,卢 军,游继安*
(1.湖北工程学院 新技术学院, 湖北 孝感 432000;2.湖北工程学院 计算机与信息科学学院,湖北 孝感 432000)
基于LwIP协议的多点控制系统研究
来爱华1,卢军2,游继安1*
(1.湖北工程学院 新技术学院, 湖北 孝感 432000;2.湖北工程学院 计算机与信息科学学院,湖北 孝感 432000)
摘要:设计了一款基于LwIP协议的多点控制系统,该系统由下位机硬件和上位机软件两部分组成,利用操作上位机界面上的按钮来控制与下位机的连接。通过控制下位机上LED灯的试验验证了所设计的系统的有效性。
关键词:嵌入式系统;LwIP协议;控制系统;上位机界面
随着人们对嵌入式系统研究的不断深入,利用PC机控制嵌入式下位机日益受到人们的关注。PC机与嵌入式下位机通信的方法主要有以下几种:(1)串口通信[1];(2)USB通信[2];(3)CAN通信[3];(4)双绞线/光纤通信。在以上四种方法中,第四种方式的通信协议最为复杂,对系统性能要求较高,但通信时传输数据最为稳定。因此,该方法常用于对传输稳定性要求较高的场合。
PC机采用网络与嵌入式下位机通信,常用的通信协议栈为LwIP协议栈,控制方式主要有两种:(1)采用类似于DOS命令界面的控制台方式;(2)Telnet(远程管理登录协议)[4]方式。然而,这两种方式均存在较为明显的不足。通过类似于DOS控制台的方式无法实现远程管理,而采用Telnet的命令行模式需要用户熟悉大量的管理命令,并需要具备一定的计算机操作技能。
鉴于上述原因,便有研究者提出采用安装了WEB服务器的PC机作为上位机与嵌入式系统进行通信[5]。该方法确实是一种比较理想的通信方式,但是不可否认它存在明显的技术难题。由于WEB服务器设计起来相对较复杂,对于复杂的系统,WEB服务器确实是一种理想的选择,但是对于相对较简单的控制系统,利用C/S模式设计的简易控制界面一般能满足客户的需求。而且,WEB服务器是基于B/S架构的,而MFC设计的界面是基于C/S架构的,相对于前者,后者在设计上更加灵活,且形式更加多样,更容易满足客户的应用需求。另外,利用MFC设计的界面还有其他的优点:(1)设计比较容易;(2)可以根据客户的需求设计多个PC机与嵌入式系统进行通信的上位机界面。
1LwIP协议
LwIP协议是由瑞士计算机科学家Adam Dunkels等研发的一套轻量级开源TCP/IP协议栈,该协议栈既可以在有操作系统的平台上运行,也可以移植到没有操作系统的平台上运行。LwIP的另一个优点是该协议栈运行仅需极少的资源。实验表明,运行该协议只需要20 KB的RAM和40 KB的ROM[6]。目前常见的单片机,如STC89C516、AVR系列单片机Atmega64、Atmega128、MSP430系列多款单片机、Cortex-M3系列单片机的闪存均超过40 KB[7]。因此,市场上常见的嵌入式芯片都可以运行该协议栈。
1.1LwIP 协议栈框架
相对于其他协议栈来说,LwIP协议栈主要有三大优点。其一,LwIP是专门为嵌入式系统设计的专用协议;其二,LwIP占用内存较少;其三,LwIP具有相对齐全的功能,而且具备完善的内存管理办法,对嵌入式控制器的性能要求不高。
LwIP 协议栈的主要任务是实现TCP/IP协议功能,它通过一个任务管理器对不同的协议模块进行统一的管理和调度。Adam Dunkels对LwIP中的主要协议模块进行了适当裁剪,使其更加适用于硬件资源有限的嵌入式设备。LwIP协议栈功能模块如图1所示。模块主要由以下六部分组成,而LwIP任务管理器是其他五部分的基础。
图1 LwIP协议功能模块
1.2LwIP协议栈进程模型
LwIP协议栈将所有的通信协议放在一个独立的进程中处理,该进程独立于系统内核。当应用程序与LwIP 在同一进程中时,不仅可以采用函数调用的方式实现通信,也可以使用更为抽象的API 方式实现二者通信,这种设计的最大优势在于提高了LwIP 的可移植性。LwIP 进程模型结构如图2所示。LwIP进程模型主要分为四层,分别是应用层、传输层、网络层和网络接口层。
图2 LwIP 进程模型
2系统设计
2.1系统总体架构
本系统主要包括上位机和下位机两个部分,其中下位机部分以意法半导体公司生产的控制芯片STM32作为主控制芯片,对接收到的数据进行处理。上位机部分分布在PC机上,是基于C/S架构的控制软件。上位机与下位机通过以太网相连,如果需要多个上位机控制同一个下位机,则可以在连接线路中增加一个路由器,系统中具体的上位机的数量由路由器决定。系统总体架构如图3所示。
图3 系统整体架构
2.2系统硬件设计
下位机所采用的开发板主要包三个部分。第一个部分是以STM32控制芯片为主的最小系统,第二个部分是网络接口,其电路如图4所示。该部分主要由一个芯片和一个接口座组成,芯片是ECN28J60控制器和HR911105A网络接口,该部分的主要作用是连接下位机与Internet。第三部分由三个LED灯组成,通过控制芯片输出的低电平点亮LED。
控制芯片采用STM32f103VET6芯片,该控制芯片具有先进的RISC结构,采用ARM公司设计的内核,该芯片继承了ARM公司产品控制性能强,低功耗,价格低廉,其片内RAM达到48 KB,片内ROM达到512 KB。因此,在该芯片上的资源足以运行LwIP协议。ENC28J60与HR9011105A是嵌入式系统接入以太网的关键器件,其中ENC28J60为网络控制器,其功能是网络数据转换为嵌入式芯片能够识别的数据,HR9011105A为隔离变压器,通过该器件可以平衡接线线路与嵌入式开发板的电压。最后,电路中的三个LED灯主要是方便开发者观察实现结果而设置的。
2.3软件设计
2.3.1上位机系统设计
上位机部分使用VC++6.0开发,移植LwIP_vl.2.0,使用MFC搭建可视化仿真测试环境,设计开发了一套运行在PC系统上的LwIP协议开发平台。该系统包含三个模块,其中应用程序模块位于最顶层,为用户提供网络操作的调用范例与测试入口;LwIP协议栈模块位于中间层,实现LwIP协议栈与WINDOWS系统对接;网络驱动模块位于最底层,使用第三方网络驱动库WinPcap实现LwIP协议栈与WINDOWS系统中网络驱动的适配,这样LwIP协议栈就可以通过WINDOWS驱动与其他网络终端进行通信。上位机系统组成如图5所示。
图4 以太网控制器硬件电路图
(1)应用程序界面设计如图6所示。设计应用程序的目的是通过应用程序来实现与下位机的连接配置,通过调整上位机界面上的参数控制下位机上LED灯的亮灭。上位机应用程序主要有两个任务,一是IP地址拨号,二是控制三个LED灯的亮灭。
图6 上位机控制界面
(2)系统调度程序设计。本系统总体程序主要分为上位机和下位机两个部分。当用户操作上位机界面时,上位机向下位机发送控制命令,从而实现用户的各种控制要求,其程序流程如图7所示。
图7 上位机控制程序流程
下位机的主要作用是接收来自上位机发送来的消息,并对该消息进行分类处理,其主要工作流程如图8所示。
应用层程序包含整个LwIP协议栈,它一方面作为独立任务存在,另一方面也可以借助原始接口直接通过LwIP协议栈完成与LwIP协议栈的通信。基于LwIP协议的程序调度流程如图9所示。
尽管LwIP协议没有明确划分各个层次,但是实现了TCP/IP协议栈的IP子协议模块、ICMP子协议模块和UDP子协议模块,并且提供了操作系统适配层、内存缓冲与存储管理、网络接口函数等附加模块。
图8 下位机控制流程
(3)当应用程序界面和LwIP模块设计完成后,接下来需通过协议栈接收与发送数据,网络驱动子模块的作用是将LwIP协议栈与WINDOWS系统对接,将LwIP协议栈生成的报文通过WINDOWS传输接口发送出去。发送技术主要分为两类,一类是WINDOWS编程,另一类是通过网络开发包WinPcap。其中,第一类方法较复杂,第二类方法操作较简便。WinPcap为Win32应用程序提供访问网络底层的能力,利用该网络操作库可以对WINDOWS网络设备进行操作,利用WinPcap提供的一组接口可实现网络数据包的捕获与分析。
2.3.2下位机软件设计
下位机接收来自上位机的消息,当下位收到的消息为拨号消息时,进行拨号,当收到的消息为控制消息时,对下位机上的LED灯进行控制。其工作流程如图10所示。
在该部分中,不仅需要通过控制芯片STM32对下位机的外设进行控制,同时还需要接收来自上位机的消息。因此,下位机模块不仅需要定义LwIP模块,而且还要定义下位机的拨号连接信息。
图9 LwIP进程调度
3系统测试
本文选用四个控制台测试所设计的控制系统的有效性。四个控制台分别向下位机发送控制命令来点亮下位机上不同的LED灯,测试结果见图11。可以看出,系统的控制效果均已实现,且具有很好的稳定性。
图10 下位机程序流程图
(a)控制台一向下位机发送控制命令
(b)控制台二向下位机发送控制命令
(c)控制台三向下位机发送控制命令
(d)控制台一向下位机发送控制命令
4结束语
本文基于LwIP协议实现了下位机嵌入式系统与上位机软件的通信功能,组合意法半导体公司Cortex-M3处理器STM32f103VET6与ECN28J60控制器硬件,利用嵌入式TCP/IP协议栈LwIP实现与PC机客户端的Socket通信,通过多个上位机终端控制一个下位机终端。经测试,所设计的控制系统性能稳定,能够方便快捷地实现各种数据通信。
[参考文献]
[1]章辉,叶建芳,叶建威. 基于MSComm控件串口通信的实现[J].电子测量技术,2011(8):126-129.
[2]刘宇. 基于USB通信协议的数据采集系统设计[D].哈尔滨:哈尔滨工程大学,2013.
[3]魏丰,潘小虎,曾勇,等. 光纤CAN总线集线器及其组网研究[J].仪器仪表学报,2011(12):2839-2844.
[4]蔡雄飞. 基于Cortex-M3的嵌入式Web服务器设计[D].杭州:浙江工业大学,2013.
[5]林笑君. 基于Cortex-M3的嵌入式WEB服务器监控系统的设计与实现[D].太原:太原理工大学,2013.
[6]张青青. Windows环境下的Lwip网络应用平台的开发与实现[D].西安:西北大学,2013.
[7]游继安,卢军,鲍小龙,等. 一种新型的定位追踪系统的设计[J].福建电脑,2015(8):35-36,65.
(责任编辑:张凯兵)
Study on Multi-Points Control System Based on LwIP Protocol
Lai Aihua1, Lu Jun2, You Ji’an1*
(1.CollegeofTechnology,HubeiEngineeringUniversity,Xiaogan,Hubei432000,China; 2.SchoolofComputerandInformationScience,HubeiEngineeringUniversity,Xiaogan,Hubei432000,China)
Abstract:A multi-points control system which is based on the LwIP protocol is developed. The system consists of the hardware of the slave computers and the software of the master computer, in which the communication with the slave computers is accomplished by operating the buttons on the interface on the master computer. The test on the control of the display of the LEDs on the slave computers validates the effectiveness of the proposed system.
Key Words:embedded system; LwIP protocol; control system; PC interface
收稿日期:2015-09-11
基金项目:湖北省自然科学基金项目(2014CFB576)
作者简介:来爱华(1986-),女,湖北咸宁人,湖北工程学院新技术学院助教,硕士。
中图分类号:TP393.1
文献标志码:A
文章编号:2095-4824(2015)06-0028-06
游继安(1987-),男,湖北孝感人,湖北工程学院新技术学院助教,硕士,本文通信作者。