国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于μC/O S的校園G P S導(dǎo)航系統(tǒng)的設(shè)計實現(xiàn)

2010-08-15 00:44:26周博
電腦與電信 2010年5期
關(guān)鍵詞:代碼嵌入式處理器

周博

(天津工業(yè)大學信息與通信工程學院,天津300160)

1.引言

早期高校校園面積相對較小,學校的教學區(qū)、生活區(qū)、學校的各個部門都相對集中,從校園一個區(qū)域到另一個區(qū)域只需要很短的時間,部門的搬遷也可能在同一棟或相鄰的兩棟之間,即使導(dǎo)航出錯,帶來的負面影響也相對較小。校園導(dǎo)航基本上采用平面示意圖即可解決。

隨著高校的發(fā)展,校園面積也由原來的上百畝擴大到上千畝,教學區(qū)、辦公區(qū)、生活區(qū)、活動區(qū)等在地理位置上相對變得疏遠,那么跨區(qū)域活動在區(qū)間往復(fù)的時間成本越來越高,中間稍有耽誤,將不能按照預(yù)定時間到達目的地,給我們的生活學習帶來不便。早期的校園平面示意圖導(dǎo)航表現(xiàn)出種種弊端,逐漸不能滿足新形勢下校園導(dǎo)航的要求。新的導(dǎo)航系統(tǒng)的設(shè)計勢在必行。

2.系統(tǒng)概述

2.1 S3C2410處理器

s3C2410X微處理器是Samsung公司推出的16/32位RISC處理器(RAM920T內(nèi)核),適用于手持設(shè)備、POS機、數(shù)字多媒體播放設(shè)備等等,具有價格低、低功耗、高性能等特點。S3C2410X提供了豐富的內(nèi)部設(shè)備,采用ARM920T內(nèi)核,0.18um工藝的CMOS標準宏單元和存儲器單元。它的低功耗、精簡和出色的全靜態(tài)設(shè)計特別適用于對成本和功耗敏感的應(yīng)用。同樣它還采用了AMBA新型總線結(jié)構(gòu)。S3C2410X提供了一系列完整的系統(tǒng)外圍設(shè)備,消除了為系統(tǒng)配置額外器件的需要,大大減少了整個系統(tǒng)的成本。S3C2410X主要特征如下[4]:

(1)203Mhz的ARM920T內(nèi)核,支持JTAG仿真調(diào)試。

(2)16KB的1-Cache;

(3)具有MMU,支持WinCE、EPOC32、Linux等操作系統(tǒng);

(4)外部存儲器控制器(SDRAM控制和片選邏輯),共分8個Bank,每個Bank可以訪問128MB空間。

(5)片內(nèi)4KB SDRAM,可用作NAND Flash系統(tǒng)引導(dǎo)的緩沖區(qū);

(6)LCD控制器(最大支持4K色STN和256K色TFT),1通道LCD專用DMA;

(7)4通道DMA,有外部請求引腳;

(8)3個UART(IrDA1.0,16字節(jié)RxFIFO);

(9)2個SPI總線接口;

(10)1個多主IIC總線接口;

(11)1個IIS總線接口;

(12)兼容SD主接口協(xié)議1.0版和MMC卡協(xié)議2.11兼容版;

(13)NAND Flash/SM卡接口,支持NANDFlash系統(tǒng)引導(dǎo);

(14)2個USB主機接口,I個USB設(shè)備接口(V1.1);

(15)4個PWM定時器和1個內(nèi)部定時器;

(16)看門狗定時器;

(17)117個通用I/O口;

(18)24個外部中斷;

(19)8通道10位ADC和觸摸屏接口;

(20)具有日歷和時鐘功能的RTC;

(21)1.8V內(nèi)核供電,3.3V存儲器供電,3.3V外部I/O供電;

(22)功耗控制模式:普通,慢速,空閑和掉電模式;

(23)具有片內(nèi)PLL時鐘發(fā)生器。

2.2 μC/OS-II操作系統(tǒng)

μC/OS-II是一個完整的、可移植、可固化、可剪裁的、占先式實時多任務(wù)內(nèi)核。μC/OS-II是用ANSI C語言寫的,包含一部分匯編語言,使之可以供不同架構(gòu)的微處理器使用。μC/OS-II可以管理64個任務(wù),具有信號量、互斥信號量、事件標志組、消息郵件、消息隊列、任務(wù)管理、時間管理和內(nèi)存塊管理等系統(tǒng)功能[1,2]。

μC/OS-II包括以下三個部分:

(1)μC/OS-II核心代碼:包括10個C程序文件和1個頭文件,主要實現(xiàn)了系統(tǒng)調(diào)度、任務(wù)管理、內(nèi)存管理、信號量、消息郵箱和消息隊列等系統(tǒng)功能。此部分的代碼與處理器無關(guān)。

(2)μC/OS-II配置代碼:包括2個頭文件,用于裁剪和配置μC/OS-II。此部分的代碼與用戶實際應(yīng)用相關(guān)。

