AT91RM9200 PIO中斷在短波通信系統(tǒng)中的應(yīng)用
摘要:為擴展AT9lRM9200中斷處理能力,將通用IO配置為中斷輸入,并針對負脈沖中斷信號的二次響應(yīng)問題提出2種優(yōu)化解決方案。實驗表明,在成功解決了中斷二次響應(yīng)的問題基礎(chǔ)上,滿足系統(tǒng)的實時性要求。
關(guān)鍵詞:AT91RM9200;中斷;并行輸入輸出(PIO)控制器;發(fā)送請求(PTT)
短波通信作為一種應(yīng)急保障通信手段,在現(xiàn)代通信系統(tǒng)中具有不可替代的作用,在軍事、海事、礦山、人防等領(lǐng)域發(fā)揮重要作用。隨著現(xiàn)代短波無線通信設(shè)備的集成度和復(fù)雜度越高,實現(xiàn)的業(yè)務(wù)功能就越多,如GPS、短信、電子郵件等,因此,設(shè)備控制器往往需同時處理多種業(yè)務(wù)功能的發(fā)送請求信號PTT(Press to Talk),并為之分配信道占用時間,確保各種業(yè)務(wù)依據(jù)其優(yōu)先級即時獲得信道使用權(quán)。
PTT信號具有高實時性的要求,需要即時響應(yīng),因此,在系統(tǒng)設(shè)計時.需要利用MCU的中斷處理機制滿足PTT信號的要求。這里選用AT9lR-M9200型微處理器作為系統(tǒng)控制器核心,可通過并行IO控制器PIO(Parallel IO Controller)將128個復(fù)用IO口配置為中斷輸入。大大提高系統(tǒng)的擴展能力。詳細分析PIO中斷的處理流程,并給出系統(tǒng)設(shè)計中針對脈沖中斷信號的二次響應(yīng)問題的優(yōu)化解決方案。
1 系統(tǒng)介紹
短波通信系統(tǒng)PTT處理部分簡化框圖如圖1所示。
AT91RM9200提供7個專用中斷信號(IRQO~IRQ6),均被集成外設(shè)占用,為滿足PTT信號的實時處理要求,PIO控制器將IO口配置為中斷輸入引腳。FPGA處理4路發(fā)送請求信號,即PTT_A,PTT_B,PTT_C,PTT_D。PTT信號發(fā)生變化時,F(xiàn)PGA產(chǎn)生一個負脈沖中斷信號PTT_INT通知MCU,MCU通過數(shù)據(jù),地址總線讀取PTT狀態(tài)并進行處理。
2 中斷處理過程
2.1 概述
圖2為AT91RM9200中斷級聯(lián)結(jié)構(gòu)。圖3為PIO信號和控制框圖。
根據(jù)圖3所示,當邊沿檢測器(EDGE DETECTOR)檢測到IO口上電平變化,PIO_ISR寄存器對應(yīng)位置1,PIO_ISR狀態(tài)決定PIO_INT信號是否有效。中斷服務(wù)程序讀PIO_ISR后所有位自動清零,同時,PIO_INT信號也無效。中斷處理流程如圖4所示。
2.2 脈沖中斷信號的二次響應(yīng)
對于外設(shè)(FPGA或?qū)S肐C)產(chǎn)生的中斷信號來說,一般都是一個負脈沖信號,具有下降和上升2個邊沿。PIO端口線作為中斷輸入時,根據(jù)檢測2個采樣周期內(nèi)的電平差實現(xiàn),端口線上的任何電平變化都會產(chǎn)生中斷,所以,當接收到負脈沖中斷信號時,則產(chǎn)生2次中斷請求,圖5是其處理流程。
2.3 解決方案
一般可采用軟件查詢的方法解決脈沖中斷信號的二次響應(yīng)。中斷服務(wù)程序讀取PIO_ISR后,通過寄存器PIO_PDSR判斷PB28端口線上當前電平是1還是0,以確定是否處理。但采用這種方法仍會進入中斷服務(wù)程序2次,造成較大的系統(tǒng)開銷,影響系統(tǒng)實時性。因此,在深入分析系統(tǒng)硬件結(jié)構(gòu)的基礎(chǔ)上,給出以下2種優(yōu)化解決方案。
1)延時讀取中斷狀態(tài)寄存器 如圖6所示,系統(tǒng)進入中斷服務(wù)程序后延時至T3時刻讀取PIO_ISR,晚于負脈沖信號上升沿到達時間,則2次電平變化只產(chǎn)生一次中斷響應(yīng)。
2)調(diào)整檢測時鐘 PIO通過PMC產(chǎn)生的高速時鐘檢測PIO端口線上電平變化,通過調(diào)整PIO檢測時鐘至滿足W>T>W/2,其中,W為負脈沖寬度,T為采樣時鐘周期,可解決脈沖中斷信號的二次響應(yīng)問題。
如圖7所示,調(diào)整檢測時鐘周期,使負脈沖的低電平階段只有一個采樣點,在3個上升沿檢測到電平為1→0→1。此時對檢測時鐘的要求為:T>W/2。如果繼續(xù)加大檢測時鐘周期,使之大于負脈沖寬度,則可能檢測不到電平變化。所以,檢測時鐘周期要求T<W。
2.4 實驗結(jié)果
系統(tǒng)中FPGA產(chǎn)生的脈沖中斷信號寬度為200 ns,AT91RM9200主時鐘頻率為59 MHz,PIO檢測時鐘與主時鐘頻率相同為59 MHz。
采用延時讀取ISR方法,在中斷服務(wù)程序中延時20個主時鐘周期(320 ns)后,讀寄存器PIO_ISR,成功實現(xiàn)單次響應(yīng)脈沖中斷信號,符合設(shè)計要求。
采用調(diào)整檢測時鐘的方法,將檢測時鐘調(diào)整為8 MHz,滿足W>T>W/2要求,成功實現(xiàn)單次響應(yīng)脈沖中斷信號,符合設(shè)計要求,驗證理論分析的正確性。
2.5 需要注意的問題
1)軟件查詢法原理較簡單,但仍會2次進入中斷服務(wù)程序,占用一定的系統(tǒng)資源;
2)延時讀取ISR的方法適應(yīng)能力較強,可通過軟件代碼的處理適應(yīng)不同的系統(tǒng);
3)調(diào)整PIO電平檢測時鐘的方法由于需要對比外設(shè)中斷信號時鐘頻率和AT91RM9200電平檢測時鐘頻率關(guān)系,不一定在所有外設(shè)上都能夠?qū)崿F(xiàn)需要的頻率對比關(guān)系,應(yīng)用范圍受到一定限制。
3 結(jié)束語
AT9lRM9200通過配置PIO引腳為中斷信號輸入來提供較強的系統(tǒng)擴展能力。PIO中斷的檢測采用連續(xù)時鐘檢測電平變化的方式實現(xiàn)。在處理脈沖形式中斷信號時會由于中斷二次響應(yīng)問題產(chǎn)生較大的系統(tǒng)開銷,降低系統(tǒng)的實時性。
通過深入分析系統(tǒng)硬件結(jié)構(gòu)和中斷處理流程,將軟硬件特性相結(jié)合進行設(shè)計,創(chuàng)新性地提出了延時讀取中斷狀態(tài)寄存器和調(diào)整檢測時鐘2種優(yōu)化解決方案,成功避免了脈沖中斷二次響應(yīng)的問題,并在軟件查詢方法的基礎(chǔ)上大幅降低系統(tǒng)中斷服務(wù)的開銷,確保滿足短波無線通信系統(tǒng)業(yè)務(wù)功能的實時性要求。