1 遠程測溫電路 遠程測量溫度時,傳輸線上存在著較高的共模電壓,須用光耦合器(以下簡稱光耦)對輸出端進 行隔離。三種光耦隔離電路分別如圖1(a)、(b)、(c)所示。 (a)圖為普通光耦隔離電路。TMP03能夠承受5 mA以下的灌電流,可直接與光耦中LED發(fā)光二極管的陰極連通。此時上拉電阻 R1還起到限流作用,防止LED過流損壞。取 R1=620歐姆,當DOUT端呈低電平時,灌電流小于1 mA,LED上的正向壓降僅為1 V左右。需要注意的是,光耦合器的開啟和關閉時間必須完全相同,否則會導致被傳輸?shù)臄?shù)據(jù) 發(fā)生錯誤。某些達林頓型光耦合器(例如4N32)的開啟時間遠大于關閉時間,不能在此使用。 (b)圖中增加了1只2N2907型PNP管,目的是給LED提供較大的工作電流。 (c)圖中采用施密特整形輸出的光耦合器,能降低傳輸噪聲。 進行遠程測溫時,TMP03/04遠優(yōu)于模擬輸出式溫度傳感器。這是因為它輸出的是數(shù)字信號,比模 擬信號的抗干擾能力強。遠程傳輸信號時不得影響t 1/t2的比率,必要時還可加1片ADM485型RS-485 差分線驅動器,電路如 圖 2 所示。該電路能準確傳輸1200 m遠的溫度信號。ADM485中的發(fā)射器和接收器所造成的滯后時間誤差僅為5 ns,不會影響t1、t2 值。在RS-485總線上可以接32片ADM485。 2 TMP03/04與80C51單片機的接口電路 TMP03/04配上單片機后,很容易用微機中的計數(shù)器分別測得 t1、t2,再用軟件計算出溫度值。因為TMP03/04是用時間比率(t1/t2)來計量溫度的,所以并不要求微機的計數(shù)頻率十分精確,但計數(shù)頻 率應足夠高。 TMP04與80C51單片機的接口電路如 圖 3 所示。該接口電路非常簡單,在溫度傳感器與單片機之間 僅需單線連接,TMP04的輸出數(shù)據(jù)可直接加到80C51的P1.0口。若按傳統(tǒng)的串行通信輸入?yún)f(xié)議,至 少需要3條線(數(shù)據(jù)線、時鐘線和片選信號線),甚至更多。這是因為TMP03/04的輸出數(shù)據(jù)僅代表 t1與t2的比率,這與通常講的二進制數(shù)據(jù)完全不同。 80C51內部有2個16位計數(shù)器,并且是由2個專用寄存器分別控制的。TMOD寄存器亦稱定時器 模式寄存器,專門控制定時器0和定時器1的工作模式,決定哪個定時器工作。TCON寄存器則用來 控制定時器0和定時器1的計數(shù)起止時間。這樣很容易分別測出 t1、t2。80C51采用12 MHz晶振頻率時,經(jīng)內部12分頻器后獲得1 MHz的計數(shù)頻率,計數(shù)周期為1us。 接口電路的程序清單如下: ;TMP04與8051的接口測試 ;使用定時器0和1來測量占空比 ;這個程序分三步 ;① 清除定時寄存器,然后等待P1.0輸入腳上出現(xiàn)0-1的跳變(此引腳與TMP04的輸出相連) ;② 一旦P1.0變?yōu)楦撸〞r器0開始啟動。然后程序開始循環(huán)檢測P1.0 ;③ 一旦P1.0變?yōu)榈停〞r器0停止,同時定時器1啟動。程序又再次循環(huán)檢測P1.0,直到P1.0變低,定時器1停止, 從而TMP04的t1和t2 的數(shù)值就會存儲在特殊功能寄存器8AH到8DH(TL0到TH1)中 ;主控程序 $MOD51 $TITLE(TMP04 Interface, Using T0 and T1) $PAGEWIDTH(80) $DEBUG $OBJECT; 變量聲明 PORT1 DATA 90H ; 端口1 ;TCON DATA 88H ; 定時器控制 ;TMOD DATA89H ; 定時器模式 ;TH0 DATA 8CH ; 定時器0高字節(jié) ;TH1 DATA 8DH ; 定時器1高字節(jié) ;TL0 DATA 8AH ; 定時器0低字節(jié) ;TL1 DATA 8BH ; 定時器1低字節(jié) ORG 100H ; 任意的起始地址 READ_TMP04: MOV A,#00 ; 先清除寄存器 MOV TH0,A MOV TH1,A MOV TL0,A ; MOV TL1,A ; WAIT_LO: JB PORT1.0,WAIT_LO ; 等待TMP04輸出變高 MOV A,#11H ; 準備好啟動定時器0 MOV TMOD,A WAIT_HI: JNB PORT1.0,WAIT_HI ; 等待輸出變高 ; 在TMP04輸出變高期間定時器0運行 SETB TCON.4 WAITTIMER0: JB PORT1.0,WAITTIMER0 CLR TCON.4; ;在TMP04輸出變低期間定時器1運行 SETB TCON.6 ; 啟動定時器1 WAITTIMER1: JNB PORT1.0,WAITTIMER1 CLR TCON.6 ; 停止定時器1 MOV A,#0H ; 準備停止定時器 MOV TMOD,A RET END 上述程序用來監(jiān)視TMP04的輸出,并且開啟或關閉相應的計數(shù)器來測量 t1與t2的比率。當TMP04 輸出為高電平(對應于t1)時,由定時器0進行記 錄;當輸出呈低電平(對應于t2)時,由定時器1 記錄。記錄結果存儲在特殊功能寄存器SFR的08AH~08DH單元中。 在調用讀TMP04的程序時,計數(shù)寄存器就被清零。程序首先將計數(shù)器置成16位模式,然后等待 TMP04輸出為高電平。當P1.0口輸入高電平時,定時器0開始工作,程序用來監(jiān)視輸入口計數(shù)器進行 累加計數(shù)。一旦TMP04輸出為低電平,定時器0就停止計數(shù),而定時器1開始計數(shù),直到TMP04的輸 出又變成高電平為止。執(zhí)行完上述子程序之后,定時器0中的 t1值和定時器1中的t2 值,分別存入各自的專用寄存器中。最后由軟件計算出被測溫度to由于80C51與TMP04屬于異步操作,因此從TMP04的輸出電平發(fā)生跳變、到定時器開始工作之間,必 須加上延遲時間。這個延遲時間從0us開始,到識別轉換指令為止。控制80C51跳轉到某位置的指 令,需要24個時鐘周期,即24/12 MHz=2uso在+25°C時,由2us延遲時間所造成的測溫誤差約為±0.15 °C,一般可忽略不計。 3 TMP04與數(shù)字信號處理器ADSP-2101的接口電路 數(shù)字信號處理器(DSP)屬于CMOS超大規(guī)模集成電路(VLSI),其集成度可達2000萬個元件/片, 運算速度高達2億次/s,電源電壓為1.5~5 V。TMP04很容易和ADSP-2100系列DSP芯片相匹配,典型電路如 圖 4 所示。TMP04的D OUT端接ADSP-2101的輸入端FI。ADSP-2101內部只有1個計數(shù)器,但其運 行速度極快,采用了分時計數(shù)的辦法完全可代替80C51中2個計數(shù)器的功能。ADSP-2101完成1個指 令僅需1個時鐘周期,相比之下80C51需要12個時鐘周期。因此,采用相同的時鐘頻率時,ADSP-2101 可獲得更精確的結果。 ADSP-2101中的定時器可視為一個可編程減法計數(shù)器。使用軟件編程時,計數(shù)頻率按照時鐘的預 分頻系數(shù)進行分頻。將(N-1)存入預分頻系數(shù)寄存器中,則晶振頻率將被 N分頻。例如,將4存入寄存器時,就對10 MHz晶振頻率進行5分頻,得到2 MHz的計數(shù)頻率。在程序開始時,首先設定寄存器的初始值為0FFFH。ADSP-2101開始監(jiān)視FI端 的輸入電平,直到出現(xiàn)一個下降沿時啟動計數(shù)器。當TMP04輸出變高時,計數(shù)器停止計數(shù),計數(shù)值也 從0FFFH減到實際值,并存儲下來。然后計數(shù)器又重新置數(shù),再次做減計數(shù),直到TMP04輸出為低。 這樣就先后測出了t2、t1值。 TMP03/04用來監(jiān)視電子設備中高速uP、DSP芯片的溫度時,將TMP03/04裝在下邊并盡量貼近 uP或DSP芯片,即可測出芯片的表面溫度。對于TO-92封裝的TMP03/04,直接固定在印制版(PCB) 上,就能檢測流過印制板的空氣溫度。 |