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