www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件

提出一種基于Windows CE嵌入式操作系統(tǒng)的物流車(chē)載終端設(shè)計(jì)方案。在此方案中集成了電子地圖、GPS定位、GPRS無(wú)線(xiàn)通信、熱敏打印機(jī)、電子秤等功能。文中給出了相應(yīng)的實(shí)現(xiàn)及測(cè)試結(jié)果。

  物流在現(xiàn)代社會(huì)中正扮演著越來(lái)越重要的角色。但是,與國(guó)外技術(shù)密集型的物流行業(yè)相比,國(guó)內(nèi)物流行業(yè)在信息化、智能化程度上還存在著較大差距。鑒于這樣一種狀況,本文提出了一個(gè)基于Windows CE平臺(tái)的物流車(chē)載終端設(shè)計(jì)方案。該物流車(chē)載終端以L(fǎng)iod評(píng)估板(簡(jiǎn)稱(chēng)為“Liod板”)為硬件平臺(tái),在嵌入式操作系統(tǒng)Windows CE上實(shí)現(xiàn)的功能有:電子地圖,實(shí)現(xiàn)地圖4級(jí)縮放、平移、歸中功能;無(wú)線(xiàn)通信,實(shí)現(xiàn)終端與控制中心的GPRS無(wú)線(xiàn)通信;GPS定位,定位車(chē)載終端當(dāng)前的位置;稱(chēng)重與打印,讀取電子秤數(shù)據(jù),實(shí)現(xiàn)票據(jù)的打印;語(yǔ)音提示,提供更好的人機(jī)交互功能。

  1 軟硬件平臺(tái)簡(jiǎn)介

  本車(chē)載終端以L(fǎng)iod板為硬件平臺(tái)。Liod板的核心PXA270是一款屬于Intel XScale微架構(gòu)的高性能、低功耗嵌入式處理器。在本設(shè)計(jì)中要用到的主要有LCD、觸摸屏、以太網(wǎng)接口、全功能串口、音頻接口等。本設(shè)計(jì)方案采用Windows CE作為軟件平臺(tái)。Windows CE是一種針對(duì)小容量、移動(dòng)式、智能化設(shè)備的多任務(wù)、搶占式、模塊化實(shí)時(shí)嵌入式操作系統(tǒng)。Windows CE具有與桌面Windows幾乎完全兼容的API接口,為了配合Windows CE上的應(yīng)用程序開(kāi)發(fā),微軟公司推出了eMbedded Visual C++(簡(jiǎn)稱(chēng)“eVC”)集成開(kāi)發(fā)環(huán)境。本系統(tǒng)采用的是eVC 4.0。

  2 硬件設(shè)計(jì)

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

  在Liod板的基礎(chǔ)上擴(kuò)充了部分外圍電路。根據(jù)Liod板提供的硬件資源和系統(tǒng)需要使用的硬件情況,硬件設(shè)計(jì)主要包括兩個(gè)部分:以太網(wǎng)口轉(zhuǎn)串口電路設(shè)計(jì)和電子秤硬件電路設(shè)計(jì)。

  無(wú)線(xiàn)通信設(shè)備采用GPRS Modem。該GPRS Modem通過(guò)Liod板的串行口COM1發(fā)送和接收數(shù)據(jù);GPS定位采用12通道定位模塊GARMIN15L;打印機(jī)采用TD58熱敏打印機(jī);電子秤采用應(yīng)變片壓力傳感器結(jié)合C8051F020單片機(jī)自行開(kāi)發(fā);語(yǔ)音提示模塊直接使用Liod板提供的音頻接口。由于GPS接收模塊、熱敏打印機(jī)、電子秤都要通過(guò)串行口與Liod板通信,Liod板原有的串口數(shù)量已經(jīng)無(wú)法滿(mǎn)足要求,因此采用ZNE100T以太網(wǎng)轉(zhuǎn)串口模塊,把Liod板的以太網(wǎng)口擴(kuò)充成3個(gè)串行口。

  系統(tǒng)的硬件連接如圖1所示。

