基于AT91RM9200的導(dǎo)航計(jì)算機(jī)設(shè)計(jì)
EP2C8Q208C6與周邊器件的連接關(guān)系如圖3所示。本文引用地址:http://m.butianyuan.cn/article/202534.htm
由圖3可見,其外部數(shù)據(jù)接口擴(kuò)展可以通過TLl6C754B來實(shí)現(xiàn)。TLl6C754B可以產(chǎn)生四個(gè)獨(dú)立的中斷信號,因此,每個(gè)可以擴(kuò)展四個(gè)串口,以將四個(gè)信號加到FPGA的IO輸入引腳。在FPGA內(nèi)部做或運(yùn)算,運(yùn)算結(jié)果再通過輸出引腳送給ARM的中斷信號。同時(shí),將這四個(gè)中斷信號通過一個(gè)緩沖器鎖存入數(shù)據(jù)總線,中斷信號高有效。當(dāng)ARM檢測到中斷輸入引腳為高電平時(shí),便會去數(shù)據(jù)總線讀取數(shù)據(jù),并依次判斷是哪個(gè)擴(kuò)展串口產(chǎn)生的中斷信號,然后去相應(yīng)的串口讀取數(shù)據(jù)。這樣,便可通過FPGA實(shí)現(xiàn)數(shù)據(jù)接口的擴(kuò)展。
1.3 IO接口模塊
由于導(dǎo)航計(jì)算機(jī)的接口較多,對應(yīng)的接口分配便成了一個(gè)很重要的問題。本文充分利用了中央處理器ARM自身的4個(gè)UART接口,其中兩個(gè)直接對應(yīng)導(dǎo)航計(jì)算機(jī)的RS232接口,其余兩個(gè)通過專用芯片SNll68轉(zhuǎn)換為可滿足RS422A協(xié)議的串口。而剩余的RS422A接口則采用2片串口擴(kuò)展芯片TLl6C754B擴(kuò)展出8個(gè)RS232數(shù)據(jù)接口。然后通過SNll68轉(zhuǎn)換為RS422A數(shù)據(jù)接口。也可以采用HS3182和HS3282實(shí)現(xiàn)RS429數(shù)據(jù)接口的擴(kuò)展。
2 軟件設(shè)計(jì)
本設(shè)計(jì)的控制處理器軟件部分可用C語言編寫,主要完成系統(tǒng)初始化和數(shù)據(jù)收發(fā)兩部分功能。
2.1 系統(tǒng)初始化
系統(tǒng)上電后,首先對系統(tǒng)的各個(gè)功能模塊初始化。包括串口配置初始化、串口中斷接收初始化、754中斷初始化和中斷服務(wù)程序等。
ARM自身串口初始化主要是配置系統(tǒng)時(shí)鐘和波特率;
ARM自身串口接收中斷初始化主要是設(shè)置中斷優(yōu)先級、外設(shè)ID號、中斷服務(wù)程序地址;
754中斷初始化主要是配置外設(shè)數(shù)據(jù)總線寬度、設(shè)置擴(kuò)展串口及其波特率;
而各個(gè)中斷服務(wù)程序都要首先判斷是不是該中斷服務(wù)程序應(yīng)該響應(yīng)的,然后再對接收到的數(shù)據(jù)進(jìn)行處理。
2.2 數(shù)據(jù)收發(fā)
初始化完成后,系統(tǒng)即可開始正常工作,并按照給定速率發(fā)送數(shù)據(jù),同時(shí)在接口有數(shù)據(jù)時(shí)接收數(shù)據(jù)。
(1)數(shù)據(jù)接收
在ARM自帶的串口有數(shù)據(jù)時(shí),當(dāng)接收數(shù)據(jù)的緩存存滿以后,會產(chǎn)生一個(gè)接收滿中斷,然后調(diào)用中斷服務(wù)程序,以接收數(shù)據(jù)。而當(dāng)通過TLl-6C754B擴(kuò)展的接口有數(shù)據(jù)時(shí),如果接收數(shù)據(jù)的緩存滿了以后,同樣會產(chǎn)生一個(gè)接收滿中斷,此時(shí),ARM處理器先從擴(kuò)展地址讀取其中斷號,判斷是哪一個(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ù)長度分別賦給PDC控制器的寄存器PDC_TPR和PDC_TCR。通過TLl6C754B擴(kuò)展的接口發(fā)送數(shù)據(jù)時(shí),應(yīng)該先選通發(fā)送數(shù)據(jù)使用的是那一路通道,然后用普通串口方式發(fā)送數(shù)據(jù)。
3 結(jié)束語
本文介紹了一種基于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í)際需要。
評論