第4章 数据通信方式及常用接口芯片 4.1 概述 外部设备是微型机系统的必要的组成部分。外部设备与计算机之间需通过硬件连接和软件控制来建立联系。这一硬件、软件的综合便是接口。接口位于计算机主机与外部设备之间,它的功能是使主机与外部设备能正确地交换信息。 在设计接口之前,首先应当了解某一类型外部设备所要完成的功能,为完成这些功能应做哪些操作,以及如何实现。进一步还应了解对控制信号有什么要求,输入、输出什么信息。这样才能明白外部设备和接口电路之间的交换关系,才能确定哪些功能由硬件逻辑电路实现,哪些功能由软件程

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements


3 的倍数的特征 的倍数有 : 。 5 的倍数有 : 。 既是 2 的倍数又是 5 的倍数有 : 。 12 , 18 , 20 , 48 , 60 , 72 , , 25 , 60 ,
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
实验四 利用中规模芯片设计时序电路(二).
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
第7章 常用数字接口电路.
主要内容 串行口的结构 串行口的工作方式 波特率的计算 简单应用
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
AVR单片机软硬件设计教程-入门篇 ——学单片机就要学AVR!
微型机系统与接口技术复习.
第三章 微机基本系统的设计 第一章 8086程序设计 第二章 MCS-51程序设计 第四章 存贮器与接口 第五章 并行接口
第6章 基本输入输出接口技术 【本章提要】 【学习目标】
第二部分 PC 微机异步通信适配器的分析和使用 一、PC中的UART 1.INS PC16450/PC16550
ARDUINO+BLUETOOTH Arduino实现蓝牙数据传输.
走进编程 程序的顺序结构(二).
第15章 串行通信及接口电路.
第8章 PCH中的常规接口.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
实验四 组合逻辑电路的设计与测试 一.实验目的 1.掌握组合逻辑电路的设计 方法 2.学会对组合逻辑电路的测 试方法.
时序逻辑电路实验 一、 实验目的 1.熟悉集成计数器的功能和使用方法; 2.利用集成计数器设计任意进制计数器。 二、实验原理
逆向工程-汇编语言
实验六 积分器、微分器.
CPU结构和功能.
移相正弦信号发生器设计 采用直接数字综合器DDS发生器的设计 原理:图1是此电路模型图
C语言程序设计 主讲教师:陆幼利.
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
微机系统的组成.
线段的有关计算.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
第五章 MCS-51中断系统 一、中断请求源 MCS-51提供5个中断请求源,即INT0、INT1、TF0、 TF1和串行口发送与接收中断请求源TI或RI。这些 中断请求源分别由TCON与SCON的相应位锁存。
K60入门课程 02 首都师范大学物理系 王甜.
可编程定时计数器.
(Random Access Memory)
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
微机原理与接口技术 第6章 并行输入输出接口(8255A)
微机原理及应用 主讲:郑海春.
微机原理与接口技术 西安邮电大学计算机学院 杨锐.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
用计算器开方.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月04日.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
第二部分 微机原理 第9章 串行通信 及其接口 主讲教师:喻红.
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
《数字电子技术基础》(第五版)教学课件 清华大学 阎石 王红
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
第4课时 绝对值.
HSC高速输出例程 HORNER APG.
课题五 频率变换电路 调幅波的基本性质 调幅电路 检波器 混频器.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
定时中断与LED MCU起航 QQ:
6.1 定时器/计数器的结构及工作原理 定时器/计数器的结构 定时器/计数器T0、T1的逻辑结构如图6-1所示。
得技通电子 问题 三 判断题:.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
信号发生电路 -非正弦波发生电路.
微机原理与接口技术 西安邮电大学计算机学院 杨锐.
上节复习(11.14) 1、方式2、方式0的特点? 2、定时/计数器的编程要点? 3、实验5方案优化问题.
第八章 串行接口 8-1 串行通信的基本概念 8-2 可编程串行接口8251A A的应用.
ADC0809并行A/D转换 (实验十) DAC0832并行D/A转换实验 (实验十一) RS232串口通信实验 (实验九)
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
第12章 555定时器及其应用 一. 555定时器的结构及工作原理 1. 分压器:由三个等值电阻构成
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
混沌保密通讯 实验人 郝洪辰( ) 李 鑫( ).
DSP技术与应用 电子与信息技术系.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

第4章 数据通信方式及常用接口芯片 4.1 概述 外部设备是微型机系统的必要的组成部分。外部设备与计算机之间需通过硬件连接和软件控制来建立联系。这一硬件、软件的综合便是接口。接口位于计算机主机与外部设备之间,它的功能是使主机与外部设备能正确地交换信息。 在设计接口之前,首先应当了解某一类型外部设备所要完成的功能,为完成这些功能应做哪些操作,以及如何实现。进一步还应了解对控制信号有什么要求,输入、输出什么信息。这样才能明白外部设备和接口电路之间的交换关系,才能确定哪些功能由硬件逻辑电路实现,哪些功能由软件程序控制实现。 随着大规模集成电路的发展,目前出现的一般倾向是把接口功能分成通用接口和专用接口两种。 通用接口芯片一般有可编程的和不可编程的。不可编程的芯片一般功能比较简单,对各种机型均可适用;可编程的芯片一般功能较多,控制较复杂,有的芯片只与某一机型配套,也有一些芯片可适用于几种性能接近的机型。 对许多功能很强的外部设备,接口很复杂,常常设计成专用接口芯片来实现。这种专用芯片有时甚至可能是一个带微处理器的控制系统。按芯片传送信息方式划分,接口芯片可分为并行接口和串行接口两类。

