关于嵌入式Linux的机房远程监测系统研究

发布者:Yuexin888最新更新时间:2018-02-13 来源: eefocus关键字:嵌入式  Linux  机房远程监测 手机看文章 扫描二维码
随时随地手机看文章

    内容摘要:为满足机房实时监测环境参数和视频信息的需要,本文综合运用嵌入式技术、WEB 技术和信息检测技术,研究并设计一种基于B/S 架构的嵌入式机房远程监测系统。通过传感器采集并远程传输机房温度和图像数据,在远程浏览器端动态实时显示,为及时掌握机房环境数据,实现机房科学管理提供良好的平台。


    1 引言


    信息化高度发展的今天,机房作为数据传输中心、处理中心和数据交换中心,在整个信息网络工程中占据着重要的位置,对机房环境以及视频信息的监测具有重要意义。

    经过调查分析,机房环境远程监测系统的主要应用需求包括: ①温度是机房环境中最重要的参数,合理的温度保证了机房设备的正常运行; ②数据传输质量高、实时性好,以保证对机房环境的实时和有效监测;③支持远程访问,便于对多个机房环境的集中监测。针对上述需求,设计了一种基于B /S 架构的远程监测系统,以满足远程访问、低成本、实时性好的机房环境远程监测需求。

    2 总体方案设计

    2. 1 系统方案及总体结构

    根据系统应用需求,设计的机房远程监测系统总体结构如图1 所示。系统由温度和图像传感器、嵌入式服务器和远程计算机构成。其中,温度和图像传感器负责采集现场的温度和图像数据,基于ARM 处理器的嵌入式服务器是整个系统的控制中心,它控制、调度各系统资源,通过有线网络将所获取数据传输至远程监控端浏览器动态显示。远程监控在实现方式上采用“B /S”模式,在客户端的浏览器上输入存储嵌入式服务器的网页地址即可对机房环境状况进行监控。

    图1 远程监测系统总体结构图
图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 处理器接口电路
图2 DS18B20 与ARM 处理器接口电路

    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 这个结构的每一个成员都对应一个_系统调用,用户进程利用系统调用对设备文件进行操作,系统调用通过设备文件的主设备号找到相应的设备驱动程序,读取这个数据结构里面相应的函数指针,把控制权交给该函数。

    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 工作流程示意图
图3 CGI 工作流程示意图

    4. 3 系统测试

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

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

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

    图4 系统登陆主界面
图4 系统登陆主界面

 

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

    图5 实时温度监测界面
图5 实时温度监测界面

    5 结束语

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


关键字:嵌入式  Linux  机房远程监测 引用地址:关于嵌入式Linux的机房远程监测系统研究

上一篇:基于FFmpeg的H.264视频硬件编解码在S3C6410处理器上的实现
下一篇:安防监控领域高级嵌入式分析系统解析

推荐阅读最新更新时间:2024-03-16 15:55

