位置:51电子网 » 技术资料 » 接口电路

基于TMS320DM642视频采集驱动开发

发布时间:2008/8/20 0:00:00 访问次数:533

  tms320dm642是ti公司推出的一款针对多媒体处理领域应用的芯片。文中简要介绍了tms320dm642芯片的性能特点和在其上编写视频采集驱动的原理。

  结合tms320dm642芯片类/微型驱动模型,提供了按帧采集itu-r bt.656数据驱动的实现方法,并详细讨论视频采集驱动的硬件配置及软件设计中的帧缓存管理、同步及数据搬运等关键技术。

  tms320dm642 是一款针对视频和图像解决方案的高性能数字多媒体处理器,具有极强的处理性能" 高度的灵活性和可编程性。因此主要用于视频信号处理和通信。结合合适的编码器控制算法,具有较高运算速度的tms320dm642dsp 芯片可以作新一带视频压缩标准h.264编、解码器的硬件平台,实现满足应用需求的h.264 编码器。

  驱动程序位于计算机软件的最低层(hal 为硬件抽象层) , 直接与硬件设备的特性联系在一起。编写驱动程序不仅要了解设备的特性, 而且还要了解操作系统的结构难度较大。本文结合tms320dm642芯片特点详细介绍了视频采集驱动开发。并详细讨论了驱动中帧缓存管理、同步及数据搬运等关键技术的实现。

  1 tms320dm642dsp芯片性能特点

  dm642[3]是ti公司推出的一款针对多媒体处理领域应用的dsp,它是在c64x的基础上,增加了很多外围设备和接口。主要的片上外设有:三个可配置的视频接口,可以和视频输入,输出或传输流输入无缝连接,vcxo 内插控制端口(vic), i2c总线模块等。这些接口和外设使得dm642比c6416更适合处理视频码流。

  ti针对c64x系列的dsp提出了一种类/微型驱动模型[4],这种模型在功能上将设备驱动程序分为依赖硬件层(微型驱动)和不依赖硬件层(类驱动两层),两层之间使用标准的接口进行通信。类驱动为设备驱动的顶层,向应用程序提供统一的api接口,是应用程序与微驱动之间的接口。微驱动为设备驱动的底层,它直接处理所有外部设备的控制和初始化工作。类、微驱动程序的模型如图1所示。

  2视频采集驱动硬件配置

  本文采用类/微驱动模型编写dm642芯片视频端口的视频采集驱动程序,充分利用片上的vp视频端口[5]和edma。经过a/d转换后的视频数据首先缓存到视频端口的fifo中,fifo写满之后通知edma将这些数据按照一定的规则搬运到sdram中。应用程序通过类驱动向微型驱动提交i/o请求,类驱动根据微型驱动的返回参数实现同步i/o请求。本文详细讨论按帧采集8 bit itu-r bt.656视频数据驱动的实现方法。

  2.1视频端口配置

  tms320dm642有三个可配置的视频端口:vp0、vp1和vp2,与视频采集芯片连接,无需外加逻辑控制电路和fifo缓存,只需编程者编写相关驱动程序,就可实现图像采集或显示。每个视频端口各有20根数据输入输出管脚;每个端口又可以分为a和b两个通道,分别处理一路视频的采集或显示;各端口又可以配置为8/10-bit itu-r bt.656模式、8/10-bit raw 模式、8/10-bit y/c模式、16/20-bit raw模式和tsi模式等。

  8bit量化,所以仅使用每个通道的后8个管脚,即将vpxd2~9,vpxd12~19(x对应三个端口0,1,2)直接与a/d芯片的8根输出管脚相连。输入的pal/ntsc模拟信号经过视频解码芯片a/d后形成的数字视频信号直接进入相应的视频端口中。

  当采集8 bit itu-r bt.656数据时,视频端口接收a/d的亮度与色度的复合数据流(yuv422,称为packet格式:cb,y,cr,y,cb,y,cr ),然后将它分解成三个单独的数据流(planar格式),分别是y,u,v,再将分离后的数据打包存放到各自的fifo中。

  将fifo分成3部分,其中为亮度数据分量分配的fifo为1280b,为每个色度数据分量分配fifo为640b;每个fifo都有相关的存储器映射地址:ysrc,cbsrc和crsrc;edma将使用这些地址作为数据搬运操作的源地址。每个视频端口最多可以使用六个edma通道,当某个fifo的计数器到达vcthrldn寄存器设置的数值时,就可以触发相应的edma(增强的直接存储器存取控制器)事件。


图1 驱动程序模型

