鄧肖丹,李學硯,段樂穎,李行素
(1.自然資源部航空地球物理與遙感地質(zhì)重點實驗室,北京 100083;2.中國自然資源航空物探遙感中心,北京 100083)
自然界中大部分信號均為模擬信號[1]。模數(shù)轉(zhuǎn)換(ADC)將連續(xù)變換的模擬信號轉(zhuǎn)換為離散的數(shù)字信號[2],提取出有用信號,廣泛應用在導航、監(jiān)控、觸控以及人工智能等系統(tǒng)中[3-5]。
基于ARM 內(nèi)核的微處理以及近些年發(fā)展迅速的FPGA(現(xiàn)場可編程邏輯門陣列)芯片幾乎都內(nèi)置有模數(shù)轉(zhuǎn)換部分,其中FPGA 沒有指令周期,易于時序控制,具有特有的并行處理能力、強大的處理速度以及豐富的外設(shè)接口[6-8],但都受限于芯片本身的電壓范圍以及轉(zhuǎn)換精度等因素,在許多應用中仍然需要使用單獨的模數(shù)轉(zhuǎn)換芯片[9-11];傳統(tǒng)的模數(shù)轉(zhuǎn)換芯片通過單片機進行直接控制,但受限于運算能力與硬件接口資源,會制約數(shù)據(jù)采集的速度與同步性[12];模數(shù)轉(zhuǎn)換芯片有積分型、逐次比較型、流水線型以及Δ-Σ型等類型,每種對應不同的應用需求,Δ-Σ型適應于分辨率在20 位以上的高精度測量領(lǐng)域[13-14]。針對以上問題,該文基于ZYNQ-7000 的FPGA 微控制器,利用近兩年TI 公司新上市的24 位Δ-Σ型模數(shù)轉(zhuǎn)換芯片ADS125H02 設(shè)計高精度的數(shù)模轉(zhuǎn)換。
系統(tǒng)以ZYNQ-7000 系列中XC7Z020-2CLG484I作為微控制器的核心開發(fā)板,集成了雙核ARM Cortex-A9 處理系統(tǒng)(Processing System,PS)與可編程邏輯(Programmable Logic,PL)系統(tǒng)[15],靈活性更高、可配置性更高、功耗更低、運行效率更高[16-17]。相較于自主研制微控制器核心板,使用當前技術(shù)成熟的開發(fā)板免去了對其外圍基礎(chǔ)電路的設(shè)計,減少了設(shè)計周期。硬件部分還包括模數(shù)轉(zhuǎn)換電路、串口通信與電源電路。
電源模塊為核心板、AD 芯片以及串口提供±5 V、+3.3 V 的電源電壓。模數(shù)轉(zhuǎn)換芯片與ZYNQ-7000核心板通過PL 端配置的SPI 接口進行雙向通信,核心板通過在PL 端配置的UART 串行接口向PC 機發(fā)送數(shù)據(jù)。系統(tǒng)硬件模塊連接框圖如圖1 所示。
ADS125H02 可實現(xiàn)±20 V 雙通道模擬電壓輸入,內(nèi)部具有低噪聲0.125~128 的可編程增益放大器(PGA),40 kSps 轉(zhuǎn)換速率,具有內(nèi)部基準電壓源。內(nèi)置的PGA 可根據(jù)輸入模擬電壓范圍靈活調(diào)節(jié)增益放大器倍數(shù),以對應內(nèi)部基準電壓源的幅值進行模數(shù)轉(zhuǎn)換,可有效減少電路板面積,消除了對外部衰減器或外部增益的需要,降低了電路噪聲,有利于高精度、小型化設(shè)計[18]。ADS125H02 共有32 個管腳,其中主要管腳功能如表1 所示。
表1 ADS125H02管腳功能
AD 轉(zhuǎn)換電路作為系統(tǒng)的核心部分,根據(jù)芯片管腳功能與需求來設(shè)計電路。ADS125H02 只能采用串行外設(shè)接口(Serial Peripheral Interface,SPI)與ZYNQ-7000 進行通信,傳統(tǒng)方式是在ZYNQ-7000 的PS 端使用內(nèi)置的SPI 接口進行通信,可降低程序設(shè)計難度,但時速以及掛載數(shù)量受到限制,而在未植入操作系統(tǒng)的情況下,也無法實現(xiàn)數(shù)據(jù)的同步采集與轉(zhuǎn)換,不利于將來多路實時AD 轉(zhuǎn)換的擴展,利用在PL 端配置SPI 接口進行通信可有效克服這些弊端。AD 轉(zhuǎn)換電路如圖2 所示。
圖2 AD轉(zhuǎn)換電路
電路中兩路單端輸入范圍根據(jù)HV_AVDD 與HV_AVSS 將輸入電壓控制在-5.3~+5.3 V 范圍內(nèi),數(shù)字部分采用單電源+3.3 V 供電,模擬部分采用±5 V雙極性供電,在電源附近使用0.1 μF 的去耦電容進行濾波,降低電源噪聲,模擬地GND 與數(shù)字地GGND單點連接,抑制環(huán)路噪聲,REFOUT 與BYPASS 可分別輸出+2.5 V 與+2.0 V 的內(nèi)部電壓,在設(shè)計中不使用,直接連接電容接地,P1 與P2 外接兩路模擬輸入電壓。
系統(tǒng)以ZYNQ-7000 作為核心處理器,通過SPI與ADS125H02 進行通信,實時控制數(shù)據(jù)的采集轉(zhuǎn)換,靈活調(diào)節(jié)寄存器參數(shù),將接收到的二進制數(shù)值進行提取與處理,得到帶符號的模擬電壓值,由串口發(fā)送至上位機中,實現(xiàn)高精度的模數(shù)轉(zhuǎn)換[19-20]。
ADS125H02 作為SPI 通信的從設(shè)備,需要主設(shè)備提供時鐘信號。串行通信的時序如圖3 所示,t1表示時鐘觸發(fā)上升沿到輸出有效數(shù)據(jù)的時間,為了正確地發(fā)送數(shù)據(jù),t1的值在15~40 ns 之間;t2表示時鐘觸發(fā)下降沿前讀取數(shù)據(jù)的啟動時間,t3表示時鐘觸發(fā)下降沿后讀取數(shù)據(jù)的保持時間,為了正確地讀取數(shù)據(jù),t2與t3之間最少需要保持25 ns。根據(jù)要求,以ZYNQ-7000 的50 MHz 晶振為時鐘基準,通過軟件處理獲得7.14 MHz 的SCLK 時鐘信號。特別注意的是,ZYNQ-7000 在時鐘信號觸發(fā)的同時讀取/發(fā)送數(shù)據(jù),但ADS125H02 需要在一定延時后才發(fā)送正確數(shù)據(jù),因此,ZYNQ-7000 讀取ADS12H02 發(fā)送的數(shù)據(jù)時應延遲一個時鐘周期。
圖3 串行通信時序圖
軟件設(shè)計基于ZYNQ-7000 的PL 端進行。在數(shù)據(jù)轉(zhuǎn)換之前先對ADS125H02 的內(nèi)部寄存器進行配置:先發(fā)送寄存器地址數(shù)據(jù)再發(fā)送寄存器配置數(shù)據(jù),包括轉(zhuǎn)換速率、參考電壓、增益放大器倍數(shù)以及轉(zhuǎn)換通道等。設(shè)計中有兩路數(shù)據(jù)進行輪流轉(zhuǎn)換,每次需重新開啟轉(zhuǎn)換配置,無論是對寄存器的操作還是數(shù)據(jù)轉(zhuǎn)換讀取都需要進行CRC 校驗,校驗通過則表明ADC 芯片正確實現(xiàn)了讀寫寄存器以及數(shù)據(jù)轉(zhuǎn)換,否則需要重新進行操作。ZYNQ-7000 收到的數(shù)字信號為24 位二進制數(shù),通過軟件進行計算處理。Wait 控制兩通道轉(zhuǎn)換速度,在PL 端配置的串口輸出帶符號的模擬電壓值,電壓值保留到小數(shù)點后六位,小數(shù)點前一位,共七位。程序編寫要嚴格按照器件的工作時序進行,程序設(shè)計流程圖如圖4所示。
圖4 程序設(shè)計流程圖
在程序設(shè)計中,CH0 與CH1 兩通道數(shù)據(jù)的每一次交替轉(zhuǎn)換,都需重新配置寄存器MODE4,MODE4寄存器的值決定了當前的轉(zhuǎn)換通道。轉(zhuǎn)換數(shù)據(jù)的開啟可使用硬件控制也可使用軟件控制,系統(tǒng)選擇通過START 命令,利用軟件方式開啟轉(zhuǎn)換,再讀取DRDY 管腳的電平信息,為低電平則表示新的數(shù)據(jù)轉(zhuǎn)換完成,可以利用RDATA 命令進行數(shù)據(jù)讀取,否則繼續(xù)等待,直到DRDY 管腳為低電平。數(shù)據(jù)轉(zhuǎn)換流程圖如圖5 所示。
圖5 數(shù)據(jù)轉(zhuǎn)換流程圖
將完成的程序代碼打包成IP 核,如圖6 所示,便于以后移植調(diào)用,根據(jù)管腳對應的輸入輸出,可同時掛載多個AD 轉(zhuǎn)換芯片,實現(xiàn)同步數(shù)據(jù)采集。
圖6 ADS125H02 IP核
利用軟件的仿真功能對程序中的部分算法進行仿真測試,確保接收到的二進制數(shù)可以準確無誤地轉(zhuǎn)換為十進制電壓值,驗證了結(jié)果的真實性。在程序中,ZYNQ-7000 收到ADS125H02 經(jīng)過模數(shù)轉(zhuǎn)換后的24 位二進制數(shù)據(jù),按照芯片數(shù)據(jù)說明,通過算法將二進制數(shù)轉(zhuǎn)換為有符號的10 進制數(shù)。二進制值Code 與電壓值的對應公式如表2 所示,Vref是基準電壓值,系統(tǒng)中為2.5 V,增益Gain 為0.5。
表2 模擬電壓與24位二進制對應關(guān)系
根據(jù)上述關(guān)系,在仿真程序中進行檢驗時,隨意對24 位二進制數(shù)值進行設(shè)置。取其中值為0xF23456,根據(jù)計算可知對應的幅值應為-0.538 889 170 V,仿真結(jié)果如圖7 所示,從圖中可以看出,此時符號位的ASCII 碼值為2d,對應為“-”,數(shù)值為0538889,在輸出中小數(shù)點位數(shù)為六位,對應的電壓值為0.538 889 V,仿真結(jié)果驗證正確。
圖7 仿真結(jié)果圖
對系統(tǒng)進行上電測試,通過串口將輸入模擬信號轉(zhuǎn)換的電壓值發(fā)送到上位機進行觀測。將ADS125H02其中的兩通道模擬輸入連接幅值為+3.3 V和-2.5 V進行測試,通過數(shù)據(jù)處理,上位機軟件接收數(shù)據(jù),測試結(jié)果如圖8 所示。從圖中可看出,兩通道數(shù)據(jù)輪流進行采集,輸出帶符號的7位電壓值,分辨為1 μV。
圖8 測試結(jié)果
該文利用基于ZYNQ-7000 的可編程邏輯端與ADS125H02 實現(xiàn)了24 位、±5 V 的低噪聲高精度數(shù)模轉(zhuǎn)換,并驗證了數(shù)據(jù)轉(zhuǎn)換的正確性?;赯YNQ-7000 核心處理器豐富的外設(shè)接口,高速的處理速度和同步性,可擴展多個AD 同時進行數(shù)據(jù)轉(zhuǎn)換;ADS125H02 雙極性的寬電壓轉(zhuǎn)換范圍,集成的內(nèi)部基準源、低噪聲增益放大器與數(shù)字濾波,高達24 位的轉(zhuǎn)換精度,使其在要求高精度、同步性、小型化等系統(tǒng)中具有良好的應用和前景。