APP下载

基于电力载波嵌入式的视频监控系统设计与实现

2014-09-01张永格李水明

广西教育·C版 2014年6期
关键词:电力线载波嵌入式

张永格+李水明

【摘要】针对现代视频监控视频数据的传输和线路的架设需要耗费大量的人力、物力问题,采用电力线载波通信和嵌入式技术,设计了一种电力线载波嵌入式视频监控系统。以嵌入式处理器S5PV210为控制核心,通过电力线载波传输视频数据。

【关键词】电力载波嵌入式视频监控

【中图分类号】 G 【文献标识码】A

【文章编号】0450-9889(2014)06C-0181-03

视频监控被广泛应用到各种生产、管理、检测领域。视频监控的视频数据的传输通常使用光纤、宽带网络、双绞线等方式作为传输媒介,在生产和安装过程中需要消耗大量的人力、物力。采用电力载波传输技术,利用广泛存在的电力线网络作为视频数据传输的媒介,能够有效节省生产和线路架设的成本。本系统采用嵌入式ARM作为视频采集、编码控制核心,结合电力线载波传输视频数据构成基于电力线载波嵌入式视频监控系统。以嵌入式处理S5PV210作为控制核心能够快速获取摄像头视频图像信息,利用内部硬件H.264编码器实现快速视频编码。以INT6400和INT1400作为电力线载波视频传输模块,能够快速组网实现多点监控和稳定地传输视频数据。该系统能够免除烦琐的视频数据线路的生产、架设安装,具有节约成本、即插即用等优点。实验表明,该视频监控系统具有低功耗、节省成本、安装方便、图像清晰等特点。

一、电力载波视频监控系统的总体设计

本视频监控系统采用C/S(客户端/服务器端)模式,由视频监控服务器和视频监控客户端组成。视频监控服务器设置固定的IP地址。视频监控服务器与客户端采用UDP通信协议进行视频传输。视频监控服务器主要由摄像头模块、嵌入式处理器模块、电力线载波通信模块组成。客户端在PC机上实现。系统总体结构框架图如图1所示。

图1 系统总体结构框架图

二、电力线载波视频监控系统硬件设计

(一)嵌入式处理器模块。嵌入式处理模块视频监控系统服务器控制核心主要负责原始视频图像数据的采集、H.264格式视频编码、视频数据传输给电力线载波通信模块。该模块采用Samsung公司的S5PV210嵌入式ARM CortexTM-A8处理器。处理器主频最高可达1GHz,支持USB2.0通信,支持对MPEG4、H.263、H.264等视频格式的硬件编码。嵌入式处理模块采用USB方式与摄像头进行连接,通过以太网网络芯片DM9000AEP接口与电力线载波通信模块进行连接。

(二)电力线载波通信模块。电力线载波通信模块主要负责接收嵌入式主控模块的视频数据,然后进行正交频分复用(OFDM)编码将数据调制到电力线上。本模块主要由INT6400电力线调制控制芯片和INT1400模拟前端组成。ATHEROS公司生产的INT640电力线载波调制芯片,内部集成A/D和D/A转换功能,其采用HomePlug1.0通信协议最高通信速率高达200Mbps,能够满足视频监控系统多路视频数据同时传输。INT6400通过RTL820CP网卡网络接口与主控模块通信。模拟前端INT1400主要负责将模拟信号进行放大加载到电力线上。图2 为电力线载波通信模块结构框图。

图2电力线载波通信模块

三、电力线载波视频监控系统软件设计

