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