曹尚斌,韓建寧,馬瑜涓,郝國棟,衛(wèi)國倩
(中北大學(xué)信息與通信工程學(xué)院,山西 太原 030051)
數(shù)據(jù)采集作為現(xiàn)代信息處理的首要問題,顯得越來越重要。隨著工業(yè)、農(nóng)業(yè)和醫(yī)療等行業(yè)的不斷發(fā)展,需要進行數(shù)據(jù)監(jiān)測的對象逐漸增多,而數(shù)據(jù)采集是進行數(shù)據(jù)監(jiān)控的重要部分,如何高效地獲取數(shù)據(jù)成為一個關(guān)鍵的問題。隨著嵌入式技術(shù)的提高,越來越多的嵌入式系統(tǒng)被應(yīng)用在高精度數(shù)據(jù)采集系統(tǒng)中。在實際應(yīng)用過程中,單一的FPGA或者ARM在某些領(lǐng)域不能滿足使用者的需求,所以自賽靈思公司的Zynq系列產(chǎn)品問世以來就廣受關(guān)注,賽靈思公司的Zynq系列是集成了雙核ARM Cortex-A9處理器以及納米級工藝的FPGA 的可擴展處理平臺[1]。在Zynq系列芯片中,F(xiàn)PGA與ARM通過AXI4傳輸協(xié)議進行數(shù)據(jù)的交互,可以很好地降低系統(tǒng)的延遲,提高處理性能。在系統(tǒng)軟件流程的設(shè)計方面,計劃使用賽靈思公司開發(fā)的集成設(shè)計環(huán)境Vivado設(shè)計套件進行設(shè)計,此集成設(shè)計環(huán)境工具把各類可編程技術(shù)結(jié)合在一起,并且提供了可供多種類型實驗的IP核,可以滿足各種實驗設(shè)計的需求以及多種復(fù)雜算法的設(shè)計。
Zynq-7000系列可擴展平臺是整個數(shù)據(jù)采集系統(tǒng)的核心,以1片賽靈思公司的Zynq-7000系列芯片以及2片AD7606采集芯片進行16通道的并行數(shù)據(jù)采集[2-4],通過HDMI在上位機顯示采集結(jié)果。該系統(tǒng)通過40針(實驗只用到其中的34個針口)的擴展口實現(xiàn)AD7606與Zynq-7000芯片的數(shù)據(jù)通信,每個擴展口上為了完成不同的工作要求設(shè)置了幾個不同電壓為電源的通路,同時有34路IO口可以進行通信傳輸。IO口在芯片內(nèi)部連接到芯片PL端的BANK35上,為了防止芯片PL端在電壓過高時損壞芯片,在2個擴展口J10和J11與PL端相連接的中間都加入了33 Ω的排阻。由于所使用的是2片AD7606板卡,所以需要分別在Zynq-7000芯片的J11和J10擴展口分別接1片AD7606。該擴展口位于PL(可編程邏輯)端,使用硬件描述語言進行AD采集控制代碼的編寫,并且將編寫好的程序通過Vivado開發(fā)軟件封裝為1個后期可以隨意調(diào)用的IP核,加入 IP 核以后,系統(tǒng)會自動使用 AXI 接口將 IP 核與處理器連接起來[5-6]。
該采集系統(tǒng)的整體工作流程如圖1所示,2路模擬信號分別從2片AD7606的信號輸入端輸入,連接在Zynq-7000開發(fā)板2個擴展口的AD7606數(shù)據(jù)采集芯片,接收到進行采集的命令后進行1次8通道全部打開的并行數(shù)據(jù)采集,然后將有效通道的數(shù)據(jù)進行1次A/D轉(zhuǎn)換,并且將數(shù)據(jù)放入到PL端進行儲存,通過DMA控制器來進行數(shù)據(jù)傳送的管控可以減少系統(tǒng)資源的損耗,為了防止在進行數(shù)據(jù)傳輸時出現(xiàn)信息傳輸不穩(wěn)定的問題加入先進先出(FIFO)寄存器,先進先出寄存器可以實現(xiàn)跨時鐘域的數(shù)據(jù)傳輸, 解決AD控制器與AXI4總線時鐘頻率不一致的問題。將PL端的數(shù)據(jù)傳輸至PS端的DDR3存儲器中。經(jīng)過ARM驅(qū)動后,將數(shù)據(jù)從HDMI端口傳出最終顯示在終端上位機[7-9]。
Zynq作為全新的全可編程和系統(tǒng)芯片(SoC)體系結(jié)構(gòu),由最新系列的28 nm FPGA和Xilinx的雙核高性能高級RISC機器(ARM)Cortex-A9處理器組成,在此基礎(chǔ)上整個處理平臺搭建的核心都是處理器,并且由于處理器之中集成了大量外設(shè)以及內(nèi)部控制裝置,使得在不使用Zynq-7000系列的FPGA部分時,該開發(fā)板的ARM區(qū)仍然可以獨立使用,這更體現(xiàn)了Zynq的優(yōu)勢所在。在基于Zynq的讀出模塊中,具有可編程邏輯(PL)和處理系統(tǒng)(PS)之間的高速數(shù)據(jù)傳輸同時包含了低功耗(HPL)、高性能等優(yōu)點。
本實驗所使用開發(fā)板是ALINX的7010開發(fā)平臺,其核心控制器型號為XC7Z010-1CLG400C,芯片為BGA封裝。Zynq-7000系列的開發(fā)板在此芯片的外部搭載了大量的通信外設(shè),以及上百個引腳,同時極小的引腳間距大大縮小了開發(fā)板的體積,使得其更加靈巧。此開發(fā)板的2片DDR3芯片的內(nèi)存為512 MB,還具有1 066 Mbit/s的最高運行速度,極大地滿足了客戶的需要,并且可以進行多種功能的實驗。1片EMMC和1片QSPI Flash,這些與系統(tǒng)的CPU、內(nèi)存、Flash、SDRAM以及AD7606組成了本實驗的高速存儲最小系統(tǒng)[10]。
使用2片AD7606進行信號的同步采集與顯示。AD7606作為1款集成16位、同步采樣、模數(shù)數(shù)據(jù)采集的系統(tǒng)(DAS),最大可以同時進行8通道的數(shù)據(jù)采集。AD7606包括了輸入鉗位保護、輸入信號縮放放大器、二階抗鋸齒濾波器、跟蹤和保持放大器、片上參考、參考緩沖器、高速ADC、數(shù)字信號濾波器以及可以高速數(shù)據(jù)傳輸?shù)拇谳敵?。多?yīng)用于電力線路監(jiān)測和保護系統(tǒng)、多相電動機控制、儀表和控制系統(tǒng)、多軸定位系統(tǒng)以及數(shù)據(jù)采集系統(tǒng)。
AD7606采集芯片在進行數(shù)據(jù)采集時會將所有的8通道全部開啟,BUSY信號在該芯片的8個通道完成數(shù)據(jù)轉(zhuǎn)換之前會一直以高電平輸出。只有在將8個通道的所有數(shù)據(jù)完成轉(zhuǎn)換并且存入到輸出寄存器之后,BUSY信號才會拉低并等待下一輪的信號采集。當CS和RD在并行模式下均為邏輯低電平時,輸出總線啟用,輸出總線啟動后進行8通道的數(shù)據(jù)讀取,在數(shù)據(jù)讀取完成后將所有讀取到的數(shù)據(jù)進行存儲。
為了精簡設(shè)備以及使2片AD7606之間有良好的匹配性能,將2片AD7606采用對稱分布,這種布局可以在高通道數(shù)的采樣系統(tǒng)中保持高精度。在此布局的基礎(chǔ)上,將2個采集芯片的A/D轉(zhuǎn)換信號CONVSTA與CONVSTB分別相連,這樣方便進行同步控制并實現(xiàn)同步采樣。
設(shè)計中使用8個輸入通道中的1個通道進行采樣,DB0~DB15為16位數(shù)據(jù)總線。在進行數(shù)據(jù)采集時,為了實現(xiàn)2片AD7606芯片真正的同步采樣,將2片AD芯片的采樣使能信號與讀數(shù)據(jù)觸發(fā)信號由Zynq統(tǒng)一進行調(diào)配控制[11]。
根據(jù)軟件操作流程,首先新建工程,根據(jù)實驗要求使用Verilog語言設(shè)計操作Zynq的程序以及根據(jù)實驗所需加入IP核。在系統(tǒng)上電后利用開發(fā)板外部的RESET按鈕進行系統(tǒng)的復(fù)位,按下該按鈕后會產(chǎn)生1個脈沖復(fù)位信號,該信號被發(fā)送至AD采集芯片的復(fù)位點進行AD7606的初始化操作,進行完初始化操作之后進行BUSY信號的判斷,只有當BUSY信號為低電平時,A/D完成轉(zhuǎn)換,否則繼續(xù)等待BUSY信號再進行下一次判斷,在A/D轉(zhuǎn)換完成之后進行數(shù)據(jù)的采集與存儲,同時通過Zynq板卡的HDMI接口連接到上位機將采集到的信號進行顯示。數(shù)據(jù)采集流程如圖2所示。
圖2 數(shù)據(jù)采集流程
本設(shè)計中,在進行數(shù)據(jù)傳輸時首先進行時鐘的設(shè)定,在Zynq的PS端設(shè)置50 MHz的輸出時鐘,然后為了減少邏輯單元的使用,使用輕量級地址映射單元傳輸接口進行DMA工作模式的配置,通過PS端將數(shù)據(jù)寫入DDR3存儲器。為了精準地控制AXI DMA與DDR的數(shù)據(jù)交互問題,設(shè)計加入HP高速接口,然后再將之前寫入DMA模塊的數(shù)據(jù)進行讀出操作[12],將讀出的數(shù)據(jù)寫入配置好的FIFO寄存器,添加1個中斷信號,最后通過控制DMA并通過AXI總線將寫入FIFO的數(shù)據(jù)流再次發(fā)送回DDR之中,再添加1個中斷信號,完成上述操作后PL端通過AXI總線進行1次DMA數(shù)據(jù)的讀寫操作,完成數(shù)據(jù)的傳輸。芯片內(nèi)部數(shù)據(jù)傳輸如圖3所示。
圖3 芯片內(nèi)部數(shù)據(jù)傳輸
進行上位機顯示時,核心板內(nèi)部直接將板子的3.3 V差分IO口與板子的外設(shè)HDMI接口進行連接,PL板塊的FPGA完成TMDS與RGB的轉(zhuǎn)換。在進行實驗時,將HDMI轉(zhuǎn)接線一端與核心板相連接,另一端與上位機相連接進行波形顯示[13-14]。HDMI的工作流程如圖4所示。
圖4 HDMI工作流程
進行設(shè)計時,將HDMI的輸出顯示部分劃分為7大工作模塊。通過時鐘模塊進行硬件工作頻率的設(shè)置,信號轉(zhuǎn)換模塊完成VGA信號與DVI信號的轉(zhuǎn)換,畫布背景生成模塊以及疊加網(wǎng)格模塊用來設(shè)置波形顯示的背景以及網(wǎng)格間隙。在進行數(shù)據(jù)傳輸時通過設(shè)計1個接口模塊完成與采集芯片AD7606的連接,主要完成8路信號的采集功能。采樣模塊在進行定量數(shù)據(jù)采集時,將每路輸入的數(shù)據(jù)轉(zhuǎn)換為無負數(shù)的無符號數(shù),再進行高8位的數(shù)據(jù)讀取。波形顯示模塊使用1個雙口的隨機存儲IP核進行采集數(shù)據(jù)的讀寫,在進行波形顯示時將該模塊中存入的數(shù)據(jù)讀出[15]。
通過HDMI數(shù)據(jù)線將主控開發(fā)板與上位機連接,同時將2片AD7606分別連接在開發(fā)板的2個擴展口上,通過信號發(fā)生器將2路信號分別輸入采集芯片,所設(shè)計的16通道數(shù)據(jù)采集系統(tǒng)整體如圖5所示。
圖5 設(shè)備總體
將信號發(fā)生器的A路設(shè)置為1 V、1.0 kHz的正弦波,B路設(shè)置為5 V、1.5 kHz的正弦波,分別輸入2個采集芯片的第1通道。
串口打印數(shù)據(jù)如圖6所示。由于本次實驗只使用到第1個通道進行波形采樣,所以可以從圖6看到1通道的數(shù)據(jù)變化幅度是在-0.5~+0.5 V之間,符合所設(shè)置的正弦波幅度,其他通道的電壓幅值變化為0.000 2 V,誤差在0.01%,可以看出本文設(shè)計的采集系統(tǒng)精度達到預(yù)期水平。
圖6 串口數(shù)據(jù)打印
AD7606的采樣頻率為200 kHz,采集時將2個板子的16個通道全部開啟,但是只采集每個板子的1路信號。實驗結(jié)果如圖7所示,在HDMI上顯示的正弦波信號即為該系統(tǒng)所采集到的信號。
圖7 實驗結(jié)果
為了充分實驗驗證,滿足可重復(fù)性要求,進行了2路相同頻率與幅值的波形測試,測試結(jié)果如圖8所示。由圖8a可知,經(jīng)過顯示部分代碼調(diào)整,將2路波形分成上下2部分顯示,上半部分1路波形幅值為2 V,下半部分1路波形幅值為5 V。由圖8b可知,上位機顯示波形與波形發(fā)生器輸入波形對比完全一致。上述實驗證明該系統(tǒng)可以完成全部通道的數(shù)據(jù)采集與顯示功能。
圖8 測試波形
經(jīng)過測試表明,使用Zynq與2片AD7606所搭建的信號采集系統(tǒng),可以完成16通道的高精度信號采集與波形顯示功能。
針對多通道的數(shù)據(jù)采集與顯示功能的問題,利用Xilinx公司的Zynq-7000系列開發(fā)板以及2片AD7606設(shè)計了一種16通道高精度同步數(shù)據(jù)采集與顯示系統(tǒng)。本文系統(tǒng)設(shè)計中使用DMA進行數(shù)據(jù)的傳輸,通過鎖相環(huán)調(diào)控頻率,同時加入FIFO寄存器以避免出現(xiàn)AD控制器與AXI4總線時鐘頻率不一致的問題,后通過ARM將存儲在DDR3中的數(shù)據(jù)通過HDMI接口在上位機顯示出來。經(jīng)多次實驗證明,本文系統(tǒng)可以完成所需功能,在后期進行更多通道采集時可以作為基礎(chǔ)模塊,節(jié)省了開發(fā)時間。