嵌入式视频监控系统视频服务器的设计与实现_单片机_rosi视频

视频监控系统以其数字化、网络化和智能化等方面的rosi视频特征广泛应用于各种场合。随着通信技术和网络技术的发展,通过网络进行重要场所的监控越来rosi视频下载越引起人们的关注和重视。传统的视频监控系统图像的压缩解压都是基于pc 机,在稳定性,可靠性方面都受到限制。近年来,随着嵌入式技术的发展,嵌入式设备体积小、集成度高、高效可靠、可移植、功耗低等一系列优点使得基于嵌入式的视频监控系统逐渐取代了rosi视频传统的视频监控系统。笔者所介绍的嵌入式视频服务器是建立在嵌入式web 服务器的基础上,基于at91rm9200[1]微处理器,采用linux 实时操作系统,由专门的视频芯片接收数字视频数据完成压缩编码,生成mpeg-4 码流,通过内部总线传送到web 服务器上, 远程授权用户可以通过网络浏览器观看web 上的图像信息,控制图像获取方式。该系统保证了图像质量,客户端零维护,开发便捷,成本低廉。

1 系统的整体设计

整个系统分为硬件和软件2 个部分。硬件部分分为4 个模块:视频采集模块,视频压缩编码模块,网络传输模块和其他辅助功能模块。系统采用b/s 模式。软件部分分为视频图像采集的驱动程序,web 服务器程序,cgi 和用户浏览器的网页设计4 部分。系统整体结构如图1 所示。

图1 系统整体结构

2 系统硬件部分

本系统采用atmel 公司的at91rm9200微处理器。该处理器是高性能,低功耗的32 位risc 微处理器,最高主频为180 mhz,32 位外部数据总线支持8/16/32 位数据宽度,可对64 mb 空间寻址。内部集成丰富的外设资源,mmu 管理单元,16 kb sram 和128 kb rom,各种外围接口,适用本系统的开发。at91rm9200 微处理器的作用是在系统上电时配置芯片的相关功能寄存器,正常运行时进行总体控制,如接受视频数据流,配置网络接口,实现本地存储等功能。

2.1 视频采集模块

本模块的作用是把模拟视频转换成数字视频,产生符合编码芯片接口标准的数字视频信号。采用的是ti 公司的tvp5150 低功耗视频a/d 转换芯片。tvp5150 支持ntsc/pal/secam 3 种格式,可以输出itu-r bt.656 和itu-r bt.601 两种信号, 考虑到编码芯片的标准, 本系统采用itu-rbt.656 格式8 为数据串行传输。tvp5150 的aipia 为模拟信号输入端,接收摄像头的模拟视频信号输入。行同步脉冲和场同步脉冲分别对应hsync 和vsync,分别连接编码芯片的hsynin 和vsynin2 个引脚, 实现图像的行同步和场同步操作。yout[7:0]为数据输出引脚,将数字视频信号送到编码芯片的数据接收端。scl 和sda 分别为i2c 接口的串行时钟和数据引脚,at91rm9200 对tvp5150 的内部寄存器的访问是通过i2c 总线实现的。

2.2 视频压缩编码模块

动态图像被数字化处理成yuv 格式,数据量非常大。未经压缩的cif 格式的rgb 数据至少需要58.01 mb/s,因此视频数据在传输和处理的过程中必须经过压缩。视频编码标准有mpeg-1,mpeg-2,mpeg-4,m-jpeg 和h.26x 系列。本系统采用的是mpeg-4标准。mpeg(moving pictures expertsgroup),该专家组成立于1988 年,致力于运动图像的编码标准化工作。mpeg-4 是该专家组研制出来的于1999 年正式成为iso 和iec 联合制定的国际编码标准。mpeg-4 与其他编码标准相比,相同比特率下,具有更高的视觉质量,可以在低带宽的信道上传输。本系统采用韩国pentamicro 公司的压缩/解压芯片at2042,at2042 接收经过tvp5150 进行a/d转换的rosi视频数字视频数据。at2042 支持视频压缩和音频压缩标准,支持cbr 和vbr 两种码率。采用itu-r 656 接口标准。

工作原理:在at91rm9200 的控制下,要进行压缩编码的数据经at2042 的fifo 口输入。at2042 的解压是压缩的逆过程。本系统中,at2042 的数据接收端vin[7:0]接收tvp5150的yout [7:0] 端输出的数据, 同时at2042 的hsynin 和vsynin 信号分别和tvp5150 的hsyn 和vsyn 相连,实现图像的行同步和场同步操作。接收来rosi视频下载的数据送到at2042 的压缩编码处理单元, 压缩编码后送到芯片外部的sdram 中存储, 通过片内的sdram 控制器可以实现对外部sdram的访问, 并通过hpi 与at91rm9200 微处理器进行通信,以便远程监控端的实时监控。视频压缩编码框图如图2 所示。

图2 视频压缩编码框图

2.3 网络传输模块

