• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CPLD的CMI編碼的實現

    基于CPLD的CMI編碼的實現

    作者: 時間:2017-06-05 來源:網絡 收藏

    引言

    CMI碼是傳號反轉碼的簡稱,它是一種應用于PCM四次群和光纖傳輸系統中的常用線路碼型,具有碼變換設備簡單、有較多的電平躍變,含有豐富的定時信息,便于時鐘提取,有一定的糾錯能力等優點。
    在高次脈沖編碼調制終端設備中廣泛應用作接口碼型,在速率低于8 448 Kb/s的光纖數字傳輸系統中也被建議作為線路傳輸碼型。

    本文針對傳輸碼型的要求和CMI碼的編碼原理,介紹了一種以EPM系列7064芯片為硬件平臺,以Max+PlusⅡ為軟件平臺,以VHDL為開發工具,適合于實現的器的設計方案。

    1 CMI碼的編碼規則

    規則如表1所示。

    中,輸入碼字0直接輸出01碼型,較為簡單。對于輸入為1的碼字,其輸出CMI碼字存在兩種結果OO或11碼,因而對輸入1的狀態必須記憶。同時,編碼后的速率增加一倍。

    本文引用地址:http://www.czjhyjcfj.com/article/201706/349089.htm

    2 CMI編碼器的建模與實現

    首先在原始時鐘MUX_Clk的上升沿進行翻轉得到二分頻時鐘Clk,周期為原始時鐘的2倍。
    然后產生偽隨機序列,由3個D觸發器產生7位偽隨機序列,序列產生原理如圖1所示。

    任何一個D觸發器的輸出都可以作為要產生的m序列,則序列以7為周期循環出現,在3個D觸發器輸出都為0時,語句m_buffer(2)=(m_bu-ffer(1)xor m_buffer(O))Or((not m_buffer(2))and(not m_buffer(1))and(not m_buffer(O))),可以使第一個D觸發器在Clk上升沿到來時輸出為1,從而避免陷入“000的死循環。

    最后為“O”碼、“1”碼的編碼:

    “O”編碼的實現:在原始時鐘信號的下降沿對m序列進行檢測,當其值為“0”時,將原始信號的二分頻后的信號求非賦值給編碼輸出,即可實現對“O”進行“01”編碼。

    “1”編碼的實現:在原始時鐘信號的二分頻信號的上升沿對m序列進行檢測,如果其值為“1”,用表達式statel=statel X0R m_buff(O)對“1”的奇偶進行記錄;在原始時鐘的下降沿,將statel的值賦給編碼輸出即可實現對“1”的“00”,“11”交替編碼。

    其中:m_test:產生的m序列;
    MUX_DT:CMI編碼輸出;
    MUX_CLK:原始時鐘。

    3 仿真結果

    在Max+PlusⅡ平臺下對CMI編碼進行編譯和仿真,最后得到CMI編碼仿真結果。圖2是CMI碼編碼波形圖。

    在時鐘MUX_CLK驅動下工作,m_test是產生的m序列1011100,MUX_的DT為CMI編碼輸出,可以看到,編碼為11010011000101,有一定延時,但編碼完全正確。

    4 結語

    該設計詳細介紹了基于的CMI編碼的實現方法。提出利用原始信號的二分頻后的信號求非賦值給編碼輸出,得到“0”的編碼,利用緩存對“1”的個數進行記錄,而對“1”進行編碼的編程思路,利用VHDL進行程序設計實現,在Max+PlusⅡ平臺下對設計結果進行仿真,結果完全正確。
    實踐表明,運用實現CMI編碼具有軟件開發周期短、成本低、執行速度高、實時性強、升級方便等特點,而且可以把該電路和其他功能電路集成在同一塊CPLD/FPGA中,減少了外接元件的數目,提高了集成度,而且有很大的編程靈活性,很強的移植性,因此有很好的應用前景。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 蓬溪县| 喜德县| 勃利县| 乌审旗| 望谟县| 东乌| 鞍山市| 阳曲县| 兴业县| 璧山县| 禹州市| 于都县| 广河县| 资兴市| 新巴尔虎左旗| 天门市| 达日县| 长春市| 诸城市| 井研县| 邵阳县| 洛隆县| 上饶县| 吉安市| 天门市| 双牌县| 德兴市| 仙居县| 乌兰察布市| 珠海市| 南康市| 凌云县| 广昌县| 天水市| 安陆市| 静宁县| 崇仁县| 襄樊市| 昌图县| 浙江省| 克拉玛依市|