低壓差分信號LVDS(Low Voltage Differential Signal)是由ANSI/TIA/EIA-644-1995定義的用于高速數據傳輸的物理層接口標準。它具有超高速(1.4Gb/s)、低功耗及低電磁輻射的特性,是在銅介質(zhì)上實(shí)現千兆位級高速通信的優(yōu)先方案;可用于服務(wù)器、可堆壘集線(xiàn)器、無(wú)線(xiàn)基站、ATM交換機及高分辨率顯示等等,也可用于通信系統的設計。BLVDS(Bus LVDS)是LVDS技術(shù)在多點(diǎn)通信領(lǐng)域的擴展,要求附加總線(xiàn)仲裁設計、更大的驅動(dòng)電流(10mA)和更好的阻抗匹配設計。
通常是LVDS電路設計使用各種專(zhuān)用芯片,如美國國家半導體公司的DS92LV16等。我們用FPGA芯片自行設計BLVDS內核及擴展部分。相比之下,使用FPGA可大幅減少芯片數量,降低成本,提高系統可靠性,同時(shí)具有更大的靈活性和向后兼容性。由于目前尚無(wú)實(shí)用的16位VLVDS收發(fā)器芯片問(wèn)世,本設計也填補了專(zhuān)用芯片(ASIC)的空白。
我們選了Xilinx公司的XCV50E。此芯片屬于Virtex-E系列,具有如下特性: *0.18nm 6層金屬工藝,具有5.8萬(wàn)個(gè)系統門(mén);
*使用1.8V核心電壓,低功耗設計;
*130MHz同部時(shí)鐘;
*64KB的同步塊同存(BlockRAM),可實(shí)現真正的雙口操作;
*支持包括LVDS、BLVDS在內的20種高性能接口標準;
*8個(gè)全數字的延遲鎖定環(huán)DLL(Delay Locked Loops),具有時(shí)鐘移相和乘除功能;
*支持IEEE 1149.1邊界掃描標準,具有基于SRAM的在系統配置功能。
我們使用Xilinx Foudation F3.1i軟件開(kāi)發(fā)XCV50E芯片。設計流程為:首先用編寫(xiě)VHDL語(yǔ)言程序、繪制原理圖或設計狀態(tài)機的方法生成網(wǎng)絡(luò )表,功能仿真正確后,經(jīng)過(guò)翻譯、映射、放置和布線(xiàn)、時(shí)序優(yōu)化及配置過(guò)程,生成比特流文件。然后,進(jìn)行時(shí)序仿真,仿真通過(guò)后下載到PROM中。(我們用了Xilinx公司的XC18V01。)
1 結構及工作過(guò)程
1.1 系統結構和FPGA結構
本通信系統由背板和若干通信子卡組成。背板并更有8個(gè)插槽,并布有BLVDS總線(xiàn)和其它控制、地址總線(xiàn)。通信子卡由EP7211芯片(負責數據處理)、XCV50E及DRAM、PROM等外圍芯片和元件組成,系統結構如圖1所示。

設計完成后的XCV50E由控制部分、發(fā)送FIFO、幀編碼器、串化器、解串器、幀解碼器、數據檢出器、接收FIFO、時(shí)鐘倍頻器及輸入輸出單元等部分組成,結構如圖2所示。

1.2 工作過(guò)程
在發(fā)送子卡中,EP7211將待發(fā)數據整理成多個(gè)長(cháng)255字,字寬16位的數據幀,發(fā)至FPGA內的發(fā)送FIFO中。該FPGA得到總線(xiàn)控制權后,即發(fā)送同步幀(由同步字與填充字組成),待被尋址的接收子卡實(shí)現與自己的同步后,再發(fā)送數據幀。各幀數據經(jīng)串化器轉化為兩對差分信號,并從中獲得同步信息并實(shí)現同步,繼而檢出有效數據,寫(xiě)入接收FIFO,同時(shí)以快中斷(FIQ)通知EP7211。
2 軟件設計
2.1 EP7211程序設計
通信子卡內的EP7211為系統級芯片,用來(lái)預處理和接收數據。EP7211的內核為ARM7TDMI,使用32位精簡(jiǎn)指令。發(fā)送數據的流程如圖3所示。接收較簡(jiǎn)單,只需在快中斷(FIQ)服務(wù)程序中寫(xiě)入接收FIFO的讀取代碼即可。

