AT91RM9200 PIO中斷在短波通信系統(tǒng)中的應(yīng)用
2.2 脈沖中斷信號的二次響應(yīng)
對于外設(shè)(FPGA或?qū)S肐C)產(chǎn)生的中斷信號來說,一般都是一個負(fù)脈沖信號,具有下降和上升2個邊沿。PIO端口線作為中斷輸入時,根據(jù)檢測2個采樣周期內(nèi)的電平差實現(xiàn),端口線上的任何電平變化都會產(chǎn)生中斷,所以,當(dāng)接收到負(fù)脈沖中斷信號時,則產(chǎn)生2次中斷請求,圖5是其處理流程。本文引用地址:http://cafeforensic.com/article/157504.htm
2.3 解決方案
一般可采用軟件查詢的方法解決脈沖中斷信號的二次響應(yīng)。中斷服務(wù)程序讀取PIO_ISR后,通過寄存器PIO_PDSR判斷PB28端口線上當(dāng)前電平是1還是0,以確定是否處理。但采用這種方法仍會進(jìn)入中斷服務(wù)程序2次,造成較大的系統(tǒng)開銷,影響系統(tǒng)實時性。因此,在深入分析系統(tǒng)硬件結(jié)構(gòu)的基礎(chǔ)上,給出以下2種優(yōu)化解決方案。
1)延時讀取中斷狀態(tài)寄存器 如圖6所示,系統(tǒng)進(jìn)入中斷服務(wù)程序后延時至T3時刻讀取PIO_ISR,晚于負(fù)脈沖信號上升沿到達(dá)時間,則2次電平變化只產(chǎn)生一次中斷響應(yīng)。
評論