0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PLC I/O(输入/输出)控制方式讲解

laidenongfhs 来源:中泰PLC自动化教学 2023-03-14 09:06 次阅读

设备管理的主要任务之一是控制设备和内存或处理机之间的数据传送,外围设备和内存之间的输入/输出控制方式有四种,下面分别介绍。

程序直接控制方式

如图5-1(a)所示,计算机从外部设备读取数据到存储器,每次读一个字的数据。 对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中。 在程序直接控制方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成了 CPU资源的极大浪费。 在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中没有釆用中断机构,使I/O设备无法向CPU报告它已完成了一个字符的输入操作。

程序直接控制方式虽然简单易于实现,但是其缺点也是显而易见的,由于cpu和I/O设备只能串行工作,导致CPU的利用率相当低。

中断驱动方式

中断驱动方式的思想是,允许I/O设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作。 如图5-1(b)所示,我们从I/O控制器和CPU两个角度分别来看中断驱动方式的工作过程:

从I/O控制器的角度来看,I/O控制器从CPU接收一个读命令,然后从外围设备读数据。 一旦数据读入到该I/O控制器的数据寄存器,便通过控制线给CPU发出一个中断信号,表示数据已准备好,然后等待CPU请求该数据。 I/O控制器收到CPU发出的取数据请求后,将数据放到数据总线上,传到CPU的寄存器中。 至此,本次I/O操作完成,I/O控制器又可幵始下一次I/O操作。

9c5d4664-c1a5-11ed-bfe3-dac502259ad0.jpg

图5-1 I/O控制方式

从CPU的角度来看,CPU发出读命令,然后保存当前运行程序的上下文(现场,包括程序计数器及处理机寄存器),转去执行其他程序。 在每个指令周期的末尾,CPU检查中断。 当有来自I/O控制器的中断时,CPU保存当前正在运行程序的上下文,转去执行中断处理程序处理该中断。 这时,CPU从I/O控制器读一个字的数据传送到寄存器,并存入主存。 接着, CPU恢复发出I/O命令的程序(或其他程序)的上下文,然后继续运行。

中断驱动方式比程序直接控制方式有效,但由于数据中的每个字在存储器与I/O控制器之间的传输都必须经过CPU,这就导致了中断驱动方式仍然会消耗较多的CPU时间。

DMA方式

在中断驱动方式中,I/O设备与内存之间的数据交换必须要经过CPU中的寄存器,所以速度还是受限,而DMA(直接存储器存取)方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放” CPU。 DMA方式的特点是:

基本单位是数据块。

所传送的数据,是从设备直接送入内存的,或者相反。

仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在 DMA控制器的控制下完成的。

图5-2列出了 DMA控制器的组成。

9d2be488-c1a5-11ed-bfe3-dac502259ad0.png

图5-2 DMA控制器的组成

为了实现在主机与控制器之间成块数据的直接交换,必须在DMA控制器中设置如下四类寄存器:

命令/状态寄存器(CR):用于接收从CPU发来的I/O命令或有关控制信息,或设备的状态。

内存地址寄存器(MAR):在输入时,它存放把数据从设备传送到内存的起始目标地址; 在输出时,它存放由内存到设备的内存源地址。

数据寄存器(DR):用于暂存从设备到内存,或从内存到设备的数据。

数据计数器(DC):存放本次CPU要读或写的字(节)数。

如图5-1(c)所示,DMA方式的工作过程是:CPU读写数据时,它给I/O控制器发出一条命令,启动DMA控制器,然后继续其他工作。 之后CPU就把控制操作委托给DMA控制器,由该控制器负责处理。 DMA控制器直接与存储器交互,传送整个数据块,每次传送一个字,这个过程不需要CPU参与。 当传送完成后,DMA控制器发送一个中断信号给处理器。 因此只有在传送开始和结束时才需要CPU的参与。

DMA控制方式与中断驱动方式的主要区别是中断驱动方式在每个数据需要传输时中断CPU,而DMA控制方式则是在所要求传送的一批数据全部传送结束时才中断CPU; 此外,中断驱动方式数据传送是在中断处理时由CPU控制完成的,而DMA控制方式则是在DMA 控制器的控制下完成的。

通道控制方式

I/O通道是指专门负责输入/输出的处理机。 I/O通道方式是DMA方式的发展,它可以进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。 同时,又可以实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。

例如,当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首地址和要访问的I/O设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务,数据传送结束时向CPU发中断请求。 I/O通道与一般处理机的区别是:通道指令的类型单一,没有自己的内存,通道所执行的通道程序是放在主机的内存中的,也就是说通道与CPU共享内存。

