AT91SAM9261在GPS接收機中的應用
AT91SAM9261 是Atmel公司新推出的ARM9 32位處理器。將它與常用的32位處理器S3C2410作一個簡單比較,以說明它的優越性能。AT91SAM926l采用了ARM926EJ-S內核并外擴了DSP指令設備和JAzELLEJava加速器。在工作頻率為180 MHz的情況下,其運算速度為200 MIPS。$3C2410采用的是ARM920T內核,雖然它的主頻最高可達200 MHz,但在處理諸如乘加指令時沒有AT91SAM9261快,尤其在處理流媒體數據時更為明顯。
??? AT91SAM9261具有32 KB的R()M和160 KB的SRAM,還有新增的2個16 KB的數據緩存和指令緩存,32個I/O口,支持LCD和USB設備以及I2C總線接口和多媒體通信接口,所以開始的引導程序可以選擇放在內部ROM,從而提高運行速度。160 KB的內部SRAM在播放流媒體數據時起到了很好的幀緩沖作用。S3C2410采用的是NAND Flash啟動引導,內部無SRAM。另外,AT91SAM9261 發揮了ARM926EJ-S緊密式耦合內存架構的優勢,讓傳統(非高速緩存)SRAM直接連接到ARM處理器上而不會出現滯后情況。這樣強大的處理能力使其應用于GPS系統中游刃有余。
????
??? AT91SAM9261結構框圖如圖1所示,內部支持LCD控制器、串行通信口(包括USB從機模塊、UART、SPI以及I2C)和多媒體通信口;另外,還提供一個用于調試的JTAG接口。功耗方面,AT 91SAM9261待機電流僅為2.5μA;S3C2410為8~50 μA,工作頻率為500 Hz時,電流消耗為400弘A。在工業級溫度范圍內,AT91SAM9261處理器性能達200 MIPS時,即使所有外設開啟,其工作電流也僅僅是65 mA,而此時$3C2410的電流約為200 mA。
??? 現在,雖然市面上ARM處理器品種眾多,如主流的PXA2XX系列,它們的處理速度比AT91SAM9261高;但是AT91SAM9261價格便宜,功耗低,又能滿足本身設計需要,所以選擇AT91SAM9261比較合適。
??? 2 GPS接收機硬件設計
??? 2.1 接收機系統原理和結構
????
??? 如圖2所示,用戶設備部分由以下幾個模塊組成:核心硬件電路、GPS模塊、液晶 屏和觸摸屏、PC主機和音頻設備等。
???
??? 圖3所示核心硬件電路以AT91SAM926l應用處理器為核心,使用2片16位的SDRAM配置成32位寬度的高性能存儲器,這樣在讀取數據時就可以以4字節為1個單位,從而加快數據的讀取速度。選用16M×16位閃存存儲器,用于存儲WinCE操作系統和電子地圖信息。引導程序的啟動可以選擇從內部ROM或者外部ROM,采用外部引導程序啟動時,可以外擴DataFlash通過串121或以太網下載引導程序啟動。實際上,DataFIash是一個EEPR()M結構的存儲器,將NPCS0片選信號連接f1]DataFlash的CS中,使系統一開始時尋址到的Ox00地址正好是DataFlash的0x00地址,從而啟動Bootloader。
??? 用戶設備的顯示部分是一個帶有3.5寸觸摸屏的 LCD.LCD電路包括LCD時序電路、LCD電源、背光電源電路。電源輸出(這里以滿足SHARJPLQ035QI7DH01為例),需要+15∨、+5∨和-10∨的直流電源電壓以及由PWM控制的+21∨∽+25∨背光電源。在調試這幾個電源電路時要注意以下幾點:由于輸出電壓比較高,應避免輸出引腳和其他元件短接以免發生短路。②充電泵整流器的帶負載能力有限,用于濾波的電容容抗不能太大。建議用陶瓷電容。③LCD部分的電流輸出不是很大(4 mA),PCB的布局可以盡量緊湊;但LED電源PCB要考慮散熱性能(因為輸出的電流大約為20 mA),并且盡量遠離控制信號線.
??? 2.2 GPS模塊介紹
??? GPS模塊是Atmel公司提供的。GPS模塊采用的是串行輸出,只要2個串行信號線就可以完成較精確的差分衛星定位。GPS模塊的支持電壓為2.7~3.3 v,功率小于100 mW/H。GPS模塊由變頻器模塊(ATR0600)、信號相關模塊(ATR0610)、微處理器模塊(ATR0620)組成。圖4為GPS模塊結構框圖。
??? ?
??? 2.3 GPS模塊的POB設計
??? GPS接收機前端為RF模塊。由于含有射頻信號,因此其PCB設計相對中低頻信號的PCB 板來說要困難得多。總結筆者設計時遇到的困難及需要注意的事項,可以得到以下幾點啟示:
??? ①射頻濾波器只有在位于天線與射頻濾波器之間的微波傳送帶的特征阻抗為50 Q的情況 下才能正常工作。該傳送帶特征阻抗是PCB介質層間厚度為h、介電常數為εr、導線厚度為t,以及導線寬度為W的函數,所以在PCB板上放置該段導線時應根據相應的函數精確計算出微波傳送帶的寬度。該函數關系式為:
????
??? ②布線時應將導線的電阻和電容效應都考慮在內,走線盡量短而直,不能走直角;元件布局時要防止產生寄生振蕩現象。特別是對于LC濾波電路,PCB板布線與電容和電感擺放所產生的分布參數都會直接影響這個濾波器,因而在布線過程中應注意:濾波器的元器件和引線與 射頻信號線之間要保持良好的間隔,以防止互相之間的串擾;雙平衡信號的路徑由保持平行,并且長度相仿,這樣可以加強二者之間的耦合而減弱與其他線之間的耦合;第一級濾波器和射頻信號輸入電路之間留有足夠的空間,以實現相互隔離,保證系統的穩定性。
??? ③模擬電源與數字電源隔離;數字地與模擬地分開在兩者搭接處加入磁珠,防止互相干擾;連接電源和地的導線應盡量粗一些。
??? ④應使用一個金屬罩將射頻部分電路屏蔽起來,防止與后面的數字電路發生互相干擾。
??? 3 軟件模塊設計與開發
??? 如圖5所示,軟件以電子地圖分析模塊及數據庫為中心,包括GPS模塊、通信模塊以及顯示和聲音輸出模塊。數據庫中記錄了各種地理數據。使用者在行動過程中,由GPS模塊接收,分析衛星信號,計算出當前的經緯度、速度和方向等數值,就可以得到使用者在電子地圖上的確切位置。定時記錄位置移動情況就可以在LCD上顯示直觀的路線圖。可以在此基礎上開發車輛導航系統。
????
??? 開發過程中用到的工具主要有Platform Builder和EVC。P1atform Builder生成一個面向目標板的特定的WinCE操作系統。在生成Platform時,要選用正確的BSP。可以通過修改AT91SAM9261DK開發板自帶的BSP包來滿足設計要求,使得BSP包的開發變得簡單而快速。BSP主要包括Bootloader、OAL和驅動程序。
??? 由于篇幅有限,在這里只作簡單介紹:
??? ①Bootloader是在操作系統內核運行之前運行的一程序,用于初始化硬件設備,建立系統內存空間映射;而最重要的就是將操作系統內核映像加載到RAM中,并且把系統控制權交給它。在接收機手持設備系統中,這里可以不改。
??? ②OAL(即OEM適配層)是邏輯上駐留在winCE內核與目標設備之間的代碼,用于實現winCE內核與目標設備之間的通信。這里,除了基本的初始化功能外,還另外添加了電源管理方面的函數()EMIdle和()EMPowerOff,使其基本滿足手持設備在功耗方面的要求。
??? ③驅動程序是BSp開發的重要部分,是用戶模式的動態鏈接庫(DII),是一個抽象物理設備或虛擬設備的功能軟件。一般可分為內建驅動程序(如鍵盤驅動程序)和流驅動程序(如串口驅動、DataFlash驅動、以太網驅動等)。它們都是由設備管理器來加載的。
??? EVC開發GPS系統的軟件部分類似于vC中的項目開發。程序編好以后可以通過USB口下載到目標板上進行調試,并開發新的功能。
??? 結 語
??? GPS是當前應用最廣泛的導航定位系統。在歐美等發達地區,利用GPS車載導航系統來改進交通有廣闊的應用前景。AT91SAM9261嵌入式處理器有較高的性能,在類似方面的應用中大有可為。
評論
查看更多