ARM在GPS導(dǎo)航系統(tǒng)中的應(yīng)用
圖2.軟件系統(tǒng)框圖
2.2.1 導(dǎo)航功能模塊設(shè)計
該方面的設(shè)計中主要包括以下4個模塊的設(shè)計:
(1)導(dǎo)航定位模塊實時地從通信端口讀取數(shù)據(jù)。然后進(jìn)行分析處理,得到可以進(jìn)行地圖匹配的經(jīng)、緯度數(shù)據(jù)并將其傳給地圖匹配模塊。
?。?)地圖匹配模塊根據(jù)導(dǎo)航定位模塊輸入的經(jīng)緯度在導(dǎo)航數(shù)據(jù)庫中進(jìn)行匹配。
?。?)路徑規(guī)劃模塊主要是根據(jù)用戶指定的出發(fā)地和目的地在導(dǎo)航數(shù)據(jù)庫中的道路網(wǎng)絡(luò)中規(guī)劃出一條最佳路徑。
?。?)導(dǎo)航引導(dǎo)模塊將地圖匹配的結(jié)果和規(guī)劃好的路徑結(jié)合導(dǎo)航地圖數(shù)據(jù)庫的數(shù)據(jù)以地圖的方式顯示出來。這樣就可以直觀、無誤地引導(dǎo)用戶行進(jìn)。
2.2.2 瀏覽功能模塊設(shè)計
該方面的設(shè)計中主要包括以下2個模塊的設(shè)計:
?。?)地圖瀏覽模塊主要是在瀏覽界面中實現(xiàn)對地圖的縮放、平移等基本瀏覽操作。
?。?)地圖查詢模塊主要是根據(jù)用戶的要求在導(dǎo)航地圖數(shù)據(jù)庫中進(jìn)行查詢操作并通過瀏覽界面顯示出來。
2.3 嵌入式軟件設(shè)計
該嵌入式系統(tǒng)采用uC/OSII操作系統(tǒng),由于MCU的處理功能有限,所以在具體的軟件實現(xiàn)過程中采用多線程技術(shù),如圖3所示。
圖3.線程圖
主控線程主要實現(xiàn)界面功能、導(dǎo)航功能中的地圖匹配和導(dǎo)航引導(dǎo)模塊、瀏覽功能中的地圖瀏覽模塊以及這些模塊間的消息派送、接收和處理,同時協(xié)調(diào)各個工作線程異步運行。
導(dǎo)航定位線程主要完成導(dǎo)航定位模塊中的接收當(dāng)前位置數(shù)據(jù)(經(jīng)、緯度)的功能。在導(dǎo)航過程中運行線程,線程處理函數(shù)把接收到的經(jīng)、緯度數(shù)據(jù)實時通過消息發(fā)到主線程,由主線程調(diào)用地圖匹配模塊作處理。
路徑規(guī)劃線程主要完成在道路網(wǎng)中求解最佳路徑的任務(wù)。在用戶要求提供最佳路徑時根據(jù)用戶的出發(fā)地和目的地求出一條最佳路徑。在最佳路徑求解算法中采用A*算法。
2.3.1 軟件的導(dǎo)航功能由主控線程控制實現(xiàn)
其基本實現(xiàn)流程如下(可見圖4)
圖4.導(dǎo)航功能流程圖
評論