基于TMP04的PIC單片機測溫實(shí)現
關(guān)鍵詞:數字式溫度傳感器 PCI單片機 TMP04 PWM
1 引言
在大多數測控系統中,溫度都是必不可少的檢測量,溫度傳感器也是測控系統中十分重要的傳感器件。隨著(zhù)數字 化傳感器技術(shù)的不斷發(fā)展,出現了各種類(lèi)型的數字溫度傳感器。數字溫度傳感器可以直接將被檢測的溫度信息以數字化形式輸出,與傳統的模擬式溫度傳感器相比,具有測量精度高、功耗低、穩定性好、外圍接口電路簡(jiǎn)單特點(diǎn)。而單片機微處理器越來(lái)越豐富的外圍功能模塊,更加方便了數字式溫度傳感器輸出信號的處理。數字式溫度傳感器主要的輸出模式有PWM、SPI、I2C、SMBus等,當今主流的單片機幾乎都支持這種接口方式,文中以PWM輸出模式為例,討論了PIC單片機對于這種輸出模式的測溫方案。PWM模式輸出的數字溫度傳感器如TMP03/04、TPM05/06等,都是將傳感器件測得的溫度信息數字化后,經(jīng)過(guò)一定的輸出編碼,調制成占空比與溫度成正比的數字脈沖信號單線(xiàn)輸出。輸出信號接入微處理器后,只需測得數字脈沖信號的占空比就可由軟件運算得到相應的溫度信息。而對于微處理器來(lái)說(shuō),輸入信號占空比的計算方式多種多樣以PCI系列單片機為例,在PIC16、PIC17、PIC18中均可由CCP模塊的捕捉功能、RB端口電平變化中斷功能,外部中斷功能等多種方法實(shí)現。以下將分別作以介紹。
2 硬件設計
由于數字式溫度傳感器直接輸出數字脈沖信號,無(wú)需后續的AD轉換和溫度補償,所以基于數字式溫度傳感器的測溫電路硬件非常簡(jiǎn)單,僅需要單片機微處理器和傳感芯片就可實(shí)現。除了個(gè)別集電極開(kāi)路輸出的傳感芯片在接入單片機時(shí)需要外加上拉電阻以外,其余的傳感芯片可與單片機直接相連。在此選用PCI系列單片機作為微處理器,ADI公司的TMP04數字式溫度傳感器作為傳感芯片。
2.1 PIC系列單片機簡(jiǎn)介
PIC系列單片機是美國微芯(Microchip)公司生產(chǎn)的8位COMS單片機,它內部采用哈佛總線(xiàn)結構,使得全部指令單字節、單周期化,有利于提高CPU執行搜集的速度,從而提高單片機的運行速度。它的指令系統采用精簡(jiǎn)指令集(R1SC)技術(shù),尋址方式非常簡(jiǎn)單,便于程序的編寫(xiě)與調試。它豐富的外部功能模塊更是為外設提供了極其方便的接口,使得許多外部設備可以直接與微處理器進(jìn)行通信。本設計采用的PIC18F458具有最大25mA的拉/灌電流、3個(gè)外部中斷、4個(gè)定時(shí)器/計數器、2個(gè)捕捉/比較/脈沖調制(CCP)模塊、SPI和I2C二種工作方式的主同步串行模塊(MSSP)、可尋址的USART模塊、高級10位8通道模數轉換器以及集成的CAN總線(xiàn)模塊等多種外圍功能模塊。
2.2 數字式溫度傳感器TMP04簡(jiǎn)介
TMP04是ADI公司生產(chǎn)的一款低功耗、高精度、寬動(dòng)態(tài)輸入范圍的PWM模式輸出的數字式溫度傳感器。TMP04是三端單線(xiàn)式器件,其總體功能框圖如圖1所示,測量結果以PWM編碼式數字脈沖信號在DOUT引腳輸出,輸出信號的占空比與所測溫度成正比,其輸出編碼格式以及具體的溫度計算公式如圖2所示。其中,T1一般為10ms,最大不趕12ms,T2隨著(zhù)溫度的變化而變化,輸出不同占空比的數字脈沖信號時(shí)表示不同的溫度.
?。裕停校埃磧炔亢幸粋€(gè)由輸入采樣器、模擬求和器、積分器、比較器、1位DAC以及數字濾波器構成的∑-Δ型模數轉換器,如圖3所示。該模數轉換器具有分辨率高、線(xiàn)性度好、抗混疊哭聲和量化噪聲能力強等諸多優(yōu)點(diǎn),非常適用于數字式溫度傳感器等微傳感系統。由于∑-Δ型模數轉換器的作用,TMP04的最大功耗不超過(guò)6.5mW,全程線(xiàn)性誤差只有0.5℃,穩定性非常高。同時(shí)TMP04的動(dòng)態(tài)輸入范圍比較大,精度也比較高,在-25℃~125℃溫度范圍內誤差僅為1.5℃。TMP04還有一個(gè)與其結構、功能很類(lèi)似的同類(lèi)產(chǎn)品TMP03,二者唯一的區別就是TMP03的輸出級采用集電極開(kāi)路電路,輸出電流可達5mA,驅動(dòng)能力強,可驅動(dòng)光耦實(shí)現遠程測溫,接入單片機時(shí)需要外接上拉電阻,而TMP04的輸出級采用互補型MOSFET電路,其輸出電平與COMS/TTL電路兼容,可直接接入單片機。
3 軟件設計
由PWM編碼的原理可知,要測出PWM數字脈沖信號所攜帶的溫度信號,只要檢測出數字脈沖信號的占空比即可,以PIC18系列為例,一個(gè)單片機有9個(gè)不同的端口(2個(gè)CCP模塊端口、4個(gè)RB電平變換中斷端口、3個(gè)外部中斷INT端口),可以測出TMP04的輸出溫度,這為PWM編碼式溫度數字傳感器提供了相當靈活的接口方式和更為廣闊的應用空間。
3.1 由CCP模塊的捕捉功能實(shí)現
捕捉/比較/脈寬調制CCP模塊是PIC單片機特有的外圍功能模塊,它與TMR1和TMR2配合使用實(shí)現輸入捕捉、輸出比較和脈寬調制輸出等功能。其中輸入捕捉模式用于測量引腳輸入信號的周期、頻率、脈寬、信號的到達時(shí)刻以及消失時(shí)刻等。結合TMP04輸出信號的特點(diǎn),可以利用CCP模塊分別測量出TMP04輸出信號的高電平脈寬T1和低脈寬T2,然后間接算出信號的占空比,從而得到TMP04輸出的溫度信息。詳細的程序流程圖如圖4所示。
3.2 由RB端口電平變化中斷實(shí)現
與其它單片機不同,PIC單片機的RB4-RB7端口具有輸入電平變化中斷功能,當RB4-RB7任意一個(gè)引腳上的輸入電平發(fā)生變化(由高變低或由低變高)時(shí),都可以引起CPU中斷,執行中斷處理程序。因此,可以將TMP04的輸出信號輸入RB4,當輸入RB4的信號發(fā)生跳變時(shí),利用RB4的電平變換中斷調用中斷處理程序分別對信號高低電平的脈寬進(jìn)行測量,從而間接算出信號的占空比,最終得到TMP04輸出的溫度信息。程序流程圖如圖5所示。
3.3 由外部中斷INT實(shí)現
由外部中斷INT實(shí)現與由RB端口電平變化中斷實(shí)現的設計方案類(lèi)似,都是由單片機響應電平變化產(chǎn)生中斷,再通過(guò)中斷服務(wù)程序計算高低脈寬,從而得到TMP04輸出信號的占空比和所攜帶的溫度信息。所以由外部中斷INT實(shí)現和由RB端口電平變化中斷實(shí)現程序類(lèi)似,只是將中斷源改為INT0(INT1,INT2均可)中斷,使能INT0中斷使能位INT0IE,判斷INT0中斷標志位INT0IF,由于INT0輸入為RB0引腳,上例中設RB0為輸入,并由INTEDG0判斷高低電平即可,注意要啟動(dòng)RB口的弱上拉功能,其總體的程序流程程圖類(lèi)似圖5。
4 實(shí)驗數據對比
利用簡(jiǎn)單的電路及以上軟件程序在室溫為24.1℃時(shí),筆者用三種方法測量溫度,為了得到更好的精度,每種分別設計了泄編和C評議二種測溫程序,其結果與平均值如表1所示。
表1 測試結果與平均值
方 法 | 測 溫 結 果 | 平均值 | |
匯編程序 | C程序 | ||
CCP捕捉模塊 | 23.9 | 23.9 | 23.9 |
RB電平變化中斷 | 24.5 | 24.1 | 24.3 |
INT0外部中斷 | 24.4 | 24.4 | 24.4 |
5 結束語(yǔ)
設計基于PWM模式輸出的數字式溫度傳感器的測溫系統時(shí),關(guān)鍵是對傳感器輸出的脈沖信號高低電平脈寬的測量。由于測量脈寬是由定時(shí)器在高電平(低電平)期間計數實(shí)現的,所以單片機的指令周期將直接影響到測量的精度,指令周期越短精度越高。但是如果指令周期短而晶振頻率高,將會(huì )引入高頻干擾,所以晶振要根據系統實(shí)現情況選取。此外還要注意PIC單片機定時(shí)器預分頻比的設定,應在保證測量傳感器信號脈寬進(jìn)不會(huì )發(fā)生溢出的情況下使分頻比最小,這樣有利于提高測量精度。
評論