胡明欽
(黃石職業(yè)技術學院 機械系,湖北 黃石 435005)
溫度是人們?nèi)粘I钪谐3P枰獪y量和控制的一個物理量。傳統(tǒng)的溫度計有反應速度慢、讀數(shù)麻煩、測量精度不高、誤差大等缺點,而在某些特定的場合,器材設備對溫度的要求極高,設計一種高精度的溫度計就顯得十分有意義。設計的高精度溫度計有著線性優(yōu)良、性能穩(wěn)定、靈敏度高、使用方便、軟硬件結構實現(xiàn)了模塊化、電路簡單等優(yōu)點。
熱敏電阻是對溫度變化非常敏感的電阻元件,它在測溫技術、無線電技術、自動化和遙控等方面都得到廣泛的應用。熱敏電阻能夠?qū)h(huán)境溫度的變化轉(zhuǎn)化為電阻自身阻值的變化,它將溫度的變化轉(zhuǎn)換為連續(xù)的電信號的變化,再由外電路把該電信號轉(zhuǎn)化成單片機可處理的脈沖(頻率)信號,由單片機來直接處理。熱敏電阻構成的555振蕩電路能夠?qū)崿F(xiàn)由電阻到頻率的轉(zhuǎn)換功能[1],建立起由溫度到電阻值再到頻率的對應關系。處理器對頻率信號的處理精度直接影響著溫度測量的精度,采用等精度測頻方案能夠滿足精度的要求,設計中采用查表法和插值法來建立頻率與溫度的轉(zhuǎn)換關系[2]。設計的數(shù)字溫度計主要由下面4部分組成:溫度傳感部分、等精度測頻部分、頻率溫度轉(zhuǎn)換部分、數(shù)據(jù)緩存及顯示部分,原理圖如圖1所示。
圖1 數(shù)字溫度計原理框圖Fig.1 Principle block diagram of digital thermometer
設計中用到的主要模塊有:1)單片機最小系統(tǒng)。單片機最小系統(tǒng)或者稱為最小應用系統(tǒng),是指用最少的元件組成的單片機可以工作的系統(tǒng)。單片機最小系統(tǒng)一般應該包括:單片機、晶振電路、復位電路。2)CPLD(Complex Programmable Logic Device)。復雜可編程邏輯器件。其具有編程靈活、集成度高、設計開發(fā)周期短、適用范圍寬、開發(fā)工具先進、設計制造成本低、對設計者的硬件經(jīng)驗要求低、標準產(chǎn)品無需測試、保密性強、價格大眾化等特點,可實現(xiàn)較大規(guī)模的電路設計,因此被廣泛應用于產(chǎn)品的原型設計和產(chǎn)品生產(chǎn)之中。CPLD內(nèi)部結構為“與或陣列”,該結構來自于典型的PAL、GAL器件的結構。任意一個組合邏輯都可以用“與—或”表達式來描述,所以該 “與或陣列”結構能實現(xiàn)大量的組合邏輯功能。CPLD最基本的單元是宏單元。一個宏單元包含一個寄存器(使用多達16個乘積項作為其輸入)及其他有用特性。因為每個宏單元用了16個乘積項,因此設計人員可部署大量的組合邏輯而不用增加額外的路徑。單片機與CPLD之間的三總線結構,如圖2所示。
圖2 單片機與CPLD的三總線結構Fig.2 Three total line between microcontroller and CPLD
由熱敏電阻與555定時器構成多諧振蕩電路如圖3所示,該電路能夠?qū)崿F(xiàn)由溫度變化到電阻變化再到頻率變化的變換[3]。
圖3 NTC與555構成溫度感應模塊Fig.3 Temperature induction module by NTC and 555 chip
555振蕩電路頻率:
熱敏電阻NTC的阻值與溫度的關系:
其中RT1是熱敏電阻NTC,C為放電電容,RN是在額定溫度 TN(K)時的 NTC 熱敏電阻阻值,T 規(guī)定溫度(K),B 是NTC熱敏電阻的材料常數(shù)[4]。由以上兩個公式可將建立起由溫度到電阻值,再由電阻值到頻率的換算關系,實現(xiàn)頻率到溫度的轉(zhuǎn)換:
1)555 電路的振蕩頻率:f=1/((R1+2RT1)C1ln2),即頻率與電阻值的關系;
2)半導體熱敏電阻NTC的特性曲線(溫度與電阻的關系)。在一定溫度范圍內(nèi),半導體材料的電阻RT和絕對溫度T的關系可表示為:
其中常數(shù)a不僅與半導體材料的性質(zhì)有關而且與它的尺寸均有關,而常數(shù)b僅與材料的性質(zhì)有關,常數(shù)a和b可通過實驗方法測得,計算出a和b后,就可以根據(jù)公式(3)計算出溫度值。因為NTC的阻值和溫度之間是指數(shù)關系,以單片機為處理器的系統(tǒng)計算這一方程效率很低,因此本文使用查表法與插值法計算溫度,提高了測量的效率,簡化了計算的復雜性。假設測溫范圍為-10~50,可先將-10~50分為60段,每一度的氣溫對應一段頻率值。然后分別將NE555電路在-10°,-9°,-8°......48°,49°,50°時的輸出頻率實際測試出來并存儲在單片機的ROM中,建立時鐘頻率與溫度的對應表。而在每一個度的溫度段內(nèi)近似認為頻率與溫度成線性關系在實際轉(zhuǎn)換過程中,首先根據(jù)測量的時鐘頻率確定其所在的溫度段,再按線性方程求出此頻率所對應的溫度值,由此實現(xiàn)由頻率到溫度的轉(zhuǎn)換。
等精度測頻的主要思想[5-7]:利用兩個計數(shù)器在同一時間段內(nèi)同時對兩個時鐘信號進行計數(shù),由已知時鐘的頻率和兩個計數(shù)器的計數(shù)值可得出待測信號的頻率。具體如圖4所示,首先設置時鐘閘門信號的寬度,在這段時間內(nèi),計數(shù)器1和計數(shù)器2同時對兩個時鐘信號進行計數(shù),計數(shù)器1所計的時鐘信號的頻率為已知的基準時鐘,其頻率為Fb。計數(shù)器2所計的時鐘信號為待測的時鐘信號,假設在等時間內(nèi)計數(shù)器1計數(shù)器2計數(shù)數(shù)值分別為Nb和Nx。由兩計數(shù)器在同時間段內(nèi)計數(shù),有以下關系式:
由此式可得待測時鐘信號的頻率為:
圖4 等精度測頻原理圖Fig.4 Principle figure of same precision measuring frequency
等精度測頻功能的實現(xiàn)需要單片機與CPLD的協(xié)調(diào)合作實現(xiàn)。計數(shù)器1用單片機的定時器1實現(xiàn),計數(shù)器2用CPLD來配置。單片機部分的主要作用是:負責控制外部計數(shù)器和內(nèi)部定時器計數(shù)器的開啟與關閉;外部計數(shù)器和內(nèi)部定時器計數(shù)器的數(shù)據(jù)的讀取;處理以及數(shù)據(jù)輸出緩存。測量開始,單片機首先發(fā)出清零信號,對外部CPLD計數(shù)器清零,然后將內(nèi)部定時器清零,配置成外部時鐘控制方式,然后發(fā)出計數(shù)啟動信號,隨后進入等精度頻率測量計數(shù)模式,單片機通過查詢計數(shù)器,判斷計數(shù)時間,該計數(shù)時間必須小于外部32 bit計數(shù)器溢出時間,時間一到,單片機發(fā)出停止計數(shù)信號,查詢引腳P3.2,確認計數(shù)停止,讀回外部計數(shù)結果和內(nèi)部計數(shù)器計數(shù)結果,假設分別為N1和N2,定時器計數(shù)時間間隔為T1,那么被測信號的頻率F=(N1/N2)T1,將計算出的數(shù)據(jù)輸送到頻率溫度轉(zhuǎn)化模塊等待數(shù)據(jù)轉(zhuǎn)換。
CPLD部分主要完成對被測信號的測量計數(shù)和總線設計。由于所用CPLD芯片內(nèi)資源較少,其內(nèi)部只能設置一個32位計數(shù)器。這部分在Max+plusII環(huán)境下完成電路的硬件設計與仿真,采用原理圖輸入。硬件設計共包括4個部分:輸入、輸出、計數(shù)器和總線接口部分??傮w設計結構如圖5所示,其中mcu_ctr1模塊為總線接口模塊,frequency模塊為測量計數(shù)模塊。
圖5 總體設計的電路圖Fig.5 Circuit diagram of total designing
源程序流程圖如圖6所示。
圖6 源程序流程圖Fig.6 Flow chart of source program
主要程序分析(頻率溫度轉(zhuǎn)換部分):
OPEN=0;關閉閘門控制閘門的開啟關閉,閘門信號提供兩個計數(shù)器的計數(shù)時間。
temp1=0;清零被測信號脈沖計數(shù)器。while(GATE)
if(temp1++>65000) break;判斷外部信號上升與是否到來。
CLRP=1;
CLRP=0;
給CPLD一個上升沿的脈沖信號,實現(xiàn)對CPLD的計數(shù)清零。
while(GATE)
if(temp1++>65000) break;
定時器溢出且外部信號上升沿到來時超時跳出。
temp=counter*65536+TH0*256+TL0;
fx=1843200/temp;//22118400/12=1843200;
fx=fx*(REG2*65536+REG1*256+REG0);
計算單片機的計數(shù)并根據(jù)基準時鐘的脈沖數(shù)目,時鐘周期由被測信號脈沖數(shù)目計算出待測信號頻率。
通過與基準溫度對比的方法對設計的溫度計精度進行驗證。首先使用精度較高的溫度計測得實際溫度作為基準溫度,然后利用設計好的數(shù)字溫度計測量實際溫度與基準溫度進行對比,測量結果如表1所示。通過對比測試結果,發(fā)現(xiàn)設計的數(shù)字溫度計測量的溫度與基準溫度相差很小,絕對誤差小于0.1°C,相對誤差小于0.3%,達到了設計的精度要求。
表1 測試結果Tab.1 Test results
總之,通過利用單片機與CPLD的配合完成頻率的精確測量,實現(xiàn)了等精度測頻功能。利用等精度測頻功能確保了測量溫度數(shù)據(jù)處理的精確性,使設計的溫度計的精度達到實際應用的要求。在系統(tǒng)中等精度頻率測量模塊采用8位51單片機定時器作為基準信號的計數(shù)器,由于該基準信號頻率較低,對精度有一定影響。如果采用更高頻率基準信號,測頻精度還可提高,從而提高測量溫度的精度。
[1]宋佳,樸林華,劉玉潔,等.熱敏電阻的排列對傳感器靈敏度的影響[J].電子元件與材料,2009,28(4):24-26.SONG Jia, PIAO Lin-hua, LIU Yu-jie, et al.Effect of arrangement for hot-resistance on the sensitivity of sensor[J].Electronic Components and Materials, 2009,28(4):24-26.
[2]任國興,王曉影,杜立彬.基于AD7799的熱敏電阻高精度測溫系統(tǒng)[J].電子設計工程, 2010,18(11):82-84.REN Guo-xing,WANG Xiao-ying,DU Li-bin.Design of high precision thermistor temperature measurement system based on AD7799 [J].Electronic Design Engineering, 2010,18(11):82-84.
[3]馮榮達,曹柏榮.基于熱敏電阻的多點溫度測量系統(tǒng)[J].微計算機信息, 2008, 24(4-2):110-111.FENG Rong-da, CAO Bai-rong. The multiple-point temperature measurement system based on heat-variable resistor[J].Microcomputer Information, 2008, 24 (4-2):110-111.
[4]楊如祥.一種低成本高精度溫度測量方法[J].浙江萬里學院學報, 2007, 20(5):39-45.YANG Ru-xiang.A low-cost and pinpointmethod for temperature measuring [J].JournalofZhejiang Wanli University, 2007, 20(5):39-45.
[5]謝小東,李良超.基于FPGA的等精度數(shù)字頻率計設計[J].實驗科學與技術,2005(10):177-179.XIE Xiao-dong,LI Liang-chao.Designing digital cymometer of equal precision based on FPGA[J].Experiment Science and Techndogy, 2005(10):177-179.
[6]田開坤,劉穎.一種高性價比等精度數(shù)字頻率計方案設計[J].單片機與嵌入式系統(tǒng)應用,2010(1):53-56.TIAN Kai-kun,LIU Ying.A cost-effective precision digital frequency meter[J].Microcontrollers&Embedded Systems,2010(1):53-56.
[7]唐亞平,王學梅.基于FPGA的等精度數(shù)字頻率計的設計[J].電子元器件應用, 2005(10):63-65.TANGYa-ping,WANGXue-mei.Designofsameprecisiondigital frequency meter based on FPGA[J].Electronic Component&Device Applications, 2005(10):63-65.