基于AT91RM9200的導航計算機設計
EP2C8Q208C6與周邊器件的連接關系如圖3所示。本文引用地址:http://butianyuan.cn/article/202534.htm
由圖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)功能可以滿足實際需要。
評論