-
-
xiao_xiao1 | 当前状态:离线
总积分:9568 2024年可用积分:0
注册时间: 2008-03-21
最后登录时间: 2012-03-20
-
基于CAN总线的分布式嵌入式远程监控
xiao_xiao1 发表于 2009/9/18 14:24:18 571 查看 0 回复 [上一主题] [下一主题]
手机阅读
前 言
随着计算机技术和网络技术的飞速发展,Internet网已成为信息交流的重要渠道,基于WebB/S(BroWser/Server)远程监控技术的应用也越来越广泛。将这种技术应用于工业现场控制,用户可在Internet接入的地方,实现对工业现场设备进行远程监控,是当前倍受关注和研究热点的真正意义上的工业控制远程监控系统。CAN bus是一种有效支持分布式控制和实时控制的优秀工业控制现场总线,与其它通信总线相比,具有突出的可靠性、实时性和灵活性。由CAN总线组成的分布式控制系统与Internet网络连接的嵌入式系统集成后的远程监控系统,可把工业控制现场的数据信息实时可靠地传输,实现工控现场与管理信息系统(MIS)的无缝连接。本系统针对通信用多逆变模块电源系统的远程监控要求,通过CAN总线与底层多逆变电源模块连接、通过Web服务器接入Internet的嵌入式系统,成功实现了对底层工业现场设备的远程监控和管理。
CAN总线与嵌入式操作系统
CAN(CoNtroller Area Net)总线
CAN总线是一种多主总线,通信速率可达1Mb/s。CAN总线的通信接口集成了CAN协议的物理层和数据链路层功能,可完成包括位填充、数据块编码、循环冗余检验、优先级判别等通信数据的成帧处理。CAN bus协议废除了传统的站地址编码,采用了对通信数据块进行编码的方式,这种方法可使网络内的节点个数在理论上不受限制。数据块的标识码由11位或29位二进制数组成,即可定义211或229个不同的数据块。这种按数据块编码的方式,可以使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。因为CAN bus采用短帧格式通信,每帧最多有8个字节数据,可满足工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,保证了通信系统的实时性要求。同时CAN bus协议采用CRC检验并提供相应的错误处理功能,保证了数据通信的可靠性。CAN总线的上述特点非常适合工业现场过程监控设备的互连。
CAN总线采用多主竞争方式工作和非破坏性总线仲裁技术,总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,各节点之间实现自由通信。当多个节点同时向总线发信息时,优先级较低的节点会主动退出发送,而优先级较高的节点不受影响。大大节省了总线冲突仲裁时间,在网络负载很重的情况下,也不会出现网络瘫痪的情况。因此,适用于分布式监控系统的数据通讯。
嵌入式操作系统
嵌入式操作系统(Embedded Operation System简称EOS)是嵌入式技术或嵌入式系统的关键技术之一。嵌入式系统(Embedded System)是对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。简单的嵌入式系统并不使用操作系统,只包含一些控制流程。但当功能复杂化以后(如图像用户界面和网络支持等),简单的流程控制不能满足系统的要求,这时就必须考虑采用操作系统作为系统软件。嵌入式操作系统uclinux是在Linux2. 0版本的基础上裁减掉存储器管理单元(Memory Management Unit简称MMU)得到的。此外,为了将系统设置成为网络服务器,需另外移植并调试通过支持公共网关接口(CG I:Common Gateway InteRFace)的HTTP服务器软件BOA。
系统工作原理
系统简介
针对通信用多逆变模块电源系统的远程监控要求,在嵌入式核心板的基础上扩展了CAN总线接口,整个系统称为嵌入式远程监控系统(uCremM)。它基于Motorola公司的ColdFire5272CPU,2M FLASHMEMORY、32M DRAM以及UART、ETHERNET网卡等外围设备接口,CAN总线控制芯片采用英飞凌的82C900,SPI接口支持CAN2. 0B。
监控系统板利用RS232串口线和双绞线与宿主PC机相连,组成可以交叉编译的开发环境。编译语言为标准C,在宿主PC机上编译uClinux内核并下载到uCremM板上,由uCremMMOUNT上宿主机上的应用程序开发目录,就可以在PC机的L inux环境下进行嵌入式应用程序开发,最后重新编译包括应用程序的内核并烧写到uCremM上的FLASHMEMORY 就完成了监控系统的软件。
系统结构及结构流程
系统结构如图1所示。
图1 监控系统结构框图
本系统由嵌入式uCremm与现场数据采集节点组成主从(Masterand Slave)关系,数据结构参考CAN总线通讯协议。
1)系统下层结构流程。由主站按授权用户要求向指定MCU系统发出查询信息,实现对工控现场节点查询功能;各个CAN节点随时监听总线,当发现总线上有地址段与自己的地址相同的帧时,再判断是远程帧还是数据帧:如果是远程帧,则由CANbus节点按既定协议发送数据到总线上;否则节点开始接收CANbus上的数据帧。嵌入式uCremM与Internet的互联以及与用户的交互功能,则由其嵌入式操作系统中的网络服务器来完成。嵌入式uCremM上配有以太网接口RJ45,当用网线把uCremM与Internet连接,并配置好IP地址且运行网络服务器后,授权用户就可在INternet上任何一台机器的浏览器中敲入IP地址,访问存在嵌入式uCremM中的主页了。
2)用户与服务器的交互是通过CGI程序来完成的。简单地讲,CGI是一个运行在Web服务器上的程序,由浏览器的输入触发。这个脚本通常是客户端与服务器中其他程序如数据库的桥梁。
用户可以通过点击页面,查询来自现场的数据,如逆变模块的电压、电流和功率等;或者发送命令,如设置模块最高直流输入和交流输出等数值。
CAN总线通讯协议及程序流程
目前有3种CAN通讯协议,包括CAN2. 0A,CAN2. 0B和CAN2. 0B passive,CAN2. 0B是最通用的CAN通讯协议。CAN的3种通讯协议间的区别就是协议中定义的标识符的长度不同。CAN2. 0A协议中仅定义了具有11位标识符的标准帧数据结构,CAN2. 0B协议中除了定义标准帧外还定义了具有29位标识符的扩展帧数据结构。
本系统定义在CAN总线上传输的数据包为标准帧格式,它分为远程帧和数据帧两种,区别远程发送请求位是否置位。标准帧的数据结构如表1所示。
表1 标准帧格式
在设计中,本系统以嵌入式监控系统来完成对各个分布的逆变电源模块的参数上传和设置。当CAN控制器发出要求逆变电源模块上传数据的远程帧时,系统定义了远程帧中的11位标识符中高5位作为各模块的模块号标识,同样在各模块的CAN控制器中的Msg ID 寄存器也作了相应的设置。另外在帧格式中的远程发送请求位必须置“1”,DLC全置“0”,数据域无数据信息。远程帧举例见表2。
表2 远程帧举例
当CAN控制器发出设置逆变模块开关和模块参数的数据帧时,定义中除了标识符的设置外,远程发送请求位被置为“0”,DLC置“1000”表示一帧数据信息中的数据域有8个节字的数据要发送。CAN控制器发送设置(修改)逆变模块参数的数据帧时,数据结构如表3所示。
表3 模块参数格式
在CAN控制器发送设置逆变模块开关机的数据帧时,开关机信息由一位数据表示,紧跟命令编码。当数据值为0FH时,表示逆变模块关机;当数据值为01H时,表示逆变模块开机。除了发送数据信息外,系统还要接收来自各个逆变模块的告警信息帧和模块参数数据帧信息,接收数据帧的格式仍然参考上例制定。主站程序流程图如图2所示。
图2 主站程序流程图
网络服务器配置及主页设计
通过在嵌入式uCremm上的uClinux操作系统上移植HTTP服务器软件BOA,并设置其配置文件(boa. conf),可以指定主页和CGI程序所在路径。这里CGI程序用C语言编写,其实就是一些应用程序,如CAN通讯数据等,只是它能由远程浏览器通过点击主页而激活,从而实现浏览器和服务器的交互功能。如图3所示,用户在远程浏览器中输入嵌入式Webserver的IP地址后,需要登录用户名及密码,当得到服务器确认后,进入监控界面。图4为监控系统登陆界面,图5为系统主参数界面。
图3 浏览器和服务器的交互功能示意图
图4 监控系统登陆界面
图5 系统主参数界面
利用网页来显示监控界面, 使监控系统由传统的C?S 模式(Clien t?Server) 转变为更先进的B?S 模式(B row ser?Server) , 不仅节省了购买和开发监控上位机软件的费用, 而且使之成为不受地域限制上的真正意义的远程监控系统。
总结
嵌入式系统具有可裁减、体积小和进程及内存管理、网络支持等功能的独特设计和极高的可靠性; 而CAN 总线具有多主站运行和分散仲裁以及广播通信的特点和可不分主次任意节点可在任意时刻主动向网络上其它节点发送信息,实现自由通信卓越特性和功能。因此将CAN 总线与嵌入式系统的技术融合,将是后PC 时代的发展趋势。本系统针对通信用多逆变模块电源系统的远程监控要求而开发研制,其技术完全可以移植到楼宇自动化、工业底层设备网络等其它远程监控场合。