在某四轴飞行器系统设计中,利用惯性测量单元(IMU)、PID电机控制、2.4G无

admin2022-08-02  41

问题 在某四轴飞行器系统设计中,利用惯性测量单元(IMU)、PID电机控制、2.4G无线遥控通信和高速空心直流电机驱动等技术来实现一个简易的嵌入式四轴飞行器方案。整个系统的设计包括飞控板和遥控板两部分,两者之间采用2.4G无线模块进行数据传输。飞控板采用高速单片机STM32作为处理器,采用含有三轴陀螺仪、三轴加速度计的运动传感器MPU16050作为惯性测量单元,通过2.4G无线模块和遥控板进行通信,最终根据PID控制算法以PWM方式驱动空心电机来控制目标。图1为李工设计的系统总体框图。飞控板和遥控板的核心处理器都采用STM32 F103。飞控系统的惯性测量单元采用MPU6050测量传感器,MPU6050使用IIC接口,时钟引脚SCL、数据引脚SDA和数据中断引脚分别接到STM32的对应管脚,图2为该部分原理图。遥控板采用STM32单片机进行设计,使用AD对摇杆模拟数据进行采集,采用NRF2401无线模块进行通信,图3为该部分原理图。    李工所设计的系统软件同样包含飞控板和遥控板两部分,飞控板软件的设计主要包括无线数据的接收、自身姿态的实时计算、电机PID增量的计算和PWM的电机驱动。遥控板主控制器软件通过ADC外设对摇杆数据进行采集,把采集到的数据通过2.4G无线通信模块发送至飞控板。图4为飞控系统的软件流程示意图。1、由图1系统总体框图设计可知,飞控板和遥控板之间是用2.4G无线通信进行数据传输,各自主处理器和无线通信模块之间是SPI接口。同时,在飞控板上,处理器和惯性测量单元是通过IIC进行数据交互。以下关于SPI接口和IIC接口的描述中,正确的是:______ 、______、______、______。A.SPI和IIC都是主从式通信方式  B.SPI的数据收发线是各自独立的,IIC也是同样 C.SPI和IIC的传输都不需要片选控制 D.IIC总线是一个多主机的总线,可以连接多于一个能控制总线的器件到总线  E.IIC总线包括标准模式,快速模式和高速模式,相互之间的传输速度差异并不大  F.在原理设计中,到底采用SPI和IIC哪种方式,需要依据外设芯片的接口而定  G.SPI是一种环形总线结构    H.在IIC总线上,可以有多个从设备具有相同的IIC地址2、(1)图2飞控板部分原理图中,R4的作用是什么?    (2)图3遥控板部分原理图中,C11、C12、C13、C14的作用是什么?3、在STM32处理器的PWM使用过程中,最为关键的就是PWM的频率和占空比。PWM的频率依赖于PWM模块的参考时钟频率,自动装载寄存器ARR的值加1之后再乘以参考时钟频率即可得到PWM的频率。PWM的占空比是用捕获比较寄存器CCR和自动装载寄存器ARR获得的,PWM占空比=CCR/(ARR+1)。    假设当前主控板的STM32处理器PWM模块的参考时钟频率为1kHz,要将PWM模块的频率设置为100kHz,则ARR寄存器的值应设置为多少?如果此时占空比希望设置为20%,那么CCR寄存器的值应该设置为多少?4、5毫秒进行一次定时器的触发,每次中断都会检查一次无线模块数据的接收,以确保飞控系统控制信息的实时性。每2次中断(即1毫秒)读取一次。MPU16050单元的数据,并进行算法处理。每4次中断(即2毫秒)通过计算当前飞控板系统的姿态,结合遥控端的目标姿态,根据两者的差值通过PID控制算法对各个电机进行调速控制。每200次中断(即100毫秒)采集一次电池电压,然后通过无线模块把电池电压发送给遥控板,以告知操作人员当前电压的大小。图4为飞控系统软件实现的简要流程图,根据以上描述,请补全图4中的空(1)~(6)处的内容。

选项

答案

解析 1、(顺序不限)    (1)~(4):A、D、F、G

2、(1)增强驱动能力    (2)滤波,保持信号的稳定性

3、ARR寄存器的值:99    CCR寄存器的值:20

4、(1)检查一次无线模块数据的接收 (2)count%2=0  (3)读取MPU16050单元的数据,并进行算法处理 (4)计算当前飞控板系统的姿态,对各个电机进行调速控制 (5)count%200=0 (6)采集电池电压,通过无线模块把电池电压发送给遥控板

1、本题考查嵌入式软硬件系统协同设计过程中的知识及应用。   

此类题目要求考生认真阅读题目中的题干描述,仔细理解设计的原理框图,详细观察提供的硬件原理图和所描述的软件实现流程示意图。前后结合进行题目分析。   

由图1系统总体框图可知,飞控板和遥控板之间是用2.4G无线通信进行数据传输,各自主处理器和无线通信模块之间是SPI接口。同时,在飞控板上,处理器和惯性测量单元是通过IIC进行数据交互。   

