短波通信作為一種應(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)介紹
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 概述
根據(jù)圖3所示,當邊沿檢測器(EDGE DETECTOR)檢測到IO口上電平變化,PIO_ISR寄存器對應(yīng)位置1,PIO_ISR狀態(tài)決定PIO_INT信號是否有效。中斷服務(wù)程序讀PIO_ISR后所有位自動清零,同時,PIO_INT信號也無效。
2.2 脈沖中斷信號的二次響應(yīng)
對于外設(shè)(FPGA或?qū)S肐C)產(chǎn)生的中斷信號來說,一般都是一個負脈沖信號,具有下降和上升2個邊沿。PIO端口線作為中斷輸入時,根據(jù)檢測2個采樣周期內(nèi)的電平差實現(xiàn),端口線上的任何電平變化都會產(chǎn)生中斷,所以,當接收到負脈沖中斷信號時,則產(chǎn)生2次中斷請求。
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)化解決方案。