在嵌入式系统I/O操作中,中断方式(包括查询方式)是广泛使用的操作方式。其特点是通过CPU执行ISR来控制数据的传送,输入输出都要以CPU的寄存器为中转站。以中断方式下的数据传输为例,每一次响应中断.CPU都要保护主程序断点的工作现场,而后执行ISR。数据传输操作完毕后,还要恢复断点处的工作现场。因此在某些具有高频率I/O操作的嵌入式应用场合,执行中断方式的输入输出会导致系统频繁切换工作现场,降低CPU运行效率。
DMA方式是高速I/O接口方式,其特点有两个:一是它可以不通过CPU直接完成输入输出设备与存储器间的数据交换,在数据传送期间不会影响CPU的其他工作;二是CPU带宽可以与总线带宽一样,延时仅依赖于硬件,从而提高系统中数据的传输速率。显然,利用这种方式不但能快速传送数据,而且CPU具有了同时进行多种实时处理的能力,增强了系统的实时性。
在DMA传输方式下,外设通过DMA控制器(DMAC)向CPU提出接管总线控制权的请求。CPU在当前总线周期结束后,响应DMA请求,把总线控制权交给DMA控制器。于是在DMAC的控制下,外设和存储器挪用CPU的一个总线周期,直接进行数据交换,而无须CPU对数据传输控制加以干预。DMA传输结束后,再将总线使用权交还给CPU。
在高速、大数据量传输场合,DMA方式由于系统开销少,传输效率比中断方式更高,因此,现代通用计算机都具备DMA传输功能。例如,PC机的芯片组中包含8237A芯片,它是DMA控制器,可以控制4个DMA通道。
然而,嵌入式系统并非都拥有DMA功能。8位嵌入式处理器(如早期的8051处理器)一般不具备DMA数据传输功能。16位和32位嵌入式处理器一般都具有DMA功能,例如ARM、68K、PowerPC和 MIPS处理器。
DMA控制包括DMA通道初始化、DMA数据传输、DMA结束时的中断服务例程处理。对于通用计算机而言,DMA控制逻辑由CPU和DMA控制接口逻辑芯片共同组成。嵌入式系统的DMA控制器内里在处理器芯片内部。
将DMA方式应用于嵌入式系统时要考虑到,与一胶微机系统不同,嵌入式系统对可靠性、成本、体积、功耗等有更严格的要求。因此,在进行含有高速数据处理的嵌入式系统开发时,需要精心地选择处理器。
文章评论(0条评论)
登录后参与讨论