第3章 硬 件 设 计 本章主要介绍四旋翼飞行器的硬件设计,硬件设计主要包括飞行器主控电路设计和遥控器电路设计两大部分。其中数据通信使用SPI、IIC、USART三种串行通信协议的最多,这几块内容,硬件和软件部分都有交叉。本书将这部分内容作为预备知识,在正式进入软硬件设计之前介绍,特别是IIC协议,使用频率高,很多器件的读写都是采用这种方式。 3.1协议预备知识 3.1.1SPI总线 SPI(Serial Peripheral Interface,串行外围设备接口),是一种高速全双工的通信总线。它由摩托罗拉公司提出,被广泛地使用在ADC、液晶显示模块等设备与微控制器间通信的场合。 1. 基本情况 SPI总线包含4条总线,分别为SS、SCK、MOSI、MISO。它们的作用介绍如下: (1) SS(Slave Select,片选信号线): 当有多个SPI设备与MCU相连时,每个设备的这个片选信号线是与MCU单独的引脚相连的,而其他的SCK、MOSI、MISO线则为多个设备并联到相同的SPI总线上,如图31所示。当SS信号线为低电平时,片选有效,开始SPI通信。 图31SPI多机通信 (2) SCK(Serial Clock,时钟信号线): 由主通信设备产生,不同设备支持的时钟频率不一样,如STM32的SPI时钟频率最大为fPCLK/2。 (3) MOSI(Master Output Slave Input,主设备输出/从设备输入引脚): 主机的数据从这条信号线输出,从机由这条信号线读入数据,即这条线上数据的方向为主机到从机。 (4) MISO(Master Input Slave Output,主设备输入/从设备输出引脚): 主机从这条信号线读入数据,从机的数据则由这条信号线输出,即在这条线上数据的方向为从机到主机。 2. SPI模式 根据SPI时钟极性(CPOL)和时钟相位(CPHA)配置的不同,分为4种SPI模式。 (1) 时钟极性是指SPI通信设备处于空闲状态时(也可以认为这是SPI通信开始时,即SS为低电平时),SCK信号线的电平信号。CPOL=0时,SCK在空闲状态时为低电平; CPOL=1时,则相反。 (2) 时钟相位是指数据采样的时刻,当CPHA=0时,MOSI或MISO数据线上的信号将会在SCK时钟线的奇数边沿被采样。当CPHA=1时,数据线在SCK的偶数边沿采样,如图32所示。 图32SPI时序(CPHA=0) 下面分析CPHA=0的时序图: 由主机把片选信号线SS拉低,即为图中的SS(O)时序,意为主机输出,SS(I)时序实际上也是SS线信号,SS(I)时序表示从机接收到SS片选被拉低的信号。 在SS被拉低的时刻,SCK分为两种情况: 若设置为CPOL=0,则SCK时序在这个时刻为低电平; 若设置为CPOL=1,则SCK在这个时刻为高电平。 无论CPOL=0还是CPOL=1,因为我们配置的时钟相位CPHA=0,在采样时刻的时序中可以看到,因此采样时刻都是在SCK的奇数边沿(注意奇数边沿有时为下降沿,有时为上升沿)。 因此,MOSI和MISO数据线的有效信号在SCK奇数边沿保持不变,这个信号将在SCK奇数边沿时被采集,在非采样时刻,MOSI和MISO的有效信号才发生切换。 CPHA=1的情况与此类似,但数据信号的采样时刻为偶数边沿,其时序图如图33所示。使用SPI协议通信时,主机和从机的时序要保持一致,即两者都选择相同的SPI模式。 图33SPI时序(CPHA=1) 3. STM32的SPI特性及架构 STM32的小容量产品有1个SPI接口,中容量的有2个,而大容量的则有3个。其特性如下: 单次传输可选择为8位或16位; 波特率预分频系数(最大为fPCLK/2); 时钟极性(CPOL)和相位(CPHA)可编程设置; 数据的传输顺序可进行编程选择,MSB(Most Significant Bit,最高有效位)在前或LSB(Least Significant Bit,最低有效位)在前; 可触发中断的专用发送和接收标志; 可以使用DMA进行数据传输操作。 4. STM32的SPI架构分析 图34为STM32的SPI架构图,可以看到MISO数据线接收到的信号经移位寄存器处理后把数据转移到接收缓冲区,然后这个数据就可以由软件从接收缓冲区读出了。 图34STM32的SPI架构图 当要发送数据时,把数据写入发送缓冲区,硬件将会把它用移位寄存器处理后输出到MOSI数据线。 SCK的时钟信号则由波特率发生器产生,可以通过波特率控制位(BR)来控制它输出的波特率。 控制寄存器CR1掌管着主控制电路,STM32的SPI模块的协议设置(时钟极性、相位等)就是由它来制定的。而控制寄存器CR2则用于设置各种中断使能。 最后为NSS引脚,这个引脚扮演着SPI协议中的SS片选信号线的角色,如果把NSS引脚配置为硬件自动控制,SPI模块能够自动判别它能否成为SPI的主机,或自动进入SPI从机模式。但实际上用得更多的是由软件控制某些GPIO引脚单独作为SS信号,这个GPIO引脚可以随便选择。 3.1.2IIC总线 IIC(InterIntegrated Circuit)协议是由Philips公司开发的,由于它具备引脚少、硬件实现简单、可扩展性强、不需要如USART、CAN的外部收发设备等特点,因此,广泛用于系统内多个器件间的通信。常见的IIC通信系统模型如图35所示。 图35常见的IIC通信系统 1. 物理层 (1) 它只使用两条总线线路: 一条为双向串行数据线(SDA),另一条为串行时钟线(SCL),见图35。 (2) 每个连接到总线的设备都有一个独立地址,主机可以利用这个地址进行不同设备之间的访问。 (3) 多主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用总线。 (4) 具有三种传输模式: 标准模式的传输速率为100kb/s,快速模式为400kb/s,高速模式下可达3.4Mb/s。但目前大多IIC设备尚不支持高速模式。 (5) 片上的滤波器可以滤去总线数据线上的毛刺波以保证数据完整。 (6) 连接到相同总线的IC数量受到总线的最大电容400pF限制。 2. 协议层 IIC的协议包括起始和停止条件、数据有效性、响应、仲裁、时钟同步和地址广播等环节,由于使用的是STM32集成硬件IIC接口,并不需要用软件去模拟SDA和SCL线的时序,所以直接以IIC通信的流程为大家讲解。主机写数据到从机通信过程如图36所示,主机从从机中读数据如图37所示。 图36主机写数据到从机 图37主机由从机中读数据 这两幅图表示的是主机和从机通信时SDA线的数据包序列。 其中S表示由主机的IIC接口产生的传输起始信号,这时连接到IIC总线上的所有从机都会接收到这个信号。 起始信号产生后,所有从机就开始等待主机紧接下来广播的从机地址信号。在IIC总线上,每个设备的地址都是唯一的。当主机广播的地址与某个设备地址相同时,这个设备就被选中了,没被选中的设备将会忽略之后的数据信号。根据IIC协议,这个从机地址可以是7位或10位。 在地址位之后,是传输方向的选择位。该位为0时,表示后面的数据传输方向是由主机传输至从机; 该位为1时,则相反。 从机接收到匹配的地址后,主机或从机会返回一个应答(A)或非应答()信号,只有接收到应答信号后,主机才能继续发送或接收数据。若配置的方向传输位为写数据,广播完地址,接收到应答信号后,主机开始正式向从机传输数据,数据包的大小为8b。 主机每发送完一个数据,都要等待从机的应答信号(A),重复这个过程,可以向从机传输N个数据,这个N没有大小限制。当数据传输结束时,主机向从机发送一个停止传输信号(P),表示不再传输数据。 若配置的方向传输位为读数据,广播完地址,接收到应答信号后,从机开始向主机返回数据,数据包大小也为8位。 从机每发送完一个数据,都会等待主机的应答信号(A),重复这个过程,可以返回N个数据,这个N也没有大小限制。 当主机希望停止接收数据时,就向从机返回一个非应答信号(),则从机自动停止数据传输。 3. STM32的IIC特性及架构 (1) IIC接口特性。 STM32的中等容量和大容量型号芯片均有多达两个IIC总线接口; 能够工作于多主模式或从模式,分别为主接收器、主发送器、从接收器及从发送器; 支持标准模式100kb/s和快速模式400kb/s,不支持高速模式; 支持7位或10位寻址; 内置了硬件CRC(Cyclic Redundancy Check,循环冗余校验)发生器/校验器; IIC的接收和发送都可以使用DMA操作; 支持系统管理总线(SMBus)2.0版。 (2) IIC架构。 IIC的所有硬件架构都是根据SCL线和SDA线展开的。SCL线的时序即为IIC协议中的时钟信号,它由IIC接口根据CCR(Clock Control Register,时钟控制寄存器)控制,控制的参数主要为时钟频率。而SDA线的信号则通过一系列数据控制架构,在将要发送的数据的基础上,根据协议添加各种起始信号、应答信号、地址信号,实现以IIC协议的方式发送出去。读取数据时则从SDA线上的信号中取出接收到的数据值。发送和接收的数据都被保存在DR(Digital Register,数据寄存器)上,IIC的架构图如图38所示。 图38IIC架构图 3.1.3USART总线 STM32的串口功能非常强大,不仅支持最基本的通用串口同步、异步通信,还具有局域互联网总线功能、红外通信功能、SmartCard功能。本节介绍串口最基本、最常用的方法: 全双工、异步通信方式。异步串口通信协议时序图如图39所示。 图39异步串口通信协议 1. 串口工作过程分析 串口外设的架构如图310所示,该架构图看起来十分复杂,实际上对于软件开发人员来说,只需要了解串口发送的过程即可。从下至上,可以看到串口外设主要由三个部分组成,分别是波特率控制、收发控制和数据存储转移。 图310串口架构图 2. 波特率控制 波特率,即每秒传输的二进制位数,用b/s(bps)表示,通过对时钟的控制可以改变波特率。在配置波特率时,向波特率寄存器 USART_BRR写入参数,修改串口时钟的分频值USARTDIV。USART_BRR寄存器包括两部分,分别是DIV_Mantissa(USARTDIV的整数部分)和DIV_Fraction(USARTDIV的小数部分),最终,计算公式为 USARTDIV=DIV_Mantissa+(DIV_Fraction/16)(31) USARTDIV是对串口外设的时钟源进行分频,对于USART1,由于它挂载在APB2总线上,所以它的时钟源为fPCLK2; 而USART2、3挂载在APB1上,时钟源则为fPCLK1,串口的时钟源经过USARTDIV分频后分别输出作为发送器时钟及接收器时钟,控制发送和接收的时序。 3. 收发控制 围绕着发送器和接收器控制部分,有CR1、CR2、CR3和SR多个寄存器,即USART的三个控制寄存器及一个状态寄存器。通过向寄存器写入各种控制参数来控制发送和接收,如奇偶校验位、停止位等,还包括对USART中断的控制。串口的状态在任何时候都可以从状态寄存器中查询得到。具体的控制和状态检查,都是使用库函数来实现的,在此就不具体分析这些寄存器位了。 4. 数据存储转移 收发控制器对数据存储转移部分的移位寄存器进行控制。当需要发送数据时,内核或DMA外设(一种数据传输方式)把数据从内存(变量)写入发送数据寄存器TDR后,发送控制器将适时地自动把数据从TDR加载到发送移位寄存器,然后通过串口线Tx,把数据一位一位地发送出去,当数据从TDR转移到移位寄存器时,会产生发送寄存器TDR已空事件TXE,当数据从移位寄存器全部发送出去时,会产生数据发送完成事件TC,这些事件可以在状态寄存器中查询到。而接收数据则是一个逆过程,数据从串口线Rx一位一位地输入到接收移位寄存器,然后自动地转移到接收数据寄存器RDR,最后用内核指令或DMA读取到内存(变量)中。 3.2总体设计 飞控板是四旋翼飞行器的核心设备,目前市面上适合初学者使用的飞控板有KK飞控板、FF飞控板、玉兔二代飞控板、MWC飞控板、APM飞控板、NAZA飞控板等。它们有各自的特征,满足大部分初学者的要求,遥控器的种类也很多。本书硬件飞控板采用自制核心板,配上常用的集成块设计理念完成设计,给产品升级留出很大的设计空间。遥控器没有采用现成的遥控器,通过无线模块和微控制器自制的简易遥控器。 3.2.1遥控器电路基本框架 遥控器模块电路主要包括显示模块,无线收发模块,AD(Analog to Digital,模数)采集模块和微控制器模块。硬件框图如图311所示。 图311遥控器电路框图 其中: 无线收发模块: 用来和四旋翼飞行器进行通信,实现对飞行器的实时控制。 AD采集模块: 获取操作杆数据,用来完成四旋翼飞行器的一系列动作。 显示模块: 可以完成飞行器的实时参数变化情况,方便用户操控,直观,显示模块选择触摸屏,可以实时互动。 微控制器STM32F10x: 是遥控器的核心,采用M3和处理器主控芯片,型号为STM32F103C8T6,48个引脚即可满足设计的需要。 3.2.2飞行器主控电路基本框架 飞行器主控电路主要包括气压计模块或超声波模块(二选一)、无线收发模块、9轴传感器模块、微控制器模块和无刷电机电子调速器模块,硬件框图如图312所示。 图312飞行器主控电路框图 其中: 气压计模块: 用于测量高度。 超声波模块: 用于测量高度。 无线收发模块: 用来和四旋翼飞行器进行通信,实现对飞行器的实时控制。 9轴传感器模块: InvenSense第二代传感器,集成了加速度计、陀螺仪和磁力计。 微控制器模块: 选用STM32家族M4核作为主控芯片,完成对飞控的数据采集和处理。 无刷电机电子调速器模块: 电机是四旋翼飞行器飞行控制器的执行机构,通过电子调速器对电机控制,电机将飞行控制器的输出转换为旋翼的转速,改变各旋翼的升力与反扭矩,以起到调节飞行器姿态的作用。 3.3飞行器主控电路最小系统设计 微控制器是飞行控制器的核心单元,对四旋翼飞行器的控制实现起着至关重要的作用。世界知名半导体公司意法半导体所开发的STM32系列单片机是高性能单片机的杰出代表。STM32系列单片机基于ARM的IP核设计,加上意法半导体自有特色的外设与总线优化,使得STM32兼顾ARM32位处理器的高运算性能的同时具有高度可扩展性,对嵌入式系统市场的占有率居高不下。本设计中采用STM32家族中M4核作为主控芯片。 3.3.1基本原理 四旋翼飞行器选择M4系列作为主控芯片还是考虑到它的速度。作为Cortex M3市场的最大占有者,ST公司在2011年推出的基于Cortex M4内核的STM32F4系列产品。相对于STM32F1/F2等Cortex M3产品,STM32F4最大的优势就是新增了硬件FPU(Float Point Unit,浮点运算单元)单元以及DSP(Digital Signal Processing,数字信号处理)指令。同时,STM32F4的主频也提高了很多,达到168MHz(可获得210DMIPS的处理能力),这使得STM32F4尤其适用于需要浮点运算或DSP处理的应用。 STM32F4相对于STM32F1的主要优势如下。 1. 更先进的内核 STM32F4采用Cortex M4内核,带FPU和DSP指令集; 而STM32F1采用的是Cortex M3内核,不带FPU和DSP指令集。 2. 更多的资源 STM32F4拥有多达192KB的片内SRAM(Static Random Access Memory,静态随机存取存储器),带摄像头接口(DCMI)、加密处理器(CRYP)、USB高速OTG、真随机数发生器、OTP(One Time Programable,一次性可编程)存储器等。 3. 增强的外设功能 对于相同的外设部分,STM32F4具有更快的模数转换速度、更低的ADC/DAC工作电压、32位定时器、带日历功能的实时时钟(RTC)、I/O复用功能大大增强、4KB的电池备份SRAM以及更快的USART和SPI通信速度。 4. 更高的性能 STM32F4最高运行频率可达168MHz,而STM32F1只能到72MHz; STM32F4拥有ART(Adaptive RealTime Accelerator,自适应实时加速器),可以达到相当于Flash零等待周期的性能,STM32F1则需要等待周期; STM32F4的FSMC(Flexible Static Memory Controller,可变静态存储控制器)采用32位多重AHB(Advanced High Performance Bus,高性能总线)总线矩阵,相比STM32F1总线访问速度明显提高。 5. 更低的功耗 STM32F40x的功耗为238μA/MHz,其中低功耗版本的STM32F401更是低到140μA/MHz,而STM32F1则高达421μA/MHz。 STM32F4家族目前拥有STM32F40x、STM32F41x、STM32F42x和STM32F43x等几个系列,数十个产品型号,不同型号之间软件和引脚具有良好的兼容性,可方便客户迅速升级产品。其中,STM32F42x/43x系列带了LCD控制器和SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)接口,对于想要驱动大屏或需要大内存的用户来说,是个不错的选择。目前STM32F4这些芯片型号都已量产,可以方便地购买到,不过目前来说,性价比最高的是STM32F407。 3.3.2硬件电路设计 最小系统设计和一般单片机最小系统设计区别不大,主要包含晶振电路、复位电路、JTAG等。图313给出了飞控板的最小系统电路。STM32F407引脚较多,主要I/O引脚接口如图313(a)所示,电源及晶振接口如图313(b)所示,复位电路和下载电路如图313(c)所示。 从图313(a)可以看出,对于四旋翼飞行设计,实际系统的I/O口不是特别多,该最小系统在设计时为了方便使用,把所有的I/O口均预留了,方便以后扩展使用。对于成型的调试,不建议用户这么做,采用杜邦线连接稳定性还是要差很多,尽量把所有的功能集成到一块印制电路板上,后面键盘就是这样的设计思路。 在电源和晶振电路的接口电路设计中,STM32均采用双晶振设计,即8MHz和32kHz,通过稳压芯片得到3.3V的电压给芯片供电。 该最小系统预留了下载调试电路,方便使用者调试代码,另外可根据实际需要,保留Jlink接口。具体使用的引脚详见附录B中的电路图。 图313飞控板核心控制电路(M4最小系统) 图313(续) 3.4姿态传感器模块 四旋翼飞行器核心就是姿态的控制,按姿态控制的功能模块划分,常用的模块有陀螺仪、加速度计、磁强计和气压计等。随着MEMS(MicroElectroMechanical System,微机电系统)技术的发展,通常把陀螺仪、加速度计、磁强计都集成在一个模块上,一是使用方便,二是采集的数据更加稳定。某些特殊的场合,使用专门的加速度计、磁强计和气压计等。现在四旋翼飞行器控制大部分都采用集成度较高的器件了,MPU6050和MPU9250是近年使用频率较高的两款器件,就是常说的6轴和9轴。MPU9250是MPU6050的升级版本,集成块外观做得也比较接近,如图314所示。 图314MPU9250和MPU6050模块 3.4.1基本原理 本书使用姿态传感器的模块为MPU9250。MPU9250为全球首例整合9轴运动姿态检测的数字传感器,消除了多传感器组合的轴间差问题,并减少了传感器的体积,降低了系统的功耗。MPU9250内部集成3轴陀螺仪、3轴加速度计和3轴磁力计,输出信号都是16位的数字量; 可以通过集成电路总线(IIC)接口和单片机进行数据交互,传输速率可达400kHz/s。陀螺仪的角速度测量范围最高达±1009πrad/s,具有良好的动态响应特性。MPU9250内部结构如图315所示。 图315MPU9250内部结构 从图315中的MPU9250内部结构可以发现,当主控芯片MPU9250作为主机,SPI通信需要用到CS、SDO、SCLK和SDI信号。因为这些引脚和IIC的引脚冲突,所以在这个模式下,设备不能辅助IIC设备通信。 MPU9250作为IIC的主控芯片有局限性,取决于系统对传感器的初始配置。IIC的SDA和SCL是复用口,主控芯片可以通过它直接和辅助传感器通信(AUX_DA和AUX_CL)。 当MPU9250与主控芯片使用SPI通信时,可以通过IIC从机单字节读写配置辅助传感器。一旦外部传感器被配置成功,MPU9250就可以通过IIC来进行单字节或多字节的配置了。读取的结果可以通过从机的0~3控制器写入FIFO缓冲区,中断引脚INT建议与主控芯片连接,以便唤醒主芯片。 1. 三轴加速度计 加速度计是一种用来测量运载体线性加速度的传感系统。加速度计的主要部件由检测质量(或敏感质量)、支承、阻尼系统、弹簧、电位系统以及壳体组成。由于受到支承的约束,检测质量只能沿着固定轴线运动,该固定轴线称为输入轴或敏感轴。当仪表壳体运动时,检测质量与壳体之间将产生相对运动。在惯性力的作用下,加速度计内部的弹簧发生形变,对检测质量作用,使其进行加速运动。最终,弹簧力与检测质量的惯性力会达到平衡状态,检测质量与壳体之间的相对运动随之停止。此时,根据弹簧的形变可以计算运载体的加速度大小。加速度信号通过内部的电位系统被转换为电信号,输出至微控制系统。常用加速度计类型有微机械加速度计、重锤式加速度计、液浮摆式加速度计、挠性摆式加速度计等。 MPU9250内置的加速度计具有输出稳定、抗冲击能力强、过电保护等优点。加速度计具有以下性能指标: 三轴加速度计可编程精度范围为±2g、±4g、±8g和±16g,内置16位ADC产生三轴数字信号输出; 加速度计正常工作电流为450μA; 加速度计低功耗模式为0.98Hz时8.4μA,31.25Hz时19.8μA; 具有用户可编程中断功能; 应用处理系统低功耗模式可被运动中断唤醒; 具有自检功能。 2. 三轴陀螺仪 陀螺仪是用来测量运载体角速度的系统,三轴陀螺仪可以通过角速度计量同时测量运载体6个方向的位置、运动轨迹和加速度。三轴陀螺仪具有轻质量、小体积等优点。陀螺仪的主要构成部分为位于轴心的一个可旋转轮子。根据角动量守恒原理,当运载体进行旋转动作时,陀螺仪会产生抗拒运载体方向改变的趋势。MEMS陀螺仪不同于机械陀螺仪,它的原理是科里奥利力。当运载体来回作径向运动时,受到科里奥利力的影响,运动轨迹不是简单地横向往返变换。运载体进行旋转运动时,同时受到科里奥利力和离心力的共同作用; 当质点相对于惯性坐标系做直线运动时,质点的运动轨迹相对于旋转体系而言为一条直线。若以旋转体系为参考系,质点的直线运动轨迹会与原有方向出现一定角度的偏差,形成弧形运动轨迹,这便是科里奥利力的作用。科里奥利力并非真实作用在物体上的力,而是在非惯性系中惯性作用力的表现。科里奥利力计算公式如下: FC=-2m(ω×�瘙經)(32) 式中,FC为科里奥利力; m为质点质量; ω为旋转体系角速度; �瘙經为质点运动速度; ×表示两个矢量的外积。 MPU9250釆用MEMS三轴陀螺仪,配合加速度计,可以对物体的线性运动和旋转运动进行很好的描述。陀螺仪性能参数如下: 16位ADC产生x,y,z三轴数字输出,可编程精度调节范围为±250rad/s,±1000rad/s,±1259rad/s; 内置可编程低通滤波系统; 陀螺仪工作电流为3.2mA; 睡眠模式8μA; 灵敏度校准可调。 3. 三轴磁力计 磁力计又叫高斯计,磁力计可测量磁场方向和磁场强度,在惯性导航中起着确定物体方向的作用。MPU9250封装了日本Asahi Kasei Microsystems公司的AK8963三轴磁力计,该芯片具有大量程低功耗的特点。输出数据可为14位(0.6μT/LSB)或16位(15μT/LSB),最大量程为±4800μT。重复率为8Hz时工作电流为280μA。 3.4.2硬件电路设计 MPU9250姿态传感器采用IIC接口,与飞控板主控器的PB10(SCL)、PB11(SDA)连接,接口电路简单,使用方便,如图316所示。 MPU9250接口电路引脚功能名称如表31所示。 图316MPU9250接口电路 表31MPU9250集成模块引脚 引 脚 序 号引 脚 名 称引 脚 用 途 1VCC电源(3.3V或5V) 2GND地 3SCLIIC(InterIntegrated Circuit,集成电路线总线)协议时钟引脚 4SDAIIC协议时数据引脚; SPI协议时数据输出 5EDA辅助IIC时钟引脚 6ECL辅助IIC数据引脚 7AD0IIC协议时地址引脚; SPI协议时数据输出引脚 8INT中断信号输出引脚 9NCSSPI协议片选引脚 10FSYNC帧同步数字输入(不使用时接至GND) 3.5无线通信模块 无线通信模块主要用于遥控器和飞行控制器之间的数据传输,实现指定动作和数据实时回传,在飞控系统中是非常重要的一个模块。本飞控系统采用的是美国SILABS公司的SI4463无线芯片作为主控芯片的无线收发集成块,型号为AS10M4463DSMA。外观如图317所示。 图317无线收发模块外观图 主要参数: 频率范围: 119~1050MHz; 最大数据速率: 1Mb/s; 调制格式: 4FSK、4GFSK、ASK、FSK、GFSK、GMSK、MSK、OOK; 输出功率: 20dBm; 工作电源电压: 1.8~3.6V; 接口类型: SPI; 灵敏度: -126dBm。 3.5.1基本原理 SI4463芯片是高性能的低电流无线收发器,覆盖了119~1050MHz的Sub1GHz频段。灵敏度达到-126dBm,同时实现了极低的活动和休眠电流消耗。内部结构如图318所示。 图318SI4463内部结构 SI4463有20个引脚,主要引脚功能可以分为两大类: 硬件引脚和软件引脚。硬件引脚主要由电源、射频部分组成,软件引脚主要分为SPI、芯片使能以及GPIO等组成。具体引脚号和功能简述如表32所示。 表32SI4463引脚简述 引脚引 脚 名 称功能 1SDN关断输入引脚。0~VDD V数字输入,SDN应该是0,除了关断模式下,所有的模式当SDN=1时,芯片将被彻底关闭,寄存器的内容将丢失 2, 3RXP, RXN差分RF输入的低噪声放大器引脚 4TX发射输出引脚,它的输出是一个开漏连接,所以在LC匹配必须提供VDD(+3.3V,DC标称值) 5NC空 6,8VDD+1.8~+3.6 V电源电压输入到内部稳压器, 建议VDD电源电压为+3.3V 续表 引脚引 脚 名 称功能 7TXRAMP可编程偏差输出与斜坡能力的外部FET(Field Effect Transistor,场效应晶体管)功率放大器 9,10,19,20GPIO0,GPIO1 GPIO2,GPIO3通用数字I/O 11nIRQ中断状态输出 12SCLK串行时钟输入 13SDO0~VDD V数字输出 14SDI串行数据输入,0~VDD V数字输入,该引脚提供了4线串行数据流串行数据总线 15nSEL串行接口选择输入,0~VDD V数字输入,此引脚提供了选择/启用功能的4线串行数据总线 16,17XOUT, XIN晶体振荡器的输出/晶体振荡器的输入 18,PADDLE_GNDGND地 3.5.2硬件电路设计 无线通信模块硬件电路分为两部分: 一部分放在飞控板上; 另一部分放在遥控器手柄上。两部分接口电路如图319所示。 图319无线模块接口电路 表33给出了AS10M4463D集成模块的引脚,一共12个引脚,采用SPI总线完成数据传输,引脚的功能含义和芯片本身功能一致。 该模块在使用时,厂家给出如下建议: (1) 高频模拟器件具有静电敏感特性,应尽可能避免人体接触模块上的电子元件。 (2) 焊接时,电烙铁需要接地。 (3) 电源品质对模块性能影响较大,为保证模块供电电源具有较小纹波,务必避免电源频繁大幅度抖动,推荐使用π型滤波器(钽电容+电感)。 表33AS10M4463D集成模块引脚 引 脚 序 号引 脚 名 称引 脚 用 途 1GND连接到电源参考地 2SDN低电平开启 3GPIO3模块信息输出引脚 4GPIO2模块信息输出引脚 5nSEL模块 SPI 片选引脚,低电平有效 6MOSI模块 SPI 数据输入引脚 7MISO模块 SPI 数据输出引脚 8SCK模块 SPI 时钟引脚 9IRQ模块中断引脚 10GPIO1模块信息输出引脚 11GPIO0模块信息输出引脚 12VDD1.8~3.6V (4) 模块地线使用单点接地方式,推荐使用0Ω电阻,或10mH电感,与其他部分电路参考地分开。 (5) 模块天线安装结构对模块性能有较大影响,务必保证天线外露,最好垂直向上。当模块安装于机壳内部时,可使用优质的天线延长线,将天线延伸至机壳外部。天线切不可安装于金属壳内部,将极大地削弱传输距离。 (6) 同一产品内部若存在其他频段无线设备,由于谐波干扰的可能性,请尽可能加大与本模块之间的直线距离,并尽可能使用金属材料将两者分开。 (7) 若本模块所在的电路板附近存在晶振,请尽可能加大与晶振之间的直线距离,晶振尽可能采用带金属壳封装的石英晶体,晶振布线应该采用“铺地”方式进行包裹。 3.6定高模块 常用的定高模块有超声波模块和气压计模块,两种模块各有特色,下面分别介绍这两种模块的基本原理和使用方法。 3.6.1超声波定高模块 本书使用的超声波测距模块型号为US016,该模块可实现2cm~3m的非接触测距功能,供电电压为5V,工作电流为3.8mA,支持模拟电压输出,工作稳定可靠。本模块根据不同应用场景可设置成不同的量程(最大测量距离分别为1m和3m),当量程(Range)管脚悬空时,量程为3m,US016能将测量距离转化为模拟电压输出,输出电压值与测量距离成正比。主要技术参数如表34所示,本模块实物图如图320所示。 表34超声波模块主要参数 电气参数US016超声波测距模块 工作电压DC 5V 工作电流3.8mA 工作温度0~70℃ 输出方式模拟电压0~VCC 感应角度小于15° 探测距离2~300cm 探测精度(0.3±1%)cm 分辨率1mm 图320超声波模块实物图 1. 接口说明 本模块有4Pin供电及通信接口。4Pin接口为2.54mm间距的弯排针,从左到右依次编号1、2、3、4。它们的定义如表35所示。 表35超声波模块引脚 引 脚 序 号作用 1接VCC电源(直流5V) 2 量程设置引脚(Range),当模块上电时此引脚为高电平时,量程为3m; 当模块上电时此引脚为低电平时,量程为1m。此引脚内带上拉电阻,当量程引脚悬空时,量程为3m 3模拟电压输出引脚(Out),模拟电压与测量距离成正比,输出范围为0~VCC 4接外部电路的地 2. 测距工作原理 模块上电后,系统首先判断量程引脚的输入电平,根据输入电平状态来设置不同的量程。当量程引脚为高电平时,量程为3m; 当量程管脚为低电平时,量程为1m。 然后,系统开始连续测距,同时将测距结果通过模拟电压在Out管脚输出。当距离变化时,模拟电压也会随之进行变化。模拟电压与测量距离成正比,模拟电压的输出范围是0~VCC。 当系统量程为1m时,测量距离L=1024×Vout/VCC(mm)。当输出电压为0V时,对应距离为0m,输出VCC对应为1.024m。 当系统量程为3m时,测量距离L=3096×Vout/VCC(mm)。当输出电压为0V时,对应距离为0m,输出VCC对应为3.072m。 (1) 量程为1m时编程建议。 当上电时,需要将量程管脚设置为低电平。测量时,可采用ADC对Out管脚的输出电压进行采样,根据ADC值换算出测量距离,可用如下公式计算: L=(A×1024/2n)*(Vref/VCC)(33) 其中A为ADC的值,n为ADC的位数,Vref为ADC的参考电压,VCC为US016的电源电压。 如果采用10位ADC进行采样,且ADC的参考电压为VCC时,测量距离可用ADC的值来表示。例如,当ADC采样值为345时,测量距离为345mm。 (2) 量程为3m时编程建议。 当上电时,需要将量程设置管脚悬空或设置为高电平。测量时,可采用ADC对Out管脚的输出电压进行采样,根据ADC值换算出测量距离,可用如下公式计算: L=(A×3072/2n)*(Vref/VCC)(34) 其中A为ADC的值,n为ADC的位数,Vref为ADC的参考电压,VCC为US016的电源电压。 如果采用10位ADC进行采样,且ADC的参考电压为VCC时,测量距离可用3×ADC的值来表示。例如,当10位ADC采样值为400时,测量距离为3×400 = 1200mm。 3.6.2气压计定高模块 测量气压高度普遍是依据大气压强变化规律来的,即大气压强值随着海拔高度的增加而减小,从而可以通过检测大气静压间接获得海拔高度。在理想的气体环境下,实际高度约等于气压高度; 而在实际的气体条件下,由于温度和空气密度等因素的差异始终存在,因此实际高度与气压高度间存在着差距。所以在实际的检测气压高度时,主要工作之一就是尽量减小其他环境因素对高度测量带来的影响,以便使得测量的气压高度尽可能多地逼近实际高度,同时还要有较好的分辨率。 1. 基本原理 MS561101BA气压传感器是由瑞士MEAS推出的一款SPI和IIC总线接口的新一代高分辨率气压传感器,分辨率可达到10cm。该传感器模块包括一个高线性度的压力传感器和一个超低功耗的24位Σ模数转换器。MS561101BA提供了一 个精确的24位数字压力值和温度值以及不同操作模式,可以提高转换速度并优化电流消耗。高分辨率温度输出无须额外的传感器便可实现高度计/温度计功能,以与微控制器连接,且通信协议简单,无须在设备内部寄存器编程。MS561101BA模块如图321所示。 图321气压计MS561101BA模块 其各项参数如下: 分辨率: 1.2Pa; 输出: 24位数字输出; 量程: 1~120kPa; 工作温度范围: -40~85℃; 精确度: 25℃、75kPa时,-150~+150Pa; 供电电源: 1.8~3.6V。 特点: 低功耗1μA,集成数字压力传感器(24位ΔΣ模数转换器),IIC和SPI接口,达20MHz,无须外部元件(内部振荡器),其内部结构如图322所示。 图322MS5611内部结构 2. 硬件电路设计 该模块与M4核心板接口电路如图323所示。 图323MS5611接口电路 MS5611接口电路引脚功能如表36所示。 表36MS5611集成模块引脚 引 脚 序 号引 脚 名 称引 脚 用 途 1VCC电源(3.3V或5V) 2GND负极 3PS通信协议选择: PS为高电平时(VCC)→IIC协议; PS为低电平时(GND)→SPI协议 4CSBSPI协议时片选引脚; IIC协议时地址引脚(接GND或VCC)一般接GND 5SDOSPI协议时数据输出 6SDASPI协议时数据输入; IIC协议时数据线 7SCLKSPI/IIC协议时时钟线 3.7电机及驱动模块 电机是四旋翼飞行器飞行控制器的执行机构,电机将飞行控制器的输出转换为旋翼的转速,改变各旋翼的升力与反扭矩,以起到调节飞行器姿态的作用。本书选用了朗宇X2204S无刷直流电机,如图324所示。 图324朗宇X2204S无刷电机 主要参数: KV: 2300r/(min·V); 适用电池节数 (cell): 2S Lipoly; 重量: 22.8g; 高度: 34.6mm含桨夹高度; 直径: 27.5mm; 适用螺旋桨孔径: 5mm。 其他指标如表37所示。 表37朗宇X2204S无刷电机尺寸与电压、电流、推力的对应关系 支架/Inch电压/V电流/A推力/gf功率/W GWS5043直驱桨11.10.8 1.7 2.9 4 5.3 6.9 7.850 100 150 200 250 300 3508.88 18.87 32.19 44.4 58.83 76.59 86.58 四旋翼飞行器的运动需要驱动设备供给能量,产生升力,驱动模块的功能即为在主控制器指令下给出相应的功率管触发控制信号,经逆变电路控制驱动电机的转速,带动螺旋桨产生升力,实现飞行器的飞行控制。根据电机的不同,驱动器分为有刷电调和无刷电调,本书采用的是无刷电机,因此使用的是无刷电调,如图325所示。 图325无刷电子调速器 主要参数如下: 型号: XRotor 15A; 持续电流: 15A; 瞬时电流(10s): 20A; BEC(Battery Elimination Circuit,免电池电路): 无; 锂电节数: 23S 进角(高/中); 重量: 10.5g; 尺寸: 47mm×17mm×8.3mm; 应用范围: XRotor 15A 250/300级多轴。 3.7.1基本原理 1. 无刷电机 无刷电机是采用无刷电子调速器实现电子换向,具有可靠性高、无换向火花、机械噪声低等优点。电机产品的型号一般以KV值为准,KV值是指r/(min·V),指的是当输入电压增加1V时,无刷电机空转转速增加的转速值。对于同尺寸规格的无刷电机来说,绕线匝数多,KV值低,最高输出电流小,但是扭力大; 绕线匝数少,KV值高,最高输出电流大,但是扭力小。 2. 无刷电子调速器 无刷电调输入的是直流,可以接稳压电源或锂电池。输出是三相交流,直接与电机的三相输入端相连。电调还有三根线连出,用来与接收机连接,控制电机的运转。当上电时,电机反转,需要把电机输入端三根导线的任意两根对换位置。 3.7.2硬件电路设计 1. 电路连接 电调参考手册给出的使用向导接线方法,如图326所示。 图326电调接线方法 图327电调与电机连接电路图(一组) 实际一组电路图如图327所示,其中PB6、PB7、PB8、PB9作为信号控制线(与STM32连接)。 电调在使用过程中,应严格按手册使用向导操作规程来操作,手册中给出的操作规程步骤如下: 电调接入飞行系统后,每次上电会自动检测输入的油门信号,然后执行相应的油门模式; 普通油门模式可以进行油门行程校准及进角设定,One Shot125油门模式不能进行油门行程校准及进角设定; 普通油门模式下首次使用XRotor无刷电调或更换遥控设备后需要进行油门行程校准; 当电调驱动盘式电机出现异常或要求达到更高转速时,可尝试更改进角参数(注意,电调出厂默认为中进角)。 2. 油门行程校准操作方法 油门行程校准操作方法如图328所示。 图328油门行程校准操作方法 3. 进角参数设定操作方法 进角参数设定操作方法如图329所示。 图329进角参数设定操作方法 3.8遥控器模块设计 对于四旋翼飞行器来说,比较流行的是2.4G的遥控器,知名遥控器品牌主要有天地飞、JR、Futaba等。这些遥控器的优点是遥控距离比较远、可靠性高、姿态调节比较柔和; 其缺点是,体积大、耗电大、通道数量受限制等。对于一般简单的四旋翼飞行器控制,可以自制简易航模遥控器,原理简单,制作方便。遥控器设计成类似PSP游戏机的外形,操作方便,如图330所示。 图330PSP与飞控手柄 3.8.1基本原理 在图31中已经介绍了遥控器的基本框图,主要包括摇杆、无线和显示三个功能模块。该电路整体结构简单,接口电路较少,基本和一个最小系统差不多。 1. 摇杆电位器 摇杆电位器分为油门控制和万向控制两种。 有弹油门控制: 会自己回位,可推到任意位置,松手自动回位。 无弹油门控制: 不自动回位,可停留在任意位置。 万向控制: 自动回中。推上、下、左、右都自动回中,如图331所示。 图331摇杆电位器及帽 2. 液晶 液晶采用串口屏TFT(Thin Film Transistor,薄膜晶体管)液晶显示模块,操作简单方便,适合数据的实时回传。操作界面如图332所示,通过触摸屏上的图标,可以直接读取运行的参数和飞行控制。 图332串口TFT液晶显示模块 对于产品研发者来说,产品研发初期可以选择的接口主要有三种类型: RGB接口、MCU总线接口和串口HMI。串口HMI(Human Machine Interface,人机接口)对于开发者来说,是最简单的显示方案。首先它跟MCU总线一样,对用户的硬件没有任何要求; 其次,它没有速度瓶颈,因为界面的显示是设备内部实现的,用户MCU只是发送指令,并不需要底层驱动; 再次,针对显示人机界面的布局和大多数逻辑(如界面背景、按钮效果、文本显示等),全都不需要用户MCU参与,使用设备提供的上位机软件,在计算机上单击几下鼠标就完成了。制作好资源文件以后下载到屏幕即可自动运行,剩下的就是USART交互了,运行时用户MCU通过简单的对象操作指令来修改界面上的内容。图333所示为串口液晶软件开发界面,开发过程简单,具体指令参考其开发手册。 图333串口液晶软件开发界面 3.8.2硬件电路设计 1. 最小系统电路 最小系统主要包括晶振电路和复位电路,如图334所示。 2. 电源电路 电源采用4节1.5V干电池供电,经过1117稳压模块给系统各部分供电,方便实用。其中P3为预留外接电源和地接口,方便调试使用,D3为电源指示灯,如图335所示。 3. 摇杆电路 摇杆电路如图336所示。 4. 液晶和串口电路 采用TFT串口液晶电路,接口简单,操作方便。TFT串口液晶屏为4线制,分别为电源、地及收发接口,如图337所示。它和串口共用I/O口,通过串口把代码发送给TFT液晶屏,然后串口可继续调试程序使用,如图338所示。 5. 无线收发电路 无线收发电路接口如图339所示。 6. 下载电路 下载电路接口如图340所示。 遥控器调试成功的成品实物图如图341所示。 图334最小系统电路 图335电源电路 图336摇杆电路 图337液晶电路 图338串口电路 图339无线收发电路 图340下载电路 图341遥控器实物 3.9电源模块选择 图342电池 电池选用型号为2200mA·h 3S 11.1V 25C,如图342所示,参数含义如下: 3S是指三个锂电池串联在一起; 11.1V是指电压为11.1V; 2200mA·h是指电池的电流为2200mA·h; 25C就是放电倍率的意思,例如电池是2200mA·h 25C,放电就是2.2A×25=55A。 3.10四旋翼飞行器的组装 前面主要是对硬件电路设计和常规模块选择的介绍,本节主要涉及四旋翼飞行器的组装工作。 3.10.1电机、浆、电池、机型的相互关系 电机KV值: 电机的转速(空载)=KV值×电压。例如,KV1000的电机在10V电压下它的转速(空载)就是10000r/min。 电机的KV值越高,提供出来的扭力就越小。所以,KV值的大小与浆有着密切的关系,以下就这点提供一下配浆经验。 1060浆表示的含义是: 前两位数表示直径,后两位表示螺距。 10代表直径的长是10寸; 60表示浆角(螺距)。 电池的放电能力,最大持续电流是容量×放电C数。例如,1500MA,10C,则最大的持续电流就是1.5×10=15A。 如果该电池长时间超过15A或以上电流工作,那么电池的寿命会变短。还有电池的充满电压单片4.15~4.20V合适,用后的最低电压为单片3.7V以上(切记不要过放),长期不用的保存电压最好为3.9V。 一般电机与浆配值如表38所示。 表38电机与浆的关系 电池电机(KV值)浆 3S 900~10001060或1047浆,9寸浆也可 1200~14009050(9寸浆)至8×6浆 1600~18007寸至6寸浆 2200~28005寸或6寸浆 3000~35004530 2S 1300~15009050 18007060 2500~30005×3 3200~40004530 浆的大小与电流关系: 因为浆相对越大在产生推力的效率就越高。例如,同用3S电池,电流同样是10A(假设),用KV1000配1060浆与KV3000配4530浆,它们分别产生的推力前者是后者的两倍。 机型与电机、浆的关系: 一般来说,浆越大对飞机所产生的反扭力越大,所以浆大小与飞机的翼展大小有着一定关系。浆与电机也有关系,如用1060浆,机的翼展就得要在80cm以上为合适,否则就容易造成飞行器反扭; 又如,用8×6的浆翼展就得在60cm以上。本书选择型号为5040和6040均能正常使用,如图343所示。 图343浆片 3.10.2机架的组装 机架是四旋翼飞行器的骨架,作为四轴的安装平台,如图344所示,支撑起整个飞行器。本书中使用的机架型号为F330,主要特点如下: 层板为沉金PCB(印制电路板),可以直接把电调焊接在板上; 马达轴距为330mm; 机架重量为143g; 马达安装孔位为18mm×16mm。 图344四旋翼飞行器支架 支架配件如图345所示。 图345支架配件(部分)