0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在XC9500系列CPLD芯片上實(shí)現(xiàn)曼徹斯特碼編解碼器的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-08-01 08:00 ? 次閱讀

引言

雖然計(jì)算機(jī)通信的方法和手段多種多樣,但都必須依靠數(shù)據(jù)通信技術(shù)。數(shù)據(jù)通信就是將數(shù)據(jù)信號(hào)加到數(shù)據(jù)傳輸信道上進(jìn)行傳輸,并在接收點(diǎn)將原始發(fā)送的數(shù)據(jù)正確地恢復(fù)過來(lái)。由于計(jì)算機(jī)產(chǎn)生的一般都是數(shù)字信號(hào),因此計(jì)算機(jī)之間的通信實(shí)際上都屬于數(shù)據(jù)通信。曼徹斯特碼編解碼器是1553B總線接口中不可缺少的重要組成部分。曼徹斯特碼編解碼器設(shè)計(jì)的好壞直接影響總線接口的性能。在數(shù)控測(cè)井系統(tǒng)和無(wú)線監(jiān)控等領(lǐng)域,曼徹斯特碼編解碼器都有廣泛應(yīng)用。

1 數(shù)據(jù)通信系統(tǒng)結(jié)構(gòu)

在XC9500系列CPLD芯片上實(shí)現(xiàn)曼徹斯特碼編解碼器的設(shè)計(jì)

圖1所示是數(shù)據(jù)通信系統(tǒng)的基本構(gòu)成。在計(jì)算機(jī)通信中,通信雙方傳遞的信息必須進(jìn)行量化并以某種形式進(jìn)行編碼后才能進(jìn)行傳輸。機(jī)內(nèi)信號(hào)不論采用哪一種編碼方法,它們的基本信號(hào)都是脈沖信號(hào),為了減少信號(hào)在傳輸媒質(zhì)上的通信帶寬限制,以及噪音、衰減、時(shí)延等影響,也由于同步技術(shù)的需要,操作時(shí)都需要對(duì)簡(jiǎn)單的脈沖信號(hào)進(jìn)行一些不同的變換,以適合傳輸?shù)男枰?。這樣就會(huì)產(chǎn)生許多不同的代碼,通常有不歸零電平(NRZ-L)碼,逢“1”反轉(zhuǎn)(NRZ-1)碼,曼徹斯特碼和差分曼徹斯特等。圖2所示是部分編碼方式的波形圖。

在XC9500系列CPLD芯片上實(shí)現(xiàn)曼徹斯特碼編解碼器的設(shè)計(jì)

由圖2可知,不歸零碼的制碼原理是用負(fù)電平表示“0”,正電平表示“1”,其缺點(diǎn)是難以分辨一位的結(jié)束和另一位的開始;發(fā)送方和接收方必須有時(shí)鐘同步;若信號(hào)中“0”或“1”連續(xù)出現(xiàn),信號(hào)直流分量將累加。這樣就容易產(chǎn)生傳播錯(cuò)誤。曼徹斯特碼(Manchester)的原理是每一位中間都有一個(gè)跳變,從低跳到高表示“0”,從高跳到低表示“1”。這種編碼方式克服了NRZ碼的不足。每位中間的跳變即可作為數(shù)據(jù),又可作為時(shí)鐘,因而能夠自同步。曼徹斯特編碼特點(diǎn)是每傳輸一位數(shù)據(jù)都對(duì)應(yīng)一次跳變,因而利于同步信號(hào)的提取,而且直流分量恒定不變。缺點(diǎn)是數(shù)據(jù)編碼后,脈沖頻率為數(shù)據(jù)傳輸速度的2倍。差分曼徹斯特碼(Differential Manchester)的原理是每一位中間都有一個(gè)跳變,每位開始時(shí)有跳變表示“0”,無(wú)跳變表示“1”。位中間跳變表示時(shí)鐘,位前跳變表示數(shù)據(jù)。這種方式的優(yōu)點(diǎn)是時(shí)鐘、數(shù)據(jù)分離,便于提取。

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

