2.2 EDMA设置
TMS320C6713的EDMA控制器提供16个增强通道,各通道之间彼此独立。在没有CPU参与的情况下,EDMA控制器可以在后台完成片内存储器和外设之间的数据搬移。它由以下几部分组成:事件和中断处理寄存器、事件编码器、参数RAM、地址硬件发生器。其中事件寄存器完成对EDMA事件的捕获控制,事件产生同步信号触发EDMA通道开始数据传输;EDMA的参数RAM存放有与事件相关的传输参数;地址硬件发生器产生EMIF与外设之间读/写操作所需的地址信号。EDMA的16个通道共享1个中断信号EDMA_INT,当EDMA完成1次传输任务,可触发EDMA中断。TMS320C6713的EDMA的参数RAM包括6个字,其结构如图4所示。在OPT中,用户可以通过对各个位置“0”或“1”来设置事件优先级别、数据单元大小、源地址/目的地址变更模式、传输结束代码、是否使能链接(1inking)功能、同步传输方式等。
3 乒乓缓存实时传输
3.1 传输分析
GPS软件接收机通过MCBSP端口接收信号,将卫星数据保存在指定映射的存储器中,随后EDMA通道搬运数据至片内L2缓存以供CPU提取并处理。L2缓存有CPU一半的时钟速度,CPU处理数据速度较块。CPU数据处理必须与EDMA数据传输保持同步,也就是要保证在CPU访问之前EDMA把数据传输到缓冲区中。但是受片内二级存储器容量和数据实时性的限制,会面临这样一个问题:后写入缓冲区的数据可能会覆盖先期写入但尚未处理的数据。为此,需要在L2缓存开辟2对乒乓缓存(ping-pong buffer),分别接收GPS的SIGN和MAG信号,并利用EDMA的多组参数链接功能,根据数据实时传输的特点,对EDMA参数RAM进行设置。
以接收SIGN信号为例,首先开辟1个EDMA通道1,它的触发事件设为MCBSP0的传输。入口参数0PT设置为一维单帧传输,采用读/写同步方式,数据单元长度为32位,源地址固定不变,目的地址按1个数据单元长度递增,并使能链接功能。SRC设为MCBSP中DRR2的映射地址,:DST设为ping—buffer的首地址,ELECNT设为缓冲区的大小,FRMCNT、FRMIDX、ELEIDX、ELERLD均设为0。随后再开辟2路空闲的EDMA通道——通道2和通道3,它的设置和之前相同,只是在DST目的地址处分别指向pong—buffer和ping—buffer。随后将EDMA通道1的链接地址link指向通道2,通道2的link地址指向通道3,通道3的链接地址指向通道2。MAG信号的EDMA链接功能和乒乓缓冲的配合设置相同,不再描述。乒乓缓存的相关设置如图5所示。