关于DM642的EDMA数据传输的方式问题求助

基于DM642的EDMA图像处理系统
10:01:19来源: 互联网 关键字:&&&&
  1 前言
   (TMS320DM642)型处理器是TI最新推出的面向多媒体处理领域的数字信号处理器(DSP).给多媒体设备的实现提供了另一种有效的手段。 DM642建立在C64x DSP核基础上.采用德州仪器公司开发的第二代高性能的先进的超长指令字结构VeloeiTl.2TM,在600MHz的时钟频率下.DM642每秒可以进行24亿次16位的乘累加或48亿次的8位的乘累加。这样强大的运算能力使得DM642可以进行实时多视频。它的增强型直接内存存取 ()对DSP图像处理系统是非常重要的,它可以在没有CPU参与的情况下完成映射存储空间中数据搬移。灵活使用EDMA可以大大提高数据传输效率。以:DM642为例,结合Sobel算法给出EDMA的一种具体控制和实现方法。
  2 DM642的EDMA控制器
  DM042的EMDA能提供超过2Gb/s的外部带宽.支持64路独立触发的事件传输,总共有85个参数对“Linking”或“Chaining”进行配置。Linking是在1个事件被触发时允许1个序列进行传输。Chaining是当1个通道的数据传输完毕时触发另1个通道的数据传输。 Linking和Chaining使得仅仅被CPU初始配置之后EDMA能够连续的自动运行。EDMA的特点决定了其适合图像处理的功能。由于图像处理的原始数据量很大.同时图像处理中也会产生同等量的中间数据.对于片内存储资源有限的高速DSP来说,一般需要借用外部存储空间。为了提高系统的实时处理能力.可以将数据在不同存储空间转移的任务交给EDMA来完成,而CPU只用于数据的计算。同时,EDMA对数据重排功能可以优化图像数据在内存中的存储,这不仅可以提高内部存储空间的利用效率.而且可以提高数据的传输速率。虽然对图像数据的传输也可由软件实现,但将消耗大量的CPU时钟周期。使DSP的高速性能难以发挥。而由EDMA来完成同样的工作几乎不占用CPU的时钟周期。
  在C64xDSP中.EDMA控制器负责片内L2存储器与其他设备之间的数据传输。EDMA控制器和DMA在结构上有很大的不同.其增强之处包括:
  提供了64个通道;
  通道间的优先级可以设置;
  支持不同结构数据传输的链接。
  EDMA控制器由以下几部分组成;
  事件和中断处理寄存器;
  事件编码器;
  参数RAM;
  硬件地址产生。
  其中,事件寄存器控制对EDMA事件进行捕获。1个事件相当于1个同步信号,由它触发1个EDMA通道开始数据传输。如果有多个事件同时发生.则由事件编码器对它进行分辨。EDMA的参数RAM中存放了有关的传输参数,这些参数会被送入地址发生器硬件.进而产生读写操作所需要的地址。
  EDMA支持8bit、16bit和32bit数据的存储。在EDMA中定义了下列概念:
  (1) 数据单元(element)的传输。单个数据单元从源地址向目的地址传输.如果需要,每1个数据单元都可以由同步事件触发传输;
  (2) 帧(frame)。l组数据单元组成1帧,l帧中的数据单元可以是相邻连续存放的,也可以是间隔存放的.帧传输可以选择是否受同步事件控制,“帧” 一般在1维传输中提及;
  (3) 阵列(array)。1组连续的数据单元组成1个阵列.在1个阵列中的数据单元不允许间隔存放。1个阵列的传输可以选择是否受同步事件控制。“阵列 ”一般在2维传输中提及;
  (4) 块(block)。多个帧或者多个阵列的数据组成1个数据块;
  (5) 1维(1一D)传输。多个数据帧组成1个1维的数据传输。Block中帧的个数可以是 l~65536。
  (6) 2维(2一D)传输。多个数据阵列组成1个2维的数据传输。第1维是阵列中的数据单元,第2维是阵列的个数。
  3 EDMA的控制机制
  3.1 事件与事件控制寄存器
  EDMA有64个通道.每1个通道都有1个事件与之关联.由这些事件触发相应通道的传输。
  3.2 传输参数与参数 RAM
  EDMA控制器与DMA控制器在结构上有所区别。C64x的.EDMA控制器是基于RAM结构。参数.RAM(Parameter RAM。PaRAM)的容量是2KB,总共可以存放85组EDMA传输控制参数。多组参数还可以彼此连接起来,从而实现某些负责数据流的传输.例如循环缓存和数据排序等。参数RAM中保存的内容包括:
  64个EDMA通道对应的入口传输参数.每组参数包括6个字;
  用于重加载,链接的传输参数组。每组参数包括24字节;
  8字节空余的RAM可以作为“草稿区”(scratch pad area)。
  一旦捕获到某个事件.控制器将从PaRAM顶部的64组入口参数中读取数据对应的控制参数送往地址发生器硬件。
  表l给出1组EDMA传输参数的内部结构,总共6个字.192bit。可以通过32bit的外设总线对EDMA的参数.RAM进行访问。
  可选参数(Option Parameter),32bit,用户可以根据情况选择设置该参数。
  SRC/DST地址.32bit,用于存放EDMA访问起始的源地址和目的地址,可以通过可选参数中的SUM/DUM位设定对SRC/DST地址的修改方式。
  数据单元计数(Element Count),16bit无符号数.存放l帧(1一D传输)或1个阵列(2一D传输)中的数据单元数。
  帧/阵列计数(Frame/Array Count),16bit无符号数.存放的是1-D数据传输中的帧计数,或是2一D数据传输中的阵列计数。
  数据单元,帧,阵列索引(Element/Frame/ArrayIndex).16bit无符号数,作为地址修改的索引值。数据单元索引只应用于1-D 传输,为下一数据单元的地址偏移值(2一D传输不允许数据单元间隔存放)。帧,阵列索引用于控制下一帧,阵列的地址索引。
  数据计数的重加载(Element Count Reload),16bit无符号数。用于在每帧最后一个数据元素传输之后.重新加载传输计数值。这个参数只能用于1一D传输中。
  链接地址(Link Address),16bit。当设定可选参数中的LINK=1时,可以由链接地址确定下1个EDMA事件采用参数的装载,重装载地址,从而使多组 EDMA传输参数形成EDMA传输链。
  4 EDMA的传输操作
  EDMA进行数据传输时有2种启动方式,1种是CPU启动.另1种是由同步事件触发。每1个通道的启动是相互独立的。
  4.1 CPU启动EDMA/非同步的 EDMA
  CPU可以通过写事件置位寄存器(ESR)启动1个EDMA通道。向ESR中某1位写1时,将强行触发对应的事件。此时,与正常的事件响应过程类似, EDMA的PaRAM中的传输参数被送入地址发生器.完成对EMIF、L2存储器或外设的存取访问。由CPU启动的EDMA属于非同步的数据传输。EER 中的事件使能与否不会影响这种EDMA传输的启动。
  4.2 由事件触发 EDMA
  一旦事件编码器捕获到1个触发事件并锁存在ER寄存器中,将导致PaRAM中对应的参数被送入地址发生器.进而执行有关的传输操作。尽管是由事件启动传输操作,但是事件本身必须首先被CPU使能。EER寄存器负责控制事件的使能。触发EDMA传输的同步事件可以源于外设,外部器件的中断或某个EDMA通道结束。与DMA的情况不同,与EDMA的每1个通道相关联的触发事件是固定的。因此,如果假设EER中的EVT4=1,那么EXT_INT4引脚的外部中断信号就会启动EDMA通道4的传输。所以,每个事件也就指定了1个特定的EDMA通道。
  5 在实时图像处理系统中的应用
  在实时图形处理系统中,经常是把数据块转移,例如从视频通道采集数据传送到SDRAM中作为后续处理的缓存,或是把数据传送到片内RAM中。EDMA使数据的传送简单易行。下面以把数据从视频通道传送到片内RAM中并作Sobel边缘提取算法和把数据从视频通道传送到SDRAM中并作So—bel边缘提取算法为例。
  (1)把数据从视频通道通过1维方式传送到片内RAM中并作Sobel边缘提取算法
  只对摄像头采集的I块数据进行Sobel边缘提取。采用一维EDMA传送方式,每1次传送采集1行中的部分数据(DAT_copy()函数)。在PAL制式下.先把1行数据放到nMemTemp数组中,然后对从144行到432行、从180列到435列的图像进行Sobel边缘提取.最后把变换后的数据输出到显示缓冲区.如图1所示。
关键字:&&&&
编辑:金海
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关注eeworld公众号快捷获取更多信息
关注eeworld服务号享受更多官方福利
相关关键词
热门关键词
大学堂最新课程
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
热门资源推荐
频道白皮书>> CCS下编写的EDMA数据传输程序,基于DM642芯片
CCS下编写的EDMA数据传输程序,基于DM642芯片
所属分类:
下载地址:
edma.rar文件大小:25.94 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
CCS下编写的EDMA数据传输程序,基于DM642芯片-CCS prepared with EDMA data transfer procedures, based on the DM642 chip
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
cc_build_Debug.log1.14 kB06-05-08 22:56
8.20 kB16-04-08 22:18
2.78 kB14-01-08 16:23
2.73 kB14-01-08 15:25
101.00 B25-12-06 16:50
edma.map8.87 kB06-05-08 22:56
dd_edma.obj13.36 kB06-05-08 22:56
dd_edma_a.obj1.58 kB06-05-08 22:56
interrupt_manage.obj3.43 kB06-05-08 22:56
test_edma.obj1.96 kB06-05-08 22:56
vars.obj379.00 B06-05-08 22:56
vectors.obj2.69 kB06-05-08 22:56
edma.out23.82 kB06-05-08 22:56
Debug.lkf511.00 B06-05-08 22:56
Debug.lkv511.00 B06-05-08 22:56
edma.paf3.37 kB27-09-08 16:05
edma.pjt1,003.00 B11-04-08 00:04
1.12 kB12-01-07 14:09
803.00 B12-01-07 16:00
MPEG4Decoder.cmd643.00 B17-05-08 18:39
1.51 kB06-05-08 22:56
388.00 B12-10-06 18:00
47.00 B10-04-08 23:39
91.00 B10-04-08 23:39
2.15 kB10-04-08 23:18
&Debug&0.00 B10-04-08 23:50
&edma&0.00 B11-04-08 00:00
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
评价成功,多谢!
下载edma.rar
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:632.991ms - init:0.1;find:0.9;t:32.6;tags:0.4;related:382.5;comment:0.3; 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧您的位置: >
  1 前言
  DM642 (TMS320DM642)型处理器是TI最新推出的面向多媒体处理领域的数字信号处理器(DSP).给多媒体设备的实现提供了另一种有效的手段。 DM642建立在C64x DSP核基础上.采用德州仪器公司开发的第二代高性能的先进的超长指令字结构VeloeiTl.2TM,在600MHz的时钟频率下.DM642每秒可以进行24亿次16位的乘累加或48亿次的8位的乘累加。这样强大的运算能力使得DM642可以进行实时多视频图像处理。它的增强型直接内存存取 (EDMA)对DSP图像处理系统是非常重要的,它可以在没有CPU参与的情况下完成映射存储空间中数据搬移。灵活使用EDMA可以大大提高数据传输效率。以:DM642为例,结合Sobel算法给出EDMA的一种具体控制和实现方法。
  2 DM642的EDMA控制器
  DM042的EMDA能提供超过2Gb/s的外部带宽.支持64路独立触发的事件传输,总共有85个参数对“Linking”或“Chaining”进行配置。Linking是在1个事件被触发时允许1个序列进行传输。Chaining是当1个通道的数据传输完毕时触发另1个通道的数据传输。 Linking和Chaining使得仅仅被CPU初始配置之后EDMA能够连续的自动运行。EDMA的特点决定了其适合图像处理的功能。由于图像处理的原始数据量很大.同时图像处理中也会产生同等量的中间数据.对于片内存储资源有限的高速DSP来说,一般需要借用外部存储空间。为了提高系统的实时处理能力.可以将数据在不同存储空间转移的任务交给EDMA来完成,而CPU只用于数据的计算。同时,EDMA对数据重排功能可以优化图像数据在内存中的存储,这不仅可以提高内部存储空间的利用效率.而且可以提高数据的传输速率。虽然对图像数据的传输也可由软件实现,但将消耗大量的CPU时钟周期。使DSP的高速性能难以发挥。而由EDMA来完成同样的工作几乎不占用CPU的时钟周期。
  在C64xDSP中.EDMA控制器负责片内L2存储器与其他设备之间的数据传输。EDMA控制器和DMA在结构上有很大的不同.其增强之处包括:
  提供了64个通道;
  通道间的优先级可以设置;
  支持不同结构数据传输的链接。
  EDMA控制器由以下几部分组成;
  事件和中断处理寄存器;
  事件编码器;
  参数RAM;
  硬件地址产生。
  其中,事件寄存器控制对EDMA事件进行捕获。1个事件相当于1个同步信号,由它触发1个EDMA通道开始数据传输。如果有多个事件同时发生.则由事件编码器对它进行分辨。EDMA的参数RAM中存放了有关的传输参数,这些参数会被送入地址发生器硬件.进而产生读写操作所需要的地址。
  EDMA支持8bit、16bit和32bit数据的存储。在EDMA中定义了下列概念:
  (1) 数据单元(element)的传输。单个数据单元从源地址向目的地址传输.如果需要,每1个数据单元都可以由同步事件触发传输;
  (2) 帧(frame)。l组数据单元组成1帧,l帧中的数据单元可以是相邻连续存放的,也可以是间隔存放的.帧传输可以选择是否受同步事件控制,“帧” 一般在1维传输中提及;
  (3) 阵列(array)。1组连续的数据单元组成1个阵列.在1个阵列中的数据单元不允许间隔存放。1个阵列的传输可以选择是否受同步事件控制。“阵列 ”一般在2维传输中提及;
  (4) 块(block)。多个帧或者多个阵列的数据组成1个数据块;
  (5) 1维(1一D)传输。多个数据帧组成1个1维的数据传输。Block中帧的个数可以是 l~65536。
  (6) 2维(2一D)传输。多个数据阵列组成1个2维的数据传输。第1维是阵列中的数据单元,第2维是阵列的个数。
  3 EDMA的控制机制
  3.1 事件与事件控制寄存器
  EDMA有64个通道.每1个通道都有1个事件与之关联.由这些事件触发相应通道的传输。
  3.2 传输参数与参数 RAM
  EDMA控制器与DMA控制器在结构上有所区别。C64x的.EDMA控制器是基于RAM结构。参数.RAM(Parameter RAM。PaRAM)的容量是2KB,总共可以存放85组EDMA传输控制参数。多组参数还可以彼此连接起来,从而实现某些负责数据流的传输.例如循环缓存和数据排序等。参数RAM中保存的内容包括:
  64个EDMA通道对应的入口传输参数.每组参数包括6个字;
  用于重加载,链接的传输参数组。每组参数包括24字节;
  8字节空余的RAM可以作为“草稿区”(scratch pad area)。
  一旦捕获到某个事件.控制器将从PaRAM顶部的64组入口参数中读取数据对应的控制参数送往地址发生器硬件。
  表l给出1组EDMA传输参数的内部结构,总共6个字.192bit。可以通过32bit的外设总线对EDMA的参数.RAM进行访问。
  可选参数(Option Parameter),32bit,用户可以根据情况选择设置该参数。
  SRC/DST地址.32bit,用于存放EDMA访问起始的源地址和目的地址,可以通过可选参数中的SUM/DUM位设定对SRC/DST地址的修改方式。
  数据单元计数(Element Count),16bit无符号数.存放l帧(1一D传输)或1个阵列(2一D传输)中的数据单元数。
  帧/阵列计数(Frame/Array Count),16bit无符号数.存放的是1-D数据传输中的帧计数,或是2一D数据传输中的阵列计数。
  数据单元,帧,阵列索引(Element/Frame/ArrayIndex).16bit无符号数,作为地址修改的索引值。数据单元索引只应用于1-D 传输,为下一数据单元的地址偏移值(2一D传输不允许数据单元间隔存放)。帧,阵列索引用于控制下一帧,阵列的地址索引。
  数据计数的重加载(Element Count Reload),16bit无符号数。用于在每帧最后一个数据元素传输之后.重新加载传输计数值。这个参数只能用于1一D传输中。
  链接地址(Link Address),16bit。当设定可选参数中的LINK=1时,可以由链接地址确定下1个EDMA事件采用参数的装载,重装载地址,从而使多组 EDMA传输参数形成EDMA传输链。
  4 EDMA的传输操作
  EDMA进行数据传输时有2种启动方式,1种是CPU启动.另1种是由同步事件触发。每1个通道的启动是相互独立的。
  4.1 CPU启动EDMA/非同步的 EDMA
  CPU可以通过写事件置位寄存器(ESR)启动1个EDMA通道。向ESR中某1位写1时,将强行触发对应的事件。此时,与正常的事件响应过程类似, EDMA的PaRAM中的传输参数被送入地址发生器.完成对EMIF、L2存储器或外设的存取访问。由CPU启动的EDMA属于非同步的数据传输。EER 中的事件使能与否不会影响这种EDMA传输的启动。
  4.2 由事件触发 EDMA
  一旦事件编码器捕获到1个触发事件并锁存在ER寄存器中,将导致PaRAM中对应的参数被送入地址发生器.进而执行有关的传输操作。尽管是由事件启动传输操作,但是事件本身必须首先被CPU使能。EER寄存器负责控制事件的使能。触发EDMA传输的同步事件可以源于外设,外部器件的中断或某个EDMA通道结束。与DMA的情况不同,与EDMA的每1个通道相关联的触发事件是固定的。因此,如果假设EER中的EVT4=1,那么EXT_INT4引脚的外部中断信号就会启动EDMA通道4的传输。所以,每个事件也就指定了1个特定的EDMA通道。
  5 在实时图像处理系统中的应用
  在实时图形处理系统中,经常是把数据块转移,例如从视频通道采集数据传送到SDRAM中作为后续处理的缓存,或是把数据传送到片内RAM中。EDMA使数据的传送简单易行。下面以把数据从视频通道传送到片内RAM中并作Sobel边缘提取算法和把数据从视频通道传送到SDRAM中并作So—bel边缘提取算法为例。
  (1)把数据从视频通道通过1维方式传送到片内RAM中并作Sobel边缘提取算法
  只对摄像头采集的I块数据进行Sobel边缘提取。采用一维EDMA传送方式,每1次传送采集1行中的部分数据(DAT_copy()函数)。在PAL制式下.先把1行数据放到nMemTemp数组中,然后对从144行到432行、从180列到435列的图像进行Sobel边缘提取.最后把变换后的数据输出到显示缓冲区.如图1所示。
  因为Sobel算法需要3行数据,所以可以开辟1个可以存放3行数据的缓冲区,通过指针的交换把从视频通道过来的数据分别放到缓冲区中。保存的3行图像使用翻卷的缓冲区管理,3个变量分别指示当前使用的y行、y—l行和y一2行在缓冲区中的起始偏移量。可以这样:轮流往3块缓存区拷贝数据.只要改变拷贝的指针就可以。在拷贝当前这1块的时候.已经拷贝的另外2块数据依然没有变化,所以就可以实现3块数据保存采集图像中的相邻3行数据.如表2所示。
  (2)把数据从视频通道通过2维方式传送到SDRAM中并作Sobel边缘提取算法可以通过DAT_copy2d 0函数直接把采集的l幅图像亮度分量存放到SDRAM中,如下:
  其中.m_dbFrameBufferTemp是指向SDRAM中缓冲区的指针,numPixels是1行的像素数,num-Lines是行数。当把数据存放到SDRAM的1个数组中后.Sobel算法的实现就非常简单了。当然也可以参照1维的方法来实现。
  6 结束语
  大批量的图像数据传输和复杂算法的处理一直是高速数字图像处理器的速度瓶颈,利用DSP的EDMA功能可以在不中断信号处理器算法处理工作的同时完成图像数据的搬移,在有效地解决了大批量图像数据传输速度瓶颈的同时,又能让DSP的处理器核专门从事算法处理工作,极大地提高了系统的并行性能。
