嵌入式系统设计师学习笔记⑦:输入输出设备管理
嵌入式系统设计师学习笔记⑦:输入输出设备管理
程序控制方式:无条件传送方式、程序查询方式
①无条件传送:在此情况下,外设总是准备好的,他可以无条件地随时接收CPU发来的输出数据,也能够无条件地随时向CPU提供需要输入的数据。
②程序查询方式:通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入数据。根据这种状态,CPU有针对性地为外设的输入/输出服务。
计算机系统中的CPU是稀缺资源,应尽量提高其利用率,减少等待I/O操作的时间。
中断方式:在中断方式下,I/O设备工作时CPU不再等待,而是进行其他的操作,当I/O设备完成后,通过一个硬件中断信号通知CPU,CPU再来处理接下来的工作。
在系统中具有多个中断源的情况下,常用的处理方法:
①多中断信号线法。
每个中断源都有属于自己的一根中断请求信号线向CPU提出中断请求。
②中断软件查询法。
当CPU检测到一个中断请求信号以后,即转入到中断服务程序去轮询每个中断源以确定是谁发出了中断请求信号。
对各个设备的响应优先级由软件设定。
③菊花链法。
所有的I/O模块共享一根公共的中断请求线,而中断确认信号则以链式在各模块间相连。
④总线仲裁法。
一个I/O设备在发出中断请求之前,必须先获得总线控制权,所以可由总线仲裁机制来裁定谁可以发出中断请求信号。
⑤中断向量法。
中断向量表用来保存各个中断源的中断服务程序的入口地址。
直接存储器存取方式(DMA):指数据在内存与I/O设备间的直接成块传送,即在内存与I/O设备间传送一个数据块的过程中,不需要CPU的任何干涉。只需要CPU在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知是否结束和下次操作是否准备就绪)时的处理,实际操作由DMA硬件直接执行完成,CPU在此传送过程中可做其他事情。
DMA传送的一般过程图:
DMA处理全过程:
①外设向DMA控制器(DMAC)提出DM传送的请求。
②DMA控制器向CPU提出请求,其请求信号通常加到CPU的保持请求输入端HOLD上。
③CPU在完成当前的总线周期后立即对此请求做出响应,CPU的响应包括两个方面:1、CPU将有效的保持响应型号HLDA输出加到DMAC上,告诉DMAC它的请求已得到响应;2、CPU将其输出的总线信号置为高阻,这就意味着CPU放弃了对总线的控制权。
④此时,DMAC获得了对系统总线的控制权,开始实施对系统总线的控制。同时向提出请求的外设送出DMAC的响应信号,告诉外设其请求的信号已得到响应,现在准备开始进行数据的传送。
⑤DMAC送出地址信号和控制信号,实现数据的高速传送。
⑥当DMAC将规定的字节数传送完时,它就将HOLD信号变为无效并加到CPU上,撤消对CPU的请求。CPU检测到无效的HOLD就知道DMAC已传送结束,CPU就送出无效的HLAC响应信号,同时重新获得系统总线的控制权,接着DMA前的总线周期继续执行下面的总线周期。
强调:DMA传送过程中无需CPU的关于,整个系统总线完全交给了DMAC,由它控制系统总线完成数据传送。
输入输出处理机(IOP):通道是一个具有特殊功能的处理器,又称为输入/输出处理机,它分担了CPU的一部分功能,可以实现对外围设备的同一管理,完成外围设备与主存之间的数据传送。