0 引言
作为一种面向水下航行器的新型仿生推进装置,波动仿生推进器主要模拟依靠身体波动式推进的鱼类的游动方式,以单柔性长鳍的波动推进为基础,利用多背鳍之间的协同控制来产生推力、升力、偏航和俯仰力矩。在机构设计上,一个单柔性长鳍由若干根鳍条组成,通过对这若干根鳍条进行不同的配置,可以实现单柔性长鳍不同的波形。而波形参数(波长、波幅、波频、波传播方向等)的不同将直接影响到单柔性长鳍所产生推力的大小。在研究初期,需要对单柔性长鳍进行灵活控制,以便确定推进效率最优的波形参数。为此,我们设计了一种多电机独立控制方案,即由一个电机控制一根鳍条,通过电机之间的协调来实现对单柔性长鳍的波动控制。
CAN(Controller Area Network)总线,又称控制器局域网,是Bosch公司在现代汽车技术中领先推出的一种多主机局部网,也是一种串行通讯协议。其卓越的可靠性和传输的高速性,使它能够有效地支持具有很高安全等级的分布式实时控制。CAN总线现在已广泛应用于工业现场控制、智能大厦、环境监控等众多领域,从高速的网络到通用的多路接线都可以使用。在汽车电子行业里,使用CAN总线连接发动
机控制单元、传感器、防刹车系统等,其传输速度可达1Mbit/s。波动仿生推进器多电机系统内部通讯总线与汽车内部总线有很多相似的特性,如都处于强机械震荡、强电磁干扰环境等,而且CAN总线在机器人内部通讯系统中的应用已经有了许多成功的先例。因此在波动仿生推进器的内部通讯总线设计中采用CAN 协议。
1 系统总体结构
水下波动仿生推进器采用分级控制的思路,总体网络结构如图1所示。在岸上,以一台IBM-PC机作为操控平台,实现操纵命令的给定、弹载内部运行状态的监测与可视化管理以及人机界面的功能。它通过RS-232总线连接到仿生推进器内部的主控上位机PC/104上。PC/104是仿生推进器运动控制的核心模块,负责实现除底层电机控制模块以外的所有上层控制算法,包括多电机的波形控制、姿态与深度测量、安全状态监控等。其中,多电机的波形控制是通过PC/104对底层若干个电机控制节点的协调来实现的,通过采用基于CAN现场总线的串行通信协议,保证了通信的可靠性及实时性。
在本系统中,核心控制部分采用SBS公司的PC/104模块,并通过该公司集成的基于PC/104的CSD-CAN总线控制器与波动仿生推进器内部的各控制节点组成CAN通信网络。在底层各电机控制节点上,采用日本安川公司模块化SGMAH04型交流伺服电机和相应SGDM04ADA型伺服驱动器。该伺服驱动器可通过自带的RS-232串口(CN3)与数字操作器或者PC联接,通过编码器接头(CN2)联接编码器至伺服电机,同时它还提供一个实时I/O端口(CN1)可与运动模块MP910等或其它上级装置联接。向其I/O端口发送脉冲序列可以对电机进行速度和位置控制,向其串口发送命令指令可以获取电机当前的速度和位置信息。这样,我们可以跳过最底层与电机接口部分的软硬件开发,而通过单片机直接对伺服驱动器进行控制。在各个电机控制节点上,研制相应的CAN智能节点以实现与弹载上位机PC/104的通信。
波动仿生推进器中CAN网络必须具备波形控制和状态监控两大功能。对于该多电机系统,各个节点相互独立,通过在PC/104中对这若干个节点进行合理的调配来实现波动仿生推进器的波形控制功能。另外,各CAN节点实时监测本控制节点对应电机的工作状态,并将其返回给上位机;同时,各CAN节点定时监测节点本身的工作状态,利用CAN总线协议强大的错误处理功能对各种可能出现的错误进行分析处理。
2 CAN网络的硬件方案
由图1可知,各个CAN节点直接挂接于同一个CAN网络。它们的软硬件组成结构完全一致,硬件组成框图见图2。
系统中的各CAN节点采用的都是智能节点,即都由微控制器和可编程的CAN控制芯片组成。从图2可以看出,各CAN节点电路主要由微控制器AT89C51、独立CAN控制器SJA1000、CAN收发器82C250、高速光耦6N137、拨码开关地址输入电路、电源监测与看门狗电路以及面向伺服电机的部分电路组成。
由于采用了模块化的伺服电机驱动器,各控制节点只需实现简单的伺服控制功能,故采用Atmel公司的8位单片机AT89C51作为微控制器。CAN控制芯片完成CAN的通信协议,主要由实现CAN总线协议的部分与实现与微控制器接口部分的电路组成,这里采用的是PHILIPS公司的SJA1000。它是一种独立CAN控制器,具有BasicCAN和PeliCAN两种工作模式,其中PeliCAN模式支持具有很多新特性的CAN2.0B协议。8