嵌入式系统硬件设计详解
1. DMA 传输
DMA(直接内存访问)传输是一种高效的数据传输方式。在 DMA 传输过程中,DMA 控制器会请求总线,完成数据传输后再将总线交还给处理器。DMA 控制器具有可编程性,能够实现多种数据传输模式,包括从内存到内存、从内存到 I/O、从 I/O 到内存以及从 I/O 到 I/O 的数据传输。
其优势在于,所有的仲裁操作都在微处理器内部完成,这样不仅节省了硬件资源,还能确保所有的时序都是正确的。此外,内部 DMA 控制器通常可以与内部 RAM(CPU 芯片内部的 RAM)进行数据传输,这是外部 DMA 控制器所无法做到的。
DMA 请求可以来自需要发送数据的源设备(例如接收到一个字节并需要将其传输到内存的 UART),也可以来自需要接收数据的目标设备(同一个 UART 可能刚刚发送完一个字节,需要一个新的字节)。在某些系统中,DMA 请求者是源设备还是目标设备并不重要,但在其他情况下则很关键。
例如,80186/80188 DMA 控制器支持源请求或目标请求,在数据手册中分别称为源同步或目标同步。实际上,由于源/目标同步是由固件编程到 DMA 控制器中的,所以任何一个设备都可以成为请求者。不过,源同步和目标同步的选择会影响传输的时序。源同步允许更快的传输速度,但要求在 DMA 写周期结束之前撤销 DMA 请求;目标同步速度较慢,但在撤销 DMA 请求时对时序的要求更为宽松。
Motorola MCF5407 ColdFire 处理器提供了一个内部四通道 DMA 控制器。其中两个通道支持来自外部设备的 DMA 请求,另外两个通道允许内部 UART 将数据传输到内存。
此外,DMA 还可以
超级会员免费看
订阅专栏 解锁全文
2355

被折叠的 条评论
为什么被折叠?



