历史上的今天
返回首页

历史上的今天

今天是:2025年02月16日(星期日)

正在发生

2018年02月16日 | 基于ARM S3C2410X的嵌入式无线视频监控系统设计

2018-02-16 来源:eefocus

    引言

    高性能、低功耗嵌入式CPU和高可靠性网络操作系统的面世,使得可视电话、视频会议、远程视频监控等运算数据量大的应用在嵌入式设备中实现成为可能。传统的基于同轴电缆的视频监控系统结构复杂、稳定性差、可靠性低且价格昂贵,因而出现了嵌入式网络视频服务器等远程Web视频监控系统。在本嵌入式无线视频监控系统中,使用高性能ARM9芯片作微处理器,控制video4linux实现USB摄像头视频数据采集,采集的视频数据经JPEG压缩后,在 ARM9芯片的控制下通过2.4GHz无线发送/接收模块进行视频数据传输;视频传输模块再将视频数据通过串口或网络提交给视频应用服务端,最后由视频应用服务端将接收到的压缩数据帧重组、复合成视频图像,实现无线视频监控。

    1 系统组成结构

    整个系统由视频采集终端、2.4G无线发送模块、2.4G无线接收模块、视频传输和视频应用服务端等5个模块组成。 其组成结构如图1所示:

   嵌入式无线视频监控系统结构框图
图1 嵌入式无线视频监控系统结构框图

    视频采集终端包括以S3C2410X为核心的中央控制和数据处理中心,以及USB Camera数据采集单元。中央控制和数据处理中心主要完成视频采集终端控制和视频图像压缩,并将需要传输的数据经编码处理后,通过SIO发送到 nRF2401无线发射模块。

    视频传输模块主要包括:以S3C2410X为核心的中央控制和数据处理中心以及将视频数据传输到视频应用服务端的MAC接口和UART接口。视频传输模块的中央控制和数据处理中心主要完成以下任务:nRF2401将接收到的视频数据提交给SIO模块,S3C2410X先解码SIO模块数据,再通过UART 接口或MAC接口将视频数据传输到视频应用服务端。

    视频应用服务端从串口或网络接口接收视频数据,并将其重组、复合成视频图像。

    1.1 视频采集终端硬件结构

    在本设计中,充分利用了S3C2410X所继承的片上资源,只需要扩充SDRAM、Nand Flash、4X4 Array Keyboard、USB Host、Ethernet Interface、RS232 Interface、JTAG、Power等模块。视频采集终端是整个系统的核心模块之一,主要完成视频捕获和图像压缩,其硬件逻辑结构框图如图2所示:

    视频采集终端硬件逻辑框图
