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