当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于嵌入式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 为核心,外围硬件资源包括64M SDRAM, 256M NAND FLASH,2 M NOR FLASH。

2. 2. 2 摄像头

摄像头采用基于301PLUS 快速高性能图像压缩主控芯片的中芯微ZC0301 摄像头。其能够输出高清晰MJPEG 视频流数据,具有图像信号处理( ISP) 、图像数据压缩及数据传输等功能,可达到6: 1 的压缩率,同时支持同步和异步数据传输,兼容性好。其工作电压为3. 3V,工作电流仅为200mA,耗电量小。

2. 2. 3 温度传感器

温度传感器采用美国Dallas 公司生产的单总线数字式温度传感器- DS18B20,它结构简单,不需要外接电路,可用一根I /O 数据线既供电又传输数数据,将温度信号直接转换为数字信号送给微处理器,电路简单,成本低,操作方便。DS18B20 与ARM 处理器接口电路如图2 所示。


图2 DS18B20 与ARM 处理器接口电路

[!--empirenews.page--]

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. 1 DS18B20 驱动程序设计

DS18B20 通过温度对振荡器的频率影响来测量温度,而传感器对温度的采集则由ARM 控制DS18B20完成。由于DS18B20 采用单总线数据传输方式,所以ARM 芯片对DS18B20 的每步操作都要保证特定的读写时序,按照单总线的操作协议来进行。

首先初始化总线,跳过Rom( 总线上只有一个DS18B20) ,启动DS18B20 进行温度转换,复位,继续跳过Rom,发读温度指令,读取温度数据,最后进行温度的进一步处理及转换。温度采集驱动中用到的主要函数:

( 1) 初始化函数unsigned char DS18B20 Init ( void) ,此函数复位DS18B20 数据线,检测温度传感器DS18B20 的存在,主CPU 发送500 微秒的低电平信号后释放,检测到总线上脉冲的上升沿后,DS18B20 等待50 微秒,发出200 微秒低脉冲,CPU 收到此信号表示复位成功。

( 2) void DS18B20 WriteOneByte( unsigned char data) 或数据到温度芯片DS18B20,即发送一个字节。

( 3) unsigned char DS18B20 ReadOneByte( void) ,从温度芯片DS18B20 读配置或数据,即读一个字节。

( 4) unsigned int DS18B20 ReadTemperature( void) 读温度函数。如果电路中只有一个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 这个结构的每一个成员都对应一个_系统调用,用户进程利用系统调用对设备文件进行操作,系统调用通过设备文件的主设备号找到相应的设备驱动程序,读取这个数据结构里面相应的函数指针,把控制权交给该函数。

[!--empirenews.page--]

3. 2 ZC0301 摄像头视频采集程序设计

Video4linux 是Linux 内核里支持影像设备的一组API,配合适当的采集卡与相关驱动程序,可以实现视频采集。驱动视频采集设备完成视频采集和处理,需要相应的驱动程序和视频流采集程序。视频采集程序的内容主要包括摄像头的初始化、打开、关闭、参数设置以及数据读取等。

Video4linux 视频采集的实现过程如下:

( 1) 初始化程序,包括打开视频设备文件,读取视频采集设备信息以及设备缓冲区信息等; 初始化摄像头参数主要通过init_videoIn 函数来完成。

( 2) 打开视频采集设备。初始化工作完成后,通过V4L_open 函数检查摄像头设备是否加载,如能够检测到摄像头设备,使用open 系统调用以只读的方式打开视频设备。

( 3) 获取视频设备信息和图像信息。通过调用设备I /O 通道管理函数ioctl 中的VIDIOCGCAP 参数获取视频采集设备的名称、类型、通道数、图像宽度和高度等信息参数,调用ioctl 函数中的VIDIOCGPICT 参数读取视频采集设备缓冲video_picture 信息。

( 4) 视频采集。在V4L 体系下,采用内存映射方式采集视频。内存映射方式视频读取的具体操作如下:

①首先使用ioctl 系统调用VIDOOCGMBUF 命令获取摄像头存储缓冲区的帧信息,之后初始化video_mbuf,修改video_mmbuf 设置。

②映射设备文件到内存。

③截取图像,有单帧截取和连续帧截取两种方式。进行单帧截取需先准备内存空间; 然后调用ioctl 函数的VIDIOCMCAPTURE 命令,以非阻塞形式开始一帧图像截取; 接着调用ioctl( fd,VIDIOCSYNC,&frame)函数判断该帧是否截取完毕; 最后就可将图像数据写入到Frame Buffer 中。若进行连续帧截取,则需通过循环语句中,使用VIDIOCMCAPTURE 和VIDIOCSYNC 函数判断是否完成截取,并给采集到的每帧图像赋地址。

( 5) 关闭摄像头。视频采集完成以后,最后的工作是关闭视频采集设备。以内存映射的方法获取视频数据,需要在视频采集任务完成之后关闭内存映射,然后调用close_v4l 函数关闭视频设备。关闭视频设备需要判断视频获取方式: 如是内存映射方式,则通过munmap 函数。

4 嵌入式Web 监控的实现

嵌入式Web 监控的实现包括了Boa 服务器移植、CGI 网页交互程序设计两个部分。

4. 1 Boa 服务器移植

在嵌入式远程监控系统中,Web 服务器的性能对系统的整体性能具有直接影响,因此Web 服务器的选择和设计尤为重要。高效率的Web 服务器,才能使监控系统的能得到充分的发挥。

Boa 是一款单任务的HTTP 服务器,它支持CGI 技术,且具有自动生成目录和解压文件等功能。在运行效率方面,由于其只为CGI 程序创建新的进程,因此具有很高的HTTP 请求处理速度。故选用Boa 来构建嵌入式服务器。