4.2 可编程并行接口8255A 8255有三个8位并行的数据端口PA、PB、PC,各个口的输入输出功能由程序确定。 8255有三种基本工作方式: 方式0-一基本输入输出方式 方式1――选通输入输出方式 方式2――双向传送方式

8255控制字格式

4.3 可编程多功能接口8155

8155控制字格式

8155用于定时器扩展 (1)定时器的方式选择 8155片内有一个14位减法计数器,可对输入脉冲进行减法计数。外部有两个定时器引脚端TIN、TOUT。TIN为定时器时钟输入,由外部输入时钟脉冲;TOUT为定时器输出,输出各种信号、波形。定时器的14位计数器由04H端口(低8位)和05H端口的D5-D0(高6位)组成。定时器输出有四种波形,可由定时器方式编程选择,定时器方式及相应的输出波形如表4.3.2所示。 (2)定时器的编程 对定时器进行编程时,首先将计数常数及定时器方式送入定时器端口(定时器低8位及定时器高6位、定时器方式)04H及05H。计数常数在0002H~3FFFH之间选择。 计数器的启动和停止计数由命令寄存器(00H)的最高两位控制。

8155举例 例1 8155定时器初始化编程 使8155用作I/O口和定时器工作方式,A口定义为基本输入方式,B口定义为基本输出方式,定时器作为方波发生器,对输入脉冲进行24分频(8155中定时器最高计数频率为4MHZ),设I/O口地址为: 命令/状态口 7F00H PA口 7F01H PB口 7F02H PC口 7FO3H 定时器低8位 7F04H 定时器高8位 7F05H 8l55初始化编程如下: MOV DX, 7F04H ;指向定时器低8位 MOV AL, 18H ;计数常数0018H=24 OUT DX, AL ;计数常数低8位装入 INC DX ;指向定时器高8位 MOV AL, 40H ;设定定时器方式为连续方波输出 OUT DX, AL ;定时器高8位装入 MOV DX, 7F00H ;指向命令/状态口 MOV AL, 0C2H ;命令控制字设定A口为基本输入方式。 ;B口为基本输出方式,并启动定时器。 OUT DX, AL

4.4 可编程定时/计数器8254 在计算机系统中,定时系统通常包括两个部分:时钟电路和定时电路。 4.4 可编程定时/计数器8254 在计算机系统中,定时系统通常包括两个部分:时钟电路和定时电路。 时钟电路包括外部时钟发生器和CPU内部的时序电路,它产生整个计算机系统的最基本的控制信号和同步信号,主要用于CPU内部的指令执行过程,相应产生控制时序,比如,取指令周期,读写周期,中断响应周期,总线响应周期等。时钟电路也可为定时电路提供基准时钟信号。 定时电路主要应用于计算机的接口电路,这部分电路可根据接口的要求,产生各种不同的时序信号。定时电路的基准时钟信号有两种产生办法:一是由系统的时钟电路产生;二是由独立的时钟源产生。这两钟方法在实际应用中都很常用。

8254的内部结构

8254的通道结构

8254的工作方式 8254的6种工作方式: 1.方式0——计数结束中断 2.方式1——可编程单稳 3.方式2——脉冲频率发生器 4.方式3——方波发生器 5.方式4——软件触发选通 6.方式5——硬件触发选通

8254控制字格式

8254的初始化 (l)写入操作 ①对每一个通道而言,控制字必须在计数值之前写入。 ②16位计数初值的写入必须遵守控制字中读/写格式规定的顺序。 (2)读出操作 ①简单读出方式 ②锁存读出方式 ③回读命令方式

8254应用系统设计(1) 例:某8088系统采用8254精确控制一个发光二极管闪亮,系统要求启动8254后使发光二极管点亮2秒,熄灭2秒,亮灭50次后停止闪动,系统工作结束。现有一个时钟脉冲源,频率为2MHz,其他器件任选。试完成下列工作: (1)分析该系统接口电路 (2)编写完成上述功能的程序 1.系统分析 系统控制发光二极管亮2秒灭2秒,恰好是一个方波周期,周期为4秒,可用方式3。 系统提供2MHz时钟脉冲源,周期为0.5µs,若以此信号为CLK输入,产生4秒周期的方波,计数值应为4秒÷0.5µs=8×106,而这个值远远大于一个通道能提供的最大计数值65536。所以,不可能只用一个通道来完成任务。由此,考虑由两个通道级连来产生最后的方波,其中前一个通道的CLK接2MHz,工作于脉冲频率发生器方式,产生一个脉冲波,假设脉冲波周期为4ms(250HZ),于是它的计数值为4ms÷0.5µs=8000,它的OUT输出接后一个通道的CLK输入,后一个通道工作于方波发生器方式,产生周期为4秒的方波,于是它的计数值为4秒÷4ms=1000。当周期为4秒的方波产生2秒高电平,2秒低电平的时候,所控制的发光二极管也就会亮2秒,灭2秒(后一个通道的OUT去控制发光二极管),符合系统要求。

