潘紹明,王 浩,尚會增,尹夢碟
(廣西科技大學(xué) 自動化學(xué)院,廣西 柳州 545006)
作為一種將模擬量轉(zhuǎn)化為數(shù)字量的手段,數(shù)據(jù)采集在自動控制、自動檢測、電子測量等自動化、智能化系統(tǒng)中被廣泛應(yīng)用,它是基于計算機實現(xiàn)不同工作過程的基礎(chǔ)[1]。在目前的發(fā)展階段,各個產(chǎn)業(yè)的發(fā)展都涉及到大量的數(shù)據(jù)處理,新的發(fā)展要求不能僅僅依靠傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)來滿足,還要將先進(jìn)的數(shù)據(jù)采集設(shè)備和技術(shù)運用到實際工作中,這對于優(yōu)化數(shù)據(jù)采集結(jié)果、提高工作效率、促進(jìn)行業(yè)更好地發(fā)展等眾多方面都具有重要意義[2]。韓賓等人[3]設(shè)計了以FPGA 和STM32 架構(gòu)為數(shù)據(jù)處理和控制核心的數(shù)據(jù)采集系統(tǒng),實現(xiàn)了16 路高精度數(shù)據(jù)的實時處理和采集功能,采樣頻率可調(diào),滿足了精密產(chǎn)品所需的多通道、高精度和實時數(shù)據(jù)采集功能。但是使用FPGA 控制模塊的成本過高,不能滿足更多的使用場景。寇劍菊等人[4]設(shè)計了基于AT89S52 和AD7865 構(gòu)成的四通道并行數(shù)據(jù)采集系統(tǒng),但是AD7865 是14 位四路采集芯片,其精度和通道數(shù)量都有所限制,所以適用范圍較小。徐國明等人[5]利用AD7606 設(shè)計了一種數(shù)字多功能表,信號采集部分使用了高性能ADC,為了保證整個測量段的數(shù)據(jù)精度,電流線路使用了有源補償方式,確保系統(tǒng)能夠以最高30 MHz 的時鐘速率工作。司云樸等人[6]使用STM32 配合AD7609 芯片設(shè)計了組合稱重裝置,AD7609 的8 個通道可以同時采樣,且均使用差分輸入,每個通道的采樣速率為20 KSPS。整個系統(tǒng)運行速度快、精度高。常見的數(shù)據(jù)采集系統(tǒng)大多以DSP 或者FPGA 配合12 位的AD 芯片進(jìn)行數(shù)據(jù)采集,已經(jīng)可以滿足大多數(shù)行業(yè)的使用,對于一些要求速度高、精度高的行業(yè),常見的采集系統(tǒng)顯然不能滿足其要求[7]。本文設(shè)計了一種以STM32F407ZET6 和AD7609 為核心,包含8 個18 位采集通道的數(shù)據(jù)采集系統(tǒng),在配備電池模塊和存儲模塊的同時,將控制部分和采集部分采用模塊化設(shè)計,讓用戶輕松離線使用,不用固定電源,豐富使用場景。整個系統(tǒng)屬于實用性強、成本低、推廣前景好的多通道、高精度、高智能化數(shù)據(jù)采集裝置。
數(shù)據(jù)采集系統(tǒng)的整體設(shè)計方案如圖1 所示。為了方便用戶使用,將控制部分和采集部分采用模塊化設(shè)計,設(shè)計了一塊底板將兩個模塊安裝在上面。控制模塊主要是由STM32 及其外圍電路構(gòu)成,同時引出4 個串口和2 路CAN總線,方便與其他模塊搭配使用,提高了多場景的適用性。AD7609 配合其外圍電路構(gòu)成了采集模塊,同時在底板上設(shè)計了供電系統(tǒng)和SD 卡存儲模塊,方便離線操作的同時還能保存采集的數(shù)據(jù)。
圖1 整體設(shè)計方案
信號輸入接口完成采集裝置與外部模擬信號的電氣連接,通過AD7609 完成模擬信號到數(shù)字信號的轉(zhuǎn)換,基準(zhǔn)電壓電路提供AD 轉(zhuǎn)換的基準(zhǔn)電壓,STM32 完成AD 轉(zhuǎn)換的控制、轉(zhuǎn)換結(jié)果的處理以及與其他系統(tǒng)的通信控制。數(shù)據(jù)儲存模塊使用的是SD 卡,用來儲存采集的數(shù)據(jù)。
本系統(tǒng)的AD 采集芯片使用的是ADI 公司的AD7609 芯片,該芯片是一款高速高精度的模數(shù)轉(zhuǎn)換器,擁有8 個18 位的采集通道,所有通道最高可有200 KSPS 的吞吐量[8-10]。芯片采用5 V 單電源為系統(tǒng)供電。AD7609 可以選擇±5V 或者±10 V 的輸入電壓,兩種模式都可以處理真雙極性輸入電壓。為了允許AD7609 與輸入信號直接相連,不使用前端驅(qū)動放大器,芯片內(nèi)部的模擬輸入阻抗固定為1 MΩ,與采樣的頻率沒有任何關(guān)系。芯片內(nèi)部配備了模擬輸入鉗位保護(hù)電路,允許輸入最大電壓達(dá)到±16.5 V。因為芯片內(nèi)部配備了采樣保持放大器,可以使用ADC 18 位分辨率來采集滿量程的正弦波。在基準(zhǔn)電壓方面,AD7609 提供兩種選擇模式,既可以使用內(nèi)部提供的2.5 V 基準(zhǔn)電壓,又可以使用外部基準(zhǔn)電壓源。需要注意的是,在使用外部基準(zhǔn)電壓源的時候需要采樣一個100 nF 的電容對REFIN/REFOUT 引腳去耦,在使用內(nèi)部基準(zhǔn)電壓源的時候則需要用10 μF 的陶瓷電容。在數(shù)字接口方面AD7609提供了并行接口和串行接口兩種選項,可以通過PAR/SER SEL 引腳來選擇需要的接口模式。為了可以在較低的采樣速率下或者在高信噪比的情況下使用,AD7609 內(nèi)部配備了一個靈活的數(shù)字一階sinc 濾波器。
AD7609 的功能框圖如圖2 所示,下面對相關(guān)引腳進(jìn)行簡單介紹。
圖2 AD7609 功能框圖
REF SELECT 引腳用于系統(tǒng)選擇使用內(nèi)部基準(zhǔn)電壓還是外部基準(zhǔn)電壓輸入。如果系統(tǒng)選擇使用內(nèi)部基準(zhǔn)電壓,可將此引腳設(shè)置為邏輯高電平,內(nèi)部基準(zhǔn)電壓由AD7609 自身產(chǎn)生并使用。如果系統(tǒng)需要使用外部基準(zhǔn)電壓,可將此引腳設(shè)置為邏輯低電平,內(nèi)部基準(zhǔn)電壓將會被禁用,同時還需要將外部基準(zhǔn)電壓輸入到REFIN/REFOUT 引腳。
RANGE 引腳是用來選擇整個系統(tǒng)模擬通道輸入量程范圍的。整個系統(tǒng)的量程范圍有±5 V 和±10 V 兩種可選。如果需要系統(tǒng)模擬通道輸入范圍都為±5 V,那么就需要將此引腳設(shè)置為邏輯低電平。如果需要系統(tǒng)模擬通道輸入范圍都為±10 V,那么就需要將此引腳設(shè)置為邏輯高電平。
PAR/SER SEL 引腳用于選擇系統(tǒng)的數(shù)據(jù)接口是并行輸入還是串行輸入。如果需要系統(tǒng)所有通道并行輸入,那么就需要將此引腳設(shè)置為邏輯低電平。如果需要系統(tǒng)所有通道是串行輸入,那么就需要將此引腳設(shè)置為邏輯高電平。
CONVST A 引腳和CONVST B 引腳可以控制模擬輸入通道轉(zhuǎn)換,CONVST A 對V1、V2、V3、V4 的四個通道進(jìn)行控制啟動采樣,CONVST B 對V5、V6、V7、V8 的四個通道進(jìn)行控制啟動采樣。如果將CONVST A 與CONVST B兩個引腳相連,并由二者給出一個轉(zhuǎn)換開始的信號,就可以對八個通道進(jìn)行同時采樣。
根據(jù)系統(tǒng)的設(shè)計需要,系統(tǒng)采用的是并行接口,因此PAR/SER SEL 引腳需要與邏輯低電平相連接。該系統(tǒng)設(shè)計的量程為±10 V,因此需要將RANGE 引腳與邏輯高電平連接起來。該系統(tǒng)為8 通道同時采集,可將CONVST A 引腳與CONVST B 引腳短路連接,并施加一個轉(zhuǎn)換啟動信號。該系統(tǒng)使用外部基準(zhǔn)電壓,因此設(shè)置REF SELECT 為邏輯低電平,禁止使用內(nèi)部參考電壓,并在REFIN/REFOUT 引腳上施加外部基準(zhǔn)電壓。圖3 為AD7609 采集電路的原理。
圖3 采集電路原理
外圍電路包括基準(zhǔn)電壓電路和SD 卡儲存電路。系統(tǒng)的基準(zhǔn)電壓通過REF5025 產(chǎn)生。REF5025 是一款噪聲低、產(chǎn)生的基準(zhǔn)電壓精度極高的芯片,輸入電壓范圍最大可達(dá)18 V,輸出2.5 V 電壓,工作溫度為-55 ~125 ℃,使用場景豐富[11-13]。電路中NR 和接地之間的電容用來濾除噪聲,電源引腳和接地之間為去耦電容,輸入和接地之間的電容對輸出進(jìn)行去耦。
儲存模塊采用大容量SD 卡,保證數(shù)據(jù)的寫入和讀取。為了保證傳輸速度,對SD 卡的控制方式采用6 線制,即通過使用STM32 對SD 卡的CLK、CMD 和DAT0 ~DAT3 六個引腳進(jìn)行控制來實現(xiàn)數(shù)據(jù)傳輸。圖4 和圖5 為基準(zhǔn)電壓電路和SD 卡儲存電路。
圖4 基準(zhǔn)電壓電路
圖5 SD 卡儲存電路
AD7609 采樣模塊的工作流程如圖6 所示。首先通過STM32 控制模塊將CONVST 引腳電平拉低,啟動轉(zhuǎn)換;然后讀取BUSY 引腳的信號,當(dāng)BUSY 引腳信號變?yōu)榈碗娖綍r,說明轉(zhuǎn)換完成,系統(tǒng)可以讀取采樣數(shù)據(jù),并觸發(fā)中斷來讀取數(shù)據(jù)。讀取數(shù)據(jù)時,首先使能CS 信號,然后變換RD信號來讀取數(shù)據(jù)。RD 引腳要讀取所有18 位轉(zhuǎn)換結(jié)果,一共需要2 個RD 脈沖。每個通道的轉(zhuǎn)換結(jié)果可以逐個升序輸出到并行輸出總線DB[15:0],向RD 引腳施加16 個脈沖序列。BUSY 變?yōu)榈碗娖胶?,第一次的RD 脈沖下降沿輸出通道V1的結(jié)果DB[17:2],下一次的RD 脈沖下降沿用通道V1 的結(jié)果DB[1:0]更新總線。整個轉(zhuǎn)換過程需要16 次RD 脈沖,能夠完整讀取AD7609 的8 通道18 位轉(zhuǎn)換及結(jié)果。輸出通道V8 的DB[1:0]是RD 脈沖的第16 個下降沿的轉(zhuǎn)換結(jié)果。每個信道的數(shù)據(jù)轉(zhuǎn)換結(jié)果可以在RD 信號為邏輯低電平時傳送到STM32 控制模塊。
圖6 AD 轉(zhuǎn)換流程
在實際工程中,通過前端傳感器出來的信號基本都是模擬信號,而后端STM32 主控芯片是處理數(shù)字信號的,因此需要用到ADC 進(jìn)行模數(shù)轉(zhuǎn)換。ADC 包括3 個基本功能:采樣、量化和編碼。采樣過程是離散模擬信號的時間,使其成為采樣信號;量化是將采樣信號的幅度離散化為數(shù)字信號;編碼是將數(shù)字信號轉(zhuǎn)換為數(shù)字系統(tǒng)可以接受的形式。同時,ADC 分辨率越高,所需轉(zhuǎn)換時間越長,轉(zhuǎn)換速度越低。因此,ADC 的分辨率和轉(zhuǎn)換速度總是相互制約的。
AD7609 的輸出編碼方式為二進(jìn)制補碼。所設(shè)計的碼轉(zhuǎn)換在連續(xù)LSB 整數(shù)值的中間(即1/2LSB、3/2LSB)進(jìn)行。AD7609 的LSB 大小為FSR/262144。AD7609 的FSR 在±10 V 范圍內(nèi)為40 V,在±5 V 范圍內(nèi)為20 V。AD7609 在不同量程下輸出電壓的計算公式如下:
式(1)和式(2)分別為±10 V 和±5 V 范圍下的計算公式。CODE 為轉(zhuǎn)換后的二進(jìn)制碼,V+和V-是電源供電電壓,REF 為基準(zhǔn)電壓。
本系統(tǒng)使用SD 卡對收集到的數(shù)據(jù)進(jìn)行存儲,這樣可以應(yīng)對需要大批量采集數(shù)據(jù)和使用離線采集的工作情況。此系統(tǒng)使用了FATFS 文件系統(tǒng)模塊,如圖7 所示為存儲系統(tǒng)的工作流程。首先,初始化SD 卡,即將SD 卡的格式轉(zhuǎn)換為FAT32 文件系統(tǒng)格式,從而創(chuàng)建文件,并以FAT32 格式存儲信息。開始初始化是在系統(tǒng)確認(rèn)SD 卡與系統(tǒng)正常連接后。整個過程包括:讀取原始FAT 表,發(fā)現(xiàn)空間簇并確定起始簇號,重新寫入SD 卡的FAT 表,讀取目錄條目信息,向文件信息結(jié)構(gòu)分配文件信息,重新寫入SD 卡目錄等。初始化后SD 卡即可讀取寫入,AD 采樣信號啟動后對SD 卡觸發(fā)寫入指令,該命令必須包含一個與SD 卡的物理地址相對應(yīng)的寫入地址;接收到數(shù)據(jù)后,SD 卡校驗地址,執(zhí)行CRC 驗證,并發(fā)送響應(yīng)指令。
圖7 數(shù)據(jù)儲存工作流程
為了驗證整個系統(tǒng)設(shè)計的穩(wěn)定性和可行性,使用Altium Designer 20 設(shè)計了系統(tǒng)的電路原理圖,并且設(shè)計了系統(tǒng)的PCB 文件,制作并焊接了電路板。實驗采用5 V 直流電源模塊來測試8 個通道的電壓采集情況。首先,使用萬用表測量5 V 電源模塊輸出電壓為5.08 V,對5 V 直流電源模塊引出8 個并聯(lián)的100 Ω 電阻;然后將每個電阻的兩端接入系統(tǒng)采樣通道,使用Keil uVision 5 配合串口調(diào)試助手來檢測系統(tǒng)各個通道的采樣電壓值。實驗結(jié)果見表1 所列,CH1 ~CH8為系統(tǒng)的8 個通道輸出的電壓值,隨機讀取兩次8 個通道的輸出值,小數(shù)點后保留10 位,之后計算系統(tǒng)采樣值與實際電壓值的誤差。經(jīng)過計算平均誤差為0.11%。
表1 采樣實驗結(jié)果
本文設(shè)計的數(shù)據(jù)采集系統(tǒng)充分考慮了性價比和易用性。將高精度AD 轉(zhuǎn)換芯片AD7609 與微控制器STM32F407 相結(jié)合。目前STM32 系列微控制器在市場的占有率非常高,大大降低了采集系統(tǒng)的成本;AD7609 芯片精度高、速度快、外圍電路簡單,容易與采用STM32搭建的平臺進(jìn)行通信[14-15]。同時,通過實驗檢測,系統(tǒng)具有較高的準(zhǔn)確性和穩(wěn)定性。本文設(shè)計的數(shù)據(jù)采集系統(tǒng)在精度和采集速度方面,可以滿足大多數(shù)工業(yè)控制領(lǐng)域?qū)?shù)據(jù)采集、離線檢測和儀器儀表數(shù)據(jù)采集的需要,具有非常好的推廣前景。