1 / 64

第八章 接口电路

第八章 接口电路. 掌握并行接口 8255A 的主要特性、工作方式和初始化编程方法 掌握定时 / 计数器 8253 的主要特性、工作方式和初始化编程方法 理解 D/A 及 A/D 转换器接口方法 理解串行通信概念和 8251 初始化编程方法. 8-1 接口概述. 接口就是 CPU 与外部设备之间的连接部件,是 CPU 与外界进行信息交换的中转站。 接口的功能 数据缓冲 : 数据口和状态口 接收与执行 CPU 命令: 命令口 信号转换 : 电平、电流的转换以及时序的转换 设备选择 : 高位地址用于片选,低位对片内寻址 中断管理

Télécharger la présentation

第八章 接口电路

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第八章 接口电路 • 掌握并行接口8255A的主要特性、工作方式和初始化编程方法 • 掌握定时/计数器8253的主要特性、工作方式和初始化编程方法 • 理解D/A及A/D转换器接口方法 • 理解串行通信概念和8251初始化编程方法

  2. 8-1 接口概述 • 接口就是CPU与外部设备之间的连接部件,是CPU与外界进行信息交换的中转站。 • 接口的功能 • 数据缓冲 :数据口和状态口 • 接收与执行CPU命令:命令口 • 信号转换 :电平、电流的转换以及时序的转换 • 设备选择 :高位地址用于片选,低位对片内寻址 • 中断管理 • 数据宽度转换:移位寄存器 • 可编程:灵活地改变接口的工作方式

  3. 8-2 可编程并行通信接口 8255A 1、并行接口电路: • I/O设备要与微处理器进行数据传输,一般都采用接口电路与之相连,通常采用的有串行和并行通信接口。 • 并行接口电路中每个信息位有自己的传输线,一个数据字节各位可并行传送,速度快,控制简单。由于电气特性的限制,传输距离不能太长。 • 一个并行接口中包括状态寄存器、控制寄存器和输入输出缓冲寄存器。 • 8255A是通用的可编程并行接口芯片,功能强,使用灵活。适合一些并行输入/输出设备的使用。

  4. 2、8255A并行接口逻辑框图 C P U 接 口 外设 接 口

  5. 8-2 可编程并行通信接口 8255A ① 三个独立的数据端口 • 三个独立的数据端口是口A、口B、口C,都是8位的数据端口,用来完成和外设之间的信息交换。 • 口A有一个8位的数据输入锁存器和一个8位的数据输出锁存和缓冲器,即A端口适用于双向的数据传输。 • 口B与口C分别有一个8位的数据输入缓冲器和一个8位的输出锁存和缓冲器,即B端口和C端口作输出端口时数据可以锁存,作输入端口时不能对数据实现锁存。 • 在实际应用中,口A与口B通常作为独立的输入端口和输出端口,口C的8条线分成两个4位的端口,分别作为口A与口B在传输时的控制信号线。 • 口C的8条线可独立进行置1/置0的操作。

  6. 8-2 可编程并行通信接口 8255A • ② A组控制电路和B组控制电路:由它们内部的控制寄存器接收CPU输出的方式控制命令字,然后分别决定两组的工作方式。A组控制口A和口C的高4位,B组控制口B和口C的低4位。 • ③ 读写控制逻辑电路:由CPU的地址线A1和A0、8255A的片选信号CS#、RD#和WR#信号组合后产生控制命令。内有控制寄存器,接收CPU输出的命令字,决定两组的工作方式。 • ④ 数据总线缓冲器:三态双向的8位数据总线缓冲器,它是8255A与系统总线的接口,8255A与CPU之间的所有信息传输都要经过此。 • ⑤一些控制信号: • CS# 选片信号 RD# 读信号 WR# 写信号 • ⑥端口寻址:口A、口B、口C及控制字口共占4个端口号。

  7. 通过A1、A0选中8255A内部的四个寄存器

  8. 8-2 可编程并行通信接口 8255A 3、8255A的三种工作方式 • 方式0:基本输入/输出方式,不需要固定的应答式联络信号,输出是锁存的,输入不锁存。A、B、C端口均可设成此模式。 • 方式1:选通的输入/输出方式,此时A端口和B端口进行输入/输出时,端口C的某些位作为控制或状态信息。 • 方式2:带选通的双向传输方式(单一的8位总线上既能发送又能接收),输入和输出都是锁存的,只有端口A可设成此方式。此时C端口的PC7-PC3作为端口A的控制信号和状态信息使用。

  9. 端口A工作在方式1的输入方式 端口B工作在方式1的输入方式 PA 7~0 PB 7~0 PC 4 PC 5 PC 3 PC 1 PC 0 PC 2 INTEA INTEB STBA STBB IBFA IBFB INTRA INTRB PC 6~7 I/O

  10. 端口A工作在方式1的输出方式 端口B工作在方式1的输出方式 PA 7~0 PB 7~0 PC 6 PC 7 PC 3 PC 1 PC 0 PC 2 INTEA OBFA ACKA INTEB ACKB OBFB INTRA INTRB PC 4~5 I/O

  11. 8-2 可编程并行通信接口 8255A 4、8255A的工作方式选择

  12. 8-2 可编程并行通信接口 8255A • 例:要求8255A的A端口作输入,B端口作输出, C端口的PC7~PC4作输出,PC3作输入,A组工作在方式0,B组工作在方式1, 8255A占用的端口地址为 F8H~ FBH,写出初始化指令。 答: 方式控制字 = 1 0 0 1 0 1 0 1 B = 95H MOV AL,95H ;方式控制字 MOV DX,0FBH ;控制字寄存器端口为FBH OUT DX , AL

  13. 5、8255A的实际应用电路 利用8255A驱动多位显示的LED显示器 • 各位七段LED数码管公用一个段驱动,也称段码口 • 每位七段LED数码管的公共端连接一个位驱动,控制各位数码管的点燃,又称位码口。 • 可以采用8255A的A口数据线用作8个数码管公用的段控制线(阳极),B口数据线用作对8个数码管的阴极控制。

  14. 段码口 : : a …. g a …. g a …. g a …. g a …. g a …. g a …. g a …. g com com com com com com com com 位码口 A 口 B 口

  15. 问题: 假设8255A占用的端口地址为3F0H~3F3H,请问: • 8255A与CPU如何连接? • 此时, A端口和B端口工作在什么方式? CPU如何对8255A进行初始化? 答: 口A和口B应工作在方式0的输出方式。 工作方式控制字 = 1 0 0 0 0 0 0 0 B = 80H MOV AL,80H ;方式控制字 MOV DX,3F3H ;控制字寄存器端口为3F3H OUT DX , AL

  16. WR WR RD RD CS M 8086 CPU A口 A0 A0 A1 A1 RESET RESET B口 8255A A2 A3 A4 A5 A6 A7 A8 A9 IO/

  17. 利用8255A的8×8小键盘接口电路 +5V +5V …… +5V +5V PA0 PA1 … … … 8255A PA6 PA7 R0 R1 …… R6 R7 PB0 PB1 … PB6 PB7 L0 L1 … L6 L7

  18. 8-2 可编程并行通信接口 8255A 5、8255A的按位“置位/复位”功能

  19. 8-2 可编程并行通信接口 8255A • 例:要使端口C的PC3置位,PC7复位的控制字各为多少,如何通过程序实现? 8255A占用的端口地址为 F8H~ FBH。 答: PC3置位的控制字 = 0 0 0 0 0 1 1 1 B = 07H PC7复位的控制字 = 0 0 0 0 1 1 1 0 B = 0EH MOV AL,07H MOV DX,0FBH ;控制字寄存器端口为FBH OUT DX , AL MOV AL,0EH OUT DX , AL

  20. 例题: • 8255A的工作方式控制字和C口的按位置位/复位控制字有何区别?若将PC2脚上输出高电平,其控制口地址是303H,程序段应是如何? • 工作方式控制字是对8255A的三个端口的工作方式及功能进行控制,写在程序的开头,控制字最高位D7=1; • C口的按位置位/复位控制字只对C口的某一位输出高电平或低电平(置位或复位)进行控制,不能同时对几位操作,控制字最高位D7=0。 • PC2置位的程序为:MOV DX,303H MOV AL,05H OUT DX,AL

  21. 8-3 可编程串行通信接口 8251A 8-3-1 串行通信的基本概念 • 串行通信中两种基本的通信方式:同步方式和异步方式。 • 异步通信方式:用一个起始位表示字符的开始,用停止位表示字符的结束,它们之间是真正的数据位,由此构成一个数据帧。 • CPU与外设之间必须规定统一的字符编码形式。 • CPU与外设之间必须规定好数据信号传送速率 • 波特率:单位时间内线路状态变化(电信号变化)的数目, 单位是波特。 • 同步通信方式:在数据块传送时,采用同步传送,在数据块开始处用同步字符来指示。 • 同步传送的速度高于异步的,但要求有时钟来实现发送端和接收端之间的同步。

  22. 8-3 可编程串行通信接口 8251A • 串行通信中数据传送方向:单工、半双工和全双工。 • 串行通信的信号常常要通过调制解调器进行传送。 • 调制器:把数字信号转换为模拟信号 • 解调器:将模拟信号还原为数字信号 • 调制方法:频率调制FM、幅度调制AM、相位调制PM

  23. 串行I/O的实现 • 软件实现 • 硬件UART---通用非同步(异步)接收器/发送器 • 输入时,由RXD来的串行数据先进入移位寄存器,然后并行输入给缓冲器(变成并行的),由数据总线输至CPU。 • 输出时,由CPU来的并行数据由缓冲器接收,然后送至移位寄存器,由TXD一位一位移位输出(变成串行的) • 串行通信的校验方法: 奇偶校验(异步通信)、循环冗余校验(同步通信) • 串行接口标准RS-232C (异步) 用于计算机与Modem、键盘或终端之类的设备之间

  24. 例题: • 什么叫波特率?在一个异步通信系统中,如果数据速率为2400波特,数据格式为8个数据位,1个校验位,2个停止位,那么每秒钟能传送多少个字符? • 为什么同步传输比异步传输效率高? • 波特率是指单位时间内线路状态变化(电信号变化)的数目,用波特做单位。 • 异步传输要有一位起始位,一个字符为1位起始位、8个数据位,1个校验位,2个停止位,共12位,每秒钟可以传送字符2400/12=200个。 • 异步传输中,每个字符要用起始位和停止位作为字符的开始和结束的标志,占用了时间;同步传输不需要起始位和停止位,所以比异步传输效率高。

  25. 例题: • 现利用一个异步通信系统传送英文资料,系统的速率为1200波特,待传送的资料位5000个字符,假设系统采用ASCII码传送,不用校验位,1个停止位,问至少需要多少时间才能传送完全部资料? • 每个字符用9位,总计需要传送的位数为9*5000=45000 • 所需的时间为45000/1200=37.5秒。

  26. 8-3-2 可编程串行接口芯片8251A---- USART

  27. 1、8251A内部结构框图 ①I/O缓冲器:通过8位数据线与CPU数据总线相连,包括 状态缓冲器、发送数据/命令缓冲器、接收数据缓冲器。 ②读写控制逻辑:接收与读写有关的控制信号,由CS#、C/D#、RD#和WR#信号组合后产生出8251A所执行的操作。 ③发送器:接收 CPU送来的并行数据,加上起始位、奇偶校验位和停止位,从TxD引脚发送。包括数据输出寄存器和发送移位寄存器及控制电路。 ④接收器:接收 RxD脚上的串行数据,并把它转换为规定格式并行数据,存放在接收数据缓冲器中。包括接收移位寄存器和数据输入寄存器及控制电路。 ⑤调制控制逻辑:专为调制解调器提供控制信号。

  28. 2、8251A 初始化编程 • 8251A占用2个端口地址。(C/ D端接地址线,控制/数据端) • 偶地址用于数据端口,输入/输出合用; • 奇地址用于控制端口,状态/控制合用。 • 合用的信号,用RD#和WR#来区分。 • 8251A可工作在同步方式,也可工作在异步方式。在初始化时向控制口写入方式选择字,规定其工作方式。 • 例如:要求8251A作为外同步通信接口,数据位8位,2个同步字符,偶校验。 其方式选择字为:7CH(0 1 1 1, 1 1 0 0 B) • 例如:要求8251A作为异步通信,波特率因子为64,字符长度为8位,奇校验,2个停止位。 其方式选择字为: DFH(1 1 0 1, 1 1 1 1 B)

  29. 8251A 同步方式下方式选择字的格式 D7 D6 D5 D4 D3 D2 D1 D0 D5 D3 D2 0 0 D7 D6 D4 同步字符数目 0 0 0 5位数据 双同步字符 0 1 6位数据 1 单同步字符 1 0 7位数据 1 1 8位数据 内同步检测 0 (SYNDET为出) 禁止奇偶校验 0 外同步检测 1 (SYNDET为入) 1 允许奇偶校验 0 奇校验 1 偶校验

  30. 8251A 异步方式下方式选择字的格式 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D3 D2 B2 B1 D4 S2 S1 EP PEN 仃止位数目 0 无 效 0 0 0 0 0 5 同步 方 式 允 1 位 0 1 0 1 6 0 1 1x 1 许 1 0 7 1 0 16x 1 1/2 位 1 0 校 1 1 8 1 1 64x 2 位 1 1 禁 0 止 数据位 0 波特率因子 奇 校 验 校 1 偶 校 验

  31. 2、8251A 初始化编程 8251A的三个控制字: • 方式选择控制字:在初始化时向控制口写入方式选择字,规定8251A的工作方式。 • 命令控制字:初始化在写入方式选择字后,接着要向控制口写入命令字,直接启动工作,使8251A的处于规定的工作状态,以准备接收或发送数据。 • 状态寄存器:是反映8251A内部工作状态的寄存器,只能读出,不能写入。状态字可以被CPU读入后用以控制CPU与8251之间的数据交换。

  32. D7 D6 D5 D4 D3 D2 D1 D0 EH IR RTS ER SBRK RxE DTR TxEN 置“1”为搜索同步字符 请求发送,置“1”后RTS#输出0 送终止符,置“1”后TxD输出0 数据终端就绪,置“1”后 DTR#输出0 置“1”后8251内部复位 清除错误标志,置“1”后清PE、OE、FE 1:接收允许0:屏蔽 1:发送允许0:屏蔽 8251A 命令字的格式 • 内部软件复位命令为40H。 • 正常通信状态,D3、D6为0。 • 写同步接收命令字时,D7、D4、D2同时为1。

  33. 复位操作 送方式字 是 同步方式 ? 否 送第一个同步字符 否 双同步 ? 送命令字 是 是 送第二个同步字符 复 位 ? 否 传送数据 否 传递完 ? 是 2、8251A 初始化编程

  34. 8-4 可编程定时/计数器 8253 1、8253的主要功能 • 一个芯片上有3个独立的16位的计数器通道。 • 每个计数器都可以单独作为定时器或计数器使用,都可以按照二进制或十进制来计数。 • 每个通道都有6种工作方式,可以通过程序设置或改变。 • 单一的+5V电源,所有的输入、输出都是TTL电平,便于与外围接口电路相连接。 • 每个计数器的速率高达2MHz。 • 计数是用外部被记录的脉冲做时钟,定时是用已知的准确的固定周期的信号作时钟。

  35. 2、 8253结构框图

  36. 数据总线缓冲器:是8253与CPU数据总线连接的8位的双向三态缓冲器,8253与CPU之间进行数据传送时的所有信息都要经过数据总线缓冲器,主要有:数据总线缓冲器:是8253与CPU数据总线连接的8位的双向三态缓冲器,8253与CPU之间进行数据传送时的所有信息都要经过数据总线缓冲器,主要有: • CPU对8253初始化编程时,写入8253的控制字 • CPU向某一个通道写入计数值 • CPU从某一个通道读取当前的计数值 • 读/写控制逻辑:接收CPU输出到8253的 RD#、WR#、CS#、A1、A0信号,经过逻辑控制电路的组合产生出对8253要进行的操作。 • 控制字寄存器:8位寄存器,只能写入,不能读出。在初始化8253时,CPU写入8253的控制字就存放在其中。 • 3个计数器:每个计数器内部都包含一个16位的可预置初始值寄存器、一个减法计数器和一个锁存器。

  37. 3、8253的控制字 D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RL1 RL0 M2 M1 M0 BCD 计数器0 0 0 0 1 0 计数器1 二进制格式 计数器2 BCD码格式 1 0 1 1 1 不定义 0 0 0 0 0 MODE0 锁存计数值 读/写低8位 1 0 0 1 MODE1 0 读/写高8位 1 X 1 0 MODE2 0 先读/写低8位 后读/写高8位 1 1 X 1 1 MODE3 1 0 0 MODE4 1 0 1 MODE5 MODE5

  38. 4、8253初始化编程 • 设置控制字:由CPU向8253的控制字寄存器输出一个控制字,用来选择计数器并设置其工作方式和计数格式。 • 设置初始值:给计数器写入初始值。 • 对某个计数器预置初始值之前,必须先写入控制字。 • 给计数器写入初始值,要符合控制字中规定的格式。 • 如果是16位初值,要用2条输出指令 • (先送低字节,后送高字节) • 如果是8位,在8253内部全部当作16位双字节, 缺少的字节补0。

  39. 8253通过2位地址线A1、A0,对三个计数器和控制字寄存器进行寻址,即8253占用4个设备号。 例:8253的端口地址位0F8H ~0FBH,现要用计数器0,工作在方式0,按二进制计数,计数值为0FFEH。 写出初始化程序。 MOV AL ,30H ;控制字 OUT 0FBH,AL ;送控制口 MOV AL ,0FEH ;计数值低8位 OUT 0F8H ,AL ;送计数器0 MOV AL ,OFH ;计数值高8位 OUT 0F8H,AL ;送计数器0

  40. 5、8253的6种工作方式 • 方式0(计数最后一个数时中断) • 方式1(可编程序的单拍脉冲) • 方式2(速率发生器、分频器) • 方式3(方波速率发生器) • 方式4(软件触发选通) • 方式5(硬件触发选通)

  41. 方式0(计数结束产生中断的计数器) • 控制字送出,OUT保持为低。 • 写入计数值后自动开始计数。 • 计数到0时,输出变高,产生中断,并停止计数。

  42. 方式1(可编程序的单拍脉冲) 输出单个宽度为 计数值N的负脉冲 • 控制字送出,OUT保持为高。 • 写入计数值后,等待门控脉冲的触发启动,在启动之后的下一个CLK脉冲的下降沿开始计数,输出由高变低; • 计数到0时,输出变高,停止计数;等下一次 门控脉冲的再次触发启动

  43. 方式2(速率发生器、分频器) 每N个CLK中输出单个宽度为CLK周期的负脉冲 • 写入计数值后立即计数,而且能连续工作; • 计数到1时,输出变低; • 再一个CLK周期,输出恢复为高,且计数器开始重新计数。

  44. 方式3(方波速率发生器) • 写入计数值后立即计数; • 计数值为偶数时,输出对称方波。 • 先 N/2 个CLK的高电平,后 N/2 个CLK的低电平。

  45. 方式3(方波速率发生器) • 写入计数值后立即计数; • 计数值为奇数时,输出不对称方波。 • 先(N+1)/ 2个CLK的高电平,后(N-1)/ 2个CLK的低电平。

  46. 方式4(软件触发选通) • 写入计数值后立即计数(软件启动); • 计数到0,输出变低; • 再一个CLK周期,输出变高,停止计数,即计数是一次性的。

  47. 方式5(硬件触发选通) • 写入计数值后,由门控脉冲的上升沿触发启动计数; • 计数到0,输出变低; • 再一个CLK周期,输出变高,停止计数; • 等下一次门控脉冲的触发再次启动计数。

  48. 工作方式的简单比较: • 方式0、2、3、4是在写入计数值后立即计数,方式1和5需要外部触发启动,才开始计数。 • 方式1与方式5工作方式基本相同,方式1输出宽度为N个CLK周期的负脉冲,方式5输出宽度为1个CLK周期的负脉冲。 • 方式2和方式3是连续计数,方式0、1、4、5都是一次计数,要继续工作,需要重新启动。 • 方式0和4由再次写入计数值(软件)启动 • 方式1和5由再次的门控信号(硬件)启动 • 方式2、4、5都是输出宽度为1个CLK周期的负脉冲,方式2是连续工作,方式4由软件启动,方式5由硬件启动。

  49. 例题: • 用8253A通道0对外部脉冲计数,每计满10000个产生一次中断。问该通道应工作在什么方式? • 请写出工作方式控制字及计数值。 • 通道0应工作在方式0,即计数到零产生中断。 • 此时的工作方式的控制字为30H。 • 计数器的计数初值为2710H(10000D)。

  50. 例题: • 用8253A通道1作为DRAM的刷新定时器,DRAM要求在2ms对全部128行存储单元刷新一遍。假定计数器用的时钟频率为2MHz,问该通道应该工作在什么方式? • 请写出工作方式控制字及计数值(用16进制数表示)。 • 通道1应工作在方式2,即频率发生器方式。 • 此时的工作方式的控制字为54H。 • 计数器的时钟频率为2MHz,则计数周期为0.5μs 两行刷新的最大时间间隔为 2ms/128= 15.6 μs 频率发生器的计数值 15.6 / 0.5 =31.2 ,取31D 即计数值为1FH。

More Related