圖1 系統(tǒng)硬件連接示意圖

表1 ZNC-100T模塊引腳定義

  上述引腳中,GPIO0~GPIO4是可控制通用I/O口。在功能板的設(shè)計(jì)中,使用了3個(gè)RS232串口分別發(fā)送和接收電子秤數(shù)據(jù)、打印機(jī)數(shù)據(jù)和GPS數(shù)據(jù)。本系統(tǒng)采用帶有使能控制信號(hào)的MAX3221電平轉(zhuǎn)換芯片選擇要使用的串口,具體做法是將GPIO0~GPIO2分別連接到3個(gè)MAX3221的使能端(EN),這樣就可以通過(guò)軟件來(lái)選擇需要的串口。使能端均為低電平有效,當(dāng)有一個(gè)串口的使能端為0時(shí),其他兩個(gè)串口使能端必須為1。

  2.3 電子秤硬件設(shè)計(jì)

  電子秤使用應(yīng)變片壓力傳感器、AD8221運(yùn)算放大器和C8051F020芯片進(jìn)行設(shè)計(jì)。電子秤硬件電路框圖如圖2所示。

圖2 電子秤硬件電路框圖

  物品重量通過(guò)應(yīng)變片壓力傳感器轉(zhuǎn)換成比較微弱的電壓信號(hào)。此電壓信號(hào)經(jīng)過(guò)AD8221運(yùn)算放大器放大,送到C8051F020的ADC1轉(zhuǎn)換器;轉(zhuǎn)換后的數(shù)據(jù)通過(guò)串口發(fā)送出去,同時(shí)在擴(kuò)展板的液晶顯示屏上顯示重量。電子秤的UART0和PC串口都使用9 600 bps的波特率。

  C8051F020的ADC1轉(zhuǎn)換器是8位的,因此轉(zhuǎn)換數(shù)據(jù)是0~255。電子秤的分辨率為20 g,最大稱(chēng)量量程是5.1 kg。

  3 軟件設(shè)計(jì)

  3.1 電子地圖

  電子地圖模塊采用柵格圖像實(shí)現(xiàn)。柵格圖像又稱(chēng)“位圖”,由像素點(diǎn)組成。與矢量圖像不同,柵格圖像在用作電子地圖時(shí)需要在地圖元素和數(shù)據(jù)之間建立對(duì)應(yīng)關(guān)系。

表2 地圖級(jí)別與放大倍數(shù)的對(duì)應(yīng)關(guān)系

  首先對(duì)坐標(biāo)系統(tǒng)進(jìn)行簡(jiǎn)單的說(shuō)明。假設(shè)有一個(gè)形狀為嚴(yán)格矩形的地圖,其像素坐標(biāo)原點(diǎn)為(0,0),地圖X軸方向上的寬度假設(shè)為W個(gè)像素點(diǎn),Y軸方向的高度假設(shè)為H個(gè)像素點(diǎn),某個(gè)點(diǎn)的像素坐標(biāo)為(x,y),則定義該像素點(diǎn)的歸一化坐標(biāo)為(x/W,y/H)。這樣,地圖左上角的歸一化坐標(biāo)為(0.0,0.0),右下角歸一化坐標(biāo)為(1.0,1.0)。把這樣的坐標(biāo)系統(tǒng)稱(chēng)為“歸一化坐標(biāo)系”。

  采用歸一化坐標(biāo)系可以簡(jiǎn)化柵格地圖的多級(jí)縮放。由于本終端要將車(chē)輛當(dāng)前的位置顯示在地圖上,而對(duì)于不同的地圖級(jí)別,地圖的分辨率是不一樣的。那么,當(dāng)?shù)貓D放大或縮小時(shí),車(chē)輛對(duì)應(yīng)的像素坐標(biāo)就會(huì)發(fā)生改變;但是,在GPS連續(xù)的兩次更新間隔之間,車(chē)輛在地圖上的歸一化坐標(biāo)是不會(huì)變化的。地圖放大或縮小后,只需要用新地圖的像素寬度乘以歸一化x坐標(biāo),即可得到車(chē)輛在新地圖上的X軸像素坐標(biāo);同理,可得車(chē)輛在新地圖上的Y軸像素坐標(biāo)。這樣,坐標(biāo)計(jì)算過(guò)程就可以統(tǒng)一起來(lái)。本設(shè)計(jì)中的電子地圖模塊統(tǒng)一采用歸一化坐標(biāo)系。

