本發(fā)明屬于溫度檢測技術(shù)領(lǐng)域,尤其涉及一種基于熱敏電阻的溫度檢測方法及電路。
背景技術(shù):
隨著社會進(jìn)步和經(jīng)濟(jì)發(fā)展,特別是在當(dāng)前的數(shù)字化、網(wǎng)絡(luò)化、信息化蓬勃發(fā)展的時(shí)代,各類型的溫度檢測裝置和各式各樣的溫度智能監(jiān)測產(chǎn)品,已廣泛應(yīng)用于工業(yè)生產(chǎn)和人們的日常生活中。
人們越來越關(guān)注和重視溫度對自己、對生產(chǎn),及對產(chǎn)品的影響,例如:使用電子溫度計(jì)測量體溫、使用溫度監(jiān)控裝置檢測生產(chǎn)的環(huán)境溫度,使用溫度傳感器監(jiān)測電動汽車電機(jī)和電池的溫度等;伴隨人們物質(zhì)文化生活的提高,也對各類溫度檢測產(chǎn)品的精度、范圍,及價(jià)格要求越來越嚴(yán)苛,這就對各類溫度傳感器及其檢測方法提出了新的要求。
當(dāng)前應(yīng)用最為廣泛的溫度傳感器主要有熱敏電阻和熱電偶,熱敏電阻本身是電阻,由單一的金屬材料構(gòu)成,電阻的阻值隨溫度的變化而變化,包括正溫度系數(shù)熱敏電阻(ptc)和負(fù)溫度系數(shù)熱敏電阻(ntc),熱敏電阻常用于中低溫度的檢測;而熱電偶是由兩種金屬材料構(gòu)成,兩種金屬兩端的感應(yīng)電壓隨溫度的變化而變化,熱電偶常用于中高溫度的檢測;一般地,貼近人們?nèi)粘I畹模S玫臏囟葌鞲衅鬟€是熱敏電阻。
熱敏電阻的阻值會隨溫度的變化而變化,常見的變化關(guān)系主要有線性變化和非線性變化兩種,即通過這種變化對應(yīng)關(guān)系,可實(shí)現(xiàn)對溫度的檢測。
現(xiàn)有技術(shù)方案:
對于阻值隨溫度線性變化的熱敏電阻,一般依照擬合的線性公式進(jìn)行直接計(jì)算;而對于阻值隨溫度非線性變化的熱敏電阻,則一般依照分區(qū)擬合的線性公式和單一擬合的曲線公式進(jìn)行直接計(jì)算,或依據(jù)溫度與阻值一對一映射,并使用多點(diǎn)查表的方式進(jìn)行檢測。
對溫度的智能檢測和精準(zhǔn)計(jì)算,離不開單片機(jī)等數(shù)字處理芯片。采用擬合的線性和曲線公式進(jìn)行的溫度檢測,需依據(jù)公式進(jìn)行代碼編程,由處理芯片計(jì)算得出;而對于采用溫度與阻值一對一映射并結(jié)合多點(diǎn)查表方式進(jìn)行的溫度檢測,則需要依據(jù)映射關(guān)系,在處理芯片中建立溫度與采樣電壓的二維數(shù)組,采用查表的方式得出。
不難發(fā)現(xiàn),現(xiàn)有的基于熱敏電阻的溫度檢測方法存在以下弊端:
(1)采用擬合線性和曲線公式直接計(jì)算的溫度檢測,公式中都含有加法、減法、乘法和除法運(yùn)算,甚至開方和指數(shù)運(yùn)算等,計(jì)算量大;對于溫度的實(shí)時(shí)檢測,增加了對芯片運(yùn)算性能的要求。
(2)采用溫度與阻值一對一映射并結(jié)合多點(diǎn)查表方式進(jìn)行的溫度檢測,是以數(shù)據(jù)空間換取溫度檢測精度,即數(shù)據(jù)越多,檢測精度則越高;對于溫度的實(shí)時(shí)檢測,增加了對芯片運(yùn)算性能和內(nèi)部存儲空間的要求。
(3)對于運(yùn)算性能較差或不帶硬件浮點(diǎn)運(yùn)算單元的處理芯片來說,溫度檢測的精度和實(shí)時(shí)效率會受到影響,尤其對于時(shí)間常數(shù)較小、溫度急劇變化,又需要及時(shí)保護(hù)和處理的應(yīng)用場景,更會放大影響倍數(shù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種可廣泛用于工業(yè)、汽車等行業(yè)的一種既簡單快速、精度又高的基于熱敏電阻的溫度檢測方法。
本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)的:
一種基于熱敏電阻的溫度檢測方法,它包括如下步驟:
第一步:確定溫度檢測精度與檢測范圍;
第二步:確定溫度與電阻阻值、溫度與采樣電壓的關(guān)系;
第三步:確定溫度的一維數(shù)組大??;
第四步:確定溫度的一維數(shù)組數(shù)據(jù);
第五步:依據(jù)采樣電壓求解數(shù)組索引;
第六步:依據(jù)數(shù)組索引求解實(shí)時(shí)溫度。
作為優(yōu)選方式,基于熱敏電阻的溫度檢測方法適用于非線性負(fù)溫度系數(shù)熱敏電阻檢測、線性正溫度系數(shù)熱敏電阻檢測、非線性正溫度系數(shù)熱敏電阻檢測和線性負(fù)溫度系數(shù)熱敏電阻檢測。
作為優(yōu)選方式,在非線性負(fù)溫度系數(shù)熱敏電阻檢測中:
第一步:確定溫度檢測精度與檢測范圍,設(shè)定非線性負(fù)溫度系數(shù)熱敏電阻的溫度檢測范圍為a℃至b℃,檢測精度為x℃;
第二步:確定溫度與電阻阻值、溫度與采樣電壓的關(guān)系,依據(jù)非線性負(fù)溫度系數(shù)熱敏電阻廠家給定的數(shù)據(jù)手冊,查詢到溫度與電阻阻值的對應(yīng)關(guān)系;
采樣用到的數(shù)字處理芯片a/d采樣端口為k位采樣精度,輸入電壓為0v至yv,采樣電壓數(shù)字輸出為0至2k-1;設(shè)定溫度[a,b]對應(yīng)采樣電壓[y,0],并對應(yīng)a/d采樣端口數(shù)字量[2k-1,0];
第三步:確定溫度的一維數(shù)組大小,為建立從a℃至b℃溫度范圍的一維數(shù)組,并滿足x℃的溫度采樣精度,需將x℃作為非線性度的最小誤差求解溫度區(qū)間個(gè)數(shù)z;
第四步:確定溫度的一維數(shù)組數(shù)據(jù),依據(jù)(2k-1-0)÷z=m,可計(jì)算得出非線性負(fù)溫度系數(shù)熱敏電阻等電壓區(qū)間的間隔為-m,即得到數(shù)組大小為z+1的電壓一維數(shù)組[2k-1,2k-1-m,2k-1-2m,…,0];根據(jù)非線性負(fù)溫度系數(shù)熱敏電阻的映射關(guān)系或計(jì)算公式,可以很方便地得到對應(yīng)數(shù)組大小為z+1的溫度一維數(shù)組[a,…,b],為簡化運(yùn)算量,這里將溫度的一維數(shù)組數(shù)據(jù)用iq7格式表示,即將原溫度數(shù)據(jù)左移7位,得到一維數(shù)組[a,…,b];
第五步:依據(jù)采樣電壓求解數(shù)組索引,當(dāng)數(shù)字處理芯片檢測到電壓a/d采樣數(shù)據(jù)時(shí),輸出[0,2k-1]的數(shù)字量,其值為左移k位后的值,真實(shí)值的范圍實(shí)為[0,1];為了簡化運(yùn)算量,需將輸入的數(shù)字量減去溫度點(diǎn)采樣的最大值2k-1,即將[0,2k-1]對應(yīng)到[-2k-1,0];
為了實(shí)現(xiàn)對浮點(diǎn)數(shù)的運(yùn)算,將a/d采樣得到的數(shù)字量再左移“24-k”位;并將該數(shù)字量與左移24位的溫度區(qū)間個(gè)數(shù)相乘,得到iq24格式的數(shù)組索引值,記為“index”;
第六步:依據(jù)數(shù)組索引求解實(shí)時(shí)溫度,對數(shù)組索引值“index”進(jìn)行“取整操作”,可得到一個(gè)整數(shù),記為“n”,并作為此時(shí)溫度一維數(shù)組的索引,依據(jù)該索引查表得到的溫度值作為檢測溫度的第一部份,記為“t1”,即:t1=temprature[n];
依據(jù)一小段非線性曲線可由一段直線近似等效的原理,可得到索引值“index”小數(shù)部份的溫度值;下一個(gè)索引“n+1”對應(yīng)的溫度與索引“n”對應(yīng)溫度的差值,記為“△”,即:△=temprature[n+1]-temprature[n];而對“index”進(jìn)行“取小數(shù)操作”,記為“f”;最后將“temprature[n+1]-temprature[n]”乘以“f”,即可得到檢測溫度的第二部份,記為“t2”,即:t2=(temprature[n+1]-temprature[n])×f;
最終檢測的溫度,其值應(yīng)等于上述溫度的第一部份與第二部份之和,記為“t”,即:t=t1+t2=temprature[n]+(temprature[n+1]-temprature[n])×f”;最后,將t右移7位,即可計(jì)算出最終檢測的實(shí)際溫度。
作為優(yōu)選方式,在線性正溫度系數(shù)熱敏電阻檢測中:
第一步:確定溫度檢測精度與檢測范圍,首先設(shè)定線性正溫度系數(shù)熱敏電阻的溫度檢測范圍為u℃至v℃,檢測精度為t℃;
第二步:確定溫度與電阻阻值、溫度與采樣電壓的關(guān)系,依據(jù)正溫度系數(shù)熱敏電阻廠家給定的數(shù)據(jù)手冊,可以查詢到溫度與電阻阻值的對應(yīng)關(guān)系,
采樣用到的數(shù)字處理芯片a/d采樣端口為h位采樣精度,輸入電壓為0v至rv,采樣電壓數(shù)字輸出為0至2h-1;設(shè)定溫度[u,v]對應(yīng)采樣電壓[0,r],并對應(yīng)a/d采樣端口數(shù)字量[0,2h-1];
第三步:確定溫度的一維數(shù)組大小,為建立從u℃至v℃溫度范圍的一維數(shù)組,并滿足t℃的溫度采樣精度,需將t℃作為線性度的最小誤差求解溫度區(qū)間個(gè)數(shù)s;
第四步:確定溫度的一維數(shù)組數(shù)據(jù),依據(jù)(2h-1-0)÷s=p,可計(jì)算得出正溫度系數(shù)熱敏電阻等電壓區(qū)間的間隔為p,即得到數(shù)組大小為s+1的電壓一維數(shù)組[0,p,2p,…,2h-1];根據(jù)正溫度系數(shù)熱敏電阻的映射關(guān)系或計(jì)算公式,可以很方便地得到對應(yīng)數(shù)組大小為s+1的溫度一維數(shù)組[u,…,v],為簡化運(yùn)算量,這里將溫度的一維數(shù)組數(shù)據(jù)用iq7格式表示,即將原溫度數(shù)據(jù)左移7位,得到一維數(shù)組[u,…,v];
第五步:依據(jù)采樣電壓求解數(shù)組索引,當(dāng)數(shù)字處理芯片檢測到電壓a/d采樣數(shù)據(jù)時(shí),輸出[0,2h-1]的數(shù)字量,其值為左移h位后的值,真實(shí)值的范圍實(shí)為[0,1];
為了實(shí)現(xiàn)對浮點(diǎn)數(shù)的運(yùn)算,將a/d采樣得到的數(shù)字量再左移“24-h”位;并將該數(shù)字量與左移24位的溫度區(qū)間個(gè)數(shù)相乘,得到iq24格式的數(shù)組索引值,記為“refer”;
第六步:依據(jù)數(shù)組索引求解實(shí)際溫度,對數(shù)組索引值“refer”進(jìn)行“取整操作”,可得到一個(gè)整數(shù),記為“q”,并作為此時(shí)溫度一維數(shù)組的索引,依據(jù)該索引查表得到的溫度值作為檢測溫度的第一部份,記為“t1”,即:t1=temprature[q];
依據(jù)一小段非線性曲線可由一段直線近似等效的原理,可得到索引值“refer”小數(shù)部份的溫度值;下一個(gè)索引“q+1”對應(yīng)的溫度與索引“q”對應(yīng)溫度的差值,記為“i”,即:i=temprature[q+1]-temprature[q];而對“refer”進(jìn)行“取小數(shù)操作”,記為“j”;最后將“temprature[q+1]-temprature[q]”乘以“j”,即可得到檢測溫度的第二部份,記為“t2”,即:t2=(temprature[q+1]-temprature[q])×j;
最終檢測的溫度,其值應(yīng)等于上述溫度的第一部份與第二部份之和,記為“t”,即:t=t1+t2=temprature[q]+(temprature[q+1]-temprature[q])×j”;最后,將t右移7位,即可計(jì)算出最終檢測的實(shí)際溫度。
作為優(yōu)選方式,所述溫度與電阻阻值的對應(yīng)關(guān)系包括:擬合的非線性溫度計(jì)算公式或溫度與電阻阻值的一對一映射列表。
作為優(yōu)選方式,a=-50,b=180,x=0.5,y=3,k=12,z=60,m=68.25;
所述數(shù)字處理芯片為ti公司的f2808數(shù)字處理芯片,其a/d采樣端口為12位采樣精度,輸入電壓為0v至3v,采樣電壓數(shù)字輸出為0至4095;通過適配相應(yīng)的電阻阻值,可以設(shè)定溫度[-50,180]對應(yīng)采樣電壓[3,0],并對應(yīng)a/d采樣端口數(shù)字量[4095,0];
劃分60個(gè)溫度區(qū)間,需以61個(gè)溫度點(diǎn)進(jìn)行劃分,即:得到溫度數(shù)組大小為61;
依據(jù)(4095-0)÷60=68.25,可計(jì)算得出非線性負(fù)溫度系數(shù)熱敏電阻等電壓區(qū)間的間隔為-68.25,即得到數(shù)組大小為61的電壓一維數(shù)組[4095,4026.75,3958.47,…,0];根據(jù)非線性負(fù)溫度系數(shù)熱敏電阻的映射關(guān)系或計(jì)算公式,可以很方便地得到對應(yīng)數(shù)組大小為61的溫度一維數(shù)組[-50,-30.12790003,-21.25507732,…,180];
由于f2808為不帶硬件浮點(diǎn)運(yùn)算單元支持的數(shù)字處理芯片,但為了實(shí)現(xiàn)對浮點(diǎn)數(shù)的運(yùn)算,需將溫度的一維數(shù)組數(shù)據(jù)用iq7格式表示,即將溫度數(shù)據(jù)左移7位,轉(zhuǎn)換為程序編程需要的溫度一維數(shù)組[-6400,-3856,-2721,…,23040];當(dāng)查表和計(jì)算得到對應(yīng)的溫度后,再右移7位,即可得到實(shí)際的溫度;當(dāng)f2808檢測到電壓a/d采樣數(shù)據(jù)時(shí),輸出[0,4095]的數(shù)字量,其值為左移12位后的值,真實(shí)值的范圍實(shí)為[0,1];為了簡化運(yùn)算量,需將輸入的數(shù)字量減去溫度點(diǎn)采樣的最大值4095,即將[0,4095]對應(yīng)到[-4095,0];
同樣地,為了對實(shí)現(xiàn)浮點(diǎn)數(shù)的運(yùn)算,將a/d采樣得到的數(shù)字量再左移12位,得到iq24格式的數(shù)字量;并將該數(shù)字量與左移24位的溫度區(qū)間個(gè)數(shù)相乘,得到iq24格式的數(shù)組索引值,記為“index”;
對數(shù)組索引值“index”進(jìn)行“取整操作”,可得到一個(gè)整數(shù),記為“n”,并作為此時(shí)溫度一維數(shù)組的索引,依據(jù)該索引查表得到的溫度值作為檢測溫度的第一部份,記為“t1”,即:t1=temprature[n];
依據(jù)一小段非線性曲線可由一段直線近似等效的原理,可得到索引值“index”小數(shù)部份的溫度值;下一個(gè)索引“n+1”對應(yīng)的溫度與索引“n”對應(yīng)溫度的差值,記為“△”,即:△=temprature[n+1]-temprature[n];而對“index”進(jìn)行“取小數(shù)操作”,記為“f”;最后將“temprature[n+1]-temprature[n]”乘以“f”,即可得到檢測溫度的第二部份,記為“t2”,即:t2=(temprature[n+1]-temprature[n])×f;
最終檢測的溫度,其值應(yīng)等于上述溫度的第一部份與第二部份之和,記為“t”,即:t=t1+t2=temprature[n]+(temprature[n+1]-temprature[n])×f”;最后,將t右移7位,即可計(jì)算出最終檢測的實(shí)際溫度。
作為優(yōu)選方式,溫度與電阻阻值的對應(yīng)關(guān)系包括:擬合的線性溫度計(jì)算公式或溫度與電阻阻值的一對一映射列表。
作為優(yōu)選方式,u=-50,v=200,t=0.5,r=3,h=12,s=40,p=102.375;
根據(jù)f2808數(shù)字處理芯片數(shù)據(jù)手冊可知,其a/d采樣端口為12位采樣精度,輸入電壓為0v至3v,采樣電壓數(shù)字輸出為0至4095;通過適配相應(yīng)的電阻阻值,可以設(shè)定溫度[-50,200]對應(yīng)采樣電壓[0,3],并對應(yīng)a/d采樣端口數(shù)字量[0,4095];
劃分40個(gè)溫度區(qū)間,需以41個(gè)溫度點(diǎn)進(jìn)行劃分,即:得到溫度數(shù)組大小為41;依據(jù)(4095-0)÷40=102.375,可計(jì)算得出正溫度系數(shù)熱敏電阻等電壓區(qū)間的間隔為102.375,即得到數(shù)組大小為41的電壓一維數(shù)組[0,102.375,204.75,…,4095];根據(jù)正溫度系數(shù)熱敏電阻的映射關(guān)系或計(jì)算公式,可以很方便地得到對應(yīng)數(shù)組大小為41的溫度一維數(shù)組[-50,-43.75,-37.5,…,200];
由于f2808為不帶硬件浮點(diǎn)運(yùn)算單元支持的數(shù)字處理芯片,但為了實(shí)現(xiàn)對浮點(diǎn)數(shù)的運(yùn)算,需將溫度的一維數(shù)組數(shù)據(jù)用iq7格式表示,即將溫度數(shù)據(jù)左移7位,轉(zhuǎn)換為程序編程需要的溫度一維數(shù)組[-6400,-5600,-4800,…,25600];當(dāng)查表和計(jì)算得到對應(yīng)的溫度后,再右移7位,即可得到實(shí)際的溫度;
當(dāng)f2808檢測到電壓a/d采樣數(shù)據(jù)時(shí),輸出[0,4095]的數(shù)字量,其值為左移12位后的值,真實(shí)值的范圍實(shí)為[0,1];同樣地,為了實(shí)現(xiàn)對浮點(diǎn)數(shù)的運(yùn)算,將a/d采樣得到的數(shù)字量再左移12位,得到iq24格式的數(shù)字量;并將該數(shù)字量與左移24位的溫度區(qū)間個(gè)數(shù)相乘,得到iq24格式的數(shù)組索引值,記為“refer”;
對數(shù)組索引值“refer”進(jìn)行“取整操作”,可得到一個(gè)整數(shù),記為“q”,并作為此時(shí)溫度一維數(shù)組的索引,依據(jù)該索引查表得到的溫度值作為檢測溫度的第一部份,記為“t1”,即:t1=temprature[q];
依據(jù)一小段非線性曲線可由一段直線近似等效的原理,可得到索引值“refer”小數(shù)部份的溫度值;下一個(gè)索引“q+1”對應(yīng)的溫度與索引“q”對應(yīng)溫度的差值,記為“i”,即:i=temprature[q+1]-temprature[q];而對“refer”進(jìn)行“取小數(shù)操作”,記為“j”;最后將“temprature[q+1]-temprature[q]”乘以“j”,即可得到檢測溫度的第二部份,記為“t2”,即:t2=(temprature[q+1]-temprature[q])×j;
最終檢測的溫度,其值應(yīng)等于上述溫度的第一部份與第二部份之和,記為“t”,即:t=t1+t2=temprature[q]+(temprature[q+1]-temprature[q])×j”;最后,將t右移7位,即可計(jì)算出最終檢測的實(shí)際溫度。
一種基于熱敏電阻的溫度檢測電路,它包括非線性熱敏電阻的溫度檢測電路和線性熱敏電阻的溫度檢測電路;
所述的非線性熱敏電阻的溫度檢測電路包括:第一電阻r1、第二電阻r2、第一電容c1和第二電容c2,電源vcc連接第一電阻r1的第一端,第一電阻r1的第二端分別連接第二電阻r2和第一電容c1的第一端,第一電容c1的第二端接地,第二電阻r2還分別與第二電容c2的第一端和數(shù)字處理芯片的第一采樣輸入端連接,第二電容c2的第二端接地,數(shù)字處理芯片的第二采樣輸入端接地,非線性熱敏電阻的一端連接到第一電阻r1、第二電阻r2和第一電容c1的公共節(jié)點(diǎn)上,非線性熱敏電阻的另一端接地;
所述的線性熱敏電阻的溫度檢測電路包括:第三電阻r3、第四電阻r4、第五電阻r5、第六電阻r6、第七電阻r7、反饋電阻rf、第三電容c3、第四電容c4、運(yùn)算發(fā)大器u1和穩(wěn)壓二極管z1;
電源vcc分別連接第六電阻r6的第一端和第七電阻r7的第一端,第六電阻r6的第二端分別連接線性熱敏電阻的第一端、第三電容c3的第一端、第四電阻的第一端和運(yùn)算放大器u1的正相輸入端,第七電阻r7的第二端分別連接第三電阻的第一端、反饋電阻rf的第一端和運(yùn)算放大器u1的反相輸入端,運(yùn)算放大器u1的輸出端連接第五電阻r5的第一端,第五電阻r5的第二端分別連接反饋電阻rf的第二端、穩(wěn)壓二極管z1的負(fù)極、第四電容c4的第一端以及數(shù)字處理芯片的第一采樣輸入端,線性熱敏電阻的第二端、第三電容c3的第二端、第三電阻r3的第二端、第四電阻r4的第二端、穩(wěn)壓二極管z1的正極以及數(shù)字處理芯片的第二采樣輸入端接地。
本發(fā)明的有益效果是:本溫度檢測方法及電路沒有使用除法、開方和指數(shù)等運(yùn)算操作,沒有采用二維數(shù)組查表,也沒有使用反復(fù)、循環(huán)查找溫度值的遞歸操作,計(jì)算量小,且簡單高效,這對于溫度的實(shí)時(shí)檢測,不僅減小了對芯片運(yùn)算性能的要求,實(shí)用性也得到大大提高。
附圖說明
圖1為非線性熱敏電阻的溫度檢測電路示意圖;
圖2為線性熱敏電阻的溫度檢測電路示意圖。
具體實(shí)施方式
下面結(jié)合附圖進(jìn)一步詳細(xì)描述本發(fā)明的技術(shù)方案,但本發(fā)明的保護(hù)范圍不局限于以下所述。
如圖1所示為非線性熱敏電阻的溫度檢測電路,它包括:第一電阻r1、第二電阻r2、第一電容c1和第二電容c2,電源vcc連接第一電阻r1的第一端,第一電阻r1的第二端分別連接第二電阻r2和第一電容c1的第一端,第一電容c1的第二端接地,第二電阻r2還分別與第二電容c2的第一端和數(shù)字處理芯片的第一采樣輸入端連接,第二電容c2的第二端接地,數(shù)字處理芯片的第二采樣輸入端接地,非線性熱敏電阻的一端連接到第一電阻r1、第二電阻r2和第一電容c1的公共節(jié)點(diǎn)上,非線性熱敏電阻的另一端接地;
如圖2所示為線性熱敏電阻的溫度檢測電路,它包括:第三電阻r3、第四電阻r4、第五電阻r5、第六電阻r6、第七電阻r7、反饋電阻rf、第三電容c3、第四電容c4、運(yùn)算發(fā)大器和穩(wěn)壓二極管;
電源vcc分別連接第六電阻r6的第一端和第七電阻r7的第一端,第六電阻r6的第二端分別連接線性熱敏電阻的第一端、第三電容c3的第一端、第四電阻r4的第一端和運(yùn)算放大器u1的正相輸入端,第七電阻r7的第二端分別連接第三電阻的第一端、反饋電阻rf的第一端和運(yùn)算放大器u1的反相輸入端,運(yùn)算放大器u1的輸出端連接第五電阻r5的第一端,第五電阻r5的第二端分別連接反饋電阻rf的第二端、穩(wěn)壓二極管z1的負(fù)極、第四電容c4的第一端以及數(shù)字處理芯片的第一采樣輸入端,線性熱敏電阻的第二端、第三電容c3的第二端、第三電阻r3的第二端、第四電阻r4的第二端、穩(wěn)壓二極管z1的正極以及數(shù)字處理芯片的第二采樣輸入端接地。
下面以非線性負(fù)溫度系數(shù)(ntc)和線性正溫度系數(shù)(pt100)的熱敏電阻,及ti公司的tms320f2808數(shù)字處理芯片為例,詳細(xì)闡述溫度檢測的方法。
1)非線性負(fù)溫度系數(shù)檢測
第一步:確定溫度檢測精度與檢測范圍
設(shè)定非線性負(fù)溫度系數(shù)熱敏電阻(ntc)的溫度檢測范圍為-50℃至180℃,檢測精度為0.5℃,溫度檢測電路如圖1所示。
第二步:確定溫度與電阻阻值、溫度與采樣電壓的關(guān)系
一般地,依據(jù)ntc廠家給定的數(shù)據(jù)手冊,可以查詢到溫度與電阻阻值的對應(yīng)關(guān)系,例如:擬合的非線性溫度計(jì)算公式,或溫度與電阻阻值的一對一映射列表。
根據(jù)f2808數(shù)字處理芯片數(shù)據(jù)手冊可知,其a/d采樣端口為12位采樣精度,輸入電壓為0v至3v,采樣電壓數(shù)字輸出為0至4095;圖1中,通過適配相應(yīng)的電阻阻值,可以設(shè)定溫度[-50,180]對應(yīng)采樣電壓[3,0],并對應(yīng)a/d采樣端口數(shù)字量[4095,0]。
第三步:確定溫度的一維數(shù)組大小
為建立從-50℃至180℃溫度范圍的一維數(shù)組,并滿足0.5℃的溫度采樣精度,需將0.5℃作為非線性度的最小誤差求解溫度區(qū)間個(gè)數(shù);設(shè)定本例中需劃分60個(gè)溫度區(qū)間,需以61個(gè)溫度點(diǎn)進(jìn)行劃分,即:得到溫度數(shù)組大小為61。
第四步:確定溫度的一維數(shù)組數(shù)據(jù)
依據(jù)(4095-0)÷60=68.25,可計(jì)算得出ntc等電壓區(qū)間的間隔為-68.25,即得到數(shù)組大小為61的電壓一維數(shù)組[4095,4026.75,3958.47,…,0];根據(jù)ntc的映射關(guān)系或計(jì)算公式,可以很方便地得到對應(yīng)數(shù)組大小為61的溫度一維數(shù)組[-50,-30.12790003,-21.25507732,…,180]。
由于f2808為不帶硬件浮點(diǎn)運(yùn)算單元支持的數(shù)字處理芯片,但為了實(shí)現(xiàn)對浮點(diǎn)數(shù)的運(yùn)算,需將溫度的一維數(shù)組通過iq7格式轉(zhuǎn)換(左移7位),轉(zhuǎn)換為程序編程需要的溫度一維數(shù)組[-6400,-3856,-2721,…,23040];當(dāng)查表和計(jì)算得到對應(yīng)的溫度后,再通過iq7格式轉(zhuǎn)換(右移7位)得到實(shí)際的溫度即可。
第五步:依據(jù)采樣電壓求解數(shù)組索引
當(dāng)f2808檢測到電壓a/d采樣數(shù)據(jù)時(shí),輸出[0,4095]的數(shù)字量,其值實(shí)為iq12格式(左移12位),真實(shí)值的范圍實(shí)為[0,1];為了簡化運(yùn)算量,需將輸入的數(shù)字量減去溫度點(diǎn)采樣的最大值4095,即將[0,4095]對應(yīng)到[-4095,0]。
同樣地,為了實(shí)現(xiàn)對浮點(diǎn)數(shù)的運(yùn)算,將a/d采樣得到的數(shù)字量再進(jìn)行iq12格式轉(zhuǎn)換(iq12左移12位后得到iq24格式);再將該iq24格式的數(shù)字量與左移24位的溫度區(qū)間個(gè)數(shù)iq24(-60)相乘,得到iq24格式的數(shù)組索引值,記為“index”。
第六步:依據(jù)數(shù)組索引求解實(shí)時(shí)溫度
對數(shù)組索引值“index”進(jìn)行“取整操作”,可得到一個(gè)整數(shù),記為“n”,并作為此時(shí)溫度一維數(shù)組的索引,依據(jù)該索引查表得到的溫度值作為檢測溫度的第一部份,記為“t1”,即:t1=temprature[n]。
依據(jù)一小段非線性曲線可由一段直線近似等效的原理,可得到索引值“index”小數(shù)部份的溫度值。下一個(gè)索引“n+1”對應(yīng)的溫度與索引“n”對應(yīng)溫度的差值,記為“△”,即:△=temprature[n+1]-temprature[n];而對“index”進(jìn)行“取小數(shù)操作”,記為“f”;最后將“temprature[n+1]-temprature[n]”乘以“f”,即可得到檢測溫度的第二部份,記為“t2”,即:t2=(temprature[n+1]-temprature[n])×f。
最終檢測的溫度,其值應(yīng)等于上述溫度的第一部份與第二部份之和,記為“t”,即:t=t1+t2=temprature[n]+(temprature[n+1]-temprature[n])×f”;最后,將t進(jìn)行iq7格式轉(zhuǎn)換(右移7位),即可計(jì)算出最終檢測的實(shí)際溫度。
2)線性正溫度系數(shù)檢測
第一步:確定溫度檢測精度與檢測范圍
設(shè)定線性正溫度系數(shù)熱敏電阻(pt100)的溫度檢測范圍為-50℃至200℃,檢測精度為0.5℃,溫度檢測電路如圖2所示。
第二步:確定溫度與電阻阻值、溫度與采樣電壓的關(guān)系
一般地,依據(jù)pt100廠家給定的數(shù)據(jù)手冊,可以查詢到溫度與電阻阻值的對應(yīng)關(guān)系,例如:擬合的線性溫度計(jì)算公式,或溫度與電阻阻值的一對一映射列表。
根據(jù)f2808數(shù)字處理芯片數(shù)據(jù)手冊可知,其a/d采樣端口為12位采樣精度,輸入電壓為0v至3v,采樣電壓數(shù)字輸出為0至4095;圖2中,通過適配相應(yīng)的電阻阻值,可以設(shè)定溫度[-50,200]對應(yīng)采樣電壓[0,3],并對應(yīng)a/d采樣端口數(shù)字量[0,4095]。
第三步:確定溫度的一維數(shù)組大小
為建立從-50℃至200℃溫度范圍的一維數(shù)組,并滿足0.5℃的溫度采樣精度,需將0.5℃作為線性度的最小誤差求解溫度區(qū)間個(gè)數(shù);設(shè)定本例中需劃分40個(gè)溫度區(qū)間,需以41個(gè)溫度點(diǎn)進(jìn)行劃分,即:得到溫度數(shù)組大小為41。
第四步:確定溫度的一維數(shù)組數(shù)據(jù)
依據(jù)(4095-0)÷40=102.375,可計(jì)算得出pt100等電壓區(qū)間的間隔為102.375,即得到數(shù)組大小為41的電壓一維數(shù)組[0,102.375,204.75,…,4095];根據(jù)pt100的映射關(guān)系或計(jì)算公式,可以很方便地得到對應(yīng)數(shù)組大小為41的溫度一維數(shù)組[-50,-43.75,-37.5,…,200]。
由于f2808為不帶硬件浮點(diǎn)運(yùn)算單元支持的數(shù)字處理芯片,但為了實(shí)現(xiàn)對浮點(diǎn)數(shù)的運(yùn)算,需將溫度的一維數(shù)組通過iq7格式轉(zhuǎn)換(左移7位),轉(zhuǎn)換為程序編程需要的溫度一維數(shù)組[-6400,-5600,-4800,…,25600];當(dāng)查表和計(jì)算得到對應(yīng)的溫度后,再通過iq7格式轉(zhuǎn)換(右移7位)得到實(shí)際的溫度即可。
第五步:依據(jù)采樣電壓求解數(shù)組索引
當(dāng)f2808檢測到電壓a/d采樣數(shù)據(jù)時(shí),輸出[0,4095]的數(shù)字量,其值實(shí)為iq12格式(左移12位),真實(shí)值的范圍實(shí)為[0,1]。
同樣地,為了對實(shí)現(xiàn)浮點(diǎn)數(shù)的運(yùn)算,將a/d采樣得到的數(shù)字量再進(jìn)行iq12格式轉(zhuǎn)換(iq12左移12位后得到iq24格式);再將該iq24格式的數(shù)字量與左移24位的溫度區(qū)間個(gè)數(shù)iq24(40)相乘,得到iq24格式的數(shù)組索引值,記為“refer”。
第六步:依據(jù)數(shù)組索引求解實(shí)際溫度
對數(shù)組索引值“refer”進(jìn)行“取整操作”,可得到一個(gè)整數(shù),記為“q”,并作為此時(shí)溫度一維數(shù)組的索引,依據(jù)該索引查表得到的溫度值作為檢測溫度的第一部份,記為“t1”,即:t1=temprature[q]。
依據(jù)一小段非線性曲線可由一段直線近似等效的原理,可得到索引值“refer”小數(shù)部份的溫度值。下一個(gè)索引“q+1”對應(yīng)的溫度與索引“q”對應(yīng)溫度的差值,記為“i”,即:i=temprature[q+1]-temprature[q];而對“refer”進(jìn)行“取小數(shù)操作”,記為“j”;最后將“temprature[q+1]-temprature[q]”乘以“j”,即可得到檢測溫度的第二部份,記為“t2”,即:t2=(temprature[q+1]-temprature[q])×j。
最終檢測的溫度,其值應(yīng)等于上述溫度的第一部份與第二部份之和,記為“t”,即:t=t1+t2=temprature[q]+(temprature[q+1]-temprature[q])×j”;最后,將t進(jìn)行iq7格式轉(zhuǎn)換(右移7位),即可計(jì)算出最終檢測的實(shí)際溫度。
根據(jù)以上所述不難看出,該溫度檢測方法沒有使用除法、開方和指數(shù)等運(yùn)算操作,沒有采用二維數(shù)組查表,也沒有使用反復(fù)、循環(huán)查找溫度值的遞歸操作,計(jì)算量小,且簡單高效,這對于溫度的實(shí)時(shí)檢測,不僅減小了對芯片運(yùn)算性能的要求,實(shí)用性也得到大大提高。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,應(yīng)當(dāng)指出的是,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。