探究CAN总线与以太网互联的实时温度和湿度监控系统

2016-11-12

CAN(Controller area network)即控制器局域网,是国际上应用最广泛的现场总线之一。起先CAN-bus被设计作为汽车环境中的微控制器通讯,在车载的各电子控制装置(ECU)之间交换信息形成汽车电子控制网络。作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,CAN-bus已被广泛应用于各个自动化控制系统中。

从高速的网络到低价位的多路接线都可以使用CAN-bus。例如,在自动控制、智能大厦、电力系统、安防监控等各领域,CAN-bus都具有不可比拟的优越性。工业控制系统的分布化、智能化、信息化发展,要求企业从现场控制层到管理层实现全面无缝信息集成。工业以太网满足这一要求,实现了工业控制网络与企业信息网络的无缝连接,成为控制网络发展的主要方向,为全分散智能控制网络系统实现远程控制提供了可能[1]。本文作者主要介绍基于CAN总线与以太网互联的实时温度、湿度监控系统,从而实现监控设备的网络化和智能化。

1.系统介绍

1.1 CAN总线与互联网互联的发展状况

CAN总线是一种有效支持分布式控制的串行通信网络,是德国BOSCH公司从20世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而设计的一种串行数据通信协议,历经技术规范2.0A和2.0B后已形成CAN国际标准(ISO11898)

。CAN遵循OSI模型,按照OSI基准模型,CAN机构分为2层:数据链路层和物理层。按照IEEE802.2和802.3标准,数据链路层又划分为逻辑链路控制层(LLC)和媒体访问控制层(MAC);物理层又划分为物理信令层(PLS)、物理媒体附属装置层(PMA)和媒体相关接口层(MDI)。由于CAN具有独特的优点,使得它在工业领域中得到广泛应用。

目前,基于CAN总线获得广泛应用的应用层协议有DeviceNet和CANOpen等。CAN具有以下主要特点[2]:(1)CAN为多主工作方式,网络上任一节点均可在任意时刻主动地向网络上其他节点送信息,而不分主从;

(2)在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时要求;

(3)CAN采用非破坏总线仲裁技术。当多个节点同时向总线发送信息出现冲突时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间;(4)CAN节点只需通过对报文标识符滤波即可实现点对点、一对多点及全局广播几种方式传送接收数据;(5)CAN报文采用短帧结构,传输时间短,受干扰概率低,保证了数据出错率极低;

(6)CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。

现场总线网络与工业以太网的结合使得企业的管理可以深入到测控现场,在这种互联方式下,由以太网构建信息网,通过两者的有机联接,从而构成一个中型/大型的远程监控/数据传输网络[3]。

1.2系统架构系统由温度、湿度测控器、CAN以太网通信转换器、服务器和客户端组成。

温度、湿度测控器主要负责现场温度、湿度数据的采集、处理、控制、显示、报警以及通过CAN总线与通信转换器进行数据交换。

CAN、以太网通信转换器主要负责CAN总线数据的发送和接收,并将CAN的数据通过局域网发送到服务器上。

服务器负责监控结果数据的存储和报表的存储,同时,向客户端提供访问服务。

客户端通过浏览器上因特网访问服务器上的数据并进行通信和控制。

2.硬件设计温度、湿度测控器主要分为数据采集、控制和CAN总线通讯3部分

温度、湿度测控器的温度、湿度传感器采用瑞士图2温度、湿度测控器的硬件框图Fig.2 Structure of temperature and humidity controllerSENSIRION公司的SHT10,传感器包括1个电容式聚合体测湿元件和1个能隙式测温元件,并与1个14位A/D转换器以及串行接口电路在同一芯片上实现无缝连接。SHT10具有超快响应、抗干扰能力强等优点。

每个SHT10传感器都在极精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。两线制串行接口和内部基准电压,使系统集成变得简易快捷。温度、湿度测控器的MCU采用微芯公司的PIC18F2580,它是整个温度、湿度测控器的运算控制单元,它采用16位的RISC指令系统、哈佛总线结构、两级流水线取指等技术,具有32 KB快闪存内存、4 KB的RAM、片内看门狗、内部EEPROM、CAN控制器等丰富的片内资源,抗抗干扰性能强,功耗低,速度高[4]。PIC18F2580主要负责数据采集与控制,并与通信转换层适配器进行实时CAN总线数据的通信。

CAN与以太网通信转换层硬件框图如图3所示,它的处理器采用NXP公司的ARM7TDMI-S核的单片机LPC2378,是一款支持实时仿真和嵌入式跟踪的16/32位ARM7TDMI-S CPU,处理器时钟高达72MHz。片内含有高达512 KB的片内Flash和58 KB的片内SRAM存储器,具有强大的通信接口:10/100M以太网媒体访问控制器(MAC),2路CAN-bus接口。

