第七章: 输入, 输出接口§7.1 输入, 输出(I/O)接口一: I/O接口的作用1: 高速CPU与低速外设数据传送的同步及配合2: 并行数据传送与串行数据传送之间的转换二: I/O接口中的信息流1: 数据信息A: 方向CPU ←→I/O接口←→外设双向B: 类型1): 数据量二进制形式的数据例: CPU ←→磁盘CPU ←→键盘CPU ←→显示器2): 开关量两种状态的物理量例: 开关的通断, 水位的高低3): 模拟量连续变化的物理量例: 交流电, 温度, 气压2: 状态信息A: 方向CPU ←―I/O接口←―外设单向B: 方式1): 对输入接口, CPU是否准备好接收数据, READY 准备好吗.2): 对输出接口, 外设是否准备好接收数据, BUSY 外设忙吗. 3: 控制信息A: 方向CPU ―→I/O接口―→处设单向B: 方式1): CPU要求外设开始工作, 即启动外设2): CPU要求外设终止工作, 即停止外设注: 数据信息是CPU与外设经I/O接口传送的有用信息, 状态, 控制信息是CPU经I/O接与外设传送的配合信息, 为了CPU与外设间的数据传送, 加入握手信息(状态, 控制) 是必要的三: I/O接口芯片的特点I/O接口芯片是构成I/O接口电路的关键1: 类型A: 并行接口芯片与串行接口芯片B: 通用接口芯片与专用接口芯片C: 不可编程接口芯片与可编程接口芯片2: 可编程接口芯片对信息的处理A: 可编程接口芯片有多个不同应用的寄存器B: 控制寄存器用于存放CPU 写入的控制字C: 数据寄存器用于存放CPU 与外设交换的有用信息状态, 控制寄存器用于存放CPU 与外设间的配合信息3: 可编程接口芯片寄存器的使用A: 访问外设即访问对应的芯片寄存器B: 不同的寄存器有不同的端口地址,即用地址访问,而非用名访问 C: 编程中使用 IN, OUT 指令访问寄存器4: 接口与端口A: 接口 — 接口芯片或完成一个外设的操作所用的接口电路 B: 端口 — 一个接口中不同信息流传送所需的地址通道注: 一个接口中有多个端口§7.2 CPU 与外设数据传送的控制方式一: 程序控制方式✓ 无条件程控方式 — 无需状态,控制信息配合,仅有数据信息传送 ✓ 有条件程控方式 — 需状态, 控制信息配合, 三种信息均要传送1: 无条件程控方式A: 应用条件1): 外设输入的物理量变化缓慢, 即无跳变信号输入2): CPU 输出的数据外设可直接使用B: 接口特点1): CPU 的DB ―→ I/O 接口(输出锁存器) ―→ 外设2): CPU 的DB ←― I/O 接口(输入缓冲器) ←― 外设C: 例7.1 用DB 中的 D0, D1, D2 获得 A, B, C 三路波形硬件:电路: 数据输入 波形输出A7 A0口地址 = 8CH译码电路A1A2A3A4A5A6软件:数据: C B A时间D2 D1 D0 数值T1 0 0 1 01HT2 0 1 0 02HT3 1 1 0 06HT4 0 1 1 03HT5 0 1 0 02HT6 1 0 0 04HT7 1 0 0 04HT8 0 0 0 00H程序:DA TA SEGMENTTAB DB 8, 01H, 02H, 06H, 03H, 02H, 04H,04H,00H; 数8 表示有T1 – T8共8个数据PROT EQU 8CH ; 8CH 为输出口地址, 由译码电路产生DA TA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATABGN: PUSH DSMOV AX, 0PUSH AXMOV AX, DA TAMOV DS, AX ; 前面指令为初始化STR: LEA BX, TAB ; TAB 地址指针送BXMOV CH, 0MOV CL, [BX] ; (CL) = 8 因为(CH) = 0 所以(CX) = 8 LOP: INC BX ; BX 指向T1 数据01HMOV AL, [BX] ; (AL) = 01HOUT PORT, AL ; 将01H 数据从8CH 口输出PUSH CXCALL DEL Y ; 调用延时子程序POP CX ; 由于在延时子程序中使用CX 故需入出栈DEC CX ; 计数器CX 减1JNZ LOP ; CX 不为0 循环输出T2 – T8, CX 为0 退出JMP STR ; 连续输出T1 – T8 波形DELY PROC NEARMOV CX, 2801WA T: LOOP W AT ; 主频4.7M时, 延时10MSRET ; 过程返回DELY ENDP ; 过程结束CODE ENDS ; 码段结束END BGN ; 汇编结束2: 有条件程控方式(状态查询方式)工作过程✓CPU向I/O口的控制端口写控制信息(程序中此处未写)✓CPU从I/O口的状态端口读状态信息✓根据状态错误,CPU反复查询状态正确,CPU与外设经I/O口的数据端口传送数据(1): 查询式输入A: 硬件电路原理图图7-4查询输入接口电路1): I/O口端口地址数据口状态口控制口2): I/O口端口信息8位1位无3): 状态位定义B7 = 1 外设数据准备好,可从数据口读数据B7 = 0 外设数据未准备好,继续查询状态位B: 工作过程1): 输入设备准备好数据后, 发正脉冲选通信号2): D触发器Q端为高电平(送1位状态信息)锁存器输出端锁存输入数据(送8位数据信息)3): 开状态端口,读状态信息,若为低循环查询, 若为高状态正确4): 开数据端口,将输入数据读入AL,清D触发器Q端为低电平5): 从复以上过程C: 软件1): 状态位定义图7-5 (A) b72): 流程图图 7-5 (B)3): 程序段POLL: IN AL, ATATUS_PORT ; 从状态口输入信息到 (AL)TEST AL, 80H ; 测试 B7位是否为 0JE POLL ; 为 0, 状态不正确, 循环读IN AL, DATA_PORT ;为1,状态正确,从数据口读数据(2 ): 查询式输出A: 硬件电路原理图图7-71): I/O口端口地址数据口状态口控制口2): I/O口端口信息8位1位无3): 状态位定义B7 = 0 外设空, 可从数据口读数据B7 = 1 外设不空, 继续查询状态位B: 工作过程1): 输出设备空, 向I/O口发负脉冲选通信号ACK2): D触发器Q端低电平送状态端口输入端3): 开状态端口,读状态信息,若为高循环查询,若为低状态正确4): 开数据端口, 将AL中的数据经锁存器送外设,清D触发器Q 端为低电平5): 从复以上过程C: 软件1): 状态位定义图7-8 (A)b72): 流程图图3): 程序段POLL: IN AL, ATATUS_PORT ; 从状态口输入信息到 (AL) TEST AL, 80H ; 测试 B7位是否为 1JNE POLL ; 为 1, 状态不正确, 循环读IN AL, DATA_PORT ;为 0,状态正确, 从数据口读(3): 查询方式下的优缺点A: 优点硬件电路简单, 软件编程容易B: 缺点由于循环查询状态位, CPU 等待若硬件故障使状态不正确, 造成假死机1:硬件电路原理图图7-111: 中断请求与中断响应A: 8086CPU 有关引脚1): INTR ——中断请求, 输入, H 有效2): /INTA ——中断响应, 输出, L 有效B: 中断工作过程1): 外设需要CPU服务时, 外设―→I/O接口―→CPU发中断请求, INTR = H(中断允许开)2): CPU执行完当前指令后, CPU―→I/O接口―→外设发中断响应, /INTA = L3): CPU执行中断服务程序, CPU ←→I/O接口←→外设读写数据2: 中断控制方式中的信息A: 中断请求(状态信息)1): 输入设备准备好数据2): 输出设备准备接收数据B: 中断响应(控制信息) 外设可以进入数据传送C: 中断服务(数据信息)CPU ←→I/O接口←→外设读写数据3: 中断控制方式的优缺点A: 优点CPU被动, 外设主动, 提高CPU效率B: 缺点硬件电路复杂, 需要专用芯片(第八章讲)1: 存储器与存储器间的数据传送A: 传统方式MOV [2000H], [1000H] 错误, 存储器间不能直接传数MOV AL, [1000H]MOV [2000H], AL 正确, 应用寄存器作传数中介IN [3000H], 20H 错误, I/O端口数据不能直接读入存储器IN AL, 20HMOV [3000H], AL 正确, 应用寄存器作传数中介B: DMA方式不用寄存器作传数中介, 完成存储器间的直接传数2: DMA方式原理方框图§7.3: 串行通信的基本知识一: 串行通信的基本通信方式1: 串行通信协议A: 异步协议数据可顺次地出现在数据流中, 数据间的相对延迟没有用专门的数据时钟来控制B: 同步协议数据流中顺次出现的数据由一个数据时钟来管理, 以一定的时间间隔出现2: 异步传送方式A: 异步传送的特点1): 数据在线路上的传送不是连续的2): 收发双方各用自已的时钟源控制接收和发送B: 异步传送的格式传送字符由4部分组成1): 起始位——1bit, 0电平2): 数据位——Nbit, 有效电平3): 校验位——1bit, 与数据位中的值有关, 可不用4): 停止位——1 ~ 2bit, 1电平C: 异步传送中的数据同步位——起始位1): 发端按传送格式发数据流2): 收端若收到0电平(1bit), 则认为后面将固定收Nbit数据位和1bit校验位D: 异步传送中数据间的延迟时控制——停止位1): 固定收Nbit数据位和1bit校验位后2): 固定收异步传送格式定义的停止位(固定延迟)3): 若无新的起始位(0电平), 则收Mbit个1电平(可变延迟) E: 收发端的一致性特点1): 收发端必顺采用相同的异步传送格式2): 收发端必顺采用相近的速率(波特率)3: 同步传送方式A: 同步传送的特点1): 数据在线路上的传送是连续的B: 同步传送的格式由同步字符和数据块组成1): 同步字符——用协议规定的字节数据2): 数据块——由协议规定长度的字节数组成4: 异步, 同步传送比较A: 异步——用位作为收发字符的同步信号, 相对效率低B: 同步——用字节作为收发数据块的同步信号, 相对效率高二: 串行通信中的数据传送方式1: 单向传送方式仅A发B收或B发A收2: 半双工传送方式A, B均可收发, 但A,B不可同时收发3: 全双工传送方式A, B均可收发, 并且A,B可同时收发三: 并行/串行变换及串行接口1: 计算机系统内部的数据传送均采用并行传送计算机间的数据传送应采用串行传送2: 发送需完成数据的并行/串行变换接收需完成数据的串行/并行变换3: 用软件实现数据的并行/串行变换用硬件实现数据的并行/串行变换§7.4 PC/XT的I/O端口地址分配一: 端口地址分配原则1: 端口地址寻址所用地址线: A0 ~ A92: 端口地址数量1024 个口地址3: 实际可用端口地址数量因为A4值可任意, 512个口地址4: 端口地址值范围000H ~ 3FFH二: 系统板(主板)上的端口地址1: I/O端口地址特点A: A9 = 0, A8 = 0,用A0 ~ A7 进行地址译码, 为一字节口地址B: 地址范围为00H ~ FFHC: 地址与主板上的专用接口芯片有关2: 接口芯片与端口地址分配接口芯片名A4 = 0时的地址分配A4 = 1 时的地址分配8237 00H ~ 0FH 10H ~ 1FH8259 20H ~ 21H 30H ~ 31H8253 40H ~ 43H 50H ~ 51H8255 60H ~ 63H 70H ~ 73H8237页面80H ~ 83H 90H ~ 93H3: 其它地址分配不可屏蔽中断NMIA0H ~ AFH B0H ~ BFH 保留地址C0H ~ CFH D0H ~ DFHE0H ~ EFH F0H ~ FFH 三: 总线插槽上扩展板上的地址分配1: I/O端口地址特点A: A9, A8不全为0, 为二字节口地址B: 端口地址范围为100H ~ 3FFHC: 端口地址与插扳的功能有关2: 插扳与端口地址分配A: 插扳功能A4 = 1时的地址分配A4 = 0时的地址分配COM2 2F8H ~ 2FFH 2E8H ~ 2EFH试验板(声卡) 310H ~ 31FH 300H ~ 30FH硬盘驱动330H ~ 33FH 320H ~ 32FHPRT 378H ~ 37FH 360H ~ 36FHSDL 390H ~ 39FH 380H ~ 38FH单显3B0H ~ 3BFH 3A0H ~ 3AFH彩显3D0H ~ 3DFH 3C0H ~ 3CFH软盘驱动3F0H ~ 3F7H 3E0H ~ 3E7HCOM2 3F8H ~ 3FFH 3E8H ~ 3EFH B: 保留地地址100H ~ 2F7H, 用户开发专用插卡用四: 主板上的地址译码电路1: 逻辑方理图图7 – 122: 74LS138译码芯片的使能端与地址线A: G1 = H 接有效地址充许控制线ALEB: /G2A = L 接地址线A9 = 0C: /G2B = L 接地址线A8 = 03: 74LS138译码芯片的输入信号A7 A6 A5C B A0 0 0 /Y0 = L 8237 片选有效0 0 1 /Y1 = L 8259 片选有效0 1 0 /Y2 = L 8253 片选有效0 1 1 /Y3 = L 8255 片选有效1 0 0 /Y4 = L DMA页面有效1 0 1 /Y5 = L NMI 屏蔽有效1 1 0 /Y6 = L 末用1 1 1 /Y7 = L 未用4: A4未参加译码, 即可为L, 也可为H§7.4 计算机总线一: 总线概念1: 总线的定义: 各种信号线的集合, 标准化的产物2: 总线的功能A: 插件板的可扩展性B: 插件板的可谦容性C: 插件板几何尺寸的统一性3: 总线的内容A: 地址总线B: 数据总线注:意地址总线和数据总线不复用C: 控制总线注:意控制总线的特殊性D: 电源组与地4: 总线的类型A: 内总线计算机系统内的总线规范1): S – 100 总线早期工控总线2): STD – 56 总线常用工控总线3): PC/XT微机总线62芯多总线4): PC/AT 微机总线62芯+ 36 芯ISA总线5): PC386 微机总线62芯+ 36 芯+ 36芯EISA总线6): PCI微机总线128芯标准总线(目前最流行)B: 外总线计算机系统间的总线规范1): RS232 通信总线25 芯或者9 芯标准2): IEEE488 仪表总线24 芯标准3): USB 宽带通信总线标准●具有即插即用的热拔插功能●宽带串行传输率可达480Mbps●可同时支持127个外设工作●外设可由USB内置电源供电二: PC/XT 总线规范1: 数据总线信号引脚D0 ~ D7 A9 ~ A22: 地址总线信号引脚A0 ~ A19 A31 ~ A323: 控制总线A: 与CPU芯片有关例如信号引脚RESET B2/WR, /M/IO B11/RD, /M/IO B13 B: 与I/O接口芯片有关例如信号引脚+IRQ2 B4+DRQ3 B16 4: 电源组与地例如信号引脚+5V B3, B29+12V B9GND B1, B10三: PC机总线规范的发展随着CPU芯片的发展, PC/XT总线己不满足应用需要1: 在PC/XT总线基础上扩展A: PC286总线(ISA总线)1): 数据总线的扩展信号引脚D8 ~ D15 C11 ~ C182): 地址总线的扩展信号引脚A17 ~ A23 C8 ~ C13): 控制总线的扩展信号引脚BHE C1IRQ10 D3 B: PC386总线(EISA总线)数据总线扩展到32位, 地址总线扩展到32位总线标准为62 + 36 + 36芯2: 新的PC机总线标准––––PCI总线标准A: 数据传输率高, 64位时达266MB/SB: 具有即插即用功能, 硬件自动识别。