1 / 60

第 4 章 数据通信方式及常用接口芯片

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

marlin
Télécharger la présentation

第 4 章 数据通信方式及常用接口芯片

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

  2. 4.2 可编程并行接口8255A • 8255有三个8位并行的数据端口PA、PB、PC,各个口的输入输出功能由程序确定。 • A口具有一个8位数据输出锁存/缓冲器和一个8位数据输入锁存器。 • B口具有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存)。 • C口具有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存)。这个口在方式0控制下,可分为两个4位的口,用于传送数据或状态字。 • 8255有三种基本工作方式: 方式0-一基本输入输出方式 方式1――选通输入输出方式 方式2――双向传送方式

  3. 8255控制字格式

  4. 4.3 可编程多功能接口8155

  5. 8155控制字格式

  6. 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)的最高两位控制。

  7. 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

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

  9. 8254的内部结构

  10. 8254的通道结构

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

  12. 8254控制字格式

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

  14. 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去控制发光二极管),符合系统要求。

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

  16. 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。

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

  18. 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)有三种独立的可编程中断。

  19. 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个字节,可使用户保存其它信息。

  20. 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:空引脚,无定义。

  21. MC146818工作原理

  22. 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发出中断请求,在中断程序中可读取时钟日历。

  23. 更新周期 • 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内完成读取时钟日历的数据。

  24. MC146818在系统中连接框图

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

  26. MC146818的编程寄存器A、B

  27. 寄存器A的DV2DV1DV0组合

  28. 寄存器A的RS3RS2RS1RS0组合

  29. MC146818的编程寄存器C、D

  30. 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,恢复芯片工作。

  31. 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进行读写数据操作。

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

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

  34. 报警中断与周期中断 • 在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 CX=定时计数值高字 DX=定时计数值底字(单位:µs) 返回:无

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

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

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

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

  39. 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计算

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

  41. 波特率 • 波特率(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波特。

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

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

  44. 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通常包括数据格式和波特率参数的设置、并串/串并转换、接口状态测试等功能。

  45. 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控制及状态报告功能

  46. 8250 内部结构框图

  47. 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上的起始位

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

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

  50. 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。复位信号,高电平有效

More Related