国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

恒溫箱溫度檢測儀的設計

2016-07-23 08:27:22楊瑞俊
山西電子技術(shù) 2016年2期

楊瑞俊

(山西職業(yè)技術(shù)學院電子工程系,山西 太原 030006)

?

恒溫箱溫度檢測儀的設計

楊瑞俊

(山西職業(yè)技術(shù)學院電子工程系,山西 太原 030006)

摘要:為了滿足電子設備恒溫箱對溫度實時監(jiān)測的要求,設計了一個功能豐富的溫度檢測儀。選取了MSP430F449作為CPU。對微型的溫度傳感器TMP102以及Flash存儲器SST25VF032B做了詳細的分析,并根據(jù)實際需求對芯片的功能進行了適當?shù)娜∩?。將采集回的溫度?shù)據(jù)進行分析處理,提出了創(chuàng)新的溫度值存儲機制,形成合理的文件系統(tǒng),可以快速檢索歷史數(shù)據(jù),實現(xiàn)了多樣化的數(shù)據(jù)查找方式。

關鍵詞:溫度檢測儀;TMP102;Flash存儲器

現(xiàn)代電子設備越來越趨向于精密化與復雜化,對工作環(huán)境提出了苛刻的要求,溫度的過高或過低都會導致其中元器件的性能降低、壽命縮短。因此恒溫箱的應用越來越廣泛。恒溫箱控制系統(tǒng)中溫度檢測儀的性能直接影響后端控制的準確性。此項目所設計的溫度檢測儀具有體積小、數(shù)據(jù)存儲容量大、功耗低等特點。論文主要專注于解決溫度采集以及數(shù)據(jù)存儲與查詢問題。通過選用MSP430芯片作為主控制器,進行合理的軟硬件設計,滿足了市場對功能的需求,具有良好的前景。

1系統(tǒng)設計

本設計的微處理器采用TI公司的MSP430F449。MSP系列單片機是目前市場化最成功的專用于低功耗設計的處理器,在有關節(jié)能環(huán)保、智能家居以及手持設備等領域應用廣泛。MSP430F449是一款性能卓越的16位單片機,具有超低的靜態(tài)電流,靈活多變的時鐘配置方式,多達5種的低功耗模式,最快可達6 us的喚醒時間以及豐富的外設等眾多優(yōu)異性能[1]。該型號單片機完全能夠滿足本設計對性能的要求,且具有較高的性價比。

溫度傳感器選用的是一款低功耗數(shù)字溫度傳感器,同樣來自TI公司的TMP102。在溫度為-25 ℃~+85 ℃的范圍之內(nèi)時,精度為0.5 ℃,由于環(huán)境溫度是個緩變量,并且溫度在0.5 ℃之內(nèi)變化時電子設備質(zhì)量不會發(fā)生變化,因此精度也滿足要求。輸出的溫度值是數(shù)字信號,簡化了與CPU之間的電路,同時其封裝為SOT563,包含引腳在內(nèi)的厚度僅為0.6 mm,縮小了產(chǎn)品的體積。

在溫度采集過程中會產(chǎn)生大量的數(shù)據(jù),需要有專門的外部存儲器進行保存。SST25VF032B是微芯公司推出的Flash存儲器,具有4 MByte存儲容量、SPI串行通信接口、靈活的擦除策略以及快速的擦除與訪問能力。

此外,還有程序仿真下載接口、按鍵輸入部分、射頻通信部分、電源部分。系統(tǒng)框圖如圖1。

圖1 系統(tǒng)設計框圖

2溫度采集設計

2.1溫度值的采集

TMP102采用的是Two-Wire通信方式。內(nèi)部含有五個寄存器,分別為Pointer寄存器、溫度寄存器、配置寄存器、TLOW寄存器和THIGH寄存器。通過對Pointer寄存器的設置來決定下一步CPU訪問其他四個寄存器的哪一個。該傳感器具有兩種溫度數(shù)據(jù)格式,13 bit與12 bit,兩種格式的分辨率一樣,只是13 bit的高溫范圍為150 ℃,高于12 bit的128 ℃。當環(huán)境溫度到達100 ℃的高溫時,早已超過了設備正常運行的范圍,所以12 bit的數(shù)據(jù)格式已能滿足需求。TMP102具有四種不同的轉(zhuǎn)換速率,由控制寄存器中的CR1、CR0兩位來決定,本設計將其設置成最快的8 Hz,利于提高采樣速度。完備的警告功能是該芯片的一個特色,可以通過修改TLOW寄存器和THIGH寄存器的值,設置正常溫度范圍的上下限,當超出這一范圍時,外圍管腳ALERT電平會發(fā)生變化。此外,TMP102作為Two-Wire通信中的從設備,根據(jù)A0管腳的接法不同,具有四種從設備地址[2]。本設計中將A0管腳與V+管腳連接,因此從設備地址為二進制數(shù)1001001。

