基于S3C2440的车载跟踪监控系统研究与实现
随着交通系统的不断发展和完善,定位导航系统的应用范围和领域也越来越广泛,基于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模块,用于接收终端发送过来的位置信息,把接收到的信息进行解析,并把取得的数据提供给地图软件。
- 嵌入式Web服务器移植与测试(03-03)
- 基于S3C2440的嵌入式IPv6防火墙设计(09-02)
- 基于OpenWrt的移动机器人系统设计(01-17)
- 基于S3C2440处理器Linux平台的物流配送系统设计(02-05)
- 基于嵌入式的杯突试验机测控系统设计与实现(02-12)
- 基于ARM的多路同步的A/D和D/A设计(06-29)