(一)视频图像采集。视频监控系统原始视频图像数据采集主要通过嵌入式ARM处理模块的USB接口读取摄像头图像信息。摄像头采用深圳威视有限公司生产的USB视频监控摄像头。该摄像头通信接口为:USB2.0;图像最大解析度为:640x480;图像输出格式为:YUYV;图像数据帧率最高为:30fps。本视频监控系统服务器端采用Linux嵌入式系统作为操作系统。V4L2内核驱动为Linux系统对进行视频采集设备提供了通用接口。Linux2.6.32内核已包含该摄像头的视频驱动,应用程序可利用V4L2标准的通用接口操作函数获取摄像头原始视频图像信息。本视频监控Linux系统中,对摄像头设备进行读写的系统文件为“/dev/video0”。对摄像头的操作通过ioctl(系统对内核驱动I/O设备进行管理的函数)函数进行操作即可。对视频设备进行操作主要由以下几个步骤组成。

1.打开视频设备,通过open()打开函数完成。

static char * usb_name= "/dev/video0";

/*定义摄像头设备文件名*/

usb_fd = open (usb_name, O_RDWR| O_NONBLOCK, 0); /*打开视频设备,usb_name设备名*/

2.获取USB摄像头所支持的各种参数。

ioctl (*usb_fd, VIDIOC_QUERYCAP, &cap_video); /* 在V4L2编程框架下采用VIDIOC_QUERYCAP 指令为结构体cap_video获取USB摄像头的各种参数*/

3.设置USB摄像头的输出格式。

ioctl ( * usb_fd, VIDIOC_S_FMT, &video_set); /*定义video_set 为摄像头设置输出图像的像素大小、输出像素格式*/

4.向驱动申请缓冲帧的个数。

ioctl ( * usb_fd, VIDIOC_REQBUFS, &video_requre );

5.获取视频缓冲帧的地址。

ioctl ( * usb_fd, VIDIOC_QUERYBUF, &video_buf );/*申请图像输出的内存存放起始地址*/

6.将缓冲地址放入视频采集队列和开始采集视频数据。

ioctl (*usb_fd, VIDIOC_QBUF, & video_buf));

ioctl (*usb_fd, VIDIOC_STREAMON, &video_type));

7.获取视频数据同时必须将缓冲地址再次放入采集队列。

ioctl ( * usb_fd, VIDIOC_DQBUF, &video_buf ); /*获取原始视频图像信息*/

ioctl ( * usb_fd, VIDIOC_QBUF, &video_buf ); /*对下一次视频图像采集入列 */

(二)嵌入式视频编码。对原始视频图像信息必须进行视频格式压缩才适合传输。本视频监控系统采用H.264视频格式进行视频编码。H.264视频格式编码采用流媒体技术支持边传输边播放功能,是一种高效率、高压缩率、高图像质量同时对误码具有较强的纠错能力的编码技术。嵌入式处理器S5PV210内置硬件H.264编码器,支持对视频进行H.264格式进行硬件编码,减轻系统的工作负担,提高工作效率。Samsung公司为该处理器提供相应的硬件驱动,应用程序只需对相关的驱动函数进行操作即可完成对视频进行编码。H.264编码主要由以下步骤组成。

1.打开编码设备。

handle = VideoMfcEncOpen(&buf_type)

2.设置H.264硬件编码的格式,设置图像像素的长宽、码率等参数。

SSBSIP_MFC_ENC_H264_PARAM * H264_video_mfc; /*定义硬件编码器为H.264格式*/

VideoMfcEncInit(handle , H264_video_mfc); /*初始化H.264编码器*/

3.设置H.264图像输入存放地址。

SsbSipMfcEncGetInBuf( handle , input_info_video_mfc );

/*摄像头采集的视频图像存放在起始地址为input_info_video_mfc,图像视频数据长度为SourceWidth * SourceHeight */

ret= SsbSipH264EncodeExe(handle); /*进行视频的编码*/

4.进行H.264视频格式编码。

SsbSipMfcEncExe( handle );

5.获取H.264编码的视频数据。

SsbSipMfcEncGetOutBuf( handle , output_info_video_mfc ); /* output_info_video_mfc 为视频编码后视频数据存放的数据地址*/

6.关闭视频编码设备。