編程邏輯器件的出現(xiàn)為數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)了很大的靈活性.而VHDL (VHSIC HardwareDescription Language)是一種功能強(qiáng)大的硬件設(shè)計(jì)語(yǔ)言,可用簡(jiǎn)潔的代碼來(lái)進(jìn)行復(fù)雜控制邏輯的設(shè)計(jì)。為此,本文采用VHDL語(yǔ)言來(lái)對(duì)曼徹斯特編解碼器進(jìn)行描述,并用Active-HDL進(jìn)行編譯,最后用Synplify進(jìn)行綜合。

2.1 解碼

根據(jù)曼徹斯特碼的特點(diǎn),可將該碼的解碼過程分成三部分:一是啟動(dòng)解碼時(shí)鐘,即通過檢測(cè)一個(gè)數(shù)據(jù)跳變沿來(lái)使能時(shí)鐘。二是對(duì)曼徹斯特碼形式的數(shù)據(jù)進(jìn)行解碼。三是將串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)。解碼器的邏輯框圖如圖3所示。

在XC9500系列CPLD芯片上實(shí)現(xiàn)曼徹斯特碼編解碼器的設(shè)計(jì)

該邏輯可南進(jìn)程實(shí)現(xiàn)。輸人的時(shí)鐘為clkl6x的時(shí)鐘,串行的曼徹斯特碼的數(shù)據(jù)與單倍的時(shí)鐘相對(duì)應(yīng)。首先,串行的曼碼由clk16x的時(shí)鐘采樣,之后再將采樣到的數(shù)據(jù)先后存放在兩個(gè)寄存器中,當(dāng)兩個(gè)寄存器中的值不一致時(shí),即開始解碼過程,從而完成檢測(cè)數(shù)據(jù)變化的進(jìn)程。分頻計(jì)數(shù)進(jìn)程用來(lái)產(chǎn)生clklx,并用分頻計(jì)數(shù)的結(jié)果來(lái)實(shí)現(xiàn)1/4和3/4點(diǎn)的采樣。根據(jù)曼徹斯特碼的性質(zhì),對(duì)1/4和3/4點(diǎn)采樣可以準(zhǔn)確的恢復(fù)成NRZ碼。此后在clklx的驅(qū)動(dòng)下,控制字計(jì)數(shù)器開始計(jì)數(shù),直到8個(gè)clklx之后,計(jì)數(shù)器歸零。解碼進(jìn)程則在clkl6x的驅(qū)動(dòng)下,對(duì)1/4和3/4采樣點(diǎn)的數(shù)據(jù)進(jìn)行解碼,從而得到曼碼相對(duì)應(yīng)的NRZ碼。緊接著將解碼得到的每一位NRZ碼移入8位的移位寄存器,當(dāng)控制字寄存器計(jì)到8時(shí)(即8位移位寄存器溢出的時(shí)候),再將8位NRZ碼一起輸出到數(shù)據(jù)寄存器,最后輸出數(shù)據(jù)寄存器中被解碼好的NRZ碼。

圖4所示是采用該設(shè)計(jì)的曼徹斯特碼的時(shí)序仿真波形,clkl6x采用16 MHz的時(shí)鐘,mdi為輸入的曼碼(10101100)。最后輸出dout為十六進(jìn)制AC,這說明該解碼過程是正確的。

在XC9500系列CPLD芯片上實(shí)現(xiàn)曼徹斯特碼編解碼器的設(shè)計(jì)

2.2 編碼

編碼是解碼的逆過程。編碼的過程也可以分為兩部分:一是檢測(cè)編碼周期是否開始,以決定產(chǎn)生正跳變沿;二是對(duì)串行的數(shù)據(jù)進(jìn)行編碼,之后編碼周期結(jié)束。編碼器的輸入時(shí)鐘(clk2x)為2MHz。當(dāng)寫信號(hào)(wr)為高電平時(shí),開始產(chǎn)生正跳變沿,并使clklx-enable為高電平,這樣,正跳變沿產(chǎn)生完成即開始編碼過程。將clk2x進(jìn)行二分頻可得到clklx,這樣可使歸零制的數(shù)據(jù)(nrz)與clklx相對(duì)應(yīng)。此后再在clklx_enable高電平和clk2x正跳變的情況下,將歸零制碼(nrz)轉(zhuǎn)換成相應(yīng)的曼徹斯特碼(meo)。最后,當(dāng)寫信號(hào)(wr)為低電平時(shí),以使clklx_enable為低電平,結(jié)束編碼過程。

