您现在的位置: 通信界 >> 视频通信 >> 技术正文  
 
基于ARM的家庭视频服务器[图]
[ 通信界 / 佚名 / www.cntxj.net / 2012/7/5 21:25:43 ]
 

引言

随着科学技术的不断进步和发展,人们对生活质量也提出了更高的要求。家庭网络作为一个新生体越来越快走进人们的生活,它将家庭单元作为一个节点加入了网络的大家庭,其中连接家庭内部与Internet的桥梁的家庭网关起了举足轻重的作用。嵌入式网关的主要功能如下:

远程控制:客户通过Internet连接的任意一台PC机的浏览器,都可以访问家庭网络的服务器。家庭网络中的设备状态将以HTML文件的方式显示在客户端的浏览器中。客户通过对HTML页面上相应设备的点击以实现对家庭网络中设备的远程控制,操作的结果同样以HTML页面的方式刷新客户端的浏览器。

远程监视:客户通过PC机的浏览器,都可以访问家庭网络的服务器,在HTML页面上通过点击控件按钮来实现视频工具的自动下载,和所要求视频文件的自动播放,从而可以显示多个摄像头中的视频信息

远程维护:当HomeNetServer的后台数据库需要维护,或者家庭网络中设备的HTML描述文件有了更新,甚至系统的网络管理系统需要升级为新版本时,管理员都可以通过Internet远程对家庭网络中的服务器做维护和更新。

本文采用的系统总体设计框图如图1所是。基于这些基本要求和嵌入式系统自身资源有限的特点,系统处理器选择了三星的S3C4510芯片,并对其进行外围电路扩展如图2所示。

图1系统总体设计框图

图2处理芯片的外围扩展电路方框图

其中,Flash/ROM用于存储家庭网关中的嵌入式操作系统、HTTP服务器、CGI网关程序、家庭网络服务器以及各种服务所需的文件系统。整个家庭网关软件平台存储在Flash中,系统启动时,将从Flash中运行引导程序,解压操作系统并将其移入SDRAM中。

Ethernet:S3C4510内部集成了网络控制接口,并提供专用于网络通信的DMA通道。通过Ethernet模块,S3C4510实现与Internet的连接。Ethernet模块完成芯片与网络的隔离和数据的收发。

系统:S3C4510所需的其他外围电路,包括:电源电路、外部时钟(50MHz)电路、开关及复位电路和JTAG调试接口电路等。

嵌入式操作系统选择的是mCLinux操作系统,mCLinux是专门针对没有MMU的处理器而设计的,系统多采用Romfs文件系统,Romfs是一种相对简单、占用空间较少的文件系统。而在mCLINUX下,主要有三个WEB服务器:httpd、thttpd和boa.httpd是最简单的WEB服务器,功能简单,不支持认证和CGI,thttpd和boa均支持认证和CGI,功能丰富,其中boa1是一个单任务的http服务器,源代码开放,性能较高,占用系统资源较少,boa服务器在收到请求时,不启动多个服务进程处理多个请求,在一个进程内处理所有服务请求。对于CGI程序,将生成新的进程来处理,考虑到嵌入式系统自身资源有限,和家庭网关的进程数量有限,系统选择了在mCLinux系统中的boa服务器。

由于目前的mCLinux还不支持ASP、PHP等动态网页技术,所以在mCLinux下通过CGI2技术连接WEB页和本地程序,提供动态和交互的特性。

配置boa服务器

CGI程序不是放在服务器上就能顺利运行,如果要想使其在服务器上顺利的运行并准确的处理用户的请求,则须对所使用的服务器进行必要的设置。

boa的配置文件boa.conf:在boa.conf中对boa进行了配置,这些配置多使用默认值,本系统中将DocumentRoot指定的WEB服务器的根修改为/boas.

在对内核进行配置时,选择boa程序和cgi.

将cgi_generic文件夹下的cgi.c和makefile覆盖到程序包中的/usr/cgi_generic/.将boa文件夹下的hash.c覆盖到程序包中的/usr/boa/src.将rc文件覆盖到程序包中的/vendor/Miectek/4510.

本系统中的mCLinux系统中的文件使用的是ROMFS和运行于RAM的EXT2.为了可通过FTP等工具更新网页,Src文件在/boas下创建文件夹cgi_bin,然后将index.html,boa.conf和mine.type复制到/boas下,将CGI程序复制到/boas/cgi_bin下。至此建立了boa运行的基本环境,使用">boa-C/boas/&"命令就可以运行boa.

家庭网关设计

在嵌入式网关的设计中,网关程序与家庭网络的HTTP服务器和家庭网络内部服务器位于同一物理设备(基于S3C4510的硬件平台)之上,负责连接HTTP服务器与后台数据库,完成HTTP服务器与HomeNetServer之间的信息交互。

图3家庭网关软件结构框图

家庭网关的软件结构如图3所示。根据功能描述,网关应能提供远程监视、远程控制、远程维护功能。网关内部工作流程如下:

*若客户发送的HTTP请求,经过HTTP服务器接收和解析后,得知要求的是设备状态信息时,HTTP服务器从存储设备状态信息的静态文件中取出设备状态,并封装为HTTP响应消息发送回客户端。

*若客户发送的HTTP请求,经过接收和解析后,得知请求的消息是对设备的设置(操作),则通CGI函数将消息内容转换为家庭网络协议传递给家庭网络服务器,由家庭网络服务器对家庭内部设备的管理和控制,并将处理结果以消息形式传递给CGI函数,并封装为HTTP响应消息的形式,发送回客户端。

*若客户发送的HTTP请求,经过接收和解析后,得知请求的页面是提供实时视频服务时,HTTP服务器将调用CGI函数向视频数据处理模块发送消息,通过视频数据处理模块来控制视频压缩卡完成视频数据的采集、压缩和发送等功能。

*若客户发送的HTTP请求,经过接收和解析后,得知请求的消息包含对云台设备及镜头的控制命令时,HTTP服务器通过CGI函数向云镜解码器直接发送控制指令以实现对云台和镜头的控制。

实时视频传输设计

基于HTTP的boa服务器负责接收和响应客户端的HTTP请求,当请求的是视频信息时,此请求通过CGI函数向视频数据处理模块发送消息,从而向视频设备发送事件以允许实时视频发送任务进入运行队列。

视频数据处理模块主要包括视频图像的实时捕捉(借助MPEG-4视频压缩卡完成)、动态存储和实时播放,实时播放可以和实时捕捉存储同时进行。

初始化视频压缩卡:

M878Object*pObject=NULL;

