舰船科学技术  2018, Vol. 40 Issue (11): 144-147   PDF    
基于CAN总线分布式伺服系统研究
宋辉     
中国船舶重工集团公司第七一三研究所,河南 郑州 450015
摘要: 为了满足伺服系统多轴化控制和分布式驱动需要,根据CAN总线互连节点规模数量,介绍了2种CAN总线分布式伺服控制方案,设计出标准伺服控制模块和双路CAN总线接口,并分析CAN总线数据协议及传输实时性,通过试验表明CAN总线分布式控制满足性能要求,可以应用于舰炮伺服控制系统。
关键词: 伺服控制     CAN总线     实时性    
Research on distributed servo-control system based on CAN bus
SONG Hui     
The 713 Research Institute of CSIC, Zhengzhou 450015, China
Abstract: In order to meet the multi-axis control and distributed driving needs of the servo system, according to the number of CAN bus nodes, this paper introduces two kinds of CAN bus distributed servo control scheme, design a standard servo control module and dual CAN bus interface, and analyze the CAN bus data transmission protocol and real-time performance, through the experiments show that the CAN bus distributed control meet the performance requirements, can be applied to naval gun servo system.
Key words: servo-control     CAN bus     real-time performance    
0 引 言

随着大功率驱动和多轴伺服技术发展,传统机械部件完成的功能可以由伺服系统实现,越来越多的机构动作被伺服控制所取代,多轴之间无需通过硬性的机械啮合联接,可以实现快速、高精度的多轴伺服及同步控制。在舰炮装备上,除瞄准、稳定以及引信测合等随动系统以外,摆输弹机构、补供弹机构等也可广泛采用伺服控制,实现舰炮、弹库的全电驱动和多轴化伺服控制,大大简化了舰炮系统机械结构。

工业现场总线技术的发展,站点间总线刷新率大幅提高,伺服轴传输信息得到及时更新,为分布式驱动控制提供了保障。CAN总线是应用最广泛的现场总线之一,主要用于各种设备监测及控制。它是一种有效支持分布式控制的串行通信网络,具有多主通信的灵活通信方式,具有实时性强、传输距离远、抗干扰性强、成本低的特点[1]

舰炮控制系统采用CAN总线连接各伺服机构和IO设备,可以满足舰炮系统多轴化和实时性伺服控制需要,实现了现场设备的灵活分布式部署,大大减少了伺服控制和伺服驱动器之间的大量接线。舰炮采用现场总线连接,方便系统硬件扩展,当伺服系统轴数增加时,对系统硬件结构没有影响,便于控制系统的扩充和裁减。

本文针对舰炮伺服控制需要和分布式控制节点规模数量,给出单级、两级CAN总线分布式伺服控制系统方案,以及设计出双CAN总线接口伺服控制模块,分析了CAN总线数据传输机理和实时性要求,通过试验验证CAN总线分布式伺服控制满足舰炮控制需要。

1 系统结构方案

舰炮伺服控制系统包含方位、高低瞄准伺服系统、摆输弹伺服系统、以及补供弹伺服系统,由系列伺服控制模块和伺服驱动器完成伺服控制,并采用CAN总线互连实现分布式控制。根据分布式控制需要和CAN总线互连节点数量,伺服系统结构有单级、两级CAN总线互连2种结构方案。

图1所示,该方案可以实现传统舰炮方位、高低瞄准系统分布式伺服控制。系统所有节点,包括显示控制模块、伺服控制模块和伺服驱动器,均采用单级CAN总线互连[23]。节点0显示控制模块是上位机单元,作用是对各伺服控制模块发送位置控制指令及位置状态显示,节点1和节点2伺服控制模块也采用该CAN总线给相应伺服驱动器发送启动和速度指令,并反馈驱动器运行状态。单级CAN总线传输数据包含位置控制指令、位置状态、速度控制指令和驱动器状态等,信息类别多,数据传输量大,节点数量增加,CAN总线传输数据容易拥堵,适用于舰炮伺服控制系统CAN节点数量少场合。

图 1 单级CAN总线分布式伺服控制系统结构图 Fig. 1 Single CAN bus for distributed servo control system diagram

