国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的曼徹斯特編解碼器設(shè)計(jì)

2011-10-09 09:45:58湯曉曦陳泉根
電子設(shè)計(jì)工程 2011年23期
關(guān)鍵詞:曼徹斯特狀態(tài)機(jī)解碼

湯曉曦,尹 蕾,許 晏,陳泉根

(中國工程物理研究院 電子工程研究所,四川 綿陽 621900)

1553B總線是廣泛應(yīng)用于飛機(jī)綜合航電系統(tǒng)、外掛物管理與集成系統(tǒng)的總線系統(tǒng)。并逐步擴(kuò)展到飛行控制等系統(tǒng)及坦克、艦船、航天等領(lǐng)域。我國于1987年頒布了相應(yīng)的軍標(biāo)GJB289《數(shù)字式時(shí)分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線》。但是由于該標(biāo)準(zhǔn)的核心技術(shù)為歐美公司所壟斷,因此,倘若能夠自主研發(fā)基于1553B總線標(biāo)準(zhǔn)的協(xié)議芯片或產(chǎn)品具有重要的戰(zhàn)略和經(jīng)濟(jì)意義[1]。隨著可編程邏輯器件的高速發(fā)展,越來越多的設(shè)計(jì)者在FPGA、CPLD等的硬件基礎(chǔ)上開展設(shè)計(jì)研究。本文基于FPGA的硬件基礎(chǔ)設(shè)計(jì)實(shí)現(xiàn)了1553B總線中曼徹斯特II型碼的編解碼器。

1 1553B總線

MIL-STD-1553B總線網(wǎng)絡(luò)由終端、子系統(tǒng)和總線傳輸介質(zhì)組成。終端是使數(shù)據(jù)總線和子系統(tǒng)相連接的電子組件。子系統(tǒng)為從多路數(shù)據(jù)總線上接收數(shù)據(jù)傳輸服務(wù)的裝置或功能單元[2]??偩€控制器(BC)是總線系統(tǒng)組織信息傳輸?shù)慕K端??偩€監(jiān)視器(BM)是總線系統(tǒng)中指定作接收且記錄總線上傳輸?shù)男畔⒉⒂羞x擇地提取信息以備后用的終端。遠(yuǎn)程終端(RT)是總線系統(tǒng)中不作為總線控制器或總線監(jiān)視器的所有終端[3]。

1553B總線的傳輸速度是1 Mb/s,采用曼切斯特Ⅱ型編碼,半雙工工作方式。信號以串行數(shù)字脈沖編碼調(diào)制(PCM)形式在數(shù)據(jù)總線上傳輸。邏輯1為雙極編碼信號1/0,即一個(gè)正脈沖繼之一個(gè)負(fù)脈沖,邏輯0為雙極編碼信號0/1[4],即一個(gè)負(fù)脈沖繼之一個(gè)正脈沖。

圖1 曼徹斯特II型碼與NRZ碼對比Fig.1 Compare of the Manchester II code and NRZ code

2 1553信號的3種傳輸方式

1553B信息流由一串1553B消息構(gòu)成。1553B消息由命令字、數(shù)據(jù)字、狀態(tài)字組成。所有1553B字都是20 bit[5]長,每個(gè)字都應(yīng)是:

3位同步頭+16位數(shù)據(jù)/命令/狀態(tài)位+1位奇偶校驗(yàn)

3 曼徹斯特解碼器設(shè)計(jì)以及仿真結(jié)果

解碼器的工作方式就是從收發(fā)器接收曼徹斯特II型編碼的串行數(shù)據(jù),然后以并行數(shù)據(jù)的方式送出。而為實(shí)現(xiàn),首先得實(shí)現(xiàn)同步頭的檢出,通過同步頭來區(qū)別命令字?jǐn)?shù)據(jù)字和狀態(tài)字。然后解碼串行數(shù)據(jù),通過末尾的奇偶校驗(yàn)之后,再并行輸出。

圖2 1553B的3種數(shù)據(jù)傳輸格式Fig.2 3 formats of 1553B transmit in

根據(jù)圖2可以得知,1553B的同步頭分為兩種,而根據(jù)1553B協(xié)議,傳輸速率為1 Mb/s,因?yàn)橐粋€(gè)有效的同步頭占3個(gè)bit,它的傳輸時(shí)長應(yīng)該為3 000 ns,而因?yàn)橥筋^前后電平的不同,以數(shù)據(jù)字同步頭為例,分為以下幾種情況[2]。

