基于S3C2440的车载跟踪监控系统研究与实现

发布者:德州小孙最新更新时间:2011-12-28 关键字:S3C2440  跟踪监控系统 手机看文章 扫描二维码
随时随地手机看文章
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的通信功能。[page]

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模块,用于接收终端发送过来的位置信息,把接收到的信息进行解析,并把取得的数据提供给地图软件。

[page]

    车辆跟踪监控是系统最基本、最重要的功能,是指系统有效运行时对车辆行驶状态进行实时监控,在电子地图上实时地显示地图匹配后受控车辆的运行轨迹。监控中心通信服务器接收到车载单元发送来的信息后转发给指定的监控台,监控台系统软件对定位数据解析后,根据位置信息将车辆在电图上显示出来。车辆跟踪监控程序设计流程图如图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无线通信手段实现终端与服务中心的通信,完成车辆的监控。本系统对通信服务器的性能做了优化,解决了同类产品普遍存在的通信服务器性能瓶颈问题,能够为使用者带来管理和决策的信息化依据,提供管理的科学性与准确性。

 

 

 

关键字:S3C2440  跟踪监控系统 引用地址:基于S3C2440的车载跟踪监控系统研究与实现

上一篇:未来GIS、LBS及车联网的两大趋势
下一篇:方向盘转向角传感器的数据采集系统设计

推荐阅读最新更新时间:2024-05-02 21:49

S3C2440烧写程序
以JZ2440开发板为例,烧录程序到S3C2440。可以使用dnw软件进行烧录。在windows下,一般dnw的驱动都装不好,一般需要禁止数字签名才能装好。所以我们可以把dnw装到linux下,在linux下烧录程序。 先用filezilla软件和虚拟机里装好的linux建立连接,把dnw移到linux随便一个目录下,比如我是放到/home/book/ 这个目录下,然后在在linux终端命令下输入: sudo cp /home/book/dnw /bin 把dnw复制到/bin目录下。 再输入命令: sudo chmod +x /bin/dnw sudo chmod +s /bin/dnw 上面两条是给dnw加上权限
[单片机]
S3C2440裸机实验(6) ----NAND FLASH
1.Nand flash以page为单位进行读写,以block为单位进行擦除,没页分为main区和spare区,main区用于存放正常的数据,spare区用于存放一些附加信息 2.S3c2440 支持从Nand 启动是因为内部有一个叫做Steppingstone的SRAM buffer,当启动的时候,nand 的前4k的将会代码将被拷贝到steppingstone中执行,注意前4k代码是不会经过ECC校验的,所以必须确保这些代码的准确 3.对nand的操作都是通过使用命令来实现,有的操作只要一个命令就可以完成,而有的需要两个命令才能完成,下面是K9F1G08U0B的命令表: 4.关于TACLS,TWRPH0,
[单片机]
<font color='red'>S3C2440</font>裸机实验(6) ----NAND FLASH
S3C2440——使用URAT0查询方式发送和接收字符串
UART初始化函数 void Uart_Init(int pclk,int baud) { int i; rGPHCON|=0xa0; //GPH2,GPH3 as TXD0,RXD0 rGPHUP = 0x0; //GPH2,GPH3内部上拉 if(pclk == 0) pclk = PCLK; rUFCON0 = 0x0; //禁止3个通道的FIFO控制寄存器 rUFCON1 = 0x0; rUFCON2 = 0x0; rUMCON0 = 0x0; rUMCON1 = 0x0; rUMCON2 = 0x0; //初始化3个通道的MODEM控制寄存器,禁止AFC //Lin
[单片机]
S3C2440 输入子系统学习笔记 第一节
  接触S3C2440已经有一段时间了,可是总是没有去坚持学习,刚毕业的我深受到自身技能的缺乏和工作中的压力,决定痛改前非,坚持每天下班都去学习,在这里我不敢说自己能把2440学完,因为技术永无止境。但是我相信我能一直坚持下去。我是一个热爱思考,并且将思考的东西通过各种方法实现,我要做我思想的造物主。考虑到每个章节知识容量不一的问题,博客从今天开始不定时更新,前期会根据韦东山老师的视频教程目录来更新,如果有写得不好的地方请大家指点指点。   好了废话不多说,进入正题。   本博客的起点是韦东山老师的第2期的学习视频。  在第一期视频中,我们学到了简单的驱动结构,比如 LED驱动, 按键驱动等,但是这些驱动仅仅适合我们平时使用,没有
[单片机]
GNU ARM汇编--(十一)小结一下
对s3c2440的一部分做了学习,更深的了解了汇编以及arm体系,还有中断,调试底层汇编过程的最大感触就是仔细阅读datasheet,因为那是英文文档. 前面写的都是嵌入式底层比较基础的东西,后面要做的内容: 1.先裸机搞定iic,iic包括用控制器实现的和用GPIO模拟的,这样可以加深时序的理解. 2.spi也想看一下,虽然2440有spi,但是没有外设,这个比较麻烦. 3.搞清楚嵌入式系统中的存储系统,主要是内存(MMU)和flash 4.在前面的基础上可以整体上把握bootloader了 5.因为对linux的文件系统和设备模型有一定的了解,在3的基础上可以开始
[单片机]
s3c2440串口编程
0、串口总线标准:RS-232C RS-422A RS-485 1、串口通讯,分为同步通讯和异步通讯,我们通常使用的都是异步串口。通讯时,双方先约定好数据帧的格式,即波特率,数据位,停止位,奇偶校验位等。 2、串口通信数据格式 3、串口接线 1) 两端的插头上有1-9的标号,如果用万用表测相对应号码的针都是短通的,就是直连线。 不是一对一通的就是交叉。 交叉就是收-发,发-收,一样设备用平行就会发-发,收-收 我们用的是交叉串口线。 2) 进行TTL与EIA电平转换:CPU和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。 正逻辑:高电平---1
[单片机]
<font color='red'>s3c2440</font>串口编程
S3C2440通过J-Link直接往SDRAM中烧程序
由于S3C2440核心板以及主板均为实验室自制,使用友善之臂的H-Jtag不能操作,因此使用J-Link来测试焊接完的核心板是否工作正常 步骤: 1. 连接好核心板,并开电 2. 使用J-Link自带的J-Link commander(安装J-Link时已经安装了) 启动J-Link commander,如果没检测到CPU,执行usb命令连接JLink,注意,S3C2440 CPU的ID是:0x0032409D 3. 在J-Link commander下载运行特制的程序 对于S3C2410、S3C2440处理器,它们内部有4K的SRAM,当使用Nor Flash启动时,地址为0x40000000;当使用Nan
[单片机]
<font color='red'>S3C2440</font>通过J-Link直接往SDRAM中烧程序
S3C2440 OpenJtag
C:UsersAdministratorDesktop oflash.exe leds.bin +---------------------------------------------------------+ | Flash Programmer v1.5.4 for OpenJTAG of www.100ask.net | | OpenJTAG is a USB to JTAG & RS232 tool based FT2232 | | This programmer supports both of S3C24X0 & S3C6410 | | Author: Email/MSN(thisway.diy@1
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved