李小龙
上海华测导航技术股份有限公司
摘要:随着北斗卫星导航系统的正式服务,卫星导航系统开始广泛应用于各行各业,GNSS接收机也在不断适应各行各业的应用需求,朝着智能化、功能丰富的方向发展。ARM处理器在嵌入式设备中应用尤为广泛,Linux系统则可以提供丰富的应用功能开发。为了满足更多的人机交互和运算,可采用ARM完成GNSS接收机底层硬件平台设计,利用Linux实现GNSS接收机丰富的功能。
关键词:GNSS接收机 智能 ARM Linux
随着北斗卫星导航系统的正式服务,卫星导航系统开始广泛应用于各行各业,GNSS接收机正在不同领域发挥着至关重要的作用,例如监测、导航、测绘等方面。近年来,嵌入式技术发展迅速,ARM处理器具有很强的性能,在功耗、成本方面优势尤为突出,成为很多工业、消费产品的首选;Linux是支持多任务、多进程,安全,稳定,免费的操作系统,可以基于Linux开发丰富的应用功能,实现诸多类似人机交互、功能复杂的应用需求。本文立足GNSS智能接收机,设计一种基于ARM的硬件平台,以及基于Linux的应用软件。
1 总体硬件设计方案
GNSS智能接收机主要由ARM处理器、GNSS板卡、液晶屏、按键、以太网模块、WIFI模块组成。本次设计采用的ARM处理器是Freescale ARM9产品系列的i.mx287工业级处理器,带有16KB缓存的454MHz内核,处理器性能强大,可以实现复杂应用,同时支持10/100M以太网,有UART、SPI、I2C等诸多总线接口,可以连接丰富外设,工作温度-40到85℃,满足工业级要求。GNSS板卡采用NovAtel公司的OEM729板卡,拥有555个动态通道,能够跟踪BDS+GPS+GLONASS+Galileo的多频卫星信号,具有50Hz的数据更新率,动态厘米级,静态毫米级的定位精度。
硬件框图如下:
(1)GNSS板卡向射频天线提供3.3v的馈电,并实时处理射频天线接收的GNSS信号,计算出当前的位置、速度等信息。
(2)ARM处理器主要负责整个系统的应用处理,包括用户端的设置、查询等操作以及GNSS数据的处理。
(3)WiFi模块主要负责人机交互,支持WiFi AP功能和WiFi Client功能,用户可通过手机或者PC登陆GNSS智能接收机的Web网页进行查询、设置等功能。
(4)液晶屏提供一个直观的信息展示,用户通过液晶屏可以直观的看到GNSS接收机的相关信息,如当前定位坐标、定位状态、以太网地址等信息。
(5)以太网模块用来保障数据可以通过网络进行传输,也包括接收机的远距离查询和设置。
(6)按键用来设置GNSS接收机开启或关闭以及调整IP地址。
(7)GNSS智能接收机采用外接电源的方案,支持9.5 V DC至28V DC输入。
2 总体软件设计方案
嵌入式系统采用的是Linux 2.6.24内核,编写了GPIO、UART、I2C、Ethernet驱动,各单元分别通过不同的接口和处理器之间进行通讯,如按键通过GPIO和处理器进行通讯,WiFi、GNSS板卡通过串口和处理器进行通讯,液晶屏通过I2C、以太网模块通过Ethernet和处理器进行通讯。
整个软件系统架构如下图所示:
整个软件系统架构分为三层,最下层为内核空间层,主要是内核的一些功能,为硬件接口的虚拟子系统,例如GPIO子系统、I2C子系统、网络设备子系统等;第二层为中间件层,主要是内核与应用的中间通道,是应用调用底层设备的接口,封装了WiFi、Key、GNSS、NET、LCD等接口,采用封装有利于应用的开发;最上层为应用层,一共分为6个单元,分别为中央处理单元、GNSS数据单元、网络通讯单元、液晶控制单元、按键控制单元、Web服务。
中央处理单元是所有进程的总控制进程,GNSS数据单元负责控制GNSS板卡并对GNSS板卡数据进行处理,网络通讯单元负责以太网的控制和数据传输,液晶控制单元负责液晶屏内容的显示,按键控制单元负责按键信息的传入,Web服务负责用户手机/PC浏览器通过WiFi连接GNSS接收机的数据请求。
整体的软件设计架构遵循模块化的设计思想,每个模块以单独的进程对外提供服务,各个模块进程之间通过共享内存进行通信,共享内存上被认为划分成一个个的队列成员,由两组链表分别管理未使用和使用中的队列成员。每个进程内部通过任务调度的方式顺序执行,其中包含两个必备任务:main_task和outtime_task。其中main_task负责读取通信对端模块的请求/回复消息,从而调用对应的回调函数,完成业务功能;outtime_task负责比较outtim_task任务两次调度的时间差,并处理时间差内的超时事件,超时事件处理完成后,更新时间轮拨码指针,等待下一次调度,从而实现进程内部的定时器管理功能。
3 结论
本文设计的GNSS智能接收机,具备:显示GNSS接收机当前位置信息、星空图,设置/显示接收机IP,网络传输GNSS数据,账号管理等功能,系统启动时间小于10s,设置信息响应时间小于1s,用户界面友好,系统运行稳定。