王昌世
摘要:熱電偶(Tc)測溫是溫控儀必備的功能。Tc測溫需進(jìn)行冷端溫度補(bǔ)償,補(bǔ)償?shù)木葲Q定著TC的測溫精度。本文要介紹的就是用Si7051所測量的TC冷端溫度,來對TC進(jìn)行溫度補(bǔ)償,使TC的測溫精度能達(dá)到或接近0.1度℃。重點(diǎn)是講述用STM32F103CBT6單片機(jī)從I2c總線讀取Si7O51芯片中的溫度編碼值,即編程。涉及TC補(bǔ)償原理、Si7O51與STM32單片機(jī)的I2C接口電路與和程序流程。
關(guān)鍵詞:高精度熱電偶補(bǔ)償;Si7O51;STM32F103;I2C總線;程序流程
Si7051是一款較新的、性價(jià)比較高的器件,雖批量價(jià)僅為10元/片,可經(jīng)試用,其對TC補(bǔ)償?shù)淖饔脜s很大,很有效。但目前,在國內(nèi)未見相關(guān)應(yīng)用介紹(經(jīng)網(wǎng)上檢索)。想必,此文的創(chuàng)新應(yīng)用,會助力國內(nèi)TC測溫技術(shù)的進(jìn)步。
1補(bǔ)償原理
把TC的兩端分為冷端(接入線路的那一端)和熱端(測溫對象所在端)。令TC冷端溫度為Ct,TC的輸出溫為乃,則TC的熱端溫度(即測量溫度)Mt=Ct+Tt。補(bǔ)償?shù)年P(guān)鍵在于冷端和Si7051感溫盡可能做到同溫。假如不完全相同,則應(yīng)注意這個(gè)溫差校正。
此前,我們用LM75A溫度芯片測量ct。但由于它的精度較低(在20℃~+100℃全量程范圍,最大誤差達(dá)2℃,分辨率為0.5℃(即,其小數(shù)位只能是O或0.5)),使得Mt值不僅包含同樣的誤差,而且時(shí)常有0.5℃的跳變。這使得溫控儀達(dá)到0.1℃的控溫精度變得不可能。
2Si7051介紹
此芯片由美國Silicon Labs(即芯科科技)公司生產(chǎn),已先后發(fā)布8個(gè)版本,最新的1.15版,在2018-09發(fā)布。
2.1主要性能特征
1)高精度。測溫精度分3段:
±0.1℃;+35.8℃~41℃(人體溫度范圍);
±0.13℃;20.0℃~70.0℃(準(zhǔn)環(huán)境溫度范圍):
±0.25℃:-40℃~+125℃(全量程)。
第2段是溫控儀(TC冷端)所在環(huán)境最常見的溫度范圍。
2)體積小,引腳少;
3mm×3mm×0.8m m,DFN(DuaI fIat No-lead,即雙平面,無引線)封裝。6個(gè)引腳,見圖1。它的小的體積使其在用做溫度補(bǔ)償用時(shí),易于在電路板(即PCB)上和TC的冷端一起放置;而在做人體(或其他對象)溫度計(jì)時(shí),整體的體積可以很小。
3)接口電路的外圍元件少,接口簡單;
僅有1個(gè)去偶電容和2個(gè)上拉電阻。雖有6個(gè)引腳,但對外連線只有4根。DNC引腳可懸空或連到VDD腳。見電路圖2。
4)背面有感溫金屬平面;
大小為1.5mm×2.4mm,見圖3。這個(gè)面能使它很好地感受TC冷端的溫度,達(dá)到與之同溫的目的。
3電路設(shè)計(jì)
單片機(jī)選用STM32F103CBT6,它自帶有I2C總線,這使得相關(guān)接口(包括編程)相對簡單。見圖2。原理圖雖不復(fù)雜,但作為TC補(bǔ)償元件,要做到它和TC冷端準(zhǔn)確同溫,卻并非易事,我們也是經(jīng)過多次改進(jìn),才達(dá)到的。具體做法是:①單獨(dú)做一塊小的PCB板(雙面,11mmx7mm,見圖3),通過插針與主板相連。在小板上,Si7051背面的感溫面下要開孔,使感溫面能和冷端相對、相通。孔的大小稍小于感溫面。注意看圖3。②此小板和和TC冷端并立在一起放置,并且要遠(yuǎn)離板上的其他熱,見圖4。圖中,3線(棕、紅和黑3色)插頭是TC的冷端線,左邊立著的就是Si7051小板。③小板和TC冷端附近約30mmx7mm的PCB板區(qū)域內(nèi)不敷銅,以免多傳熱。
4編程
編程本文的要點(diǎn)。
4.1理解圖4的時(shí)序
文獻(xiàn)[2]給出了讀取Si7051芯片的溫度編碼的I2時(shí)序圖(經(jīng)英譯中)。
此時(shí)序圖從左到右,分成了19個(gè)段(數(shù)字所示)。此圖所涉及的相關(guān)技術(shù)術(shù)語參見文獻(xiàn)[3-7]。幾點(diǎn)說明如下:
1)圖中的“主”是指主設(shè)備:從是指從設(shè)備(下同)。
2)第2段是“從地址”,指的是Si7051的從地址0x40;
3)第3段是“主將要寫操作”,指的是,在12C總線上,出現(xiàn)Si7051的從地址0x40后,主設(shè)備是要發(fā)送一個(gè)字節(jié)數(shù)據(jù)(第5段的Oxf3)。注意這一段是一個(gè)位(bit)段且為O值,它附在第2段的0x40后面(100000B+0B=10000000B)形成最終的0x80寫地址字節(jié)(與0x81的讀地址(如,第8、9段組合)對應(yīng)。這一點(diǎn)很重要,編程時(shí)不要誤寫為0x40。
4)第9段是“主將要讀操作”,指的是.在12C總線上,出現(xiàn)Si7051的從地址0x40后,主設(shè)備是要從設(shè)備里讀取數(shù)據(jù)。這也是一個(gè)位段,但值為1,它附在第8段的0x40后面(1000000B+I B=10000001B)形成最終的0x81讀地址字節(jié)。
5)第10段是“非應(yīng)答(即NACK)”。對Si7051來說,這是一個(gè)特殊的位信號,它會一直持續(xù)高電平,直到片內(nèi)的A/D轉(zhuǎn)換結(jié)束。從這個(gè)信號發(fā)出算起,Si7051開始一次測溫的A/D轉(zhuǎn)換過程,具體轉(zhuǎn)換時(shí)間見參考文獻(xiàn)[2]的第4頁的表2。本程序用12ms延時(shí)來處理。程序在12毫秒后,繼續(xù)到第11段。
6)完成這個(gè)時(shí)序的全部操作后,得到的緊緊是2個(gè)字節(jié)(14位,最低2位不用)編碼,而不是溫度的實(shí)數(shù)值。實(shí)數(shù)溫度(℃)=(175.72×溫度編碼/66636)-46.84(式1)。
4.2流程圖
用IAR7.2.05工具及ST(即意法半導(dǎo)體)公司在2011年發(fā)布的3.5.0的庫函數(shù)(一直未變)。該庫函數(shù)包含了32個(gè)12C相關(guān)函數(shù)和諸多變量定義,可選擇使用,本程序用了其中的10個(gè)函數(shù)。
圖6是依據(jù)圖5的時(shí)序來編制的。有3點(diǎn)須說明:*相關(guān)函數(shù)注解詳見3.2.1。**限于篇幅,只用了一個(gè)菱形判斷圖作為示例,其他判斷處未用,但包含的流程相同,即如果不成功,則反復(fù)調(diào)用判斷函數(shù),直到成功。***延時(shí)程序一般是自編的,不調(diào)庫函數(shù),以便準(zhǔn)確控制延時(shí)時(shí)間。
4.2.1圖6相關(guān)庫函數(shù)說明
另外,圖中的函數(shù)12C_Configuration()通常是根據(jù)需要自編的,不是庫函數(shù)。
5結(jié)論
Si7051裝在線路板上,精度高、運(yùn)行穩(wěn)。下面是一組實(shí)測數(shù)據(jù)(表3):
測試條件說明:①地點(diǎn):辦公室,對環(huán)境溫度測試;②工具:實(shí)驗(yàn)室開發(fā)的SCTC溫控儀;RKC CH402日本產(chǎn)溫控儀,其上無小數(shù)顯示(對熱電偶)。測試分析:儀器每秒對Si7051和熱電偶同步采樣一次,數(shù)據(jù)記錄間隔是2min。在18min內(nèi),Si7051測溫僅變化31.53-31.47=0.06(℃),多數(shù)時(shí)間,只在小數(shù)點(diǎn)后第2位上有變。表明其精準(zhǔn)、穩(wěn)定。SCTC測溫也僅變化30.53-30.20=0.33(℃)。這里,Si7051的測量的溫度要高于SCTC儀及RKC儀的測量溫度是因?yàn)镻CB板上的氣溫要高于一般環(huán)境溫度。
以后還將一如既往地關(guān)注、實(shí)施溫度測控領(lǐng)域的新元件的應(yīng)用,并把相關(guān)的研發(fā)成果及時(shí)在專業(yè)刊物上發(fā)表,為我國自動化儀表的發(fā)展出一分力。