一种分布式水下机器人控制系统的制作方法

文档序号:6420156阅读:177来源:国知局
专利名称:一种分布式水下机器人控制系统的制作方法
技术领域
本发明涉及水下机器人控制技术,具体地说是一种分布式水下机器人控制系统,它属于用在水下机器人控制的计算机控制设备。
背景技术
常规的水下机器人控制系统,特别是自治水下机器人控制系统,多采用集中式控制方式来实现机器人的控制,即由主控计算机实现对所有传感器和设备的数据采集及控制,主控计算机通过模拟/数字转换电路采集电压、电流等模拟量信号,通过数字量输入电路采集设备开关信号,通过串口电路采集串口设备的数据,主控计算机将这些数据进行处理后,通过数字/模拟转换电路输出控制量驱动电机,通过数字量输出电路输出开关信号对设备进行控制。因而集中式控制方式下主控计算机的任务繁重,效率也低;一旦主控计算机出现故障,整个控制系统将会瘫痪,系统的可靠性低;由于主控计算机的数据采集通道、地址和中断资源以及水密电缆的芯数是有限的,很难随意的增加设备或传感器,系统的可扩展性差。随着电子技术、传感器技术、通讯技术的发展,水下机器人能搭载的传感器越来越多,完成的使命也日趋复杂,传统的集中式控制方法无法满足水下机器人控制系统发展的需求。

发明内容
为了克服上述不足,本发明的目的是提供一种具有可扩展性强、组态灵活、软件通用性好、工作效率高、安全性高、可靠性高的分布式水下机器人控制系统。
为了实现上述目的,本发明的技术方案是采用RS-485网络作为分布式控制的核心,硬件由计算机主机节点和RS-485网络节点组成,其中计算机主机节点包括计算机主机和RS-232/RS-485转换器,RS-485网络节点以单片机为核心,主要包括系统状态检测节点、设备电源控制节点、电源管理节点、电机控制节点、应急处理节点、数据采集节点、串口设备节点;计算机主机节点以及所有的RS-485网络节点都通过RS-485接口连接在一起,构成RS-485网络;软件由计算机主机程序和各单片机程序组成,其中计算机主机程序包括RS-485网络驱动程序、各RS-485网络节点驱动程序、RS-485用户接口库函数,单片机程序主要包括系统状态检测程序、设备电源控制程序、电源管理程序、电机控制程序、应急处理程序、数据采集程序、串口设备程序;其中计算机主机的串口通过RS-232/RS-485转换器连接到RS-485网络上,通过RS-485网络与各个RS-485网络节点的单片机通信,各RS-485网络节点的单片机串口通过RS-485驱动芯片连接到RS-485网络上;所述RS-485网络驱动程序负责驱动RS-232/RS-485转换器,采用消息通信方法实现RS-485网络节点驱动程序与各单片机节点程序的数据交换;具体流程为启动后首先注册程序名,设置时间中断和串口中断,然后程序进入循环等待状态,如果定时时间到,则产生时间中断的消息,程序判断上次是否成功接收到数据,如果成功则经执行分配执行任务1~任务n中的某一任务,即设置当前任务为与某一驱动程序进行信息交换,然后计算校验和并向RS-485网络发送串口数据,发送完毕程序处于循环等待消息状态,如果接收到串口数据则产生串口中断消息,如果数据接收成功并且正确则把数据发送给该节点的驱动程序;如果定时时间到时仍未接收到某节点的正确数据,则重新通信,如仍没有接收到正确数据,则认为该节点故障,并把故障通过信息交换发送到该节点驱动程序;程序中的任务1~任务n是一个任务列表,程序根据一个从1至n的计数器来决定执行什么任务,即与某个节点进行通信,这个任务列表可以根据对不同节点的不同采样频率要求而制定;所述RS-485网络节点驱动程序包括系统状态检测节点、设备电源控制节点、电源管理节点、电机控制节点、应急处理节点、数据采集节点、串口设备节点等驱动程序,每个驱动程序负责实现对该节点设备的控制,各个网络节点驱动程序的结构相同;具体流程为启动后首先注册程序名,然后进入等待消息的循环中;如果接收到RS-485驱动程序的消息,则与RS-485驱动程序进行数据交换;如果接收到用户接口库发送的消息,则根据消息的内容进行判断任务类型;任务共有两种类型读取数据命令和控制输出数据命令,如果是读取数据命令,程序就把相应的数据进行处理为工程量,如果是控制输出数据命令,就把从用户接口库中接收的数据进行处理并存储在内存中,等到与RS-485驱动程序交换数据时发送给RS-485网络节点;在执行完上述任务后,程序与接口库函数交换数据,把获得的数据以及故障代码发送给用户接口库函数;所述RS-485网络节点节点的单片机程序通过RS-485网络与计算机节点通信,根据计算机主机的命令进行动作,并将数据发送给计算机节点;每个RS-485网络节点的单片机程序具体流程为程序运行时先执行初始化,然后等待串口中断,在串口中断中,程序接收RS-485网络的数据并根据接收的命令进行执行,并向RS-485网络发送数据;在定时器中断中,程序根据不同节点的需要同时执行数据采集、控制输出、计算、数据存储等任务;所述RS-485用户接口库函数采用目标文件形式提供给用户编制的上层控制软件调用,通过消息通信方法和共享内存方法实现对各RS-485网络节点驱动程序数据的访问。
与现有技术相比,本发明更具有如下优点
1.系统工作效率高。本发明是一种基于RS-485总线的分布式水下机器人控制系统,它以总线形式的把计算机主机的集中式控制任务分散到各个传感器和设备节点执行,可以将主控计算机的一部分任务分散到各个网络节点来实现,大大减轻了主控计算机的任务,实现系统效率的提高。
2.安全性高,采用本发明一旦主控计算机出现故障,故障应急节点可以独立的工作,完成应急处理工作,这样做极大的提高了水下机器人的安全性。
3.可靠性高。本发明采用总线网络形式后每个节点的连线只有电源线和数据线,大大减少了水密电缆的数量和芯数,从而减少了水密接插件漏水和线路故障的概率。
4.软件通用性好。本发明程序采用模块化设计,它具有开放式的架构,组态灵活,可任意增加或减少所携带的传感器和设备,又不会造成系统硬件线路的大幅改动,所以可扩展,易移植,既可用于有缆水下机器人控制,又可用于无缆水下机器人控制,应用范围广。
5.系统扩展性强。采用本发明预增减传感器或设备节点时,只须将其接入总线网络中并运行该节点的驱动程序,无须对主控计算机硬件进行更改,该总线上的最大节点数可以为128个。