在XC9500系列CPLD芯片上實(shí)現(xiàn)曼徹斯特碼編解碼器的設(shè)計(jì)

圖5所示其編碼時(shí)序仿真波形圖,圖中,clk2x采用2MHz的時(shí)鐘,nrz為串行輸入的歸零制碼(10101100),meo為串行輸出的曼徹斯特碼。由圖可見,從剛開始的跳變沿之后,輸出meo也為10101100,證明編碼過程正確。

3 基于CPLD的曼徹斯特碼實(shí)現(xiàn)

為了確保設(shè)計(jì)的可行性,操作時(shí)必須對(duì)設(shè)計(jì)進(jìn)行時(shí)序仿真。為了提高CPLD芯片的性能及資源利用率,應(yīng)采用專門的綜合軟件來(lái)對(duì)設(shè)計(jì)進(jìn)行優(yōu)化和綜合。本設(shè)計(jì)采用Synplify7.3進(jìn)行綜合,并采用Active-HDL6.1進(jìn)行時(shí)序仿真。在Synplify中使用有效的代碼可以優(yōu)化組合邏輯、減少邏輯延時(shí),從而提高整體性能。此外,本設(shè)計(jì)還進(jìn)行了多個(gè)文件的分塊設(shè)計(jì),然后將這些文件映射到頂層文件進(jìn)行綜合,并運(yùn)用VHDL對(duì)單個(gè)文件進(jìn)行編寫、仿真和優(yōu)化。在用到組合邏輯時(shí),Syn-plify會(huì)盡量避免鎖存器的出現(xiàn),節(jié)省邏輯單元。Synplify和其它綜合軟件一樣,編譯后所生成的電子設(shè)計(jì)交換格式文件(EDIF)可以在Active-HDL中進(jìn)行編譯、仿真、分配引腳和其它優(yōu)化處理。因此,采用Active-HDL6.1和Synplify7.3相結(jié)合對(duì)CPLD進(jìn)行設(shè)計(jì)、優(yōu)化、綜合,可以提高系統(tǒng)性能和

芯片資源的利用率。

CPLD(Complex Programmable Logic Device復(fù)雜可編程邏輯器件)的內(nèi)部結(jié)構(gòu)為“與或陣列”。該結(jié)構(gòu)來(lái)自于典型的PAL、GAL器件結(jié)構(gòu)。由于任意一個(gè)組合邏輯都可以用“與一或”表達(dá)式來(lái)描述,所以該“與或陣列”結(jié)構(gòu)能實(shí)現(xiàn)大量的組合邏輯功能。CPLD和FPGA的主要區(qū)別如下:

(1) 布線能力

CPLD內(nèi)連率高,不需要人工布局布線來(lái)優(yōu)化速度和面積,較FPGA更適合于EDA芯片設(shè)計(jì)的可編程驗(yàn)證;

(2) 延遲可預(yù)測(cè)能力

CPLD連續(xù)式布線結(jié)構(gòu)決定了時(shí)序延時(shí)是均勻的和可預(yù)測(cè)的,而FPGA的分段式布線結(jié)構(gòu)則決定了其不可預(yù)測(cè)時(shí)間延遲;

(3) 集成度的不同

CPLD的集成度一般在500~50000門。而FP-GA的集成度一般在1K~10M門;

(4) 應(yīng)用范圍的不同

CPLD邏輯能力強(qiáng)而寄存器少,適用于控制密集型系統(tǒng),而FPGA邏輯能力較弱但寄存器多,適于數(shù)據(jù)密集型系統(tǒng)。

