引言
物流的定位方案與技術(shù)的選擇對(duì)提高現(xiàn)代物流配送管理效率,,減少運(yùn)營(yíng)成本具有重要的影響,。物流終端定位要求較高的定位精度,,能提供全天候連續(xù)不間斷的定位信息支持,,能滿足復(fù)雜地形條件的定位需求,。
本文針對(duì)當(dāng)前物流行業(yè)終端定位功能的需求進(jìn)行分析,,針對(duì)當(dāng)前定位技術(shù)現(xiàn)狀,提出相適應(yīng)的物流終端定位功能實(shí)現(xiàn)方案,,并在基于嵌入式Linux和ARM9硬件核心的物流信息化終端平臺(tái)上對(duì)終端定位功能進(jìn)行了初步的實(shí)現(xiàn),。
系統(tǒng)實(shí)現(xiàn)方案
移動(dòng)定位技術(shù)的現(xiàn)狀分析目前,移動(dòng)定位技術(shù)已經(jīng)非常成熟,,較廣的應(yīng)用主要可以分為兩大類,,一類是GPS等利用衛(wèi)星進(jìn)行后方交匯的定位技術(shù);另一類是利用移動(dòng)通信網(wǎng)技術(shù)提供位置服務(wù)的定位技術(shù)。常用的有:基于Cell-ID的定位技術(shù);基于AFLT(Advanced Forward Link TrilateratiON)的定位技術(shù);GPS定位技術(shù);GPS輔助定位技術(shù)(A-GPS)等,。
GPS是當(dāng)前在物流信息化中研究最廣泛的定位技術(shù)之一,,但是,當(dāng)GPS終端在建筑密集的地方或在隧道等定位信號(hào)難以接收的地理位置時(shí),,往往不易獲取有效的定位信息,。而且,GPS定位功能無(wú)法滿足倉(cāng)儲(chǔ)等高精度定位需求的場(chǎng)合,,還需要進(jìn)行相應(yīng)的補(bǔ)充與完善,。
本系統(tǒng)實(shí)現(xiàn)方案
基于現(xiàn)有網(wǎng)絡(luò)建設(shè)的總體情況及物流管理過(guò)程中對(duì)定位數(shù)據(jù)的需求分析,并綜合考慮各種定位技術(shù)的發(fā)展現(xiàn)狀及技術(shù)成熟度,、實(shí)現(xiàn)成本等因素,,擬在物流配送網(wǎng)絡(luò)中采用GPS輔助定位系統(tǒng)(GPS+Cell-ID+RFID+圖形道路匹配相結(jié)合)的定位技術(shù)。其主要考慮如下:
1)充分利用現(xiàn)有硬件資源。GPS,、GSM,、RFID模塊為本物流信息終端課題已擬定的硬件平臺(tái),除GPS專為定位功能服務(wù)外,,GSM和RFID模塊同時(shí)具有通信和標(biāo)簽信息采集的功能,。在不擴(kuò)充硬件資源的前提下,最大限度地提高定位功能的服務(wù)質(zhì)量,。
2)Cell-ID定位,。確保終端在GPS定位失去信號(hào)的情況下,保持最低限度的定位信息的提供,。Cell-ID方式在城市及人口密集區(qū)域能提供相對(duì)高的精度,,與GPS在城市高層建筑、林蔭道,、地下隧道等遮蔽情況下性能的降低有較好的互補(bǔ),。由于GSM相對(duì)于CDMA具有更小的小區(qū)半徑,因此具有相對(duì)高的Cell-ID定位精度,。在本方案中擬采用GSM的CELLID定位方式,。
3)RFID定位。通過(guò)讀取用于標(biāo)識(shí)地理坐標(biāo)的標(biāo)簽數(shù)據(jù)來(lái)獲取定位信息,。其定位精度僅取決于標(biāo)簽存儲(chǔ)定位信息的精確性,,理論上可以達(dá)到任意高精度??捎糜趥}(cāng)庫(kù),、碼頭等需要高精度定位信息的場(chǎng)所,來(lái)提供定位信息和其它輔助功能,。
4)圖形道路匹配,。當(dāng)前物流運(yùn)輸主要是利用汽車等運(yùn)輸工具在固定的路線上進(jìn)行,當(dāng)路線基本確定的情況下,,可通過(guò)圖形道路匹配對(duì)定位信息進(jìn)行適當(dāng)糾正,。但是,這一般適用于道路不太密集的區(qū)域或路線固定的情況,,可在本方案中作為可選功能模塊提供,,適用于鐵路、高速公路等道路信息明確的場(chǎng)合,,尤其適用于鐵路運(yùn)輸,。
軟硬件系統(tǒng)設(shè)計(jì)原理
系統(tǒng)硬件開(kāi)發(fā)板CPU采用的是三星公司的內(nèi)部集成ARM920T處理器核的S3C2410芯片。GPS模塊提供衛(wèi)星定位信號(hào);GSM/GPRS模塊提供通信與CELLID定位信息獲取;RFIDS模塊提供標(biāo)簽信息采集和RFID定位功能,。終端通過(guò)GSM/GPRS通信網(wǎng)絡(luò)與物流信息控制中心建立聯(lián)系,,提交相關(guān)數(shù)據(jù)采集信息和接收物流信息控制中心指令。
系統(tǒng)軟件采用嵌入式Linux操作系統(tǒng),移植QT/Embedded 3.3.4和SQLITE數(shù)據(jù)庫(kù),,采用QT嵌入式編程實(shí)現(xiàn)相應(yīng)功能,。
軟件系統(tǒng)設(shè)計(jì)
本文的軟件系統(tǒng)設(shè)計(jì)主要以S3C2410平臺(tái)為核心,將從GPS模塊,、GSM/GPRS模塊,、RFID模塊提取的定位信息進(jìn)行相應(yīng)分析處理,完成物流信息終端導(dǎo)航定位功能,。
宿主機(jī)開(kāi)發(fā)環(huán)境建立由于目標(biāo)平臺(tái)資源所限,,需要搭建交叉編譯環(huán)境,本系統(tǒng)開(kāi)發(fā)過(guò)程中采用的平臺(tái)如下:
宿主機(jī):RED HAT 9.0; QT/Embedded 3.3.4;SQLITE 2.8.16;cross-2.95.3.tar.bz2目標(biāo)機(jī):Linux Kernel 2.4.18;QT/Embedded 3.3.4;SQLITE 2.8.16 為了正確交叉編譯QT/Embedded,,需要確保UUID,、ZLIB、JPEG,、GIF,、PNG,、SQLITE等QT中所需要的頭文件 ,、庫(kù)文件在交叉編譯前正確安裝,并移植相應(yīng)的庫(kù)文件至目標(biāo)機(jī)中,。在交叉編譯QT/Embedded 3.3.4前正確設(shè)置環(huán)境變量,,本系統(tǒng)QT/Embedded 3.3.4交叉編譯選項(xiàng)為:。/configure -embedded arm -shared -debug -no-cups -thread -plugin-sql-sqlite -no-ipv6 -qt-mouse-Linuxtp,,可根據(jù)實(shí)際情況進(jìn)行相應(yīng)裁減,。
軟件關(guān)鍵技術(shù)分析
1)GPS定位信息提取
目前常用的GPS-OEM模塊均支持NMEA-0183的數(shù)據(jù)格式。NMEA-0183是以語(yǔ)句來(lái)發(fā)送數(shù)據(jù)的,,每條語(yǔ)句都相對(duì)獨(dú)立并有完整意義,。語(yǔ)句包含若干由ASCII文本字符組成的字段, 每條語(yǔ)句都以“$”開(kāi)頭,,以回車換行結(jié)束,,數(shù)據(jù)包含在字段中,字段之間由逗號(hào)分 隔,。每條語(yǔ)句的第一個(gè)字段表明語(yǔ)句的意義,,在標(biāo)準(zhǔn)語(yǔ)句中,“$”后的兩位字符為“talkerID”,,表示發(fā)送數(shù)據(jù)的設(shè)備,,如GP表示GPS;接著的三位字符為“sentenceID”,表示了該語(yǔ)句的類型,,如GGA,,RMC等。語(yǔ)句中每個(gè)字段的含義隨語(yǔ)句類型而定,語(yǔ)句的最后一個(gè)字段是檢驗(yàn)和(checksum),,由“*”和兩位十六進(jìn)制數(shù)字及回車換行符組成,,檢驗(yàn)和是“$”和“*”之間所有字符的邏輯異或運(yùn)算結(jié)果,用于檢驗(yàn)和確認(rèn)數(shù)據(jù)的傳輸是否正確,。
對(duì)于終端導(dǎo)航而言,,“$GPRMC”幀格式可以滿足大部分需求,其幀長(zhǎng)相對(duì)較短,,便于信息處理,。因此,在本系統(tǒng)中,,選取“$GPRMC”幀進(jìn)行定位信息提取,。系統(tǒng)通過(guò)RS232串口從GPS-OEM模塊中接收定位數(shù)據(jù),從接收數(shù)據(jù)中的“$GPRMC”幀提取時(shí)間,、經(jīng)緯度,、速度、方位角等定位導(dǎo)航信息,。其程序模塊主體結(jié)構(gòu)如下:
……
//判斷是否為$GPRMC幀頭,,并進(jìn)行標(biāo)記
if(Data[i]==‘$’ && Data[i+3]==‘R’)……
//判斷是否為幀尾,幀尾以換行字符表示,,數(shù)值為10 ‘\n’
if(Data[i]==10 && SectionID==13)
{ ……id_check=m*16+n; //得到檢驗(yàn)數(shù)據(jù)的INT型
if(chk_result,!=id_check) //比較異或運(yùn)算結(jié)果與檢驗(yàn)數(shù)據(jù)是否一致
…… i f( Data[i]==‘*’ && SectionID==12 ) //異或運(yùn)算結(jié)果
……
//對(duì)$至*之間的字符進(jìn)行異或運(yùn)算,得到結(jié)果chk_result
for( ; Data[n],!=‘*“; n++) chk_result^=Data[n];//判斷逗號(hào),,區(qū)分識(shí)別數(shù)據(jù),并判別*號(hào),,區(qū)分校驗(yàn)數(shù)據(jù)
if(Data[i]==’,,‘||(Data[i]==’*‘ && SectionID==12) )SectionID++;
else
{ switch(SectionID){ case 1: //提取時(shí)間m_STime[a++]=Data[i];break;case 2: //接收判別有效性數(shù)據(jù)A為有效,V為無(wú)效……case 3: //提取緯度……//提取經(jīng)度,、速度,、方位角、校驗(yàn)數(shù)據(jù)等其它信息,。
2)Linux串口通信編程
嵌入式Linux操作系統(tǒng)使用接口標(biāo)準(zhǔn)POSIX的termios接口來(lái)控制串口的行為,。在Linux系統(tǒng)中,串口等設(shè)備被當(dāng)作文件進(jìn)行處理,,其程序模塊主體實(shí)現(xiàn)如下:
int fd=”open“(”/dev/ttyS1“,,O_RDWRIO_NOCTTY);//打開(kāi)串口
……new_options.c_cflag &=~PARENB;//無(wú)奇偶校驗(yàn)
new_options.c_cflag &=~CSIZE;//不隱藏?cái)?shù)據(jù)位
new_options.c_cflag &=~CSTOP8;//無(wú)停止位
new_options.c_cflag |=CS8;//8位數(shù)據(jù)位
cfsetispeed(&new_options,B4800);//設(shè)置波特率
4800bit/scfsetospeed(&new_options,,B4800);
tcflush(fd,,TCIOFLUSH);
tcsetattr(fd,,TCSANOW,&new_options);//設(shè)置新的設(shè)備方式完成串口設(shè)置后,,就可以使用read( ),、write( )函數(shù)對(duì)串口進(jìn)行操作。需注意的是,,串口默認(rèn)是阻塞型的,,當(dāng)沒(méi)有數(shù)據(jù)到達(dá)時(shí),將會(huì)阻塞掛起,,這時(shí)可以通過(guò)多線程編程,、串口超時(shí)設(shè)定或使用select輪詢等方式進(jìn)行調(diào)整控制。本系統(tǒng)主要采用多線程編程實(shí)現(xiàn)對(duì)串口阻塞的調(diào)控,,使用的是QT的Qthread類,,也可以直接使用Linux自身的多線程函數(shù)進(jìn)行操作。
3)QT/Embedded編程
Qt/Embedded是著名的Qt庫(kù)開(kāi)發(fā)商TrollTech正在進(jìn)行的基于framebuffer的面向嵌入式系統(tǒng)的Qt版本,。因其面向?qū)ο?、跨平臺(tái)和界面設(shè)計(jì)方便美觀而得到廣泛應(yīng)用。
本設(shè)計(jì)采用QT/Embedded 3.3.4版本,,它支持SQLITE數(shù)據(jù)庫(kù)驅(qū)動(dòng),,便于數(shù)據(jù)庫(kù)操作與編程。設(shè)計(jì)主要使用了QTE的畫(huà)布模塊,、SQL模塊和網(wǎng)絡(luò)模塊,。畫(huà)布模塊中,QCanvas庫(kù)是一個(gè)高度優(yōu)化的二維繪圖庫(kù),,與其它畫(huà)布模塊結(jié)合使用,能很方便地實(shí)現(xiàn)導(dǎo)航地圖的顯示,、縮放,、漫游以及鷹眼等功能。而SQL模塊和網(wǎng)絡(luò)模塊能很方便地實(shí)現(xiàn)數(shù)據(jù)庫(kù)編程和網(wǎng)絡(luò)通信功能,,極大地縮短了程序的開(kāi)發(fā)周期,,提高了開(kāi)發(fā)效率。
初步實(shí)現(xiàn)定位誤差主要取決于GPS-OEM模塊的定位精度,,實(shí)驗(yàn)顯示本系統(tǒng)能初步滿足物流信息終端對(duì)定位功能的需求,。
結(jié)束語(yǔ)
實(shí)驗(yàn)證明:系統(tǒng)定位數(shù)據(jù)精確、界面友好,、系統(tǒng)可擴(kuò)展性強(qiáng),,較好地完成了物流信息化終端定位功能。本系統(tǒng)可用于物流終端定位導(dǎo)航,,也可適用于其它需要定位導(dǎo)航服務(wù)的場(chǎng)合,,具有較普遍的適用價(jià)值和參考價(jià)值,。