基于AT91RM9200的導航計算機設計
摘要:介紹了一種基于AT91RM9200的導航計算機設計方案。該導航計算機可接收來自多路輸入數(shù)據(jù)接口的數(shù)據(jù),并通過雙口ROM送至DSP進行解算處理,最后將結果由輸出數(shù)據(jù)接口控制輸出。
關鍵詞:AT9lRM9200;導航計算機;雙口ROM;
O 引言
為了保證飛機按照準確的航線飛行,對各種數(shù)據(jù)進行實時、精確的處理便顯得極為重要。本文提出了一種導航計算機的設計方案。導航計算機是導航組合件的組成部件,可用于接收來自多路輸人數(shù)據(jù)接口的數(shù)據(jù),并通過雙口ROM送至DSP進行解算處理,最后將結果由輸出數(shù)據(jù)接口控制輸出。
1 硬件系統(tǒng)組成
導航計算機的核心器件是Atmel公司的AT91RM9200,該處理器具有豐富的系統(tǒng)與應用外設及標準的接口,能夠滿足導航計算機的接口要求。其快速的中斷處理性能可以保證導航計算機多個輸入輸出接口的速率。而可編程邏輯器件則可采用Altera公司的CycloneII系列的芯片EP2C8Q208C6,它的主要功能是實現(xiàn)系統(tǒng)時鐘分配、數(shù)據(jù)總線擴展以及外部數(shù)據(jù)接口的擴展。圖1所示是其導航計算機的系統(tǒng)組成。
1.1 控制處理器模塊
為了保證導航計算機的所有接口都能同時按照要求的速率工作,同時保證實時性,其系統(tǒng)控制處理器可選用Almel公司的AT9lRM9200。該處理器是完全圍繞ARM920T、ARM Thumb處理器構建的系統(tǒng)。它有豐富的系統(tǒng)與應用外設及標準的接口,從而為低功耗、低成本、高性能計算機的寬范圍應用提供一個單片解決方案。快速的中斷處理性能可以保證導航計算機的多個輸入輸出接口的速率。
作為導航計算機的中心控制部分,AT91RM9200的主要功能如下:
◇可按要求速率發(fā)送數(shù)據(jù),并中斷接收兩路RS232、9路RS422A、1路RS429(2收1發(fā))數(shù)據(jù)通訊接口的數(shù)據(jù)或卸幀,可保證數(shù)據(jù)傳輸接口速率、數(shù)據(jù)正確性和數(shù)據(jù)完整性;
◇可通過可編程邏輯器件擴展輸入輸出接口;
◇可控制與雙口ROM的數(shù)據(jù)交互;
◇可控制程序和數(shù)據(jù)存儲器的數(shù)據(jù)交互。
圖2所示是該ARM處理器與周邊器件的連接關系圖。
另外,控制處理器可通過可編程邏輯器件擴展輸入輸出接口,并設置其相應的參數(shù)。當控制處理器接收到中斷信號時,將先判斷是哪個接口的數(shù)據(jù),然后中斷接收數(shù)據(jù)。當其將接收到的數(shù)據(jù)存入雙口ROM且DSP從雙口ROM讀取數(shù)據(jù)后,系統(tǒng)便可利用相應的算法處理數(shù)據(jù),再將計算結果存入雙口ROM,控制處理器從雙口ROM讀取計算結果。該控制處理器分析計算結果后,可產(chǎn)生控制信號并將其送到相應的接口發(fā)送出去。接口數(shù)據(jù)的發(fā)送也是通過中斷方式實現(xiàn)的。
1.2 總線及接口擴展模塊
為了滿足導航計算機多個數(shù)據(jù)I/O接口的數(shù)據(jù)傳輸需要,本設計選用了Altera公司的CvcloneII系列芯片EP2C8Q208C6來完成RS422接口、
RS429接口的擴展。EP2C8Q208C6器件是基于ATERA的第二代MAX體系結構的高密度、高性能EEPROM器件,其工作電壓為3.3 V,能夠提供8256個邏輯單元、36個嵌入式內(nèi)存模塊,工作時鐘頻率高達260 MHz。在工作過程中,該芯片可根據(jù)需要讓一部分單元工作在高速、飽和功率狀態(tài),而其余單元則工作在低速、低功率狀態(tài),這樣能夠降低整個芯片的功耗。
可編程邏輯器件EP2C8Q208C6的主要功能是實現(xiàn)系統(tǒng)復位、分配系統(tǒng)時鐘、擴展數(shù)據(jù)總線、外部數(shù)據(jù)接口的擴展。[!--empirenews.page--]
EP2C8Q208C6與周邊器件的連接關系如圖3所示。
由圖3可見,其外部數(shù)據(jù)接口擴展可以通過TLl6C754B來實現(xiàn)。TLl6C754B可以產(chǎn)生四個獨立的中斷信號,因此,每個可以擴展四個串口,以將四個信號加到FPGA的IO輸入引腳。在FPGA內(nèi)部做或運算,運算結果再通過輸出引腳送給ARM的中斷信號。同時,將這四個中斷信號通過一個緩沖器鎖存入數(shù)據(jù)總線,中斷信號高有效。當ARM檢測到中斷輸入引腳為高電平時,便會去數(shù)據(jù)總線讀取數(shù)據(jù),并依次判斷是哪個擴展串口產(chǎn)生的中斷信號,然后去相應的串口讀取數(shù)據(jù)。這樣,便可通過FPGA實現(xiàn)數(shù)據(jù)接口的擴展。
1.3 IO接口模塊
由于導航計算機的接口較多,對應的接口分配便成了一個很重要的問題。本文充分利用了中央處理器ARM自身的4個UART接口,其中兩個直接對應導航計算機的RS232接口,其余兩個通過專用芯片SNll68轉換為可滿足RS422A協(xié)議的串口。而剩余的RS422A接口則采用2片串口擴展芯片TLl6C754B擴展出8個RS232數(shù)據(jù)接口。然后通過SNll68轉換為RS422A數(shù)據(jù)接口。也可以采用HS3182和HS3282實現(xiàn)RS429數(shù)據(jù)接口的擴展。
2 軟件設計
本設計的控制處理器軟件部分可用C語言編寫,主要完成系統(tǒng)初始化和數(shù)據(jù)收發(fā)兩部分功能。
2.1 系統(tǒng)初始化
系統(tǒng)上電后,首先對系統(tǒng)的各個功能模塊初始化。包括串口配置初始化、串口中斷接收初始化、754中斷初始化和中斷服務程序等。
ARM自身串口初始化主要是配置系統(tǒng)時鐘和波特率;
ARM自身串口接收中斷初始化主要是設置中斷優(yōu)先級、外設ID號、中斷服務程序地址;
754中斷初始化主要是配置外設數(shù)據(jù)總線寬度、設置擴展串口及其波特率;
而各個中斷服務程序都要首先判斷是不是該中斷服務程序應該響應的,然后再對接收到的數(shù)據(jù)進行處理。
2.2 數(shù)據(jù)收發(fā)
初始化完成后,系統(tǒng)即可開始正常工作,并按照給定速率發(fā)送數(shù)據(jù),同時在接口有數(shù)據(jù)時接收數(shù)據(jù)。
(1)數(shù)據(jù)接收
在ARM自帶的串口有數(shù)據(jù)時,當接收數(shù)據(jù)的緩存存滿以后,會產(chǎn)生一個接收滿中斷,然后調用中斷服務程序,以接收數(shù)據(jù)。而當通過TLl-6C754B擴展的接口有數(shù)據(jù)時,如果接收數(shù)據(jù)的緩存滿了以后,同樣會產(chǎn)生一個接收滿中斷,此時,ARM處理器先從擴展地址讀取其中斷號,判斷是哪一個擴展接口的中斷,然后調用相應的中斷服務程序去接收數(shù)據(jù)。
(2)數(shù)據(jù)發(fā)送
ARM處理器可產(chǎn)生一個10 ms的周期性中斷,并以這個時間作為基準按照設計給定的速率發(fā)送數(shù)據(jù)。ARM自帶的串口采用PDC方式發(fā)送,設定相應串口的PDC控制器,即把要發(fā)送的數(shù)據(jù)的地址和數(shù)據(jù)長度分別賦給PDC控制器的寄存器PDC_TPR和PDC_TCR。通過TLl6C754B擴展的接口發(fā)送數(shù)據(jù)時,應該先選通發(fā)送數(shù)據(jù)使用的是那一路通道,然后用普通串口方式發(fā)送數(shù)據(jù)。
3 結束語
本文介紹了一種基于AT91RM9200的導航計算機的設計方案。該導航計算機可利用可編程邏輯器件擴展多路外部數(shù)據(jù)接口,并采用中斷接收多路輸入數(shù)據(jù)接口的數(shù)據(jù),再經(jīng)解算處理,最后將結果由輸出數(shù)據(jù)接口輸出。本系統(tǒng)目前已成功應用于實際工作。實踐檢驗,其系統(tǒng)功能可以滿足實際需要。