詹貴陽,曾以成
(湘潭大學物理與光電工程學院,湖南 湘潭 411105)
電壓比較器是對輸入電壓信號進行鑒別與比較的電路,是組成非正弦波發生電路的基本單元電路,可用于報警器電路、自動控制電路,測量電路等。
目前電壓比較器的閥值電壓大小有的采用固定模式[1-3]。有的采用編程可調節模式(通過編程控制DAC 的方式來調節閾值電壓[4-8],或是通過編程控制RC 低通濾波器的積分時間來調節閾值電壓[9])。但無論是采用固定模式,還是可調節模式,其閾值電壓大小的設定主要依賴于設計時的建模理論及其后續電路模型估算;或是通過獨立的第三方設備,如示波器等,監測輸入到電壓比較器的信號波形,再根據該波形峰值設定相應的閾值電壓大小。前一種方式準確性較差;后一種方式操作繁瑣,且在特定環境下(如沒有示波器時)無可操作性??傊?,目前設定閾值電壓的方式,或要求具有很強的專業性,或是操作繁瑣?;诖?,為增加電壓比較器閾值電壓設定時的通用性,本文提出新增一個AD 模塊,用于先檢出波形峰值,然后根據峰值自動設定閾值電壓大小,并實現閾值電壓的自動調節。具體方法是AD 波形采樣模塊預先對輸入脈沖信號采樣,并將采樣數據輸入到FPGA,然后FPGA 讀取波形峰值并根據峰值設定閾值電壓大小,設定好的閾值電壓數值再通過DA 閾值電壓控制模塊輸出為模擬電壓量,從而實現電壓比較器閾值電壓的自動設定和調節。
具有閾值電壓自動設定和調節功能的電壓比較器設計及FPGA 實現系統主要包括三個部分:以AD轉換器為核心的AD 波形采樣模塊,FPGA 模塊,以DA 轉換器為核心的DA 閾值電壓控制模塊。

圖1 系統結構圖
整個系統工作過程如下:在啟動電壓比較器模塊之前,首先將輸入信號接到AD 模塊,經AD 模塊對設定時間內的波形采樣后,采樣數據輸入FPGA模塊的波形峰值讀取邏輯單元,讀取波形峰值,讀得的峰值結果輸入到FPGA 模塊的閾值大小設定運算邏輯單元參與運算,將運算后得到的閾值電壓數值接到FPGA 模塊的DA 控制邏輯單元,FPGA 模塊的DA 控制邏輯單元將閾值電壓數值輸出到DA 模塊,DA 模塊將接收到的閾值電壓數值由數字量轉為物理的模擬電壓量,然后接到電壓比較器模塊的第二輸入端,達到更新電壓比較器模塊閾值電壓數值(甄別電壓)的目的。
如圖2、圖3 所示,AD 波形采樣模塊主要3 部分電路組成。放大調理電路輸出端接差分放大電路輸入端,差分放大電路兩輸出端接到AD 模數轉換電路的差分輸入端。

圖3 AD 波形采樣模塊電路原理圖二
放大調理電路主要包括由電阻R6、R9 構成的分壓電路及AD8065 構成的電壓跟隨器,用于將模擬輸入的-5 V~5 V 電壓信號壓縮成-1 V~1 V 的電壓信號。
由AD8138[10]為主構成的差分放大電路可推導出以下公式:

根據圖2 中電路得VOCM=1.65 V,且每個輸出節點上的輸出電壓由差模部分和共模部分組成。由式(1)可知:V+out,cm,V-out,cm大小相等,極性相同;且另有V+out,dm,V-out,dm大小相等,極性相反。由式(2)、式(3)可知:每個輸出節點均增加共模電平1.65V,即每個節點的輸出電壓范圍由原來理論的-1 V~1 V抬升至實際的0.65 V~2.65 V,即共模電平起到電平抬升轉換作用(因為AD9238 是單電源+3.3 V供電,無法檢測0 V 以下電壓信號,差模信號進入AD9238 差分輸入端之前,必須先進行電平轉換)。且由式(4)可知:在輸出節點上引入共模電壓并不會改變兩節點之間差模電壓值。

