嵌入式一体化无人艇航控系统设计

发表时间:2021/7/12   来源:《科学与技术》2021年3月8期   作者:张强 徐明 张晓峰
[导读] 针对现阶段无人艇航控系统设计,本文旨在设计一种嵌入式一体化的航控系统
        张强 徐明 张晓峰
        北京南风科创应用技术有限公司,北京100016
        摘要:针对现阶段无人艇航控系统设计,本文旨在设计一种嵌入式一体化的航控系统,满足系统低功耗、小体积、低成本、启动时间短且具备满足系统运算要求等需求,进一步提高无人艇航控系统的集成度,提高可靠性。经过工程实践证明所设计的方法均满足实际工程需要。
        关键词:无人艇,导航系统,嵌入式
        中图分类号:     文献标识码:A
        An Integration Navigation Control System Design Based on Embedded System for USV
        Zhang Qiang, Xu Ming, Zhang Xiao Feng
        (Beijing Nanfoon Applied Technologies Ltd,Beijing 100016)
        Abstract: This paper studies an integration navigation control system based on the embedded system for USV (Unmanned Surface Vehicle), which is aimed to make the system lower power consumption, smaller, cheaper, faster to start up and meet the data process requirement.
        Key words: Navigation system, USV, Embedded Computer System
0 引言
        无人艇是一种具有自主航路规划能力的水面无人航行平台,可将操船人员从长时间繁杂的劳动中解放出来,可自主或人工干预的方式完成环境感知、数据采集、目标探测等任务,能在不适合人员操作的危险环境下长时间部署,可大大降低事故率及人员伤亡率,且全寿命费用低,更具经济可承受性,因此无人艇在海洋、大型湖泊、极浅水域等复杂危险的应用环境下进行巡逻、监测、灾害预警与救灾等方面有重要的应用价值。
        无人艇整个系统除了推进器、舵机、发动机等组成的动力系统,电池、油箱、发电机等组成的能源系统,电台、卫通、远程遥控等组成的通讯遥控系统以外,就是航控系统和任务载荷系统。
        航控系统功能包括:控制推进器、发电机、电池、舵机等工作状态,实时电力、油耗等能源监控,实时定位定向导航信息采集,根据通讯遥控系统发来的宏观控制指令可靠的实现无人艇航行控制;任务载荷系统的功能根据搭载设备的功能,在航行过程中完成指定的数据采集、发送,满足航行任务的要求。
        任务载荷是根据客户的航行任务而定,但作为无人艇标配的航控系统必须满足高可靠、小体积、低功耗的要求。只有这样,无人艇才可以在一次航行任务中搭载更多的载荷设备或提供更长的航时保证,提高航行的经济效益。
        由于绿色环保以及静音航行的要求,电力推进的无人艇成为无人艇的主流,本文以没有舵机的电推无人艇为研究对象进行研究。这种电推无人艇的动力系统仅由推进器、发电机、电池等构成。
