第6章 基本输入输出接口技术 【本章提要】 【学习目标】

Slides:



Advertisements
Similar presentations
第五章 微型计算机和外设的数据传输 5.1 为什么用接口电路? 5.2 CPU和I/O设备之间的信号; 5.3 接口部件的I/O端口;
Advertisements

输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
实验四 利用中规模芯片设计时序电路(二).
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
第一章 绪论.
第 6 章 I/O 接口和总线 中国科学技术大学 何克东.
第7章 常用数字接口电路.
主要内容 串行口的结构 串行口的工作方式 波特率的计算 简单应用
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
第三节 CPU与外设间的数据传送方式 CPU与外设的工作速度不一致, 如何使两者高效、可靠地进行数据传送, 是本节讨论的问题。
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
第6章 DMA传输 6.1 DMA传输原理 6.2 DMA控制器8237A A的编程使用 欢迎辞.
第7章 并行接口 7.1 简单并行接口 7.2 可编程并行接口8255A 7.3 键盘接口 7.4 LED显示器接口.
西安交通大学 计算机科学与技术系 微机课程组 2012年11月10日
第4章 数据通信方式及常用接口芯片 4.1 概述 外部设备是微型机系统的必要的组成部分。外部设备与计算机之间需通过硬件连接和软件控制来建立联系。这一硬件、软件的综合便是接口。接口位于计算机主机与外部设备之间,它的功能是使主机与外部设备能正确地交换信息。 在设计接口之前,首先应当了解某一类型外部设备所要完成的功能,为完成这些功能应做哪些操作,以及如何实现。进一步还应了解对控制信号有什么要求,输入、输出什么信息。这样才能明白外部设备和接口电路之间的交换关系,才能确定哪些功能由硬件逻辑电路实现,哪些功能由软件程
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
AVR单片机软硬件设计教程-入门篇 ——学单片机就要学AVR!
串行通讯的概念 串行通讯:一条信息的各位数据被逐位按顺序传送 的通讯方式称为串行通讯。
微型机系统与接口技术复习.
第9章 AT89S52单片机的 I/O扩展 1.
第八章 80C51单片机的串行通信 主要内容:本章主要介绍80C51串行通信相关知识,包括串行通信基本概念,80C51单片机的串行口及其工作方式,以及单片机在双机或多机通信中的应用。
第8章 SCI/SPI串行通信模块 并行---多位同时传输。速度快,距离近,占引脚多,抗干扰弱
第三章 微机基本系统的设计 第一章 8086程序设计 第二章 MCS-51程序设计 第四章 存贮器与接口 第五章 并行接口
第二部分 PC 微机异步通信适配器的分析和使用 一、PC中的UART 1.INS PC16450/PC16550
第 14 章 并行通信及其接口电路.
第15章 串行通信及接口电路.
微机原理与接口技术 第9章 计时/计数接口.
第 9 章 可编程外围接口芯片 8255A 中国科学技术大学 何克东.
第8章 PCH中的常规接口.
第七章 输入和输出 第一节 I/O接口 第三节 可编程DMA控制器8237A 第二节 CPU与外设数据传送的方式.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月20日.
第七章 可编程并行接口8255A §7.1并行接口的概述 §7.2 可编程并行接口8255A § A的0方式及其应用
时序逻辑电路实验 一、 实验目的 1.熟悉集成计数器的功能和使用方法; 2.利用集成计数器设计任意进制计数器。 二、实验原理
逆向工程-汇编语言
CPU结构和功能.
第7章 I/O接口和总线 7.1 I/O接口 7.2 总线.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第五章:输入输出基本技术 主讲教师:范新民.
移相正弦信号发生器设计 采用直接数字综合器DDS发生器的设计 原理:图1是此电路模型图
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
第五章 MCS-51中断系统 一、中断请求源 MCS-51提供5个中断请求源,即INT0、INT1、TF0、 TF1和串行口发送与接收中断请求源TI或RI。这些 中断请求源分别由TCON与SCON的相应位锁存。
可编程定时计数器.
(Random Access Memory)
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
微机原理与接口技术 第6章 并行输入输出接口(8255A)
微机原理及应用 主讲:郑海春.
微机原理与接口技术 西安邮电大学计算机学院 杨锐.
第三章 MCS 51的硬件结构.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月04日.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
第二部分 微机原理 第9章 串行通信 及其接口 主讲教师:喻红.
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
第十章 输入输出程序设计 10.1 输入输出指令 输入输出(I/O)是指CPU与输入设备和输出设备之间进行的信息传送。CPU与外部设备之间通过输入输出接口相连接。各个设备在输入输出接口中分配了相应的端口。访问不同的设备就是访问其对应的端口。在指令系统中提供了访问输入输出端口的指令。 一、I/O端口寻址方式.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
串行通讯的概念 串行通讯:一条信息的各位数据被逐位按顺序传送 的通讯方式称为串行通讯。
HSC高速输出例程 HORNER APG.
第六章 I/O接口 一、I/O接口的功能 第一节 概 述 一、I/O 接口的功能 二、I/O接口的一般结构 第二节 输入输出寻址方式和指令
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
信号发生电路 -非正弦波发生电路.
微机原理与接口技术 西安邮电大学计算机学院 杨锐.
第八章 串行接口 8-1 串行通信的基本概念 8-2 可编程串行接口8251A A的应用.
ADC0809并行A/D转换 (实验十) DAC0832并行D/A转换实验 (实验十一) RS232串口通信实验 (实验九)
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
DSP技术与应用 电子与信息技术系.
Presentation transcript:

