吉林建筑大学学士学位论文
表3-1 NRF24L01引脚与MCU引脚连接对照
MCU引脚 PIO0_12 PIO0_13 PIO0_14 PIO0_15 PIO0_16 NRF24L01引脚 CE CSN SCK MOSI MISO 功能 使能发送或接收 SPI片选信号 SPI时钟信号 SPI数据输入脚 SPI数据输出脚 SPI(Serial Peripheral Interface)是一种串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。SPI 接口由MOSI(串行数据输入),MISO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,CS 决定了唯一的与主设备通信的从设备,如没有CS 信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。通讯时,数据由MISO 输出,MOSI 输入,数据在时钟的上升或下降沿由MISO 输出,在紧接着的下降或上升沿由MOSI 读入,这样经过8/16 次时钟的改变,完成8/16 位数据的传输。
SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。SPI通信协议时序图如图3-6所示。
图3-6 SPI通信协议时序图
15
吉林建筑大学学士学位论文
3.3.4 惯性测量单元电路设计
飞行器硬件电路设计中,最重要的地方就要属于惯性测量单元MPU6050的硬件电路设计。因其封装尺寸太小,并且是QFN的封装方式,焊接难度非常之大。MPU6050是集三轴加速度计和三轴陀螺仪与一起的姿态传感器,MPU6050跟MCU直接采用400Hz的I2C协议传输数据。MPU6050与MCU之间连接只需两根线,一跟是I2C时钟线SCL与MCU的PIO0_22引脚连接,另一根I2C数据线SDA与MCU的 PIO0_23引脚连接。惯性测量单元的电路如图3-7所示。
DP3V3R20R21R2210kΩ10kΩ10kΩINTI2C_SCLI2C_SDADP3V312232413201091118C222.2nFC23104U5INTSCLSDA6AUX_DA7AUX_CL8VLOGICDP3V31VDDCLKIN22CPOUTCLKOUTREGOUT19AD0RESV121FSYNCRESV2GNDMPU6050C21104DGNDDGND
图3-7惯性测量单元电路图
在图3-7中,3个10K上拉电阻R20、R21、R22是为了增强驱动能力,MPU6050的七位设备地址是b110100x,最后一位是通过AD0管脚的电平来确定,本设计接的是地,所以设备地址是b1101000。MPU6050主要接口是两个引脚,一个是I2C数据线SDA引脚,一个是I2C时钟线SCL引脚。
MPU-6050的角速度全格感测范围为±250、±500、±1000与±2000°/sec (dps),可准确追踪快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。产品传输可透过最高至400kHz的IC。MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±5%、3.0V±5%或3.3V±5%,逻辑接口VVDIO供电为1.8V± 5%。MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。
16
吉林建筑大学学士学位论文
I2C总线支持任何IC 生产过程(NMOS和CMOS 双极性),两条线串行数据(SDA )和串行时钟(SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别(无论是微控制器LCD驱动器存储器或键盘接口)而且都可以作为一个发送器或接收器(由器件的功能决定),很明显,LCD驱动器只是一个接收器,而存储器则既可以接收又可以发送数据。除了发送器和接收器外,器件在执行数据传输时也可以被看作是主机或从机(见表3-2),主机是初始化总线的数据传输并产生允许传输的时钟信号的器件。此时 任何被寻址的器件都被认为是从机。
表3-2 I2C总线术语定义
术语 发送器 接收器 主机 从机 多主机 仲裁 同步 描述 发送数据到总线的器件 从总线接收数据的器件 初始化发送,产生时钟信号和终止发送的器件 被主机寻址的器件 同时有多于一个主机尝试控制总线,但不被破坏报文 是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使报文不被破坏的过程 两个或多个器件同步时钟信号的过程
图3-8 起始和停止信号
在I2C 总线中唯一出现的是被定义为起始S和停止P条件见图3-8的情况,其中一种情况是在SCL 线是高电平时SDA 线从高电平向低电平切换这个情况表示起始条件,当SCL 是高电平时SDA 线由低电平向高电平切换表示停止条件, 起始和停止条件一般由主机产生总线在起始条件后被认为处于忙的状态,在停止条件的某段时间后,总线被认为再次处于空闲状态。如果产生重复起始S条件而不产生停止条件,总线会一直处于忙的状态此时的起始条件S和重复起始S条件在功能上是一样的,符号S将作为一个通用的术语既表示起始条件又表示重复起始条件,除非有特别声明的S如果连接到总线的器件合并了必要的接口硬件,那么用它们检测起始和停止条件十分简便,但是没有这种接口的微控制器在每个时
17
吉林建筑大学学士学位论文
钟周期至少要采样SDA 线两次来判别有没有发生电平切换。
在MPU6050工作的时候,通过逻辑分析仪采集到I2C通信时的时序图,如图3-9 所示。
图3-9 MPU6050工作时I2C协议时序图
图3-10 I2C协议时序图
如图3-10所示MPU6050工作时的时序图。首先主机也就是飞控端MCU是时钟线保持高电平,数据线被拉低,产生一个起始信号,紧接着主机(MCU)向从机(MPU6050)发送写设备地址信号,这时的设备地址就是MPU6050的器件地址b11010000,最后一位是0表示发送的是写的地址;从机收到设备地址之后返回个ACK,然后主机再向从机发送设备子地址,也就是寄存器地址,从机再返回ACK,接下来当时钟线保持高电平数据线被拉低时再次发送信号,这时发送的是读取设备的地址b11010001,最后位为1是读取;等到从机返回ACK之后主机开始读取到数据,MCU读取到数据之后,单次通信完成,等待进入下一次通信。
3.3.5 电机驱动电路设计
飞行器硬件电路设计中,电机驱动部分也相当重要。本次所采用的电机是空心杯820直流有刷电机,电机采用3.7V电源供电,驱动思路是这样的,电机的一端接电源正级,负极端接MOS管,MOS管通过飞行器MCU的PWM来控制它的开启与关闭从而控制电机转速。四个电机驱动的PWM分别于MCU的PIO0_0、
18
吉林建筑大学学士学位论文
PIO0_1、PIO0_2、PIO0_3引脚连接。其电路原理图如图3-11所示。
BAT+M1MMotorD21N4148C161042PWM0R121220R144.7KQ1MOSFETMGND
如3-11 电机驱动原理图 图3-12 SI2302特性曲线图
对于N沟道增强型MOS管SI2302,主要参数如下: 晶体管类型:N沟道MOSFET 最大功耗PD:1.25W
栅极门限电压VGS:2.5V(典型值) 漏源电压VDS:20V(极限值) 漏极电流ID:2.8A
通态电阻RDS(on):0.145hm(典型值) 栅极漏电流IGSS:±100nA 结温:55℃--150℃
直流有刷电机驱动采用此MOS管,其特性曲线如图3-12所示,由图可知,它的开启电压为1V,当Vgs=2V时其最大的工作电流可以达到4A,完全能达到本次设计要求;D2反向二极管防止电机断电之后继续转产生的电流击穿MOS管,起着保护MOS管的作用;R12为单片机I/O口的限流电阻;R14为下拉电阻,防止单片机上电之后I/O口为高电平时电机转动。
3.3.6 串口调试电路设计
在本次毕业设计中,串口调试电路只用在遥控器当中,遥控器直接通过Micro USB接口给遥控器供电,然后连接串口,就可以直接跟上位机连接,方便程序调试。本次设计选用的串口转USB芯片是CH340G芯片,CH340G具有以下特点:
● 全速USB设备接口,兼容USB V2.0,外围元器件只需要晶体和电容。 ● 仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。
19