图2 视频采集终端硬件逻辑框图

    2 视频采集模块设计与实现

    视频捕获模块是整个视频采集终端的核心。它通过嵌入式Linux操作系统调度V4L (video4linux)和影像设备驱动程序来完成视频捕获。V4L 是Linux影像系统与嵌入式影像的基础,是Linux kernel里支持影像设备的一组APIs,配合适当的视频采集卡与视频采集卡驱动程序,V4L可以实现影像采集、AM/FM无线广播、影像CODEC、频道切换等功能。目前,V4L 主要应用在影像串流系统与嵌入式影像系统里,其应用范围相当广泛,比如:远程教学、远程医疗、视频会议、视频监控、可视电话等。V4L为2层式架构,最上层为V4L驱动程序,最下层则是影像设备驱动程序。

 

    在Linux操作系统中,外部设备都作为设备文件来管理,因此,对外部设备的操作就转变成对设备文件的操作。视频设备文件位于/dev/目录下,一般情况下为video0。当摄像头通过USB接口连接到视频采集终端后,在程序中调用V4L APIs对设备文件video0的读操作即可实现摄像头视频数据采集。其主要过程如下:

    1) 打开设备文件: int v4l_open(char *dev, v4l_devICe *vd){}打开影像源的设备文件;

    2) 初始化picture: int v4l_get_picture(v4l_device *vd){} 获取输入的影像信息;

    3) 初始化channel:int v4l_get_channels(v4l_device *vd){} 获取每个channel的信息;

    4) 对channel设置norm:int v4l_set_norm(v4l_device *vd, int norm){} 对所有的channel设置norm;

    5) 设备地址映射:v4l_mmap_init(v4l_device *vd){} 返回存放图像数据的地址;

    6) 初始化mmap缓冲区: int v4l_grab_init(v4l_device *vd, int width, int height){};

    7) 视频捕获同步: int v4l_grab_sync(v4l_device *vd){};

    8) 视频捕获: int device_grab_frame(){}。

    通过以上操作,即可将摄像头视频数据采集到内存。采集到内存的视频数据既可采用文件的形式保存,也可将其压缩后封装进数据包,通过网络传输到数据处理中心。本设计采用后一种处理方法,即:先将采集的视频数据进行JPEG压缩,再将其封装进数据包传输到视频应用服务端处理。

    3 视频压缩模块设计

    由于视频采集模块采集的视频数据信息量较大,如果直接通过网络传输,则会增加数据传输系统的负担,大大降低数据传输效率。为此,本设计采用JPEG —Joint Photographic Experts Group压缩编码算法对视频数据进行压缩。JPEG是一个适用于彩色、单色多灰度、连续色调静止数字图像的压缩标准,是静态数字图像压缩的国际标准,不仅适用于静止图像压缩,而且适用于电视图像序列的帧内图像压缩。由于JPEG压缩采用的是全彩影像标准,其主要处理过程包括:色彩模型转换、离散余弦— DCT变换、重排DCT结果、量化、编码等。

    在本设计中,采用最基本的JPEG算法,其主要步骤为:首先,通过离散余弦变换(DCT)去除数据冗余;其次,使用量化表对DCT系数进行量化;最后,采用Huaffman可变字长编码对量化后的DCT系数进行编码,使其熵达到最小。通过实验,数据压缩效果良好,图像压缩率可以达到70%左右。

    4 nRF2401无线发射、接收模块设计

    本设计采用nRF2401 2.4GHz无线收发芯片完成视频数据的无线传输。nRF2410是一款单片射频收发芯片,工作在2.4GHz~2.5GHz ISM频段,该芯片内置频率合成器、功率放大器、晶振和调制解调器等功能模块,其输出功率和通信频道等参数都可以通过程序进行配置。内置的 DuoCeiver接收器使nRF2401可以使用同一天线同时接收两个不同频道的数据,这为视频数据的传输提供了有利条件。

    nRF2401在发送和接收数据时主要完成以下操作:

    1)初始化发送端和接收端:主要完成I/O端口的配置,使能发送器/接收器,启动计数器等;

    2)发送器/接收器配置:先打开配置方式,再配置发送/接收器,最后使能收发功能;

    3)接收包/接收包处理:

    4)发送/接收数据:完成数据包的发送/接收操作;

    5)读取A/D转换结果:等待AD转换完成后,读取A/D转换结果数据,并开始接受新的转换;

   

    5 视频传输模块设计

    视频传输模块收到无线接收模块递交的视频数据后,可以通过串口或网络接口将其传输到视频应用服务端,本设计采用网络接口进行数据传输。目前,互联网上传输视频数据大多采用UDP协议。UDP协议提供非连接、不可靠的数据传输,由于接收端只对收到的UDP数据包进行简单的完整性校验,丢弃有错误的数据包,因此数据传输速度较快。然而,为了提高数据传输的准确性和减少因使用UDP协议而额外增加的、繁琐的数据确认操作,本设计选用面向连接的、可靠的数据传输协议—TCP。视频传输模块与视频应用服务端之间的通信过程如图3所示:


    6 视频应用服务端—视频显示模块设计与实现

    视频应用服务端采用Borland C++ Builder6.0完成监控视频的合成(如果视频应用服务端采用Linux操作系统,则可以使用Kylix完成相同的功能)。由于BCB的Image类可以完成精确到像素的图像处理能力,可以将BMP、Drawing、自定义图形等显示成图像。因此,Socket API 从网络接收视频数据后,首先将接收到的JPEG图像转换成BMP,然后将其传送给Image对象,Image对象最后处理视频数据、生成图像视频并将其显示出来。

    7 结束语

    本文提出了一种基于ARM S3C2410X的嵌入式无线视频监控系统设计。采用嵌入式Linux操作系统进行视频采集、压缩和打包并通过nRF2401无线发射、接收模块进行视频数据无线传输,最后通过TCP/IP网络将视频数据从视频传输模块传输到视频应用服务端,构成一套完整的无线视频监控系统。由于系统的核心工作采用高性能嵌入式处理器完成,因此该系统具有结构简单、性能稳定、成本低廉等优点,在油田、油气井无线视频监控,智能家居等领域具有广阔的应用前景。

    本文作者创新点:将视频监控从有线系统延伸到无线系统,提出了构建无线视频局域网的一种方法,此方法在智能家居等领域具有广阔的应用前景。

    参考文献:

    [1] 陈俊宏,Embedded Linux嵌入式系统原理与实务[M].北京:中国铁道出版社,2004

    [2] 曹 翔, 实时视频传输在MPLS网络中的QoS研究[J]. 微计算机信息,2006,7-3:58-60

    [3] NorDIC VLSI ASA .nRF2401 Single Chip 2.4GHz Radio Transceiver Product SpecifICation,2003.


