飞控系统的传感器
1.1 飞控系统的传感器
⽆⼈飞⾏器要求能够稳定飞⾏,⾸先最基础的问题是需要确定⾃⼰在空间中的位置、速度和姿态等相关的系统状态。⽽要的到这些状态,就需要通过不同的安装在机⾝系统上的各种不同的传感器。
r516
我们所处的空间是三维空间,因此主要的飞⾏器系统状态也主要基于这个三维空间同时在时间维度进⾏拓展:
1:通过全球定位系统GNSS来定位⾃⼰的经度、维度和⾼度等三维坐标信息,同时也可以获取这三维的速度信息 2:通过陀螺仪加速度计直接获取三轴加速度信息与旋转⾓信息的状态量,其他的状态栏只有通过姿态解算
3:当飞⾏器需要往某个⽅向飞⾏时是通过调整飞⾏器的姿态往对应⽅向倾斜,飞⾏器的⼀部分升⼒会分配到该⽅向上成为该⽅向的拉⼒。飞⾏器要能够调整飞⾏的姿态,就必须能够实时的获得机体当前相对于惯性坐标系的姿态,在三维空间中同样姿态⾓也是由三个轴的⾓度来表⽰
4:飞⾏器的三维空间位置信息、三维空间速度信息、三维空间⾓度信息以及三维空间加速度信息和三维空间的⾓速度信息,总共有是⼗五个系统空间状态量需要获得
5:传感器跟估计的精度决定了建模辨识与控制的精度,然后传感器跟估计的精度,与建模辨识,⼀起决定了控制的精度。因此传感器的采集精度与飞⾏控制的控制精度密切相关
1.2 I2C简介
光标飞控系统中集成的微机械六轴传感器和磁⼒计均采⽤I2C总线接⼝与主控处理器连接。本章着重介绍I2C接⼝总线、各传感器的接⼝驱动、数据采集及处理模型。
I2C(Inter-Integrated Circuit)总线是⼀种由PHILIPS公司开发的两线式串⾏总线,⽤于连接微控制器及其它的⼀些外围设备。和我们常⽤的UART通信不同,虽然UART有TX、RX两个接⼝,但是这两根线都是可以单独使⽤,I2C 是由数据线SDA和时钟SCL构成的串⾏总线,可发送和接收数据。在CPU与被控IC设备之间、IC设备与IC设备之间进⾏双向传送,⾼速I2C总线⼀般可达400kbps以上。 它的特点是:
通信模式为主从式设备,可以⼀主多从,也可以多主多从
I2C总线组成“线与”的关系,任何⼀个器件都可以拉到低电平
I2C总线上可以并连多个器件
⽀持7位/10位芯⽚地址寻址
⽀持不同的通信速率,标准速度为100kHz,⾼速速度为400kHz
I2C总线在传送数据过程中⼀共有三种类型的信号,它们分别是:开始信号、结束信号和应答信号。
起始信号与停⽌信号
●起始信号:当SCL为⾼期间,SDA由⾼到低的跳变;启动信号是⼀种电平
跳变时序信号,⽽不是⼀个电平信号。
渗透印章
●停⽌信号:当SCL为⾼期间,SDA由低到⾼的跳变;停⽌信号也是⼀种电
平跳变时序信号,⽽不是⼀个电平信号。
应答信号ACK
发送器每发送⼀个字节,就在时钟脉冲9期间释放数据线,由接收器反馈⼀个应答信号。应答信号为低电平时,规定为有效应答位(ACK简称应答位),表⽰接收器已经成功地接收了该字节;应答信号为⾼电平时,规定为⾮应答位(NACK),⼀般表⽰接收器接收该字节没有成功。
对于反馈有效应答位ACK的要求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的⾼电平期间为稳定的低电平。如果接收器是主控器,则在它收到最后⼀个字节后,发送⼀个NACK信号,以通知被控发送器结束数据发送,并释放SDA线,以便主控接收器发送⼀个停⽌信号P。
数据有效性
I2C总线进⾏数据传送时,时钟信号为⾼电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的⾼电平或低电平状态才允许变化。
即:数据在SCL的上升沿到来之前就需准备好。并在在下降沿到来之前必须稳定。
I2C通讯常⽤基本写时序
对于⼀般设计来说,⼀对I2C引脚可以挂接很多⽀持I2C通讯的设备,因此需要对每个I2C设定设定⼀个设备地址(DEVICE ADDRESS,设备地址设备⾥⾯⾃带,不许需要我们⾃⼰设定)。
I2C⼀般写时序为:主机发送起始信号--》主机发送设备地址编号(7位地址 + 写位) + 从机发送ACK信号 + 主机发送命令 + 从机发送ACK信号 + 主机发送数据 + 从机发送ACK信号 + 主机发送停⽌信号。
巡线机器人I2C通讯常⽤基本读时序
I2C⼀般读时序为:主机发送起始信号 --》主机发送设备地址编号(7位地
址 + 读位) + 从机发送ACK + 主机发送命令 + 从机发送ACK + 主机发送起始信号 + 主机发送设备地址编号(7位地址 + 写位) + 从机发送ACK + 从机发送数据(根据主机的命令) + 主机发送停⽌信号。
1.2.2 I2C驱动在STM32中的硬件实现
I2C通讯常⽤基本写时序
STM32芯⽚中有集成了I2C模块,通过I2C模块,CPU软件可以不需要关注I2C总线的协议实现以及通信时的具体会话过程,只需要将待发送的数据放⼊发送缓冲区中,启动I2C传输即可,⽽接收的时候也可以由硬件触发中断,从接收缓冲区中读取数据既可。
STM32F4的I2C模块的⼯作过程:
火麻仁胶囊1 :STM32F407的I2C模块即可以实现I2C主设备模式,同时也能实现I2C从设备模式。在飞控系统中,主要采⽤STM32F407的主设备模式
2 :在主模式下,I2C模块会启动I2C总线上的数据传输,同时输出SCL的时钟信号
3 :当控制寄存器I2C_CR1的START位置1时,模块⾃动切换到主模式下,同时在总线上发出起始位信号,状态寄存器
I2C_SR1的SB为会被硬件置1,并且当ITEVFEN位置1时产⽣系统中断
4 :接着内部缓冲区会将从设备地址从内部并串转换的移位寄存器中发送到I2C 总线上,发送完毕后状态寄存器中的ADDR位会被置1。接下来主设备会根据读写操作进⼊接收模式或者发送模式,将最后1位置位或者复位发送到总线上。在发送完从地址信息后,主设备会检测从设备响应的ACK信号,只有I2C总线上的从地址设备出现了地址匹配命中的事件并将ACK位拉低后,主设备才能知道有相应的从地址挂载在I2C总线上。
1.3.1 加速度计原理
惯性测量元件是⼀种能够在惯性系中测量载体⾃⾝三维加速度和三维⾓度的设备,主要分为加速度计和⾓速度计两种,其统称为惯性测量元件。
根据物理学原理,加速度的积分是速度,速度的积分是位置信息;⾓速度的积分是⾓度信息
发光陀螺加速度计,或称加速度传感器是⼀种能够测量加速度的设备。加速度传感器可以帮助你检测到⼀个物体或事物此时此刻的状态,是停⽌,还是在运动,是在向前、向后、向左、还是向右运动,以及是在向上还是向下运动。加速度传感器甚⾄可以⽤来分析物体的振动。
惯性元件:
惯性测量元件本⾝固有的误差由于时间积分会累积误差,并且受到元件本⾝的⼯艺、技术和成本的缘故,其误差越⼤,误差的累积就会越快,因此在飞⾏上万公⾥后累积的误差可以达到⼏公⾥甚⾄⼏⼗公⾥,因此现在导航系统都是通过GNSS全球卫星定位系统获取精准的定位和速度信息来对惯导系统进⾏修正。其实⼈体也有惯性测量元件,⼈的⽿蜗充满液体,⼈在运动的时候,可以被⼆种的神经感受到,因此可以测量出⼈体⾃⾝的运动特征。
的惯性测量元件也是⾮常差,闭上眼睛,也不摸周围的东西,只靠⽿蜗感受的移动,⼈基本没法⾛直线,这⾥眼睛的作⽤就相当于GNSS的作⽤,它可以随时修正⽿蜗所感应的惯性信息。
MEMS
MEMS是(Micro-Electro-Mechanical Systems)的英⽂缩写,它是指集成微型机械结构、微型传感器、微型执⾏器以及信号处理和控制电路、直⾄接⼝、通信和电源等于⼀体的微型器件或系统。现在很多微型加速度传感器,陀螺仪都是基于MEMS技术实现的。
风控系统方案
微机械加速度传感器可以根据压电效应的原理来⼯作。
压电效应:
所谓压电效应就是“对于不存在对称中⼼的异级晶体加在晶体上的外⼒除了使晶体发⽣形变以外,还将改变晶体的极化状态,在晶体内部建⽴电场,这种由于机械⼒作⽤使介质发⽣极化的现象称为正压电效应”。
还可以根据压阻技术、谐振式、电容效应等原理来制作惯性测量传感器元件,但是所有的原理基本都是由内部集成的微机械质量块收到物理机械⼒的作⽤带来的某个介质的形变,并将产⽣形变的量转换为电压输出,通过相应的放⼤和滤波电路进⾏采