第6章 基本输入输出接口技术 【本章提要】 【学习目标】 第6章 基本输入输出接口技术 【本章提要】 本章首先概述I/O的基本知识,然后讨论输入/输出控制方式,I/O接口的读写技术, 并行通信与串行通信,最后重点讨论常用可编程典型I/O接口芯片及其接口技术。 【学习目标】 了解I/O接口信息、I/O编址方法、I/O组织、I/O控制方式、并行通信及串行通信等输入输出基础知识。 理解基本输入输出接口的操作。 掌握简单I/O接口的读写技术。 熟练掌握常用接口芯片16550/8250、8255和8253的工作原理及其编程应用。 能综合运用接口芯片,构建和分析实际应用系统。

第6章 基本输入输出接口技术 本章主要内容: 概 述 输入/输出控制方式 可编程接口芯片 I/O接口读写技术 串行通信接口芯片 第6章 基本输入输出接口技术 本章主要内容: 概 述 输入/输出控制方式 I/O接口读写技术 并行通信与串行通信 可编程接口芯片 串行通信接口芯片 并行通信接口芯片 定时计数接口芯片 1 2 5 3 6 4 7

6.1 概述 一、输入/输出与输入/输出接口 1.输入/输出:微处理器与外部设备之间的信息交换即通信。 6.1 概述 一、输入/输出与输入/输出接口 1.输入/输出:微处理器与外部设备之间的信息交换即通信。 2.输入/输出接口:完成微处理器与外部设备数据通信即输入/输出任务的接口。 包括:硬件接口电路和软件接口程序。 2018年11月27日星期二

二、I/O接口的功能 2.提供联络信号 3.信号特性匹配(如电平转换) 4.信息格式的转换(如正负逻辑的转换,串并 格式,模数转换) 1. 内部地址译码 2.提供联络信号 3.信号特性匹配(如电平转换) 4.信息格式的转换(如正负逻辑的转换,串并 格式,模数转换) 5.数据缓冲与锁存 6.对外设进行中断管理 7.提供时序控制 2018年11月27日星期二

三、CPU与I/O设备间的接口信息 三种:数据信息、状态信息、控制信息 这些信息均通过数据总线传输。 2018年11月27日星期二

四、I/O端口的编址方法 1.存储器映射编址 含义: 优点: I/O端口的地址与存储器的地址统一混合编址。 内存与外设地址分布相同。 无需专用的I/O指令。 2018年11月27日星期二

2. I/O映射编址 含义 I/O端口与存储器分开独立编址,即I/O端口和存储器都有自己的一套地址空间,而且互不相干。 优点 I/O端口 指令执行速度快。 I/O端口 8086~Core2微机采用I/O映射的编址方法。 I/O端口的地址64K 个8位口地址(0000H-FFFFH)。 2018年11月27日星期二

4.基于Pentium~Pentium4的64位I/O组织 2018年11月27日星期二

8位I/O组织-基于8088 2018年11月27日星期二

16位I/O组织-基于8086~80286 2018年11月27日星期二

32位I/O组织-基于80386~80486 2018年11月27日星期二

64位I/O组织 -基于Pentium~ Core2 2018年11月27日星期二

2.I/O端口的地址分配 1. I/O地址范围 0000H-FFFFH.共64K个8位端口 从8086~Core2 I/O地址采用A15~A0共16条地址线,且与存储器分开编址。 2. 系统板保留的1K个I/O端口 (详见书P.238表6.1) 000H-03FFH,共1K个8位端口 3. 查看当前系统I/O地址分配 2018年11月27日星期二

系统板保留的1K地址 2018年11月27日星期二

