(中國空空導彈研究院,洛陽 471009)

圖1 1553B總線數據格式
1553B總線是MIL-STD-1553美國軍用標準總線的簡稱,在飛機的航電系統中得到了廣泛的應用[1-3]。目前,為了實現1553B總線的通信,大多是開發獨立的通信接口模塊,不但成本高,整個系統的重量和體積也會因此增加,不利于航空領域的使用[4-5]。FPGA 近年來在國內發展得非常快,它具有編程方便靈活、集成度高、處理速度快、低功耗等優點[6-8],同時在FPGA內部還集成了ARM硬核、MICROBLAZE軟核等微處理器,使得FPGA在嵌入式系統設計中得到了更加廣泛的應用。本文將ZYNQ-7000系列FPGA內部的ARM硬核處理器與1553B總線編碼IP核結合起來,實現對1553B總線數據的發送功能,從而節約了芯片成本和PCB面積。
1553B總線的數據傳輸速率可達到1 MB/s,即每一位數據都是在1 MHz的時鐘頻率下發送和接收的[9-10]。1553B總線發送或者接收的每一個字都包含20位,其中前3位用來區分命令/狀態字和數據字,最后一位是奇偶校驗位,中間16位是有效數據。前3位同步頭在1.5位處有一個跳變,先高后低表示命令/狀態字,先低后高表示數據字,1553B總線數據格式如圖1所示。
1553B總線采用曼徹斯特II型雙相編碼的規則進行編碼,這種編碼方式適用于變壓器耦合。曼徹斯特II型雙相編碼是一個同步時鐘編碼技術,被物理層使用來編碼一個同步位流的時鐘和數據。在曼徹斯特II型雙相編碼中,每一位的中間都存在一個跳變,這個跳變既可以作為時鐘,也可以作為數據。先低后高的跳變表示“0”,先高后低的跳變表示“1”。所謂的雙相也就是雙極性,由于這種雙相編碼方式本身就包含了自定時信息,因此就不再需要獨立的信道攜帶位定時信息。曼徹斯特II型雙相編碼如圖2所示。

圖2 曼徹斯特II型雙相編碼
曼徹斯特編碼邏輯的功能框圖如圖3所示。

圖3 曼徹斯特編碼邏輯的功能框圖
編碼模塊輸入輸出端口如下:① 時鐘輸入:enc_clk;② 16位并行數據輸入:tx_dword;③ 命令/狀態字標志輸入:tx_csw;④ 數據字標志輸入:tx_dw;⑤ 發送忙狀態指示輸出:tx_busy;⑥ 串行數據輸出:tx_data;⑦ 發送數據有效狀態指示輸出:tx_dval。
編碼器需要一個時鐘頻率為2 MHz的時鐘(enc_clk),正好是需要的數據速率(1 MHz)的2倍。編碼周期開始于tx_csw或tx_dw脈沖,伴隨著命令狀態字或者數據字被發送。然后編碼器發出tx_busy信號,直到編碼器按照所有的編碼功能(插入同步頭、插入奇偶校驗等)連續地將這個字發送出去,最后釋放tx_busy來等待接收下一個新字。
首先寫入要發送的16位并行數據tx_dword和字標志(命令/狀態字標志tx_csw或者數據字標志tx_dw),當檢測到有效的字標志(tx_csw或tx_dw)后,就開始將16位并行數據tx_dword轉換成曼徹斯特碼格式的數據。因為編碼時鐘頻率為2 MHz,所以形成的曼徹斯特碼格式的數據為40位。同步頭按照有效的字標志(tx_csw或tx_dw)形成,命令字或者狀態字的同步頭為6’b111000,數據字的同步頭為6’b000111。16位并行數據tx_dword的每一位按照“1”對應2’b10,“0”對應2’b01來進行編碼,形成32位數據。奇偶檢驗位采用16位并行數據tx_dword,按位異或的計算形成奇偶檢驗結果。曼徹斯特II型雙相編碼仿真波形如圖4所示。

圖4 曼徹斯特II型雙相編碼仿真波形
3.2.1 IP核寄存器設計
在VIVADO開發平臺下自動生成自定義IP核的模板,模板中slv_reg0寄存器對應了IP核的基地址,當FPGA的ARM硬核處理器對IP核的基地址進行寫操作時,就將數據寫入了slv_reg0寄存器,所以可以將slv_reg0寄存器當作1553B總線編碼IP核的控制寄存器。slv_reg0寄存器中的第31位表示命令/狀態字(tx_csw),第30位表示數據字(tx_dw),第15位至第0位表示有效數據。IP核slv_reg0寄存器設計如圖5所示。

圖5 IP核slv_reg0寄存器設計
同時,模板中reg_data_out寄存器也對應了IP核的基地址,當FPGA的ARM硬核處理器對IP核的基地址進行讀操作時,就將reg_data_out寄存器中的數據讀取出來了,所以可以將reg_data_out寄存器當作1553B總線編碼IP核的狀態寄存器。reg_data_out寄存器中的第0位表示串行數據有效(tx_dval),第1位表示正在發送串行數據(tx_busy)。IP核reg_data_out寄存器設計如圖6所示。

圖6 IP核reg_data_out寄存器設計
3.2.2 IP核設計仿真驗證
硬件系統設計如圖7所示。
圖中ZYNQ7 Processing System為ARM硬核處理器,TX1553B_v1_0就是自定義的1553B總線編碼IP核,它們之間通過專用的AXI4Lite總線連接并分配地址。利用在線邏輯分析儀(ila_0)抓取TX1553B_v1_0的串行輸出引腳的波形。設計仿真驗證:①發送命令字0x5555,即將0x80005555寫入IP核控制寄存器slv_reg0,觀察輸出波形,如圖8所示;②讀取IP核狀態寄存器reg_data_out,觀察IP核的狀態,如圖9所示。

圖7 硬件系統設計

圖8 1553B總線編碼IP核輸出波形

圖9 IP核狀態寄存器

[1] 蔣國峰,白紅.1553B總線監控器的設計與實現[J].電子設計工程,2011,19(17):98-100.
[2] 李輝,張敬波,張磊.1553B多功能RT IP核的設計與實現[J].航天控制,2012,30(1):59-65.
[3] 單忠偉.1553B總線遠程終端的FPGA程序設計[J].現代電子技術,2013,36(9):28-30.
[4] 趙明陽,朱巖,張建東,等.基于PCI局部總線的1553B總線接口卡設計[J].現代電子技術,2012,35(10):47-52.
[5] 鄭興,袁斌.基于FPGA的1553B總線RT終端IP核設計[J].河南理工大學學報:自然科學版,2014,33(6):793-798.
[6] 周莉,安軍社,謝彥,等.基于ASIC技術的1553B IP核的設計[J].空間科學學報,2014,34(1):127-136.
[7] 高亞軍.基于FPGA的數字信號處理[M].北京:電子工業出版社,2012.
[8] 張謹,史田甜.基于FPGA的1553B協議接口的實現[J].集成電路通信,2011,29(1):15-19.
[9] 熊華剛,王中華.先進航空電子綜合技術[M].北京:國防工業出版社,2009.
[10] 李憲強.FPGA項目開發實戰講解[M].北京:電子工業出版社,2015.
張文波(工程師),主要研究方向為嵌入式系統設計。