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