新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于嵌入式Linux的機房遠程監(jiān)測系統(tǒng)研究

基于嵌入式Linux的機房遠程監(jiān)測系統(tǒng)研究

作者: 時間:2012-08-06 來源:網(wǎng)絡 收藏

2. 2. 4 監(jiān)控端配置

網(wǎng)絡上的監(jiān)控端為通用的PC 機和IE 瀏覽器,B /S 模式架構為人機交互提供了友好的交互平臺,用戶通過Internet 進行監(jiān)控。

2. 3 軟件平臺

采用源碼開放、安全性及可靠性好、具有廣泛硬件和網(wǎng)絡支持及完整開發(fā)工具的 系統(tǒng)作為系統(tǒng)平臺。

系統(tǒng)的開發(fā)通常采用宿主機- 目標機的交叉編譯調試方式。系統(tǒng)構建主要包括: 交叉編譯器的選擇和安裝; NFS 網(wǎng)絡文件系統(tǒng)的配置; 內核、Bootloader 和文件系統(tǒng)的編譯和移植等。內核采用 -2. 6. 30. 4 版本; 系統(tǒng)引導加載程序采用U - boot - 1. 1. 6; 文件系統(tǒng)采用可靠性和可移植性好的YAFFS 文件系統(tǒng)。

3 驅動程序設計開發(fā)

在搭建好 系統(tǒng)平臺基礎上,進行遠程系統(tǒng)數(shù)據(jù)采集相關開工作。主要包括溫度數(shù)據(jù)采集和圖像采集驅動程序的設計和采集程序的設計與實現(xiàn)。設備驅動程序是操作系統(tǒng)內核與機器硬件之間的接口,它為應用程序屏蔽了硬件的細節(jié)。

3. 1 DS18B20 驅動程序設計

DS18B20 通過溫度對振蕩器的頻率影響來測量溫度,而傳感器對溫度的采集則由ARM 控制DS18B20完成。由于DS18B20 采用單總線數(shù)據(jù)傳輸方式,所以ARM 芯片對DS18B20 的每步操作都要保證特定的讀寫時序,按照單總線的操作協(xié)議來進行。

首先初始化總線,跳過Rom( 總線上只有一個DS18B20) ,啟動DS18B20 進行溫度轉換,復位,繼續(xù)跳過Rom,發(fā)讀溫度指令,讀取溫度數(shù)據(jù),最后進行溫度的進一步處理及轉換。溫度采集驅動中用到的主要函數(shù):

( 1) 初始化函數(shù)unsigned char DS18B20 Init ( void) ,此函數(shù)復位DS18B20 數(shù)據(jù)線,檢測溫度傳感器DS18B20 的存在,主CPU 發(fā)送500 微秒的低電平信號后釋放,檢測到總線上脈沖的上升沿后,DS18B20 等待50 微秒,發(fā)出200 微秒低脈沖,CPU 收到此信號表示復位成功。

( 2) void DS18B20 WriteOneByte( unsigned char data) 或數(shù)據(jù)到溫度芯片DS18B20,即發(fā)送一個字節(jié)。

( 3) unsigned char DS18B20 ReadOneByte( void) ,從溫度芯片DS18B20 讀配置或數(shù)據(jù),即讀一個字節(jié)。

( 4) unsigned int DS18B20 ReadTemperature( void) 讀溫度函數(shù)。如果電路中只有一個DS18B20,則不需要多個器件的ID 識別,直接進行溫度轉換,DS18B20 溫度轉換需要時問,所以此處需要延時一定時間。

其基本處理流程如圖2 所示。

驅動程序與硬件設備的接口由file_operation 結構定義,其結構如下:

static struct file_operations s3c2440_18b20_fops = {

. owner = THIS_MODULE,

. open = s3c2440_18b20_open,

. read = s3c2440_18b20_read,

. write = s3c2440_18b20_write,

. release = s3c2440_18b20_release,

} ;

struct file_operations 這個結構的每一個成員都對應一個_系統(tǒng)調用,用戶進程利用系統(tǒng)調用對設備文件進行操作,系統(tǒng)調用通過設備文件的主設備號找到相應的設備驅動程序,讀取這個數(shù)據(jù)結構里面相應的函數(shù)指針,把控制權交給該函數(shù)。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關推薦

技術專區(qū)

關閉