基于iNEMO模块的姿态检测及数据传输系统设计
3系统硬件设计
本文引用地址:https://www.eepw.com.cn/article/277217.htm3.1 iNEMO模块简介
iNEMO惯性导航模块的基本原理如图2所示,利用MEMS传感器和主控芯片STM32F103RET6提供动静态方向和惯性测量功能。集成3个(4种)意法半导体传感器:3轴陀螺仪(L3GD20)、3轴加速度计+3轴磁力计(LSM303DLHC)以及气压传感器(LPS331AP),iNEMO传感器平台主控制器通过I2C总线与各传感器通信。iNEMO传感器平台可以通过串口向外界提供各传感器原始数据,还可以提供各传感器经AHRS算法融合后的横滚、偏航及俯仰角度。

图2 iNEMO惯性导航模块框图
3.2主控制器电路设计
图3为系统主控板电路图,其中处理器采用了STM32F103VCT6,STM32系列单片机以Cortex-M3为内核,时钟频率可达到72M Hz,具有丰富的片内外设,高性能、低成本、低功耗的特点使其成为32位产品用户的最佳选择。主控板拓展了多个串行接口,和iNEMO腿部模块、iNEMO腰部模块和GPRS模块进行串口通信。稳压芯片选用了LM2576D2T-5,其最大输入电压为45V,可稳定输出5V电压,再经过REG1117-3.3的稳压电路,产生3.3V工作电压,当电流异常导致温度过高时,保险丝F1、F2可以自身熔断切断电流,起到保护电路的作用。另外主控电路还包括复位电路、晶振电路、电容滤波电路以及JTAG下载接口等。

图3主控板电路图
3.3 GPRS电路设计
图4为GPRS电路图,主要包括MCU、SIM300模块、SIM卡卡槽、稳压电路四部分。MCU同样采用了STM32F103VCT6,围绕它设计了单片机最小系统,包括晶振电路、复位电路、电容滤波电路等,MCU通过串口向SIM300发送控制指令以及接收SIM300返回的数据;SIM300模块与PCB板的连接方式为60引脚的板板连接器,全部引脚从该连接器引出,SIM300的网络状态指示灯引脚可根据模块的网络状态输出不同频率的电压脉冲,方便观测模块是否正常工作,对于不需要用的音频接口、LCD接口等,对应的引脚悬空即可;稳压芯片选择方面,可以使用开关型稳压芯片或者LDO线性稳压芯片,开关型稳压芯片转换效率高,但是需要的外围器件较多,且多为功率器件,占用空间比较大,为了节省PCB空间,设计中采用MIC5219-3.3BM5稳压芯片作为SIM300的电源调理芯片。

图4 GPRS电路图
4系统软件设计
4.1系统软件整体流程图
图5所示为系统软件整体流程图,首先对STM32进行初始化配置,包括时钟电路RCC高速时钟和低速时钟的起振、通用引脚GPIO输出输出模式的配置、串口USART波特率的设置,然后将SIM300设置为透传模式,进行网络连接(具体过程可参考3.3),成功连接网络之后,配置iNEMO模块各传感器的分辨率、字节对齐方式、读取频率等,然后分别读取腰部和腿部iNEMO模块的加速度、陀螺仪、磁力计原始数据,获得原始数据之后根据分别率的设置计算磁力计、陀螺仪、加速度的大小,最后通过扩展卡尔曼滤波融合得到腰部的俯仰角PITCH、腿部的偏航角YAW,结合两个角度信息通过查表法进行姿态判断,设置相应的标志位,通过GPRS将姿态标志位打包后发送到远程监控端。

图5系统软件整体流程图
4.2姿态检测
如图6所示,iNEMO模块中L3GD20、LSM303DLHC以及LPS331AP通过I2C串行总线与单片机进行通信,I2C总线两根双向信号线一根是数据线SDA,另一根是时钟线SCL,通过上拉电阻接到正电源VDD,每个接到I2C总线上的器件都有唯一的地址,主机发送地址时,总线上的每个从机都将7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址。

图6 I2C串行总线示意图
加速度计相关文章:加速度计原理
评论