1 当前主流的航控系统设计
        现阶段无人艇的设计都采用模块化设计,搭载不同的功能模块就有能力完成相应的任务或具备相应的能力,但是对最基本航控系统的可靠性要求就格外高。这里提及的航控系统功能包括:推进器控制功能,发电机、电池的电力监控,基本的卫星定位定向导航信息采集和航行控制。
        传统的无人艇航控一般分为以下两种结构。
 

        如图1.1所示,无人艇航控系统1属于完全的远程遥控方式,所有对推进器、发电机、电池等设备控制指令都依赖远程的计算机进行计算,所有的状态信息以及导航定位信息都依靠无线连接上报给远程计算机。这种方式的优点是结构简单、成本低,缺点是通讯严重影响航控实施,可靠性很低,存在很大的安全隐患。
        如图1.2所示,无人艇航控系统2属于自主可控的方式,所有对推进器、发电机、电池等设备控制指令都由自动控制计算机计算生成,所有的状态信息以及导航定位信息分别发送给自动控制计算机,并通过无线连接上报给远程计算机。这种方式解决了无人艇航控系统1很多不足,即使通讯中断也可以利用自动控制计算机实现对无人艇的控制,方便无人艇的集群控制,因此该方式目前成为主流。为了便于系统开发,目前自动控制计算机大都采用工业控制计算机(简称工控机),结合PLC或市面上成熟的采集电路模块实现对推进器、发电机、电池等的控制。这种方式最大的不足:
        1、体积大、重量大。当前业界较小的嵌入式无风扇工控机体积约180*117*65mm,还需要配备不同型号的PLC及其功能板卡才能实现基本数据采集和控制功能,再加上电源转换、稳压设备,单单无人艇航控系统的体积和重量就是一笔不小的开支,尤其对于小型无人艇来说,无人艇留给任务载荷设备的载重和空间非常有限。
        2、成本高,除了购买硬件还需要采购操作系统等软件配合使用,另外由于工控机、PLC及其他功能板卡由不同的厂家供应,系统开发、联调、升级等操作都需要不少的沟通成本和时间成本。
        3、启动时间长,嵌入式操作系统的启动、外设驱动程序启动自检,都延长了系统启动时间,这种航控系统通常都需要30秒以上启动时间。如果无人艇正处于航行阶段,此时突然发生掉电或系统死机重启,较长的系统启动时间无疑将导致此时无人艇完全不可控也无法得知其工作状态、导航信息等,有非常大的安全隐患。
        4、功耗大,嵌入式无风扇工控机功耗60瓦左右再加上PLC设备及其附件的功耗,整个航控系统电力损耗大。针对纯电力驱动的无人艇来说,航控系统功耗应尽量低,把电力能源留给任务载荷设备使用。
        因而,如何更进一步的提高无人艇航空系统的集成度,提高可靠性及降低功耗是一个仍需深入研究的课题。
2 嵌入式一体化的航控系统设计
        针对上述现有航控系统的不足,提供一种用于无人艇的低功耗、高可靠性、低成本的嵌入式一体化无人艇航控系统。该航控系统不仅满足推进器、发电机、电池等设备控制功能,接收卫星定位定向导航信息,而且还具备丰富的扩展接口,支持以太网数据交换功能,最主要的是系统体积小、成本低、功耗小,启动时间短,有效提高了无人艇的可靠性、减小体积、降低功耗和成本,提高无人艇产品的竞争优势。
        为解决上述技术问题,本实用新型采用的技术方案是:
        利用工业界成熟的ARM和FPGA芯片直接设计无人艇用嵌入式一体化航控计算机系统。


        如图2.1所示,该嵌入式一体化航控计算机系统的所有组件都设计集成在一个电路板中,利用硬制板上的连接线替代工控机与PLC等设备之间的电器连接;利用ARM作为计算机核心处理单元替代工控机,进行数据运算处理,避免使用嵌入式操作系统,在ARM中实现重启动时的程序自动加载,利用ARM提供的通讯接口直接联通串口数据、CAN通讯数据、网络数据,在ARM内部实现数据的解析并完成通讯数据发送;利用FPGA替代PLC扩展ARM没有的数据接口,利用这些接口连接电池、推进器等设备,实现信号转换、数据的采集及控制;利用工业级电源模块芯片及其他电子元器件实现电源稳压、保护作用,为ARM和FPGA等芯片供给电力。
        这样的设计方案可以最大程度的缩减系统的体积和重量,没有不必要的结构安装件,去除了不必要功能的电路及设备,没有复杂的电气连接电缆和电路转换,提高了系统的连接可靠性。
        工业级别的ARM和FPGA芯片价格远比采购工控机和PLC要低一个数量级左右,并且芯片比工控机和PLC的采购渠道更多,升级替换选择更多。不需要采购操作系统,也没有硬件驱动程序升级的困扰; ARM和FPGA之间用SPI等通道进行连接,没有复杂的电器连接,只涉及通讯协议的匹配,内部电气设计都由一个设计单位完成没有繁杂的设计沟通工作,测试、升级等工作都可以在设计单位完成,减少大量的沟通成本。
        ARM和FPGA芯片上电启动后直接从内部指定FLASH地址、外部FLASH芯片读取执行程序,没有想操作系统那样繁杂的检测、注册流程,完全并行操作,所以整个系统启动时间可以控制在1秒内。即使发生掉电重启或系统死机后在看门狗的作用下重新启动,整个系统还可以在数秒时间内达到可控、可观测的状态,大大减小安全隐患。
        整个方案除了增加一些扩展接口以及电源稳压保护功能外,在满足通讯和数据处理的功能要求下,没有多余的设备;电源设计上,只针对ARM和FPGA及其外围电路进行供电,因此整个系统的功耗都在瓦级,没有较大的能量损耗,与工控机和PLC设备比较,已将功耗降到极致。
