李 娟,周井泉
(南京郵電大學 電子科學與工程學院,江蘇 南京210003)
MIL-STD-1553總線是美國20世紀80年代制定的第一個軍用數(shù)據(jù)總線標準,它是一種串行的數(shù)據(jù)總線。該總線標準自制定后廣泛應用于軍用飛機、車輛、船舶中,并鑒于其高可靠性和靈活性,逐漸應用在許多其他機動平臺上。
1553 B是一種時分制指令/響應式多路傳輸數(shù)據(jù)總線,總線上的所有消息傳輸都由總線控制器發(fā)起,遠程終端對發(fā)出的指令應給予回答(響應)并執(zhí)行相關操作。這種方式非常適合集中控制的分布式處理系統(tǒng)。1553B總線通信系統(tǒng)是由總線控制器、遠程終端、總線監(jiān)控器三部分組成。一個通信總線上最多可以掛32個遠程終端,傳輸介質采用屏蔽雙絞線,對噪聲等干擾有很好的抑制能力。1553B總線的數(shù)據(jù)傳輸率為1 Mb/s,在一次消息傳輸中最多可以傳送32個字,所有單次傳輸?shù)臅r間較短,具有很好的實時性[1]。
在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ù)總線接口邏輯。
本文采用Xilinx公司的FPGA芯片作為協(xié)議處理核心器件,選用TI公司的TMS320C5510作為主處理器負責接收FPGA處理過的數(shù)據(jù)和調度FPGA的具體操作。總體方案的系統(tǒng)結構如圖1所示。
由于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ā)器結構,因此要有兩個隔離變壓器與其相連接。
數(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采用的是異步的工作方式。
總線接口模塊最主要的部分是FPGA實現(xiàn)的功能,其總體功能如圖2所示。
FPGA中最重要的部分是發(fā)送器和接收器,現(xiàn)將這兩部分的工作過程做簡要分析。
(1)DSP將要發(fā)送的數(shù)據(jù)依次送到發(fā)送 FIFO中進行存儲,硬件將根據(jù)狀態(tài)機運行情況產(chǎn)生FIFO讀時鐘讀取數(shù)據(jù)并送到同步頭產(chǎn)生器。
(2)根據(jù)要發(fā)送的是狀態(tài)/命令字或數(shù)據(jù)字在同步頭產(chǎn)生器中加上相應的同步頭,若是狀態(tài)/命令字則在有效數(shù)據(jù)前加上3個二進制位,先正后負,正負電平各占1.5 bit,數(shù)據(jù)字則相反。
(3)奇偶校驗器通過將有效數(shù)據(jù)位的各位進行異或即可實現(xiàn)。
(4)硬件將經(jīng)過奇偶校驗器的數(shù)據(jù)送到曼徹斯特編碼器進行編碼,編碼器的實現(xiàn)相對較簡單。編碼時鐘采用2 MHz,有效數(shù)據(jù)位和奇偶校驗位都采用曼徹斯特碼的形式發(fā)送,加上同步頭共40 bit二進制位,使用2 MHz的時鐘發(fā)送到1553B數(shù)據(jù)總線上[2]。
在數(shù)字發(fā)送部分控制狀態(tài)機是保證時序的關鍵所在,狀態(tài)機不僅控制發(fā)送FIFO的時鐘,同時也有效地輸出編碼的觸發(fā)信號。狀態(tài)機的狀態(tài)轉移如圖3所示。
(1)FPGA將經(jīng)過模擬電路后的單極性曼徹斯特碼送到同步頭檢測器,提取同步頭后進行奇偶校驗,然后再送到解碼器。
(2)解碼器采用 8 MHz的時鐘進行采樣,由于曼徹斯特編碼在時鐘的中間時刻有電平的跳變,所以在采樣到跳變沿的下一個時鐘將采樣到的數(shù)據(jù)取反就得到二進制碼。同時,當計數(shù)器計數(shù)到132時對一個有效數(shù)據(jù)字解碼結束產(chǎn)生使能信號停止采樣,將17 bit二進制數(shù)放到移位寄存器中實現(xiàn)串并轉換。
(3)解碼器在解碼完一個數(shù)據(jù)后會產(chǎn)生接收FIFO的時鐘信號,將數(shù)據(jù)送到接收FIFO中,當FIFO中達到可編程滿設定的數(shù)據(jù)后便產(chǎn)生中斷信號,通知DSP將數(shù)據(jù)讀走。
在研究分析了1553B總線接口模塊的功能及系統(tǒng)設計[3-5]后,在實驗室經(jīng)過PCB設計投產(chǎn)了兩塊板卡,搭建了實驗平臺并進行功能驗證。由于實驗室條件有限,功能驗證的設計流程是將發(fā)送模塊DSP發(fā)送的數(shù)據(jù)經(jīng)過FPGA處理,得到曼徹斯特編碼,并經(jīng)過模擬收發(fā)器、耦合變壓器后連接到接收模塊的輸入端,信號經(jīng)過模擬電路部分送到FPGA解碼后送給DSP處理[6-7]。
在總線接口模塊中,曼徹斯特編解碼是實現(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ù)表明了論文中設計的接口模塊的功能達到了預期目標要求。
[1]DDC Company.MIL-STD-1553 Designer’s Guide.pdf[S].Sixth Edition.1998.
[2]CONDOR ENGINEERING.MIL-STD-1553 tutorial.pdf[S].1997.
[3]武恒州,王維.基于FPGA的1553B總線控制器接口芯片設計[J].儀器儀表用戶,2010,17(3):45-46.
[4]陳衛(wèi)濤,史忠科.基于FPGA的1553B總線系統(tǒng)設計與實現(xiàn)[J].測控技術,2008,27(8):74-76.
[5]湯清華,曾婷婷,吳國安.1553B多路總線接口的FPGA設計[J].設計與應用,2007,15(4):501-502.
[6]程希,羅志會,陳小剛.一種基于FPGA的曼徹斯特編譯碼電路設計[J].2008,30(6):85-87.
[7]何鵬.基于DSP+FPGA的1553B總線接口通訊模塊的研究和應用[D].西安:長安大學,2009.