關鍵字:FPGA 1553B總線
MIL-STD-1553 總線是美國20 世紀80 年代制定的第一個軍用數(shù)據(jù)總線標準, 它是一種串行的數(shù)據(jù)總線,。
該總線標準自制定后廣泛應用于軍用飛機,、車輛、船舶中,, 并鑒于其高可靠性和靈活性,, 逐漸應用在許多其他機動平臺上。
1553B 是一種時分制指令/響應式多路傳輸數(shù)據(jù)總線, 總線上的所有消息傳輸都由總線控制器發(fā)起,, 遠程終端對發(fā)出的指令應給予回答( 響應) 并執(zhí)行相關操作,。
這種方式非常適合集中控制的分布式處理系統(tǒng)。1553B總線通信系統(tǒng)是由總線控制器,、遠程終端,、總線監(jiān)控器三部分組成。一個通信總線上最多可以掛32 個遠程終端,, 傳輸介質采用屏蔽雙絞線,, 對噪聲等干擾有很好的抑制能力。1553B 總線的數(shù)據(jù)傳輸率為1 Mb/s ,,在一次消息傳輸中最多可以傳送32 個字,, 所有單次傳輸?shù)臅r間較短, 具有很好的實時性,。
在MIL-STD-1553 總線通信系統(tǒng)中,, 總線接口板是系統(tǒng)的關鍵部分, 其中核心部分的接口電路是總線應用中的主要制約因素,。在1553B 總線得到廣泛應用的今天,, 國內應用1553B 總線協(xié)議的通信模塊的解決方案多采取基于進口1553B 總線協(xié)議芯片來開展相關設計, 如UT 公司的UTl553B 協(xié)議芯片,、DDC 公司的高級協(xié)議處理芯片BU-61580 等,, 雖然這些芯片能夠完成協(xié)議功能, 但價格昂貴,、靈活性差,, 這些弱點在一定程度上限制了設計能力, 因此提出一種新的基于嵌入式方法實現(xiàn)的1553B 數(shù)據(jù)總線接口邏輯,。
1 系統(tǒng)總體設計方案
本文采用Xilinx 公司的FPGA 芯片作為協(xié)議處理核心器件,, 選用TI 公司的TMS320C5510 作為主處理器負責接收FPGA 處理過的數(shù)據(jù)和調度FPGA 的具體操作。
總體方案的系統(tǒng)結構如圖1 所示,。
1.1 模擬收發(fā)部分電路設計
由于1553B 總線上傳輸?shù)氖请p極性的差分信號,, 主處理器不能直接接收來自總線上的數(shù)據(jù), 所以需要信號調制解調及電平轉換電路,。
電平轉換部分一方面將總線上傳輸?shù)碾娖叫盘栟D換成標準的CMOS 電平供處理器使用,, 另一方面將處理器發(fā)出的CMOS 信號變成總線標準進行傳輸。模擬收發(fā)器部分簡單地說就是將單極性曼徹斯特編碼和雙極性曼徹斯特編碼相互轉換,。本文采用HOLT 公司的HI -1567PSI ,, 它是一款專門為MIL-STD-1553 開發(fā)的模擬收發(fā)器, 供電電壓為3.3 V,, 通過隔離變壓器連接到總線上,。HI-1567PSI 是雙通道收發(fā)器結構,, 因此要有兩個隔離變壓器與其相連接。
1.2 總線接口的數(shù)字通信部分
數(shù)字通信部分是1553B 總線接口模塊的核心,, 完成協(xié)議數(shù)據(jù)的收發(fā)處理,, 由可編程邏輯器件Virtex 系列芯片和DSP 芯片組成。FPGA 芯片在模塊中起到1553B 通道的作用,, 接收總線上送來的數(shù)據(jù)并根據(jù)協(xié)議進行處理之后送給處理器,。FPGA 模塊中開辟了足夠空間的FIFO存儲處理后的數(shù)據(jù), 當達到一定數(shù)量后,, 主處理器采用中斷的方式讀取FIFO 中的數(shù)據(jù),。在本文的設計中, 為了便于觀察實驗結果,, 將DSP 接收到的數(shù)據(jù)送到串口上進行顯示,。同樣地,DSP 將要發(fā)送的數(shù)據(jù)送到FPGA 開辟的另一個FIFO 中,, 當每個數(shù)據(jù)編碼結束后通過狀態(tài)機程序產(chǎn)生FIFO 信號的時鐘讀取下一個數(shù)據(jù)進行編碼,,所以這里的FIFO 采用的是異步的工作方式。
2 核心模塊功能分析
總線接口模塊最主要的部分是FPGA 實現(xiàn)的功能,,其總體功能如圖2 所示,。
FPGA 中最重要的部分是發(fā)送器和接收器, 現(xiàn)將這兩部分的工作過程做簡要分析,。
2.1 數(shù)字發(fā)送器
?。?)DSP 將要發(fā)送的數(shù)據(jù)依次送到發(fā)送FIFO 中進行存儲, 硬件將根據(jù)狀態(tài)機運行情況產(chǎn)生FIFO 讀時鐘讀取數(shù)據(jù)并送到同步頭產(chǎn)生器,。
?。?)根據(jù)要發(fā)送的是狀態(tài)/命令字或數(shù)據(jù)字在同步頭產(chǎn)生器中加上相應的同步頭,, 若是狀態(tài)/命令字則在有效數(shù)據(jù)前加上3 個二進制位,, 先正后負, 正負電平各占1.5 bit ,, 數(shù)據(jù)字則相反,。
(3) 奇偶校驗器通過將有效數(shù)據(jù)位的各位進行異或即可實現(xiàn),。
?。? ) 硬件將經(jīng)過奇偶校驗器的數(shù)據(jù)送到曼徹斯特編碼器進行編碼, 編碼器的實現(xiàn)相對較簡單,。編碼時鐘采用2 MHz ,, 有效數(shù)據(jù)位和奇偶校驗位都采用曼徹斯特碼的形式發(fā)送, 加上同步頭共40 bit 二進制位,, 使用2 MHz的時鐘發(fā)送到1553B 數(shù)據(jù)總線上,。
在數(shù)字發(fā)送部分控制狀態(tài)機是保證時序的關鍵所在,, 狀態(tài)機不僅控制發(fā)送FIFO 的時鐘, 同時也有效地輸出編碼的觸發(fā)信號,。狀態(tài)機的狀態(tài)轉移如圖3 所示,。
2.2 數(shù)字接收器
(1)FPGA 將經(jīng)過模擬電路后的單極性曼徹斯特碼送到同步頭檢測器,, 提取同步頭后進行奇偶校驗,, 然后再送到解碼器。
?。?) 解碼器采用8 MHz 的時鐘進行采樣,, 由于曼徹斯特編碼在時鐘的中間時刻有電平的跳變, 所以在采樣到跳變沿的下一個時鐘將采樣到的數(shù)據(jù)取反就得到二進制碼,。同時,, 當計數(shù)器計數(shù)到132 時對一個有效數(shù)據(jù)字解碼結束產(chǎn)生使能信號停止采樣, 將17 bit 二進制數(shù)放到移位寄存器中實現(xiàn)串并轉換,。
?。?) 解碼器在解碼完一個數(shù)據(jù)后會產(chǎn)生接收FIFO的時鐘信號, 將數(shù)據(jù)送到接收FIFO 中,, 當FIFO 中達到可編程滿設定的數(shù)據(jù)后便產(chǎn)生中斷信號,, 通知DSP 將數(shù)據(jù)讀走。
3 功能仿真及試驗結果分析
在研究分析了1553B 總線接口模塊的功能及系統(tǒng)設計后,, 在實驗室經(jīng)過PCB 設計投產(chǎn)了兩塊板卡,, 搭建了實驗平臺并進行功能驗證。由于實驗室條件有限,,功能驗證的設計流程是將發(fā)送模塊DSP 發(fā)送的數(shù)據(jù)經(jīng)過FPGA 處理,, 得到曼徹斯特編碼, 并經(jīng)過模擬收發(fā)器,、耦合變壓器后連接到接收模塊的輸入端,, 信號經(jīng)過模擬電路部分送到FPGA 解碼后送給DSP 處理。
在總線接口模塊中,, 曼徹斯特編解碼是實現(xiàn)功能的核心部分,, 所以編碼數(shù)據(jù)和解碼數(shù)據(jù)是進行功能驗證時觀察的重點。為了觀察曼徹斯特編解碼是否正確,, 這里采用Xilinx 的Chip Scope 邏輯分析儀觀察數(shù)據(jù),,serial_data 是發(fā)送模塊經(jīng)過編碼部分處理后的串行數(shù)據(jù),rx_dword 是接收模塊中經(jīng)過解碼部分得到的16 bit 數(shù)據(jù),, 對比這兩個數(shù)據(jù)的波形是否滿足曼徹斯特編碼標準即可驗證設計的準確性,, 用Chip Scope 捕捉到的波形如圖4 所示。
從上面的波形圖中可以看到,, busy 信號在編碼的過程中一直為高電平,, 在編碼結束后的一個編碼時鐘周期內為低電平,。rx_dval 信號在解碼結束的一個解碼時鐘周期內為高電平, 說明此時解碼結束,, 接收到的數(shù)據(jù)rx_dword 為5 678,,對比發(fā)送的數(shù)據(jù)和編碼數(shù)據(jù)serial_data,說明編解碼均正確,。
同時,, 為了觀察DSP 發(fā)送的數(shù)據(jù)與接收模塊DSP 接收的數(shù)據(jù)是否正確, 提高測試數(shù)據(jù)的直觀性,, 在這里加上串口調試助手,, 通過RS232 總線傳輸接收數(shù)據(jù), 于PC機平臺上運行串口調試助手觀察接收數(shù)據(jù),。
在分析了1553B 總線接口模塊的功能后介紹了總線接口部分的FPGA 系統(tǒng)設計,, 在搭建的平臺上進行了功能驗證, 實驗過程中獲得的數(shù)據(jù)表明了論文中設計的接口模塊的功能達到了預期目標要求,。