前期实际北斗模块定位误差统计分析中得出了北斗模块的定位误差分布服从正态分布,根据北斗模块定位误差分布的规律,利用在同一块电路板上的双天线模块接收北斗定位信号,将定位信息传给TMS320F28335DSP芯片,DSP对北斗模块给出的定位信息做实时算法处理,并将处理后的定位信息传给嵌入式ARM芯片,ARM芯片在TFT液晶屏上更新定位信息,同时根据用户要求来设置北斗模块的工作模式。在接收不到北斗定位信息时DSP利用UKF滤波算法,将预测定位信息发送给ARM芯片,并标记为预测信息,且显示在TFT液晶屏上。
北斗定位系统是我国自主开发的全球定位系统,目前北斗定位系统在轨运行卫星已达16颗,截止2012年12月27日,我国的北斗定位系统空间信号接口控制文件正式版已公布,北斗定位导航业务正式对亚太地区提供无源定位、导航及授时服务。该系统可为汽车、客机和轮船等常用交通工具提供定位服务,为精确制导武器提供定位导航服务,其对我国军事国防事业摆脱对国外GPS系统依赖有着重要意义,另外对农牧业、渔业生产也有着重要意义。
在众多实际应用背景下,如何提高卫星定位导航系统的定位精度就显得尤为重要。本文提出一种基于双天线结构的构想,以提高北斗定位模块的定位精度为目的,在嵌入式ARM+DSP系统上实现北斗定位系统。
1 系统设计思想
在卫星定位系统众多应用中,常用于描述卫星定位精度的参数主要有水乎均方根误差(Distance Root-Mean-Square,DRMS)、圆概率误差(Circular Error Probable,CEP)和球概率误差(Spherical Error Probable,SEP)等,这些参数被广泛用于测量和各种定位系统中,其计算和准确性与定位误差的三维分布特征密切相关。文献证明在一般情况下,定位误差的三维分布呈椭球状,被称为误差椭球。其几何特征主要包括椭球的轴方向、轴长和轴比。轴方向是椭球的3个主轴所在的方向,轴长是定位误差在椭球轴方向上的标准差,轴比是椭球3个轴长之间的比值。误差椭球的轴比决定了真实位置落在DRMS圆上的概率。
在对文献分析后,进行单点100组连续北斗模块定位测试,统计误差分布规律,经实际测试、统计分析得出北斗模块的实际定位误差近似服从正态分布,北斗定位模块的水平定位误差依91%的概率收敛于8~10 m之间,其中9 m处的分布概率为82%,如图1所示。
图1 北斗模块测试统计情况
DRMS值为9.0 m,记作R,在实际测量中北斗模块给出一组定位数据(a1,b1),记作A,a1、b1分别表示经度和纬度信息,则以(a1,b1)为圆心的DRMS圆如图2所示。
图2 北斗定位二维DRMS圆示意图
在同一块电路板上使用双天线模块接收北斗定位导航信息,由于将两个天线并排安放,所以在任意时刻两个北斗定位模块相对于北斗卫星的通信链路相同,两个北斗定位模块可见星情况和接收到的前端卫星定位信息也相同。假定某一时刻两个模块接收到的定位信息分别为(a1,b1)和(a2,b2),以(a1,b1)和(a2,b2)为圆心,R为半径的DRMS圆,两圆记为A、B,则真实点依大概率收敛于两个圆交点中(a3,b3)、(a4,b4)。根据前一时刻的位置信息和速度信息可排除其中一个交点(a3,b3)或(a4,b4),则剩下的点就为真实位置的最大概率分布点。
图3 北斗双天线真实点分布示意图
2 系统硬件设计
系统使用DSP+ARM双芯片结构,DSP主要负责接收北斗模块的定位信息和算法处理功能,ARM芯片负责与DSP芯片通信、控制TFT液晶屏的显示功能。硬件设计主要包括电源部分、ARM部分、DSP部分、网络部分、TFT液晶屏部分以及北斗模块多部分的设计。
2.1 系统硬件结构框图
图4 系统硬件框图
2.2 电源部分
系统使用较为常见的12 V电压作为总的电源输入,经LM2596芯片得到5 V电压作为DSP模块和TFT液晶屏的电源,5 V电压经ASM1117得到3.3 V电压作为ARM模块和网络部分以及TF卡的电源。
2.3 ARM部分设计
ARM芯片使用意法半导体公司的STM32F103VET6芯片,该芯片为32位Cortex—M3内核微处理器,主频最高可达72 MHz,封装为LQFP100,减小了PCB板的面积。另外,还支持IO管脚的重映射配置,降低了PCB布线的难度,且支持JTAG、SWD两种调试/下载模式,方便用户使用市面上较为常见的调试工具J-LINK调试/下载程序,因此使用方便。
2.4 DSP部分说明
DSP部分使用的芯片为TI公司的新型数字信号处理器TMS320F28335,该款芯片最高主频达150 MHz,采用哈佛流水线结构,并具有片内硬件乘法器,完成一次浮点数的乘加运算只需10个机器周期,故可进行高速数据运算。
2.5 网络部分说明
网络部分主要提供了一个可选功能,当条件满足时可将系统的定位信息发送到以太网上,供远端的用户访问、查询。
系统使用美国微星公司的ENC28J60网络芯片,该芯片为IEEE802.3兼容的以太网控制器,支持全/半双工模式,工作电压兼容TTL电平和CMOS电平,可编程会在发生冲突时自动重发,可编程填充和CRC生成,用于快速发送数据的内部FIFO、DMA以及硬件支持的IP校验和计算。其封装为SSOP28,与微处理器的链接方式为SPI总线,因此控制方便,最高速度可达10 Mbit·s-1。
2.6 TFT液晶屏部分说明
TFT液晶屏的每个像点均是由集成在像素点后面的薄膜晶体管来驱动的,从而可做到高速度、高亮度、高对比度显示屏幕信息,是目前最佳的LCD彩色显示设备之一,其效果接近CRT显示器,是现在笔记本电脑和台式机上的主流显示设备。
系统使用16 bit真彩色,320×240分辨率TFT液晶屏。STM32F103ARM芯片负责TFT液晶屏的驱动,STM32F103ARM芯片与TFT液晶屏之间使用FSMC总线通信,以完成对该液晶屏的初始化和显示控制。
2.7 北斗模块部分说明
北斗模块部分使用北京和芯星通公司的UM220北斗定位芯片,其可同时支持BD2 B1、GPS L1两个频点,输出数据方式为USART,数据协议为NMEA 0183,默认通信波特率为9 600 bit·s-1,并可根据用户需要自行设定最高支持波特率为230 400 bit·s-1,其输入/输出信号类型均为LVTTL电平。
UM220通过串口与DSP连接,DSP通过串口完成对北斗模块的配置,并接收其定位信息。
3 系统工作流程
3.1 系统总体工作流程
系统采用DSP+ARM双核结构,DSP与ARM各司其职。在系统上电后,DSP、ARM芯片完成上电复位,DSP通过USART接收北斗定位模块的定位信息,在不失星的情况下进行北斗双天线定位算法计算。而DSP在进行北斗双天线定位算法计算后,通过串口将计算后的北斗定位信息发送给ARM芯片。若处于失星的情况下,进行UKF算法轨迹预测,并将得到的预测结果通过串口发送给ARM芯片,ARM芯片接收到北斗定位信息后,通过FSMC总线将定位信息更新到TFT液晶屏上,如图5所示。
图5 系统程序流程图
3.2 轨迹预测算法设计
系统采用无迹卡尔曼滤波(UKF)做为失星情况下的轨迹预测算法。无迹卡尔曼滤波(UKF)是一种基于最小方差估计准则的非线性状态估计器,其以非线性最优高斯滤波器作为基本理论框架。UKF采用UT变换技术,即采用确定的样本点(Sigma点)来完成状态变量统计特性沿时间的传播,改进了扩展卡尔曼滤波(EKF)不能求解雅可比矩阵以及泰勒级数线性化只具有一阶的低精度问题,其逼近精度可达二阶或二阶以上。U KF算法实现过程如下
Step1
(1)
式中,x为未失星前时刻北斗双天线定位所得定位经、纬度信息;px是x的协方差;n表示系统状态维数;北斗应用中n取值为2;λ是微调参数,其可控制样本点到均值的距离。
step2 根据系统状态方程求样本点传递值
(4)
Step5 获得定位误差均值和协方差
4 系统测试
4.1 北斗双天线定位测试
该测试需对北斗双天线定位思想设计进行验证,对系统的定位精度进行实际测试。在晴天的情况下,单北斗模块定位精度约在9 m,双天线北斗模块定位精度约为3.3 m,GPS的定位精度约在10 m,这说明使用双天线结构大幅提升了北斗定位模块的定位精度,如表1所示。
表1 北斗双天线测试数据对比
4.2 轨迹预测测试
轨迹预测测试选定在晴天情况下,首先沿固定路线运动,然后重新沿固定路线运动,在特定时刻经北斗双天线定位模块的天线取下,然后对比路线轨迹与轨迹预测算法得到的轨迹数据。如图6所示。
图6 轨迹预测算法实际测试
图中横轴坐标为经度坐标,标定到“分”,均为东经126°xx分,xx为图中横轴标定坐标值;纵轴坐标为纬度坐标,标定到“分”,均为北纬45°xx分,xx为图中纵坐标值。实线轨迹data1为在谷歌地图上标定的真实运动路线,星点状轨迹data2为得到实际运动路线后,精确到重新测定运动轨迹失星时刻前后的运动路线。两次轨迹对比结果表明,在失星情况下采用UKF算法所进行轨迹预测得到临近时刻定位数据的定位精度大约在10 m,介于单模块北斗定位精度和GPS定位精度之间,但随着失星时间的增长,轨迹预测的误差将会增大,在20个采样点后,轨迹预测得到数据的误差将增大至50 m以上。
5 结束语
定位精度是本系统的关键,经实际测试在晴天的情况下北斗双天线定位思想设计可大幅度提高北斗定位模块的定位精度。而在其他的定位系统上,若两个定位模块精度相差较小时,也可应用双天线定位思想,提高系统的定位精度。
此外,系统还可使用性能更好的嵌入式处理器,如TI的DM37XX系列芯片,内嵌有“DSP+ARM”双核,既可以做复杂运算,也可进行复杂控制,这样便可减小系统的体积与芯片使用数量,从而简化系统设计,使系统更加便于使用。