基于FPGA的高速通信系統(tǒng)研究
2.3 電路PCB設計
在PCB設計過程中,要注意電路板的布局。模擬電路和數字電路需要分開,使用單點接地的方式相連。將邊沿速率變化快的VTTL/LVCMOS信號與LVDS信號布在不同信號層上,并用電源和底層隔開,減小耦合到LVDS線路上的串擾。LVDS走線要遵循以下規(guī)則:
(1)差分對兩根信號從芯片扇出后就盡量靠近(緊耦合),這樣有助于消除反射,確保耦合的噪聲是共模形式。
(2)對內信號的布線長度要保持一致,以減小信號延時,長度匹配控制在10 mil以內。
(3)對內信號保持固定的線間距,避免因為線間距變化導致差分阻抗不連續(xù)。
(4)差分對間盡量遠離,減少線間串擾,必要時在差分對間放置隔離用的接地過孔。
(5)盡量減少差分信號線上過孔的個數,避免走90°拐角,使用圓弧或者45°折線代替。
(6)LVDS信號不能跨平面分割,否則會因為缺少參考平面而導致阻抗不連續(xù),要給LVDS信號設置完整的參考平面。
(7)匹配電阻盡可能靠近接收端。
3 系統(tǒng)的邏輯設計
3.1 時鐘部分設計
時鐘信號由電路板上40 MHz晶振提供。通過數字時鐘管理單元DCM鐘倍頻得到120 MHz的系統(tǒng)的工作時鐘。使用DCM模塊時,注意DCM的輸入和輸出需要通過BUFG單元與全局時鐘資源相連。全局時鐘資源使用全銅層工藝實現,并設計了專用時鐘緩沖與驅動結構,使全局時鐘到達芯片內部所有邏輯單元的時延和抖動都為最小。DCM在時鐘鎖定后使能LOCK信號,表示時鐘倍頻工作完成,使用這個信號作為FPGA內部其他邏輯的復位。
3.2 異步時鐘域變換
系統(tǒng)輸入信號工作在不同的異步時鐘域,需要在FPGA內部將信號變換到同一個時鐘域。
串口信號速度低,可以使用系統(tǒng)時鐘高速采集的方式。根據奈奎斯特抽樣定律,抽樣頻率大于2倍信號最高頻率,就可以從抽樣信號中無失真地恢復原信號。本系統(tǒng)使用高于5倍串口波特率的時鐘去采集串口數據。經過誤碼儀的大量測試,串口數據能夠被正確接收和恢復。
視頻信號是并行信號,采用高速采集的方法會增加數據量,不適合本系統(tǒng)。本系統(tǒng)采用雙口FIFO完成異步時鐘域轉換。S3C500E片內的Block RAM資源可以靈活的生成雙口FIFO,與普通邏輯單元生成的雙口FIFO相比,它的穩(wěn)定性高,最高讀寫速度快,產生亞穩(wěn)定狀態(tài)的概率小。雙口FIFO的輸入端連接系統(tǒng)輸入信號的時鐘和數據;在輸出端連接系統(tǒng)時鐘數據。雙口FIFO的讀取時鐘速度必須高于寫入速度,以避免FIFO存滿后溢出導致有效數據丟失。另一方面,慢時鐘域向快時鐘域轉換的時候,FIFO會出現讀取空的狀態(tài),此時將取出無效數據(這些數據是FIFO中最后一個數據的重復)。無效數據通過串行數據幀傳輸到接收端,會導致恢復后輸出信號出現誤碼。所以系統(tǒng)將FIFO的空標志empty信號添加到數據幀,用于識別無效數據。
3.3 數據組幀及編碼
同步傳輸需要將原始數據組成數據幀再進行發(fā)送,即在數據間添加起始位、停止位和校驗位。數據幀的起始位過長會影響傳輸效率,過短會增加接收端識別的難度。本系統(tǒng)選用80 b為一幀,起始位為8 b,停止位為2 b,奇校驗位為1 b。接收端邏輯通過對多個數據幀分析后,定位數據幀的起始位。由于每幀數據長度固定,所以找到某一幀的起始位后可以周期性的計算出接下來各幀的起始位置,不再需要反復做識別工作。
數據組幀后信號的平均位速率可能低于CLC012的最低工作頻率,不能直接用于傳輸,還需要對其進行8B/10B編碼。8B/10B技術是將8個數據位經過某種映射的機制轉化為10個數據位的字碼,可使發(fā)送的“O”、“1”數量保持一致,連續(xù)的“1”或“0”基本不超過5位。8 B/10 B編碼技術保證了傳輸的DC平衡,增加了信息傳輸的可靠性。系統(tǒng)使用Xilinx公司提供的8 B/10 B編碼和解碼IP核,減少了系統(tǒng)的開發(fā)周期,增加了系統(tǒng)的穩(wěn)定性。8 B/10 B編碼及解碼IP的模塊原理圖如圖6和圖7所示。本文引用地址:http://m.butianyuan.cn/article/157077.htm
4 結語
介紹了一種基于FPGA的高速通信系統(tǒng),通過電纜驅動器和接收均衡器,拓展了LVDS信號的傳輸距離。經過測試,使用同軸電纜的傳輸距離達到200 m,單個通道傳輸速率達到120 Mb/s。FPGA的可重構性使系統(tǒng)靈活多變,可以適應不同的應用需求。
評論