一种嵌入式语音识别模块的设计与实现
服务机器人以服务为目的,因此人们需要一种更方便、更自然、更加人性化的方式与机器人交互,而不再满足于复杂的键盘和按钮操作。基于听觉的人机交互是该领域的一个重要发展方向。目前主流的语音识别技术是基于统计模式。然而,由于统计模型训练算法复杂,运算量大,一般由工控机、PC机或笔记本来完成,这无疑限制了它的运用。嵌入式语音交互已成为目前研究的热门课题。   嵌入式语音识别系统和PC机的语音识别系统相比,虽然其运算速度和内存容量有一定限制,但它具有体积小、功耗低、可靠性高、投入小、安装灵活等优点,特别适用于智能家居、机器人及消费电子等领域。   1 模块整体方案及架构   语音识别的基本原理如图1所示。语音识别包括两个阶段:训练和识
[单片机]
一种<font color='red'>嵌入式</font>语音识别模块的设计与实现
linux i2c 设备测试,i2c-dev驱动测试代码
embed-linux version:linux-2.6.39-exp vmware-linux:ubuntu14.04 hardware: core chip at91sam9x25 cross-compile:arm-none-linux-gnueabi-gcc 4.5.2 code: #include stdio.h #include stdlib.h #include unistd.h #include sys/ioctl.h #include sys/types.h #include sys/stat.h #include fcntl.h //#include sys/select.h #include sys/tim
[单片机]
瑞萨电子和ESCRYPT合作开发了集成式软硬件平台解决方案
2016年11月9日,日本东京、德国波鸿讯——全球领先的半导体解决方案供应商瑞萨电子株式会社和领先的嵌入式安全系统提供商ESCRYPT有限公司(“ESCRYPT”),今日宣布共同协作开发具有高安全性的集成式软硬件平台解决方案,用以保护汽车电子控制单元(ECU)。 新型组合软/硬件平台解决方案包括集成于单片上的瑞萨电子RH850/P1x-C系列汽车安全微控制器(MCU):通过ESCRYPT的安全软件堆栈系统CycurHSM保证功能安全、安全性和车辆控制网络技术,实现高度复杂的汽车安全解决方案。 新解决方案可缩短开发时间,并将安全功能集成到注重网络信息安全类的汽车ECU应用中。此外,该解决方案还可作为一个跳板,通过加速安全和安
[汽车电子]
基于S3C2410A的嵌入式系统的U-Boot移植
0 引 言     ARM嵌入式处理器已被广泛应用于消费电子产品、无线通信、网络通信和工业控制等领域。其中,ARM9的芯片更是以其低价格、低功耗、高性能在手持设备中占据着重要市场。在嵌入式操作系统中,Linux,Vxworks,WinCE三足鼎立,其中Linux由于其开源性、稳定性、安全性、可裁减性更是一支独放。在嵌入式系统中,如何实现在ARM9平台下Linux操作系统的引导工作是嵌入式技术开发的重要环节。 1 嵌入式系统的软件组成 1.1 系统的软件组成     嵌入式的软件系统主要由Bootloader、操作系统、文件系统、应用程序等组成。其中,Bootloader是介于硬件和操作系统之间的一层,其作用就好像P
[嵌入式]
基于嵌入式Linux与S3C2410平台的视频采集
随着多媒体技术、网络技术的迅猛发展和后PC机时代的到来,利用嵌入式系统实现远程视频监控、可视电话和视频会议等应用已成为可能。为了实现这些应用,实时获得视频数据是一个重要环节。针对这一点,本文在基于嵌入式Linux系统平台上,利用Video4Linux内核应用编程接口函数,实现了单帧图像和视频连续帧的采集,并保存成文件的形式供进一步视频处理和网络传输用。 1 系统平台上的硬件系统 本文使用的系统平台硬件功能框图如图1所示。该平台采用Samsung公司的处理器S3C2410。该处理器内部集成了ARM公司ARM920T处理器核的32位微控制器,资源丰富,带独立的16KB的指令Cache和16KB数据Cache、LCD控制器、RAM控
[单片机]
基于<font color='red'>嵌入式</font><font color='red'>Linux</font>与S3C2410平台的视频采集
linux下的nandflash驱动分析(3)——基于s3c6410平台
在上一篇中probe函数中的一个很重要的函数nand_scan函数,现在来说另外一个很重要的函数add_mtd_partitions函数,add_mtd_partitions()会对每一个新建分区建立一个新的mtd_part 结构体,将其加入mtd_ partitions中,并调用add_mtd_device()将此分区作为MTD设备加入mtd_table。成功时返回0,如果分配mtd_part时内存不足,则返回-ENOMEM。 1、在说这个函数前,先说下,与这有关的结构体struct mtd_part和struct mtd_partition结构体,如下所示: mtd_part结构体用于描述分区,其mtd_info结构体
[单片机]
基于S3C2410-ARM-Linux静态映射分析
s3c2410_gpio_cfgpin(S3C2410_GPB0, S3C2410_GPB0_TOUT0); 我们可以这样控制外设寄存器,想过它怎么实现的吗? 首先分析下 struct machine_desc (include/asm-arm/Mach/Arch.h) 这是一个非常重要的结构体,内核通过 machine_desc 来控制体系架构相关部分的初始化,包括map_io,init_irq,init_machine,pthys_io,timer等 struct machine_desc { /* * Note! The first five elements are
[单片机]
8位机嵌入式TCP通信速度的研究
0 引 言 长久以来,串行RS 232和RS 485通信技术一直是自动化仪器、仪表中常用的通信标准。但近年来,随着计算机技术、网络技术、通信技术的发展及其在工业自动化系统中的应用,使得工业自动化系统和仪器、仪表领域加速了向智能化、数字化和网络化方向发展的进程。出现了电力线通信技术、无线红外和蓝牙通信技术、基于USB接口的通信技术、现场总线技术以及嵌入式Internet接入技术等新技术。其中基于嵌入式Internet接入技术的网络化仪器是近年提出的全新概念,它是仪器检测技术与现代计算机技术、网络通信技术、微电子技术深度融合的产物口。检测仪器接入Internet,成为执行测量和控制任务的仪器Web站点,这种网络化仪器可以像普通仪器那
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved