基于A(yíng)RM9的物流終端定位功能的實(shí)現
引言
本文引用地址:http://dyxdggzs.com/article/150314.htm物流的定位方案與技術(shù)的選擇對提高現代物流配送管理效率,減少運營(yíng)成本具有重要的影響。物流終端定位要求較高的定位精度,能提供全天候連續不間斷的定位信息支持,能滿(mǎn)足復雜地形條件的定位需求。
本文針對當前物流行業(yè)終端定位功能的需求進(jìn)行分析,針對當前定位技術(shù)現狀,提出相適應的物流終端定位功能實(shí)現方案,并在基于嵌入式Linux和ARM9硬件核心的物流信息化終端平臺上對終端定位功能進(jìn)行了初步的實(shí)現。
系統實(shí)現方案
移動(dòng)定位技術(shù)的現狀分析
目前,移動(dòng)定位技術(shù)已經(jīng)非常成熟,較廣的應用主要可以分為兩大類(lèi),一類(lèi)是GPS等利用衛星進(jìn)行后方交匯的定位技術(shù);另一類(lèi)是利用移動(dòng)通信網(wǎng)技術(shù)提供位置服務(wù)的定位技術(shù)。常用的有:基于Cell-ID的定位技術(shù);基于AFLT(Advanced Forward Link Trilateration)的定位技術(shù);GPS定位技術(shù);GPS輔助定位技術(shù)(A-GPS)等。
GPS是當前在物流信息化中研究最廣泛的定位技術(shù)之一,但是,當GPS終端在建筑密集的地
方或在隧道等定位信號難以接收的地理位置時(shí),往往不易獲取有效的定位信息。而且,GPS定位功能無(wú)法滿(mǎn)足倉儲等高精度定位需求的場(chǎng)合,還需要進(jìn)行相應的補充與完善。
本系統實(shí)現方案
基于現有網(wǎng)絡(luò )建設的總體情況及物流管理過(guò)程中對定位數據的需求分析,并綜合考慮各種定位技術(shù)的發(fā)展現狀及技術(shù)成熟度、實(shí)現成本等因素,擬在物流配送網(wǎng)絡(luò )中采用GPS輔助定位系統(GPS+Cell-ID+RFID+圖形道路匹配相結合)的定位技術(shù)。其主要考慮如下:
1)充分利用現有硬件資源。GPS、GSM、RFID模塊為本物流信息終端課題已擬定的硬件平臺,除GPS專(zhuān)為定位功能服務(wù)外,GSM和RFID模塊同時(shí)具有通信和標簽信息采集的功能。在不擴充硬件資源的前提下,最大限度地提高定位功能的服務(wù)質(zhì)量。
2)Cell-ID定位。確保終端在GPS定位失去信號的情況下,保持最低限度的定位信息的提供。Cell-ID方式在城市及人口密集區域能提供相對高的精度,與GPS在城市高層建筑、林蔭道、地下隧道等遮蔽情況下性能的降低有較好的互補。由于GSM相對于CDMA具有更小的小區半徑,因此具有相對高的Cell-ID定位精度。在本方案中擬采用GSM的CELLID定位方式。
3)RFID定位。通過(guò)讀取用于標識地理坐標的標簽數據來(lái)獲取定位信息。其定位精度僅取決于標簽存儲定位信息的精確性,理論上可以達到任意高精度??捎糜趥}庫、碼頭等需要高精度定位信息的場(chǎng)所,來(lái)提供定位信息和其它輔助功能。
4)圖形道路匹配。當前物流運輸主要是利用汽車(chē)等運輸工具在固定的路線(xiàn)上進(jìn)行,當路線(xiàn)基本確定的情況下,可通過(guò)圖形道路匹配對定位信息進(jìn)行適當糾正。但是,這一般適用于道路不太密集的區域或路線(xiàn)固定的情況,可在本方案中作為可選功能模塊提供,適用于鐵路、高速公路等道路信息明確的場(chǎng)合,尤其適用于鐵路運輸。
軟硬件系統設計原理
系統硬件開(kāi)發(fā)板CPU采用的是三星公司的內部集成ARM920T處理器核的S3C2410芯片。GPS模塊提供衛星定位信號;GSM/GPRS模塊提供通信與CELLID定位信息獲取;RFIDS模塊提供標簽信息采集和RFID定位功能。終端通過(guò)GSM/GPRS通信網(wǎng)絡(luò )與物流信息控制中心建立聯(lián)系,提交相關(guān)數據采集信息和接收物流信息控制中心指令。
系統軟件采用嵌入式Linux操作系統,移植QT/Embedded 3.3.4和SQLITE數據庫,采用QT嵌入式編程實(shí)現相應功能。
軟件系統設計
本文的軟件系統設計主要以S3C2410平臺為核心,將從GPS模塊、GSM/GPRS模塊、RFID模塊提取的定位信息進(jìn)行相應分析處理,完成物流信息終端導航定位功能。
宿主機開(kāi)發(fā)環(huán)境建立
由于目標平臺資源所限,需要搭建交叉編譯環(huán)境,本系統開(kāi)發(fā)過(guò)程中采用的平臺如下:
宿主機: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前正確設置環(huán)境變量,本系統QT/Embedded 3.3.4交叉編譯選項為:./configure -embedded arm -shared -debug -no-cups -thread -plugin-sql-sqlite -no-ipv6 -qt-mouse-Linuxtp,可根據實(shí)際情況進(jìn)行相應裁減。
軟件關(guān)鍵技術(shù)分析
1)GPS定位信息提取
目前常用的GPS-OEM模塊均支持NMEA-0183的數據格式。NMEA-0183是以語(yǔ)句來(lái)發(fā)送數據的,每條語(yǔ)句都相對獨立并有完整意義。語(yǔ)句包含若干由ASCII文本字符組成的字段, 每條語(yǔ)句都以“$”開(kāi)頭,以回車(chē)換行結束,數據包含在字段中,字段之間由逗號分 隔。每條語(yǔ)句的第一個(gè)字段表明語(yǔ)句的意義,在標準語(yǔ)句中,“$”后的兩位字符為“talkerID”,表示發(fā)送數據的設備,如GP表示GPS;接著(zhù)的三位字符為“sentenceID”,表示了該語(yǔ)句的類(lèi)型,如GGA,RMC等。語(yǔ)句中每個(gè)字段的含義隨語(yǔ)句類(lèi)型而定,語(yǔ)句的最后一個(gè)字段是檢驗和(checksum),由“*”和兩位十六進(jìn)制數字及回車(chē)換行符組成,檢驗和是“$”和“*”之間所有字符的邏輯異或運算結果,用于檢驗和確認數據的傳輸是否正確。
對于終端導航而言,“$GPR
MC”幀格式可以滿(mǎn)足大部分需求,其幀長(cháng)相對較短,便于信息處理。因此,在本系統中,選取“$GPRMC”幀進(jìn)行定位信息提取。系統通過(guò)RS232串口從GPS-OEM模塊中接收定位數據,從接收數據中的“$GPRMC”幀提取時(shí)間、經(jīng)緯度、速度、方位角等定位導航信息。其程序模塊主體結構如下:
……
//判斷是否為$GPRMC幀頭,并進(jìn)行標記
if(Data[i]=='$' Data[i+3]=='R')
……
//判斷是否為幀尾,幀尾以換行字符表示,數值為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 ) //異或運算結果
……
//對$至*之間的字符進(jìn)行異或運算,得到結果chk_result
for( ; Data[n]!='*; n++) chk_result^=Data[n];
//判斷逗號,區分識別數據,并判別*號,區分校驗數據
if(Data[i]==','||(Data[i]=='*' SectionID==12) )
SectionID++;
else
{ switch(SectionID)
{ case 1: //提取時(shí)間
m_sTime[a++]=Data[i];
break;
case 2: //接收判別有效性數據A為有效,V為無(wú)效
……
case 3: //提取緯度
……//提取經(jīng)度、速度、方位角、校驗數據等其它信息
評論