<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的ISA總線/MMи總線接口轉(zhuǎn)換設(shè)計(jì)

          基于FPGA的ISA總線/MMи總線接口轉(zhuǎn)換設(shè)計(jì)

          作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò) 收藏

          總線廣泛應(yīng)用于計(jì)算機(jī)、工業(yè)生產(chǎn)及各種。ISA總線為IBM公司推出的基于80286CPU的PC/AT微型計(jì)算機(jī)用擴(kuò)展總線標(biāo)準(zhǔn),是俄羅斯國(guó)內(nèi)自行設(shè)計(jì)的專用測(cè)試總線,主要用于程控單元模塊與之間數(shù)據(jù)及控制信息的交換。在某型導(dǎo)彈中,工控計(jì)算機(jī)采用了ISA總線,而俄制采用了,2種總線數(shù)據(jù)模式和傳輸制式不同。本文以為核心,設(shè)計(jì)了ISA總線/MMи總線2種總線之間的數(shù)據(jù)和控制指令轉(zhuǎn)換電路,實(shí)際應(yīng)用證明了該電路的可靠性。

          本文引用地址:http://www.ex-cimer.com/article/201706/348964.htm

          1 ISA總線和MMи總線簡(jiǎn)介

          1.1 ISA總線

          ISA(Industrial Standard Architecture)總線是IBM公司于1984年進(jìn)一步擴(kuò)充XT總線標(biāo)準(zhǔn)而形成的。ISA總線標(biāo)準(zhǔn)支持24位的地址線、16位的數(shù)據(jù)線;支持11級(jí)中斷IRQ3~I(xiàn)RQ7,IRQ9~I(xiàn)RQ12,IRQ14~I(xiàn)RQ15;支持7個(gè)DMA傳輸通道DRQ0~DRQ3,DRQ5~DRQ7;支持主從控制、I/O等待和I/O校驗(yàn)等功能。為了與XT總線保持向下兼容,ISA總線在信號(hào)功能的定義和物理接口上均作了特殊的安排,即保持原有的XT總線不變,重新增加一個(gè)36線的連接插槽,分成C,D兩面,擴(kuò)充的功能設(shè)計(jì)在C,D兩面的信號(hào)線上。其引腳定義如下:
          (1)數(shù)據(jù)總線SD0~SD7。SD0~SD7為8位雙向三態(tài)數(shù)據(jù)總線,在芯片和主接口間傳輸命令、數(shù)據(jù)和狀態(tài)。SD7為最高位。

          寄存器選擇引腳為SA4~SA9,SW DIP-6(板基址011001)和。這些引腳決定轉(zhuǎn)換是否響應(yīng)I/O周期,當(dāng)為邏輯低電平且SA4~SA9與6位撥動(dòng)開關(guān)值完全匹配時(shí),內(nèi)部產(chǎn)生一個(gè)片選信號(hào),使轉(zhuǎn)換響應(yīng)I/O周期。

          (2)地址信號(hào)SA0~SA3。I/O讀寫操作時(shí)作為轉(zhuǎn)換電路上芯片內(nèi)的寄存器選擇信號(hào)。

          (3)讀寫信號(hào),。寫操作中,轉(zhuǎn)換在上升沿鎖存數(shù)據(jù)。讀操作中,當(dāng)有效時(shí),轉(zhuǎn)換模塊直接驅(qū)動(dòng)8位數(shù)據(jù)線。

          (4)中斷信號(hào)INTR。中斷狀態(tài)寄存器某使能中斷為真時(shí),INTR有效。對(duì)INTR的有效聲明沒(méi)有最小脈寬要求。

          (5)I/O通道準(zhǔn)備好信號(hào)IO CHRDY。IOCHRDY變低,表明當(dāng)前I/O周期需要被延長(zhǎng)。寫周期中,當(dāng)數(shù)據(jù)從ISA總線上被鎖存時(shí)IO CHRDY變高。讀周期中,數(shù)據(jù)有效時(shí)IO CHRDY變高。進(jìn)行寄存器讀寫時(shí)IO CHRDY被拉低。IO CHRDY引腳用集電極開路邏輯門驅(qū)動(dòng),因此此信號(hào)會(huì)由一個(gè)內(nèi)部上拉電阻上拉至邏輯高電平。

          (6)復(fù)位信號(hào)RESET。RESET信號(hào)有效時(shí),觸發(fā)轉(zhuǎn)換模塊,使硬重肩。

          1.2 MMи總線

          MMи總線是俄羅斯國(guó)內(nèi)自行設(shè)計(jì)的專用測(cè)試總線,主要用于程控單元模塊與MMи總線之間數(shù)字及控制信息的交換,其基本技術(shù)性能如下:

          (1)MMи總線采用異步、字節(jié)串行、位并行、雙向信息傳輸方式。

          (2)MMи總線采用負(fù)邏輯,模塊服務(wù)請(qǐng)求信號(hào)(зOм)和轉(zhuǎn)換結(jié)束信號(hào)(KПp)除外。低電平電壓為0~0.6 V,表示邏輯1(對(duì)于服務(wù)請(qǐng)求信號(hào)зOМ和轉(zhuǎn)換結(jié)束信號(hào)KПp,邏輯1的電平為2.4~4.5 V);高電平電壓為2.4~4.5 V,表示邏輯0(對(duì)于服務(wù)請(qǐng)求信號(hào)зOМ和轉(zhuǎn)換結(jié)束信號(hào)KПp,邏輯0的電平為0~0.6 V)。

          (3)總線上掛接的程控單元模塊最多為16個(gè)(包括控制器)。

          (4)MMи總線中最多包含92根信號(hào)線路。一個(gè)程控單元模塊內(nèi)所使用的線路最多不超過(guò)50根,最少不少于15根。每一個(gè)具體的程控單元模塊所用的線路數(shù)量,可根據(jù)此模塊的具體技術(shù)要求確定。

          (5)程控單元模塊與MMи控制器間總線電纜的最大長(zhǎng)度不應(yīng)超過(guò)1 m。

          (6)總線內(nèi)的信息傳輸最大速度由程控單元模塊與MMи總線的信息處理能力決定,最大不超過(guò)100 Kb/s。

          (7)總線控制器與程控單元模塊間的連接方式有2種:鏈型連接及星型連接。鏈型連接總線上的所有裝置,包括控制器,都是并行連接的;其中的信號(hào)可以單向或雙向傳輸;星型連接總線將MMи控制器與單個(gè)程控單元模塊一對(duì)一地連接到一起,其中的信號(hào)單向傳輸。

          (8)MMи總線線路可分以下6類:

          數(shù)據(jù)線:“1 pиM,….8 pиM”線路(數(shù)據(jù)總線);第1電平地址線——“Aдp.эм”線路(程控模塊單元地址);第2電平地址線——“A0…A15”線路(信息寄存器地址);同步線——“ΓT”(準(zhǔn)備好),“Пpиeм”(接收),“Bыд”(發(fā)送),“Kнп”(傳輸結(jié)束)線路;控制線——“иAэм”(初始化),“эaпycK эм”(觸發(fā)),“ПO(jiān)зм”(串行詢問(wèn)),“KOм.1……KOм.16”(控制指令)線路;中斷線——“зOм”(請(qǐng)求服務(wù)),“Kпp”(轉(zhuǎn)換結(jié)束)線路。

          程控單元模塊從MMи控制器接收的所有指令都是尋址指令。在中斷線內(nèi),模塊服務(wù)請(qǐng)求信號(hào)“зOм”具有高優(yōu)先級(jí),轉(zhuǎn)換結(jié)束信號(hào)“Kпp”具有低優(yōu)先級(jí)。

          2 硬件設(shè)計(jì)

          2.1 工作原理

          如圖1所示,轉(zhuǎn)換電路由FPGA芯片EPF10K30-RI208-4、FPGA配置器件EPC2LI20、接收緩沖電路、地址比較電路和總線接收電路組成。工作原理如下:當(dāng)轉(zhuǎn)換電路工作時(shí),首先根據(jù)FPGA配置器件內(nèi)的文件對(duì)FPGA芯片進(jìn)行自動(dòng)配置,當(dāng)ISA總線相應(yīng)地址位與6位撥動(dòng)開關(guān)值匹配時(shí)(撥動(dòng)開關(guān)為預(yù)設(shè)待轉(zhuǎn)數(shù)據(jù)模塊地址),選中需要轉(zhuǎn)換數(shù)據(jù)的地址,然后由ISA數(shù)據(jù)總線發(fā)送數(shù)據(jù)或命令,F(xiàn)PGA芯片中的譯碼電路結(jié)合地址總線信號(hào)和控制總線信號(hào)將控制數(shù)據(jù)轉(zhuǎn)為MMи總線對(duì)后級(jí)程控模塊的控制指令,對(duì)后級(jí)模塊實(shí)現(xiàn)控制。

          當(dāng)傳遞某MMи程控模塊的數(shù)據(jù)時(shí),首先將MMи程控模塊初始化,然后由ISA總線發(fā)送“模塊選址”數(shù)據(jù),寫入FPGA中地址寄存器后,經(jīng)譯碼產(chǎn)生選址信號(hào),并由觸發(fā)器保持。選址后,ISA總線發(fā)送“初始化”指令,寫入命令寄存器后,經(jīng)譯碼產(chǎn)生初始化信號(hào)。當(dāng)監(jiān)測(cè)到“準(zhǔn)備好”信號(hào)時(shí),說(shuō)明初始化成功,發(fā)送“清除模塊選址”信號(hào)。

          MMи程控模塊接收信息時(shí),在被尋址且發(fā)出準(zhǔn)備好信號(hào)后,ISA總線將要寫入程控模塊的數(shù)據(jù)先寫入FPGA中的數(shù)據(jù)輸出寄存器中,然后發(fā)送到MMи數(shù)據(jù)總線上,發(fā)出“Пpиeм”接收信號(hào),程控模塊根據(jù)此信號(hào)將數(shù)據(jù)寫入相應(yīng)信息寄存器。信息接收結(jié)束后,取消“Пpиeм”接收信號(hào),取消MMи數(shù)據(jù)總線上數(shù)據(jù)。程控模塊準(zhǔn)備接收新的信息字節(jié),并產(chǎn)生準(zhǔn)備好的信號(hào)。
          程控模塊發(fā)送信息時(shí),在被尋址且發(fā)出準(zhǔn)備好信號(hào)后,由ISA總線控制沿“A0~A2”線路指定接收信息寄存器地址,并發(fā)出“Bыд.”發(fā)送信號(hào),程控模塊根據(jù)此信號(hào)從發(fā)送信息寄存器沿MMи數(shù)據(jù)總線發(fā)出信息字節(jié),所發(fā)出的信息字節(jié)被讀取到FPGA中的數(shù)據(jù)輸入寄存器后由ISA總線控制讀出。

          2.2 FPGA配置器件電路

          FPGA配置器件電路如圖2所示,EPC2LI20為配置芯片,工作電壓5 V或3.3 V,支持在系統(tǒng)編程(ISP)和菊花鏈配置,可重復(fù)編程;EPF10K 30R1208-4為Altera公司生產(chǎn)FPGA芯片,工作電壓為5 V,包含邏輯單元1 728個(gè),存儲(chǔ)位數(shù)12 288位;JP為通過(guò)QuartusⅡ軟件對(duì)配置芯片進(jìn)行程序燒寫接口。

          該配置電路采用PS配置方式,首先通過(guò)QuartusⅡ軟件將FPGA的邏輯程序?qū)懭肱渲眯酒珽PC2LI20,該芯片數(shù)據(jù)具有掉電保護(hù)功能。上電后,配置芯片和FPGA同時(shí)復(fù)位,然后FPGA向配置芯片發(fā)送程序下載請(qǐng)求,配置芯片將存儲(chǔ)的邏輯程序?qū)懭隖PGA,對(duì)FPGA進(jìn)行配置.配置完成后,F(xiàn)PGA內(nèi)部的寄存器和I/O管腳均被初始化。完成初始化程序后,F(xiàn)PGA按照設(shè)計(jì)的邏輯功能正常工作,即按要求實(shí)現(xiàn)兩種總線之間的數(shù)據(jù)轉(zhuǎn)換。

          2.3 地址比較電路

          地址比較電路如圖3所示。74SL14為帶滯環(huán)比較的反向緩沖器,74SL85為4位數(shù)字比較器,6位的撥碼開關(guān)為預(yù)存待轉(zhuǎn)數(shù)據(jù)程控模塊地址,74SL00為反向緩沖器。撥碼開關(guān)共有6位,每1位都可以是邏輯高電平“1”或是邏輯低電平“0”,故該撥碼開關(guān)共有26個(gè)組合,可以代表26個(gè)程控模塊的地址。如圖3所示,撥碼開關(guān)為011001,代表將要進(jìn)行轉(zhuǎn)換的數(shù)據(jù)來(lái)自地址為011001的程控模塊,當(dāng)控制信號(hào)給定的地址A27~A22與011001相符時(shí),74SL00輸出低電平,該低電平與ISA總線的讀控制信號(hào)IOR和寫控制信號(hào)IOW#一起構(gòu)成FPGA從ISA總線讀數(shù)據(jù)或向ISA總線寫數(shù)據(jù)控制信號(hào)。



          3 程序設(shè)計(jì)

          實(shí)現(xiàn)ISA總線/MMи總線之間的數(shù)據(jù)轉(zhuǎn)換流程圖如圖4所示。程序開始后,首先與撥碼開關(guān)比較得到待轉(zhuǎn)換數(shù)據(jù)程控模塊的地址,然后FPGA通過(guò)配置芯片進(jìn)行初始化,初始化完成后,待轉(zhuǎn)數(shù)據(jù)程控模塊的地址寫入FPGA,F(xiàn)PGA自動(dòng)分配傳輸數(shù)據(jù)的通道;然后,由ISA總線(MMи總線)發(fā)出數(shù)據(jù)傳輸請(qǐng)求信號(hào),當(dāng)MMи總線(ISA總線)準(zhǔn)備好接收數(shù)據(jù)后,發(fā)一個(gè)應(yīng)答信號(hào)給ISA總線(MMи總線),表示數(shù)據(jù)傳輸準(zhǔn)備好,然后進(jìn)行數(shù)據(jù)傳輸,一直到數(shù)據(jù)傳輸完畢;發(fā)送的數(shù)據(jù)寫入接收端的數(shù)據(jù)緩沖器,MMи總線(ISA總線)從數(shù)據(jù)緩沖器讀出輸出的數(shù)據(jù)發(fā)送到相應(yīng)的程控模塊,從而完成從ISA總線(MMи總線)到MMи總線(ISA總線)的數(shù)據(jù)轉(zhuǎn)換。

          4 實(shí)驗(yàn)結(jié)果

          應(yīng)用設(shè)計(jì)的ISA總線/MMи總線轉(zhuǎn)換電路以串行方式對(duì)一組數(shù)據(jù)進(jìn)行轉(zhuǎn)換。ISA總線向MMи總線傳輸數(shù)據(jù)的實(shí)驗(yàn)結(jié)果如圖5(a)所示,當(dāng)ISA控制信號(hào)發(fā)出詢問(wèn)脈沖(第2個(gè)波形第1個(gè)脈沖)時(shí),MMи總線給出應(yīng)答信號(hào)(第4個(gè)波形第1個(gè)脈沖);收到MMи總線給出的應(yīng)答(同步)信號(hào)后,ISA總線將數(shù)據(jù)信號(hào)11010101發(fā)送(第3個(gè)波形);由于MMи總線數(shù)據(jù)信號(hào)采用的是負(fù)邏輯,因此,MMи總線上收到了發(fā)送的信號(hào)00101010(第5個(gè)波形)。實(shí)驗(yàn)結(jié)果證明,設(shè)計(jì)的電路可以實(shí)現(xiàn)ISA總線到MMи總線的數(shù)據(jù)轉(zhuǎn)換。由MMи總線向ISA總線傳輸數(shù)據(jù)的實(shí)驗(yàn)結(jié)果如圖5(b)所示,當(dāng)MMи總線發(fā)送的數(shù)據(jù)為00110011時(shí),ISA總線接收的數(shù)據(jù)為11001100。
          用設(shè)計(jì)的電路插板更換導(dǎo)彈測(cè)試設(shè)備上的俄制電路插板,并用測(cè)試設(shè)備對(duì)某型導(dǎo)彈進(jìn)行常規(guī)測(cè)試,測(cè)試結(jié)果符合測(cè)試要求。實(shí)際應(yīng)用證明,設(shè)計(jì)的電路達(dá)到設(shè)計(jì)目的,可以可靠地實(shí)現(xiàn)ISA總線/MMи總線之間的數(shù)據(jù)轉(zhuǎn)換。


          5 結(jié)語(yǔ)

          ISA總線和MMи總線是2種完全不同的總線,ISA總線采用美制標(biāo)準(zhǔn),而MMи總線采用俄制標(biāo)準(zhǔn),因此在俄制測(cè)試設(shè)備中,ISA總線/MMи總線的轉(zhuǎn)換電路板是必備的。本文設(shè)計(jì)的電路完全能代替俄制電路板實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換功能,極大提高了部隊(duì)裝備的保障力;同時(shí),由于俄制電路板價(jià)格較貴,因此采用國(guó)產(chǎn)器件實(shí)現(xiàn)的該轉(zhuǎn)換電路也具有較高的經(jīng)濟(jì)價(jià)值。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();