圖3 數(shù)據(jù)幀同步頭可能出現(xiàn)的情況Fig.3 Possible results of data-frame syncode

解碼部分首先因該由判斷同步頭開始,這里用狀態(tài)機(jī)來實(shí)現(xiàn)同步頭的檢測,而狀態(tài)機(jī)的狀態(tài)變化由在相應(yīng)時(shí)間內(nèi)有多少個(gè)連續(xù)相同電平的采樣點(diǎn)決定。本次設(shè)計(jì)的采樣與解碼時(shí)鐘頻率均可采用5 MHz。這樣以一個(gè)時(shí)鐘上升沿作為采樣點(diǎn)的間隔為200 ns。那么無論同步頭的前半或者后半部分都應(yīng)該采到大于7次,若少于7次,則判定為同步頭檢測失敗,不能進(jìn)入下一狀態(tài)。而整個(gè)同步頭應(yīng)該采樣15次。圖3顯示了數(shù)據(jù)字可能遇到的幾種同步頭的情況。

圖3中A為理想情況的同步頭。在檢測出有效同步頭后即進(jìn)入數(shù)據(jù)接收解碼狀態(tài)。

圖3中B為同步頭開始前一直為低電平的情況,這需要狀態(tài)機(jī)在第一個(gè)同步頭計(jì)數(shù)器采樣到7后如果采集點(diǎn)還為同樣電平則一直將計(jì)數(shù)器置7,直道出現(xiàn)跳變再繼續(xù)計(jì)數(shù)進(jìn)入同步頭的后半部分檢測。

圖3中C為在有效頭部頭之前有一個(gè)長度大于1 500 ns的干擾信號會直接導(dǎo)致狀態(tài)機(jī)進(jìn)入狀態(tài)字或者數(shù)據(jù)字檢測完畢的狀態(tài),這時(shí)需要在第一次采樣時(shí)糾錯(cuò),在進(jìn)入預(yù)計(jì)的同步完畢的情況下(其實(shí)是誤碼干擾),若第一次采樣的結(jié)果為同1或者(即采集到了同步頭的真正后半部分),則狀態(tài)機(jī)修正狀態(tài)從判斷為狀態(tài)字或命令字進(jìn)入數(shù)據(jù)字(或者從數(shù)據(jù)字進(jìn)入命令字或者狀態(tài)字),而所采集的第一個(gè)誤碼bit的數(shù)據(jù)會在下次采集時(shí)被覆蓋。為下面介紹下本次設(shè)計(jì)的數(shù)據(jù)采樣方式。

由于1553B使用的是曼徹斯特碼II型碼。不論傳輸?shù)氖?還是1,在該bit中間位置都會產(chǎn)生跳變,所以我用一個(gè)寄存器data2將該bit復(fù)制并延后半個(gè)bit位。然后同時(shí)對原信號data1和延后的data2采樣如下圖所示。

圖4 信號采樣方式Fig.4 Example of data sampling

如果data1為1,data2為 0,即為信號從 0變成1,則解碼結(jié)果為0,反之則為1。在嚴(yán)格控制采樣時(shí)刻必為data2的前半個(gè)電平后,采樣結(jié)果中data1和data2是肯定不同的,倘若出現(xiàn)相同的情況,則必為電平錯(cuò)誤或者正在傳輸?shù)男盘枮橥筋^。

狀態(tài)字和命令字的狀態(tài)轉(zhuǎn)移條件和示意圖將在圖5中給出。

