新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的HDB3編解碼器設(shè)計(jì)

基于FPGA的HDB3編解碼器設(shè)計(jì)

作者: 時(shí)間:2009-03-17 來(lái)源:網(wǎng)絡(luò) 收藏


本文在程序的實(shí)體中定義了2個(gè)輸入端口:時(shí)鐘、偽隨機(jī)序列,一個(gè)兩位的輸出數(shù)據(jù)(編碼后的輸出)。程序的結(jié)構(gòu)體中使用的是進(jìn)程語(yǔ)句,共采用4個(gè)進(jìn)程,分別完成判斷4連“0”位置并插入V、記相鄰V碼間1個(gè)數(shù)、跟蹤V碼位置及編碼輸出的功能。敏感信號(hào)均選用的是時(shí)鐘信號(hào),對(duì)于其任一變化都將同時(shí)啟動(dòng)4個(gè)進(jìn)程,并行執(zhí)行。在程序中共使用了5個(gè)信號(hào),代表了電路的寄存器效果,配置到電路中也相當(dāng)于寄存器。

3.2

解碼是根據(jù)碼的特點(diǎn)首先檢測(cè)出極性破壞點(diǎn),即找出4連零碼中添加V碼的位置(破壞點(diǎn)位置),其次去掉添加的V碼,最后去掉4連零碼中添加的B碼以將其還原成單極性不歸零碼。

碼的編碼規(guī)則可知,“0000”都被“000+1”或“000-1”或“+100+1”或“-100-1”取代,所以,只要能檢測(cè)出“+1000+1”、“-1000-1”、 “+100+1”、“-100-1”、將它們分別改為“10000” 、“10000”、“0000”、“0000”就可以了。
當(dāng)然“+1”、“-1”、“0”還是由Data1,Data0來(lái)表示,那么就需要有兩個(gè)5位移位寄存器(C和D),Data0通過(guò)D,Data1通過(guò)C。通過(guò)D,C來(lái)檢測(cè),如果測(cè)到兩個(gè)移位寄存器分別為“10001”、“0xxx0”或“10001”、“1xxx1”或“1001x”、“1xx1x”或“1001x”、“0xx0x”,數(shù)據(jù)輸出是將D里面的數(shù)據(jù)流輸出。所以只要將D中所測(cè)到的以上數(shù)據(jù)分別改為“10000”、“10000”、“0000x”、“0000x”,這樣就可以得到碼的解碼了。

4 仿真和實(shí)驗(yàn)結(jié)果分析

編譯碼器在QuartusII上仿真的波形分別如圖2和圖3所示。圖2中fen_clk為分頻后時(shí)鐘信號(hào),load 為使能信號(hào),Q為偽隨機(jī)序列,data為編碼輸出。由于輸入的數(shù)據(jù)流經(jīng)過(guò)了5個(gè)寄存器,所以輸出延遲了4個(gè)時(shí)鐘脈沖周期。但由于時(shí)鐘頻率很高,所以影響不大。



圖2編碼器時(shí)序仿真波形圖



圖3仿真波形
把上述下載到Altera EP1C3T144C8芯片上,并通過(guò)硬件調(diào)試、測(cè)試,在示波器上得到偽隨機(jī)信號(hào)波形、編碼波形和解碼波形分別如圖4和5所示。其中,CH1為偽隨機(jī)信號(hào),CH2分別為編碼和解碼信號(hào)。測(cè)試結(jié)果和時(shí)序仿真結(jié)果無(wú)失真。隨機(jī)信號(hào)輸入相對(duì)編碼信號(hào)輸出延遲了5個(gè)單位時(shí)鐘。解碼信號(hào)延時(shí)了11個(gè)單位時(shí)鐘。



圖2編碼器時(shí)序仿真波形圖



圖5 偽隨機(jī)信號(hào)和解碼信號(hào)波形

5 結(jié)論

實(shí)踐表明,運(yùn)用來(lái)實(shí)現(xiàn)NRZ碼到HDB3碼的轉(zhuǎn)換與采用專用集成電路CD22103相比,不僅給調(diào)試帶來(lái)了方便,而且可以把編碼電路和解碼電路及其它電路集成在同一塊芯片中,減少了外接元件,提高了集成度。該設(shè)計(jì)已成功應(yīng)用于網(wǎng)絡(luò)化集中照明控制系統(tǒng)中。

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