8254应用系统设计(2) 50次计数控制:使用方式0,采用8254回读状态法来确定计满50个周期并结束方波发生器的工作。 综上所述,系统的计数器分配如下: 计数器0工作于脉冲频率发生器方式,输入CLK,接2MHz脉冲信号源,输出OUT0产生250Hz(周期为4ms)的脉冲序列。 计数器1工作于方波发生器方式,输入CLK1接OUT0的250Hz脉冲信号,输出OUT1产生周期为4秒的方波,经过一个反相驱动器去控制一个发光二极管。 计数器2工作于计数结束中断方式,输入CLK2接OUT1的周期为4秒的方波,输出OUT2悬空,内部回读OUT2的状态。

8254应用系统设计(3) 2.计数器0的控制字和计数值 (l)控制字:00110100B (2)计数值:4ms÷0.5µs=8000 3.计数器1的控制字和计数值 (l)正常工作控制字:01110110B (2)计数值:4s÷4ms=1000 (3)停止工作控制字:01110000B 只写控制字,不写计数值,因此方式O不能启动(方式0靠写入计数值启动),相当于停止通道原来的工作。 4.计数器2的控制字和计数值 (1)控制字:10010000B (2)计数值:50(计满次数) 5.回读命令字:11101000B 6.端口地址 本例假设8254的4个端口地址,由计数器0至控制寄存器依次为80H、81H、82H、83H。

8254应用系统设计(4) 7.工作程序设计如下: MOV AL,90H ;#2控制字 OUT 83H,AL MOV AX,8000 ;#0计数值 OUT 80H,AL MOV AL,AH OUT 80H,AL MOV AL,76H ;#1控制字 OUT 83H,AL MOV AX,1000 ;#1计数值 OUT 81H,AL OUT 81H,AL AGAIN: MOV AL,0E8H ;回读命令字 IN AL,82H ;读#2的状态字 TEST AL,80H ;析取D7位的OUT2 JZ AGAIN ;OUT2=0,计数未到,转 MOV AL,70H ;停止#1工作 HLT

4.5 实时时钟与CMOS RAM 8284与MC146818在功能上、作用上不同,前者意义在于时序,后者意义在于定时。也许没有MC 146818计算机尚可工作(在早期PC机上如此),但是若没有8284计算机是绝对不能工作的。 MC146818是MOTOROLA公司生产的CMOS实时时钟/日历芯片,该芯片可产生秒、分、时,星期、日、月及年等7个时标,可通过程序读取或修改这些时标,可提供100年日历,可编程任意设定定时中断,定时范围由30.517µs至23时59分59秒,还有CMOS RAM存储器,其应用十分广泛。以后为讨论方便,我们把MC146818称为时钟日历芯片。 时钟日历芯片MC146818的主要特点是: (1)有10个时标寄存器,4个编程和状态寄存器; (2)有50个字节的静态CMOS RAM; (3)可选择三种时钟频率; (4)可选择二进制或BCD码表示时标(时间和日历); (5)可选择不同的频率输出方波; (6)有三种独立的可编程中断。

MC146818的内部结构 1.时基输入与时钟输出:可接入三种频率的时钟:4.197304MHz、1.048576MHz、32.768KHz。 2.中断周期/方波速率选择逻辑:用于选择中断周期的长短和方波输出频率的大小,二者的选择不是任意的,而是具有连锁性和相关性,有固定的16种组合。 3.方波输出逻辑 4.总线接口 5.时钟日历修改逻辑与BCD/二进制增加逻辑:采用二种数制,即二进制计数和BCD码计数,由编程选择。 6.寄存器组:有A、B、C、D 4个8位寄存器,用于保存CPU送来的编程控制字和芯片本身的某些状态。 7.时钟、报警、日历RAM:用于保存秒、分、时等时钟日历信息及报警时间信息。 8.用户RAM:50个字节,可使用户保存其它信息。

MC146818的引脚功能 Vcc:电源正极,+3~+6V,典型值+5V。 Vss:接地端,或电池负极。 OSC1、SC0:时钟输入端。 CKOUT:时钟输出端。该引脚的输出频率可等于输入时钟频率,或将其4分频后输出。 CKFS:时钟输出控制端。用于控制CKOUT输出时的时钟频率。当CKFS接高电平时,CKOUT端输出时钟的频率等于该芯片输入的时钟频率;当CKFS接低电平时,则将输入时钟OSC1 4分频输出。 SQW:可编程方波输出端,输出方波的频率由寄存器A的相应位确定。 AD7~AD0:数据/地址分时复用线,在AS下降沿时将A7~A0锁存入芯片。 AS:地扯锁存信号。 DS:数据读选通信号。 :读/写信号。 :片选信号。 :中断请求信号。任何一种中断产生, 都将使变成低电平,读取状态寄存器 C可清除此信号。 :复位信号。 PS:电源电位检测端。当实时日历芯片 的电源电压低于临界最小值时,在内部 寄存器内的相应位置标志,以供用户程 序查询,同时使PS引脚变低电平。 NC:空引脚,无定义。

MC146818工作原理