(3)μC/OS-II移植代碼:包括1個匯編文件、1個C程序文件和1個頭文件,這是移植μC/OS-II所需要的代碼。此部分的代碼與處理器相關(guān)。(說明:移植代碼的文件名不是固定的,但為了保持μC/OS-II系統(tǒng)的一致性,文件名一般也不要改變。即:OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C)。

2.3 全球定位系統(tǒng)(GPS)的簡介

GPS(全球定位系統(tǒng))具有全球、全天候工作,定位精度高、功能多、應(yīng)用廣的特點,通過GPS接收機可以實現(xiàn)精確的自主定位,為實現(xiàn)精準的定位和導(dǎo)航奠定了基礎(chǔ)。GPS系統(tǒng)包括三大部分:空間部分—GPS衛(wèi)星星座;地面控制部分—地面監(jiān)控系統(tǒng);用戶設(shè)備部分—GPS信號接收機。本文主要涉及GPS信號接收機部分。它的硬件和機內(nèi)軟件以及GPS數(shù)據(jù)的后處理軟件包,構(gòu)成完整的GPS用戶設(shè)備。主要任務(wù)是:能夠捕獲到按一定衛(wèi)星高度截止角所選擇的待測衛(wèi)星的信號,并跟蹤這些衛(wèi)星的運行,對所接收到的GPS信號進行變換、放大和處理,以便測量出GPS信號從衛(wèi)星到接收機天線的傳播時間,解譯出GPS衛(wèi)星所發(fā)送的導(dǎo)航電文,實時地計算出測站的三維位置、三維速度和時間。

3.硬件系統(tǒng)的設(shè)計理念

本嵌入式導(dǎo)航系統(tǒng)的硬件核心是三星公司的ARM9系列中的16/32位RISC處理器S3C2410芯片,該芯片強大的實時處理能力和豐富的外圍接口非常適合嵌入式系統(tǒng)的開發(fā),本系統(tǒng)正是基于該芯片的這些特點而設(shè)計的。

該系統(tǒng)以S3C2410微處理器為核心,與一片64MB的SDRAM、一片64MB的NAND Flash和一片2MB NOR FLASH組成。外部添加了用于接收GPS信號的GPS模塊,用于顯示的液晶面板以及鍵盤輸入模塊。

4.軟件系統(tǒng)的設(shè)計

該嵌入式系統(tǒng)采用uC/OSII操作系統(tǒng),由于MCU的處理功能有限,所以在具體的軟件實現(xiàn)過程中采用多線程技術(shù)。主控線程主要實現(xiàn)界面功能、導(dǎo)航功能中的地圖匹配和導(dǎo)航引導(dǎo)模塊、瀏覽功能中的地圖瀏覽模塊以及這些模塊間的消息派送、接收和處理,同時協(xié)調(diào)各個工作線程異步運行。

4.1 移植μC/OS-II操作系統(tǒng)S3C2410處理器

移植μC/OS-II之前需要注意,目標處理器必須滿足以下幾點要求:

(1)處理器的C編譯器能產(chǎn)生可重入型代碼;

(2)處理器支持中斷,并且能產(chǎn)生定時中斷;

(3)用C語言就可以開/關(guān)中斷;

(4)處理器能夠支持一定數(shù)量的數(shù)據(jù)存儲硬件堆棧(可能是幾千字節(jié));

(5)處理器有將堆棧指針以及其它CPU寄存器的內(nèi)容讀出,并保存到堆棧或內(nèi)存中去的指令。

S3C2410A微控制器可以滿足第2、4和5點要求,使用ADS 1.2的C編譯器可以滿足第1、3點要求。使用ARM公司提供的ADS1.2集成開發(fā)工具新建一個工程,將μC/OS-Ⅱ2.52V的源代碼拷貝到工程文件下相同目錄中,并添加到工程中,按照移植實施中的步驟修改或添加代碼在文件OS_CPU.H,OS_CPU_C.C,OS_CPU_A.S后,通過JTAG口下載到目標平臺中運行即可。

4.2 導(dǎo)航軟件的設(shè)計理念

導(dǎo)航軟件是以導(dǎo)航數(shù)據(jù)庫為數(shù)據(jù)基礎(chǔ)的。主要包括導(dǎo)航功能模塊和人機交互功能。其導(dǎo)航功能是在動態(tài)行進過程中進行導(dǎo)航定位、地圖匹配、路徑規(guī)劃和路徑引導(dǎo)等。人機交互功能主要是在靜態(tài)過程中對導(dǎo)航的地理信息提供瀏覽查詢服務(wù)。

導(dǎo)航功能模塊主要包括以下4個模塊:(1)導(dǎo)航定位模塊;(2)地圖匹配模塊;(3)路徑規(guī)劃模塊;(4)導(dǎo)航引導(dǎo)模塊。

人機交互功能模塊設(shè)計主要包括以下2個模塊:(1)地圖瀏覽模塊;(2)地圖查詢模塊。