I/O指令时序 (a) IN指令操作时序 IN AL,P8 或IN AL,DX P8为8位端口地址 (b) OUT 指令操作时序 OUT P8,AL或OUT DX,AL P8为8位端口地址 2018年11月27日星期二

直接程序控制方式 中断控制方式 DMA控制方式 I/O处理机控制方式 6.2 输入输出控制方式 直接程序控制方式 中断控制方式 DMA控制方式 I/O处理机控制方式

一、直接程序控制方式 1.无条件传送方式 含义:不查询外设状态而直接进行输入输出的一种方式。 特点:简单、经济,但可靠性差。 含义:直接在程序控制下进行微处理器与外设之间的数据传送。 分类:无条件传送方式和条件传送方式两种。 1.无条件传送方式 含义:不查询外设状态而直接进行输入输出的一种方式。 特点:简单、经济,但可靠性差。 2018年11月27日星期二

2.条件传送方式 含义:首先查询外设状态,满足条件时才进行数据的传送,因此也叫查询传送方式。 特点:简单、可靠性高,但CPU效率低。 输出 输入 2018年11月27日星期二

二、中断控制方式 含义:在满足传输条件时,外设向CPU发请求传输的中断信号,CPU接收请求后进入服务程序,在中断服务程序中进行输入输出操作。 不足:中断控制方式仍需要一系列本与输入输出无关的操作(如压栈保护等),因此对于高速I/O设备效率仍不算快。 2018年11月27日星期二

三、DMA控制方式 含义:直接由DMA控制器硬件控制数据传输,传输过程无需CPU干预。 特点:速度快(因为有DMA硬件直接控制),效率高。 2018年11月27日星期二

DMA方式与其它方式比较 内存/外设 CPU 外设/内存 内存/外设 外设/内存 DMA控制器 MOV AL,[XX] OUT DX,AL MOV [XX],AL IN AL,DX 内存/外设 外设/内存 无需CPU指令 DMA控制器 2018年11月27日星期二

四、I/O处理机控制方式 尽管DMA方式优点比较突出,但在DMA进行传输之前,对DMA的初始操作、对数据的运算和处理等都需要处理器事先干预。为了让处理器彻底摆脱管理和控制I/O设备的负担,引入了I/O处理机控制方式。这种方式下,由专用I/O协处理器负责I/O操作和处理。 2018年11月27日星期二

6.3 I/O接口的读写技术 一、简单输入输出接口 输入采用缓冲器,输出采用锁存器。 1.常用缓冲器: 2018年11月27日星期二

简单I/O接口-锁存器 2.常用锁存器 2018年11月27日星期二

二、简单I/O接口的读控制 读操作程序: MOV DX,377H IN AL,DX 2018年11月27日星期二

2.简单I/O接口的写控制 写操作程序: MOV DX,0DFFFH OUT DX,AL 2018年11月27日星期二

3. 16位I/O接口的读操作 读操作程序: MOV DX,2F6H IN AX,DX 2018年11月27日星期二

32位I/O接口的写操作 写操作程序: MOV DX,3ECH ;选中3ECH~3EFH4个端口 OUT DX,EAX 2018年11月27日星期二

6.4 并行通信与串行通信 6.5 可编程串行通信接口芯片 6.6 可编程并行通信接口芯片 6.7 可编程定时/计数器芯片 常用接口芯片及应用 1 6.4 并行通信与串行通信 6.5 可编程串行通信接口芯片 6.6 可编程并行通信接口芯片 6.7 可编程定时/计数器芯片 2 3 4

6.4 并行通信与串行通信 并行通信与并行接口 串行通信与串行接口 串行通信方式及异步通信协议 串行异步通信标准接口

一、并行通信与并行接口 1. 并行通信 含义:并行通信是指将一个字节或一个字的各 位同时进行传输的一种通信方式。 1. 并行通信 含义:并行通信是指将一个字节或一个字的各 位同时进行传输的一种通信方式。 要点:传输的各位同时传输(输入或输出)。 特点: (1)传输速度快 (2)传输的信息率高 (3)比串行通信需要更多通信信号线 用途:常用于传输距离短,数据传输速度要求   高的场合。 2018年11月27日星期二

2.并行接口 含义:实现并行通信的接口称为并行通信接口。 2018年11月27日星期二

二、串行通信与串行接口 1. 串行通信 含义:串行通信是把传输的数据一位一位地顺序传送的一种通信方式。 要点:按位传输,同一时刻仅传送一位。 1. 串行通信 含义:串行通信是把传输的数据一位一位地顺序传送的一种通信方式。 要点:按位传输,同一时刻仅传送一位。 特点: (1)通信线少 (2)成本低 (3)但通信速度慢 用途:适用于长距离数据传输。 2018年11月27日星期二

