基于S3C2440的车载GPS/GPRS跟踪监控系统研究与实现
扫描二维码
随时随地手机看文章
摘要:为了实现个人及集群车辆的安全管理,在S3C2440的硬件平台基础上,利用嵌入式Linux操作系统强大的内核与外设的功能,开发了具有导航跟踪与监控功能的智能终端系统,介绍了该系统各个部分的组成原理与设计方法,优化了通信服务器的性能,解决了同类产品普遍存在的通信服务器性能瓶颈问题。
关键词:ARM;GPS;GPRS;Linux
0 引言
随着交通系统的不断发展和完善,定位导航系统的应用范围和领域也越来越广泛,基于GPS,GPRS/GSM,GIS等的车辆跟踪与监控系统正在受到人们越来越多的青睐,显示出强大的发展潜力。GPS(Global Position System,全球定位系统)是美国从20世纪70年代开始的研制。19 93年正式投入运行,它能够全球、全天候、连续实时地为用户提供高精度的三维坐标、三维速度和时间信息。GPS的出现从根本上改变了人们获取空间信息的方式,特别是在交通工具导航、监控、跟踪等领域具有很大的应用价值和发展潜力。
本文在ARM9的硬件平台基础上,利用嵌入式Linux操作系统强大的管理平台的内核与外设的功能,开发了具有导航跟踪与监控功能的智能终端系统。
1 跟踪系统概述
根据车载系统的实际需要,本文在分析GPS的定位原理与GPRS的无线网络结构及特点的基础上,对硬件平台各器件和模块进行选择,提出了终端硬件电路的设计方案;对实时嵌入式操作系统Linux的启动代码移植、内核定制、根文件系统的制作、驱动开发等方面进行了研究;通过选择导航电子地图数据,坐标转换库和图形用户界面等设计了终端的应用程序,并为服务中心的导航监控程序给出一个可行的方案。
2 硬件设计
本系统的终端是以ARM9TDMI-S内核的三星S3C2440A为中央处理器,外设模块有GPS模块,GPRS模块;使用实时多任务内核为Linux 2.6.14。
本系统硬件设计框图如图1所示,系统结构分为六部分,分别为处理器、存储系统、人机接口系统、GPS定位部分、电源管理、GPRS无线通信部分。使用S3C2440作为主控处理器芯片协调其他四个子系统正常工作,完成GPS定位数据采集、存储、图形显示、音频采集与播放、用户输入,以及与GPRS的通信功能。
2.1 S3C2440介绍
S3C2440是三星推出的一款基于ARM920TDMI-S内核的16/32位RISC嵌入微处理器,它是专为手持设备与一般的消费电子而设计的,能满足小型嵌入式系统中低成本低功耗高性能小体积的要求,频率稳定运行在405 MHz,最高可达533 MHz。S3C2440集成了丰富的片上资源,在开发过程中可有效减少外围的设备部件,以降低系统的成本。
2.2 存储系统
本系统使用的SDRAM是由韩国现代公司的HY57V561620芯片,作为数据存储空间。该芯片具有32 MB的存储空间和16 b数据宽度,适合需要大容量和高带宽的嵌入式系统使用,芯片采用3.3 V的外部电源。整个存储空间被分为4个Bank,每个Bank的容量为4M×16 b。
使用的NAND FLASH是三星公司推出的K9F1208芯片,作为程序存储空间。芯片工作电压为3.3 V,该芯片的存储容量为64 MB,整个存储空间被分为4096个Block,每个Block又被分成32个Page,而每个Page的容量为528B(512 B+16B),其中16B空间是作为I/O缓冲器使用的。
考虑到系统需要存储大量的地图信息,而NANDFLASH只有64 MB,其中绝大部分的空间已被Linux操作系统的启动代码及操作系统的镜像和系统根文件系统占用。因此,在设计系统时加入了SD卡接口电路。S3C2440集成了SDI接口,该接口支持各种容量的SD卡,并可工作在DMA模式和中断模式。
2.3 人机接口模块
LCD液晶屏由于具有体积小、重量轻、低电压、低功耗等特点,非常适合本系统的要求。LCD屏显示图像,不但需要LCD驱动器,还需要有相应的LCD控制器。LCD控制器则有专门的外部电路来实现。
S3C2440芯片集成了LCD控制器,可以支持各种单色,伪彩,真彩液晶屏,TFT彩屏,还提供1通道的LCD专用DMA。本系统中所外接的LCD是NEC 3.5寸触摸式、彩色液晶屏,型号为NL2432HC22-23B。
2.4 GPS模块
GPS系统采用高轨测距体制,以观测站至GPS卫星之间的距离作为基本观测量。通过对4颗或4颗以上的GPS卫星同时进行伪距或相位的测量即可推算出接收机的三维位置。根据所接收到的经纬度信息,与电子地图数据进行比较,可在地图上显示出车辆当前的位置和行驶方向。
GPS模块是GPS15L/H。接口特性如下:RS 232输出,可输入RS 232或者具有RS 232极性的TTL电平。可选的波特率为:300 b/s,600 b/s,1 200 b/s,2 400 b/s,4 800 b/s,9 600 b/s,19 200 b/s。
串口输出协议:输出NEMA0183格式的ASCII码语句,输出:GPALM,GPGGA,GPGLL,GPGSA,GPGSV,GPRMC,GPVTG(NMEA标准语句);PGRM B,PGRME,PGRMF,PGRMM,PGRMT,PGRMV(GARMIN定义的语句)。还可将串口设置为输出包括GPS载波相位数据的二进制数据。输入:初始位置、时间、秒脉冲状态、差分模式、NMEA输出间隔等设置信息。在缺省的状态下,GPS模块输出数据的波特率为4 800 b/s,输出信息包括:GPRMC,GPGGA,GPGSA,GPGSV,PGRME等,每秒钟定时输出。
2.5 GPRS模块
考虑到监控车辆是移动的,因此车载终端和监控中心之间的数据传输必须采用无线的方式。本系统采用西门子公司的GPRS模块SIM300,该模块适合工作在环境变化大,周围环境较恶劣的场所。本模块具有标准AT命令接口,可以提供GSM语音、短消息和GPRS上网等业务。根据系统的功能要求,本系统只要实现S3C2440与模块之间的通信,并将GPS的经纬信息发给服务中心,并进行服务中心与客户终端之间的话音信息传送。
3 应用程序的设计
3.1 导航程序的设计思路
开发终端导航应用软件至少做以下几个方面的工作:
(1)导航电子地图一般都是分层的数字矢量地图,具有一定的分层结构,比如道路层、兴趣点层、文本层等。它提供最低层的地理位置经纬度信息,还有对经纬度信息以及每个数据字段进行诠释的相关文档。
(2)平面、球面坐标的转换程序,导航电子地图的原始数据都是经纬度的坐标信息,需要将这些经纬度的坐标信息转换为平面坐标的形式才能制作出电子地图。在开发过程中,实现某种功能还需要平面坐标和球面坐标的来回转换。
(3)图形用户界面。本系统选用QT/Embeded来作为图形用户接口界面。QT Designer是一个跨平台的符合C++规范的图形用户界面程序开发工具。QT本身是一个类库,它遵循C++规范,同时对C++作了一些扩充。它主要用于Linux系统,是构造KDE桌面环境的基础。
3.2 导航程序的开发
导航电子地图数据实际上是分层的矢量地图形式,首先需要使用QT的图形显示函数将矢量地图分层画出,分为道路层、道路名层、交叉结点层、兴趣点层等,然后在此基础上开发出相应的功能。整幅地图可用一个对象来表示,每个矢量地图层可看作是大对象内的一个小对象,它们之间是包含关系。以后的操作是根据不同的功能对不同的矢量层对象进行操作。
3.3 服务中心的程序设计
服务中心的软件,主要负责对车辆的位置进行监控,并对运营车辆进行调控。设计本系统时,为节省开发时间,使用了第三方的地图软件,在开发时主要做的就是在PC机端接上GPRS模块,用于接收终端发送过来的位置信息,把接收到的信息进行解析,并把取得的数据提供给地图软件。
车辆跟踪监控是系统最基本、最重要的功能,是指系统有效运行时对车辆行驶状态进行实时监控,在电子地图上实时地显示地图匹配后受控车辆的运行轨迹。监控中心通信服务器接收到车载单元发送来的信息后转发给指定的监控台,监控台系统软件对定位数据解析后,根据位置信息将车辆在电图上显示出来。车辆跟踪监控程序设计流程图如图2所示。
4 Linux交叉编译环境的建立及程序的实现
基于Linux操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主PC机所构成。目标硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主PC机来完成(所以称为交叉编译)。双方之间一般通过串口,并口或以太网接口建立连接关系。
4.1 Boot-loader启动代码的原理
在嵌入式系统中,系统引导程序(Boot-loader)可以完成对ARM板上的主要部件如CPU,SDRAM,FLASH,串行口等进行初始化操作,也可以下载文件到系统板,对FLASH进行擦除与编程。Boot-loader主要作用是初始化一些必要的设备,然后调用内核,同时传递参数给内核。其工作流程如下:检测SDRAM的位置和大小并进行初始化;初始化并启动一个串口,作为内核的控制台;检测系统结构,检测机器类型;创建和初始化内核,传递系统内存的大小和位置,以及根文件系统的位置。
4.2 配置MINICOM
在Linux操作系统Xwindow界面下建立终端(在桌面上点击右键→新建终端),在终端的命令行提示符后输入MINICOM,回车,出现WINCOM的启动画面,然后按照提示设置即可。
4.3 编程和调试
在此交叉编译环境下,根据前面提到的GPS定位原理,经过编程和调试,在目标平台的液晶显示屏上可显示本地的地理位置信息。
5 结论
本文在分析课题的研究背景与意义,根据系统的需求,给出系统的总体设计方案,完成了基于S3C2440的ARM9处理器设计的车载GPS/ GPRS系统的设计研究,包括系统硬件平台的设计以及嵌入式操作的移植和上层应用软件开发的总体思路。
基于S3C2440硬件平台,利用Linux嵌入式操作系统进行平台资源的整合,并根据GPS提供的位置信息进行车辆定位,利用GPRS无线通信手段实现终端与服务中心的通信,完成车辆的监控。本系统对通信服务器的性能做了优化,解决了同类产品普遍存在的通信服务器性能瓶颈问题,能够为使用者带来管理和决策的信息化依据,提供管理的科学性与准确性。