基于ARM+RTOS+LWIP+HTTP实现工业洗衣机远程监控系统的设计

描述

作者:杨光友,胡浩,周国柱,苏旭武

随着互联网技术近年来的不断发展,机电设备融入互连网,并对其进行远程监控得到了广泛应用。基于嵌入式WEB的远程监控是在传统远程监控的基础上又融合了Web和嵌入式技术,可提供比传统远程监控更为强大的功能,将成为今后远程监控技术发展的主流方向。Web技术弥补了传统监控系统的不足,致使运用Web技术实现设备的远程监控,已经越来越多地成为设备监控系统不可或缺的一部分。嵌入式设备的Web服务为现场设备的数据采集、监控、诊断和维护开辟了一个新的领域。

基于嵌入式Web的工业洗衣机远程监控模型

基于嵌入式Web的远程监控思想是在机电设备中实现HTTP 服务,将其转化成Web Server嵌入到被控设备中,为Internet或局域网用户提供基于Web 的图形化管理接口,从而省去了专用客户端管理软件,实现对接入到网络中各种设备的统一管理。用户可以通过现有的公共通信网络,不受地域限制,使用标准的Web浏览器作为接口直接访问机电设备上的Web服务器,实现对网络中各个节点现场设备的远程监控、诊断与维护。

RTOS

一般工业洗衣机的基本功能有:人机接口、电机控制、阀控制、洗衣机状态检测、温度检测和水位检测。要实现远程监控和远程故障诊断,洗衣机还应具有网络功能。要实现智能控制,即在洗涤过程中控制器能根据洗涤物的多少、脏污程度和脏污性质自动给出最佳洗涤方案,这就要求洗衣机具有浑浊度检测和布质布量检测功能。通过上述分析,要实现工业洗衣机的基本功能以及智能化和网络化,嵌入式系统至少要有以下接口:LCD接口、触摸屏接口(矩阵键盘接口、LED指示灯接口)、RS-232或RS485接口、UART接口、3路AD输入、21路数字量输出、8路数字量输入(两个可作为中断源)及Ethernet接口。

RTOS

硬件设计

随着嵌入式微处理器的发展,出现了Power PC、68K、MIPS、ARM等一系列低功耗、高性能的嵌入式CPU。因此选择低成本的32位ARM系列嵌入式处理器,不但价格低廉,而且功耗低、处理速度快,应用前景广泛,比较适合远程监控需求。在工业洗衣机的远程监控的系统中选用韩国现代公司的HMS30C7202(32位RISC 微处理器),这是一款具有高性价比的芯片。该芯片内集成了ARM7TDMI CPU核,存储器管理单元(MMU),8KB的高速缓冲存储器以及写缓冲器。并具有丰富的接口:支持STN和TFT的LCD、触摸屏、矩阵键盘、鼠标、LED指示灯、LAN、CAN、USB、RS-232、RS-485、红外、24路继电器输出、10路数字量输入、3路模拟量输入和2路PWM输出。为实现远程网络监控,系统底层网络接口芯片采用CS8900A及外围电路实现,本系统中网络接口芯片CS8900A工作于16位模式。

软件设计

软件设计的核心工作是在上述硬件平台上建立嵌入式WEB服务器,实时响应用户的请求。除此之外还要实现工业洗衣机的智能控制。工业洗衣机系统需要进行多个参数的检测,需要使用多个传感器,每一个传感器的参数检测和数据传输方式也各不相同。并且在洗涤过程中有很多需要控制的部件,如变频器、各种阀等;在系统中各功能模块关系复杂,任务多,而且各种需求间有并发关系。另外,还有网络功能。因此有必要引入嵌入式操作系统。本系统选用μC/OS-II嵌入式操作系统,它是一个多任务强实时的开源操作系统,经裁减、移植与补充后形成工业洗衣机的专用实时操作系统。网络通信协议TCP/IP采用源码公开的1wIP协议栈,并针对具体需求进行优化设计。为了得到人性化的本地操作用户界面,采用了一种开源的图形用户界面μC/GUI,它与μC/OS-II有很好的接口配合,功能完善。因此,工业洗衣机智能控制器软件由四部分组成:实时操作系统μC/OS-II、硬件驱动程序、API函数和应用程序。

嵌入式操作系统

mC/OS-II是一个源代码公开的占先式多任务微内核RTOS,每个任务具有不同的优先级,能够很好的满足实时性需求。与其它实时操作系统相比,mC/OS-II结构简单、容易移植,广泛运用于工业控制的各领域。在将mC/OS-II(V2.51)移植到HMS30C7202上的主要工作是修改三个和ARM体系结构相关的文件,OS_CPU. H,OS_CPU_C.C和OS_CPU_A.S。OS_CPU.H主要包含编译器相关的数据类型的定义、堆栈类型的定义以及几个宏定义和函数说明。而OS_CPU_C.C中则包含与移植有关的C函数,包括堆栈的初始化函数和一些钩子(hook)函数的实现。OS_CPU_A.S中则包含与移植有关的汇编语言函数,包括开/关中断、上下文切换、时钟中断服务程序等等。

TCP/IP协议栈

