微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于嵌入式Linux的机房远程监测系统研究

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

时间:08-06 来源:互联网 点击:

m( 总线上只有一个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 程序,实现服务器对客户端浏览器

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top