亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的中斷控制器設(shè)計(jì)*

        2018-11-07 02:22:16吳志勇劉繼平郭元興
        通信技術(shù) 2018年11期
        關(guān)鍵詞:服務(wù)程序外設(shè)管腳

        吳志勇,劉繼平,郭元興

        (中國(guó)電子科技集團(tuán)公司第三十研究所,四川 成都 610041)

        0 引 言

        在嵌入式系統(tǒng)中,CPU與外設(shè)交互數(shù)據(jù)主要有3種方式:查詢、中斷和DMA。查詢方式是由CPU周期性地執(zhí)行查詢指令來讀取外設(shè)的狀態(tài)寄存器,根據(jù)設(shè)備的狀態(tài)來交互數(shù)據(jù)。這種方式效率低下,當(dāng)CPU連接的外設(shè)數(shù)量較多時(shí),外設(shè)的數(shù)據(jù)無法得到實(shí)時(shí)處理。中斷和DMA方式克服了查詢方式的缺點(diǎn),提高了CPU的效率和數(shù)據(jù)處理的實(shí)時(shí)性。其中,DMA方式同樣需要使用中斷機(jī)制來實(shí)現(xiàn)。

        然而,CPU的中斷資源有限。當(dāng)系統(tǒng)中連接CPU的外設(shè)數(shù)量多于CPU的中斷管腳數(shù)量時(shí),需要采取某種方式將多個(gè)外設(shè)的中斷信號(hào)進(jìn)行復(fù)用。采用Intel 8259A等芯片可以實(shí)現(xiàn)中斷信號(hào)的復(fù)用,但在使用前需要CPU對(duì)其進(jìn)行配置。然而,將32路中斷信號(hào)復(fù)用成1路中斷信號(hào)需要使用5片8259A芯片級(jí)聯(lián),占用了較大的PCB板面積,也增加了系統(tǒng)設(shè)計(jì)的復(fù)雜性[1-2]。

        此外,部分CPU在進(jìn)入中斷服務(wù)程序后或處于中斷屏蔽狀態(tài)時(shí),無法通過中斷管腳繼續(xù)接收外設(shè)給入的中斷信號(hào),有可能導(dǎo)致數(shù)據(jù)的丟失。

        因此,設(shè)計(jì)一種適用于多外設(shè)系統(tǒng),能夠?qū)⒍嗦分袛嘈盘?hào)復(fù)用且不受CPU中斷狀態(tài)影響的中斷控制器具有較高的實(shí)用價(jià)值。本文利用FPGA具有的研制周期短、設(shè)計(jì)成本低、設(shè)計(jì)靈活性高等特點(diǎn),設(shè)計(jì)了一種基于FPGA的中斷控制器。

        1 中斷的原理

        中斷是指CPU在執(zhí)行當(dāng)前程序的過程中,當(dāng)出現(xiàn)某些異常事件或某種外部請(qǐng)求時(shí),CPU暫時(shí)停止執(zhí)行當(dāng)前程序,轉(zhuǎn)去執(zhí)行外設(shè)的服務(wù)程序。當(dāng)外設(shè)的服務(wù)程序執(zhí)行完畢后,再返回被暫停執(zhí)行的程序處繼續(xù)執(zhí)行。CPU對(duì)中斷響應(yīng)的流程如圖1所示[3]。

        圖1 CPU對(duì)中斷響應(yīng)的流程

        CPU一般至少有一個(gè)中斷信號(hào)輸入管腳,在每條指令的最后一個(gè)機(jī)器周期對(duì)中斷管腳的輸入信號(hào)進(jìn)行采樣,并對(duì)中斷做出響應(yīng)。根據(jù)不同的觸發(fā)方式,中斷可以分為電平觸發(fā)中斷和邊沿觸發(fā)中斷。電平觸發(fā)方式用一段持續(xù)的高電平或低電平表示中斷請(qǐng)求,要求中斷請(qǐng)求信號(hào)要有足夠長(zhǎng)的保持時(shí)間,要保持到當(dāng)前指令的最后一個(gè)機(jī)器周期,以確保CPU采樣時(shí)中斷請(qǐng)求有效。邊沿觸發(fā)方式是以一個(gè)信號(hào)的上跳沿或下跳沿表示中斷請(qǐng)求,CPU對(duì)這個(gè)中斷請(qǐng)求進(jìn)行鎖存。

        2 中斷控制器的設(shè)計(jì)

        中斷控制器的作用是在有多個(gè)中斷源的系統(tǒng)中,可同時(shí)接受多個(gè)外部的中斷請(qǐng)求,進(jìn)行一定判別后,選中當(dāng)前優(yōu)先級(jí)最高的中斷請(qǐng)求送至CPU的中斷輸入端。當(dāng)CPU響應(yīng)中斷并進(jìn)入中斷處理程序后,該控制器仍負(fù)責(zé)對(duì)外部中斷的管理[4]。

        本文采用Verilog HDL語言,設(shè)計(jì)了一種能夠?qū)?2路中斷信號(hào)復(fù)用成1路中斷信號(hào)的控制器,其系統(tǒng)結(jié)構(gòu)如圖2所示。

        圖2 中斷控制器的系統(tǒng)結(jié)構(gòu)

        中斷控制器主要包含了中斷信號(hào)計(jì)數(shù)模塊、中斷信號(hào)產(chǎn)生模塊和中斷信號(hào)清除模塊。INT_i[31:0]為32路外設(shè)產(chǎn)生的中斷信號(hào),其中INT_i[0]的優(yōu)先級(jí)最高,INT_i[31]的優(yōu)先級(jí)最低??刂破鬏敵龅闹袛嘈盘?hào)INT_o接CPU的中斷管腳,CPU通過mask信號(hào)來設(shè)置當(dāng)前中斷管腳是否處于中斷屏蔽狀態(tài)。如果CPU當(dāng)前處于中斷屏蔽狀態(tài),INT_o將不會(huì)輸出有效中斷信號(hào)。CPU接收到INT_o中斷信號(hào)后,在中斷服務(wù)程序中需要讀取flag[4:0]標(biāo)志,以確定當(dāng)前中斷的中斷源。CPU在執(zhí)行完畢中斷服務(wù)程序后,需通過clear信號(hào)清除當(dāng)前中斷。中斷控制器能夠根據(jù)flag[4:0]的值來自動(dòng)確定需要清除的中斷源。

        2.1 中斷信號(hào)計(jì)數(shù)模塊

        中斷信號(hào)計(jì)數(shù)模塊主要由32個(gè)相同的計(jì)數(shù)器構(gòu)成,將中斷信號(hào)INT_i進(jìn)行同步處理后輸入給計(jì)數(shù)器。計(jì)數(shù)器在有中斷信號(hào)INT輸入時(shí)執(zhí)行加計(jì)數(shù),在清除中斷信號(hào)decrease到來時(shí)執(zhí)行減計(jì)數(shù),從而實(shí)現(xiàn)對(duì)當(dāng)前中斷信號(hào)有效個(gè)數(shù)的鎖存。當(dāng)有效中斷信號(hào)個(gè)數(shù)大于0時(shí),通過valid信號(hào)輸出高電平,其流程如圖3所示。

        圖3 中斷信號(hào)計(jì)數(shù)器流程

        2.2 中斷信號(hào)產(chǎn)生模塊

        中斷信號(hào)產(chǎn)生模塊首先判斷mask信號(hào)是否有效,如果有效,表示CPU當(dāng)前正處于中斷屏蔽狀態(tài),此時(shí)中斷信號(hào)產(chǎn)生模塊不應(yīng)該輸出中斷信號(hào)INT_o給CPU。當(dāng)mask信號(hào)無效時(shí),進(jìn)一步判斷計(jì)數(shù)器模塊的輸出值valid[31:0]是否有效。只要valid[31:0]中的某個(gè)比特有效,說明有中斷源需要處理,中斷信號(hào)產(chǎn)生模塊則輸出中斷信號(hào)INT_o到CPU的中斷管腳,同時(shí)對(duì)valid[31:0]信號(hào)中有效位的優(yōu)先級(jí)進(jìn)行判決,將優(yōu)先級(jí)最高的輸入中斷信號(hào)INT_i對(duì)應(yīng)的編碼輸出到flag[4:0]總線上,以便CPU獲取當(dāng)前中斷信號(hào)對(duì)應(yīng)的中斷源。中斷信號(hào)產(chǎn)生模塊在中斷清除信號(hào)clear有效后回到初始狀態(tài),其流程如圖4所示。

        圖4 中斷信號(hào)產(chǎn)生模塊流程

        2.3 中斷信號(hào)清除模塊

        CPU在跳出中斷服務(wù)程序前需要通過clear信號(hào)清除當(dāng)前中斷,否則中斷信號(hào)產(chǎn)生模塊將一直處于等待clear信號(hào)有效的狀態(tài),無法進(jìn)行下一個(gè)中斷源的處理。同時(shí),中斷信號(hào)計(jì)數(shù)模塊也需要clear的有效信號(hào)進(jìn)行減計(jì)數(shù),以確保在當(dāng)前中斷源處理完畢后,中斷計(jì)數(shù)模塊中鎖存的值始終為尚未處理的中斷源個(gè)數(shù)。中斷信號(hào)清除模塊通過讀取flag[4:0]的值來獲取當(dāng)前優(yōu)先級(jí)最高的中斷源,并產(chǎn)生相應(yīng)的脈沖信號(hào)給中斷計(jì)數(shù)模塊,其流程如圖5所示。

        圖5 中斷信號(hào)清除模塊流程

        3 中斷控制器在多外設(shè)系統(tǒng)中的應(yīng)用

        本文在Xilinx的XC6SLX150T-3FGG676I FPGA上驗(yàn)證設(shè)計(jì)的中斷控制器。在FPGA中,例化了32個(gè)模塊。這些模塊作為CPU的外設(shè)通過EMIF總線與CPU進(jìn)行數(shù)據(jù)交互。模塊產(chǎn)生的數(shù)據(jù)存儲(chǔ)于各自內(nèi)部的FIFO中,每產(chǎn)生一幀數(shù)據(jù),會(huì)給出一個(gè)中斷信號(hào)通知CPU讀取。只要各外設(shè)模塊產(chǎn)生的中斷信號(hào)不丟失,CPU就能夠正確讀取這些外設(shè)模塊產(chǎn)生的數(shù)據(jù)幀。多外設(shè)系統(tǒng)應(yīng)用的框圖如圖6所示。

        在圖6的多外設(shè)系統(tǒng)應(yīng)用中,32個(gè)外設(shè)模塊產(chǎn)生的中斷信號(hào)通過中斷控制器復(fù)用成1路中斷信號(hào)輸出給CPU。它僅占用CPU的1個(gè)中斷輸入管腳,其余信號(hào)均占用的是資源相對(duì)較豐富的GPIO。當(dāng)CPU正在中斷服務(wù)程序中處理某個(gè)外設(shè)模塊的數(shù)據(jù)幀或者CPU正處于中斷屏蔽狀態(tài)時(shí),中斷控制器能夠繼續(xù)接收外設(shè)模塊產(chǎn)生的中斷信號(hào),然后計(jì)數(shù)并鎖存這些中斷信號(hào),避免了由于中斷信號(hào)的丟失而導(dǎo)致數(shù)據(jù)幀的丟失,使得這些外設(shè)模塊能夠并發(fā)工作,提高了CPU和外設(shè)的工作效率。

        經(jīng)過驗(yàn)證,CPU能夠正確接收FPGA中32個(gè)外設(shè)模塊并發(fā)產(chǎn)生的數(shù)據(jù)幀,說明中斷控制器能夠正確工作,達(dá)到了預(yù)期效果。

        圖6 多外設(shè)系統(tǒng)應(yīng)用

        4 結(jié) 語

        針對(duì)多外設(shè)系統(tǒng)的中斷復(fù)用問題,本文設(shè)計(jì)了一種能夠?qū)?2路中斷信號(hào)復(fù)用成1路中斷信號(hào)的中斷控制器,并在實(shí)際項(xiàng)目中進(jìn)行了應(yīng)用驗(yàn)證,其具有如下特點(diǎn):

        (1)上電后可直接使用,無需CPU對(duì)該中斷控制器進(jìn)行配置;

        (2)使用CPU的1個(gè)中斷輸入管腳及若干個(gè)GPIO,就能夠?qū)崿F(xiàn)對(duì)多個(gè)外設(shè)中斷信號(hào)的響應(yīng),減少了對(duì)CPU中斷資源的占用;

        (3)具備中斷信號(hào)鎖存功能,當(dāng)CPU進(jìn)入中斷服務(wù)程序中或正處于中斷屏蔽狀態(tài)時(shí),中斷控制器能夠繼續(xù)接收外設(shè)的中斷信號(hào)并記錄這些中斷信號(hào)的個(gè)數(shù),待CPU能夠接收中斷信號(hào)后,將鎖存的中斷信號(hào)繼續(xù)發(fā)送給CPU,避免了外設(shè)中斷信號(hào)的丟失;

        (4)采用Verilog硬件描述語言設(shè)計(jì),當(dāng)需要復(fù)用更多路數(shù)的外設(shè)中斷信號(hào)時(shí),僅需修改少量的代碼就可實(shí)現(xiàn),同時(shí)可將該中斷控制器封裝成IP核移植到多個(gè)FPGA平臺(tái)上,具有良好的推廣應(yīng)用價(jià)值。

        猜你喜歡
        服務(wù)程序外設(shè)管腳
        基于移動(dòng)終端的人事信息員工自助服務(wù)系統(tǒng)設(shè)計(jì)
        基于C#的進(jìn)程守護(hù)程序的設(shè)計(jì)
        視聽(2020年3期)2020-06-11 14:28:18
        基于圖像處理的異型電子元器件管腳偏移誤差檢測(cè)方法研究
        CMOS數(shù)字IC管腳電容的估算與測(cè)量
        水利工程施工監(jiān)理服務(wù)程序及質(zhì)量控制
        Microchip推出具備雙ADC外設(shè)的全新器件,擴(kuò)展其低成本8位PIC?單片機(jī)產(chǎn)品線
        HC08芯片JVT測(cè)試方法的探究
        貼身呵護(hù) 必不可少的PSP外設(shè)
        外設(shè)天地行情
        外設(shè)天地行情
        福利片免费 亚洲| 中文字幕av一区二区三区人妻少妇 | 亚洲国产一区二区三区最新| 美女偷拍一区二区三区| 精品女同一区二区三区免费战| 免费观看羞羞视频网站| 久久99精品国产99久久| 欧美亚洲尤物久久综合精品| av一区二区三区观看| 亚洲国产日韩a在线乱码| 在线亚洲午夜理论av大片| 国产精品玖玖玖在线资源| 亚洲中文字幕国产剧情| 亚洲国产婷婷六月丁香| 中文字幕精品久久久久人妻| 最新精品国偷自产在线婷婷| 国产精品久久一区二区蜜桃| 337p日本欧洲亚洲大胆色噜噜| 亚洲国产一区二区a毛片| AV无码一区二区三区国产| 国产精品日本中文在线| 后入内射国产一区二区| 日本欧美视频在线观看| 欧美激情国产一区在线不卡| 精品福利一区二区三区| 国产欧美日韩精品丝袜高跟鞋| 激情偷乱人伦小说视频在线| 亚洲无码啊啊啊免费体验| 国产精品国产自产自拍高清av| 爱性久久久久久久久| 国产精品18禁久久久久久久久| 超短裙老师在线观看一区二区| 在厨房拨开内裤进入毛片| 精品亚洲欧美无人区乱码| 青草青草久热精品视频国产4| 亚州中文热码在线视频| 日本亚洲欧美色视频在线播放| 久久综合五月天| 久久精品一区二区三区夜夜| 中国免费看的片| 成人网站免费大全日韩国产|