2.串行接口 完成串行通信任务的接口称为串行通信接口,简称串行接口。 功能: (1)输入时,完成串行到并行格式转换 (2)输出时,完成并行到串行格式转换。 2018年11月27日星期二

串行通信数据传输方式 有单工方式、半双工方式、全双工方式 2018年11月27日星期二

三、串行通信方式 及异步通信协议 串行通信方式 1. 异步通信 2. 异步通信特点 两种:串行异步通信和串行同步通信。 异步通信:指字符与字符之间的传送是完全异步的,随机 的,但一个字符的位与位之间是同步的。 2. 异步通信特点 ① 字符的发送是随机的。 ② 每一个字符传输总以一个起始位为准,然后接收方与发送方保持同步(格式的统一),最后是停止位 ③ 通信双方可随时改变通信协议,即改变数据位、奇偶校验位和停止位长度或数据传输率。 2018年11月27日星期二

3.异步通信协议 异步通信协议包括:一是字符的传送格式的规定,二是数据传送速率的要求。 异步通信格式 协议,即改变数据位、奇偶校验位和停止位长度或数据传输率。 2018年11月27日星期二

波特率 波特率(Baud Rate):指单位时间传送二进制数的位数,一般以秒为单位。 微机中常见的波特率有110,300,600,1200,2400,4800,9600,19200等。微机最高波特率由硬件决定。 例:已知字符格式中数据为8位,无校验,1位停止位,在1分钟内连续不断传送了 69120个字符,求波特率。 解:一个字符=1+8+0+1=10位 每秒传送的字符个数=69120/60=1152个 波特率=位/秒=1152*10=11520bits/S=11.52Kbits/s 2018年11月27日星期二

4.同步通信 同步通信 将多个字符连接成一个数据块,数据块前加1或2个同步字符,尾部是校验字符,最后为同步字符。 同步的含义 字符与字符之间时间间隔固定不变,是同步的。 2018年11月27日星期二

四、串行异步通信标准接口 串行异步通信的标准接口有RS-232C、RS-449、RS-422、RS-485以及20mA电流环等接口。 一、RS-232C接口(PC使用) 1. 接口逻辑:负逻辑传送 1:-15V~-5V 0:+5V~+15V 允许噪声容限为2V 因此,实际RS-232能够区分的逻辑电平: 1:-15V~-3V 0:+3V~+15V 只有在-3V~+3V时逻辑为不确定 2018年11月27日星期二

2. RS-232接口信号及含义 2018年11月27日星期二

二、RS-232逻辑电平的转换 为什么要进行逻辑电压的转换? 因为RS-232逻辑电平与UATRT电平不一致 常用单电源供电的232电平转换芯片 MAX232、TLC232、UN232、SP232等为不同厂家的典型单电源供电的232接口芯片,完成电平转换功能。根据UART的电平的不同可分为5V和3.3V。 2018年11月27日星期二

RS232电平转换原理 计算机通信是TTL和CMOS逻辑电平,而RS-232规定的电平与之不符,故需电平转换。 2018年11月27日星期二

RS232电平转换典型芯片 C1~C5可为0.1uF~4,7uF,具体值参见芯片说明 TIN为TTL输入 RIN为232输入 TOUT为由TTL转换后的232电平输出 ROUT为由RS232转换后的TTL电平输出 2018年11月27日星期二

RS-232简单连接示意图 2018年11月27日星期二

二、RS-485接口标准 RS232C缺点:受共模干拢影响,通信距离不长。仅20米以内。 RS485主要特点: RS-485逻辑电平: 采用差分传输方式,具有很强的抗共模干扰能力。 可同时连接多个接收器和发送器(32~256个) 通信距离长,可达千米(标准为1.2Km)。 RS-485逻辑电平: 逻辑1:A的电位比B高200mV以上 逻辑0:B的电位比A高200mV以上 2018年11月27日星期二

RS-485接口的连接 由于是差分传输,因此RS-485接口采用同名端相连的方法,即所有485芯片的A和A连在一起,B和B连在一起。 DI为数据发送端,RO为数据接收端,RE收发使能 RE=0接收,RE=1发送 终端(两个远端)各接一个匹配电阻(120欧)防止传输反射。 MAX485 2018年11月27日星期二

