-
-
jiang_0514 | 当前状态:在线
总积分:2005 2024年可用积分:0
注册时间: 2008-10-15
最后登录时间: 2023-04-25
-
基于RS-485网络的分布式水下机器人控制系统
jiang_0514 发表于 2009/4/1 12:38:20 1915 查看 1 回复 [上一主题] [下一主题]
手机阅读
1 概述
以往的水下机器人控制系统,特别是自治水下机器人控制系统,多采用集中式控制方式来实现机器人的控制,即由主控计算机实现对所有传感器和设备的数据采集及控制,因而主控计算机的任务繁重,效率也低。一旦主控计算机出现故障,整个控制系统将会瘫痪,系统的可靠性低;由于主控计算机的数据采集通道以及水密电缆的芯数是有限的,很难随意的增加设备或传感器,因此系统的可扩展性差。随着电子技术、传感器技术、通讯技术的发展,水下机器人能搭载的传感器越来越多,完成的使命也日趋复杂,传统的集中式控制方法无法满足水下机器人控制系统发展的需求。
针对控制系统研究及其它关键技术研究工作,新近笔者完成了水下机器人试验平台的研制工作。试验平台具有开放式的架构,可任意增加或减少所携带的传感器和设备,进行各种关键技术研究。其控制系统采用基于RS-485总线的分布式水下机器人控制系统,系统实现了模块化、灵活性和开放性。
采用总线形式的分布式控制方法具有模块化、可扩展性强、组态灵活、可靠性高等优点。在水下机器人控制系统中引入分布式控制还有如下特点:
? 可以将主控计算机的一部分任务分散到各个网络节点来实现,主控计算机任务减轻;
? 一旦主控计算机出现故障,故障应急节点可以直接对机器人进行控制,使其浮出水面,这样就极大的提高了水下机器人的安全性;
? 各节点间的信息交换是直接进行的,无须通过主控计算机这道瓶颈,大大提高了信息交互的效率,而且也提高了系统的可靠性;
? 增减传感器或设备节点时,只须将其接入总线网络中,无须对主控计算机硬件进行更改;
? 采用总线网络形式后每个节点的连线只有电源线和数据线,大大减少了水密电缆的数量和芯数,也大大减少了水密接插头漏水和线路故障的概率。
当前控制总线技术的发展速度很快,种类亦很多,应用较广的有:RS-485总线、CAN总线、FF总线、Profibus总线、LONWORKS总线等。由这些总线组成的控制网络各有特色。RS-485总线具有结构简单、组网容易、造价低廉等优点,已经在工业控制中得到了广泛应用,也适用于组成水下机器人分布式控制系统。
2 基于RS-485总线的水下机器人控制系统结构
图1为水下机器人试验平台控制系统结构框图。控制系统由若干功能节点组成,每个功能节点都具有RS-485接口,这些节点连接在一起构成了试验平台的RS-485网络。
图1 水下机器人试验平台控制系统结构
试验平台的RS-485网络由一个主控节点和多个分节点组成。主控节点采用体积小、功耗低的PC/104总线计算机,主要完成水下机器人的运动控制、路径规划、使命执行、数据记录等任务。而RS-485网络的各分节点主要完成数据采集、设备控制、电机驱动、硬件故障检测、漏水检测等任务,每个分节点的控制都是由AT90系列单片机(AVR单片机)来实现的,具有体积小、功耗低、灵活方便、系统易扩展等优点,每个节点在RS-485网络上都有一个唯一的地址供识别。RS-485网络的最大节点数为128,对水下机器人的控制系统来说是足够的。
3 RS-485网络的硬件组成
水下机器人RS-485网络的硬件主要由主节点(自动驾驶计算机)和各个分节点(AVR单片机节点)组成。
主节点由自动驾驶计算机和RS-485网卡组成。其结构如图2所示。
图2 主节点结构
RS-485网卡的主要功能为:
? 实现RS-232与RS-485之间的硬件电平转换;
? 实现自动驾驶计算机串口低波特率(33.6Kbps)与RS-485网络高波特率(250Kbps)的转换;
? 具有发送和接收9位地址字节能力;
? 具有线路侦听和自动避障功能,并通过握手信号与自动驾驶计算机接口。
图3 电机控制节点硬件原理框图
RS-485网络分节点的硬件主要由AVR单片机、RS-485驱动以及外围控制电路等组成。图3是电机控制节点的硬件原理框图。图中的AVR单片机需要控制多个电机的启停及运转,并检测电机电流、电压以及密封舱的温度、漏水等信号,这些信息通过RS-485网络与自动驾驶计算机节点进行交互。
4 RS-485网络通讯协议
RS-485分布式数据采集和控制网络与其他计算机网络相似,采用分层结构设计,以降低软件设计的复杂程度,使其可读性和可维护性更强。其底层协议是为更高层协议提供特定的服务,而屏蔽其服务的实现细节。根据OSI的7层标准网络体系结构模型,结合水下机器人数据采集与控制网络中数据量小、实时性强的特点,采用其结构模型中的3层:物理层、数据链路层和应用层。
(1) 物理层采用RS-485的电气特性,利用平衡差分信号来传输数据。
(2) 数据链路层接受应用层来的数据,并进行处理打包,产生校验码,按一定格式组成数据帧进行传输;同时,接收来自底层的数据,对数据进行校验、解包,转化成应用层能够识别的数据。
数据链路层所传输的帧格式为:
目的地址表示由哪个节点来接收此帧数据,可以由一个节点接收,也可以由若干个节点同时接收;源地址指明了此帧数据的来源;信息长度是本帧信息的字节数;信息类型指明了本帧信息的用途,是命令还是信息、是否需要返回响应数据等;信息0~信息n是具体的数据,采用二进制码形式,1路模拟量占用2个字节,8路开关量占用1个字节;数据帧的最后字节为校验和。
目的地址字节的数据长度为9位,而其余字节的数据长度为8位,这样分节点只有在接收到符合自己地址的信息后才接收数据,从而避免了AVR单片机串口接收数据时造成的频繁中断。
例如电机控制节点的信息帧内容有:打开/关闭电机、各个电机的输入给定值、电机运行状态、电机故障状态、漏水检测状态、电机电流、PWM舱温度、电机工作电压等。
(3) 应用层接收数据链路层送来的数据,同时向数据链路层发送数据。在主计算机节点的QNX实时操作系统中封装了应用层的库函数接口,这样上层程序可以直接操作底层的设备,而不必关心具体的硬件细节以及通讯协议。例如想获得当前罗盘数据,只需调用函数get_tcm2_compass()即可。
5 RS-485网络通讯方式
水下机器人试验平台的RS-485网络采用主节点轮巡和分节点自主发送相结合的方式,具有通讯线路侦听、自动避障等功能。
各分节点在正常时采用触发机制的通讯方式,即主节点向分节点发出命令,分节点根据命令进行响应,这样主节点可以方便的调度对各分节点进行采样的周期以及是否对某一暂时不使用的节点进行采样,避免几个节点同时向网络发送数据造成网络阻塞和非实时性,这样可以精确的保证通信的实时性并且提高了效率。
为了保证水下机器人的安全,网络中的各分节点应具有自主发送功能,即在水下密封舱漏水、电压异常、密封舱温度压力异常等紧急情况下,应及时向主节点报告;另外,两个分节点之间如果要进行信息交换,可以通过线路侦听,待线路空闲时再传送数据,跳过了主控计算机这道瓶颈;当主控计算机死机或故障时,具有应急功能的分节点可以与电机驱动节点直接通信,控制机器人的上浮运动,待机器人浮出水面后,无线电模块直接接收GPS模块的位置信息并向母船发送。要实现上述功能,主节点和各分节点RS-485接口电路应具有通讯线路侦听和自动避障功能,具体实现方法:某节点在发送数据前首先检测RS-485网络上是否有数据,如果检测到网络上没有数据时,先发送一个地址字节,同时检查其接收的字节与发送的字节是否一致,如一致则继续发送,如不一致,说明其它节点也在发送数据,造成了数据冲突,这时可以停止发送,延时随机的一小段时间再进行上述的步骤,实际应用表明,当RS-485网络的波特率为250Kbps时,网络运行顺畅,未出现过网络阻塞现象。
6 应用效果
本文所述的基于RS-485网络的分布式水下机器人控制系统,在试验平台上实现并已投入使用,经水池试验应用,证明所设计的水下机器人RS-485网络性能稳定、工作可靠、指令响应速度快,在故障、漏水等应急情况下能迅速采取措施,浮出水面并发送位置信息,完全满足水下机器人自治航行的实时性和高可靠性要求。
参考文献:
[1] 阳宪惠. 现场总线技术及其应用[M]. 北京: 清华大学出版社, 1999.