圖2 AD 波形采樣模塊電路原理圖一
注:式(1)~式(4)中,符號Vout,dm指兩節點之間電壓之差,其他符號均指對地電壓。
AD9238[11]為主構成AD 模數轉換電路是將模擬信號差分輸入,12 位數字量并行輸出(最高位為符號位),并將輸出的數字信號接入FPGA 模塊相應I/O 口管腳。本文AD9238 參考電壓采用內部供應模式(通過硬件設計使AD9238 管腳62(SENSE)接地達到目的),且參考電壓Vadc_ref=1 V。
由TL431[12]為主構成基準源電路(其管腳2(REF)固定輸出電壓約為VREF=2.5 V),調節R19,則由分壓定律,本文中設置DA 模塊(TLC5620)的參考電壓Vdac_ref=3 V。
DA 轉換電路由TLC5620 為主構成。TLC5620[13]是11 位(8 位數據位)串行輸入的數模轉換芯片。由TLC5620 的數據手冊,可設置本文閾值電壓Vth公式:

式中:變量Code(8 位二進制數據位)輸入范圍是整數0~255。變量Rng 是輸出電壓倍增位(0 時不倍增,1 時倍增),本文設置Rng=0。TLC5620 的輸入端接到FPGA 相應I/O 管腳,且用FPGA 對其進行時序控制。TLC5620 輸出的閾值電壓Vth接到電壓比較器(LT1715)第二輸入端。電壓比較器的輸出端接到FPGA 的I/O 管腳。

圖4 DA 閾值電壓控制模塊電路原理圖
FPGA 系統程序設計,主要包括波形峰值讀取邏輯單元,閾值大小設定運算邏輯單元及DA 控制邏輯單元。
3.1.1 波形峰值檢測
波形峰值讀取邏輯單元設計主要含兩部分,一部分是對波形峰值的判斷讀取,另一部分是檢出所有峰值中的最小峰值,且在本文中將最小峰值的一半設定為電壓比較器的閾值電壓。
1.2.2 循證問題 根據循證護理的要求,結合患者的實際情況和肛裂手術的情況來提出幾個主要問題:(1)影響患者術后便秘的因素具體是哪些?(2)采取怎樣的措施才能防止肛裂術后發生便秘?(3)如何處理患者發生肛裂術后便秘。提出以上三個問題后,小組應該對以往的臨床相關資料進行總結分析[3],了解到相關的信息。
目前波形峰值檢測方法有窗口法[14-15],閾值法等。其中閾值法又分為將閾值設為固定值的雙閾值法[16-21](高低閾值法)或單閾值法[22-23]。這些文獻描述的方法多針對自身的應用領域,不太具有普遍的適用性。針對本系統電路的應用方式,提出了動態單閾值峰值檢測法,即不設固定閾值,將每一個波形最低點作為本次峰值檢測的閾值。具體算法如圖5。
如圖5(a),定義一個12 位緩存寄存器buffer_val 用來緩存每次波形采樣的數據data_in1 值。則當前時鐘采樣data_in1 值與上一個時鐘的data_in1值(已存入寄存器buffer_val)作比較,就會進入如圖5(b)的峰值檢測三態示意圖。

圖5
主要運行機制如下:
(1)滿足條件data_in1 值==buffer_val 值時,處于谷底態,谷底采樣計數點num3 自加1。當由谷底態進入上升態瞬間,上升沿采樣計數點num1 等于0,將此刻buffer_val 值(peak_min_A)賦給peak_min1。
(2)滿足條件data_in1 值>buffer_val 值時,處于上升態,上升沿采樣計數點num1 自加1。當由上升態進入下降態瞬間,下降沿采樣計數點num2 等于0,將此刻buffer_val 值(peak_max_A)賦給peak_max1。
(3)滿足條件data_in1 值
3.1.2 最小峰值檢測