针对伺服控制节点多场合,除瞄准伺服系统以外,还要实现摆输弹、补供弹伺服控制功能,系统结构采用两级CAN总线互连方案(见图2)。节点0~n采用一级CAN总线互连,节点1~n伺服控制模块为相同硬件的标准化模块,伺服控制模块与伺服驱动器之间采用二级CAN总线分布互连。其中,节点1伺服控制模块实现方位、高低瞄准伺服控制系统位置环控制,并由CAN总线发送速度指令控制伺服驱动器1和驱动器2。节点2伺服控制模块实现摆弹和输弹伺服系统控制,节点3伺服控制模块实现补供弹系统的供弹、扬弹和推弹伺服控制,并由CAN总线发送速度指令控制相应驱动器。该方案将伺服控制系统数据交互分解到两级CAN总线传输,每路CAN总线控制节点和数据量减少,提高了扩展性,适用于舰炮伺服控制系统规模大、CAN总线节点数量多场合。

图 2 两级CAN总线分布式伺服控制系统结构图 Fig. 2 Double CAN bus for distributed servo control system diagram
2 伺服控制硬件及接口

伺服系统由伺服控制模块、伺服驱动器和显示控制模块硬件等组成,伺服控制模块是围绕舰炮伺服控制设计标准化伺服控制模块,伺服驱动器和显示控制模块均为具备CAN总线接口通用化硬件单元。因此,主要介绍标准伺服控制模块和CAN总线接口设计。

2.1 伺服控制模块设计

伺服系统单级、两级CAN总线分布式控制方案均采用标准伺服控制模块,伺服控制模块硬件电路如图3所示。伺服控制模块具备两路CAN总线接口,以DSP为主控制芯片,选用可编程逻辑器件CPLD作为模块接口逻辑控制。DSP芯片内部集成1路CAN总线控制器,并用独立CAN控制器芯片SJA1000扩展另外1路CAN接口。伺服控制模块的SDC输入通道、D/A通道以及16路并行数据通道均通过CPLD配置端口。其他辅助电路包含电源适配电路、时钟振荡电路和存储电路[4]

图 3 伺服控制模块主要电路组成图 Fig. 3 Servo control module main circuit diagram
2.2 CAN总线接口设计

CAN总线接口设计包括集成CAN总线接口和独立CAN控制器接口设计方法。

集成CAN接口由DSP集成增强型控制器区域网路(eCAN)模块和驱动器接口电路组成。CAN总线采用独立电源及隔离器件与外部通信,提高了CAN通信可靠性和抗干扰性。CAN总线通信接口电路如图4所示,总线收发器选用UC5350器件,采用磁场隔离器件对CAN通信信号CANH,CANL进行隔离,相比传统光电隔离器件,具备更高和更稳定的传输速率。

图 4 CAN总线通信接口接口图 Fig. 4 CAN Bus communication interface diagram

独立CAN控制器设计选用控制器SJA1000[5],该芯片提供的微处理器接口方式为地址数据多路复用总线模式,而DSP芯片总线接口方式采用地址和数据分离的形式。SJA1000与DSP之间总线接口采用CPLD控制,SJA1000芯片地址数据线总线复用采用CPLD编程实现总线缓冲器件功能[6]。扩展接口电路图如图5所示。

图 5 SJA1000扩展接口电路 Fig. 5 SJA1000 expansion interface circuit
3 CAN总线传输协议

CAN总线分布式伺服控制结构,既要求高的数据通信速率,而且要求数据传输实时性,通过合理的通信协议设计降低伺服控制对网络带宽的依赖,提高实时性[78]。CAN总线网络采用“一主多从”总线型结构,每个伺服控制节点作为网络中从节点,显示控制模块作为网络唯一主节点,除发送指令和状态显示外,同时负责整个网络通信调度和运动时序控制。相比多主节点CAN总线工作方式,该方式避免了通过报文标识符竞争总线访问优先权,以及逐位仲裁造成的传输延迟。另外,显示控制模块向各伺服控制模块发送周期为20 ms的时间同步基准信号,通信节点分时占用总线,减少了CAN总线数据量过大造成的堵塞,保证了通信实时性,

CAN总线通信报文格式如图6所示,标识为29位标识符,b28,b27最高位固定为1,b24~b26为发送节点的节点号,b20~b23位表示报文数量从0开始,b0~b19位每一位表示一个接收节点,b19位代表显示控制模块接收节点,b18、b17、b16分别代表方位、高低、摆弹伺服控制模块接收节点,未用的均为0。显示控制模块发送给方位、高低、摆弹伺服控制模块的数据报文标识为1A03 1000H。

图 6 CAN总线邮箱消息数据格式 Fig. 6 CAN bus mailbox message data format

以显示控制模块与CAN总线传输为例,传输数据格式如表1所示。舰炮方位、高低、摆弹运动角度及反馈数据长度16位,有效位15位,符号位为最高位,最低有效位180°/215,数据范围–180°~+180°,方位、高低、摆弹前馈数据采用,16位2进制无符号数,有效数字为:0x0000~0x7FFF,表示速度范围为0~60°/s。输入输出信号为二进制数据,代表输出控制指令和状态反馈代码。

