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