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