推荐阅读

史海拾趣

DEVCON公司的发展小趣事

随着电子行业的快速发展,对材料性能的要求也越来越高。DEVCON公司不断投入研发力量,通过技术创新,成功开发出了一系列具有高性能、高可靠性的新材料。其中,甲基丙烯甲酸甲酯、环氧类、改性硅烷密封胶等产品,因其优异的性能和广泛的应用前景,成为了电子行业的明星产品。这些技术突破不仅提升了DEVCON公司的竞争力,也为整个电子行业的发展做出了重要贡献。

HEICO Corporation公司的发展小趣事

自1957年成立以来,HEICO Corporation不断扩展其电子技术领域的业务。公司电子技术部门专注于设计、制造电子、数据和微波以及光电产品,涵盖了从红外模拟和测试设备到激光测距接收器、电源转换产品等多个方面。这种多元化的产品组合不仅满足了航空、国防等行业的特定需求,也逐渐在医疗、电信等电子行业中占据了一席之地。通过持续的技术创新和研发投入,HEICO在电子市场上建立了稳固的地位。

Greenlee公司的发展小趣事

在电子行业的激烈竞争中,GREEGOO公司凭借其在半导体材料领域的持续创新,成功研发出了一种新型高性能芯片封装材料。这种材料不仅大幅提升了芯片的散热性能和稳定性,还显著降低了生产成本。这一技术突破迅速吸引了业界的关注,多家知名电子产品制造商纷纷与GREEGOO建立合作关系,推动了公司业务的快速增长。GREEGOO因此在电子材料市场上崭露头角,成为行业内的佼佼者。

Antelec公司的发展小趣事

为了确保产品质量的稳定性和可靠性,Antelec公司高度重视质量管理体系的建设。公司引入了国际先进的质量管理标准,建立了完善的质量管理体系,并不断加强员工的质量意识和技能培训。这些举措使得公司的产品质量得到了持续提升,赢得了客户的广泛认可。

振华(CEC)公司的发展小趣事

为了进一步提升企业的竞争力和市场份额,振华积极实施国际化战略。公司加强与国外企业的合作与交流,积极参与国际市场竞争,通过引进外资、设立海外研发机构等方式,不断拓展海外市场。同时,振华还注重提升产品的国际竞争力,加强与国际标准的对接和认证工作,确保产品能够满足不同国家和地区的市场需求。