CPLD和FPGA的共同優(yōu)點(diǎn)一是規(guī)模越來(lái)越大,實(shí)現(xiàn)功能越來(lái)越強(qiáng),同時(shí)可以實(shí)現(xiàn)系統(tǒng)集成。二是研制開發(fā)費(fèi)用低,不承擔(dān)投片風(fēng)險(xiǎn),使用方便。三是通過開發(fā)工具在計(jì)算機(jī)上完成設(shè)計(jì),電路設(shè)計(jì)周期短,同時(shí)不需要設(shè)計(jì)人員了解很深的IC知識(shí),EDA軟件易學(xué)易用。此外通過FPGA和CPLD開發(fā)的系統(tǒng)成熟后,還可以進(jìn)行A-SIC設(shè)計(jì),以形成批量生產(chǎn)。

事實(shí)上,本設(shè)計(jì)在Xilinx公司的XC9500系列CPLD(xc95108pq100-7)芯片上進(jìn)行了實(shí)現(xiàn)。并針對(duì)其特點(diǎn)對(duì)設(shè)計(jì)進(jìn)行了最后的優(yōu)化。該編解碼器共占用了149個(gè)邏輯單元,占總邏輯資源的8%,因此,十分有利于今后對(duì)其進(jìn)行完善和功能的添加。

4 結(jié)束語(yǔ)