(三)视频传输。电力线载波视频监控服务器与客户端通信采用UDP通信协议。UDP是一种无连接的网络通信协议,适合对数据量传输要求比较高的通信。服务器与客户端进行数据通信主要有以下步骤:

1.创建UDP协议套接口,采用无连接方式。

videofd=socket(AF_INET,SOCK_DGRAM,0);

2.利用bind函数对套接字进行绑定。

bzero(&video_adr,sizeof(struct,sockaddr_in));

video_adr.sin_family=AF_INET;

video_adr.sin_addr.s_addr=htonl(INADDR_ANY);

video_adr.sin_port=htons(SERVER_PORT);

bind(videofd,(struct sockaddr*)& video_adr, sizeof(struct sockaddr_in))

3.利用sendto()函数进行视频数据打包发送。

video_adr= sizeof(struct sockaddr_in) ;

sendto(videofd,video_out,3000 , 0 , (struct sockaddr *)& video_adr , video_adr );

本系统每次发送3000个字符型视频数据。视频数据UDP协议通信方式如图3所示。

图3 视频数据UDP通信方式

四、系统测试

本视频监控系统采用S5PV210嵌入式ARM处理器、4块K4T160840F内存组成的512MB RAM作为主控模块,采用INT6400和INT1400组成的电力线载波模块。电(下转第184页)(上接第182页)力线载波通信的协议为:HomePlug1.0,主控模块与上位机PC通信协议采用UDP通信协议,视频传输像素为:320*240。PC端作为视频接收播放客户端。视频播放帧率为:30fps。视频编码格式为:H.264编码。每个电力线载波服务器设置固定IP地址,利用编写的播放应用软件进行视频播放,利用电力线网络数据测试工具检测视频通信的速率。在实验环境下,采用两个视频监控服务器进行视频监控。表1为两个视频监控服务器与PC客户端不同通信距离下的通信速率。在测试中图像清晰、视频延时小、图像稳定、通信速率高,能够满足多路视频同时传输和较好适应环境,实现视频监控。

表1 通信速率与距离

序号 测试距离 1号通信速率 2号通信速率

1 5m 172 Mbps 175Mbps

2 10m 167 Mbps 162Mbps

3 20m 127Mbps 133Mbps

4 30m 116Mbps 113Mbps

5 40m 88Mbps 85Mbps

五、结论

基于电力线视频嵌入式监控系统采用电力线作为介质在短距离传输视频数据,利用广泛存在的电力线网络实现视频监控的即插即用,节省大量建造材料和安装的费用。同时采用嵌入式S5PV210处理器作为主控模块利用其内含H.264硬件编码器,能够快速高效率视频编码和传输视频数据。实验表明该方案可行,能够应用于停车场、工厂、仓库、家庭、银行等领域,具有广泛的市场应用前景。

【参考文献】

[1]童方圆,于强.基于Android的实时视频流传输系统[J].计算机工程与设计,2012(12)

[2]黄俊伟,巴义.基于V4L2移动视频监控系统的研究与设计[J].电视技术,2012(17)

[3]祝世平,张玲.基于分形和H.264的视频编码系统[J].光学精密工程,2013(3)

[4]岳兆娟,任勇毛,等.基于UDP的高速网络传输协议研究[J].计算机应用研究,2013(10)

(责编黎原)

3.设置H.264图像输入存放地址。

SsbSipMfcEncGetInBuf( handle , input_info_video_mfc );

/*摄像头采集的视频图像存放在起始地址为input_info_video_mfc,图像视频数据长度为SourceWidth * SourceHeight */

ret= SsbSipH264EncodeExe(handle); /*进行视频的编码*/

4.进行H.264视频格式编码。

SsbSipMfcEncExe( handle );

5.获取H.264编码的视频数据。

SsbSipMfcEncGetOutBuf( handle , output_info_video_mfc ); /* output_info_video_mfc 为视频编码后视频数据存放的数据地址*/

