一種基于FPGA的高速通信系統研究與設計
3.2 異步時(shí)鐘域變換
系統輸入信號工作在不同的異步時(shí)鐘域,需要在FPGA內部將信號變換到同一個(gè)時(shí)鐘域。
串口信號速度低,可以使用系統時(shí)鐘高速采集的方式。根據奈奎斯特抽樣定律,抽樣頻率大于2倍信號最高頻率,就可以從抽樣信號中無(wú)失真地恢復原信號。本系統使用高于5倍串口波特率的時(shí)鐘去采集串口數據。經(jīng)過(guò)誤碼儀的大量測試,串口數據能夠被正確接收和恢復。
視頻信號是并行信號,采用高速采集的方法會(huì )增加數據量,不適合本系統。本系統采用雙口FIFO完成異步時(shí)鐘域轉換。S3C500E片內的Block RAM資源可以靈活的生成雙口FIFO,與普通邏輯單元生成的雙口FIFO相比,它的穩定性高,最高讀寫(xiě)速度快,產(chǎn)生亞穩定狀態(tài)的概率小。雙口FIFO的輸入端連接系統輸入信號的時(shí)鐘和數據;在輸出端連接系統時(shí)鐘數據。雙口FIFO的讀取時(shí)鐘速度必須高于寫(xiě)入速度,以避免FIFO存滿(mǎn)后溢出導致有效數據丟失。另一方面,慢時(shí)鐘域向快時(shí)鐘域轉換的時(shí)候,FIFO會(huì )出現讀取空的狀態(tài),此時(shí)將取出無(wú)效數據(這些數據是FIFO中最后一個(gè)數據的重復)。無(wú)效數據通過(guò)串行數據幀傳輸到接收端,會(huì )導致恢復后輸出信號出現誤碼。所以系統將FIFO的空標志empty信號添加到數據幀,用于識別無(wú)效數據。
3.3 數據組幀及編碼
同步傳輸需要將原始數據組成數據幀再進(jìn)行發(fā)送,即在數據間添加起始位、停止位和校驗位。數據幀的起始位過(guò)長(cháng)會(huì )影響傳輸效率,過(guò)短會(huì )增加接收端識別的難度。本系統選用80 b為一幀,起始位為8 b,停止位為2 b,奇校驗位為1 b。接收端邏輯通過(guò)對多個(gè)數據幀分析后,定位數據幀的起始位。由于每幀數據長(cháng)度固定,所以找到某一幀的起始位后可以周期性的計算出接下來(lái)各幀的起始位置,不再需要反復做識別工作。
數據組幀后信號的平均位速率可能低于CLC012的最低工作頻率,不能直接用于傳輸,還需要對其進(jìn)行8B/10B編碼。8B/10B技術(shù)是將8個(gè)數據位經(jīng)過(guò)某種映射的機制轉化為10個(gè)數據位的字碼,可使發(fā)送的“O”、“1”數量保持一致,連續的“1”或“0”基本不超過(guò)5位。8 B/10 B編碼技術(shù)保證了傳輸的DC平衡,增加了信息傳輸的可靠性。系統使用Xilinx公司提供的8 B/10 B編碼和解碼IP核,減少了系統的開(kāi)發(fā)周期,增加了系統的穩定性。8 B/10 B編碼及解碼IP的模塊原理圖如圖6和圖7所示。
4 結語(yǔ)
介紹了一種基于FPGA的高速通信系統,通過(guò)電纜驅動(dòng)器和接收均衡器,拓展了LVDS信號的傳輸距離。經(jīng)過(guò)測試,使用同軸電纜的傳輸距離達到200 m,單個(gè)通道傳輸速率達到120 Mb/s。FPGA的可重構性使系統靈活多變,可以適應不同的應用需求。
評論