IIC (Inter-Integrated Circuit)和SPI (Serial Peripheral Interface)这两种通信协议非常适合近距离低速芯片间进行通信。Philips (for IIC)和Motorola (for SPI)出于不同背景和市场需求制定了这两种标准通信协议。IIC开发于1982年,SPI总线首次推出是在1979年。   

SPI包含4根信号线,分别是:   

(1)SCLK: Serial Clock (output from master)   

(2)MOSI, SIMO: Master Output, Slave Input(output from master)   

(3)MISO, SOMI: Master Input, Slave Output(output from slave)   

(4)SS: Slave Select (active low, output from master)   

SPI是单主设备(single-master)通信协议,这意味着总线中只有一支中心设备能发起通信。当SPI主设备想读/写从设备时,它首先拉低从设备对应的SS线(SS是低电平有效),接着开始发送工作脉冲到时钟线上,在相应的脉冲时间上,主设备把信号发到MOSI实现“写”,同时可对MISO采样而实现“读”。

SPI有4种操作模式——模式0、模式1、模式2和模式3,它们的区别是定义了在时钟脉冲的哪条边沿转换(toggles)输出信号,哪条边沿采样输入信号,还有时钟脉冲的稳定电平值(就是时钟信号无效时是高还是低)。   

与SPI的单主设备不同,IIC是多主设备的总线,IIC没有物理的芯片选择信号线,没有仲裁逻辑电路,只使用两条信号线—— ‘serial data’ (SDA)和 ‘serial clock’(SCL)。IIC数据传输速率有标准模式(100kbps)、快速模式(400bps)和高速模式(3.4Mbps),另外一些变种实现了低速模式(10kbps)和快速+模式(1Mbps)。   

物理实现上,IIC总线由两根信号线和一根地线组成。IIC通信过程大概如下。首先,主设备发一个START信号,这个信号就像对所有其他设备喊:请大家注意!然后其他设备开始监听总线以准备接收数据。接着,主设备发送一个7位设备地址加一位的读写操作的数据帧。当所有设备接收数据后,比对地址以判断自己是否为目标设备。如果比对不符,设备进入等待状态,等待STOP信号的来临;如果比对相符,设备会发送一个应答信号——ACKNOWLEDGE作回应。当主设备收到应答后便开始传送或接收数据。

数据帧大小为8位,尾随1位的应答信号。主设备发送数据,从设备应答;相反主设备接收数据,主设备应答。当数据传送完毕,主设备发送一个STOP信号,向其他设备宣告释放总线,其他设备回到初始状态。在物理实现上,SCL线和SDA线都是漏极开路(open-drain),通过上拉电阻外加一个电压源。当把线路接地时,线路为逻辑0,当释放线路,线路空闲时,线路为逻辑1。基于这些特性,IIC设备对总线的操作仅有“把线路接地”——输出逻辑0。

2、在一般的硬件设计尤其是IIC的电路设计中,对于SDA和SCL两线,由于其内部是漏极开路(open-drain),通过上拉电阻外加一个3.3V电源,用于增强系统的驱动能力。   

同时在电源设计中,为了去除干扰噪声,需要对电源进行滤波处理,通常采用电容进行滤波处理,以保护系统电源信号的稳定性。

3、在STM32处理器的PWM使用过程中,最为关键的就是PWM的频率和占空比。PWM的频率依赖于PWM模块的参考时钟频率,自动装载寄存器ARR的值加1之后再乘以参考时钟频率即可得到PWM的频率。PWM的占空比是用捕获比较寄存器CCR和自动装载寄存器ARR获得的,PWM占空比=CCR/(ARR+1)。   

进行ARR寄存器的值计算过程中,符合的公式为:ARR寄存器=要设置的频率/时钟频率-1。   

根据占空比则指导CCR的设置符合的公式为:CCR寄存器=(占空比)×(ARR+1)。

4、飞控系统每0.5毫秒进行一次定时器的触发,每次中断都会检查一次无线模块数据的接收,以确保飞控系统控制信息的实时性。每2次中断(即1毫秒)读取一次MPU6050单元的数据,并进行算法处理。每4次中断(即2毫秒)通过计算当前飞控板系统的姿态,结合遥控端的目标姿态,根据两者的差值通过PID控制算法对各个电机进行调速控制。每200次中断(即100毫秒)采集一次电池电压,然后通过无线模块把电池电压发送给遥控板,以告知操作人员当前电压的大小。   

根据以上说明,可以知道其实现流程应该为:系统启动,如果定时器到,需要检查一次无线模块数据的接收,并进行计数增加。对计数进行判断,如果是除2的余为0则说明是2次中断的倍数到达,需要进行MPU6050单元的数据读取和处理,如果中断是4的倍数,那么就说明需要计算飞控板系统的姿态,并对电机进行调速控制。如果是200次的倍数,则需要采集电池电压,并通过无线模块把电池电压发送给遥控板。
转载请注明原文地址:https://tihaiku.com/congyezige/2424788.html

最新回复(0)