非常好我支持^.^
不好我反对
相关阅读:
( 发表人:发烧友 )
评价:好评中评差评
技术交流、我要发言
发表评论,获取积分! 请遵守相关规定!提 交
Powered by: 电子发烧友 (
elecfans.com. .All Rights Reserved 粤ICP备号求教dm642中ddr存储器工作过程 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
求教dm642中ddr存储器工作过程
15:20:55  
在用DM642处理图像数据过程中,摄像头采集回来数据后是先存入ddr存储器,然后cpu从ddr中提取数据在进行处理,在进行输出,是这个过程吗?
23:02:06  
是使用DMA了么?
22:01:07  
肯定用EDMA效率高。
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司查看: 2160|回复: 0
基于TMS320DM642图像采集处理系统设计及实现
【转自互联网,如需引用请联系原作者】
&随着计算机技术的快速发展和市场需要的逐步扩大,各种视频信息处理技术发挥了越来越重要的作用,广泛应用于网络多媒体通信、实时监控系统、高清晰度数字电视等方面。在视频处理领域中,由于处理的数据量大,算法复杂度高,因此处理的实时性成为一大难题。在这种情况下,多媒体处理器TMS320DM642以其丰富的外设接口和高速的处理能力,使基于其设计出的产品在图像质量、硬件成本和灵活性等方面都优于专门的视频编解码芯片。本系统主要研究基于TMS320DM642罔像采集和处理系统的设计及应用。
1 系统基本原理&&& 本系统主要由视频解码模块、DSP(TMS320DM642)模块、外部存储器模块(包括数据存储器和程序存储器)、PCI总线驱动模块、电源管理模块及JTAG接口等六大模块组成。&&& 由摄像机输入的1路复合视频信号(CVBS)进入视频解码芯片SAA7115,在解码芯片中完成模拟视频的数字化、图像信号与同步信号的分离;从解码器中输出的数字图像数据进入DSP视频输入口的FIFO缓存,通过EDMA送到DSP的外部数据存储器中;处理后的图像存人输出缓存,再由DSP自带的PCI接口将处理后的图像送给外部主设备。系统的工作原理框图见图1。&图1 系统工作原理框图
2 图像采集处理系统硬件设计2.1 视频解码模块&&& 由于设计中采用模拟摄像机进行视频数据的采集,因此需要使用视频解码芯片将采集到的模拟数据进行数字化,然后传给DM642的视频端口进行处理。视频解码芯片采用SAA7115,省去时钟同步电路的设计,简化接口电路,提高系统的可靠性。由摄像机采集到的模拟信号经过视频端子进入到解码器SAA7115的模拟端AI11,经模拟处理和A/D转换后产生数字色度信号和亮度信号,分别对其进行处理。亮度信号处理的结果一路送到信号处理器,进行综合处理,产生Y和uV信号,经格式化后采用4:2:2 YUV格式从IPD[7..0]输出直接连接到DM642视频口的VP0[9..2]管脚;另一路经过同步分离器,由数字PLL产生相应的同步信号与DM642的VP0CTL0和VP0CTL1相连,同时PLL驱动时钟发生器,产生27MHz的时钟同步信号LLC,输出到DM642的VP0CLK0管脚。解码器SAA7115与DM642的视频接口的原理见图2。&图2 SAA7115与DM642视频口原理图&& 所有这些功能均在I2C总线控制下完成。SCL作为I2C接口的时钟线与DM642的SCL相连,SDA作为I2C接口的数据线与DM642的SDA相连。通过SCL和SDA的时序配合,可由DM642向SAA7115的寄存器写入数据或读出数据。2.2 DSP图像处理模块&&& 本系统中视频口VP0作为输入,与视频解码器SAA7115的IPD(image port)相连。从解码器SAA7115出来的BT.656数据流进入VP口后,经由BT.656捕获通道,进入到视频口缓冲区中,每个视频口都有1个5120B的视频输入/输出缓冲区,视频口输入的数据分别进入捕获FIFO A和FIFO B,其中Y缓存2560B,Cb和Cr缓存分别为1280B。根据输出的同步脉冲产生帧存储器的地址信号、读写和片选等控制信号,将图像逐帧存入SDRAM存储器中,通过中断通知DSP读取。DM642通过EDMA事件实现视频口缓冲区和片内L2存储器之间的数据传递。用户编程设定1个缓冲区阈值用以产生EDMA事件。BT.656格式的数据流经由捕获通道分别进入各自的缓冲区,并打包成64b的双字。当双字增至缓冲区阈值时触发EDMA事件,存储器映射寄存器即作为EDMA数据传输的源地址。为保证每一场的数据能够全部传完且没有遗漏,每次EDMA传输的数据大小应等于阈值。由于DM642的强大处理能力,用户算法作为任务线程嵌入DSP软件系统中。此时,DSP自动将Flash存储器中的程序自举到DSP的内部程序存储区,并开始执行程序,调用用户算法对缓存中的视频数据逐帧进行处理。处理后的数据暂时存入SDRAM存储器中,或通过DM642的PCI接口传输到PCI总线接口然后进入计算机。DM642的PCI接口和PCI总线接口之间用3片总线驱动芯片连接,这样既能增强PCI总线驱动能力,又能实现PCI总线接口与DM642的I/O口的电平转换功能。2.3 外围存储模块&&& 本系统主要用于视频图像的处理,因此在处理过程中会产生大量数据;而DM642内部最多仅有256kB的RAM,所以需要扩展大容量的外部存储器才能满足数据处理的需要。系统通过DM642的EMIF接口外部扩展存储器,扩展两片SDRAM用于存储程序、数据和缓存数字视频信息,扩展1片Flash存储器用于固化程序和一些掉电后仍需保存的用户数据。系统采用MT48LCAM32B2SDRAM 存储器,大小为1Meg×32bit×4banks,1片Flash AM29LV081B存储器。EMIF提供了对SDRAM的无缝接口,在CEO空间提供了64bit宽的SDRAM接口总线,把2片32位的SDRAM并接,实现CEO空间的64bit存取,用于存放程序和缓存数字视频。EMIFA提供了4个彼此独立的外部存储接口CE[3:0],为从Flash启动,将Flash连接到CE1,将SDRAM连接到CE0。DM642的EMIF和64位SDRAM及Flash存储器的接口原理图见图3。&图3 DM642的EMIF和64位SDRAM 及Flash存储器的接口原理图2.4 电源管理部分&&& 本系统所需电源为+5V、+3.3V和+1.4V,其中+5V为电平转换芯片电源,+3.3V为DM642的I/O口、解码器及其他芯片的电源,+1.4V为DM642 CPU内核电源。TMS320DM642采用低电压供电方式,大大降低DSP芯片的功耗。CPU内核电压+1.4V,外设I/O电压+3.3V,降低内核电压主要是降低功耗。&&& 外部接口引脚采用+3.3V电压,便于直接与外部器件接口。由于是两种不同的电压,所以要考虑供电系统的配合问题。在上电过程中,保证CPU内核电源先上电,最晚也应当与外设I/O电源同时上电。关闭电源时,先关闭I/O电源,再关闭内核电源。如果内核上电晚于I/O,则会发生内部总线竞争,从而产生不可预定的结果;因此,在本系统中加入了电压监控电路。
3 系统软件编程部分&&& 为了搭建1个可以实现各种图像算法的硬件平台,本系统的程序主要包括以下几个部分:系统引导部分,DM642的初始化程序(包括片内外设的选择、EMIFA初始化、IIC模块的初始化、VP口初始化),解码器的初始化,Flash的读写程序,EDMA进行视频数据传输的设置等。&&& 系统断电时,程序、初始化数据等都存在片外的Flash里。上电后,DM642从外部Flash中将程序引导到片内存储器,开始运行程序。系统启动时,系统上电复位,从Flash加载程序,并进行系统初始化,主要完成芯片初始化、外围硬件配置,为图像输入及处理做好准备。DM642发启动采集信号,送入图像信号,产生SDRAM的地址、读写、选通等逻辑信号,将图像写入SDRAM中。写完1帧图像发中断信号通知DM642读取,DM642从SDRAM中将1帧图像读入,运用图像处理算法进行处理。&&& 系统自动将0x~0x9000 03FF地址的程序和数据搬移到0x0 03FF地址,对EMIFA中的CE0、CE1寄存器进行配置;然后将片外0x以后的Flash中的程序搬移到0x以后的片内RAM中或片外SDRAM中,程序指针跳转到rts6400.Lib中的C入口点c_int00执行C初始化函数。初始化工作完成后,便进行图像采集。由摄像机摄入的PAL制式图像传送到SAA7115解码器,解码器将信号转变成并行的BT.656图像码流送到DM642的视频口VP0口,DM642视频口解码BT.656,得到YUV(4:2:2)格式的图像,并通过EDMA传输到SDRAM中存储。图像每场为720×288(宽×高),每帧720×576(宽×高)。CPU通过访问SDRAM中的图像数据,根据程序进行图像处理。系统的主程序结构框图见图4。&图4 系统的主程序结构框图
4 结束语&&& 本系统研究并设计了1个通用的基于DM642的视频采集处理系统。与其他视频处理系统相比,它有着诸多优势:在处理器方面,为了实现较高的实时性,且能够满足对运动图像进行处理的要求,系统采用了专门用于多媒体处理的TMS320DM642芯片作为处理器,使得系统硬件设计相对容易,提高了系统整体的性价比;在视频采集方面,采用了专门的解码芯片来完成,这样避免出现传统视频采集电路中存在的“DSP花费大量时间进行图像采集的控制”问题,从而将DSP解放出来,更高效地进行图像处理工作;具有很强的可编程性.可以利用外接的SDRAM编程实现MPEG2、MPEG4、H.263等多种视频压缩编解码算法,在适用性上远优于专用视频编解码系统;由于DSP的运算速度快,所以实时性强也是本系统的一大优势。&&& 因此,本系统可以作为许多视频图像处理算法开发、验证的硬件平台,也可以作为各种多媒体应用系统的核心部件。
Powered by}

我要回帖

更多关于 数据传输的方式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信