服务器主要作用是为整个系统提供了一种网络接入和信息服务方式。系统通过应用HTTP 协议联网,调用具有数据请求和控制功能的CGI 程序,实现服务器对客户端浏览器请求的处理,最终实现信息在浏览器的动态显示,达到远程监控的目的。

4. 2 CGI 网页交互程序设计

CGI 技术即通用网关接口( Common Network Interface) 技术,它支持WEB 数据动态刷新、转换和显示。

基于CGI 接口设计的程序运行在WEB 服务器端,像其他类型程序设计一样,其必须通过CGI 标准格式进行编写。CGI 程序的运行由浏览器端的输入触发,它的任务就是执行指令,将所需数据转换为环境变量进行处理,并回传处理结果。WEB 服务器与CGI 程序之间通过四种途径进行通信: 环境变量、命令行、标准输入和标准输出。

CGI 的基本工作过程为: 根据浏览器的请求,CGI 程序通过执行Boa 服务器指令,调用其它应用程序进行处理,最后将处理结果以HTML 形式反馈给浏览器显示。CGI 工作流程示意图如图3 所示。


图3 CGI 工作流程示意图

4. 3 系统测试

本系统的测试工作主要是在实验室的局域网环境下进行的。

其中下位机为以S3C2440 处理器为核心的嵌入式目标板,配合ZC0301 摄像头和数字温度传感器DS18B20,通过构建Linux 操作系统并移植Boa,将其配置成为嵌入式服务器; 下位机采用通用的PC 机,通过浏览器与服务器进行交互。上位机监控端和下位机嵌入式服务器通过网线和上位机相连接,构建成为局域网开发环境。

[!--empirenews.page--]

通过终端中运行Boa 服务器和数据采集程序,在监控端浏览器内输入网页: http: / /192. 168. 0. 6,即进入登陆界面,如图4 所示。


图4 系统登陆主界面

实时温度采集界面如图5 所示。


图5 实时温度监测界面

5 结束语

本文设计了一种了基于WEB 的嵌入式机房远程监测系统,在实验室条件下进行测试、调试和完善。测试结果表明,监测系统能够实时准确的采集机房视频和温度数据,并在远程浏览器动态流畅显示,实现了信息实时监测,满足了应用的需求。本文的后续工作是在现有的系统基础上增加摄像头的云台控制功能以及嵌入式数据库管理功能,提高系统的整体使用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京2023年9月15日 /美通社/ -- 9月13日,由中国民营经济研究会家族企业委员会主办、李锦记集团支持的《中国家族企业与共同富裕研究报告》发布会在北京全国工商联报告厅举行。 全国工商联原副主席,中国民营经济研究...

关键字: 系统研究

刚入门嵌入式,选入门级RZ/G2L开发板,采用邮票孔形式封装了RZ/G2L核心板。

关键字: 开发板 嵌入式LINUX 嵌入式系统

DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型...

关键字: DS18B20 数字温度传感器

摘 要:介绍了以STC89C52单片机为主控制器的基于DS18B20的温度测控系统的硬件和软件设计方法,给出了完整的硬件电路及程序流程图。并根据串行通讯原理设计了单片机与PC机的接口电路,建立了单片机与PC机之间的串行通...

关键字: DS18B20 STC89C52 串行通讯 VB6.0

摘要:根据食品配送途中对温度的多测点、实时性、可追溯性等要求,选用DS18B20数字温度传感器为温度采集器件,结合车载GPS/北斗定位终端的串口透传功能,设计了一种应用于食品冷链配送途中的有线温度采集系统,从而实现了对配...

关键字: 温度采集 冷链 DS18B20 分组测试

摘 要 :婴儿床环境的舒适程度直接影响到婴儿的生活质量,为此文中提出设计一款基于嵌入式技术,以AT89S52 为核心的婴儿床智能风扇。系统采用主辅式结构设计,以数字温度传感器 AT89S52、电容式湿度传感器HS1101...

关键字: AT89S52 智能婴儿床 DS18B20 蓝牙 BLE4.0

摘 要:文章介绍了对传统R-T电阻温度系数仪的改进,将原本模拟式的温度测量仪器改为数字式恒温控制仪器。仪器基于STC89C51单片机数字式恒温控制系统,拥有控制灵活、操作简单等特点,能够自主设定仪器内部铜丝电阻的温度并维...

关键字: R-T温度系数测定仪 STC8951 DS18B20 数字式恒温控制仪器

摘要:基于美国DALLAS公司推出的数字温度传感器DS18B20,给出了一个温度测量与显示系统的设计方法。该系统由51单片机AT89C52控制,并由8位数码管显示实时温度,通过该系统可设置温度上限与下限,以便在温度超过限...

关键字: 单片机 AT89C52 DS18B20 温度测量

摘 要:介绍了单片无线收发器nRF2401的主要特点及工作模式。给出了利用DS18B20数字温度传感器、AT- megal6和nRF2401实现无线分布式温度测量系统的设计方法,同时给出了系统的硬件结构以及无线收发和温度...

关键字: nRF2401 DS18B20 无线通信 温度测量

整理自网络,排版:付斌 对嵌入式系统工程师及嵌入式硬件工程师而言,2020年将是振奋人心的一年。随着物联网应用的普及,MCU市场将再次繁荣。因此,市场上对嵌入式系统工程师人才的需求也将出现新高。这些都是底层编程领域中即将...

关键字: 嵌入式 软硬件 BSP 嵌入式LINUX
关闭
关闭