基于总线的分布式水下航行器控制器设计
本文提出了一种基于CAN总线的分布式水下航行器控制器的设计方法,主要描述了其硬件总体设计方案和实现办法。控制器作为分布式控制系统的一个节点,与其他节点之间以CAN总线连接并形成网络,相互传输数据和控制命令,每个节点都有主控计算机,以实现计算任务的分散化。控制器以基于ARM架构的MCU为控制计算机,搭载隔离模块、CAN控制器和收发器、数据存储模块、I/O接口模块、RS232模块等电路。该控制器的特点是体积和功耗小,通讯功能强,可实现智能控制、数据采集处理,故障发现等控制功能。
水下自主航行器是可移动水下探测和水下作业工程装备的统称,是进行海洋考察与开发的重要工具。它能够完成水下地形勘探、侦测、水下危险环境作业等任务。它的控制器是其硬件的重要组成部分,其主要作用是根据其使命任务对运动参数的部分或全部进行控制,使其按规定的轨迹航行,并保证AUV运动的稳定性,满足AUV动态精度要求,其性能直接影响到AUV的总体性能。随着AUV技术的发展,对控制器提出了高可靠性、高实时性、精确定位、精确控制、维护简单等要求。本文提出了一种基于总线的分布式水下航行器控制器的设计方案,主要目的是实现以分布式控制系统总体结构为基础的控制节点设计。进而实现真正的分布式控制系统,减少中央处理机的运算负荷,将大量数据处理和分析在现场完成。该方案设计的控制器具有完善的智能控制和通讯功能,所选的CAN总线,相比其他总线协议,软硬件技术成熟、安全可靠、传输速度快且成本低廉、易于扩展和维护。
1控制器的组成结构
水下航行器控制器由MCU最小系统(JTAG电路、复位电路)、外扩Flash存储模块、I/O接口、隔离电路模块、通讯电路等组成。其系统结构图如图1所示。整个控制器包含4大部分,第一是MCU最小控制系统,包括复位电路和JTAG调试电路。第二是数据采集部分,I/O接口和RS2 32串行接口用于与水下各种传感器相连接,收集传感器发送的实时数据,并传输至MCU进行分析融合。有的传感器送出的是模拟形式的信号,还要使用AD/DA转换模块加以转换后再进入处理中心。数据采集部分还包括一个温度数据收集电路,用作系统运行状态的监控。第三是数据存储模块,主要用于存储和输出实验数据。在水下航行器运行过程中记录航行数据,也可用于调试目的。第四是通讯部分,主要包括CAN总线接口电路,用于与其他节点之间互相传输被控过程的数据和其他控制命令。
2 MCU最小控制系统
文中采用基于ARM7-TDMI架构的NXP2478嵌入式微控制器作为主控计算机。NXP2478以ARM7为内核,它包括一个10/100以太网媒体访问控制器(MAC)、1个带4 kB终端RAM的USB全速设备/主机/OTG控制器、4个UART、两路CAN通道、1个SPI接口、两个同步串行端口、3个I2C接口和1个I2S接口。同时还带有一个4 MHz的片内振荡器、98 kB RAM,以及一个外部存储器控制器来支持上述的各种串行通信接口。
以NXP2478为核心的最小系统主要包括电源模块、复位电路和JTAG模块,电源模块实现2个功能:
1)电压转换功能,将输入为5 V电平的电压降至NXP2478的3.3 V工作电压。
2)稳压稳流功能,微控制器需要纹波比较小的稳定电压供电,电压如果突然下降往往会引起程序的跑飞,因此,必须要有专门的电路来稳定工作电压。一般通过并联大电阻来稳定工作电压。复位电路则可以采用自带看门狗功能的复位芯片来完成。主要实现上电复位、掉电复位、人工复位等功能。看门狗电路可以在程序跑飞时提供自动复位的保护措施。JTAG电路主要实现程序的在线仿真和烧写功能。其电路如图2所示。
3数据采集
电路数据采集是指从传感器中获取现场信息的过程。水下航行器控制器所用到的主要是GPS、MTI姿态传感器、深度等传感器。传感器输出信号的标准大多是RS232/485标准。有些传感器的信号需要经过数模转换。因此数据采集电路主要包括RS232/485、I/O接口电路、AD/DA转换电路和隔离电路。NXP2478自身带有4个串行端口,其中有一个为9线制端口,有完整的握手信号。但这些端口的工作电平为0~3.3 V.而RS232的电压约为±12 V左右,所以需要一个电平转换芯片,这里采用常用的MAX232芯片。I/O接口电路也需要进行兼容电平的转换,外部开关信号可能电压幅度比较大,采用隔离芯片既可以保护外部信号串扰对控制器的影响,又可以起到电平兼容的作用。I/O隔离模块如图3所示。
温度监控作为数据采集的一部分,用作检测控制器运行时的温度状态,并提供报警功能。本文采用DS18B20作为温度数据传感器,DS18B 20是一种在分布式温度控制系统中广泛使用的直接输出数字信号的温度传感器,输出数据遵从one-wire bus协议。其采集温度的范围从-55摄氏度到125摄氏度,输出的数字信号可直接进入MCU的I/O口中。DS18B20只有三根信号线:地线,电源线和数据线。因此其接口电路非常简单,将数据线直接接入MCU的GPIO口即可。
4数据存储模块
数据存储模块使用Nand Flash与微控制器接口来实现。Nand Flash内存是flash内存的一种,在嵌入式系统中的地位和PC机上的硬盘是类似的。具有容量大、改写速度快、系统掉电后数据不会丢失等优点,适用于大量数据的存储。Nand Flash的接口本质上是一个I/O接口,数据总线宽度8bit,没有地址总线。CLE和ALE这两条信号线用于区分总线上的数据类别。当系统对Nand Flash设备数据访问的时候,需要先向Nand Flash设备发出相关的命令和参数,然后再读出需要的数据。在连接中,注意用NXP2478的地址线A19与A20连接ALE和CLE引脚,这种连接方式必须在配置总线速度的时候使NXP2478总线速度和Nand Flash时序相匹配。电路中R/-(-相)引脚和写保护引脚直接接上拉电阻。此外还有一种方案是把R/-(-还)引脚与GPIO口相连,主要目的是当读写Nand Flash操作完成时,这可以通过中断来判断一次的读或者写完成的时刻。Nand Flash接口电路如图4所示。
- 基于MSP430系列单片机的CAN总线接口转换卡设计(01-17)
- 各种通讯总线介绍(01-18)
- I2C总线原理及应用实例 (01-18)
- I2C总线在多机通信中的应用(01-17)
- 基于SPI总线的电能计量芯片ATT7022及其在配电监测终端的应用(01-18)
- CAN总线—PROFIBUS-DP总线网关的实现方法(01-17)