- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机组成原理输入输出任国林版课件精要.ppt
2、I/O接口的软件组成 *软件组成:按照设备操作特性、I/O传送方式需求,对I/O接口的相应I/O端口进行按序操作的程序; *I/O指令:功能—I/O读指令、IO写指令; 格式— 例:8086汇编语言的I/O指令格式— IN AL, DX 及 OUT DX, AL C语言的I/O函数格式— BYTE inp(unsigned short usPort); BYTE outp(unsigned short usPort, BYTE btData); 操作码 I/O端口地址 CPU中REG地址 I/O端口地址格式 I/O接口(设备)码 I/O端口序号 *I/O端口:种类—数据端口、命令端口、状态端口; 编址—不同I/O端口有不同的地址; 3、I/O接口的分类 *按数据传送方式分类: 并行接口—接口-设备间同时传输n位数据, 串行接口—接口-外设间逐位传输n位数据; *按功能选择方式分类: 可编程接口—可通过软件选择接口功能及工作方式, 不可编程接口—须通过硬连线选择接口功能及工作方式; *按传送控制方式分类: 程序查询方式接口—CPU完成设备状态查询及传送工作, 程序中断方式接口—CPU在设备就绪时完成传送工作, DMA方式接口—CPU只完成准备及结束工作。 作业一:P293— 2、9、11 §7.4 程序查询方式 一、程序查询方式的流程 *传送控制思想:CPU不停地查询外设状态,在外设空闲或准备好时,才与外设交换数据; *传送控制流程: 11 测试所读状态 N 与外设交换数据 读取外设状态 Y 外设就绪? 启动外设工作 测试所读的状态 N 与I/O接口(外设)交换数据 读I/O接口(外设)状态 Y 外设就绪? I/O接口立即启动外设 写控制口 读状态口 读/写数据口 比较 条件转移 相应的CPU指令 优化 *接口编程:程序须满足程序查询方式流程、外设传送控制协议需求; BYTE Buff[100], *pCur = Buff[0], Stat; int i = 0; while ( *pCur != 0 i 100 ) { do{ Stat = inp(0x71); Stat = Stat 0x80; } while ( Stat = = 0 ); outp(0x70,*pCur); pCur++; i++; //可插入其他功能程序段 } 例—打印机接口的数据口及状态口地址分 别为70H和71H,状态口信息格式约定如右图: 用C语言编写打印字符串(以“\0”为结束符)的程序段。 BUSY# …… PE b7 b0 BUSY#=1—准备好, 0—打印机忙 Stat←71H端口 Y N 70H端口←*pCur Y N Stat←Stat0x80 pCur++,i++ Stat=0? *pCur=0? *接口部件组织:须设置状态口,其中包含就绪/忙位(RD); 二、程序查询方式的接口组织 34 设备选择电路 端口译码电路 控制口 数据口 Q S BS R 状态口 Q S RD R I/O设备 *工作过程组织:可响应3种总线操作,可触发设备操作 初始化/启动设备操作—触发启动设备、准备数据; ① ③ ② ③命令 ⑤启动 ⑤ ⑥输入数据 ⑦工作结束 ④ ⑧ 状态查询操作—不触发设备侧任何动作; ⑴ ⑶ ⑵ ⑶状态 数据传送操作—触发启动设备、准备数据 ㈠ ㈢ ㈡ ㈢数据 程序查询方式流程优化所需 三、无条件传送方式 *传送控制原理:CPU可随时与外设通信,无需查询其状态; *接口部件组织:无需设置状态口,与外设只连接数据线; *应用范围:只适用于与简单外设的通信,如灯、开关等; 34 例1—设总线宽度为8位,并行接口的数据口(设地址为60H)为8位、与引脚一一对应,如图接有8个信号灯,用C语言编写轮流点亮一个信号灯的程序。 while ( !kbhit() ) { BYTE Lamp[8]={0xFE,0xFD,0xFB, 0xF7,0xEF,…}; for ( int i = 0; i 8; i++ ) { outp(0x60, Lamp[i]); Sleep(1);
文档评论(0)