电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 嵌入式系统/ARM技术 > 详细信息
嵌入式系统/ARM技术:嵌入式物流信息终端定位功能设计与实现
来源:   时间: 2007-12-25 8:42:58    

引言

  定位技术是物流信息化的重要信息基础,是实施物流信息化控制的主要信息依据。物流的定位方案与技术的选择对提高现代物流配送管理效率,减少运营成本具有重要的影响。物流终端定位要求较高的定位精度,能提供全天候连续不间断的定位信息支持,能满足复杂地形条件的定位需求。

本文针对当前物流行业终端定位功能的需求进行分析,针对当前定位技术现状,提出相适应的物流终端定位功能实现方案,并在基于嵌入式Linux和ARM9硬件核心的物流信息化终端平台上对终端定位功能进行了初步的实现。


系统实现方案

移动定位技术的现状分析

  目前,移动定位技术已经非常成熟,较广的应用主要可以分为两大类,一类是GPS等利用卫星进行后方交汇的定位技术;另一类是利用移动通信网技术提供位置服务的定位技术。常用的有:基于Cell-ID的定位技术;基于AFLT(Advanced Forward Link Trilateration)的定位技术;GPS定位技术;GPS辅助定位技术(A-GPS)等。

  GPS是当前在物流信息化中研究最广泛的定位技术之一,但是,当GPS终端在建筑密集的地方或在隧道等定位信号难以接收的地理位置时,往往不易获取有效的定位信息。而且,GPS定位功能无法满足仓储等高精度定位需求的场合,还需要进行相应的补充与完善。

本系统实现方案

  基于现有网络建设的总体情况及物流管理过程中对定位数据的需求分析,并综合考虑各种定位技术的发展现状及技术成熟度、实现成本等因素,拟在物流配送网络中采用GPS辅助定位系统(GPS+Cell-ID+RFID+图形道路匹配相结合)的定位技术。其主要考虑如下:

  1)充分利用现有硬件资源。GPS、GSM、RFID模块为本物流信息终端课题已拟定的硬件平台,除GPS专为定位功能服务外,GSM和RFID模块同时具有通信和标签信息采集的功能。在不扩充硬件资源的前提下,最大限度地提高定位功能的服务质量。

  2)Cell-ID定位。确保终端在GPS定位失去信号的情况下,保持最低限度的定位信息的提供。Cell-ID方式在城市及人口密集区域能提供相对高的精度,与GPS在城市高层建筑、林荫道、地下隧道等遮蔽情况下性能的降低有较好的互补。由于GSM相对于CDMA具有更小的小区半径,因此具有相对高的Cell-ID定位精度。在本方案中拟采用GSM的CELLID定位方式。

  3)RFID定位。通过读取用于标识地理坐标的标签数据来获取定位信息。其定位精度仅取决于标签存储定位信息的精确性,理论上可以达到任意高精度。可用于仓库、码头等需要高精度定位信息的场所,来提供定位信息和其它辅助功能。

  4)图形道路匹配。当前物流运输主要是利用汽车等运输工具在固定的路线上进行,当路线基本确定的情况下,可通过图形道路匹配对定位信息进行适当纠正。但是,这一般适用于道路不太密集的区域或路线固定的情况,可在本方案中作为可选功能模块提供,适用于铁路、高速公路等道路信息明确的场合,尤其适用于铁路运输。

软硬件系统设计原理

  系统硬件开发板CPU采用的是三星公司的内部集成ARM920T处理器核的S3C2410芯片。GPS模块提供卫星定位信号;GSM/GPRS模块提供通信与CELLID定位信息获取;RFIDS模块提供标签信息采集和RFID定位功能。终端通过GSM/GPRS通信网络与物流信息控制中心建立联系,提交相关数据采集信息和接收物流信息控制中心指令。

  系统软件采用嵌入式Linux操作系统,移植QT/Embedded 3.3.4和SQLITE数据库,采用QT嵌入式编程实现相应功能。


软件系统设计

  本文的软件系统设计主要以S3C2410平台为核心,将从GPS模块、GSM/GPRS模块、RFID模块提取的定位信息进行相应分析处理,完成物流信息终端导航定位功能。

宿主机开发环境建立

  由于目标平台资源所限,需要搭建交叉编译环境,本系统开发过程中采用的平台如下:

  宿主机:RED HAT 9.0; QT/Embedded 3.3.4;SQLITE 2.8.16;cross-2.95.3.
