宋凝芳,趙亞飛,金 靖,潘 雄,黃云龍,張忠剛
(北京航空航天大學 儀器科學與光電工程學院,北京 100191)
基于FPGA內(nèi)部自激振蕩與溫度相關(guān)性的溫度傳感器
宋凝芳,趙亞飛,金 靖,潘 雄,黃云龍,張忠剛
(北京航空航天大學 儀器科學與光電工程學院,北京 100191)
溫度是IMU及其他導航器件等精密儀器中需要監(jiān)測的重要參數(shù),傳統(tǒng)的溫度監(jiān)測一般使用熱電偶或者數(shù)字溫度傳感器(如DS18B20)等,監(jiān)測程序復雜,功耗高,因此使用精密儀器中廣泛采用的FPGA芯片獨立完成高集成度、低功耗溫度監(jiān)測具有重要意義。在FPGA中通過搭建環(huán)形振蕩器產(chǎn)生了自激振蕩信號,該信號周期與FPGA芯片溫度具有正相關(guān)性,通過對振蕩信號周期的檢測完成了對溫度的監(jiān)測,設(shè)計了一種以 FPGA芯片同時作為敏感頭和處理模塊的溫度傳感器。通過對 Xilinx Virtex-2系列FPGA芯片進行實驗,得到該傳感器在-40℃~+60℃的范圍內(nèi)具有優(yōu)于0.1℃的分辨率,優(yōu)于 0.5℃的檢測精度,滿足一般溫度監(jiān)測需要。實驗表明該傳感器具有功耗低、集成度高、可靠性好等優(yōu)點。
IMU;FPGA;自激振蕩;溫度傳感器
溫度對于 IMU及其他導航器件來說是需要檢測的重要參數(shù),直接影響著導航器件的補償效果與系統(tǒng)的正常工作。由于FPGA廣泛應(yīng)用于IMU及其他導航器件中,用于完成導航等功能的控制,因此傳統(tǒng)應(yīng)用中一般使用FPGA控制外部獨立的溫度傳感器(例如DS18B20)完成溫度的采集,這樣增加了系統(tǒng)原有控制軟件代碼的復雜度,同時使得系統(tǒng)的功耗較高。因此在 FPGA 中進行溫度檢測功能集成有著現(xiàn)實需求以及實現(xiàn)條件。
目前國內(nèi)外對于FPGA實現(xiàn)溫度檢測已經(jīng)有了一些研究[1-5],原理主要有溫度—電流、溫度—周期、TFO(熱反饋振蕩器)等,均通過將溫度數(shù)據(jù)轉(zhuǎn)化為電信號來實現(xiàn)溫度檢測。
本文利用FPGA內(nèi)部自激振蕩信號的周期與溫度的相關(guān)性,設(shè)計了一種以FPGA芯片自身同時作為敏感頭和處理模塊的溫度傳感器,屬于溫度—周期類溫度傳感器。此傳感器只需對 FPGA進行頂層設(shè)計,而無需為電路部分添加其他額外器件及電路,即可實現(xiàn)對FPGA芯片及周圍環(huán)境溫度的實時監(jiān)測。相較于傳統(tǒng)溫度傳感器,該傳感器功耗低、集成度高、可靠性好。
1.1 FPGA作為敏感頭的溫度傳感器原理
信號在數(shù)字電路中傳輸過程中,發(fā)生電平轉(zhuǎn)換時會有一定的上升時間或下降時間,隨著溫度的上升,半導體器件中的載流子濃度降低,器件的轉(zhuǎn)換速度變慢,上升時間和下降時間變長,信號的延時增大,反之則相反[6-8]。因此如果器件中存在一個由內(nèi)部電路自激振蕩形成的周期信號,其周期由于延時隨溫度變化會產(chǎn)生相應(yīng)的改變,通過檢測此周期信號的周期即可獲取相應(yīng)的溫度。以上即為 FPGA作為敏感頭的溫度傳感器的基本原理,原理圖如圖1所示。
圖1中,Clock_s為自激振蕩器產(chǎn)生的時鐘信號,相當于傳統(tǒng)傳感器中的敏感頭,此信號波形特點與穩(wěn)定性直接關(guān)系到整個系統(tǒng)的精度,具有較小上升沿和下降沿并且頻率較低的 Clock_s更有利于信號的檢測及系統(tǒng)性能的提高;Clock_m為Clock_s經(jīng)過溫度調(diào)制后產(chǎn)生的信號,其周期相對于Tclock_s已經(jīng)發(fā)生了改變;周期信號檢測部分直接影響了系統(tǒng)的輸出數(shù)字量及檢測精度,采用簡單易行且精度較高的方法實現(xiàn)周期的檢測可以有效的降低系統(tǒng)的復雜程度,提高系統(tǒng)性能;最后將代表溫度的數(shù)字量隨角速度數(shù)據(jù)傳輸至PC機進行顯示、存儲和分析。
圖1 FPGA作為敏感頭的溫度傳感器原理框圖Fig.1 Architecture of temperature sensor using FPGA as sensing part
1.2 FPGA作為敏感頭的溫度傳感器性能分析
對于IMU和其他導航器件的溫度檢測來說,此溫度傳感器的適用范圍一般滿足-40℃~+60℃即可,IMU自身使用的工業(yè)級FPGA芯片工作的溫度范圍一般為-40℃~+100℃[9],可以滿足要求;由于溫度監(jiān)測一般不需太高的精度,因此本系統(tǒng)具備0.5℃的分辨率和1℃的檢測精度就可以滿足要求;對于數(shù)據(jù)更新率,采用不低于1 Hz的輸出即可完成溫度的跟蹤。
本部分內(nèi)容根據(jù)FPGA作為敏感頭的溫度傳感器原理以及其需要達到的性能選擇 Xilinx公司的XC2V1000芯片為目標芯片搭建系統(tǒng)。系統(tǒng)構(gòu)成方面,溫度傳感器主要包括自激振蕩器和信號檢測及采集部分。具體實現(xiàn)方面,在自激振蕩器設(shè)計中,通過采用效果顯著的延時環(huán)節(jié)既減少了資源占用,降低了功耗,又提高了自激振蕩信號的波形穩(wěn)定性;在信號檢測及采集部分設(shè)計中,通過把對目標信號進行高倍數(shù)分頻及使用高頻時鐘計數(shù)法檢測周期二者相結(jié)合,有效地提高了目標信號的穩(wěn)定性及可檢測性,從而最終提高了系統(tǒng)的分辨率及精度。
2.1 自激振蕩器的設(shè)計
自激振蕩信號產(chǎn)生的基本原理如圖2所示。
圖2 自激振蕩器的基本原理框圖Fig.2 Architecture of self-oscillator
圖3 自激振蕩信號產(chǎn)生時序圖Fig.3 Signal sequence diagram of self-oscillation
圖2中直線表示電氣連接,Inv為反相環(huán)節(jié),這里將其作為理想的反相環(huán)節(jié),即無延時、僅有電平翻轉(zhuǎn)、無上升時間和下降時間;Delay為延時為Td的理想延時環(huán)節(jié)。自激振蕩器產(chǎn)生振蕩信號的時序如圖3所示。
圖3中Vin為初始輸入信號,假定某個時刻Vin由于外界的擾動發(fā)生了由高到低的跳變,則此信號經(jīng)過反相環(huán)節(jié)變?yōu)樾盘朧in1,之后經(jīng)過延時環(huán)節(jié)發(fā)生了Td的延時得到Vin2(Vin′),這時已經(jīng)出現(xiàn)了周期信號的低電平半周期,Vin2(Vin′)信號同時又作為下一個輸入信號,經(jīng)過反相產(chǎn)生信號Vin1′,此信號再通過延時環(huán)節(jié)發(fā)生Td的延時得到新的Vin2(Vin″),這樣周期信號的高電平半周期就產(chǎn)生了,如此往復即在Vin2處產(chǎn)生了周期為T=2×Td的周期信號[10]。
常用的自激振蕩器一般采用奇數(shù)個非門直接做環(huán)形級聯(lián)形成[11],非門同時作為反相和延時環(huán)節(jié),此類自激振蕩器在實現(xiàn)起來有三個缺點,一是隨著大規(guī)模集成電路技術(shù)的快速發(fā)展,非門的延時效果越來越小,從而可能需要大量的非門才能完成一定的延時,這就增大了功耗;二是非門的延時效果不穩(wěn)定,從而可能導致自激振蕩時鐘周期常溫下的不穩(wěn)定,直接影響測試結(jié)果;三是不加約束情況下,F(xiàn)PGA設(shè)計軟件(如ISE Foundation)會在綜合過程中將多余的非門當做冗余邏輯去掉,從而將奇數(shù)個非門級聯(lián)優(yōu)化為一個非門,達不到延時的效果,這樣就可能無法在FPGA中形成振蕩器。
另外一種在FPGA內(nèi)部制作自激振蕩器的方法是在ALTERA公司的FPGA中通過插入專門的LCELL等專用延時單元來完成延時,這種延時效果也比較好,并且 LCELL的延時大小也是隨溫度變化的,但是在這種FPGA中實現(xiàn)的自激振蕩器移植性很差,尤其在不同公司的FPGA之間。
基于以上考慮,本傳感器在搭建過程中采用單非門來實現(xiàn)電平的翻轉(zhuǎn)和微延時,采用緩沖門來實現(xiàn)主要延時,這樣既能通過占用較少的資源完成頻率穩(wěn)定且較低的自激振蕩信號的產(chǎn)生,又可以保證程序有很好的移植性。本傳感器FPGA內(nèi)部自激振蕩器實現(xiàn)的電路原理圖如圖4所示。
圖4 FPGA內(nèi)部自激振蕩器原理圖Fig.4 Architecture of self-oscillator in FPGA
圖4中與門主要完成自激振蕩器的使能控制,使用時可根據(jù)需要進行選通控制,當Enable=1時環(huán)形振蕩器起振,Out_clk輸出時鐘信號,Enable=0時振蕩器不振蕩;非門主要完成電平的翻轉(zhuǎn),這二者延時作用不明顯,可以忽略,后邊的Buf采用了FPGA中的BUFGMUX,其具有顯著的延時功能,是主要的延時環(huán)節(jié)。
2.2 信號檢測及采集部分設(shè)計
本部分要實現(xiàn)的重要功能是實時測量自激振蕩信號的周期,測量一個振蕩信號的周期一般有兩種辦法:
一是在給定時間(t1)內(nèi)對自激振蕩周期(T1)進行計數(shù)(N1),則測得的周期為T1=t1/N1,此種方法的最大測量誤差為自激振蕩周期T1,而T1是一個隨著溫度變化的量,因此誤差是不可控的。
二是在自激振蕩信號的半周期(T1/2)內(nèi)對高頻時鐘周期(T0)進行計數(shù)(N2),則測得的周期為T1=T0·N2/2,此種方法的最大測量誤差為T0。由于過多增大高頻信號的頻率會超出FPGA的承受能力,因此此類方法可能導致N2較小,從而使得相對誤差會較大。
綜合以上兩種方法,本傳感器信號檢測部分進行了相應(yīng)改進,即對自激振蕩信號先分頻增大周期,再使用高頻信號進行填充計數(shù),可以理解為第二種方法的變形。首先對自激振蕩信號(T1)進行高倍數(shù)(n)分頻,減小高頻信號上升沿和下降沿帶來的檢測誤差的同時還可以提高分辨率;然后使用高頻時鐘(T3)對分頻后的時鐘信號進行填充計數(shù)(N)來檢測目標信號周期,此種檢測方法既通過第一步放大了待測自激振蕩信號的周期,又通過第二步有效控制了系統(tǒng)測試的最大誤差,從而可以在保證系統(tǒng)壓力較小的前提下有效地提高系統(tǒng)檢測精度,且可以通過調(diào)節(jié)分頻系數(shù)調(diào)整系統(tǒng)的分辨率。信號檢測部分原理如圖5所示,輸出數(shù)字量見公式(1)。
數(shù)字量N即為本溫度傳感器的輸出,設(shè)定N值為16位數(shù)字量,按照1 Hz的數(shù)據(jù)更新率隨角速度數(shù)據(jù)傳輸至上位機中進行顯示、存儲和分析。
圖5 信號檢測原理圖Fig.5 Architecture of signal detecting
3.1 環(huán)形振蕩器實驗結(jié)果
根據(jù)2.1中設(shè)計完成的環(huán)形振蕩器輸出振蕩信號的周期和Buf的個數(shù)成正比,且具有很好的穩(wěn)定性。其常溫下相關(guān)性如圖6所示。
圖6 環(huán)形振蕩器輸出信號周期與BUF個數(shù)相關(guān)性Fig.6 Relativity of numbers between BUF and signal period from self-oscillator
考慮到FPGA正常工作的頻率范圍以及FPGA資源利用率,本傳感器采用了三緩沖方案,自激振蕩信號的周期為15.4 ns。設(shè)定分頻系數(shù)為20000,填充用高頻時鐘信號頻率為 50 MHz,可知系統(tǒng)的檢測絕對誤差為20 ns,相對誤差為20/(15.4×20000) =0.0065%,利用式(1)可得常溫下本溫度傳感器輸出量在 7700左右(僅對正半周期進行填充計數(shù))。
3.2 FPGA作為敏感頭的溫度傳感器實驗結(jié)果
實驗設(shè)計為恒溫實驗和變溫實驗,均在恒溫箱設(shè)定的環(huán)境中進行實驗,其中恒溫箱已經(jīng)經(jīng)過標準溫度傳感器標定。由于目前IMU中常用DS18B20等器件作為溫度檢測器件,因此在實驗過程中采用DS18B20數(shù)字溫度傳感器進行對比實驗,其輸出采用16位,分辨率為 0.0625,測量溫度范圍為-55℃~+125℃,在-10℃~+85℃范圍內(nèi),精度為±0.5℃。
3.2.1 恒溫實驗
恒溫實驗采用恒溫箱設(shè)置外界溫度,實驗中設(shè)置了6個恒溫溫度點,分別是-40℃、-20℃、0℃、20℃、40℃和60℃,主要用于研究FPGA溫度傳感器輸出與溫度的線性關(guān)系。
恒溫實驗數(shù)據(jù)處理后結(jié)果如表1所示,其中均值1和標準差1均為DS18B20輸出,均值2和標準差2均為FPGA溫度傳感器輸出。
表1 恒溫實驗數(shù)據(jù)處理結(jié)果Tab.1 Results of invariable-temperature test
以表1中溫箱的溫度設(shè)定值為自變量x,以FPGA溫度傳感器輸出均值和 DS18B20輸出均值分別作為因變量y1、y2作圖,結(jié)果如圖7所示。
圖7 DS18B20與 FPGA溫度傳感器恒溫測試輸出Fig.7 Invariable-temperature test output of DS18B20 and FPGA temperature sensor
通過恒溫實驗發(fā)現(xiàn)由FPGA實現(xiàn)的溫度傳感器的輸出均值在不同的恒定溫度上有著很好的梯度分布,和DS18B20的測試結(jié)果趨勢相似,只是通過表1可以發(fā)現(xiàn)在同一溫度下FPGA溫度傳感器的輸出有明顯噪聲(輸出數(shù)據(jù)的方差)存在,但是相對于輸出數(shù)字量在0.02%左右,在可接受范圍內(nèi)。
為了將FPGA溫度傳感器的輸出轉(zhuǎn)化為相應(yīng)的溫度值,需要明確二者之間的轉(zhuǎn)換關(guān)系,即函數(shù)關(guān)系。
以表1中恒溫箱設(shè)定溫度為y值,以FPGA溫度傳感器輸出均值為x值,采用最小二乘法對數(shù)據(jù)進行線性擬合,所得直線如圖8所示。
最小二乘擬合所得函數(shù)式如公式(2)所示:
由式(2)可知其分辨率(k值)可以達到0.07645℃,根據(jù)上式將各恒溫段FPGA輸出轉(zhuǎn)化為溫度值,其標準差均介于0.2~0.5之間。
觀察圖7發(fā)現(xiàn)圖中FPGA溫度傳感器輸出曲線有折線部分,因此又采用了分段線性擬合處理數(shù)據(jù)。擬合系數(shù)如表2所示。
圖8 設(shè)定溫度與 FPGA溫度傳感器輸出最小二乘擬合直線Fig.8 Least squares estimate result of temperature set and output of FPGA temperature sensor
由表2可知此種擬合方法分辨率(k值)最差也可達0.0786℃,根據(jù)上表將各恒溫段FPGA輸出轉(zhuǎn)化為溫度值,其標準差介于0.2~0.4之間。
表2 設(shè)定溫度與FPGA溫度傳感器輸出分段擬合系數(shù)Tab.2 Piecewise linear fitting coefficients of temperature set and output of FPGA temperature sensor
由上述兩種不同處理方法的結(jié)果可知,F(xiàn)PGA溫度傳感器的輸出與溫度之間存在一個接近線性的關(guān)系,直接使用純線性關(guān)系來換算,其分辨率等也在可接受范圍內(nèi),如果使用分段線性擬合,則可以更加準確的將輸出數(shù)字量轉(zhuǎn)化成溫度值。
3.2.2 變溫實驗
變溫實驗中采用“常溫-60℃~-40℃—常溫”溫度變化過程測試,溫度變化率為 1℃/min,主要用于研究傳感器的溫度適用性以及線性關(guān)系優(yōu)化。
恒溫箱溫度變化曲線如圖9所示。按照圖9所示溫度變化使用DS18B20和FPGA溫度傳感器同時測試,測試結(jié)果如圖10所示。
為了驗證 FPGA溫度傳感器在變溫情況下的性能,分別采用最小二乘線性擬合方法和分段線性擬合方法將FPGA溫度傳感器輸出換算成溫度值,結(jié)果分別如圖11、圖12所示。
圖9 恒溫箱溫度設(shè)定曲線Fig.9 Test curve of temperature set by incubator
圖10 DS18B20與FPGA溫度傳感器變溫測試結(jié)果Fig.10 Test result of FPGA temperature sensor and DS18B20 at variable temperature
圖11 最小二乘擬合法FPGA溫度傳感器輸出Fig.11 Output of FPGA temperature sensor using the least squares estimate method
圖12 分段線性擬合法FPGA溫度傳感器輸出Fig.12 Output of FPGA temperature sensor using the method of piecewise linear fitting
采用最小二乘線性擬合方法計算得出FPGA溫度傳感器相對于 DS18B20溫度芯片的測試溫度最大相對誤差為(4.2/100)×100%=4.2%。
采用分段線性擬合方法計算得出FPGA溫度傳感器相對于 DS18B20溫度芯片的測試溫度最大相對誤差為(1.5/100)×100%=1.5%,誤差顯著降低,與恒溫實驗結(jié)果相符合。
通過變溫實驗可以發(fā)現(xiàn)本傳感器在-40℃~+60℃的范圍內(nèi)能夠很好的跟蹤溫度的變化,具有良好的線性度和全溫適用性。但是FPGA溫度傳感器輸出有一定的延遲(曲線變化未完全重合),分析主要是由于外界的溫度對FPGA的影響需要透過FPGA封裝,因此產(chǎn)生了溫度檢測的延遲,但是延遲較小,對于IMU或其他導航器件的溫度需求基本沒有影響。
本文設(shè)計了一種基于FPGA內(nèi)部自激振蕩周期與溫度相關(guān)性的新型溫度傳感器。此溫度傳感器以FPGA為敏感頭和處理模塊,通過軟件設(shè)計集成到FPGA中,通過在恒溫箱中進行恒溫和變溫實驗發(fā)現(xiàn),本系統(tǒng)在-40℃~+60℃檢測范圍內(nèi)可以保證優(yōu)于0.1℃的分辨率,優(yōu)于0.5℃的檢測精度,表現(xiàn)出良好的恒溫和變溫實驗性能。但是由于此溫度傳感器目前只在單一型號FPGA上實現(xiàn),因此在通用性和移植性上需要進一步研究和驗證。
(References):
[1]Chen P,Shie M -C,Zheng Z -Y,Zheng Z -F,Chu C -Y.A fully digital time-domain smart temperature sensor realized with 140 FPGA logic elements[J].IEEE Trans.Circuits and Systems I,2007,54(12):2661-2668.
[2]Woo K,Meninger S,Xanthopoulos T,Crain E,Ha D,Ham D.Dual-DLL-based CMOS all-digital temperature sensor for microprocessor thermal monitoring[C]//Proc.IEEE ISSCC Dig,2009:68-69.
[3]Chen Poki,Chen Shou-Chih,Shen You-Sheng,Peng You-Jyun.All-digital time-domain smart temperature sensor with an Inter-Batch inaccuracy of 0.7℃-0.6℃after one-point calibration[J].IEEE Trans.Circuits and Systems I:Regular Papers,2011,58(5):913-920.
[4]Souri K,Chae Y,Makinwa K A A.A CMOS temperature sensor with a Voltage-Calibrated inaccuracy of ± 0.15 ℃(3σ) from 55℃ to 125℃[J].IEEE Journal of Solid- State Circuits,2013,48(1):1-10.
[5]Pertijs M A P,Makinwa K A A,Huijsing J H.A CMOS smart temperature sensor with a 3σ inaccuracy of ±0.1 C from -55℃ to 125℃[J].IEEE Journal of Solid-State Circuits,2005,40(12):2805-2815.
[6]Kim C K,Lee J G,Jun Y H,Lee C G,Kong B S.CMOS temperature sensor with ring oscillator for mobile DRAM self-refresh control[J].Microelectronics Journal,2007,38:1042-1049.
[7]Lin Y S,Sylvester D,Blaauw D.An ultra low power 1V,220nW temperature sensor for passive wireless applications [C]//Proc.CICC.2008:507-510.
[8]Chen P,Chen C C,Tsai C C,Lu W F.A time-todigital-converter-based CMOS smart temperature sensor [J].IEEE Journal of Solid-State Circuits,2005,40(8):1642-1648.
[9]Chen P,Wang K M,Peng Y H,Wang Y S,Chen C C.A time-domain SAR smart temperature sensor with -0.25℃~+0.35℃inaccuracy for on-chip monitoring[C]//Proc.Eur.Solid-State Circuits Conf.,2008:70-73.
[10]Chung Ching-Che,Yang Cheng-Ruei.An all-digital smart temperature sensor with Auto-Calibration in 65nm CMOS technology[C]//Proceedings of 2010 IEEE International Symposium on Circuits and Systems.2010:4089-4092.
Temperature sensor based on relativity between self-oscillation in FPGA and temperature
SONG Ning-fang,ZHAO Ya-fei,JIN Jing,PAN Xiong,HUANG Yun-long,ZHANG Zhong-gang
(School of Instrument Science and Opto-electronics Engineering,Beijing University of Aeronautics and Astronautics,Beijing 100191,China)
Temperature is an important parameter that needs to be monitored in IMU and other navigation devices.Thermocouple or digital temperature sensor(such as DS18B20) is usually used in temperature detecting,so a highly integrated and low-cost temperature detecting design in FPGA is important.In this paper,the self-oscillation signal was generated by ring oscillator set up in FPGA and its period had positive relativity with the FPGA’s temperature,so the temperature could be gotten by detecting the period of self-oscillation signal.In the end,a temperature sensor using FPGA as both sensing part and processing part was designed.Experiments on the FPGA chip of series Virtex-2 from Xilinx show that the resolution is better than 0.1℃ and the accuracy is better than 0.5℃ within -40℃~+60℃,which can satisfy the general requirement in monitoring temperature.The temperature sensor is low-cost,highly integrated and highly reliable.
IMU;FPGA;self-oscillation;temperature sensor
TH811
:A
1005-6734(2014)01-0026-06
10.13695/j.cnki.12-1222/o3.2014.01.007
2013-08-27;
:2013-12-02
航空科學基金資助項目(2011ZC51032)
宋凝芳(1968—),女,研究員,博士生導師,從事光纖陀螺、組合導航研究。E-mail:songnf@263.net