操縱系統(tǒng)定制
操縱系統(tǒng)定制主要根據(jù)系統(tǒng)需要建立操縱系統(tǒng)平臺(tái)并對(duì)其進(jìn)行相應(yīng)的配置。通過(guò)平臺(tái)裁剪工具Platform Builder(簡(jiǎn)稱(chēng)PB)完成。
設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)
WinCE的驅(qū)動(dòng)程序分為:本機(jī)設(shè)備驅(qū)動(dòng)程序和流接口驅(qū)動(dòng)程序[5]。本機(jī)設(shè)備是指集成到目標(biāo)平臺(tái)的設(shè)備,其驅(qū)動(dòng)程序由原設(shè)備制造商(OEM)提供。流接口驅(qū)動(dòng)程序是指連接到WinCE平臺(tái)的外部設(shè)備驅(qū)動(dòng)程序,由用戶自行開(kāi)發(fā)。流接口驅(qū)動(dòng)程序把外部設(shè)備看作文件系統(tǒng)的特殊文件,通過(guò)文件讀取函數(shù)間接地訪問(wèn)外部設(shè)備。
嵌進(jìn)式圖像采集卡驅(qū)動(dòng)程序分為三部分:
?。?) 內(nèi)核部分
實(shí)現(xiàn)中斷服務(wù)例程(ISR)。內(nèi)核函數(shù)實(shí)現(xiàn)了物理中斷號(hào)與邏輯中斷標(biāo)識(shí)之間的映射關(guān)系,并調(diào)用中斷服務(wù)例程,中斷服務(wù)例程在中斷發(fā)生后向內(nèi)核返回中斷邏輯標(biāo)識(shí)。
?。?) 驅(qū)動(dòng)程序部分
實(shí)現(xiàn)WinCE 流接口驅(qū)動(dòng)模型所需要的文件操縱接口函數(shù),包括:采集卡初始化、數(shù)據(jù)讀取和采集卡句柄封閉。
?。?) 應(yīng)用程序部分
通過(guò)調(diào)用設(shè)備注冊(cè)函數(shù)將嵌進(jìn)式圖像采集卡中斷驅(qū)動(dòng)程序加載到系統(tǒng)內(nèi)存,并根據(jù)采集卡初始化參數(shù)設(shè)置修改WinCE系統(tǒng)注冊(cè)表文件。
應(yīng)用程序設(shè)計(jì)
鍵盤(pán)掃描模塊及串口通訊模塊單片機(jī)程序在單片機(jī)集成開(kāi)發(fā)環(huán)境uVision2下用C語(yǔ)言開(kāi)發(fā)外,其余模塊均在EVC(Windows CE Embedded VisualC++)下開(kāi)發(fā)。
(1) 鍵盤(pán)掃描模塊
鍵盤(pán)掃描模塊主要實(shí)現(xiàn)單片機(jī)對(duì)薄膜鍵盤(pán)的按鍵識(shí)別及鍵值顯示功能。薄膜鍵盤(pán)屬于行列式非編碼鍵盤(pán),按鍵的識(shí)別通常采用逐行掃描查詢法實(shí)現(xiàn)。程序采用軟件延時(shí)的方法處理抖動(dòng)。鍵值顯示則通過(guò)單片機(jī)對(duì)液晶屏串行數(shù)據(jù)口編程實(shí)現(xiàn)。
?。?) 串口通訊模塊
串口通訊模塊主要實(shí)現(xiàn)單板機(jī)與單片機(jī)之間的串行數(shù)據(jù)通訊功能。該模塊包括單板機(jī)串口通訊程序、單片機(jī)串口通訊程序、串口通訊協(xié)議三部分。
① 單板機(jī)串口通訊程序。由于WinCE不支持串口通訊控件的使用,所以EVC下的單板機(jī)串口通訊程序開(kāi)發(fā)只能通過(guò)調(diào)用文件操縱函數(shù)實(shí)現(xiàn)。
② 單片機(jī)串口通訊程序。單片機(jī)串口通訊程序設(shè)計(jì)必須根據(jù)通訊雙方約定設(shè)置串口工作方式及串口通訊波特率。
③ 串口通訊協(xié)議。串口數(shù)據(jù)包括:雙向通訊測(cè)試數(shù)據(jù)、下行指令數(shù)據(jù)、上行傳感數(shù)據(jù),而傳感數(shù)據(jù)又劃分為:速度、加速度、位置、傾角等狀態(tài)信息。為了在串口通訊中正確分離和識(shí)別各種數(shù)據(jù),通過(guò)對(duì)各種數(shù)據(jù)添加相應(yīng)標(biāo)志字節(jié)的方法編制串口通訊協(xié)議。
?。?) 視頻處理模塊
視頻處理模塊通過(guò)在EVC 下調(diào)用嵌進(jìn)式圖像采集卡驅(qū)動(dòng)函數(shù)實(shí)現(xiàn)視頻顯示與視頻控制功能。視頻顯示作為監(jiān)控系統(tǒng)子窗口嵌進(jìn)到軟件系統(tǒng)用戶界面。視頻顯示主要實(shí)現(xiàn)便攜式移動(dòng)機(jī)器人平臺(tái)所處環(huán)境信息的實(shí)時(shí)視頻顯示與更新。視頻控制主要實(shí)現(xiàn)對(duì)視頻采集過(guò)程的控制,其中包括:視頻采集窗口尺寸設(shè)置、視頻源制式設(shè)置、視頻數(shù)據(jù)格式選擇及視頻數(shù)據(jù)存儲(chǔ)等。
WinCE不支持任何視頻加速驅(qū)動(dòng)程序和底層函數(shù),所以無(wú)法直接調(diào)用DirectX 函數(shù),則WinCE設(shè)備上動(dòng)態(tài)視頻的顯示與回放,必須開(kāi)發(fā)新的設(shè)備無(wú)關(guān)位圖(DIB)快速顯示函數(shù)。采用從DGdiObject類(lèi)派生的方法,使用CreateDIBSection函數(shù)創(chuàng)建DIB位圖,可以直接使用圖形設(shè)備接口(GDI)函數(shù)來(lái)操縱DIB 位圖,以有效進(jìn)步位圖顯示速度。
?。?) 數(shù)字輿圖模塊
數(shù)字輿圖是地理信息系統(tǒng)(GIS)中的概念。數(shù)字輿圖模塊實(shí)現(xiàn)便攜式移動(dòng)機(jī)器人平臺(tái)所處地理環(huán)境信息的數(shù)字化顯示,并在此基礎(chǔ)上實(shí)現(xiàn)對(duì)數(shù)字輿圖放大、縮小、周游、查找等交互操縱功能。
數(shù)字輿圖模塊通過(guò)在EVC下嵌進(jìn)MapXMobile組件實(shí)現(xiàn),并終極作為監(jiān)控系統(tǒng)子窗口集成到軟件系統(tǒng)用戶界面。MapX Mobile是基于對(duì)象鏈接嵌進(jìn)(OLE)技術(shù)的ActiveX控件,在EVC下設(shè)置該控件的屬性、方法及響應(yīng)事件即可實(shí)現(xiàn)輿圖顯示與操縱功能。
應(yīng)用程序通過(guò)MapX Mobile組件實(shí)現(xiàn)輿圖顯示與操縱,同時(shí)治理輿圖數(shù)據(jù)文件。并可以單獨(dú)在嵌進(jìn)式設(shè)備上運(yùn)行,也能和WinCE操縱系統(tǒng)兼容。MapX Mobile答應(yīng)用戶把輿圖數(shù)據(jù)帶到自身所在的任何位置,實(shí)現(xiàn)了移動(dòng)的GIS組件。
?。?) 路徑規(guī)劃模塊
路徑規(guī)劃模塊實(shí)現(xiàn)基于數(shù)字輿圖的點(diǎn)到點(diǎn)全局路徑規(guī)劃功能。該模塊是在數(shù)字輿圖模塊查找交互操縱功能的基礎(chǔ)上運(yùn)用迪杰斯特拉(Dijkstra)算法實(shí)現(xiàn)最優(yōu)路徑搜索。操縱者在數(shù)字輿圖上選取起始點(diǎn)和目標(biāo)點(diǎn),程序通過(guò)Dijkstra算法搜索得出兩點(diǎn)之間可以通行的最優(yōu)路徑,并在數(shù)字輿圖上標(biāo)識(shí)該最優(yōu)路徑。
Dijkstra 算法是解決最短路徑題目的理論基礎(chǔ)。該算法適合于計(jì)算帶權(quán)有向圖中兩節(jié)點(diǎn)之間的最短路徑。將數(shù)字輿圖上的道路和地點(diǎn)抽象為有向圖的邊與節(jié)點(diǎn),道路的長(zhǎng)度作為有向圖邊的權(quán)值,從而實(shí)現(xiàn)數(shù)字輿圖到帶權(quán)有向圖的抽象(見(jiàn)圖4)?!?/p>

電子發(fā)燒友App


















評(píng)論