For(inti=0;i

{pObject=newM878Object(i,m_strDisk+m_strVideoDir);

If(!pObjectGetDataFormFile())

pObject->InitData();

m_obArray.Add(pObject);

}

数据采集:

for(i=0;i

{

OpenDev(i);//打开指定卡号的设备,分配相应系统资源

pObject=(M878Object*)m_obArray[i];

OutMpegBuff(i,OnMpeg4Write);//采集视频数据流

RegisterViSaveExceptionProc(i,(ViSaveErrCallBack)ViErrCallBack);

pObject->SetParamToDevice();//设定参数

}

停止设备:

当不再使用设备时,调用ViUnInit()关闭视频压缩采集卡并卸载系统资源。

数据发送模块:

OutMpegBuff(i,OnMpeg4Write);

VoidCALLBACKOnMpge4Write(DWORDdwCard,BYTE*pbuff,DWORDdwSize,

BOOLisKeyFrom)

{

if(dwCard>=g_dwDevice)

return;

g_VStrmInfo[dwCard]+=dwSize/26;

MTAWriteVideo((BYTE)dwCard,pbuff,(LONG)dwSize,isKeyFrm)

}

发送模块负责向地址表中的地址发送经过编码处理的实时视频数据,并修改地址表中的信息。地址表用来保存请求实时视频服务的用户的IP地址,视频发送任务根据地址表中的地址来发送视频包。

数据接收模块主要完成视频数据的接收、解码和显示工作。用户通过浏览器实现对远程设备的监控,服务器返回的信息通过浏览器显示。浏览器可以使用微软公司的InternetExploer或Netscape公司的NetscapeNavigator等。对于普通的文本及HTML文件支持的GIF、JPEG等格式的图片,普通浏览器都可以显示。但对于实时视频数据,由于与HTTP链接不同,不是使用流套接字而是使用数据报套接字接收,然后还需解码和显示,这些工作浏览器都无法完成。为使用户能通过浏览器观看视频,本系统采用在WEB页面中嵌入ActiveX控件,由ActiveX控件完成视频数据的接收、解码和显示工作。而ActiveXInternet技术的一个重要方面是安全的下载和安装ActiveX控件和需要的支持文件。MicrosoftInternetExplore通过在HTML文档中使用InternetComponentDownload方法自动下载并安装ActiveX控件完成客户端控件的嵌入和注册。

在WEB服务器的HTML文件中嵌入ActiveX属性,针对客户端使用最多的IE浏览器,HTML代码可使用MFCControl控件。

控件编写完成后,需要在客户端注册,关于控件的信息记录在注册表中。客户端从服务器端接收到嵌有控件的HTML页面后,将根据OBJECT标签中的信息通过注册表使用对应的空间完成接收,解码和显示。

远程控制设计

在远程控制部分设计中,根据性能最优化和实时性考虑,将控制部分分为两部分:云台控制部分,主要是通过串口进行通信;信息家电远程控制,通过内部家庭网络协议对相应设备进行控制,控制信号的物理载体是家庭网络内部总线。由于篇幅有限,以下只介绍图4所示云台控制模块。

图4云台控制系统硬件连接框图

该模块是个相对独立的模块,负责控制云台的上下左右旋转以及镜头的焦距和光圈的调整。当服务器接受到的请求中含有对云台设备以及镜头的控制命令时,将通过CGI函数向云台解码器发送控制指令以实现对云台和镜头的控制。在室内,采用CDA2000解码器直接通过RS-232串行口与嵌入式网关通信,云台控制电压~24V、~220V可选,镜头控制电压可在5V-12V之间无级调节。

在云镜控制模块中,解码器起着核心的作用,设计云镜控制模块主要解决的问题是将各项操作如上下旋转,镜头调焦等操作进行编码,但本系统采用的解码器封装了底层硬件程序的编写,因此所做的工作是利用解码器开发商提供的协议,通过RS232串行口向解码器发送指令。

Linux对串口的操作是通过设备文件进行访问的,只需打开相应的串口文件,然后通过调用设备相关函数来打开串口(open()),设置串口参数(tcgetattr(),cfsetispeed(),cfsetospeed()),设置输入输出模式(options.c_Iflag和options.c_Oflag),恢复串口属性,关闭串口(close())等即可。

结语

本系统的特点是基于嵌入式微处理器有限的系统资源之上,为客户提供视频服务。本系统采用的是"boa服务器+CGI+家庭网络服务器"的模式来实现对信息家电的控制。以及采用了"boa服务器+CGI+视频接收和控制模块(视频服务器)"的模式实现对视频数据的捕获、采集、发送等操作,并通过串行口通信方式对云台和镜头进行直接的控制,视频的接收问题一直以来是研究的重点,本系统采用在WEB页面中嵌入ActiveX控件的方式,由ActiveX控件完成视频数据的接收、解码和显示工作。这样做的好处是,不需对客户端做任何设置,就可以完成控件的自动下载和视频文件的实时播放。

 

作者:佚名 合作媒体:不详 编辑:顾北

 

 

 
 热点技术
普通技术 “5G”,真的来了!牛在哪里?
普通技术 5G,是伪命题吗?
普通技术 云视频会议关键技术浅析
普通技术 运营商语音能力开放集中管理方案分析
普通技术 5G网络商用需要“无忧”心
普通技术 面向5G应运而生的边缘计算
普通技术 简析5G时代四大关键趋势
普通技术 国家网信办就《数据安全管理办法》公开征求意见
普通技术 《车联网(智能网联汽车)直连通信使用5905-5925MHz频段管理规定(
普通技术 中兴通讯混合云解决方案,满足5G多元业务需求
普通技术 大规模MIMO将带来更多无线信道,但也使无线信道易受攻击
普通技术 蜂窝车联网的标准及关键技术及网络架构的研究
普通技术 4G与5G融合组网及互操作技术研究
普通技术 5G中CU-DU架构、设备实现及应用探讨
普通技术 无源光网络承载5G前传信号可行性的研究概述
普通技术 面向5G中传和回传网络承载解决方案
普通技术 数据中心布线系统可靠性探讨
普通技术 家庭互联网终端价值研究
普通技术 鎏信科技CEO刘舟:从连接层构建IoT云生态,聚焦CMP是关键
普通技术 SCEF引入需求分析及部署应用
  版权与免责声明: ① 凡本网注明“合作媒体:通信界”的所有作品,版权均属于通信界,未经本网授权不得转载、摘编或利用其它方式使用。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:通信界”。违反上述声明者,本网将追究其相关法律责任。 ② 凡本网注明“合作媒体:XXX(非通信界)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。 ③ 如因作品内容、版权和其它问题需要同本网联系的,请在一月内进行。
通信视界
华为余承东:Mate30总体销量将会超过两千万部
赵随意:媒体融合需积极求变
普通对话 苗圩:建设新一代信息基础设施 加快制造业数字
普通对话 华为余承东:Mate30总体销量将会超过两千万部
普通对话 赵随意:媒体融合需积极求变
普通对话 韦乐平:5G给光纤、光模块、WDM光器件带来新机
普通对话 安筱鹏:工业互联网——通向知识分工2.0之路
普通对话 库克:苹果不是垄断者
普通对话 华为何刚:挑战越大,成就越大
普通对话 华为董事长梁华:尽管遇到外部压力,5G在商业
普通对话 网易董事局主席丁磊:中国正在引领全球消费趋
普通对话 李彦宏:无人乘用车时代即将到来 智能交通前景
普通对话 中国联通研究院院长张云勇:双轮驱动下,工业
普通对话 “段子手”杨元庆:人工智能金句频出,他能否
普通对话 高通任命克里斯蒂安诺·阿蒙为公司总裁
普通对话 保利威视谢晓昉:深耕视频技术 助力在线教育
普通对话 九州云副总裁李开:帮助客户构建自己的云平台
通信前瞻
杨元庆:中国制造高质量发展的未来是智能制造
对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 杨元庆:中国制造高质量发展的未来是智能制造
普通对话 对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 对话倪光南:“中国芯”突围要发挥综合优势
普通对话 黄宇红:5G给运营商带来新价值
普通对话 雷军:小米所有OLED屏幕手机均已支持息屏显示
普通对话 马云:我挑战失败心服口服,他们才是双11背后
普通对话 2018年大数据产业发展试点示范项目名单出炉 2
普通对话 陈志刚:提速又降费,中国移动的两面精彩
普通对话 专访华为终端何刚:第三代nova已成为争夺全球
普通对话 中国普天陶雄强:物联网等新经济是最大机遇
普通对话 人人车李健:今年发力金融 拓展汽车后市场
普通对话 华为万飚:三代出贵族,PC产品已走在正确道路
普通对话 共享退潮单车入冬 智享单车却走向盈利
普通对话 Achronix发布新品单元块 推动eFPGA升级
普通对话 金柚网COO邱燕:天吴系统2.0真正形成了社保管