本設(shè)計(jì)具有一定的通用性,它的邏輯大部分只涉及到編、解碼器本身;而它與外部的接口十分簡(jiǎn)單,只要對(duì)其讀、寫并對(duì)跳變沿信號(hào)進(jìn)行有效控制,就能使其正常工作。本設(shè)計(jì)十分獨(dú)立,由于選用器件資源比較豐富,故對(duì)其進(jìn)行功能添加也十分方便,只需添加電路設(shè)計(jì)而不必對(duì)原有電路進(jìn)行修改。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    456

    文章

    51055

    瀏覽量

    425584
  • 解碼器
    +關(guān)注

    關(guān)注

    9

    文章

    1144

    瀏覽量

    40839
  • cpld
    +關(guān)注

    關(guān)注

    32

    文章

    1248

    瀏覽量

    169483
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    采用復(fù)雜控制邏輯器件和VHDL語(yǔ)言實(shí)現(xiàn)曼徹斯特編解碼器的設(shè)計(jì)

    之間的通信實(shí)際都屬于數(shù)據(jù)通信。曼徹斯特編解碼器是1553B總線接口中不可缺少的重要組成部分。曼徹斯特
    發(fā)表于 08-03 15:53 ?1761次閱讀
    采用復(fù)雜控制邏輯器件和VHDL語(yǔ)言<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>曼徹斯特</b><b class='flag-5'>編解碼器</b>的設(shè)計(jì)

    音頻編解碼器技術(shù)

    語(yǔ)音編解碼器技術(shù)的發(fā)展一定程度上處于靜止?fàn)顟B(tài),但音頻編解碼器技術(shù)一直向前演進(jìn)。音頻編解碼器朝更多的環(huán)繞聲通道發(fā)展就是一個(gè)趨勢(shì)。
    發(fā)表于 02-03 16:17 ?5015次閱讀

    CPLD XC9500是否有任何序列?

    。同樣,CPLD XC9500是否有任何序列?我所理解的是.jed文件是SHIFT-DR狀態(tài)下而不是.bit文件傳輸?shù)?。它是否正確?傳輸.jed文件后,XC9500是否還需要JSTA
    發(fā)表于 01-15 09:47

    XC9500系列CPLD遙控編程該怎么設(shè)計(jì)?

    XC9500系列CPLD器件是由多個(gè)功能塊(FB)和IO塊(IOB)組成,可用開關(guān)矩陣Fast CONNECT完全互連的子系統(tǒng),IOB提供輸入和輸出的緩沖,每個(gè)FB提供具有36個(gè)輸入和18個(gè)輸出
    發(fā)表于 09-30 06:02

    編解碼器的工作原理是什么?

    編解碼器是用于對(duì)數(shù)字媒體文件(如歌曲或視頻)進(jìn)行壓縮或解壓縮的軟件。Windows Media Player 和其他程序使用編解碼器來(lái)播放并創(chuàng)建數(shù)字媒體文件。
    發(fā)表于 04-06 09:00

    怎么利用VHDL語(yǔ)言實(shí)現(xiàn)卷積編解碼器的設(shè)計(jì)

    如何使用VHDL語(yǔ)言設(shè)計(jì)卷積編解碼器
    發(fā)表于 04-29 06:39

    請(qǐng)問怎樣去設(shè)計(jì)曼徹斯特編解碼器?

    一種基于CPLD曼徹斯特編解碼器設(shè)計(jì)。
    發(fā)表于 05-06 10:32

    如何控制曼徹斯特編解碼器?

    怎樣運(yùn)用CPLD去控制曼徹斯特編解碼器?
    發(fā)表于 05-07 07:09

    基于CPLD的卷積編解碼器的設(shè)計(jì)

    卷積是一種性能優(yōu)良的差錯(cuò)控制編碼。本文闡述了卷積編解碼器的基本工作原理,MAX+PLUS2 軟件平臺(tái)上,給出了利用復(fù)雜可編程邏輯器件設(shè)計(jì)的(2,1,6)卷積
    發(fā)表于 08-10 08:39 ?24次下載

    EDA卷積編解碼器實(shí)現(xiàn)技術(shù)

    EDA卷積編解碼器實(shí)現(xiàn)技術(shù)針對(duì)某擴(kuò)頻通信系統(tǒng)數(shù)據(jù)糾錯(cuò)編碼的需要, 構(gòu)造并分析了(2 , 1 , 6) 卷積編解碼器的基本工作原理, 提出
    發(fā)表于 12-05 16:17 ?0次下載

    什么是音頻編解碼器?

    什么是音頻編解碼器? 編解碼器(編碼/解碼器)轉(zhuǎn)換成模擬信號(hào)的數(shù)字碼流,另一個(gè)相同的編解碼器轉(zhuǎn)換為數(shù)字流回到成模擬信
    發(fā)表于 05-03 23:48 ?4052次閱讀

    CPLD控制曼徹斯特編解碼器

    討論如何使用CPLD實(shí)現(xiàn)單片機(jī)與曼徹斯特編解碼器的接口。設(shè)計(jì)時(shí)采用自頂向下的流程,具體電路可靈活地添加到各種曼徹斯特
    發(fā)表于 06-16 07:40 ?1381次閱讀
    用<b class='flag-5'>CPLD</b>控制<b class='flag-5'>曼徹斯特</b><b class='flag-5'>編解碼器</b>

    用FPGA實(shí)現(xiàn)1553B總線接口中的曼編解碼器

    摘要: 介紹用FPGA設(shè)計(jì)實(shí)現(xiàn)MIL-STD1553B部接口中的曼徹斯特編解碼器。該設(shè)計(jì)采用VHDL硬件描述語(yǔ)言編程,并且專門的綜合工具Synplify對(duì)設(shè)計(jì)進(jìn)行綜合、優(yōu)化,
    發(fā)表于 04-19 21:38 ?1633次閱讀
    用FPGA<b class='flag-5'>實(shí)現(xiàn)</b>1553B總線接口中的曼<b class='flag-5'>碼</b><b class='flag-5'>編解碼器</b>

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

    設(shè)計(jì)出基于FPGA的曼徹斯特編解碼器是影響整個(gè)總線系統(tǒng)通信質(zhì)量的關(guān)鍵。本設(shè)計(jì)采用硬件描述語(yǔ)言(Verilog)設(shè)計(jì)電路,ISE完成綜合和布局布線的工作,并用modelSim進(jìn)行仿真驗(yàn)證。深入
    發(fā)表于 12-28 10:36 ?95次下載
    基于FPGA的<b class='flag-5'>曼徹斯特</b><b class='flag-5'>編解碼器</b>設(shè)計(jì)

    用FPGA器件與VHDL語(yǔ)言實(shí)現(xiàn)曼徹斯特編解碼器的設(shè)計(jì)

    曼徹斯特編碼、解碼器是1553B總線接口中不可缺少的重要組成部分。曼徹斯特編解碼器設(shè)計(jì)的好壞
    的頭像 發(fā)表于 04-24 08:24 ?5184次閱讀