找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于TI达芬奇处理器的高速网络摄像机设计

[复制链接]
admin 发表于 2013-3-24 14:50:22 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
多媒体技术和网络与移动通信的飞速发展激发了人们进行视频信息交流的需求。随着视频监控系统逐步向数字化发展.开发新一代基于计算机网络以及多媒体压缩算法的视频监控系统成为行业的主流方向。然而随着视频应用的迅速增加,开发者往往需要花费很多时间来熟悉各种多媒体的标准,最终只能通过编写与改进代码来进行开发与改变。随着美国TI公司推出达芬奇(DaVinci)平台后,这一切都在发生改变。
  
  1 达芬奇技术的主要特点
  
  达芬奇平台是典型的基于共享存储的嵌入式多处理(ARM,DSP,VICP,视频前端和后端等)环境,支持的关键技术是片内实现了多通道的交换中心资源(Switch Central Resources,SCR)。基于片内SCR,达芬奇平台在片内多处理器之间形成了典型的C/S架构:计算能力强大的DSP可以作为服务器提供算法的实时计算服务;带有JAVA处理能力的ARM9实现网络,硬盘音视频I/O等用户界面。美国TI公司在达芬奇平台上专门为音视频编解码(Codec)多媒体应用精心设计了系统框架,提供了丰富的系统程序接口SPI,应用程序接口API以及视频,图像,话音和音频千余种流媒体算法组件。他们与操作系统,中间件构成了一个应用系统的大部分内容,应用系统开发团队只需要将他们封装成运行包,就能得到高可用性和高可靠性的产品。
  
  达芬奇平台的最大特点就是基于DSP与ARM的SOC芯片,和与之相关的相关软件,如图1所示。
  
  
  
  对达芬奇平台,硬件上给与双核架构强有力的支持,在DSP端用DPS/BIOS来支持音/视频算法的运行,在ARM端用MontaVistaLinux(MV)来支持其对外设的管理。对于ARM与DSP之间的数据交叉,则用Codec Engine和Codec Server来加以管理。达芬奇平台的先进性,对高端音/视频系统来说,无疑是开发平台的最好选择。
  
  2 TMS320DM365介绍
  
  TI公司的TMS320DM365是一款面向多媒体技术应用的高性能芯片。TM320DM365功能框图如图2所示。
  
   20121107050802534334298.jpg
  内核方面TMS320DM365集成ARM926EJ-S.H.264协处理器(HDVICP),MPEG4/JPEG协处理器(MJCP),能以1080p格式与10帧/s的速度提供H.264编解码功能,和以1080p格式与24帧/s的速度提供MPEG4编解码功能,以及以720p格式与30帧/s的速度提供H.264或MPEG4编解码功能。存储方面扩展存储器接口EMIFs包括1个16位256 M地址空间的DDR2和mDDR,以及1个16/8位的AEMIF,可扩展的类型有8/16位NAND Flash,16Mb NOR Flash,SRAM,16位OneNAND等。其他外围扩展控制器还包括16位HPI(Host-Port Interface),2个MMC(Multimedia Card)/SD(Secure Digital)/SDIO接口,1个16位的WDT(Watch DogTimer),5个SPI(Serial Port Interface)接口其中每个具有两个片选,1个主/从I2C(Inter-Integrated Circuit)总线控制器,1个支持2.0USB OTG接口控制器等。
  
  TMS320DM365集成的ARM926EJ-S处理器包括32 kBRAM、16 kB ROM(用于非AEMIF启动模式下的ARMbootloader)、16 kB指令缓存、8 kB数据缓存、CP15及MMU等。其中CP15用来对指令、数据缓存、MMU以及其他ARM子系统进行配置及控制。MMU使用统一的TLB来对页表中存储的信息进行缓存,并为类似Linux、WindowsCE、ultron以及ThreadX等操作系统提供虚拟内存。该处理器的写缓冲数据容量高达17 kB,使其可以大幅提高内核的性能。
  
  TMS320DM365中的视频处理子系统(VPSS)由两个接口,分别用于视频捕获的视频前段(VPFE)输入接口和用于图像显示的视频后端(VPBE)输出接口。图3为视频处理子系统系统框图。
  
   20121107050802596834299.jpg
  
  VPFE模块主要用于捕获视频信号,也可以直接从前端输入已有的视频信号。VPFE输入接口有1个CCD控制器(CCDC)、1个预处理器、柱状模块、自动曝光/白平衡/聚焦模块(H3A)和寄存器组成。CCDC可以与视频解码器、CMOS传感器或电荷耦合装置连接;预处理器是一个实时的图像处理器,它把来自CMOS或CCD的原始图像从RGB转变为YUV422的编码;柱状模块和H3A模块实现基于原始图像信息的硬件操作。
  
  VPBE输出接口由1个OSD引擎和1个视频编码器组成。OSD引擎能够显示两组独立的视频窗口或两组独立的OSD窗口,还可以以2个视频窗口、1个OSD窗口和一个属性窗口的形式显示。OSD用于在视频图像上叠加音量,图标等位图或图像信息。视频编码模块提供数字输出和模拟输出。数字输出支持24bitRGB888格式、8/16bit BT.656以及具有独立的水平和垂直同步功能的CCIT.601输出;模拟输出支持4路10bit DAC,均工作于54 MHz,支持复合NTSC/PAL、S端子和分量视频。



