基于C8051F040的船舶喷水推进控制报警系统设计和应用
2012-08-11章郁泱李长海周冠泽
章郁泱 李长海 周冠泽
(中国船舶及海洋工程设计研究院 上海200011)
0 引 言
喷水推进作为船舶的一种推进方式,已越来越广泛地应用于各种高速船舶、中低速浅吃水工程船上。喷水推进装置由进水流道、喷水推进器、操舵倒航机构、控制系统、液压系统等几大部分组成。其中报警系统是喷水推进控制系统中重要的组成部分。
船舶行驶时,喷水推进装置长时间工作在高温、高湿、震动的环境下,容易发生故障,需要通过报警系统及时、准确地发出报警,以保证船舶行驶的安全性。报警系统设计采用Silicon公司C8051F040单片机(下文简称MCU),其主要针对船舶喷水推进控制系统产生的故障进行报警。
1 系统原理和功能
船舶喷水推进控制系统故障来源分为电源故障、操控系统故障和液压系统故障。电源故障主要为液压动力电源(AC380 V)故障和控制电源(DC24 V)故障。操控系统故障则包括上、下位机故障、反馈装置故障、主机遥控故障和通信故障等。液压系统故障是指液压系统中泵站、管路、阀件等发生故障,如液压泵站滤器堵塞、液压油位低、液压油高温和液压油压力低等。
当故障发生时,由MCU数字I/O引脚采集故障信号,经软件滤波、逻辑判断后,发出报警控制信号并驱动报警负载,报警方式为声、光形式;同时通过CAN总线将报警信号从舵机舱传送至驾驶室进行报警和显示,并根据需要将重要报警信号发送至相关设备进行状态变更处理,以确保航行安全。所有报警信号通过CAN总线送至上位机进行存储,为后续故障分析与处理提供可靠数据。
本设计基于双CAN总线组成全船网络进行通信。图1为该报警系统原理图。
图1 报警系统原理框图
2 硬件设计
报警系统的硬件电路设计主要包括单片机及I/O外围接口电路。
2.1 单片机的选择
系统控制核心选用Silicon公司的C8051F040单片机(MCU),该型单片机集成度很高,具有高速、流水线结构的8051兼容的CIP-51内核,64个数字I/O引脚和4 352(4 k+256)字节的片内RAM。片内集成了一个CAN2.0B控制器、一个12位100 kspsADC输入、64 kB可编程FLASH存储器、可寻址64 kB地址空间的外部数据存储器接口、5个通用16位定时器和片内看门狗等功能[1]。通过MCU硬件电路可以实现对故障信号的采集以及控制报警负载与MCU的接口连接。
2.2 I/O外围电路的设计
根据船舶报警系统规范要求并结合船舶行驶工况条件,报警系统电路设计有以下几个关键技术:
(1)多故障信号采集点
喷水推进控制系统故障信号源较多,以开关量信号和模拟量信号为主。MCU具有64个数字I/O引脚,每个引脚带有数据锁存功能,可采集大量开关量故障信号并通过软件从相应寄存器中读取数据进行处理。MCU还设有4路模拟量专用采样通道,配合12位ADC模数转换和MCU内部基准电源,可对模拟量故障信号(例如液压温度、压力、流量、主机转速等)进行采样,通过软件处理及时发出报警信号。
(2)故障信号声光报警功能
根据《海上高速船入级与建造规范》第8章第3节内容规定,所有故障报警具备同时发出视觉和听觉报警信号,且视觉信号应清晰可见、听觉信号应有足够的响度[2]。
本系统在驾控室设有故障报警声光指示单元,由蜂鸣器发出声报警,发光二极管发出光报警。在船舶昼航时,阳光照射强度较大,为了使光报警能够在昼航时清晰可见,采用几个发光二极管并联工作方式来提高光报警的视觉效果。经过实际测试:采用DC 24 V为工作电压,蜂鸣器工作电流为10 mA左右。使用并联方式后,发光二极管工作电流将达到20 mA或更高,声、光完全满足使用要求。但MCU数字I/O引脚的驱动能力为uA级别,需增加蜂鸣器和发光二极管工作所需的驱动能力。为此,本系统设计了基于ULN2803的驱动电路(见图2)。
图2 基于ULN2803的驱动电路原理图
ULN2803又名“达林顿晶体管矩阵”,由8路驱动器集成,最大电流增益可达500 mA。图2中的(1)~(8)号引脚为输入端,与MCU相连并受其控制;(11)~(18)号引脚为输出端,连接所需驱动负载(指示灯、蜂鸣器);(9)号引脚接地;(10)号引脚作为保护用接电源正。若驱动负载为感性负载,在开关过程中会产生低于地电位和高于电源电位的反电动势,很容易击穿器件,接电源正利用ULN2803内部钳位二极管可保护线圈通断时的反电动势击穿器件。
(3)适应恶劣环境能力
报警系统在船舶上的工作环境恶劣,例如:高温、高湿、振动、盐雾和强干扰源经常会使设备损坏或工作不正常。为了在各种环境下系统能够正常工作,本设计选用陶瓷封装的芯片,其优点是散热能力好;并在线路板上施加了三防措施,保证了控制核心部件(PCB电路板)长久可靠工作。在信号的输入、输出部分应用了隔离技术,对内部MCU和主要芯片工作电源与外部故障信号及负载工作电源进行物理隔离。使用TLP521光电耦合器,组成经典光耦开关电路,如图3所示。经调试验证、电源隔离后,整个系统的抗干扰能力得到提高。
图3 光耦开关电路
报警系统采取如上设计后,通过了高温湿热、振动、盐雾以及电磁兼容等多项试验。表明本系统在恶劣环境下工作能力强,系统可靠性得到强化。
(4)CAN总线的应用
根据《海上高速船入级与建造规范》第8章第3节内容规定:在实施控制功能的控制站,应设有报警装置[2]。
驾控室是喷水推进控制系统实施控制功能的主要场所,因此必须在驾控室设报警装置。而喷水推进控制系统故障信号大多集中于舵机舱内,所以,故障信号采集处理单元建立在舵机舱内是最佳方案。此时,如何将舵机舱报警单元采集处理的故障信号传递至驾控室报警单元报警并显示成为设计的关键。若采用信号延伸的方式可将故障信号引入驾控室内,但也由此会造成大量的敷线工作及可能带来信号长距离传输和干扰问题。本设计是通过CAN总线来解决驾控室报警单元与舵机舱报警单元的报警信号传递,并采用双CAN冗余设计,增加信号传递的可靠性。
图4 双CAN报警通信网络
CAN总线属于总线式串行通信网络,采用了许多新技术以及独特的设计,与一般的通信总线相比,CAN总线具有可靠性强、实时性好和灵活等特性[3]。本系统采用双CAN冗余设计,分为CAN1、CAN2且互为备用。由MCU片内集成CAN2.0B控制器与CTM1050T通信收发模块组成CAN1通信;另由SJA1000CAN控制器芯片和CTM1050T通信收发模块组成了CAN2通信。
本系统中的报警信号,尤其是重要的信号不仅在第一时间告知船舶驾控人员,而且还可通过CAN总线及时地发送至上、下位机及主机遥控系统等重要的船用设备,采取相应的应急措施,确保船舶航行安全,做到信号人机共享。双CAN冗余设计又能使通信网络的可靠性更强。
图5 CAN总线电路图
3 软件设计
MCU采用Silicon Lab的专利CIP-51微控制器内核[1]。CIP-51与MCS-51TM指令集完全兼容,其采用流水线结构,与标准的8051结构相比,指令执行速度有很大提高,可以更好地满足船舶报警迅速、准确的要求。本设计的软件采用C语言开发,主要功能有:
3.1 主控程序设计
主要完成系统初始化、变量初始化、采样数据并处理以及报警控制等功能。报警系统要满足真实性好,无误报警现象,在系统初始化完成后,重点设计在于故障信号采样的软件处理。
本设计运用循环语句对数据口的开关、数字量信号进行反复采样,通过新旧采样值的比较确定故障状态。开关、数字量信号是指非连续性信号的采集和输出,它有0和1两种状态。通过数字I/O引脚将采样到的故障信号送入相应控制寄存器中,锁存信号数据状态直至下一次发生变化为止。
以P1口为例:定义字符型变量alarm,将其赋值给P1口控制寄存器,循环读取P1口寄存器中数据。若以0为正常、1为故障信号,则当读取到的数据由0变为1时,表示采样到故障信号。
另外,运用MCU内部定时器对采样信号进行延时判断处理,增强数据采样的真实性。
报警控制是指发出某个控制指令对报警信号进行操作。本设计中报警控制包括:“试灯”、“应答”和“消音”。采样到的故障信号经过MCU处理后点亮相应的指示灯并发出闪烁光,蜂鸣器发出声响。“消音”指令可消除蜂鸣器声响;“应答”指令使灯光变为平光,故障排除后报警指示灯光保持直至接收到“应答”指令后熄灭;“试灯”指令可对报警站所有报警指示灯进行手动试灯自检。
3.2 CAN通信程序设计
CAN通信程序设计需先将两路CAN通信的变量初始化,并对相关寄存器进行设置。根据CAN数据帧定义将所需发送数据赋值于数据场中,数据场可由0~8字节组成,通过对发送寄存器设置和使用将数据发送至CAN网络中。设计中的重点是接收CAN通信其他节点数据。CAN通信可以连接很多节点,每个节点拥有自己独立的标识符,要从众多节点中获取有用的数据,并且屏蔽其他数据,需要对通信接收进行过滤。本设计运用Switch函数来实现CAN网络多节点数据接收过滤的功能。
图6 报警系统软件流程图
4 结 论
基于C8051F040单片机的船舶喷水推进控制报警系统是典型的带CAN总线单片机报警系统,现已成功用于两型搜救船上,系统运行稳定,工作可靠。随着喷水推进装置的广泛应用,本报警系统也将在现有基础上不断优化,获得更好的发展。
[1]新华龙电子有限公司.C8051F040混合信号ISP FLASH微控制器数据手册Rev 1.4[M].2004.
[2]中国船级社.海上高速船入级与建造规范[M].北京:人民交通出版社,2005.
[3]史久根,张培仁,陈真勇.CAN现场总线系统设计技术[M].北京:国防工业出版社,2004:21-22.