在讀取溫度值的過程中,首先需要發(fā)送0x93,前七位表示從設備地址,最后一位設置接下來的操作是讀還是寫,‘1’表示為讀。當成功接收到TMP102的握手信號后,CPU需要準備接收兩個字節(jié)的溫度值。

如果需要修改某個寄存器的值,主機首先需要發(fā)送0x92,最后一位‘0’表示要寫。隨后的一個字節(jié)發(fā)送的是Pointer寄存器的值,最后兩位P1、P0的值決定了要修改的寄存器。緊接著就需要發(fā)送要修改的值。因此讀取溫度之前如果有修改寄存器的操作,需要首先將P1、P0的值改為默認的00,表示之后操作的是溫度寄存器。

2.2溫度值的數(shù)據(jù)處理

TMP102分辨率可達0.062 5 ℃。當溫度值數(shù)據(jù)格式為12 bit時,采集的范圍為-55 ℃~128 ℃。溫度寄存器分為兩個字節(jié),12位的數(shù)據(jù)分別存放于高字節(jié)與低字節(jié)的前4位。Two-wire協(xié)議接收的時候是單個字節(jié)接收的,所以首先需要通過高字節(jié)左移8位與低字節(jié)相加的方法,將兩個字節(jié)的數(shù)據(jù)存入一個16位的變量中。此時溫度值占據(jù)的是變量的高12位,將其右移4位便于數(shù)據(jù)處理。通過實測發(fā)現(xiàn),環(huán)境實際溫度與傳感器檢測的數(shù)據(jù)有一個極其微小的差距,所以需要在最后的數(shù)據(jù)上添加上這個微小的偏差。

TMP102溫度值采用的是補碼形式,為了滿足顯示的需要,此處將補碼轉(zhuǎn)化成BCD碼,并須有正負的信息。需要五個字節(jié)來存放最后的數(shù)據(jù),一個字節(jié)存放正負信息,0表示正數(shù),1表示負數(shù),兩個存放整數(shù)部分的BCD碼,一個存放小數(shù)部分的BCD碼。程序處理過程中,通過12位中的最高位來判斷正負,負數(shù)需要將補碼轉(zhuǎn)為原碼。無論正負,將原碼乘以分辨率0.062 5 ℃,結(jié)果轉(zhuǎn)化為BCD碼。程序流程如圖2。

圖2 溫度數(shù)據(jù)處理流程圖

3溫度值的存取設計

3.1SST25VF032B的訪問

SST25VF032B的通信方式為SPI,具有多達17種命令,功能豐富。

SST25VF032B的讀命令有兩個,Read與High-Speed-Read。Read的讀取速度為25 MHz,而High-Speed-Read可達80 MHz,遠遠超過一般單片機的訪問速度。還有一個特點,讀命令是可以連續(xù)讀的,地址為自動增加,一直到片選信號CE#變?yōu)楦唠娖浇刂?,大大增強了訪問的速度。當讀取完整個Flash最后一個地址的字節(jié)后,F(xiàn)lash會自動返回輸出第一個地址的數(shù)據(jù)。進行讀操作時,首先主機向設備發(fā)送0x0B,隨后發(fā)送三個字節(jié)的起始地址,以及緊跟一個無效的字節(jié)。之后便可以依序接收數(shù)據(jù)。

