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