3 系统硬件设计

系统硬件结构如图4所示,本系统选择以TMS320DM365为嵌入式处理器,外围电路包括有音频、视频信号采集电路,以太网络电路,电源接口,JTFAG,UART,NAND Flash,SD卡,DDR2,USB2.0 OTG以及I2C。

20121107050802643704300.jpg

网络摄像机系统的信息处理流程主要分为图像的获取、图像的处理传输以及图像的显示3部分。本系统中,前端摄像头负责图像的捕捉,将获取的未经压缩处理的图像信号传输至电路板中通过TMS320DM365芯片进行压缩处理以及SD卡的相应存储,再由以太网接口或其他接口将处理过图像进行传输,在远端监视器上将图像进行显示。

本系统的视频采集模块采用TVP5146。传统NTSC/PAL摄像头的输出信号格式为模拟信号,由于TMS320DM365的视频输入信号是通过VPFE的CCDC以ITU-R BT.601/BT.656格式进行输入的,所以首先需要通过视频前段滤波放大器OPA361对采集到的模拟信号进行放大,经过视频解码芯片TVPS146将模拟信号进行图像的抗混叠滤波预处理、模拟数字化转换及亮度/色度、水平/垂直同步信号的分离,实现模拟视频信号转换为数字并行信号BT.656码流格式,随后通过2个12位2选1的FET多路复用器对4路视频信号选择1路作为输入从而完成VPFE的视频输入工作。  TVP5146是一种高性能单片数字视频解码器,它可将所有常见的基带模拟视频信号,例如NTSC,PAL,SECAM混合信号数字化并解码为数字视频信号。该解码器还包括了具有模拟预处理功能的4路10位30MSPS的模数转换器。高达10组的视频输入终端可以用来配置作为RGB,YPbPr,CVBS分量信号或者S端子视频输入。

网络控制模块主要包括EMAC模块和MDIO模块,原理图如图5所示。

20121107050802690584301.jpg

本系统采用TI公司出品的TSB43EA42作为以太网收发器。TSB43EA42支持10 MB/100 MB基带传输,提供与MAC层相接的MII接口。它与DM3 65通信的主要引脚有:发送、接收数据线、时钟、使能信号、错误指示、管理数据接口、控制/指示引脚等。EMAC控制模块内部集成了8 kB的RAM,主要功能使存放缓冲描述符和以太网数据包。MDIO模块则主要通过两线接口完成对物理层芯片的配置,工作状态检测等工作。

串口模块采用TI公司的MAX322ICPW,主要用来负责开发板与计算机之间的通信。通过超级终端,完成Linux内核的下载以及相关参数的设置,完成系统的开发以及调试。存储模块包括了2个扩展存储接口EMIF和2个MMC/SD卡接口。前者包括DDR控制器和异步扩展存储接口AEMIF分别用于扩展连接对DDR存储器和Flash存储器;后者实现了2个SD卡存储器的扩展连接。