tar.bz2

  目标机:Linux Kernel 2.4.18;QT/Embedded 3.3.4;SQLITE 2.8.16 为了正确交叉编译QT/Embedded,需要确保UUID、ZLIB、JPEG、GIF、PNG、SQLITE等QT中所需要的头文件 、库文件在交叉编译前正确安装,并移植相应的库文件至目标机中。在交叉编译QT/Embedded 3.3.4前正确设置环境变量,本系统QT/Embedded 3.3.4交叉编译选项为:./configure -embedded arm -shared -debug -no-cups -thread -plugin-sql-sqlite -no-ipv6 -qt-mouse-Linuxtp,可根据实际情况进行相应裁减。

软件关键技术分析

1)GPS定位信息提取

  目前常用的GPS-OEM模块均支持NMEA-0183的数据格式。NMEA-0183是以语句来发送数据的,每条语句都相对独立并有完整意义。语句包含若干由ASCII文本字符组成的字段, 每条语句都以“$”开头,以回车换行结束,数据包含在字段中,字段之间由逗号分 隔。每条语句的第一个字段表明语句的意义,在标准语句中,“$”后的两位字符为“talkerID”,表示发送数据的设备,如GP表示GPS;接着的三位字符为“sentenceID”,表示了该语句的类型,如GGA,RMC等。语句中每个字段的含义随语句类型而定,语句的最后一个字段是检验和(checksum),由“*”和两位十六进制数字及回车换行符组成,检验和是“$”和“*”之间所有字符的逻辑异或运算结果,用于检验和确认数据的传输是否正确。

  对于终端导航而言,“$GPRMC”帧格式可以满足大部分需求,其帧长相对较短,便于信息处理。因此,在本系统中,选取“$GPRMC”帧进行定位信息提取。系统通过RS232串口从GPS-OEM模块中接收定位数据,从接收数据中的“$GPRMC”帧提取时间、经纬度、速度、方位角等定位导航信息。其程序模块主体结构如下:

