首页 理论教育性能决定因素:硬件作为上层建筑的关键角色

性能决定因素:硬件作为上层建筑的关键角色

【摘要】:ARM核心的单片机,作为低消耗高性能的代表,正在快速占领单片机市场。ARM核心单片机是当前的主流FPGA是一种高度定制、实时性无与伦比的处理器,准确得说它不算处理器,而是超大规模逻辑门的组合。所以从实时性和处理能力来说,将FPGA用于飞控产品的开发几乎是完美的。但是RS422接口需要5根线,这给调试造成了很大的麻烦,目前主要是军品使用这种串口。

处理器(CPU

处理器(CPU,Central Processing Unit)是飞控的核心部件,运行飞控的核心算法。在当前流行的飞控产品中,带有片上实时操作系统的嵌入式处理器已经占领绝大部分市场,常见的核心类型有ARM、AVR、DSP或FPGA等。由于这些SoC或者MCU单片机集成度的高速发展,我们可以很方便地在一块电路板上板载多个单片机,所以X86工控机、PC104单板机、小型机等其他计算机在民用无人机的飞控系统中已经比较少见。

AVR单片机开启了开源飞控的先河

AVR单片机架构简单,运行可靠,开发也比较容易,受到早期开源项目的普遍欢迎。它是最早的开源飞控Arduino所使用的核心处理器,所以很多衍生的飞控也使用这种单片机来进行核心运算。主要的代表就是ATmega328P和ATmega2560,前者用于Arduino,后者用于APM飞控。但是由于开源飞控的参与者越来越多,有些项目甚至达到四千人的规模,开源飞控的发展也越来越迅速。一些只在商业飞控才能见到的高端算法也逐渐走进开源飞控,这导致AVR这种8位单片机的计算能力和它所能集成的接口资源捉襟见肘,所以使用这种单片机的飞控也越来越少了。

ARM核心的单片机,作为低消耗高性能的代表,正在快速占领单片机市场。在飞控中使用的ARM单片机主要分为两大阵营,一种是精简指令的工业低成本单片机,另一种则是带有Linux或安卓操作系统的高端复杂单片机。著名的STM32系列就是前者的代表产品,目前最流行的开源飞控大多使用这个系列,比如Pixhawk。该单片机具有32位运算核心,片上集成的接口包括串口、SPI、I2C、PWM、AD、IO等,可以说是应有尽有。高端型号甚至集成硬件浮点运算,这对于飞控软件所需的导航飞控算法和滤波计算实在是雪中送炭。而大多数商业飞控则倾向于能够运行Linux、安卓、VxWorks等大型操作系统的高端ARM处理器,这种处理器功能类似手机处理器,具有更加强悍的计算能力,并且拥有多个核心,可以进行一定量地并行处理和协同处理,保证多个任务的实时性。带有操作系统可以保障团队的开发工作更加高效,并具有可继承性。飞思卡尔、三星、高通都有大量此类产品。

ARM核心单片机是当前的主流

FPGA是一种高度定制、实时性无与伦比的处理器,准确得说它不算处理器,而是超大规模逻辑门的组合。你可以把它定义为任何核心,甚至可以在一片FPGA上定义多个不同种类的运算核心而相互协同、互不干扰。举个例子,一个一厘米见方的FPGA产品,通常包含几十万甚至上千万个逻辑阵列,但是实现一个32位单片机的CortexM1核心,仅仅需要4300个逻辑门就可以了,由此可见其无人能及的强大。其他单片机难以驾驭的大数据的实时处理,FPGA能够胜任,最典型的例子就是机器视觉的实时处理。所以从实时性和处理能力来说,将FPGA用于飞控产品的开发几乎是完美的。但是当前FPGA的开发过程非常复杂,令许多工程师望而却步。

FPGA完美但难以驾驭

连接一切的通信接口

有了处理器,就要通过接口与各种传感器连接,才能够进行数据交换,发出控制信息,读取传感器数据。随着电子技术的发展各种适用于飞行器的设备层出不穷,因为类型不同,所以也会用到不同类型的数据接口。下面讲讲无人机上常见的接口和它们的特点。

开源飞控上众多的信号接口

串口 串口是目前控制领域最常见的设备接口,硬件形式有TTL、RS232、RS422、RS485等几种。TTL是基本信号,常见的有三针用法,一针用于信号输入叫RX,一针用于信号输出叫TX,另一针为信号基准地线。一般0伏和3~5伏分别表示0和1,飞控自带的都是这种串口,而且会带很多个,用于连接多个设备,常见的PIXHAWK飞控有5个TTL串口。但是TTL信号的电压较低,尚不适合1米以上的长距离传输,于是发展出RS232接口。它使用正负电平表示0和1,其他与TTL相同,极大延长了传输距离。但是它的速度依然不足,于是又改进发展出RS422接口,RX和TX每路信号都变为两根信号线,每对线上分别使用正负电压表示相同信号,这种传输方式叫作差分传输。当信号受到干扰时,正负信号的差依然不变,所以干扰被巧妙地抵消,传输距离和速度实现双飞跃。但是RS422接口需要5根线,这给调试造成了很大的麻烦,目前主要是军品使用这种串口。RS485串口是结合RS232和RS422优点,使用一对差分信号线进行通信,但是信号线上既接收信息,又发送信息,所以还需要额外一个控制信号控制收发转换,RS485总线带有总线特征,可以在两根线与地线上连接多个设备,但是收发、片选、仲裁、校验等工作都需要工程师写程序去协调,工作量巨大,现在很少有人用。

SPI和I2C SPI是一种用于板上通信的高速接口,使用了主从设计和专门的时钟线,每个SPI拥有4个信号:主入从出(MISO),主出从入(MOSI),时钟(CLK)和地线(GND)。主设备负责管理信息,时钟同步和所有设备通信,一路SPI可以连接多个设备,但是每个设备必需带有片选控制。SPI因为有时钟线,所以很容易做到所有设备的同步通信,由于其稳定性和高速特性,在飞控板上用来连接所有传感器与主单片机。I2C是用于连接板上高速设备的总线,拥有三根信号线:信号(SDA)、时钟(SCK)和地线(GND)。也是采用主从设计,带有时钟的同步设计,但是信号线需要承担多个设备输入输出,有主设备来管理。I2C上所有设备都自带一个地址,或叫标签,用来替代片选功能,节省大量单片机管脚资源,主设备用这个地址来识别设备。在飞控中用来连接重要性不太高的众多设备,比如指示灯、外置磁罗盘、空速、超声波、激光测距等。居然有厂家为了降低成本,用这个总线连接多旋翼的电调,从电子设计的角度,这样做是很危险的,因为I2C使用3~5伏电平传输信息,在长距离传输中容易受干扰。

CAN CAN总线是为汽车设计的总线接口。因为采用了电流传输的信号形式,所以抗干扰性能较强,专门用于电磁干扰比较大的环境,进行多设备的远距离通信。CAN总线只有H和L两个信号线,所有设备都连接在上面,总线芯片负责仲裁。这其实是无人机机载设备,尤其是多旋翼电调的最佳选择。但是由于其复杂性和接口芯片成本问题,很少有人采用,PIXHAWK飞控和ESC32电调多年前就已经具备该接口,PX4小组甚至专门开启了UAVCAN项目,但是国内至今无人问津。

SDIO 用于连接SD卡或TF卡,进行飞行数据记录。由于TF卡应用普遍,成本较低,容量速度都令人满意,所以渐渐成为高级飞控的必备设备,用于飞行记录、事故分析和故障诊断等。

PWM与PPM PWM(Pulse-Width Modulation,脉宽调制)信号是所有航模和无人机都离不开的信号形式。它是单线单向信号,在一根线上周期发送正脉冲,变化脉宽作为传递信息的方式,一个针脚传递一个通道,往往搭配地线和电源线,用于对一个舵机或一个电调进行控制。PWM信号的优点是简单、稳定地传输一个可量变的信号,缺陷是速度低,目前常见的标准是每秒50次或300~500次。PPM是PWM的升级版,就是每个信号周期发送一组脉冲,由多个脉宽组合,这样可以在一个信号线上同时传递多个通道的变化信息。PPM信号早期也被用于遥控器无线电信号和航模模拟器信号,现在多用于接收机与飞控连接,带有PPM信号输出的接收机很多,是无人机系统必配。其优点是稳定传输多个通道,缺点是速度比PWM还要慢。

S.BUS S.BUS是日本遥控器厂商FUTABA公司设计的一种用单通道数字信号传输多通道信息的协议,只有一个信号针脚和一个基准地线,支持HUB扩展连接多个舵机和电调。所以S.BUS其实是一种总线,其原理其实就是改进的串口协议。其优点是纯数字信号,很可靠,带有总线功能;缺陷是属于厂家技术,兼容设备较少。目前S.BUS也是飞控连接接收机的不错选择。

A-D转换接口 A-D转换接口,这种易被干扰的古老接口还在使用,机载设备使用电压变化表示需要输出的数据,飞控则采集这个变化得到数据。目前飞控主要用A-D转换接口来测量系统的电压、电流,这种方式成本较低,在小型无人机上还可以使用。另外一些距离探测设备还在使用A-D转换接口,但是已经基本处于淘汰边缘,效果远远不如数字设备。不过其成本较低,比如空速和超声波。

Relay Relay其实就是数字IO信号,只有0和1两种状态,用于自动控制相机快门和农药喷头。优点是可靠,缺点是信息量极小,浪费资源且没有校验等功能。

USB USB是民用总线接口,主要用于计算机连接外部设备,可以通过HUB连接多个设备,又具有给设备供电的功能,可以说是一种完美的接口。但是其协议过于复杂,编程工作量极大,接口连接形式容易导致问题,必须使用专用线材,且不能超过2米。在飞控上主要用来在地面连接计算机进行调试、读写参数等。

MEMS传感器

飞控要控制飞机,首先需要知道飞机的姿态,就像你走路需要知道自己该迈哪条腿一样。载人飞行器的姿态测量一般使用机械陀螺或者光纤陀螺,但是由于体积庞大,价格昂贵,无法在小型和微型无人机上使用。于是捷联贯导(Strapdown Inertial Navigation System)技术应运而生,就是使用加速度和角速率来对飞行器的各种倾斜姿态进行动态的推算技术。而加速度和角速率的测量设备是比较容易进行微型化生产的,这就是MEMS(Microelectro Mechanical System,微型机械系统),简称微机械。

MEMS陀螺

空间有xyz三个方向,每个方向的测量都需要一组相关传感器,所以进行完整的测量需要三个方向的陀螺传感器,三个方向的加速度计,一共六个。因为这些传感器都有一个共同特点:不需要参照物就能够自行测量并输出数据,所以也叫它们DOF(Degree of Freedom,自由角度测量)传感器。具有6个传感器的系统我们叫作6DOF系统,能够使用6DOF解算出姿态信息的设备我们叫IMU(Inertial Measurement Unit,惯性测量单元)。

随着技术的不断进步,微机械产品又发展出气压传感器,用于测量气压高度和空速;磁场传感器,也叫磁罗盘,用于测量地磁方向等。IMU再加入三轴磁罗盘一同解算,就叫作AHRS(Attitude and Heading Reference System,航姿参考系统)。有了航姿参考系统,再加上气压高度,无人飞行器才能够感觉到自己在天空翱翔的身姿,这是现代无人机飞控系统的最基本传感器配置,就像大脑一定要配合眼鼻口才能工作一样。

AHRS示意图

飞控系统中常见的MEMS传感器分为两种,一种是成品传感器设备,一种是MEMS芯片。

成品传感器和MEMS芯片

成品传感器是带有外壳和连接器的完整设备,自己内部有电源转换、滤波和解算能力,能够输出高精度的姿态、加速度或角速率等信息,有的还能够连接GPS设备进行融合解算,并整体拥有一定的三防能力。但是成品传感器往往价格高昂,常见的成品传感器品牌包括MIT、BEI、MEAS和Silicon Sensing等。

而MEMS芯片则主打更加低廉的成本和更高的集成度,早期甚至是模拟信号输出,还需要用户对温度曲线进行校准。随着技术的发展,当前常见的芯片级MEMS传感器全部集成了解算核心,能够自己进行温度补偿甚至滤波计算。例如InvenSense的产品MPU6000,甚至能够直接输出旋转矩阵、四元数和欧拉角的融合演算数据,这大大减轻了飞控主处理器的负担,因此成了开源飞控的首选传感器。

MEMS传感器当中ADI的产品与众不同,具有成品传感器的高精度和性能的同时,做到整体芯片化,便于集成。所以ADI传感器是很多低成本商业飞控的必选。代表作是著名的ADI163xx和ADI164xx系列。

GPS

要让无人机稳定地自主飞行,只有AHRS(航姿参考系统)是不够的。飞控还需要知道自己在哪里,要往哪里去,这就必须用到GPS(Global Positioning System,全球定位系统)。

全球定位系统示意图

全球定位系统是通过实时测量多个卫星的相对位置,来计算自己在地球上定位的技术,就像你看到熟悉的三棵树就知道是你家门口一样简单。

最早研发和使用GPS设备的国家是美国,它的卫星定位系统就叫作GPS,现已成为此类设备的统称。之后俄罗斯研发了Glonass系统,欧洲研发了伽利略系统,中国则正在完善自己的北斗系统。他们的功能和精度都类似,民用产品的定位精度是10~20米。

10~20米的定位精度对于正常飞行是够用了,但是在起飞着陆、农药喷洒、航拍航测等领域应用则显得不足。所以发展出了差分定位技术来提高精度,尤其在植保领域,随着精准农业的推进,获得高精度的地理信息势在必行,差分定位现已成为无人机植保的一大趋势。

差分按照使用方法分为实时差分和后差分,实时差分又分为星基差分、基站差分和广域差分技术。

基站差分示意图

基站差分是差分定位技术最早使用的形式,也是各种差分定位系统的基础。因为卫星信号的定位误差在一定区域内是相近的,所以只要测量出这种误差,再发给定位设备用于修正定位结果就能够得到精确的定位了。这就好比在地面上有个人随时告诉你这个地方的偏差是多少,你就可以使用这个偏差来知道自己的精确位置了。

基站差分系统会在地面安放一个差分基站,这个基站是预先通过地理测量进行高精度定位的。再由这个基站将自身的实时卫星定位数据与地理测量定位进行比较,计算出差分信息,实时发送到机载的GPS设备。而机载GPS设备使用卫星定位数据的同时,使用地面基站发出的差分信息修正定位,得到高精度实时定位。常见的基站差分设备是GPS差分和北斗差分设备,移动中的定位精度可以达到一分米甚至一厘米以内。

了解了基站差分,其他差分系统的原理也就迎刃而解了。

所谓星基差分就是由卫星代替基站发送差分数据给GPS接收设备,这样做的好处是只使用一个移动设备就可以获得高精度定位,免去了基站和差分信息的发送。星基差分现在已经在无人机系统中普及,最典型的产品是Ublox公司的M8N,它的定位精度已经达到2.5米。

广域差分就是像手机基站一样,在一个城市甚至全国广布基站,不停发送各地的差分信息,这样无论你在哪里都能够使用厘米级定位的高精度系统了,而且只需要有一个移动设备,像手机一样,能够不断切换最近的基站就可以了。广域差分是未来全球定位系统的发展方向。

广域差分

后差分是一种折中处理办法,在不需要精确实时定位的情况下,飞机自行记录定位信息和差分信息,完成飞行后,由计算机再次进行处理,可以得到毫米级高精度定位。