貴州大學電氣工程學院 黨長青 熊錦玲 陳湘萍
本系統(tǒng)是基于UCOSII操作系統(tǒng)的溫度采集系統(tǒng),微控制器采用的是意法半導體(ST)公司推出的基于ARM CortexM3內核的STM32F103增強型系列STM32F103VC。傳感器使用的是具有負溫度系數(shù)的熱敏電阻,其阻值隨溫度的升高而減小,通過AD采樣其電壓值,就可以算出對應的阻值,再查詢熱敏電阻的溫度——阻值系數(shù)表,就可以得出當前的溫度。該系統(tǒng)的顯示分為兩個部分,從機顯示和主機顯示,從機顯示采用的是一個2.8寸的TFT彩色液晶,調用液晶的顯示庫函數(shù),只需要設定好函數(shù)的各項參數(shù),也就是顯示的坐標和顯示內容,就可以在液晶屏上看到我們想看到的內容了。主機顯示即上位機顯示,用VC編寫顯示的界面。
Stm32f103vc是一個基于cortex-M3的32位ARM7微控制器,并帶有64或128kB的嵌入式高速Flash存儲器,最高72MHz工作頻率,在存儲器的0等待周期訪問時可達1.25DMips/MHz。
由于內置了寬范圍的串行通信接口(3個USART、SPI和2個I2C)和20KB的片內SRAM,7通道DMA控制器,支持的外設有定時器、ADC、SPI、I2C和USART,使得Stm32f103vc也適合用在通信網(wǎng)關和協(xié)議轉換器中。3個16位定時器,每個定時器有多達4個用于輸入捕獲/輸出比較/PWM或脈沖計數(shù)的通道和增量編碼器輸入。1個16位帶死區(qū)控制和緊急剎車,用于電機控制的PWM高級控制定時器。
方案一:采用Pt10鉑電阻作為檢測溫度的傳感器,其原理是將溫度的變化反應到電阻的電壓的變化上,經(jīng)過A/D轉換器將其轉換成數(shù)字量,與其溫度的變化相同。其優(yōu)點是測量的范圍廣,缺點是成本高,輔助電路復雜,難維護。
方案二:采用半導體溫度傳感器DS18B20,DS18B20為可編程數(shù)字式溫度傳感器,將采集到的溫度轉換成二進制數(shù)保存在傳感器中,SCM可以通過對DS18B20的寄存器的訪問讀出寄存器的值,DS18B20內部有上下限報警值設定寄存器,可以對傳感器進行上下限報警設定。其優(yōu)點是操作簡單,硬件電路簡單,不易受到外界的干擾。
方案三:采用熱敏電阻,其阻值隨溫度的變化而變化,一般分為兩種基本類型,負溫度系數(shù)(NTC)和正溫度系數(shù)(PTC),NTC表現(xiàn)為阻值隨溫度的升高而減小,PTC表現(xiàn)為阻值隨溫度的升高而升高,這兩種熱敏電阻都各自具有優(yōu)點和特點,以適應不同的應用場合,其應用電路簡單,成本低,在測量精度要求不是很好的場合,熱敏電阻是很好的選擇,基于以上考慮,在本系統(tǒng)中采用的是分溫度系數(shù)的熱敏電阻。
從機顯示模塊采用的是一個2.8寸的TFT彩色液晶顯示器,該液晶具有操作簡單,顯示的信息量大而且設計靈活的特點,顯示只需要在轉換結束以后調用顯示的庫函數(shù),設置好各項參數(shù),需要的內容就會顯示在液晶屏上。
主機顯示采用的PC機,用VC編寫一個從串口接收數(shù)據(jù)的界面。在串口打開之前界面如圖3.1所示。
圖3.1 上位機顯示界面
本系統(tǒng)采用的Stm32f103vc,其供電電源3.3V,其內核供電為1.8V,采用的是線性三端集成穩(wěn) 壓芯片U 10 LT1117-3.3,具體電路圖如圖4.1所示。
圖4.1 系統(tǒng)的供電電路圖
圖4.2 串口接口電路圖
在本系統(tǒng)中需要用到串口通信??刂瓢l(fā)送數(shù)據(jù)到PC上顯示。在串口通信中使用到的芯片是MAX3232,MAX3232是一種低功耗擁有兩個接收器和兩個發(fā)射器的串口接口芯片。它兼容了RS-232的特性。供電范圍是3V-5.5V.在MAX3232內部,有兩個充電泵。該芯片的外圍電路非常簡單,外部只需要接上4個0.1uF的充電電容就可以使用了。通信速率在120kbps能夠保證數(shù)據(jù)不出錯。并且能夠保持RS232的輸出電平。MAX3232具有低至1uA的關閉模式,在便攜式設備中,降低了電源的消耗,延長了電池的壽命。在低能耗的關閉模式中,接收器任然處于激活模式,允許調制解調器接收數(shù)據(jù),其應用電路如圖4.2所示。
在本系統(tǒng)中,傳感器使用的是具有負溫度系數(shù)的熱敏電阻(NTC),其測溫原理是:熱敏電阻的阻值隨溫度的升高而降低,熱敏電阻兩端的電壓也相應的降低,通過STM32內部的AD采樣就可以得到熱敏電阻兩端的電壓,其應用電路如圖4.3所示。
圖4.3 熱敏電阻應用電路圖
圖5.1 從機軟件流程圖
圖5.2 主機軟件流程圖
假如在某一時刻采樣得到的電壓值為A伏,此時熱敏電阻的阻值為B歐,計算出此時點電阻值,再查詢熱敏電阻的阻值與溫度關系的對應表,就可以得出此時的溫度。
圖5.3 主機接收數(shù)據(jù)界面
該模塊主要是實現(xiàn)NTC溫度傳感器測溫功能,首先讀取AD轉換的值,然后根據(jù)此值計算所對應的溫度值。輸出參數(shù)為十進制的溫度值。程序流程圖如圖5.1所示。
圖5.4 設計實物圖
該模塊主要是完成接收下位機傳送上來的數(shù)據(jù),并將數(shù)據(jù)以正確的形式顯示在控制界面當中。該模塊包括界面的設計以及具體的響應函數(shù)的設計。
上位機的串口通信用的不是VC自帶的MSCOMM控件,這里使用一個動態(tài)庫,分別是Pcomm.h,Pcomm.lib,Pcomm.dll。輸入?yún)?shù)為串口的接收數(shù)據(jù),輸出參數(shù)為編輯框的顯示數(shù)據(jù)。程序的流程圖如圖5.2所示。打開串口后主機接收數(shù)據(jù)時的界面如圖5.3所示。設計的實物圖如圖5.4所示。
[1]周立功.ARM嵌入式系統(tǒng)基礎教程(二)[M].北京:北京航空航天大學出版社,2005.
[2]周立功.ARM嵌入式系統(tǒng)基礎教程(三)[M].北京:北京航空航天大學出版社,2005.
[3]周立功等.EasyArm2131教材[M].
[4]譚浩強著.C程序設計(第三版)[M].清華大學出版社,2007.
[5]周旭.現(xiàn)代傳感器技術[M].北京:國防工業(yè)出版社,2007.
[6]田澤.嵌入式系統(tǒng)開發(fā)與應用教程[M].北京:北京航空航天大學出版社,2005.