基于CAN总线的船舶集中监测报警系统
2013-08-29张伟
张 伟
(武汉第二船舶设计研究所 武汉 430064)
随着工业和科学技术的飞速发展,船舶设备和系统的组成及结构日趋复杂,功能不断完善,自动化程度不断提高。船舶集中监测和报警系统作为船舶自动化的重要组成部分,是船舶安全航行的必要保障。目前船舶监测报警技术正朝着数字化、网络化、智能化的方向发展,集中监测、分散控制是新一代船舶监测报警系统的发展趋势。
1 功能与组成
船舶集中监测和报警系统主要实现对船舶机舱、轮机控制室以及船员住舱机电设备的参数和运行状态的集中监测实时报警,由1台集中监测报警装置和若干台就地监测装置组成[1]。就地监测装置的功能是对本地重点机电设备运行状态进行就地监测和报警,在主控制室设置1台集中监测报警装置,用来对全船各部位的监测数据进行集中显示和报警,为指挥员提供集中的参数报警状态指示。
1.1 CAN总线通信
船舶集中监测和报警系统选用CAN总线作为系统通信总线。CAN总线是现场总线的一种,在工业控制、船舶制造等领域均有广泛的应用。CAN总线为支持多主机通信方式,采用短帧数据结构,具有速率快、抗干扰能力强、可靠性好、灵活易用、容错性好和链接方便等优点。
1.2 系统组成
基于CAN总线设计的船舶集中监测系统结构见图1。
图1 系统组成框图
CAN已经成为国际标准ISO11898和ISO11519,同时还是国际船用标准。CAN总线技术规范包括A和B 2个部分。2.0A给出了CAN技术规范版本定义的CAN报文格式,而2.0B给出了标准帧和扩展帧2种报文格式,标准帧的ID占11位,扩展帧的ID占29位,这里采用的29位扩展帧和8个数据字节,通信波特率为250kbps,格式定义见表1。
表1 CAN报文格式定义
2 硬件设计
采用PHILIPS公司的LPC2294芯片作为集中监测报警装置的主控CPU,这款基于32位ARM7内核的CPU最大特点是自带了4路互连的CAN控制器,并且具有先进的全局验收滤波器,全局验收滤波器可以识别所有CAN总线的标准帧和扩展帧标示符[2]。
CAN通信收发模块电路见图2,使用TJA1040芯片作为CAN收发器,主要功能是将CAN控制器的逻辑电平(CANTXD、CANRXD)转换为CAN总线的差分电平(CANH、CANL)。
图2 CAN通信收发模块电路
集中监测报警装置硬件基本原理见图3,以LPC2294作为核心部件的主节点控制器[3],完成了船舶集中监测和报警系统数据传输与交换控制,实现了对船舶系统的集中监测和报警。
图3 集中监测装置硬件组成框图
集中监测报警系统与船舶航行安全密切相关,监测值和报警显示需要易于指挥员观察,因此选用数码管进行监测值的显示,由于CPU的I/O资源有限,考虑到LPC2294自带了I2C总线控制器,因此使用了I2C总线驱动芯片ZLG7290驱动5位8段数码管扫描方式,驱动电路见图4。
图4 数码管驱动电路
3 软件设计
集中监测报警装置的软件采用模块化设计,包括数据处理模块、CAN控制模块、显示与报警模块、数码管驱动模块等[4]。主程序流程见图5。
图5 主程序流程
集中监测报警装置软件的2个主要构成部分是CAN总线收发程序和I2C驱动显示程序。基于LPC2294芯片CAN总线控制器的发送与接收程序流程分别见图6和图7。
图6 CAN总线发送程序流程
图7 CAN总线接收程序流程
由图6可见,在启动发送数据的命令后,CAN控制器必须要将缓冲区内的数据发送完毕,才会将该帧数据是否发送成功的状态返回,这样如果在发送程序里一直等待数据发送完毕,会使整个程序的执行效率大打折扣。所以为了避免这种情况的发生,该函数在启动发送之后就立即返回。因此我们专门在软件中加入了查询TCS状态位来验证数据发送成功。
LPC2294芯片为ARM-CAN控制器提供了配套使用的功能函数以供用户调用,常用的功能包括初始化函数InitCan,发送数据函数CanSendData,发送命令函数CanSendCmd,接收数据函数ReadCANRcvCyBuf,CAN中断处理函数CANIntPrg等[5],使整个ARM-CAN控制软件的编写难度降低,执行效率提高。
4 结语
船舶集中监测和报警系统作为船舶安全航行的重要保障,实时性、准确性和安全性是关键评价指标。有针对性地选择CAN总线作为系统通信总线,并且采用功能强大的ARM7系列芯片LPC2294作为集中监测装置的CPU,是船舶监测报警系统发展的需要。应用结果表明,船舶集中监测和报警系统满足对重点机电设备运行状态进行集中监测和报警的各项要求。
[1]张圣弢.现代船舶监测和报警系统的研究[D].大连:大连海事大学,2010.
[2]崔芮华,耿丽恺.基于LPC2294的CAN总线技术在智能脱扣器控制方面的研究[J].低压电器,2011(1):41-44.
[3]纪文支,陈国忠,唐加山.基于CAN总线智能节点的设计与实现[J].微型机与应用,2012,31(2):44-49.
[4]张 旭,郭 晨.船舶机舱监测报警系统[J].计算机工程与应用,2005(22):229-232.
[5]贾东永,孙印杰,陈 安,等.ARM嵌入式系统技术开发与应用实践[M].北京:电子工业出版社,2009.