引 言 ADT75 是ADI公司生產(chǎn)的集溫度傳感器、12位A/D轉換器、可編程的溫度過(guò)限報警器和SMBus/I2C總線(xiàn)接口于一體的新型數字溫度傳感器。其額定工作溫度范圍為-55~+125℃,能準確、靈敏地檢測數字化溫度,溫度誤差最大為±1℃,測溫分辨率可達0.062 5℃;工作電壓范圍為3~5.5 V,3.3 V時(shí)典型的功耗為79μW,在關(guān)斷模式下其典型工作電流值僅為3μA。 1 ADT75的引腳及結構原理 ADT75的引腳排列如圖1所示,引腳說(shuō)明如表1所列。 ![]() ADT75采用8引腳的MOSP和SOIC封裝,其內部結構如圖2所示。 ![]() ADT75的工作過(guò)程為:片上的溫度傳感器采集溫度后,產(chǎn)生一個(gè)與絕對溫度成比例的精確電壓,并與內部參考電壓進(jìn)行比較;然后輸入到精確的數字式調節器中,轉換為有效精度為12位的數據。將該數據與限定值比較,如果測量值超限,則OS/ALERT引腳輸出超限信息。 在正常模式下,溫度轉換需要60 ms,然后模擬轉換電路自動(dòng)關(guān)閉,40 ms后模擬電路上電,開(kāi)始下一個(gè)溫度值的轉換。所以一次溫度轉換周期為100 ms。 2 ADT75的寄存器結構 ADT75包含6個(gè)寄存器:1個(gè)地址指針寄存器,4個(gè)數據寄存器和1個(gè)單步模式寄存器。數據寄存器中,配置寄存器是唯一的8位寄存器,其他3個(gè)都是16 位;溫度值寄存器是唯一的只讀寄存器,其他3個(gè)都是可讀寫(xiě)的。單步模式寄存器也是可讀寫(xiě)的。上電后,地址指針寄存器的初始值為0x00,指針指向溫度值寄存器。ADT75的寄存器描述如表2所列。 ![]() (1)地址指針寄存器 該8位只讀寄存器存放指向某個(gè)數據寄存器的地址,可以選擇單步模式。P0位和P1位選擇要讀/寫(xiě)數據的數據寄存器,向P0、P1和P2位中寫(xiě)入0x04來(lái)選擇單步模式。地址指針寄存器的其余位都為0。寄存器的地址選擇如表3所列。 ![]() (2)溫度值寄存器 該16位只讀寄存器存儲由芯片內部溫度傳感器測得的溫度值。溫度以二進(jìn)制補碼形式存儲,最高位為符號位。讀該寄存器時(shí),先讀高8位,后讀低8位。 (3)配置寄存器 該8位可讀寫(xiě)寄存器為ADT75提供了多種配置模式:關(guān)斷、過(guò)溫中斷、單步、SMBus報警使能、OS/ALERT引腳極性和過(guò)溫錯誤隊列。 (4)THYST定值寄存器 該16位可讀寫(xiě)寄存器為2個(gè)中斷模式存放溫度滯后限定值。這個(gè)限定值以二進(jìn)制補碼形式存儲,最高位是溫度值符號位。讀該寄存器時(shí),先讀高8位,后讀低8位。限定值THYST的默認值為+75℃。 (5)TOS定值寄存器 該16位可讀寫(xiě)寄存器為2個(gè)中斷模式存放過(guò)溫限定值。這個(gè)溫度限定值以二進(jìn)制補碼形式存儲,最高位是溫度值符號位。讀該寄存器時(shí),先讀高8位,后讀低8位。限定值TOS的默認值為+80℃。 3 ADT75的應用實(shí)例 3.1 硬件設計 在外界溫度場(chǎng)作用下,光纖延遲線(xiàn)系統中光纖長(cháng)度、橫截面結構、光纖纖芯和包層的折射率分布特性會(huì )發(fā)生變化,因此在光纖中傳播的光載波信號的相位和模式雙折射特性就會(huì )隨溫度的改變而變化,從而影響最終解調出的微波信號的延時(shí)。為減小溫度變化對微波信號延時(shí)的影響,需要設計一個(gè)溫度控制系統,用來(lái)控制系統的溫度。 硬件設計電路主要包括2部分:數字信號處理器TMS320F2812和數字溫度傳感器ADT75。 采用TI公司推出的TMS320F2812作為核心控制芯片。其外部晶振頻率為30 MHz,通過(guò)片內的PLL進(jìn)行倍頻,最高主頻可達150 MHz;運行速度快,可以對采集的溫度信號進(jìn)行實(shí)時(shí)處理。 TMS320F2812沒(méi)有設計I2C總線(xiàn),但是有56個(gè)GPIO口,所以采用GPIO口模擬I2C總線(xiàn)時(shí)序來(lái)控制ADT75。這種硬件電路結構簡(jiǎn)單,功耗較低,實(shí)用性強。ADT75與TMS320F2812的接口電路如圖3所示。 ![]() TMS320F2812的GPIOB0引腳用作I2C總線(xiàn)的時(shí)鐘信號線(xiàn),GPIOB1引腳用作I2C總線(xiàn)的串行數據線(xiàn)。供電電壓為5 V,10 kΩ電阻為開(kāi)漏極的上拉電阻,0.1μF電容起去耦作用。本設計僅實(shí)時(shí)采集光纖延遲線(xiàn)系統的溫度,不需要過(guò)溫報警,所以OS/ALERT引腳保留。 ADT75的地址為7位,高4位為1001,低3位由地址引腳A0~A2決定。由于只有一片ADT75,故可將其3個(gè)地址引腳全部接地,則芯片地址可確定為1001000。溫控系統根據測得的溫度在TMS320F2812內部進(jìn)行PID運算,然后通過(guò)外部的溫度控制裝置對光纖延遲線(xiàn)內部溫度進(jìn)行調節,使其穩定在某個(gè)設定的范圍內。 3.2 軟件設計 利用死循環(huán)等待函數while(1)中的ReadDevice()函數從ADT75中讀取溫度值。每隔250 ms讀取一次溫度值,從而實(shí)現對系統溫度的實(shí)時(shí)監控。 ReadDevice()函數包括以下函數:Start(),Stop(),SendAddress(),ReadAck(),ReceiveData(),Mack(),MNack()。讀取溫度的流程如圖4所示,讀取溫度的時(shí)序如圖5所示。 ![]() ![]() (1)啟動(dòng)數據傳輸 在頭文件中對TMS320F2812的GPIOB口進(jìn)行配置。定義GPIOB0為SCL,輸出;GPIOB1為SDA,輸出。Start()函數模擬I2C總線(xiàn)的起始條件: ![]() 至此,完成了I2C總線(xiàn)的啟動(dòng)。 (2)傳送ADT75地址 在讀取溫度值之前必須向從器件發(fā)送地址。ADT75的7位地址為0x48。由于是讀數據(讀/寫(xiě)位為1),所以傳送的8位地址命令為0x91。在傳送數據時(shí),當SCL為0時(shí),才允許SDA上的數據變化;為1時(shí),SDA上的數據保持不變。8位地址傳送結束后,主機釋放SDA(令SDA=1),等待從機的應答信號。 (3)檢測ADT75的應答位 I2C總線(xiàn)傳輸完8位數據后由從機給主機一個(gè)低電平的應答信號,表示從機正常工作并可以接收下一個(gè)字節的數據。檢測ADT75的應答位時(shí),應注意把GPIOB1口設置為輸入。 EALLOW: GpioMuxRegs.GPBDIR.bit.GPIOB1=0; EDIS; 如果SDA=0,則TMSS20F2812開(kāi)始從ADT75中讀取數據的高字節;SDA=1,表示ADT75忙或者損壞,結束數據讀取。 (4)讀取數據 當檢測到ADT75的應答信號為0時(shí),開(kāi)始讀取溫度值。I2C總線(xiàn)的數據傳輸是以字節為單位的,首先讀取溫度值的高字節(溫度值的整數部分,最高位為符號位),讀取的數據存放在retc中。每接收1位數據,retc左移1位。若SDA=1,retc加1;SDA=0,retc不變。 ![]() 高8位數據傳輸完后,TMS320F2812傳給ADT75一個(gè)低電平的應答信號,由Mack()函數完成。此時(shí),需要將GPIOB1端口的數據傳輸方向改為輸出: EALLOW: GpioMuxRegs.GPBDIR.bit.GPIOB1=1; EDIS: 然后開(kāi)始接收溫度值的低字節(溫度值的小數部分),讀取成功后由TMS320F2812發(fā)送一個(gè)非應答位,表示本次溫度值的讀取結束,進(jìn)入停止狀態(tài)。 (5)結束數據傳輸 結束數據傳輸由Stop()函數完成,結束條件如下: ![]() Delay(50); 至此,讀取一個(gè)溫度值的全過(guò)程結束。在程序調試過(guò)程中發(fā)現,當設置斷點(diǎn)單步運行時(shí),無(wú)法檢測到ADT75發(fā)出的低電平應答信號,應答信號始終為1;若不設斷點(diǎn)連續執行時(shí),則可以檢測到低電平應答信號。這點(diǎn)是ADT75和其他I2C總線(xiàn)器件(如E2PROM芯片AT24C256)的不同之處,在調試程序的過(guò)程中要注意該細節。 ADT75的溫度轉換周期為100 ms。在本設計中,每隔大約250 ms讀取一次溫度值,可以實(shí)現監測光纖延遲線(xiàn)系統溫度的變化。 結 語(yǔ) 在光纖延遲線(xiàn)系統的硬件設計中,ADT75完全能夠滿(mǎn)足實(shí)時(shí)溫度采集的要求,而且測溫準確,靈敏度高。由于使用了I2C總線(xiàn)接口,所以溫度檢測電路結構簡(jiǎn)單,占用空間小,串行接口占用TMS320F2812的資源少,可靠性高,功耗低,不易受環(huán)境干擾。實(shí)驗證明,設計和運行都達到了令人滿(mǎn)意的效果。 參考文獻 1. 劉和平,鄧力,江渝,等.數字信號處理器原理、結構及應用基礎--TMS320F28x[M].北京:機械工業(yè)出版社,2007. 2. ADI.±1℃ Accurate,12-Bit Digital Temperature Sensor ADT75 Data Manual,2005. 3. 廣州周立功單片機發(fā)展有限公司.I2C總線(xiàn)規范,2004-06. 來(lái)源:《單片機與嵌入式系統》 作者:北京航空航天大學(xué) 魏利民 胡姝玲 張曉青 孟照魁 胡漢偉 |