摘要:在对CANopen(Control Area Network Open)应用层协议通信机理研究分析的基础上,设计上位机为监控功能下位机为采集模块的船舶监控系统。以CANopen协议中的过程数据对象(PDO)完成船舱液位和压力的实时通信和监控,运用Labview软件编写了船舶监控系统的主界面,完成了发送和接收子程序的开发,模块具有较强的可移植性。设计的监控系统在船舶监控自动化领域有广阔的应用前景。
关键字:CANopen协议;船舶监控;过程数据;通信;Labview
中国分类号:TP393 文献标识码:A
Abstract:Based on the research and analysisof CANopen (control area network open) application layer protocol ,a shipping monitoring system has been designedwhich consists of upper-end monitoring system and a lower-end data acquisition system. The process data objects (PDO)in CANopen Protocolwas applied to communicate and monitor the cabin’slevelsand pressures. Themain interfaceas well as sending and receiving procedures of shippingmonitoring systemwere programmed by labview. The modules have a strong portability.Thedesigned shipping monitoring system has broad application prospectsin the field of shippingcontrol automation.
Key words:CANopen Protocol; hipping monitoring;process data objects; communicate; labview 0 引言
我国造船业目前国内科技水平不高,设计制造的船舶科技含量偏低。船舶制造过程中面临着几大趋势:设备的规模和数量越来越大,设备复杂程度提高,涉及的部门和行业越来越多。船舶监控系统是现代自动化船舶中最基本和最重要的系统,是提高船舶航行安全性,可行性、经济性的关键环节。现场总线技术能提高监控系统中信号的测量、控制和传输精度,为丰富控制信息内容,实现远程传送创造条件。
CAN总线具有可靠性、实时性、低成本、抗干扰性、兼容能力等多个方面的优势,普遍应用于船舶海运、公共交通,楼宇自动化,医疗设备以及食品加工、海事电子、汽车工业等领域。CANopen是一种开放的标准化现场总线协议,于1995年由位于德国的CAN自动化协会(CiA)提出并制订,定义了基于CAN的分布式工业自动化系统的应用标准以及CAN的应用层通信标准。作为CAN 总线的应用层协议,CANopen是一个基于CAL 的子协议,其采用面向对象的设计思想,具有很好的模块化特性和很高的适应性,通过扩展不同的行规可以适用于不同的应用领域。因此,CANopen目前成为欧洲嵌入式网络的主要标准协议。
1 CANopen协议通信机理[1]
CANopen的通信结构参考ISO/OSI模型,如图1所示。应用层是由CANopen设备协议和通信协议等构成;数据链路层和物理层是基于CAN控制器芯片和协议,遵守ISO 11898标准。良好的分层和面向对象的设计使得通信模型较为清晰。
1.1对象字典(Object Dictionary)
设备对象字典(OD:Object Dictionary)是CANopen协议的核心部分,是一个预先确定的,可通过网络访问的有序对象组:每个对象采用一个16 位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义
图1 CANopen通信参考模型
了一个8 位的子索引。对象字典也定义了各个设备参数、通讯参数,描述了设备的全部应用对象。OD的通用结构如表1所示。
表1 设备控制和状态对象的描述 索引 值 ...... …… 1000~1FFFF 通讯子协议区域(DS-301) 2000~5FFFF 制造商特定子协议区域 6000~9FFFF
...... 标准的设备子协议区域(DS-4xx)
……
1.2管理报文NMT(Network Management)
管理报文的主要功能是对设备状态进行管理、控制和及时发现设备故障。包括层管理,网络管理和ID分配服务,如初始化,配置和网络管理,节点保护等。
1.3服务数据对象SDO(Service Data Object)
SDO对对象字典进行访问,通过使用索引和子索引。SDO使客户机能够访问设备(服务器)对象字典中的项,主要用于在设备配置过程中传递参数或大数据块。SDO请求和应答报文总是包含8个字节,完成系统的参数配置、组态、设定PDO的格式。
1.4过程数据对象PDO(Project Data Object)
PDO对小型数据进行高速实时传输,数据从一个生产者传递到一个或多个消费者,它的优先级比SDO高。PDO消息的内容是预定义的,即假定生产者和消费者知道PDO的数据内容。PDO用于数据的发送和接收可分为TPDs(Transmit PDOs)和RPDs(Receive PDOs)。
1.5特殊功能对象
特殊功能对象包括同步(SYNC)、紧急事件(Emergency)和时间标记对象(Time stamp)、节点/寿命保护(Node/Life Guarding)以及Boot-Up。
2 船舶采集监控系统结构与实现
2.1系统网络结构
船舶监控系统主要由上位机监控主站,下位机数据采集从站组成[2]。主站与各从站之间采用CAN总线进行通信,屏蔽双绞线作为传输介质。主站对各个从站发出指令,收集总线上传输的模拟量和数字量信息,监控系统的运行状态,检测所有设备的运行参数。下位机从站采集设备相应参数,通过CAN总线传回上位机进行实时控制和保存。系统网络结构如图2所示。
图2 监控系统网络结构图
2.2 上位机监控系统设计
上位机由一台工控机,和一块插在ISA总线上的CAN适配卡组成。CAN适配卡有两种,即内置式卡—插在 PC机的扩展插槽中,和外置式卡—与PC机串口相连。本系统采用内置式插卡,它结构比较简单,采用双口 RAM与 PC机进行数据交换。双口 RAM具有两套数据线和地址线,同一数据单元可分别被 ISA总线和微处理器访问。本例中用到的接口卡如图3所示。
82C250是 CAN控制器与物理总线之间的接口部件,可完成对总线的差动发送和接收功能。82C250与ISO /DIS11898标准完全兼容,具有抗瞬间干扰、降低射频干扰、 热保护、总线与电源及地之间的短路保护等能力。
图3 CAN接口卡原理图
2.3 下位机数据采集系统设计
下位机由数字化传感器、放大滤波电路、微处理器、A/D数模转换、CAN控制器、智能执行器等组成,主要完成对船舶航行数据采集,船舱数据采集,货物数据采集任务。具体包括:主机油门、螺距操作、实际舵角、推进器,船舱压力、液位、温度等;以及船速、船位、船体应力、风向等一些状态信息[3]。考虑到仪器的通用性和可靠性,选择MC9S12C32芯片作为MCU。MC9S12C32集成了一个HCS12CPU 单元/32KB 的Flash/2K bit的RAM、一个异步串行通讯口(SCI)、一个8通道模数装换模块和一个CAN2.0A/B 接口。可以满足数据采集和CAN通信的要求。CAN控制器采用SJA1000芯片,SJA1000 集成了 CAN 协议的物理层和数据链路层的所有功能,可以完成对数据的帧处理。通信波特率最高可达 1Mbit / s。