新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MSP430和MAX1452的溫度補(bǔ)償系統(tǒng)設(shè)計(jì)

基于MSP430和MAX1452的溫度補(bǔ)償系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2012-01-19 來(lái)源:網(wǎng)絡(luò) 收藏

在工業(yè)控制中,各種電子器件由于溫度變化,經(jīng)常會(huì)引起溫度漂移誤差,從而影響到電子器件的靈敏性和精確度,所以消除溫度漂移誤差就成為工業(yè)控制中的一個(gè)重要方面。本文采用單片機(jī)和智能芯片,設(shè)計(jì)一個(gè)溫度補(bǔ)償電路系統(tǒng),達(dá)到消除溫度漂移的目的。

1 溫度補(bǔ)償系統(tǒng)的硬件設(shè)計(jì)
1.1 使用的主要器件

FE425低功耗單片機(jī)、、MAX4051、74LVC4245A(雙電源的電平移位器)、字符型液晶顯示器LCD、32768Hz晶振等。

1.2 溫度補(bǔ)償系統(tǒng)的設(shè)計(jì)思想

針對(duì)電子器件由于溫度變化引起的溫度漂移誤差,通過(guò)低功耗單片機(jī)進(jìn)行調(diào)節(jié),補(bǔ)償溫度漂移誤差,達(dá)到預(yù)期狀態(tài)下的溫度。

1.3 溫度補(bǔ)償系統(tǒng)的工作原理

芯片內(nèi)部有一個(gè)片內(nèi)溫度傳感器,這個(gè)傳感器測(cè)量MAX1452芯片在運(yùn)行環(huán)境下的溫度,MSP430低功耗單片機(jī)接受MAX1452 芯片上的溫度數(shù)據(jù),根據(jù)已經(jīng)存儲(chǔ)在EEPROM內(nèi)的溫度數(shù)據(jù)進(jìn)行查找比較,找到相應(yīng)溫度下的溫度補(bǔ)償值,進(jìn)行粗調(diào)和細(xì)調(diào),確定用于補(bǔ)償溫度漂移誤差的精確值,然后傳送回MAX1452芯片中,使電子器件的溫度漂移誤差得到抵消,從而可以顯示理想條件下的溫度。其中,MAX4051芯片是選擇需要調(diào)節(jié)的 MAX1452的編號(hào),74LVC4245芯片是選擇對(duì)應(yīng)MAX1452芯片的輸入/輸出方向。

1.4 溫度補(bǔ)償系統(tǒng)的原理圖

圖1 溫度補(bǔ)償系統(tǒng)原理框圖

1.5 溫度補(bǔ)償系統(tǒng)電路圖

圖2 溫度補(bǔ)償系統(tǒng)電路圖

2 溫度補(bǔ)償系統(tǒng)的軟件設(shè)計(jì)

本系統(tǒng)的軟件設(shè)計(jì)主要分為5個(gè)模塊:初始化模塊、顯示模塊、中斷模塊、調(diào)節(jié)模塊和通信模塊。

2.1 初始化模塊

初始化模塊主要包含兩個(gè)子功能模塊:補(bǔ)償模塊和恢復(fù)模塊。

補(bǔ)償模塊:在上電時(shí),從主計(jì)算機(jī)下載在不同溫度下的溫度漂移誤差補(bǔ)償?shù)臄?shù)據(jù)。

恢復(fù)模塊:在復(fù)位時(shí),恢復(fù)MSP430斷電時(shí)的數(shù)據(jù)。

2.2 顯示模塊

本模塊主要包含6個(gè)子功能模塊:初始化數(shù)據(jù)模塊、拆分?jǐn)?shù)據(jù)模塊、組合數(shù)據(jù)模塊、顯示初始化模塊、功能顯示模塊、溫度顯示模塊。

初始化數(shù)據(jù)模塊:主要功能是對(duì)顯示模塊中使用的中間變量進(jìn)行初始化(即全部清零),防止上電或者數(shù)據(jù)改變后,存儲(chǔ)異常的數(shù)據(jù),從而在顯示時(shí)出現(xiàn)異常。

拆分?jǐn)?shù)據(jù)模塊:液晶顯示器LCD的顯示是逐字符顯示的,所以對(duì)于多位數(shù)據(jù)的顯示,在顯示之前必須對(duì)多位數(shù)據(jù)進(jìn)行拆分,把一個(gè)多位數(shù)據(jù)拆成幾個(gè)個(gè)位數(shù)據(jù),然后根據(jù)MSP430中液晶顯示器LCD的顯示規(guī)則進(jìn)行顯示。

組合數(shù)據(jù)模塊:在液晶顯示器LCD的某位數(shù)據(jù)發(fā)生改變后,需要將改變后的數(shù)據(jù)保存并傳送到MAX1452,進(jìn)行溫度漂移誤差補(bǔ)償。本模塊即完成對(duì)多個(gè)個(gè)位數(shù)據(jù)組合成一個(gè)多位數(shù)的功能。

