第10章串行通信南通大学陈继红

上传人:cl****1 文档编号:567963336 上传时间:2024-07-22 格式:PPT 页数:58 大小:756.51KB
返回 下载 相关 举报
第10章串行通信南通大学陈继红_第1页
第1页 / 共58页
第10章串行通信南通大学陈继红_第2页
第2页 / 共58页
第10章串行通信南通大学陈继红_第3页
第3页 / 共58页
第10章串行通信南通大学陈继红_第4页
第4页 / 共58页
第10章串行通信南通大学陈继红_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《第10章串行通信南通大学陈继红》由会员分享,可在线阅读,更多相关《第10章串行通信南通大学陈继红(58页珍藏版)》请在金锄头文库上搜索。

1、第第1010章章 串行通信串行通信第10章 串行通信 10.1 基本概念10.2 可编程串行通信接口芯片NS825010.3 可编程串行通信接口芯片8251A第第1010章章 串行通信串行通信10.1 基本概念10.1.1 串行通信与并行通信 并行通信是指利用多根传输线将多位数据同时进行传送。1字节的数据通过8条传输线同时发送。由于并行通信方式使用的线路多,一般用在如计算机与打印机等距离短、数据量大的场合。串行通信是指利用一条传输线将数据一位一位地按顺序分时传输。当传送一字节的数据时,8位数据通过一条线分8个时间段发出,发出顺序一般是由低位到高位。 第第1010章章 串行通信串行通信1. 数据

2、帧格式 10.1.2 异步串行通信 异步传送是计算机通信中常用的串行通信方式。异步是指发送端和接收端不使用共同的时钟,也不在数据中传送同步信号。在这种方式下,收方与发方之间必须约定数据帧格式和波特率。第第1010章章 串行通信串行通信2、波特率(Baud Rate) 波特率是衡量串行数据传送速度的参数,是指单位时间内传送二进制数据的位数,以位/秒为单位(或bps,bit/s),也称为波特。 【例题10.1】设数据帧为1位起始位、1位终止位、7位数据位、1位奇偶校验位,传送的波特率为1200(波特)。用7位数据位代表一个字符,求最高字符传送速度。 解:1200(位/秒)/10(位) 120(字符

3、) 【例题10.2】设数据帧为1位起始位、2位终止位、8位数据位、1位奇偶校验位,要求每秒传送字符数大于1000字节,则波特率应大于多少波特? 解:12(位/秒)1000 12000(字符),波特率应大于12000位/秒。 第第1010章章 串行通信串行通信 同步传送时,无需起始位、停止位。每一帧包含较多的数据,在每一帧开始处使用1-2个同步字符以表示一帧的开始。 10.1.3 同步串行通信 第第1010章章 串行通信串行通信1、单工 2、半双工 3、全双工 10.1.4 串行通信中的数据传送模式第第1010章章 串行通信串行通信10.1.5 信号的调制和解调 第第1010章章 串行通信串行通

4、信 最初 RS-232C串行接口的设计目的是用于连接调制解调器。目前,RS-232C已成为数据终端设备DTE(例如计算机)与数据通信设备DCE(例如调制解调器)的标淮接口。利用RS-233C接口不仅可以实现远距离通信,也可以近距离连接两台微机或电子设备。 10.1.6 串行接口标准RS-232C 第第1010章章 串行通信串行通信1RS-232C的引脚定义 RS-232C接口标准使用标准的25针D型连接器即DB-25。PC机已使用9针连接器取代25针连接器。第第1010章章 串行通信串行通信9 9针连接器针连接器引脚号引脚号2525针连接器针连接器引脚号引脚号名名 称称2525针连接器针连接器

5、引脚号引脚号名名 称称1保护地12次信道载波检测32发送数据TxD13次信道清除发送23接收数据RxD14次信道发送数据74请求发送RTS16次信道接收数据85清除发送CTS19次信道请求发送66数据装置准备好DSR21信号质量检测57信号地GND23数据信号速率选择18载波检测CD24终端发生器时钟420数据终端准备好DTR9、10保留922振铃提示RI11未定义15发送时钟TxC18未定义17接收时钟RxC25未定义第第1010章章 串行通信串行通信 TxD 发送数据串行数据的发送端。 RxD 接收数据串行数据的接收端。 GND 信号地为所有的信号提供一个公共的参考电平 RTS 请求发送当