6.关闭视频编码设备。

(三)视频传输。电力线载波视频监控服务器与客户端通信采用UDP通信协议。UDP是一种无连接的网络通信协议,适合对数据量传输要求比较高的通信。服务器与客户端进行数据通信主要有以下步骤:

1.创建UDP协议套接口,采用无连接方式。

videofd=socket(AF_INET,SOCK_DGRAM,0);

2.利用bind函数对套接字进行绑定。

bzero(&video_adr,sizeof(struct,sockaddr_in));

video_adr.sin_family=AF_INET;

video_adr.sin_addr.s_addr=htonl(INADDR_ANY);

video_adr.sin_port=htons(SERVER_PORT);

bind(videofd,(struct sockaddr*)& video_adr, sizeof(struct sockaddr_in))

3.利用sendto()函数进行视频数据打包发送。

video_adr= sizeof(struct sockaddr_in) ;

sendto(videofd,video_out,3000 , 0 , (struct sockaddr *)& video_adr , video_adr );

本系统每次发送3000个字符型视频数据。视频数据UDP协议通信方式如图3所示。

图3 视频数据UDP通信方式

四、系统测试

本视频监控系统采用S5PV210嵌入式ARM处理器、4块K4T160840F内存组成的512MB RAM作为主控模块,采用INT6400和INT1400组成的电力线载波模块。电(下转第184页)(上接第182页)力线载波通信的协议为:HomePlug1.0,主控模块与上位机PC通信协议采用UDP通信协议,视频传输像素为:320*240。PC端作为视频接收播放客户端。视频播放帧率为:30fps。视频编码格式为:H.264编码。每个电力线载波服务器设置固定IP地址,利用编写的播放应用软件进行视频播放,利用电力线网络数据测试工具检测视频通信的速率。在实验环境下,采用两个视频监控服务器进行视频监控。表1为两个视频监控服务器与PC客户端不同通信距离下的通信速率。在测试中图像清晰、视频延时小、图像稳定、通信速率高,能够满足多路视频同时传输和较好适应环境,实现视频监控。

表1 通信速率与距离

序号 测试距离 1号通信速率 2号通信速率

1 5m 172 Mbps 175Mbps

2 10m 167 Mbps 162Mbps

3 20m 127Mbps 133Mbps

4 30m 116Mbps 113Mbps

5 40m 88Mbps 85Mbps

五、结论

基于电力线视频嵌入式监控系统采用电力线作为介质在短距离传输视频数据,利用广泛存在的电力线网络实现视频监控的即插即用,节省大量建造材料和安装的费用。同时采用嵌入式S5PV210处理器作为主控模块利用其内含H.264硬件编码器,能够快速高效率视频编码和传输视频数据。实验表明该方案可行,能够应用于停车场、工厂、仓库、家庭、银行等领域,具有广泛的市场应用前景。

【参考文献】

[1]童方圆,于强.基于Android的实时视频流传输系统[J].计算机工程与设计,2012(12)

[2]黄俊伟,巴义.基于V4L2移动视频监控系统的研究与设计[J].电视技术,2012(17)

[3]祝世平,张玲.基于分形和H.264的视频编码系统[J].光学精密工程,2013(3)

[4]岳兆娟,任勇毛,等.基于UDP的高速网络传输协议研究[J].计算机应用研究,2013(10)

(责编黎原)

3.设置H.264图像输入存放地址。

SsbSipMfcEncGetInBuf( handle , input_info_video_mfc );

/*摄像头采集的视频图像存放在起始地址为input_info_video_mfc,图像视频数据长度为SourceWidth * SourceHeight */

ret= SsbSipH264EncodeExe(handle); /*进行视频的编码*/

4.进行H.264视频格式编码。

SsbSipMfcEncExe( handle );

5.获取H.264编码的视频数据。