圖3 經(jīng)緯度坐標(biāo)線(xiàn)性映射示意圖

  根據(jù)設(shè)計(jì)要求,本終端的電子地圖支持4級(jí)縮放。設(shè)計(jì)中采用一幅大小為2 251×1 557、格式為BMP的成都地圖作為原始地圖,即所能支持的最大分辨率的地圖。把縮小8倍以后的地圖作為所能支持的最小分辨率地圖,因此地圖級(jí)別與放大倍數(shù)之間具有如表2所列的對(duì)應(yīng)關(guān)系。

  對(duì)于地圖左上角點(diǎn)和右下角點(diǎn)的經(jīng)緯度坐標(biāo)的求取,通過(guò)實(shí)際測(cè)量的方法是很難做到準(zhǔn)確無(wú)誤的。因此本設(shè)計(jì)采用一種間接的方法來(lái)求得地圖左上角和右下角的經(jīng)緯度坐標(biāo)。

  假設(shè)在地圖邊界內(nèi)部有兩個(gè)任意點(diǎn),把這兩個(gè)點(diǎn)稱(chēng)為“參考點(diǎn)”,并且已知這兩個(gè)參考點(diǎn)的經(jīng)度、緯度、歸一化x坐標(biāo)、歸一化y坐標(biāo);設(shè)參考點(diǎn)1的這4個(gè)參數(shù)為point1=(lon1, lat1, x1, y1),參考點(diǎn)2的這4個(gè)參數(shù)為point2=(lon2, lat2, x2, y2),即point1和point2已知。根據(jù)前面的說(shuō)明可知,左上角點(diǎn)的歸一化坐標(biāo)為(0.0, 0.0),而右下角點(diǎn)的歸一化坐標(biāo)為(1.0,1.0)。另外假設(shè)左上角點(diǎn)用pointTL表示,其經(jīng)緯度為lonTL和latTL;右下角點(diǎn)用pointBR表示,其經(jīng)緯度為lonBR和latBR(TL意即TopLeft,BR意即BottomRight),則有pointTL=(lonTL,latTL,0.0,0.0)。同理,對(duì)于右下角的點(diǎn)有pointBR=(lonBR,latBR,1.0,1.0)。

  由于將經(jīng)緯度與地圖坐標(biāo)之間近似為線(xiàn)性映射關(guān)系,因此根據(jù)歐氏幾何原理可知,由已知的point1和point2,可以計(jì)算出pointTL和pointBR的未知參數(shù):

上述工作完成之后,參考點(diǎn)數(shù)據(jù)的存儲(chǔ)和讀取就比較簡(jiǎn)單了?;鶞?zhǔn)點(diǎn)和車(chē)輛位置的計(jì)算都只是簡(jiǎn)單的代數(shù)計(jì)算過(guò)程,容易實(shí)現(xiàn)。至于地圖的顯示和控制則需要通過(guò)Windows CE的API接口來(lái)完成。

