引言
在地質(zhì)勘探、工業(yè)環(huán)境監(jiān)測、大型科學(xué)實(shí)驗(yàn)等領(lǐng)域中需要將實(shí)時(shí)采集到的大量數(shù)據(jù)以較高的速率傳輸距離較遠(yuǎn),復(fù)雜而龐大的數(shù)據(jù)傳輸任務(wù)給傳輸系統(tǒng)的設(shè)計(jì)帶來極大的挑戰(zhàn)。目前常見的遠(yuǎn)距離高速傳輸方案多采用較為復(fù)雜的光纖通道等方案,系統(tǒng)的成本、設(shè)計(jì)難度、體積和功耗都相對較大,限制了其應(yīng)用場合。
LVDS(Low Voltage Differential Signaling)是一種小振幅差分信號技術(shù),它允許單個(gè)信道傳輸速率達(dá)到每秒數(shù)百兆比特,其特有的低振幅及恒流源模式驅(qū)動只產(chǎn)生極低的噪聲,消耗非常小的功率。LVDS 是目前常見的高速數(shù)據(jù)傳輸方案,但其多用于芯片間、背板間或設(shè)備間進(jìn)行近距離的數(shù)據(jù)傳輸。
本文中提出的高速數(shù)據(jù)遠(yuǎn)距離傳輸系統(tǒng)方案以Altera 公司Cyclone III 系列低成本FPGA 芯片EP3C5E144C8 的為核心,以LVDS 信號為基礎(chǔ),通過增加信道編碼、數(shù)據(jù)時(shí)鐘恢復(fù)、預(yù)加重和均衡等技術(shù),保證了數(shù)據(jù)傳輸?shù)姆€(wěn)定性和同步性。保證采用UTP-5 雙絞線為傳輸介質(zhì)時(shí)傳輸速率不低于400Mbps,傳輸距離為50 米時(shí)上的,實(shí)現(xiàn)低成本的遠(yuǎn)距離高速數(shù)據(jù)傳輸。
1、方案總體設(shè)計(jì)
LVDS 信號一種低振幅高速差分信號,由于其電氣特性決定了其傳輸距離有限。為了滿足系統(tǒng)使用UTP-5 雙絞線實(shí)現(xiàn)距離50m 的數(shù)據(jù)傳輸要求,需要通過增加預(yù)加重和均衡技術(shù)來恢復(fù)線路上傳輸?shù)男盘柌ㄐ巍S捎趥鬏斁嚯x較遠(yuǎn)且傳輸速率較高,無法直接采用傳送位時(shí)鐘信號和幀同步脈沖來保證系統(tǒng)同步。本系統(tǒng)采取接收端從接收數(shù)據(jù)中恢復(fù)時(shí)鐘信號的方法簡化系統(tǒng)設(shè)計(jì)方案。
系統(tǒng)整體設(shè)計(jì)框圖如圖1 所示,整個(gè)系統(tǒng)的核心模塊包括了8B/10B 編碼、CDR(時(shí)鐘恢復(fù))、并-串/串-并轉(zhuǎn)換模塊、LVDS 接口電路、電纜驅(qū)動器(Cable Driver)和電纜均衡器(Cable Equalizer)等。數(shù)據(jù)在發(fā)送端的FPGA 內(nèi)經(jīng)過8B/10B 編碼,并-串轉(zhuǎn)換經(jīng)LVDS 模式的I/O 端口轉(zhuǎn)化為LVDS 信號,然后經(jīng)過線路驅(qū)動器芯片CLC001 預(yù)加重后,通過UTP-5 雙絞線傳出數(shù)據(jù)。接收端收到的信號經(jīng)過均衡器芯片LMH0074SQ 均衡后進(jìn)入FPGA,在接收端FPGA 內(nèi),數(shù)據(jù)先經(jīng)過CDR 模塊提取時(shí)鐘信號,然后字對齊后經(jīng)過串-并轉(zhuǎn)換產(chǎn)生并行數(shù)據(jù)流,最后經(jīng)過8B/10B 解碼模塊得到傳輸數(shù)據(jù)。
整個(gè)系統(tǒng)除電纜驅(qū)動器和電纜均衡器采用專用芯片外其它功能均在FPGA內(nèi)部實(shí)現(xiàn),從而極大的減小了系統(tǒng)的復(fù)雜度和PCB 板的面積。
圖1 系統(tǒng)整體框圖
2.FPGA 關(guān)鍵模塊設(shè)計(jì)
FPGA 作為系統(tǒng)的核心芯片,根據(jù)系統(tǒng)整體方案的設(shè)計(jì)思路,F(xiàn)PGA 中含有的模塊主要有信道編解碼模塊、數(shù)據(jù)時(shí)鐘恢復(fù)模塊、串/并轉(zhuǎn)換模塊。
2.1 信道編解碼模塊
在高速數(shù)據(jù)傳輸過程中,為了使數(shù)據(jù)時(shí)鐘恢復(fù)模塊中的數(shù)字鎖相環(huán)能夠得到足夠充足的跳變沿信息,需要采用信道編解碼技術(shù)消除或減少數(shù)字電信號中的直流和低頻分量。8B/10B 編碼是其中最常用的一種編碼方式。
8B/10B 編碼被廣泛應(yīng)用于多種高速串行通信協(xié)議中。它將8bits 的基帶信號映射成10bits 的數(shù)據(jù)進(jìn)行發(fā)送,防止在基帶數(shù)據(jù)中過多的0 碼流或1 碼流。通過8B/10B 編碼可以提高數(shù)據(jù)在鏈路上的傳輸?shù)男阅?;?a target="_blank">接收器可以正確地恢復(fù)時(shí)鐘;提高碼流中一個(gè)或者多個(gè)比特錯(cuò)誤的檢測能力;定義特定的碼元使接收器能夠正確地對齊碼元。在本系統(tǒng)中分別在兩塊FPGA 中實(shí)現(xiàn)了8B/10B 編碼模塊和8B/10B 解碼模塊。
8B/10B 編碼模塊如圖2 所示,該模塊在邏輯上又分成3B/4B 編碼模塊、5B/6B 編碼模塊、RD 控制模塊等3 部分。編碼器首先將接收到的8B 數(shù)據(jù)分成3 bit 和5 bit 兩部分,然后分別編碼成4 bit 和6 bit,編碼完成的4 bit 和6 bit 再按順序組合成10B 碼。整個(gè)系統(tǒng)首先將3 bit 編碼成4 bit,RD 控制器讀出4 bit 數(shù)據(jù)的RD 值,然后反饋控制5B/6B 編碼模塊選擇合適的編碼。最終RD 控制器判斷10B 數(shù)據(jù)的RD 值,若滿足要求則輸出,否則將報(bào)錯(cuò)。
圖2 8B/10B 編碼模塊邏輯框圖
解碼模塊如圖3 所示,可分為6B/5B 解碼模塊、4B/3B 解碼模塊和誤碼檢測模塊。解碼模塊相對編碼模塊而言邏輯過程要簡單的多,該模塊首先將10 bit 信號分割成4 bit 和6bit 兩部分(高低位必須和編碼端對應(yīng)),然后4 bit 和6 bit 數(shù)據(jù)根據(jù)編碼列表分別解碼成3 bit 和5 bit,在解碼過程中判斷是否有誤碼產(chǎn)生有則報(bào)錯(cuò),無則并行輸出。
圖3 8B/10B 解碼模塊邏輯框圖
2.2.數(shù)據(jù)時(shí)鐘恢復(fù)模塊
在單向數(shù)據(jù)傳輸中,串行通信通常需要同時(shí)提供數(shù)據(jù)、位時(shí)鐘、幀同步脈沖三路信號。在本系統(tǒng)說要求的高速率、長距離的數(shù)據(jù)傳輸要求下,這種三線連接方式不但浪費(fèi)導(dǎo)線,而且往往受環(huán)境的影響很難實(shí)現(xiàn)三路信號間的同步。在本系統(tǒng)中由于輸入信號頻率已知,因此可以在FPGA 芯片內(nèi)部產(chǎn)生與之同頻的時(shí)鐘信號。通過數(shù)字鎖相環(huán)電路鎖定輸入信號的相位,并使用此時(shí)鐘信號對輸入數(shù)據(jù)進(jìn)行采樣,從而完成信號的接收。因而,利用數(shù)據(jù)時(shí)鐘恢復(fù)模塊可以從串行位流數(shù)據(jù)中恢復(fù)出接收位同步時(shí)鐘、幀同步脈沖和接收的數(shù)據(jù)。
數(shù)字鎖相環(huán)(DPLL)是一種相位反饋控制系統(tǒng)。它根據(jù)輸入信號與本地估算時(shí)鐘之間的相位誤差對本地估算時(shí)鐘的相位進(jìn)行連續(xù)不斷的反饋調(diào)節(jié),從而達(dá)到使本地估算時(shí)鐘相位跟蹤輸入信號相位的目的。DPLL 通常有三個(gè)組成模塊:數(shù)字鑒相器(DPD)、數(shù)字環(huán)路濾波器(DLF)、 數(shù)控振蕩器(DCO)。根據(jù)各個(gè)模塊組態(tài)的不同,DPLL 可以被劃分出許多不同的類型。根據(jù)設(shè)計(jì)的要求,本文采用超前滯后型數(shù)字鎖相環(huán)(LL-DPLL)作為解決方案,圖5 是其實(shí)現(xiàn)結(jié)構(gòu)。在LL-DPLL 中,DPD 采用微分型超前-滯后數(shù)字鑒相器,DLF 用雙向計(jì)數(shù)邏輯和比較邏輯實(shí)現(xiàn),DCO 采用加扣脈沖式數(shù)控振蕩器。這樣設(shè)計(jì)出來的DPLL 具有結(jié)構(gòu)簡潔明快,參數(shù)調(diào)節(jié)方便,工作穩(wěn)定可靠的優(yōu)點(diǎn),其結(jié)構(gòu)框圖如圖4 所示。
圖4 超前滯后型數(shù)字鎖相環(huán)
環(huán)路的工作原理如下:超前滯后型數(shù)字鑒相器LL-DPD 比較輸入位流數(shù)據(jù)DataIn 與本地估算時(shí)鐘ClkEst 的相位,給出相位誤差信號Sign 和AbsVal。DLF 對相位誤差信號進(jìn)行平滑濾波,并生成控制DCO 動作的控制信號Deduct 和Insert。DCO 根據(jù)控制信號給出的指令,調(diào)節(jié)內(nèi)部高速振蕩器的震蕩頻率,使其輸出時(shí)鐘ClkEst(同時(shí)反饋給LL-DPD)的相位跟蹤輸入數(shù)據(jù)DataIn 的相位。
3.板級電路設(shè)計(jì)
本系統(tǒng)核心芯片采用Altera 公司的Cyclone III 系列FPGA 中的EP3C5E144C8, Altera 公司的Cyclone III FPGA 系列組合了高性能,低功耗和低成本,邏輯單元(LE) 從5K 到200K,存儲器從0.5Mb 到8Mb,靜態(tài)功耗小于1/4 瓦.
由于設(shè)計(jì)要求達(dá)到高速率、50 米的傳輸距離,傳統(tǒng)的LVDS 接口雖然可以達(dá)到較高的傳輸速率卻不能支持長距離傳輸。所以本系統(tǒng)采用高速串行數(shù)字接口(SDI)自適應(yīng)電纜均衡器及電纜驅(qū)動器芯片來實(shí)現(xiàn)數(shù)據(jù)高速率、長距離的傳輸。
預(yù)加重是在信號發(fā)送前對其進(jìn)行預(yù)扭曲,以使接收器上的信號質(zhì)量如同原始發(fā)送的質(zhì)量。當(dāng)信號在直流電平上保持超過一個(gè)比特的時(shí)間時(shí),預(yù)加重就會抬高高頻分量而降低低頻分量。本文選用CLC001 電纜驅(qū)動芯片,CLC001 采用3.3V 供電,輸出幅度可調(diào),理論數(shù)據(jù)速率最高可達(dá)622Mbps 。
接收均衡通過對輸入數(shù)據(jù)運(yùn)用相對頻率特征來補(bǔ)償信號的損耗特征。本文選用LMH0074SQ 接收均衡芯片,LM0074SQ 是標(biāo)準(zhǔn)清晰度SDI 電纜均衡器,可在540 Mbps 的速度范圍內(nèi)操作,輸出抖動典型值為0.2UI。
FPGA 外部電路如圖5所示,在發(fā)送端,F(xiàn)PGA 產(chǎn)生的LVDS 信號經(jīng)CLC001 預(yù)加重后通過UTP-5 雙絞線傳輸;在接收端,信號先經(jīng)過LMH0074SQ 均衡后隔直輸出。由于LVDS 接口電平標(biāo)準(zhǔn)要求輸入電壓直流偏置為1.2V,因此需要通過偏置電路在引入1.2V 的直流偏置后再傳給FPGA。
圖5 FPGA 外圍電路
4.數(shù)據(jù)測試及系統(tǒng)性能分析
4.1 系統(tǒng)測試方案
測試方案主要對系統(tǒng)的靜態(tài)功耗、動態(tài)功耗以及在50 米傳輸距離時(shí)的數(shù)據(jù)傳輸速率及相應(yīng)的誤碼率進(jìn)行測試。測試方案連接框圖如圖6所示。測試所用數(shù)據(jù)存在發(fā)送端例化的ROM 中,接收端FPGA 中例化有FIFO 和ROM,F(xiàn)IFO 用來存儲接收的數(shù)據(jù),ROM 中則存儲有和發(fā)送端ROM 中相同的數(shù)據(jù),用來計(jì)算誤碼率。同時(shí),在接收端FPGA 中有接收數(shù)據(jù)計(jì)數(shù)器和錯(cuò)誤比特計(jì)數(shù)器模塊,通過設(shè)置SignalTap II 的觸發(fā)信號和想觀察的信號,就可以在SignalTap II Logic Analyzer 的窗口中實(shí)時(shí)的看到這些信號。
圖6 系統(tǒng)測試方案
4.2 功耗測試
本系統(tǒng)通過直流穩(wěn)壓電源供電,方便計(jì)算整個(gè)系統(tǒng)的功耗。經(jīng)測試發(fā)現(xiàn),在不同的傳輸速率時(shí)系統(tǒng)的功耗差別不大,動態(tài)功耗典型值為數(shù)據(jù)傳輸速率100Mbps 時(shí),系統(tǒng)消耗電流0.24A,供電電壓3.3V,系統(tǒng)功耗為792mW。靜態(tài)功耗測量時(shí),不發(fā)送數(shù)據(jù),但保持50 米雙絞線接入,電流為0.20A,供電電壓為3.3V,靜態(tài)功耗為660mW。
4.3 誤碼率測試
在發(fā)送端的FPGA 中采用ROM 來存儲數(shù)據(jù),通過狀態(tài)機(jī)transmitter_fsm_3b 來控制數(shù)據(jù)的發(fā)送,狀態(tài)轉(zhuǎn)移圖如圖7上圖所示。接收端則采用FIFO 來存儲數(shù)據(jù),同時(shí)接收端ROM 中存有和發(fā)送端相同的數(shù)據(jù),以實(shí)現(xiàn)接受數(shù)據(jù)與原始數(shù)據(jù)的對比,計(jì)算誤碼率,接收端通過狀態(tài)機(jī)receiver_fsm_3b 來控制數(shù)據(jù)的接收以及誤碼率的計(jì)算,狀態(tài)轉(zhuǎn)移圖如圖7下圖所示。由于EP3C15F144C8 的RAM 大小總共只有512kbits,再加上signal tap 的開銷,所以例化的ROM 和FIFO 比較小,ROM 大小為8Kbyte,內(nèi)部存儲數(shù)據(jù)由00H~FFH 一直重復(fù),把一次ROM 數(shù)據(jù)的發(fā)送當(dāng)成一個(gè)幀。每發(fā)送一次ROM 數(shù)據(jù)即比較一次FIFO 中與原始ROM 中的數(shù)據(jù)。重復(fù)發(fā)送20000 次,總bit 數(shù)等于20000 次*(8192*8)bit= 1469120000bit。因?yàn)榻邮斩说臄?shù)據(jù)時(shí)鐘恢復(fù)和字對齊需要一定的時(shí)間,因而實(shí)際成功重復(fù)次數(shù)不到20000 次,可通過專門的計(jì)數(shù)器來確定實(shí)際重復(fù)次數(shù)。
圖7 狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移圖
在接收端通過SignalTap II Logic Analyzer 實(shí)時(shí)查看接收數(shù)據(jù)rx_data、錯(cuò)誤比特?cái)?shù)error_accumulator 和成功重復(fù)次數(shù)packet_counter,圖8 為SignalTap II Logic Analyzer 接收數(shù)據(jù)的窗口顯示。誤碼率可通過式1 求得:
誤碼率=錯(cuò)誤比特?cái)?shù)/(成功重復(fù)次數(shù)×8192×8) (1)
圖8 SignalTap II Logic Analyzer 數(shù)據(jù)接收窗口顯示
傳輸速率及相應(yīng)誤碼率如表1 所示,在傳輸數(shù)據(jù)為400Mbps,傳輸距離為50 米是誤碼率仍為0。由于選用的均衡器LM0074SQ 的極限速率為540Mbps,因而在數(shù)據(jù)速率為500Mbps 時(shí)誤碼率急劇增大。
表1 傳輸速率及相應(yīng)誤碼率
5.總結(jié)
本系統(tǒng)高速數(shù)據(jù)遠(yuǎn)距離傳輸方案以Altera 公司的Cyclone III 系列EP3C5E144C8 為核心,使用LVDS 信號傳輸數(shù)據(jù),通過信道編碼、數(shù)據(jù)時(shí)鐘恢復(fù)、預(yù)加重和均衡等技術(shù)的使用,保證了數(shù)據(jù)傳輸?shù)姆€(wěn)定性和同步性,在傳輸速率為400Mbps,傳輸距離為50 米時(shí),誤碼率為0??梢詮V泛的應(yīng)用于各種高速遠(yuǎn)距離數(shù)據(jù)傳輸?shù)膱龊稀?/p>
Altera 公司新推出的Cyclone IV GX FPGA 中含有8 個(gè)收發(fā)器,具有時(shí)鐘數(shù)據(jù)恢復(fù)(CDR)功能,并有在片內(nèi)集成可編程預(yù)加重設(shè)置和可調(diào)差分輸出電壓(VOD)提高了信號完整性。本文的后續(xù)工作將在Cyclone IV GX 上實(shí)現(xiàn)本系統(tǒng)的所有功能,以進(jìn)一步提高數(shù)據(jù)傳輸速率、傳輸距離、誤碼率等指標(biāo)。
評論
查看更多