基于Linux平臺上S3C2440的物流配送系統(tǒng)設(shè)計(jì)
1 相關(guān)核心技術(shù)概述
1.1 移動定位技術(shù)
目前的移動定位技術(shù)已經(jīng)非常成熟,最主要的有3類:
① 利用衛(wèi)星進(jìn)行后方交匯的定位技術(shù), 即GPS(Global Positioning System,全球定位系統(tǒng)),是由美國建立的一個衛(wèi)星導(dǎo)航定位系。利用該系統(tǒng),用戶可以在全球范圍內(nèi)實(shí)現(xiàn)全天候、連續(xù)、實(shí)時的三維導(dǎo)航定位和測速;另外,還能夠進(jìn)行高精度的時間傳遞和精密定位。
② 利用移動通信技術(shù)提供位置服務(wù)的定位技術(shù),即CellID (Cell Identification,小區(qū)識別碼),通過識別網(wǎng)絡(luò)中哪一個小區(qū)傳輸用戶呼叫,并將該信息翻譯成緯度和經(jīng)度來確定用戶位置,從而實(shí)現(xiàn)定位。確保終端在GPS定位失去信號的情況下, 保持最低限度的定位信息的提供。CellID方式在城市及人口密集區(qū)域能提供相對高的精度, 與GPS在城市高層建筑、林蔭道、地下隧道等遮蔽情況下性能降低形成較好的互補(bǔ)。由于GSM(Global System for Mobile Communications,全球移動通信系統(tǒng))相對于CDMA具有更小的小區(qū)半徑, 因此具有相對較高的CellID定位精度。
③ 利用射頻設(shè)備記錄位置的定位技術(shù),即RFID(Radio Frequency Identification,射頻識別)。通過讀取用于標(biāo)識地理坐標(biāo)的標(biāo)簽數(shù)據(jù)來獲取定位信息。其定位精度僅取決于標(biāo)簽存儲定位信息的精確性, 理論上可以達(dá)到任意高精度。RFID可用于倉庫、碼頭等需要高精度定位信息的場所,來提供定位信息和其他輔助功能。RFID現(xiàn)在廣泛用于公交報(bào)站系統(tǒng),公交車上的設(shè)備檢測到站點(diǎn)的射頻設(shè)備后就自動報(bào)站,免去了公交司機(jī)到人工開啟開關(guān)報(bào)站的麻煩。
本文在物流配送網(wǎng)絡(luò)中采用GPS輔助定位系統(tǒng)(GPS十CellID+RFID三者結(jié)合)的定位技術(shù),以保證在任何時刻都能達(dá)到比較好的精度。
1.2 移動終端通信技術(shù)
目前,常用的移動終端技術(shù)主要包括藍(lán)牙技術(shù)、GPRS接入互聯(lián)網(wǎng)技術(shù)、構(gòu)筑在GPRS基礎(chǔ)上的無線數(shù)據(jù)傳輸技術(shù)等。
藍(lán)牙技術(shù)是一種支持設(shè)備短距離通信(一般10 m內(nèi))的無線電技術(shù)。藍(lán)牙采用分散式網(wǎng)絡(luò)結(jié)構(gòu)以及快跳頻和短包技術(shù),支持點(diǎn)對點(diǎn)及點(diǎn)對多點(diǎn)通信,工作在全球通用的2.4 GHz ISM(即工業(yè)、科學(xué)、醫(yī)學(xué))頻段。其數(shù)據(jù)速率為1 Mbps,采用時分雙工傳輸方案實(shí)現(xiàn)全雙工傳輸。
GPRS技術(shù)是一種新的GSM數(shù)據(jù)業(yè)務(wù),它可以給移動用戶提供無線分組數(shù)據(jù)接入服務(wù)。GPRS主要是在移動用戶和遠(yuǎn)端的數(shù)據(jù)網(wǎng)絡(luò)(如支持TCP/IP、X.25等網(wǎng)絡(luò))之間提供一種連接,從而給移動用戶提供高速無線IP和無線X.25業(yè)務(wù)。GPRS采用分組交換技術(shù),它可以讓多個用戶共享某些固定的信道資源。
2 系統(tǒng)設(shè)計(jì)
2.1 物流配送系統(tǒng)模塊設(shè)計(jì)
物流配送系統(tǒng)物理結(jié)構(gòu)設(shè)計(jì)如圖1所示。
圖1 系統(tǒng)物理結(jié)構(gòu)設(shè)計(jì)
2.2 物流配送控制中心的功能設(shè)計(jì)
控制中心由GPRS/GSM通信服務(wù)器、GIS服務(wù)器、Web服務(wù)器、地圖數(shù)據(jù)庫服務(wù)器、業(yè)務(wù)服務(wù)器組成,通過路由器連接至Internet。GPRS/GSM通信服務(wù)器處理與各個終端之間的一對多雙向數(shù)據(jù)通信;GIS服務(wù)器主要實(shí)現(xiàn)電子地圖的功能,并負(fù)責(zé)地圖數(shù)據(jù)的傳輸;Web服務(wù)器則是將電子地圖和各目標(biāo)信息結(jié)合起來,為控制用戶提供監(jiān)控界面;地圖數(shù)據(jù)庫和業(yè)務(wù)數(shù)據(jù)庫分別存儲電子地圖數(shù)據(jù)和監(jiān)控業(yè)務(wù)數(shù)據(jù)。
控制中心軟件部分主要包括10部分,結(jié)構(gòu)圖如圖2所示。
圖2 控制中心軟件結(jié)構(gòu)圖
2.3 移動終端的硬件設(shè)計(jì)
移動終端可以實(shí)現(xiàn)個人用戶的實(shí)時信息查詢,用戶可以通過GPS輔助定位系統(tǒng)獲得本機(jī)的位置描述,并通過GPRS網(wǎng)絡(luò)將本機(jī)的位置描述實(shí)時地傳送到物流配送控制中心,實(shí)現(xiàn)控制中心對移動終端的監(jiān)控,同時,也可以通過GPRS從控制中心平臺獲得查詢對象的所在位置描述。這些操作均利用GPRS無線網(wǎng)絡(luò)以Web Service的方式實(shí)現(xiàn)。
基于S3C2440的移動終端硬件設(shè)計(jì)如圖3所示。S3C2440模塊(包括各種硬件接口及嵌入式Linux軟件等)負(fù)責(zé)對GPS信號的接收處理、視圖顯示及對數(shù)據(jù)的處理。從GPS模塊中獲取定位數(shù)據(jù),從RFID模塊與CellID模塊獲得更詳細(xì)的定位信息作為補(bǔ)充,然后將位置信息通過GPRS發(fā)送給控制中心。實(shí)現(xiàn)終端和控制中心的信息上傳和下傳功能。
RFID模塊主要負(fù)責(zé)對當(dāng)前物流載體的數(shù)據(jù)采集,以獲得RFID定位信息,并將采集到的RFID信息通過藍(lán)牙模塊傳輸給S3C2440。GPS模塊根據(jù)衛(wèi)星定位獲得當(dāng)前位置信息,同樣通過藍(lán)牙模塊進(jìn)行傳輸(如距離比較近,也可以有線傳輸)。CellID模塊主要通過無線數(shù)據(jù)傳輸獲得定位信息,然后通過GPRS模塊傳輸給中心控制器。LCD模塊主要提供人機(jī)交互的功能,除了顯示屏外還需配備鍵盤等輸入設(shè)備,或者直接采用液晶屏。存儲器模塊除了擴(kuò)展的片外RAM外,還需給嵌入式數(shù)據(jù)庫提供一定的存儲空間。
2.4 軟件設(shè)計(jì)
2.4.1 軟件總體設(shè)計(jì)
如圖4所示,按照功能可以將軟件分為以下4部分。
圖4 軟件總體設(shè)計(jì)圖
① 用戶界面。要實(shí)現(xiàn)一個友好的用戶界面,以便用戶在S3C2440 LCD屏上直觀地獲得圖文并茂的信息,以及選擇服務(wù)功能和輸入信息。
② 地圖數(shù)據(jù)處理。主要實(shí)現(xiàn)電子地圖的數(shù)據(jù)組織、地圖顯示、地圖標(biāo)圖功能、定位導(dǎo)航功能,便于用戶使用地理信息的服務(wù)功能。終端處理的數(shù)據(jù)包括GPS數(shù)據(jù)、GIS數(shù)據(jù)、文本數(shù)據(jù)、多媒體數(shù)據(jù)。
③ GPS通信模塊。S3C2440模塊通過藍(lán)牙與GPS模塊相連接,對接收到的GPS數(shù)據(jù)進(jìn)行處理,才能得到所需要的定位信息(比如經(jīng)緯度數(shù)據(jù)等)。利用籃牙進(jìn)行串口通信的編程,包括打開串口、配置串口、發(fā)送接收數(shù)據(jù)、關(guān)閉串口4個步驟。
④ GPRS通信模塊。利用GPRS無線物流在S3C2440和控制中心之間進(jìn)行雙向通信。本文采用Web Service的方式來進(jìn)行。
2.4.2 GPS與RFID數(shù)據(jù)提取
GPS接收機(jī)只要處于工作狀態(tài),就會源源不斷地把接收并計(jì)算出的GPS導(dǎo)航定位信息通過串口傳送到計(jì)算機(jī)中。從串口接收數(shù)據(jù)后將其放置于緩存內(nèi),在沒有進(jìn)一步處理之前緩存中是一長串字節(jié)流,這些信息在沒有經(jīng)過分類提取之前是無法加以利用的。因此,必須通過程序?qū)⒏鱾€字段的信息從緩存字節(jié)流中提取出來,將其轉(zhuǎn)化成有實(shí)際意義的、可供使用的定位信息數(shù)據(jù)。例如,“$GPRMC”幀結(jié)構(gòu)的1、2、3、5、9段是我們需要得到的數(shù)據(jù),分別是時間、數(shù)據(jù)的可信度、緯度、經(jīng)度、日期。從“$GPRMC”幀中獲取定位數(shù)據(jù)的代碼如下:
for(int i=0;i
SeetionID=0;
if(Data[i]==10)//幀尾
if(Data[i]=",")//逗號計(jì)數(shù)
SectionIiD++;
else{
switch(SeotionID){
case1: //提取出時間
m_sTime+=Data[i];
break;
case2: //判斷數(shù)據(jù)是否可信(GPS天線至少接收到3顆GPS衛(wèi)星時為A,可信)
if(Data[i]=="A")
GPSParam[m_nNumberl].m_bVaIid=true;
break;
case3: //提取出緯度
m_sPositionY+=Data[i];
break;
case5: //提取出經(jīng)度
m_PositionX+=Data[i];
break;
case9://提取出日期
m_Date+二Data[i];
break;
default:
break;
}
}
}
RFID模塊通過串口將信息傳輸至移動終端,信息傳輸流程如圖5所示。當(dāng)接收緩沖區(qū)內(nèi)字節(jié)個數(shù)達(dá)到或者超過該值后就取出數(shù)據(jù)并對相應(yīng)事件進(jìn)行處理。程序設(shè)計(jì)的主要任務(wù)是:讀出標(biāo)簽ID信息(讀ID命令);向標(biāo)簽寫入存放在數(shù)據(jù)庫中的數(shù)據(jù)信息(寫信息);讀取標(biāo)簽中寫入的數(shù)據(jù)信息,查詢數(shù)據(jù)庫以得到具體的產(chǎn)品信息(讀信息);實(shí)時顯示讀標(biāo)簽信息的結(jié)果。
圖5 RFID模塊至移動終端的信息傳輸流程
讀ID代碼:
void CMyDlg::OnBtn_ReadID() {
SendData("Read");
if(0==m_ctrlComm.GetOutBufferCount())
m_ctrlComm.SetRTHreshold(18): //讀取標(biāo)簽ID所設(shè)的閾值
}
讀信息代碼:
void CMyDlg::OnBtn_ReadMessage(){
SendData ("ReadString(18,67)int(86,4),int(90,4)");
if(0==m_ctrlComm.GetOutBufferCount())
m_ctrlComm.SetRTHreshold(40): //讀取標(biāo)簽ID所設(shè)的閾值
}
2.4.3 移動終端S3C2440模塊軟件設(shè)計(jì)
采用模塊化結(jié)構(gòu)設(shè)計(jì),根據(jù)不同功能分別進(jìn)行編寫和調(diào)試,等到各個模塊都調(diào)試成功后,將各個模塊連成整體,組成軟件系統(tǒng)。
移動終端S3C2440模塊完成的主要內(nèi)容包括兩部分:
① 完成從移動終端到遠(yuǎn)程控制中心的定位信息的上行傳輸。當(dāng)遠(yuǎn)程控制中心要從移動終端獲取定位信息時,可以發(fā)送命令給S3C2440。這時S3C2440便產(chǎn)生一個中斷,并發(fā)送命令給各定位模塊來獲取定位信息,將定位信息進(jìn)行處理后再通過GPRS模塊傳給遠(yuǎn)程控制中心;或者是移動終端由人員鍵盤控制產(chǎn)生中斷,然后采集定位信息傳送給遠(yuǎn)程控制中心。
② 接收控制中心到移動終端的下行傳輸?shù)男畔???刂浦行目梢詫⒏鞣N數(shù)據(jù)傳送給終端設(shè)備。比如,控制中心通過GIS發(fā)現(xiàn)當(dāng)前移動終端所選道路擁塞,則可以給移動終端發(fā)一條改變路線的建議信息,這樣非常方便地實(shí)現(xiàn)了遠(yuǎn)程控制中心與移動終端的交互。
S3C2440上行至控制中心的軟件設(shè)計(jì)主要流程如圖6 所示。
圖6 S3C2440上行至控制中心的軟件流程
結(jié)語
本文以GPS定位數(shù)據(jù)為基礎(chǔ),GPRS網(wǎng)絡(luò)作為承載網(wǎng)絡(luò),結(jié)合物流業(yè)發(fā)展實(shí)際需要,將物流配送過程數(shù)字化與信息化,實(shí)現(xiàn)了對物流配送系統(tǒng)的監(jiān)控與管理。射頻識別技術(shù)、定位技術(shù)、傳感器技術(shù)以及無線通信技術(shù)在未來必將深入到物流業(yè)的各個方面。
評論