6、数据终端设备准备好送出数据时,就发出有效的RTS信号,用于通知数据通信设备准备接收数据。 CTS 清除发送当数据通信设备已准备好接收数据终端设备的传送数据时,发出CTS有效信号来响应RTS信号。 DTR 数据终端准备好通常当数据终端设备一加电,该信号就有效,表明数据终端设备准备就绪。 DSR 数据装置准备好通常表示数据通信设备(即数据装置)已接通电源连到通信线路上,并处于数据传输方式,而不是处于测试方式或断开状态。CD 载波检测当本地调制解调器接收到来自对方的载波信号时,就从该引脚向数据终端设备提供有效信号。该引脚缩写为DCD。 RI 振铃指示当调制解调器接收到对方的拨号信号期间,该引脚信号作

7、为电话铃响的指示,保持有效。 第第1010章章 串行通信串行通信2RS-232C的连接 计算机由计算机由RS-232CRS-232C接口连接调制解调器接口连接调制解调器 第第1010章章 串行通信串行通信两台微机直接利用两台微机直接利用RS-232CRS-232C接口进行短距离通信接口进行短距离通信 第第1010章章 串行通信串行通信3RS-232C的电气特征 高电平为+3V+15V,低电平为-3V-15V。实际应用中常采用12v或15v。 高电平表示逻辑0,用符号SPACE(空号)表示;低电平表示逻辑1,用符号MARK(传号)表示。 由于RS-232C的EIA电平与微机的逻辑电平(TTL电平

8、或CMOS电平) 不兼容所以两者间需要进行电平转换。MCl488(完成TTL电平到EIA电平的转换)和MCl489(完成EIA电平到TTL电平的转换)等芯片。 第第1010章章 串行通信串行通信 MAX232电平转换电路如图所示,能实现两路TTL电平到EIA电平、两路EIA电平到TTL电平的转换。 第第1010章章 串行通信串行通信10.2 通用可编程串行通信接口芯片NS8250 10.2.1 NS8250概述 1基本功能 支持串行异步通信协议 支持全双工通信 数据位可选58位,停止位可选1、15或2位,可奇偶校验,具有奇偶、帧和溢出错误的检测。 具有带优先级排序的中断系统,有多种中断源 发送

9、和接收均采用双缓冲器结构。 使用单一的5V电源,40脚双列直插型封装。 第第1010章章 串行通信串行通信2结构其中寄存器:THR、TSRRBR、RSRLCRLSRDLHDLLMCRMSRIERIIR第第1010章章 串行通信串行通信(1)串行数据的发送 CPU送来的并行数据存在发送保持寄存器THR中。 只要发送移位寄存器TSR中没有正在发送的数据,发送保持寄存器的数据就送入TSR 。 与此同时,8250按照编程规定的起止式字符格式,加入起始位、奇偶校验位和停止位,从串行数据输出引脚SOUT逐位输出。 因为THR、TSR采用双缓冲寄存器结构,所以在TSR进行串行发送的同时,CPU可以向8250

10、提供下一个发送数据到THR,这样可以保证数据的连续发送。 第第1010章章 串行通信串行通信(2)起始位的检测 必须确定起始位才能开始接收数据,即实现位同步。 数据接收时钟RCLK使用16倍波特率的时钟信号。接收器用RCLK检测到串行数据输入引脚SIN由高电平变低后,连续测试8个RCLK时钟周期,若采样到的都是低电平,则确认为起始位。 确认了起始位后每隔16个RCLK时钟周期对SIN输入的数据位进行采样一次,直至规定的数据格式结束。第第1010章章 串行通信串行通信(3) 串行数据的接收 接收移位寄存器RSR对SIN引脚输入的串行数据进行移位接收。 按规定的字符格式删除起始位、奇偶校验位和停止

11、位,把移位输入的串行数据转换成并行数据。 接收完一个字符后,把数据送入接收缓冲寄存器RBR。 接收数据的同时,对接收数据的正确性和接收过程进行监视。如发现奇偶校验错、帧错、溢出错或接收到中止符,则在状态寄存器中置相应位,并通过中断控制逻辑请求中断,要求CPU处理。 采用RSR、RBR双缓冲结构,所以在CPU未读取RBR中的数据前,8250可以继续串行接收下一个数据。 第第1010章章 串行通信串行通信(4)接收错误的处理 奇偶错误PE(Parity Error) 若接收到的字符的“l”的个数不符合奇偶校验要求,则置这个标志,发出奇偶校验出错信息。 帧错误FE(Frame Error) 若接收到

12、的字符格式不符合规定(如缺少停止位),则置这个标志,发出帧错误信息。 溢出错误OE(Over Error ) 若接收移位寄存器接收到一个数据,在把它送至输入缓冲器时,CPU还未取走前一个数据,就会出现数据丢失,这时置溢出错误标志。 第第1010章章 串行通信串行通信38250部分引脚说明 时钟信号:时钟信号输入引脚XTALl 串行数据输入线SIN对应RxD,用于接收串行数据。 串行数据输出线SOUT对应TxD,用于发送串行数据。 调制解调器控制线 中断请求信号线INTRPT 处理器接口引脚 :D0D7、读 、写 、片选、地址线A0A2 等 第第1010章章 串行通信串行通信DLABA2A1A0

13、 寄存器 COM1地址 COM2地址 0000读接收缓冲寄存器3F8H2F8H0000写发送保持寄存器3F8H2F8Hx001中断允许寄存器3F9H2F9Hx010中断识别寄存器(只读)3FAH2FAHx011通信线路控制寄存器3FBH2FBHx100调制解调器控制寄存器3FCH2FCHx101通信线路状态寄存器3FDH2FDHx110调制解调器状态寄存器3FEH2FEHx111不用3FFH2FFH1000除数寄存器低8位 3F8H2F8H1001除数寄存器高8位3F9H2F9H8250的寄存器寻址 第第1010章章 串行通信串行通信10.2.2 寄存器详细说明 1.通信线路控制寄存器LCR

14、第第1010章章 串行通信串行通信2.通信线路状态寄存器LSR 3.调制解调器控制寄存器MCR 第第1010章章 串行通信串行通信 MCR的D2D3位分别控制 和 脚的输出,可作为一般的输出信号使用。 脚还具有中断控制作用,若 脚输出低电平,允许8250的INTRPT发出中断请求信号,否则将屏蔽8250的中断请求信号。因此MCR的D3位可当作为8250的中断允许控制位。 MCR的D4位可控制8250处于自测试工作状态。在自测试状态,引脚SOUT变为高,而SIN与系统分离,发送移位寄存器的数据回送到接收移位寄存器;4个控制输入信号( 、 、 、 )和系统分离,并在芯片内部与4个控制输出信号( 、

15、 、 、 )相连。这样,发送的串行数据立即在内部被接收(循环反馈),故可用来检测8250发送和接收功能正确与否,而不必外连线。 第第1010章章 串行通信串行通信 在自测试状态,有关接收器和发送器的中断仍起作用,调制解调器产生的中断也起作用。但调制解调器产生中断的源不是原来的4个控制输入信号,而变成内部连接的4个控制输出信号,即MCR低4位。中断是否允许,则仍由中断允许寄存器控制,若中断是允许的,则将MCR低4位的某一位置位,产生相应的中断,好像正常工作一样。 4.调制解调器状态寄存器MSR 第第1010章章 串行通信串行通信5.中断允许寄存器IER 第第1010章章 串行通信串行通信6.中断

16、识别寄存器IIR 第第1010章章 串行通信串行通信10.2.3 PC机的串行异步通信适配器 1.简介: COMl端口地址为3F8-3FFH,以IRQ4为中断请求线 COM2端口地址为2F8-2FFH,以IRQ3为中断请求线 基准时钟信号(XTAL):1.8432MHz第第1010章章 串行通信串行通信2异步通信适配器的初始化编程 (1) 设置波特率 MOV AL , 80H ;最高位 DLAB=1 MOV DX , 3FBH ;COM1的LCR地址为3FBH OUT DX , AL ;写入LCR,使DLAB=1 MOV AX , 96 ;分频系数: 1.8432MHz(1200 16)= 9

17、6 MOV DX , 3F8H ;DLL的地址为3F8H OUT DX , AL ;写入除数寄存器低8位 MOV AL , AH INC DX ;DLH的地址为3F9H OUT DX , AL ;写入除数寄存器高8位第第1010章章 串行通信串行通信(2) 设置通信字格式写入LCR 设数据格式为1个起始位、7个数据位、1个停止位、1个奇校验。程序段如下: MOV AL , 00001010B ;DLAB=0 MOV DX , 3FBH OUT DX , AL ;写LCR 这段程序同时使DLAB=0,以方便后面的初始化程序。第第1010章章 串行通信串行通信(3) 设置工作方式写MCR 设置查询

18、通信方式MOV AL, 03h ;控制为 高, 和 为低MOV DX , 3FCHOUT DX , AL ;写入调制解调控制寄存器设置中断通信方式MOV AL, 0Bh ;控制为 低,允许INTRPT产生请求MOV DX ,3FCHOUT DX ,AL ;写入调制解调控制寄存器第第1010章章 串行通信串行通信设置查询的循环测试通信方式 MOV AL , 13H ;循环测试位设置为1 MOV DX , 3FCH OUT DX , AL(4) (4) 设置中断允许设置中断允许/ /中断屏蔽中断屏蔽如果不采用中断工作方式,应设置中断允许寄存器为0,禁止所有的中断请求。否则,根据需要,允许相应的中断

19、,不使用的中断则仍屏蔽。例如:MOV AL , 0 ;禁止所有中断MOV DX ,3F9HOUT DX ,AL ;写入中断允许寄存器(应保证此时DLAB0) 第第1010章章 串行通信串行通信 【例题1】下面的例子实现两台PC机之间的异步串行通信,从一台PC机键盘输入的字符将在对方PC机屏幕上显示出来。每一PC台机都使用COM2口,使用相同的程序,程序采用查询工作的方式。 10.2.4 应用举例 第第1010章章 串行通信串行通信 初始化编程时,应将03H写入调制解调器控制寄存器MCR,使环路检测位为0。 初始化编程后,程序读取8250的LSR,若数据传输出错就显示一个问号“?”;若接收到对方

20、送来的字符就将其显示在屏幕上;若从本机键盘输入字符,就将其发送给对方。如果按下Esc键就返回DOS。 本例程序不使用联络控制信号,通信时不关心调制解调器状态寄存器的内容,而只要查询通信线路状态寄存器即可。第第1010章章 串行通信串行通信 START:MOV AL , 80H ;初始化编程 MOV DX , 2FBH ;波特率 OUT DX , AL MOV AX , 96 MOV DX , 2F8H OUT DX , AL MOV AL , AH INC DX OUT DX , AL第第1010章章 串行通信串行通信 MOV AL , 0AH ;通信字格式(LCR) MOV DX , 2FB

21、H OUT DX , AL MOV AL, 03H ;设置工作方式(MCR) MOV DX , 2FCH OUT DX , AL STATUS: MOV DX , 2FDH IN AL , DX ;读LSR TEST AL ,1EH ;接收有错误否? JNZ ERROR ;有错则转错误处理 TEST AL ,01H ;接收到数据吗?第第1010章章 串行通信串行通信 JNZ RECEIVE ;有,则转接收处理 TEST AL, 20H ;THR空(能输出数据)吗? JNZ STATUS ;不能,则循环查询LSR MOV AH, 0BH ;能,检测键盘有无输入字符 INT 21H CMP AL,

22、 0 JZ STATUS ;无输入字符,则循环查询LSR MOV AH, 0 ;有输入字符,读取字符 INT 16H 第第1010章章 串行通信串行通信 CMP AL , 1BH ;判是否Esc JZ DONE ;是Esc MOV DX , 2F8H ;否则,将字符输出给THR OUT DX , AL JMP STATUS ;继续查询 RECEIVE:MOV DX , 2F8H IN AL , DX ;从RBR读取字符 AND AL , 7FH ;ASCII码7个数据位,保留低7位 PUSH AX ;保存数据 MOV DL , AL ;在屏幕上显示该字符 MOV AH , 2 INT 21H

23、POP AX ;恢复数据第第1010章章 串行通信串行通信 CMP AL , 0DH JNZ STATUS ;不是,则循环 MOV DL , 0AH ;再发0AH到屏幕 MOV AH , 2 INT 21H JMP STATUS ;继续查询 ERROR:MOV DX , 2F8H IN AL , DX ;读出接收有误的数据,丢掉 MOV DL , ? ;显示问号 MOV AH , 2 INT 21H JMP STATUS ;继续查询 DONE: ;返回DOS 第第1010章章 串行通信串行通信【例题2】PC机串行口“自发自收”。例1中的程序稍作修改即可实现该操作。方法是在初始化编程中,向调制解

24、调器控制寄存器MCR写入13H,即环路检测位为1,则8250工作于循环自测试方式。从键盘输入的字符,经8250发送后又由8250自身接收。这时,PC机后面板串行接口上无需连线,就实现了“自发自收“。上述程序可用于8250芯片的自检。 第第1010章章 串行通信串行通信10.3 通用可编程串行通信接口芯片8251A 10.3.1 8251A的基本功能 能以同步方式或异步方式进行工作,自动完成帧格式。 在同步方式中,每个字符可定义为5、6、7或8位,可以选择进行奇校验、偶校验或不校验。内部能自动检测同步字符实现内同步或通过外部电路获得外同步,波特率为064K。 在异步方式中,每个字符可定义为5、6

25、、7或8位,用1位作为奇偶校验(可选择)。时钟速率可用软件定义为通信波特率的1、16或64倍。能自动为每个被输出的数据增加1个起始位,并能根据软件编程为每个输出数据增加1个、1.5个或2个停止位。异步方式下,波特率为019.2K。 第第1010章章 串行通信串行通信 8251A能进行出错检测,具有奇偶、溢出和帧错误等检测电路。 具有独立的接收器和发送器,因此,能够以单工、半双工或全双工的方式进行通信。并且提供一些基本控制信号,可以方便地与调制解调器连接。 第第1010章章 串行通信串行通信10.3.2 8251A的结构 1. 8251A的内部结构第第1010章章 串行通信串行通信2. 8251

26、A的引脚TxD、RxD、 、 、 、 与8280功能相同。 :控制数据信号。用来区分当前读写的是数据还是控制信息或状态信息,一般与地址总线的最低位A0相连。当 为高电平时,选中控制端口或状态端口,为低电平时,选中数据端口。 TxRDY:发送器准备好信号,高电平有效。它通知CPU,8251A的发送器已经准备好,可以接收CPU送来的数据,当8251A收到一个数据后,TxRDY信号变为低电平。 第第1010章章 串行通信串行通信RxRDY:接收器准备好信号,高电平有效。它表示当前8251A已经从外部设备或调制解调器上接收到一个字符,正等待CPU取走。在中断方式下,该信号可以作为中断请求信号;在查询方

27、式下,该信号可以作为状态信号供CPU查询。当CPU从8251A的数据口读取了一个字符后,RxRDY变为低电平,表示无数据可取;当8251A又收到一个字符后,RxRDY再次变为高电平。 SYNDET/BD:同步和间断检测信号。SYNDET/BD既可以是输入(外同步方式),又可以是输出(内同步方式)。 TxE:发送器空信号,高电平有效。它表示8251A发送器已空,即当一个数据发送完成后TxE变高。当CPU向8251A写入一个字符时,TxE变成低电平。 第第1010章章 串行通信串行通信10.3.3 8251A的编程命令 1. 通信方式选择命令字第第1010章章 串行通信串行通信2. 工作命令字第第

28、1010章章 串行通信串行通信3. 工作状态字第第1010章章 串行通信串行通信10.3.4 8251A初始化步骤 1. 初始化编程步骤(1)芯片复位后,第一个写入奇地址端口的是方式选择命令字。约定双方的通信方式(同步/异步),数据格式(数据位和停止位长度、校验特征、同步字符特征)及传输速率(波特率系数)等参数。(2)如果方式选择命令字规定了8251A工作在同步方式,那么,必须向奇地址端口写入规定的1个或2个同步字符。(3)只要不是复位命令,不论同步方式还是异步方式,需向奇地址端口写入工作命令字。初始化结束后,CPU就可通过查询8251A的状态字或采用中断方式,进行正常的串行通信发送/接收工作

29、。 因为方式字、命令字及同步字均无特征标志位,且都是写入同一个端口,所以在对8251A初始化编程时,必须按一定的顺序,若改变了这种顺序,8251A就不能识别。 第第1010章章 串行通信串行通信2. 内部复位命令 当8251A通过写入方式选择字,规定了8251A的工作方式后,可以根据对8251A工作状态的不同要求随时向控制端口输出工作命令指令字。若要改变8251A工作方式,应先使8251A芯片复位,内部复位命令字为40H(IR1)。8251A芯片复位后,又可重新向8251A输出方式选择字,以改变8251A的工作方式。 第第1010章章 串行通信串行通信3. 8251A初始化编程(1)异步方式下

30、初始化编程 要求使8251A工作在异步方式,波特率系数为16,字符长度为8位,偶校验,2个停止位。则方式选择字为:11111110B0FEH。工作状态要求:复位出错标志、使请求发送信号有效、使数据终端准备好信号有效、发送允许TxEN有效、接收允许RxE有效。则工作命令字应为37H。假设8251A的两个端口地址分别为0C0H和0C1H,初始化编程如下: MOV AL, 0FEH OUT 0C1H, AL ;设置方式选择字 MOV AL, 37H OUT 0C1H, AL ;设置命令字 第第1010章章 串行通信串行通信(2)同步方式下初始化编程 要求8251A工作在同步方式,两个同步字符(内同步

31、)、奇校验、每个字符8位,则方式选择字应为1CH。工作状态要求:使出错标志复位,允许发送和接收、使CPU己难备好且请求发送,启动搜索同步字符,则工作命令指令应该是0B7H。又设第一个同步字符为0AAH,第二个同步字符为55H。还使用上例8251A芯片,这样要先用内部复位命令40H,使8251A复位后,再写入方式选择控制字。具体程序段如下:第第1010章章 串行通信串行通信 MOV AL, 40H OUT 0C1H, AL;复位8251A MOV AL, 1CH OUT 0C1H, AL;设置方式选择字 MOV AL, 0AAH OUT 0C1H, AL;写入第一个同步字符 MOV AL, 55

32、H OUT 0C1H, AL;写入第二个同步字符 MOV AL, 0B7H OUT 0C1H, AL;设置命令字第第1010章章 串行通信串行通信10.3.5 8251A应用 【例】用异步串行输入方式输入2000个数据,存放到内存BUFFER开始的单元中。因为8251A从外设接收一个字符RxRDY会自动置位,因此程序中不断对状态寄存器的RxRDY位进行测试,查询8251A是否已经从外设接收了一个字符。若RxRDY变为有效,即收到一个字符,CPU就执行输入指令取回一个数据存放到内存缓冲区,RxRDY在CPU输入一个字符后会自动复位。除了对状态寄存器的RxRDY位检测之外,程序还要检测状态寄存器的

33、D3、D4、D5位,以判断是否出现奇偶错、溢出错或帧错误,若发现错误就转错误处理程序。下面的程序中未给出出错处里程序。设8251的地址为80H和81H。 第第1010章章 串行通信串行通信 MOV AL,0FEH OUT 81H, AL ;写入方式选择字 MOV AL,37H OUT 81H, AL ;写入工作命令字 MOV BX, BUFFER ;BX指向缓冲区首址 MOV DI, 0 ;变址寄存器初值为0 MOV CX, 2000 ;设置计数器初值WAIT:IN AL, 81H ;读状态字 TEST AL, 2 ;测RxRDY位 JZ WAIT ;为0,未收到字符 第第1010章章 串行通信串行通信 IN AL, 80H ;从数据口读入数据 MOV BXDI,AL ;将字符保存到缓冲区 INC DI ;缓冲区指针下移一个单元 IN AL,81H ;读状态字 TEST AL, 38H ;判断有无三种错误 JNZ ERROR ;有错,则转出错处理程序 LOOP WAIT ;没错,判是否结束循环 JMP EXIT ;结束ERROR: CALL ERR_PRO ;转入错误处理程序 EXIT:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号