?

基于FPGA 的高分辨率電容檢測系統設計

2024-04-13 06:54劉銘洋焦繼業呂昱青
電子設計工程 2024年7期
關鍵詞:時鐘分辨率電容

劉銘洋,焦繼業,呂昱青

(1.西安郵電大學專用集成電路設計工程技術中心,陜西西安 710121;2.西安郵電大學電子工程學院,陜西 西安 710121)

電容式濕度傳感器的主要工作原理是將環境濕度的變化轉化為電容變化,利用此特性將非電量轉化為電容量。通常電容式濕度傳感器的電容變化范圍較小,為皮法量級,屬于微小電容變化。

國內外學者進行了多種電容檢測電路的研究,文獻[1]利用諧振法設計電容測量電路,但容易受到寄生電容、雜散電容的影響。因此該類方法很少使用于測量電容式傳感器這種微小的電容方面。文獻[2]利用交流電橋法設計電容測量電路,此電路雖然能夠測量差動電容值,但是不能測量單個電容的容值,具有較大的非線性。文獻[3]利用電容充放電法設計電容測量電路,該電路使用的模擬開關可能會引入電荷注入效應和時鐘饋通效應的問題。文獻[4]利用電容-頻率法設計電容測量電路,該電路雖然抗干擾能力強,便于長距離傳輸,可移植性高,便于與其他數字電路進行組合,但也易受電路寄生電容影響,并且需要設計電路讀取頻率的變化。

針對以上問題,設計了一種基于FPGA 的高分辨率電容檢測電路,根據得到的實驗數據分析誤差來源,針對寄生電容對測量結果的影響進行了一定程度的抑制。

1 系統的設計與實現

基于現場可編程門陣列(FPGA)的高分辨率電容檢測電路整體如圖1 所示,它主要由電容-頻率電路和時間間隔測量電路組成。其中電容轉頻率電路主要利用電容充放電特性將容值的變化轉為頻率的變化。時間間隔測量電路以Xilinx 公司的Artix-7 系列FPGA 芯片為載體,可以精確地測量由電容-頻率電路輸出的脈沖信號的持續時間。

圖1 基于FPGA的高分辨電容檢測系統結構

2 電容-頻率電路設計

電容轉換電路主要有電容-電壓和電容-頻率這兩種基本理念[5],電容轉電壓電路利用開關電容電路原理,通過時分復用模擬開關,利用電荷累計和電容反饋,得到與待測電容值有關的輸出電壓[6]。

但是開關電容電路只能在CMOS 工藝中實現。并且隨著模擬開關的打開或關斷,少量電荷可從數字控制線上通過電容耦合至模擬信號通路,即可能發生電荷注入效應,這會導致輸出的電壓值有一個不可估計的誤差[7]。輸出的電壓還需要模數轉換器(ADC)進行采集,將電壓信號轉換為數字信號。若C1與C2的比值差別不明顯,則Vout的變化也不明顯,這就需要有效位數更高的ADC,從而導致整個電容檢測電路的難度上升。

因此,利用對待測電容的充放電特性設計電容-頻率電路,其結構和原理如圖2 和圖3 所示。

圖2 電容-頻率電路

圖3 電容充放電原理

其工作分為兩個階段:充電階段(Charge time)和放電階段(Discharge time)[7]。

在充電階段時,系統開始時VCC通過R1、R2給Cx充電,OUT 輸出1,則UC從1/3VCC上升到2/3VCC所需時間為:

當UC上升到2/3VCC時,觸發RST 引腳置0,芯片內部的放電管導通,Cx通過R2放電,UC下降,OUT 輸出0,則UC從2/3Vcc下降到1/3Vcc所需時間為:

當UC點電壓下降到1/3VCC時,繼續重復給待測電容Cx充電和放電。因此整個系統工作一個周期的時間應該為:

利用電容轉頻率電路對芯片充電,通過測出電路輸出高電平的持續時間來反解出待測電容Cx,因此待測電容Cx為:

這種電容-頻率電路容易實現,而且可以結合基于FPGA 設計的時間間隔測量電路進行電容容值檢測,該方案具有易移植性和可集成性。因此只要精準測量電容-頻率電路輸出的脈沖信號持續時間就可以得到待測電容的容值,因此需要設計一個高分辨率的時間間隔測量電路。

3 時間間隔測量電路設計

