柏正興 鄧 晶
(蘇州大學 電子信息學院 江蘇 蘇州 215006)
1553B總線,全稱為飛行器內(nèi)部時分命令/響應(yīng)式多路數(shù)據(jù)總線,是美國關(guān)于數(shù)據(jù)總線電氣特性和協(xié)議規(guī)范的一種航空串行總線標準,擁有突出的靈活性及可靠性等性能,在航空航天、艦船等平臺上應(yīng)用時間最早,也最為持久[1].隨著國際上對 1553B 總線研究的深入,研制出了1553B 協(xié)議專用協(xié)議芯片,如 INTEL 公司的 M82553,DDC 公司的ACE 系列產(chǎn)品以及 ACTEL研發(fā)的1553BBC等[2].而目前國內(nèi)使用的1553B芯片絕大多數(shù)是從國外進口,但是集成化程度不高,且核心技術(shù)受限,價格非常昂貴[3].
對此,國內(nèi)的一些單位也開展了針對1553B 協(xié)議芯片的研究.在研發(fā)的過程中,較為關(guān)鍵的部分是對 1553B協(xié)議芯片的編解碼器的設(shè)計[4],本文就在研究了1553B協(xié)議規(guī)范的基礎(chǔ)上,設(shè)計了一種基于1553B協(xié)議的可靠的編解碼器.為后續(xù)1553B協(xié)議的IP核設(shè)計打下堅實的基礎(chǔ).最后對所設(shè)計的編解碼器進行了仿真測試.
1553B數(shù)據(jù)總線以異步、命令/響應(yīng)方式執(zhí)行數(shù)據(jù)信息的傳輸,其通信方式采用半雙工方式[5],數(shù)據(jù)傳輸速率是1 Mb/s,它遵循曼切斯特Ⅱ型碼規(guī)則[6].將邏輯0用編碼01來表示,其中0和1各占0.5 us,即用一個由低到高的跳變來表示;將邏輯1用編碼10來表示,其中1和0各占0.5 us,即用一個由高到低的跳變來表示,它包含了自身的時鐘特征,可以直接從數(shù)據(jù)中分離出定時時鐘[7],曼徹斯特Ⅱ型數(shù)據(jù)編碼格式如圖1所示.
圖1曼徹斯特Ⅱ型數(shù)據(jù)編碼格式
根據(jù)1553B總線標準,總線上的傳輸?shù)南⒎譃槿N類型的字:命令字、 數(shù)據(jù)字和狀態(tài)字[8],如圖2所示.每一種字類型都對應(yīng)唯一的格式,但三種字類型的數(shù)據(jù)結(jié)構(gòu)相同[9].每個字共有20 bit, 起始的3 bit是同步字頭,標志新字的開始,同步字頭是無效的曼徹斯特碼,因為其跳變僅發(fā)生在第二比特的正中間[10].接著的16 bit是數(shù)據(jù)/命令/狀態(tài)位,三種類型的字有不同的定義[11].最后1 bit是該字對16 bit數(shù)據(jù)字的奇偶校驗位,協(xié)議標準規(guī)定為奇校驗[12].
圖2 1553B總線三種消息字類型
編解碼模塊設(shè)計包括曼徹斯特上線編碼和下線解碼[13].上線編碼即對 16 位的命令/狀態(tài)字或數(shù)據(jù)字進行處理,包括同步頭加載,奇校驗位填充,然后對20位的消息字進行曼徹斯特編碼再經(jīng)并串轉(zhuǎn)換發(fā)送到總線上;解碼即是編碼的逆過程,接收數(shù)據(jù)總線發(fā)來的串行數(shù)據(jù)流,進行串并轉(zhuǎn)換,同步頭檢測,數(shù)據(jù)解碼及奇校驗錯誤檢測[14].
編碼器完成的主要功能有生成加載同步頭,產(chǎn)生奇偶校驗位,對消息字進行曼徹斯特Ⅱ型編碼,并串轉(zhuǎn)換.
編碼器設(shè)計中采用2 MHz的時鐘,根據(jù)1553B的數(shù)據(jù)傳輸速率是1 Mbit/s這一點,計數(shù)2個周期下傳輸一個比特數(shù)據(jù).編碼器的具體原理框圖如圖3所示.對應(yīng)的編碼過程如下:在接收協(xié)議層協(xié)議處理器發(fā)來的16 bit并行數(shù)據(jù)后,便生成對應(yīng)的奇偶校驗位,接著根據(jù)兩個同步頭控制比特位的高低電平狀態(tài)來生成對應(yīng)的3 bit同步頭,此時共3 bit+16 bit+1 bit=20 bit的消息字,再經(jīng)曼徹斯特Ⅱ型編碼,并串轉(zhuǎn)換得到40位待發(fā)送到數(shù)據(jù)總線上的串行數(shù)據(jù)流.編碼器設(shè)計的原理框圖如圖3所示.
圖3編碼器原理框圖
解碼器的主要功能是將1553B總線上的串行輸入數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),并檢查數(shù)據(jù)的奇偶校驗位是否正確,為將數(shù)據(jù)傳入1553B的協(xié)議處理器做準備.
設(shè)計中解碼器采用8 MHz時鐘進行采樣,1553B總線上的數(shù)據(jù)速率是1 Mbit/s,根據(jù)奈奎斯特采樣定理,能夠保證采樣過程的穩(wěn)定.在時鐘的上升沿進行采樣,因此,輸入的每位串行流對應(yīng)4 bit的采樣值.
解碼的具體過程如下:首先是對同步頭進行檢測,在8 M采樣時鐘下將前24 bit分離出來,可以作同步頭識別,確定消息字的類型是命令/狀態(tài)字還是數(shù)據(jù)字.接著進行16 bit數(shù)據(jù)位和1 bit奇偶檢驗位的轉(zhuǎn)存,先判斷數(shù)據(jù)的有效性,即通過比較每3/8周期和7/8周期的采樣值,只要結(jié)果不等,可以認為此比特數(shù)據(jù)位有效,再根據(jù)曼徹斯特Ⅱ型編碼的規(guī)律,將7/8周期采樣值取反,通過移位寄存進相應(yīng)的寄存器里.最后將解碼得的17 bit的數(shù)據(jù)前16位作為解碼結(jié)果輸出,并通過對原奇偶校驗位與解碼結(jié)果的奇偶校驗值進行邏輯比較,如果相等,則結(jié)果正確,將結(jié)果錯誤標志位拉低,否則將其拉高,以標志消息字的正確性. 解碼器的原理框圖如圖4所示.
圖4解碼器的原理框圖
在ISE的集成編譯環(huán)境中,使用Verilog HDL語言[15]完成編解碼器設(shè)計,編寫對應(yīng)的測試腳本文件[16],首先調(diào)用與ISE聯(lián)合的Modelsim 仿真工具通過Wave窗口觀察各設(shè)計過程接口信號的測試結(jié)果[17],最終下載到目標FPGA開發(fā)板上進行驗證.
編碼器設(shè)計中部分主要接口信號如表1所示.
表1 編碼器的主要輸入輸出信號
端口名位寬方向端口描述enc_clk1in時鐘信號rst_n1in復位信號tx_dword16in輸入帶編碼數(shù)據(jù)tx_csw1in命令/狀態(tài)字同步頭使能tx_dw1in數(shù)據(jù)字同步頭使能tx_data1out輸入串行流
用設(shè)計的編碼器分別對狀態(tài)/命令字16’b1100100101101010和數(shù)據(jù)字16b’1010110100110111進行編碼仿真,仿真結(jié)果時序圖分別如圖5、圖6所示.
圖5編碼器時序仿真圖(狀態(tài)/命令字)
圖6編碼器時序仿真圖(數(shù)據(jù)字)
由圖可以看出編碼器實現(xiàn)了協(xié)議字的曼徹斯特Ⅱ型編碼并進行了并串轉(zhuǎn)換.編碼結(jié)果通過tx_data接口觀察,結(jié)果顯示正確.
解碼器設(shè)計中主要通過采樣和移位操作完成16 bit數(shù)據(jù)位和1 bit的奇偶校驗位的寄存.
解碼器設(shè)計中部分主要接口信號說明如表2所示.
用該解碼器分別對數(shù)據(jù)字16b’0011100110101101和命令/狀態(tài)字16’b1100100101101010進行解碼,仿真結(jié)果時序圖分別如圖7、圖8所示.
由仿真結(jié)果可知,解碼器對命令/狀態(tài)字,數(shù)據(jù)字的解碼結(jié)果正確,功能實現(xiàn).
表2 解碼器的要輸入輸出信號
端口名位寬方向 端口描述clk21in時鐘信號rst_n1in復位信號rx_data1in輸入待解碼串行流rx_dword16out輸出解碼數(shù)據(jù)rx_csw1out解碼出的命令/狀態(tài)字標志位rx_dw1out解碼出的數(shù)據(jù)字標志位rx_perr1out奇偶校驗正誤標志位
最后將設(shè)計程序下載至Spartan6系列的XC6SLX9平臺上進行驗證.將PC機作為內(nèi)部數(shù)據(jù)模擬收發(fā)器,借助串口數(shù)據(jù)收發(fā)功能進行簡單的閉環(huán)驗證,設(shè)計思路框圖如圖9所示.串口收發(fā)數(shù)據(jù)測試結(jié)果如圖10所示.由圖10的數(shù)據(jù)測試結(jié)果可知,數(shù)據(jù)收發(fā)結(jié)果一致,編解碼器的功能設(shè)計通過.
圖7 解碼器時序仿真(命令/狀態(tài)字)
圖8 解碼器時序仿真(數(shù)據(jù)字)
圖9硬件驗證結(jié)構(gòu)框圖
圖10串口數(shù)據(jù)收發(fā)驗證結(jié)果
本次設(shè)計的編解碼器作為1553B總線物理層的主要功能模塊,具有同步頭加載、檢測,奇偶校驗,串并/并串轉(zhuǎn)換,錯誤檢測的邏輯接口功能.采用Verilog HDL硬件描述語言在ISE14.7的集成開發(fā)環(huán)境中進行了邏輯功能設(shè)計輸入和最終的時序功能仿真,并最終下載到FPGA開發(fā)板上且驗證通過,完成了1553B總線協(xié)議編解碼器的數(shù)據(jù)編碼與解碼的設(shè)計目標,為后續(xù)協(xié)議層IP核設(shè)計及各終端節(jié)點通信的實現(xiàn)打下堅實的基礎(chǔ).