6.5 可编程串行通信接口芯片 16550与8250 一、16550及8250功能 (1) 具有全双工、双缓冲器发送器和接收器。 6.5 可编程串行通信接口芯片 16550与8250 一、16550及8250功能 (1) 具有全双工、双缓冲器发送器和接收器。 (2) 是串行异步通信接口(UART)。 (3) 波特率:8250=50~9600波特;16550=50~115200波特。 (4) 异步通信格式,可通过编程选择。 (5) 具有自动奇偶校验、溢出和帧出错等检测标志。 (6) 片内具有优先级中断控制逻辑。 (7) 单一+5V,40个引脚的DIP封装形式。 2018年11月27日星期二

二、内部结构及工作原理 2018年11月27日星期二

1.接收部分 接收移位寄存器将SIN脚的串行数据进行移位输入。 (1) 检测起始位:SIN变低后,连续测试8个RCLK时钟周 期,如果都是低电平,为起始位,否则为干扰信号。 (2) 采样数据位:每隔16个RCLK脉冲对SIN输入的数据位进 行一次采样。直到停止位,完成一个字符的接收。 (3) 去除无关位:接收同步控制电路自动去除起始位、奇 偶校验位和停止位。 (4) 串到并转换:同步控制电路控制接收移位寄存器将串 行数据转换成并行数据送入接收数据缓冲器(THR)中。 (5) 检查正确性:接收同步控制电路对数据的正确性进行检查。 如果在检测字符格式时有错误,则通过线路状态寄存器 设置相应的出错标志。 2018年11月27日星期二

2.发送部分 发送部分负责接收CPU送来的并行数据,并通过移位的方法将其变换成串行信号,最后通过发送端SOUT发送出去。 2018年11月27日星期二

3. 通信线路控制寄存器 线路控制寄存器(LCR)接收CPU用OUT指令写入的控制命令。控制寄存器的内容可以通过IN指令读出。线路控制寄存器的格式: 2018年11月27日星期二

4.通信线路状态寄存器 线路状态寄存器LSR记录串行数据发送和接收的状态,以供CPU查询。线路状态寄存器的格式: 2018年11月27日星期二

5. Modem控制寄存器 Modem控制寄存器MCR用于设置16550/8250与通信设备之间联络应答的输出信号,其格式如所示。 2018年11月27日星期二

6. Modem状态寄存器 Modem状态寄存器MSR反映8250与通信设备之间应答联络输入信号的当前状态以及这些信号的情况,各位的含义如图所示。 2018年11月27日星期二

7.中断允许寄存器IER 反映了接收器和发送器以及Modem是否允许中断的情况,通过设置可以指定其中的某些部件允许中断。它是一个可读可写的寄存器。 2018年11月27日星期二

8.中断识别寄存器IIR 中断识别寄存器IIR,可以识别4个中断源引起的中断。接收器线路状态中断、接收数据准备好中断、发送保持寄存器空中断和调制解调器状态中断。 2018年11月27日星期二

9. 波特率发生器 16550及8250使用1.8432MHz的基准输入时钟,分频后产生所需的内部基准脉冲,作为接收器和发送器的同步脉冲,以控制接收移位寄存器和发送移位寄存器的移位操作。 发送或接收串行数据时使用的时钟频率是数据传送波特率的16倍 除数值与波特率的关系: 除数=1843200÷(波特率×16) 2018年11月27日星期二

波特率发生器与除数寄存器 根据波特率与除数的关系,可计算出不同波特率对应的除数值,如表所示。 2018年11月27日星期二

三、16550/8250引脚信号 几个最重要的信号 RCLK 接收时钟 SIN 串行输入引脚 SOU串行数据输出 A2,A1,A0 内部寄存器选择输入信号 其它信号 2018年11月27日星期二