SST25VF032B具有靈活的寫保護功能。管腳WP#與狀態(tài)寄存器里面的BPL、BP3、BP2、BP1與BP0五個位共同實現(xiàn)寫保護功能。當WP#輸入為高,處于寫保護狀態(tài),同時禁止任何對BPL、BP3、BP2、BP1與BP0的修改。當WP#輸入為低,可以修改BPL位。BPL位決定了主機是否可以修改BP3、BP2、BP1、BP0,BPL位為1時候,禁止修改。BP3、BP2、BP1、BP0四位決定了寫保護的范圍。當為十進制0時,整個Flash沒有寫保護,此時可以對其進行擦除與寫操作。為十進制數(shù)1時,只保護Flash的1/64,即地址3F0000H~3FFFFFH。為十進制2~7時候,分別保護Flash的1/32、1/16……直到全部[3]。當進行寫與擦除操作之前,需要斷開WP#硬件保護及取消狀態(tài)寄存器的軟件保護。

擦除是SST25VF032B的一個特色。具有四種擦除機制。可以分別以整塊、4 KByte扇區(qū)、32 KByte塊、64 KByte塊為單位進行擦除。經(jīng)過對本設計要求的分析,主要采取4 KByte扇區(qū)擦除的方式。這樣整個Flash就被分成了4M/4K=1 024個扇區(qū),每個扇區(qū)中有4 096個字節(jié)。整個Flash共有4M個字節(jié),地址需要占用24位,字節(jié)地址的高12位表示扇區(qū)地址。在擦除過程中,狀態(tài)寄存器的BUSY位為1,當成為0時表示擦除操作完成。

進行擦除操作之前,需置WP#管腳為低,同時發(fā)送讀取狀態(tài)寄存器命令RDSR,確認BUSY為0以及WEL(寫使能位)為1。當不滿足要求時,發(fā)送EWSR(使能狀態(tài)寄存器修改)命令,允許修改狀態(tài)寄存器。通過WRSR命令寫入0x00,BPL、BP3、BP2、BP1、BP0為0,解開軟硬件的寫保護。接著需要發(fā)送WREN(寫使能)命令,設備會將WEL位置1。最后讀取狀態(tài)寄存器的值,看值是否為0x02,如果不是,重復上述操作,直到修改成功。此時可以發(fā)送扇區(qū)擦除命令0x20,其后跟著三個字節(jié)的地址,設備只取前12位為扇區(qū)地址。之后不斷檢測BUSY位,當變?yōu)?時,整個擦除過程結(jié)束。

寫命令有Byte-Program與AAI兩種,第一種每次可以寫入一個字節(jié),AAI為地址自動增加寫命令。AAI每次可寫入兩個字節(jié),當Flash存入這兩個數(shù)之后,主機可以連續(xù)發(fā)送下兩個字節(jié),而不需重新輸入地址,加快了速度。但這兩個字節(jié)存放的地址是對齊的,即第一個字節(jié)存放的地址最后一位為0,第二個字節(jié)存放的地址最后一位為1。與擦除命令之前的準備工作一樣,寫操作也需要完成對狀態(tài)寄存器同樣的設置。

3.2創(chuàng)新的溫度值的存取機制

為了滿足多樣化的設置需求,本檢測儀可以通過上位機來設置采集啟動時間、采集間隔。要求存儲多種數(shù)據(jù),同時為了以后歷史數(shù)據(jù)查詢的方便,需要設計合理的數(shù)據(jù)存儲策略。

每次上位機傳下來新的采集時間間隔,檢測儀需要按照新的配置重新啟動一次新的任務。此時,數(shù)據(jù)存儲從新的一個扇區(qū)開始。首先需用Sector-Erase命令將這一扇區(qū)擦除。每個任務的開頭需要存放的信息有任務起始時間(年、月、日、時、分、秒)、溫度采集間隔(時、分、秒),分別占用16個字節(jié)、6個字節(jié)、3個字節(jié)。每個溫度值需占用2個字節(jié)。溫度值為從溫度傳感器TMP102讀取回來,右移四位,并加上偏差值的數(shù)據(jù)。溫度值采用AAI命令寫入,其他數(shù)據(jù)采用Byte-Program命令。

我們搜索某次任務的溫度值時,只需要檢測每個扇區(qū)開頭的任務起始時間就可以檢索到相應的歷史數(shù)據(jù)。但一次任務所占空間可能會超出一個扇區(qū)。占據(jù)多個扇區(qū)的任務只有它所占據(jù)的第一個扇區(qū)的開頭是任務起始時間,而其他扇區(qū)是溫度值。這就給檢索造成了障礙。我們定義在每次任務的開頭首先存入0xAA,表示一次任務的開頭。在整個任務的結(jié)尾存入0x55,表示一次任務的結(jié)束。通過這樣的設置,可以支持上位機多種的搜索需求??梢圆檎夷炒稳蝿盏臏囟葦?shù)據(jù),也可以查找某次任務某一時刻的溫度數(shù)據(jù),還可以查找異常值等等。數(shù)據(jù)存儲的流程圖如圖3所示,查找某次任務的溫度數(shù)據(jù)程序流程圖如圖4所示。

