1 / 36

第 8 章 可编程接口芯片及应用

第 8 章 可编程接口芯片及应用. 主要内容 : 可编程定时器/计数器芯片 8253 / 8254 可编程并行接口芯片 8255A 串行通信及可编程串行接口芯片 8251A 模/数与数/模转换技术及接口. 8.1 可编程定时器 / 计数器芯片 8253/8254. 定时信号的产生 1. 软件定时 方法:根据所需时间常数设计一个延迟子程序。 优点:节省硬件 缺点:执行延时程序期间 CPU 一直被占用,降低了 CPU 效率,不易提供多作业环境。 适用:延时时间较短、重复次数有限的情况。. 2. 硬件定时

cala
Download Presentation

第 8 章 可编程接口芯片及应用

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. 第8章 可编程接口芯片及应用 主要内容: • 可编程定时器/计数器芯片8253/8254 • 可编程并行接口芯片8255A • 串行通信及可编程串行接口芯片8251A • 模/数与数/模转换技术及接口

  2. 8.1 可编程定时器/计数器芯片8253/8254 定时信号的产生 1.软件定时 方法:根据所需时间常数设计一个延迟子程序。 优点:节省硬件 缺点:执行延时程序期间CPU一直被占用,降低了CPU效率,不易提供多作业环境。 适用:延时时间较短、重复次数有限的情况。

  3. 2.硬件定时 方法:利用专门的定时/计数器作为主要硬件,在简单软件控制下,产生准确时间延迟。 优点:定时/计数器与CPU并行工作,不占CPU时间,利用定时/计数器产生中断信号,可以建立多作业环境,大大提高了CPU利用率。 适用:广泛应用。

  4. 8253/8254是Intel公司生产的一种通用的计数/定时器CTC,也称为可编程序间隔定时器PIT,它是采用NMOS工艺由单一+5V电源供电的双列直插式封装24引脚芯片。8253/8254芯片两者的外形引脚及功能都是兼容的,仅是工作的最高频率有所不同,以满足不同的接口要求。例如:8253/8254是Intel公司生产的一种通用的计数/定时器CTC,也称为可编程序间隔定时器PIT,它是采用NMOS工艺由单一+5V电源供电的双列直插式封装24引脚芯片。8253/8254芯片两者的外形引脚及功能都是兼容的,仅是工作的最高频率有所不同,以满足不同的接口要求。例如: 8253 (2MHz)、 8253-5 (5MHz ), 8254 (8MHz)、 8254-5 (5MHz )、 8254-2 (10MHz)。

  5. WR RD WR CS RD CS 8.1.1 8253的结构及功能 1. 8253的引脚 D 1 24 CLK V D ~D 7 0 CC 7 0 D 23 2 6 GATE 0 # 0 D 22 3 5 OUT 0 D 21 4 4 8253 D 20 5 A 3 CLK 1 1 D 19 6 A 2 0 1 # 8253 GATE 1 D 18 7 CLK 1 A 2 OUT 0 1 17 8 D OUT 0 2 16 9 CLK GATE A 0 2 1 15 10 CLK OUT CLK 2 0 1 14 11 GATE GATE GATE 2 # 0 1 2 13 12 GND OUT OUT 1 2 图8.1 8253引脚及功能结构

  6. 2. 8253内部结构

  7. (1) 数据总线缓冲器 是8253用于和CPU数据总线连接的8位、双向、三态缓冲器,CPU读写8253的所有数据都经过该缓冲器。 ◎ CPU用输出指令向8253写入方式控制字至控制寄存器、写入计数值至某个计数器,都是经数据总线缓冲器和8253内部总线传送的。 ◎ CPU用输入指令读某个计数器值时,该计数器的现行计数值经8253内部总线和数据总线缓冲器传送到系统数据总线上,读入CPU。

  8. (2) 读/写逻辑 是8253内部操作的控制部件 ◎ 接收系统总线输入信号,转换成8253内部操作的各种控制信号 ◎ 选择读写操作的对象(某计数器或控制寄存器-由A0、A1决定) ◎ 决定内部总线上数据的传送方向(输入还是输出—由WR、RD决定)

  9. 8253端口地址及内部操作

  10. (3) 控制寄存器 ◎ 8253初始化时接收CPU写入的控制字 ◎ 控制字指定计数器的工作方式,选择以二进制或二—十进制计数等 ◎ 该寄存器为只写寄存器

  11. (4) 计数器0、计数器1、计数器2 ◎ 三个计数器结构完全相同、操作完全独立 ◎ 每个计数器内部包含:一个16位计数初值寄存器(CR)、计数执行部件(CE)、一个16位输出锁存器 (OL)和一个控制寄存器 ◎ 每个计数器外部有两个输入端(CLK、GATE)和一个输出端(OUT)

  12. 3. 计数器的内部结构 计数器 0 控制寄存器 CRL 计数初值寄存器(CR) CRH 减1计数器(CE) CEH CEL 输出锁存寄存器(OL) OLH OLL

  13. 4. 8253的工作过程 (1) 由CPU向控制寄存器写入控制字,以确定工作方式; (2) 由CPU向计数器寄存器写入计数初值或定时常数; (3) 计数单元从计数器寄存器中获得初值,在CLK端输入的计数脉冲控制下进行减1计数(CLK决定计数速率);

  14. (4) 减到0时,该状态由OUT输出或由状态寄存器的某一位表示,以作为中断请求信号或供查询方式使用,也可将OUT 连到一个I/O设备上,去启动一个I/O操作; (5) 任何时候都可以将计数单元的当前值送到输出锁存器被CPU读取而不干扰计数器继续计数; (6) 门脉冲GATE是由设备送来的,作为对时钟脉冲的控制信号,门脉冲对时钟的控制方法有多种,以形成多种工作方式。

  15. 8.1.2 8253的编程 8253在工作之前,用户首先要为某一计数器(计数器02)写入控制字以确定其工作方式;写入定时/计数初值;在定时/计数工作过程中,有时还需要读取某计数器当前的计数值。 1. 8253的控制字格式 8253的控制字格式如下图所示。

  16. D7 D6D5 D4D3 D2 D1D0 SC1 SC0 RL1 RL0 M2 M1 M0 BCD D D D D D D D D 7 6 5 4 3 2 1 0 计数器选择 读写格式 工作方式 数制 0 —二进制计数 00 —选择计数器0 1— 十进制计数 01 —选择计数器1 10 —选择计数器2 000 —方式0 11 —非法 001 —方式1 00 —将减1计数器CE中的数据 ×10 —方式2 锁存到OL中(锁存功能) ×11 —方式3 100 —方式4 01 —对计数器的低8位读或写 101 —方式5 10 —对计数器的高8位读或写 11 —计数器16位操作(先低8 位,后高8位读或写)

  17. 2. 8253的读/写操作 对8253的读/写操作不仅要用到RD和WR控制信号,还要根据计数/定时工作的要求利用门控信号GATE和锁存功能来控制8253的读/写操作。 ⑴ 读操作。所谓读操作是指读出计数器的计数值至CPU中。有两种读数方法: ① 直接读出(停读)。直接用输入指令读取所选择的端口计数器值。 ② 锁存读出(飞读)。锁存计数值以供读取,是专为在计数过程中读数据而设计的。

  18. ⑵ 写操作 所谓写操作是指CPU对8253写入控制字或计数初值。 3. 初始化编程 8253投入工作之前,CPU要对它进行初始化编程。初始化编程的步骤为: ① 写入计数器的控制字,规定其工作方式及相应功能; ② 写入计数初值。

  19. 例如,若选择0#计数器,工作在方式3,计数初值为2354H,十进制计数方式;或选择l#计数器,工作在方式2,计数初值为18H,二进制计数方式。并设8253端口地址为4043H。例如,若选择0#计数器,工作在方式3,计数初值为2354H,十进制计数方式;或选择l#计数器,工作在方式2,计数初值为18H,二进制计数方式。并设8253端口地址为4043H。 则根据上述各计数器的功能,其初始化编程如下: 0#计数器的控制字为:37H 1#计数器的控制字为:54H 0 0110 1 11 SC1 SC0 RL1 RL0 M2 M1 M0 BCD 0 1010 1 00

  20. 对0#计数器初始化编程 MOV AL,37H ;对0#计数器送控制字。 OUT 43H,AL MOV AL,54H ;送初值的低8位。 OUT 40H,AL MOV AL,23H ;送初值的高8位。 OUT 40H,AL 对1#计数器初始化编程。 MOV AL,01010100B ;对1#计数器送控制字。 OUT 43H,AL MOV AL,18H ;计数初值送低8位。 OUT 41H,AL

  21. 当采用“飞读”的方法读取1#计数器的计数值时,可采用如下程序片段:当采用“飞读”的方法读取1#计数器的计数值时,可采用如下程序片段: MOV AL,01000100B ;对1#计数器送锁存控制字。 OUT 43H,AL IN AL,41H ;读低8位。 MOV CL,AL ;读取的计数值存于CL中。 当计数值为16位时,则“飞读”时还应读取高8位锁存器中的计数值。即: IN AL,41H ;读低8位。 MOV CL,AL IN AL,41H ;读高8位。 MOV CH,AL

  22. 8.1.3 8253的工作方式及时序图 8253定时器/计数器的每个计数器都有六种可编程选择的工作方式。对于每一种工作方式,由时钟输入信号CLK确定计数器递减的速率。门控信号GATE用于允许或禁止CLK信号进入计数器,或者根据工作方式用作计数器的启动信号。计数结束时,在输出线OUT上产生一个标志信号,该信号可编程定义为脉冲、恒定电位或周期信号。

  23. 区分六种工作方式的主要标志有三点: 一是输出波形不同; 二是启动的触发方式不同; 三是计数过程中门控信号CATE对计数操作的影响不同。 现在分别讨论不同工作方式的特点。

  24. WR 1.方式0 —计数结束产生中断方式 CW N=5 CLK GATE OUT 5 4 3 2 1 0

  25. WR CW N=3 CLK GATE OUT 3 2 2 2 1 0

  26. WR 2.方式1——可编程单次脉冲 CW N=2 CLK GATE 2 1 0 2 1 OUT 图8.7 方式1的波形

  27. WR 3.方式2——分频工作方式 CW N=3 CLK GATE 2 1 3 2 1 3 3 OUT T =N*T OUT CLK 图8.8 方式2的波形

  28. WR 4.方式3——方波发生器 CW N=4 CLK GATE 3 2 1 4 3 4 2 OUT T =N*T OUT CLK 图8.9 方式3的波形

  29. WR 5.方式4——软件触发选通 CW N=4 CLK GATE 3 2 1 0 4 OUT

  30. WR 6.方式5——硬件触发选通 CW N=4 CLK GATE 4 3 2 1 0 OUT

  31. 8.1.4 8254与8253的区别 8254是8253的改进型,它们的引脚定义与排列、硬件组成等基本上是相同的。因此8254的编程方式与8253是兼容的,凡是使用8253的地方均可用8254代替。 ① 允许最高计数脉冲(CLK)的频率不同。8253的最高频率为2 MHz,而8254允许的最高计数脉冲频率可达10 MHz(8254为8 MHz,8254−2为10 MHz)。

  32. 8254每个计数器内部都有一个状态寄存器和状态锁存器,而8253没有。 ③ 8254有一个读回命令字,用于读出当前减1计数器CE的内容和状态寄存器的内容,而8253没有此读回命令字。

  33. 8.1.5 8253应用举例 例8.2 使用8253计数器2产生频率为40 kHz的方波,设8253的端口地址为0040H0043H,已知时钟端CLK2输入信号的频率为2 MHz。试设计8253与8088总线的接口电路,并编写产生方波的程序。 8253与8088总线的接口电路如下图所示。

  34. RD WR CS G 1 G 2B G 2A CLK D 0 0 … D ~ D GATE 7 0 0 D OUT 7 0 CLK 1 RD 8253 GATE WR 1 OUT A A 1 0 0 2MHz CLK A A 2 1 1 GATE 2 A 20kHz A OUT 2 2 Y 0 A B 3 A C 4 74LS138 A 5 & A 6 A 7 A 8 A 9 ≥1 … A 15 & IO/M

  35. 1.工作方式控制字 2. 计数初值 计数初值=输入频率/输出频率 =2000000Hz /40000Hz =50 =0032H D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RL1 RL0 M2 M1 M0 BCD 1 1 1 1 0 1 1 0

  36. 根据上述要求2#计数器应设置成方式3工作状态,按双字节传送的50分频计数值应为0032H。此时,2#计数器的初始化程序如下:根据上述要求2#计数器应设置成方式3工作状态,按双字节传送的50分频计数值应为0032H。此时,2#计数器的初始化程序如下: MOV AL,11110110B ;对2#计数器送控制字。 OUT 43H,AL MOV AL,32H ;送低8位计数值32H。 OUT 42H,AL XOR AL,AL ;送高8位计数值00H。 OUT 42H,AL

More Related