新闻中心

EEPW首页>EDA/PCB>设计应用> SoC系统中实时总线模块的设计理念与应用

SoC系统中实时总线模块的设计理念与应用

作者: 时间:2012-04-01 来源:网络 收藏

这看起来是无解的矛盾,我们可以采用DMA(Direct Memory Access,直接存储读写)技术解决。一般芯片都有外接DDR/SDRAM作为最终的数据与程序缓存,TDM可以直接向DRAM传输实时数据,而不用频繁地中断CPU,实质上是把片内缓存的需求转移到了片外(假设总线带宽足够),既降低了队列长度又降低了中断CPU的频率,从而解决了这一对矛盾。

DMA技术实质上也是主动掌握总线主动权,要求采用AHB总线主控模式,最终框架结构会变成图3所示。

延时与DMA应用的矛盾

细心的读者会发现DMA的采用增加了处理延时,这不是与我们的原则矛盾吗?这里牵涉到对嵌入式CPU中音频处理算法的理解,大多数是音频压缩算法,一般都要求有一定的音频片断长度以保障压缩率与减少CPU中RTOS的调度开销。另外一些音频处理程序如回响消减DSP算法,经常采用64拍有限滤波器处理大于16ms的回响拖尾。另一些高度压缩算法(如以有限激励参数模型为基础的算法)要求对更长的音频片断做处理。所以从算法的角度,的音频处理延时理论下限为多算法处理单元的最大值。我们只要保证DMA的传输数据延时小于这个下限就可以了,这样就充分利用了的最小延时,进而计算DMA片断的长度也有了依据。

回到队列长度的计算上,我们现在只需要考虑TDM得到AHB总线使用权之间的间隙与TDM数据输入的速度差的最坏值就可以了。

3.gif
图3:最终框架结构图。

队列深度=最长AHB总线获得间隔×TDM输入速率

AHB总线轮询(poll)间隙取决于总线上有几个主控模式模块与仲裁的优先级策略。一般建议实时模块享有较高优先级,当然随之而来的要求是总线申请的频度不能太高。平衡这一对矛盾的解决办法超越本文论述的范畴,读者可以从“固定权重加优先级竞争”的仲裁机制入手来设计AHB总线仲裁器。

动态切换时机与影子寄存器的使用

在实际应用中,我们常常发现帧格式中很多时分信道并没有音频数据,这时就要采用时分掩码来屏蔽这些信道以阻止无效数据占用带宽。问题是时分信通中是否有数据是动态变化的,动态变化的数据要求时分掩码参数也要动态分配。但是怎么切换呢?这里采用“影子寄存器”技术,原理是两套寄存器,一套参数应用于当前帧,另一套应用于下一帧。利用帧同步头的一个时钟周期实时切换。而SoC中的CPU只看到一套寄存器地址,同时配置行为本身放宽了实时要求的限制,实时切换由TDM模块完成,具体图形见图4。



评论


相关推荐

技术专区

关闭