基于MSP430和MAX1452的溫度補償系統(tǒng)設計
在工業(yè)控制中,各種電子器件由于溫度變化,經常會引起溫度漂移誤差,從而影響到電子器件的靈敏性和精確度,所以消除溫度漂移誤差就成為工業(yè)控制中的一個重要方面。本文采用MSP430單片機和MAX1452智能芯片,設計一個溫度補償電路系統(tǒng),達到消除溫度漂移的目的。
1 溫度補償系統(tǒng)的硬件設計
1.1 使用的主要器件
MSP430FE425低功耗單片機、MAX1452、MAX4051、74LVC4245A(雙電源的電平移位器)、字符型液晶顯示器LCD、32768Hz晶振等。
1.2 溫度補償系統(tǒng)的設計思想
針對電子器件由于溫度變化引起的溫度漂移誤差,通過MSP430低功耗單片機進行調節(jié),補償溫度漂移誤差,達到預期狀態(tài)下的溫度。
1.3 溫度補償系統(tǒng)的工作原理MAX1452芯片內部有一個片內溫度傳感器,這個傳感器測量MAX1452芯片在運行環(huán)境下的溫度,MSP430低功耗單片機接受MAX1452 芯片上的溫度數(shù)據(jù),根據(jù)已經存儲在EEPROM內的溫度數(shù)據(jù)進行查找比較,找到相應溫度下的溫度補償值,進行粗調和細調,確定用于補償溫度漂移誤差的精確值,然后傳送回MAX1452芯片中,使電子器件的溫度漂移誤差得到抵消,從而可以顯示理想條件下的溫度。其中,MAX4051芯片是選擇需要調節(jié)的 MAX1452的編號,74LVC4245芯片是選擇對應MAX1452芯片的輸入/輸出方向。
1.4 溫度補償系統(tǒng)的原理圖
圖1 溫度補償系統(tǒng)原理框圖
1.5 溫度補償系統(tǒng)電路圖圖2 溫度補償系統(tǒng)電路圖
2 溫度補償系統(tǒng)的軟件設計本系統(tǒng)的軟件設計主要分為5個模塊:初始化模塊、顯示模塊、中斷模塊、調節(jié)模塊和通信模塊。
2.1 初始化模塊初始化模塊主要包含兩個子功能模塊:補償模塊和恢復模塊。
補償模塊:在上電時,從主計算機下載在不同溫度下的溫度漂移誤差補償?shù)臄?shù)據(jù)。
恢復模塊:在復位時,恢復MSP430斷電時的數(shù)據(jù)。
2.2 顯示模塊
本模塊主要包含6個子功能模塊:初始化數(shù)據(jù)模塊、拆分數(shù)據(jù)模塊、組合數(shù)據(jù)模塊、顯示初始化模塊、功能顯示模塊、溫度顯示模塊。
初始化數(shù)據(jù)模塊:主要功能是對顯示模塊中使用的中間變量進行初始化(即全部清零),防止上電或者數(shù)據(jù)改變后,存儲異常的數(shù)據(jù),從而在顯示時出現(xiàn)異常。
拆分數(shù)據(jù)模塊:液晶顯示器LCD的顯示是逐字符顯示的,所以對于多位數(shù)據(jù)的顯示,在顯示之前必須對多位數(shù)據(jù)進行拆分,把一個多位數(shù)據(jù)拆成幾個個位數(shù)據(jù),然后根據(jù)MSP430中液晶顯示器LCD的顯示規(guī)則進行顯示。
組合數(shù)據(jù)模塊:在液晶顯示器LCD的某位數(shù)據(jù)發(fā)生改變后,需要將改變后的數(shù)據(jù)保存并傳送到MAX1452,進行溫度漂移誤差補償。本模塊即完成對多個個位數(shù)據(jù)組合成一個多位數(shù)的功能。
顯示初始化模塊:為了防止在顯示時,液晶顯示器LCD顯示異常數(shù)字或者代碼,需要對液晶顯示器LCD進行清屏,這樣可以保證液晶顯示器LCD顯示的正確性。
功能顯示模塊:在液晶顯示器LCD的第6~4位字符顯示功能部分的數(shù)字代碼。其中,第6位字符顯示選擇的MAX1452的編號(0~8),第5位字符顯示選擇補償溫度偏移誤差的位置(零點或滿偏),第4位字符顯示選擇所顯示溫度的狀態(tài)(顯示狀態(tài)或修改狀態(tài))。
溫度顯示模塊:在液晶顯示器LCD的第2~0位字符顯示溫度部分的數(shù)字代碼。其中,第2位字符表示符號(只有在0°C以下才顯示“-”)。第1~0位字符顯示溫度的數(shù)值。
2.3 中斷模塊
本模塊主要包含3個子功能模塊:中斷初始化模塊、中斷狀態(tài)判別模塊、中斷狀態(tài)設置模塊。由于在MSP430單片機中,中斷是嵌套調用的,所以在各個子模塊之間沒有明確層次先后順序,僅按照出現(xiàn)的先后順序確定其之間的相互調用關系。
2.3.1 狀態(tài)轉換圖
圖3 中斷狀態(tài)轉換圖
2.3.2 中斷初始化模塊
本模塊的主要功能是在上電或者復位時,清除此前的所有中斷向量和中斷標志位,防止程序在運行過程中造成異常。
2.3.3 中斷狀態(tài)判別模塊
在此模塊中,要對中斷進行判斷,并且做出相應的響應。在“顯示狀態(tài)”下,允許“功能”中斷;在“功能調整狀態(tài)”下,允許“移位”中斷、“循環(huán)加1” 中斷、“確定”中斷和“取消”中斷;在“溫度調整狀態(tài)”下,允許的中斷與“功能調整狀態(tài)”相同。對于“復位”中斷,在三個工作狀態(tài)下都允許。
2.3.4 中斷狀態(tài)設置模塊
本模塊的主要功能是在“顯示狀態(tài)”、“功能調整狀態(tài)”和“溫度調整狀態(tài)”之間改變時,對溫度補償系統(tǒng)所正在運行的狀態(tài)做出相應的標識,以便在程序運行過程中,檢測到相應的狀態(tài),做出相應的判斷和響應。
2.4 調節(jié)模塊本模塊主要包含4個子功能模塊:循環(huán)移位模塊、循環(huán)加1模塊、確定模塊和取消模塊。
循環(huán)移位模塊:主要實現(xiàn)對液晶顯示器LCD顯示數(shù)字的移位控制,通過按鍵實現(xiàn)在液晶顯示器LCD顯示數(shù)字進行循環(huán)移動。
循環(huán)加1模塊:實現(xiàn)液晶顯示器LCD顯示數(shù)字的加法操作,通過按鍵在不同的數(shù)字區(qū)間內進行循環(huán)加1。
確定模塊:主要進行大量的控制和數(shù)據(jù)操作,還要調用中斷模塊和通信模塊的功能,實現(xiàn)對數(shù)據(jù)的傳輸和處理,同時改變溫度補償系統(tǒng)的運行狀態(tài)。
取消模塊:主要放棄對已經在液晶顯示器LCD上改變的數(shù)據(jù)進行操作,返回改變前的狀態(tài),同時改變溫度補償系統(tǒng)的運行狀態(tài)。
2.5 通信模塊
在溫度補償系統(tǒng)中,本模塊實現(xiàn)了MSP430和MAX1452之間的通信。通過調用本模塊,MSP430實現(xiàn)對MAX1452的控制和數(shù)據(jù)交互,實現(xiàn)對溫度漂移誤差的補償。
本模塊主要有7個子功能模塊:初始化模塊、重初始化模塊、讀模塊、寫模塊、數(shù)據(jù)計算模塊、地址查找模塊、控制模塊。
初始化模塊:根據(jù)MAX1452的通信協(xié)議,本模塊的功能是在在上電或者復位時對MAX1452進行初始化。
重初始化模塊:根據(jù)MAX1452的通信協(xié)議,本模塊是在MSP430與MAX1452進行通信之前(非上電或者復位情況下),對MAX1452進行初始化,保證傳輸數(shù)據(jù)的正確性。
圖4讀模塊的流程圖
圖5寫模塊的流程圖
讀模塊:根據(jù)MAX1452的通信協(xié)議,在從MAX1452讀出數(shù)據(jù)時,需要有特定的數(shù)據(jù)格式,本模塊實現(xiàn)從MAX1452讀出數(shù)據(jù),并且將MAX1452中特定的數(shù)據(jù)傳輸格式,轉化為便于計算或顯示使用的數(shù)據(jù)格式的功能。流程圖如圖4所示。
寫模塊:根據(jù)MAX1452的通信協(xié)議,在從MAX1452寫入數(shù)據(jù)時,需要有特定的數(shù)據(jù)格式,本模塊實現(xiàn)將計算或顯示數(shù)據(jù)轉化為MAX1452的特定的數(shù)據(jù)傳輸格式,并寫入到MAX1452的功能。流程圖如圖5所示。
數(shù)據(jù)計算模塊:本模塊的主要功能是對從MAX1452讀入的數(shù)據(jù)與MAX1452中EEPROM的數(shù)據(jù)進行計算,得出需要達到理想狀態(tài)下的所要補償?shù)臏囟鹊拇_切值。
地址查找模塊:根據(jù)MAX1452的通信協(xié)議,在溫度補償過程中,需要根據(jù)公式,查找不同溫度狀況下零點和滿偏的溫度補償值的地址,然后讀出相應的數(shù)據(jù)。本功能模塊主要實現(xiàn)查找地址的功能。
控制模塊:本模塊的主要功能是根據(jù)MAX1452的通信協(xié)議,對其控制指令進行封裝,使其完成固定的功能,便于進行調用。
3 結束語本文創(chuàng)新點:利用MSP430低功耗單片機和MAX1452芯片,設計溫度補償系統(tǒng)的結構以及此系統(tǒng)中的中斷轉換狀態(tài)。
此系統(tǒng)在調試過程中得到以下補償數(shù)據(jù),如表1所示。
在此系統(tǒng)的設計過程中,盡管在一定程度上實現(xiàn)了對溫度漂移誤差的的補償,但是,補償?shù)倪^程是以手動調節(jié)完成的,在實時性方面存在一定的不足,有待進一步研究。
表1 溫度補償數(shù)據(jù)
溫度(°C) | 補償值 | |
十進制表示 | 十六進制表示 | |
-40 | 20 | 14 |
25 | 65 | 41 |
85 | 106 | 6A |
125 | 134 | 86 |
【1】沈建華,楊艷琴,翟驍曙等編,MSP430系列16位超低功耗單片機實踐與系統(tǒng)設計[M],清華大學出版社,2005年4月。
【2】魏小龍編,MSP430系列單片機接口技術及系統(tǒng)設計實例[M],北京航空航天大學出版社,2002年。
【3】胡大可編,MSP430系列單片機C語言程序設計與開發(fā)[M],北京航空航天大學出版社,2003年1月。
【4】王成江,王安敏,張玉華,基于MAX1452 的超細顆粒機械加工中振動的測試,電子產品世界[J/OL],2002年Z2期。
【5】劉玉宏,MSP430單片機C語言和匯編語言混合編程,微計算機信息[J/OL],2003年第19卷第10期56頁。
【6】張景元,陳平,一種基于單片機的多功能數(shù)字鐘,微計算機信息[J/OL],2005年第21卷第9-2期136頁。
評論