本模块是采用lan91c11构建嵌入式以太网,实现视频数据网络传输的通路。lan91c11 是smsc 公司推出的快速以太网控制器。芯片上集成mac 和phy, 符合ieee802.3/802.u-100base-tx/10base-t 规范。at91rm9200 微处理器通过地址、数据、控制线和片选信号线对lan91c11 进行通信和控制。网络传输硬件连接原理图如图3 所示。at91rm9200发送数据时,首先置发送使能信号etxen 有效。数据发送端etx [1:0] 与lan91c11 的txd [1:0] 引脚相连接。以at91rm9200 的时钟信号extck 发送视频数据。数据的接收端erx[1:0]与lan91c11 的rxd[1:0]引脚相连接,接收视频数据。emdi0 和emdc 分别控制芯片的读写。数据从dma通道发送。在发送数据时,首先设置好传输控制寄存器和传输传输地址寄存器,从指定的存储区取数据,并且记录发送完的字节数, 数据发送完之后,lan19c11 产生中断信号,请求dma 中断,由at91rm9200 处理。

图3 传输网络硬件连接图

2.4 其他辅助功能模块

该模块包括flafh、sdram、以太网接口、串口和usb 接口。用来实现操作系统内核和应用程序的存储,网络传输,本地存储和远程控制。

3 系统软件部分

嵌入式linux 实时操作系统,稳定、高效、易定制、易剪裁、开源代码,因此本系统采用linux 操作系统。软件部分分为bootloader 文件,linux 内核文件linux 驱动和应用程序,用户应用程序。这里主要介绍mpeg-4 和cgi 技术的程序设计。

3.1 mpeg-4 压缩编码程序设计

本系统采用mpeg-4 标准对视频图像进行压缩编码。在实现mpeg-4 编码的方式上, 有硬件压缩和软件压缩两种。

硬件压缩就是利用专门的压缩芯片对视频信号进行mpeg-4 编码, 软件压缩就是使用压缩软件对视频信号进行编码。

at2042 支持mpeg-4 压缩标准。实现方法方面就是对其相关寄存器的rosi视频配置,包括编码模式、编码像素点、编码帧率和设置编码流格式等方面。具体过程:系统上电启动后,先配置at2042 的相关寄存器,完成初始化工作后,通过i2c 总线对a/d 转换芯片tvp5150 进行初始化配置。所有的寄存器配置工作完成之后,开始编码过程。其中mpeg-4 数据流接收存储程序有at2042 的数据流缓冲器标志信号来ROSI-宅男福利社控制。缓冲器接收数据满之后置低risc_int0,at91rm9200 主控制器通过dma 通道把at2042 发送过来的码流通过网络通道传输到请求监控视频图像的监控端。压缩编码的流程图如图4 所示。

图4 压缩编码流程图

3.2 cgi 程序设计

在嵌入式linux 环境下,主要有3 种web 服务器,分别是httpd、thttpd 和boa。httpd 功能最弱,不支持cgi、ssl 和认证。本系统需要交互操作, 必须使用动态web 技术, 采用boa。boa 功能强大,支持cgi,支持ssl,支持认证。使用时只需交叉编译,修改一下配置文件即可。cgi[7]即通用网关接口,是外部扩展应用程序与web 服务器交互的标准。客户端使用浏览器向服务器发送http 请求, 服务器响应客户端的请求后,引导脚本程序,对命令解析,将信息提交给后台———cgi处理。具体到本系统,就是pc 机端通过浏览器输入服务器的ip 地址,web 服务器根据请求进行分析,如果没有传来参数,则调用get-status()函数取得设备当前状态显示给浏览器。用户根据操作界面提示完成相应的操作,填写好表单设置设备参数并提交。cgi 解析信息后通过get-status()函数设置新状态,实现交互功能。例如调节编码属性,对相机控制等。

cgi 的输入输出基本语法:

m ethod 属性指定将数据传送到web 服务器的方法,输入方法有两种。

1)get 方法。此方法,表单数据会附加在所指向cgi脚本的url 后一起发送给web 服务器,web 服务器将接收到的表单数据赋予环境变量qu ery-str ng。

2)post 方法。post 方法通过使用标准输入(stdn)将表单数据传送给web 服务器,web 服务器启动指定的脚本,并将用户提供的数据传入该脚本。

acton 属性定义要对表单数据进行处理的cgi 脚本url。

cgi 输出:cgi 输出方式是将执行结果送给标准输出(stdout) 进行输出, 执行结果必须是浏览器能够显示的html 标准格式。流程图如图5 所示。

图5 web 服务器cgi 程序流程图

cgi 可以用shell 脚本语言、fottran、c 语言等多种语言编写。本系统中采用c 语言实现cgi 的编写,执行速度快,安全性高。

4 结论

笔者介绍了rosi视频基于at91rm9200 微处理器的嵌入式监控系统的视频服务器设计,采用a/d 转换芯片tvp5150 对模拟视频数据进行数字化处理, 生成符合压缩编码芯片at2042接口标准的视频数据流。在at91rm9100 的控制和调度下,将视频数据发送到pc 端。系统采用低编码率的mpeg-4 编码标准,cgi 技术,实现可靠的图像质量的交互功能。

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注