其它引脚 1. 电源及时钟VCC,GND,XTLA1,XTLA2 2. 数据线:D7~D0 3. 片选信号:CS0,CS1和/CS2(输入) 4. 选通信号: 地址输入选通: /ADS 数据输入选通:DISTR和/DISTR(接/IOR) 数据输出选通:DOSTR和/DOSTR(接/IOW) 5. 主复位:MR 6. 接收时钟: =接收波特率的16倍 7. 清除发送: /CTS 8. 数据装置(MODEM)准备好: /DSR 9. 接收线路信号检测: /RLSD(有效时表示Modem检测数据载波 10.振铃指示:/RI 有效表示Modem已经接收到一个电话振铃信号 2018年11月27日星期二

其它引脚续 11. 数据终端准备好: /DTR 有效时通知Modem,接口已准备好 12. 请求发送: /RTS有效请求发送数据 13. 用户输出引脚:/OUT1和/OUT2(由Modem控制寄存器决定) 14. 片选信号输出:CSout 片选输入信号CS0=1,CS1=1/CS2=0时,Csout=1(高电平) 15. 驱动器禁止: DDIS,有效时禁止外部总线转换器对系统总线的驱动. 16. 波特率输出: /BAUDout以16倍波特率的时钟输出 17. 中断请求:INTRPT当允许中断时,16550/8250内部发生某种中断时,该引脚为高电平有效,向8259A发中断请求信号. 2018年11月27日星期二

四、串行接口的编程及应用 1.串行接口的端口地址分配 2018年11月27日星期二

2.串行接口初始化 串行接口初始化的任务: (1)设置波特率 (2)确定通信的具体格式 (3)设置操作方式 (4)设定是否使用中断、是否自测试操作等等。 2018年11月27日星期二

设置波特率方法 计算除数值 除数=1843200÷(波特率×16) 写线路控制寄存器,使DLAB=1以访问除数寄存器 先将除数低字节写入低字节寄存器端口 再将除数高字节写入高字节寄存器端口 注意: 线路控制寄存器地址:3FBH(COM1),2FBH(COM2) 除数低字节寄存器: 3F8H(COM1),2F8H(COM2) 除数高字节寄存器: 3F9H(COM1),2F9H(COM2) 2018年11月27日星期二

1.设置波特率程序段 假设设置波特率为11520,则初始化程序片段如下: MOV AL,10000000B ;DLAB=1 MOV DX,3FBH ;指向线路控制寄存器端口\ OUT DX,AL ;写入线路控制寄存器 MOV AL,0AH ;置产生11520波特率的除数低字节 MOV DX,3F8H ;除数低字节寄存器口地址 OUT DX,AL ;写入除数低字节 MOV AL,00 ;除数高字节 INC DX ;指向除数高字节寄存器口地址 OUT DX,AL ;写入除数高字节 2018年11月27日星期二

2.设置通信数据格式方法 根据要求确定格式 将格式字写入线路控制寄存器,并使DLAB=0以正常工作 例子:假设一帧数据含有8位数据、1位停止位、奇校验,则有关程序如下: MOV AL,00001011B ;通信控制寄存器控制字 MOV DX, 3FBH ;线路控制寄存器口地址 OUT DX, AL ;写入线路控制寄存器 2018年11月27日星期二

3.自测工作(自发自收) MOV AL,00010011B ;自发自收 MOV DX,3FCH ;Modem控制寄存器地址 OUT DX, AL ;写入线路控制寄存器 2018年11月27日星期二

4.设置中断允许寄存器 仅允许接收中断和发送中断:(COM1) MOV AL, 00000011;仅允许收、发中断 MOV DX, 3F9H OUT DX, AL ;写入中断允许寄存器 2018年11月27日星期二

三、串行通信实例 两台微机利用COM1(串行口1)进行查询通信,只用 三根连接线。 双机通信的要求如下:数据为7位、1位停止位、奇校 验、波特率为19200;双机同时运行该程序,一方键入 的字符在另一方屏幕上显示,当按下小写字母q时, 结束通信回到DOS。 程序见教材P.261(COMMEX.ASM) 2018年11月27日星期二

6.6可编程并行接口芯片8255A 8255的内部结构及引脚信号 8255的工作方式 8255的编程

一、 8255的内部结构及引脚信号 2018年11月27日星期二

引脚信号 (1) 与外设接口信号引脚 PA7~PA0 A口的8个I/O引脚 PB7~PB0 B口的8个I/O引脚 PC7~PC0 C口的8个I/O引脚。 (2) 与系统总线接口信号引脚 D7~D0 数据线 /RD,/WR,/CS RESET 高电平有效,有效时8255内部寄存器清除,同时三个数据端口被自动设为输入端口。 2018年11月27日星期二

8255A的端口操作 2018年11月27日星期二

基本输入输出方式-方式0 选通输入输出方式-方式1 双向输入输出方式-方式2 二、8255的工作方式 基本输入输出方式-方式0 选通输入输出方式-方式1 双向输入输出方式-方式2

基本输入输出方式-方式0 方式0没有规定固定的用于应答式的联络信号线。 在此方式下,三个数据端口A、B和C中的任何一个端口都可由程序设定为8位的输入口或输出口。 C端口的两个半口(高4位和低4位)可独立设为输入或输出端口。 端口输入具有缓冲功能;输出具有锁存功能。 方式0下的各端口输入或输出有24=16种不同的组合。 2018年11月27日星期二

选通输入输出方式-方式1 方式1规定固定的用于应答式的联络信号线。 A口和B口可作为输入或输出端口使用,而此时C口的某些位与它们配合,作为控制或通信联络信号, 没有使用的C口某些位还可单独立定义为I/O口用。 方式1下A和B端口的输入和输出具有不同的组态。内部逻辑不同。 下面分别介绍A口输入、B口输出、A口输出和B口输出不同情况下的内部逻辑。 2018年11月27日星期二

方式1下的输入组态 A口输入 B口输入 2018年11月27日星期二

方式1下的输入工作波形 2018年11月27日星期二

方式1下的输出组态 A口输出 B口输出 2018年11月27日星期二

方式1下的输出工作波形 2018年11月27日星期二

双向输入输出方式-方式2 方式2是双向的数据传输方式,仅限于A口,这时C端口配合其工作。 2018年11月27日星期二

三、8255编程 对8255编程首先要写入方式选择控制字,然后再行输入输出操作。 操作时可对端口C进行置/复位操作。 因此:8255有两个控制字是编程的关键所在。 方式选择控制字 端口C置/复位控制字 2018年11月27日星期二

方式选择控制字—写入控制口 2018年11月27日星期二

例6.3 【例6.3】 编写对8255的初始化程序片段,要求:使A口为方式0输入,B口为方式0输出,C口作为8位的输出口使用。8255控制端口的地址为12BH。 解:对照方式选择控制字格式可得到控制字为:10010000B=90H,初始化程序片段: MOV AL,90H ;方式选择控制字 MOV DX,12BH ;由于端口号>256,用DX间接寻址 OUT DX, AL ;写入控制寄存器 2018年11月27日星期二

例6.4 【例6.4】 如果把A口设置为方式0输入,B口设成方式1输出,C口除了与B口方式1输出配合的PC0到PC2外,其PC3设成输入,C上半口(PC7~PC4)设为输出。则对照控制字格式,得其方式选择控制字为:10010101B=95H。 解:假设8255的口地址为60H~63H,并知道8255的A0和A1分别与CPU总线的A0和A1相连,写出对8255的初始化程序片段。 对8255的初始化程序只需要两条指令如下: MOV AL, 95H ;方式选择控制字 OUT 63H,AL ;写入控制寄存器 2018年11月27日星期二

端口C置/复位控制字—写入控制口 2018年11月27日星期二

例6.5 【例6.5】使A口为方式1输入,且采用中断传送,B口采用方式0输出,其余C口的位作为输出。假设控制端口地址为63H。则程序段为: 解: MOV AL,10110000B ;A口方式1输入,B口方式0输出,其余C口位输出 OUT 63H, AL;方式选择控制字写入控制寄存器 MOV AL,00001001B ;置位/复位控制字,使PC4=1,即使INTE=1允许内部中断 OUT 63H, AL ;置位/复位控制字写入控制寄存器 2018年11月27日星期二

三、8255作为打印机接口实例 2018年11月27日星期二

打印机接口的时序要求 2018年11月27日星期二

打印程序 MOV AL, 0A8H ;方式选择字(C上半口输入PC4) MOV DX, 343H ;控制端口 OUT DX, AL ;方式选择控制字写入控制口 MOV CX, Counter ;打印字符个数装入计数器 MOV BX, OFFSET Pstrings;Counter,Pstrings已定义(P.255) LP1: MOV AL, [BX] MOV DX, 340H OUT DX, AL ;送一个字符到8255的A口 MOV DX, 342H LP2: IN AL, DX ;读取C口状态(准备检查BUSY状态) ANDAL, 00010000B ;屏蔽无关位, 取BUSY JZ LP2 ;等待接收新数据 LP3: IN AL, DX ;读取C口状态 AND AL, 00010000B ;屏蔽无关位, 取BUSY对应的PC4 JNZ LP3 ;BUSY=1等待,直到不忙 INC BX LOOP LP1

三种方法:软件定时、硬件定时、可编程硬件定时 主要内容: 6.7 可编程定时/计数器8253(8254) 三种方法:软件定时、硬件定时、可编程硬件定时 主要内容: 8253/8254的内部结构及引脚信号 8253 /8254的工作方式 8253/8254的编程 8253最高工作频率2.6MHz 8254最高工作频率为10MHz

8253/8254主要功能 1.用于计数 当用于计数时,计数装入初始值后,在GATE为高电平的情况下,可以用外部事件作为CLK脉冲对计数值进行减1计数,每来一个脉冲,计数器减1一次,当计数值减到结束时,由OUT端输出一个信号。如果计数未结束,而外部没有触发的脉冲信号,则可以通过读取现行计数器的值来求出计数值。 2.用于定时 当用于定时时,计数器装入初值后,在GATE为高电平情况下,由CLK脉冲触发开始自动计数,当减1计数结束时,在OUT端发送计数结束信号。定时时间长度就是计数初值与CLK时钟周期的积。 由此可见,定时和计数的实际是计数,只是定时是在计数的基础上再乘以时钟周期。 2018年11月27日星期二

8253/8254内部结构 2018年11月27日星期二

8253端口及其操作 2018年11月27日星期二

8253和8254的工作方式 方式0 —— 中断信号发生器 方式1 —— 单稳负脉冲信号发生器 方式2 —— 速率信号发生器 方式2 —— 速率信号发生器 方式3 —— 方波信号发生器 方式4 —— 软件触发的选通信号发生器 方式5 —— 硬件触发的选通信号发生器

方式0 中断信号发生器 2018年11月27日星期二

方式1 单稳负脉冲信号发生器 2018年11月27日星期二

方式2 速率信号发生器 2018年11月27日星期二

方式3 方波信号发生器——偶数初值 2018年11月27日星期二

方式3 奇数初值 2018年11月27日星期二

方式4 软件触发的选通信号发生器 2018年11月27日星期二

方式5 硬件触发的选通信号发生器 2018年11月27日星期二

8253/8254的编程方法 8253/8254控制字 2018年11月27日星期二

8253/8254计数范围 二进制计数:0000H~FFFFH,即0-65535 BCD码计数:0000~9999 2018年11月27日星期二

8253/8254初始值计算 假设已知8253相应通道的CLK端接入的时钟频率为fCLK,周期记为TCLK=1/fCLK,要求产生的周期性信号频率为F(周期为T)或定时时间为T(F=1/T),则所需计数初值n为: 在计算时注意时间和频率的单位一致性。 2018年11月27日星期二

8253/8254编程示例 已知8254各通道时钟接8MHz信号,端口地址为700H、702H、704H和706H,要求在OUT0产生周期为10us的方波,OUT1产生2KHz的连续脉冲信号,OUT3产生一个最大的负脉冲。 分析: OUT0:初值=10us×8MHz=80 方式3 OUT1:初值=8MHz/2KHz=4000 方式2 OUT2:初值=0,二进制计数 方式1 2018年11月27日星期二

示例程序片段 ;CTC0 MOV DX,706H ;控制端口地址 MOV AL,00010110B ;CTC0控制字 OUT DX,AL MOV DX,700H ;CTC0口地址 MOV AL,80 ;CTC0初值 2018年11月27日星期二

;CTC1 MOV DX,706H ;控制端口地址 MOV AL,01110100B ;CTC1控制字 OUT DX,AL MOV DX,702H ;CTC1口地址 MOV AX,4000 ;CTC1初值 OUT DX,AL ;先写低字节 MOV AL,AH ;取高字节 OUT DX,AL ;后写高字节 2018年11月27日星期二

;CTC2 MOV DX,706H ;控制端口地址 MOV AL,10110010B ;CTC2控制字 OUT DX,AL MOV DX,704H ;CTC2口地址 MOV AL,0 ;CTC2初值 OUT DX,AL ;先写低字节 OUT DX,AL ;后写高字节 2018年11月27日星期二

8253应用 OUT0:55ms方波 OUT1:15us连续波 OUT2:1KHz方波 8255的B端口地址61H 2018年11月27日星期二

应用程序片段 ;CTC0初值=55ms*1.19MHz=65450 MOV AL,00110110B ;CTC0控制字 OUT 43H,AL ;写入控制端口 MOV AX,65450 ;CTC0初值 OUT 40H,AL ;先写低字节 MOV AL, AH OUT 40H,AL ;后写高字节 2018年11月27日星期二

;应用程序CTC1 ;初值=15*1.19=17.85 取 18=12H MOV AL,01010100B ;CTC1控制字 OUT 43H,AL ;写入控制端口 MOV AL,12H ;CTC1初值 OUT 41H,AL ;写初值至CTC1 2018年11月27日星期二

;应用程序CTC2 ;CTC2初值=1.19M/1K=1190 MOV AL,10110110B ;CTC2控制字 OUT 43H,AL ;写入控制口 MOV AX,1190 ;CTC2初值 OUT 42H,AL ;先写低字节 MOV AL, AH ;取高字节 OUT 42H,AL ;后写高字节 IN AL, 61H ;读8255A的B口的值 MOV AH, AL ;暂存AH中 OR AL, 00000011B OUT 61H, AL ;输出使扬声器发声 2018年11月27日星期二

本章习题 作业: 习题6.10, 6.12, 6.13, 6.14 习题6.15, 6.16, 6.17, 6.19,6.20