基于FPGA的ISA總線(xiàn)/MMи總線(xiàn)接口轉換設計
總線(xiàn)廣泛應用于計算機、工業(yè)生產(chǎn)及各種測試設備。ISA總線(xiàn)為IBM公司推出的基于80286CPU的PC/AT微型計算機用擴展總線(xiàn)標準,MMи總線(xiàn)是俄羅斯國內自行設計的專(zhuān)用測試總線(xiàn),主要用于程控單元模塊與MMи總線(xiàn)之間數據及控制信息的交換。在某型導彈測試設備中,工控計算機采用了ISA總線(xiàn),而俄制測試設備采用了MMи總線(xiàn),2種總線(xiàn)數據模式和傳輸制式不同。本文以FPGA為核心,設計了ISA總線(xiàn)/MMи總線(xiàn)2種總線(xiàn)之間的數據和控制指令轉換電路,實(shí)際應用證明了該電路的可靠性。
本文引用地址:http://dyxdggzs.com/article/201706/348964.htm1 ISA總線(xiàn)和MMи總線(xiàn)簡(jiǎn)介
1.1 ISA總線(xiàn)
ISA(Industrial Standard Architecture)總線(xiàn)是IBM公司于1984年進(jìn)一步擴充XT總線(xiàn)標準而形成的。ISA總線(xiàn)標準支持24位的地址線(xiàn)、16位的數據線(xiàn);支持11級中斷IRQ3~IRQ7,IRQ9~IRQ12,IRQ14~IRQ15;支持7個(gè)DMA傳輸通道DRQ0~DRQ3,DRQ5~DRQ7;支持主從控制、I/O等待和I/O校驗等功能。為了與XT總線(xiàn)保持向下兼容,ISA總線(xiàn)在信號功能的定義和物理接口上均作了特殊的安排,即保持原有的XT總線(xiàn)不變,重新增加一個(gè)36線(xiàn)的連接插槽,分成C,D兩面,擴充的功能設計在C,D兩面的信號線(xiàn)上。其引腳定義如下:
(1)數據總線(xiàn)SD0~SD7。SD0~SD7為8位雙向三態(tài)數據總線(xiàn),在芯片和主接口間傳輸命令、數據和狀態(tài)。SD7為最高位。
寄存器選擇引腳為SA4~SA9,SW DIP-6(板基址011001)和。這些引腳決定轉換是否響應I/O周期,當為邏輯低電平且SA4~SA9與6位撥動(dòng)開(kāi)關(guān)值完全匹配時(shí),內部產(chǎn)生一個(gè)片選信號,使轉換響應I/O周期。
(2)地址信號SA0~SA3。I/O讀寫(xiě)操作時(shí)作為轉換電路上FPGA芯片內的寄存器選擇信號。
(3)讀寫(xiě)信號,。寫(xiě)操作中,轉換在上升沿鎖存數據。讀操作中,當有效時(shí),轉換模塊直接驅動(dòng)8位數據線(xiàn)。
(4)中斷信號INTR。中斷狀態(tài)寄存器某使能中斷為真時(shí),INTR有效。對INTR的有效聲明沒(méi)有最小脈寬要求。
(5)I/O通道準備好信號IO CHRDY。IOCHRDY變低,表明當前I/O周期需要被延長(cháng)。寫(xiě)周期中,當數據從ISA總線(xiàn)上被鎖存時(shí)IO CHRDY變高。讀周期中,數據有效時(shí)IO CHRDY變高。進(jìn)行寄存器讀寫(xiě)時(shí)IO CHRDY被拉低。IO CHRDY引腳用集電極開(kāi)路邏輯門(mén)驅動(dòng),因此此信號會(huì )由一個(gè)內部上拉電阻上拉至邏輯高電平。
(6)復位信號RESET。RESET信號有效時(shí),觸發(fā)轉換模塊,使FPGA硬重肩。
1.2 MMи總線(xiàn)
MMи總線(xiàn)是俄羅斯國內自行設計的專(zhuān)用測試總線(xiàn),主要用于程控單元模塊與MMи總線(xiàn)之間數字及控制信息的交換,其基本技術(shù)性能如下:
(1)MMи總線(xiàn)采用異步、字節串行、位并行、雙向信息傳輸方式。
(2)MMи總線(xiàn)采用負邏輯,模塊服務(wù)請求信號(зOм)和轉換結束信號(KПp)除外。低電平電壓為0~0.6 V,表示邏輯1(對于服務(wù)請求信號зOМ和轉換結束信號KПp,邏輯1的電平為2.4~4.5 V);高電平電壓為2.4~4.5 V,表示邏輯0(對于服務(wù)請求信號зOМ和轉換結束信號KПp,邏輯0的電平為0~0.6 V)。
(3)總線(xiàn)上掛接的程控單元模塊最多為16個(gè)(包括控制器)。
(4)MMи總線(xiàn)中最多包含92根信號線(xiàn)路。一個(gè)程控單元模塊內所使用的線(xiàn)路最多不超過(guò)50根,最少不少于15根。每一個(gè)具體的程控單元模塊所用的線(xiàn)路數量,可根據此模塊的具體技術(shù)要求確定。
(5)程控單元模塊與MMи控制器間總線(xiàn)電纜的最大長(cháng)度不應超過(guò)1 m。
(6)總線(xiàn)內的信息傳輸最大速度由程控單元模塊與MMи總線(xiàn)的信息處理能力決定,最大不超過(guò)100 Kb/s。
(7)總線(xiàn)控制器與程控單元模塊間的連接方式有2種:鏈型連接及星型連接。鏈型連接總線(xiàn)上的所有裝置,包括控制器,都是并行連接的;其中的信號可以單向或雙向傳輸;星型連接總線(xiàn)將MMи控制器與單個(gè)程控單元模塊一對一地連接到一起,其中的信號單向傳輸。
(8)MMи總線(xiàn)線(xiàn)路可分以下6類(lèi):
數據線(xiàn):“1 pиM,….8 pиM”線(xiàn)路(數據總線(xiàn));第1電平地址線(xiàn)——“Aдp.эм”線(xiàn)路(程控模塊單元地址);第2電平地址線(xiàn)——“A0…A15”線(xiàn)路(信息寄存器地址);同步線(xiàn)——“ΓT”(準備好),“Пpиeм”(接收),“Bыд”(發(fā)送),“Kнп”(傳輸結束)線(xiàn)路;控制線(xiàn)——“иA(yíng)эм”(初始化),“эaпycK эм”(觸發(fā)),“ПOзм”(串行詢(xún)問(wèn)),“KOм.1……KOм.16”(控制指令)線(xiàn)路;中斷線(xiàn)——“зOм”(請求服務(wù)),“Kпp”(轉換結束)線(xiàn)路。
程控單元模塊從MMи控制器接收的所有指令都是尋址指令。在中斷線(xiàn)內,模塊服務(wù)請求信號“зOм”具有高優(yōu)先級,轉換結束信號“Kпp”具有低優(yōu)先級。
2 硬件設計
2.1 工作原理
如圖1所示,轉換電路由FPGA芯片EPF10K30-RI208-4、FPGA配置器件EPC2LI20、接收緩沖電路、地址比較電路和總線(xiàn)接收電路組成。工作原理如下:當轉換電路工作時(shí),首先根據FPGA配置器件內的文件對FPGA芯片進(jìn)行自動(dòng)配置,當ISA總線(xiàn)相應地址位與6位撥動(dòng)開(kāi)關(guān)值匹配時(shí)(撥動(dòng)開(kāi)關(guān)為預設待轉數據模塊地址),選中需要轉換數據的地址,然后由ISA數據總線(xiàn)發(fā)送數據或命令,FPGA芯片中的譯碼電路結合地址總線(xiàn)信號和控制總線(xiàn)信號將控制數據轉為MMи總線(xiàn)對后級程控模塊的控制指令,對后級模塊實(shí)現控制。
當傳遞某MMи程控模塊的數據時(shí),首先將MMи程控模塊初始化,然后由ISA總線(xiàn)發(fā)送“模塊選址”數據,寫(xiě)入FPGA中地址寄存器后,經(jīng)譯碼產(chǎn)生選址信號,并由觸發(fā)器保持。選址后,ISA總線(xiàn)發(fā)送“初始化”指令,寫(xiě)入命令寄存器后,經(jīng)譯碼產(chǎn)生初始化信號。當監測到“準備好”信號時(shí),說(shuō)明初始化成功,發(fā)送“清除模塊選址”信號。
MMи程控模塊接收信息時(shí),在被尋址且發(fā)出準備好信號后,ISA總線(xiàn)將要寫(xiě)入程控模塊的數據先寫(xiě)入FPGA中的數據輸出寄存器中,然后發(fā)送到MMи數據總線(xiàn)上,發(fā)出“Пpиeм”接收信號,程控模塊根據此信號將數據寫(xiě)入相應信息寄存器。信息接收結束后,取消“Пpиeм”接收信號,取消MMи數據總線(xiàn)上數據。程控模塊準備接收新的信息字節,并產(chǎn)生準備好的信號。
程控模塊發(fā)送信息時(shí),在被尋址且發(fā)出準備好信號后,由ISA總線(xiàn)控制沿“A0~A2”線(xiàn)路指定接收信息寄存器地址,并發(fā)出“Bыд.”發(fā)送信號,程控模塊根據此信號從發(fā)送信息寄存器沿MMи數據總線(xiàn)發(fā)出信息字節,所發(fā)出的信息字節被讀取到FPGA中的數據輸入寄存器后由ISA總線(xiàn)控制讀出。
2.2 FPGA配置器件電路
FPGA配置器件電路如圖2所示,EPC2LI20為配置芯片,工作電壓5 V或3.3 V,支持在系統編程(ISP)和菊花鏈配置,可重復編程;EPF10K 30R1208-4為Altera公司生產(chǎn)FPGA芯片,工作電壓為5 V,包含邏輯單元1 728個(gè),存儲位數12 288位;JP為通過(guò)QuartusⅡ軟件對配置芯片進(jìn)行程序燒寫(xiě)接口。
該配置電路采用PS配置方式,首先通過(guò)QuartusⅡ軟件將FPGA的邏輯程序寫(xiě)入配置芯片EPC2LI20,該芯片數據具有掉電保護功能。上電后,配置芯片和FPGA同時(shí)復位,然后FPGA向配置芯片發(fā)送程序下載請求,配置芯片將存儲的邏輯程序寫(xiě)入FPGA,對FPGA進(jìn)行配置.配置完成后,FPGA內部的寄存器和I/O管腳均被初始化。完成初始化程序后,FPGA按照設計的邏輯功能正常工作,即按要求實(shí)現兩種總線(xiàn)之間的數據轉換。
2.3 地址比較電路
地址比較電路如圖3所示。74SL14為帶滯環(huán)比較的反向緩沖器,74SL85為4位數字比較器,6位的撥碼開(kāi)關(guān)為預存待轉數據程控模塊地址,74SL00為反向緩沖器。撥碼開(kāi)關(guān)共有6位,每1位都可以是邏輯高電平“1”或是邏輯低電平“0”,故該撥碼開(kāi)關(guān)共有26個(gè)組合,可以代表26個(gè)程控模塊的地址。如圖3所示,撥碼開(kāi)關(guān)為011001,代表將要進(jìn)行轉換的數據來(lái)自地址為011001的程控模塊,當控制信號給定的地址A27~A22與011001相符時(shí),74SL00輸出低電平,該低電平與ISA總線(xiàn)的讀控制信號IOR和寫(xiě)控制信號IOW#一起構成FPGA從ISA總線(xiàn)讀數據或向ISA總線(xiàn)寫(xiě)數據控制信號。
3 程序設計
實(shí)現ISA總線(xiàn)/MMи總線(xiàn)之間的數據轉換流程圖如圖4所示。程序開(kāi)始后,首先與撥碼開(kāi)關(guān)比較得到待轉換數據程控模塊的地址,然后FPGA通過(guò)配置芯片進(jìn)行初始化,初始化完成后,待轉數據程控模塊的地址寫(xiě)入FPGA,FPGA自動(dòng)分配傳輸數據的通道;然后,由ISA總線(xiàn)(MMи總線(xiàn))發(fā)出數據傳輸請求信號,當MMи總線(xiàn)(ISA總線(xiàn))準備好接收數據后,發(fā)一個(gè)應答信號給ISA總線(xiàn)(MMи總線(xiàn)),表示數據傳輸準備好,然后進(jìn)行數據傳輸,一直到數據傳輸完畢;發(fā)送的數據寫(xiě)入接收端的數據緩沖器,MMи總線(xiàn)(ISA總線(xiàn))從數據緩沖器讀出輸出的數據發(fā)送到相應的程控模塊,從而完成從ISA總線(xiàn)(MMи總線(xiàn))到MMи總線(xiàn)(ISA總線(xiàn))的數據轉換。
4 實(shí)驗結果
應用設計的ISA總線(xiàn)/MMи總線(xiàn)轉換電路以串行方式對一組數據進(jìn)行轉換。ISA總線(xiàn)向MMи總線(xiàn)傳輸數據的實(shí)驗結果如圖5(a)所示,當ISA控制信號發(fā)出詢(xún)問(wèn)脈沖(第2個(gè)波形第1個(gè)脈沖)時(shí),MMи總線(xiàn)給出應答信號(第4個(gè)波形第1個(gè)脈沖);收到MMи總線(xiàn)給出的應答(同步)信號后,ISA總線(xiàn)將數據信號11010101發(fā)送(第3個(gè)波形);由于MMи總線(xiàn)數據信號采用的是負邏輯,因此,MMи總線(xiàn)上收到了發(fā)送的信號00101010(第5個(gè)波形)。實(shí)驗結果證明,設計的電路可以實(shí)現ISA總線(xiàn)到MMи總線(xiàn)的數據轉換。由MMи總線(xiàn)向ISA總線(xiàn)傳輸數據的實(shí)驗結果如圖5(b)所示,當MMи總線(xiàn)發(fā)送的數據為00110011時(shí),ISA總線(xiàn)接收的數據為11001100。
用設計的電路插板更換導彈測試設備上的俄制電路插板,并用測試設備對某型導彈進(jìn)行常規測試,測試結果符合測試要求。實(shí)際應用證明,設計的電路達到設計目的,可以可靠地實(shí)現ISA總線(xiàn)/MMи總線(xiàn)之間的數據轉換。
5 結語(yǔ)
ISA總線(xiàn)和MMи總線(xiàn)是2種完全不同的總線(xiàn),ISA總線(xiàn)采用美制標準,而MMи總線(xiàn)采用俄制標準,因此在俄制測試設備中,ISA總線(xiàn)/MMи總線(xiàn)的轉換電路板是必備的。本文設計的電路完全能代替俄制電路板實(shí)現數據轉換功能,極大提高了部隊裝備的保障力;同時(shí),由于俄制電路板價(jià)格較貴,因此采用國產(chǎn)器件實(shí)現的該轉換電路也具有較高的經(jīng)濟價(jià)值。
評論