I/O通道与DMA方式的区别是:DMA方式需要CPU来控制传输的数据块大小、传输的内存位置,而通道方式中这些信息是由通道控制的。 另外,每个DMA控制器对应一台设备与内存传递数据,而一个通道可以控制多台设备与内存的数据交换。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    15235

    浏览量

    171212
  • plc
    plc
    +关注

    关注

    4975

    文章

    12257

    浏览量

    454944
  • 控制方式
    +关注

    关注

    0

    文章

    51

    浏览量

    10686
  • 中断
    +关注

    关注

    5

    文章

    884

    浏览量

    41028
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79550

原文标题:PLC I/O(输入/输出)控制方式

文章出处:【微信号:中泰PLC自动化教学,微信公众号:中泰PLC自动化教学】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PTC在PLC控制I/O

    采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。
    发表于 10-17 16:51

    labview怎么实现像PLC一样通过I/O控制外部开关量?

    labview怎么实现像plc一样的通过输入输出I/O量,控制开关量,比如通过I/
    发表于 04-25 00:51

    天津西门子plc I/O输入/输出模块回收

    `***同步微信。天津西门子plc I/O输入/输出模块回收,大量收购PLC,产品种类、型号齐全
    发表于 04-28 14:32

    什么是 I/O 口?I/O 具体能做什么呢

    电平 ,输出高低电平。就是通过这简单的控制电平来实现大多数的应用控制。1. 什么是 I/O 口?I
    发表于 11-24 06:47

    I/O输出控制实验的相关资料分享

    一台三、实验内容1.按照Keil C51 集成开发环境的要求,建立一段程序,然后进行编译并进行软件仿真。2.输入实验例程,利用P1口作为输出控制端口,控制8位LED流水闪烁。四、实验步
    发表于 12-03 07:08

    控制I/O口的方法

    通过前面的输入输出的内容(LED控制与按键的使用),我们对控制I/O口有了一个基本的了解。如果需要输出
    发表于 01-24 07:38

    了解stm32I/O输入操作及如何使用HAL库来实现I/O输入

    前言此实验是通过STM32CubeMX来配置stm32实现按键输入,以此来了解stm32I/O输入操作及如何使用HAL库来实现I/
    发表于 03-01 06:58

    用于PLC I/O模块的具有双隔离输出的1W电源参考设计

    描述此参考设计是一个具有双隔离输出的 1W 电源,适合于空间受限的应用。利用 24V 和 3.3V 隔离输出,此设计专用于为工厂自动化设置的可编程逻辑控制器 (PLC)
    发表于 09-22 06:22

    STM32_ USART输入输出讲解

    STM32_USART输入输出讲解
    的头像 发表于 04-08 10:46 4165次阅读
    STM32_ USART<b class='flag-5'>输入输出</b>的<b class='flag-5'>讲解</b>

    PLC的工作方式是怎样的 plc是如何实现控制plc输入输出原理

    PLC具有监控和自诊断功能,能够实时监测系统的运行状态,检测故障并自动进行错误处理。总之,PLC的工作方式是通过对输入信号进行采集、处理、逻辑运算和
    发表于 03-13 17:19 8721次阅读

    PLC输入输出端的工作原理和接线方法

      PLC输入/输出(I/O)是指PLC系统用来连接输入输出设备的电路。
    发表于 03-17 17:37 1.8w次阅读

    PLC输入/输出设备的连接图解

    时应注意以下几种情况: (1)输入是否需外接电源。 (2)输入串接电源类型:交/直流任意或指定交流。 (3)电源幅值和极性的要求 输出端连接与PLC
    发表于 04-19 09:51 0次下载
    <b class='flag-5'>PLC</b>与<b class='flag-5'>输入</b>/<b class='flag-5'>输出</b>设备的连接图解

    plc带模拟量输入输出和不带模拟量输入输出有什么区别啊?

    plc带模拟量输入输出和不带模拟量输入输出有什么区别啊? PLC是一种广泛应用的自动化控制器,它可通过
    的头像 发表于 10-17 16:44 1064次阅读

    PLC控制系统设计的输入回路接线

    对于不同的PLC输入电路应正确选择传感器(NPN或PNP)的输入方式,NPN型传感器动作时,OUT端为0V,(NPN型输出端OUT应和
    发表于 12-01 15:25 240次阅读
    <b class='flag-5'>PLC</b><b class='flag-5'>控制</b>系统设计的<b class='flag-5'>输入</b>回路接线

    plc输入输出的运行原理

    plc输入端24v. 说明plc输入是PNP输入,要知道怎么接线必须知道plc
    发表于 12-17 09:27 317次阅读
    <b class='flag-5'>plc</b><b class='flag-5'>输入输出</b>的运行原理