基于CAN总线的水下航行器分布式控制系统的研究与设计*
2015-03-15吕志刚
吕志刚
(中国船舶重工集团公司第七一○研究所 宜昌 443003)
基于CAN总线的水下航行器分布式控制系统的研究与设计*
吕志刚
(中国船舶重工集团公司第七一○研究所 宜昌 443003)
论文将介绍一种应用于水下航行器的分布式控制系统的设计方法,该系统由中央控制单元、通讯部分和分布式控制器组成,具有连线简单、扩充方便、通讯稳定可靠、控制实时性高等特点。并对分布式控制器的硬件电路设计和控制软件作了阐述,该控制系统已应用于某大型水下航行器中,控制效果良好。
CAN总线; 分布式控制; dsPIC30F6014A; 水下航行器
Class Number TP273
1 引言
水下航行器控制系统是航行器信息处理和控制的主体,其设计好坏将决定航行器的整体行为和性能,航行器控制系统结构一般可分为三种类型[1]: 1) 集中控制方式:利用一台微型计算机实现全部功能,这种方式具有结构简单、经济的特点,但处理能力有限,难以满足高性能控制要求并且控制器风险高度集中。 2) 主从控制方式,用主从两个CPU进行控制,主CPU担当系统管理、航行器语言编程和人机接口功能;从CPU担当各个子模块的具体控制。 3) 分布式控制:普遍采用中央控制单元、子控制器二级分布式结构,中央控制单元负责整个系统管理以及运动学计算、控制算法、运动轨迹等,子控制器由多个CPU组成,每个CPU控制一个相应的执行机构,这些CPU和中央控制单元通过总线形式相联系。这种结构的控制器工作速度和控制性能明显提高,是一种比较理想的航行器控制方式[9]。
2 控制系统结构
本控制系统采用分布式控制方式,因为在水下航行器控制系统中控制对象多而分散,若采用点对点的集中控制方式,控制模块与被控对象之间就需要大量连接电缆,会导致航行器内部布线复杂且制造和安装困难,并且存在故障隐患。分布式控制结构可以根据控制对象的位置来设计控制模块,从而缩短了控制对象与控制模块之间的距离。各模块通过CAN(Controller Area Network)总线通信,该方式仅需要一根线作为通信线。此外,分布式系统结构还可以降低单板的静态电流,增加单板的稳定性。本控制系统由中央控制单元模块、通讯模块和子控制器模块组成[2],如图1所示。
图1 分布式控制系统简图
2.1 中央控制单元控制模块
中央控制单元是控制系统的中枢,要求体积小,运算速度快,满足实时控制的要求,通常采用高性能工业控制计算机。中央控制单元主要负责与各分布式控制器进行通信,并根据这些控制器反馈的状态实现相应的控制策略,然后将控制命令通过CAN总线发送给相应的子模块。主控制模块的微控制器采用了可靠性高、抗干扰能力强的专用通信芯片SJ1000,其内部集成了CAN控制器,控制程序流程如图2所示。
图2 控制程序流程图
2.2 通讯模块
航行器的分布式控制系统中,对通信方式的选择至关重要,中央控制单元和各节点控制器间的通信既要满足硬件连接简单,扩充方便,又要满足通信的高可靠性和实时性。本设计采用CAN总线作为通信标准,CAN总线是一种有效支持分布式和实时控制的串行通讯网络,与一般的通信网络相比具有可靠性高、实时性和灵活性好的优点,非常适合作为航行器控制系统中的通信方式。
在控制系统中,中央控制单元通过PC104板中集成的CAN通信接口连接到CAN网络,在中央控制单元中调用PC104主板卡提供的CAN模块驱动涵数,来实现CAN通信的管理和监控。CAN网络各设备间通过双绞线连接,因为双绞线的特性阻抗为120Ω,为了增强CAN通信的可靠性和抗干扰性,在CAN网络的两个端点加入120Ω的抑制反射的终端匹配电阻[7~8]。
图3 CAN通信原理图
2.3 子控制器模块
子控制器模块是整个控制系统的底层,与各节点驱动电机集成在一起,实际上是一个单独的功能控制和驱动模块,主要用来控制各个节点功能的具体执行过程,子控制器接收中央控制单元的控制命令,对各个节点的功能进行控制,同时把底层的信息反馈给中央控制单元,便于中央控制单元协调规划,统一管理。所有的子控制器的通信模块和微处理器在硬件上完全相同,根据各节点的功能控制差异,内部下载的软件程序有所不同。各个子控制器是整个控制系统的核心,它的性能好坏直接关系到水下航行器的整体性能。
3 控制器硬件系统设计
控制器硬件系统结构可分为主处理器单元、电源及电源隔离电路、CAN通信接口电路、检测电路、驱动电路等模块,具体电路形式如图4所示。
图4 控制系统硬件电路
3.1 主控制器芯片
本设计核心控制芯片采用了微芯公司的dsPIC30F6014A单片机,该芯片混合了高速运算能力和MCU高性能控制特性于一体,提供了许多外设,包括16位比较/PWM输出功能、数据转换接口(DCI)、UART模块、两个CAN总线模块、3线SPI模块、16位捕捉输入功能、12位模数转换器等见图5所示[5],因此非常适合于对实现航行器各功能进行数字控制。
图5 主控制器功能组成模块
3.2 CAN接口电路
dsPIC30F6014A芯片内集成了CAN控制器,要完成数据帧的收发还需要外加CAN驱动芯片,本设计采用微芯公司的MCP2551作为CAN驱动器[10]。为了增强抗外部干扰,在dsPIC30F6014A的CTX和CRX引脚与CAN驱动器之间加两个高速光电耦合器6N137[6]。
引脚编号引脚名称引脚功能1TXD发送器数据输入2VSS接地3VDD提供电压4RXD接收器数据输出5VREF参考输出电压6CANLCAN低电压I/O7CANHCAN高电压I/O8Rs斜率控制输入
图6 MCP2551封装类型和引脚信息
3.3 电源隔离电路
本系统设计中电源的隔离采用小功率电源模块(DC/DC)和滤波芯(BNX002)片来实现,如图7所示。
图7 电源隔离电路
4 控制系统软件设计
系统中各个ECU通过CAN总线发送接收命令,实现与中央控制单元通信,从而实现相应的功能和状态的反馈,软件的设计是基于MPLAB_C30软件编写的,程序主要由CAN初始化、发送数据和接收数据三部分组成,如图8所示。
图8 主程序流程图
5 结语
本文设计的系统采用分布式控制,采用CAN总线作为通信方式通信,和过去航行器控制中常用的RS232、RS485总线相比具有通讯稳定可靠、实时性高等优点,且结构简单、成本低。在分布式控制器中选用了dsPIC30F6014A作为控制芯片,既能方便地利用丰富的外围模块实现控制功能,又能以较快的运算速度实现较复杂的数据处理,克服了过去集中式控制系统中的中央控制单元任务集中、任务多等缺点。该控制系统即插即用,功能扩展和故障处理方便、连线简单;并且缩短了模拟信号的传输距离,有效地该善了抗干扰能力。
[1] 范永,谭民.机器人控制器的现状及展望[J].机器人,1999,21(1):75-80.
[2] 刘华,程莉,等.机器人控制器与被控机器人的通讯方法研究[J].机器人技术与应用,2002(4):34-37.
[3] 邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996.
[4] 杨飞,郑贵林.基于CAN总线的监控系统设计[J].微计算机信息,2005,21(7):34-36.
[5] 芯片公司.dsPIC30F6014A数据手册[M].钱德勒:芯片公司,2006.
[6] 芯片公司.MCP2551 CAN高速接收器数据手册[M].钱德勒:芯片公司,2006.
[7] Sanfridson M.分散式实时计算机控制系统的时间问题[R].斯德哥尔摩:机械设计皇家技术学院机电一体化实验部技术报告,2000.
[8] Shi G Y.用于典型Iob-shop排定问题的遗传算法[J].系统科学国际期刊,1997(1):25-32.
[9] Eker J, Hagander P, Arzen K E.实时控制任务反馈调度器[J].控制工程实践,2008(12):1369-1378.
[10] 杨洁.CAN总线在移动机器人中的应用研究[D].西安:西安科技学院,2002.
Research and Design of Distributes Control System of the Underwater Vehicles Based on CAN-bus
LV Zhigang
(No. 710 Research Institute, CSIC, Yichang 443003)
This paper describes the design of a distributes control system method used in marine vehicles, This system consists of the center control unit(CCU), communications component and distributes controller, which have simple connection, the expansion of convenient, reliable communications and real-time high’s control characteristics. Besides distributes controller’s hardware circuit and control software are described, The control system has been applied to a large marine vehicles, which has good control effect.
CAN-bus, distributes control system, dsPIC30F6014A, underwater vehicles
2014年10月2日,
2014年11月18日
吕志刚,男,硕士,工程师,研究方向:水中兵器学。
TP273
10.3969/j.issn1672-9730.2015.04.039