何廣亮,湯曉云
(1.中國空空導彈研究院,河南洛陽,471009;2.空裝駐洛陽地區(qū)第一軍代表室,河南洛陽,471009)
在信號處理系統(tǒng)中,AD采樣發(fā)揮著至關重要的作用,要想保證信號處理結(jié)果的正確性,必須首先保證AD采樣數(shù)據(jù)的正確性。在FPGA的數(shù)據(jù)接收端,由于數(shù)據(jù)速率太高,隨路時鐘和數(shù)據(jù)延時不一致以及線路噪聲的影響[1],導致單個ADC的多位數(shù)據(jù)之間存在偏移。由于采樣時鐘不能正確的捕捉到數(shù)據(jù)有效窗口的中心位置,使通道內(nèi)數(shù)據(jù)接收不準確產(chǎn)生數(shù)據(jù)位偏移[6]。
本文采用ADS4449采樣芯片,采樣率最高達250MSPS,所以在FPGA接收端需要加入校準算法來保證采樣數(shù)據(jù)的正確性,每次系統(tǒng)重新啟動或者復位后,都需要對系統(tǒng)進行自適應校準。該算法利用Xilinx FPGA中自帶的IDELAYE2[2]延時調(diào)整機制,調(diào)節(jié)IDELAYE2的延時tap,自適應的調(diào)整通道內(nèi)隨路時鐘與數(shù)據(jù)的延時,實現(xiàn)數(shù)據(jù)對齊。
ADS4449為TI公司推出的高速AD采樣轉(zhuǎn)換芯片,采樣率最高為250MSPS,精度為14bit,信噪比為69dBFs,無雜散動態(tài)范圍為86dBc[3]。ADS4449芯片有多種工作模式,在實際應用中可通過FPGA對其進行配置,使AD芯片在最優(yōu)性能下工作,配置接口為串行接口,最大工作頻率不超過20MHz,配置時序如圖1所示。
圖1 ADS4449芯片配置時序
ADS4449芯片與FPGA之間用過LVDS總線連接,其14bit四通道數(shù)據(jù)雙路輸出使用雙沿采樣DDR的源同步方式,以提高數(shù)據(jù)的吞吐率和總理論帶寬。LVDS模式優(yōu)勢明顯,在低壓情況下,它的擺幅切換的時間很快,可有效的解決電磁干擾的問題,采用差分傳輸,可實現(xiàn)共模抑制,大大消除了傳輸過程中引入的噪聲干擾[4]。ADS4449的數(shù)據(jù)輸出接口時序如圖2所示。
圖2 ADS4449數(shù)據(jù)輸出接口時序
軟件設計采用Xilinx公司的Vivado軟件和Verilog HDL語言[5]。硬件上電時,通過FPGA對ADS4449芯片進行配置,首先把ADS4449配置成輸出測試序列模式,在FPGA內(nèi)部,通過IDELAYE2調(diào)整隨路時鐘與數(shù)據(jù)的延時,使得FPGA采樣時鐘對準數(shù)據(jù)中間[7],并記錄下采樣正確時的延時值區(qū)間,找到區(qū)間的中間值,配置為隨路時鐘與數(shù)據(jù)的固定延時,最后把ADS4449配置為正常工作模式即可,軟件總體框圖如圖3所示。
圖3中IBUFDS、IDELAYE2、BUFG、IDDR和IDELA YCTRL均為Xilinx提供的原語,IBUFDS為差分I/O輸入時鐘緩沖器,用來把差分LVDS隨路時鐘和數(shù)據(jù)轉(zhuǎn)換成單端;IDELAYE2和IDELAYCTR配合使用,調(diào)整隨路時鐘的路徑延時;BUFG為全局時鐘緩沖器;IDDR完成雙邊沿高速數(shù)據(jù)流到單邊沿數(shù)據(jù)流的轉(zhuǎn)換工作。
圖3 軟件總體框圖
IDELAYE2是7 Series FPGA硬件原語,該原語用來調(diào)整時鐘或數(shù)據(jù)的相位,Tap為IDELAYE2的基本延遲單元,每個IDELAYE2有32個Tap,每個Tap的長度在0~78ps之間,能夠?qū)崿F(xiàn)0~2.5ns的延時。通過在7 Series FPGA Data Sheet中規(guī)定的范圍內(nèi)選擇IDELAYCTRL參考時鐘。IDELAYE2結(jié)構(gòu)圖如圖4所示。
圖4 IDELAYE2結(jié)構(gòu)圖
端口信號如表 1所示。
表1 IDELAYE2接口信號表
在例化IDELAYE2原語時,必須配合使用IDELAYCTRL原語,IDELAYCTRL模塊能夠根據(jù)參考時鐘對IDELAYE2的Tap延遲分辨率進行校驗。本設計中參考時鐘為200MHz,IDELAYCTRL單元能夠?qū)ap延遲值校驗固定為78ps。
IDDR(InputDouble Data Rate,輸入雙倍數(shù)據(jù)率)子模塊完成雙邊沿高速數(shù)據(jù)流到單邊沿數(shù)據(jù)流的轉(zhuǎn)換工作[8]。該組件為FPGA中專門用于接收外部雙倍數(shù)據(jù)速率信號的器件原語。它可以在時鐘的上升沿或下降沿將數(shù)據(jù)遞送給FPGA,也可以將轉(zhuǎn)換為只在上升沿傳遞數(shù)據(jù),這樣就節(jié)省了片上資源,并減小了額外的時序復雜度。IDDR的結(jié)構(gòu)如圖5所示。
我國擁有廣袤的農(nóng)村區(qū)域,農(nóng)村面積占據(jù)了國土的絕大多數(shù)。和城市相比較而言,我國的農(nóng)村教育教學水平還存在一定的差距,從教師的教育教學理念,到教學資源的配備,到教育教學的環(huán)境,到社會的關注程度,農(nóng)村都遠遠不及城市。為了大力推進我國教育的均衡化發(fā)展,國家已經(jīng)投入了更大力度,在農(nóng)村幼兒園及中小學加大了投資力度,大力改善辦學條件。作為一名農(nóng)村幼兒園教師,也應當不等不靠,積極創(chuàng)新,廣泛利用農(nóng)村極為普遍的各種教育資源,為幼兒提供更加豐富的活動材料,組織幼兒開展更加具有農(nóng)村鄉(xiāng)土特色的區(qū)域活動,降低材料的成本,提高區(qū)域活動的效率,推動幼兒的全面發(fā)展,為農(nóng)村幼兒教育事業(yè)的發(fā)展提供更加搶進的助推力量。
圖5 IDDR結(jié)構(gòu)圖
IDDR端口信號功能如表 2所示。
表2 IDDR端口信號表
IDDR具有3種工作模式,分別為OPPOSITE_EDGE模式、SAME_EDGE模式以及SAMEEDGE_PIPEL1NED模式,其區(qū)別在于兩路輸出數(shù)據(jù)與輸入數(shù)據(jù)相位關系不同。本文中采用SAME_EDGE_PIPELINED模式,該模式下IDDR的數(shù)據(jù)分流情況如圖6所示。圖中的雙時鐘沿數(shù)據(jù)經(jīng)過IDDR后,輸出兩路數(shù)據(jù)。該模式的弊端是Q1,Q1信號變化時需要消耗一個額外的時鐘周期延遲。
圖6 IDDR的SAMEEDGE_PIPEL1NED時序圖
此模塊是本文設計的核心內(nèi)容,主要用來控制IDELAYE2中的延時值以控制隨路時鐘的延時。自校準需要通過特定的訓練序列來實現(xiàn),本設計中,通過配置ADS4449在測試模式下輸出累加數(shù)特征序列。本文中IDELAYE2的Tap值為78ps,一共可以調(diào)整32次,即隨路時鐘的最大路徑延時可以達到2.5ns左右。動態(tài)相位自校準的核心是通過特征序列從0到1的跳變,找到數(shù)據(jù)窗口的前沿和后沿,通過計算數(shù)據(jù)窗口前沿與后沿之間的Tap延時級數(shù)確定數(shù)據(jù)窗口的中心,校準流程如圖7所示。
圖7 工作流程圖
校準的流程如下:
(1)系統(tǒng)剛上電或復位時,配置ADS4449為測試模式,輸出累加數(shù)測試序列;
(2)找到數(shù)據(jù)窗口邊沿。ADS4449輸出數(shù)據(jù)穩(wěn)定時,進行采樣比較,由于測試序列為累加序列,在連續(xù)200個周期數(shù)據(jù)都是累加時,即認為當前的Tap延時值正確,表示數(shù)據(jù)窗口邊沿被找到。
(3)找到數(shù)據(jù)窗口前沿。當數(shù)據(jù)窗口前沿被找到時,使Tap的延時級數(shù)加1,待輸出數(shù)據(jù)穩(wěn)定后,連續(xù)比較200個周期的累加數(shù)是否正確,如果不正確,則表示時鐘還處在數(shù)據(jù)邊沿的亞穩(wěn)態(tài)區(qū)域,需要繼續(xù)增加Tap的延時級數(shù),直到采樣結(jié)果正確為止,表示數(shù)據(jù)窗口前沿被找到,將此延時級數(shù)記為N1。
圖8 校準示意圖
(4)找到數(shù)據(jù)窗口后沿。找到數(shù)據(jù)窗口前沿時,繼續(xù)增加Tap延時級數(shù),直到輸出數(shù)據(jù)錯誤時為止,表示數(shù)據(jù)窗口后沿被找到,記錄下此時Tap延時級數(shù)為N2;
(5)確定數(shù)據(jù)窗口中心。數(shù)據(jù)窗口的中心位置就是前沿和后沿的中心,重新配置Tap延時級數(shù)為(N1+N2)/2,以此當作Tap的固定延時;
(6)重新配置ADS4449為正常工作模式。
硬件采用V7 690t型號FPGA加ADS4449架構(gòu),為了便于觀察,設置輸入信號為1MHz的正弦波信號,ADS4449采樣率配置為最高的250MSPS。
首先測試不采用本算法時,隨機配置一個Tap延時值得AD采樣數(shù)據(jù),結(jié)果如圖9所示,可見FPGA接收到的信號含有許多毛刺,信號幅度偏小,有時候甚至看不出是正弦波信號。
圖9 不采用本算法時FPGA接收數(shù)據(jù)
測試采用本算法時的FPGA接收端數(shù)據(jù),可見FPGA收到的信號是平滑的正弦波信號,接收數(shù)據(jù)正確。
圖10 采用本算法時FPGA接收數(shù)據(jù)
測試條件:(1)常溫上電,找到數(shù)據(jù)窗口中心,然后溫度逐漸降到-50℃,保持一段時間,溫度在逐漸上升到+50℃,并保持一段時間,測試過程中數(shù)據(jù)一直保持正確;(2)-50℃溫度下分別上電,在-50℃找到數(shù)據(jù)窗口中心,溫度在逐漸上升到+50℃,并保持一段時間,測試過程中數(shù)據(jù)一直保持正確;(3)+50℃溫度下分別上電,在﹢50℃找到數(shù)據(jù)窗口中心,溫度在逐漸下降到-50℃,并保持一段時間,測試過程中數(shù)據(jù)一直保持正確。
本文根據(jù)Xilinx FPGA的IDELAYE2延時機制,設計了一種AD動態(tài)相位自校準算法,使FPGA數(shù)據(jù)接收端采樣時鐘邊沿與數(shù)據(jù)窗口中心對齊,保證了FPGA接收數(shù)據(jù)的正確性。通過±50℃的高低溫試驗,驗證了該算法穩(wěn)定可行。