3.2 GPRS模塊

  本車(chē)載終端采用GPRS Modem與控制中心進(jìn)行無(wú)線(xiàn)數(shù)據(jù)通信,對(duì)GPRS Modem的控制和讀寫(xiě)通過(guò)串口進(jìn)行。由于與控制中心交互的數(shù)據(jù)種類(lèi)較多,因此定義了相應(yīng)的應(yīng)用層數(shù)據(jù)包格式。數(shù)據(jù)包的所有字段均采用單字節(jié)ASCII編碼且為固定長(zhǎng)度。在發(fā)送端,數(shù)值型字段需要在發(fā)送前格式化為定長(zhǎng)字符串再封裝到數(shù)據(jù)包中;在接收端,需要將數(shù)據(jù)包中的格式化字符串還原為數(shù)值型常量。數(shù)值型字段不足部分以字符“0”為前導(dǎo)字符進(jìn)行填充;字符型字段不足部分以空格(SPACE,0x20)為前導(dǎo)字符填充。字符串型字段的長(zhǎng)度不包括字符串結(jié)尾的NULL字符(在C語(yǔ)言中為0x00)。所有采用UNICODE編碼的字符數(shù)據(jù)在封裝到數(shù)據(jù)包中之前必須進(jìn)行轉(zhuǎn)換。

  定義的數(shù)據(jù)包主要有以下幾類(lèi):客戶(hù)端位置更新數(shù)據(jù)包;客戶(hù)端接件信息數(shù)據(jù)包;客戶(hù)端送達(dá)簽收數(shù)據(jù)包;服務(wù)器新任務(wù)數(shù)據(jù)包;客戶(hù)端確認(rèn)數(shù)據(jù)包;服務(wù)器確認(rèn)數(shù)據(jù)包;客戶(hù)端車(chē)輛故障數(shù)據(jù)包;客戶(hù)端道路堵塞數(shù)據(jù)包。

  為了能夠正確解析數(shù)據(jù)包中的數(shù)據(jù),所有數(shù)據(jù)包都具有相同的包頭(head),即數(shù)據(jù)包類(lèi)型(packet type)、時(shí)間戳標(biāo)記(time stamp)、數(shù)據(jù)包順序號(hào)(packet sequence number)3個(gè)字段。當(dāng)接收到一個(gè)數(shù)據(jù)包之后,根據(jù)包頭中的類(lèi)型字段就能判斷該數(shù)據(jù)包主體部分的長(zhǎng)度,由此即可正確解析出包中的內(nèi)容。包頭之后是數(shù)據(jù)包主體(body)部分,不同數(shù)據(jù)包類(lèi)型有著不同的字段和長(zhǎng)度。上述8種定義類(lèi)型之外的數(shù)據(jù)包均為未定義類(lèi)型,應(yīng)當(dāng)被丟棄。類(lèi)型為NTSK、TMLF、RCNG的數(shù)據(jù)包需要接收端的確認(rèn);而RECV、SEND、UPDT、CACK、SACK這5種類(lèi)型的數(shù)據(jù)包不需要確認(rèn)。

  GPRS Modem的數(shù)據(jù)傳輸與接收是通過(guò)串口編程來(lái)實(shí)現(xiàn)的。Windows CE平臺(tái)上的串口編程依賴(lài)于與文件相關(guān)的API接口:CreateFile()打開(kāi)串口,ReadFile()從串口讀取數(shù)據(jù),WriteFile()向串口寫(xiě)入數(shù)據(jù)。由于網(wǎng)絡(luò)數(shù)據(jù)包的到來(lái)是一個(gè)異步過(guò)程,因此還需要處理串口的異步事件:GetCommMask()取得串口已經(jīng)設(shè)置的事件,SetCommMask()設(shè)置串口事件集,WaitCommEvent()等待預(yù)先設(shè)置的串口事件集中的某一事件發(fā)生。

