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