Connector City公司的发展小趣事

随着全球环保意识的不断提高,电子行业对绿色环保的要求也越来越高。Connector City公司积极响应国家环保政策,加强了对生产过程的环保管理。公司引进了先进的环保设备和技术,减少了生产过程中的废弃物排放和能源消耗。同时,公司还注重产品的环保性能设计,推出了多款符合环保标准的新型连接器产品。通过坚持绿色环保和可持续发展理念,公司赢得了社会的广泛赞誉和支持。

这五个故事仅是对Connector City公司可能发展路径的一种虚构描述,实际情况可能因市场变化、公司策略调整等多种因素而有所不同。在实际发展中,公司需要根据自身情况和市场环境做出灵活的调整和决策。

问答坊 | AI 解惑

求低成本电子体温计方案

不能用那种什么都集成好的直接输出驱动数码管的,因为我需要拿到数字信号有其它用途,DS18B20 满足技术上的要求,不过我想要精度更高一点的,能做到0.3以内最好 谢谢!…

查看全部问答>

求助:初学WINCE,串口编程遇到奇怪问题,请教各位

我的程序跑在ARM机上、WINCE4.0,对方程序跑在POWER PC的VxWorks下,ARM机为数据接收方,POWER PC为数据发送方。双方COM口设置相同。进行数据传输时,有时正确,有时错误。具体情况是,根据双方定好的通信协议,先交换简单的指令,每次二十几个字节 ...…

查看全部问答>

关于瑞萨的32位芯片D的一个问题

刚接触32位的单片机,实习公司里面用的瑞萨的单片机,看宣传资料上说瑞萨现在是世界上生产单片机最多的企业,已经超过摩托罗拉。不知瑞萨的单片机市场上应用得多不多,学了这个单片机有没有用?瑞萨的32位supperH是不是用ARM的内核呢?请达人指点! ...…

查看全部问答>

有关LINUX移植的理解问题

书上有这么一段话: 众所周知,处理器只能执行存放在主存中的软件,而操作系统作为一种比较大的软件,在通常情况下,它只能存放在磁盘里。因此,就必须想办法在系统上电之后把它自磁盘提取出来并装入主存。       现在有块S3C ...…

查看全部问答>

RLINK与STM8S烧录问题

我使用RLINK烧录STM8S207MB: 第一次烧录(STVP)时,程序运行正常; 然后修改一个程序参数(绝对不会影响烧录), 再次烧录: 在烧程序代码部分(PROGRAM MEMORY)时正常, 而在烧录选项字节时,出现" ERROR ON OPTION BYTES(COMPLEMENTARY BYTES, R ...…

查看全部问答>

鼎阳SDS1102DL拆机图

近日在网上看到用户对鼎阳SDS1102DL的拆机图,给大家分享下,以后如考虑鼎阳示波器这也是个参考资料。 1,包装箱 2,型号,序列号标贴 3,软件版本 4,打开包装箱 内部摆设 5,配件大全 6,裸机观察 背部 CE标贴,接口,电源参数 QC、QA ...…

查看全部问答>

陕西省电赛获奖名单

本帖最后由 paulhyde 于 2014-9-15 03:11 编辑    …

查看全部问答>

关于DC2DC接电阻负载下电源电压被拉低,电流微弱问题?

基于UC3842的DC_DC升压电路,输入12V,输出20~24V可调,当不接负载电阻时电压可调范围较大,一接入负载电阻(20Ω)电源电压被拉低至2.2V,并且不在可调,当移除负载又恢复原来的情况,这是怎么回事?…

查看全部问答>

DRV10983问题

用的是DRV10983开发板,用DRV10983EVM写入程系(写程系时给24供电)后马达能转动,插掉写程系的USC接口马达还能转动,断电24V再接24V转动就隔很久转一圈。是什么原因!! …

查看全部问答>