• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于ZYNQ 的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

      2021-01-21 09:44:18張雪皎陳劍云
      關(guān)鍵詞:描述符端口時(shí)鐘

      張雪皎,陳劍云

      (華東交通大學(xué)電氣與自動(dòng)化工程學(xué)院,江西 南昌330013)

      隨著電網(wǎng)中非線性負(fù)荷用戶的不斷增加,電能質(zhì)量問題日益嚴(yán)重。 高精度數(shù)據(jù)采集系統(tǒng)能夠?yàn)殡娔苜|(zhì)量分析提供準(zhǔn)確的數(shù)據(jù)支持,是解決電能質(zhì)量問題的關(guān)鍵依據(jù)。 通過對(duì)比現(xiàn)有高速采集系統(tǒng)的設(shè)計(jì)方案,主控電路多以ARM 微控制器搭配AD 轉(zhuǎn)換芯片、ARM+DSP 搭配轉(zhuǎn)換芯片以及FPGA+DSP 搭配AD 轉(zhuǎn)換芯片的架構(gòu)方式[1-5]。 ARM 有著良好的決策控制特性,在工業(yè)控制領(lǐng)域被廣泛應(yīng)用,但其數(shù)據(jù)處理速度慢,不能滿足系統(tǒng)的實(shí)時(shí)性。 由于DSP 的串行指令流特性,復(fù)雜數(shù)據(jù)處理只能在低速系統(tǒng)中進(jìn)行。 FPGA 的全可編程和并行數(shù)據(jù)處理特性使其在數(shù)字信號(hào)處理領(lǐng)域越來(lái)越受到青睞,但是對(duì)系統(tǒng)的決策能力較弱[6-10]。 同時(shí),ARM 和DSP,F(xiàn)PGA 與DSP 之間通過低速工業(yè)通信接口(SPI、Mcbsp 等)或者采用處理器外部總線接口連接多芯片的結(jié)構(gòu),復(fù)雜化了板級(jí)電路設(shè)計(jì),芯片間頻繁通信難以保證系統(tǒng)的穩(wěn)定性[11-12]。

      對(duì)此,設(shè)計(jì)一種基于ZYNQ 的數(shù)據(jù)采集系統(tǒng),ZYNQ SOC 整合了ARM 雙核cortext-A9 處理器和Xilinx7系列FPGA 架構(gòu)。 片內(nèi)集成高度定制的AXI 互聯(lián)和接口形成兩個(gè)部分之間橋梁,加速了各模塊間的通信且加強(qiáng)了系統(tǒng)的穩(wěn)定性。利用FPGA 的硬件可編程特性設(shè)計(jì)出與高速AD 連接的接口控制器,調(diào)用AXI_DMA官方硬核IP 可直接將采集數(shù)據(jù)搬運(yùn)至ARM 的DDR 中進(jìn)行存儲(chǔ)。 ARM 驅(qū)動(dòng)串口或者HDIM 口完成數(shù)據(jù)顯示,執(zhí)行系統(tǒng)的整體決策。 經(jīng)過對(duì)某變電所電能質(zhì)量分析,發(fā)現(xiàn)穩(wěn)態(tài)下電網(wǎng)高次諧波為60 次左右,系統(tǒng)選用的AD7606 采集卡采樣頻率為200 kHz,8 通道同步采集,分辨率為16 位,采集精度和速度都能滿足數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)要求,實(shí)現(xiàn)信號(hào)的模數(shù)轉(zhuǎn)換。 相對(duì)ZYNQ 自帶XADC 的12 位位寬、1 MHz 采樣率AD7606 有著更高的轉(zhuǎn)換精度。

      1 數(shù)據(jù)采集系統(tǒng)的整體設(shè)計(jì)

      圖1 為系統(tǒng)的整體設(shè)計(jì)簡(jiǎn)圖,AD7606 采集卡輸入端引出了16 針接口, 分別用于8 通道連接外部模擬信號(hào)線路的VP 和VN。 模擬信號(hào)進(jìn)入AD 采集芯片內(nèi),經(jīng)過模擬多路復(fù)器輸入轉(zhuǎn)換電路完成模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換。系統(tǒng)通過40 針擴(kuò)展口實(shí)現(xiàn)AD7606 與ZYNQ 的高速通信。接口位于ZYNQ 的PL 部分,采用Verilog 代碼編寫接口控制器程序?qū)崿F(xiàn)AD 采集控制功能后封裝為IP 核,主要設(shè)計(jì)包括AD 的復(fù)位、時(shí)鐘、采樣率、片選、FIFO 數(shù)據(jù)緩存器以及AXI 協(xié)議例化。 調(diào)用Xilinx 官方IP 核AXI-DMA 將PL 數(shù)據(jù)傳輸至PS 的DDR 存儲(chǔ)器中。ARM 驅(qū)動(dòng)URAT 或者HDMI 端口將數(shù)據(jù)傳輸給終端顯示出來(lái)。AD 控制器先將采集數(shù)據(jù)緩存到FIFO 中,從FIFO 中讀出數(shù)據(jù)后轉(zhuǎn)換為AXI-stream 流數(shù)據(jù)格式,如此可以加快數(shù)據(jù)處理速度,降低數(shù)據(jù)對(duì)時(shí)序的影響,系統(tǒng)采用AXI-stream register slice 模塊提升接口時(shí)序。 系統(tǒng)采用異步時(shí)序設(shè)計(jì),ADC 配置時(shí)鐘頻率為50 MHz,AXI 總線時(shí)鐘為100 MHz,數(shù)據(jù)顯示時(shí)鐘為150 MHz,按照輸入到輸出倍增的方式設(shè)置時(shí)鐘,可有效防止緩存模塊的數(shù)據(jù)溢出。

      圖1 數(shù)據(jù)采集系統(tǒng)整體設(shè)計(jì)圖Fig 1 The overall design of the data acquisition system

      2 數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計(jì)

      2.1 ZYNQ 簡(jiǎn)介

      ZYNG 是Xilinx 推出的新一代(all-programmable system-on-chip,SoC)全面可編程片上系統(tǒng)。 本質(zhì)特征是組合了一個(gè)雙核ARM Cortex-A9 處理器,簡(jiǎn)稱PS 和一個(gè)傳統(tǒng)的現(xiàn)場(chǎng)可編程門陣列(field programmable gate array,F(xiàn)PGA)邏輯部件簡(jiǎn)稱PL[13]。 芯片集成了AMBA AXI4 互聯(lián),內(nèi)部存儲(chǔ)器,外部存儲(chǔ)器和外設(shè)。 外設(shè)主要包括USB 總線、以太網(wǎng)、SD 接口、UART 接口、HDMI 口、GPIO 口等[14-15]。具有高達(dá)6.25 MHz 的邏輯單元以及766 MHz 的內(nèi)部時(shí)鐘,能夠?qū)崿F(xiàn)硬件加速和可擴(kuò)展性,充分滿足了系統(tǒng)設(shè)計(jì)的實(shí)時(shí)性和高精度。

      2.2 AD7606 控制器設(shè)計(jì)

      AD7606 采用+5 V 單電源供電,片內(nèi)集成輸入放大器、過電壓保護(hù)、二階模擬抗混疊濾波器、模擬多路復(fù)用器、16 位200 kbps SAR ADC 和一個(gè)數(shù)字濾波器,2.5 V 基準(zhǔn)電壓緩存以及高速串行口和并行口,可實(shí)現(xiàn)8 通道同步采樣,所有通道均以高達(dá)200 kbps 的吞吐率采樣[16]。 AD 控制器如圖2 所示,外部信號(hào)通過ad_data[15∶0]端口進(jìn)入AD 控制器。 未連接的端口采用Verilog 代碼編程控制,根據(jù)時(shí)序特性設(shè)計(jì)轉(zhuǎn)換過程,ad_convstad 端口信號(hào)上升沿啟動(dòng)時(shí)8 通道同步采樣,端口ad_busy 為高電平時(shí)表示信號(hào)正在轉(zhuǎn)換,當(dāng)端口ad_busy 信號(hào)為下降沿時(shí)表示ad_rdd 讀信號(hào)端口可以啟動(dòng),控制器可讀取數(shù)據(jù)總線中8 個(gè)通道的采集數(shù)據(jù)。ad_cs 端口控制數(shù)據(jù)讀片選。 ad_os 為AD 內(nèi)部數(shù)字濾波器采樣倍率選擇端口,共有8 種倍率選擇,控制器可以通過此端口選擇是否使用濾波器,以達(dá)到更高的測(cè)量精度。 系統(tǒng)通過DMA 將ADC 采集數(shù)據(jù)傳輸?shù)紻DR中,端口M00_AXIS[15:0]為數(shù)據(jù)輸出通道接口,傳輸數(shù)據(jù)為流式數(shù)據(jù),在設(shè)計(jì)時(shí)需要將ADC 數(shù)據(jù)轉(zhuǎn)換為AXIS 流數(shù)據(jù)。由于ADC 時(shí)鐘與AXIS 的時(shí)鐘頻率不同,需要在ADC 中添加FIFO 進(jìn)行跨時(shí)鐘域處理,起到緩沖的作用,AXIS 時(shí)鐘頻率是ADC 時(shí)鐘的兩倍,所以不會(huì)發(fā)生數(shù)據(jù)溢出的情況。 ARM 配置adc_clk 時(shí)鐘端口,adc_rst 和復(fù)位端完成采集的時(shí)序及復(fù)位控制。

      圖2 AD7606 控制器設(shè)端口連接圖Fig.2 AD7606 controller set port connection diagram

      2.3 采集系統(tǒng)通信

      系統(tǒng)分為內(nèi)部通信和外部通信。 內(nèi)部通過AX4 總線進(jìn)行通信,包含5 個(gè)獨(dú)立的傳輸通道讀地址、讀數(shù)據(jù)、寫地址、寫數(shù)據(jù)、寫回復(fù),這些通道都支持單向傳輸,包括AXI4、AXI-Stream、AXI-lite 3 種接口,系統(tǒng)數(shù)據(jù)從AD 到ZYNQ 單向傳輸;因此只開啟了寫通道。 DMA 采用的AXI-Stream 接口,主從設(shè)備間能夠直接進(jìn)行數(shù)據(jù)的讀取,數(shù)據(jù)傳輸不需要地址,提高了系統(tǒng)的實(shí)時(shí)性。 AXI 協(xié)議中主設(shè)備和從設(shè)備通過握手信號(hào)建立連接。 如圖3 所示, 使用UART 接口與外部通信系統(tǒng)采用Silicon Labs CP20102GM 芯片實(shí)現(xiàn)USB 接口轉(zhuǎn)UART 接口的功能, 并采用micro USB 線與終端進(jìn)行串行通信。 UART 接口的TX/RX 信號(hào)與ZYNQ PS 的BANK501 信號(hào)相連,BANK501 的VCCMIO 電平為1.8 V,而CP2102GM 的數(shù)據(jù)電平為3.3 V,系統(tǒng)中間接入TXSOQ02DCUR 電平轉(zhuǎn)換芯片實(shí)現(xiàn)電平匹配。

      圖3 串口通信連接圖Fig 3 Serial communication connection diagram

      2.4 DDR 高速存儲(chǔ)

      圖4 為DDR3 DRAM 硬件連接示意圖,DDR 是雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器,數(shù)據(jù)在工作時(shí)鐘的上升沿和下降沿都會(huì)進(jìn)行采樣, 有效提升了存儲(chǔ)速率。 系統(tǒng)配有兩顆4 Gbit 的DDR3 芯片, 型號(hào)為H5TQ4G63ARFR-PBC。 DDR 總線位寬為32 bit, 最高運(yùn)行速度可以達(dá)到533 MHz。 DDR3 存儲(chǔ)器直接與ZYNQ 處理器的BANK502 存儲(chǔ)接口相連。ZYNQ-Processing System 核配置存儲(chǔ)器時(shí),必須確保DDR 接口型號(hào)一致或者兼容。

      圖4 DDR3 DRAM 硬件連接圖Fig.4 DDR3 DRAM hardware connection diagram

      3 數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì)

      Xilinx IDE 套件中,在vivado 完成硬件工程設(shè)計(jì)的基礎(chǔ)上,SDK 會(huì)自動(dòng)配置一些重要的參數(shù),分為3 個(gè)模塊:硬件定義(hardware definition)包含定義的寄存器類型、地址映射以及當(dāng)前設(shè)計(jì)包含的IP塊信心;板級(jí)支持包(board support package)包含支持IP 塊的驅(qū)動(dòng)程序和變量參數(shù)頭文件; 應(yīng)用程序(application)用于測(cè)試不同的功能。 據(jù)此完成系統(tǒng)軟件部分設(shè)計(jì)。

      3.1 ADC-DMA 控制

      ADC-DMA 控制是系統(tǒng)軟件核心模塊,程序運(yùn)行前對(duì)ADC 和DMA 相關(guān)參數(shù)進(jìn)行初始化設(shè)置,如ADC 的括基地址、偏移地址、采集長(zhǎng)度、系數(shù)、字節(jié)數(shù)、位數(shù)和通道數(shù)。DMA 最大傳輸字節(jié)數(shù)、設(shè)備ID、中斷ID 和中斷觸發(fā)源。 ADC 數(shù)據(jù)寫入FIFO 中是按照1 至8 通道順序存儲(chǔ), 程序定義了二維數(shù)組,將每個(gè)通道的數(shù)據(jù)獨(dú)立出來(lái), 并調(diào)整了通道順序。為了在屏幕上顯示所有通道數(shù)據(jù),系統(tǒng)將每個(gè)通道的系數(shù)進(jìn)行了微調(diào),使各通道波形形成錯(cuò)位。 DMA的中斷觸發(fā)類型為完成觸發(fā),此中斷屬于ZYNQ 的共享中斷, 觸發(fā)機(jī)制為當(dāng)任務(wù)執(zhí)行完成后觸發(fā),硬件設(shè)計(jì)中DMA 只開起了寫通道接口, 中斷函數(shù)只打開Streams 到Memery Map 中斷。 SDK Terminal的接口、波特率和數(shù)據(jù)位配置后,應(yīng)用printf 函數(shù)驅(qū)動(dòng)串口通信完成終端數(shù)據(jù)顯示。 同時(shí)可以通過HDMI 接口與顯示器相連, 實(shí)現(xiàn)波形的實(shí)時(shí)顯示。ADC 控制流程圖如圖5。

      圖5 ADC 控制器設(shè)計(jì)流程圖Fig.5 ADC controller design flow chart

      3.2 DMA-SG 模式應(yīng)用設(shè)計(jì)

      DMA-SG 模式相對(duì)簡(jiǎn)單模式有著更高效的數(shù)據(jù)傳輸特性,允許一次單一DMA 傳輸訪問多個(gè)內(nèi)存空間,所有任務(wù)結(jié)束后才觸發(fā)中斷。硬件工程開啟SG 模式后引出M_AXI_SG 接口,用于讀寫鏈表。鏈表以13 個(gè)寄存器組成的描述符為基本單元。 描述符中包含下一個(gè)描述符指針地址、數(shù)據(jù)緩存地址、控制存儲(chǔ)信息等。 寫通道SG 模式驅(qū)動(dòng)設(shè)計(jì)流程如圖6 所示,需要在內(nèi)存中開辟緩存空間和鏈表制作。將第一個(gè)描述符寫入當(dāng)前地址寄存器。啟動(dòng)DMA 并建立中斷系統(tǒng),傳輸結(jié)束后會(huì)觸發(fā)中斷。將最后一個(gè)描述符寫入結(jié)尾結(jié)存器,觸發(fā)DMA 通過總線抓取鏈表描述符,BD 包傳輸完成后讀取下一個(gè)描述符。 將最后一個(gè)描述符指針只指向第一個(gè)描述符的地址,匹配回環(huán)模式。 數(shù)據(jù)處理完成后,清除鏈表狀態(tài)。

      3.3 顯示控制模塊

      該模塊提供了易于使用的API,控制顯示器通過VGA 或HDMI 連接到系統(tǒng)開發(fā)板上。根據(jù)顯示器分辨率大小設(shè)置畫布大小、背景和顏色。在畫布中取長(zhǎng)方形區(qū)間作顯示波形的幅值和傳播時(shí)間。區(qū)間內(nèi)設(shè)計(jì)32×32 像素點(diǎn)的小方格作為量化單位,水平和垂直方向每隔4 像素點(diǎn)顯示一次,網(wǎng)格顯示為灰色,背景顯示為黑色。 設(shè)計(jì)網(wǎng)格疊加函數(shù)和波形疊加函數(shù)對(duì)畫布緩存區(qū)的數(shù)據(jù)進(jìn)行實(shí)時(shí)讀取, 實(shí)現(xiàn)波形的不間斷顯示。Catch 中讀取的數(shù)據(jù)在圖像上顯示為離散點(diǎn),將數(shù)據(jù)與前一個(gè)數(shù)據(jù)進(jìn)行比較,得出差值并在同一列描點(diǎn),使波形顯示更為平滑。 可以通過修改波形起始位置參數(shù)改變波形區(qū)域的大小,但列起始位置加上波形高度必須小于顯示器分辨率,否則無(wú)法正常顯示。 系統(tǒng)屏幕以彩條作為顯示背景,設(shè)計(jì)了無(wú)縫幀緩沖器區(qū),可實(shí)現(xiàn)無(wú)痕動(dòng)畫。

      圖像驅(qū)動(dòng)流程如圖7 所示。首先要?jiǎng)?chuàng)建一個(gè)顯示對(duì)象,并對(duì)其初始化設(shè)置。調(diào)用DisplaySetMode 函數(shù)設(shè)置傳輸模式。 調(diào)用DisplayStart 函數(shù)將數(shù)據(jù)傳輸?shù)斤@示器上。 要實(shí)現(xiàn)無(wú)縫動(dòng)畫,需要先將一張圖像繪制到當(dāng)前未顯示的幀緩存區(qū),后調(diào)用DisplayChangFrame 函數(shù)顯示此幀,重復(fù)操作顯示圖像。 若更改分辨,需調(diào)用顯示模式函數(shù)設(shè)置模式,然后,從新開始傳輸數(shù)據(jù)。

      圖6 SG 模式驅(qū)動(dòng)流程圖Fig.6 SG mode driving flow chart

      圖7 圖像顯示流程圖Fig.7 Image display flow chart

      4 實(shí)驗(yàn)結(jié)果分析

      采用digilent 的Analog Discovery 2 任意函數(shù)發(fā)生器提供所需的信號(hào)進(jìn)行實(shí)驗(yàn)。 圖8(a)為信號(hào)發(fā)生器設(shè)置頁(yè)面,實(shí)驗(yàn)對(duì)正弦信號(hào)、20 kHz、2 V 信號(hào)進(jìn)行采集顯示,AD 采樣頻率為200 kHz,8 個(gè)采集通道全部開啟,由于硬件條件限制,只進(jìn)行了單通道實(shí)驗(yàn)。HDMI 顯示結(jié)果以及試驗(yàn)平臺(tái)如圖8(b)所示,圖形界面顯示的正弦波即為系統(tǒng)采集信號(hào),縱向分析,相鄰虛線間距表示一個(gè)度量單位,波峰到波谷共經(jīng)過4 個(gè)單位表示從+2 V 到-2 V 信號(hào),分析得出實(shí)驗(yàn)結(jié)果和原始信號(hào)波形相同。 為了進(jìn)一步驗(yàn)證采集精度,實(shí)驗(yàn)進(jìn)行了8 通道4 個(gè)模擬電壓值的測(cè)試,測(cè)試結(jié)果通過串口打印出來(lái),如表1 所示,第一列基準(zhǔn)電壓為信號(hào)發(fā)生器發(fā)出值,后面8 列為系統(tǒng)測(cè)量結(jié)果。 根據(jù)式(1),計(jì)算出采集誤差為0.02%。

      圖8 實(shí)驗(yàn)結(jié)果圖Fig.8 Experimental results

      表1 數(shù)據(jù)采集結(jié)果Tab.1 Data collection results mV

      5 結(jié)論

      針對(duì)電能質(zhì)量檢測(cè)領(lǐng)域的高速數(shù)據(jù)采集要求,利用Xilinx 提供的Vivado 開發(fā)套件在ZYNQ SoC 上完成高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)。 該設(shè)計(jì)在硬件方面,借助ZYNQ 的FPGA 部分實(shí)現(xiàn)系統(tǒng)的采集控制,ARM 部分完成數(shù)據(jù)傳輸、存儲(chǔ)和結(jié)果顯示,其中基于自定義ad7606_sample IP 實(shí)現(xiàn)了AD7606 的采集控制,利用AXIHP 高速接口、AXI-DMA 硬核IP、DMA-SG 模式加快了系統(tǒng)的數(shù)據(jù)傳輸和處理速度。在軟件方面,完成了SG模式下的BD 包建立、波形顯示設(shè)計(jì)及DMA 數(shù)據(jù)傳輸控制。 通過測(cè)試的實(shí)驗(yàn)結(jié)果表明,ARM 端驅(qū)動(dòng)HDMI接口實(shí)現(xiàn)了采集信號(hào)的實(shí)時(shí)在線顯示。 通過對(duì)串口終端打印出來(lái)的數(shù)據(jù)進(jìn)行分析,確定系統(tǒng)的采集誤差可達(dá)到0.02%。 系統(tǒng)具備體積小、功耗低、精度高、實(shí)時(shí)性強(qiáng)、穩(wěn)定性強(qiáng)等特點(diǎn)。

      猜你喜歡
      描述符端口時(shí)鐘
      基于結(jié)構(gòu)信息的異源遙感圖像局部特征描述符研究
      別樣的“時(shí)鐘”
      一種端口故障的解決方案
      古代的時(shí)鐘
      Linux單線程并發(fā)服務(wù)器探索
      端口阻塞與優(yōu)先級(jí)
      利用CNN的無(wú)人機(jī)遙感影像特征描述符學(xué)習(xí)
      有趣的時(shí)鐘
      時(shí)鐘會(huì)開“花”
      初識(shí)電腦端口
      電腦迷(2015年6期)2015-05-30 08:52:42
      连州市| 新宾| 依安县| 沙湾县| 玉环县| 海南省| 乐亭县| 佳木斯市| 宜城市| 越西县| 连山| 东宁县| 广丰县| 普安县| 阿克陶县| 繁昌县| 嵊州市| 横峰县| 栖霞市| 辉县市| 南雄市| 天门市| 余江县| 铜鼓县| 建德市| 东乌珠穆沁旗| 大洼县| 杂多县| 神木县| 股票| 丹棱县| 临颍县| 扎鲁特旗| 依安县| 鹿邑县| 陈巴尔虎旗| 英吉沙县| 绥滨县| 冕宁县| 伊宁市| 新田县|