3 嵌入式一体化的航控系统实现
    无人艇的嵌入式一体化航控计算机主要由电源转换电路、ARM、FPGA及其他其外围接口电路构成。    电源转换电路从外部得到直流电源后,经电源防护处理以及DCDC电源模块转换后,分别为ARM、FPGA进行供电。FPGA集成与电池、推进器相对应的RS485通讯接口,完成电池、推进器数据采集及控制指令下发;FPGA还集成与ARM的SPI通讯接口完成与ARM的数据通讯;FPGA作为通讯中转站,最终实现电池、推进器与ARM的数据交互。ARM利用自身的CAN接口、RS232串口、工业以太网接口实现与发电机的数据交互、接收卫星定位导航数据、与指挥中心的数据交互。


3.1电源转换电路设计
电源转换电路负责将外部输入的DC9-36V电压转换成ARM、FPGA、通讯接口芯片的供电电源,并具备满足芯片正常工作要求的防护作用。为满足防接反、防过载、抗浪涌、电磁干扰抑制、宽压(9-36V DC)供电输入的功能,电源部分采用成熟的DCDC模块URB2405YMD等电源芯片为ARM、FPGA提供DC5V供电,并利用保险丝、压敏电阻、二极管、气体放电管等设计了如图3.1.1所示电源防护电路。电路利用J5接插件接入外部直流电源,经过防护电路后接入DCDC模块如URB2405YMD等电源芯片。这些电源芯片的输出直接为ARM、FPGA供电。

    电路采用自恢复保险丝F1对输入电源进行过流保护,当后续电路中有短路或其他原因导致输入电流增大到保险丝额定值后,F1会立即熔断,从而保护后级电路。
电路采用压敏电阻R67对输入电源进行过压保护,当输入电压超过压敏电阻额定值后,该电阻会导通,配合自恢复保险丝,可以保护后级电路免受过压损坏。
电路采用瞬态抑制二极管D5和气体放电管DS1对对输入电源的浪涌电压进行抑制,保护后级电路。
电路采用共模扼流圈L3抑制电源中的共模干扰。
电路采用防反接二极管D2进行接入电源的接反保护。利用二极管的单向导电性,如果输入电源极性接反,二极管阻抗很大,避免损坏后级电路。
电路采用电容C91、C92、C93进行滤波,降低电源噪声。
电路采用安规电容CY1、CY2滤除电路中的共模干扰。
电源转换电路在外部电源输入点串联保险丝F1实现电路的过流保护,之后在电路中并联压敏电阻R67实现电源的过压保护,并联二极管D5实现对输入电源的浪涌电压进行抑制,并联电容C91进行滤波帮助电源降噪,串联共模扼流圈L3抑制共模干扰,并联电容C91进行滤波帮助电源降噪,在电源正极串联反接二极管D2防止外部接入电源的接反操作,在电源模块的输入正极和输出正极并联电容CY1, 在电源模块的输入负极和输出负极并联电容CY2, 滤除电路中的共模干扰,并在电源模块输出端并联CY3进行滤波,降低电源噪声;在输入电源的负极与产品外壳之间并联气体放电管DS1、电阻R65和电容C26,确保两点之间不会由持续的电量积累发生放电,确保电源电路不会收到浪涌、电冲击等,满足电磁兼容要求。
3.2 ARM与FPGA电路设计
    ARM部分为嵌入式一体化航控计算机的数据处理中心。本方案采用STM32F407VG型号ARM芯片构成。利用该芯片已有的对外接口可实现与发电机、以太网交换机、卫星导航、电台等的数据连接,利用FPGA的中转实现与推进器及电池的数据通讯和控制。