表 1 显示模块与伺服控制模块CAN总线传输数据格式 Tab.1 Monitor and servo control module cAN data format
4 试验情况

舰炮具备方位、高低、摆弹和输弹等多个伺服控制节点,系统采用两级CAN总线分布式互连。CAN总线传输速率设定512 kBit/s,方位、高低、摆弹以及输弹等伺服机构在速度为30°/s等速跟踪运动的实测误差曲线如图7图10所示。

图 7 方位瞄准等速跟踪的误差曲线 Fig. 7 Horizontal system constant velocity error curve

图 8 高低瞄准等速运动误差曲线 Fig. 8 Vertical system constant velocity error curve

图 9 摆弹机构等速误差曲线 Fig. 9 Swing gear constant velocity i error curve

图 10 输弹机构等速误差曲线 Fig. 10 Projectile mechanism constant velocity error curve

伺服控制中断数据处理周期设定Tc=10 ms,当CAN总线传输速率大于125 kbit/s时,数据报文延迟Tr<1.0 ms,远小于系统中断周期,伺服系统实时性和控制精度都能保证。从试验结果可以看出,伺服系统等速误差均满足系统给定指标要求:等速误差 $\leqslant $ 1.5 mrad(1.0 mrad≈0.057°)。

综上所述,分布式控制系统,关键需要解决伺服控制实时性问题。CAN总线分布式网络取代传统并行信号连接,采用数字化实时通信取代传统模拟信号,实现网络闭环控制。本文设计出了基于CAN总线分布式伺服控制系统,当CAN总线传输速率大于125 kbits/s时,CAN总线分布式伺服控制系统,实时性和控制精度满足使用要求。

参考文献
[1]
史久根, 张培仁, 陈真勇, 等. CAN现场总线系统的设计技术[M]. 北京: 国防工业出版社, 2004: 21–22.
[2]
任虹霞. CAN总线在交流伺服系统中的应用研究[J]. 微电机, 2010, 4: 85-87.
REN Hong-xia. Research and application of AC servo drive system based on CAN bus[J]. Micromotors, 2010, 4: 85-87. DOI:10.3969/j.issn.1001-6848.2010.04.026
[3]
马忠矿, 刘欣. 基于CAN总线的智能变频器的设计与实现[J]. 煤矿现代化, 2005, 2: 53-54.
MA Zhong-kuang, LIU Xin. Design and Implementation of the intelligent inverter based on CAN bus[J]. The Coal Mine on Modern, 2005, 2: 53-54. DOI:10.3969/j.issn.1009-0797.2005.05.035
[4]
宋辉, 戚艳玲. 一种CAN总线伺服控制模块设计[J]. 舰船科学技术, 2013, 12: 104-107.
SONG Hui, QI Yan-ling. Design of a servo–control module based on CAN bus[J]. Ship Science and Technology, 2013, 12: 104-107. DOI:10.3404/j.issn.1672-7649.2013.12.022
[5]
Philips Semiconducotors. SJA1000 Stand-alone CAN controller Datasheet. http://www.cn.nxp.com. 2000.
[6]
吴小华, 李常伟, 郑先成, 等. 基于TMS320F2812和CPLD的扩展CAN接口设计[J]. 机电一体化, 2009(6): 65-68.
WU Xiao-hua, LI Chang-wei, ZHENG Xian-cheng, et al. Design of the extended CAN interface based on TMS320F2812 and CPLD[J]. Mechatronics, 2009(6): 65-68. DOI:10.3969/j.issn.1007-080X.2009.06.012
[7]
王宝仁, 张承瑞, 史大光, 等. 基于CAN总线的分布式伺服系统通信协议的研究接[J]. 组合机床与自动化加工技术, 2007(2): 32-37.
WANG Bao-ren, ZHANG Cheng-rui, SHI Da-guang, et al. A study on communication protocol of CAN bus[J]. Based Distributed Servo System, 2007(2): 32-37. DOI:10.3969/j.issn.1001-2265.2007.02.010
[8]
刘艳强, 郇极. 基于双CAN总线的数字伺服通信协议[J]. 北京航空航天大学学报, 2006, 32(6): 729-733.
LIU Yan-qiang, XU Ji. Communication protocol of digital servo based on dual CAN bus[J]. Beijing University of Aeronautics and Astronautics, 2006, 32(6): 729-733. DOI:10.3969/j.issn.1001-5965.2006.06.025