摘要:根據(jù)CMI碼特性,基于通信原理實(shí)驗(yàn)箱-ZH7001,在MAXPLUS-II開發(fā)平臺(tái)上使用VHDL編程實(shí)現(xiàn)CMI編譯碼,并得到仿真波形。
關(guān)鍵詞:通信原理;實(shí)驗(yàn)箱;CPLD
中圖分類號(hào):TP311.1文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2010)01-233-02
CMI Compiled Code Designs Based on CPLD
LI Li
(Xi'an University of Posts Telecommunications, Xi'an 710061, China)
Abstract:According to the characteristics ofCMI code, base on the experiment case of communication principle-ZH7001, the CMI compiled code programmed with VHDL on the platform of maxplusⅡ, and the simulation waveforms are achieved.
Key words: communication principle;experiment case;CPLD
1 概述
《通信原理》這門課是電子信息專業(yè)通信方向的專業(yè)基礎(chǔ)課,是其后續(xù)專業(yè)課的基礎(chǔ),是本專業(yè)通信方向的主要課程。我院通信原理實(shí)驗(yàn)一直停留在驗(yàn)證性的階段,學(xué)生在做實(shí)驗(yàn)時(shí),僅僅是觀察實(shí)驗(yàn),而沒有真真正正地參與實(shí)驗(yàn)。本文是作者利用ZH7001通信原理實(shí)驗(yàn)箱采用VHDL語言設(shè)計(jì)出的CMI編譯碼。
2 CMI碼的特點(diǎn)
根據(jù)CCITT建議,在程控?cái)?shù)字交換機(jī)中,CMI碼一般作為PCM四次群數(shù)字中繼接口的碼型。CMI碼具有如下特點(diǎn):不存在直流分量;在CMI碼流中,具有很強(qiáng)的時(shí)鐘分量,有利于在接收端對(duì)時(shí)鐘信號(hào)進(jìn)行恢復(fù);具有檢錯(cuò)能力,這是因?yàn)?碼用00或11表示,而0碼用01碼表示,因而在CMI碼流中不存在10碼,且無00與11碼組連續(xù)出現(xiàn),這個(gè)特點(diǎn)可用于檢測CMI的部分錯(cuò)碼。不怕連0碼、連1碼。CMI編碼規(guī)則見表1所示。
在CMI編碼中,輸入碼字0直接輸出01碼型,較為簡單。對(duì)于輸入為1的碼字,其輸出CMI碼字存在兩種結(jié)果,因而對(duì)輸入1的狀態(tài)必須記憶。同時(shí),編碼后的速率增加一倍,因而整形輸出必須有2倍的輸入碼流時(shí)鐘。在這里CMI碼的第一位稱之為CMI碼的高位,第二位稱之為CMI碼的低位。CMI編碼比較簡單,在這里著重介紹CMI譯碼的方法。
在CMI解碼端,存在兩種狀態(tài),因而需進(jìn)行同步。同步過程的設(shè)計(jì)可根據(jù)碼字的狀態(tài)進(jìn)行:因?yàn)樵谳斎氪a字中不存在10碼型,如果出現(xiàn)10碼,則必須調(diào)整同步狀態(tài)。
CMI解碼電路由串并變換器、譯碼器、同步檢測器、扣脈沖電路等電路組成。如圖1所示。
CMI解碼所有電路功能單元都集成在一片現(xiàn)場可編程門陣列芯片內(nèi)。各部分電路功能工作原理及作用如下:
CMI譯碼電路由串并變換器、譯碼器、同步檢測器、扣脈沖電路等電路組成。
1) 串并變換器:輸入的512Kbps的CMI碼流首先送入一個(gè)串并變換器,在時(shí)鐘的作用將CMI的編碼碼字的高位與低位碼子分路輸出。
2) CMI譯碼器:當(dāng)CMI碼的高位與低位通過異或非門實(shí)現(xiàn)CMI碼的譯碼。由于電路中的時(shí)延存在差異,輸出端可能存在毛刺,進(jìn)行輸出整形。
3) 同步檢測器:從CMI編譯碼的原理中,CMI碼同步時(shí)不會(huì)出現(xiàn)10碼字(不考慮信道傳輸錯(cuò)碼);如果CMI碼沒有同步好(即CMI的高位與低位出現(xiàn)錯(cuò)鎖),將出現(xiàn)多組10碼字,此時(shí)將不正確譯碼。同步檢測器的原理是:當(dāng)在一定時(shí)間內(nèi)(1024bit),如出現(xiàn)多組10碼字則認(rèn)為CMI譯碼器未同步。此時(shí)同步檢測電路輸出一個(gè)控制信號(hào)到扣脈沖電路扣除一個(gè)時(shí)鐘,調(diào)整1bit時(shí)延,使CMI譯碼器同步。
3 CMI譯碼輸出程序
IF(falling_edge(MUX_CLKR))THEN--CMI譯碼輸出時(shí)鐘
IF(loss_one_clock='0')THEN
dec_clk<=NOT dec_clk;
END IF;
END IF;
IF(rising_edge(MUX_CLKR))THEN --CMI串行輸入轉(zhuǎn)化為并行
rec_buff(1)<=rec_buff(0);
rec_buff(0)<=MUX_DR;
END IF;
IF(falling_edge(dec_clk))THEN
rec_word(1 downto 0)<=rec_buff(1 downto 0);
END IF;
IF(rising_edge(dec_clk))THEN --周期計(jì)數(shù)
period<=period+1;
IF(period=1)THEN
reset<='1';
ELSE
reset<='0';
END IF;
END IF;
IF(rising_edge(dec_clk))THEN --錯(cuò)誤碼元計(jì)數(shù)
IF(reset='1')THEN
error_count<=\"000\";
ELSIF(error_count/=7)THEN
IF(rec_word=2)THEN
error_count<=error_count+1;
END IF;
ELSE
error_count<=error_count;
END IF;
END IF;
IF(rising_edge(dec_clk))THEN --同步
IF(error_count=7)THEN
no_syn<='1';
ELSE
no_syn<='0';
END IF;
END IF;
IF(rising_edge(MUX_CLKR))THEN
delay_no_syn(2 DOWNTO 1)<=delay_no_syn(1 DOWNTO 0) ;
delay_no_syn(0)<=no_syn;
loss_one_clock<=(delay_no_syn(1)XORdelay_no_syn(2))AND delay_no_syn(1);--扣脈沖
END IF;
IF(falling_edge(dec_clk))THEN--譯碼產(chǎn)生
DR_m<=not(rec_word(1) XOR rec_word(0));
END IF;
Frame_Ind<=dec_clk;
IF(FSR='0' AND BCLKR='0')THEN
DR_PCM<='1';
SW_Out<=\"11111111\";
ELSE
DR_PCM<='0';
SW_Out<=\"00000000\";
END IF;
END PROCESS;
END a;
4 仿真結(jié)果
在maxplus2平臺(tái)下對(duì)CMI編解碼進(jìn)行編譯和仿真,最后得到仿真結(jié)果。圖2是CMI碼編碼波形圖:在時(shí)鐘MUX_CLK驅(qū)動(dòng)下工作,m_test是產(chǎn)生的m序列1011100,MUX_的DT為CMI編碼輸出,我們看到,編碼為11010011000101,有一定延時(shí),編碼完全正確。
圖3是CMI碼譯碼波形圖:在時(shí)鐘MUX_CLKR驅(qū)動(dòng)下工作,MUX_DR為輸入的1011100序列,DR_M為CMI碼譯碼輸出,我們看到,譯碼完全正確。
5 結(jié)論
通過用硬件描述語言對(duì)CMI編譯碼原理實(shí)現(xiàn),可以大大提高學(xué)生分析問題,解決問題,及理論聯(lián)系實(shí)際的能力,激發(fā)學(xué)生學(xué)習(xí)的興趣。
參考文獻(xiàn):
[1] 樊昌信,詹道庸,徐炳祥,等. 通信原理[M].北京:國防工業(yè)出版社,2005.
[2] 曹志剛,錢亞生.現(xiàn)代通信原理[M].北京:清華大學(xué)出版社,2006.
[3] 凌純青,等,譯.VHDL數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2005.