導(dǎo)航軟件設(shè)計實現(xiàn)流程如下:(1)運行導(dǎo)航定位線程從輸入口讀取GPS天線接收到的當前位置的經(jīng)緯度坐標值;(2)將經(jīng)緯度坐標轉(zhuǎn)換到屏幕的像素坐標;(3)根據(jù)當前位置結(jié)合導(dǎo)航地圖進行匹配處理,把當前位置信息匹配到地圖上;(4)顯示并實時刷新導(dǎo)航地圖和當前位置;(5)是否求解最佳路徑;(6)在導(dǎo)航數(shù)據(jù)庫中選擇起始和終止位置,運行路徑規(guī)劃線程在道路網(wǎng)數(shù)據(jù)中解算出最佳路徑并顯示到地圖上。

4.3 GPS數(shù)據(jù)提取、顯示、查詢

GPS板只要處于工作狀態(tài)就會源源不斷地把接收并計算出的GPS導(dǎo)航定位信息通過串口傳送到嵌入式系統(tǒng)中。從串口接收的數(shù)據(jù)幀(長串ASCII碼字節(jié)流)通過程序?qū)⒏鱾€字段的信息從接收到的字節(jié)流中提取出來,將其轉(zhuǎn)化成有實際意義的、可供高層決策使用的定位信息數(shù)據(jù)。

對GPS信息進行提取必須首先明確其幀結(jié)構(gòu),數(shù)據(jù)幀主要由幀頭、幀尾和幀內(nèi)數(shù)據(jù)組成。對于不同的數(shù)據(jù)幀,其幀頭是不同的,主要有“$GPGGA”、“$GPGSA”、“$GPGSV”以及“$GPRMC"等。這些幀頭標識了后續(xù)幀內(nèi)數(shù)據(jù)的組成和結(jié)構(gòu)特點。各幀均以回車符<CR〉和換行符<LF〉作為幀尾,標識一幀的結(jié)束。

對數(shù)據(jù)幀處理,是先對幀頭進行判斷,然后只對感興趣的幀進行數(shù)據(jù)的提取處理。由于幀內(nèi)各數(shù)據(jù)段被逗號分割,因此在處理接收數(shù)據(jù)時一般是首先通過搜尋ASCII碼“$”來判斷是否是幀頭,接著對幀頭的類別進行識別,然后再根據(jù)識別出來的幀類型以及逗號‘,’個數(shù)來確定當前正在讀取的是哪個定位導(dǎo)航參數(shù),并作出相應(yīng)的提取和存儲。

最后,通過GPS和人工輸入接收到的數(shù)據(jù),經(jīng)過MCU的處理,在地圖上用醒目的顏色顯示出來。

5.總結(jié)

經(jīng)過實驗,系統(tǒng)能夠穩(wěn)定可靠地運行,進一步驗證了以ARM9處理器+μC/OS-II操作系統(tǒng)+GPS接收機模式開發(fā)的校園導(dǎo)航系統(tǒng)具有開發(fā)簡單、性能可靠的特點,有著良好的應(yīng)用前景。

[1]杜春雷.ARM體系結(jié)構(gòu)與編程[M].北京:清華大學出版社,2003.

[2]任哲.嵌入式實時操作系統(tǒng)[M].北京:北京航空航天大學出版社,2005.

[3]吳迪.嵌入式系統(tǒng)原理、設(shè)計與應(yīng)用[M].北京:機械工業(yè)出版社,2004.

[4]周立功.嵌入式系統(tǒng)基礎(chǔ)教程[M].廣州:北京航空航天大學出版社,2006.

[5]Jean J.Labrosse.嵌入式實時操作系統(tǒng)μC/OS-Ⅱ[M].北京:北京航空航天大學出版社,2003.

猜你喜歡
代碼嵌入式處理器
創(chuàng)世代碼
動漫星空(2018年11期)2018-10-26 02:24:02
創(chuàng)世代碼
動漫星空(2018年2期)2018-10-26 02:11:00
創(chuàng)世代碼
動漫星空(2018年9期)2018-10-26 01:16:48
創(chuàng)世代碼
動漫星空(2018年5期)2018-10-26 01:15:02
搭建基于Qt的嵌入式開發(fā)平臺
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
Imagination的ClearCallTM VoIP應(yīng)用現(xiàn)可支持Cavium的OCTEON? Ⅲ多核處理器
ADI推出新一代SigmaDSP處理器
汽車零部件(2014年1期)2014-09-21 11:41:11
呼嚕處理器
小青蛙報(2014年1期)2014-03-21 21:29:39
Altera加入嵌入式視覺聯(lián)盟
红原县| 宁明县| 黔西县| 灌阳县| 利津县| 陵川县| 新泰市| 西和县| 綦江县| 漾濞| 连江县| 泸州市| 抚顺县| 乐业县| 文山县| 静海县| 镇赉县| 闽清县| 杨浦区| 竹山县| 清镇市| 获嘉县| 诸城市| 康保县| 玉林市| 界首市| 海城市| 毕节市| 灌云县| 焉耆| 白银市| 三原县| 定南县| 申扎县| 诸暨市| 营山县| 哈密市| 杨浦区| 浦东新区| 九江市| 尉犁县|