该ARM具备两路CAN接口可分别实现与发电机、避障雷达的通讯,一路工业以太网接口可与交换机设备连接进而接收GPS及惯导的数据、一路串口可直接连接遥控器接收器接收到的遥控指令,一路SPI接口可以直接和FPGA进行通讯,从中获取推进器和电池的状态并向其发送控制指令。
该ARM还具备1Mbyte的Flash和192Kbyte的SRAM,以及丰富的DMA组件,方便利用ARM的开发工具调用现有的库函数实现内部参数的存储、多个网络端口的网络数据实时读取/发送、多个串口数据的实时读取/发送。
FPGA为ARM扩展足够多的通讯接口,以便ARM可以链接更多电池和推进器等设备,及时地获取其数据并可以实时向其发送控制指令。如图3.2.1所示,利用厂家提供或已公开的RS485/422通讯IP核,使FPGA具备不少于4路通讯通道,可实现与多路推进器和电池的通讯链接;利用厂家提供或已公开的SPI通讯模块,使FPGA实现与ARM的实时通讯,完成数据的通讯中转。


3.3 ARM数据接收设计
ARM要在不定时的接收不同设备发来的消息,因此需要在数据接收端设计数据拼接模块,完成数据的拼接后才可以根据数据的格式解析数据。在接收的数据中需要确定数据帧头、帧尾的位置,如果没有找到帧尾,需要把当前数据帧与下一时刻数据帧进行拼接,把对应帧数据完整的提取出来。为完成拼接工作,需要将不完整的数据暂存在一个数据缓存区域,等待接收到新的消息后进行拼接处理,需要对缓存区的使用大小、数据存储位置进行实时监控,防止数据丢失和数据溢出。数据接收程序流程如图图3.3.1所示。


3.4 ARM数据存储的读取和写入
ARM中自带FLASH数据存储区,除了存储已定型的软件代码还可以存储预先设定的参数。为了满足多种不同艇型、不同航行控制参数以及在自组网编队中的网络参数及其ID,需要将这些参数存储在程序段以外的区域,方便数据的维护和使用。为此,数据存储的读取和写入操作需要用到:数据扇区的数据擦除功能、数据扇区的数据写入功能以及数据读取功能。
数据扇区的数据擦除功能,能够根据设计给定好的存储区域,对该扇区的所有数据进行擦除处理,并返回处理状态。本设计采用的ARM提供了丰富的代码资源,根据如下程序流程顺序,依次调用不同的程序函数,即可实现指定数据扇区的数据擦除功能。


数据扇区的数据写入功能,能够根据设计给定好的存储区域,将要存储的数据在该扇区中依次进行存储,由于不同类型数据是由不同数量的字节单元构成,因此数据在写入之前,需要将所有数据转化为字节数据流,再调用不同的程序函数进行数据写入操作,并返回处理状态。一般情况下,为确保数据写入操作不受其他通讯中断或定时中断的影响,需要关闭所有不必要的中断,确保写入的正确。为了确保数据写入的正确性,可以在写入操作成功返回后,进行数据读取,将读取到的数据与写入时的数据进行比较处理,最后返回数据比较结果验证数据写入是否成功。


数据扇区的数据读取功能,该功能相对简单,可以直接从指定的数据扇区地址进行读取操作即可,无须用到特定的函数,也不要担心读取操作与其他中断的相互影响。
3.5 ARM数据解析程序设计
GPS和惯导的输出信息都是经过UDP网络广播方式发送给航行主控,因此航行主控利用UDP数据接收程序实时接收导航定位、定向、定姿数据,但是由于以上信息长度的不确定性以及时间间隔的不确定性,必须对接收到的数据进行拼接、筛查、解析操作。
数据的拼接。在接收的数据中需要确定数据帧头$的位置,以及帧尾0x0a的位置,如果没有找到帧尾,需要把当前数据帧与下一时刻数据帧进行拼接,把对应帧数据完整的提取出来。为完成拼接工作,需要将不完整的数据暂存在一个数据缓存区域,等待接收到新的消息后进行拼接处理,需要对缓存区的使用大小、数据存储位置进行实时监控,防止数据丢失和数据溢出。


