蔡晨
摘 要 數(shù)據(jù)采集系統(tǒng)以S3C2440芯片為核心,TFT LCD觸摸屏實(shí)現(xiàn)溫度和電壓的采集和顯示。使用DS18B20作為溫度傳感器實(shí)現(xiàn)溫度的采集,使用內(nèi)部AD轉(zhuǎn)換器現(xiàn)對外部送入電壓的測量。該系統(tǒng)可以精確地檢測到外部的一個待測電壓值和溫度值,并通過TFT彩色LCD模塊顯示出其值。可以通過觸摸顯示屏上“增加鍵”和“減少鍵”可以實(shí)現(xiàn)對溫度、電壓預(yù)設(shè)數(shù)值的加1或減1功能,當(dāng)檢測到電壓、溫度超過設(shè)定數(shù)值時,蜂鳴器會報警。也可觸摸“模塊轉(zhuǎn)換鍵”實(shí)現(xiàn)溫度、電壓模式的切換。測量數(shù)據(jù)誤差小、屏幕反應(yīng)靈活、操作簡單。
關(guān)鍵詞 嵌入式技術(shù) 電壓檢測 溫度傳感器 觸摸屏
中圖分類號:TN925 文獻(xiàn)標(biāo)識碼:A
Data Acquisition System Based on S3C2440 Touch Screen
CAI Chen
(School of Adult Education, Liuzhou Railway Vocational Technical College, Liuzhou, Guangxi 545007)
Abstract S3C2440 chip data acquisition system to the core, TFT LCD touch screen for temperature and voltage acquisition and display. Use as a temperature sensor DS18B20 realizes the temperature of the collection, using the internal AD converter into existing external voltage measurement. The system can accurately detect the external voltage and a measured temperature value and a color TFT LCD module by the value shown. On the touch screen can "add key" and "reduce the key" can be achieved on temperature, voltage preset value plus 1 or minus 1 function, when voltage is detected, the temperature exceeds the set value, the buzzer will alarm. Also touch "module conversion key" to achieve switching temperature, voltage mode. Measurement data error is small, flexible response screen, simple operation.
Key words embedded technology; voltage detection; temperature sensor; touch screen
信息技術(shù)的快速發(fā)展,越來越多的電子產(chǎn)品功能日益豐富,嵌入式觸摸屏是實(shí)現(xiàn)人與電子產(chǎn)品交互的設(shè)備,逐步取代了鍵盤輸入操作,因?yàn)榫哂腥诵曰?、方便、直觀、操作方便等優(yōu)點(diǎn),在電子產(chǎn)品的應(yīng)用中得到不斷地延伸,或成為嵌入式系統(tǒng)中不可或缺的組成部份。本系統(tǒng)使用S3C2440處理器為核心,使用DS18B20作為溫度傳感器實(shí)現(xiàn)溫度的采集,使用內(nèi)部AD轉(zhuǎn)換器現(xiàn)對外部送入電壓的測量,并在觸摸屏上顯示出測量結(jié)果。并可以通過觸摸屏實(shí)現(xiàn)一些操作,具有測量數(shù)據(jù)誤差小、屏幕反應(yīng)靈活、操作簡單等特點(diǎn)。
1 電路總體組成
根據(jù)系統(tǒng)設(shè)計要求,電路主要由模擬量電壓輸入、溫度傳感器、TFT LCD模塊、報警模塊等組成。溫度傳感器采用的是DS18B20,模擬電壓輸入主要是通過電阻的分壓輸入,報警電路使用三極管和蜂鳴器組成。
圖1 系統(tǒng)基本結(jié)構(gòu)圖
2 S3C2440處理器
S3C2440是是三星公司開發(fā)的一款基于arm9內(nèi)核的微處理器,主頻400MHz,可倍頻至533MHz,具有64M內(nèi)存,擁有一片4M NOR Flash,支持大容量NAND Flash、一個五線異步串口,一個三線串口、100M網(wǎng)口、音頻接口、SD卡接口等外設(shè),還提供豐富的內(nèi)部的設(shè)備,支持JTAG仿真調(diào)試,是一款功能強(qiáng)大、功耗低的嵌入式處理器,同時也是一款實(shí)用的小型芯片微控制器。
3 電路設(shè)計
3.1 電源電路
在本設(shè)計中電源采用外部+12V作為整個系統(tǒng)的供電,一路直接作為工作電源直接供電,另一路經(jīng)LM7805穩(wěn)壓芯片輸出+5V,一路給核心板上器件使用,加一路輸入 1117-3.3以獲得 3.3V電源,給ARM的IO端口和TFT LCD等供電。
3.2 報警電路
蜂鳴器是通過I/O 口GPB0 來間接控制的,為了增加驅(qū)動能力,增加了三極管驅(qū)動電路。當(dāng)三極管的基極(B)為高電平即GPB0 為高電平時,蜂鳴器會鳴叫,反之則不響。
3.3 TFT LCD模塊
觸摸屏可以分為電阻式、電容感應(yīng)式、紅外線式以及表面聲波式。觸摸屏的工作原理是:用手指或其它物體觸摸觸摸屏上的圖標(biāo)或菜單位置來輸入相關(guān)信息。觸摸檢測部件和觸摸屏控制器是觸摸屏兩大組成組件,觸摸檢測部件用于檢測用戶觸摸位置,接受后送觸摸屏控制器,而觸摸屏控制器的主要作用是從觸摸點(diǎn)檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給CPU,它同時能接收CPU 發(fā)來的命令并加以執(zhí)行。endprint
4 軟件設(shè)計
系統(tǒng)軟件由電壓檢測程序、溫度采集程序、觸摸屏信息采集程序、顯示程序、報警程序等組成。電壓檢測程序檢測外部模擬輸入電壓,DS18B20實(shí)現(xiàn)溫度有采集,報警程序主要是當(dāng)檢測電壓值和溫度值超過設(shè)定值進(jìn)行報警。
4.1 系統(tǒng)的主程序
當(dāng)系統(tǒng)上電后,初始化程序,就可以對外部電壓和溫度進(jìn)行采集。摸“模塊轉(zhuǎn)換鍵”實(shí)現(xiàn)溫度、電壓模式的切換,通過觸摸顯示屏上“增加鍵”和“減少鍵”可以實(shí)現(xiàn)對溫度、電壓預(yù)設(shè)數(shù)值的加1或減1功能,當(dāng)檢測到電壓、溫度超過設(shè)定數(shù)值時,蜂鳴器會報警。
4.2 ADC轉(zhuǎn)換程序
ADC使用前先進(jìn)行初始化,接著獲取ADC轉(zhuǎn)換數(shù)值,讀取12bit數(shù)據(jù)結(jié)果后停止ADC轉(zhuǎn)換。在程序定義初始化函數(shù)DC_Init(void)、啟動函數(shù)ADC_StartCnv(void)、獲取數(shù)據(jù)函數(shù)ADC_GetCnv(void)和停止函數(shù)ADC_StopCnv (void)。為了保證讀取數(shù)據(jù)的準(zhǔn)確性,采樣8次數(shù)據(jù)結(jié)果進(jìn)行慮波處理。
溫度溫度采集程序
DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時序要求。只有嚴(yán)格遵守通訊協(xié)議才能保證數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機(jī)作為Master(主機(jī)),單總線器件作為Slave(從機(jī))。每次數(shù)據(jù)的傳輸均從主機(jī)啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),則在寫命令后,主機(jī)需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。程序中定義了DS18B20PRO()函數(shù)用于溫度的程序,在主函數(shù)進(jìn)行調(diào)用就可以實(shí)現(xiàn)數(shù)據(jù)處理。
4.3 液晶顯示界面設(shè)計
由于觸摸屏顯示屏是240×320的,用戶觸摸顯示屏?xí)r,返回的是觸摸屏的X和Y坐標(biāo)。因此,想在指定的位置放置圖標(biāo)或菜單就必須進(jìn)行坐標(biāo)的轉(zhuǎn)換。因此定義了一個結(jié)構(gòu)體來實(shí)現(xiàn)坐標(biāo)的獲取,然后就可以對坐標(biāo)進(jìn)行計算處理了。具體實(shí)現(xiàn)如下:
5 測試結(jié)果
把編寫好的程序編譯好下載系統(tǒng)中,顯示屏能正常顯示系統(tǒng)時間、實(shí)時電壓和溫度數(shù)據(jù)、預(yù)設(shè)的電壓和溫度數(shù)值、“增加鍵”、“減少鍵”和“模式轉(zhuǎn)換器”。觸摸“模式轉(zhuǎn)換器”可以在溫度采集和電壓采集模式間轉(zhuǎn)換。觸摸“增加鍵”、“減少鍵”可以實(shí)現(xiàn)對電壓和溫度預(yù)設(shè)數(shù)值的增加和減少。當(dāng)采集的電壓和溫度超過預(yù)設(shè)數(shù)據(jù)時,蜂鳴器報警。功能符合設(shè)計要求,屏幕顯示穩(wěn)定,數(shù)據(jù)采集反應(yīng)速度快,操作簡單。endprint
4 軟件設(shè)計
系統(tǒng)軟件由電壓檢測程序、溫度采集程序、觸摸屏信息采集程序、顯示程序、報警程序等組成。電壓檢測程序檢測外部模擬輸入電壓,DS18B20實(shí)現(xiàn)溫度有采集,報警程序主要是當(dāng)檢測電壓值和溫度值超過設(shè)定值進(jìn)行報警。
4.1 系統(tǒng)的主程序
當(dāng)系統(tǒng)上電后,初始化程序,就可以對外部電壓和溫度進(jìn)行采集。摸“模塊轉(zhuǎn)換鍵”實(shí)現(xiàn)溫度、電壓模式的切換,通過觸摸顯示屏上“增加鍵”和“減少鍵”可以實(shí)現(xiàn)對溫度、電壓預(yù)設(shè)數(shù)值的加1或減1功能,當(dāng)檢測到電壓、溫度超過設(shè)定數(shù)值時,蜂鳴器會報警。
4.2 ADC轉(zhuǎn)換程序
ADC使用前先進(jìn)行初始化,接著獲取ADC轉(zhuǎn)換數(shù)值,讀取12bit數(shù)據(jù)結(jié)果后停止ADC轉(zhuǎn)換。在程序定義初始化函數(shù)DC_Init(void)、啟動函數(shù)ADC_StartCnv(void)、獲取數(shù)據(jù)函數(shù)ADC_GetCnv(void)和停止函數(shù)ADC_StopCnv (void)。為了保證讀取數(shù)據(jù)的準(zhǔn)確性,采樣8次數(shù)據(jù)結(jié)果進(jìn)行慮波處理。
溫度溫度采集程序
DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時序要求。只有嚴(yán)格遵守通訊協(xié)議才能保證數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機(jī)作為Master(主機(jī)),單總線器件作為Slave(從機(jī))。每次數(shù)據(jù)的傳輸均從主機(jī)啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),則在寫命令后,主機(jī)需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。程序中定義了DS18B20PRO()函數(shù)用于溫度的程序,在主函數(shù)進(jìn)行調(diào)用就可以實(shí)現(xiàn)數(shù)據(jù)處理。
4.3 液晶顯示界面設(shè)計
由于觸摸屏顯示屏是240×320的,用戶觸摸顯示屏?xí)r,返回的是觸摸屏的X和Y坐標(biāo)。因此,想在指定的位置放置圖標(biāo)或菜單就必須進(jìn)行坐標(biāo)的轉(zhuǎn)換。因此定義了一個結(jié)構(gòu)體來實(shí)現(xiàn)坐標(biāo)的獲取,然后就可以對坐標(biāo)進(jìn)行計算處理了。具體實(shí)現(xiàn)如下:
5 測試結(jié)果
把編寫好的程序編譯好下載系統(tǒng)中,顯示屏能正常顯示系統(tǒng)時間、實(shí)時電壓和溫度數(shù)據(jù)、預(yù)設(shè)的電壓和溫度數(shù)值、“增加鍵”、“減少鍵”和“模式轉(zhuǎn)換器”。觸摸“模式轉(zhuǎn)換器”可以在溫度采集和電壓采集模式間轉(zhuǎn)換。觸摸“增加鍵”、“減少鍵”可以實(shí)現(xiàn)對電壓和溫度預(yù)設(shè)數(shù)值的增加和減少。當(dāng)采集的電壓和溫度超過預(yù)設(shè)數(shù)據(jù)時,蜂鳴器報警。功能符合設(shè)計要求,屏幕顯示穩(wěn)定,數(shù)據(jù)采集反應(yīng)速度快,操作簡單。endprint
4 軟件設(shè)計
系統(tǒng)軟件由電壓檢測程序、溫度采集程序、觸摸屏信息采集程序、顯示程序、報警程序等組成。電壓檢測程序檢測外部模擬輸入電壓,DS18B20實(shí)現(xiàn)溫度有采集,報警程序主要是當(dāng)檢測電壓值和溫度值超過設(shè)定值進(jìn)行報警。
4.1 系統(tǒng)的主程序
當(dāng)系統(tǒng)上電后,初始化程序,就可以對外部電壓和溫度進(jìn)行采集。摸“模塊轉(zhuǎn)換鍵”實(shí)現(xiàn)溫度、電壓模式的切換,通過觸摸顯示屏上“增加鍵”和“減少鍵”可以實(shí)現(xiàn)對溫度、電壓預(yù)設(shè)數(shù)值的加1或減1功能,當(dāng)檢測到電壓、溫度超過設(shè)定數(shù)值時,蜂鳴器會報警。
4.2 ADC轉(zhuǎn)換程序
ADC使用前先進(jìn)行初始化,接著獲取ADC轉(zhuǎn)換數(shù)值,讀取12bit數(shù)據(jù)結(jié)果后停止ADC轉(zhuǎn)換。在程序定義初始化函數(shù)DC_Init(void)、啟動函數(shù)ADC_StartCnv(void)、獲取數(shù)據(jù)函數(shù)ADC_GetCnv(void)和停止函數(shù)ADC_StopCnv (void)。為了保證讀取數(shù)據(jù)的準(zhǔn)確性,采樣8次數(shù)據(jù)結(jié)果進(jìn)行慮波處理。
溫度溫度采集程序
DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時序要求。只有嚴(yán)格遵守通訊協(xié)議才能保證數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機(jī)作為Master(主機(jī)),單總線器件作為Slave(從機(jī))。每次數(shù)據(jù)的傳輸均從主機(jī)啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),則在寫命令后,主機(jī)需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。程序中定義了DS18B20PRO()函數(shù)用于溫度的程序,在主函數(shù)進(jìn)行調(diào)用就可以實(shí)現(xiàn)數(shù)據(jù)處理。
4.3 液晶顯示界面設(shè)計
由于觸摸屏顯示屏是240×320的,用戶觸摸顯示屏?xí)r,返回的是觸摸屏的X和Y坐標(biāo)。因此,想在指定的位置放置圖標(biāo)或菜單就必須進(jìn)行坐標(biāo)的轉(zhuǎn)換。因此定義了一個結(jié)構(gòu)體來實(shí)現(xiàn)坐標(biāo)的獲取,然后就可以對坐標(biāo)進(jìn)行計算處理了。具體實(shí)現(xiàn)如下:
5 測試結(jié)果
把編寫好的程序編譯好下載系統(tǒng)中,顯示屏能正常顯示系統(tǒng)時間、實(shí)時電壓和溫度數(shù)據(jù)、預(yù)設(shè)的電壓和溫度數(shù)值、“增加鍵”、“減少鍵”和“模式轉(zhuǎn)換器”。觸摸“模式轉(zhuǎn)換器”可以在溫度采集和電壓采集模式間轉(zhuǎn)換。觸摸“增加鍵”、“減少鍵”可以實(shí)現(xiàn)對電壓和溫度預(yù)設(shè)數(shù)值的增加和減少。當(dāng)采集的電壓和溫度超過預(yù)設(shè)數(shù)據(jù)時,蜂鳴器報警。功能符合設(shè)計要求,屏幕顯示穩(wěn)定,數(shù)據(jù)采集反應(yīng)速度快,操作簡單。endprint