图1是本发明的硬件组成框图。
图2-1是本发明的系统状态检测节点硬件结构图。
图2-2是本发明的系统状态检测节点硬件原理图。
图3-1是本发明的设备电源控制节点硬件结构图。
图3-2是本发明的设备电源控制节点硬件原理图。
图4-1是本发明的电源管理节点硬件结构图。
图4-2是本发明的电源管理节点硬件原理图。
图5-1是本发明的电机控制节点硬件结构图。
图5-2是本发明的电机控制节点硬件原理图。
图6-1是本发明的应急处理节点硬件结构图。
图6-2是本发明的应急处理节点硬件原理图。
图7-1是本发明的数据采集节点硬件结构图。
图7-2是本发明的数据采集节点硬件原理图。
图8-1是本发明的串口设备节点硬件结构图。
图8-2是本发明的串口设备节点硬件原理图。
图9是本发明的软件组成框图。
图10是本发明的计算机主机RS-485网络驱动程序软件流程图。
图11是本发明的计算机主机各RS-485网络节点驱动程序软件流程图。
图12是本发明的各单片机节点软件流程图。
具体实施例方式
下面结合附图和实施例对本发明作进一步详细说明。
本发明采用RS-485网络作为分布式控制的核心,硬件由计算机主机节点、多个单片机组成的RS-485网络节点组成,其中计算机主机节点包括计算机主机和RS-232/RS-485转换器,RS-485网络节点主要包括系统状态检测节点、设备电源控制节点、电源管理节点、电机控制节点、应急处理节点、数据采集节点、串口设备节点;计算机主机节点以及所有的RS-485网络节点都通过RS-485接口连接在一起,构成RS-485网络;软件由计算机主机程序和各RS-485网络节点的单片机程序组成,其程序包括RS-485网络驱动程序、各RS-485网络节点驱动程序、RS-485用户接口库函数组成,RS-485用户接口库采用目标文件的形式提供给用户编制的上层控制软件调用。
计算机操作系统为QNX,程序采用WATCOM C语言编制,单片机程序采用C语言编制,储存在单片机的电可擦除存储器里。
如图1所示,计算机主机的串口通过RS-232/RS-485转换器连接到RS-485网络上,与各个RS-485网络节点通信,计算机主机负责水下机器人的运动控制、使命下载、数据记录、与各个单片机节点的信息交互等任务,RS-232/RS485转换器实现计算机主机串口RS-232与RS-485之间的硬件电平转换,实现计算机主机串口波特率(9600bps~115200bps)与RS-485网络波特率(250kbps)的转换;各RS-485网络节点的单片机串口通过RS-485驱动芯片(如MAX487)连接到RS-485网络上,每个RS-485网络节点根据其实现功能的不同,配备不同的外设,如A/D、D/A、I/O驱动等。
如图2-1所示,系统状态检测节点以单片机为核心,负责检测计算机系统的工作电压、压力舱压力、漏水状态、水下机器人入水状态等,并通过串口连接到RS-485驱动芯片,实现RS-485接口与RS-485网络交换数据。如图2-2所示,第1单片机DA1-2采用AT90S8535芯片,通过端子J1-3的A/D0~A/D2三个通道检测计算机系统的工作电压,通过端子J1-3的A/D3~A/D7五个通道检测压力舱压力、温度等信号,通过端子J1-4的DI1~DI4检测四路漏水信号,通过端子J1-4的DI5检测水下机器人入水信号,第1单片机DA1-2的串口连接到第1RS-485驱动芯片DA1-1,第1RS-485驱动芯片DA1-1通过端子J1-2与RS-485网络连接。另外端子J1-1用于单片机程序的在线下载(以下同)。
如图3-1所示,设备电源控制节点以单片机为核心,通过RS-485接口接收计算机主机的命令,根据命令驱动各个设备的电源继电器开启或关闭,同时检测各个设备电源的开闭状态。如图3-2所示,第2单片机DA2-2采用AT90S8535芯片,第2单片机DA2-2通过第1~4继电器K2-1~K2-4控制端子J2-3电源的通断,并通过电阻反馈检测电源的开关状态,第2单片机DA2-2的串口与第2RS-485驱动芯片DA2-1连接,第2RS-485驱动芯片DA2-1通过端子J2-2连接到RS-485网络。
如图4-1所示,电源管理节点以单片机为核心,负责检测电池电压、电流、温度、压力及漏水状态,对消耗功率进行计算和存储,并将数据通过RS-485接口发送到计算机主机。如图4-2所示,第3单片机DA3-2采用AT90S8535芯片,第3单片机DA3-2通过DA3-3(采用AD590芯片)检测温度信号,通过端子J3-3的A/D1、A/D2检测两路电池电压信号,通过端子J3-3的A/D3~A/D6检测电池电压、电流、温度、压力四路信号,通过端子J3-4检测两路漏水信号,第3单片机DA3-2的串口连接到第3RS-485驱动芯片DA3-1,第3RS-485驱动芯片DA3-1通过端子J3-2连接到RS-485网络。
如图5-1所示,电机控制节点以单片机为核心,通过RS-485接口接收计算机主机的命令,根据命令驱动各个电机的电源开启或关闭,控制D/A驱动电机驱动模块,同时单片机检测电机故障状态,通过A/D采集电机工作电流、电机驱动模块温度,并通过RS-485接口向计算机主机发送。如图5-2所示,第4单片机DA4-2采用AT90S8535芯片,第4单片机DA4-2通过温度传感器DA4-3检测温度信号,通过端子J4-4的A/D1~A/D4检测四路电机电流信号,通过第1~2数/模转换器DA4-4、DA4-5(采用AD7303芯片)输出四路模拟电压信号到端子J4-5作为电机驱动的给定电压信号,通过第5~8继电器K4-1~K4-4控制四路电机的电源输出到端子J4-6,通过端子J4-3检测四路电机故障信号,第4单片机DA4-2的串口连接到第4RS-485驱动芯片DA4-1,第4RS-485驱动芯片DA4-1通过端子J4-2连接到RS-485网络。
如图6-1所示,应急处理节点以单片机为核心,单片机一个串口与RS-485驱动芯片连接,组成RS-485接口,另一个串口与无线电台连接,用于控制无线电台发送,它可以在计算机主机故障时独立的工作,并在水下机器人浮出水面后,控制无线电台发送。如图6-2所示,第5单片机DA5-2采用AT90S8535芯片,第5单片机DA5-2通过端子J5-3检测两路电压信号,通过端子J5-4检测漏水信号,通过第9~10继电器K5-1~K5-2输出两路电源到端子J5-5,通过端子J5-6控制无线电台,第5单片机DA5-2的串口连接到第5RS-485驱动芯片DA5-1,第5RS-485驱动芯片DA5-1通过端子J5-2连接到RS-485网络。
如图7-1所示,数据采集节点以单片机和高精度A/D转换器为核心,可以采集深度计、高度计等模拟量,并将采集数据通过RS-485网络发送给计算机主机。如图7-2所示,第6单片机DA6-2采用AT90S2313芯片,第6单片机DA6-2通过第1模/数转换器DA6-4(采用AD7714芯片)采集端子J6-3引入的电压信号,第6单片机DA6-2的串口连接到第6RS-485驱动芯片DA6-1,第6RS-485驱动芯片DA6-1通过端子J6-2连接到RS-485网络。
如图8-1所示,串口设备节点一个串口与RS-485驱动芯片连接,组成RS-485接口,另一个串口与RS-232驱动芯片连接,组成RS-232接口,该节点主要功能是将RS-232的设备接入RS-485网络,它实现RS-232和RS-485电平及协议的转换,该节点可以连接GPS、高度计、电子罗盘等串口设备。如图8-2所示,第7单片机DA7-2采用AT90S2313芯片,第7单片机DA7-2的PD2、PD3管脚连接到第7RS-232驱动芯片DA7-3,第7RS-232驱动芯片DA7-3通过端子J7-3连接到RS-232串口设备,第7单片机DA7-2的串口连接到第7RS-485驱动芯片DA7-1,第7RS-485驱动芯片DA7-1通过J7-2连接到RS-485网络。
如图9所示,软件由计算机主机程序和各单片机程序组成,计算机主程序包括RS-485网络驱动程序、各RS-485网络节点驱动程序、RS-485用户接口库函数,RS-485网络驱动程序负责驱动RS-232/RS-485转换器,采用消息通信方法实现RS-485网络节点驱动程序与各单片机节点程序的数据交换;RS-485网络节点程序包括系统状态检测节点、设备电源控制节点、电源管理节点、电机控制节点、应急处理节点、数据采集节点、串口设备节点等驱动程序,每个驱动程序负责实现对该节点设备的控制;RS-485用户接口库函数提供给用户编制的上层控制软件调用,通过消息通信方法和共享内存方法实现对各RS-485网络节点驱动程序数据的访问;RS-485网络驱动程序和各RS-485网络节点驱动程序都可以独立运行,在计算机主机上电后,系统自动加载执行RS-485网络驱动程序和各RS-485网络节点驱动程序,也可以在系统运行当中,根据硬件设备节点的使用情况用程序控制各RS-485网络节点驱动程序的启停;RS-485用户接口库函数采用目标文件的形式提供,上层控制软件通过与RS-485用户接口库函数一起编译实现对RS-485网络设备的访问,在调用RS-485用户接口库函数时会返回一个代码,它代表了故障状态信息;单片机程序采用C语言编制,汇编后储存在单片机的电可擦除存储器里,上电后自动运行,然后与其它节点进行通信,接收其它节点的命令并进行操作,每个单片机节点都有一个固定的地址,其范围从0到127,用以区分不同的节点。
如图10所示,RS-485网络驱动程序负责驱动RS-232/RS-485转换器,采用消息通信方法实现RS-485网络节点驱动程序与各单片机节点程序的数据交换;具体流程为启动后首先注册程序名,设置时间中断和串口中断,然后程序进入循环等待状态,如果定时时间到(如30毫秒),则产生时间中断的消息,程序判断上次是否成功接收到数据,如果成功则经执行分配执行任务1~任务n中的某一任务,即设置当前任务为与某一驱动程序进行信息交换,然后计算校验和并向RS-485网络发送串口数据,发送完毕程序处于循环等待消息状态,如果接收到串口数据则产生串口中断消息,如果数据接收成功并且正确则把数据发送给该节点的驱动程序;如果定时时间到时仍未接收到某节点的正确数据,则重新通信,如仍没有接收到正确数据,则认为该节点故障,并把故障通过信息交换发送到该节点驱动程序;程序中的任务1~任务n是一个任务列表,程序根据一个从1至n的计数器来决定执行什么任务,即与某个节点进行通信,这个任务列表可以根据对不同节点的不同采样频率要求而制定。
RS-485网络节点程序具体流程包括系统状态检测节点、设备电源控制节点、电源管理节点、电机控制节点、应急处理节点、数据采集节点、串口设备节点等驱动程序,每个驱动程序负责实现对该节点设备的控制。各个网络节点驱动程序的结构基本一样,如图11所示,程序启动后首先注册程序名,然后进入等待消息的循环中。如果接收到RS-485驱动程序的消息,则与RS-485驱动程序进行数据交换;如果接收到用户接口库发送的消息,则根据消息的内容进行判断任务类型。任务共有两种类型读取数据命令和控制输出数据命令,如果是读取数据命令,程序就把相应的数据进行处理为工程量,如果是控制输出数据命令,就把从用户接口库中接收的数据进行处理并存储在内存中,等到与RS-485驱动程序交换数据时发送给RS-485网络节点。在执行完上述任务后,程序与接口库函数交换数据,把获得的数据以及故障代码发送给用户接口库函数。
单片机程序采用C语言编制,汇编后储存在单片机的电可擦除存储器里,上电后自动运行,然后与其它节点进行通信,接收其它节点的命令并进行操作。根据各节点完成任务的不同,程序中执行的命令不同,但是每个RS-485网络节点节点的单片机程序结构基本一样,如图12所示,具体流程为程序运行时先执行初始化,然后等待串口中断,在串口中断中,程序接收RS-485网络的数据并根据接收的命令进行执行,并向RS-485网络发送数据,在定时器中断中,程序根据不同节点的需要同时执行数据采集、控制输出、计算、数据存储等任务。
所述计算机主机采用常规带有串口的低功耗、小体积工控机,如STD、PC/104工控机等。RS-232/RS-485转换器以及单片机A/D、D/A、外围电路接口技术为现有电子技术,单片机可以采用51系列、PIC系列、AT90系列等常规单片机实现。
总之,本发明以总线形式的把计算机主机的集中式控制任务分散到各个传感器和设备节点执行,从而使计算机主机任务减轻,系统效率提高;一旦计算机主机出现故障,应急处理节点可以独立的工作,完成应急处理工作,因此系统的可靠性高;它具有开放式的架构,可任意增加或减少所携带的传感器和设备,不会造成系统硬件线路的大幅改动,同时它还减少了水密电缆的芯数,减少电缆接触不良或电缆接头漏水的概率。
权利要求
1.一种分布式水下机器人控制系统,其特征在于采用RS-485网络作为分布式控制的核心,硬件由计算机主机节点和RS-485网络节点组成,其中计算机主机节点将任务分散到各个网络节点执行,它包括计算机主机和RS-232/RS-485转换器,RS-485网络节点以单片机为核心,主要包括系统状态检测节点、设备电源控制节点、电源管理节点、电机控制节点、应急处理节点、数据采集节点、串口设备节点,各个网络节点主要负责传感器的数据采集和处理、携带设备的控制、电机驱动控制、故障检测、漏水检测、应急处理任务;计算机主机节点以及所有的RS-485网络节点都通过RS-485接口连接在一起,构成RS-485网络;软件由计算机主机程序和各单片机程序组成,其中计算机主机程序包括RS-485网络驱动程序、各RS-485网络节点驱动程序、RS-485用户接口库函数,单片机程序主要包括系统状态检测程序、设备电源控制程序、电源管理程序、电机控制程序、应急处理程序、数据采集程序、串口设备程序。
2.按照权利要求1所述分布式水下机器人控制系统,其特征在于计算机主机的串口通过RS-232/RS-485转换器连接到RS-485网络上,通过RS-485网络与各个RS-485网络节点的单片机通信,各RS-485网络节点的单片机串口通过RS-485驱动芯片连接到RS-485网络上。
3.按照权利要求1所述分布式水下机器人控制系统,其特征在于所述RS-485网络驱动程序负责驱动RS-232/RS-485转换器,采用消息通信方法实现RS-485网络节点驱动程序与各单片机节点程序的数据交换;具体流程为启动后首先注册程序名,设置时间中断和串口中断,然后程序进入循环等待状态,如果定时时间到,则产生时间中断的消息,程序判断上次是否成功接收到数据,如果成功则经执行分配执行任务1~任务n中的某一任务,即设置当前任务为与某一驱动程序进行信息交换,然后计算校验和并向RS-485网络发送串口数据,发送完毕程序处于循环等待消息状态,如果接收到串口数据则产生串口中断消息,如果数据接收成功并且正确则把数据发送给该节点的驱动程序;如果定时时间到时仍未接收到某节点的正确数据,则重新通信,如仍没有接收到正确数据,则认为该节点故障,并把故障通过信息交换发送到该节点驱动程序;程序中的任务1~任务n是一个任务列表,程序根据一个从1至n的计数器来决定执行什么任务,即与某个节点进行通信,这个任务列表可以根据对不同节点的不同采样频率要求而制定。
4.按照权利要求1所述分布式水下机器人控制系统,其特征在于所述RS-485网络节点驱动程序包括系统状态检测节点、设备电源控制节点、电源管理节点、电机控制节点、应急处理节点、数据采集节点、串口设备节点等驱动程序,每个驱动程序负责实现对该节点设备的控制,各个网络节点驱动程序的结构相同;具体流程为启动后首先注册程序名,然后进入等待消息的循环中;如果接收到RS-485驱动程序的消息,则与RS-485驱动程序进行数据交换;如果接收到用户接口库发送的消息,则根据消息的内容进行判断任务类型;任务共有两种类型读取数据命令和控制输出数据命令,如果是读取数据命令,程序就把相应的数据进行处理为工程量,如果是控制输出数据命令,就把从用户接口库中接收的数据进行处理并存储在内存中,等到与RS-485驱动程序交换数据时发送给RS-485网络节点;在执行完上述任务后,程序与接口库函数交换数据,把获得的数据以及故障代码发送给用户接口库函数。
5.按照权利要求1所述分布式水下机器人控制系统,其特征在于所述RS-485网络节点节点的单片机程序通过RS-485网络与计算机节点通信,根据计算机主机的命令进行动作,并将数据发送给计算机节点;每个RS-485网络节点的单片机程序具体流程为程序运行时先执行初始化,然后等待串口中断,在串口中断中,程序接收RS-485网络的数据并根据接收的命令进行执行,并向RS-485网络发送数据;在定时器中断中,程序根据不同节点的需要同时执行数据采集、控制输出、计算、数据存储等任务。
6.按照权利要求1所述分布式水下机器人控制系统,其特征在于所述RS-485用户接口库函数采用目标文件形式提供给用户编制的上层控制软件调用,通过消息通信方法和共享内存方法实现对各RS-485网络节点驱动程序数据的访问。
全文摘要
一种分布式水下机器人控制系统,采用RS-485网络作为分布式控制的核心,由计算机主机节点和RS-485网络节点组成,其中计算机主机节点将任务分散到各个网络节点执行,它包括计算机主机和RS-232/RS-485转换器,RS-485网络节点以单片机为核心,主要包括系统状态检测节点、设备电源控制节点、电源管理节点、电机控制节点、应急处理节点、数据采集节点、串口设备节点,各个网络节点主要负责传感器的数据采集和处理、携带设备的控制、电机驱动控制、故障检测、漏水检测、应急处理任务;计算机主机节点以及所有的RS-485网络节点都通过RS-485接口连接在一起,构成RS-485网络;软件由计算机主机程序和各单片机程序组成。本发明具有模块化、可扩展性强、组态灵活、可靠性高等优点。
文档编号G06F3/05GK1622062SQ200310105200
公开日2005年6月1日 申请日期2003年11月26日 优先权日2003年11月26日
发明者马骥, 李一平, 李硕 申请人:中国科学院沈阳自动化研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1