基于FPGA的1553B總線接口板設計
目前國內(nèi)對1553B總線接口板的設計一般基于DDC公司BU-61580協(xié)議芯片完成,但只能完成協(xié)議處理部分,應用時還需外圍的存貯器和微處理器等輔助芯片。故采用現(xiàn)場可編程門陣列(FPGA)實現(xiàn)整個接口板核心的設計。
1 系統(tǒng)總體架構
1553B總線信號進入接口板后,首先通過隔離變壓器進行電平轉化,使之匹配后面收發(fā)器的工作電壓。收發(fā)器再把電平轉化后1553B差分信號轉化為可識別的TTL電平。但此時的信號仍然是曼徹斯特Ⅱ型碼,故需經(jīng)解碼和串并轉換,同時完成數(shù)據(jù)字的同步、數(shù)據(jù)、曼徹斯特碼錯誤的檢出、奇偶檢測和位/ 字計數(shù)等,處理后的數(shù)據(jù)串并轉換后存入內(nèi)存再對其進行相關的協(xié)議處理。發(fā)送數(shù)據(jù)時,將終端接收的數(shù)據(jù)暫存于內(nèi)存中,等待發(fā)送命令。一旦收到發(fā)送命令,即發(fā)送數(shù)據(jù)并通過并串轉換后進行曼徹斯特編碼且調制解調后發(fā)送到1553B的雙余度總線上。
2 系統(tǒng)硬件構成及其實現(xiàn)
信號調制解調用隔離變壓器和收發(fā)器,分別采用的是HOLT公司PM-DB2725EX和HI-1570芯片。而從曼徹斯特編解碼后的部分都可在一片FPGA芯片內(nèi)實現(xiàn),選定Altera公司CyclONe系列的EP1C12作為主芯片。其中FPGA與總線間接口部分的電路如圖2。
FPGA與總線間接口部分的電路
3 FPGA內(nèi)部的模塊構成及實現(xiàn)
FPGA片內(nèi)的實現(xiàn),通過Verilog程序和調用QuartusII軟件內(nèi)部宏模塊完成,可分為雙冗余曼徹斯特II編解碼及串并轉換、總線傳輸邏輯、終端協(xié)議和消息處理、內(nèi)存及控制器和子系統(tǒng)等模塊。
3.1 雙冗余曼徹斯特II編解碼及串并轉換模塊
該模塊實現(xiàn)曼徹斯特碼的編解碼,串并轉換后同總線傳輸邏輯模塊進行通信。原始數(shù)據(jù)采樣采用16M時鐘頻率。
3.2 總線傳輸邏輯模塊
該模塊對上一模塊的16位并行數(shù)據(jù)按1553B協(xié)議定義進行分解、存儲,并給協(xié)議模塊響應信號及對其命令執(zhí)行,發(fā)出相應狀態(tài)字和數(shù)據(jù)字。
3.3 內(nèi)存及控制器模塊
用作系統(tǒng)寄存器和與下級子系統(tǒng)進行數(shù)據(jù)交換的數(shù)據(jù)存貯區(qū),以響應其它各模塊可能存在的寄存器和數(shù)據(jù)訪問,該模塊由以下3個子模塊組成:
DPSRAM模塊:為Quartus軟件宏模塊altsyncram的實例化調用,在物理上為FPGA芯片片內(nèi)SRAM的調用。實例化調用后為雙端口可同時讀寫的同步SRAM內(nèi)存,以滿足總線傳輸邏輯,協(xié)議處理模塊,初始化自檢模塊之一和子系統(tǒng)模塊可能同時存在的訪問請求。
RAM_Control模塊:為上一模塊DPSRAM的內(nèi)存控制器,根據(jù)上游(user_interface模塊)信號產(chǎn)生符合DPSRAM時序的讀寫使能,地址,數(shù)據(jù)和讀寫確認信號。
user_interface模塊:解決多端口輸入不能直接線與和定向輸出從DPSRAM讀取的數(shù)據(jù)的問題。
3.4 終端協(xié)議和消息處理模塊
該模塊解析接收到的命令并通知總線傳輸模塊做出相應的響應。可分為以下4個子模塊:①read模塊完成指令字的讀取;②protocol模塊完成指令字分析和協(xié)議的處理;③write模塊根據(jù)protocol模塊解析命令后發(fā)過來的指令完成對應狀態(tài)字的修改;④choose模塊將對read和 write兩個模塊發(fā)給ram的命令和地址進行選通。
3.5 子系統(tǒng)模塊
子系統(tǒng)含收發(fā)、終端地址產(chǎn)生和校驗等模塊。①收發(fā)模塊:完成存貯器16位的并行數(shù)據(jù)和2400bit串行數(shù)據(jù)的轉換;②終端地址產(chǎn)生和校驗模塊:終端地址由子系統(tǒng)的撥碼開關設定,即讀取撥碼開關的電平值并產(chǎn)生相應的地址奇校驗位后存貯到內(nèi)存的終端地址寄存器中,并初始化狀態(tài)字。編寫以上各模塊代碼時,狀態(tài)機跳轉的條件原來是檢測電平值,但在仿真過程中發(fā)現(xiàn)有時檢測不到或多次檢測到從而導致狀態(tài)機誤操作,改用如下跳變沿檢測后問題得到解決,對應代碼為:
對應代碼
其原理為:將需檢測的信號不斷地通過2個D觸發(fā)器連續(xù)鎖存2次,當檢測到2次鎖存的值符合跳變沿條件時才執(zhí)行動作如圖3。采用該檢測方式后程序仿真不出現(xiàn)類似不穩(wěn)定問題,但同時也造成1個時鐘周期的額外延時。
3.6 仿真及FPGA實現(xiàn)
以上各功能模塊采用Verilog編寫,內(nèi)存則調用QuartusII宏模塊。整個程序的功能仿真,綜合布線和最后的時序仿真均用ALTERA公司的QuartusII完成。各模塊綜合后在QuartusII中編譯后生成symbol。
為某型號調諧濾波器與1553總線通信的消息仿真波形。其中:RT地址設定為00101,即圖4中撥碼開關pat4~pat0的電平值,子地址為00001。復位后第1條消息為RT不發(fā)送數(shù)據(jù)請求時發(fā)送矢量字模式命令及其響應,狀態(tài)字所帶的數(shù)據(jù)字為H0000,該命令循環(huán)發(fā)送至 RT直到有請求第3條消息的情況;第2條消息為RT接收1個數(shù)據(jù)字命令及其響應;第3條是當RT有發(fā)送數(shù)據(jù)請求時的發(fā)送矢量字及其響應,狀態(tài)字所帶的數(shù)據(jù)字為H0001;第4條是RT發(fā)送兩個數(shù)據(jù)字命令及其響應;第5條是帶數(shù)據(jù)字的同步模式命令及其響應。
由仿真波形可見,該系統(tǒng)基本滿足該濾波器的應用,為進一步驗證其實際應用和其他協(xié)議,將其下載至FPGA中進行測試。FPGA內(nèi)部是基于 SRAM結構的,因此需要1片配置芯片固化其內(nèi)部結構,故采用JTAG模式和主動串行模式(AS)2種配置模式。調試時使用JTAG模式直接將邏輯寫入 FPGA內(nèi)部,調試好后再用AS模式將程序寫入配置芯片EPCS4中,經(jīng)測試通過。
4 結語
基于FPGA技術的總線接口板設計,已通過某軍用飛機的測試,實現(xiàn)1553總線和子系統(tǒng)的通訊。將FPGA技術應用于1553B總線接口,設計成本降低,設計周期縮短,系統(tǒng)的集成度提高,擴展能力增強,具有重要的現(xiàn)實意義和應用前景。
評論