在前期的工作中,電容-頻率電路已經將待測電容值轉化為一個持續時間待測的脈沖信號,其電路輸出的脈沖信號持續時間為微秒級。因此需要利用FPGA 設計一個時間間隔測量電路,用于將這段脈沖信號的高電平轉化為數字信號。其中最常用的方法是采用直接計數法,其電路原理是當脈沖信號上升沿到來時,由系統時鐘控制的計數器開始計數;當脈沖信號的下降沿到來時,計數器停止計數[8]。實際直接計數法原理如圖4所示。

圖4 實際直接計數法原理

理想中脈沖信號的持續時間為:

在實際的應用電路中,脈沖信號不可能恰好在一個系統時鐘的上升沿到來,如圖4 所示,因此無論使用多快的時鐘都難免存在一定的誤差,所以實際脈沖信號的高電平時間為:

雖然在FPGA 里可以用PLL 來實現時鐘的倍頻,從而通過提高時鐘頻率來提升脈沖信號的測量精度,進而提升整個測量系統的分辨率[9]。若是分辨率想要達到納秒級甚至更高,則至少需要頻率量級為千兆赫茲的時鐘。高頻率的時鐘在翻轉的過程中,若不滿足建立時間的約束,則觸發器會產生“亞穩態”狀態,導致無法得到正確的鎖存結果[10],所以僅僅使用直接計數法的測量技術很難用于對分辨率要求高的領域。

抽頭延遲鏈法(Tapped Delay Line,TDL)利用器件延遲來檢測待測脈寬,從而實現測量分辨率的提高[11]。隨著CMOS 工藝水平的提高與半導體ASIC 技術的發展,門級單元延遲時間大大縮短,集成度越來越高。延遲鏈是由多個具有固定延時的門級單元級聯構成的,將延遲鏈的輸出通過D 觸發器實現信號鎖存,這種方式稱為抽頭延遲鏈法[12]。其原理如圖5所示。

圖5 抽頭延遲鏈法結構

圖5 中使用若干個理論上延遲大小均為τ的延遲單元串聯為線性結構,在每個延遲單元后面引出一個輸入到D 觸發器中鎖存。Start 信號觸發后脈沖信號在延遲鏈中開始傳播,經過n級延遲單元并在Stop 信號邊沿觸發后,D 觸發器陣列對延遲鏈中多個數據值進行鎖存。根據抽頭延遲鏈法的測量原理,測量的時間間隔可以表示為:

其中,K為時間間隔測量期間Start 信號在延遲鏈中鎖存的延遲單元數量。

隨著半導體工藝的不斷進步,采用延遲單元構造延遲鏈設計的TDC 電路具有皮秒級的測量分辨率,并且易于封裝到集成度高的芯片里,配合其他功能電路焊接較小面積電路板實現測量[12]。此外,基于延遲鏈設計的TDC 的動態測量范圍受到延遲單元個數的約束,需要結合其他TDC 方案增加其動態測量范圍。

文中結合直接計數法和延遲鏈法,設計了一種基于延遲鏈內插法的時間間隔測量電路?;谘舆t鏈內插法時間間隔測量主要有三方面,其結構如圖6所示。一是采用直接計數法設計粗測量模塊,保證所設計時間間隔測量電路的測量精度滿足應用場景需求;二是結合細測量模塊,設計啟停信號提取模塊;三是采用延遲鏈設計細測量模塊,提高所設計時間間隔測量的測量精度。

圖6 時間間隔測量電路結構

3.1 粗測量模塊設計

粗測量模塊是基于直接計數法設計的TDC 模塊,其作用是在最大脈沖信號的測量范圍之內,對外部輸入的待測信號Pulse 進行分辨率為一個時鐘周期的粗略測量。其模塊本質是以計數時鐘為時基的時序電路,也就是同步計數器。

待測信號Pulse 的高電平持續時間的粗略值可用Count×TCLK來表示,其中Count 表示同步計數器輸出的值,TCLK表示計數時鐘的時鐘周期,在這里使用外部晶振頻率為100 MHz 作為系統時鐘和計數時鐘。

文中設計的粗測量模塊可以測量的脈沖持續時間為0~2 s,測量分辨率為一個時鐘周期,即10 ns。

3.2 信號提取模塊

信號提取模塊的作用是提取出用來在延遲單元組成的延遲鏈進行傳播的信號Start。信號提取電路結構如圖7 所示。

圖7 信號提取電路結構

3.3 細測量模塊設計

可配置邏輯塊(CLB)是每個FPGA 芯片邏輯單元的基本單元,也是實現時序電路和組合電路的主要組成邏輯資源。并且每個CLB 都包含一對Slice,每個Slice 是FPGA 芯片內部最小的邏輯單元,每個Slice 由四個查找表(LUT)、八個觸發器(FF)和其他一些邏輯所組成。其他邏輯中包含著一個CARRY4邏輯,稱為四位超前進位邏輯[13]。