MC146818的工作方式 MC146818可编程选择多种工作方式,比如输入时钟频率、计时数制、中断类型等,这里介绍MC146818的三种中断:周期中断、报警中断和更新结束中断。 周期中断:以一定的时间为周期产生中断,作为周期的这段时间是可编程设定的,有固定的16种,可选择其中一个。MC146818的中断请求连接到系统的IRQ8上,若MC1468l8允许周期中断,则会每隔一定的周期通过IRQ8向CPU申请中断,进而达到定时服务的目的。 周期中断的定时范围是从30.517µs到500ms。 报警中断:到达预设的时间后产生中断。首先设置预定的时间,时间按时、分、秒来设定,当计时达到预设的时间后(此前必须是允许报警中断),MC146818就通过IRQ8向CPU发出中断请求。 报警中断的定时范围是从1秒到23时59分59秒。 更新结束中断:MC146818芯片内部各时标寄存器内容修改一次结束后产生的中断。 在更新周期中首先将秒时标寄存器加1,然后检查是否有溢出,若有溢出则产生进位,使分时标寄存器再加1,再检查有无溢出,依此类推,并能自动识别年、月的结束。 更新周期结束后,若MC146818允许更新结束中断,则通过IRQ8向CPU发出中断请求,在中断程序中可读取时钟日历。

更新周期 MC146818芯片在正常工作时,每秒钟芯片内时标寄存器进行一次刷新操作,即产生一个更新周期,这个更新周期最大也小于2ms。 在更新周期内,芯片内部的时标寄存器数据处于刷新状态,所以在此期间,CPU不可读取时标寄存器的内容,即便读取,其内容也不确定,不能得到一个有效的数据结果。为了得到一个正确的数据,通常可以采用以下两种方法: (1)采用更新结束中断 MC146818芯片1秒钟对时标寄存器刷新一次,每次刷新小于2ms,于是就有998ms的时间处于未刷新状态,此时CPU可读取有效时钟日历。因此可以编程允许每次更新结束后发出更新结束中断请求,提醒CPU将有998ms左右的时间去读取有效数据。在中断之后998ms的任何时间里,可用程序先将时标寄存器的内容读出,然后,在离开中断程序之前清除寄存器C的IRQF和UF位。 (2)采用查询UIP UIP是寄存器A的D7位,用于指示芯片是否处于刷新状态(或称更新周期)。若UIP=1,则表示芯片正在刷新,不可读取数据,需等待,继续查询。当UIP=0时,表示芯片未处于刷新状态,但也许芯片马上在下一个时钟周期就开始刷新操作,这怎么办呢?事实上,时钟日历芯片在时序上保证了这样一点:在开始刷新之前,使UIP=O变成UIP=1,然后再延迟244µs,然后才开始真正的刷新操作。也就是说,当检测到UIP=0时,在最快的情况下,也要等244µs后才能真正开始刷新。因此为保证读到正确的数据,若在检测到UIP=0后,在244µs内完成读取时钟日历的数据。

MC146818在系统中连接框图

CMOS RAM的主要内容与地址分配

MC146818的编程寄存器A、B

寄存器A的DV2DV1DV0组合

寄存器A的RS3RS2RS1RS0组合

MC146818的编程寄存器C、D

MC146818的初始化 编程状态寄存器A(片内地址0AH)主要功能是选择输入时钟,确定输出频率,提供更新状态。 编程状态寄存器B(片内地址0BH)主要功能是允许芯片工作,允许中断,允许方波输出。 编程状态寄存器C(片内地址0CH)主要功能是反映中断状态,程序读该寄存器后,该寄存器将自动清零。因此,可用这种方法清除中断。 编程状态寄存器D(片内地址0DH)主要功能是反映电压状态,该位与引脚PS的状态保持一致。寄存器D为只读寄存器,写入没有意义。 MC146818的初始化工作主要是完成对寄存器A、寄存器B和寄存器C的设置,以及对10个时标寄存器的初始值写入。 具体步骤是: (1)设置寄存器B使SET=1,禁止芯片工作; (2)设置寄存器A; (3)初始时间写入时标寄存器; (4)读寄存器C,清除各中断标志位; (5)设置寄存器B使SET=0,恢复芯片工作。

MC146818举例(1) 例:在某PC/AT系统中,重新设置MC1468l8,条件是:采用32.768KHz输入时钟,允许产生500ms的周期中断,允许方波输出,采用24小时BCD计数,并设置日期时间为:00年9月22日,星期五,上午8时0分0秒。 1.寄存器A编程状态字:00101111B 2.寄存器B编程状态字:01001010B 寄存器B的4AH控制字是在正常工作时使用的,但在芯片初始化过程中,不应使芯片工作,因此D7位(SET)应为1(禁止芯片工作),即控制字为CAH。也就是说,在初始化最初把CAH送给寄存器B禁止芯片计时工作,然后进行其他初始化工作,最后将4AH写入寄存器B计时工作开始。 3.各日期、时间参数写入相应的时标寄存器,注意是BCD码格式。 4.使用PC/AT提供的两个端口地址70H和71H,并遵守其操作规定,即先把要操作的地址送入70H,然后对71H进行读写数据操作。

MC146818举例(2) 5.初始化程序如下: MOV AL, 0BH ;指向B OUT 70H,AL MOV AL, 0CAH ;禁止芯片计时 OUT 71H,AL MOV AL, 00H ;0秒 MOV AL, 00H MOV AL, 02H ;0分 MOV AL, 04H ;8时 MOV AL, 08H MOV AL, 06H ;星期五 MOV AL, 05H

MC146818举例(3) MOV AL, 07H ;22日 OUT 70H,AL MOV AL, 22H OUT 71H,AL MOV AL, 0AH ;指向A MOV AL, 2FH MOV AL,0CH ;指向C IN AL,71H ;读C清除中断 MOV AL,OBH ;指向B OUT 70H,AL MOV AL, 4AH ;允许芯片计时 OUT 71H,AL ST1 ……