图2 edma配置

  2.2 edma配置

  edma配置是为了从fifo搬运数据到sdram中,采用1d/2d传输,即源地址不变,而目的地址则在每次传输后按索引值自动更新。我们为每一场设置一个edma参数,并将这些参数连接起来,一次传输任务的结束会自动从参数ram中装载下一次传输需要的参数,从而实现某些复杂数据流的传输。

  设置时首先打开与vp口相关的三个edma通道并申请12组参数ram(hrld[0]~ hrld[11]),同时为每个通道申请一个中断号,留给edma中断服务程序使用;然后依次配置12个edma参数,并用hrld[0]、hrld[4]、hrld[8]三个参数初始化三个edma通道,准备

  tms320dm642是ti公司推出的一款针对多媒体处理领域应用的芯片。文中简要介绍了tms320dm642芯片的性能特点和在其上编写视频采集驱动的原理。

  结合tms320dm642芯片类/微型驱动模型,提供了按帧采集itu-r bt.656数据驱动的实现方法,并详细讨论视频采集驱动的硬件配置及软件设计中的帧缓存管理、同步及数据搬运等关键技术。

  tms320dm642 是一款针对视频和图像解决方案的高性能数字多媒体处理器,具有极强的处理性能" 高度的灵活性和可编程性。因此主要用于视频信号处理和通信。结合合适的编码器控制算法,具有较高运算速度的tms320dm642dsp 芯片可以作新一带视频压缩标准h.264编、解码器的硬件平台,实现满足应用需求的h.264 编码器。

  驱动程序位于计算机软件的最低层(hal 为硬件抽象层) , 直接与硬件设备的特性联系在一起。编写驱动程序不仅要了解设备的特性, 而且还要了解操作系统的结构难度较大。本文结合tms320dm642芯片特点详细介绍了视频采集驱动开发。并详细讨论了驱动中帧缓存管理、同步及数据搬运等关键技术的实现。

  1 tms320dm642dsp芯片性能特点

  dm642[3]是ti公司推出的一款针对多媒体处理领域应用的dsp,它是在c64x的基础上,增加了很多外围设备和接口。主要的片上外设有:三个可配置的视频接口,可以和视频输入,输出或传输流输入无缝连接,vcxo 内插控制端口(vic), i2c总线模块等。这些接口和外设使得dm642比c6416更适合处理视频码流。

  ti针对c64x系列的dsp提出了一种类/微型驱动模型[4],这种模型在功能上将设备驱动程序分为依赖硬件层(微型驱动)和不依赖硬件层(类驱动两层),两层之间使用标准的接口进行通信。类驱动为设备驱动的顶层,向应用程序提供统一的api接口,是应用程序与微驱动之间的接口。微驱动为设备驱动的底层,它直接处理所有外部设备的控制和初始化工作。类、微驱动程序的模型如图1所示。

  2视频采集驱动硬件配置

  本文采用类/微驱动模型编写dm642芯片视频端口的视频采集驱动程序,充分利用片上的vp视频端口[5]和edma。经过a/d转换后的视频数据首先缓存到视频端口的fifo中,fifo写满之后通知edma将这些数据按照一定的规则搬运到sdram中。应用程序通过类驱动向微型驱动提交i/o请求,类驱动根据微型驱动的返回参数实现同步i/o请求。本文详细讨论按帧采集8 bit itu-r bt.656视频数据驱动的实现方法。

  2.1视频端口配置

  tms320dm642有三个可配置的视频端口:vp0、vp1和vp2,与视频采集芯片连接,无需外加逻辑控制电路和fifo缓存,只需编程者编写相关驱动程序,就可实现图像采集或显示。每个视频端口各有20根数据输入输出管脚;每个端口又可以分为a和b两个通道,分别处理一路视频的采集或显示;各端口又可以配置为8/10-bit itu-r bt.656模式、8/10-bit raw 模式、8/10-bit y/c模式、16/20-bit raw模式和tsi模式等。

  8bit量化,所以仅使用每个通道的后8个管脚,即将vd2~9,vd12~19(x对应三个端口0,1,2)直接与a/d芯片的8根输出管脚相连。输入的pal/ntsc模拟信号经过视频解码芯片a/d后形成的数字视频信号直接进入相应的视频端口中。

  当采集8 bit itu-r bt.656数据时,视频端口接收a/d的亮度与色度的复合数据流(yuv422,称为packet格式:cb,y,cr,y,cb,y,cr ),然后将它分解成三个单独的数据流(planar格式),分别是y,u,v,再将分离后的数据打包存放到各自的fifo中。

  将fifo分成3部分,其中为亮度数据分量分配的fifo为1280b,为每个色度数据分量分配fifo为640b;每个fifo都有相关的存储器映射地址:ysrc,cbsrc和crsrc;edma将使用这些地址作为数据搬运操作的源地址。每个视频端口最多可以使用六个edma通道,当某个fifo的计数器到达vcthrldn寄存器设置的数值时,就可以触发相应的edma(增强的直接存储器存取控制器)事件。


图1 驱动程序模型

图2 edma配置

  2.2 edma配置

  edma配置是为了从fifo搬运数据到sdram中,采用1d/2d传输,即源地址不变,而目的地址则在每次传输后按索引值自动更新。我们为每一场设置一个edma参数,并将这些参数连接起来,一次传输任务的结束会自动从参数ram中装载下一次传输需要的参数,从而实现某些复杂数据流的传输。

  设置时首先打开与vp口相关的三个edma通道并申请12组参数ram(hrld[0]~ hrld[11]),同时为每个通道申请一个中断号,留给edma中断服务程序使用;然后依次配置12个edma参数,并用hrld[0]、hrld[4]、hrld[8]三个参数初始化三个edma通道,准备

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!