盧洲白
(廣州海格通信集團(tuán)股份有限公司,廣東 廣州 510663)
短波通信作為一種應(yīng)急保障通信手段,在現(xiàn)代通信系統(tǒng)中具有不可替代的作用,在軍事、海事、礦山、人防等領(lǐng)域發(fā)揮重要作用。隨著現(xiàn)代短波無線通信設(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)的要求。這里選用AT91RM9200型微處理器作為系統(tǒng)控制器核心,可通過并行IO控制器PIO (Parallel IO Controller)將128個(gè)復(fù)用IO口配置為中斷輸入[1],大大提高系統(tǒng)的擴(kuò)展能力。詳細(xì)分析PIO中斷的處理流程,并給出系統(tǒng)設(shè)計(jì)中針對(duì)脈沖中斷信號(hào)的二次響應(yīng)問題的優(yōu)化解決方案。
短波通信系統(tǒng)PTT處理部分簡(jiǎn)化框圖如圖1所示。
AT91RM9200提供 7個(gè)專用中斷信號(hào) (IRQ0~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通過數(shù)據(jù)/地址總線讀取PTT狀態(tài)并進(jìn)行處理。
圖2為AT91RM9200中斷級(jí)聯(lián)結(jié)構(gòu)[2-3]。圖3為PIO信號(hào)和控制框圖。
圖2 中斷級(jí)聯(lián)結(jié)構(gòu)圖
根據(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)也無效。中斷處理流程如圖4所示[4]。
對(duì)于外設(shè)(FPGA或?qū)S肐C)產(chǎn)生的中斷信號(hào)來說,一般都是一個(gè)負(fù)脈沖信號(hào),具有下降和上升2個(gè)邊沿[5]。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是其處理流程。
一般可采用軟件查詢的方法解決脈沖中斷信號(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)化解決方案。
圖3 PIO信號(hào)和控制框圖
圖4 中斷處理流程
圖5 脈沖中斷信號(hào)二次響應(yīng)示意圖
1)延時(shí)讀取中斷狀態(tài)寄存器 如圖6所示,系統(tǒng)進(jìn)入中斷服務(wù)程序[6]后延時(shí)至T3時(shí)刻讀取PIO_ISR,晚于負(fù)脈沖信號(hào)上升沿到達(dá)時(shí)間,則2次電平變化只產(chǎn)生一次中斷響應(yīng)。
圖6 延時(shí)讀取PIO_ISR流程示意圖
2)調(diào)整檢測(cè)時(shí)鐘 PIO通過PMC產(chǎn)生的高速時(shí)鐘檢測(cè)PIO端口線上電平變化,通過調(diào)整PIO檢測(cè)時(shí)鐘至滿足W>T>W(wǎng)/2,其中,W為負(fù)脈沖寬度,T為采樣時(shí)鐘周期,可解決脈沖中斷信號(hào)的二次響應(yīng)問題。
如圖7所示,調(diào)整檢測(cè)時(shí)鐘周期,使負(fù)脈沖的低電平階段只有一個(gè)采樣點(diǎn),在3個(gè)上升沿檢測(cè)到電平為1→0→1。此時(shí)對(duì)檢測(cè)時(shí)鐘的要求為:T>W(wǎng)/2。如果繼續(xù)加大檢測(cè)時(shí)鐘周期,使之大于負(fù)脈沖寬度,則可能檢測(cè)不到電平變化。所以,檢測(cè)時(shí)鐘周期要求T<W。
圖7 調(diào)整PIO檢測(cè)時(shí)鐘后時(shí)序
系統(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(wǎng)/2要求,成功實(shí)現(xiàn)單次響應(yīng)脈沖中斷信號(hào),符合設(shè)計(jì)要求,驗(yàn)證理論分析的正確性。
1)軟件查詢法原理較簡(jiǎn)單,但仍會(huì)2次進(jìn)入中斷服務(wù)程序,占用一定的系統(tǒng)資源;
2)延時(shí)讀取ISR的方法適應(yīng)能力較強(qiáng),可通過軟件代碼的處理適應(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)用范圍受到一定限制。
AT91RM9200通過配置PIO引腳為中斷信號(hào)輸入來提供較強(qiáng)的系統(tǒng)擴(kuò)展能力。PIO中斷的檢測(cè)采用連續(xù)時(shí)鐘檢測(cè)電平變化的方式實(shí)現(xiàn)。在處理脈沖形式中斷信號(hào)時(shí)會(huì)由于中斷二次響應(yīng)問題產(chǎn)生較大的系統(tǒng)開銷,降低系統(tǒng)的實(shí)時(shí)性[7]。
通過深入分析系統(tǒng)硬件結(jié)構(gòu)和中斷處理流程,將軟硬件特性相結(jié)合進(jìn)行設(shè)計(jì),創(chuàng)新性地提出了延時(shí)讀取中斷狀態(tài)寄存器和調(diào)整檢測(cè)時(shí)鐘2種優(yōu)化解決方案,成功避免了脈沖中斷二次響應(yīng)的問題,并在軟件查詢方法的基礎(chǔ)上大幅降低系統(tǒng)中斷服務(wù)的開銷,確保滿足短波無線通信系統(tǒng)業(yè)務(wù)功能的實(shí)時(shí)性要求。
[1]Atmel Corporation.AT91RM9200 datasheet[DB/OL].(2006)[2009-05-04].http://www.atmel.com/dyn/resources/prod_documents/doc1768.pdf.
[2]ARM Limited.ARM920T techincal reference manual[DB/OL].(2001)[2009-05-04].http://infocenter.arm.com/help/topic/com.arm.doc.ddi0151c/ARM920T_TRM1_S.pdf.
[3]ARM Limited.ARM architecture reference manual[DB/OL].(2000)[2009-05-04].http://infocenter.arm.com/help/index.jsp.
[4]杜春雷.ARM體系架構(gòu)與編程[M].北京:清華大學(xué)出版社,2003.
[5]周佩玲,吳耿鋒,萬炳奎.16位微型計(jì)算機(jī)原理·接口及其應(yīng)用[M].合肥:中國科學(xué)技術(shù)大學(xué)出版社,2001.
[6]Wind River Systems,Inc.VxWorks BSP developer’s guide 5.5[DB/OL].(2002)[2009-05-04].https://support.windriver.com.
[7]汪建敏.基于LPC2132的電參數(shù)采集平臺(tái)設(shè)計(jì)[J].陜西電力,2009,37(1):32-35.