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