基于CAN总线的远程H2监控系统
2012-07-25王一帮严奉轩
王一帮,李 芳,严奉轩,陆 平,吴 霆
(中国船舶重工集团公司第七一八研究所,河北邯郸 056027)
0 引言
随着工业化的发展,化工、冶金、航天和电力等行业广泛使用到H2;蓄电池充电和核子发电等过程中会产生H2。由于该气体是一种无色、无味的易燃气体,一定体积分数下遇到氧气和明火后会发生爆炸,所以,工业现场H2含量过高严重危害人们的生命和财产安全,对工业现场多点H2体积分数的实时在线监测具有重大的现实意义。
传统的设备监控系统多采用 RS—232,RS—485等串行通信方式,实时性、扩展性和可靠性较差[1]。控制器局域网(controller area network,CAN)总线是现场总线中的一种,它能有效支持分布式控制或实时控制,是一种开放式、数字化、多点通信的的串行通信网络[2]。本文设计了一种基于CAN总线的远程H2监控系统。
1 系统总体设计
整个系统由智能监控节点(n<112)、显示节点和CAN总线网络组成,其系统框图如图1。分布在工业现场的智能监控节点可以独立对H2体积分数进行测量并将数据发送到总线上,与此同时还可执行相应的报警和保护操作;显示节点可通过CAN总线和各个监控节点进行实时通信并将H2体积分数显示出来。各个节点之间通过屏蔽双绞线互联成CAN总线网络,总线两端连接120 Ω的阻抗匹配电阻,用来提高系的稳定性,增强系统抗干扰能力[3]。
图1 分布式监控系统总体框图Fig 1 Overall block diagram of distributed monitoring system
2 智能监控节点
2.1 硬件电路实现
智能监控节点硬件设计采用了模块化结构,由CAN通信接口、单片机及外围电路与H2监控电路组成,整体结构如图2。
H2监控电路得到的与H2体积分数有一定关系的电压信号,经A/D采样,数据处理后,通过CAN通信接口发送到CAN总线上,并在一定条件下驱动外围电路。
图2 智能监控节点结构框图Fig 2 Structure block diagram of intelligent monitoring node
2.1.1 CAN 通信接口设计
目前,市场上有两种CAN总线器件可供选择:一种是片内集成 CAN控制器的微控制器,如 PIC18F4580,P8XC591/2和MC68376等;另一种是独立的CAN控制器,如 Philips公司的 SJA1000,82C200,Intel公司的82526,以及Microchip公司的MCP2510等,但独立的CAN控制芯片需要接一个微处理器才能运行。出于简化硬件电路设计、降低程序设计复杂度和提高系统稳定性考虑,设计中选用内嵌CAN控制器的微控制器PIC18F4580。该CAN模块除遵循CAN总线协议外,同时也有自己的特点,主要包括:1)支持 CAN 协议 CAN1.2,CAN2.0A 和 CAN 2.0B。2)支持标准帧、扩展帧、远程帧、过载帧和错误帧等[4]。3)2个接收缓冲区,3个发送缓冲区。4)可配置最多16个接收滤波器,2个屏蔽滤波器。与其配合使用的MCP2551是一种高速CAN收发器,支持1 Mbit/s的运行速度,具有自动检测TXD端的输入端错误,并具有过压欠压过热保护功能。考虑到工业现场的复杂电磁环境问题,采用高速光耦器件6N137 进行电气隔离[5]。
CAN总线两端接有二极管保护电路,CAN通信接口原理图如图3。
2.1.2 单片机与外围电路
单片机与外围电路主要有A/D转换电路、蜂鸣器报警电路和继电器驱动电路。A/D转换使用单片机内置的10位A/D转换端口,蜂鸣器和继电器电路使用单片机的普通IO口控制。
2.1.3 H2监控电路
H2监控电路包括氢敏元件和信号调理电路两部分。氢敏元件是电桥式电阻型传感器,有两路输出,一路为信号输出,另一路为参比信号。当H2以一定速度通过时,信号探头的阻值发生微弱变化,采用电桥法使之转换成电压输出。由于信号比较微弱,调理电路中采用了两级放大,前置放大作用为在抑制噪声基础上尽量放大信号,次级运放是最大限度提高电平,以输出适于单片机A/D转换的信号。原理图如图4。图中Rd为零点校准,W1为终点校准电阻。
图4 H2监控电路原理图Fig 4 Principle diagram of H2monitoring circuit
2.2 软件设计
程序设计采用微芯公司的集成开发环境MPLAB,编译器为PIC18 MCU专用C18编译器。设计中采取主程序与中断服务子程序相结合的方法[6]。系统主程序流程图如图5。首先进行初始化,包括端口、A/D(初始化后立即启动转换)、定时器中断和CAN模块的初始化。CAN模块初始化包括波特率、发送数据帧类型(标准帧或扩展帧)、完全滤波器、屏蔽滤波器和标识符等的设置,这些过程都是在CAN配置模式下进行的。需要注意的是所有CAN子节点的波特率必须相同,本文中波特率设定为9 600 bps。随后进入到运行模式进行CAN数据的发送,采用查询方式。
图5 主程序流程图Fig 5 Flow chart of main program
单片机独特的硬件结构使中断具有优先级,高优先级的中断优先响应并可以中止正在进行的低优先级的中断而优先执行,之后再返回被中止的中断程序继续执行。软件中设定定时器1和定时器2具有高优先级,定时器3具有低优先级。中断服务子程序流程图如图6,定时器1主要负责蜂鸣器的操作,定时器2中对采样到的值进行平均,根据预先设定阈值大小控制继电器工作和设定蜂鸣器标识,并将数据赋值给CAN数据寄存器中,定时器3主要是将A/D转换完成的数据存储起来并再次启动A/D转换。定时器3执行过程中,若有定时器1或定时器2中断到来,将中止程序执行并跳转到相应高优先程序执行,执行完后在接着本中断的执行。
图6 中断服务子程序流程图Fig 6 Subprogram flow chart of interrupting service
3 显示节点
3.1 硬件设计
显示节点包括CAN通信接口、显示电路和输出电路。
3.1.1 CAN 通信接口设计
CAN通信接口设计与智能监控节点中CAN通信接口完全一致,这里不再赘述。
3.1.2 显示电路和输出电路
显示电路中采用字符型液晶显示芯片LCD1604,模拟电压输出采用MAXIM公司的4路12位电压输出、I2C接口兼容的MAX5842。备有串口通信接口以供功能扩展。电路原理图如图7。
3.2 软件设计
程序设计同样以MPLAB为集成开发环境,以C18编译器作为编译工具。设计中采取主程序与中断服务子程序结合的方法。系统主程序流程图如图8(a),系统上电后首先完成初始化,包括端口、DA唤醒、定时器1和CAN模块的初始化,接着循环进行浓度显示。CAN数据接收采取中断方式,定时器1主要进行体积分数数据D/A转换,如图8(b),设定CAN接收中断具有较高的中断优先级。
4 实验结果
图7 显示节点电路原理图Fig 7 Principle diagram of display node’s circuit
图8 显示节点程序设计Fig 8 Program design of display node
本系统选用4个智能监控节点,1个显示节点。监控节点采用高纯N2和体积分数为3.11% 的H2进行零点、终点标定。之后分别测量高纯 N2,气体体积分数为1.01%,2.02%和 3.11% 的 H2(空气作为平衡气)。测试结果显示如表1。
表1 测量结果Tab 1 Result of test
由测试结果可以看出:系统测试精度较高,误差在1%以内,并且响应速度快,操作简单可靠,达到了预期目的。
5 结束语
监控系统以PIC18F4580作为数据处理、控制和显示的核心,通过单片机内嵌的CAN模块构成CAN总线通信网络。该系统工作稳定,抗干扰能力强,又由于CAN总线的特点,可以方便地增加减少智能监控节点而不影响系统运行,方便系统维护和更新,为工业现场H2测量监控提供了一个新途径,具有实际应用价值。
[1]王晓英,罗红波.基于CAN总线的高低温试验箱监控系统[J].微计算机信息,2005,21(5):26 -27.
[2]钨宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996.
[3]孙树文,杨建武,张慧慧,等.基于CAN总线的分布式监控系统智能节点设计[J].微计算机信息,2006,22(8):55 -57.
[4]朱 芳.利用PIC18FXX8进行CAN总线系统节点设计[J].电子工程师,2004,30(10):13 -15.
[5]王元委,皮桂英,高亦彤,等.基于CAN总线的智能远程温度开关设计[J].传感器与微系统,2010,29(7):75 -77.
[6]陈光建,何华平,贾金玲.基于虚拟仪器和USB温度测量系统的研制[J].仪表技术与传感器,2010(11):30-34.