短波通信作為一種應急保障通信手段,在現代通信系統中具有不可替代的作用,在軍事、海事、礦山、人防等領域發揮重要作用。隨著現代短波無線通信設備的集成度和復雜度越高,實現的業務功能就越多,如GPS、短信、電子郵件等,因此,設備控制器往往需同時處理多種業務功能的發送請求信號PTT(Press to Talk),并為之分配信道占用時間,確保各種業務依據其優先級即時獲得信道使用權。
PTT信號具有高實時性的要求,需要即時響應,因此,在系統設計時.需要利用MCU的中斷處理機制滿足PTT信號的要求。這里選用AT9lR-M9200型微處理器作為系統控制器核心,可通過并行IO控制器PIO(Parallel IO Controller)將128個復用IO口配置為中斷輸入。大大提高系統的擴展能力。詳細分析PIO中斷的處理流程,并給出系統設計中針對脈沖中斷信號的二次響應問題的優化解決方案。
1 系統介紹
AT91RM9200提供7個專用中斷信號(IRQO~IRQ6),均被集成外設占用,為滿足PTT信號的實時處理要求,PIO控制器將IO口配置為中斷輸入引腳。FPGA處理4路發送請求信號,即PTT_A,PTT_B,PTT_C,PTT_D。PTT信號發生變化時,FPGA產生一個負脈沖中斷信號PTT_INT通知MCU,MCU通過數據,地址總線讀取PTT狀態并進行處理。
2 中斷處理過程
2.1 概述
根據圖3所示,當邊沿檢測器(EDGE DETECTOR)檢測到IO口上電平變化,PIO_ISR寄存器對應位置1,PIO_ISR狀態決定PIO_INT信號是否有效。中斷服務程序讀PIO_ISR后所有位自動清零,同時,PIO_INT信號也無效。
2.2 脈沖中斷信號的二次響應
對于外設(FPGA或專用IC)產生的中斷信號來說,一般都是一個負脈沖信號,具有下降和上升2個邊沿。PIO端口線作為中斷輸入時,根據檢測2個采樣周期內的電平差實現,端口線上的任何電平變化都會產生中斷,所以,當接收到負脈沖中斷信號時,則產生2次中斷請求。
2.3 解決方案
一般可采用軟件查詢的方法解決脈沖中斷信號的二次響應。中斷服務程序讀取PIO_ISR后,通過寄存器PIO_PDSR判斷PB28端口線上當前電平是1還是0,以確定是否處理。但采用這種方法仍會進入中斷服務程序2次,造成較大的系統開銷,影響系統實時性。因此,在深入分析系統硬件結構的基礎上,給出以下2種優化解決方案。