<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 網(wǎng)絡(luò )與存儲 > 設計應用 > 基于FPGA的數據高速串行通信實(shí)現

基于FPGA的數據高速串行通信實(shí)現

作者:程惠珍,董濤 時(shí)間:2009-01-19 來(lái)源:國外電子元器件 收藏

1 引言

本文引用地址:http://dyxdggzs.com/article/90807.htm

  在許多實(shí)際運用的場(chǎng)合中,數字信號傳輸具有數據量大,傳輸速度高,采用串行傳輸等特點(diǎn)。這就要求數據收發(fā)雙方采用合理的編解碼方式及高速器件。數字信號傳輸一般分并行傳輸、串行傳輸兩種。并行傳輸具有數據源和數據目的地物理連接方便,誤碼率低,傳輸速率高。但是并行傳輸方式要求各條線(xiàn)路同步,因此需要傳輸定時(shí)和控制信號,而其各路信號在經(jīng)過(guò)轉發(fā)與放大處理后,將引起不同的延遲與畸變,難以實(shí)現并行同步。若采用更復雜的技術(shù)、設備與線(xiàn)路,其成本會(huì )顯著(zhù)上升。而高速遠程數據傳輸一般采用串行同步傳輸。傳統建立準確的時(shí)鐘信號的方法是采用鎖相環(huán)技術(shù)。但鎖相環(huán)有若干個(gè)明顯缺陷,一是其同步建立時(shí)間及調整精度即使采用變階的方法也很難兼顧;二是鎖相環(huán)需要一個(gè)高精度高頻率的本地時(shí)鐘。 本文所討論的兩種串行同步傳輸方法,無(wú)需高頻率時(shí)鐘信號,就可完全數字化。采用Altera公司的ACEXlK系列器件完成電路設計,且外圍電路簡(jiǎn)單,成本低,效果好。

2主要器件介紹

  編碼和解碼采用ACEXlK系列器件EPlK100QC208-2。ACEXlK器件是Altera公司針對通信、音頻處理及類(lèi)似場(chǎng)合應用而設計的。該系列器件具有如下特性:

  高性能。采用查找表(LUT)和嵌入式陣列塊(EAB)相結合的結構,適用于實(shí)現復雜邏輯功能和存儲器功能,例如通信中應用的DSP、多通道數據處理、數據傳遞和微控制等;

  高密度。典型門(mén)數為1萬(wàn)到10萬(wàn)門(mén),有多達49 152位的RAM(每個(gè)EAB有4 096位RAM)。

  系統性能。器件內核采用2.5 V電壓,功耗低,其多電壓引腳驅動(dòng)2.5 V、3.3 V、5.0 V的器件,也可被這些電壓所驅動(dòng),雙向I/O引腳執行速度可達250 MHz;

  靈活的內部互聯(lián)。具有快速連續式延時(shí)可預測的快速通道互連。

3實(shí)現方法

  本文所述方法應用于數字音頻數據實(shí)時(shí)傳輸。原始數字音頻每一幀視頻數據為并行8位,速率達2 Mb/s,串行傳輸速度為16 Mb/s。

3.1新的曼徹斯編碼方法 這種方法是在接收端利用狀態(tài)轉移圖的方法得到同步時(shí)鐘信號。具體方法如下:

(1)幀同步信號的產(chǎn)生

  發(fā)送方系統提供64 MHz時(shí)鐘,將其4分頻得到16 MHz時(shí)鐘作為系統時(shí)鐘,64 MHz時(shí)鐘僅用于最后的消除信號毛刺。幀同步共16位,其中前12位為"0",后3位為"1",最后1位為"0"。仿真時(shí)序如圖1所示。

