單片機(jī)控制的數(shù)字溫度計(jì)的設(shè)計(jì)
基于實(shí)際應(yīng)用中許多場(chǎng)合對(duì)溫度高精度測(cè)量的需求,利用ATF1504芯片與單片機(jī)最小系統(tǒng),采用等精度頻率測(cè)量技術(shù),設(shè)計(jì)了一款高精度數(shù)字溫度計(jì)。該方案采用ATF1504芯片作為可編程邏輯器件,以高靈敏度負(fù)溫度系數(shù)熱敏電阻為溫度傳感器。利用ATF1504芯片與單片機(jī)配合完成待測(cè)信號(hào)頻率的精確測(cè)量,從而實(shí)現(xiàn)溫度的精確測(cè)量。實(shí)驗(yàn)數(shù)據(jù)表明該溫度計(jì)的測(cè)溫相對(duì)誤差小于0.3%。
本文引用地址:http://m.butianyuan.cn/article/201706/347813.htm溫度是人們?nèi)粘I钪谐3P枰獪y(cè)量和控制的一個(gè)物理量。傳統(tǒng)的溫度計(jì)有反應(yīng)速度慢、讀數(shù)麻煩、測(cè)量精度不高、誤差大等缺點(diǎn),而在某些特定的場(chǎng)合,器材設(shè)備對(duì)溫度的要求極高,設(shè)計(jì)一種高精度的溫度計(jì)就顯得十分有意義。設(shè)計(jì)的高精度溫度計(jì)有著線性優(yōu)良、性能穩(wěn)定、靈敏度高、使用方便、軟硬件結(jié)構(gòu)實(shí)現(xiàn)了模塊化、電路簡(jiǎn)單等優(yōu)點(diǎn)。
1 設(shè)計(jì)方案
熱敏電阻是對(duì)溫度變化非常敏感的電阻元件,它在測(cè)溫技術(shù)、無線電技術(shù)、自動(dòng)化和遙控等方面都得到廣泛的應(yīng)用。熱敏電阻能夠?qū)h(huán)境溫度的變化轉(zhuǎn)化為電阻自身阻值的變化,它將溫度的變化轉(zhuǎn)換為連續(xù)的電信號(hào)的變化,再由外電路把該電信號(hào)轉(zhuǎn)化成單片機(jī)可處理的脈沖(頻率)信號(hào),由單片機(jī)來直接處理。熱敏電阻構(gòu)成的555振蕩電路能夠?qū)崿F(xiàn)由電阻到頻率的轉(zhuǎn)換功能,建立起由溫度到電阻值再到頻率的對(duì)應(yīng)關(guān)系。處理器對(duì)頻率信號(hào)的處理精度直接影響著溫度測(cè)量的精度,采用等精度測(cè)頻方案能夠滿足精度的要求,設(shè)計(jì)中采用查表法和插值法來建立頻率與溫度的轉(zhuǎn)換關(guān)系。
設(shè)計(jì)的數(shù)字溫度計(jì)主要由下面4部分組成:溫度傳感部分、等精度測(cè)頻部分、頻率溫度轉(zhuǎn)換部分、數(shù)據(jù)緩存及顯示部分,原理圖如圖1所示。設(shè)計(jì)中用到的主要模塊有:1)單片機(jī)最小系統(tǒng)。單片機(jī)最小系統(tǒng)或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。單片機(jī)最小系統(tǒng)一般應(yīng)該包括:?jiǎn)纹瑱C(jī)、晶振電路、復(fù)位電路。2)CPLD(Complex ProgrammableLogic Device)。復(fù)雜可編程邏輯器件。其具有編程靈活、集成度高、設(shè)計(jì)開發(fā)周期短、適用范圍寬、開發(fā)工具先進(jìn)、設(shè)計(jì)制造成本低、對(duì)設(shè)計(jì)者的硬件經(jīng)驗(yàn)要求低、標(biāo)準(zhǔn)產(chǎn)品無需測(cè)試、保密性強(qiáng)、價(jià)格大眾化等特點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路設(shè)計(jì),因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計(jì)和產(chǎn)品生產(chǎn)之中。CPLD內(nèi)部結(jié)構(gòu)為“與或陣列”,該結(jié)構(gòu)來自于典型的PAL、GAL器件的結(jié)構(gòu)。任意一個(gè)組合邏輯都可以用“與-或”表達(dá)式來描述,所以該“與或陣列”結(jié)構(gòu)能實(shí)現(xiàn)大量的組合邏輯功能。CPLD最基本的單元是宏單元。一個(gè)宏單元包含一個(gè)寄存器(使用多達(dá)16個(gè)乘積項(xiàng)作為其輸入)及其他有用特性。因?yàn)槊總€(gè)宏單元用了16個(gè)乘積項(xiàng),因此設(shè)計(jì)人員可部署大量的組合邏輯而不用增加額外的路徑。單片機(jī)與CPLD之間的三總線結(jié)構(gòu),如圖2所示。
2 硬件部分設(shè)計(jì)
2.1 溫度與頻率轉(zhuǎn)換部分的設(shè)計(jì)
由熱敏電阻與555定時(shí)器構(gòu)成多諧振蕩電路如圖3所示,該電路能夠?qū)崿F(xiàn)由溫度變化到電阻變化再到頻率變化的變換。
555振蕩電路頻率:
其中Rn是熱敏電阻NTC,C為放電電容,RN是在額定溫度TN(K)時(shí)的NTC熱敏電阻阻值,T規(guī)定溫度(K),B是NTC熱敏電阻的材料常數(shù)。由以上兩個(gè)公式可將建立起由溫度到電阻值,再由電阻值到頻率的換算關(guān)系,實(shí)現(xiàn)頻率到溫度的轉(zhuǎn)換:
1)555電路的振蕩頻率:f=1/((R1+2RT1)C1ln2),即頻率與電阻值的關(guān)系;
2)半導(dǎo)體熱敏電阻NTC的特性曲線(溫度與電阻的關(guān)系)。在一定溫度范圍內(nèi),半導(dǎo)體材料的電阻RT和絕對(duì)溫度T的關(guān)系可表示為:
其中常數(shù)a不僅與半導(dǎo)體材料的性質(zhì)有關(guān)而且與它的尺寸均有關(guān),而常數(shù)b僅與材料的性質(zhì)有關(guān),常數(shù)a和b可通過實(shí)驗(yàn)方法測(cè)得,計(jì)算出a和b后,就可以根據(jù)公式(3)計(jì)算出溫度值。因?yàn)镹TC的阻值和溫度之間是指數(shù)關(guān)系,以單片機(jī)為處理器的系統(tǒng)計(jì)算這一方程效率很低,因此本文使用查表法與插值法計(jì)算溫度,提高了測(cè)量的效率,簡(jiǎn)化了計(jì)算的復(fù)雜性。假設(shè)測(cè)溫范圍為-10~50,可先將-10~50分為60段,每一度的氣溫對(duì)應(yīng)一段頻率值。然后分別將NE555電路在-10°,-9°,-8°……48°,49°,50°時(shí)的輸出頻率實(shí)際測(cè)試出來并存儲(chǔ)在單片機(jī)的ROM中,建立時(shí)鐘頻率與溫度的對(duì)應(yīng)表。而在每一個(gè)度的溫度段內(nèi)近似認(rèn)為頻率與溫度成線性關(guān)系在實(shí)際轉(zhuǎn)換過程中,首先根據(jù)測(cè)量的時(shí)鐘頻率確定其所在的溫度段,再按線性方程求出此頻率所對(duì)應(yīng)的溫度值,由此實(shí)現(xiàn)由頻率到溫度的轉(zhuǎn)換。
2.2 等精度測(cè)頻電路的實(shí)現(xiàn)
等精度測(cè)頻的主要思想:利用兩個(gè)計(jì)數(shù)器在同一時(shí)間段內(nèi)同時(shí)對(duì)兩個(gè)時(shí)鐘信號(hào)進(jìn)行計(jì)數(shù),由已知時(shí)鐘的頻率和兩個(gè)計(jì)數(shù)器的計(jì)數(shù)值可得出待測(cè)信號(hào)的頻率。具體如圖4所示,首先設(shè)置時(shí)鐘閘門信號(hào)的寬度,在這段時(shí)間內(nèi),計(jì)數(shù)器1和計(jì)數(shù)器2同時(shí)對(duì)兩個(gè)時(shí)鐘信號(hào)進(jìn)行計(jì)數(shù),計(jì)數(shù)器1所計(jì)的時(shí)鐘信號(hào)的頻率為已知的基準(zhǔn)時(shí)鐘,其頻率為Fb。計(jì)數(shù)器2所計(jì)的時(shí)鐘信號(hào)為待測(cè)的時(shí)鐘信號(hào),假設(shè)在等時(shí)間內(nèi)計(jì)數(shù)器1計(jì)數(shù)器2計(jì)數(shù)數(shù)值分別為Nb和Nx。由兩計(jì)數(shù)器在同時(shí)間段內(nèi)計(jì)數(shù),有以下關(guān)系式:
等精度測(cè)頻功能的實(shí)現(xiàn)需要單片機(jī)與CPLD的協(xié)調(diào)合作實(shí)現(xiàn)。計(jì)數(shù)器1用單片機(jī)的定時(shí)器1實(shí)現(xiàn),計(jì)數(shù)器2用CPLD來配置。單片機(jī)部分的主要作用是:負(fù)責(zé)控制外部計(jì)數(shù)器和內(nèi)部定時(shí)器計(jì)數(shù)器的開啟與關(guān)閉;外部計(jì)數(shù)器和內(nèi)部定時(shí)器計(jì)數(shù)器的數(shù)據(jù)的讀?。惶幚硪约皵?shù)據(jù)輸出緩存。測(cè)量開始,單片機(jī)首先發(fā)出清零信號(hào),對(duì)外部CPLD計(jì)數(shù)器清零,然后將內(nèi)部定時(shí)器清零,配置成外部時(shí)鐘控制方式,然后發(fā)出計(jì)數(shù)啟動(dòng)信號(hào),隨后進(jìn)入等精度頻率測(cè)量計(jì)數(shù)模式,單片機(jī)通過查詢計(jì)數(shù)器,判斷計(jì)數(shù)時(shí)間,該計(jì)數(shù)時(shí)間必須小于外部32 bit計(jì)數(shù)器溢出時(shí)間,時(shí)間一到,單片機(jī)發(fā)出停止計(jì)數(shù)信號(hào),查詢引腳P3.2,確認(rèn)計(jì)數(shù)停止,讀回外部計(jì)數(shù)結(jié)果和內(nèi)部計(jì)數(shù)器計(jì)數(shù)結(jié)果,假設(shè)分別為N1和N2,定時(shí)器計(jì)數(shù)時(shí)間間隔為T1,那么被測(cè)信號(hào)的頻率F=(N1/N2)T1,將計(jì)算出的數(shù)據(jù)輸送到頻率溫度轉(zhuǎn)化模塊等待數(shù)據(jù)轉(zhuǎn)換。
CPLD部分主要完成對(duì)被測(cè)信號(hào)的測(cè)量計(jì)數(shù)和總線設(shè)計(jì)。由于所用CPLD芯片內(nèi)資源較少,其內(nèi)部只能設(shè)置一個(gè)32位計(jì)數(shù)器。這部分在Max+p lusII環(huán)境下完成電路的硬件設(shè)計(jì)與仿真,采用原理圖輸入。硬件設(shè)計(jì)共包括4個(gè)部分:輸入、輸出、計(jì)數(shù)器和總線接口部分??傮w設(shè)計(jì)結(jié)構(gòu)如圖5所示,其中mcu_ctrl模塊為總線接口模塊,frequency模塊為測(cè)量計(jì)數(shù)模塊。
3 軟件部分設(shè)計(jì)
源程序流程圖如圖6所示。
主要程序分析(頻率溫度轉(zhuǎn)換部分):
計(jì)算單片機(jī)的計(jì)數(shù)并根據(jù)基準(zhǔn)時(shí)鐘的脈沖數(shù)目,時(shí)鐘周期由被測(cè)信號(hào)脈沖數(shù)目計(jì)算出待測(cè)信號(hào)頻率。
4 實(shí)驗(yàn)結(jié)果
通過與基準(zhǔn)溫度對(duì)比的方法對(duì)設(shè)計(jì)的溫度計(jì)精度進(jìn)行驗(yàn)證。首先使用精度較高的溫度計(jì)測(cè)得實(shí)際溫度作為基準(zhǔn)溫度,然后利用設(shè)計(jì)好的數(shù)字溫度計(jì)測(cè)量實(shí)際溫度與基準(zhǔn)溫度進(jìn)行對(duì)比,測(cè)量結(jié)果如表1所示。通過對(duì)比測(cè)試結(jié)果,發(fā)現(xiàn)設(shè)計(jì)的數(shù)字溫度計(jì)測(cè)量的溫度與基準(zhǔn)溫度相差很小,絕對(duì)誤差小于0.1℃,相對(duì)誤差小于0.3%,達(dá)到了設(shè)計(jì)的精度要求。
總之,通過利用單片機(jī)與CPLD的配合完成頻率的精確測(cè)量,實(shí)現(xiàn)了等精度測(cè)頻功能。利用等精度測(cè)頻功能確保了測(cè)量溫度數(shù)據(jù)處理的精確性,使設(shè)計(jì)的溫度計(jì)的精度達(dá)到實(shí)際應(yīng)用的要求。在系統(tǒng)中等精度頻率測(cè)量模塊采用8位51單片機(jī)定時(shí)器作為基準(zhǔn)信號(hào)的計(jì)數(shù)器,由于該基準(zhǔn)信號(hào)頻率較低,對(duì)精度有一定影響。如果采用更高頻率基準(zhǔn)信號(hào),測(cè)頻精度還可提高,從而提高測(cè)量溫度的精度。
評(píng)論