基于MEMS 的低成本姿态测量系统设计与实现
2019-03-04底双
底双
(哈尔滨工程大学自动化学院,哈尔滨154100)
0 引言
姿态测量系统在军事领域,民用领域,人们日常生产生活中均有着广泛的应用。在军事领域如:船舰航行、导弹发射和航空飞机,都离不开姿态数据;在生活领域如:农业播种、汽车驾驶、医疗检查中,姿态测量也是必不可少的一环。为满足生产生活中对姿态测量的需求,低成本、小型化的航姿测量系统成为人们关心的问题[1]。由于MEMS 传感器具有体积小、质量轻、成本低等特点,适用在便携式航姿系统上装置,已经大量应用在汽车、机器人、无人机等民用领域。随着微机电系统技术与集成电路技术的发展,采用MEMS 惯性测量器件的微小型航姿系统已经成为未来的发展趋势[2]。
1 硬件电路设计
MEMS 传感器为三轴陀螺仪、三轴加速度计和三轴磁力计集成的九轴传感器,处理器可通过SPI 或I2C实时采集九轴传感器数据。系统采用基于四元数的互补滤波算法进行实时姿态解算,得到俯仰角、翻滚角和航向角的姿态信息。设计串口通信和以太网通信模块,扩充航姿系统与上位机通讯方式。设计直接供电和USB 供电两种方式为系统供电,保证航姿系统供电可靠性。
1.1 数据采集电路
MPU9250 可通过SPI 和I2C 两种方式与处理器通信,SPI 通信有两根数据线,一根片选线和一根时钟线,I2C 通信可与SPI 通信接口复用,在设计I2C 通信电路时,根据开漏特性要注意在时钟线和数据通信线加上拉电阻。采集模块电路设计如图1 所示。
图1 导航数据采集模块电路图
1.2 通信电路设计
为增加系统通信方式的可扩展性,设计了以太网通信电路,将姿态信息或传感器输出数据发送到上位机,方便后续对姿态信息的显示和保存。
以太网的发展过程可主要分为:标准以太网、快速以太网、千兆以太网和万兆以太网。现在速度最快的万兆以太网的传输介质多为单模或多模光纤,技术标准为IEEE 802.3ae。设计采用的处理器STM32F769 片上集成了一个MAC802.3,可完成与物理层的数据交接,若要实现STM32F769 处理器与外部设备的以太网通信,只需外接一个端口物理层(PHY)芯片。
MAC 通常支持独立于介质的接口MII 或简化的独立于介质的RMII 接口与PHY 芯片连接。MII 接口需要16 个数据和控制信号引脚与PHY 层芯片连接,RMII 是简化介质独立接口,只需要7 根通信线与PHY层芯片连接。
本文选择一款LAN8742 型号的PHY 芯片,通过RMII 接口连接,这种接口设计简化硬件电路设计的复杂度。LAN8742 内部包含一个全双工传输模块,可实现两种数据传输数率:10Mbit/s 和100Mbit/s,另外可支持HP Auto-MDIX 自动翻转功能,即能自动识别直连或交叉网线并自适应,为实验提供了便利。
LAN8742 的通信数据线与RJ-45 硬件插座之间需要变压器连接,可以选择带变压器的RJ-45 接口,也可将变压器和RJ-45 分开选择,此时要注意内部结构匹配。本文选择国产H2019 变压器匹配RJ-45 硬件插座,通过以太网变压器的连接可以滤除网络和设备之间的噪音,还可以相互隔离抗干扰,对芯片起到了保护作用。
网口设计原理图如图2 所示,TXD、RXD 引脚连接完成网络传输数据的收发,RX_EN 是数据发送使能线,CLKIN 为参考时钟引脚,此处的参考时钟单独由25MHz 外部晶振提供,为RMII 接口的数据收发和控制提供参考时钟。RMII 接口要求参考时钟必须是50MHz,所以晶振提供的25MHz 时钟要通过LAN8742内部PLL 电路倍频得到50MHz 参考时钟。
1987年,我在《中国社会科学》上发表了论文《人的主体性的进程》。这是针对当时学界对主体性的关注而写的。市场经济的建立和发展,呼唤着人的主体性的发展。当时我思考的聚焦点是人的主体性怎样演化。人的成长要经历一系列发展过程,包括其间的曲折。我提出了三个时期、九个阶段的演进模式:初级期人的主体性,即自在、自然、自知、自我的主体性阶段;转折期人的主体性,即自失的主体性阶段;高级期人的主体性,即自觉、自强、自为、自由的主体性阶段。这是我关于人的主体性演化的假说的主要内容。后来我在出版《主体性哲学——人的存在及其意义》一书时,对人的主体性演化作了较为完整的论述。
图2 以太网LAN8742电路原理图
1.3 单片机主板电路设计
单片机主板电路设计主要包括处理器STM32F769的最小系统电路设计,外部存储电路设计。主要负责姿态解算并通过串行接口与外界通信。
处理器芯片需要通过多种通信方式与外设器件通信,还需负责对姿态信息需实时解算。考虑到以上方面,综合系统的性能、功耗和可扩展性的考虑,本文选取ST 公司的STM32F769 芯片作为系统的处理器。STM32F769 是意法半导体(ST)公司基于ARM Cortex-M7 架构设计出来的一款具有浮点单元芯片,工作频率高达216MHz,同时达到近似于STM32F427 系列的较低静态功耗。拥有六组SPI 口以及四组I2C 模块,一组QSPI 接口,可实现串口、USB、以太网多种与PC 的通信方式。多种通信方式接口满足本设计中与传感器和上位机的多种通信要求,对于本设计中的姿态解算要求可以实现较高的数据处理速度。
QSPI 是Motorola 公司推出的SPI 接口的扩展,应用范围比SPI 更加广泛。因为SPI 只有一个8 位发送数据寄存器,所以一次只能传输一个8 位数据,QSPI在SPI 协议的基础上增加了队列传输机制,可以一次性传输多达16 个8 位。QSPI 的传输过程不需要CPU干预,提高了传输效率。QSPI 是一种专用的通信接口,可连接单、双或四条数据线。
处理器通过六条线与Flash 进行QSPI 通信,包括一根时钟信号线,一根片选线和四根数据线[9]。QSPI传输队列中,每个传输控制组由一个命令RAM、一个发送RAM 和一个接收RAM 组成。
本设计中采用一个大小为256MB 的大容量Flash存储器,型号为MT25QL256,并通过QSPI 与处理器通信。选择这种快速通信Flash 存储器是为了存储传感器数据和姿态解算数据,不会丢失,方便处理器随时调用。
2 软件设计
系统软件设计采用模块化设计,思路清晰,调用方便:
●系统初始化模块:首先对处理器片上资源进行初始化,传感器MPU9250 的初始配置,SPI,UART,RMII 口的初始化。
●微惯性器件数据测量模块:微处理器通过相应SPI 通信接口读取惯性测量单元输出的数据
●姿态信息处理模块:此模块需要处理传感器输出数据,进行姿态信息的解算,并将重要的数据信息储存于Flash 中。
●姿态信息显示模块:系统通过串口或以太网方式与上位机进行通信,将姿态信息在上位机中显示。
2.1 信号采集软件设计
MEMS 传感器为九轴集成芯片MPU9250,本文通过SPI 进行量程设定和数据采集。首先对MPU9250进行初始化设置:解除电源休眠状态设置陀螺仪采样率和陀螺仪低通滤波频率,设置加速度计测量范围和加速度计高通滤波范围。
MPU9250 内部集成了MPU9150 的陀螺仪、加速度计和AK8963 磁力计。在芯片内部,AK8963 只能通过I2C 通信。所以需要先置位MPU9250 内部磁力计,然后设置其I2C 通信地址。
读取传感器数据模块:首先进行设置读取命令,读取MPU9250 内部寄存器0x68,内部存储固定值0x71,若读出值正确,则SPI 通信时序正确,这可保证与陀螺仪和加速度计两个传感器通信成功。磁力计为内部集成AK8963,数据通信需要按照I2C 时序配置完成磁力计通信,如图3 所示。
图3 磁力计读取流程图
2.2 网口通信软件设计
LwIP 是一套可简便运行的互联网协议,可以在无操作系统的平台上运行,结构精简且包含完整的TCP协议,适用于嵌入式系统,在STM32F7 可直接调用LwIP 集成库,易于操作,方便移植。
在移植官方LwIP 库时,只需根据情况主要修改enternetif.c 文件,在这个文件中包含了STM32F7 以太网外围初始化函数low_level_int,以太网数据收发数据包low_level_output 和low_level_intput。ETH_MspInt中设置RMII 各个引脚并初始化,注意硬件软件各个引脚对应正确。在完成初始化后,调用MX_Lwip_Process()函数,进行PING 实验,ping 成功代表硬件设计正确且LAN8742 初始化成功,可进行网口通信。
在ping 通后,代表硬件设计正确,然后通过调用TCP_Client_Init 函数进行TCP 客户端初始化,初始化过程需要设定航姿系统IP 地址和端口号。在上位机网口通信界面,确定IP 地址和端口号是否一致完成网络连接,最后调用TCP_Client_Send_Data()函数完成姿态信息传送。
IP 地址由两部分组成,网络标识和主机标识。以太网通信时要保证通信两方网络标识相同,但是主机标识不能重复,彼此不同,保证IP 地址的唯一性。
3 实验
为了验证航姿系统设计的可行性,采用以高精度6轴惯性传感器ADIS16485 为核心的姿态检测系统作为参考系统,进行实验验证。通过硬件电路采集各个MEMS 传感器的信号,在STM32F769 内陀螺仪、加速度计、磁力计的测量数据进行实时解算与滤波。航姿系统通过串口或以太网将测量姿态数据传到上位机,运用MATLAB 进行数据分析。分别进行低动态运动实验和高动态单摆实验,以俯仰角输出结果为例,图4为低动态实验时姿态角对比示意图,图5 为单摆实验时姿态角对比示意图。
在上述对比示意图中,红色曲线是设计系统姿态角曲线,蓝色曲线是高精度惯性航姿参考系统姿态角曲线。由以上两组实验结果可以看出:在静态时,设计系统姿态角数据结果误差小;在低动态运动时,航姿系统对比参考系统跟踪能力强,误差较小;在高动态单摆运动时,设计的航姿系统可实时跟踪载体运动,但是姿态角误差较大。实验测试表明:该系统可以在静态和低动态运动过程实时准确的测量载体姿态信息,满足一般低成本航姿系统要求。但在高动态运动时,姿态角误差大,在后续的实验研究中可通过算法研究进一步提高测量精度。
图4 低动态实验姿态角对比示意
4 结语
图5 单摆实验姿态角对比示意
本文设计的基于MEMS 的低成本航姿系统结构简单,实用性强,硬件电路能够实现载体动态姿态测量,处理器可实时姿态解算,并实时解算姿态信息传输到上位机。在以太网通信软件设计中调用适合嵌入式的LwIP 协议实现了小型化的资源占用,扩充了航姿系统与上位机通信方式。该系统为姿态测量系统的硬件平台搭建奠定了基础。