(2)編碼方法

  數據發(fā)送采用曼徹斯特編碼,編碼規則為:0→01(零相位的一個(gè)周期的方波);1→10(π相位的一個(gè)周期的方波)。

  從以上規則可知輸出信號將在每一位碼元中間產(chǎn)生跳變,因此可采用具有游程短,位定時(shí)信息豐富的曼徹斯特編碼電路。編碼時(shí),當輸入信號為"0"時(shí),輸出為時(shí)鐘的"非";當輸入信號為"1"時(shí),輸出與時(shí)鐘一致。因此,可采用數據選擇時(shí)鐘,其電路如圖2所示。


 
  仿真的編碼時(shí)序如圖3所示,當輸人數據(data)為"1",輸出(out)與時(shí)鐘(clk)同相(稍有延時(shí));反之,當輸入數據為"0",輸出與時(shí)鐘反相(稍有延時(shí))。

(3)狀態(tài)轉移圖生成同步信號

  接收方系統提供80 MHz時(shí)鐘,接收方和發(fā)送方的時(shí)鐘并非來(lái)自同一個(gè)時(shí)鐘源。將發(fā)送方的信號通過(guò)序列碼檢測器,發(fā)送方的幀同步信號有一個(gè)維持187.5 ns的脈沖(3個(gè)16 MHz時(shí)鐘),當接收方檢測到"11111111111111"時(shí)(14個(gè)80 MHz時(shí)鐘,共175 ns),則認為是有效信號,然后向后級發(fā)出一個(gè)復位信號,接收方的后繼模塊開(kāi)始重新工作。由于發(fā)送方采用曼徹斯特編碼,數據不會(huì )出現連續的"1"或連續的"0",游程短,這種檢測幀同步信號的方法是有效的,不存在把所要傳輸的數據當成幀同步的情況。當該復位信號產(chǎn)生后,狀態(tài)機開(kāi)始工作,用狀態(tài)機的狀態(tài)轉移產(chǎn)生同步信號。狀態(tài)轉移圖如圖4所示。


 
  根據曼徹斯特編碼規則,每一位兩個(gè)碼元中間電平產(chǎn)生跳變,因此不會(huì )出現超過(guò)62.5 ns的"1"或者"0",反映在狀態(tài)轉移圖上表現為最多出現6個(gè)連續的"1"或者"0"。當出現"111111"時(shí),根據狀態(tài)轉移圖,它將返回到狀態(tài)t1,但是下次必然轉移到狀態(tài)f6,因此對同步時(shí)鐘的輸出沒(méi)有影響。該方法仿真的波形圖如圖5所示,其中dataout為發(fā)送方的輸出信號,即接收方的輸人信號;clk80m_in為接收方的系統時(shí)鐘;current_state為狀態(tài)機的狀態(tài),狀態(tài)0~10分別對應狀態(tài)轉移圖4的狀態(tài)S0,t1~t5,f6~f10;clkout為恢復出來(lái)的同步時(shí)鐘。當出現一個(gè)31 ns寬度的電平時(shí)將產(chǎn)生一個(gè)同步時(shí)鐘;當出現持續62 ns寬度的脈沖時(shí)產(chǎn)生兩個(gè)同步時(shí)鐘。采用clkout的上升沿即可準確恢復原信號。
 

  由于不會(huì )連續出現超過(guò)6個(gè)"1"或"0",累積誤差小,采用該方法,對接收方時(shí)鐘精度要求不高,仿真時(shí)將時(shí)鐘分別調為80.6 MHz和79.4 MHz,在這兩種情況下都能準確得到同步時(shí)鐘并恢復原信號。與鎖相環(huán)相比,它所需的建立時(shí)間要短得多。

3.2另一種編碼方法

另一種比較特殊編碼方式含有豐富的時(shí)鐘信號。接收端將接收到的數據延時(shí)即可得到同步時(shí)鐘。其產(chǎn)生幀同步新的曼徹斯特編碼方法一致。