顯示初始化模塊:為了防止在顯示時(shí),液晶顯示器LCD顯示異常數(shù)字或者代碼,需要對(duì)液晶顯示器LCD進(jìn)行清屏,這樣可以保證液晶顯示器LCD顯示的正確性。

功能顯示模塊:在液晶顯示器LCD的第6~4位字符顯示功能部分的數(shù)字代碼。其中,第6位字符顯示選擇的MAX1452的編號(hào)(0~8),第5位字符顯示選擇補(bǔ)償溫度偏移誤差的位置(零點(diǎn)或滿(mǎn)偏),第4位字符顯示選擇所顯示溫度的狀態(tài)(顯示狀態(tài)或修改狀態(tài))。

溫度顯示模塊:在液晶顯示器LCD的第2~0位字符顯示溫度部分的數(shù)字代碼。其中,第2位字符表示符號(hào)(只有在0°C以下才顯示“-”)。第1~0位字符顯示溫度的數(shù)值。

2.3 中斷模塊


本模塊主要包含3個(gè)子功能模塊:中斷初始化模塊、中斷狀態(tài)判別模塊、中斷狀態(tài)設(shè)置模塊。由于在MSP430單片機(jī)中,中斷是嵌套調(diào)用的,所以在各個(gè)子模塊之間沒(méi)有明確層次先后順序,僅按照出現(xiàn)的先后順序確定其之間的相互調(diào)用關(guān)系。

2.3.1 狀態(tài)轉(zhuǎn)換圖

圖3 中斷狀態(tài)轉(zhuǎn)換圖

2.3.2 中斷初始化模塊

本模塊的主要功能是在上電或者復(fù)位時(shí),清除此前的所有中斷向量和中斷標(biāo)志位,防止程序在運(yùn)行過(guò)程中造成異常。

2.3.3 中斷狀態(tài)判別模塊

在此模塊中,要對(duì)中斷進(jìn)行判斷,并且做出相應(yīng)的響應(yīng)。在“顯示狀態(tài)”下,允許“功能”中斷;在“功能調(diào)整狀態(tài)”下,允許“移位”中斷、“循環(huán)加1” 中斷、“確定”中斷和“取消”中斷;在“溫度調(diào)整狀態(tài)”下,允許的中斷與“功能調(diào)整狀態(tài)”相同。對(duì)于“復(fù)位”中斷,在三個(gè)工作狀態(tài)下都允許。

2.3.4 中斷狀態(tài)設(shè)置模塊

本模塊的主要功能是在“顯示狀態(tài)”、“功能調(diào)整狀態(tài)”和“溫度調(diào)整狀態(tài)”之間改變時(shí),對(duì)溫度補(bǔ)償系統(tǒng)所正在運(yùn)行的狀態(tài)做出相應(yīng)的標(biāo)識(shí),以便在程序運(yùn)行過(guò)程中,檢測(cè)到相應(yīng)的狀態(tài),做出相應(yīng)的判斷和響應(yīng)。

2.4 調(diào)節(jié)模塊

本模塊主要包含4個(gè)子功能模塊:循環(huán)移位模塊、循環(huán)加1模塊、確定模塊和取消模塊。

循環(huán)移位模塊:主要實(shí)現(xiàn)對(duì)液晶顯示器LCD顯示數(shù)字的移位控制,通過(guò)按鍵實(shí)現(xiàn)在液晶顯示器LCD顯示數(shù)字進(jìn)行循環(huán)移動(dòng)。

循環(huán)加1模塊:實(shí)現(xiàn)液晶顯示器LCD顯示數(shù)字的加法操作,通過(guò)按鍵在不同的數(shù)字區(qū)間內(nèi)進(jìn)行循環(huán)加1。

確定模塊:主要進(jìn)行大量的控制和數(shù)據(jù)操作,還要調(diào)用中斷模塊和通信模塊的功能,實(shí)現(xiàn)對(duì)數(shù)據(jù)的傳輸和處理,同時(shí)改變溫度補(bǔ)償系統(tǒng)的運(yùn)行狀態(tài)。

取消模塊:主要放棄對(duì)已經(jīng)在液晶顯示器LCD上改變的數(shù)據(jù)進(jìn)行操作,返回改變前的狀態(tài),同時(shí)改變溫度補(bǔ)償系統(tǒng)的運(yùn)行狀態(tài)。

2.5 通信模塊

在溫度補(bǔ)償系統(tǒng)中,本模塊實(shí)現(xiàn)了MSP430和MAX1452之間的通信。通過(guò)調(diào)用本模塊,MSP430實(shí)現(xiàn)對(duì)MAX1452的控制和數(shù)據(jù)交互,實(shí)現(xiàn)對(duì)溫度漂移誤差的補(bǔ)償。

本模塊主要有7個(gè)子功能模塊:初始化模塊、重初始化模塊、讀模塊、寫(xiě)模塊、數(shù)據(jù)計(jì)算模塊、地址查找模塊、控制模塊。

