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