當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于ARM9的物流終端定位功能的實(shí)現(xiàn)

引言

  物流的定位方案與技術(shù)的選擇對提高現(xiàn)代物流配送管理效率,減少運(yùn)營成本具有重要的影響。物流終端定位要求較高的定位精度,能提供全天候連續(xù)不間斷的定位信息支持,能滿足復(fù)雜地形條件的定位需求。

  本文針對當(dāng)前物流行業(yè)終端定位功能的需求進(jìn)行分析,針對當(dāng)前定位技術(shù)現(xiàn)狀,提出相適應(yīng)的物流終端定位功能實(shí)現(xiàn)方案,并在基于嵌入式Linux和ARM9硬件核心的物流信息化終端平臺上對終端定位功能進(jìn)行了初步的實(shí)現(xiàn)。
 

  系統(tǒng)實(shí)現(xiàn)方案

  移動定位技術(shù)的現(xiàn)狀分析

  目前,移動定位技術(shù)已經(jīng)非常成熟,較廣的應(yīng)用主要可以分為兩大類,一類是GPS等利用衛(wèi)星進(jìn)行后方交匯的定位技術(shù);另一類是利用移動通信網(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終端在建筑密集的地

  方或在隧道等定位信號難以接收的地理位置時,往往不易獲取有效的定位信息。而且,GPS定位功能無法滿足倉儲等高精度定位需求的場合,還需要進(jìn)行相應(yīng)的補(bǔ)充與完善。

  本系統(tǒng)實(shí)現(xiàn)方案

  基于現(xiàn)有網(wǎng)絡(luò)建設(shè)的總體情況及物流管理過程中對定位數(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模塊為本物流信息終端課題已擬定的硬件平臺,除GPS專為定位功能服務(wù)外,GSM和RFID模塊同時具有通信和標(biāo)簽信息采集的功能。在不擴(kuò)充硬件資源的前提下,最大限度地提高定位功能的服務(wù)質(zhì)量。

  2)Cell-ID定位。確保終端在GPS定位失去信號的情況下,保持最低限度的定位信息的提供。Cell-ID方式在城市及人口密集區(qū)域能提供相對高的精度,與GPS在城市高層建筑、林蔭道、地下隧道等遮蔽情況下性能的降低有較好的互補(bǔ)。由于GSM相對于CDMA具有更小的小區(qū)半徑,因此具有相對高的Cell-ID定位精度。在本方案中擬采用GSM的CELLID定位方式。

  3)RFID定位。通過讀取用于標(biāo)識地理坐標(biāo)的標(biāo)簽數(shù)據(jù)來獲取定位信息。其定位精度僅取決于標(biāo)簽存儲定位信息的精確性,理論上可以達(dá)到任意高精度??捎糜趥}庫、碼頭等需要高精度定位信息的場所,來提供定位信息和其它輔助功能。

  4)圖形道路匹配。當(dāng)前物流運(yùn)輸主要是利用汽車等運(yùn)輸工具在固定的路線上進(jìn)行,當(dāng)路線基本確定的情況下,可通過圖形道路匹配對定位信息進(jìn)行適當(dāng)糾正。但是,這一般適用于道路不太密集的區(qū)域或路線固定的情況,可在本方案中作為可選功能模塊提供,適用于鐵路、高速公路等道路信息明確的場合,尤其適用于鐵路運(yùn)輸。

  軟硬件系統(tǒng)設(shè)計(jì)原理

  系統(tǒng)硬件開發(fā)板CPU采用的是三星公司的內(nèi)部集成ARM920T處理器核的S3C2410芯片。GPS模塊提供衛(wèi)星定位信號;GSM/GPRS模塊提供通信與CELLID定位信息獲取;RFIDS模塊提供標(biāo)簽信息采集和RFID定位功能。終端通過GSM/GPRS通信網(wǎng)絡(luò)與物流信息控制中心建立聯(lián)系,提交相關(guān)數(shù)據(jù)采集信息和接收物流信息控制中心指令。

  系統(tǒng)軟件采用嵌入式Linux操作系統(tǒng),移植QT/Embedded 3.3.4和SQLITE數(shù)據(jù)庫,采用QT嵌入式編程實(shí)現(xiàn)相應(yīng)功能。

  軟件系統(tǒng)設(shè)計(jì)

  本文的軟件系統(tǒng)設(shè)計(jì)主要以S3C2410平臺為核心,將從GPS模塊、GSM/GPRS模塊、RFID模塊提取的定位信息進(jìn)行相應(yīng)分析處理,完成物流信息終端導(dǎo)航定位功能。

  宿主機(jī)開發(fā)環(huán)境建立

  由于目標(biāo)平臺資源所限,需要搭建交叉編譯環(huán)境,本系統(tǒng)開發(fā)過程中采用的平臺如下:

  宿主機(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中所需要的頭文件 、庫文件在交叉編譯前正確安裝,并移植相應(yīng)的庫文件至目標(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是以語句來發(fā)送數(shù)據(jù)的,每條語句都相對獨(dú)立并有完整意義。語句包含若干由ASCII文本字符組成的字段, 每條語句都以“$”開頭,以回車換行結(jié)束,數(shù)據(jù)包含在字段中,字段之間由逗號分 隔。每條語句的第一個字段表明語句的意義,在標(biāo)準(zhǔn)語句中,“$”后的兩位字符為“talkerID”,表示發(fā)送數(shù)據(jù)的設(shè)備,如GP表示GPS;接著的三位字符為“sentenceID”,表示了該語句的類型,如GGA,RMC等。語句中每個字段的含義隨語句類型而定,語句的最后一個字段是檢驗(yàn)和(checksum),由“*”和兩位十六進(jìn)制數(shù)字及回車換行符組成,檢驗(yàn)和是“$”和“*”之間所有字符的邏輯異或運(yùn)算結(jié)果,用于檢驗(yàn)和確認(rèn)數(shù)據(jù)的傳輸是否正確。

  對于終端導(dǎo)航而言,“$GPR

  MC”幀格式可以滿足大部分需求,其幀長相對較短,便于信息處理。因此,在本系統(tǒng)中,選取“$GPRMC”幀進(jìn)行定位信息提取。系統(tǒng)通過RS232串口從GPS-OEM模塊中接收定位數(shù)據(jù),從接收數(shù)據(jù)中的“$GPRMC”幀提取時間、經(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é)果

  ……

  //對$至*之間的字符進(jìn)行異或運(yùn)算,得到結(jié)果chk_result

  for( ; Data[n]!='*"; n++) chk_result^=Data[n];

  //判斷逗號,區(qū)分識別數(shù)據(jù),并判別*號,區(qū)分校驗(yàn)數(shù)據(jù)

  if(Data[i]==','||(Data[i]=='*' && SectionID==12) )

  SectionID++;

  else

{ switch(SectionID)

  { case 1: //提取時間

  m_sTime[a++]=Data[i];

  break;

  case 2: //接收判別有效性數(shù)據(jù)A為有效,V為無效

  ……

  case 3: //提取緯度

  ……//提取經(jīng)度、速度、方位角、校驗(yàn)數(shù)據(jù)等其它信息[!--empirenews.page--]2)Linux串口通信編程

 

  嵌入式Linux操作系統(tǒng)使用接口標(biāo)準(zhǔn)POSIX的termios接口來控制串口的行為。在Linux系統(tǒng)中,串口等設(shè)備被當(dāng)作文件進(jìn)行處理,其程序模塊主體實(shí)現(xiàn)如下:

  int fd="open"("/dev/ttyS1",O_RDWRIO_NOCTTY);//打開串口

  ……

  new_options.c_cflag &=~PARENB;//無奇偶校驗(yàn)

  new_options.c_cflag &=~CSIZE;//不隱藏?cái)?shù)據(jù)位

  new_options.c_cflag &=~CSTOP8;//無停止位

  new_options.c_cflag |=CS8;//8位數(shù)據(jù)位

  cfsetispeed(&new_options,B4800);//設(shè)置波特率4800bit/s

  cfsetospeed(&new_options,B4800);

  tcflush(fd,TCIOFLUSH);

  tcsetattr(fd,TCSANOW,&new_options);//設(shè)置新的設(shè)備方式

  完成串口設(shè)置后,就可以使用read( )、write( )函數(shù)對串口進(jìn)行操作。需注意的是,串口默認(rèn)是阻塞型的,當(dāng)沒有數(shù)據(jù)到達(dá)時,將會阻塞掛起,這時可以通過多線程編程、串口超時設(shè)定或使用select輪詢等方式進(jìn)行調(diào)整控制。本系統(tǒng)主要采用多線程編程實(shí)現(xiàn)對串口阻塞的調(diào)控,使用的是QT的Qthread類,也可以直接使用Linux自身的多線程函數(shù)進(jìn)行操作。

  3)QT/Embedded編程

  Qt/Embedded是著名的Qt庫開發(fā)商TrollTech正在進(jìn)行的基于framebuffer的面向嵌入式系統(tǒng)的Qt版本。因其面向?qū)ο?、跨平臺和界面設(shè)計(jì)方便美觀而得到廣泛應(yīng)用。

  本設(shè)計(jì)采用QT/Embedded 3.3.4版本,它支持SQLITE數(shù)據(jù)庫驅(qū)動,便于數(shù)據(jù)庫操作與編程。設(shè)計(jì)主要使用了QTE的畫布模塊、SQL模塊和網(wǎng)絡(luò)模塊。畫布模塊中,QCanvas庫是一個高度優(yōu)化的二維繪圖庫,與其它畫布模塊結(jié)合使用,能很方便地實(shí)現(xiàn)導(dǎo)航地圖的顯示、縮放、漫游以及鷹眼等功能。而SQL模塊和網(wǎng)絡(luò)模塊能很方便地實(shí)現(xiàn)數(shù)據(jù)庫編程和網(wǎng)絡(luò)通信功能,極大地縮短了程序的開發(fā)周期,提高了開發(fā)效率。

  初步實(shí)現(xiàn)

  定位誤差主要取決于GPS-OEM模塊的定位精度,實(shí)驗(yàn)顯示本系統(tǒng)能初步滿足物流信息終端對定位功能的需求。

  結(jié)束語

  實(shí)驗(yàn)證明:系統(tǒng)定位數(shù)據(jù)精確、界面友好、系統(tǒng)可擴(kuò)展性強(qiáng),較好地完成了物流信息化終端定位功能。本系統(tǒng)可用于物流終端定位導(dǎo)航,也可適用于其它需要定位導(dǎo)航服務(wù)的場合,具有較普遍的適用價(jià)值和參考價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