SsbSipMfcEncGetOutBuf( handle , output_info_video_mfc ); /* output_info_video_mfc 为视频编码后视频数据存放的数据地址*/

6.关闭视频编码设备。

(三)视频传输。电力线载波视频监控服务器与客户端通信采用UDP通信协议。UDP是一种无连接的网络通信协议,适合对数据量传输要求比较高的通信。服务器与客户端进行数据通信主要有以下步骤:

1.创建UDP协议套接口,采用无连接方式。

videofd=socket(AF_INET,SOCK_DGRAM,0);

2.利用bind函数对套接字进行绑定。

bzero(&video_adr,sizeof(struct,sockaddr_in));

video_adr.sin_family=AF_INET;

video_adr.sin_addr.s_addr=htonl(INADDR_ANY);

video_adr.sin_port=htons(SERVER_PORT);

bind(videofd,(struct sockaddr*)& video_adr, sizeof(struct sockaddr_in))

3.利用sendto()函数进行视频数据打包发送。

video_adr= sizeof(struct sockaddr_in) ;

sendto(videofd,video_out,3000 , 0 , (struct sockaddr *)& video_adr , video_adr );

本系统每次发送3000个字符型视频数据。视频数据UDP协议通信方式如图3所示。

图3 视频数据UDP通信方式

四、系统测试

本视频监控系统采用S5PV210嵌入式ARM处理器、4块K4T160840F内存组成的512MB RAM作为主控模块,采用INT6400和INT1400组成的电力线载波模块。电(下转第184页)(上接第182页)力线载波通信的协议为:HomePlug1.0,主控模块与上位机PC通信协议采用UDP通信协议,视频传输像素为:320*240。PC端作为视频接收播放客户端。视频播放帧率为:30fps。视频编码格式为:H.264编码。每个电力线载波服务器设置固定IP地址,利用编写的播放应用软件进行视频播放,利用电力线网络数据测试工具检测视频通信的速率。在实验环境下,采用两个视频监控服务器进行视频监控。表1为两个视频监控服务器与PC客户端不同通信距离下的通信速率。在测试中图像清晰、视频延时小、图像稳定、通信速率高,能够满足多路视频同时传输和较好适应环境,实现视频监控。

表1 通信速率与距离

序号 测试距离 1号通信速率 2号通信速率

1 5m 172 Mbps 175Mbps

2 10m 167 Mbps 162Mbps

3 20m 127Mbps 133Mbps

4 30m 116Mbps 113Mbps

5 40m 88Mbps 85Mbps

五、结论

基于电力线视频嵌入式监控系统采用电力线作为介质在短距离传输视频数据,利用广泛存在的电力线网络实现视频监控的即插即用,节省大量建造材料和安装的费用。同时采用嵌入式S5PV210处理器作为主控模块利用其内含H.264硬件编码器,能够快速高效率视频编码和传输视频数据。实验表明该方案可行,能够应用于停车场、工厂、仓库、家庭、银行等领域,具有广泛的市场应用前景。

【参考文献】

[1]童方圆,于强.基于Android的实时视频流传输系统[J].计算机工程与设计,2012(12)

[2]黄俊伟,巴义.基于V4L2移动视频监控系统的研究与设计[J].电视技术,2012(17)

[3]祝世平,张玲.基于分形和H.264的视频编码系统[J].光学精密工程,2013(3)

[4]岳兆娟,任勇毛,等.基于UDP的高速网络传输协议研究[J].计算机应用研究,2013(10)

(责编黎原)

猜你喜欢

电力线载波嵌入式
搭建基于Qt的嵌入式开发平台
基于电力线载波通信的智能限电装置
嵌入式软PLC在电镀生产流程控制系统中的应用
一种压缩感知电力线信道估计机制
应急广播系统中副载波的构建与应用
低压载波通讯测试仪的开发与应用
电力线载波通信标准PRIME和G3-PLC的研究
电力线通信中LDPC译码器的优化设计与实现
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器