报警中断与周期中断 在BIOS数据区中建立了5个与周期中断有关的字单元: 0040H:0098H定时时间到标记单元的段内偏移量 0040H:009AH定时时间到标记单元的段地址 0040H:009CH定时计数值低16位 0040H:009EH定时计数值高16位 0040H:00A0H定时有效标记单元 BIOS在中断INT 15H中扩展了两项功能,用于支持周期中断: (1)设置参数,启动周期中断,并立即返回 输入:AH=83H ES=定时时间到标记单元段地址 BX=定时时间到标记单元段内偏移量 CX=定时计数值高字 DX=定时计数值低字(单位:µs) 返回:无 (2)设置参数,启动周期中断,定时到后返回 输入:AH=86H DX=定时计数值底字(单位:µs)

4.6 串行通信基础 在计算机应用中,计算机与外部设备之间,计算机与计算机之间常常要进行数据交换,我们把这种数据交换称为通信 4.6 串行通信基础 在计算机应用中,计算机与外部设备之间,计算机与计算机之间常常要进行数据交换,我们把这种数据交换称为通信 数据通信的基本方式有2种:并行通信、串行通信 在并行通信中,所有的数据位同时传送,比如8位机的数据线宽度是8位,于是这8位同时传送,因此需要8条传送线,再加上其他的控制线,需要的传送线就更多,如果传送的距离比较远,那么这种方式的投资就很大,加之传送线越多受干扰的机会就越大,使得数据传送的可靠性降低,这种方式的最大优点就是传送速度快 在串行传送中,只用一条数据传送线,所有要传送的数据在通信线上依次一位一位地传送,这种方法使用传送线少,降低工程投资,适合于远距离数据传送,这是它的最大特点,但正是由于一位一位地传送数据,结果是限制了它的传送速率,这是它的不足

串行通信方式 串行通信中,数据发送定时和数据接收定时是一个重要问题。 并行传送时,8位数据同时传送,不存在每一位是属于哪一个字节的问题,而在串行通信中,数据位是在一条通信线上顺序传送的,因此,在数据的发送端和接收端之间要求同步,以区分数据位,数据字节和数据块(报文)。没有正确的同步,接收的信息就毫无用途,因此,要使接收端正确地转换成发送端发送的数据和信息,在串行通信中正确的同步是必不可少的。 串行通信的基本方式按通信的同步方式分为异步方式和同步方式。 如前所述,在串行通信下,所有需传送的数据信息和控制信息都必须在同一根线上传送,每次传送一位。这就提出一个问题:系统如何识别通信线上的数据信号与控制信号呢?又如何知道通信线上有多少个信号,以及是什么信号(0或1)呢?为了解决这些问题,提出了串行通信规程,串行通讯规程就是指对数据传送的某些约定,它包括定时、控制、格式化和数据表示法。异步方式和同步方式各有自己的通信规程。

异步通信方式 异步通信的数据链路控制是面向字符的,即传送的每一组数据构成一个字符,或者说,它把每个字符看作一个独立的信息进行传送,并且每个字符出现在数据流中的相对时间是任意的,而一个字符中每一位占用的时间是固定的,它由传送速率确定。因此,异步通信是字符内的同步,字符间的异步。 异步通信规程规定:数据流中传送的每个字符必须由起始位(1位低电平)开始,而以停止位结束(1位或1位或2位高电平),称为一帧。起始位和停止位称为帧位。 ①起始位。起始位是连续一位的低电平(逻辑0) ②数据位。在起始位之后,即发送数据位。数据位通常有4种配置情况,即有5位、6位、7位、8位 ③奇偶校验位。异步通信采用一位奇偶验位检测错误 ④停止位。表示一个字符发送结束

同步通信方式 (1)在同步通信中,要求发送端在正式发送数据前,先发送一个同步字符去通知接收端,接收端在收到同步字符后,便开始按照双方约定的格式和速率接收数据 (2)同步传送时,由于同步字符的不同,可有不同信息格式,一般分为: ①单同步:只有一个同步字符。 ②双同步:有二个同步字符。 ③外同步:没有同步字符,靠外部时钟同步。 ④SDLC/HDLC:同步数据链路控制/高级数据链路控制。 (3)同步通讯格式包括同步字符、数据、CRC校验: ①同步字符。一种同步标志,指示传送数据的开始。同步字符的选择依据是:其位模式要与传送的数据字符有着明显的差别 ②数据。指连续传送的信息,每个字符可选择为5、6、7、8位,传送的内容可以是数据信息,也可以是命令信息 ③CRC校验。循环冗余校验,用于数据传送的检错。不同在于,奇偶校验对一个字符校验,适于异步通信,而CRC对数据块进行校验,适于同步通信

HDLC HDLC(High Level Data Link Control)高级数据链路控制规程,HDLC适用于分时系统,计算机间的高速数据通讯 HDLC和SDLC除了所用的某些术语和技术细节外,其基本原理是相同的: (1)标志场。标志场由固定的8比特序列01111110组成,表示一帧的开始和结束,也兼作帧同步信号用。为防止在标志场以外的地方,如地址场,控制场等出现同样的序列,发送端和接收端采用“发送0比特插入,接收0比特删除”技术 (2)地址场和控制场。一帧信息是由若干个场(Field)组成的。包括标志场(F场)、地址场(A场,Address)、控制场(C场,Control)、数据场(又称信息场,I场,Information)等。HDLC规定地址场任意长度,控制场为8位或16位 (3)数据场。要传送的数据信息,其信息的长度任意 (4)帧校验序列。每一帧信息有两个字节的帧校验序列,采用16位的循环冗余校验码。除了标志场和自动插入的“0”以外,所有的信息都参加CRC计算

异步通信与同步通信的主要区别 (l)时钟要求 同步通信:发送与接收时钟频率精确相等 异步通信:发送与接收时钟频率基本相等即可 (2)控制信息 同步通信:要求对整个数据块附加帧信息,用于高速数据链路 异步通信:要求对每个数据字符均附加帧信息,用于低速设备,低速传送 (3)校验方式 同步通信:采用16位循环冗余校验码,可靠性高 异步通信:采用1位奇偶校验,可靠性相对较低

波特率 波特率(Baud rate):表示串行数据传送速度,它表示每秒钟传送的二进制位数,是一个速度衡量单位 波特率定义为:1波特=1位二进制位/秒 若某设备每秒传送120帧信息,每帧信息包括:1个起始位,7个数据位,1个奇偶校验位,1个停止位,共10位组成,这时其传送的波特率为: 10位/帧×120帧/秒=1200位/秒=1200波特 通信时,发送方和接收方的传送波特率必须保持一致,并根据传送的波特率来确定发送端接收端的时钟频率。 常用的传送波特率系列有:l10、300、600、1200、2400、4800、9600和19200波特。异步通讯一般在50~9600波特之间。大多数的CRT终端可在110~9600波特的范围内工作,常用9600波特。串行打印机由于受到机械速度的限制,一般波特率定在110波特。对于内部缓冲区大的串行打印机,传送速率可提高到2400波特。

串行通信的数据传送方式 在串行通信中,通信双方的数据传送方式有三种:单工方式、半双工方式和全双工方式 1.单工方式:这种方式只有一条通信线,数据只允许按一个固定的方向传送,即一方只能发送,而另一方只能接收 2.半双工方式:这种方式也只有一条通信线,通信双方都具备接收或发送数据的能力,但不允许任何一方在同一时刻既发送数据又接收数据,通信双方只能分时地进行发送或接收,即或者A发送,B接收,或者B发送,A接收 3.全双工方式:全双工方式是一对单工方式,有2条通信线,要求通信双方都具有完整的发送能力和接收能力,允许在两个方向上同时传送数据

信号的调制与解调 在串行通信中,计算机输入/输出的是以二进制表示的数字信号。但若收发双方距离较远,或在信息网络、计算机网络、远程交换等场合,可借用电话线来进行信息传送 计算机的数字信号有很高的谐波频率,要求传输线的频带很宽,而电话线的频带只有30Hz~3000Hz,用它来传送数字信号时,会产生严重的畸变。如果在电话线频带内来传送信息,就可以减小甚至消除失真 在远距离通信时,发送方要利用调制器把数字信号转换成模拟信号,以两种不同频率的正弦波来表示“1”和“0”发送到通信线上,这一过程称为调制。接收方利用解调器把收到的模拟信号恢复成数字信号,这一过程称为解调。实现调制与解调的装置称为调制解调器(Modem) 按照调制技术,一般有3种调制方法,即调频、调幅和调相 FSK频移键控法工作原理:两个不同频率的模拟信号(一般为2400Hz和1200Hz),分别由电子开关控制,加至运算放大器的输入端,而电子开关由要传送的数字信号控制。当数字信号为“1”时,控制电子开关导通,送出一串频率较高的模拟信号;当数字信号为“0”时,控制另一个电子开关导通,送出一串频率较低的模拟信号,于是在运算放大器的输出端,就得到了调制后的信号

4.7 可编程异步通信接口8250 典型的可编程串行接口芯片有多种,包括: 4.7 可编程异步通信接口8250 典型的可编程串行接口芯片有多种,包括: ①UART:通用异步接收器/发送器(Universal Asynchronous Receiver/Transmitter)。 ②USRT:通用同步接收器/发送器(Universal Synchronous Receiver/Transmitter)。 ③USART:通用同步异步接收器/发送器(Universal Synchronous/Asynchronous Receiver/Transmitter)。 ④ACIA:异步通信接口适配器(Asynchronous Communication Interface Adapter)。 IBM PC系列(包括IBM PC、PC/XT、PC/AT等)为了实现串行异步通信,使用INS8250作为核心,另加一些辅助电路组成异步通信接口。INS8250属于UART。UART通常包括数据格式和波特率参数的设置、并串/串并转换、接口状态测试等功能。

8250主要特点 INS8250具有40个引脚,双列直插式,内部有10个寄存器,编程灵活,使用方便,具有如下主要特点: (1)双全工异步通信接口电路(无同步通信能力) (2)具有双缓冲能力 (3)通信波特率50~9600bps,共分成15种 (4)每字符可传送5~8位 (5)停止位可选择1,1.5,2位 (6)可选择奇校验、偶校验或无校验 (7)可产生中止字符(输出连续低电平) (8)出错检测,能检测奇偶错、帧错和溢出错等错误 (9)片内具有优先权中断控制逻辑 (l0)具有内部模拟诊断功能 (11)具有MODEM控制及状态报告功能

8250 内部结构框图

8250内部结构(1) 1.数据总线缓冲器:提供8250与CPU的数据接口 2.选择和控制逻辑:提供8250与CPU的地址线和控制线接口 3.发送控制电路:发送控制电路由发送保持寄存器THR、发送移位寄存器TSR和发送同步控制电路组成。CPU要发送的数据首先送入发送保持寄存器THR,等发送移位寄存器TSR“空”以后,数据就由THR自动送入TSR,然后再按编程的各种要求(如数据格式、波特率等),再加入始起位、奇偶校验位和停止位,从8250的串行数据输出端SOUT发送出去,发送的顺序是起始位、数据低位、数据高位、停止位 4.接收控制电路:接收控制电路由接收移位寄存器RSR、接收缓冲寄存器RBR及接收同步控制电路组成。在接收时,首先搜索起始位。8250的数据接收时钟RCLK的频率是波特率的16倍。接收同步控制电路用RCLK的上升沿采样输入信号SIN,当采样到SIN输入信号由高电平变成低电平,并连续8个RCLK周期都是低电平,则确认是已经到来一个起始位,然后从第9个RCLK时钟周期的低电平开始算起,每隔16个RCLK时钟周期对SIN输入的数据进行采样(此时应是相应数据位的中心),直至规定的数据格式结束。若正式接收数据前,SIN上的低电平不能保持连续9个RCLK时钟周期的话,则认为是传送线上的干扰所致,不予理睬,从头开始搜索SIN上的起始位

8250内部结构(2) 5.波特率产生电路:波特率产生电路由16位的除数锁存器DLH和DLL,及波特率发生器组成。波特率发生器是一个可编程的分频器,其分频系数就是除数寄存器的值。根据规定的波特率,可以计算出应设置的除数寄存器的值: 除数寄存器=基准时钟频率÷(l6×波特率) 除数寄存器设置后,会产生相应的波特率,也可产生一个工作时钟信号,即: f工作时钟=16×波特率 这个工作时钟在8250芯片内部已作为发送同步控制,并经BOUDOUT脚输出 6.调制解调器控制电路:调制解调器控制电路由调制解调器控制寄存器MCR、调制解调器状态寄存器MSR及控制逻辑组成。这部分电路的作用是控制调制解调器的工作 7.中断控制逻辑:中断控制逻辑由中断允许寄存器IER、中断识别寄存器IIR和中断控制电路组成。8250支持中断方式传送。8250内部有多种中断源,它们能否提出申请,它们的优先级排序等工作就是由这部分电路来完成和控制的

8250内部结构(3) 8.寄存器组:8250的寄存器分散在8250的七个组成部分之中,但从用户的角度讲,这些寄存器是可直接操作的。8250共有10个寄存器,都是8位的,外部用A2A1A0三位地址线寻址,下表给出8250的10个寄存器及其编址,其中DLAB是线路控制寄存器LCR的D7位,用于除数寄存器访问允许 10个寄存器分为两组,一组用于建立8250的基本工作环境,如数据格式、波特率参数、允许中断情况等,这组寄存器包括线路控制寄存器LCR、调制解调器控制寄存器MCR、中断允许寄存器IER、高字节除数锁存器DLH、低字节除数锁存器DLL,这5个寄存器通常是在8250初始化时写入的,而且一旦写入很少去改动它们。另一组在8250工作中用于实际数据通信,可随时检查各种状态

8250引脚功能 (1) 分为两大部分:与CPU连接的部分和与通信设备连接的部分 1.8250与CPU连接的引脚 (1)数据线D7~D0。三态,双向,8位数据线 (2)地址选通ADS。可用于锁存片选信号和地址信号,低电平有效 (3)数据输入选通DISTR、DISTR。用于CPU从8250读取状态信息或数据,通常只用其中一个,另一个可接无效电平。 (4)数据输出选通DOSTR、DOSTR。用于CPU将数据或控制字写入某一个寄存器。通常只用其中一个即可,另一个可接无效电平 (5)驱动器禁止DDIS。输出信号,高电平有效。当CPU从8250读取数据时,DDIS变为低电平输出。当DDIS为高电平时,用于禁止外部驱动器工作 (6)地址线A2、A1、A0。输入信号,CPU用这三条地址线寻址8250的内部寄存器 (7)片选信号CS2、CS1、CS0。必须3个信号都有效,8250才能工作 (8)主复位MR。复位信号,高电平有效

8250引脚功能 (2) 2.8250与通信设备连接的引脚 (l)基准时钟输入XTAL1。8250的基准时钟输入端,把外部时钟信号或晶振信号接入8250 (2)基准时钟输出XTAL2。输出信号,可用于其他定时控制 (3)接收时钟RCLK。接收时钟RCLK用于接收数据时的同步与数据采佯,应为波特率的16倍频,即: RCLK=16×波特率 (4)工作时钟输出BAUDOUT。也叫波特率输出,其频率为16倍频波特率。该信号在8250内部用于控制发送器的同步,同时也输出到芯片外部。该信号与基准时钟颇率,除数寄存器的内容及波特率的关系如下: f工作时钟=f基准时钟÷除数寄存器 =16×传送波特率 该信号也可作为接收时钟,故通常将其连至RCLK端 (5)用户指定的输出OUT1、OUT2。可以通过对调制解调器控制寄存器MCR的D2、D3位编程,使其输出有效的低电平 (6)片选输出CSOUT。是芯片被选中的指示信号,当8250已被选中时,CSOUT变为高电平,此时数据传送才能开始。此信号一般无用

8250引脚功能 (3) (7)中断请求INTRPT。高电平有效。当接收出错或接收数据就绪,或发送保持器已空,或MODEM状态改变,并且中断允许寄存器相应位允许,则INTRPT变成有效的高电平,即请求中断 (8)串行数据输入SIN。是由通信设备(外设或MODEM)发送的串行输入数据的接收端 (9)串行数据输出SOUT。这是8250发送给通信设备(外设或MODEM)的串行数据的输出端 (10)数据终端就绪DTR。低电平有效。有效时表示8250通知MODEM已做好通信准备。在8250收到振铃指示后,若它已准备好,则应以此信号回答MODEM (11)请求发送RTS。低电平有效。有效时表示8250向MODEM发出指示,它要求向MODEM输出串行数据 (12)接收线路信号检测RLSD。由MODEM提供,低电平有效。有效时表明MODEM已接收到数据载波,8250应立即接收解调后的数据 (13)数据设备就绪DSR。低电平有效,是通信设备送给8250的控制信号,表示通信设备就绪,允许使用通信设备进行数据传送 (14)清除发送CTS。低电平有效,是由MODEM送给8250的控制信号。有效时表示MODEM已同意8250的发送请求,通知8250开始发送 (15)振铃指示RI。低电平有效。有效时表示MODEM已收到电话交换台的拨号呼叫(电话振铃信号),MODEM要求8250予以回答

8250初始化编程 8250内部有10个可操作的寄存器,都是8位的寄存器 发送保持寄存器THR功能:保存发送的数据 接收缓冲寄存器RBR功能:保存接收的数据 波特率除数锁存器DLH和DLL功能:保存对基准时钟频率的分频系数,以便产生所需的波特率 当8250基准时钟频率为1.8432MHz(在PC/XT中)时,采用分频的办法产生所要求的波特率。8250接收数据和发送数据所使用的时钟频率是数据传送波特率的16倍。当8250工作于不同波特率时,就要求不同的时钟频率,也就要求不同的分频系数。分频系数即除数,可由下式计算: 除数=1843200/(16×波特率) 除数锁存器分为高8位DLH和低8位DLL,分两次写入。在初始化寻址除数锁存器时,必须先把线路控制寄存器LCR的最高位DLAB置“1”。在8250基准时钟频率为1.8432MHz的条件下,8250的输出波特率与除数锁存器的值之间的关系如表所示

线路寄存器控制字 线路控制寄存器LCR功能:设置一帧数据格式,除数锁存器写入允许位控制,设置附加奇偶位 线路状态寄存器LSR功能:发送与接收是否就绪,接收是否有错误

调制解调器寄存器控制字 调制解调器控制寄存器MCR的主要功能是:设定自测试方式,控制用户输出信号,控制RTS、DTR信号 调制解调器状态寄存器MSR的主要功能是:反映来自MODEM的4个输入引脚的当前状态和变化状态

中断寄存器控制字 中断识别寄存器IIR功能:确定中断源。IIR是只读的,高5位读出时恒为“0”,因此可用这一特征检查某系统中预定的位置是否插入8250芯片 中断允许寄存器IER功能:控制4种中断类型的允许与禁止

8250初始化编程步骤 在使用8250之前,必须根据系统的要求,对8250的有关寄存器进行初始化设置 初始化编程的主要步骤是: (l)80H写入LCR(准备写除数) (2)除数写入DLH,DLL(确定波特率) (3)写入LCR,确定数据格式,并必须使D7=0,以便以后对RBR、THR、IER操作 (4)写入IER (5)写入MCR

8250 应用 例:在PC/XT中重新设置8250,要求:串行异步通信,波特率为9600波特,每个字符7位数据位,2个停止位,采用奇校验,允许所有的中断,并用开放INTRPT中断,已知BIOS为串行接口分配的地址是3F8H~3FFH,试编写8250的初始化程序 解: MOV AL,80H MOV DX,3FBH ;LCR,DLAB=1,送除数 OUT DX,AL ;使通信线控制寄存器最高位置1 MOV AL,OCH MOV DX,3F8H ;DLL,除数低字节 OUT DX,AL MOV AL,0 INC DX ;DLH,除数高字节 OUT DX,AL ;对除数锁存器置初值 MOV AL,00001110B ;设置数据格式为7位/字符,两个停止位,奇校验 MOV DX,3FBH ;LCR MOV AL,0FH ;允许所有中断 MOV DX,3F9H ;IER MOV AL,0BH ;OUT2、DTR、RTS信号有效 MOV DX,3FCH

第4章 作业 1.PC机的定时系统包括哪两部分?各自的作用是什么? 2.8254有几种读操作方式?简述之。 3.某系统采用一片8254产生周期为2ms,个数为10的脉冲序列,已知有一个时钟源,频率为5MHz。要求: (1)画出硬件接口电路图; (2)编写相应程序。 4.MC146818可产生几种中断?简述之。 5.如何保证正确读取MC1468l8的时标寄在器? 6.设计一个MC146818的应用系统,要求: (1)画出接口电路; (2)编写初始化程序。 7.8250本身可以处理几种中断类型?其优先级的次序是怎样排列的?当8250 8.8088与8250连接作串行通信接口,通信参数是:8个数据位,1个停止位,不采用奇偶校验,波特率为2400,要求: (1)设计8088与8250的接口电路; (2)确定8250的各个端口地址; (3)编写8250的初始化程序。

第4章 结束 请同学们按教材后的习题 及时复习 吉林大学远程教育学院