AT91 SAM9261在GPS接收機(jī)中的應(yīng)用
關(guān)鍵詞 車(chē)栽系統(tǒng) WinCE GPS AT91SAM926l
隨著科學(xué)的發(fā)展,GPS已經(jīng)不是一個(gè)陌生的名詞了,GPS在海灣戰(zhàn)爭(zhēng)中大顯身手并給人以深刻的印象。GPS是由美國(guó)國(guó)防部(U.S.Department of Dcfense,DOD)開(kāi)發(fā)的一套基于衛(wèi)星的無(wú)線導(dǎo)航系統(tǒng)。GPS包括3個(gè)基本部分:太空部分、控制部分和用戶部分。GPS的工作概念是基于衛(wèi)星的距離修正。用戶通過(guò)測(cè)量到太空各可視衛(wèi)星的距離來(lái)計(jì)算它們的當(dāng)前位置,衛(wèi)星的左右相當(dāng)于精確的已知參考點(diǎn)??臻g衛(wèi)星連續(xù)發(fā)射包含導(dǎo)航電文的雙頻無(wú)線電信號(hào),用戶通過(guò)用戶設(shè)備(即GPS接收機(jī))接收的衛(wèi)星信號(hào),測(cè)定用戶至衛(wèi)星距離或多普勒頻移等觀測(cè)量;根據(jù)導(dǎo)航電文,計(jì)算所觀測(cè)時(shí)刻的衛(wèi)星位置和速度,從而0計(jì)算出用戶的位置和速度。本文以用戶部分為重點(diǎn),說(shuō)明控制芯片的選擇,硬件電路的設(shè)汁及軟件模塊的設(shè)計(jì)。
1 AT91SAM9261控制芯片簡(jiǎn)介與比較
AT91SAM926l是Atmel公司新推出的ARM9 32位處理器。將它與常用的32位處理器S3C2410作一個(gè)簡(jiǎn)單比較,以說(shuō)明它的優(yōu)越性能。AT91SAM926l采用了ARM926EJ-S內(nèi)核并外擴(kuò)了DSP指令設(shè)備和JAZELLEJava加速器。在工作頻率為180 MHz的情況下,其運(yùn)算速度為200MIPS。S3C24lO采用的是ARM920T內(nèi)核,雖然它的主頻最高可達(dá)200 MHz,但在處理諸如乘加指令時(shí)沒(méi)有AT91SAM926l快,尤其在處理流媒體數(shù)據(jù)時(shí)更為明顯。
AT9lSAM9261具有32 KB的ROM和160 KB的SRAM,還有新增的2個(gè)16 KB的數(shù)據(jù)緩存和指令緩存,32個(gè)I/O口,支持LCD和USB設(shè)備以及I2C總線接口和多媒體通信接口,所以開(kāi)始的引導(dǎo)程序可以選擇放在內(nèi)部ROM,從而提高運(yùn)行速度。160 KB的內(nèi)部SRAM在播放流媒體數(shù)據(jù)時(shí)起到了很好的幀緩沖作用。S3C2410采用的是NAND F1ash肩動(dòng)引導(dǎo),內(nèi)部無(wú)SRAM。另外,AT91SAM9261發(fā)揮了ARM926EJ-S緊密式耦合內(nèi)存架構(gòu)的優(yōu)勢(shì),讓傳統(tǒng)(非高速緩存)SRAM直接連接到ARM處理器上而不會(huì)出現(xiàn)滯后情況。這樣強(qiáng)大的處理能力使其應(yīng)用于GPS系統(tǒng)中游刃有余。
AT91SAM926l結(jié)構(gòu)框圖如圖l所示,內(nèi)部支持LCD控制器、串行通信口(包括USB從機(jī)模塊、UART、SPI以及I2C)和多媒體通信口;另外,還提供一個(gè)用于調(diào)試的JTAG接口。功耗方面,AT9lSAM926l待機(jī)電流儀為2.5μA;S3C2410為8~50μA,工作頻率為500Hz時(shí),電流消耗為400μA。在工業(yè)級(jí)溫度范圍內(nèi),AT91SAM926l處理器性能達(dá)200 MIPS時(shí),即使所有外設(shè)開(kāi)啟,其工作電流也僅僅是65mA,而此時(shí)S3C2410的電流約為200mA。
現(xiàn)在,雖然市面上ARM處理器品種眾多,如主流的PXA2XX系列,它們的處理速度比AT91SAM9261高;但是AT91SAM9261價(jià)格便宜,功耗低,又能滿足本身設(shè)計(jì)需要,所以選擇AT91SAM9261比較合適。
2 GPS接收機(jī)硬件設(shè)計(jì)
2.1 接收機(jī)系統(tǒng)原理和結(jié)構(gòu)
如圖2所示,用戶設(shè)備部分由以下幾個(gè)模塊組成:核心硬件電路、GPS模塊、液晶屏和觸摸屏、PC主機(jī)和音頻設(shè)備等。
圖3所示核心硬件電路以AT91SAM9261應(yīng)用處理器為核心,使用2片16位的SDRAM配置成32位寬度的高性能存儲(chǔ)器,這樣在讀取數(shù)據(jù)時(shí)就可以以4字節(jié)為1個(gè)單位,從而加快數(shù)據(jù)的讀取速度。選用16M×16位閃存存儲(chǔ)器,用于存儲(chǔ)WinCE操作系統(tǒng)和電子地圖信息。引導(dǎo)程序的啟動(dòng)可以選擇從內(nèi)部ROM或者外部ROM,采用外部引導(dǎo)程序啟動(dòng)時(shí),可以外擴(kuò)DataFlash通過(guò)串口或以太網(wǎng)下載引導(dǎo)程序啟動(dòng)。實(shí)際上,DataFlash是一個(gè)EEPROM結(jié)構(gòu)的存儲(chǔ)器,將NPCS0片選信號(hào)連接到DataFlash的CS中,使系統(tǒng)一開(kāi)始時(shí)尋址到的0x00地址正好是DataFlash的0x00地址,從而啟動(dòng)Bootloader。
用戶設(shè)備的顯示部分是一個(gè)帶有3.5寸觸摸屏的LCD。LCD電路包括LCD時(shí)序電路、LCD電源、背光電源電路。電源輸出(這里以滿足SHAR LQ13351217DHOl為例),需要+15V、+5V和-10V的直流電源電壓以及由PWM控制的+2lV~+25V背光電源。在調(diào)試這幾個(gè)電源電路時(shí)要注意以下幾點(diǎn):①由于輸出的電壓比較高,應(yīng)避免輸出引腳和其他元件短接以免發(fā)生短路。充電泵整流器的帶負(fù)載能力有限,用于濾波的電容容抗不能太大。建議用陶瓷電容。③LCD部分的電流輸出不是很大(4mA),PCB的布局可以盡量緊湊;但LED電源PCB要考慮散熱性能(因?yàn)檩敵龅碾娏鞔蠹s為20 mA),并且盡量遠(yuǎn)離控制信號(hào)線。
2.2 GPS模塊介紹
GPS模塊是Atmel公司提供的。GPS模塊采用的是串行輸出,只要2個(gè)串行信號(hào)線就可以完成較精確的差分衛(wèi)星定位。GPS模塊的支持電壓為2.7~3.3 V,功率小于100 mW/H。GPS模塊由變頻器模塊(ATR0600)、信號(hào)相關(guān)模塊(ATR06lO)、微處理器模塊(ATR0620)組成。圖4為GPS模塊結(jié)構(gòu)框圖。
2.3 GPS模塊的PCB設(shè)計(jì)
GPS接收機(jī)前端為RF模塊。由于含有射頻信號(hào),因此其PCB設(shè)計(jì)相對(duì)中低頻信號(hào)的PCB板來(lái)說(shuō)要困難得多??偨Y(jié)筆者設(shè)計(jì)時(shí)遇到的困難及需要注意的事項(xiàng),可以得到以下幾點(diǎn)啟示:
①射頻濾波器只有在位于天線與射頻濾波器之間的微波傳送帶的特征阻抗為50Ω的情況下才能正常工作。該傳送帶特征阻抗是PCB介質(zhì)層問(wèn)厚度為h、介電常數(shù)為εr、導(dǎo)線厚度為t,以及導(dǎo)線寬度為w的函數(shù),所以在PCB板上放置該段導(dǎo)線時(shí)應(yīng)根據(jù)相應(yīng)的函數(shù)精確計(jì)算出微波傳送帶的寬度。該函數(shù)關(guān)系式為:
②布線時(shí)應(yīng)將導(dǎo)線的電阻和電容效應(yīng)都考慮在內(nèi),走線盡量短而直,不能走直角;元件布局時(shí)要防止產(chǎn)生寄生振蕩現(xiàn)象。特別是對(duì)于LC濾波電路,PCB板布線與電容和電感擺放所產(chǎn)生的分布參數(shù)都會(huì)直接影響這個(gè)濾波器,因而在布線過(guò)程中應(yīng)注意:濾波器的元器件和引線與射頻信號(hào)線之間要保持良好的間隔,以防止互相之間的串?dāng)_;雙平衡信號(hào)的路徑要保持平行,并且長(zhǎng)度相仿,這樣可以加強(qiáng)二者之間的耦合而減弱與其他線之間的耦合;第l級(jí)濾波器和射頻信號(hào)輸入電路之間留有足夠的空間,以實(shí)現(xiàn)相互隔離,保證系統(tǒng)的穩(wěn)定性。
③模擬電源與數(shù)字電源隔離;數(shù)字地與模擬地分開(kāi),在兩者搭接處加入磁珠,防止互相干擾;連接電源和地的導(dǎo)線應(yīng)盡量粗一些。
④應(yīng)使用一個(gè)金屬罩將射頻部分電路屏蔽起來(lái),防止與后面的數(shù)字電路發(fā)生互相干擾。
3 軟件模塊設(shè)計(jì)與開(kāi)發(fā)
如圖5所示,軟件以電子地圖分析模塊及數(shù)據(jù)庫(kù)為中心,包括GPS模塊、通信模塊以及顯示和聲音輸出模塊。數(shù)據(jù)庫(kù)中記錄了各種地理數(shù)據(jù)。使用者在行動(dòng)過(guò)程中,由GPS模塊接收,分析衛(wèi)星信號(hào),計(jì)算出當(dāng)前的經(jīng)緯度、速度和方向等數(shù)值,就可以得到使用者在電子地圖上的確切位置。定時(shí)記錄位置移動(dòng)情況就可以在LCD上顯示直觀的路線圖??梢栽诖嘶A(chǔ)上開(kāi)發(fā)車(chē)輛導(dǎo)航系統(tǒng)。
開(kāi)發(fā)過(guò)程中用到的工具主要有Platform Builder和EVC。Platforrrt Builder生成一個(gè)面向目標(biāo)板的特定的WinCE操作系統(tǒng)。在生成Platform時(shí),要選用正確的BSP??梢酝ㄟ^(guò)修改AT9lSAM9261DK開(kāi)發(fā)板自帶的BSP包來(lái)滿足設(shè)計(jì)要求,使得BSP包的開(kāi)發(fā)變得簡(jiǎn)單而快速。BSP主要包括Bootloader、OAL和驅(qū)動(dòng)程序。
由于篇幅有限,在這里只作簡(jiǎn)單介紹:
①Bootloader是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段程序,用于初始化硬件設(shè)備,建立系統(tǒng)內(nèi)存空間映射;而最重要的就是將操作系統(tǒng)內(nèi)核映像加載列RAM中,并且把系統(tǒng)控制權(quán)交給它。在接收機(jī)手持設(shè)備系統(tǒng)中,這里可以不改。
②OAL(即OEM適配層)是邏輯上駐留在WinCE內(nèi)核與目標(biāo)設(shè)備之間的代碼,用于實(shí)現(xiàn)WinCE內(nèi)核與目標(biāo)設(shè)備之間的通信。這里,除了基本的初始化功能外,還另外添加了電源管理方面的函數(shù)OEMIdle和OEMPowerOff,使其基本滿足手持設(shè)備在功耗方面的要求。
③驅(qū)動(dòng)程序是BSP開(kāi)發(fā)的重要部分,是用戶模式的動(dòng)態(tài)鏈接庫(kù)(DII),是一個(gè)抽象物理設(shè)備或虛擬設(shè)備的功能軟件。一般可分為內(nèi)建驅(qū)動(dòng)程序(如鍵盤(pán)驅(qū)動(dòng)程序)和流驅(qū)動(dòng)程序(如串口驅(qū)動(dòng)、DataFlash驅(qū)動(dòng)、以太網(wǎng)驅(qū)動(dòng)等)。它們都是由設(shè)備管理器來(lái)加載的。
EVC開(kāi)發(fā)GPS系統(tǒng)的軟件部分類(lèi)似于VC中的項(xiàng)目開(kāi)發(fā)。程序編好以后可以通過(guò)USB口下載到目標(biāo)板上進(jìn)行調(diào)試,并開(kāi)發(fā)新的功能。
結(jié)語(yǔ)
GPS是當(dāng)前應(yīng)用最廣泛的導(dǎo)航定位系統(tǒng)。在歐美等發(fā)達(dá)地區(qū),利用GPS車(chē)載導(dǎo)航系統(tǒng)來(lái)改進(jìn)交通有廣闊的應(yīng)用前景。AT915AM9261嵌入式處理器有較高的性能,在類(lèi)似方面的應(yīng)用中大有可為。