史占付 展學(xué)磊
西安機(jī)電信息技術(shù)研究所,中國(guó)·陜西 西安 710065
針對(duì)小型化抗高過(guò)載數(shù)據(jù)記錄儀接口傳輸速率慢無(wú)法適應(yīng)光纖數(shù)據(jù)記錄的問(wèn)題,設(shè)計(jì)了一款具有12.5Gbps 光纖數(shù)據(jù)接收能力的數(shù)據(jù)接口,數(shù)據(jù)接口采用了Aurora 協(xié)議8B/10B 編碼接收、光電轉(zhuǎn)換、FPGA 高速串行GTX 接收、DDR3 緩存,再以CML 接口發(fā)送給數(shù)據(jù)記錄儀。
數(shù)據(jù)記錄儀;Aurora 協(xié)議;HTG8503 模塊
圖像識(shí)別技術(shù)的應(yīng)用需要高清圖片數(shù)據(jù)傳輸,傳統(tǒng)的RS485、1553B 和CAN 總線等在帶寬很難滿足需求,大功率部件的頻繁動(dòng)作和天線輻射等干擾源通過(guò)傳導(dǎo)和輻射等方式對(duì)通信系統(tǒng)造成干擾,光纖通信因其具備通信速率高、傳輸距離遠(yuǎn)和抗電磁干擾等特點(diǎn)被廣泛應(yīng)用?,F(xiàn)有小型化抗高過(guò)載數(shù)據(jù)記錄儀接口不能滿足光纖通信要求,具有高速串行收發(fā)器的FPGA 多采取BGA 封裝,無(wú)法滿足數(shù)據(jù)記錄器儀抗高過(guò)載的需求[1]。
針對(duì)光纖通信系統(tǒng)的特點(diǎn),開(kāi)發(fā)并設(shè)計(jì)一款光纖數(shù)據(jù)接口,滿足抗高過(guò)載數(shù)據(jù)記錄儀需求,論文詳細(xì)描述了光纖數(shù)據(jù)接口的實(shí)現(xiàn)方法、系統(tǒng)組成、原理框圖、程序流程、試驗(yàn)驗(yàn)證和原理樣機(jī)等。
光纖數(shù)據(jù)接口接收4 路3.125Gbps 光纖數(shù)據(jù),通過(guò)HTG8503 將多模光纖信號(hào)轉(zhuǎn)換成高速差分電信號(hào),該電信號(hào)經(jīng)過(guò)FPGA 高速串行收發(fā)器GTX 接收,GTX 接收來(lái)的數(shù)據(jù)因速率較高不能直接被數(shù)據(jù)記錄儀存儲(chǔ),經(jīng)兩片DDR3 緩存,再以CML 接口形式發(fā)送給數(shù)據(jù)記錄儀記錄。CML 接口采用TI 公司TLK1501 芯片,數(shù)據(jù)記錄儀也采用該芯片,該芯片采取64 腳VQFP 封裝(非BGA 封裝),經(jīng)灌封后具有較強(qiáng)的抗過(guò)載能力,CML 接口簡(jiǎn)單只有一路雙絞差分輸入線和一路雙絞差分輸出線(讀數(shù)用)[2]。
光纖數(shù)據(jù)信號(hào)記錄后彈體落地,光纖數(shù)據(jù)接口因有BGA封裝器件抗沖擊能力較弱直接損壞,數(shù)據(jù)記錄儀抗過(guò)載能力強(qiáng),回收后只需連接幾根線更換一個(gè)新的光纖數(shù)據(jù)接口就能實(shí)現(xiàn)高速數(shù)據(jù)讀取。
光纖數(shù)據(jù)接口使用的是多模光纖,HTG8503 模塊實(shí)現(xiàn)高速光電轉(zhuǎn)換,XC7K420T 利用高速串行收發(fā)器GTX 接收數(shù)據(jù),2 片DDR3 緩存數(shù)據(jù),TLK1501 芯片以CML 接口形式將數(shù)據(jù)發(fā)送給數(shù)據(jù)記錄器。光纖數(shù)據(jù)接口原理框圖如圖1所示。
圖1 光纖數(shù)據(jù)接口原理框圖
光纖數(shù)據(jù)接口有4 個(gè)通道,每通道碼率3.125 Gbps,總的碼率為3.125x4=12.5Gbps,數(shù)據(jù)傳輸采用Aurora 協(xié)議8B/10B 編碼協(xié)議接收,接收速度換算成字節(jié)速度為1.25GBps。單包光纖傳輸最大容量為5Gb(625MB),鎂光MT41K512M16 芯片16 位數(shù)據(jù)帶寬存儲(chǔ)速度為1.6GBps,采用兩片DDR3 緩沖速度可達(dá)3.2GBps,滿足光纖傳輸最大速率為1.25GBps 的要求,2 片DDR3 的存儲(chǔ)容量為1GB,滿足單包光纖傳輸最大容量為5Gb(625MB)的需求,采取2 片DDR3 緩存的設(shè)計(jì)方案有一定的設(shè)計(jì)余量,方便以后的需求擴(kuò)展[3]。
光纖數(shù)據(jù)接口按Aurora 協(xié)議接收光纖數(shù)據(jù),Aurora 協(xié)議是由Xilinx 公司提供的一個(gè)開(kāi)放的、免費(fèi)的鏈路層協(xié)議,按Aurora 協(xié)議接收到的光纖數(shù)據(jù)為32 位并行數(shù)據(jù)保存在2個(gè)FIFO(寬度為32 位)中,每?jī)陕饭饫w數(shù)據(jù)保存在一個(gè)DDR3 中,當(dāng)?shù)谝粋€(gè)FIFO 存儲(chǔ)滿以后就開(kāi)始向第二FIFO 保存數(shù)據(jù),控制邏輯將第一個(gè)FIFO 中的數(shù)據(jù)保存在DDR3 中,依次循環(huán)將接收到的所有數(shù)據(jù)保存在DDR3 中。向FIFO 寫(xiě)入的時(shí)鐘頻率速度為78.125MHz,78.125×4=312.5MB/s,即一路光纖向FIFO 寫(xiě)入的速度為312.5MB/s,兩路光纖信號(hào)總的寫(xiě)入速度為625MB/s,一個(gè)DDR3 緩存兩路光纖數(shù)據(jù)。選擇DDR3 時(shí)鐘頻率為312.5MHz,其寫(xiě)入數(shù)據(jù)的速度為312.5×4=1250MB/s,這樣向DDR3 寫(xiě)入的速度是接收數(shù)據(jù)速度的兩倍,可以留出時(shí)間對(duì)DDR3 進(jìn)行刷新。操作DDR3接口邏輯電路的時(shí)鐘頻率按照2:1 配置即為156.25MHz,數(shù)據(jù)寬度為64 位,接口邏輯以156.25MB/s 的速度從兩個(gè)FIFO中讀取數(shù)據(jù)并寫(xiě)入到DDR3 中。光纖數(shù)據(jù)接口FPGA 鏈路邏輯配置如圖2所示。
圖2 光纖數(shù)據(jù)接口FPGA 鏈路邏輯配置圖
光纖平均存儲(chǔ)速率為1Gbps(125MBps),采用2 通道CML 信號(hào)發(fā)送,發(fā)送時(shí)鐘頻率為40MHz,16 位數(shù)據(jù)寬度,總的發(fā)送速度為160MB/s,滿足轉(zhuǎn)發(fā)速度要求。建立4 個(gè)大小為2K 的緩沖區(qū)(數(shù)據(jù)寬度64 位),每個(gè)DDR3 對(duì)應(yīng)兩個(gè)緩沖區(qū),2 個(gè)緩沖區(qū)對(duì)應(yīng)一個(gè)CML。從DDR3 讀取數(shù)據(jù)的時(shí)鐘頻率為156.25MHz,讀取1 頁(yè)的時(shí)間為1.6384μs,CML 發(fā)送1 頁(yè)數(shù)據(jù)(大小為2k)的時(shí)間為25.6μs,讀取1 頁(yè)后關(guān)閉該頁(yè),然后等間隔刷新16 次[4]。2 個(gè)傳輸通道并行獨(dú)立工作。DDR3 軟件轉(zhuǎn)發(fā)邏輯圖如圖3所示。
圖3 DDR3 數(shù)據(jù)轉(zhuǎn)發(fā)軟件邏輯圖
光纖數(shù)據(jù)總?cè)萘繛?2GB,要求數(shù)據(jù)存儲(chǔ)速度為1Gbps,存儲(chǔ)速度換算成字節(jié)為125MBps,鎂光工業(yè)級(jí)SLC 顆粒FLASH 存儲(chǔ)器同步存儲(chǔ)速度可達(dá)200MBps,但該芯片采取BGA 球刪封裝,抗過(guò)載能力較弱,故不能采用。數(shù)據(jù)記錄器采取4 片48 引腳TSSOP 的FLASH 芯片設(shè)計(jì),該存儲(chǔ)芯片異步存儲(chǔ)速度最大為50MBps,留有一定設(shè)計(jì)余量實(shí)際使用為40 MBps,4 片存儲(chǔ)速度為160MBps 總?cè)萘繚M足需求。光纖數(shù)據(jù)接口速率滿足情況見(jiàn)表1。
表1 光纖數(shù)據(jù)接口速率滿足情況
光纖數(shù)據(jù)接口識(shí)別上電后首先識(shí)別是否系統(tǒng)供電,如果是系統(tǒng)供電,則進(jìn)入采集狀態(tài),否則是地面供電,則進(jìn)入讀數(shù)狀態(tài)。系統(tǒng)供電時(shí),同步接收光纖通道的數(shù)據(jù),接收有效的光纖數(shù)據(jù)后,光纖數(shù)據(jù)存儲(chǔ)模塊進(jìn)入數(shù)據(jù)存儲(chǔ)狀態(tài),直到記錄滿或者斷電;地面供電時(shí),接收到有效的地面命令后,進(jìn)入地面控制狀態(tài),可以讀取記錄的數(shù)據(jù)、擦除已存儲(chǔ)的數(shù)據(jù)、讀取狀態(tài)等。光纖數(shù)據(jù)接口進(jìn)入存儲(chǔ)狀態(tài)后不再接收地面發(fā)送的命令,進(jìn)入地面控制狀態(tài)后也不再接收光纖通道的數(shù)據(jù)。解碼用FPGA 軟件流程圖如圖4所示。
圖4 光纖數(shù)據(jù)接口FPGA 軟件流程圖
DDR3 單個(gè)數(shù)據(jù)寫(xiě)操作時(shí)地址控制信號(hào)與寫(xiě)數(shù)據(jù)信號(hào)嚴(yán)格按照時(shí)序圖對(duì)齊。判定寫(xiě)允許信號(hào)可以設(shè)定為:
app_rdy & app_wdf_rdy,app_wdf_end = app_wdf_wren
這里app_en 信號(hào)有效時(shí)間為1 個(gè)clock,不能隨意延長(zhǎng)。如果單個(gè)寫(xiě)操作都是寫(xiě)入128 個(gè)數(shù)據(jù),要求app_en 信號(hào)和app_addr 信號(hào)有效時(shí)間均為128 個(gè)clock,需要完全對(duì)齊,不能隨意延長(zhǎng)[5]。
連續(xù)寫(xiě)操作時(shí)寫(xiě)數(shù)據(jù)可以不受寫(xiě)指令時(shí)序的制約,地址控制信號(hào)和寫(xiě)數(shù)據(jù)控制信號(hào)可以完全獨(dú)立。可以分別使用獨(dú)立的計(jì)數(shù)器。實(shí)際調(diào)試過(guò)程中發(fā)現(xiàn):app_wdf_rdy 有效時(shí)間比 app_rdy 有效時(shí)間更連續(xù)。
在實(shí)際使用測(cè)試可知,一直單個(gè)數(shù)據(jù)寫(xiě)操作效率理論上低于連續(xù)的寫(xiě)操作效率,但實(shí)際使用效率相差很少,而且前者方法更容易理解,編程更容易一些。圖5為單個(gè)數(shù)據(jù)寫(xiě)操作時(shí)序圖,圖6為連續(xù)數(shù)據(jù)寫(xiě)操作時(shí)序圖。
圖5 單個(gè)數(shù)據(jù)寫(xiě)操作時(shí)序圖
圖6 連續(xù)數(shù)據(jù)寫(xiě)操作時(shí)序圖
由設(shè)計(jì)方案利用candence 軟件繪制原理圖,并制成12層PCB 版圖,焊接調(diào)試后板載GTX 在線ibord 外環(huán)仿真測(cè)試速率可以達(dá)到6.5Gbps,滿足設(shè)計(jì)需求,DDR3 時(shí)鐘頻率為800M,程序運(yùn)行半個(gè)小時(shí),DDR3 寫(xiě)入和讀取誤碼率基本為0,圖7為光纖數(shù)據(jù)接口原理樣機(jī)。
圖7 光纖數(shù)據(jù)接口原理樣機(jī)
采用Aurora 協(xié)議8B/10B 編碼接收、光電轉(zhuǎn)換、FPGA高速串行GTX 接收、DDR3 緩存再以CML 接口發(fā)送給數(shù)據(jù)記錄儀的由光纖數(shù)據(jù)接口,方案設(shè)計(jì)合理、在線仿真正確、原理樣機(jī)驗(yàn)證可行。