1553B總線(xiàn)中曼徹斯特編解碼器的設計
(2)同步頭識別模塊
該模塊始終檢測同步頭,并給出同步頭類(lèi)型。檢測方法如下,在采樣到時(shí)鐘使能信號clk2_en有效時(shí),將rx_data_reg_2存入移位寄存器sync_reg[9:0]中,當檢測到sync_reg[5:0]為“111000”或“000111”時(shí),給出同步頭有效信號sync_1,用于觸發(fā)計數器和碼型轉換移位模塊工作。
(3)計數模塊
計數器cnt是一個(gè)40進(jìn)制計數器,在cnt的控制下完成整個(gè)解碼過(guò)程。當收到同步頭有效信號sync_1時(shí),將計數器使能信號cnt_enb置為有效(高電平),并在其控制下開(kāi)始計數。
(4)碼型轉換與移位電路
該模塊在移位使能信號data_sample有效,且采樣到采樣使能信號clk2_en時(shí),將rx_data_reg_2移入一個(gè)17位寄存器data_reg[16:O]中,移位完成后,將得到一個(gè)16位并行數據data_reg[16:1]和一個(gè)奇偶校驗位data_reg[0]。
(5)校驗模塊
該電路將檢測并輸出同步頭類(lèi)型、奇偶校驗結果、曼徹斯特碼檢測結果、字連續性檢測結果。
同步頭類(lèi)型檢測:當cnt計數到3時(shí),將同步頭檢測結果sync_csw和syn_dw分別寄存輸出給csw和dw。
奇偶校驗:將17位并行數據data_reg[16:O]按位同或后在cnt計數到33時(shí)將效驗結果輸出給parity_right。
曼徹斯特碼型的有效性校驗:對16位曼徹斯特碼和1位奇偶校驗碼的碼型進(jìn)行檢測。當收到同步頭有效信號sync_1時(shí)將mangchester_rig-ht信號置為1,之后將每個(gè)碼元曼徹斯特檢測結果與mangchester_right做與運算,再寄存輸出到mangchester_right。當中間某個(gè)碼元曼徹斯特碼出錯時(shí),mangchester_right將變?yōu)?,并在之后的檢測中一直保持為0,直到收到下一個(gè)字的sync_1信號。
字連續性檢測:若前一個(gè)字與當前字連續,則在前一個(gè)字cnt計數到39時(shí),當前字的同步頭有效信號sync_1應為高電平,若不連續,sync _1為低電平。所以在cnt=39時(shí)將sync_1寄存輸出給word_continue可表征字的連續性。
(6)數據有效輸出模塊
當所有校驗和移位都完成時(shí),在cnt為34~38之間輸出數據有效信號data_ready。
4 仿真及FPGA實(shí)現
在TESTBENCH中將編碼器曼徹斯特碼的輸出直接連到解碼器曼徹斯特碼的輸入端。圖6為正確曼徹斯特碼的時(shí)序仿真波形圖,傳輸速率為10 Mb/s,系統時(shí)鐘為120 MHz。圖6的上半部分為編碼器信號波形,下半部分為解碼器信號波形。發(fā)送消息為連續的4個(gè)字:第1個(gè)為命令字,后3個(gè)為數據字。本文引用地址:http://dyxdggzs.com/article/187559.htm
為了全面驗證設計功能,需要注入不同類(lèi)型的錯誤來(lái)檢測解碼器的查錯能力。其中,包括同步頭類(lèi)型錯,曼徹斯特碼型錯,奇偶校驗錯,字不連續錯等。測試過(guò)程完全按照GJB5186相關(guān)要求進(jìn)行。
該設計在XlLINX公司Spartan3E系列的XC3S500E型號FPGA上進(jìn)行了實(shí)現。當編解碼器時(shí)鐘約束為7 ns時(shí),編碼器最高跑到143 MHz,解碼器最高到157 MHz。
5 結語(yǔ)
根據曼徹斯特碼型特點(diǎn),設計出一種符合MIL-STD-1553B協(xié)議的曼徹斯特編解碼器,并兼容1 Mb/s和10 Mb/s兩種傳輸速率的協(xié)議。該設計通過(guò)了GJB5186規定的測試點(diǎn)驗證,實(shí)驗結果證明所設計的曼徹斯特編解碼器具有高速、高可靠性的特點(diǎn)。
評論