蔡晨
摘 要 數據采集系統以S3C2440芯片為核心,TFT LCD觸摸屏實現溫度和電壓的采集和顯示。使用DS18B20作為溫度傳感器實現溫度的采集,使用內部AD轉換器現對外部送入電壓的測量。該系統可以精確地檢測到外部的一個待測電壓值和溫度值,并通過TFT彩色LCD模塊顯示出其值。可以通過觸摸顯示屏上“增加鍵”和“減少鍵”可以實現對溫度、電壓預設數值的加1或減1功能,當檢測到電壓、溫度超過設定數值時,蜂鳴器會報警。也可觸摸“模塊轉換鍵”實現溫度、電壓模式的切換。測量數據誤差小、屏幕反應靈活、操作簡單。
關鍵詞 嵌入式技術 電壓檢測 溫度傳感器 觸摸屏
中圖分類號:TN925 文獻標識碼: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
信息技術的快速發(fā)展,越來越多的電子產品功能日益豐富,嵌入式觸摸屏是實現人與電子產品交互的設備,逐步取代了鍵盤輸入操作,因為具有人性化、方便、直觀、操作方便等優(yōu)點,在電子產品的應用中得到不斷地延伸,或成為嵌入式系統中不可或缺的組成部份。本系統使用S3C2440處理器為核心,使用DS18B20作為溫度傳感器實現溫度的采集,使用內部AD轉換器現對外部送入電壓的測量,并在觸摸屏上顯示出測量結果。并可以通過觸摸屏實現一些操作,具有測量數據誤差小、屏幕反應靈活、操作簡單等特點。
1 電路總體組成
根據系統設計要求,電路主要由模擬量電壓輸入、溫度傳感器、TFT LCD模塊、報警模塊等組成。溫度傳感器采用的是DS18B20,模擬電壓輸入主要是通過電阻的分壓輸入,報警電路使用三極管和蜂鳴器組成。
圖1 系統基本結構圖
2 S3C2440處理器
S3C2440是是三星公司開發(fā)的一款基于arm9內核的微處理器,主頻400MHz,可倍頻至533MHz,具有64M內存,擁有一片4M NOR Flash,支持大容量NAND Flash、一個五線異步串口,一個三線串口、100M網口、音頻接口、SD卡接口等外設,還提供豐富的內部的設備,支持JTAG仿真調試,是一款功能強大、功耗低的嵌入式處理器,同時也是一款實用的小型芯片微控制器。
3 電路設計
3.1 電源電路
在本設計中電源采用外部+12V作為整個系統的供電,一路直接作為工作電源直接供電,另一路經LM7805穩(wěn)壓芯片輸出+5V,一路給核心板上器件使用,加一路輸入 1117-3.3以獲得 3.3V電源,給ARM的IO端口和TFT LCD等供電。
3.2 報警電路
蜂鳴器是通過I/O 口GPB0 來間接控制的,為了增加驅動能力,增加了三極管驅動電路。當三極管的基極(B)為高電平即GPB0 為高電平時,蜂鳴器會鳴叫,反之則不響。
3.3 TFT LCD模塊
觸摸屏可以分為電阻式、電容感應式、紅外線式以及表面聲波式。觸摸屏的工作原理是:用手指或其它物體觸摸觸摸屏上的圖標或菜單位置來輸入相關信息。觸摸檢測部件和觸摸屏控制器是觸摸屏兩大組成組件,觸摸檢測部件用于檢測用戶觸摸位置,接受后送觸摸屏控制器,而觸摸屏控制器的主要作用是從觸摸點檢測裝置上接收觸摸信息,并將它轉換成觸點坐標,再送給CPU,它同時能接收CPU 發(fā)來的命令并加以執(zhí)行。endprint
4 軟件設計
系統軟件由電壓檢測程序、溫度采集程序、觸摸屏信息采集程序、顯示程序、報警程序等組成。電壓檢測程序檢測外部模擬輸入電壓,DS18B20實現溫度有采集,報警程序主要是當檢測電壓值和溫度值超過設定值進行報警。
4.1 系統的主程序
當系統上電后,初始化程序,就可以對外部電壓和溫度進行采集。摸“模塊轉換鍵”實現溫度、電壓模式的切換,通過觸摸顯示屏上“增加鍵”和“減少鍵”可以實現對溫度、電壓預設數值的加1或減1功能,當檢測到電壓、溫度超過設定數值時,蜂鳴器會報警。
4.2 ADC轉換程序
ADC使用前先進行初始化,接著獲取ADC轉換數值,讀取12bit數據結果后停止ADC轉換。在程序定義初始化函數DC_Init(void)、啟動函數ADC_StartCnv(void)、獲取數據函數ADC_GetCnv(void)和停止函數ADC_StopCnv (void)。為了保證讀取數據的準確性,采樣8次數據結果進行慮波處理。
溫度溫度采集程序
DS18B20是在一根I/O線上讀寫數據,因此,對讀寫的數據位有著嚴格的時序要求。只有嚴格遵守通訊協議才能保證數據傳輸的正確性和完整性。該協議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為Master(主機),單總線器件作為Slave(從機)。每次數據的傳輸均從主機啟動寫時序開始,如果要求單總線器件回送數據,則在寫命令后,主機需啟動讀時序完成數據接收。數據和命令的傳輸都是低位在先。程序中定義了DS18B20PRO()函數用于溫度的程序,在主函數進行調用就可以實現數據處理。
4.3 液晶顯示界面設計
由于觸摸屏顯示屏是240×320的,用戶觸摸顯示屏時,返回的是觸摸屏的X和Y坐標。因此,想在指定的位置放置圖標或菜單就必須進行坐標的轉換。因此定義了一個結構體來實現坐標的獲取,然后就可以對坐標進行計算處理了。具體實現如下:
5 測試結果
把編寫好的程序編譯好下載系統中,顯示屏能正常顯示系統時間、實時電壓和溫度數據、預設的電壓和溫度數值、“增加鍵”、“減少鍵”和“模式轉換器”。觸摸“模式轉換器”可以在溫度采集和電壓采集模式間轉換。觸摸“增加鍵”、“減少鍵”可以實現對電壓和溫度預設數值的增加和減少。當采集的電壓和溫度超過預設數據時,蜂鳴器報警。功能符合設計要求,屏幕顯示穩(wěn)定,數據采集反應速度快,操作簡單。endprint
4 軟件設計
系統軟件由電壓檢測程序、溫度采集程序、觸摸屏信息采集程序、顯示程序、報警程序等組成。電壓檢測程序檢測外部模擬輸入電壓,DS18B20實現溫度有采集,報警程序主要是當檢測電壓值和溫度值超過設定值進行報警。
4.1 系統的主程序
當系統上電后,初始化程序,就可以對外部電壓和溫度進行采集。摸“模塊轉換鍵”實現溫度、電壓模式的切換,通過觸摸顯示屏上“增加鍵”和“減少鍵”可以實現對溫度、電壓預設數值的加1或減1功能,當檢測到電壓、溫度超過設定數值時,蜂鳴器會報警。
4.2 ADC轉換程序
ADC使用前先進行初始化,接著獲取ADC轉換數值,讀取12bit數據結果后停止ADC轉換。在程序定義初始化函數DC_Init(void)、啟動函數ADC_StartCnv(void)、獲取數據函數ADC_GetCnv(void)和停止函數ADC_StopCnv (void)。為了保證讀取數據的準確性,采樣8次數據結果進行慮波處理。
溫度溫度采集程序
DS18B20是在一根I/O線上讀寫數據,因此,對讀寫的數據位有著嚴格的時序要求。只有嚴格遵守通訊協議才能保證數據傳輸的正確性和完整性。該協議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為Master(主機),單總線器件作為Slave(從機)。每次數據的傳輸均從主機啟動寫時序開始,如果要求單總線器件回送數據,則在寫命令后,主機需啟動讀時序完成數據接收。數據和命令的傳輸都是低位在先。程序中定義了DS18B20PRO()函數用于溫度的程序,在主函數進行調用就可以實現數據處理。
4.3 液晶顯示界面設計
由于觸摸屏顯示屏是240×320的,用戶觸摸顯示屏時,返回的是觸摸屏的X和Y坐標。因此,想在指定的位置放置圖標或菜單就必須進行坐標的轉換。因此定義了一個結構體來實現坐標的獲取,然后就可以對坐標進行計算處理了。具體實現如下:
5 測試結果
把編寫好的程序編譯好下載系統中,顯示屏能正常顯示系統時間、實時電壓和溫度數據、預設的電壓和溫度數值、“增加鍵”、“減少鍵”和“模式轉換器”。觸摸“模式轉換器”可以在溫度采集和電壓采集模式間轉換。觸摸“增加鍵”、“減少鍵”可以實現對電壓和溫度預設數值的增加和減少。當采集的電壓和溫度超過預設數據時,蜂鳴器報警。功能符合設計要求,屏幕顯示穩(wěn)定,數據采集反應速度快,操作簡單。endprint
4 軟件設計
系統軟件由電壓檢測程序、溫度采集程序、觸摸屏信息采集程序、顯示程序、報警程序等組成。電壓檢測程序檢測外部模擬輸入電壓,DS18B20實現溫度有采集,報警程序主要是當檢測電壓值和溫度值超過設定值進行報警。
4.1 系統的主程序
當系統上電后,初始化程序,就可以對外部電壓和溫度進行采集。摸“模塊轉換鍵”實現溫度、電壓模式的切換,通過觸摸顯示屏上“增加鍵”和“減少鍵”可以實現對溫度、電壓預設數值的加1或減1功能,當檢測到電壓、溫度超過設定數值時,蜂鳴器會報警。
4.2 ADC轉換程序
ADC使用前先進行初始化,接著獲取ADC轉換數值,讀取12bit數據結果后停止ADC轉換。在程序定義初始化函數DC_Init(void)、啟動函數ADC_StartCnv(void)、獲取數據函數ADC_GetCnv(void)和停止函數ADC_StopCnv (void)。為了保證讀取數據的準確性,采樣8次數據結果進行慮波處理。
溫度溫度采集程序
DS18B20是在一根I/O線上讀寫數據,因此,對讀寫的數據位有著嚴格的時序要求。只有嚴格遵守通訊協議才能保證數據傳輸的正確性和完整性。該協議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為Master(主機),單總線器件作為Slave(從機)。每次數據的傳輸均從主機啟動寫時序開始,如果要求單總線器件回送數據,則在寫命令后,主機需啟動讀時序完成數據接收。數據和命令的傳輸都是低位在先。程序中定義了DS18B20PRO()函數用于溫度的程序,在主函數進行調用就可以實現數據處理。
4.3 液晶顯示界面設計
由于觸摸屏顯示屏是240×320的,用戶觸摸顯示屏時,返回的是觸摸屏的X和Y坐標。因此,想在指定的位置放置圖標或菜單就必須進行坐標的轉換。因此定義了一個結構體來實現坐標的獲取,然后就可以對坐標進行計算處理了。具體實現如下:
5 測試結果
把編寫好的程序編譯好下載系統中,顯示屏能正常顯示系統時間、實時電壓和溫度數據、預設的電壓和溫度數值、“增加鍵”、“減少鍵”和“模式轉換器”。觸摸“模式轉換器”可以在溫度采集和電壓采集模式間轉換。觸摸“增加鍵”、“減少鍵”可以實現對電壓和溫度預設數值的增加和減少。當采集的電壓和溫度超過預設數據時,蜂鳴器報警。功能符合設計要求,屏幕顯示穩(wěn)定,數據采集反應速度快,操作簡單。endprint