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