低壓差分信號LVDS(Low Voltage Differential Signal)是由ANSI/TIA/EIA-644-1995定義的用于高速數(shù)據(jù)傳輸?shù)奈锢韺咏涌跇藴?。它具有超高速?.4Gb/s)、低功耗及低電磁輻射的特性,,是在銅介質(zhì)上實現(xiàn)千兆位級高速通信的優(yōu)先方案,;可用于服務器、可堆壘集線器,、無線基站,、ATM交換機及高分辨率顯示等等,,也可用于通信系統(tǒng)的設(shè)計。BLVDS(Bus LVDS)是LVDS技術(shù)在多點通信領(lǐng)域的擴展,,要求附加總線仲裁設(shè)計,、更大的驅(qū)動電流(10mA)和更好的阻抗匹配設(shè)計。
通常是LVDS電路設(shè)計使用各種專用芯片,,如美國國家半導體公司的DS92LV16等,。我們用FPGA芯片自行設(shè)計BLVDS內(nèi)核及擴展部分。相比之下,,使用FPGA可大幅減少芯片數(shù)量,,降低成本,提高系統(tǒng)可靠性,,同時具有更大的靈活性和向后兼容性,。由于目前尚無實用的16位VLVDS收發(fā)器芯片問世,本設(shè)計也填補了專用芯片(ASIC)的空白,。
我們選了Xilinx公司的XCV50E,。此芯片屬于Virtex-E系列,具有如下特性: *0.18nm 6層金屬工藝,,具有5.8萬個系統(tǒng)門,;
*使用1.8V核心電壓,低功耗設(shè)計,;
*130MHz同部時鐘,;
*64KB的同步塊同存(BlockRAM),可實現(xiàn)真正的雙口操作,;
*支持包括LVDS,、BLVDS在內(nèi)的20種高性能接口標準;
*8個全數(shù)字的延遲鎖定環(huán)DLL(Delay Locked Loops),,具有時鐘移相和乘除功能,;
*支持IEEE 1149.1邊界掃描標準,具有基于SRAM的在系統(tǒng)配置功能,。
我們使用Xilinx Foudation F3.1i軟件開發(fā)XCV50E芯片,。設(shè)計流程為:首先用編寫VHDL語言程序、繪制原理圖或設(shè)計狀態(tài)機的方法生成網(wǎng)絡(luò)表,,功能仿真正確后,,經(jīng)過翻譯、映射,、放置和布線,、時序優(yōu)化及配置過程,生成比特流文件,。然后,,進行時序仿真,,仿真通過后下載到PROM中。(我們用了Xilinx公司的XC18V01,。)
1 結(jié)構(gòu)及工作過程
1.1 系統(tǒng)結(jié)構(gòu)和FPGA結(jié)構(gòu)
本通信系統(tǒng)由背板和若干通信子卡組成,。背板并更有8個插槽,并布有BLVDS總線和其它控制,、地址總線,。通信子卡由EP7211芯片(負責數(shù)據(jù)處理)、XCV50E及DRAM,、PROM等外圍芯片和元件組成,,系統(tǒng)結(jié)構(gòu)如圖1所示。
設(shè)計完成后的XCV50E由控制部分,、發(fā)送FIFO、幀編碼器,、串化器,、解串器、幀解碼器,、數(shù)據(jù)檢出器,、接收FIFO、時鐘倍頻器及輸入輸出單元等部分組成,,結(jié)構(gòu)如圖2所示,。
1.2 工作過程
在發(fā)送子卡中,EP7211將待發(fā)數(shù)據(jù)整理成多個長255字,,字寬16位的數(shù)據(jù)幀,,發(fā)至FPGA內(nèi)的發(fā)送FIFO中。該FPGA得到總線控制權(quán)后,,即發(fā)送同步幀(由同步字與填充字組成),,待被尋址的接收子卡實現(xiàn)與自己的同步后,再發(fā)送數(shù)據(jù)幀,。各幀數(shù)據(jù)經(jīng)串化器轉(zhuǎn)化為兩對差分信號,,并從中獲得同步信息并實現(xiàn)同步,繼而檢出有效數(shù)據(jù),,寫入接收FIFO,,同時以快中斷(FIQ)通知EP7211。
2 軟件設(shè)計
2.1 EP7211程序設(shè)計
通信子卡內(nèi)的EP7211為系統(tǒng)級芯片,,用來預處理和接收數(shù)據(jù),。EP7211的內(nèi)核為ARM7TDMI,使用32位精簡指令,。發(fā)送數(shù)據(jù)的流程如圖3所示,。接收較簡單,,只需在快中斷(FIQ)服務程序中寫入接收FIFO的讀取代碼即可。
2.2 FPGA設(shè)計
FPGA的設(shè)計中,,發(fā)送及接收FIFO的設(shè)計用了雙口快內(nèi)存(Block RAM),,時鐘倍頻器用了延遲鎖定環(huán)(DLL)。幀解碼器由30位并行數(shù)據(jù)產(chǎn)生器,、同步字檢測陣列和接收狀態(tài)機組成,。以下重點介紹幀編碼器和串化器的設(shè)計。
?。?)幀編碼器的VHDL語言設(shè)計
幀編碼器包括一個長為256的計數(shù)器和一個四狀態(tài)的單熱點狀態(tài)機,,用以產(chǎn)生同步幀和數(shù)據(jù)幀。部分代碼如下:
PROCESS(RESET,,CLK) //產(chǎn)生長256的計數(shù)器
IF RESET='1'THEN COUNT<=0,;
ELSIF CLK'EVENT AND CLK='1' THEN COUNT<=(COUNT+1)MOD 256;
END PROCESS,;
TC<='1'WHEN COUNT="255" ELSE '0';
TYPE STATE_TYPE IS(IDLE,,PACK1,PACK2,,TRANSMIT),;
SIGANL SREG:SETAT_TYPE;
RPOCESS(CLK,,RESET) //狀態(tài)機進程
IF CLK'EVENT AND CLK='1'THEN
IF RESET="1" TEHE SREG<=IDLE ELSE
CASE SREG IS
WHEN IDLE=>
IF SEND_UD='1'THEN SREG<=TRANSMIT,; //空閑狀態(tài)如有發(fā)送命令,即轉(zhuǎn)入發(fā)送狀態(tài)
ELSE SREG<=PACK1,; //否則,,發(fā)送填充字1
WHEN PACK1=>
(后略)
?。?)串化器的原理設(shè)計
串化器由多級嵌套的子圖和若干宏模塊組成,,原理圖的頂層圖如圖4所示。四個四位并入串出寄存器將16位并行數(shù)據(jù)拆分為四組串行數(shù)據(jù),,其中的奇數(shù)位和偶數(shù)位分別通過一個雙數(shù)據(jù)速率寄存器,,得到兩個差分信號,同時用另一個雙數(shù)據(jù)速率寄存器產(chǎn)生與之同步的差分時鐘,。其中,,雙數(shù)據(jù)速率寄存器為時序敏感器件,其內(nèi)部主要部分都加入了時序特性限制,,如最大時滯(maxdelay),、最大抖動(maxskew),并用FMAP控件強制性地把相關(guān)信號放入同一個函數(shù)產(chǎn)生器中。
圖4 串化器原理圖
3 硬件設(shè)計要點
?、貰LVDS信號的偏置電壓為1.25V,,電壓擺
幅只有350mV,傳輸速率≥100Mb/s,;因此,,電路板制作至關(guān)重要,要求至少使用四層板,。
?、跒槭垢蓴_信號只以供模方式加到差分線對上(不影響數(shù)據(jù)正確性),要求差分線對間的距離盡可能小,。BLVDS標準要求差分阻抗為100Ω
給出,。其中,ZDIF為差分線對的差分阻抗,,εR為印制板介電常數(shù),,δ為信號層到電源層的厚度,b為導線寬度,。本電路選用的線距及線寬均為0.18mm,。
③考慮到阻抗不匹配引起的信號反射和導線的電導效應,,要求XCV50E芯片的差分引腳盡可能地靠近子卡的邊緣連接器(≤1.52cm),并給每個差分引腳串聯(lián)一個20Ω的貼片電阻,。
?、茈娫捶矫妫篤irtex芯片上電時要求有大于500mA的驅(qū)動電流,同時,,由于多個輸出引腳的電位快速變化,,要求每對電源和地引腳都要良好旁路。 公式:
4 結(jié)論
當使用40MHz的外部時鐘時,,BLVDS總線上的傳輸速率為120Mb/s,,成功實現(xiàn)了多個通信子卡間的高速數(shù)據(jù)通信。現(xiàn)在,,我們正將該通信系統(tǒng)移植到我單位與勝利油田聯(lián)合研制的SL-6000型高分辨率綜合測井系統(tǒng)上,。