新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > DM642无线图像传输的TS流传输新技术

DM642无线图像传输的TS流传输新技术

作者:时间:2011-12-23来源:网络收藏

2 实现
2.1 McBSP实现
McBSP由数据通道和控制通道组成,可以与外部设备连接,进行数据通信。数据的接收与发送分别工作于不同的引脚上,因此数据通信是全双工的。其他的4个引脚用于控制信号(时钟和同步信号)。
这里采用EDMA进行McBSP与存储器缓冲区之间的数据搬运。EDMA控制器读取从外部设备接收到并保存在DRR(数据接收寄存器)的数据,或者将需要向外部设备发送的数据写入DXR(数据发送寄存器)。被写入DXR的数据经过XSR被移出到DX脚上。同理,接收的数据先被移入RSR,然后被拷贝到RBR,最后再被拷贝到DRR,这时就允许被EDMA访问了。McBSP中内部数据的移出和外部数据的移入可以同时发生,即可以进行全双工的数据通信。
以EDMA接收数据的配置为例,配置参数RAM。EDMA通道接收数据源地址为McBSP0的DRR寄存器,地址计数模式为不变模式。设置EDMA通道接收数据目的地址为DSP片内存储区PingBuffer首地址,确保第一次数据是到PingBuffer,地址计数模式同样为递增模式。配置源地址计数索引值,由于源地址为McBSP0的DRR寄存器,固定不变;配置目的地址计数索引值,由于接收数据为32位,所以srcBidx=srcCidx=4,这是因为DSP内的最小计数单元为1个字节,8bits;配置剩余的参数RAM传输参数,包括设置ACNT=4,BCNT=2 048,CCNT=1,采用一维传输A-SYN C。
接下来是ping-pong传输的程序实现。替ping-pong各自分配1个通道,于是一共有3个通道,对应3个参数RAM。ping通道的参数RAM与主通道的参数RAM完全一致,pong通道的参数RAM与主通道相比,只需将pong通道接收数据目的地址改为PongBuffer首地址。随后调用EDMA_link三次,分别将主通道和ping通道连接,ping通道和pong通道相互连接。EDMA中断设置与GPIO输出任务一样。
2.2 GPIO实现
流输出任务采用1D到1D的传输模式。SUM=01,DUM=00,即源地址是188字节的Buffer,目的地址是GPIO[8:15]对应的寄存器,GP4的外部触发EDMA传输,传输188字节产生1次EDMA中断。队列优先级设置为紧急,来保证时序。以EXTINT5为EDMA触发事件:
c.jpg
pong的参数RAM设置类似,只要将源地址改为pong,并将重载的参数RAM地址改为edmacfg_pong即可。
中,EDMA的64个通道只产生一种中断。当一个通道传输完成后,IPR(Interrupt Pending Register)寄存器里的相应位会被置1,EDMA中断处理器通过查询IPR寄存器,确定是哪个通道完成了传输,并调用相应的中断服务程序,即tccCb(回调函数,即通道传输完成后所调用的中断服务程序)。tccCb=edma_isr,该函数的作用是当一个接收Buffer被填满时,在通道传输完成后发送一个旗语信号给信号处理程序,通知其对收到的数据进行处理。参数RAMOPT中TCINTEN位置1,以使能EDMA中断。随后,利用DSP/BIOS将EDMA中断源和DSP的可屏蔽中断5连接起来。编写相应通道的EDMA中断程序,传输完一个包后,检查是否1帧的TS流传完,用以生成数据有效信号(Dvalid),通知接收方哪些是有用数据。由于选用了的可屏蔽中断5,还需使能IER寄存器里的对应位。
TS流输入则只需要将SUM=00,DUM=01,目的地址和源地址交换,再将EDMA中断程序中目的地址变更到188字节后的地址。采用GP4作EDMA同步事件(即SPI时钟),GPIO[8:15]作数据输入,GP7作同步,采用GP6作外部中断,用作数据有效线。在外部中断中重载,在传输完成中断中改变目的地址。如此则可顺利接收到TS流。

pid控制相关文章:pid控制原理




评论


相关推荐

技术专区

关闭