狀態(tài)機(jī)狀態(tài):idle(空閑)、s0(同步頭前半部分為 0)、s01(同步頭前半部分為 0后半部分為 1)、s01_r(數(shù)據(jù)字采集態(tài))、s1(同步頭前半部分為 1)、s10(同步頭前半部分為 1后半部分為0、s10_r(命令字或者狀態(tài)字采集態(tài))。

圖5 狀態(tài)機(jī)以及轉(zhuǎn)移條件示意圖Fig.5 State machine indicator

在接收完16 bit的數(shù)據(jù)后,通過最末位bit的奇校驗(yàn)位校驗(yàn)完數(shù)據(jù)正確性后,通過并口dataout輸出,至此,一字的解碼采集結(jié)束。

解碼通過串口以數(shù)據(jù)幀輸入16 bit(1110001010001100)仿真時(shí)序結(jié)果如圖6所示。

圖6 曼徹斯特解碼Modelsim仿真結(jié)果Fig.6 Modelsim result of Manchester decoder

4 曼徹斯特編碼器設(shè)計(jì)以及仿真結(jié)果

本次設(shè)計(jì)的曼徹斯特編碼主要由兩部分組成:同步頭生成部分和攜帶信息編碼部分。

4.1 信息編碼部分

根據(jù)1553B協(xié)議分析,在1 Mb/s的傳輸速度下,每個(gè)bit的傳輸時(shí)長為1 000 ns[6]。而本次編碼的核心思想就是生成一個(gè)和同為1 Mb/s的周期信號phase,將并口接收的信號通過移位寄存器從高至低的一位一位的在符合1553B要求的時(shí)鐘傳輸速率下與phase進(jìn)行異或操作,當(dāng)phase的波形與移位寄存器中的信號異或,若信號為0與之異或,結(jié)果為其本身,而當(dāng)信號為1與之異或,結(jié)果phase的波形相反,正好符合1553B的傳輸方式。而得到的波形稱之為enc_data。同時(shí)需設(shè)置一個(gè)busy編碼指示位和bit_count編碼計(jì)數(shù)器,分別用來標(biāo)示當(dāng)前是否處于編碼階段,能否讀取新的并口數(shù)據(jù)和編碼已經(jīng)進(jìn)行了多少位。編碼是否完畢來將busy置0來接收新的并口數(shù)據(jù)。其波形如圖7所示。

圖7 phase的波形Fig.7 Shape of phase

4.2 同步頭生成部分

同步頭分為兩種,狀態(tài)字和命令字為一種[7],數(shù)據(jù)字為一種,這里還是以數(shù)據(jù)字為例。在相應(yīng)的系統(tǒng)時(shí)鐘下,設(shè)置一個(gè)計(jì)數(shù)器,在3 000 ns(一個(gè)有效同步頭所占用的時(shí)間)內(nèi)計(jì)數(shù),當(dāng)計(jì)數(shù)完成后(生成一個(gè)完整的同步頭所需時(shí)間結(jié)束),對編碼標(biāo)志位busy置1(即可以開始數(shù)據(jù)編碼)。而同步頭的生成只需要根據(jù)需要生成的同步頭在1 501 ns的位置跳變電平即可生成。以本次設(shè)計(jì)采用的100 MHz的系統(tǒng)時(shí)鐘為例,即系統(tǒng)時(shí)鐘周期為10 ns,利用一個(gè)系統(tǒng)時(shí)鐘上升沿敏感觸發(fā)的計(jì)數(shù)器,在同步頭前半部分開始時(shí)計(jì)數(shù),當(dāng)計(jì)數(shù)到150時(shí),也就是下一時(shí)刻在1 501 ns時(shí)讓生成波形電平跳變,再持續(xù)150個(gè)計(jì)數(shù)器時(shí)間生成的同步頭的后半部分。而這時(shí)具有同步頭的波形叫enc_wave,然后在同步頭生成結(jié)束后(即進(jìn)入并口數(shù)據(jù)編碼段)將enc_data的波形賦給enc_wave即可。這樣得到的enc_wave即是符合1553B傳輸規(guī)則和速率的串口信號。

下面是并口依次輸入11001001101000011和11100011 10001110后自動(dòng)生成奇偶校驗(yàn)位和串口波形的modelsim仿真結(jié)果。

5 結(jié)束語

本設(shè)計(jì)根據(jù)曼徹斯特碼型特點(diǎn),設(shè)計(jì)出一種符合MIL-S TD-1553B協(xié)議的曼徹斯特編解碼器。硬件描述語言采用verilog[8],選用ISE作為硬件綜合工具,Modelsim作為仿真工具,通過準(zhǔn)確的時(shí)間約束實(shí)現(xiàn)了1553B總線曼徹斯特碼[9]編碼器的設(shè)計(jì),通過mealy狀態(tài)機(jī)實(shí)現(xiàn)了1553B總線曼徹斯特碼解碼器的設(shè)計(jì)。與組合邏輯電路實(shí)現(xiàn)相比較更具有優(yōu)越性。本模塊已應(yīng)用于基于硬件FPGA來實(shí)現(xiàn)1553B總線和光纖總線的協(xié)議轉(zhuǎn)換板,經(jīng)過驗(yàn)證,解碼正確。具有很強(qiáng)實(shí)用性。

[1]武鵬,畢君懿.1553B總線中曼徹斯特編解碼器的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(4):61-64.

WU Peng,BI Jun-yi.Design of manchester codec in 1553B bus[J].Modern Electronics Technique,2011,34(4):61-64.

[2]牛茜,靳鴻,基于有限狀態(tài)機(jī)的1553B總線解碼器設(shè)計(jì)[J].電子測試,2010(12):74-78.

NIU Qian,JIN Hong.Design of the Manchester II decoders for the 1553B bus by state machine[J].Electronic Test,2011(12):74-78.

[3]張飛,王煥玉,徐玉朋,等.基于FPGA控制實(shí)現(xiàn)的1553B總線通訊設(shè)計(jì)[J].航天控制,2010,28(6):67-71.

ZHANG Fei,WANG Huan-yu,Xu yu-peng,et al.1553B2Bus communica tion design based on FPGA control[J].Aerospace Control,2010,28(6):67-71.

[4]曹素芝,張善從.光纖通道與MIL-STD-1553B協(xié)議的兼容性設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2010,18(7):1624-1626.

CAO Su-zhi,ZHANG Shan-cong.Design on bridge between fiber channel and MIL-STD-1553B[J].Computer Measurement&Control,2010,28(6):67-71.

[5]孫濤,張華春.基于1553B協(xié)議的總線控制器和遠(yuǎn)程終端的FPGA 實(shí)現(xiàn)[J].中國科學(xué)院研究生院學(xué)報(bào),2010,27(4):523-529.

SUN Tao,ZHANG Hua-chun.Realization of FPGA-based MIL-STD-1553B bus remote terminal’s controller[J].Journal of the Graduate School of the Chinese Academy of Sciences,2010,27(4):523-529.

[6]張傳武,黃勤珍.Mil-Std-1553總線協(xié)議分析[J].西南民族大學(xué)學(xué)報(bào):自然科學(xué)版,2007,33(2):381-383.

ZHANG Chuan-wu,HUANG Qin-zhen.Protocol analysis of the Mil-Std-1553 bus[J].Journal of Southwest University of Nationalities:Natural Science Edition,2007,33(2):381-383.

[7]胡亞平.1553B遠(yuǎn)程終端的設(shè)計(jì) [J].安徽電子信息職業(yè)技術(shù)學(xué)院學(xué)報(bào),2008,7(4):55-56.

HU Ya-ping.The design of 1553B remote terminal[J].Journal of Anhui Vocational College Electronics& Information Technology,2008,7(4):55-56.

[8]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2008.

[9]USA:Department of Defence.MIL2STD21553B digital time divi2sion command/response multiplex data bus[S].1978.

猜你喜歡
曼徹斯特狀態(tài)機(jī)解碼
《解碼萬噸站》
觀電影《海邊的曼徹斯特》
觀電影《海邊的曼徹斯特》
解碼eUCP2.0
中國外匯(2019年19期)2019-11-26 00:57:32
基于有限狀態(tài)機(jī)的交會對接飛行任務(wù)規(guī)劃方法
NAD C368解碼/放大器一體機(jī)
Quad(國都)Vena解碼/放大器一體機(jī)
FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)
基于VHDL的一個(gè)簡單Mealy狀態(tài)機(jī)
特克斯县| 民权县| 奇台县| 富川| 海晏县| 什邡市| 榆社县| 蓬安县| 葫芦岛市| 桓仁| 乐清市| 大邑县| 抚松县| 内江市| 邯郸县| 东光县| 抚顺市| 鄂托克前旗| 河北区| 兴和县| 巨鹿县| 台中县| 平定县| 天气| 灵山县| 建瓯市| 嘉定区| 英超| 当阳市| 三河市| 富源县| 夏邑县| 迁安市| 新乡市| 祁连县| 藁城市| 莱州市| 河源市| 平度市| 灯塔市| 嘉义市|