2.1 ARM-Cortex M4架构ARM-Cortex M4 架构:无人机控制系统可以采用基于ARM系统架构的嵌入式处理器来实现,本次重点基于ARM-Cortex M4架构的无人机飞控系统。
ARM是32位嵌入式微处理器的行业领先提供商,到目前为止,已推出各种各样基于通用体系结构的处理器,这些处理器具有高性能和行业领先的功效,而且系统成本也有所降低。
基于ARMv7架构以上的Cortex系列主要分为A(应用处理器)、R(实时处理器)、M(微控制器)三大应用系列。
其中Cortex-M系列处理器主要是针对微控制器领域开发的,在该领域中,既需进行快速且具有高确定性的中断管理,又需将逻辑门数和功耗控制在最低。
Cortex-M处理器是一系列可向上兼容的高能效、易于使用的处理器,这些处理器旨在帮助开发人员满足将来的嵌入式应用的需要。
这些需要包括以更低的成本提供更多功能、不断增加连接、改善代码重用和提高能效ARM-Cortex 的特点:更低的功耗:以更低的 MHz 或更短的活动时段运行,基于架构的睡眠模式支持,比 8/16 位设备的工作方式更智能、睡眠时间更长更小的代码(更低的硅成本):高密度指令集,比 8/16 位设备每字节完成更多操作,更小的 RAM、ROM 或闪存要求易于使用:多个供应商之间的全球标准,代码兼容性,统一的工具和操作系统支持更有竞争力的产品:Powerful Cortex-M processor,每MHz 提供更高的•Cortex-M4是一个32位处理器内核•内部的数据路径是32位的,寄存器是32位的,存储器接口也是32 位的•采用哈佛架构•小端模式和大端模式都是支持的•Thumb指令集与32位性能相结合的高密度代码•针对成本敏感的设备Cortex-M4处理器实现紧耦合的系统组件,降低处理器的面积,减少开发成本•ROM系统更新的代码重载的能力•该处理器可提供卓越的电源效率•饱和算法进行信号处理•硬件除法和快速数字信号处理为导向的乘法累加•集成超低功耗的睡眠模式和一个可选的深度睡眠模式•快速执行代码会使用较慢的处理器时钟,或者增加睡眠模式的时间•为平台的安全性和稳固性,集成了MPU(存储器保护单元)•Cortex-M4内部还附赠了好多调试组件,用于在硬件水平上支持调试操作,如指令断点,数据观察点等•有独立的指令总线和数据总线,可以让取指与数据访问并行不悖2.1.3 基于ARM Cortex-M4 内核的微控制器ARM Cortex-M4内核是微控制器的中央处理单元(CPU),配合外围设备模块和组件,形成完整的基于Cortex-M4的微控制器。
在芯片制造商得到Cortex-M4处理器内核的使用授权后,它们可以将Cortex-M4内核用在自己的硅片设计中,添加存储器,外设,I/O以及其它功能块。
不同厂家设计出的单片机会有不同的配置,包括存储器容量、类型、外设等都各具特色。
由于基于统一的内核架构,事实上本书后面所介绍的飞控软件和算法虽然已ST的STM32F407为基础,它们是很容易移植到其他公司的同内核平台芯片上的,很多与外设无关的代码部分不需要任何改变即可移到其他平台上,仅需要关注外围设备相关部分的驱动代码。
•飞思卡尔(现并入恩智浦)基于ARM Cortex M4内核的Kinetis K60微控制器系列。
Kinetis微控制器组合产品由多个基于ARM@CortexTM_M4内核且引脚、外设和软件均兼容的微控制器系列产品组成。
•ST基于ARM Cortex-M4内核的STM32 F4微控制器系列,具有高达168MHz的主频,以及在此主频工作下的基准测试功耗为38.6mA•TI 基于ARM Cortex-M内核的新型低功耗、浮点Stellaris Cortex-M4F 微控制器系列•恩智浦半导体NXP Semiconductors N.V. 推出LPC4000微控制器,该系列产品采用ARM Cortex-M4和Cortex-M0双核架构的非对称数字信号控制器•ATMEL(Atmel Corporation)基于 Cortex-M4 的 SAM4S162.2 STM32F4 系列微控制器微控制器意法半导体(STMicroelectronics)推出的基于ARM Cortex-M4F系列的微控制器采用了一发半导体最新的NVM工艺和ART加速器TM,处理性能可以达到1.25DMIPS。
•集成了新的DSP和FPU指令•210DMIPS@168MHz•由于采用了ST的ART加速器,程序从FLASH运行相当于0等待•多达1MB FLASH•192Kb SRAM:128KB 在总线矩阵上,64KB在专为CPU使用的数据总线上•支持SWD 2线调试接口高级外设接口:•USB OTG高速 480Mbit/s•IEEE1588,以太网 MAC 10/100•PWM高速定时器:168MHz最大频率•加密/哈希硬件处理器:32位随机数发生器(RNG)•带有日历功能的32位RTC:<1μA的实时时钟,1秒精度•低电压:1.8V到3.6V VDD,在某些封装上,可降低至1.7V•全双工I2S•12位 ADC:0.41us转换/2.4Msps(7.2Msps在交替模式)•高速USART,可达10.5Mbits/s•高速SPI,可达37.5Mbits/s•Camera接口,可达54M字节/s针对无人机飞控系统所使用的外设模块和硬件接口并不需要很多,基本的主要有以下几种:•I2C•UART•SPI•PWM输入捕获和输出比较•AD模数转换•SWD/JTAG调试口•GPIO2.3 飞行控制系统硬件架构设计与原理2.3 飞行控制系统硬件架构设计与原理2.3.1 遥控接收机接口比例遥控器有两种编码模式PCM和PPM,而遥控器的接收机的输出则对应着三种接口类型,一种是PWM通信接口,一种是PPM通信接口,一种是S-bus。
什么是PWM?PWM又称脉冲宽度调制技术,是利用微处理器的数字输出对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
在多旋翼无人机系统中,PWM的主要作用是用来控制电机与表示遥控器信号;一般由遥控接收机接收到PPM信号后,接收机内部解码出每个通道的控制量,然后按照PWM信号重构每个通道并输出到飞控控制系统中。
通过读取下图的恒定脉冲周期中的可变脉冲宽度来进行遥控器发送数据的判定,进而达到控制无人机的作用。
PWM信号的优点:•传输过程高电平采用全电压传输,非0即1,具有数字信号的特性,即可以拥有数字信号的抗干扰能力。
•脉宽的宽度是可以连续调节的,因为这它是传输的连续模拟信息。
•PWM信号的产生和采集解析比较简单,只需要一定的数字电路或者定时器即可,基本不需要占用CPU的运算逻辑资源。
•传输的信号量与电压本身无关,因此对电压上的噪声纹波等不敏感。
什么是PCM编码?PCM 脉冲编码调制是Pulse Code Modulation的缩写。
脉冲编码调制是数字通信的编码方式之一。
主要过程是将话音、图像等模拟信号每隔一定时间进行取样,使其离散化,同时将抽样值按分层单位四舍五入取整量化,同时将抽样值按一组二进制码来表示抽样脉冲的幅值PCM信号编码过程:PCM信号编码过程为:模拟信号 -> 单位时间采样 -> 量化 -》编码,其原理过程可以参考右图所示遥控器接收机将获取到的无线数据通过右图的方式将接受到的模拟信号转换成‘0’和‘1’的数字信号输入到飞控控制系统中。
飞控通过解析接收到的数字信号得出遥控器接收机发送的数据。
什么是S-bus接口?S-bus信号接口,这是日本双叶电子工业株式会社(Futaba)所定义的一种遥控器专用串行总线,它实际上是一种数字总线,采用数字传输方式,这样可以非常方便的在嵌入式系统中适配,并且抗干扰性大大提高。
由于S-bus是一种总线,这意味着一套总线可以扩展连接多个舵机设备,而不需要消耗过多的物理连线。
S-bus的接口物理层实际上是符合通用串行通信口的标准,TTL电平,使用负逻辑(即低电平是逻辑“1”,高电平是逻辑“0”),波特率使用标准100K;其数据帧结构如下图所示2.3.2 电调输出接口飞行控制系统的执行机构一般是无刷直流电机或者空心杯电机,对于无刷直流电机需要通过电子调速器(1.5.4节)进行驱动,因此飞控系统通过控制输出PWM信号控制电子调速器,从而控制电机转速。
在“光标”飞控系统中,硬件上采用了STM32F407处理器的8路TIM输出PWM通道。
采用TIM的输出比较模式(Output Compare)直接控制PWM定时器输出,这样的好处是输出控制信号无需消耗CPU的运算资源。
2.3.3 传感器接口一般市面上的飞控系统上集成的板载传感器主要6轴MEMS微机械传感器,即加三轴速度计和三轴陀螺仪,三轴磁力计,气压高度计,这种配置称为10DOF(degrees of the freedom)。
光标飞控中采用的陀螺仪加速度计是集成一体的芯片MPU6050;MPU6050提供了SPI接口和I2C接口两套总线访问方式。
在光标飞控中为了能够共享总线,采用了I2C总线接口。
将MPU6050挂载在I2C1总线上。
气压高度计是通过测量大气压力来间接获取气压高度的传感器,本例采用飞思卡尔(现恩智浦)半导体公司的MPL3115气压高度计来实现该数据的测量。
其内部集成了一个微机械的气压传感器,配备一个24位高精度ADC模拟/数字转换器,并采用I2C接口总线与主机连接。
磁力计是通过芯片内部的微磁性材料来测量空间3维的磁场强度的传感器,在“光标”飞控中主要采用的是霍尼韦尔公司的HMC5883L来进行测量,也是通过I2C总线外挂的,如图2-15所示。
“光标”飞控通过可选贴的0欧姆电阻来选择磁力计挂在MPU6050的I2C从设备总线上,或者直接与MPU6050共享STM32主芯片的I2C总线2.3.4 GNSS接口GNSS(Global Navigation Satellite System)全球导航卫星位系统主要包含美国的GPS全球定位系统,俄罗斯的Glonass,欧洲的Galileo,中国的Beidou卫星导航系统,以及一些区域增强系统等无人机在室外无人自主驾驶飞行时候必须要通过GNSS系统来获得自己的位置信息,同时计算与规划航线之间的关系,并转换成飞行器的控制信号,从而控制飞行器按照既定的飞行路线飞行。
因此飞控系统一般都集成有GNSS模块的接口。
GNSS模块一般都采用标准串口(波特率57600)与主控设备互联。
2.3.5 SWD调试口SWD,全称Serial Wire Debug,即串行总线调试口,是ARM公司在CoreSight调试访问接口技术中定义的2线制的调试规范,SWD接口比传统处理器调试接口JTAG规范(需要5个引脚)的优势非常明显,它占用较少的芯片引脚,同时提供高速的调试性能,尤其对于仅有较少引脚封装体积较小的微控制器系列SWD 模式比 JTAG 在高速模式下面更加可靠。