当前位置: >>
9 输入输出方法及常用的接口电路
第9章 输入/输出方法及常用的接口电路第9章 输入/输出方法及常用的接口电路9.1 9.2 9.3 概述? I/O端口的编址及基本输入/输出方法? 8255A并行接口电路?9.49.5可编程计数/定时器?DMA控制器8237A ?9.6串行通信及8251串行接口电路?第9章 输入/输出方法及常用的接口电路9.1 I/O接口的概念与功能?什么是I/O接口? 把外设连接到总线上的一组逻辑 电路的总称。实现外设与主机之间的 信息交换主机 接口 外部 设备主机通过I/O接口与外设交换信息第9章 输入/输出方法及常用的接口电路为什么主机与外设交换信息要通过接口电路??(1) 外部设备不能直接和CPU数据总线相 连,要借助于接口电路使外设与总线隔 离,起缓冲、暂存数据的作用,并协调 主机和外设间数据传送速度不配的矛盾CPU数据总线 片内 端口 选择 线 A0 A1 8 A0输入接口 A1 CS(含三态输入) ID7 ID1 ID0 片内 端口 选择 线 A0 A1CPU数据总线 8 A0输出接口 A1 CS(含锁存器) OD7 OD1 OD0地址 译码器地址 译码器A9A3 A2IOR (a)A9A3 A2IOW (b)片选地址线片选地址线经接口电路传送数据? (a) 经接口输入数据; (b) 经接口输出数据第9章 输入/输出方法及常用的接口电路?(2) 接口电路为主机提供有关外设的工 作状态信息及传送主机送给外设的控制 命令。 ?(3) 借助于接口电路对信息的传输形式进行变换。第9章 输入/输出方法及常用的接口电路接口(Interface)和端口(Port)的区别?端口(简称口)这个术语实际上指那些在接 口电路中完成信息的传送,并可由编程人 员寻址进行读写的寄存器。若干个口加上 相应的控制电路而构成接口。 ?端口主要有两类:一类为状态口和命令口。 另一类为数据口。数 据 总 线控 制 总 线地 址 总 线 数据输入寄存器 数据线 数据输出寄存器 数据线 外 部 输 入 或 输 出 设 备控制寄存器 状态线 状态寄存器 DB CB AB 接口外设通过接口与系统的连接第9章 输入/输出方法及常用的接口电路I/O接口电路分类?按不同方式分类主要有以下几种:(1) 按数据传送方式分类,可分为并行接口和串 行接口; (2) 按功能选择的灵活性分类,可分为可编程接 口和不可编程接口;(3) 按通用性分类,可分为通用接口和专用接口(4) 按数据控制方式分类,可分为程序型接口和 DMA(Direct Memory Access)型接口。第9章 输入/输出方法及常用的接口电路9.2 基本的输入/输出方法??程序控制的输入/输出方式 ? ?程序中断的输入/输出方式 ? ?直接存储器存取(DMA)方式?专用I/O处理器方式第9章 输入/输出方法及常用的接口电路程序控制的输入/输出方式无条件传送 ? 适用于总是处于准备好状态的外设 ? 以下外设可采用无条件传送方式:? 开关 ? 发光器件(如发光二极管、7段数码管、灯泡等) ? 继电器 ? 步进电机? 优点:软件及接口硬件简单 ? 缺点:只适用于简单外设,适应范围较窄第9章 输入/输出方法及常用的接口电路程序数据传送无条件数据传送第9章 输入/输出方法及常用的接口电路有条件传送? 适用于外设并不总是准备好,而且对传送速率、 传送效率要求不高的场合。 ? CPU在与外设交换数据前必须询问外设状态― “你准备好没有?” ? 对外设的要求:应提供设备状态信息 ? 对接口的要求:需要提供状态端口 ? 优点:软件比较简单 ? 缺点:CPU效率低,数据传送的实时性差, 速度较慢第9章 输入/输出方法及常用的接口电路输入状态字N 数据准备好没有? Y 数据传送有条件数据传送第9章 输入/输出方法及常用的接口电路2. 程序中断的输入/输出方式? CPU无需循环查询外设状态,而是外部设备 在需要进行数据传送时才中断CPU正在进行 的工作,让CPU来为其服务。即CPU在没有 外设请求时可以去做更重要的事情,有请 求时才去传输数据,从而大大提高了CPU的 利用率。 ? 优点:CPU效率高,实时性好,速度快。 ? 缺点:程序编制较为复杂。第9章 输入/输出方法及常用的接口电路3.直接存储器存取方式(DMA)? 前面二种I/O方式都需要CPU作为中介: 外设 CPU 内存 两个含义: ? 软件:外设与内存之间的数据传送是通过 CPU执行程序来完成的; ? 硬件:I/O接口和存储器的读写控制信号、 地址信号都是由CPU发出的(总线由CPU控 制)。 ? 缺点:程序的执行速度限定了传送的最大速度 (约为几十KB/秒) ? 解决:DMA传输
第9章 输入/输出方法及常用的接口电路? DMA传输: 外设 内存 ? 外设直接与存储器进行数据交换 ,CPU 不再担当数据传输的中介者; ? 总线由DMA控制器(DMAC)进行控制 (CPU要放弃总线控制权),内存/外设 的地址和读写控制信号均由DMAC提供。 ? 优点:数据传输由DMA硬件来控制,数据直 接在内存和外设之间交换,可以达到很高 的传输速率(可达几MB/秒)第9章 输入/输出方法及常用的接口电路外设通过DMAC 向CPU申请DMA请求 CPU响应DMA请求 交出总线控制权从源口地址 中读取数据 将数据写 到目标口修改地址指针N 数据传送结束否? Y DMA结束典型的DMA传送流程图第9章 输入/输出方法及常用的接口电路实现DMA传送的基本操作如下:? ① 外设可通过DMA控制器向CPU发出DMA请求 ? ② CPU响应DMA请求,把总线控制权交给DMA 控制器,使系统转变为DMA工作方式; ? ③ 由DMA控制器发出I/O数据的存储地址, 并决定传送数据块的长度; ? ? ④ 执行DMA传送; ? ? ⑤ DMA操作结束,并将控制权交还给CPU。
第9章 输入/输出方法及常用的接口电路9.3 8255A并行接口电路9.3.1 8255A的结构与功能 (一) 8255A内部结构及主要外部引脚1. 与外设接口部分?三个带锁存或缓冲的八位数据端口: A、B、C口 ?其中C口可分为两个独立的四位端口。可用以配合端口A和端口B的工作。 引脚?PA7~PA0: ?PB7~PB0: ?PC7~PC0:A口数据信号(双向) B口数据信号(双向) C口数据信号(双向)第9章 输入/输出方法及常用的接口电路8255A内部结构PA内PA0~ PA7DB数据 总线 缓冲 器 读写 控制 电路A组 控制PCH PCL PC0~ PC7部总 线RD# WR# A1 A0 RESET CS#B组 控制PB PB0~ PB7第9章 输入/输出方法及常用的接口电路?连接系统端的引线:? ? ? ? ? ?D0~D7:数据线 CS:片选 RD:读控制 WR:写控制 RESET:复位 A1, A0:端口选择A1 A0 0 0 1 0 1 0 1 选择 端口A 端口B 端口C 控制寄存器D0 ~ D7 CS RD WRPAPBRESET A1A0PC1
第9章 输入/输出方法及常用的接口电路与CPU接口部分?数据总线缓冲器 ?读写控制逻辑引脚芯片内部数据线与系统数据总线相连接受来自CPU的控制信号,控制 8255A的内部操作?RESET : 复位信号(输入),高电平有效接系统DB ?D7~D0 : 8255A数据线 ?CS : 芯片选择信号(输入),低电平有效第9章 输入/输出方法及常用的接口电路引脚?RD :芯片读出信号(输入),低电平有效有效时,CPU从8255A读数据?WR : 芯片写入信号(输入),低电平有效有效时,CPU往8255A写入控制字或数据?A1、A0 : 端口选择信号。 A1 A0说明 8086系统中一般将8255A 的A1、A0 与CPU的A2、 A1相连。且CPU对端口 进行访问时,CPU的 A0 总是设置为0。 0 0 1 1 0 1 0 1端口选择 端口A 端口B 端口C 控制端口第9章 输入/输出方法及常用的接口电路内部控制部分A组和B组控制部件?接受CPU通过DB送出的控制字,控制芯片工作方式?接受来自读写控制逻辑电路的读写命令,以决定对端口的读写操作。?A组控制部件:控制A口和C口的高四位的工作方式和读写操作 B组控制部件:控制B口和C口的低四位的工作 方式和读写操作第9章 输入/输出方法及常用的接口电路连接外设端的引线? ? ?PA0~PA7PB0~PB7PC0~PC7分别对应PA、PB、 PC三个8位输入/输 出端口D0 ~ D7 CS RDPA?三个端口可通过编程分别指 定为输入或输出口。 ?其中,C口即可用作独立的输 入/输出口,也可用作A、B口 的控制信号或状态信号。PBWR RESET A1 A0 PC第9章 输入/输出方法及常用的接口电路8255A端口功能表第9章 输入/输出方法及常用的接口电路8255A端口选择及操作功能表第9章 输入/输出方法及常用的接口电路8255的初始化??? ?8255工作前必须初始化,初始化时需设置:工作方式 ?输入 ?置0(低电平) ?输出 ?置1(高电平) 数据传送方向 PC口各数据线的状态(必要时)方式控制字?方式0:基本输入/输出方式 方式1:选通方式 方式2:双向方式(仅A口)?通过向8255写入控制字实现:?用于控制8255各端口的工作方式和数据传输方向控制PC端口在方式0(输出)时每一根输出线的状态?位控字?第9章 输入/输出方法及常用的接口电路9.3.2 工作方式的选择及其功能1.工作方式选择控制字A组方式控制 字标志B组 D3 D2 D1 D01D6D5D4A口方式选择 00 方式0 01 方式1 1× 方式2A口IO选择 1 输入 0 输出C口高位IO 选择 1 输入 0 输出 B口方式选择 0 方式0 1 方式1B口IO选择 1 输入 0 输出 C口低位IO 选择 1 输入 0 输出第9章 输入/输出方法及常用的接口电路2.端口C按位置1/置0控制字0置位/复位 控制字标志 无效D6 ×D5 ×D4 ×D3D2D1D0注意?写入控制口 ?每次一位 ?8255A接收到写入控制口的控制字时,依据D7位确定控制字类型位选择 000 PC0 001 PC1 010 PC2 011 PC3 100 PC4 101 PC5 110 PC6 111 PC7置位/复位 选择 1 置位 0 复位第9章 输入/输出方法及常用的接口电路?例:? ?A端口方式 1输入,PC6、PC7均为输入; B端口方式 1输出。1?0 11 11 0 XBCH / BDH例:? ?A端口方式 0 输出; PC4、PC5均为输出; B端口方式 0 输入。 82H / 83H 1 0 0 0 0 0 1 X第9章 输入/输出方法及常用的接口电路? 假设要求8255A的各个端口工作于如下方式: A口方式0输出;B口方式0输入;A组C口 (PC4-PC7)方式0输出;B组C口(PC0-PC3) 方式0输入,则相应的方式选择控制字 为 。设8255A控制端口的地址为D6H, 则在8086系统中,对8255A的初始化程序为 MOV AL, ; 将控制字送入AL。 OUT 0D6H, AL ; 控制字写入到指定 的控制端口中。第9章 输入/输出方法及常用的接口电路? 对端口C的置位/复位功能主要用于通过C口某 位输出高/低电平控制信号。当要通过置1/置 0控制字对C口PC6位实现置0操作时,控制字 为 。对PC6置0操作的初始化程序为: MOV AL, ; 对PC6位实现置0操作 OUT 0D6H,AL第9章 输入/输出方法及常用的接口电路8255A端口工作方式?方式0: 基本输入/输出方式 ?方式1: 选通输入/输出方式 ?方式2: 双向传送方式第9章 输入/输出方法及常用的接口电路1. 方式0基本输入/输出方式?A口、B口和C口的高四位与低四位均可通过编程独立地设置为输入口或输出口。 ?使用场合:它适用于无需应答(握手)信号的 简单的无条件输入/输出数据的场 合,即输入/输出数据处于准备好 状态。这时CPU可以随时从端口中 写入或读取数据。第9章 输入/输出方法及常用的接口电路2. 方式1选通输入/输出方式 通过编程可将A口、B口设置为方式1。此时C 口主要作为联络信号配合A、B口的工作。(1) 方式1输入 ?有关信号的定义及联络信号的规定 ?时序及输入过程 (2) 方式1输出 ?有关信号的定义及联络信号的规定 ?时序及输出过程 (3) 方式1使用场合 查询;中断方式1输入PA7~PA0 INTEA PC4 PC5PB7~PB0 STBA IBFA INTR INTEB PC2 PC1 STBB IBFB INTRPC3PC0?STB― 选通输入,低电平有效,使数据送入输入锁存器 ?IBF― 输入缓冲器满,高电平有效。通知外设数据已写入缓冲器 ?INTR―中断请求信号,高电平有效。 STB=1,IBF=1,INTE=1 则INTR=1。 ?INTE― 中断允许位。其中,INTEA由PC4置位/复位, INTEB由PC2置位/复位。方式1输入PA7~PA0 INTEA PC4 PC5PB7~PB0STBA IBFA INTRINTEB PC2 PC1STBB IBFB INTRPC3PC0时序?选通信号有效,锁存数据STBIBF INTR RD?IBF复位,允许输入下 一个数据?IBF有效外设数据?清除中断请求 ?执行IN指令,RD有效?外设准备好数据?若INTE为1,则INTR有效 说明 通知CPU取数有两种方式: ?中断 ?软件查询IBF信号PA7~PA0方式1输出PB7~PB0INTEAPC6 PC7ACKA OBFA INTRINTEB PC2 PC1ACKB OBFB INTRPC3PC0?OBF― 输出缓冲器满信号,低电平有效,通知外设取数据?ACK―外设响应信号,低电平有效,表明外设已收到数据 ?INTR― 中断请求信号,高电平有效。 OBF=1,ACK=1,INTE=1 则INTR=1, ?INTE― 中断允许位。其中,INTEA由PC6置位/复位, INTEB由PC2置位/复位。PA7~PA0PB7~PB0方式1输出INTEAPC6 PC7ACKA OBFA INTRINTEB PC2 PC1ACKB OBFB INTRPC3PC0时序?OUT指令,写信号有效WR OBF INTR ACK?数据送输出缓冲器,OBF有效?输出缓冲器空?清INTR送外设数据?外设若准备好,发有效响应信号?若INTE允许,则INTR有效第9章 输入/输出方法及常用的接口电路3. 方式2双向传输方式 A口可设置为方式2。此时C口5位作控制信号 配合A口的工作。 ?有关信号的定义及联络信号的规定 ?时序 ?使用场合 查询;中断方式2PC3PA7~0INTRAWRPC7INTEo PC6 INTEi PC4 PC5OBF ACK STBOBF INTR ACK STB IBF 外设数据 RD 输出数据 输入数据IBF说明? 方式2仅限于A口,此时占用C口的PC3~ PC7五位作联络信号; ?A口工作于方式2时,B口可以工作于方式0;第9章 输入/输出方法及常用的接口电路 4. 8255A的状态字格式D7 I /O D6 I /O D5 D4 D3 D2 D1 D0 I BFA I NT EA I NT RA I NT EB I BFB I NT RBA组 (a) D7 D6 D5 D4 D3 D2B组D1D0O BFA I NT EA I /OI /O I NT RA I NT EB O BFB I NT RBA组 (b)B组图 8.16 几种状态字格式? (a)、 (b) 方式1输入、 输出状态字格式; ? (c)、 (d) A组为方式2, B组为方式1的输入、 输出状态字格式
第9章 输入/输出方法及常用的接口电路D7 D0O BFA I NT E1 I BFA I NT E2 I NT RA I NT EB I BFB I NT RBA组 (c) D7B组D0O BFA I NT E1 I BFA I NT E2 I NT RA I NT EB O BFB I NT RBA组 (d)B组几种状态字格式? (a)、 (b) 方式1输入、 输出状态字格式; ?
(c)、 (d) A组为方式2, B组为方式1的输入、 输出状态字格式第9章 输入/输出方法及常用的接口电路9.3.3 8255A应用举例例:利用8255A作为输出设备打印机的接口。其连接方法如图8.17(a)所示。当主机需要打印输出时,先测试打印机忙(Busy)信号。 若打印机处于忙状态(如正在处理一个字符或正在 打印一行字符),则Busy为高电平“1”, 反之, 则Busy为低电 平“0”。当Busy=0时, 则CPU可通过8255A向打印机输出一个 字符,此时还需经PC6输出一个负脉冲选通信号,输出至打印机的STB端,用此负脉冲(宽度≥1 μs)将PA0~PA7上的字符信息打入锁存于打印机输入缓冲器中,由打印机进行处理。同时,打印 机应送出Busy=1信号,表示打印机处于忙状态。一旦Busy=0,则表示打印机处理完毕,又可以接收一个新的字符数据。第8章 输入/输出方法及常用的接口电路D0 D7 R ES ET I OR I OW A1 A0 A9 A8 A7 A6 A EN A5 A4 A3 A2 & G Y0 CS P B0 ≥1 G 2B G 2A C B 74 A B8 (a) 8 P B7 8 25 5 S TR OB E B US Y D0 D7 R ES ET RD WR A1 A0 P A0 8 P A7 P C6 P C2 D0 D7 S TB打印机B us y 数据(b)8255A用作打印机接口及打印机时序? (a) 8255A与打印机的连接; (b) 打印机时序第8章 输入/输出方法及常用的接口电路 为此,8255A端口A的8条并行数据线PA0~PA7作为数据传送 通路,A口应工作于方式0输出,端口B不用。端口C也工作于方式0,PC2作为Busy信号输入端,所以C口PC3~PC0应设定为输入方式; PC6作为STB选通信号输出端,故PC7~PC4应设定为输出 方式。 ?? 现根据图中8255A的寻址信号,8255A的端口地址为: 端口A:0380H;端口B:0381H;端口C:0382H;控制寄 存器端口:0383H。8255A接口的初始化及控制程序编制如下:第8章 输入/输出方法及常用的接口电路; 8255初始化程序? BEGIN:MOV AL,B; 送工作方式选择控制字至控制寄存器中。A、 B、 C口均为 工作方式0。 A口、 B口为输出方式。 PC4~PC7为输出, ; PC0~PC3为输入。 ? MOV DX, 0383H? OUT DX, AL?MOV AL, BOUT DX, AL;送C口置1/置0控制字,置PC6=1。?; 使STB初始状态为高电平。第8章 输入/输出方法及常用的接口电路; 下面为控制程序, 设欲打印的字符已存于CL中, 经8255A的A口输出至打印 机。? CONP: MOV DX, 0382H ; 从C口检测Busy=0否, 若等于1, 则等待; 等于0则可送打印字符。?LPST: IN AL, DXH AND AL, 04H JNZ LPST MOV AL, CL ; 读入C口值。? ; 保留PC2(Busy)状态。? ; 若Busy=1, 则等待, 等于0则向下执行。 ; 将(CL)字符送A口。?MOV DX, 0380H?OUT DX, AL?MOV AL,0CH ;送C口置1/置0控制字,置PC6=0,即使STB为低电平。第8章 输入/输出方法及常用的接口电路MOV DX, 0383H?OUT DX, AL? MOV CX, XXH ; 为使STB宽度≥1 μs,送延时程序。? EDLAY: DEC CX? JNZ DELAY? MOV AL,0DH ;再使STB为高电平。? ; 地址指向控制口。? OUT DX, AL?; 向下执行后续程序。 ??…第9章 输入/输出方法及常用的接口电路9.4 可编程计数/定时器 8253?有三个独立的16位计数器 ?每个计数器计数体制:二进制或二-十进制(BCD码) ?每个计数器由编程确定工作方式。 六种 ?所有的输入输出都与TTL兼容。主要内容: ?8253内部结构及主要外部引脚 ?工作方式 ?编程命令 ?应用实例第8章 输入/输出方法及常用的接口电路D7 D6 D5 D4 D3 D2 D1 D0 CLK0 OUT0 GATE0 GND1 2 3 4 5
8 9 10 11 1224 23 22 21 20 19 18 17 16 15 14 13Vcc(+5V) WR RD CS A1 A0 CLK2 OUT2 GATE2 CLK1 GATE1 OUT1D7 ~D0数据 总线 缓冲器 读/写 控制 电路 控制字 寄存器计数器 通道0CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2RD WR A1 A0 CS计数器 通道1计数器 通道2封装外形图内部结构图第9章 输入/输出方法及常用的接口电路一. 8253内部结构及主要外部引脚 1. 数据总线缓冲器芯片内部数据线与系统数据总线相连。 数据引脚?CPU向8253写方式控制字 ?CPU向计数器写计数值 ?读计数器的计数值接系统DB?D7~D0 : 8253数据线第9章 输入/输出方法及常用的接口电路一. 8253内部结构及主要外部引脚 2. 读写控制电路引脚 接收CPU送入的系统控制信号,产 生对芯片内部各功能部件的控制。?CS : 芯片选择信号(输入) ?RD :芯片读出信号(输入) ?WR 芯片写入信号(输入) ?A1、A0 : 端口选择信号。说明 一般接法及注意事项同8255A低电平有效A1 0 0 1 1 A0 0 1 0 1 端口选择 计数器0 计数器1 计数器2 控制端口第9章 输入/输出方法及常用的接口电路一. 8253内部结构及主要外部引脚3. 三个独立通道的16位计数器及控制字寄存器 ? 计数器内部逻辑第8章 输入/输出方法及常用的接口电路 存放由CPU写入8253的方式选择控制字。D7~D0控制寄存器 计数初值寄存器CR读 写 片选 端口地址CRHCRL控 制 逻 辑CLKGATEOUT计数执行单元CECEHCEL 16位减一 计数器OLHOLL计数输出锁存器OL计数器逻辑原理图第9章 输入/输出方法及常用的接口电路一. 8253内部结构及主要外部引脚?方式控制字格式D7 D6 D5 D4 D3 D2 D1 D0SC1主要功能SC0RL1RL0M2M1M0BCD?选择计数器 ?确定向计数器写或从计数器读计数值的格式 ?确定计数器工作方式 ?确定计数器数制第8章 输入/输出方法及常用的接口电路控制字格式D7 D6 D5 D4 D3 D2 D1 D0SC1计数器选择 00 计数器0 01 计数器1 10 计数器2 11 无效 00 01 10 11SC0RL1RL0M2M1M0BCD读写格式选择 计数器输出锁存 读/写计数器低八位 读/写计数器高八位 先低后高工作方式选择 000 方式0 001 方式1 ×10 方式2 ×11 方式3 100 方式4 101 方式5计数方式选择 0 二进制 1 BCD码第9章 输入/输出方法及常用的接口电路一. 8253内部结构及主要外部引脚?引脚?计数与定时时钟(输入)引脚 CLK: GATE: 门控脉冲引脚(输入) 一般,GATE为高,允许计数器工作。 OUT: 计数到0/定时时间到引脚(输出) 定时时间 计数值= 时钟脉冲周期 计数脉冲为非周期性触发信号 计数脉冲为周期性时钟信号计数 定时第9章 输入/输出方法及常用的接口电路二. 8253工作方式 基本规则:六种:方式0~方式5?控制字写入计数器时所有的控制逻辑电路立即复位,输出端OUT进入初始状态(高电平或低电平)?初始值写入以后,要经过一个时钟上升沿和一个下降沿,计数器才开始进行计数。?在时钟脉冲的下降沿,计数器作减一计数。0是计数器所能容纳的最大初始值(216/104)。?通常,在CLK上升沿时GATE被采样。对于给定的工作方式,对门控信号的触发方式是由具体规定的。(电平/边沿/两 者皆可)第9章 输入/输出方法及常用的接口电路(一)计数过程由软件启动 1. 方式0计数结束产生中断方式①写入控制字后,输出端OUT的初始电平为低电平,减 一计数器到0则输出高电平,一直维持到写入新的计数值; 若计数初值为N,则初值写入后,经过N+1个时钟脉冲 OUT由低变高。 ② GATE电平触发。GATE=1时,计数器计数;GATE=0, 则停止计数,在GATE变为1后恢复计数,但GATE不影响 OUT电平 ; ③初值一次有效 ④计数过程中,如果又写入新的初值,则在下一个时钟 脉冲,新的初值送到计数器,此后按新的初值重新计数;第8章 输入/输出方法及常用的接口电路1. 方式0写入计数 初值 CLK WR GATE OUT n=4计数结束中断方式开始减1 计数4 3 2 1 0n=5 5 43 2 1 0计数到0 OUT输出高电 平保持至写入 新的计数值或 控制字 GATE为低电平 时。计数器禁止 计数而保持状态计数初值一次有效!GATE电平触发!第9章 输入/输出方法及常用的接口电路二. 8253工作方式 (一)计数过程由软件启动 2. 方式4 软件触发选通方式与方式0类似。区别: ?初始输出电平不同 ?输出波形不同第9章 输入/输出方法及常用的接口电路(二)计数过程由硬件启动 1. 方式1 可重触发单稳方式①写入控制字后,输出端OUT的初始电平为高电平。计数 初值送到初值寄存器后,在GATE上升沿作用下,OUT在一 个时钟后由高变低,且初值送减一计数器并作减一计数,计 到0时,OUT由低变高。从而产生一个负脉冲。 OUT脉冲宽度: N×TCLK②如在计数过程中,GATE出现下降沿,并不影响计数,但若 遇到GATE的上升沿,则从初值开始重新开始计数,从而使输 出的负脉冲加宽。 可重复触发③初值一次装入(但触发信号可以重复)第8章 输入/输出方法及常用的接口电路2. 方式1CLK WR GATE可重触发单稳方式n=44 3 2 1 0单脉冲宽度n=55 4 3 2 5 4单脉冲宽度0OUT计数初值一次有效!GATE边沿触发!第9章 输入/输出方法及常用的接口电路二. 8253工作方式 (二)计数过程由硬件启动 2. 方式5 硬件触发选通方式与方式1类似。 区别: ?输出波形不同计数到0产生一个时钟周期宽的负脉冲。第9章 输入/输出方法及常用的接口电路二. 8253工作方式 (三)计数过程既可由软件也可由硬件启动 1. 方式2 分频工作方式/ 速率发生器①写入控制字后,输出端OUT的初始电平为高电平。计数 值减到“1”时,输出OUT由高至低电平,计到“0”时,由 低至高电平。产生一个宽度为CLK周期的负脉冲。 ②初值自动重新装入 若初值为N,则OUT为N分频信号。③GATE电平触发。GATE为1,计数允许 , GATE为0,则停 止计数。计数过程中,GATE上升沿使计数器恢复初值,重新 计数。④计数过程中,若写入新的计数初值,则将等正在进行的计 数过程计到0时新计数值有效。第9章 输入/输出方法及常用的接口电路二. 8253工作方式 (三)计数过程既可由软件也可由硬件启动 2. 方式3 方波方式①写入控制字后,输出端OUT的初始电平为高电平。计数 到一半时,输出OUT由高至低电平,计到“0”时,由低至 高电平。产生一个方波或近似方波。 ②初值自动重新装入 若初值N为偶数,则OUT为对称方波。 若初值N为奇数,则输出波形中高电平持续时间比低电平 多一个时钟周期。 ③其它同方式2。第9章 输入/输出方法及常用的接口电路三. 8253的编程命令 1. 写入方式控制字?按照方式控制字格式设置各通道工作方式 ?写入控制端口2. 写入计数初值?跟随方式控制字 ?按照方式控制字中RL1、RL0的值所规定的方式写入计数初值?写入计数器所对应的端口第9章 输入/输出方法及常用的接口电路三. 8253的编程命令某8253芯片,端口地址分别为80H、 82H、84H和 86H。计数器0工作于方式3,输出方波的重复频率为 2KHZ,输入计数脉冲的频率为2.5MHZ,采用BCD 计数,试写出初始化程序段。 计数初值: 2.5MHZ / 2KHZ =1250 方式控制字: SC1 SC0 RW1 RW0 M2 M1 M0 BCD 0 0 1 1 0 1 1 1初始化编程: MOV OUT MOV OUT MOV OUT AL,37H 86H,AL AL,50H 80H,AL AL,12H 80H,AL例;方式控制字;计数初值低8位;计数初值高8位第9章 输入/输出方法及常用的接口电路三. 8253的编程命令 3. 读计数值读取计数器当前值IN AL,计数器端口号?读取之前先锁存 ?两种锁存方法:①利用GATE信号使计数过程暂停②发锁存命令到控制端口MOV AL,0000XXXXH ;锁存计数器0命令 OUT 端口号,AL第8章 输入/输出方法及常用的接口电路四. 8253应用实例例1 用8253监视一个生产流水线,每通过50个工件,扬声器 响5秒钟,频率为2000HZ。 +5V 0#计数器: 方式2; ?硬件连接 OUT0反相后作中断请求信号.工件 OUT0 GATE0 CLK0 光敏 电阻 驱 动 器INT +5V 2.5MHZ 8255PA0CLK1GATE1 OUT11#计数器: 方式3; GATE1由8255PA0控制; 扬声器 OUT1经驱动滤波后送扬声器。?控制字设置第8章 输入/输出方法及常用的接口电路+5V工件例1?硬件连接 ?控制字设置 2.5MHZ 8255PA ?编程0INT +5VOUT0 GATE0 CLK1CLK0光敏 电阻 驱 动 器GATE1 OUT1扬声器0#计数器: 方式2;BCD计数;计数初值: 50控制字 SC1 SC0 RW1 RW0 M2 M1 M0 BCD 0 0 0 1 0 1 0 1 15H 1#计数器: 方式3;BCD计数;计数初值: 2.5×106/ 控制字
77H SC1 0 SC0 RW1 RW0 1 1 1 M2 0 M1 1 M0 1 BCD 1第9章 输入/输出方法及常用的接口电路设8253端口地址:40H、41H、42H、43H, 8255端口A的口地址为80H。 ?编程 0#计数器: 方式2;BCD计数;计数初值: 50 控制字: 15H 1#计数器: 方式3;BCD计数;计数初值: 1250 控制字: 77H ?主程序: MOV AL,15H 送0 #计数器 OUT 43H,AL 方式控制字例1送0 #计数器 计数初值 开中断 等待中断 MOV AL,50H OUT 40H,ALSTI LOP: HLT JMP LOP第9章 输入/输出方法及常用的接口电路设8253端口地址:40H、41H、42H、43H, 8255端口A的口地址为80H。 ?编程 1#计数器: 方式3;BCD计数;计数初值: 1250 77H 控制字: MOV AL,01H ?中断服务程序: OUT 80H,AL 启动1 #计数器 MOV AL,77H OUT 43H,AL 送1 #计数器 MOV AL,50H 方式控制字 OUT 41H,AL MOV AL,12H 送1 #计数器 OUT 41H,AL 计数初值 CALL DL5S MOV AL,00H 延时5秒后禁 OUT 80H,AL 止1 #计数并
IRET 返回例1第8章 输入/输出方法及常用的接口电路 0#计数器:方式2,计数初值为1000; 例2 1#计数器:方式1,计数初值为500 ; 2#计数器:方式3,计数初值为2000 ; 外接时钟为2.5MHZCLK0 GATE0 OUT0 连续负脉冲,TOUT0 =1000T OUT8253CLK1 GATE1 OUT1 CLK2 GATE2 OUT2负脉冲,宽度:500 × TOUT2 = 500 × 2000T时钟2.5MHZ(T=400ns )方波,TOUT2=2000T +5V第8章 输入/输出方法及常用的接口电路CLK0 CLK2 OUT2 CLK1 OUT1 GATE000T 2000T2.5MHZ(T=400ns )方波,TOUT2=2000T负脉冲,宽度:500 × TOUT2 = 500 × 2000TOUT0 GATE1 GATE200T连续负脉冲,TOUT0 =1000TOUT第8章 输入/输出方法及常用的接口电路系统总线 D0 D0 C LK0 C LK1 C LK2 G AT E0 G AT E1 G AT E2 8 25 3 Y0 CS O UT0 O UT1 O UT28?D7 A1 A0 A2 A3 A4 ≥1 A B C G G2 B G2 A &D7 RD WR A1 A0?A5 A A7 6 A8 A9 A1 0 A1 1 A1 2 A1 3 A1 4 A1 5 I OR I OW&总线的连接第8章 输入/输出方法及常用的接口电路 图示出了8253用作方波发生器与8088总线的接口方法。 图 中仅用了A7~A2作为8253片选地址线,产生片选信号Y0与8253的CS端相连。 CS信号与A1、A0地址线相配合决定了0、1、2#计数器及控制寄存器的地址号分别为40H、41H、42H、43H。 要 求2#计数器用作方波发生器产生40 kHz方波输出。已知CLK2时 钟端输入信号频率为2 MHz。 根据上述要求2#计数器应设置成方式3工作状态,按双字节 传送的50分频计数值应为0032H。此时,2 # 计数器的初始化程 序如下:第8章 输入/输出方法及常用的接口电路 MOV AL, B ; 对2#计数器送控制字。? OUT 43H, AL?MOV AL, 32HOUT 42H, AL? XOR AL, AL OUT 42H, AL; 对送50分频计数值0032H的低8位。; 送高8位值为00H。?在实际应用中,常需要对脉冲的周期、相位、脉冲的宽度 进行测量,这时需要一些标准信号的输入,这些都可以通过对 8253的控制来完成。
第8章 输入/输出方法及常用的接口电路+5V D0 D7 IOR IOW A1 A0 A8 A9 S0 S1 S2 LOCK HRQ G2A G2B 74LS Y2 138 8 D0 D7 RD WR A1 A0 8253 CS GATE 0 GATE 1 GATE 2 OUT0 OUT1 OUT2 CLK0 CLK1 CLK2 & 75477 扬声器 来自8255 PB1 来自8255 PB0 IRQ0(到8259) OUT1+5V S 1D Q DREQ0 Cl (到8237) Q R P3& A7 A6 A5 PCLK+5V 8255PC 0C B ASD 1D Q C1 Q R图 8.29 8253在系统板上的连接第8章 输入/输出方法及常用的接口电路 计数器0用作系统的定时,为系统的电子钟提供一个恒定的时 间基准。计数器0的输出OUT0与8259中断控制器的IQR0相连,作为最高级别的可屏蔽0级中断。 系统BIOS初始化编程设定计数器0工作于方式3, 计数初值设定为0(即为最大初始值65 536),控制 字为36H。这样,每隔55 ms产生一次0级中断。在中断服务程序 表示所经过的时间约为1 h(即65 536×1/18.2 ≈3 600 s),其误差可中, 由16位的计数单元对中断次数计数,当计数单元产生进位时,由程序中加以修正,以消除积累误差。另外,计数器0还用于对软盘驱动器的马达启/停时间进行管理,每开放一定时间, 再令其 关闭。 其初始化程序片断如下:?第8章 输入/输出方法及常用的接口电路MOV AL, B ; 对计数器0设置控制字, 方式3。? ; 二进制计数。 先写CRL, 再写CRH。? OUT 43, AL? MOV AL, 0 ; 设定初始值(最大初始值)。?OUT 40H, ALOUT 40H, AL; 写入计数器0中的计数寄存器低8位。?; 写入计数器0中的计数寄存器高8位。第8章 输入/输出方法及常用的接口电路 计数器1用作对动态RAM的刷新定时,其输入时钟CLK1同 样 为 1.931 816 MHz 方 波 。 计 数 器 1 输 出 的 定 时 信 号 接 在8237DMA芯片的一个DMA请求端DRQ0,用来发出请求信号,负责对动态存储器刷新。它每隔15.12 ms产生一个脉冲宽度为 840 ns的负脉冲输出信号对动态存储器进行刷新操作。 此时计 数初值为12H, 控制字为54H, 相应的初始化程序片断如下:MOV AL, 54H ; 对计数器1设置控制字, 二进制计数,只写CRL。OUT 43H, A?MOV AL, 12H ; 为刷新DRAM, 设置分频系数。? OUT 41H, AL ; 写入计数器1中的计数寄存器低8位(CRL)。第8章 输入/输出方法及常用的接口电路计数器2在此有两个作用:其一是作为与音频盒式磁带机接口,其二是产生扬声器的频率信号,并与8255A的B口的PB1位共 同控制扬声器的发声,其电路连接见图8.29所示。当8255A的 PB1为高电平时,在BIOS中提供了扬声器发声程序,此程序把声 音频率相应的计数值送入计数器2,用以产生音频信号。现以通过改变8253计数器2的计数值,本例中,每敲一键,计数器的计数初值减100H,音调增高从而改变扬声器发出的音调,其相应 的编程如下:CODE SEGMENT?ASSUME CS: CODE, DS: CODE, ES: CODE, SS: CODE? ORG 100H第8章 输入/输出方法及常用的接口电路START: JMP BEGIN ? ORG-SND DW 533H ; BIOS初始化8253时,对通道2设置的计数初值。 SAVE-ID DW 1133H ;定义最初的计数值,最低音调。? BEGIN: PUSH CS ;赋DS段址。? POP DS? MOV BX, 10H ;发声次数。? NEW-SOUND:? MOV AL, 0B6H ;设置通道2控制字,方式3,先写CRL,后写 CRH, ;二进制计数。 OUT 43H, AL? MOV AX, SAVE-ID ; 设定初始计数值。? SUB AX, 100H ; 每次计数值减100H。? MOV SAVE-ID, AX? OUT 42H, AL ; 写入通道2的CRL。? MOV AL, AH? OUT 42H, AL ; 写入通道2 的CRH。
第8章 输入/输出方法及常用的接口电路IN MOV XOR OUT AL, 61H AH, AL? AL, 03H 61H, AL? ; 8253通道2选通, 扬声器打开。? ; 读入8255端口B的值。?MOVDELAY: MOVCX, 0FFFFH ; 延时。?AL,AH ; 关闭扬声器。? ; 通过键盘读字符。? ; 计数器减1。? ; 恢复扬声器初始音调。LOOP DELAY?OUTMOV INT DEC JNZ MOV61H, AL?AH, 00H 16H? BX AL, 0B6H NEW-SOUND?第8章 输入/输出方法及常用的接口电路OUT MOV 43H,AL? AX,ORG-SND?OUTMOV OUT MOV INT42H, ALAL, AH 42H,AL? AH, 4CH ;返回DOS。? 21H?COOE ENDS?END START第8章 输入/输出方法及常用的接口电路 9.5 DMA控制器.1 DMA 8237A-5的结构和特性EOP RESET CS READY CLK AEN ADSTB MEMW MEMR IOR IOW 减量器 增量器 暂时字计数器 临时地址 寄存器(16) 寄存器(16) 16位总线 16位总线 读缓冲 基地址 基字计 (16 数(16) ) 读写缓冲 现行 现行字 地址 计数 (16 (16 ) ) I/O 缓冲 A0~A3定时 和 控制A4~A7 输出缓冲A8~ A15命令 控制写缓冲 DREQ0~ 4 DREQ3 优先级 HRQ 编号和 旋转优先 HLDA 级逻辑 DACK0~ 4 DACK3 读缓冲 据总线 I/O 缓冲 DB0~DB7内部数 命令(8)屏蔽(4)读写 模式 (4×6) 状态(8) 临时(8)请求(4)第8章 输入/输出方法及常用的接口电路 IOR 11. 时序与控制逻辑块DMA8237引脚图 IOW MEMR MEMW + READY HLDA ADSTB AEN HRQ CS CLK RESET DACK2 DACK3 DREQ3 DREQ2 DREQ1 DREQ0 (地)VSS40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 32 10 31
11 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21A7 A6 A5 A4 EOP A3 A2 A1 A0 VCC(+5V) DB0 DB1 DB2 DB3 DB4 DACK0 DACK1 DB5 DB6 DB7第8章 输入/输出方法及常用的接口电路 2. 优先级编码逻辑第一次服务 最高优先级 1 2 最低优先级 3 0 服务 2第二次服务 服务 3 0 1 3第三次服务 服务 0 2 2循环优先级示意图第8章 输入/输出方法及常用的接口电路 3. 命令控制逻辑 控制和状态寄存器寻址信号第8章 输入/输出方法及常用的接口电路 4. 内部寄存器组? 8237A-5内部寄存器组分成两大类:一类是通道寄存器, 即每个通道都有的当前地址寄存器、当前字节数寄存器和基地 址及基字节数寄存器;另一类是控制和状态寄存器。这些寄存器的寻址是由最低4位地址A3~A0 以及读写命令来区分的。 这两类寄存器共占用16个端口,记作DMA+00H~DMA+0FH地址,可供CPU访问。第8章 输入/输出方法及常用的接口电路 5. 数据及地址缓冲器组? 缓冲器组包含以下 3 部分: ? (1) A3~A0:最低4位地址线,是三态双向信号端。在芯片空闲周期(非DMA工作周期),CPU对芯片输出的低4位地址线。 ?(2) A7~A4: 高4位地址线。 此信号仅用于DMA服务时提供高4位地址。第8章 输入/输出方法及常用的接口电路(3) DB7~DB0:8位双向数据线。在芯片空闲周期,CPU在读 操作时(IOR有效),将内部寄存器的值送到系统总线上;在写操作 时(IOW有效),由CPU对芯片内部寄存器编程。在DMA工作周期, 高8位的地址信息经数据缓冲器,经DB7~DB0 在ADSTB选通信号 作用下锁存到外部地址锁存器中,再与A7~A0(低8位地址信息)组 成DMA传送的16位地址信息。在DMA的存储器到存储器的传送 方式下,存储器读出的数据经数据总线送入数据缓冲器,然后在 存储器写周期里,此数据经数据总线装入到所指定的存储器单元 中。DMA8237芯片能提供16位地址信息, 故对存储器的寻址范围 为68 KB。如要进一步扩大寻址范围,可在DMA系统中为每一个 通道配置一个页面寄存器。如PC/XT的DMA系统中由于增加页面 寄存器,每个通道的地址线为20条(A0~A19),可寻址的范围达1 MB。PC/AT的DMA系统可扩大至24条(A0~A23)每通道可寻址的范 围为1.6 MB。第8章 输入/输出方法及常用的接口电路9.5.2 DMA的工作方式、 操作类型及时序1. 8237 DMA的工作方式及传输操作类型?(1) 8237的 4 种工作方式。 ?① 单字节传送方式。在这种方式下, 每次仅传送一个字节数据。 传送 后,字节数寄存器减1,地址寄存器加1或减1(由初始化编程决定)。 HRQ变为无效,8237释放系统总线,控制权返回给CPU。 当前字节数寄存器从初始值减到0,还要再传输一个字节,又从0减到0FFFFH时,才发出有效EOP信号, 结束DMA传输过程。 ? 通常,在DACK成为有效之前,DREQ必须保持有效。每次传送后, DMA控制器把总线让给CPU至少一个总线周期,且立即开始检测DREQ输入, 一旦DREQ为有效, 再进行下一个字节的传送。第8章 输入/输出方法及常用的接口电路 ② 数据块传送方式。在这种方式下,一旦8237控制总线就 将始终占用总线,连续地传送字节数据直到字节数寄存器减到零再减至0FFFFH时产生EOP信号为止。若需提前结束DMA传送也可由外部输入低电平有效的EOP信号来强迫终止DMA传送,总线控制才交还给CPU。这种方式最大能传送64 KB的数据块,而且送DREQ只需维持到DACK有效,在传送期间就不再检测 DREQ引脚信号。当数据块传送结束,则终止操作或者是重新初 始化。第8章 输入/输出方法及常用的接口电路 ③ 请求传送方式。这种传送方式类似于数据块传送方式, 所不同之处在于每传送一个字节之后,8237都将采样检测DREQ 信号是否有效。 若DREQ变为无效状态则放弃传输,一直到 DREQ变为有效后又可开始从放弃的那一点开始DMA传输。当由 于外设提供的DREQ信号变为无效而放弃DMA传送时, 8237释 放总线,CPU可以接着操作。在此种方式下,因为DMA放弃传 送时,8237的工作现场的地址及字节数计数值会保存在当前地址 寄存器及当前字节数寄存器中。这样,当进行DMA的外部设备新的数据块准备好后,可再次向8237发出DREQ有效信号,8237接着原来的地址和字节计数值继续进行传输,直到字节数寄存器减到0,又减至0FFFFH计数结束或外输入EOP信号,才停止传送,退出DMA。第8章 输入/输出方法及常用的接口电路 ④ 级联方式。主8 23 7 D RE Q0 D AC K0 H LD A D RE Q1 D AC K1 第一级 H RQ H LD A 从8 23 7 1# 第二级 从8 23 7 H RQ 0# H LD AC PUH RQ两级DMA的级联方式第8章 输入/输出方法及常用的接口电路 (2) DMA传送的类型。 S0 S1 S2 S3总线信号 处理器时钟 H LD A A EN A 0 ~A 1 9 M EM R I OW M EM W I OR D 0 ~ D7 I /O C H R DYSWS4SI有效存储器地址( 无效电平) ( 无效电平) 有效数据 来自存储器 ( 有效电平) ?非总线信号 (a)第8章 输入/输出方法及常用的接口电路总线信号 S0 S1 S2 S3 SW S4 SI处理器时钟 HLDA AEN A0~A19 IOR MEMW IOW MEMR D0~D7 有效数据 来自I/O端口 CH RDY ?非总线信号有效存储器地址(无效电平) (无效电平)(有效电平)(b)第8章 输入/输出方法及常用的接口电路(3) 8237几个特殊操作的说明。S1 C LK A EN A 8 ~ A1 5 A 0 ~ A7 RD WR 扩展码 C LK A 0 ~ A7 RD WR (b) S2 S1 S2 (a) S1 S2 有效 有 效 S2 S3 S4 S2 S3 S4有效有效2. 8237 DMA工作时序 第8章 输入/输出方法及常用的接口电路空闲状态 sI 对DREQ线采样 DREQ 有效? Y 激励HRQ 请求应答 状态 s0 只有要改变高字节地 址时才需要SI 对HLDA线采样 HLDA 有效? Y 需要 SI? s1 s2 Y 激励AEN 激励ADSTB和DACK,发出地址 Y N N 任何允许 的请求 N CS=0? Y 变成从属器 件,CPU可 对8237进行 输入或输出 N压缩时序? 数 据 传 输 状 态 N s3 较长的IOE和MEMR脉冲READY 有效? Y 发出IOW或MEMWNSW等待状态传送方式 数据块 请求s4单次 撤消HRQTC或EOP Y 有效?NDREQ 有效? YN 撤消HRQ第8章 输入/输出方法及常用的接口电路 9.5.3 内部寄存器的功能及端口寻址? 8237A-5DMA芯片有16个端口地址(以地址符DMA+0、 +1、+2、……+0AH+……+0FH表示)代表了8种寄存器以可编程方法实现四个通道的DMA传输。 其寄存器种类功用及端口地址分别说明 如下: ?1. 8237内部寄存器的功用?(1) 地址寄存器(DMA+0、 +2、 +4、 +6)。 每个通道各有一对16位的基地址寄存器和当前地址寄存器。在对芯片初始化编程时,由CPU同时写入相同的16位地址。若地址任意(字节边界), 则可寻址64 KB, 否则以偶地址(字边界)可寻址128 KB。第8章 输入/输出方法及常用的接口电路 基地址寄存器预置后不再改变, 且不能被读出。 ? 每个通道有一个16位的当前地址寄存器,它保存着在DMA 传输地址值。每次传送后,地址自动加1或减1(取决于方式字寄 存器D5 位),且随时可被CPU读出。若通道选择为自动预置操作(取决于方式字寄存器D4位), 则在结束成批数据传输后产生有效EOP信号时,当前寄存器恢复到与基地址寄存器同值。CPU预置 16位地址值时,按8位分两次写入地址寄存器,先写低8位, 再 写高8位。读操作也是分两次进行。第8章 输入/输出方法及常用的接口电路 (2) 字节寄存器(DMA+1、 +3、 +5、 +7)。 每个通道各有一 对16位基字节寄存器和当前字节寄存器。 在芯片初始化时,由 CPU同时写入相同的初始值, 但此初始值应比实际传输的字节数少1,最多传输64 KB; 若某通道的地址寄存器以字边界编程,则字节寄存器也应用字节数预置初始值,此时最多可传输64 KB, 即128 KB。 故字节寄存器也称字计数寄存器。 ? 基字节寄存器预置不再改变, 且不能被读出。 ? 当前字节计数器在每次DMA传输后,计数值自动减1,当该 寄存器值由0减到FFFFH,产生有效的EOP信号,DMA传输结束。 若通道选择为自动预置操作,则在EOP有效的同时,当前字节寄 存器恢复到与基字节寄存器预置的初始值。同样,CPU按8位分 两次读出或写入该寄存器。第8章 输入/输出方法及常用的接口电路 (3) 方式字寄存器(DMA+0BH)。D7 D6 D5 D4 D3 D2 D1 D0 通道选择 D 1D 0 0 0 1 1 0 选择通道0 1 选择通道1 0 选择通道2 1 选择通道3工 作 方 式 选 择D 3D 2 0 0 传输类型选择 0 1 1 0 1 1 自动预置选择 0 禁止自动预置 1 允许自动预置 地址增减选择 0 0 1 1 0 1 0 1 0 1 地址递增1 地址递减1D MA 检验传输 D MA 写传输 D MA 读传输 无效请求方式 单字节方式 块字节方式 级联方式第8章 输入/输出方法及常用的接口电路 (4) 暂存寄存器(DMA+0DH)。当芯片编程选择操作方式为存 储器到存储器传输时,通道0和通道1交换的数据保存在暂存寄 存器(8位),待传输全部完成后,最后一个传输数据被CPU编程 读出, 在DMA复位时被清除。 ? (5) 命令寄存器(DMA+8)。命令寄存器为8位, 用于存放编 程的命令字,以选择8237的操作方式。第8章 输入/输出方法及常用的接口电路D7 D6 D5 D4 D3 D2 D1 D0 0 禁止存储器到存储器传输 1 允许存储器到存储器传输 0 禁止通道0 地址保持 1 允许通道0 地址保持 0 允许芯片工作 1 禁止芯片工作 0 正常时序( 保持S3 状态) 传输 1 压缩时序( 取掉S3 状态) 传输 × 如果D 0 = 0 0 固定优先级 1 循环优先级 0 滞后写选择 1 扩展写入选择 0 D RE Q信号高电平有效 1 D RE Q信号低电平有效 0 D AC K信号低电平有效 1 D AC K信号高电平有效第8章 输入/输出方法及常用的接口电路 (6) 请求寄存器(DMA+9)。×××××D2D1D0无用 通道选择0 0 1 10 1 0 1通道0 通道1 通道2 通道30 复位请求位 1 置位请求位第8章 输入/输出方法及常用的接口电路 (7) 屏蔽寄存器(DMA+0AH#, +0EH#, +0FH)。 8237有 3 个作 用不同,占有 3 个端口地址的屏蔽寄存器。 ?① 写单个通道屏蔽寄存器(DMA+0AH)。 芯片内有一个 4 位屏蔽寄存器,每一个对应一个通道的屏蔽位。当屏蔽位置位时,该通道就禁止接受DREQ的DMA请求信号。反之,屏蔽位复位则允许DREQ的请求。 ? 当某一通道进行DMA传输后,产生EOP信号,则这一通道 在禁止自动预置工作条件下的屏蔽位置“1”。必须再次编程, 使该通道屏蔽位复位, 才能进行下一次的DMA传输。第8章 输入/输出方法及常用的接口电路×××××D2D1D0无用 通道选择0 0 1 10 1 0 1通道0 通道1 通道2 通道30 复位屏蔽位 1 置位屏蔽位第8章 输入/输出方法及常用的接口电路 ② 清主屏蔽寄存器(DMA+0EH)。××××D3D2D1D0 通道0屏蔽位 通道1屏蔽位 通道2屏蔽位 通道3屏蔽位第8章 输入/输出方法及常用的接口电路 ③ 写 主 屏 蔽 寄 存 器 (DMA+0FH) 。 主 屏 蔽 寄 存 器 若 采 用 DMA+0FH端口地址号,可用写入一条主屏蔽命令分别对4个通 道相应位进行复位(允许)及置位(禁止)DMA请求。 ? 应 注 意 , 当 系 统 RESET 复 位 或 用 软 件 置 位 ( 主 清 除 命 令 DMA+0DH)时,主屏蔽寄存器各位均被置位,即禁止所有通道接受DMA请求。如果采用上述3个端口(DMA+0AH、+0EH、+0FH)之一对某一通道复位屏蔽位后,即可响应DMA请求。然 而,只要该通道不采用自动预置操作,那么当本次DMA传输结束,产生一个有效的EOP信号后,其通道屏蔽位又被自动置位。所以,若要进行下一次DMA传输,必须再次初始化编程, 使通 道屏蔽位复位,才能允许下一次DMA传输。第8章 输入/输出方法及常用的接口电路 (8) 状态寄存器(DMA+8)。D7D6D5D4 通 道D3D2D1D0 通 道32103210有尚未处理的DMA请 求为“1”已接收到终止信号为“1”2. 端口地址 第8章 输入/输出方法及常用的接口电路 8237A-5端口地址、 读/写操作区分表第8章 输入/输出方法及常用的接口电路 通道寄存器寻址信号表第8章 输入/输出方法及常用的接口电路通道寄存器寻址信号表9.5.4 输入/输出方法及常用的接口电路 第8章 8237A-5在系统中的应用通道 0 保留 1 保留 2 保留 3 保留 通道 HRQ HLDA 5 保留 6 保留 7 保留 A0 ~A1 5 DREQ 0 DACK 0 8237A-5 (1) HRQ HLDA CPU8237A-5 (0)00HC0H DEHA17 ~A2 30FH 页面 寄存器 81H A16 ~A2 3页面 寄存器 89H~8BHA16 ~A2 3(a)PC/AT DMA系统逻辑结构示意图? (a) PC/AT DMA系统硬件逻辑结构示意图; (b) PC/AT DMA系统逻辑示意图H RQ D RQ 第8章 输入/输出方法及常用的接口电路 总 线 裁 决 逻 辑 H LD A D AC K0 D AC K1 D MA 控 制 器 D AC K2 D AC K3 E OP I OR I OW总线 请求 总线 应答0I / O 接口0 I / O 接口1 I / O 接口2 I / O 接口3 计数终止 读I / O 写I / O 外部设备 数据传输D RQ1 D RQ2 D RQ3 1开启/ 封锁总 线信号 操 作 状 态 总 线 控 制 器 I OR I OW( 两片8 23 7A - S ) D 0 ~D 7C PU S 2 ~S 0 D 0 ~D 7初 始 化M EM R M EM W 1 6位 地址 D 7 ~D 0 A 7 ~A 0读R AM 写R AM R AM 地址 R AMD MA 页面寄存器 ( 寄存器堆) L S6 12 (b)A 1 6~A 2 3( 最高8 位)PC/AT DMA系统逻辑结构示意图? (a) PC/AT DMA系统硬件逻辑结构示意图; (b) PC/AT DMA系统逻辑示意图第8章 输入/输出方法及常用的接口电路 一个完整的DMA传输过程必须经过4个阶段, PC/AT DMA 系统也是如此: ?(1) DMA请求。 DMA控制 器 (8237) 接受由 I/O接口发来的DMA请求信号DREQ,并经判优后向总线裁决逻辑提出总线请求HRQ信号。 ?(2) DMA响应。由总线裁决逻辑对总线请求进行裁决。 如 CPU不再对DMA初始编程,则当CPU完成当前总线周期后予以 响应,允许进行DMA传输。CPU放弃对总线的控制权,向8237 DMA控制器发出总线应答信号HLDA。第8章 输入/输出方法及常用的接口电路 (3) DMA传输。由DMA控制器控制总线, 发出相应的地址 与控制信息, 按要传输的字节数直接控制I/O接口与RAM的数据交换。(4) DMA传输结束。当DMA传输结束时, DMA控制器产生计数终止信号EOP,并通过接口向CPU提出中断请求,以使CPU进 行 DMA 传 输 正 确 性 检 查 并 重 新 获 得 对 总 线 的 控 制 权 。 在 PC/AT DMA系统可支持7个通道DMA传输。除通道2为软盘驱动 器的接口和通道0留作SDLC通信适配器应用外,其余通道3 、5、 6、7均留作扩充使用。第8章 输入/输出方法及常用的接口电路 PC/AT DMA通道的使用第8章 输入/输出方法及常用的接口电路 从DMA芯片的4个通道(0~3通道)仍按8位数据最大传输64 KB设计外, 主DMA芯片的5、6、7号通道都是按16位数据最大传输64 K字(即128 KB)设计的。同时,两者都有寻址16 MB空间的能力。 ?CPU对0 # 8237A-5从DMA芯片编程端口地址为00H~0FH,即DMA+0H~DMA+15(设DMA EQU 0)或DMA+0~0FH。 对应通道0、 1、 2、 3的页面寄存器端口地址分别为87H、 83H、 81H、82H。第8章 输入/输出方法及常用的接口电路 1#8237A-5主DMA芯片使用字边界,故CPU对此芯片编程 端口也应使用字边界,其起始端口定义为C0H。每个端口地址间隔为2, 故端口地址号为DMA1+2~DMA1+30(设DMA1 EQUC0H),或DMA1+0H~DMA1+1EH。对应通道5、 6、 7页面寄存器端口地址分别为8BH、 89H、 8AH。 DMA刷新页面寄存器端口地址为8FH。 表8.12列出了PC/AT中DMA芯片端口地址数, 表8.13给出了DMA系统涉及的I/O端口地址。第8章 输入/输出方法及常用的接口电路 PC/AT中DMA芯片端口地址第8章 输入/输出方法及常用的接口电路PC/AT DMA和页面寄存器I/O地址第8章 输入/输出方法及常用的接口电路8237A-5的初始化编程?(1) 对通道方式字寄存器置入工作方式字; ?(2) 将存储器中传输数据的起始地址分成两部为: 先将低16位地址分低、高8位两次送入该通道的基地址/当前地址寄存器,再将高4位(A16~A19)或高8位(A16~A23)地址送入对应于该通道的页面寄存器中; ? (3) 将本次DMA传送的字节数的值减1,然后分低8位、高8位 置入该通道的基字节/当前字节寄存器中; ? (4) 开放该通道, 由该通道的DREQ启动DMA传送过程。第8章 输入/输出方法及常用的接口电路 下面,以PC/AT中软盘的DMA传输为例,给出系统上电自举 时, ROM-BIOS对通道2初始化编程程序。 ?; 初始化DMA通道2?; 输入:?; AL=DMA方式字节。 ? ; 46H―通道2, DMA写, 单一传输(读软盘)。?;; ;4AH―通道2, DMA读, 单一传输(写软盘)。?42H―通道2, DMA校验, 单一传输(软盘校验)。? DH=要传输的扇区数。?;ES:BX=RAM缓冲区首地区(段地址: 偏移量)。?; 返回:? ; AX被破坏。?; CY=1, 初始化不成功。第8章 输入/输出方法及常用的接口电路; CY=0, 初始化成功。?; 程序中使用符号的定义。?DMA DMA-SETUP EQU PROC 0 NEAR ; DMA通道起始端口地址。? ; DMA初始化过程。?PUSH CXCLI; 保存寄存器。?; 关中断。?OUT DMA+12, AL ; 清除先/后触发器。? JMP $+2 ; 设备方式字寄存器。? OUT DMA+11, AL MOV AX, ES MOV CL, 4; 为满足CPU对8237A-5连续写时序要求。 ; 写入方式字寄存器。? ; 取RAM段地址。? ; 循环左移4位。第8章 输入/输出方法及常用的接口电路ROL AX, CL? MOV CH, AL AND AL, 0F0H ADD AX, BX? JNC INC J33? CH ; 进位加到高4位地址。 ? ; 最高4位保存在CH。? ; 获取低16位地址。?; 预置地址寄存器和页面寄存器。? J33: PUSH AX OUT JMP DMA+4, AL $+2? ; 保存低16位地址。? ; 预置通道2地址寄存器。?MOV AL,AH? OUTDMA+4, AL; 先低字节, 后高字节。第8章 输入/输出方法及常用的接口电路MOV JMP AND OUT AL, CH $+2? AL, 0FH? 081H, AL ; 预置通道2对应的页面寄存器。? ; 取最高4位地址。?; 预置字节计数器。? MOV SUB SHR PUSH AH, DH AL, AL AX, 1 AX ; 取传输扇区数。? ; 乘以256(AL=0)。? ; 右移, 即变成乘以128。? ; 保存“扇区数与128的乘积”。?MOVCALL MOVBX, 6GET-PARM CL, AH; 设置GET?-PARM入口参数。?; 调用取基数子过程。? ; 返回到AH为基数N, 保存在CL。第8章 输入/输出方法及常用的接口电路POPSHL DEC OUT CMP JNZ MOV JMP C25: CMP JZ SUB C26: HLT?AXAX, CL AX DMA+5, AL AH, 0CCH? C25? AL, 033H C26? AH, 0? C27? AL, AL; 取出乘积值。?; 右移返回值次数。? ; 传输字节值减1。?PUAH AX; 保存字节数。?; 预置字节计数器。?; 进行33H数据模式测试。?; 进行00H数据模式测试错误, 停机。?C27:; 其它测试(略)。第9章 输入/输出方法及常用的接口电路 9.6.1 串行通信的基本概念? 1. 串行通信与并行通信0 1 0 0 1 0 0 1 8T 计 算 机 计 算 机 或 外 设( (9.6 串行通信及8251串行接口电路0 1 0 0 计 1 算 0 机 0 1D0 D1 D2 D3 D4 D5 D6 D7 控制( 选通) 状态0 1 0 0 1 0 0 1计 算 机 或 外 设( (T(a)通信的两种基本方式? (a) 串行通信; (b) 并行通信(b)第9章 输入/输出方法及常用的接口电路串行通信: ●每个时间单位仅传送一位信息; ●每个字符(字节)的各位依次传送; ●字符之间的间隔不定。 优点: ●传输线少,成本低,传输距离远第9章 输入/输出方法及常用的接口电路1.串行通信工作方式单工通信――只能由一方发送,例:广播 半双工通信――某一时刻只能由一方发送,例:对讲机 全双工通信――双方可同时传输,例:电话同步通信――双方对每一位的收发时序完全一致,统一时钟异步通信――收发双方时钟不统一第9章 输入/输出方法及常用的接口电路单工/双工操作单工方式: 发送器 接收器半双工方式: 发送器/ 接收器 全双工方式: 发送器/ 接收器发送器/ 接收器 发送器/ 接收器A站B站第9章 输入/输出方法及常用的接口电路3. 比特率与波特率?数据传送的速率通常用比特率(bitrate)表示。比特 率 是 指 每 秒 能 传 输 的 比 特 (bit) 数 , 单 位 为 bit/s(bps-bit per second)。 ? 在数据通信中,还有另外一个常用术语――波特率(Baudrate), 波特率是指每秒能传输的符号(也称离散状态)数。若每个符号所含信息量等于1比特,则波特率等于比特率。第9章 输入/输出方法及常用的接口电路?计算机数据传输的速率是120字符/s,而 每个字符假如为10个比特(bit)位,则其 传输的波特率为 10 bit/字符×120字符/s=1200bit/s=1200波特?第9章 输入/输出方法及常用的接口电路4. 串行通信中的异步传送与同步传送?(1) 异步传送第n 个字符 起 始 位 1 0 奇 偶 校 验 位 第(n + 1 )个字符 停 止 位 1 1 空 闲 位 1 17 位数据M AR K下一个字符起始位 0 0 /1 0 /10 /1 0 /1 0 /1 0 /1 0 /1 0 /1 0 /1 0 /1 低 位 高 位下降沿指出下一 个字符的开始一位时间取 决于波特率异步传送数据格式? (a) 有空闲位;(a)第9章 输入/输出方法及常用的接口电路第( n- 1 ) 个字符 奇 偶 校 验 0 /1 0 /1 停 止 位 1 起 始 位 0第n 个字符7 位数据奇 偶 校 验 位第(n + 1 ) 个字符 停 止 位 1 起 始 位 07 位数据 0 /1 0 /1 0 /1 0 /10 /1 0 /1 0 /1 0 /1 0 /1 0 /1 0 /1 0 /1 低 位 (b) 高 位下降沿指出下一 个字符的开始异步传送数据格式 (b) 无空闲位第9章 输入/输出方法及常用的接口电路① 起始位。 每个字符的开始必须是持续一个比特时间的逻 辑“0”电平, 标志着每一个字符的开始。 ? ② 数据位。有5~8位,紧跟着起始位之后,是字符中的有效 数据位。传送数据时,先送低位, 后送高位数据。 ? ③ 奇偶校验位。仅占一位。可根据需要设置奇校验或偶校 验, 也可以不设校验位。 ? ④ 停止位。1位或1.5位, 或2位。 并规定为逻辑“1”状态。第9章 输入/输出方法及常用的接口电路(2) 同步传送同步字符 数据场 CRC 1 CRC 2 (a)同步字符1同步字符2数据场CRC1CRC2(b)标志符 地址符 8位数据场CRC 1CRC 2标志符 0111111 (c) 0标志符 地址符 控制符 数据信息 8位 8位CRC 1CRC 2标志符 (d)
第9章 输入/输出方法及常用的接口电路5. 信号的调制和解调?如果要利用电话信道进行远距离传输的话,直接采用数字信号是不能实现的。因为电话信道主要用以传输人的话音信息,在此频带范围以外的直流成分和其它频率分量将因不能通过电话 信道传输数字信号。必须采取一些措施, 把数字信号转换成适 于传输的模拟信号,而在接收端再将模拟信号转换成数字信号。 前一种转换称为调制,后一种转换称为解调。完成调制、解调功 能的设备叫做调制解调器(Modem)。 ?第9章 输入/输出方法及常用的接口电路频移键控的基本原理是把“0”和“1”的两种数字信号分别调 制成两个不同频率的音频信号。数字信号f1f2f1f1f2FSK信号 10110频移键控调制原理第9章 输入/输出方法及常用的接口电路幅度(a)t(b)t(c)tPSK相移键控调制原理? (a) 二进制0; (b) 二进制1; (c) PSK信号(101)第9章 输入/输出方法及常用的接口电路5. 串行接口的基本结构与功能1. 异步串行接口的基本结构与功能?状态寄存器 控制寄存器 数据总线 缓冲器 中断请求 读 控制 写 信号 复位 地址 译码 CS 输出缓冲寄存器 输入缓冲寄存器 接收时钟 发送与 接收 控制逻辑 输入移位寄存器 输出移位寄存器 串行数据输入 串行数据输出 发送时钟系统时钟异步串行接口的基本结构第9章 输入/输出方法及常用的接口电路 (1) 输出缓冲寄存器。它接收CPU从数据总线送来的并行数 据,并加以保存。 ? (2) 输出移位寄存器。它接收从输出缓冲寄存器送出的并行 数据,以发送时钟的速率把数据逐位移出。 ? (3) 输入移位寄存器。它以接收时钟的速率把出现在串行数 据输入线上的数据逐位移入。当数据装满后,并行送往输入缓冲 寄存器中。第9章 输入/输出方法及常用的接口电路 (4) 输入缓冲寄存器。 它从输入移位寄存器并行接收数据, 然后由CPU取走。 ? (5) 控制寄存器。它接收由CPU送入的控制字,由控制字的 内容决定通信时的数据格式以及传输方式等。 ? (6) 状态寄存器。其中存放着各种状态标志信息。在通信过 程中,当符合某种状态时,接口中的状态检测逻辑将状态寄存 器的相应位置“1”, 让CPU查询。第9章 输入/输出方法及常用的接口电路 发送数据的过程是:CPU把要输出的数据写入输出缓冲寄 存器,然后由接口电路中的发送控制逻辑根据预先写入控制字 的内容对数据格式化,即加上起始位、奇偶校验位和停止位等 成帧信息。格式化后的数据由输出移位寄存器按选定的传输速 率逐位移出,由串行数据输出线输出。 ?第9章 输入/输出方法及常用的接口电路 接收数据的过程是:串行口允许接收后,接收控制电路不断 监视串行数据输入线上的电平,一旦出现持续一个位周期的低电平,则开始采样有效数据位,并逐位移入移位寄存器中。采样重复进行,直至采样规定的停止位为止。 然后再将有效数据并行送 入输入缓冲寄存器,并由接口电路中的差错检测逻辑对输入数据进行校验,再根据校验结果置状态寄存器相应标志位。如传送数据正确,则由CPU读取数据。 ? 在异步通信时,发送接收端都要用发送/接收时钟来决定每一 信息位对应的时间宽度。发送/接收时钟(统称为外部时钟)的频率可以是位传输率的16倍、32倍和64倍。这个倍数称为波特率因子。第9章 输入/输出方法及常用的接口电路 若设每一位信息所占的时间为 Td,外部时钟周期为Tc,则有 如下关系:Td Tc ? K其中K=16、32或64,称为波特率因子。 ? 由于每个数据(信号)位时间周期Td=KTc ,所以每K个时钟脉 冲读一次数据。为保证采集数据的正确,采集时间应取在数据 位的中间时刻,就可避开信息上升或下降时可能产生的不稳定 状态。第9章 输入/输出方法及常用的接口电路 2. 同步串行接口的基本结构与功能?8 CRC 发生器发送 FIFO输出移位 寄存器串行数据输出 发送器时钟接收 FIFO 其他总线信号 数据总线 控制 88输入移位 寄存器CRC 校验器串行数据输入 时钟 分离器接收时钟状态同步 控制器同步 模式IRQ同步同步串行接口的基本结构第9章 输入/输出方法及常用的接口电路9.6.3 可编程串行通信接口Intel 8251A?1. 8251A的结构、 基本功能及工作原理D 7 ~D 0 数据总线 缓冲器 发送 并→串 缓冲器 转换 TxD D2 D3 RxD G ND D4 D5 D6 D7 TxC WR CS C /D RD Rx RD Y 1 2 28 27 D1 D0R ES ET C LK C /D RD WR CS D SR D TR C TS R TSVC CRx C D TR R TS D SR R ES ET C LK TxD Tx E C TS S YN DE T TxR DY读/ 写 控制逻辑电路内 部 总 线发送控制电路TxR DY TxE T xC8 25 1接收 串→并 缓冲器 转换 调制/ 解调 控制电路 接收控制电路RxDRxR DY RxC S YN DE T13 14 (b)16 15(a)8251A的结构框图与引脚图? (a) 结构框图; (b) 引脚图第9章 输入/输出方法及常用的接口电路 8251A可用于串行的异步或同步两种通信方式, 其主要性能如下: (1) 可用于同步和异步传送。 ? (2) 同步传送(5~8)位/字符; 可选择内部或外部同步; 可自 动插入同步字符。 ? (3) 异步传送(5~8)位/字符;时钟速率为通信波特率的1、 16 1 1 或64倍;可产生中止字符(Break Character); 可产生1、2 或2 个位的停止位;可检查假启动位;自动检测和处理中止字符。(4) 波特率: DC-19.2 bit/s(异步); DC-64 bit/s(同步)。第9章 输入/输出方法及常用的接口电路(5) 全双工、 双缓冲发送和接收器。 ?(6) 出错检测: 具有奇偶、 溢出和帧错误等检测电路。 ?(7) 全部输入输出与TTL电平兼容;单一的+5 V电源;单一 的TTL电平, 28脚双列直插式封装。 ? (8) 与Intel 8080、 8085、 8086、 8088 CPU接口兼容。第9章 输入/输出方法及常用的接口电路 (1) 接收器。它接收在芯片RxD引脚上出现的串行数据并按规 定格式转换成并行数据,存放在接收缓冲器中,以待CPU取走此 数据。当8251A工作于异步方式时,接收器监视RxD线上的电平变 化。平时没有数据传送时,RxD线上为高电平。当发现有低电平 出现时,则认为有可能是某一字符起始位的到来,但还不能确定 它就是真正的起始位,因为有可能是干扰脉冲造成的低电平而出 现的假起始位信号。为检测是否是真的起始位信号,采用当在R ?xD线上发现有低电平后,接收器启动一个内部计数器用作接收时钟, 其波特因子可选16、32或64, 当计数到相当于一个数据位宽度的一半(如选择K=16倍,则为计数到第八个脉冲)时,如果采 样到的RxD仍为低电平,就确认是真正的起始位出现了,而不是噪声干扰信号,否则认为是假起始位信号。第9章 输入/输出方法及常用的接口电路 当真正的起始位出现以后,8251A接收器同样以内部计数器的接 收时钟频率每隔16个时钟脉冲周期采样一次RxD,然后将采样的 数据送至移位寄存器, 经过移位操作,并经奇偶校验检查和去 掉停止位,就得到了变换成并行格式的数据,存入接收缓冲寄存器。同时输出RxRDY状态信号,表示已经收到一个可用的数据字符,CPU可以到缓冲器取走数据。对于少于8位的数据字符, 8251A将它们的高位填“0”。第9章 输入/输出方法及常用的接口电路 在同步接收方式下,8251监视RxD线,每出现一个数据位就 把它移位接收进移位寄存并与同步字符(由初始化程序设定)寄存器内容相比较,若不等则8251A重复执行上述过程,若相等,即找到了同步字符,则输出SYNDET信号, 表示已找到同步字符。 实现同步后,接收器与发送器之间就开始进行数据的同步传输。 接收器不断对RxD线进行采样,并把收到数据位送到移位寄存器 中。每当收到的数据达到设定的一个字符的位数时,就将移位寄 存器中的数据并行送到接收缓冲寄存器中,并输出RxRDY信号, 表示已收到一个数据字符。 ?第9章 输入/输出方法及常用的接口电路 (2) 发 送 器 。 在 异 步 方 式 下 , 只 有 当 程 序 设 置 了 TxEN(Transmitter Enable――允许发送)和CTS (Clear To Send,这 是由外设发来的对CPU请求发送信号的响应信号)有效时,才能 开始发送过程。发送器接收CPU送来的并行数据,加上成帧信 息起始位、校验位(由初始化程序规定设置),最后加上相应的 停止位,由TxD输出线发送出去。第9章 输入/输出方法及常用的接口电路 在同步方式下,也要在程序置TxEN和CTS有效,才能开始发 送过程。发送器首先根据初始化程序对同步格式的设定,发送一个一个同步字符(单同步)或者两个同步字符(双同步),然后发送数据块。 在发送数据块时,如果初始化程序设定为有奇偶校验,则 发送器会对数据块中每个数据字符加上奇/偶校验位。在同步发送 数据时, 如果CPU来不及把新的数据提供给8251A时,发送器会 自动插入同步字符。于是,就满足了在同步发送方式时不允许数据字符之间存在间隙的要求。如通信规程中有CRC校验,则发送器对所要传送的二进制码序列按特定的规则产生相应的校验码, 并将其发送出去。第9章 输入/输出方法及常用的接口电路 发送器的另一功能是发送中止符(Break)。中止符是由在通 信线路上的连续的空白符(Space)组成。它是用来在全双工通信 时中止发送终端的 。只在8251A的命令寄存器 D1(SBRK)位为 “1”, 则8251A就一直发送中止符。第9章 输入/输出方法及常用的接口电路 (3) 数据总线缓冲器。它用来与CPU的数据总线D0~D7相连。 其中含有3个缓冲器: ?① 状态字缓冲器。它用来存放8251A内部的工作状态,供CPU查询、测试之用; ?② 接收数据缓冲器。用来存放接收器已经装配完毕的字符,准备CPU来读取; ?③ 发送数据/命令缓冲器。 用来寄存CPU送入8251A的数据或命令。 ?第9章 输入/输出方法及常用的接口电路 (4) 读/写控制逻辑电路。用以实现对CPU输出的控制信号 译码,以控制实现如表8.6 所示的读/写功能。表 8.6 8251读/写控制功能表第9章 输入/输出方法及常用的接口电路 2. 8251A与CPU及外设的连接C LK D 7~D 0 M /I O AB A1 8 08 6 RD WR TxR DY TxE RxR DY S YN DE T R ES ET 译码 CS D TR D SR R TS C TS TxD RxD 8 25 1A TxC RxC外设C /D RD WR计数器/ 定时器8251A与CPU及外设的连接第9章 输入/输出方法及常用的接口电路 (1) 8251A与CPU之间的接口信号。8251A与CPU间的接口信 号分为 4 种类型: ① 数据信号D0~D7:8251A的8条双向数据总线D0~D7与CPU 的数据总线对应相连。? ? ② 读/写和控制信号:RD为读数据信号,低电平有效,当 CPU要从8251A中的读取数据或状态字时产生此低电平有效信号 以通知8251A;WR为写数据信号,低电平有效,当CPU要向 8251A写入数据或命令字时产生此信号告之8251A;控制/数据端 C/D在CPU向8251A送数据信息时为低电平,在送控制字或读取状态字时此端为高电平。第9章 输入/输出方法及常用的接口电路 ③ 收发联络信号: TxRDY(Transmitter Ready)――发送准备好信号。当8251A处于允许发送状态(TxEN=“1”,CTS=“0”),而且发送缓冲器为空时,TxRDY输出为高电平,以通知CPU,当前8251A已作好发送 准备,CPU可以向8251A传送一个数据字符。当CPU与8251A之 间采用中断方式联系时,TxRDY可作为向CPU申请中断的请求 信号;如果采用查询方式,则与TxRDY信号相对应的状态寄存 器中的状态信息供CPU查询状态之用。当8251A从CPU中接收到 一个字符后,TxRDY变为低电平。第9章 输入/输出方法及常用的接口电路 TxE(Transmitter Empty)――发送器空信号。当它有效(高电平) 时,表示发送器中的并行缓冲器空。在同步方式时,若CPU来不及输出一个新字符,则TxE变为高电平,同时发送器在输出线上插入同步字符,以填补传输空隙。 ? RxRDY(Receiver Ready)――接收器准备好信号。当它高电平 有效时,表明8251A已经从串行输入线接收了一个字符,正等待 CPU将此数据取走。所以,在中断方式时,RxRDY可作为向 CPU申请中断的请求信号;在查询方式时,RxRDY的状态位从 CPU查询之用。第9章 输入/输出方法及常用的接口电路 SYNDET(Synchronous Detect)――同步检测信号。仅用于同步 方式。SYNDET引脚既可以作为输入,也可以作为输出,这取决于初始化程序对8251A设置的是内同步方式还是外同步方式。8251A被复位(RESET)时,SYNDET变为低电平。内同步方式时,SYNDET作为输出端。 当8251A已经检测到所要求的同步字符后, 此信号变高电平,以指出8251A已达到同步。在外同步方式时, SYNDET作为输入端用。当外设(调制解调器)完成对同步字符检测后,向此输入端送入一个正跳变信号,使8251A在下一个RxC的下降沿开始装配字符。此时要求SYNDET的高电平至少应维持一个 RxC周期, 直到下一个RxC的下降沿的出现。第9章 输入/输出方法及常用的接口电路④ 片选信号CS,低电平有效,它由CPU的地址信号译码而形成。CS低电平有效, 8251A被CPU选中。第9章 输入/输出方法及常用的接口电路 (2) 8251A与外部设备(调制解调器)之间的接口信号。 ? ? DTR (Data Terminal Ready)――数据终端准备好。 输出、 低电 平有效。这是当CPU对8251A输出命令字使控制寄存器D1 位置 “1”,从而使DTR变为低电平,以通知外设,CPU当前已准备就绪。 ?? RTS (Request To Send)――请求发送。输出、低电平有效。此信号等效于DTR,CPU通过将控制寄存器的D5 置“1”,可使RTS低电平有效,用于通知外设(调制解调器),CPU已准备好发 送。第9章 输入/输出方法及常用的接口电路 TxD(Transmitter Data)――发送器发送数据传输线。 ?? DSR (Data Set Ready)――数据装置准备好。 输入、低电平有效。 这是由外设(或调制解调器)送入8251A的信号,用以表示调制解调 器或外设的数据已准备好。当DSR端出现低电平时会在8251A的状态寄存器的D7位反映出来。CPU可通过对状态寄存器进行读取操作,可查询D7位即DSR状态。 ? ? CTS (Clear to Send)――清除发送。输入、低电平有效。这是由 外设(或调制解调器)送往8251A的低电平有效信号。它是对RTS? 的响应信号。CTS有效,表示允许8251A发送数据。?第9章 输入/输出方法及常用的接口电路 RxD(Receiver Data)――接收器接收数据的传输线。 ? ?RxC (Receiver Clock)――接收器接收时钟输入端。 低电平有效,它控制8251A接收字符的速度。接收器在RxC的上升沿采样数据。 在同步方式时, 它由外设(或调制解调器)提供,RxC的频率等于波特率;在异步方式时,RxC由专门的时钟发生器提供,其频率是波特率(数据速率)的1、16或64倍,可由初始化时方式选择字设 定。实际上,RxC和TxC往往连在一起,用同一个时钟源,如图8.41所示。 ?? TxC (Transmitter Clock)――发送器发送数据速率时钟输入端。?TxC的频率与波特率之间的关系同RxC。数据在TxC的下降沿由发送器移位输出。第9章 输入/输出方法及常用的接口电路8251A初始化编程举例D7 D6 D5 D4 D3 D2 D1 D0 波特率因子 同步 Y N (D 1D 0≠0 0) 成帧控制 0 0: 无效 0 1: 1 个停止位 1 0: 11 个停止 2 位 1 1: 2 个停止位 同步控制 ×0 : ×1 : 0 ×: 1 ×: 内同步 外同步 双同步字符 单同步字符 同步方式? 字符数据长度 0 0: 0 1: 1 0: 1 1: 5位 6位 7位 8位 0 0: 0 1: 1 0: 1 1: 同步方式 异步( ×1 ) 异步( ×6 ) 异步( ×6 4)校验控制 ×0 :不校验 0 1:奇校验 1 1:偶校验工作方式选择字格式第9章 输入/输出方法及常用的接口电路D7 EHD6 IRD5 R TSD4 ERD3 S BR KD2 R xED1 D TRD0 T xE N 1 ―允许发送 0 ―禁止发送1 = 使D TR 输出为低电平 1 = 接收器允许 0 = 禁止接收 1 = 发送中止这字符( 使T xD 为低) 0 = 正常操作 1 = 错误标志P E、C E、F E均复位 1 = 请求发送(强使R TS 输出为低) 1 = 内部复位,使8 25 1返回方式指令,重新初始化 1 = 进入搜索同步字符8251A控制命令格式第9章 输入/输出方法及常用的接口电路D7 DSRSD6 YNDETD5 FED4 OED3 PED2 TXED1D0RxRDY TxRDY 1= 输出缓冲器空 同引脚定义 1= 存在奇偶校验错 1= 有超越错 1= 有帧格式错1= 表示引脚DSR为低电平8251A状态字格式第9章 输入/输出方法及常用的接口电路装入方式控制指令 Y系统复位是异步方式吗? N 装入第一个SYN 字符82 51 的 初 始 化 编 程 流 程 图A是单字符SYN? N 装入第二个SYN 字符Y装入命令指令 Y内部复位吗? N 发送数据N送完否 Y第9章 输入/输出方法及常用的接口电路 1. 异步方式下的初始化编程举例? ? 例如,设定8251A为异步工作方式,波特率因子(发送、接收数 据的时钟速率)为64,每字符有7个数据位,为偶校验,有2位停止 位,全双工模式。 ?根据上述通信方式,其方式选择字为B(FBH); 使接收及发送启动,并使错误标志复位,故控制命令字为H)。设8251A的控制端口的地址号为52H(C/D端口为高电平),数据端口的地址号为50H(C/D端为低电平)。 则初始化程 序如下:第9章 输入/输出方法及常用的接口电路MOV AL, 0FBH ; 送方式选择字。?OUT 52H, AL ;? ; 送控制命令字。?MOV AL, 15H OUT 52H, AL第9章 输入/输出方法及常用的接口电路2. 同步方式下的初始化编程举例? 设8251A设定为同步工作方式,2个同步字符,采用内同步,SYNDET为 输出引脚,偶校验,每个字符7个数据位。 ? 2个同步字符,它们可以相同,也可不同。本例为两个相同同步字符为 23H。初始化编程如下:MOV AL, 38HOUT 12H, AL? MOV AL, 23H; 设置工作方式、 双同步字符偶校验、 每字符7个数据位。; 连续输出两个同步字符23H。?OUT 52H, ALOUT 52H, AL?;?MOV AL, 97H ;送位控制命令字, 使接收器启动, 发送器启动,使状态 寄存器中的3个出错标志位复位,通知调制解调器CPU现 已准备好进行数据传输。 ? OUT 52H, AL第9章 输入/输出方法及常用的接口电路串行总线标准RS-232C数据 终端 设备 D TE数据 通信 设备 D CE数据 通信 设备 D CE数据 终端 设备 D TER S- 23 2C 接口标准传输线R S- 23 2C 接口标准RS-232C接口环境第9章 输入/输出方法及常用的接口电路 1. 接口特性?0 . 0 54 英寸 1 . 8 5英寸13 2512 2411 2310 229 218 207 196 185 174 163 152 141 0 . 5 英寸* 2 . 0 9英寸 * 阳: 1 . 5 8英寸 阴: 1 . 5 1英寸BD-25连接器机械图第9章 输入/输出方法及常用的接口电路RS-232C连接器引脚功能定义第9章 输入/输出方法及常用的接口电路 续表第9章 输入/输出方法及常用的接口电路1 2 3 4 DCE 5 6 7 8 20 22保护地 发送数据 接收数据 请求发送 清除发送 数传机就绪 信号地 载波信号检测 数据终端就绪 振铃指示1 2 3 4 5 DTE 6 7 8 20 22RS-232C常用引脚第9章 输入/输出方法及常用的接口电路 2. 电气信号特性? RS-232C采用负逻辑电平。 规定: ?(1) MARK“传号”(逻辑1)控制线的断开状态规定为-3 V~15 V;(2) SPACK“空号”(逻辑0), 及控制线的接通状态规定为+3 V~+15 V; ? (3) 噪声容限为±(3~5)V; ? (4) 当输入恰好为±3 V时, 分别确定为空号和传号; 当输 入端开路时, 终端定为传号。第9章 输入/输出方法及常用的接口电路- 12 V T TL 电平输 入 T TL 电平 输出MC 1 48 8R S- 23 2C 电平输出1 48 9R S- 23 2C 电平输入- 12 V (a)RS-232C总线接收器和发送器的连接方法?(a) RS-232发送器、接收器; (b) 全双工通信转换电路; (c) 典型全双工通信转换电路第9章 输入/输出方法及常用的接口电路-12V +12V RS-232C 连接器 TxD TxD MC1488 接收 3 数据 通 信 接 口 2 发送 数据 1 保护地 7 信号地 MC1488 5 清除发送 6 数据设备准备好 8 接收信号检测 -12V +12V RS-232C 连接器 3 接收数据通 信 接 口 RxD-12V 27kΩMC148920 数据终,准备好 MC1489 RxD 27kΩ 2 发送数据 1 保护地 7 信号地 -12V27kΩ -12VRS-232C总线接收器和发送器的连接方法? (b) (c)(a) RS-232发送器、接收器; (b) 全双工通信转换电路; (c) 典型全双工通信转换电路第9章 输入/输出方法及常用的接口电路RS-499及RS-423A、 RS-422A标准?鉴于RS-232C应用的局限与不足,如数据传输速率局限于20kbit/s, 传输距离限于15 m 之内。另外,接口各信号间会产生较强的串扰。为此,针对RS-232C的局限于不足,EIA颁布了3个新标准: ?EIA RS-499“采用串行二进制交换的数据终端设备和数据电路端设备的通用37针和9针接口”的两种连接器。在多通道通信中的主信道使用37针连接器, 而辅信道只需使用9针连接器即可, 并规定了机械连接和功能方面的标准规范。第9章 输入/输出方法及常用的接口电路 EIA-423A与EIA RS-422A主要是关于电气特性方面的接口 标准。RS-423A由于采用非平衡接口电路(非平衡产生器和差分 接收器), 传输率可达300 kbit/s, 传输距离为10 m (在300 bit/s) 到1000 m(在3 kbit/s),同时减少了信号串扰; RS-422A则采用平 衡接口电路(平衡产生器和差分接收器),传输率高达10 Mbit/s,传输距离为10 m(在10 Mbit/s)到1000 m(在100 kbit/s),同时串扰显著减少。 ? 另外, RS-423A电气接口特性上与RS-232C兼容。所以,可 以采用一根无源电缆,一头与RS-232C相匹配,另一头与RS423A相匹配,将一个RS-232设备和一个RS-423A设备连接起来。第9章 输入/输出方法及常用的接口电路 另一种可以进行长距离通信的接口是(20/60)mA电流环接口 或用调制解调方法。所谓(20/60)mA电流环接口标准是以电流(20 与“0”,如图8.52(a)所示。电流环中的电流一般用恒流源方法来 产生,传输的距离达500 m左右,允许的传输率≤9 600 bit/s。 ? 使用调制解调器大都可以通过一条电话线路实现全双工(同时 在两个方向传送数据)通信。如图8.52(b)所示, 例如用1 180 Hz表 示标志(又称“传号”),用980 Hz表示空白(又称“空号”),对于 给定的通信系统, 传送数据和接收数据的频率是事先约定的。mA,或60 mA)的“通”与“不通”两个状态表示逻辑上的“1”第9章 输入/输出方法及常用的接口电路D TE 1 2 3 4 5 6 7 8 20 22 保护地(可选) 发送数据 接收数据 R TS C TS D SR 信号地 D CD D TR RJ D CE 1 2 3 4 5 6 7 8 20 22 D TE 发送数据 接收数据 D CE2 3 4 5 6 7 8 20 22信号地2 3 4 5 6 7 8 20 22(a)(b)几种典型的RS-232C连接方式 (a) 全双向标准电缆; (b)三线经济方式第9章 输入/输出方法及常用的接口电路D TE 2 3 4 5 6 7 8 20 22 (c) D CD D TR R TS C TS D SR 发送数据 接收数据 D CE 2 3 4 5 6 7 8 20 22 D TE 2 3 4 5 6 7 8 20 22 (d) D CD D TR 发送数据 接收数据 R TS C TS D SR D CE 2 3 4 5 6 7 8 20 22几种典型的RS-232C连接方式 ?具有多种自环的三线方式;(d)具有多种自环的零调制解调器第9章 输入/输出方法及常用的接口电路D TE 2 3 4 5 6 7 8 20 22 发送数据 接收数据 R TS C TS D SR D CD D TR R1 R1 (e) R TS C TS D SR D CD D TR D CE 2 3 4 5 6 7 8 20 22几种典型的RS-232C连接方式 (e)具有双跨接的零调制解调器第9章 输入/输出方法及常用的接口电路数据 发送 S 发送 发送 接 收 20 mA 60 mA 20 mA 60 mA 接 收数据 20 mA 20 mA60 mA S 60 mA 发送 (a)采用(20/60)mA和调制解调器的两种通信方式? (a) (20/60)mA电流环接口;第9章 输入/输出方法及常用的接口电路0 1 9 80 Hz 1 18 0H z 9 80 Hz 1 18 0H z 0 1TxD 调制器 微型机 RxD 调制器 1 65 0/ 18 50 H z 9 80 /1 18 0H z 调制器RxD微型机 TxD 调制器1 65 0H z 1 85 0H z0 1 (b)0 11 65 0H z 1 85 0H z采用(20/60)mA和调制解调器的两种通信方式 (b) 采用调制解调器的通信方式第9章 输入/输出方法及常用的接口电路8251A应用举例主频8MHz 时钟信号 8086 20 CLK TxC RxC +12V 14 -12V 1 +5V 2 3 26 19 TxD 4 6 24 DTR 23 9 8 RTSCTU MCA D0~D7 RD WR RESET A1 AB A1/I O 译 码 器 D0~D7 RD WR RESET C/D +5V CTS 17 3 DSR RxD CS 4 MC 3 83 6 5 4 20 2 7RxD DSR CTS RTS DTR TxDCRT14 1 4 10键盘显示器终端20信号地8251A作为键盘-显示器接口第9章 输入/输出方法及常用的接口电路1. 传送单个字符到CRT的程序? STOCRT: MOV AL,5AH ; 送方式选择字, 异步方式、 波特率因子为16, 每字符7位OUT0DAH, AL ; 数据位, 奇校验1位停止位。 ?; 送控制命令字, 启动接收器、发送器,MOV AL, 37H使错误标志位复位, 使DTR和RTS输出为低电平OUTSTATE: IN0DAH, AL?AL, 0DAH ; 从状态口读状态字。? 01H ; 检测T?xRDY=1? 如不是则等待。?TEST AL,JZSTATE; 继续检测。 ?MOV AL, 4AH ; 将字符“J”ASCIIdcg 4AH送到AL。? OUT0D8H,AL ; 向数据口(D8H)送字符代码。?JMPSTATE ; 重复地输出字符J到CRT。第9章 输入/输出方法及常用的接口电路 2. 8251A接收由键盘输入的一个字符并送往CRT显示?MOV OUT MOV OUT STATE1:IN AL, TEST AL,5AH ; 置方式选择字。? 0DAH, AL? AL,37H ; 置控制命令字。? 0DAH, AL? 0DAH ; 检测接收准备好, RxRDY=1??AL, 02H ; 如不是则等待, 继续检测。?JZIN MOVSTATE1?AL, 0D8H ; 从8251A数据口接收一个字符。? BL, AL ; 将这个字符暂存于BL寄存器。第9章 输入/输出方法及常用的接口电路STATE2: IN TEST AL, 0DLH ; 读取状态字。?01H ;检测状态位TxRDY=1?。 如不是则等待,继续检测。 ?JZMOVSTATE2?AL, BL?OUTJMP0D8H, AL?STATE1 ; 继续准备接收。
视频输入输出常用接口介绍_电子/电路_工程科技_专业...输入, 所以显卡只能采取将模拟信号输入显示器的方式...d) PC 电脑领域的通用接口 D-SUB 9 端口(也就...9 输入输出方法及常用的接... 201页 20财富值如要投诉违规内容,请到百度文库...基本 输入接口 电路 ,是 指仅具备 寻址和 输入缓冲 功能的 接口电路 .左图 ...单片机原理及接口技术课后习题第9章 答案 - 第九章复习思考题 1. 计算机系统中为什么要设置输入输出接口? 输入/输出接口电路是 CPU 与外设进行数据传输的桥梁。...微机接口技术综合练习题 一. 填空题 1.接口的基本...A.AL B.DX C.AX D.DL 9. 查询输入/输出方式...A.传感器 B.滤波电路 C.采样保持器 D.多路模拟...)(、 )和 特征位,写入顺序,传输方向(顺序可变) 3.接口电路中和 CPU 连接的...速度 9.一般 I/O 端口的编址方式可以分为()和()两种方式。 I/O 端口单独...串行通信基本原理:并行数据传送和串行数据传送 并行...公司生产的大规模集成电路芯片,是与 INTEL 系列 CPU...第9章 串行输入输出接口 34页 1下载券
计算机...全不亮 〔习题 6.5〕 有一个查询输入接口电路类似图 6-9,但其数据端口为 ...〔习题 6.10〕 查询、中断和 DMA 传送是微机中常用的外设数据交换方式,请说明...缓冲器、锁存器及地址译码器等就构成了输入/输出接口电路(IO 接口电路) 。 ...PC3 个端 口的不同工作方式 方式 0---基本输入输出 方式 1---选通输入输出...()5、位于主机与外设间的电路统称为人机接口。 ()...9、当 INTEL 8086 工作在最大模式时,需要___芯片...答:接口的基本作用:输入缓冲,输出锁存,输入缓冲器...处理器向控制寄存器写入控制信息, 选择 接口电路的不同工作方式和与外设交换数据...输入 100 个字节 〔习题 7.9〕 某个字符输出设备,其数据端口和状态端口的...
All rights reserved Powered by
www.tceic.com
copyright ©right 。文档资料库内容来自网络,如有侵犯请联系客服。}