单片机I/O控制方式

单片机如何实现当一个程序在访问一个I/O设备时,而不占用CPU呢?
对于这个问题,我们先了解一下单片机I/O设备有哪几种主要的控制方式;

  • 程序循环检测
  • 中断驱动
  • 直接内存访问

一、程序循环检测

基本思路:
在设备驱动程序当中,通过不断地检测I/O设备的当前状态,来控制一个I/O操作的完成。这种方式也称为是繁忙等待方式或轮询方式。

缺点:
在进行一个I/O操作的时候,要一直占用着CPU,这样就会浪费CPU的时间。

二、中断驱动方式

基本思路:
当一个用户任务需要进行I/O操作时,会去调用相应的系统函数,由这个函数来发起I/O操作,并将当前任务阻塞起来,然后调度其他的任务去使用CPU。当所需的I/O操作完成时,相应的设备就会向CPU发出一个中断,系统在中断处理程序当中,如果发现还有数据需要处理,就再次启动I/O 操作。

缺点:
在中断驱动的控制方式下,数据的每一次读写还是通过CPU来完成,只不过当I/O设备在进行数据处理时,CPU不必在那里等待,而是可以去执行其他任务。

三、直接内存访问方式

基本思路:
让DMA控制器来代替CPU,完成I/O设备与内存之间的数据传送,从而空出更多的CPU时间,去运行其他的任务。

优点:
减少中断的次数,使得I/O操作消耗的CPU时间变少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值