3.3 稱(chēng)重與打印模塊

  該模塊實(shí)現(xiàn)了電子稱(chēng)重和憑單打印功能。

  由于采用ZNE100T以太網(wǎng)口轉(zhuǎn)串口模塊把Liod板的以太網(wǎng)口擴(kuò)充為3個(gè)串口,因此對(duì)外擴(kuò)的3個(gè)串口的訪(fǎng)問(wèn)是通過(guò)以太網(wǎng)口進(jìn)行的,這涉及Windows CE下的網(wǎng)絡(luò)編程。對(duì)外擴(kuò)串口的控制是通過(guò)向ZNE100T模塊的3003端口寫(xiě)入控制命令字來(lái)實(shí)現(xiàn)的;數(shù)據(jù)的收發(fā)是通過(guò)ZNE100T模塊的4001端口實(shí)現(xiàn)的。

  網(wǎng)絡(luò)編程接口采用的是Winsock1.1,采用面向連接的TCP協(xié)議。對(duì)數(shù)據(jù)的讀寫(xiě)采用了非阻塞的方式:寫(xiě)操作直接將數(shù)據(jù)寫(xiě)到套接口的輸出緩沖區(qū)中;而數(shù)據(jù)的讀取因?yàn)槭且粋€(gè)異步過(guò)程,因此放在一個(gè)單獨(dú)的線(xiàn)程中完成。在此線(xiàn)程中定義了OnRead()、onError()、OnDisconnect()回調(diào)函數(shù),用于把線(xiàn)程中讀取到的數(shù)據(jù)遞交給上層或者處理讀取過(guò)程中發(fā)生的異常事件。

  由于打印機(jī)、電子秤、GPS都是通過(guò)ZNE100T模塊進(jìn)行控制的,而Liod板提供的以太網(wǎng)口只有一個(gè),因此在任何時(shí)刻都只能與打印機(jī)、電子秤、GPS三者中的一個(gè)通信,而其他兩個(gè)設(shè)備的串口則處于關(guān)閉狀態(tài)。這是通過(guò)向ZNE100T模塊的3003端口發(fā)送不同的控制命令字完成的。

  對(duì)于稱(chēng)重,只存在由C8051F020單片機(jī)向Liod板的單向數(shù)據(jù)傳輸,稱(chēng)量的范圍為40 g~5 100 g,因此重量數(shù)據(jù)采用2個(gè)字節(jié)表示,單位為g。為了確保數(shù)據(jù)傳輸?shù)臏?zhǔn)確,除了2個(gè)字節(jié)的重量數(shù)據(jù)之外,還加入了幾個(gè)字節(jié)的冗余數(shù)據(jù)。電子秤的數(shù)據(jù)幀格式如下:

參考文獻(xiàn)

[1] 陳章龍,唐志強(qiáng),涂時(shí)亮. 嵌入式技術(shù)與系統(tǒng)——Intel XScale結(jié)構(gòu)與開(kāi)發(fā)[M]. 北京:北京航空航天大學(xué)出版社,2004.
[2] 毛德操,胡希明. 嵌入式系統(tǒng)——采用公開(kāi)源代碼和StrongARM/Xscale處理器[M]. 杭州:浙江大學(xué)出版社,2004.
[3] 候俊杰. 深入淺出MFC[M]. 第2版. 武漢:華中科技大學(xué)出版社,2004.
[4] 汪兵,李存斌,陳鵬. EVC高級(jí)編程及其應(yīng)用開(kāi)發(fā)[M]. 北京:中國(guó)水利水電出版社,2005.
[5] 田東風(fēng). Windows CE應(yīng)用程序設(shè)計(jì)[M]. 北京:機(jī)械工業(yè)出版社,2003.
[6] 童長(zhǎng)飛. C8051F系列單片機(jī)開(kāi)發(fā)與C語(yǔ)言編程[M]. 北京:北京航空航天大學(xué)出版社,2005.
[7] MapInfo公司. MapX Help Online.
[8] 同志工作室. Visual Basic 6.0 API函數(shù)開(kāi)發(fā)實(shí)例[M]. 北京:人民郵電出版社,2000.

陳云川、劉鋒(碩士研究生),主要研究方向?yàn)榍度胧綉?yīng)用。



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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