2.2 FPGA設計
FPGA的設計中,發(fā)送及接收FIFO的設計用了雙口快內存(Block RAM),時(shí)鐘倍頻器用了延遲鎖定環(huán)(DLL)。幀解碼器由30位并行數據產(chǎn)生器、同步字檢測陣列和接收狀態(tài)機組成。以下重點(diǎn)介紹幀編碼器和串化器的設計。
。1)幀編碼器的VHDL語(yǔ)言設計
幀編碼器包括一個(gè)長(cháng)為256的計數器和一個(gè)四狀態(tài)的單熱點(diǎn)狀態(tài)機,用以產(chǎn)生同步幀和數據幀。部分代碼如下:
PROCESS(RESET,CLK) //產(chǎn)生長(cháng)256的計數器
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)機進(jìn)程
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ā)送命令,即轉入發(fā)送狀態(tài)
ELSE SREG<=PACK1; //否則,發(fā)送填充字1
WHEN PACK1=>
。ê舐裕
。2)串化器的原理設計
串化器由多級嵌套的子圖和若干宏模塊組成,原理圖的頂層圖如圖4所示。四個(gè)四位并入串出寄存器將16位并行數據拆分為四組串行數據,其中的奇數位和偶數位分別通過(guò)一個(gè)雙數據速率寄存器,得到兩個(gè)差分信號,同時(shí)用另一個(gè)雙數據速率寄存器產(chǎn)生與之同步的差分時(shí)鐘。其中,雙數據速率寄存器為時(shí)序敏感器件,其內部主要部分都加入了時(shí)序特性限制,如最大時(shí)滯(maxdelay)、最大抖動(dòng)(maxskew),并用FMAP控件強制性地把相關(guān)信號放入同一個(gè)函數產(chǎn)生器中。

圖4 串化器原理圖
3 硬件設計要點(diǎn)
、貰LVDS信號的偏置電壓為1.25V,電壓擺幅只有350mV,傳輸速率≥100Mb/s;因此,電路板制作至關(guān)重要,要求至少使用四層板。
、跒槭垢蓴_信號只以供模方式加到差分線(xiàn)對上(不影響數據正確性),要求差分線(xiàn)對間的距離盡可能小。BLVDS標準要求差分阻抗為100Ω
給出。其中,ZDIF為差分線(xiàn)對的差分阻抗,εR為印制板介電常數,δ為信號層到電源層的厚度,b為導線(xiàn)寬度。本電路選用的線(xiàn)距及線(xiàn)寬均為0.18mm。
、劭紤]到阻抗不匹配引起的信號反射和導線(xiàn)的電導效應,要求XCV50E芯片的差分引腳盡可能地靠近子卡的邊緣連接器(≤1.52cm),并給每個(gè)差分引腳串聯(lián)一個(gè)20Ω的貼片電阻。
、茈娫捶矫妫篤irtex芯片上電時(shí)要求有大于500mA的驅動(dòng)電流,同時(shí),由于多個(gè)輸出引腳的電位快速變化,要求每對電源和地引腳都要良好旁路。公式:
4 結論
當使用40MHz的外部時(shí)鐘時(shí),BLVDS總線(xiàn)上的傳輸速率為120Mb/s,成功實(shí)現了多個(gè)通信子卡間的高速數據通信,F在,我們正將該通信系統移植到我單位與勝利油田聯(lián)合研制的SL-6000型高分辨率綜合測井系統上。 |