
做PT100測溫的硬件說難不難說簡單也真不簡單。我最早入門時也覺得這東西不就是一顆鉑電阻加個ADC的事結(jié)果被項目里的精度要求反復按在地上摩擦同一塊板子換根線讀數(shù)就偏換臺電源又偏溫度一上去數(shù)字就開始漂。最后我才明白PT100本身只是一顆傳感器真正決定“精密”二字的是一整套電路設計、接線方式、器件選型和校準流程的配合。這篇硬件手冊就是把我之前做PT100精密測溫電路時踩過的坑、試過的方案和最終沉淀下來的設計思路整理出來適合剛接觸模擬測溫的硬件工程師也適合想把手頭儀表測溫精度再往上提一檔的嵌入式開發(fā)。文章會從原理講到接線從器件選型講到參數(shù)計算最后給出一份可以直接抄作業(yè)的四線制測溫電路實操方案。1. 拆解精密測溫的底層邏輯PT100為什么難做1.1 從0.385Ω/℃開始理解信號有多小PT100本質(zhì)上是一顆正溫度系數(shù)的鉑電阻IEC 60751標準規(guī)定它在0℃時阻值正好是100.00Ω在100℃時阻值約138.51Ω。按這個數(shù)據(jù)算0到100℃的平均靈敏度大約是0.385Ω/℃。單看這個數(shù)值你可能覺得很容易處理但把它放進電路里一算問題就暴露出來了。假設你用一個1mA的恒流源給PT100供電溫度每變化1℃PT100兩端的電壓只變化0.385mV。這是什么概念普通12位ADC在2.5V參考電壓下的1個LSB大約是0.61mV也就是說直接采集的話1個數(shù)字跳變對應的溫度可以達到1.6℃。如果項目要求的測溫精度是±0.1℃光靠12位ADC是不可能完成的必須在“激勵電路”“信號放大”“ADC位數(shù)”“噪聲抑制”這幾個方向上想辦法。PT100電阻與溫度之間也并非嚴格線性。0到100℃區(qū)間用線性近似誤差還不算大但做0到200℃甚至更大跨度測量時非線性就必須處理了。IEC 60751給出的近似公式為Rt R0 × (1 A·t B·t2)其中A約為3.9083×10?3B約為-5.775×10??。在200℃時如果直接按線性0.385Ω/℃計算阻值會偏大好幾歐姆換算成溫度會有數(shù)攝氏度的偏差所以精密測量要么分段查表要么用多項式擬合這一點后面講到軟件補償時再展開。1.2 恒流源激勵與比例法為什么比例法是工程首選想要把PT100的電阻變化轉(zhuǎn)換成ADC能讀取的數(shù)字最直接的方法是給PT100通過一個恒定電流然后測量它兩端的電壓。這就是恒流源激勵法。第二種方法則更巧妙用一個相同的電流同時流過PT100和一個精密參考電阻Rref分別測量兩個電阻上的電壓然后把兩個電壓相除得到PT100與參考電阻的阻值比再換算成溫度。我自己的經(jīng)驗是恒流源激勵法聽起來簡單做起來卻繞不開“恒流源性能”這道坎。普通三端穩(wěn)壓芯片加電阻湊出來的恒流源電流會隨環(huán)境溫度、電源電壓變化哪怕只漂移1μA在100℃時就能給測溫結(jié)果帶來約0.1℃的偏移。精密運放加基準源構(gòu)成的恒流源當然可以做得很好但成本和PCB面積都會上去。相比之下比例法對電流源的絕對值要求降低了很多。因為PT100和Rref流過的是同一個電流電流的任何變化都等比例地體現(xiàn)在兩個電壓上測量比值時電流的絕對值就被消掉了。實際電路里我習慣把ADC的參考電壓直接接到Rref兩端讓ADC用Rref上的電壓作為轉(zhuǎn)換參考這樣ADC讀到的碼值天然就是Vpt除以Vref也就是Rpt除以Rref不用做任何復雜的換算電流源漂移、參考電壓漂移都自動抵消掉了。這個方法實測下來非常穩(wěn)是精密測溫工程項目里最可靠、最高效的方案。2. 接線方式?jīng)Q定誤差上限二線、三線與四線制2.1 二線制為什么做不了“精密”二線制測溫是最簡單的接法兩根導線把PT100和測量電路連起來恒流源流過導線到達PT100電壓測量也是在這兩根線上完成。問題是測量端讀到的電壓包含了導線電阻上的壓降。以1mA激勵電流、每根導線電阻0.5Ω計算兩根導線一共引入1Ω的額外電阻體現(xiàn)在測溫結(jié)果上就是溫度偏高了大約1除以0.385也就是2.6℃。這還只是用了0.5Ω導線的情況現(xiàn)場如果線纜更長或者線徑更細導線的引入誤差會成倍放大而且導線電阻本身還會隨環(huán)境溫度變化這種誤差不是簡單校準一次就能消除的。所以二線制只適合測溫精度要求不高的場合比如設備外殼的溫度指示、簡單的溫度報警談不上“精密”。2.2 三線制工業(yè)現(xiàn)場的折中方案三線制的思路是讓測量電路能夠把導線電阻“對消”掉。工業(yè)溫度變送器、PLC模擬量采集模塊里應用最廣的接法是讓兩根相同規(guī)格的導線分別接在電橋的兩個相鄰橋臂上導線電阻在電橋平衡條件下相互抵消第三根線則用于補償電源線或提供參考電勢。也可以在恒流源激勵加儀表放大器的方案里用三線制來做開爾文補償只是效果遜于四線制。三線制的優(yōu)勢是比四線制少一根線長距離敷設時線材成本更低現(xiàn)場施工也更方便。在100米以內(nèi)的工業(yè)現(xiàn)場用三線制配合適當?shù)男拾严到y(tǒng)誤差控制在±0.2℃以內(nèi)通常不難。缺點是它依賴導線長度、電阻對稱性如果兩根導線的實際阻值差異較大抵消效果就會打折扣所以做三線制時務必選用同規(guī)格、同長度的線纜并且盡量減少中間接頭。對精度有更高要求的實驗室環(huán)境我一般直接跳到四線制。2.3 四線制開爾文連接讓導線電阻徹底“出局”四線制是精密測溫最可靠的電氣連接方式它把電流回路和電壓采樣回路完全分開。PT100的兩端各接兩根線其中兩根專門給恒流源傳輸激勵電流另外兩根連接到高輸入阻抗的電壓測量端。因為電壓測量端幾乎不吸取電流所以電壓線上的壓降可以忽略不計導線電阻對測量結(jié)果的影響就徹底消除了。下面這個接線示意是我在項目里用四線制PT100和ADC模塊對接時的連線方式恒流源輸出(I) ── 紅線A ── PT100引腳1 ── 白線S ── ADC差分輸入正端(IN) │ 恒流源回路(-I) ── 紅線B ── PT100引腳2 ── 白線S- ── ADC差分輸入負端(IN-)PT100引腳1上同時連著激勵線和電壓采樣線PT100引腳2也一樣。雖然激勵電流經(jīng)過引腳接點時可能會在銅箔上產(chǎn)生一個極微小的壓降但只要采樣線從PT100引腳位置直接引出而不是從電流走線末端引出四線制的誤差就會比三線制小一個數(shù)量級以上。三種接法放到一起對比各自的定位就很清晰了接法消除線阻能力引線數(shù)量實現(xiàn)成本典型應用二線制完全不能消除2根最低低精度溫度指示、報警三線制基本消除對稱線阻3根中等工業(yè)變送器、PLC采集四線制徹底消除線阻4根較高實驗室儀表、精密溫控做0.1℃精度級別以上的測溫系統(tǒng)只要條件允許無腦選四線制。尤其配合后面的比例法方案四線制比例法基本就是目前低成本高精度測溫的黃金組合。3. 關鍵器件選型與參數(shù)計算從激勵電流到ADC分辨率3.1 激勵電流定多少自熱效應與信噪比的取舍激勵電流的選擇是設計PT100測溫電路時要做的第一個算術(shù)題。電流太小PT100兩端電壓太小后面ADC的輸入信號被噪聲淹沒電流太大PT100自身發(fā)熱會帶來“自熱效應”導致測得溫度比真實環(huán)境溫度偏高。PT100的自熱功率等于I2乘以Rpt。以1mA為例0℃時P1mA2×100Ω0.1mW。如果探頭的熱阻是200℃/W自熱溫升大約0.02℃對一般應用完全可接受如果探頭被埋在熱阻較高、散熱不好的介質(zhì)里熱阻可能上升到500℃/W以上自熱溫升就會接近0.05℃。想要把自熱壓到極低可以改用0.5mA激勵此時0℃時的自熱功率只有0.025mW。但降低電流的代價同樣是真實的在0.5mA下0到100℃對應的電壓變化是19.25mV折合0.193mV/℃對ADC有效位數(shù)、放大電路噪聲的要求更高。所以我通常第一版設計直接選1mA如果測試發(fā)現(xiàn)自熱明顯再降為0.5mA并同步檢查ADC的分辨率和噪聲是否依然夠用。這個取舍沒有絕對標準項目里最好用實際探頭在目標介質(zhì)里做一次對比測試判斷自熱到底影響了多少。3.2 參考電阻、ADC與PGA怎么搭配比例法方案中Rref的選擇有一個很容易忽略的原則Rref的阻值必須大于測溫范圍上界對應的PT100阻值。因為比例法里ADC的參考電壓就是Rref兩端的電壓如果Rpt的最大阻值超過Rref輸入電壓Vpt就會超過參考電壓轉(zhuǎn)換結(jié)果出現(xiàn)飽和整個量程就廢了。假設你的測量上限是200℃PT100在200℃時阻值約為175.84Ω那么Rref最小也要選200Ω??紤]留出適當裕量我習慣選200Ω的精密電阻。這樣在室溫范圍PT100的電壓一直小于參考電壓轉(zhuǎn)換比值始終小于1。Rref的溫度系數(shù)直接決定了測量的穩(wěn)定性最好選±5ppm/℃以內(nèi)、初始精度±0.1%的金屬箔電阻或低溫漂貼片電阻普通厚膜電阻就不要拿來用了。ADC的選擇上如果你想要極致的簡單和穩(wěn)定我首推24位Σ-Δ型ADC。以TI的ADS1220為例它內(nèi)部集成了可編程增益放大器PGA支持外部參考四路輸入可以配成兩路差分。配置PGA增益為8、數(shù)據(jù)率20SPS時一個溫度周期的有效分辨率達到10μV級別完全可行。用它來測量1mA激勵下的PT100理論上溫度分辨率能輕松做到0.001℃量級當然實際系統(tǒng)噪聲會把這個值拉大但做到0.01℃的分辨率并不難。相比之下用普通12位ADC做精密測溫哪怕引入10倍放大器受限于放大器的失調(diào)漂移和噪聲最后能穩(wěn)定到0.1℃都非常費勁。以下是我做選型時??吹囊环輰φ毡矸桨傅湫推骷直媛士乖肽芰﹄娐窂碗s度適用場景12位SAR ADCADS1110等約1.6℃/LSB無放大一般低低成本粗測24位Σ-Δ ADCADS1220、ADS1247遠優(yōu)于0.01℃較強中精密測溫高精密儀表放大器24位ADCINA823ADS1256優(yōu)于0.005℃強高實驗室級設備3.3 運放、基準與布線的幾個硬指標如果選用了自帶PGA的Σ-Δ ADC外置運放的環(huán)節(jié)可以省掉這是簡化設計的關鍵。PGA增益設置要結(jié)合測量范圍和參考電壓來算。ADS1220內(nèi)部PGA在增益8時差分滿量程是±VREF/8如果VREF是200mV量級Rref200Ω、I1mA滿量程是±25mV明顯不夠。所以這種方案里我不會用外部參考電壓而是直接讓Rref電壓作為ADC的參考輸入讓輸入信號和參考電壓同比例縮放這樣PGA只放大差分信號不會觸到參考電壓上限。實際上如果使用外部獨立VREF則建議VREF取2.5V以上并配合適當PGA?;鶞屎碗娫词蔷苣M電路的一半。恒流源如果用運放搭建參考基準選用REF5025之類低溫漂的2.5V基準模擬供電用LDO單獨供電并且避免和繼電器、顯示屏等開關性負載共用一路電。PCB布局上PT100的激勵走線和電壓采樣走線盡量靠近形成“開爾文連接”后再連到ADC模擬地和數(shù)字地在ADC芯片下方單點匯合避免大電流地平面把噪聲灌進采樣回路。4. 實操搭一套0到200℃四線制PT100測溫電路4.1 系統(tǒng)整體連接與原理框圖下面是一套我已經(jīng)在項目里跑通的四線制PT100測溫電路核心思路是用比例法配合ADS1220完成電阻測量供電和恒流源部分用最簡單可靠的方案實現(xiàn)。整體結(jié)構(gòu)分成三塊恒流源激勵、四線制PT100連接、24位Σ-Δ ADC采樣。恒流源我采用REF200一顆芯片內(nèi)部集成了兩組100μA恒流源把兩組并聯(lián)可得到200μA再經(jīng)一級輸出緩沖放大轉(zhuǎn)換成1mA。這樣做的原因是REF200的恒流特性比用LM334搭出來的電路穩(wěn)定性高得多溫度漂移小一個數(shù)量級。如果你手頭沒有REF200也可以用“低壓差基準運放精密電阻”搭建恒流源但溫漂和噪聲需要用基準的指標嚴格把關。ADC部分采用ADS1220外部晶振選32768Hz通信走SPI主機使用STM32或ESP32均可。ADS1220的AIN0和AIN1接PT100的電壓采樣線AIN2和AIN3暫不接REFP1、REFN1接Rref兩端把Rref電壓作為轉(zhuǎn)換參考。這種接法下ADC輸出碼值直接表示Rpt與Rref的比值比例關系非常干凈。接線示意大致如下3.3V ─ VDD SDA/SCL/CS/DRDY ─ MCU SPI 恒流源1mA ── PT100引腳1 ── 采樣線S ── AIN0 恒流源回路 ── PT100引腳2 ── 采樣線S- ── AIN1 恒流源1mA ── Rref(200Ω) ── GND REFP1 ─ Rref高端 REFN1 ─ Rref低端4.2 參數(shù)配置與完整標定流程上電后先配置ADS1220寄存器。關鍵參數(shù)包括PGA增益設置為主增益2或4取決于你的參考電壓和輸入范圍數(shù)據(jù)率設為20SPS輸入通道選AIN0/AIN1差分內(nèi)部溫度傳感器關閉。轉(zhuǎn)換結(jié)果讀出來以后用下面的公式反算PT100阻值Rpt (CODE / CODE_MAX) × Rref其中CODE是從ADS1220讀到的比例碼值CODE_MAX是滿量程對應的碼值24位ADC按8388608的一半計算具體視二進制補碼格式而定。完整代碼邏輯里我習慣做一個循環(huán)采樣取平均積累32次再算一次結(jié)果能非常有效地抑制工頻和開關電源噪聲uint32_t sum 0; for (int i 0; i 32; i) { sum ads1220_read_single(); // 讀一次轉(zhuǎn)換結(jié)果 } double ratio (double)sum / (32.0 * FULL_SCALE); double rpt ratio * RREF_VALUE; double temp calc_temp_from_rpt(rpt);標定是系統(tǒng)誤差管理里不能跳過的一步。我建議至少做兩點標定0℃用冰水混合物100℃用沸水浴。把探頭放進冰水混合液中讀取實際計算出的Rpt記為R0_cal再把探頭放進沸水浴記錄R100_cal。如果R0_cal相對于100Ω偏了一個固定偏移多半是器件偏差或PCB銅箔殘留電阻可以在軟件里做偏移修正如果R100_cal與R0_cal的間距和標準值的間距不成比例則說明恒流源或參考電阻的增益存在比例誤差需要做增益校正。修正公式可以簡單寫成Rpt_corrected Rref × ratio × K_cal R_offsetK_cal和R_offset就是標定得到的一階校正系數(shù)。想要更高精度可以做-20℃、0℃、50℃、100℃多點溫槽標定用最小二乘法擬合二階曲線但一般項目的兩點標定已經(jīng)能到±0.2℃以內(nèi)剩下的誤差主要來自PT100元件自身的精度等級。4.3 溫度計算與線性化補償?shù)玫叫拚蟮腞pt之后就不能再用粗略的線性公式去換算溫度了。我用的是IEC 60751的標準反算方法先假設溫度在0℃以上用二次函數(shù)迭代逼近或者直接建立一個查表數(shù)組按1℃一個間隔存儲Rpt對應表線性插值得到溫度。查表法最簡單代碼占用也不大適合單片機場景。C語言里查表加插值的實現(xiàn)很直接float calc_temp_linear_table(float rpt) { if (rpt RT_TABLE[0]) return TABLE_T0; if (rpt RT_TABLE[TABLE_LEN-1]) return TABLE_T0 (TABLE_LEN-1); // 二分查找或線性掃描然后按阻值線性插值 ... }如果不用查表也可以用多項式直接計算。0到200℃范圍內(nèi)三階多項式就能達到不錯的精度100到850℃的寬量程才需要更高階擬合。實際項目里我通常把查表和標定系數(shù)一起封裝成函數(shù)既方便調(diào)參也能隨時換探頭。5. 調(diào)試實錄我踩過的那些坑5.1 讀數(shù)亂跳先懷疑接地再懷疑算法第一次把整套電路跑起來時最大問題是讀數(shù)在±0.3℃之間跳動怎么調(diào)平均都壓不下來。排查到最后問題出在我把PT100采樣線的屏蔽層接到了數(shù)字地同時ADC的模擬地又和單片機地離得很遠形成了典型的地環(huán)路。屏蔽層應當單端接地而且最好接在模擬地側(cè)模擬地和數(shù)字地之間用單點磁珠或0Ω電阻連接。改完布局重新打樣后跳變幅度直接降到了±0.03℃以內(nèi)。這個經(jīng)驗讓我養(yǎng)成了一個習慣凡是模擬小信號電路先畫清楚電流回路和地回路再畫信號走向。5.2 讀數(shù)隨引線加長而變大四線制的采樣線被污染了在另一個現(xiàn)場我把PT100探頭用5米屏蔽線延長后讀數(shù)明顯偏高且不穩(wěn)定。拆開接線發(fā)現(xiàn)現(xiàn)場施工時把采樣線S和激勵線接在了同一個接插件引腳上采樣線上的高阻抗被激勵電流的銅箔壓降“污染”了。四線制的采樣線必須直接從PT100引腳位置獨立引出絕不能中途搭接電流線否則開爾文連接就等于白做了。接頭處最好用焊接或旋轉(zhuǎn)端子避免壓線端子松動帶來的接觸電阻漂移。5.3 線性偏差越到高溫越明顯查一下傳感器允差等級還有一個常見的坑校準后0℃很準100℃也算準可是到150℃偏差就變大了。如果標定系數(shù)沒問題那要檢查PT100探頭的允差等級。鉑電阻按IEC 60751分為AA級、A級和B級對應0℃附近允差分別是±0.1℃、±0.15℃和±0.3℃而且允差會隨溫度絕對值變大。精密應用請務必選用A級或AA級探頭B級探頭雖然便宜在中高溫區(qū)段的漂移很難用一次校準完全修正。我把調(diào)試過程中遇到的問題整理成了一張速查表方便你們現(xiàn)場快速定位現(xiàn)象可能原因排查步驟解決辦法數(shù)據(jù)跳動大地環(huán)路、屏蔽層接地不當斷開屏蔽層再測屏蔽層單端接模擬地讀數(shù)整體偏高自熱效應、線阻污染降低激勵電流對比用0.5mA或用四線制高溫段偏差規(guī)律變化傳感器允差等級不足換A級探頭重標定選AA/A級PT100測量值超過量程后突變Rref偏小或PGA飽和檢查CODE是否接近滿碼增大Rref或減小PGA增益說實話測溫電路做到后面比拼的已經(jīng)不只是原理圖本身而是對細節(jié)的把握。四線制配合比例法再選一顆合格的Σ-Δ ADC和低溫漂參考電阻整個硬件系統(tǒng)的上限就能拉得很高。我現(xiàn)在做任何新的測溫項目第一件事都是確認接線方式是不是開爾文連接第二件事是確認參考電阻是不是低溫漂這兩個點守住之后后面就很少需要為精度問題返工。如果讓我給剛?cè)胧值耐幸粋€最實在的建議那就是少走“先用二線制試試”的彎路直接上四線制加比例法多花一根線省下的是大量調(diào)試時間。