系统采用开源TCP/IP协议栈LWIP(Light Weight IP),LWIP是Swedish Institute of Computer Science开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。LWIP 实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,一般它只需要数10kB RAM 和40kB左右的ROM 就可以运行,这使LWIP协议栈适合在低端嵌入式系统中使用。LWIP协议栈在设计时就考虑到了将来的移植问题,把所有与硬件、OS、编译器相关的部分独立出来,放在/src/arch目录下。因此LWIP在uC/OS-Ⅱ上的实现就是修改这个目录下的文件,其他的文件一般不用修改。本系统移植的是LWIP是1.1.0版本。LwIP的移植工作主要有:

修改与CPU 或编译器相关的include文件:cc.h、cpu.h、perf.h,正确设置数据长度,字的高低位顺序等。

修改sys__arch.h和sys__arch.c中与操作系统相关部分。

LWlP协议栈中用到了6个外部函数(1ibarch.c),这些函数与用户使用

的系统或编译器有关,因此需要自己实现。

/src/netif/ethernetif.c文件即为网络驱动的模板,我们可以参照此模板实现选用的网络设备驱动。做完上面的移植修改工作以后,就可以在uC/0S一Ⅱ中创建一个任务初始化LWlP,并创建TCP任务、UDP任务和HTTP任务。伪代码如下:

创建LWIP任务

{

■系统初始化;

■内存初始化;

■包内存初始化;

■包缓冲初始化;;

■网络初始化;

■创建一个系统信号量;

■Tcpip初始化;

■等待系统信号量;

释放系统信号量;

■设置网关;

■设置IP地址;

■设置子网掩码;

TCP初始化任务;

HTTP初始化任务;

UDP初始化任务;

while(1)

{延时;}

}

嵌入式WEB服务器

随着Web技术的迅速发展,Brower/Server(B/S)模式已成为流行的开发模式,这种方式基本上不用开发客户端程序,只需对服务器端程序进行开发程序,在客户端采用诸如IE这样的浏览器对服务器上的数据进行浏览。从功能上来讲,WEB服务器监听用户端的服务请求,根据用户请求的类型提供相应的服务。用户端使用WEB浏览器和WEB服务器进行通信。WEB服务器在接收到用户端的请求后,处理用户请求并返回需要的数据。这些数据通常以格式固定、含有文本或图片的页面出现在用户端浏览器。HTTP(Hyper Text Transfer Protocol)是WWW(World Wide Web)的核心协议,即超文本传输协议。WWW使用HTTP协议、超媒体技术将遍布全球的各种信息通过URL(Uniform Resource locator-统一资源定位)连接起来,以便于用户浏览。HTTP是一个属于应用层的面向对象的协议。HTTP协议有两项功能,即传输文件和实现动态交互应用。LWIP在该源程序软件包含HTTP1.0。LWIP运行一个简单的HTTP/1.0服务器至少能够同时响应10个以上页面请求,而且占用RAM不超过4k字节。为了减少“上下文切换”对整体性能造成的消极影响,LWIP的所有协议都在一个进程当中和操作系统内核分开实现。而HTTP程序既可以是单独的进程也可以驻留在TCP/IP进程中。如果HTTP是单独的进程,可以通过操作系统的邮箱,消息队列等和TCP/IP进程进行通讯;如果HTTP驻留在TCP/IP进程中,那应用层程序就利用内部回调函数口(Raw API)和TCP/IP协议栈通讯。

由于嵌入式系统的资源有限,基于嵌入式Web的工业洗衣机的远程监控系统需要数据高效传输、图形化监控的人机交互界面以及自主刷新。同时,对测量数据进行分析、处理都需要实现采集数据的本地保存。因此,采用浏览器/服务器(B/S )和客户端与服务器端(C/S)相结合的模式。在服务器端采用CGI (Common Gateway Interface)技术,以实现浏览器和服务器之间的交互。CGI规定了Web服务器调用其他可执行程序的接口协议标准,提供了Web 服务器执行外部程序的通道,这种技术使得浏览器和服务器之间具有交互性。

采用Java Applet技术增强浏览器的功能,实现动态数据的实时浏览,通过B/S 方式访问Web 服务器上的网页数据,客户端的IE浏览器浏览这个网页时,会把网页中标识的Java applet源程序下载到客户端执行。在Java applet 源程序中,创建了一个套接字来完成与服务器的通信(前提是Web服务器上同时运行一个相应的服务器监听程序),获取实时数据,用于在浏览器中显示。事实上,在Java applet 中的socket通信是一个典型的C/S访问方式。系统通过Java applet平衡了服务器端与浏览器端的负载状况,将一部分从前在服务器上工作分给了浏览器,降低了服务器的运行负荷。

控制系统软件设计

用户通过网络传送命令,控制洗衣机工作。根据用户设定的水位、温度等参数完成洗涤和脱水;洗衣机需要自动检测洗涤物质量、含棉率、脏污程度和脏污性质,通过智能推理得出最佳洗涤方案,自动完成洗涤过程。因此控制系统软件设计如下任务:模拟量采集任务,数字量检测任务,报警任务,阀控制任务,混浊度检测任务,洗涤控制任务,电机控制任务,网络任务。根据每个任务的重要程度设置不同的优先级,各个任务之间通过信号量或邮箱进行通信。

结束语

嵌入式WEB技术是一种新兴的技术,它采用瘦服务器模式,大大降低了构建的费用。本文采取ARM+RTOS+LWIP+HTTP的架构实现工业洗衣机的远程监控,为洗衣机厂商的售后服务以及洗衣房和洗衣厂的管理带来极大的方便。通过网络可以实现洗衣机系统软件的远程升级, 进一步改善和提高系统的性能。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分