微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > 基于C8051的GPS/电子罗盘测姿定位系统设计

基于C8051的GPS/电子罗盘测姿定位系统设计

时间:01-09 来源:3721RD 点击:


图4 单片机信息处理流程

单片机信息处理流程如图4所示。首先,待单片机初始化后,开启中断0,关闭中断1,开始通过串口0接收电子罗盘信息。电子罗盘HMR3300更新频率为8 Hz,即每秒最多可更新8次[5]。为了保证其稳定输出,每秒钟提取4次电子罗盘信息。然后,以判断回车来表示接收完一次罗盘信息,即hmr[i]=10。待接收完毕后,开启中断1,关闭中断0,通过串口1接收GPS定位信息。iTrax0302更新速率为1fix/s。提取定位信息时,每秒钟提取一次GPS信息。接收到一条完整的语句后将其放入GPS数据存储区。同样地,我们以判断回车来表示接收完一次GPS信息,即gps[i]=10。

GPS信息接收完毕后,再开启中断0,关闭中断1,接收电子罗盘信息。同时,将采集到的姿态和定位信息通过串口0传送给MAX3232后,不断发送给上位机。在中断0中接收电子罗盘的数据时,需要提取的是其航向、俯仰和滚动信息,应判定接收到的数据是否为起始标志位,若是则开始采集数据,读取第二位数,进行采集的同时保存数据;如不是,则继续判定。

由于采用的是非定长通信,因此,在采集数据的同时还要判定当前位是否为结束标志位,若是则进行CRC校验,若正确则对得到的数据进行HPR分离;若否则开始新的采集。同样,在中断1中应在接收有效后,判断是否接收到GGA语句,若是再进行分析处理[6]。也可直接发送指令给GPS接收机,使GPS接收机只输出所需要的语句信息。同样的操作也适用于电子罗盘HMR3300。

4 实验验证

为了验证所设计系统的正确性和有效性,笔者进行了地面跑车实验。将该系统固定于汽车内,实验过程中可见卫星数为11颗,可用卫星为7颗。实验后,将采集到的数据运用MATLAB软件进行数据处理并对结果进行了分析。跑车实验数据分析如图5所示。结论如下:

① 通过对比汽车内的里程显示器与采集回来的实验数据计算得出跑车距离,结果均为2.9 km,基本一致;对比分析图中的轨迹显示与实际跑车路线,基本匹配;对比分析图中的姿态信息与实际跑车路线情况,基本匹配。

② 当卫星信号被某些障碍物暂时阻断时,仪器线路的瞬间故障使基准信号无法与卫星信号混频产生差频信号;外界干扰或接收机所处的动态条件恶劣,使载波跟踪环路无法锁定信号而引起信号的暂时失锁等,所有这些原因都会使GPS计数中断,使恢复跟踪后的整周计数产生错误,如何在短时间内测出何时发生整周数跳变,并求出丢失的整周数,则需要与惯性导航相结合,才能在任何条件下都实现高精度的实时导航定位,为MEMSIMU/GPS/电子罗盘组合导航系统起到更好的辅助作用。


图5 跑车实验数据分析

结语

本文设计了基于GPS/电子罗盘的测姿定位系统,以无线方式实现了载体的定位和姿态数据的采集,并通过将采集到的信息显示于LCD及上位机上,使信息更直观地展示在人们眼前。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top