……
//判断是否为$GPRMC帧头,并进行标记
if(Data[i]=='$' && Data[i+3]=='R')
……
//判断是否为帧尾,帧尾以换行字符<LF>表示,数值为10 '\n'
if(Data[i]==10 && SectionID==13) { ……
id_check=m*16+n; //得到检验数据的INT型
if(chk_result!=id_check) //比较异或运算结果与检验数据是否一致
…… i f( Data[i]=='*' && SectionID==12 ) //异或运算结果
……
//对$至*之间的字符进行异或运算,得到结果chk_result
for( ; Data[n]!='*"; n++) chk_result^=Data[n];
//判断逗号,区分识别数据,并判别*号,区分校验数据
if(Data[i]==','||(Data[i]=='*' && SectionID==12) )
SectionID++;
else
{ switch(SectionID)
{ case 1: //提取时间
m_sTime[a++]=Data[i];
break;
case 2: //接收判别有效性数据A为有效,V为无效
……
case 3: //提取纬度
……//提取经度、速度、方位角、校验数据等其它信息

2)Linux串口通信编程

  嵌入式Linux操作系统使用接口标准POSIX的termios接口来控制串口的行为。在Linux系统中,串口等设备被当作文件进行处理,其程序模块主体实现如下:

int fd=open("/dev/ttyS1",O_RDWRIO_NOCTTY);//打开串口
……
new_options.c_cflag &=~PARENB;//无奇偶校验
new_options.c_cflag &=~CSIZE;//不隐藏数据位
new_options.c_cflag &=~CSTOP8;//无停止位
new_options.c_cflag |=CS8;//8位数据位
cfsetispeed(&new_options,B4800);//设置波特率4800bit/s
cfsetospeed(&new_options,B4800);
tcflush(fd,TCIOFLUSH);
tcsetattr(fd,TCSANOW,&new_options);//设置新的设备方式

  完成串口设置后,就可以使用read( )、write( )函数对串口进行操作。需注意的是,串口默认是阻塞型的,当没有数据到达时,将会阻塞挂起,这时可以通过多线程编程、串口超时设定或使用select轮询等方式进行调整控制。本系统主要采用多线程编程实现对串口阻塞的调控,使用的是QT的Qthread类,也可以直接使用Linux自身的多线程函数进行操作。

3)QT/Embedded编程

  Qt/Embedded是著名的Qt库开发商TrollTech正在进行的基于framebuffer的面向嵌入式系统的Qt版本。因其面向对象、跨平台和界面设计方便美观而得到广泛应用。

  本设计采用QT/Embedded 3.3.4版本,它支持SQLITE数据库驱动,便于数据库操作与编程。设计主要使用了QTE的画布模块、SQL模块和网络模块。画布模块中,QCanvas库是一个高度优化的二维绘图库,与其它画布模块结合使用,能很方便地实现导航地图的显示、缩放、漫游以及鹰眼等功能。而SQL模块和网络模块能很方便地实现数据库编程和网络通信功能,极大地缩短了程序的开发周期,提高了开发效率。

初步实现

  定位误差主要取决于GPS-OEM模块的定位精度,实验显示本系统能初步满足物流信息终端对定位功能的需求。


结束语

  本文提出了一套基于嵌入式Linux系统的物流信息化终端定位功能的设计方案,并对其进行了初步实现。实验证明:系统定位数据精确、界面友好、系统可扩展性强,较好地完成了物流信息化终端定位功能。本系统可用于物流终端定位导航,也可适用于其它需要定位导航服务的场合,具有较普遍的适用价值和参考价值。

相关信息
发表评论
打印本页 关闭本页
基于RS232及红外接口的多功能通讯实验板的设计
  1 引言 计算机控制系统中经常采用多机系统进行通信,在由PC机和单片机构成的分布式控制系统中,往往以PC机为上位机完成较为复杂的数据处理和对前沿机的监督管理,以及对下位机进行多机协调,单片机主要执行上位机的命令,对来自微机串行口的命令进行操作,完成对被控对象的直接控制,并把被控对象的信息上报给上位机,异步串行通信是一种常用的多机通信手段,本文介绍一种将RS232,RS48...
>>详细内容
基于S3C2410的MPEG-4数字录像机的设计与实现
    视频信息在现代信息化战争发挥日益重要的作用,在视频监控、侦察、机载或车载视频记录等方面都得到了越来越广泛应用,这种形势对数字视频监控记录设备的研制提出了新的要求:大批量的应用要求降低监控记录设备成本,多样的应用环境、分散、孤立的监控点要求监控记录设备尽可能一体化、小型化、独立、便携、低功耗、供电方便、性能可靠。针对这些新问题和新要求,笔者设计实现了一种基...
>>详细内容
嵌入式实时操作系统Nucleus PLUS在S3C2410A上移植的实现
  摘 要:本文在简要介绍嵌入式实时操作系统内核Nucleus PLUS和基于ARM920T内核的嵌入式微控制器S3C2410A后,详细地论述了Nucleus PLUS在S3C2410A上的移植过程和方法,最后指出了Nucleus PLUS 在ARM9上移植的重点和难点。关键词:嵌入式实时操作系统;Nucleus PLUS;移植;S3C2410A 引言Nucleus PLUS是美国ATI 公司为实时性要求较高的嵌入式系统应用设计的操作系统内核。约95%的Nucleus PL...
>>详细内容
基于Linux和S3C2410的嵌入式图象传输系统设计
  1 引言 如何更好的获得监控现场的图象数据一直是棘手的一个问题,传统的方法是采用CCD摄象机获取现场的视频信息,这种方法易于实现,但成本较高。随着ARM系列处理器应用的越来越广和基于linux的嵌入式技术的迅速发展,利用linux自身带有的TCP/IP协议来实现远程监控、图象传输已成为可能。本文提出的正是一种这样的方法,利用市场上很常见的中星微系列的USB摄象头来得到现场的图...
>>详细内容
基于ARM920T的嵌入式静力测量系统设计
  0 引言 静力测量可用于许多不同的测量系统中。目前大多数工业控制系统、地质勘测系统以及建筑测量中所使用的计量设备(衡器)的测量模型大多建立于杠杆原理或弹性原理,其平衡方程均建立在静力平衡的基础之上。随着微电子技术的进一步发展、嵌入式芯片的大量引入、控制功能的完善、速度及组态软件以及图像处理技术的发展,目前已出现了很多新型静力测量系统。当今的静力测量系统正...
>>详细内容
嵌入式Nucleus PLUS在S3C2410A上移植的实现
  引言 Nucleus PLUS是美国ATI公司为实时性要求较高的嵌入式系统应用设计的操作系统内核。约95%的Nucleus PLUS代码用ANSI C语言编写,因此,非常便于移植并能够支持大多数类型的微处理器,如X86、68K、PowerPC、MIPS、ARM等。经过截减编译后,Nucleus PLus核心代码区一般不超过20KB大小。同时提供TCP/IP网络、图形界面Grafix、文件系统File等模块。还有一个特点就是免费提供源代码,有利...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com