圖6 最小峰值檢測的RTL 圖
本文中將最小峰值的一半設定為電壓比較器的閾值電壓Vth。

注:式(6)中的‘5’表示還原未被放大器AD8065縮小之前的信號;絕對值號內表示去掉min_num 的符號位(min_num 的第12 位為符號位);‘1/2’表示取最小峰值的一半。聯立式(5)、式(6),計算出變量Code 值,并輸出到DA 控制邏輯單元。
如圖7,A 框內部主要邏輯:針對AD9238 的時序控制邏輯,波形峰值檢測,最小峰值檢測。B 框內部主要邏輯:閾值大小設定運算邏輯單元,針對TLC5620 的DA 控制邏輯單元。

圖7 FPGA 系統程序設計的頂層RTL 圖
由圖8 可知:

圖8 FPGA 系統程序設計仿真結果示意圖
(1)在num2=0 時,peak_max1 先后取得峰值12′hffc,12′he08。
(2)最小峰值min_num 先后取值為12′hffc,12′he08,并最終停留在12′he08。
(3)DAC_disp_data 先后取值為8′hd4,8′ha0,并最終停留在8′ha0。
將min_num=12′he08 代入式(6),得閾值電壓Vth1=1.885 V。將Code=DAC_disp_data=8′ha0 代入式(5),得閾值電壓Vth2=1.875 V。經計算Vth1與Vth2兩者仿真理論相對偏差約為0.53%。該理論相對偏差是由于TLC5620 輸出的有效數據較少(TLC5620 有效數據位是8 位,AD9238 有效數據位是11 位),分辨率低造成的。
為了驗證本文設計的系統電路及程序正確性,進行實測實驗。首先使用KEYSIGHT 公司生產的型號為33600A 波形發生器生成如圖5(a)所示的一組具兩個不同峰值的波形,并在滿足奈奎斯特定理的基礎上,設置AD9238 的采樣速率為5 Msample/s。然后接入系統電路進行測試,并使用萬用表實測TLC5620 輸出的閾值電壓大小。同時,用Tektronix 生產的MDO3052 型示波器測量波形發生器生成的波形,并與本文系統電路測量的結果對比。
由表1 可知:本文系統電路實測閾值電壓與理論閾值電壓有微小差別,但在誤差范圍內,兩者最大相對偏差為3.778%;示波器所測閾值電壓與理論閾值電壓也有一定差別。另外,由表1 中數據還可知系統電路實測閾值電壓與示波器所測閾值電壓具有很好的相關性。

表1 輸入波形10 kHz 時閾值電壓實測結果(電壓單位:V)
本系統電路以AD 轉換器、DA 轉換器以及FPGA 為核心,采用硬件電路設計與FPGA 系統程序設計相結合的方式。先用AD 模塊對波形采樣,并將采樣數據輸入到FPGA。然后FPGA 根據采樣數據讀取波形峰值,并將讀取到的最小峰值的一半輸出到DA 模塊,該數值被DA 模塊以模擬電壓方式輸出,并接到電壓比較器的第二輸入端,從而實現電壓比較器閾值電壓(甄別電壓)自動設定和調節。而傳統電壓比較器閾值電壓設定主要依賴于設計時的建模理論及其后續電路模型估算,該方式的準確性較差;或是通過獨立的第三方設備,如示波器等,監測輸入到電壓比較器的信號波形,再根據該波形峰值設定相應的閾值電壓大小,此方式操作繁瑣,且在特定環境下(如沒有示波器時)無可操作性。但是,該系統電路因為是先啟動AD 模塊運行,直到電壓比較器的閾值電壓更新后,再啟動電壓比較器工作,所以其主要適用于測量那些脈沖信號可重復穩定發射的領域,如放射探測,輻射防護,非破壞性物質分析,自動控制等領域。