初始化模塊:根據(jù)MAX1452的通信協(xié)議,本模塊的功能是在在上電或者復(fù)位時(shí)對(duì)MAX1452進(jìn)行初始化。

重初始化模塊:根據(jù)MAX1452的通信協(xié)議,本模塊是在MSP430與MAX1452進(jìn)行通信之前(非上電或者復(fù)位情況下),對(duì)MAX1452進(jìn)行初始化,保證傳輸數(shù)據(jù)的正確性。

圖4讀模塊的流程圖

圖5寫(xiě)模塊的流程圖

讀模塊:根據(jù)MAX1452的通信協(xié)議,在從MAX1452讀出數(shù)據(jù)時(shí),需要有特定的數(shù)據(jù)格式,本模塊實(shí)現(xiàn)從MAX1452讀出數(shù)據(jù),并且將MAX1452中特定的數(shù)據(jù)傳輸格式,轉(zhuǎn)化為便于計(jì)算或顯示使用的數(shù)據(jù)格式的功能。流程圖如圖4所示。

寫(xiě)模塊:根據(jù)MAX1452的通信協(xié)議,在從MAX1452寫(xiě)入數(shù)據(jù)時(shí),需要有特定的數(shù)據(jù)格式,本模塊實(shí)現(xiàn)將計(jì)算或顯示數(shù)據(jù)轉(zhuǎn)化為MAX1452的特定的數(shù)據(jù)傳輸格式,并寫(xiě)入到MAX1452的功能。流程圖如圖5所示。

數(shù)據(jù)計(jì)算模塊:本模塊的主要功能是對(duì)從MAX1452讀入的數(shù)據(jù)與MAX1452中EEPROM的數(shù)據(jù)進(jìn)行計(jì)算,得出需要達(dá)到理想狀態(tài)下的所要補(bǔ)償?shù)臏囟鹊拇_切值。

地址查找模塊:根據(jù)MAX1452的通信協(xié)議,在溫度補(bǔ)償過(guò)程中,需要根據(jù)公式,查找不同溫度狀況下零點(diǎn)和滿(mǎn)偏的溫度補(bǔ)償值的地址,然后讀出相應(yīng)的數(shù)據(jù)。本功能模塊主要實(shí)現(xiàn)查找地址的功能。

控制模塊:本模塊的主要功能是根據(jù)MAX1452的通信協(xié)議,對(duì)其控制指令進(jìn)行封裝,使其完成固定的功能,便于進(jìn)行調(diào)用。

3 結(jié)束語(yǔ)

本文創(chuàng)新點(diǎn):利用MSP430低功耗單片機(jī)和MAX1452芯片,設(shè)計(jì)溫度補(bǔ)償系統(tǒng)的結(jié)構(gòu)以及此系統(tǒng)中的中斷轉(zhuǎn)換狀態(tài)。

此系統(tǒng)在調(diào)試過(guò)程中得到以下補(bǔ)償數(shù)據(jù),如表1所示。

在此系統(tǒng)的設(shè)計(jì)過(guò)程中,盡管在一定程度上實(shí)現(xiàn)了對(duì)溫度漂移誤差的的補(bǔ)償,但是,補(bǔ)償?shù)倪^(guò)程是以手動(dòng)調(diào)節(jié)完成的,在實(shí)時(shí)性方面存在一定的不足,有待進(jìn)一步研究。

表1 溫度補(bǔ)償數(shù)據(jù)

溫度(°C)

補(bǔ)償值

十進(jìn)制表示

十六進(jìn)制表示

-40

20

14

25

65

41

85

106

6A

125

134

86

參考文獻(xiàn)

【1】沈建華,楊艷琴,翟驍曙等編,MSP430系列16位超低功耗單片機(jī)實(shí)踐與系統(tǒng)設(shè)計(jì)[M],清華大學(xué)出版社,2005年4月。

【2】魏小龍編,MSP430系列單片機(jī)接口技術(shù)及系統(tǒng)設(shè)計(jì)實(shí)例[M],北京航空航天大學(xué)出版社,2002年。

【3】胡大可編,MSP430系列單片機(jī)C語(yǔ)言程序設(shè)計(jì)與開(kāi)發(fā)[M],北京航空航天大學(xué)出版社,2003年1月。

【4】王成江,王安敏,張玉華,基于MAX1452 的超細(xì)顆粒機(jī)械加工中振動(dòng)的測(cè)試,電子產(chǎn)品世界[J/OL],2002年Z2期。

【5】劉玉宏,MSP430單片機(jī)C語(yǔ)言和匯編語(yǔ)言混合編程,微計(jì)算機(jī)信息[J/OL],2003年第19卷第10期56頁(yè)。

【6】張景元,陳平,一種基于單片機(jī)的多功能數(shù)字鐘,微計(jì)算機(jī)信息[J/OL],2005年第21卷第9-2期136頁(yè)。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