張亞芳
(阜陽職業(yè)技術(shù)學(xué)院,安徽 阜陽 236000)
本設(shè)計(jì)需要實(shí)現(xiàn)的溫度測(cè)量是一種低延遲、高精度、魯棒性好的溫度測(cè)量,要實(shí)現(xiàn)這樣的溫度測(cè)量,滿足負(fù)50攝氏度到正260攝氏度的全范圍溫度測(cè)量,常見的溫度傳感器不能滿足本設(shè)計(jì)的溫漂、精度、抗干擾等特性,這些溫度傳感器遠(yuǎn)遠(yuǎn)不能實(shí)現(xiàn)本設(shè)計(jì)的要求,故本設(shè)計(jì)選擇了一款能夠滿足本設(shè)計(jì)精度要求和測(cè)量溫度范圍的溫度傳感器,它就是PT100。PT100具有良好的線性關(guān)系。傳統(tǒng)數(shù)字溫度傳感器雖然具有一定的價(jià)格優(yōu)勢(shì),但是對(duì)于這種對(duì)精度要求比較高、測(cè)量范圍比較廣的場(chǎng)合具有很大的局限性,所以本設(shè)計(jì)選擇了PT100作為本設(shè)計(jì)的溫度傳感器,對(duì)測(cè)量單元進(jìn)行溫度測(cè)量。在單片機(jī)的選型上,本設(shè)計(jì)選用了現(xiàn)在行業(yè)領(lǐng)先的STM32單片機(jī),顯示器部分,本設(shè)計(jì)采用的是LCD12864顯示單元,它可以同時(shí)顯示多行的數(shù)字或者漢字,有128×64的最小顯示單元[1]。本設(shè)計(jì)的整體系統(tǒng)框圖如圖1所示:
對(duì)于溫度采集傳感器的選型,本設(shè)計(jì)選擇的是PT100電阻。在PT100的多種接線方式中選擇了四線制的接線方式,因?yàn)檫@種接線方式能夠有效地考慮線阻,精度最高。采集電路采用差分放大器電路,一方面能夠有效地濾除系統(tǒng)中的共模干擾、濾除環(huán)境磁場(chǎng)和板載干擾,提高采樣穩(wěn)定性,另外一方面能夠調(diào)節(jié)PT100的采樣區(qū)間,達(dá)到最優(yōu)的放大效果,提高采樣精度??刂坪诵牟捎矛F(xiàn)在主流的基于M4內(nèi)核的STM32單片機(jī),具有極高的性價(jià)比,性能穩(wěn)定。顯示系統(tǒng)采用的是串行LCD12864顯示屏,它具有顯示使用壽命長(zhǎng),價(jià)格低廉的特點(diǎn)。
圖1 本設(shè)計(jì)的整體系統(tǒng)框圖
2.1.1 芯片資源介紹
對(duì)于單片機(jī)的認(rèn)識(shí),首先要看其設(shè)計(jì)構(gòu)架,STM32采用的是ARM設(shè)計(jì)構(gòu)架,現(xiàn)在新興的ARM設(shè)計(jì)構(gòu)架從低端的ARM0到高端的ARM11形成了全系列的應(yīng)用功能需求。本設(shè)計(jì)采用的是M4系列單片機(jī),可以通過倍頻的功能最高達(dá)到72兆赫茲的工作頻率,根據(jù)不同的用戶需求,在M4內(nèi)核中也有不同的引腳分配,從36引角到144引角不等,以滿足不同用戶對(duì)不同設(shè)備和不同場(chǎng)合的驅(qū)動(dòng)需求。在存儲(chǔ)空間上也有不同,主要分為三個(gè)檔,分別為小容量、中容量和大容量。小容量的內(nèi)存flash一般在128k左右,中容量一般在512k,大容量的一般在1000k。同時(shí)單片機(jī)具有豐富的I/O接口和ADC接口,ADC接口一般可達(dá)十多個(gè),同時(shí)可以加載多路時(shí)鐘線以及外部觸發(fā)中斷線,并且具有良好的低功耗性能,可以應(yīng)對(duì)移動(dòng)終端設(shè)備對(duì)于低功耗的需求,并且?guī)в械皖l工作時(shí)鐘晶振,以應(yīng)對(duì)低功耗情況下的使用需求。
STM32單片機(jī)是一種獨(dú)特的微處理器,是用來對(duì)數(shù)字信息進(jìn)行數(shù)據(jù)處理的元器件,其工作原理是接受相應(yīng)的信號(hào),對(duì)數(shù)字信息進(jìn)行數(shù)據(jù)運(yùn)算,并把數(shù)據(jù)模擬輸出。它具有可編程性,運(yùn)行速度高達(dá)每秒數(shù)千萬條控制指令。STM32單片機(jī)受到溫度、濕度、光照等外部環(huán)境的因素非常小,具有較強(qiáng)的抗電磁干擾能力。
2.1.2 電源設(shè)計(jì)
本設(shè)計(jì)的LDO選用的是AMS1117,將USB輸入的5伏電壓轉(zhuǎn)換成3.3伏電壓為本設(shè)計(jì)系統(tǒng)提供電源。AMS1117采用的是SOT-223封裝,有一個(gè)很大的散熱引腳,可以有效的進(jìn)行散熱,因?yàn)檫@個(gè)散熱引腳的存在,大大增加了芯片的過流能力,AMS1117瞬間最大過流能力達(dá)到一安電流。AMS1117中有很多系列,本設(shè)計(jì)選擇的是AMS1117-3.3,這種芯片的輸入電壓最高可達(dá)到12伏,輸出恒定3.3伏電壓,這種電源芯片的穩(wěn)壓效果相對(duì)于DCDC的穩(wěn)壓,雜波少,符合傳感器對(duì)電壓精度以及紋波的要求。AMS1117的外圍電路相對(duì)于DCDC來說較為簡(jiǎn)單,沒有復(fù)雜的電感、二極管等,只需要濾波電容和儲(chǔ)能電容即可。AMS1117有四個(gè)引腳,三號(hào)引腳為電源輸入引腳;四號(hào)引腳為電源輸出引腳,穩(wěn)定輸出3.3V電壓;一號(hào)引腳為參考地引腳。C17,C18電容為100nF,主要起到濾除高頻噪聲的作用,C16,C19為10uF,主要用來濾除低頻雜波和儲(chǔ)能作用,同時(shí)穩(wěn)定電壓的跌落,為瞬時(shí)的大電流提供能量,增強(qiáng)電源的抗干擾能力。AMS1117電源系統(tǒng)原理圖如圖2所示:
2.1.3 復(fù)位電路
復(fù)位電路的作用是實(shí)現(xiàn)在上電初期通過電平的變化,對(duì)單片機(jī)進(jìn)行復(fù)位,實(shí)現(xiàn)系統(tǒng)初始化。單片機(jī)復(fù)位電路由電容和電阻以及按鍵組成。整體的上電過程中的電平變化會(huì)被單片機(jī)的復(fù)位引腳識(shí)別到,進(jìn)而復(fù)位內(nèi)部芯片,在特殊情況下本設(shè)計(jì)可以通過復(fù)位按鍵對(duì)程序復(fù)位,設(shè)計(jì)中經(jīng)常遇到的程序跑飛或者程序工作不正常的異常現(xiàn)象,可以通過按下復(fù)位鍵讓系統(tǒng)回歸為初始狀態(tài)重新工作。
圖2 AMS1117電源系統(tǒng)原理圖
2.1.4 晶振電路
晶振電路形象地來說就像是我們生活中的時(shí)鐘一樣,任何的操作都是以時(shí)鐘作為基礎(chǔ)的衡量單元。晶振電路主要是由石英晶體和起振電容組成的。石英晶體可以理解成一個(gè)彈簧,只要有電壓進(jìn)入其中,就會(huì)跟隨一起反復(fù)來回震蕩運(yùn)動(dòng),并且這個(gè)運(yùn)動(dòng)的頻率是固定的,這是由石英晶體的固有特性決定的,本設(shè)計(jì)選擇的是8MHz的晶振,配合芯片內(nèi)部的分頻電路,可以實(shí)現(xiàn)72MHz的工作頻率[2]。
在溫度的變化過程中,PT100溫感探頭的溫度變化曲線是已知的,能夠根據(jù)電阻的阻值得到相應(yīng)的溫度數(shù)值,PT100的溫感探頭的溫度系數(shù)主要分為A,B,C三類,本設(shè)計(jì)采用精度最高的A類型探頭,溫度采樣精度為0.15+0.002|t|。這個(gè)測(cè)量精度前面的0.15很容易理解,就是測(cè)量的固有誤差,是電阻物理特性所決定的,后面的0.002|t|是測(cè)量溫度所引起的變化誤差,可以簡(jiǎn)單理解在高溫和低溫情況PT100的精度相對(duì)中間測(cè)量溫度有所下降,例如在0℃時(shí),通過計(jì)算采樣精度為0.15℃;同理在100℃時(shí),通過計(jì)算采樣精度(0.15+0.002*100)=0.35℃。這個(gè)采樣精度是傳感器的自身誤差,不能夠通過電路設(shè)計(jì)進(jìn)行優(yōu)化去除,但是可以通過算法校準(zhǔn)在特定的使用場(chǎng)合進(jìn)行優(yōu)化,以提高測(cè)量精度。PT100常見的接法電路主要分為三種,分別為二線制、三線制、四線制,二線制不考慮測(cè)量導(dǎo)線引入的導(dǎo)線電阻,所以一般適用于測(cè)量導(dǎo)線較短,測(cè)量精度要求不高的場(chǎng)合。三線制是現(xiàn)在工業(yè)設(shè)備中使用最為廣泛的接線方式,這種設(shè)計(jì)必須要保證R1,R2,R3三根引線是材料、長(zhǎng)度和粗細(xì)是一致的,這樣就可以通過分別測(cè)量?jī)蓚€(gè)正端的電阻阻值,然后進(jìn)行減法運(yùn)算得到溫感探頭真實(shí)阻值[3]。四線制的PT100能夠有效地降低導(dǎo)線電阻在測(cè)量過程中的誤差,但是測(cè)量電路相對(duì)較為復(fù)雜,需要制作恒流源進(jìn)行測(cè)量。
假設(shè)R1,R2,R3,R4是PT100的四根導(dǎo)線的電阻,當(dāng)R3,R4接電流源的時(shí)候,則R1,R2接監(jiān)控設(shè)備。監(jiān)控設(shè)備可以認(rèn)為是開路狀態(tài),當(dāng)電流源電流恒定為I時(shí),監(jiān)控設(shè)備采集的電壓為U,就可以通過R=U/I計(jì)算出電阻Re的阻值,進(jìn)而對(duì)應(yīng)真實(shí)的溫度。
本設(shè)計(jì)巧用LM317內(nèi)部基準(zhǔn)電壓VREF,實(shí)現(xiàn)電流源的產(chǎn)生。由于其LM317內(nèi)部的芯片反饋機(jī)制,在LM317的輸出引腳和電壓反饋引腳之間的電壓是恒定不變的,基本都是1.25V,因?yàn)閭€(gè)體差異會(huì)有少許偏差。通過測(cè)試得到LM317整體電流源精度可以達(dá)到0.1%的精度,能夠滿足采用所需的電流精度要求。
差分放大器是利用放大器的對(duì)稱電路,對(duì)于兩個(gè)輸入點(diǎn)的電壓進(jìn)行對(duì)比,從而計(jì)算出兩個(gè)輸入端之間的差異。本設(shè)計(jì)采用的放大器為廣泛使用的LM358,能夠?qū)π⌒盘?hào)進(jìn)行多達(dá)一百倍的放大,因?yàn)楸驹O(shè)計(jì)采集的PT100的原始信號(hào)不經(jīng)過原點(diǎn),所以不需要考慮放大器的零漂問題以及最小放大電壓?jiǎn)栴},并且本設(shè)計(jì)可以在軟件上對(duì)參數(shù)進(jìn)行局域校準(zhǔn),所以不需要過多關(guān)注系統(tǒng)的采樣固有誤差,但是采樣對(duì)系統(tǒng)的穩(wěn)定性要求較高,這直接決定了采樣的精度高低。本設(shè)計(jì)的放大倍數(shù)為4倍。差分放大器電路如圖3所示:
圖3 差分放大器電路
應(yīng)用虛斷的概念,R3和R4形成一個(gè)分壓電路。V+(運(yùn)放的正輸入端電壓)等于V2 * R4 / (R3 + R4)。
應(yīng)用虛短的概念,V-就等于V+。對(duì)V1,R1,R2一路列方程:
(V-- V1) / R1 = (Vout - V-) / R2
(1)
將V+ 的表達(dá)式代入V-
Vout * R1 = V2 * R4 / (R3 + R4) *
(R2 + R1) - V1 * R2
(2)
因?yàn)镽1=R3,R2=R4,進(jìn)一步整理,則得到最后的表達(dá)式為
Vout = (V2 - V1 )* (R2 / R1)
(3)
本設(shè)計(jì)的LCD12864顯示模塊有12個(gè)引腳,1到4引腳是用來給背景燈珠供電以及參考地的引腳,第五個(gè)引腳是顯示屏的復(fù)位引腳,第六個(gè)是模式選擇引腳,第七個(gè)是SPI通訊的數(shù)據(jù)通訊引腳,用來傳輸顯示數(shù)據(jù)。第八個(gè)是SPI通訊的時(shí)鐘通訊引腳,用來提供通訊的時(shí)鐘基準(zhǔn)。第九個(gè)是顯示屏的整體供電引腳,本設(shè)計(jì)采用3.3伏供電,第11個(gè)是顯示屏的片選引腳,旁邊的C3電容用來降低高頻奇次諧波。
本設(shè)計(jì)根據(jù)功能要求進(jìn)行了軟件邏輯的設(shè)計(jì),實(shí)現(xiàn)了本設(shè)計(jì)所要的功能。在系統(tǒng)上電后,首先要進(jìn)行系統(tǒng)的初始化,然后對(duì)ADC進(jìn)行初始化,配置本設(shè)計(jì)的溫度傳感器輸入的端口,復(fù)用單片機(jī)的ADC口,本設(shè)計(jì)選擇的是PA7,單片機(jī)ADC1轉(zhuǎn)換器的第七個(gè)通道,同時(shí)設(shè)置采樣頻率等參數(shù)。然后讀取PT100與高精度低溫漂電阻之間的電流乘以電阻之后的電壓值,送到單片機(jī)的ADC引腳進(jìn)行模數(shù)轉(zhuǎn)換。為了保證轉(zhuǎn)換的精度和濾除系統(tǒng)轉(zhuǎn)化過程中存在的系統(tǒng)誤差,本設(shè)計(jì)采用轉(zhuǎn)換100次,將ADC轉(zhuǎn)換值進(jìn)行累加處理,然后求平均值的方案,本設(shè)計(jì)的循環(huán)轉(zhuǎn)換函數(shù)會(huì)判斷是否達(dá)到100次轉(zhuǎn)換,如果沒有達(dá)到,記錄本次轉(zhuǎn)化的數(shù)值并進(jìn)行累加,接下來進(jìn)行下一次的ADC轉(zhuǎn)換,當(dāng)達(dá)到100次轉(zhuǎn)換時(shí),結(jié)束ADC采集轉(zhuǎn)換并求取100次轉(zhuǎn)換的平均值。獲得ADC轉(zhuǎn)換值后,通過計(jì)算得到電阻阻值的高低差異,然后通過PT100的公式計(jì)算得到對(duì)應(yīng)的溫度數(shù)值,最后通過單片機(jī)和LCD12864之間的SPI串行線將數(shù)據(jù)發(fā)送到顯示屏顯示。
PT100溫度傳感器的軟件流程方案,首先本設(shè)計(jì)要對(duì)單片機(jī)的模數(shù)轉(zhuǎn)換資源口進(jìn)行分配,設(shè)置轉(zhuǎn)換頻率,采樣周期等參數(shù),然后溫度采樣電阻分壓過后得到的電壓數(shù)值被單片機(jī)采集,并且轉(zhuǎn)化為ADC采樣數(shù)值,這個(gè)ADC采樣數(shù)值并不能反應(yīng)溫度的真實(shí)數(shù)值,所以需要先將這個(gè)ADC采樣數(shù)值轉(zhuǎn)換成電阻數(shù)值,然后再通過PT100的電阻與溫度之間的對(duì)應(yīng)關(guān)系進(jìn)行公式的計(jì)算,得到溫度數(shù)值。
本設(shè)計(jì)的顯示屏采用的是SPI串口通訊,共有四根線。一根是數(shù)據(jù)輸入線,這根數(shù)據(jù)輸入線是單片機(jī)發(fā)送數(shù)據(jù)到LCD12864顯示屏的顯示數(shù)據(jù),顯示數(shù)據(jù)遵循通訊數(shù)據(jù)格式。一根是數(shù)據(jù)輸出線,SPI是雙向的數(shù)據(jù)通訊,有來有回,通訊速率可以達(dá)到10M/s,比IIC通訊速率提高了好幾倍[7]。一根是通訊時(shí)鐘線,通訊時(shí)鐘線的作用是為兩個(gè)設(shè)備之間的數(shù)字通訊提供一個(gè)時(shí)間基準(zhǔn)。一根是片選信號(hào)線,就是單片機(jī)選擇是否和這個(gè)芯片進(jìn)行通訊。因?yàn)楸驹O(shè)計(jì)的顯示屏只有數(shù)據(jù)輸入,沒有數(shù)據(jù)輸出,所以本設(shè)計(jì)的SPI通訊線中只有三根線,少了一根數(shù)據(jù)輸出通訊線。
PT100鉑熱電阻通過它的阻值變化與溫度之間的關(guān)系,得出了一個(gè)比例系數(shù),這個(gè)比例系數(shù)A=0.00390802;B=-0.000000580;C=0.0000000000042735,PT100在0到100度之間具有很好的線性關(guān)系,線性關(guān)系圖如圖4所示:
圖4 PT100線性關(guān)系圖
根據(jù)韋達(dá)公式求得阻值的換算公式:
t=(sqrt((A*R0)2-4*B*R0*(R0-Rt))-
A*R0)2/B/R0
(4)
但是這種線性的計(jì)算方式適用于采樣精度要求不高的場(chǎng)合,常見的兩線制的PT100設(shè)備多采用這種計(jì)算方式。對(duì)于本設(shè)計(jì)的四線制PT100采集系統(tǒng),對(duì)于硬件的設(shè)計(jì)采用差分放大,有效減少了誤差干擾,對(duì)于軟件的算法,本設(shè)計(jì)采用查表法。查表法相對(duì)于公式計(jì)算法準(zhǔn)確度更高,因?yàn)镻T100傳感器采集的溫度與自身電阻之間的關(guān)系也不是絕對(duì)的線性關(guān)系,查表法能夠根據(jù)每個(gè)傳感器的采集差異進(jìn)行有效的校準(zhǔn),提高采樣精度[5]。PT100單個(gè)采樣真值表如圖5所示:
圖5 PT100單個(gè)采樣真值表
通過實(shí)際的測(cè)量可以測(cè)量出恒流源輸出的電流為0.042毫安,進(jìn)而可以得出溫度傳感器的電阻阻值,因?yàn)椴罘址糯笃鞑捎玫氖?:4的放大倍率,整體放大倍數(shù)為4倍,假設(shè)通過STM32F401采集的adc的值為3000,通過公式計(jì)算的方式會(huì)存在系統(tǒng)誤差,如果采用溫度人員對(duì)其進(jìn)行調(diào)整的方式,通過查表法查詢出3000所對(duì)應(yīng)的區(qū)間所在范圍為33數(shù)組和34數(shù)組之間,兩個(gè)數(shù)據(jù)之間相差的溫度為1℃,因?yàn)樵谶@個(gè)極小的溫度區(qū)間內(nèi),認(rèn)為其是為線性的,可以通過計(jì)算得到溫度值為30.5度[6]。
佳木斯大學(xué)學(xué)報(bào)(自然科學(xué)版)2023年2期