-
7.4 I/O方式
2019-09-11 20:03:22输入/输出系统实现主机与I/O设备之间的数据传送,可以采用不同的控制方式,常用的I/O控制方式有程序查询,程序中断,DMA和通道等,其中前两种方式更依赖于CPU中程序指令的执行。 程序查询方式 信息交换的控制...输入/输出系统实现主机与I/O设备之间的数据传送,可以采用不同的控制方式,常用的I/O控制方式有程序查询,程序中断,DMA和通道等,其中前两种方式更依赖于CPU中程序指令的执行。
程序查询方式
信息交换的控制完全由主机执行程序实现,程序查询方式的接口中设置一个数据缓冲寄存器(数据端口)和一个设备转态寄存器(状态端口)。
程序中断方式
程序中断方式的工作流程
1> 中断请求
中断请求是指中断源向CPU发送中断请求信号。每个中断源向CPU发送中断请求的时间是随机的。为记录中断事件并区分不同的中断源,中断系统需对每个中断源设置中断请求标记触发器INTR,当其状态为“1”时,表示中断源有请求。
外中断源是指来自处理器和内存以外的部件引起的中断,包括I/O设备发出的I/O中断,外部信号中断(用户Esc键)
内中断主要是指在处理器和内存内部产生的中断,包括程序运算引起的各种错误,如地址非法,校验错
硬件中断:通过外部的硬件产生的中断。硬件中断属于外中断。
软件中断:通过某条指令产生的中断,这种中断是可以编程实现的。软件中断是内中断。
非屏蔽中断:非屏蔽中断是一种硬件中断,此种中断通过不可屏蔽中断请求NMI控制,不受中断标志位IF的影响,即使在关中断(IF=0)的情况下也会被响应。
可屏蔽中断:可屏蔽中断也是一种硬件中断,此种中断通过中断请求标记触发器INTR控制,且受中断标志位IF的影响,在关中断情况下不受中断请求
2> 中断判优
中断判优既可以用硬件实现,有可用软件实现。硬件实现是通过硬件排队器实现的。软件实现是通过查询程序实现的。
3> CPU响应中断的条件
1.中断源有中断请求 2.CPU允许中断及开中断 3.一条指令执行完毕,且没有紧迫的任务。
4> 中断隐指令
CPU响应中断后,经过某些操作,转去执行中断服务程序。这些操作是由硬件直接实现的。我们将它成为中断隐指令。
5> 中断向量
不同设备有不同的中断服务程序,每个中断服务程序都有一个入口地址,CPU必须找到这个入口地址,即中断向量。
多重中断和中断屏蔽技术
DMA方式
DMA方式是一种完全由硬件进行成组信息传递的控制方式,它具有程序中断方式的优点。DMA方式在外设和内存之间开辟一条“直接数据通路”信息传送不再经过CPU,降低了CPU在传送数据时的开销,因此称为直接存储器存取方式。
-
【学习笔记之数据库系统工程师】计算机系统中常用的输入/输出控制方式
2020-11-09 15:28:30直接程序控制(无条件传送/程序查询方式)...由程序控制1/O的方法,其主要缺点在于CPU必须等待I/O系统完成数据传输任务,在此期间CPU需要定期地查询l/O系统的恶状态,以确认传输是否完成。因此整个系统的性能严重下降。直接程序控制(无条件传送/程序查询方式)
无条件传送:在此情况下,外设总是准备好的,它可以无条件地随时接收CPU发来的输出数据,也能够无条件地随时向CPU提供需要输入的数据。
程序查询方式:在这种方式下,利用查询方式进行输入输出,就是通过CPU执行程序查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据,
中断方式
由程序控制1/O的方法,其主要缺点在于CPU必须等待I/O系统完成数据传输任务,在此期间CPU需要定期地查询l/O系统的恶状态,以确认传输是否完成。因此整个系统的性能严重下降。
直接主存存取(Direct Memory Access,DMA)
是指数据在主存与I/O设备间的直接成块传送,即在主存与I/O设备间传送数据块的过程中**,不需要CPU作任何干涉**,只需在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时由CPU进行处理,实际操作由DMA硬件直接完成,CPU在传送过程中可做别的事情。
-
I/O设备和CPU之间数据传送控制方式
2020-03-10 11:21:01常用的I/O设备和CPU之间数据传送控制方式有4种,分别为程序直接控制方式、中断控制方式、DMA方式和通道方式。 程序直接控制方式和中断控制方式都只适用于简单的、外设很少的计算机系统,因为程序直接控制方式耗费...常用的I/O设备和CPU之间数据传送控制方式有4种,分别为程序直接控制方式、中断控制方式、DMA方式和通道方式。
程序直接控制方式和中断控制方式都只适用于简单的、外设很少的计算机系统,因为程序直接控制方式耗费大量的CPU时间,而且无法检测发现设备或其他硬件产生的错误,设备与CPU、设备与设备只能串行工作。
中断控制方式虽然在某种程度上解决了上述问题,但由于中断次数多,因而CPU仍需要花费较多的时间处理中断,而且能够并行操作的设备台数也受到中断处理时间的限制,中断次数增多也导致数据丢失。
DMA方式和通道方式较好地解决了上述问题。这两种方式采用了外设和内存直接交换数据的方式。只有在一段数据传送结束时,才发出中断信号要求CPU做善后处理,从而大大减少了CPU的工作负担。]
DMA方式与通道控制方式的区别是,DMA方式要求CPU执行设备驱动程序来启动设备,给出存放数据的内存起始地址以及操作方式和传送字节长度等; 而通道控制方式则是在CPU发出I/O启动命令之后,由通道指令来完成这些工作。
-
嵌入式系统/ARM技术中的嵌入式系统中闪存设备I/O软件的设计与实现
2020-12-08 12:43:10摘 要 闪存作为最常用的嵌入式存储设备,其管理和访问技术对整个系统的性能...闪存作为广泛使用的嵌入式存储设备,其管理技术和访问方式经历了一个由开发人员直接控制到由操作系统的I/O软件间接控制的过程。然而目前 -
Roboguide软件:通过机器人I/O信号控制变位机仿真运行
2020-01-01 19:33:26变位机是机器人工作站中常用的外围设备,机器人变位机的控制方式有两种:一、作为机器人的外部轴,由机器人控制器进行运行控制,这种控制方式变位机可以与机器人进行联动实现直线插补或圆弧插补运行,这种作为机器人...本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注!
变位机是机器人工作站中常用的外围设备,机器人变位机的控制方式有两种:一、作为机器人的外部轴,由机器人控制器进行运行控制,这种控制方式变位机可以与机器人进行联动实现直线插补或圆弧插补运行,这种作为机器人外部轴的变位机相对来讲价格会很昂贵;二、通过I/O信号直接控制变位机运行,即由外部PLC直接控制运行,PLC与机器人进行信号交互,机器人间接控制变位机运行,这种控制方式的变位机相对来讲价格便宜很多,但是不能与机器人进行联动运行。本期,就来为大家介绍一下,通过I/O信号控制机器人变位机的运行仿真方法。
使用软件版本:ROBOGUIDE 9.1
一、机器人系统创建
在Roboguide软件中随便添加一款机器人数模,并创建机器人系统,创建时配置参数全部选择默认即可。
二、机器人变位机Base数模导入
机器人变位机的结构比较简单,对于单轴变位机通常分为两个部分:一、变位机Base,它是变位机的支撑机构;二、变位机旋转台,它是变位机的旋转变为机构。首先,我们来导入机器人变位机的Base机构数模。
1.点击“Cell”菜单,在弹出的对话框中依次点选“Add Machine”→“CAD File”,在弹出的对话框中浏览到文件目录C:\ProgramData\FANUC\ROBOGUIDE\Image Library\Positioners\FANUC\1AxisArcPositioner1000kg中,然后选择并打开机器人变位机Base数模1AXIS_ARC_POSITIONER_1000KG_BASE.CSB。
2.数模导入后自动弹出变位机Base属性对话框,在其下的General属性标签下,设置变位机Base位置参数,将其摆放到合适位置处。
三、机器人变位机旋转台数模导入
1.左侧工作站浏览树种Machines下右击机器人变位机Base,在弹出的快捷菜单中依次点选“Add Link”→“CAD File”,在弹出的对话框中浏览到变位机Base数模存放目录下,选择并打开变位机旋转台数模1AXIS_ARC_POSITIONER_1000KG_J1。
2.机器人变位机旋转台数模导入后自动打开属性对话框,点选Link CAD属性标签,在其下设置变位机旋转台的位置、姿态,使其正确安装到变位机Base上。
四、机器人变位机电机添加
在机器人变位机旋转台属性对话框中,点选General属性标签,在其下首先输入变位机旋转台名称1AXIS_ARC_POSITIONER_1000KG_J1,然后设置电机的位置、姿态参数,使得电机旋转轴与变位机旋转台同轴,最后取消勾选“Couple Link CAD”选项,点击Apply按钮。
五、机器人变位机运动参数配置
在机器人变位机旋转台属性对话框中,点选“Motion”属性标签,在其下的Motion Control Type下点选“Device I/O Controlled”,Inputs、Outputs功能区域下分别设置变位机的控制信号与变位机运行状态反馈信号,如下图所示。
- Inputs功能区域下各个参数选项说明:
Output Dev:用于控制外围设备的机器人控制器。
IO Tag:用于控制外围设备的输入/输出信号类型和编号,例如,DO [1-10]表示信号类型为DO,并且地址从1到10。
Value:触发外围设备运行所需的信号值,只能设置ON或OFF。
Location:控制信号触发后,外围设备最终要达到的运行位置。
Test:外围设备控制信号配置运行测试
- Outputs功能区域下各个参数选项说明:
Input Dev:用于接收外围设备运行状态反馈信号的机器人控制器。
IO Tag:用于反馈外围设备运行状态的输入/输出信号类型和编号,例如,DI [1-5]表示信号类型为DI,并且地址从1到5。
Value:反馈外围设备运行状态的信号值,只能设置ON或OFF。
Location:反馈信号触发后,外围设备最终运行状态对应的位置值。
六、机器人变位机手动运行测试
1.点击“Tools”菜单,在弹出的下拉菜单中点选“I/O Panel Utility”,在弹出的I/O Panel对话框中配置并添加机器人变位机控制信号与运行状态反馈信号DI[1]、DI[2]、DO[1],使其在I/O Panel中显示。
2.在I/O Panel对话框中点击机器人变位机控制信号DO[1],可以看到变位机数模随之控制信号的置位、复位而旋转运行,同时变位机反馈信号DI[1]、DI[2]也交替反馈变位机的运行状态。
七、机器人变位机自动运行测试
除了手动运行测试变位机以外,还可以通过编写机器人程序,对机器人变位机进行自动运行测试。
1.点击“Teach”菜单,在弹出的下拉菜单中点击“Add TP Program”,在弹出的Add Program对话框中输入TP程序名称,点击确定按钮。
2.此时自动弹出机器人虚拟示教器,然后在其中编写如下图所示的程序,用以控制机器人变位机的运行。
3.点击“Cycle Start”命令按钮,机器人变位机数模开始按照编写的控制程序旋转运行,直到程序结束为止。
The End
-
-
I/O流类库(五)
2016-01-05 18:48:13输出流格式化 以操纵子方式格式化 数据输入输出的格式控制使用系统头文件中提供的操作符。把它作为插入操作符的输出对象即可。 以成员函数方式格式化 ...操纵子方式常用的流操纵子 ios类中的枚举常量 #inclu -
java I/O(一)——基本操作&&java.util.zip压缩
2016-05-06 10:32:461.Java I/O框架采用装饰器模式,可按照读写方式分为字节流和字符流,二者根据数据源的不同都封装了不同的类(ByteArray、String、File、Pipe等),FilterInputStream、FilterOutputStream是用来提供装饰器类接口以... -
NIO:同时支持阻塞与非阻塞模式,但这里我们以其同步非阻塞I/O模式来说明,并且是面向缓冲区的 AIO:异步非阻塞I/O模型 详情移步:https://github.com/higminteam/practice/blob/master/src/main/java/com/practice/io...
-
限制23端口被访问_计算机组成:输入/输出接口的端口编址与寻址
2021-01-13 09:17:17端口的编址与寻址接口中通常都设置了一些用于数据、控制和状态缓存的寄存器,这些寄存器就是能够让CPU直接访问的I/O端口。为了便于CPU对外部设备的快速识别和选择,必须对接口中所有可访问的寄存器(I/O端口)进行编址... -
uboot无法操作寄存器接口_计算机组成:输入/输出接口的端口编址与寻址
2020-11-24 11:24:00端口的编址与寻址接口中通常都设置了一些用于数据、控制和状态缓存的寄存器,这些寄存器就是能够让CPU直接访问的I/O端口。为了便于CPU对外部设备的快速识别和选择,必须对接口中所有可访问的寄存器(I/O端口)进行编址... -
入门学习Linux常用必会60个命令实例详解doc/txt
2011-06-09 00:08:45◆ Windows 95/98常用的FAT 32文件系统:vfat ; ◆ Win NT/2000 的文件系统:ntfs ; ◆ OS/2用的文件系统:hpfs; ◆ Linux用的文件系统:ext2、ext3; ◆ CD-ROM光盘用的文件系统:iso9660。 虽然vfat是指... -
Jieba工具是最常用的中文文本分词和处理的工具之一,它能实现中文分词、词性标注、关键词抽取、获取词语位置等功能。 6.2.2绘图接口设计 新闻文章原文通过数据清洗回得到一个词语统计CSV文件,文件中记录词语的频率...
-
如何用O(1)复杂度查找到stack里面的最小值 八皇后 C++自己实现一个队列 数组和链表的区别 什么是kd-tree,如何实现 青蛙跳台阶的递归和非递归实现 5. 操作系统相关 如何调试栈溢出 计算机内存堆和栈的区别...
-
敖丙说了这么多次 I/O,可你知道其中的原理么? 敖丙听说你 ping 用的很 6 ?给我图解一下 ping 的工作原理! 硬核!30 张图解 HTTP 常见的面试题 一次相亲经历,我彻底搞懂了什么叫阻塞非阻塞,同步异步 敖丙稳住了...
-
我们希望测试逻辑能够用Python编写,能够在电脑上运行的时候就控制手机。这里要非常感谢 Xiaocong He (@xiaocong),他将这个想法实现了出来(见xiaocong/uiautomator),原理是在手机上运行了一个http rpc服务,将...
-
数据分析如何入门学习How do I learn data analysis with Python? 虽然是英文的,不过看一遍很大收获(可以用百度翻译看一下) Numpy使用 快速入门Numpy Stack Overflow Numpy问题汇集 书籍推荐NumPy Cookbook -...
-
在多个设备/模拟器连接的情况下较常用的是 -s <serialNumber> 参数,serialNumber 可以通过 adb devices 命令获取。如: $ adb devices List of devices attached cf264b8f device emulator-5554 device 10....
-
dcs常用的冗余方式_DCS系统的选型设计调试
2021-01-03 07:50:19DCS是分布式控制系统在国内自控行业又称之为集散控制系统。它是一个由过程控制级和过程监控级组成的以通信网络为纽带的多级计算机系统,...DCS控制系统中的I/O控制系统需要建立信号的输入和输出通道,这就是I/O。DCS... -
这些规则反映了最有经验的优秀程序员在实践中常用的一些有益的做法。 OnJava8:《On Java 8》中文版,又名《Java 编程思想》第 5 版, Java 四大名著之一。 java-design-patterns : Design patterns implemented ...
-
最近把基础部分的内容重新创建了一个名为“Python-Core-50-Courses”的项目,用更为简单通俗的方式重写了这部分内容并附带了视频讲解,初学者可以关注下这个新项目。国内用户如果访问GitHub比较慢的话,也可以关注我...
-
操作系统复习_设备管理
2020-06-22 15:43:351.常用I/O数据传送方式 2.I/O独立编址与统一编址 3.Spooling系统 4.I/O软件的分层结构及其功能 5.磁盘设备读写时间构成 6.常用磁盘臂调度算法 1.常用I/O数据传送方式 程序控制I/O方式 中断驱动I/O方式 DMA控制I/O... -
when.py:提供用户友好的函数来帮助用户进行常用的日期和时间操作。 dateutil:Python 标准包 datetime 的扩展。 moment:一个处理日期/时间的库,灵感来自 Moment.js。 pytz:支持跨平台时区计算,并将 tz ...
-
其中为学习速率,控制梯度下降的速度,一般取0.01,0.03,0.1,0.3..... 为什么梯度下降可以逐步减小代价函数 假设函数f(x) 泰勒展开:f(x+△x)=f(x)+f'(x)*△x+o(△x) 令:△x=-α*f'(x) ,即负梯度方向乘以一个很小...
-
Wi-Fi的切换和控制、IP的切换、图形验证码的识别。 使用制作 cydia repo 进行部署 进程通信:librocketbootstrap 设备信息的修改:使用capstone 对二进制文件进行反汇编来定位方法的地址,以便于MSHookFunction ...
-
Java I/O 磁盘操作、字节操作、字符操作、对象操作、网络操作、NIO Java 虚拟机 运行时数据区域、垃圾收集、内存分配机制、类加载机制、性能调优监控工具 Java 设计模式 Java 常见的 10 余种设计模式,全...
-
操作系统 第六章 输入输出系统知识点总结(1)
2020-06-13 08:27:12理解程序I/O方式,中断驱动I/O方式,DMA I/O控制方式和I/O通道控制方式 理解缓冲的引入目的,以及引入缓冲以后可带来的好处。 理解什么是设备独立性以及如何实现设备独立性 理解什么是虚拟设备技术,什么是Spooling... -
8086/8088汇编语言程序设计教程
2008-10-22 22:52:545.1.1 I/O端口地址和I/O指令 5.1.2 数据传送方式 5.1.3 存取RT/CMOS RAM 5.2 查询方式传送数据 5.2.1 查询传送方式 5.2.2 读实时钟 5.2.3 查询方式打印输出 5.3 中断 5.3.1 中断和中断传送方式 5.3.2 中断向量表 ... -
5-IO设备
2021-02-27 10:14:28I/O管理 1.I/O设备的概念 I/O设备是输入输出设备,又名外部设备 1.使用特性分类:人机交互类外部设备(鼠标键盘等)、...- 接收和识别CPU发出的命令(I/O控制器存有相应的控制寄存器) - 向CPU报告设备的状态(I/O控制器存 -
Ubuntu权威指南(2/2)
2010-12-05 09:01:538.9.1 while循环的I/O重定向 221 8.9.2 until循环的I/O重定向 222 8.9.3 for循环的I/O重定向 222 8.10 Here文档 223 8.11 Shell函数 227 8.12 逻辑与和逻辑或并列结构 232 8.12.1 逻辑与命令并列结构 232 8.12.2 ...
-
华为1+X——网络系统建设与运维(高级)
-
表达功能数据科学介绍000-源码
-
debug启动jar项目
-
MySQL 数据库权限管理(用户高级管理和精确访问控制)
-
MySQL 事务和锁
-
网络编程学习笔记
-
2021-03-01
-
具有超窄波长间隔的多波长光纤参量振荡器
-
MySQL 主从复制 Replication 详解(Linux 和 W
-
双波长高光谱分辨率激光雷达光谱鉴频器设计
-
使用 Linux 平台充当 Router 路由器
-
CBOEX交易所—牛年开跑,开启数字交易新局面!
-
投标方法论
-
朱老师鸿蒙系列课程第1期-3.鸿蒙系统Harmonyos源码配置和管理
-
轴承健康诊断的非线性降噪振动分析方法
-
华为TE10轻型云视讯终端技术参数
-
连接服务器上mysql报错: Communications link failure
-
fetch网络封装
-
文字转语音工具.zip
-
立式太阳模拟器俯视多维调节准直镜机构设计