馮若曄 , 沈大偉, 祖靜
(中北大學(xué) 儀器科學(xué)與動態(tài)測試教育部重點實驗室, 山西 太原 030051)
隨著工農(nóng)業(yè)生產(chǎn)的日益發(fā)展,溫度測量逐漸被人們所關(guān)注,對于溫度的合理調(diào)節(jié)和控制,對于對溫度要求較高的生產(chǎn)環(huán)境顯得至關(guān)重要。本文采用LPC2148作為主要處理器,它具有超小LQFP64封裝的32位ARM7TDMI-S微控制器。40KB的片內(nèi)RAM和512KB的片內(nèi)FLASH程序存儲器。LPC2148具有豐富的I/O口并且I/O口的復(fù)用功能使設(shè)計更加靈活。
LED溫度顯示器硬件模塊主要包括:模擬信號處理電路、ARM微處理器電路、CPLD邏輯控制電路和LED顯示電路,其總體結(jié)構(gòu)如圖1所示。
圖1 總體原理圖
模擬信號經(jīng)溫度傳感器被轉(zhuǎn)換成電壓信號之后,在被送入A/D轉(zhuǎn)換器之前,需要將此電壓信號進行放大和濾波,使其成為適合A/D轉(zhuǎn)化的電壓信號。本設(shè)計中采用INA128和OPA340來實現(xiàn)放大的作用使用低通濾波器進行濾波以消除干擾信號。INA128為精密低功耗儀表放大器,通過R1進行放大倍數(shù)的調(diào)節(jié)。OPA340為運算放大,兩者結(jié)合使放大倍數(shù)達到理想值。
LPC2148自帶2個10位逐次逼近模/數(shù)轉(zhuǎn)換器(ADC0和ADC1),測量范圍為0V~VREF,10位轉(zhuǎn)換時間大于或等于2.44μs。AD0.7:6,AD0.4:1,AD1.7:0,為模擬輸入。VREF為A/D模塊參考電壓。VDDA和VSSA為模擬電源和地。
本設(shè)計采用CPLD(XCR3128)進行邏輯控制。XCR3128具有豐富的I/O口,通過內(nèi)部邏輯設(shè)計,來控制4個LED的顯示。通過XCR3128將ARM的I/O進行擴展到達控制7段LED的目的。ARM微處理器的數(shù)據(jù)經(jīng)CPLD進行串并轉(zhuǎn)換后由LED進行逐位顯示。通過擴展I/O的方式來驅(qū)動LED有其絕對的優(yōu)點:(1)ARM微處理器不需要反復(fù)掃描,只需當LED的輸出值改變的時候才通過GPIO來更新LED顯示,這樣就節(jié)省了處理器的時間。(2)每一段LED顯示段都有一個I/O來控制,因此不需要過大的電流做驅(qū)動。
軟件部分包括A/D轉(zhuǎn)換C語言編程、CPLD邏輯實現(xiàn)和LED顯示輸出編程,軟件框圖如圖2所示。
本設(shè)計中模擬電壓的的輸入口選擇的是A/D1.6,選用最大10位轉(zhuǎn)換精度,設(shè)置全局變量用來存放所得的溫度值degree。
Viod cadegree ( )
{
double voltage;
AD1CR= (1<<6) | (Fplck/100000-1)<<8) |(0<<16) | (0<<17) | (1<<21) | (1<<24) ;
//選擇A/D轉(zhuǎn)換通道,轉(zhuǎn)換時鐘為1MHZ,使用11個時鐘轉(zhuǎn)換,啟動A/D轉(zhuǎn)換
While((AD1DR& ( (unsigned int)1<<31))==0)
//等待轉(zhuǎn)換結(jié)束
votage=2.5*((double) ((AD1DR>>6)&0x3FF))
degree= (int) (votage*100000000/Res);// 通過壓降和溫度的轉(zhuǎn)換關(guān)系得到當前的溫度值。
CPLD主要實現(xiàn)I/O的擴展及4位LED的顯示。通過邏輯設(shè)計達到將數(shù)據(jù)串并轉(zhuǎn)換的目的,以此來控制每一個LED位的數(shù)據(jù)顯示。
viod playLED(int degree)
int i;
int bit4=degree/1000; //得到溫度的百位數(shù)值
int bit3=(degree%1000)/100; //得到溫度的十位數(shù)值
int bit2=(degree%100)/10; //得到溫度的個位數(shù)值
int bit1=degree%10; //得到溫度的小數(shù)位數(shù)值
for(i=7;i>=0;i--)//更新各個位的顯示
{.....
}
圖2 總體流程圖
圖3為CPLD串聯(lián)并的仿真結(jié)果。經(jīng)過仿真可以明確程序在理論上可順利通過。因此CPLD對各位LED的顯示控制作用可以完成。
圖3 Modelsim環(huán)境下仿真圖
本設(shè)計采用LPC2148是基于它的內(nèi)部資源豐富,低功耗,低成本,存儲量大等優(yōu)點作為出發(fā)點,可以利用其內(nèi)部自帶的A/D轉(zhuǎn)換模塊,同時其內(nèi)部的Flash可達512KB,該溫度顯示器適用于生產(chǎn)生活等各個領(lǐng)域測量范圍-20°C~100°C(由所選的溫度傳感器決定),測量精度為0.1°C,應(yīng)用范圍十分廣闊,并且操作簡單,顯示直觀。因此有著很高的實用價值。
[1]周立功.ARM嵌入式系統(tǒng)實驗教程(二)[M].北京:北京航空航天大學(xué)出版社,2005.
[2]王開,姜宇柏.面向CPLD/FPGA的VHDL設(shè)計[M].北京:機械工業(yè)出版社,2006.
[3]劉宏杰.可編程邏輯器件的VHDL語言優(yōu)化設(shè)計方法[J].測控技術(shù), 2001(06).
[4]劉輝.C語言程序設(shè)計[M].北京:科學(xué)出版社,2006.
[5]李戰(zhàn)明,丁磊等.基于ARM的多路功能溫度監(jiān)測系統(tǒng)的設(shè)計[J].儀表技術(shù)與傳感器,2005(12):20-25.
[6]李海真,孫運強,許鴻鷹.高精度多路溫度采集模塊硬件電路設(shè)計[J].電子測試,2008 (12):50-60.
[7]張素文,項希.基于ARM的溫度采集與顯示系統(tǒng)的設(shè)計[J].自動化技術(shù)與應(yīng)用, .2007,26(6):100-120.
[8]周立功.ARM微控制基礎(chǔ)與實戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2005:300-350.