??? 摘? 要: 高速雷達(dá)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方法。該系統(tǒng)由FPGA芯片完成各芯片之間的邏輯控制,具有設(shè)計(jì)靈活、結(jié)構(gòu)簡(jiǎn)單、實(shí)時(shí)性高、可靠性高等優(yōu)點(diǎn)。?
??? 關(guān)鍵詞: 高速雷達(dá);數(shù)據(jù)采集系統(tǒng);現(xiàn)場(chǎng)可編程門陣列
?
??? 目標(biāo)的識(shí)別需要高精度的數(shù)據(jù),為了得到這些數(shù)據(jù),必須以更高頻率對(duì)回波進(jìn)行采集。而用于目標(biāo)識(shí)別的精確數(shù)據(jù)所使用的采樣頻率通常需要達(dá)到36 MHz或更高。?
??? 系統(tǒng)采用的開(kāi)窗采集是在目標(biāo)檢測(cè)成功完成的前提下進(jìn)行的。它利用目標(biāo)檢測(cè)的結(jié)果,得到目標(biāo)方位和距離信息,然后在下一次雷達(dá)掃描中,在該方位和距離上形成脈寬為1 μs的采集波門,利用這一采集波門控制采樣電路模塊,完成一次高采樣頻率、高精度的采集。?
1 數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計(jì)?
??? 圖1中,I路和Q路雷達(dá)信號(hào)首先分別進(jìn)入衰減選擇,接著進(jìn)入直流電平調(diào)整,然后進(jìn)入AD轉(zhuǎn)換,在36 MHz采樣頻率下完成12位分辨率的AD轉(zhuǎn)換,實(shí)現(xiàn)I路和Q路的數(shù)據(jù)采集。這里使用的AD芯片型號(hào)為AD9226-ARS,其主要性能指標(biāo):轉(zhuǎn)換速度65 MS/s,精度為12位。具體的應(yīng)用電路見(jiàn)圖2。?
?
?
?
????該電路使用單端輸入,輸入電壓必須在0.5~1.5 V之間,這可以通過(guò)一個(gè)運(yùn)算放大器實(shí)現(xiàn),本系統(tǒng)使用AD8056運(yùn)放,實(shí)現(xiàn)直流電平調(diào)整,同時(shí)也起到緩沖的作用。具體電路圖見(jiàn)圖3。?
?
?
????為了盡可能提高AD轉(zhuǎn)換后數(shù)據(jù)的分辨率,對(duì)電源、接地、電路布局進(jìn)行了一些處理。所選用的運(yùn)算放大器、電阻、電容等器件具有穩(wěn)定的性能,電阻電容溫漂小、漏電小。模擬輸入的引線盡可能地短、粗。這些措施對(duì)實(shí)現(xiàn)分辨率指標(biāo)有一定的幫助,保證了數(shù)據(jù)來(lái)源的可靠性。?
2 FPGA完成的工作?
??? (1)采集波門的產(chǎn)生?
??? 如圖1所示,進(jìn)入FPGA芯片后的數(shù)據(jù)在保存到RAM中之前必須加入數(shù)據(jù)頭,以便主機(jī)得到這些精細(xì)采集數(shù)據(jù)時(shí)能方便地區(qū)別各次采集,該數(shù)據(jù)頭沒(méi)有包括當(dāng)前的方位信息,這是因?yàn)榇藭r(shí)的方位和距離信息是已知的。?
??? 波門的形成過(guò)程見(jiàn)圖4,是精細(xì)采集模塊中數(shù)據(jù)形成流程圖。首先,主機(jī)通過(guò)USB接口模塊地輸入端點(diǎn)2得到FIFO中的檢測(cè)結(jié)果,然后取出感興趣的檢測(cè)結(jié)果,將其方位和距離信息通過(guò)輸出端口2發(fā)送到XCS30內(nèi)部的方位和距離寄存器中。在下一次雷達(dá)掃描過(guò)程中,不斷比較當(dāng)前方位,如果當(dāng)前方位和方位寄存器中的值相等,再進(jìn)行距離的比較。在方位相同的前提下記錄當(dāng)前距離,如果記錄的當(dāng)前距離與距離寄存器中的值相等,則開(kāi)始一個(gè)波門。在波門有效期間,對(duì)I路、Q路進(jìn)行36 MHz、12位的數(shù)據(jù)采集,采集結(jié)果通過(guò)XCS30保存到RAM中。當(dāng)波門的有效時(shí)間持續(xù)有效一段時(shí)間后(這段時(shí)間決定采集波門的寬度),波門信號(hào)變?yōu)闊o(wú)效,至此完成一次開(kāi)窗采集過(guò)程。?
?
?
????(2)從主機(jī)發(fā)送方位信息和距離信息到FPGA內(nèi)部的方位寄存器和距離寄存器?
????方位寄存器為12位,距離寄存器為17位,考慮到USB接口芯片數(shù)據(jù)線為8位,同時(shí)根據(jù)USB協(xié)議主機(jī)發(fā)送字節(jié)數(shù)的約束,最后決定距離寄存器采用20位,20位中的高三位數(shù)據(jù)沒(méi)有參與距離的比較。?
????寫方位信息和距離信息到XCS30中的過(guò)程是通過(guò)接口芯片的塊輸出端點(diǎn)完成的。8051的數(shù)據(jù)線為8位,為了發(fā)送12位的方位信息或20位的距離信息,必須通過(guò)多次傳輸才能完成。?
??? (3)記錄當(dāng)前方位和當(dāng)前距離?
??? 對(duì)于當(dāng)前方位使用一個(gè)12位的計(jì)數(shù)器進(jìn)行方位脈沖的下降沿的計(jì)數(shù),這個(gè)計(jì)數(shù)器的清零信號(hào)使用正北信號(hào)的下降沿。對(duì)于當(dāng)前距離的記錄,使用一個(gè)17位的計(jì)數(shù)器對(duì)36 MHz采集時(shí)鐘進(jìn)行計(jì)數(shù),清零信號(hào)使用同步脈沖的下降沿。?
??? (4)波門的產(chǎn)生和終止?
??? 在采樣時(shí)鐘的上升沿時(shí),如果當(dāng)前的方位和距離都是設(shè)定的方位和距離時(shí),產(chǎn)生一個(gè)波門的開(kāi)始信號(hào),經(jīng)過(guò)64個(gè)距離單元時(shí)間后,波門結(jié)束。這里的64個(gè)距離單元對(duì)應(yīng)的時(shí)間為1.78 μs,也就是說(shuō),這時(shí)開(kāi)的采集波門寬度為1.78 μs。?
??? (5)在每幀數(shù)據(jù)開(kāi)始時(shí)添加標(biāo)志位(即數(shù)據(jù)幀加頭)?
??? 檢測(cè)時(shí)在數(shù)據(jù)進(jìn)入雙口RAM前有一個(gè)數(shù)據(jù)幀加頭的過(guò)程,加入的數(shù)據(jù)頭包括幀起始標(biāo)志、當(dāng)前方位信息。在精細(xì)采集過(guò)程中,由于每一幀數(shù)據(jù)都是在主機(jī)指定的方位和距離的前提下進(jìn)行,所以沒(méi)有必要再添加方位和距離信息。這里的數(shù)據(jù)頭將只包括每一幀的起始標(biāo)志。?
??? (6)精細(xì)采集數(shù)據(jù)的存儲(chǔ)?
??? 在波門有效期間,AD轉(zhuǎn)換后的兩路數(shù)據(jù)將保存到RAM中,在進(jìn)入RAM中時(shí),必須先加上數(shù)據(jù)頭標(biāo)志,然后再寫入一次采集所得的數(shù)據(jù)。實(shí)現(xiàn)原理見(jiàn)圖5。?
?
?
??? 在加數(shù)據(jù)頭時(shí),鎖存器" title="鎖存器" target="_blank">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器" title="鎖存器">鎖存器OE端由FPGA置為無(wú)效,此時(shí)的鎖存器輸出為高阻狀態(tài)。FPGA將鎖存器置為高阻的同時(shí),將內(nèi)部的“FFFFFF”放到數(shù)據(jù)總線上;在不進(jìn)行加數(shù)據(jù)頭時(shí),鎖存器OE端由FPGA置為有效,數(shù)據(jù)總線上的數(shù)據(jù)為鎖存后輸出的12位數(shù)據(jù)。這樣通過(guò)對(duì)鎖存器使能端的控制,實(shí)現(xiàn)了數(shù)據(jù)在保存到RAM之前完成添加數(shù)據(jù)幀標(biāo)志的工作。?
??? 圖5中,鎖存器的鎖存時(shí)鐘CLK與AD轉(zhuǎn)換芯片的采集時(shí)鐘CLK反相,這樣在晶振時(shí)鐘的上升沿實(shí)現(xiàn)AD的轉(zhuǎn)換,在晶振時(shí)鐘的下降沿實(shí)現(xiàn)鎖存器的一次鎖存。通過(guò)這樣的設(shè)計(jì)錯(cuò)開(kāi)了AD采樣和鎖存采樣的取樣時(shí)刻,保證了數(shù)據(jù)的正確性。?
??? (7)數(shù)據(jù)傳輸?
??? 對(duì)于cy7c68013C而言,其內(nèi)部的8051有16位的地址線,但是考慮到外部存儲(chǔ)器的容量為256 kB,8051的地址線僅能尋址64 kB,最后決定采用對(duì)讀脈沖進(jìn)行計(jì)數(shù)產(chǎn)生地址信息的方法實(shí)現(xiàn)對(duì)存儲(chǔ)器的訪問(wèn)。除了對(duì)8051發(fā)出的讀脈沖的異步處理外,在傳輸過(guò)程中還需要解決24位數(shù)據(jù)轉(zhuǎn)換為8位數(shù)據(jù)、2路數(shù)據(jù)的分離等問(wèn)題??梢酝ㄟ^(guò)圖6來(lái)理解。圖中RAM的讀脈沖經(jīng)過(guò)抽取8051(包含在cy7c68013C內(nèi)的處理器)的讀脈沖,每4個(gè)抽1個(gè)。在存儲(chǔ)器接口方面,抽取的脈沖給RAM的RD端,完成存儲(chǔ)器讀脈沖的實(shí)現(xiàn),每4次8051的RD脈沖讀取一個(gè)RAM地址內(nèi)的數(shù)據(jù)。與8051接口方面,先將8051的讀脈沖延遲3個(gè)時(shí)鐘,形成一個(gè)延遲的8051讀脈沖信號(hào),利用這個(gè)信號(hào),完成把讀入FPGA內(nèi)的一個(gè)RAM地址的數(shù)據(jù)傳送給8051,這個(gè)信號(hào)的第一個(gè)讀脈沖的下降沿是第一時(shí)刻,第二個(gè)讀脈沖的下降沿是第二時(shí)刻。在第一時(shí)刻讀入數(shù)據(jù)為1010+regin[23:20],第二時(shí)刻讀入數(shù)據(jù)為regin[19:12],這兩個(gè)時(shí)刻讀入的數(shù)據(jù)方為一個(gè)完整的采集結(jié)果數(shù)據(jù),通過(guò)在主機(jī)的應(yīng)用程序中組合兩次讀入的數(shù)據(jù),最后得到的數(shù)據(jù)格式為“A+12位采集結(jié)果數(shù)據(jù)”,這一種格式表示是I路的12位數(shù)據(jù)。同理,第三時(shí)刻和第四時(shí)刻讀入的數(shù)據(jù)為Q路的12位。傳輸精細(xì)采集數(shù)據(jù)時(shí)FPGA內(nèi)部各個(gè)讀脈沖之間的時(shí)序見(jiàn)圖6所示。?
?
?
??? 以上是存儲(chǔ)器讀脈沖的實(shí)現(xiàn)過(guò)程,存儲(chǔ)器地址則是通過(guò)對(duì)8051發(fā)出讀脈沖計(jì)數(shù)而得到。?
??? 下面再?gòu)恼w上看保存的精細(xì)采集數(shù)據(jù)是如何發(fā)送給USB接口模塊的?;驹砜梢酝ㄟ^(guò)圖7來(lái)說(shuō)明。傳輸過(guò)程為:當(dāng)主機(jī)發(fā)送一個(gè)IN令牌給AN2131QC的管道2時(shí),AN2131QC執(zhí)行對(duì)應(yīng)的管道中斷程序。在中斷程序中,AN2131QC發(fā)出連續(xù)的64個(gè)讀脈沖,這64個(gè)讀脈沖通過(guò)4抽1,得到16個(gè)讀脈沖。這16個(gè)讀脈沖送給存儲(chǔ)器的RD引腳,同時(shí)計(jì)數(shù)器對(duì)16個(gè)讀脈沖進(jìn)行計(jì)數(shù),得到存儲(chǔ)器的地址送給存儲(chǔ)器的地址線。在第一個(gè)讀脈沖的下降沿時(shí)存儲(chǔ)器送出對(duì)應(yīng)第一個(gè)地址的24位數(shù)據(jù)到XCS30內(nèi)的24位寄存器regin。同時(shí)在XCS30內(nèi)部,把這24位作為4組數(shù)據(jù)一次保存。AN2131QC發(fā)出的64個(gè)讀脈沖延遲3個(gè)時(shí)鐘后控制XCS30內(nèi)部的數(shù)據(jù)線。第一個(gè)延時(shí)的讀脈沖到來(lái)時(shí),將圖7對(duì)應(yīng)的第一時(shí)刻內(nèi)的數(shù)據(jù)送到8位寄存器,這時(shí)AN2131QC讀入8位寄存器的內(nèi)容;第二個(gè)延時(shí)的讀脈沖到來(lái)時(shí),將圖7對(duì)應(yīng)的第二時(shí)刻內(nèi)的數(shù)據(jù)送到8位寄存器,AN2131QC讀入該寄存器內(nèi)容;第三個(gè)延時(shí)的讀脈沖到來(lái)時(shí),將第三時(shí)刻內(nèi)的數(shù)據(jù)送到8位寄存器,AN2131QC讀入該寄存器內(nèi)容;第四個(gè)延時(shí)的讀脈沖到來(lái)時(shí),將第四時(shí)刻內(nèi)的數(shù)據(jù)送到8位寄存器,AN2131QC讀入該寄存器內(nèi)容。通過(guò)四個(gè)延時(shí)的讀脈沖,完成對(duì)應(yīng)的存儲(chǔ)器的第一個(gè)地址內(nèi)24位數(shù)據(jù)的傳輸。主機(jī)發(fā)送一個(gè)IN令牌將引起AN2131QC發(fā)送64個(gè)讀脈沖,完成存儲(chǔ)器16個(gè)地址的數(shù)據(jù)的傳輸。?
?
?
??? 經(jīng)過(guò)這樣的處理,完成了24位到8位的轉(zhuǎn)換,同時(shí)由于在XCS內(nèi)部處理數(shù)據(jù)時(shí),加入了“1010”和“1011”的通路標(biāo)志,在主機(jī)接收到的數(shù)據(jù)中可以通過(guò)對(duì)此識(shí)別,分離開(kāi)I路和Q路的數(shù)據(jù)。此外,由于在數(shù)據(jù)的保存過(guò)程中,每一幀開(kāi)始寫入的數(shù)據(jù)為FFFFFF,所以在主機(jī)的數(shù)據(jù)中,如果出現(xiàn)“AFFF BFFF”的標(biāo)志時(shí)可以識(shí)別這一段數(shù)據(jù)為一個(gè)新的數(shù)據(jù)幀的開(kāi)始。?
參考文獻(xiàn)?
[1] 李廣軍,孟憲元.可編程ASIC設(shè)計(jì)及應(yīng)用.成都:電子科技大學(xué)出版社,2000.?
[2] EDA先鋒工作室,王誠(chéng).FPGA/CPLD設(shè)計(jì)工具Xilinx?ISE5.x使用詳解[M].北京:人民郵電出版社,2003.