祝石富 廖正勇
摘要:通过双CAN总线控制自动化船舶监测报警系统,对船舶主机的油压、油温等模拟量和水位等开关量进行监控,经实际运行表明该系统功能强、性能好、可靠性高,完全能满足船舶航行要求。
关键词:船舶;CAN总线控制;微控制器
引言
随着科学技术的飞速发展,船舶自动控制技术不断获得了应用、发展和成熟。船舶上的电子、电气装置也越来越多,关系也越来越密切,如:主机系统的监测与报警、各管路系统的压力监测、发电机电路系统的控制与报警、液位遥测及阀位控制等等,这些系统都影响着船舶的是否能安全航行。以前,这些控制监测系统之间都是没有通过总线构成网络,独立进行控制和监测,或者相关单元通过串行接口进行联系。为了保证船舶设备安全可靠地运行以及船舶营运的经济性、合理性,现在很多大型特种船舶设计并采用了基于双CAN总线控制的自动化船舶监测报警系统。通过该系统可以对各设备的参数进行实时监测,可以随时了解各重要运行参数和机电设备的运行状态,并实时存储、打印相关记录。当运行参数到达警戒值时,系统会自动发出声光报警,同时还可以对设备进行远距离操控。
CAN(Controller Area Network)总线是一种串行多主站控制器局域网总线。它具有很高的网络安全性、通讯可靠性和实时性,简单实用,网络成本低。实用于海事监控,汽车电子,智能大厦等多种工业环境,不但可以减少导线连接,并能增强诊断和监控能力。通讯媒体可以是双绞线、同轴电缆或光导纤维,数据传输速率可达1Mbit/s(此时通讯距离最长为40m)。
1.系统技术特性及构成
1.1 系统技术特性
船舶自动监测报警系统是基于先进硬件平台和智能软件平台,专门为船舶和工业数据采集领域设计的。基于双CAN总线的该系统拥有CAN总线系统的所有优点,本系统应用了最先进的控制芯片和采集芯片,融以先进的容错软件设计概念,有效抑制了电磁干扰,电源波动,环境温度变化,噪音干扰,震荡冲击干扰。本系统模块设计采用了超大规模集成芯片,硬件更加简洁,消除了传统运算放大器产生的零漂、失漂,测量精度得以保证,可靠性得以提高。
该系统网络采用CAN2.0B协议,具有二次开发方便,性价比高,系统故障检修方便,操作方便快捷等特点。
1.2系统构成
本系统主要由传感器,输入、输出模块,报警显示板(延伸报警显示板),液晶显示单元(含打印输出设备)构成,通过双CAN总线将若干单元模块连接起来。延伸报警显示板能将实时的报警信息传送到相关船员或集控室等地方。其设计的总体方案如图1所示,该系统采用两路双绞线作为CAN控制总线,互为备用,分别沿船舶两舷进行敷设。
该系统不加网关数据采集,开关量采集模块最大可扩展至1000点,4-20mA采集模块最大可扩展至500个点,热电偶(测量温度)采集模块最大可扩展至500个点,PT100(热电阻,测量温度)采集模块最大可扩展至500个点。一般沿海船舶的采集点在300个左右,内河船舶一般只有50个左右,如内河海事巡逻艇,基本能满足对船舶的监控需要。
1.3系统实现
船舶自动监测报警系统就是将船舶中所有这些独立控制单元通过CAN总线构成一个实时控制系统网络,各独立控制单元的指令发出去之后,必须保证在一定时间内得到响应。而且,船舶在实际运行过程中,众多节点之间需要进行大量的实时数据交换和共享,要不然就有可能发生重大事故,这就要求船舶上的CAN通讯网络有较高的波特率设置和可靠性。整个船舶的通信网络拓扑结构如图2所示。
该系统的采集输入、输出模块是其核心部分,这里仅以4-20mA的采集输入模块作为示例,其外部端口如图3所示,同样是采用双总线结构,互为备用,内部是数据采集的集成电路板。
通过串联,前一个设备的CANH端接到后一个设备的CANH端,前一个设备的CANL端接到后一个设备的CANL端,通讯电缆的外部屏蔽线接到任何一个设备的CAN通信通道的GND端。不过,CAN通讯网络的电缆千万不要接成星型结构。拨码开关第7位和第8位是终端匹配电阻,ON为选用,OF为切断,只有CAN总线的首端和末端模块才需要将这两位推上去,其余几位为网络的ID设置位。此时,在整个系统没有供电的情况下用万用表测量CANH和CANL端两根线之间的电阻约62Ω。
根据方案设计要求,本系统的CAN节点由ECU(P87C591)、CAN收发器(PCA82C250)和功能装置(传感器、执行器等)组成。根据时间响应的要求,本设计中采用传输速率为250Kbps的CAN通信网络。
P87C591是一个单片8位高性能微控制器,具有片内CAN控制器,从80C51微控制器家族派生而来。它采用了强大的80C51指令集并成功地包含了PHILIPS半导体SJA1000 CAN控制器强大的PeliCAN功能。全静态内核提供了扩展的节电方式。振荡器可停止和恢复而不会丢失数据。改进的1:1内部时钟预分频器在12MHz外部时钟速率时实现500ns指令周期。
总线控制器SJA1000是一种独立的控制器,广泛用于一般工业环境的控制器局域网(CAN),它不但是它是NXP半导体PCA82C200 CAN控制器(BasicCAN)的替代產品。而且,它增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新特性的CAN 2.0B协议。连接各种类型微处理器的CAN控制器SJA1000可完成物理层和数据链路层的所有功能。
由于P87C591已内置CAN控制器,模块内部再接SJA1000的CAN控制器,形成了双控制器结构,使得整个数据传输通道形成互为备用的两路结构,即冗余的双CAN总线,当在一路控制器发生故障时,另一路控制器就可以介入并承担故障控制器的工作,确保了数据传输的安全与可靠,减少了故障等待时间。
PHILIPS PCA82C250是一种通用CAN收发器,是CAN控制器与物理总线之间的接口,对总线提供差动发送能力,对CAN总线控制器提供差动接受能力,同时具有抗环境瞬间干扰、保护总线的能力。
电控单元的微控制器通过数据、地址总线与CAN 总线控制器(SJA1000)直接相连,由于CAN 总线控制器带有一个接收缓冲器和一个发送缓冲器,因此,CAN总线控制器的发送端口Tx0,接收端口 Rx0、Rx1分别与CAN总线发送接收器的TxD和RxD、Vref端口直接相连。为了增强CAN总线节点的抗干扰能力,SJA1000的TX0和RXO并不是与P82C250的TXD和RXD直接相连,而是通过高速光耦6N137后与P82C250相连,这样就很好实现了总线上各CAN节点间的电气间隔。不过,应该特别说明一点的是,光耦部分所采用的两个电源Vcc和Vdd必须完全隔离,否则采用光耦就失去了意义。电源的完全隔离可以采用小功率电源隔离模块或者带多+5V隔离输出的开关电源模块实现。这些部分虽然增加了接口电路的复杂性,却提高了接点的稳定性和安全性。
CANL和CANH是CAN总线的两条差分接收发送线(通常为屏蔽双绞线)。它们的端点间各接一个120欧姆的总线匹配电阻,当有节点占用CAN总线时,该节点的发送端(电平为3.5V)接CANH,接收端(电平为1.5V)接CANL;当无节点占用CAN总线时,CANL和CANH上的电平均为 2.5V。
2.软件实现
软件由CAN控制器初始化、CAN总线数据的发送和数据的接收三部分组合,程序采用C语言编写。
2.1 CAN控制器的初始化
在程序设计中,CAN控制器的初始化是软件设计的关键,这一部分关系到系统能否正常工作。CAN控制器的初始化主要包括中断的配置、定位时的配置、操作模式的配置、验收滤波器的配置等几项。
2.2 CAN总线上数据的发送和接受
2.2.1 查询方式的数据发送
当CPU发送数据时,发送缓冲区对写操作锁定,这样CPU必须检查状态寄存器的发送缓冲区状态标志(TBS),以确定是否可以将一个新信息放入发送缓冲区。如果发送缓冲区被锁定,则周期性查询状态寄存器,CPU一直等待发送缓冲区被释放;如果发送缓冲区被释放,CPU将新信息写入发送缓冲区并置位命令寄存器的发送请求标志(TR),起动数据发送。当发送完成状态位置位时,标志着CAN信息已经成功发送。流程图如图4所示。
2.2.2中斷方式的数据接受
如果CPU已经接收一个信息,该信息已经通过验收滤波器并放入接受FIFO,则产生一个接受中断,这样CPU能够立即将接收的信息传送到自身的信息存储器并置位命令寄存器的释放缓冲区标志(RRB),释放接受缓冲器。流程图如图6所示。
3.结束语
上述的产品已通过型式认可,并且已经在多条沿海船舶上使用,至目前为止还没有接到船户的不良反馈。试验及使用结果表明这种基于双CAN总线控制的船舶监测报警系统,可靠性强,可以大大提高船舶各系统的响应速度,较大地提高了船舶的工作效率。船舶计算机单元通过CAN总线进行通信,可以共享所有信息和资源,达到简化布线、提高系统的可靠性和维护性、减低成本、更好地匹配和协调各个控制系统的目的。
目前,CAN总线越来越受到船舶工业尤其是船舶自动化的重视,并且已被公认为最有前途的现场总线。随着我国近年来船舶自动化的飞速发展,技术的不断进步,CAN总线必将在船舶自动控制技术中得到广泛的应用。