許永輝, 楊俊超, 孫永勝2, 葛超凡
(1.哈爾濱工業(yè)大學(xué) 自動化測試與控制研究所,黑龍江 哈爾濱 150001;2.廣東省江門市新會機(jī)電職業(yè)技術(shù)學(xué)校,廣東 江門 529000)
為滿足某數(shù)據(jù)采集系統(tǒng)的需求,研制一款基于Zynq7000的數(shù)據(jù)采集板卡。傳統(tǒng)的數(shù)據(jù)采集板卡由CPU+控制邏輯+通信接口控制器組成,此類設(shè)計(jì)占用空間較大,通信速率較低,可靠性較差;Zynq7000本身具有CPU+可編程邏輯的架構(gòu)和用于內(nèi)部通信的高速AXI總線。因而,以Zynq7000作為控制器的數(shù)據(jù)采集板卡具有集成度高、體積小、可靠性高等諸多優(yōu)點(diǎn)[1-2],且有重要的研究意義和應(yīng)用價(jià)值。
Zynq7000 處理器是Xilinx公司研發(fā)的新一代可編程邏輯與Cortex-A9 ARM處理器相結(jié)合的處理平臺。其可編程邏輯部分被稱為PL(Programmable Logic),該部分可進(jìn)行系統(tǒng)可編程邏輯的開發(fā);ARM部分被稱為PS(Processing System),可進(jìn)行C/C++程序語言開發(fā)。PL部分包含充足的可編程邏輯單元和DSP單元;PS部分集成了雙核ARM架構(gòu)的Cortex-A9內(nèi)核,該內(nèi)核具有雙精度浮點(diǎn)運(yùn)算引擎,此外,PS部分集成了DDR3控制器、千兆以太網(wǎng)控制器、PCIe總線控制器以及其他常用外設(shè)[3-4]。數(shù)據(jù)采集板卡的總體結(jié)構(gòu)示意圖如圖1所示,Zynq7000作為主控制器,通過控制AD7606芯片的A/D轉(zhuǎn)換過程實(shí)現(xiàn)模擬數(shù)據(jù)采集;利用DDR3將數(shù)據(jù)緩存;通過千兆以太網(wǎng)接口接收上位機(jī)的指令和緩存數(shù)據(jù)上傳。
16路模擬信號經(jīng)過前端隔離調(diào)理電路、AD7606模數(shù)轉(zhuǎn)換電路,在Zynq7000的PL部分處理成為數(shù)字信號;通過內(nèi)部AXI總線傳輸?shù)絇S部分;PS部分利用DDR3實(shí)現(xiàn)數(shù)據(jù)緩存,PS通過千兆網(wǎng)口接收PC上位機(jī)命令、上傳采集數(shù)據(jù)[5]。
本設(shè)計(jì)主要功能及性能指標(biāo)如下。
圖1 總體結(jié)構(gòu)示意圖
① 16通道;
② 總采樣率:1600 kS/s;
③ 單通道采樣率:100 kS/s;
④ 分辨率:16-bit;
⑤ 輸入范圍:±36 V;
⑥ 傳輸速率:>100 Mbits/s;
⑦ 緩存容量:1 GB;
⑧ 連續(xù)采樣時間上限:300 s;
⑨ 緩存數(shù)據(jù)上傳時間:<60 s。
前端調(diào)理電路采用ADI公司的AD215芯片滿足速度和隔離要求。AD215是一種應(yīng)用廣泛的放大器,以15 V電源供電,具有精度高、功耗低、共模性能好、成本低的特點(diǎn)。其內(nèi)部集成了變壓器耦合、整流、三階濾波等功能,能起到較好的隔離、穩(wěn)流和濾波作用。在滿足-3 dB帶寬的采樣要求時, AD215可支持100 kS/s采樣率。前端調(diào)理電路圖如圖2所示。
圖2 前端調(diào)理電路圖
in+和in-為輸入模擬信號,調(diào)整分壓(平衡)電阻R1~R3的值可以獲得不同的輸入范圍,Sout是隔離放大后的輸出信號[6]。
模數(shù)轉(zhuǎn)換芯片均選擇ADI公司的AD7606芯片。AD7606的主要特性如下:① 16位精度逐次比較模數(shù)轉(zhuǎn)換器;② 5 V模擬單電源供電;③ 可選8/6/4通道同步采樣輸入;④ 最高能以200 kS/s的速率在全通道采樣;⑤ 雙極性模擬輸入,范圍±10 V和±5 V可選;⑥ 支持串行和并行輸出;⑦ 低功耗[7]。AD7606模數(shù)轉(zhuǎn)換電路如圖3所示。
圖3 AD7606模數(shù)轉(zhuǎn)換電路圖
A/D電路采用+5 VSA電源供電;VCC3為數(shù)字電源; PAR/SER/BYTE_SEL引腳接高電平,設(shè)定為串行輸出模式;Vin0~7為8路模擬輸入信號,也是8通道前端調(diào)理電路輸出。片選信號CS、轉(zhuǎn)換開始信號CONVST_A和CNOVST_B、數(shù)據(jù)讀取信號RD/SCLK、復(fù)位信號RESET接在PL的輸出引腳,用來控制轉(zhuǎn)換過程;首數(shù)據(jù)可讀信號FRSTDATA、轉(zhuǎn)換忙碌信號BUSY接在PL的輸入引腳,用來判斷轉(zhuǎn)換進(jìn)度;數(shù)據(jù)輸出端 DOUTA和DOUTB連接主控芯片的PL部分輸入端,用來接收輸出數(shù)據(jù)。
AD7606轉(zhuǎn)換采集過程由AD7606接口和功能邏輯完成,轉(zhuǎn)換過程的時序圖如圖4所示。
圖4 AD7606轉(zhuǎn)換時序圖
AD7606開始轉(zhuǎn)換時CONVST應(yīng)處于上升沿,即從低電平上升到高電平。BUSY信號跳轉(zhuǎn)為高電平表示模數(shù)轉(zhuǎn)換正在進(jìn)行中,并在轉(zhuǎn)換結(jié)束時返回低電平。當(dāng)片選信號CS和數(shù)據(jù)讀取輸入控制信號RD有效時,使能輸出,順序讀取通道V1~V4和V5~V8的數(shù)據(jù)[6]。
具體實(shí)現(xiàn)邏輯的轉(zhuǎn)換狀態(tài)機(jī)如圖5所示。
圖5 AD7606轉(zhuǎn)換狀態(tài)機(jī)
程序空閑態(tài)為IDLE STATE,所有狀態(tài)在RST_n=0條件下進(jìn)入IDLE STATE;輸出端口CONVST上升沿開啟轉(zhuǎn)換過程,進(jìn)入CONV STATE;BUSY信號上升沿表示模數(shù)轉(zhuǎn)換正在進(jìn)行中,程序進(jìn)入BUSY_HIGH STATE;轉(zhuǎn)換結(jié)束時BUSY信號返回低電平,程序在BUSY信號下降沿進(jìn)入BUSY_LOW STATE;此時將片選信號CS拉低生效,進(jìn)入CS_LOW STATE,等待第一個數(shù)據(jù)輸出;FRSTDATA信號上升沿表示第一個數(shù)據(jù)將要在輸出端口出現(xiàn);在READ STATE狀態(tài)分別在DOUTA和DOUTB串行讀出通道V1~V4和V5~V8的數(shù)據(jù);DOUTA和DOUTB均接收64位數(shù)據(jù)后程序進(jìn)入等待結(jié)束態(tài)WATE_END STATE,并將各通道數(shù)據(jù)輸出;在WATE_END STATE中等待計(jì)數(shù)器歸零,返回空閑態(tài)[6]。
AD7606采集數(shù)據(jù)后,由PL邏輯控制數(shù)據(jù)流向, AD7606控制邏輯的實(shí)現(xiàn)框圖如圖6所示。
圖6 AD7606控制邏輯框圖
數(shù)據(jù)完成轉(zhuǎn)換后被放入兩個雙口RAM中,PS從RAM1讀取最新值;PL控制邏輯從RAM2讀取數(shù)據(jù)緩存至FIFO,防止PS沒有及時讀取數(shù)據(jù),造成數(shù)據(jù)丟失;FIFO的緩存時間間隔可以設(shè)定;FIFO緩存起止可控,數(shù)據(jù)個數(shù)可讀,數(shù)據(jù)存滿后暫停緩存。
PL 部分解算后的數(shù)據(jù)經(jīng)由AXI總線傳輸至PS部分。AXI協(xié)議是基于burst的傳輸,支持高性能、高頻率系統(tǒng)設(shè)計(jì),在Zynq7000中AXI總線分為3種。
① AXI4:主要面向高性能地址映射通信的需求,是面向地址映射的接口,允許最大256輪的數(shù)據(jù)突發(fā)傳輸。
② AXI4-Lite:是一個簡單的吞吐量地址映射性通信總線。
③ AXI4-Stream:面向高速流數(shù)據(jù)傳輸,去掉了地址項(xiàng),允許無限制的數(shù)據(jù)突發(fā)傳輸規(guī)模。
AXI總線實(shí)現(xiàn)數(shù)據(jù)由PL傳輸至PS機(jī)制的框圖如圖7所示。
圖7 基于AXI數(shù)據(jù)傳輸機(jī)制框圖
如圖7所示,“最新數(shù)據(jù)”通過AXI-Lite總線傳輸,“用于DDR3緩存數(shù)據(jù)”通過AXI4-Stream總線傳輸。在PL部分調(diào)用對應(yīng)的AXI控制器IP核,在PS部分添加相應(yīng)的接口控制軟件,實(shí)現(xiàn)AXI的調(diào)用。同時,PS還通過AXI-Lite總線實(shí)現(xiàn)對PL邏輯的控制,空閑時間PS通過AXI4-Stream總線將數(shù)據(jù)搬移至大容量的DDR3 DRAM中緩存。
PS 部分首先初始化外設(shè),而后作為網(wǎng)絡(luò)連接的服務(wù)器端,創(chuàng)建網(wǎng)絡(luò)套接字,開啟網(wǎng)絡(luò)監(jiān)聽;在確認(rèn)網(wǎng)絡(luò)連接成功并收到上位機(jī)數(shù)據(jù)后,根據(jù)命令號選擇執(zhí)行功能函數(shù)。功能函數(shù)基本內(nèi)容是:PS將需要執(zhí)行的命令通過AXI總線發(fā)送到PL部分,PL部分執(zhí)行完成后向PS返回?cái)?shù)據(jù),PS通過網(wǎng)口將解析后的數(shù)據(jù)發(fā)送到上位機(jī)顯示。各個任務(wù)的功能函數(shù)如表1所示。
PS軟件程序流程圖如圖8所示。
表1 PS功能函數(shù)表
圖8 PS軟件程序流程圖
上位機(jī)主要功能如下。
① 網(wǎng)絡(luò)連接可選服務(wù)器IP功能;
② 讀取并顯示最新數(shù)據(jù)功能;
③ 設(shè)置FIFO參數(shù)功能;
④ 清空DDR3緩存功能;
⑤ 讀取DDR3緩存?zhèn)€數(shù)功能;
⑥ 讀取并顯示緩存數(shù)據(jù)功能。
根據(jù)功能要求,設(shè)計(jì)上位機(jī)界面如圖9所示。此界面包括網(wǎng)絡(luò)連接、最新數(shù)據(jù)讀取、緩存控制、緩存讀取4個部分,能夠較為清晰地實(shí)現(xiàn)上述功能。
利用Agilent53131A信號發(fā)生器和SUING SS3325直流穩(wěn)壓源在各個通道輸入正弦波或-40~+40 V直流信號,回讀板卡數(shù)據(jù)并與MSO6012A示波器測試結(jié)果比對。由于系統(tǒng)采集測試要求16路采樣通道、采樣速率每通道100 kS/s以及AD7606精度為16位,可以推出滿采樣率時,全通道采樣速率為
圖9 上位機(jī)軟面板圖
16×16×100=25600 Kbits/s=25.6 Mbits/s
按照連續(xù)采樣時間上限為300 s的設(shè)計(jì)指標(biāo),緩存容量應(yīng)大于:
25.6×300=7680 Mbits=0.94 GB
緩存容量的設(shè)計(jì)指標(biāo)為1 GB,大于需求。因此緩存容量設(shè)計(jì)合理。
設(shè)計(jì)指標(biāo)要求緩存上傳時間小于60 s。考慮到網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)陌踩院涂勺x性,有效數(shù)據(jù)傳輸會加上一定的協(xié)議,以幀的形式完成傳輸。本設(shè)計(jì)有效數(shù)據(jù)約為整體數(shù)據(jù)的4/5(不考慮TCP/IP協(xié)議傳輸本身的報(bào)文頭等)。所以,當(dāng)緩存存滿時開始上傳,網(wǎng)絡(luò)傳輸速率應(yīng)不小于:
8196×1.25÷60=170.75 Mbit/s
結(jié)果顯示,數(shù)據(jù)上傳的網(wǎng)速需求已經(jīng)超過了百兆以太網(wǎng)的理論帶寬,采用百兆以太網(wǎng)無法滿足緩存上傳的時間要求。千兆以太網(wǎng)的網(wǎng)速可以滿足性能要求,且還有較大的冗余帶寬分配給上位機(jī)發(fā)送控制指令。
對采樣板卡的性能指標(biāo)進(jìn)行測試,測試結(jié)果比對如表2所示。
表2 測試結(jié)果與要求指標(biāo)比對表
測試結(jié)果顯示,該采集板卡的性能符合預(yù)期的設(shè)計(jì)指標(biāo)。
充分利用Zynq7000的PL和PS資源,研制了一款基于Zynq7000的模擬數(shù)據(jù)采集板卡。在PL部分,開發(fā)AD7606解析邏輯和緩存邏輯,完成對各路模擬數(shù)據(jù)的采集和緩存;在PS部分,開發(fā)千兆網(wǎng)口和DDR3接口的控制軟件,實(shí)現(xiàn)接收上位機(jī)指令和數(shù)據(jù)上傳。測試結(jié)果表明,板卡運(yùn)行穩(wěn)定可靠,滿足各項(xiàng)功能指標(biāo)和性能指標(biāo)要求,為多通道網(wǎng)絡(luò)數(shù)據(jù)采集提供了一種切實(shí)可行的解決方案,具有重要的研究意義和應(yīng)用價(jià)值。