增强型外设4个32位捕获/比较定时器、1个带有2 KB电池SRAM的低功耗实时时钟、看门狗定时器和1个片内4 MHz的RC振荡器。LPC2378的强大功能为CAN和以太网的通信转换带来了极大方便[5]。

3.软件设计软件设计的对象主要包括3部分:温度、湿度测控器的检测控制和CAN通信,CAN以太网通信转换,B/S平台。

3.1温度、湿度测控器的软件设计温度、湿度测控器的软件流程

它主要包括初始化子程序、CAN数据的接收和发送程序、显示程序、键盘扫描程序、控制程序。CAN数据的接收和发送对实时性要求比较高,故采用中断方式进行处理。微处理器PIC18F2580在程序开始首先要对CAN控制器模块进行初始化。主要通过测控器本身的地址标识的读取来对CAN控制器的过滤器和屏蔽器进行配置。屏蔽器用于确定标识符中的哪一位被过滤器检查,这样,一旦1条有效的信息被信息缓冲器MAB接收,信息的标识符区域将与过滤器值相比较,若相匹配,则信息将被装入接收缓冲器。微控制器收到CAN数据后,根据相应命令进行相应动作,如设置相应报警温度湿度、执行相应控制等,然后,做出相应的应答。

控制程序主要是通过串行接口对SHT10进行数据读取,并把读取数据与设定数据进行比较,运用bang-bang控制通过驱动电路控制中央空调,使得房间保持一定的温度和湿度。

3.2 CAN与以太网通信转换软件设计

3.2.1 LPC2378的CAN控制器与CAN总线间的数据传输

LPC2378的CAN控制器带有1个完整的发送和接收缓冲器串行接口,它是1个双重接收缓冲器,有了这个双重的接收缓冲器,芯片可以在对1个报文进行处理时,可接收另一个报文,但它不含有验收滤波器。验收滤波器是独立的器件,它对所有CAN通道进行CAN标识符过滤。

数据从CAN控制器发送到CAN总线由CAN控制器自动完成。发送程序采用中断方式,中断方式发送程序分为发送主程序和中断服务程序。主程序用于控制信息的发送,中断服务程序负责发送临时存储区中的暂存信息。。

μC/OS-Ⅱ是一个包含时间管理、任务调度等基本功能的小型、轻量级的嵌入式实时操作系统的内核,而且LPC2378是基于ARMTDMI的ARM的内核,其内核与存储器结构都很适合操作系统的运行。

以太网控制器采用uC/IP的协议栈,主要使用TCP/IP协议。TCP/IP是面向连接的协议,它在2个TCP之间创建1条虚连接,TCP在运输层使用流量控制和差错控制机制来保证数据的可靠性[7]。TCP提供全双工服务,即数据可在同一时间双向流动。控制器作为客户端发起连接。通过TCP/IP数据的收发中断见图6。

对于TCP数据包,LCP2378取出数据,并存入数据区,对数据进行相应分析后,通过CAN控制器发到CAN总线上,对于从CAN总线上接收的数据,同样存入相应数据区,将数据按照TCP/IP进行封装发送。

以太网通信的中断方式的数据收发Fig.6 Data exchange with Ethernet through Interruption

4.实验测试系统研制成功后,与多个带有32个节点CAN总线子网系统和以太网环境中进行测试。主要针对TCP/IP协议和CAN协议的数据通信实现对其性能和稳定性进行验证。

CAN总线数据截图Fig.7 CAN field bus screenshot整个系统正式投入运行后,到目前为止已经投入运行半年时间,系统运行稳定,没有出现数据丢失或者由于总线冲突导致的节点自动脱离总线的现象。

5.结论

(1)所设计的基于CAN总线与以太网互联的实时温度、湿度监控系统在某数据中心得到应用,系统中采用的底层使用CAN总线通信,中间层使用以太网通信,上层通过服务器与因特网连接,经过长时间的测试和运行,并与其他通信方式相比较,CAN总线通信方式稳定性良好,可靠性高。

(2)由于原数据中心测控装置分布较分散,房间数量多,导致房间温度、湿度控制不稳定甚至导致事故发生。采用该系统以后,不仅所有的房间温度、湿度可以乾地远程实时监控,而且整个测控系统的稳定性、准确性大大提高。

(3)实践证明,基于CAN总线与以太网互联的实时监控系统的系统是可行的,符合未来监控技术的发展趋势。另外,该系统也可以应用于其他需要实时监控的领域。

更多相关阅读

最新发布的文章