【WiFi之家网】-基于嵌入式Linux的机房远程监测系统研究[图,下面就是【路由器网】小编整理的路由器设置教程。
-
摘要:为满足机房实时监测参数和视频信息的需要,本文综合运用嵌入式技术、WEB技术和信息检测技术,研究并设计一种基于B/S架构的嵌入式机房远程监测系统。通过传感器采集并远程传输机房温度和图像数据,在远程浏览器端动态实时显示,为及时掌握机房数据,实现机房科学管理提供良好的平台。
1引言
信息化高度发展的今天,机房作为数据传输中心、处理中心和数据交换中心,在整个信息网络工程中占据着重要的,对机房以及视频信息的监测具有重要意义。
经过调查分析,机房远程监测系统的主要应用需求包括:①温度是机房中最重要的参数,合理的温度了机房设备的正常运行;②数据传输质量高、实时性好,以对机房的实时和有效监测;③支持远程访问,便于对多个机房的集中监测。针对上述需求,设计了一种基于B/S架构的远程监测系统,以满足远程访问、低成本、实时性好的机房远程监测需求。
2总体方案设计
2.1系统方案及总体结构
根据系统应用需求,设计的机房远程监测系统总体结构如图1所示。系统由温度和图像传感器、嵌入式服务器和远程计算机构成。其中,温度和图像传感器负责采集现场的温度和图像数据,基于ARM处理器的嵌入式服务器是整个系统的控制中心,它控制、调度各系统资源,通过网络将所获取数据传输至远程端浏览器动态显示。远程在实现方式上采用“B/S”模式,在客户端的浏览器上输入存储嵌入式服务器的网页地址即可对机房状况进行。
图1远程监测系统总体结构图
2.2系统硬件平台
系统的硬件平台选择主要考虑低功耗、处理能力强、扩展性好、稳定性高和兼容性好等因素。嵌入式硬件平台的配置从根本上决定了整个系统运行性能的好坏。整个机房远程监测系统由下位机嵌入式服务器和上位机远程浏览器组成。其中下位机嵌入式服务器平台包括众多硬件模块:嵌入式微处理器S3C2440、存储器、电源和时钟模块、外围电路及接口、3.5寸液晶显示屏、ZC0301摄像头和DS18B20温度传感器等。下面将对各个硬件设备和模块做具体阐述。
2.2.1中心处理器
S3C2440处理器是韩国电子公司三星推出的一款基于ARM920T内核的16/32位RISC嵌入式处理器,ARM920T核由ARM9TDM1、存储管理单元(MMU)和高速缓存三部分组成,主频可达533MHz。本系统采用S3C2440为核心,外围硬件资源包括64MSDRAM,256MNANDFLASH,2MNORFLASH。
2.2.2摄像头
摄像头采用基于301PLUS快速高性能图像压缩主控芯片的中芯微ZC0301摄像头。其能够输出高清晰MJPEG视频流数据,具有图像信号处理(ISP)、图像数据压缩及数据传输等功能,可达到6:1的压缩率,同时支持同步和异步数据传输,兼容性好。其工作电压为3.3V,工作电流仅为200mA,耗电量小。
2.2.3温度传感器
温度传感器采用美国Dallas公司生产的单总线数字式温度传感器-DS18B20,它结构简单,不需要外接电路,可用一根I/O数据线既供电又传输数数据,将温度信号直接转换为数字信号送给微处理器,电路简单,成本低,操作方便。DS18B20与ARM处理器接口电路如图2所示。
2.2.4远程端系统配置
远程网络上的端为通用的PC机和IE浏览器,B/S模式架构为人机交互提供了友好的交互平台,用户通过Internet进行远程。
2.3系统软件平台
系统采用源码、安全性及可靠性好、具有广泛硬件和网络支持及完整开发工具的Linux系统作为嵌入式系统平台。
嵌入式系统的开发通常采用宿主机-目标机的交叉编译调试方式。系统构建主要包括:交叉编译器的选择和安装;NFS网络文件系统的配置;内核、Bootloader和文件系统的编译和移植等。内核采用Linux-2.6.30.4版本;系统引导加载程序采用U-boot-1.1.6;文件系统采用可靠性和可移植性好的YAFFS文件系统。
3驱动程序设计开发
在搭建好嵌入式Linux系统平台基础上,进行机房远程监测系统数据采集相关开工作。主要包括温度数据采集和图像采集驱动程序的设计和采集程序的设计与实现。设备驱动程序是操作系统内核与机器硬件之间的接口,它为应用程序屏蔽了硬件的细节。
3.1DS18B20驱动程序设计
DS18B20通过温度对振荡器的频率影响来测量温度,而传感器对温度的采集则由ARM控制DS18B20完成。由于DS18B20采用单总线数据传输方式,所以ARM芯片对DS18B20的每步操作都要特定的读写时序,按照单总线的操作协议来进行。
首先初始化总线,跳过Rom(总线上只有一个DS18B20),启动DS18B20进行温度转换,复位,继续跳过Rom,发读温度指令,读取温度数据,最后进行温度的进一步处理及转换。温度采集驱动中用到的主要函数:
(1)初始化函数unsignedcharDS18B20Init(void),此函数复位DS18B20数据线,检测温度传感器DS18B20的存在,主CPU发送500微秒的低电平信号后,检测到总线上脉冲的上升沿后,DS18B20等待50微秒,发出200微秒低脉冲,CPU收到此信号表示复位成功。
(2)voidDS18B20WriteOneByte(unsignedchardata)或数据到温度芯片DS18B20,即发送一个字节。
(3)unsignedcharDS18B20ReadOneByte(void),从温度芯片DS18B20读配置或数据,即读一个字节。
(4)unsignedintDS18B20ReadTemperature(void)读温度函数。如果电路中只有一个DS18B20,则不需要多个器件的ID识别,直接进行温度转换,DS18B20温度转换需要时问,所以此处需要延时一定时间。
其基本处理流程如图2所示。
驱动程序与硬件设备的接口由file_operation结构定义,其结构如下:
staticstructfile_operationss3c2440_18b20_fops={
.owner=THIS_MODULE,
.open=s3c2440_18b20_open,
.read=s3c2440_18b20_read,
.write=s3c2440_18b20_write,
.release=s3c2440_18b20_release,
};
structfile_operations这个结构的每一个都对应一个_系统调用,用户进程利用系统调用对设备文件进行操作,系统调用通过设备文件的主设备号找到相应的设备驱动程序,读取这个数据结构里面相应的函数指针,把控制权交给该函数。
- 共3页:
- 上一页
- 1
- 2
- 3
- 下一页
以上关于-【基于嵌入式Linux的机房远程监测系统研究[图】内容,由【WiFi之家网】搜集整理分享。
原创文章,作者:路由器设置,如若转载,请注明出处:https://www.224m.com/46930.html