圖3 溫度值存儲流程圖

圖4 數(shù)據(jù)搜索流程圖

4測試結(jié)果

以一次時間較短的、間隔較長的任務為例來對本系統(tǒng)進

行測試。假設啟動時間設置為2015年1月1日15點整,每隔3秒采集一次數(shù)據(jù),采集1分鐘,即一共采集20個數(shù)據(jù)。在這一分鐘之內(nèi),采用改變溫度傳感器周圍的環(huán)境溫度的辦法來檢測溫度檢測儀是否能正常工作。先迅速加熱,之后降溫。采集的溫度值首先存入到Flash中,再從Flash中讀取出來。圖5所示為IAR開發(fā)工具的一個截圖,所示為內(nèi)部RAM的數(shù)據(jù),黑色部分為采集回的數(shù)據(jù),共51個字節(jié)。

圖5 采集回的某次任務的所有數(shù)據(jù)

將溫度值提取出來,乘以分辨率0.062 5 ℃,保留小數(shù)點后1位,四舍五入,整理成波形如圖6所示??梢悦黠@的看出溫度變化趨勢,首先是18.3 ℃的室溫,之后先升后降,由于時間較短,最后溫度沒有降到室溫。

圖6 溫度變化曲線

5結(jié)論與展望

本設計中采用MSP430F449作為系統(tǒng)的CPU,利于以后的低功耗設計。對溫度傳感器TMP102以及Flash SST25VF032B做了詳細的研究,根據(jù)本項目實際要求,充分利用了這兩者的功能。對溫度傳感器采集回來的數(shù)據(jù)進行了科學有效的處理,并設計了合理的存儲機制,充分利用了FLASH的存儲空間,滿足了上位機對數(shù)據(jù)搜索快速、多樣靈活的要求。

參考文獻

[1]沈建華,楊艷琴.MSP430系列16位超低功耗單片機原理與實踐[M].北京:北京航空航天大學出版社,2008:26-30.

[2]Low Power Digital Temperature Sensor With SMBus?/Two-Wire Serial Interface in SOT563[EB/OL].Texas Instruments,2007.

[3]32 Mbit SPI Serial Flash SST25VF032B Data Sheet[EB/OL].Silicon Storage Technology,Inc,2011.

收稿日期:2015-11-27

作者簡介:楊瑞俊(1984- ),男,山西晉中人,助講,碩士研究生,研究方向:信號與信息處理。

文章編號:1674- 4578(2016)02- 0005- 03

中圖分類號:TP273.5

文獻標識碼:A

Design of the Temperature Detector for Thermostat

Yang Ruijun

(ElectronicEngineeringDepartment,ShanxiPolytechnicCollege,TaiyuanShanxi030006,China)

Abstract:In order to meet the requirements for real-time detection of temperature in the thermostat, a feature-rich temperature detector is designed based on MSP430F449 MCU. This paper analyzes in detail the micro TMP102 temperature sensor as well as Flash memory SST25VF032B and the chip functions are chosen according to the actual demand. The temperature data captured is analyzes and processed. This design presents an innovative temperature storage mechanism, forms a reasonable file system. With it, the historical data can be retrieved quickly and realize the diversified data-searching method.

Key words:temperature detector; TMP102; Flash memory

铁岭市| 安塞县| 启东市| 当阳市| 大竹县| 英山县| 双辽市| 镇雄县| 林口县| 长沙市| 海原县| 抚松县| 濮阳市| 噶尔县| 涞水县| 阜新市| 嘉荫县| 山东省| 抚州市| 萝北县| 武强县| 天峻县| 昌宁县| 云梦县| 通榆县| 明星| 田阳县| 依兰县| 澄城县| 崇左市| 九台市| 宜宾县| 溧阳市| 阳朔县| 平定县| 理塘县| 大化| 张家川| 张家口市| 霍邱县| 长沙市|