• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > 技术文章 > 开放式多媒体应用平台OMAP5910双核通讯

开放式多媒体应用平台OMAP5910双核通讯

录入:edatop.com    点击:

  现在的手持多媒体终端要求更强的多媒体处理能力,同时维持较低的功耗。OMAP系列是TI 公司针对第三代手机而开发的高性能多媒体处理器,集成有一个ARM 的内核和一个DSP的内核(TMS320C55x)。 ARM 处理器可用来实现各种通讯协议和控制功能,DSP 具有多条数据地址总线,非常适合数据密集的多媒体处理,如视频编解码等,并且具有极低的功耗(0.05MW/MIPS)。OMAP中的摄像接口连接在ARM的公用周边总线上,ARM通常采用DMA将图像数据转移到系统的SDRAM中。由于在图像压缩时,INTRA帧编码的时间明显小于INTER帧编码的时间,不同的INTER帧编码时间不一样,图像采集的速度是固定的,因此图像数据写入和读出的速度不一样,必需采取一定的措施加以匹配。由于视频编码需要大量的计算,为了充分利用C55x的运算能力,ARM 采集图像的帧率应随着DSP 的处理作适当的调整。图像在采集时写入存储器,在压缩时从存储器中读出,图像存储器的工作方式非常类似于FIFO。通常FIFO主要用于数据写入和读出速度的不匹配,采用双端口内存及内置的读写寻址,FIFO就能按写入的顺序读出数据。FIFO空/满标志产生是FIFO逻辑的核心部分:写满不溢出,读空不多读。在本系统中,图像采集后存放在OMAP处理器的片外SDRAM中,并非双端口RAM中,图像数据的写入和读出都采用DMA,转移地址由DMA(direct memory access)产生,这样可节省CPU的资源,同时存储器的管理,也以帧为单位。本文讨论了ARM处理器采集图像与DSP处理图像的同步机制。

  本文以OMAP1510为例,主要讨论ARM处理器采集图像与DSP 压缩图像的同步问题。

  1 OMAP 与 OV7640接口电路

  图1: OMAP 摄像机模块 与OV7640接口电路

  OV7640 是OmNIVision 公司的单片单片CMOS传感器,数据输出格式可以是YUV/YCbCr 4:2:2,RGB 4;2:2 或RGB 原始数据。OV7640具有图像压缩常用的YUV格式输出,这可减少CPU将RGB 转换成YUV的时间。图1是 OMAP 摄像机模块 与OV7640接口电路SCCB 接口是omnivision 公司的三线串行摄像机控制总线,也可工作在两线模式。SCCB总线通常有三个信号: SCCB_E、SIO_C、SIO_D,其中SCCB_E为芯片片选,SIO_C 是由主器件驱动的串行接口时钟,SIO_D 是双向数据线。两线模式(仅使用SIO_C、SIO_D)又可根据主器件是否能驱动数据线到三态模式分成两种情况:即在总线空闲时,数据线为1 还是高阻态。I2C 主器件数据线不支持三态,若I2C器件地址采用7比特,可以很方便实现对两线SCCB从器件的控制。采用OMAP芯片上的I2C接口连接SCCB总线控制OV7640功能。 OMAP可以输出时钟CAM.EXCLK 给OV7640,OV7640 定时发生器从该时钟分频,产生象素时钟及行场同步。OMAP利用PCLK锁存像素数据。采用硬件控制OV7640进入Power Down 模式,功耗更低,采用软件复位OV7640。

  对于OMAP1510,从外部管脚CAM_D[0:7]输入的8比特图像数据经过锁存组合成1个字(32比特),写入FIFO缓冲器,FIFO 容量是128 字。当写FIFO计数器达到触发门限(触发门限可通过寄存器设置)时,产生中断。CAM_EXCLK可用作外部CCD摄像头的时钟源,由内部12MHz 参考时钟 或者从DPLL 来的48MHz时钟分频得到。

  2 图像采集及压缩同步

  ARM采集图像与DSP图像编码同步通常有两种方法:一种是以帧为单位,ARM 将采集到的图像数据写入某个帧存的同时,DSP处理另外一个帧,ARM 和DSP不同时访问同一个帧图像数据;另一种方法是ARM和DSP可同时访问同一帧图像数据,这需要ARM每次写图像数据到存储器时,都要检查该位置是否为空或者该位置数据已被DSP读出,DSP读取该位置数据时,也要确认该位置是否已有有效的数据,这需要消耗较多的CPU时间查询存储器状态,而且也不利于ARM以帧为单位在DSP不能及时处理的情况下丢弃图像。所以采用第一种方法,ARM仅在写一帧图像的第一个数据前,检查该帧存为空或者DSP已经读取了这一帧存的所有数据,DSP压缩一帧图像仅需查询一次存储器的状态。受DSP处理能力的限制,可设置采集图像的帧率与DSP较为接近,以避免太多采集的图象帧因DSP未能及时处理而丢弃,同时增大了写入存储器的功耗。若仅采用两个帧存,以乒乓的机制轮流存放采集图像,这要求DSP处理是硬实时的,压缩一帧图像的时间必需严格不大于一帧图像的采集时间。事实上DSP压缩每帧图像所用的时间并不一样,尤其是INTRA帧时间较短,复杂运动的帧比相对运动较小的帧编码时间长,若采用多个帧存(3个以上),对单帧图像的压缩时间限制将会变宽。采用较少的帧存可以降低成本,较多的帧存能充分利用DSP的处理能力。

  以下讨论了丢帧的可能性:在ARM采集了一帧数据后,DSP开始压缩该帧数据,假设DSP 处理较慢,在帧间隔T仅能处理 x 帧数据,帧存数量为n,这样在m 帧由于缺少存储器空间就得丢弃一帧,(m -mx)>(n-2)。理由是:n个帧存中,ARM往某一个帧存中写数据,DSP读取另外一个帧存的数据进行压缩,在一定间隔后ARM采集图像比DSP处理的图像多(n-2)帧后,这时这n-2 帧非空,ARM就没有空间存储新的数据,就开始丢帧。当n=3,x=0.8时,在m=6 帧后开始丢帧,所以选择3帧存储采集图像是一个合适的选择。 通常3帧就可以满足要求,以下以3帧为例,讨论ARM与DSP的数据写入与读出同步。

  ARM初始化帧存A,B,C 可写(标志为0,无有效数据),初始化ARM的摄像模块接口,设置OV7640寄存器。然后等待场同步结束,ARM复位摄像模块的FIFO,使能一个DMA通道,用于将一帧图像数据从FIFO写入到系统的帧存中,并允许场同步上升沿中断,最后启动DSP,执行图像压缩程序。

  场同步上升沿引起ARM中断,帧同步上升沿表示上一帧图像已经结束,新一帧图像即将开始。在中断程序中,CPU 首先检查DMA 是否将前一帧图像数据已经全部转移到帧存,否则,循环检查直到DMA块转移结束。转移结束后设置当前帧存可读(设置标志为1,表示这个帧存已经存储有效图像数据,C55x可以对该帧进行压缩了);然后检查下一个帧存是否可写(标志为0),若可写,复位FIFO,并启动DMA 进行新一帧的转移,然后结束中断服务程序。若下一个帧存还不可写,表示C55X对该帧图像的压缩尚未结束,因而不覆盖这个帧存,不启动DMA,跳过一帧图像的采集。

  DSP 循环处理A帧,B帧,C帧图像,只有在该帧图像采集完毕后(标志已变为1后),才开始处理该帧图像,并且在处理结束后,设置该帧标为0,表示该帧存可用来存放ARM新采集的图像了。

  图2 是帧存的状态转换图,ARM在一帧数据的写入结束时(而不是写入一帧图像的第一个数据时),改变帧存的状态,表示DSP可以读入该帧存的数据进行压缩;同样DSP也在把该帧存的数据完全读入后在改变帧存标志,表示该帧存已没有有效数据,ARM 可以用来存储新采集的图像了。

  图2:存储器状态转换图

  结论:

  若DSP处理图像速度较快,上述双处理器同步机制仍然使用,只不过在图6中,DSP可能花更多的时间检查帧存是否可读了。本文给出的同步机制十分简单,可广泛用于双处理器的数据采集和处理的同步。

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:基于数字电位器的可编程稳压器设计
下一篇:基带信号QPSK调制与脉冲成型滤波器ASIC实现

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图