使用Vivado 原語實例化CARRY4 進位邏輯[14]。將Start 信號作為第一級CARRY4 進位邏輯的進位初始端口CYINIT 的輸入,將每一級的進位輸出的最高位CO[3]作為下一級CARRY4 進位邏輯的進位端口CI 的輸入,因此就可以實例化出一個以CARRY4 進位邏輯為延遲單元組成的延遲鏈,并且該延遲鏈的級數可根據測量范圍的大小進行調整。

在細測量模塊布局布線后,對其進行時序仿真,仿真數據顯示,經過一個CARRY4 進位邏輯構成的延遲單元所需的時間為114 ps。FPGA 采用的是外部晶振,頻率為100 MHz 的時鐘。因此整個基于FPGA 的高分辨率電容檢測電路的測量分辨率為114 ps,可將10 ns 之內脈沖信號的高電平持續時間精準測出。

4 系統仿真與誤差分析

4.1 測試分辨率

在前文對CARRY4 進位邏輯作為延遲單元進行時序仿真時,得到信號經過一個CARRY4 所需時間為114 ps,但是仍需對延遲鏈進行仿真測試。在進行時序仿真時,使用小于10 ns 的脈沖信號在延遲鏈中進行傳播。得到小于10 ns 的脈沖信號通過延遲單元的個數,以此驗證信號經過一個CARRY4 所需時間是否可以作為LSB。

從表1 以及圖8 數據中可以直觀看出,待測脈沖持續時間與對應的測量結果之間的誤差絕對值均小于114 ps,由此可以確定文中所設計的基于延遲鏈內插法TDC 的分辨率為114 ps。對此,若應用場景在系統設計測量分辨率的范圍內,文中所設計的基于延遲鏈內插法TDC 能夠達到所需的性能指標和功能需求。

表1 時序仿真測量結果

圖8 時序仿真測量誤差圖

4.2 誤差分析

分別用容值不同的貼片電容作為電容讀出電路結構中的待測電容。以10 pF 容值的貼片電容開始,每次以10 pF 遞增,分別記錄基于FPGA 頻率轉數字電路在測量10~100 pF 的貼片電容輸出數據,如表2所示。

表2 電容測量結果與誤差

從表2 中不難看出,文中所設計的基于FPGA 的高分辨率電容檢測系統測量誤差均在0.1 pF 以下,并且平均誤差約為0.04 pF,滿足大部分微小電容的測量場景需求。

4.3 性能對比

通過FPGA 的工程開發流程方式,選用XC7A35TICSG324 型號的FPGA 芯片進行綜合與布局布線。資源消耗與分辨率對比如表3 所示。其中,文獻[15]是基于游標卡尺法設計的TDC,因此文中設計相比于文獻[15],在資源消耗上有所增加,但是文中對于脈沖信號持續時間的檢測分辨率比文獻[16]高,而且文中所設計的TDC 未用到PLL 資源。文獻[16]對于信號高電平持續時間的檢測分辨率要比文中設計高,但是其資源消耗較高。

表3 資源消耗與分辨率對比

文獻[15-16]均未說明脈沖寬度檢測量程的大小,在不能保證量程的情況下對輸入的脈沖寬度進行檢測會導致數據讀出錯誤。文中所設計的基于延遲鏈內插法TDC 可檢測2 s 之內的信號高電平持續時間,并且在保持測量范圍的同時,將測量電路的分辨率從10 ns 提高到114 ps,并且占用資源適中,適用于測量電路的集成化開發。

5 結論

文中面向微小電容的檢測提出一種基于FPGA的高分辨率電容檢測系統方案,測量誤差均在0.1 pF 以下,并且平均誤差約為0.04 pF。針對現有電路的脈沖信號時間間隔測量分辨率低的問題,提出了一種基于延遲鏈內插法的時間轉數字電路,在保證系統測量量程的同時提高了測量分辨率。對整個FPGA 系統進行了時序仿真,仿真結果顯示分辨率在114 ps 之內,并且測量范圍為2 s 之內,后續可以作為芯片原型,啟動ASIC 設計。

猜你喜歡
時鐘分辨率電容
別樣的“時鐘”
古代的時鐘
EM算法的參數分辨率
原生VS最大那些混淆視聽的“分辨率”概念
基于深度特征學習的圖像超分辨率重建
一種改進的基于邊緣加強超分辨率算法
有趣的時鐘
時鐘會開“花”
PWM Buck變換器電容引起的混沌及其控制
一種降壓/升壓式開關電容AC-AC變換器設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合