教学建议,本章重点为:•为什么要用接口;•CPU和输入/输出设备之间的信号;•接口的功能以及在系统中的连接;•中断传输的原理;•DMA方式的原理;•输入/输出过程中接口部件和地址总线错位连接的原理。第5章微型计算机和外设的数据传输5.1为什么要用接口•接口按功能分为两类–使CPU正常工作所需要的辅助电路–输入/输出接口•外部设备为什么一定要通过接口和主机相连?–时序上的原因–外部设备功能多种多样的原因–外部设备的信息既有数字式,又有模拟式的原因–多个外设共享总线的原因–速度的原因5.2CPU和输入/输出设备之间的信号•数据信息–数字量–模拟量–开关量•状态信息•控制信息5.3接口部件的I/O端口5.4.1接口的功能•寻址功能•输入/输出功能•数据转换功能•联络功能•中断管理功能•复位功能•可编程功能•错误检测功能5.4.2接口与系统的连接5.4.2接口与系统的连接•用读信号、写信号和地址A0区分4个寄存器5.5CPU和外设之间的数据传送方式•程序方式•中断方式•DMA方式5.5.1程序方式•无条件传送方式5.5.1程序方式•条件传送方式–CPU从接口中读取状态字。–CPU检测状态字–如“就绪”状态,则传送数据。5.5.1程序方式图5.4查询式输入的接口5.5.1程序方式图5.5查询式输出的接口5.5.1程序方式图5.6查询式输入过程的流程图DATA_SEGSEGMENTMESSAGEDB′BUFFEROVERFLOW′,0DH,0AHATA_SEGENDSCOM_SEGSEGMENTBUFFERDB82DUP(?)COUNTDB?COM_SEGENDSCODESEGMENTASSUMEDS:DATA_SEG,ES:COM_SEG,CS:CODESTAT:MOVAX,DATA_SEGMOVDS,AXMOVAX,COM_SEGMOVES,AXMOVDI,OFFSETBUFFERMOVCOUNT,DIMOVCX,81CLDNEXT_IN:INAL,56HTESTAL,02HJZNEXT_ININAL,52HORAL,0JPENO_ERRORJMPERRORNO_ERROR:ANDAL,7FHSTOSBMOVCX,17LOOPNENEXT_INJNEOVERFLOWMOVAL,0AHSTOSBSUBDI,COUNTMOVCOUNT,DIOVERFLOW:MOVSI,OFFSETMESSAGEMOVCX,17NEXT_OUT:INAL,56HTESTAL,01HJZNEXT_OUTLODSBOUT54H,ALLOOPNEXT_OUT查询的例子多个入设备轮流查询的例子TREE_IN:MOVFLAG,0INPUT:INAL,STAT1TESTAL,20HJZDEV2CALLPROC1CMPFLAG,1JNZINPUTDEV2:INAL,STAT2TESTAL,20HJZDEV3CALLPROC2CMPFLAG,1JNZINPUTDEV3:INAL,STAT3TESTAL,20HJZNO_INPUTCALLPROC3NO_INPUT:CMPFLAG,1JNZINPUT•3个设备处于相同优先级的循环查询程序,•INTREE:MOVFLAG,0•INPUT:INAL,STAT1•TESTAL,20H•JZDEV2•CALLPROC1•DEV2:INAL,STAT2•TESTAL,20H•JZDEV3•CALLPROC2•DEV3:INAL,STAT3•TESTAL,20H•JZNO_INPUT•CALLPROC3•NO_INPUT:CMPFLAG,1•JNZINPUT5.5.2中断方式•中断传送方式的原理图5.7中断方式输入的接口5.5.2中断方式•中断传送方式的原理图5.8可屏蔽中断的响应和执行5.5.2中断方式•中断优先级问题的解决图5.9典型的可编程中断控制器5.5.3DMA方式•DMA控制器的功能和DMA传送的原理图5.10用DMA方式传输单个数据(输出过程)5.5.3DMA方式•DMA控制器的内部最小配置和接口要求5.5.3DMA方式•DMA方式从接口往内存传输一个数据块,将按下面的过程动作:①发一个DMA请求。②发总线请求③地址寄存器的内容送到地址总线上。④发确认DMA传输的信号。⑤数据送到地址总线所指出的内存单元。⑥地址寄存器的值加1。⑦字节计数器的值减1。⑧如字节计数器的值不为0,则回到①;否则结束5.5.3DMA方式•启动数据块输入的程序段IDLE:INAL,INTSTATTESTAL,04JNZIDLEMOVAX,COUNTOUTBYTE-REG,AXLEAAX,BUFFEROUTADD-REG,AXMOVAL,DMACORAL,49HOUTDMACON,ALMOVAL,INTCORAL,05HOUTINTCON,AL5.5.3DMA方式•DMA控制器的工作特点–一方面是一个接口–另一方面能够控制系统总线5.5.4输入/输出过程中提出的几个问题•系统和接口的联系方式•优先级•缓冲区•接口和多字节数据总线的连接•接口部件和地址总线的错位连接