(1)編碼方法

  發(fā)送方系統提供64 MHz時(shí)鐘,原始信號速率依舊為16 MHz,數據的編碼方式:0→1000,1→1110。

  一個(gè)碼元對應64 MHz的4位編碼。每一個(gè)碼元開(kāi)始時(shí)第1位為"1",第2和第3位為輸入信號信息,第4位是"0",這樣便可保證在每一個(gè)碼元開(kāi)始時(shí)產(chǎn)生上升沿。該上升沿便是一個(gè)非常優(yōu)良的同步時(shí)鐘,只要將上升沿對準數據的有效位置(編碼的第2,3位),即可恢復原信號。


 
  當輸入信號為"1",在延時(shí)一個(gè)碼元寬度(1/16 MHz)后,輸出"1110";當輸入信號為"0",延時(shí)一個(gè)碼元寬度(1/16 MHz)后輸出"1000"。其實(shí)質(zhì)就是一個(gè)序列碼發(fā)生器,根據不同的輸入,產(chǎn)生不同的輸出序列。編碼電路是采用VHDL語(yǔ)言實(shí)現,生成模塊如圖6所示,時(shí)序仿真如圖7所示。


 


(2)接收端同步時(shí)鐘提取

  接收方檢測幀同步的方法與新的曼徹斯特編碼方法一樣。解碼過(guò)程是將輸入信號通過(guò)D觸發(fā)器延時(shí)得到同步時(shí)鐘,再由同步時(shí)鐘恢復原信號。D觸發(fā)器的時(shí)鐘采用接收方的系統時(shí)鐘80 MHz,則通過(guò)一個(gè)D觸發(fā)器的延時(shí)時(shí)間T的范圍0~12.5 ns,可通過(guò)兩D觸發(fā)器延時(shí)時(shí)間T的范圍12.5~25 ns,通過(guò)3個(gè)觸發(fā)器延時(shí)時(shí)間T的范圍25.0~37.5 ns,這樣就可以將上升沿延時(shí)到數據編碼的有效位置(編碼第2、3位的時(shí)間范圍是15.625~46.875 ns)。當信號通過(guò)D觸發(fā)器,信號的寬度可能會(huì )有變化,這里把通過(guò)D觸發(fā)器的信號作為同步時(shí)鐘,只關(guān)心其上升沿位置,而其寬度的變化不會(huì )影響解碼過(guò)程。

  圖7中datain為輸入的原信號,dataout為編碼后的信號,clkout為得到的同步時(shí)鐘,clk64m為發(fā)送方系統時(shí)鐘,clk80m為接收方系統時(shí)鐘。當輸入第1個(gè)碼元,還未產(chǎn)生輸出信號;輸入第2個(gè)碼元時(shí),第1個(gè)碼元"1"所對應64 MHz編碼"1110"輸出;輸入第3個(gè)碼元時(shí),將第2個(gè)碼元"0"所對應64 MHz編碼"1000"輸出,依次類(lèi)推。在接收方,將dataout延時(shí)得到clkout,由圖可看出每次clkout的上升沿都對準編碼的有效部分,這樣就可準確的恢復原信號。

  這種方法雖然編碼較為復雜,但優(yōu)點(diǎn)也是顯而易見(jiàn)的,它的同步建立時(shí)間極短,解碼電路原理和設計都極其簡(jiǎn)單,不易出錯。通過(guò)三個(gè)D觸發(fā)器延時(shí)時(shí)間T范圍25.0~37.5ns,而編碼第2、3位的時(shí)間范圍是15.625~46.875 ns。時(shí)間上存在較大冗余,只要每一位解調時(shí)誤差不超過(guò)9 ns就能準確恢復原信號,這樣的精度要求對于實(shí)際系統來(lái)說(shuō)是很容易實(shí)現的。


4結語(yǔ)

  這兩種同步方法與鎖相環(huán)相比,優(yōu)點(diǎn)明顯,建立時(shí)間短,只需要一個(gè)幀同步用來(lái)檢測數據開(kāi)始,然后就可在一個(gè)碼元時(shí)間內恢復同步時(shí)鐘,而且對接收方時(shí)鐘的精度和頻率要求不是很高,整個(gè)編碼和解碼可以分別用一個(gè)完成設計,電路設計全數字化,大大降低了PCB設計的成本和難度,且調試方便,縮短了項目周期。

fpga相關(guān)文章:fpga是什么


通信相關(guān)文章:通信原理


鎖相環(huán)相關(guān)文章:鎖相環(huán)原理


關(guān)鍵詞: 串行通信 FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>