电源模块采用了TI公司的TPS65023作为电源管理芯片。该芯片包括3个DC/DC转换器以及2个200mA线性稳压器LDO。每路LDO由TMS320DM3 65通过I2C与之通信,实现各路输出电源电压的控制,为内核存储器和I/O接口提供1.3,1.8,3.3 V的工作电压;也可通过5 V稳压器直流供电,通过DC/DC转换器提供1.3,1.8,3.3 V供电。

4 系统软件设计

系统的视频采集模块负责从摄像头中读取视频流数据,读出的图像数据交由压缩模块处理。摄像头驱动程序加载完成后为了进行视频采集必须加入Video4Linux模块,从而可以通过Video4Linux模块提供的编程接口从摄像头设备中获取图像帧。基于V4L的视频采集流程图如图6所示。

20121107050802737454302.jpg

本系统采用RTP实时传输协议以及RTCP实时传输控制协议作为视频传输的协议。RTP在多点传送或单点传送的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据,如:音频、视频或者仿真数据。RTP由于没有为实时服务提供资源预留功能,所以不能保证QoS(服务质量)。RTCP作为一种控制协议,通过扩展可以升级为大型的多点传送网络,并提供最小限度的控制和鉴别功能。在RTP会话期间,各参与者周期性的传送RTCP包,RTCP包中含有已发送的数据包的数据、丢失的数据包的数量等统计资料,因此服务器可以利用这些信息动态的改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,他们能以有效地反馈和量小的开销使传输效率最佳化,RTCP利用主要的两种控制包SR和RR反馈的信息如数据包丢失比,数据包丢失率,吞吐量和吞吐率,数据包到达时延抖动和往返传播时延等来调节实时传输,并调整系统的打包格式,发包速率来保证流畅地传输数据和清晰的播放视频,因此特别适合传送网上的实时数据。

JRTPLIB作为一个RTP协议的库,用来开发多媒体的应用十分方便。通过JRTPLIB库发送或接收RTP数据,而不用考虑SSRC的冲突、调度,连RTCP的数据也不需要用户来发送。用户只需要使用相应的类来发送和接收媒体数据。下面介绍RTP相关代码的具体实现。

在使用JRTPLIB传输多媒体数据之前,首先应该创建一个RTPSession类的一个对象来标识此次会话。然后通过RTPSession实例的create()方法来对其进行初始化操作。在create()时,需要两个参数sessparams和transparams,分别为RTPSessionParams和RTPUDPv4Trans mission Params的实例。在create()成功以后,需要设置目标地址、净荷类型、时间戳增量等信息。在RTP会话建立起来以后,我们就可以进行媒体数据的传输。传输净荷数据的方法很简单,只需要调用RTPSession实例的SendPacker()方法就可以了。同时为了适应在网上的传输,还需对净荷数据进行分割。为了方便的使用,我们需进一步的封装。对于RTP分组的接收部分,由于给出的是拆分了的数据帧,我们需要组合成完整的数据帧。这里需要注意的是由于本摄像机采用的H.264解码算法,所以分流式接收方式以及RTP分组接收方式两种模式,对于流式传输,有的组合成完整的数据帧的步骤放在了H.264的NAL层。但对有些音频和JPEG等应用,还是需要进行组装过程的。

5 结束语

提出一种基于TMS320DM365的高速网络摄像机系统设计。网络摄像机接入局域网后,在局域网内部的PC机上通过IE输入网络摄像机的IP地址,通过第三方软件便可以观看到摄像机捕捉到的图像以及网络摄像机的相关数据流量信息。当获得图像质量要求较高时,相应的图像数据量也会增高,反之减小。在640X480的分辨率下,测得数据流量约为960 kb/s,可以满足对监控视频流畅性的要求。

本文首先介绍了视频监控系统的发展趋势以及嵌入式处理器TMS320DM365的特点,之后通过对该系统的硬件设计以及软件设计的详细分析,实现了基于达芬奇技术TMS320DM365的高速网络摄像机系统。该系统采用了最新的技术,降低了产品的成本,具有很强的实用性,是一种比较理想的网络摄像机解决方案,可广泛应用于视频监控系统。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-26 02:30 , Processed in 0.057046 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表