文獻標識碼: A
文章編號: 0258-7998(2013)09-0047-03
目前空間遙感技術(shù)在農(nóng)業(yè)、地質(zhì)探測,、氣象以及軍事等領(lǐng)域有著廣泛的應用[1],。搭載在航天器上的空間遙感儀器將拍攝到的圖像數(shù)據(jù)通過數(shù)據(jù)傳輸系統(tǒng)發(fā)送到地面[2]??臻g遙感儀器進行工作時會獲取大量的圖像數(shù)據(jù)信息,,為了便于后期數(shù)據(jù)的處理和分析應用,需要對獲取的高速數(shù)據(jù)進行采集存儲,。由于數(shù)據(jù)量十分龐大,,目前通常采用高速串行差分的方式進行傳輸,這樣可以大大減少信號之間的相互串擾以及外部噪聲的干擾,。在進行高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計的過程中,,使用現(xiàn)成的高效高速數(shù)據(jù)傳輸芯片將會使整個設(shè)計工作事半功倍。本文重點介紹了基于TI公司的TLK2711高速數(shù)據(jù)傳輸芯片的串行傳輸系統(tǒng)設(shè)計,。
1 系統(tǒng)硬件設(shè)計
本文研究的是一種基于TLK2711的高速串行傳輸方案,,在實現(xiàn)高速實時數(shù)據(jù)傳輸?shù)幕A(chǔ)上進行數(shù)據(jù)信號處理,。系統(tǒng)中的關(guān)鍵組成部分包括PCI Express總線接口模塊、FPGA數(shù)據(jù)處理控制模塊,、DDR3 SDRAM存儲模塊以及TLK2711高速串/并轉(zhuǎn)換接口模塊,,系統(tǒng)框圖如圖1所示。系統(tǒng)的工作原理:發(fā)送端PC通過PCI Express總線接口與發(fā)送板進行數(shù)據(jù)通信,,將PC模擬的衛(wèi)星成像數(shù)據(jù)源通過緩存DDR3 SDRAM由TLK2711高速串/并轉(zhuǎn)接口發(fā)送給數(shù)據(jù)信號處理器,;經(jīng)過數(shù)據(jù)信號處理器處理的數(shù)據(jù)再通過TLK2711高速串/并轉(zhuǎn)接口發(fā)送給接收板,接收板通過緩存DDR3 SDRAM由PCI Express總線接口上傳給接收端PC,,最后在接收端PC中進行數(shù)據(jù)校驗和相應處理,。
2 系統(tǒng)邏輯設(shè)計
2.1 總體邏輯設(shè)計
作為系統(tǒng)的控制核心,F(xiàn)PGA起著前端TLK2711發(fā)送/接收控制,、數(shù)據(jù)鏈路多路轉(zhuǎn)換控制、DDR3 SDRAM控制器,、PCI Express總線DMA傳輸控制的作用,。發(fā)送端的PC將數(shù)據(jù)源在發(fā)送板總線主控DMA控制器的控制下,通過PCIE-8x通道將數(shù)據(jù)傳入FPGA存儲到片外的DDR3 SDRAM,,F(xiàn)PGA通過內(nèi)部邏輯對DDR3 SDRAM中緩存的數(shù)據(jù)進行必要的時序控制和相關(guān)處理,,處理過后的并行數(shù)據(jù)流在FPGA內(nèi)部進行重組,形成滿足TLK2711數(shù)據(jù)格式要求的16 bit數(shù)據(jù)流,。這個過程主要是同步字符,、幀頭、幀尾以及控制信號的添加等,。TLK2711根據(jù)參考時鐘對輸入的并行數(shù)據(jù)進行8B/10B編碼,,然后以20倍的參考時鐘頻率將數(shù)據(jù)以高速差分串行輸出的方式通過銅纜傳送給數(shù)據(jù)信號處理器。
經(jīng)過數(shù)據(jù)信號處理器處理過的數(shù)據(jù)以串行差分方式通過銅纜傳送給接收板的TLK2711,,TLK2711在參考時鐘下完成高速串行輸入數(shù)據(jù)的串/并轉(zhuǎn)換,,轉(zhuǎn)換后的20 bit并行數(shù)據(jù)經(jīng)過內(nèi)部同步到恢復時鐘,然后利用8B/10B解碼格式將20 bit并行數(shù)據(jù)解碼為原始的16 bit并行數(shù)據(jù)輸出到FPGA進行數(shù)據(jù)處理,,F(xiàn)PGA通過內(nèi)部邏輯對高速數(shù)據(jù)進行必要的時序控制和相關(guān)處理,。這個過程主要是去除幀頭、幀尾,、同步字符,,同時檢測控制信號并對數(shù)據(jù)進行處理。處理過后的數(shù)據(jù)緩存到片外的DDR3 SDRAM,,在總線主控DMA控制器的控制下,,通過PCIE-8x通道將緩存的數(shù)據(jù)寫入計算機硬盤。FPGA內(nèi)部邏輯示意圖如圖2所示,。
2.2 TLK2711傳輸協(xié)議
TLK2711高速串行協(xié)議是一種基于點對點的單工協(xié)議,,它以16 bit為一個基本的傳輸單位,,數(shù)據(jù)被分成了高8位和低8位,因此每個控制字符都定義成了2 B(分別由D碼和K碼組成),,編碼方式由2個控制信號TKMSB/RKMSB和TKLSB/RKLSB決定,。協(xié)議的工作過程如圖3所示。
系統(tǒng)上電或復位后,,收發(fā)雙方處于失步狀態(tài)(在發(fā)送端復位后要保證接收端已處于接收狀態(tài)),,發(fā)送端首先發(fā)送同步字符且時間長度不小于1 ms,1 ms結(jié)束后認為系統(tǒng)完成同步過程,,發(fā)送端開始數(shù)據(jù)幀的發(fā)送,。在每一幀數(shù)據(jù)發(fā)送結(jié)束后和下一幀數(shù)據(jù)開始發(fā)送前,發(fā)送端要發(fā)送同步字符來保持數(shù)據(jù)傳輸鏈路的同步狀態(tài),。在同步狀態(tài)建立后,,接收端不斷檢測輸出控制信號RKLSB和 RKMSB,,根據(jù)RKLSB和 RKMSB的狀態(tài)判斷數(shù)據(jù)類型,,舍去幀頭、幀尾和同步字符,,鎖存真正需要的數(shù)據(jù),。接收端在數(shù)據(jù)幀傳輸過程中如果失步,則依靠數(shù)據(jù)幀間的同步字符重新建立起收發(fā)間的同步關(guān)系,,同步關(guān)系建立后立刻轉(zhuǎn)入正常數(shù)據(jù)接收狀態(tài),。根據(jù)協(xié)議工作過程,定義TLK2711芯片用作發(fā)送通路時的6個狀態(tài)分別是:空閑,、建立同步,、發(fā)送幀頭、發(fā)送數(shù)據(jù),、發(fā)送幀尾,、發(fā)送同步字符,其發(fā)送通路的狀態(tài)轉(zhuǎn)換如圖4所示,。
2.3 帶寬動態(tài)分配
系統(tǒng)采用6片TLK2711并行工作,,接收端要根據(jù)發(fā)送端的速率適時調(diào)整接收端TLK2711的工作數(shù)量,以實現(xiàn)帶寬的動態(tài)分配,。當接收端的6片TLK2711同時接收數(shù)據(jù)時,,F(xiàn)PGA需要在一個時鐘周期內(nèi)將96 bit并行數(shù)據(jù)轉(zhuǎn)換為與PCI Express總線位寬匹配的64 bit并行數(shù)據(jù),然后才能進行相應處理,??紤]到調(diào)用FPGA內(nèi)部的RAM IP核或者FIFO IP核無法實現(xiàn)該位寬轉(zhuǎn)換,因此設(shè)計了一個輸入位寬可變的RAM來處理數(shù)據(jù)位寬,從而實現(xiàn)接收端TLK2711工作數(shù)量可調(diào),。
首先FPGA在接收板TLK2711的恢復時鐘下將重構(gòu)的并行數(shù)據(jù)鎖存一個周期,,然后根據(jù)伴隨著數(shù)據(jù)流的輸入控制信號判斷是否有有效數(shù)據(jù)到來,當接收到有效數(shù)據(jù)后,,將數(shù)據(jù)寫入異步FIFO進行不同時鐘域的數(shù)據(jù)處理,。當一個信號從一個時鐘域傳遞到另外一個時鐘域時經(jīng)常會出現(xiàn)亞穩(wěn)態(tài)問題,解決這一問題可以使用一個異步FIFO使得另外一個時鐘域的信號足夠穩(wěn)定,。將接收端TLK2711從串行數(shù)據(jù)流中提取的恢復時鐘作為FIFO的寫時鐘,,將PCIE總線250 MHz分頻產(chǎn)生一個同相的125 MHz時鐘作為FIFO的讀時鐘。當FIFO半滿信號有效時,,讀寫控制邏輯開始將FIFO中的數(shù)據(jù)讀出來作為位寬可調(diào)的RAM的輸入,,從而實現(xiàn)位寬轉(zhuǎn)換。該RAM的接口如圖5所示,,其中adjust為通道選擇信號,,wr為異步FIFO的讀使能。
考慮到RAM的讀寫時鐘以及輸入/輸出數(shù)據(jù)位寬,,可以發(fā)現(xiàn)RAM的寫數(shù)據(jù)速度遠小于其讀取數(shù)據(jù)的速度,,故系統(tǒng)采用乒乓操作對接收板TLK2711的數(shù)據(jù)進行處理。FIFO讀出的數(shù)據(jù)首先寫進ram0,,ram0寫滿之后開始向ram1寫數(shù)據(jù),,同時將ram0寫入的數(shù)據(jù)讀取出來,。由于ram的寫數(shù)據(jù)速度遠小于其讀取數(shù)據(jù)的速度,,所以當ram0中的數(shù)據(jù)讀取完時ram1還未寫滿,此時ram0停止讀取數(shù)據(jù)并且處于等待狀態(tài)直至ram1中寫滿數(shù)據(jù),。當ram1中寫滿數(shù)據(jù)時開始寫ram0,,同時緊接著讀取ram1中的數(shù)據(jù),。同理,,當ram1中的數(shù)據(jù)讀取完時ram0還未寫滿,所以此時ram1同樣停止讀取數(shù)據(jù)并且處于等待狀態(tài),,直至ram0中滿數(shù)據(jù),。當ram0寫滿數(shù)據(jù)時,立即開始寫ram1讀取ram0中的數(shù)據(jù),,如此循環(huán),。該乒乓操作示意圖如圖6所示。
按照設(shè)計思路將模塊功能在Xilinx公司的FPGA設(shè)計平臺ISE 14.2上進行代碼編譯綜合,、功能仿真和時序仿真等,,通過JTAG口將程序下載到FPGA中進行實際運行,,然后利用ISE 14.2自帶的邏輯分析儀采集所要觀察的數(shù)據(jù)信號并進行在線調(diào)試,。圖7為使用ISE 14.2中Chipscope采集的對單通道TLK2711接收到的數(shù)據(jù)進行不同時鐘域處理和乒乓操作的時序圖,。從圖中可以看出整個工作情況與以上描述一致,,證明該模塊從代碼設(shè)計和時序約束到功能實現(xiàn)全部通過,,數(shù)據(jù)傳輸速率在TLK2711芯片內(nèi)可以達到194.74 MB/s,。
2.4 設(shè)計中應注意的問題
高速數(shù)據(jù)傳輸系統(tǒng)要求有高穩(wěn)定性和高精度的時鐘源,,抖動和頻偏是衡量時鐘源的兩個重要指標。TLK2711內(nèi)部對輸入?yún)⒖紩r鐘進行20倍頻,,同時TLK2711的時鐘穩(wěn)定度要求小于±10 ppm,,在設(shè)計時不能使用FPGA內(nèi)部的MMCM模塊倍頻生成參考時鐘,。因為經(jīng)過MMCM模塊倍頻的時鐘容易引起比較大的抖動,,導致TLK2711接收鎖相環(huán)無法穩(wěn)定地鎖定發(fā)送時鐘從而產(chǎn)生誤碼??紤]到時序的設(shè)計要求,,系統(tǒng)選用125 MHz的有源晶振作為TLK2711的時鐘源,并將其輸出時鐘接至FPGA的全局時鐘引腳,,同時使用IBUFG+BUFG對該全局時鐘進行處理后作為6路TLK2711的輸入?yún)⒖紩r鐘,。為了保證高速差分信號的傳輸質(zhì)量,差分線對的兩根線應盡可能靠近并且遠離其他信號,,在進行PCB布線時,,TLK2711的16 bit并行總線與伴隨時鐘也要進行等長處理,以保證輸入數(shù)據(jù)的同步和一致性[3-5],。
對于高速串化解串器TLK2711,,當它只用作發(fā)送通路時,應將LCKREFN引腳置低,,這樣接收通道的RXD[0:15],、RXCLK、RKLSB,、RKMSB等引腳都會處于高阻抗狀態(tài),;當只用作接收通路時,發(fā)送端不用的TXD[0:15],、TKLSB,、TKMSB等引腳應當拉高或拉低使其處于一個穩(wěn)定的狀態(tài)。
基于TLK2711的高速串行傳輸系統(tǒng)的設(shè)計大大降低了高速數(shù)據(jù)傳輸過程中的互聯(lián)復雜程度,,同時保證了信號傳輸?shù)膶崟r性和準確性,。基于此設(shè)計的6通道串行傳輸系統(tǒng)工作穩(wěn)定可靠,各項指標達到設(shè)計要求,。本系統(tǒng)創(chuàng)新點在于采用輸入位寬可調(diào)的RAM對接收端進行帶寬動態(tài)分配,,對于解決高速多通道TLK2711的串行傳輸系統(tǒng)設(shè)計有較高的參考價值。
參考文獻
[1] 任建岳.空間光學遙感器專題文章導讀[J].光學精密工程,,2008,,16(10):1852-1852.
[2] 曹小濤,徐抒巖,,趙運隆.空間相機連續(xù)調(diào)焦地面仿真測試系統(tǒng)設(shè)計[J].液晶與顯示,,2011,26(3):409-412.
[3] 張達,,徐抒巖.高速CCD圖像數(shù)據(jù)光纖傳輸系統(tǒng)[J].光學精密工程,,2009,17(3):670-675.
[4] Texas Instruments.TLK2711 1.6 to 2.7 Gb/s transceiver datasheet[Z].2001.
[5] 張達,,徐抒巖.基于TLK2711的高速圖像數(shù)據(jù)串行傳輸系統(tǒng)[J].微計算機信息,,2009,25(1-2):284-286.