数据的筛查和解析。GPS和惯导设备输出的消息都是NMEA0183消息,但是这些消息发送频率不同、先后顺序也不同,这些消息的处理需要根据消息的名称进行区分;完成消息的区分之后,针对每个消息的校验和以及数据的有效性进行识别,完成数据解析。


3.6 ARM航行控制程序设计
无人艇最基本的航控模式有:岸端遥控模式、定向航行模式、定点航行模式和定点漂泊航行模式。
无人艇工作在岸端遥控模式时,无人艇根据控制指令中的推进器、油门、舵机和挡位的控制指令直接进行控制,没有自动控制程序的介入。
无人艇工作在定向航行模式时,无人艇根据控制指令中指定航向和航速进行前进航行,因此控制指令中需明确目标航速(节)、目标航向(0-360度),这里面将用到自动转向控制及航速控制功能。


无人艇工作在定点航行模式时,无人艇将从当前位置向目标点航行,航行速度将参考目标航速,当与目标点的距离小于减速距离时自动进行减速,当与目标点的距离小于最小识别距离时视为到达目标点;控制指令中指定的经纬度坐标点和航速,因此这里面将用到自动转向控制及航速控制功能。


无人艇工作在定点漂泊航行模式时,无人艇将实时判断与指定目标点的距离,当距离超出指定距离参数时向目标点航行,航行速度将参考目标航速,当与目标点距离小于最小识别/控制距离后油门降到0,进入休眠期直到与指定目标点的距离大于指定漂泊距离。

3.7 工作流程
嵌入式一体化航控计算机系统的工作流程可分为三个同时执行的流程:供电流程、数据采集上报流程和指令下达执行流程。
供电流程:嵌入式一体化航控计算机系统介入DC9-36V供电后,经过防接反、防过载、抗浪涌、电磁干扰抑制电路后,给电源模块供电;电源模块得到供电能源后开始持续向ARM和FPGA以及通讯接口电路供电。
数据采集上报流程:FPGA利用自身集成的多路通讯模块可以同时接收电池和推进器的工作状态,将这些数据打包后利用集成的SPI通讯模块上报给ARM; ARM同时利用自身串口、CAN通讯接口以及SPI接口接收卫星导航数据、发电机数据、电池和推进器数据,将数据打包后利用以太网接口向指挥中心上报。
指令下达执行流程:当ARM利用以太网接口接收到指挥中心下达的指令后,经过计算将指令转化为执行指令,利用CAN通讯接口向发电机发送控制指令,利用SPI接口向FPGA发送推进器发送转速、转向等控制指令;当FPGA接收到ARM利用SPI接口发来的推进器控制指令后,将数据指令利用多路通讯模块直接发送给对应的推进器,完成指令下达全过程。
该嵌入式一体化航控计算机系统能够集成在120*110*5mm电路板中,具备4路RS232串口、一路工业以太网接口、2路CAN接口、8路RS485接口、8路IO控制口,可以直接连接推进器、发电机、电池以及卫星定位导航设备,实现无人艇航控功能。正常工作时,功耗不大于于6瓦,不采用操作系统,系统启动时间不大于1秒,满足设计功能要求,达到预期目标。
4总结
经实际工程应用证明,本文设计的嵌入式一体化航控计算机系统可以取代现有工控机和PLC搭建的航控系统,可靠实现无人艇的航行控制,并且在体积、重量、功耗、成本、启动时间和成本控制上都有突出优势,适合无人艇低成本、大载荷的应用发展方向,对无人艇技术发展具有重要的使用和参考意义。



作者简介:张强,1980年11月,男,导航制导与控制专业,硕士研究生,工程师, 15101085562@126.com,主要从事无人艇系统导航控制系统的设计与研发工作。
通信地址:北京市朝阳区半截塔村七棵树创意园C6-5(100016)
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: