本發(fā)明屬于信號采樣技術(shù)領(lǐng)域,更為具體地講,涉及一種多片基于jesd204b協(xié)議adc的同步方法。
背景技術(shù):
jesd204b串行傳輸協(xié)議(簡稱jesd204b協(xié)議)是在adc傳輸中重要的接口標(biāo)準(zhǔn),它相比傳統(tǒng)的并行l(wèi)vds接口標(biāo)準(zhǔn),具有速度快、占用io引腳少等優(yōu)點(diǎn),正逐漸被各大adc廠所青睞。
jesd204b協(xié)議的發(fā)送端即adc和接收端分為傳輸層、數(shù)據(jù)鏈路層和物理層。最高的鏈路速率為12.5gb/s。從整體上看,采樣數(shù)據(jù)(如12bit、8bit等)在發(fā)送端經(jīng)過8b/10b編碼之后被打包成串行數(shù)據(jù),串行傳輸?shù)浇邮斩撕蠼?jīng)接收端解串、解碼然后還原出原始的采樣數(shù)據(jù)。
jesd204b協(xié)議雖然具有速度快、占用io引腳少等巨大優(yōu)勢,但是鏈路中存在的不確定性延遲極大的阻礙了多片基于jesd204b協(xié)議adc的同步,對構(gòu)成jesd204b協(xié)議的時(shí)間交替采樣系統(tǒng)(tiadc系統(tǒng))等應(yīng)用場合帶來了障礙。而不確定性延遲體現(xiàn)在鏈路重新建立或者重新上電的過程中,jesd204b協(xié)議下接收端不能在確定的時(shí)刻點(diǎn)或者確定的本地多幀時(shí)鐘周期的邊沿接收到數(shù)據(jù),使鏈路的延遲具有不可重復(fù)性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提出一種多片基于jesd204b協(xié)議adc的同步方法,以實(shí)現(xiàn)確定性延遲。
為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明多片基于jesd204b協(xié)議adc的同步方法,其特征在于,包括以下步驟:
(1)、在多片基于jesd204b協(xié)議的adc、作為采樣數(shù)據(jù)接收端的fpga以及具有能夠產(chǎn)生sysref(系統(tǒng)參考)信號的時(shí)鐘管理模塊構(gòu)建的數(shù)據(jù)采集系統(tǒng)中,調(diào)節(jié)時(shí)鐘管理模塊產(chǎn)生滿足要求的adc采樣時(shí)鐘dclk_adc分別輸入到各片adc中,產(chǎn)生滿足要求的fpga參考時(shí)鐘dclk_fpga輸入到各片fpga中,同時(shí),時(shí)鐘管理模塊將其產(chǎn)生的sysref信號輸入到各片adc以及各片fpga中;
(2)、配置好各片adc的寄存器,并使接收到sysref信號相對于采樣時(shí)鐘dclk_adc的建立時(shí)間窗口大于時(shí)間閾值t1,保持時(shí)間窗口大于時(shí)間閾值t2,時(shí)間閾值t1、時(shí)間閾值t2根據(jù)具體的adc芯片確定;
(3)、通過串行spi協(xié)議調(diào)節(jié)時(shí)鐘管理模塊的內(nèi)部寄存器,設(shè)置sysref信號的初始模擬延遲值為0,產(chǎn)生單次的sysref信號;
(4)、讀取各adc的建立時(shí)間錯誤標(biāo)志寄存器和保持時(shí)間錯誤標(biāo)志寄存器的值;
(5)、對于任意一片adc,如果建立時(shí)間錯誤標(biāo)志寄存器和保持時(shí)間錯誤標(biāo)志寄存器中至少一個(gè)不是“0”(即“1”),則通過adc相應(yīng)的清零方法對建立時(shí)間錯誤標(biāo)志寄存器和保持時(shí)間錯誤標(biāo)志寄存器清零,然后增加sysref信號模擬延遲值,并通過串行spi協(xié)議調(diào)節(jié)時(shí)鐘管理模塊的內(nèi)部寄存器,重新設(shè)置sysref信號的模擬延遲值,重新產(chǎn)生單次的sysref信號,返回步驟(4);
如果建立時(shí)間錯誤標(biāo)志寄存器和保持時(shí)間錯誤標(biāo)志寄存器的值都是“0”,此時(shí)表明sysref信號與adc采樣時(shí)鐘dclk_adc的建立時(shí)間和保持時(shí)間都已滿足,則跳轉(zhuǎn)到步驟(6);
(6)、求出接收端即fpga中,sysref信號到lmfc(本地多幀時(shí)鐘)上升沿的時(shí)間間隔trxlmfc,使得存在一個(gè)n值,同時(shí)滿足以下公式:
(ttxout+twire(max)+trxin(max))<((n+1)×tlmfc-ttxlmfc+trxlmfc)
(ttxout+twire(min)+trxin(min))>(n×tlmfc-ttxlmfc+trxlmfc)
其中,ttxout為發(fā)送端即adc中l(wèi)mfc上升沿到串行數(shù)據(jù)輸出的時(shí)間間隔,twire(max)、twire(min)分別為發(fā)送端即adc到接收端即fpga的線路延遲最大值和最小值,trxin(max)、trxin(min)分別為接收端即fpga接收到串行數(shù)據(jù)到lmfc上升沿的時(shí)間間隔最大和最小值,tlmfc為本地多幀時(shí)鐘的周期,ttxlmfc為發(fā)送端即adc中sysref信號到lmfc上升沿之間的時(shí)間間隔;
(7)、將步驟(6)得到的時(shí)間間隔trxlmfc發(fā)送到接收端fpga中l(wèi)mfc延遲寄存器,這樣就保證了鏈路的確定性延遲,進(jìn)而實(shí)現(xiàn)了多片基于jesd204b協(xié)議adc的同步。
本發(fā)明的目的是這樣實(shí)現(xiàn)的。
本發(fā)明多片基于jesd204b協(xié)議adc的同步方法,通過對sysref(系統(tǒng)參考)信號的調(diào)整,其首先保證sysref信號與adc的采樣時(shí)鐘dclk_adc滿足最佳的建立時(shí)間和保持時(shí)間,然后調(diào)節(jié)接收端的本地多幀周期延遲即sysref信號到lmfc(本地多幀時(shí)鐘)上升沿的時(shí)間間隔trxlmfc,做到最壞的鏈路都能夠?qū)崿F(xiàn)確定性延遲,保證了多片基于jesd204b協(xié)議adc的同步,進(jìn)而保證了在重復(fù)上電或者重新建立鏈路的時(shí)候多片adc都同步。
附圖說明
圖1是本發(fā)明中多片基于jesd204b協(xié)議adc構(gòu)建的數(shù)據(jù)采集系統(tǒng)原理框圖;
圖2是接收端不確定性延遲的圖示;
圖3是adc同步有效性驗(yàn)證的采樣數(shù)據(jù)拼合波形圖,其中,(a)為采樣數(shù)據(jù)拼合錯誤的波形圖,(b)為采樣數(shù)據(jù)拼合正確的波形圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明的具體實(shí)施方式進(jìn)行描述,以便本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當(dāng)已知功能和設(shè)計(jì)的詳細(xì)描述也許會淡化本發(fā)明的主要內(nèi)容時(shí),這些描述在這里將被忽略。
圖1是本發(fā)明中多片基于jesd204b協(xié)議adc構(gòu)建的數(shù)據(jù)采集系統(tǒng)原理框圖。
在本實(shí)施例中,如圖1所示,本發(fā)明中多片基于jesd204b協(xié)議adc構(gòu)建的數(shù)據(jù)采集系統(tǒng)由多片基于jesd204b協(xié)議adc、作為采樣數(shù)據(jù)接收端的fpga以及具有能夠產(chǎn)生sysref(系統(tǒng)參考)信號的時(shí)鐘管理模塊構(gòu)建。
在本實(shí)施例中,如圖1所示,由兩片型號為ad9625的adc、兩片型號為kintex-7的fpga以及一片型號為lmk04828的鎖相環(huán)芯片構(gòu)建一個(gè)數(shù)據(jù)采集系統(tǒng),其中,adc作為數(shù)據(jù)采集系統(tǒng)的發(fā)送端,fpga作為數(shù)據(jù)采集系統(tǒng)的接收端,鎖相環(huán)芯片作為時(shí)鐘管理模塊,一片fpga對應(yīng)一片adc。
在本實(shí)施例中,本發(fā)明多片基于jesd204b協(xié)議adc的同步方法包括以下步驟:
步驟s1:調(diào)節(jié)時(shí)鐘管理模塊產(chǎn)生滿足要求的adc采樣時(shí)鐘dclk_adc分別輸入到各片adc中,產(chǎn)生滿足要求的fpga參考時(shí)鐘dclk_fpga輸入到各片fpga中,同時(shí),時(shí)鐘管理模塊將其產(chǎn)生的sysref信號輸入到各片adc以及各片fpga中;
步驟s2、配置好各片adc的寄存器,并使接收到sysref信號相對于采樣時(shí)鐘dclk_adc的建立時(shí)間窗口大于時(shí)間閾值t1,保持時(shí)間窗口大于時(shí)間閾值t2,在本實(shí)施例中,時(shí)間閾值t1為150ps、時(shí)間閾值t2為100ps;
在本實(shí)施例中,首先通過spi協(xié)議配置好ad9625,建立時(shí)間窗口寄存器和保持時(shí)間窗口寄存器分別是0x13c[7:5]和0x13b[7:5]寄存器。他們的步進(jìn)是35ps,則發(fā)送5到0x13c[7:5]寄存器,發(fā)送3到0x13b[7:5]寄存器。
步驟s3:通過串行spi協(xié)議調(diào)節(jié)鎖相環(huán)芯片的內(nèi)部寄存器,設(shè)置sysref信號的初始模擬延遲值為0,產(chǎn)生單次的sysref信號;
在本實(shí)施例中,調(diào)節(jié)adc1和adc2的sysref信號的初始模擬延遲為均為0,然后調(diào)節(jié)鎖相環(huán)芯片的寄存器,使其產(chǎn)生單次的sysref信號。
s4、讀回adc的建立時(shí)間錯誤標(biāo)志寄存器和保持時(shí)間錯誤標(biāo)志寄存器的值,看是否為“0”。
在本實(shí)施例中,建立時(shí)間錯誤標(biāo)志寄存器和保持時(shí)間錯誤標(biāo)志寄存器分別為0x100[3]和0x100[2],它表征是否sysref信號與adc的采樣時(shí)鐘dclk_adc的建立時(shí)間窗口和保持時(shí)間窗口大于步驟s2中設(shè)定的值,第一次讀取時(shí),分別是讀回存器0x100[3]和0x100[2]的值,發(fā)現(xiàn)為“1”。
步驟s5:對于任意一片adc,如果建立時(shí)間錯誤標(biāo)志寄存器和保持時(shí)間錯誤標(biāo)志寄存器中至少一個(gè)不是“0”(即“1”),通過adc相應(yīng)的清零方法對建立時(shí)間錯誤標(biāo)志寄存器和保持時(shí)間錯誤標(biāo)志寄存器清零,然后增加sysref信號模擬延遲值,并通過串行spi協(xié)議調(diào)節(jié)時(shí)鐘管理模塊的內(nèi)部寄存器,重新設(shè)置sysref信號的模擬延遲值,重新產(chǎn)生單次的sysref信號,返回步驟s4;
如果建立時(shí)間錯誤標(biāo)志寄存器和保持時(shí)間錯誤標(biāo)志寄存器的值都是“0”,此時(shí)表明sysref信號與adc采樣時(shí)鐘dclk_adc的建立時(shí)間和保持時(shí)間都已滿足,則跳轉(zhuǎn)到步驟s6。
在本實(shí)施例中,對寄存器0x03a[6]置“0”置“1”再置為“0”來清零0x100[3]和0x100[2]。
在本實(shí)施例中,調(diào)節(jié)sysref信號的延遲值為180ps,重新產(chǎn)生單次的sysref信號。發(fā)現(xiàn)0x100[3]和0x100[2]的值都穩(wěn)定為“0”,表明sysref信號與adc采樣時(shí)鐘dclk_adc的建立時(shí)間和保持時(shí)間都已滿足。
步驟s6:求出接收端即fpga中,sysref信號到lmfc(本地多幀時(shí)鐘)上升沿的時(shí)間間隔trxlmfc,使得存在一個(gè)n值,同時(shí)滿足以下公式:
(ttxout+twire(max)+trxin(max))<((n+1)×tlmfc-ttxlmfc+trxlmfc)
(ttxout+twire(min)+trxin(min))>(n×tlmfc-ttxlmfc+trxlmfc)
其中,ttxout為發(fā)送端即adc中l(wèi)mfc上升沿到串行數(shù)據(jù)輸出的時(shí)間間隔,twire(max)、twire(min)分別為發(fā)送端即adc到接收端即fpga的線路延遲最大值和最小值,trxin(max)、trxin(min)分別為接收端即fpga接收到串行數(shù)據(jù)到lmfc上升沿的時(shí)間間隔最大和最小值,tlmfc為本地多幀時(shí)鐘的周期,ttxlmfc為發(fā)送端即adc中sysref信號到lmfc上升沿之間的時(shí)間間隔。
在本實(shí)施例中,ttxout為6個(gè)幀周期,twire(min)為0個(gè)幀周期,twire(max)為0個(gè)幀周期,trxin(max)、trxin(min)分別為92個(gè)幀周期和84個(gè)幀周期,tlmfc為32個(gè)幀周期,ttxlmfc為0個(gè)幀周期,trxlmfc增量值首先選擇為0,那么trxlmfc就為28個(gè)幀周期(本實(shí)施例中trxlmfc的增加值是trxlmfc增量值的4倍,且trxlmfc是在28的基礎(chǔ)上增加的),此時(shí)得不到一個(gè)同時(shí)滿足的n值。
將trxlmfc對應(yīng)的增量值增加到5,則trxlmfc變?yōu)?8+5*4=48個(gè)幀周期,再次將數(shù)值帶入可以求得n值為1,滿足要求。
步驟s7:將步驟s6得到的時(shí)間間隔trxlmfc對應(yīng)的增量值發(fā)送到接收端fpga中l(wèi)mfc延遲寄存器,這樣就保證了鏈路的確定性延遲,進(jìn)而實(shí)現(xiàn)了多片基于jesd204b協(xié)議adc的同步。
在本實(shí)施例中,trxlmfc的增量值為5(對應(yīng)的trxlmfc的值為48個(gè)幀周期),發(fā)送5到兩片fpga中l(wèi)mfc延遲寄存器0x010[11:8],這樣就保證了鏈路的確定性延遲,進(jìn)而實(shí)現(xiàn)了兩片基于jesd204b協(xié)議adc的同步。
仿真
1、驗(yàn)證接收端確定性延遲
通過接收端接收到采樣數(shù)據(jù)的時(shí)刻值來證明本發(fā)明實(shí)現(xiàn)了確定性延遲。在沒有使用本方法之前,接收端即fpga接收采樣數(shù)據(jù)開始的時(shí)刻可能為圖2中兩種情況之一,即接收采樣數(shù)據(jù)開始的時(shí)刻是隨著上電的不同是不確定的,有時(shí)候早有時(shí)候晚,鏈路的延遲不確定。
在使用本發(fā)明后,經(jīng)過不斷的重復(fù)上電,不斷的重復(fù)測試,得到的結(jié)果一直為圖2中的一種情況,這證明了本發(fā)明實(shí)現(xiàn)了確定性延遲。
2、驗(yàn)證adc同步的有效性。
調(diào)節(jié)鎖相環(huán)芯片,使得adc2前端的采樣時(shí)鐘滯后adc1前端的采樣時(shí)鐘200ps,如果兩片adc做到穩(wěn)定同步,則兩片adc可以構(gòu)成采樣率為5gsps的時(shí)間交替采樣系統(tǒng)。通過對兩片adc的數(shù)據(jù)能否穩(wěn)定拼合來證明adc同步的有效性。
當(dāng)sysref信號沒有采用本發(fā)明時(shí),拼合兩片adc的采樣數(shù)據(jù)會得到圖3(a)或者圖3(b)的情況,并且隨著上電的不同這兩種情況的產(chǎn)生是隨機(jī)的。其根本原因在于sysref信號處于adc采樣時(shí)鐘的亞穩(wěn)態(tài)區(qū)域,造成sysref信號有的時(shí)刻指向前一個(gè)adc采樣周期有的時(shí)刻指向后一個(gè)采樣周期,具有不確定性。
當(dāng)使用本發(fā)明后,確保了sysref的建立時(shí)間和保持時(shí)間都有一個(gè)時(shí)間窗口,不出現(xiàn)亞穩(wěn)態(tài),進(jìn)過不斷的重復(fù)上電和測試,兩片adc的數(shù)據(jù)可以穩(wěn)定拼合成圖3(b)形式。圖3(b)形式也是前端兩片adc采樣時(shí)鐘有一定相位差的原因,得到的穩(wěn)定的時(shí)間交替采樣系統(tǒng)證明了兩片adc同步的有效性。
盡管上面對本發(fā)明說明性的具體實(shí)施方式進(jìn)行了描述,以便于本技術(shù)領(lǐng)域的技術(shù)人員理解本發(fā)明,但應(yīng)該清楚,本發(fā)明不限于具體實(shí)施方式的范圍,對本技術(shù)領(lǐng)域的普通技術(shù)人員來講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護(hù)之列。