DM8168EDMA3: EDMA3控制器详解与应用实践

需积分: 48 14 下载量 193 浏览量 更新于2024-08-09 收藏 1.09MB PDF 举报
"外设服务例子-cpld和fpga与asic设计实践教程" 这篇教程主要关注的是在外设服务中如何利用EDMA(Embedded DMA)技术,特别是针对DM8168平台上的EDMA3控制器。EDMA(嵌入式直接存储器访问)是一种高效的、自动化的数据传输机制,它可以减轻CPU的负担,处理大量数据传输任务,特别是在实时系统和多处理器环境中。 1. EDMA3控制器介绍 - EDMA3控制器由两个主要模块构成:EDMA3通道控制器(EDMA3CC)和EDMA3传输控制器(EDMA3TC)。EDMA3CC处理软件请求和外设事件,管理优先级并触发传输请求。而EDMA3TC则负责实际的数据传输,执行读写操作,对用户透明。 2. EDMA3特征 - 全正交传输:支持3维传输,包括A-同步和AB-同步,源和目的有独立索引,可以链接多个传输。 - 灵活的传输定义:提供增量或FIFO寻址模式,支持自动更新PaRAM集和基于事件的多次传输。 - 中断生成:包括传输完成、错误条件等,最多8个中断输出,适配多核环境。 - Debug支持:提供队列水标、错误和状态记录,便于调试。 - 频道数量:包括64个DMA通道和8个QDMA通道,支持事件、人工和链接同步,以及可编程的通道与PaRAM映射。 - PaRAM集:512个PaRAM集,用于存储传输配置信息。 3. 实践应用例子 - 块搬移例子:可能涉及到内存到内存的数据移动,如从DDR2外部内存到片上DSPL2SRAM。 - 子帧获取例子:可能是指从某个数据流中提取特定子集的过程。 - 数据排序例子:可能使用EDMA进行高效的数据排序操作,如快速排序或归并排序。 - 外设服务例子:例如,EDMA可以用来服务串口通信,自动接收或发送数据,减少CPU参与。 4. EMDA3寄存器 - 包括EDMA3CC和EDMA3TC的控制寄存器,用于配置和管理EDMA3控制器的行为。 5. 调试检查列表和多功能编程/调试提示 - 提供了详细的调试步骤和优化建议,帮助开发者解决在设计和实现过程中遇到的问题。 6. 设置一次传输 - 这部分可能涵盖了启动一次EDMA传输的详细过程,包括设置源、目标地址,配置传输参数,启动传输等。 通过这个教程,读者将能够深入理解如何利用EDMA3技术来设计高效的数据传输解决方案,并且能够熟练地配置和调试EDMA3控制器,以适应各种复杂的系统需求。无论是CPLD、FPGA还是ASIC设计,了解和掌握EDMA3的使用都是提升系统性能的关键。