七章串行通信接口技术ppt课件.ppt

上传人:本田雅阁 文档编号:3182202 上传时间:2019-07-22 格式:PPT 页数:83 大小:1.41MB
返回 下载 相关 举报
七章串行通信接口技术ppt课件.ppt_第1页
第1页 / 共83页
七章串行通信接口技术ppt课件.ppt_第2页
第2页 / 共83页
七章串行通信接口技术ppt课件.ppt_第3页
第3页 / 共83页
七章串行通信接口技术ppt课件.ppt_第4页
第4页 / 共83页
七章串行通信接口技术ppt课件.ppt_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《七章串行通信接口技术ppt课件.ppt》由会员分享,可在线阅读,更多相关《七章串行通信接口技术ppt课件.ppt(83页珍藏版)》请在三一文库上搜索。

1、可编程串行通信接口芯片8251A,在串行通信时,收发双方要解决的问题: 以何种速率进行数据的发送和接收(波特率) 采用何种数据格式(帧格式) 接收方如何得知一批数据的开始和结束(帧同步) 接收方如何从位流中正确地采样到位数据(位同步) 接收方如何判断收到数据的正确性(数据校验) 收发出错时如何处理(出错处理),串行通信的基本概念,全双工方式,半双工方式,单工方式,1. 数据传送方向,2. 串行通信的两种基本方式,(1)异步通信及其协议 所谓的异步通信,是指通信中两个字符的时间间隔是不固定的,而同一字符中的相邻代码间时间间隔是固定的,串行异步通信以字符为单位进行传输,用起始位表示字符的开始,用停

2、止位表示字符结束,其通信协议是起止式异步通信协议 串行通信时的数据、控制和状态信息都使用同一根信号线传送 收发双方必须遵守共同的通信协议(通信规程),才能解决传送速率、信息格式、位同步、字符同步、数据校验等问题,(2)同步通信及其协议,同步通信以一个数据块为传输单位,每个数据块附加1个或2个同步字符,最后以校验字符结束 同步通信协议有多种,常用的有面向比特的高级数据链路控制协议HDLC(High-Level Data Link Control)。IBM系列微机中常用的同步数据链路控制协议SDLC(Synchronous Data Link Control)则是HDLC的子集,同步通信的特点是不

3、仅字符内部保持“同步”,而且字符与字符之间也是同步的。 在这种通信方式下,收/发双方必须建立准确的位定时信号,也就是收/发时钟的频率必须严格地一致。 每个字符不增加任何附加位,而是连续发送,3. 波特率与收/发时钟,串行传输速率也称波特率(Baud Rate) 每秒传输的二进制位数bps 字符中每个二进制位持续的时间长度都一样,为数据传输速率的倒数,(1)串行传输速率,字符速率与波特率两者关系,字符速率:每秒钟传输的字符数。,波特率:指单位时间内传送二进制数据的位数。单位为:b/s,例: 异步传输过程 设每个字符对应1个起始位、7个信息位、1个奇偶校验位和1个停止位,如果波特率为1200bps

4、,那么,每秒钟能传输的最大字符数为1200/10120个,例2:同步传输 用1200bps的波特率工作,用4个同步字符作为信息帧头部,但不用奇偶校验,那么,传输100个字符所用的时间为7(100+4)/12000.6067s,这就是说,每秒钟能传输的字符数可达到100/0.6067165个。 可见,在同样的传输率下,同步传输时实际字符传输率要比异步传输时高。,(2) 发送/接收时钟,发送/接收时钟频率与波特率之间的关系为: 发送/接收时钟频率=n发送/接收波特率,例:要求传输速率为1200 bps 当选择n=16时,表明一位数字信号中有16个时钟脉冲,故发送/接收时钟频率为: 120016=1

5、9.2kHz,其中n称为波特因子,一般n=1,16,32,64,调制和解调 长距离通信时,常需要利用电话线路,它的频带则只有300Hz3400Hz。为了通过电话线路传输数字信号,必须先把数字信号转换为适合在电话线路上传送的模拟信号,这就是调制;经过电话线路传输后,在接收端再将模拟信号转换为数字信号,这就是解调。 调制方法 : 移频键控(FSK) 移相键控PSK 振幅键控(ASK),4. 信号的调制解调,RS-232C信号定义的说明 RS-232C的25个插脚仅定义22个。在微机通信中,通常使用的RS-232C接口信号只有9根引脚(P299,图7-37),5. RS232C接口,RS-232C总

6、线的电气规范,RS-232C标准与TTL标准之间的转换 常用于将TTL电平转换为RS-232C电平的芯片,除MC1488外还有75188,75150等;用于将RS-232C电平转换为TTL电平,除MC1489外,还有75189,75154等,RS-232C的应用 使用MODEM连接,直接连接,三线连接,计算机通常使用UART来实现数据的串/并和并/串转换 UART的基本原理(P301,图7-39、7-40) UART的工作过程 常用的错误标志 奇偶校验错 帧错误 溢出(丢失)错误,6. 通用异步收发器(UART),可编程异步通信接口INS8250,8250的基本功能: 全双工、双缓冲器接收和发

7、送 15种波特率,50-9600bps 可编程的异步通信格式 提供奇偶、溢出和帧校验等错误检测 片内具有优先权中断控制逻辑,8250的内部结构,8250芯片引脚定义与功能,(1)面向CPU一侧的引脚(1),数据线D7 D0 :在CPU与8250之间交换信息 地址线A0A2:寻址8250内部寄存器 片选线:8250设计了3个片选输入信号CS0、CS1、CS2*和一个片选输出信号CSOUT。3个片选输入都有效时,才选中8250芯片,同时CSOUT输出高电平有效。 地址选通信号ADS*:当该信号低有效时,锁存上述地址线和片选线的输入状态,保证读写期间的地址稳定,(1)处理器接口引脚(2),读控制线

8、数据输入选通DISTR(高有效)和DISTR*(低有效)有一个信号有效,CPU从8250内部寄存器读出数据 相当于I/O读信号 写控制线 数据输出选通DOSTR(高有效)和DOSTR*(低有效)有一个有效,CPU就将数据写入8250内部寄存器 相当于I/O写信号 8250读写控制信号有两对,每对信号作用完全相同,只不过有效电平不同而己,(1)处理器接口引脚(3),驱动器禁止信号DDIS:CPU从8250读取数据时,DDIS引脚输出低电平,用来禁止外部收发器对系统总线的驱动;其它时间,DDIS为高电平 主复位线MR:硬件复位信号RESET 中断请求线INTRPT:8250有4级共10个中断源,当

9、任一个未被屏蔽的中断源有请求时,INTRPT输出高电平向CPU请求中断,(2)面向外设引脚信号,(3)时钟信号,时钟输入引脚XTAL1:8250的基准工作时钟 时钟输出引脚XTAL2:基准时钟信号的输出端 波特率输出引脚BAUDOUT*:基准时钟经8250内部波特率发生器分频后产生发送时钟,为波特率16倍 接收时钟引脚RCLK:接收外部提供的接收时钟信号;若采用发送时钟作为接收时钟,则只要将RCLK引脚和BAUDOUT*引脚直接相连,(4)输出线,OUT1*和OUT2*: 两个一般用途的输出信号 由调制解调器控制寄存器的D2和D3使其输出低电平有效信号 复位使其恢复为高,8250的寄存器及编程

10、方法,8250内部有10个可访问的寄存器,除数寄存器是16位的,占用两个连续的8位端口 内部寄存器用引脚A0A2来寻址;同时还要利用通信线路控制寄存器的最高位,即除数寄存器访问位DLAB的0和1两种状态,来区别公用1个端口地址所访问的两个寄存器,8250内部寄存器端口地址,(1) 发送保持寄存器THR (3F8H) :“写”,包含将要串行发送的并行数据,(1) 接收缓冲寄存器RBR (3F8H) :“读”,存放串行接收后转换成并行的数据,(2)波特率除数寄存器BRD(3F8H,3F9H),除数寄存器保存设定的分频系数 BRD基准时钟频率(16波特率),例:计算波特率为1200bps的波特率除数

11、。 当使用UART的内部时钟为1.8432MHz时(或由外部通过XTAL1引脚输入), BRD=1843200/(161200)=0060H,(3) 通信线路控制寄存器LCR(3FBH),指定串行异步通信的字符格式,例:通信线路控制寄存器(LCR)的编程,设置发送数据字长为8位,2位停止位,偶校验,其程序段为: MOV DX,3FBH ;LCR的地址 MOV AL, 00011111B ;LCR内容数 ;据格式参数 OUT DX,AL,(4)通信线路状态寄存器LSR(3FDH),提供串行异步通信的当前状态 供CPU读取和处理,(5)MODEM控制寄存器MCR(3FCH),设置8250与数据通信

12、设备之间 联络应答的输出信号,例:要使MCR的DTR,RTS有效,OUT1,OUT2以及LOOP无效,则编程如下: MOV DX,3FCH ;MCR的地址, MOV AL,00000011B ;MCR的控制字 OUT DX,AL,例:要对8250通过自发自收进行诊断,则程序为: MOV DX ,3FCH ;MCR的地址 MOV AL,00010011B ;LOOP位置“1” OUT DX,AL,(6)MODEM状态寄存器MSR(3FEH),反映4个控制输入信号的当前状态及其变化 MSR高4位中某位为1,说明相应输入信号当前为低有效,否则为高电平 MSR低4位中某位为1,则说明从上次CPU读取该

13、状态字后,相应输入信号已发生改变,从高变低或反之 MCR低4位任一位置1,均产生调制解调器状态中断,当CPU读取该寄存器或复位后,低4位被清零,(7)中断允许寄存器IER (3F9H),8250设计有2个中断寄存器和4级中断 4级中断的优先权,是按照串行通信过程中事件的紧迫程度安排的、是固定不变的 用户可利用中断允许或禁止进行控制 中断允许寄存器的低4位控制8250这4级中断是否被允许 某位为1,则对应的中断被允许 否则,被禁止,8. 中断识别IIR(3FAH),保存正在请求中断的优先权最高 的中断级别编码,3. 8250应用举例,写通信控制字D7=1,写除数低8位,写通信控制字,写除数高8位

14、,写MODEM控制字,写中断允许字,结束,8250的初始化过程,例:8250端口地址为3F8H3FFH,若8250以波特率9600bps,进行异步通信,每字符8位,1位停止位,采用奇校验,允许所有中断,试编程初始化。 解:MOV DX,3FBH ;8250线路控制寄存器地址送DX MOV AL,80H ;置DLAB=1,设置除数寄存器 OUT DX,AL MOV DX,3F8H ;除数寄存器地址送DX MOV AL,0CH ;波特率为9600bps OUT DX,AL ;送除数低8位 INC DX,MOV AL,00H ;送除数高8位 OUT DX,AL MOV DX,3FBH ;8250控制

15、寄存器地址送DX MOV AL,00001011B ;8位数据,奇校验,1位停止位 OUT DX,AL MOV DX,3F9H ;中断允许寄存器地址送DX MOV AL,0FH ;设置中断允许控制字,允许所有中断 OUT DX,AL MOV DX,3FCH ;设置MODEM控制字 MOV AL,0FH OUT DX,AL ;OUT1*,OUT2*均为0 ,8250查询方式发送,查询方式接收,例:两台PC机用RS-232C串口采用零MODEM方式实现近距离串行通信。数据传送波特率为9600bps,数据格式为8位/每字符,1位停止位,奇校验,双机8250端口地址均为2F8H2FFH。试编写发送和接

16、收程序,其功能如下: 通信双方执行程序后,均等待键盘输入字符 双方只要按下一个键,键值在本机当前光标处显示,而且传送到对方,在对方当前光标处显示出来 双方只要按下ESC键,则停止程序的执行,返回到DOS状态 通信双方如果出现通信错误,则屏幕显示“?”,并继续等待键入新字符或接收新字符,MOV DX,2FBH ;8250控制寄存器地址送DX MOV AL,80H ;置DLAB=1,设置除数寄存器 OUT DX,AL MOV DX,2F8H ;除数寄存器地址送DX MOV AL,0CH ;波特率为9600bps OUT DX,AL ;送除数低8位 INC DX MOV AL,00H ;送除数高8位

17、 OUT DX,AL,MOV DX,2FBH ;8250控制寄存器地址送DX MOV AL,0BH ;8位数据,奇校验,1位停止位 OUT DX,AL MOV DX,2FCH ;设置MODEM控制字 MOV AL,03H ;RTS,CTS有效 OUT DX,AL MOV DX,2F9H ;禁止中断 MOV AL,00H OUT DX,AL,FOREVER:MOV DX,2FDH IN AL,DX ;读线路状态寄存器 TEST AL,1EH JNZ ERROR ;有错,转错误处理程序 TEST AL,01H ;查接收缓冲器是否满 JNZ RECEIVE TEST AL,20H ;查发送缓冲器是否

18、空 JNZ FOREVER ;为空则发送字符 MOV AH,01H ;读键盘缓冲器内容 ;若有键按下,则ZF=0,且AL=字符码,INT 16H JZ FOREVER MOV AH,00H ;AL=字符ASCII码 INT 16H MOV DX,2F8H OUT DX,AL MOV AH,02H ;显示字符 MOV DL,AL INT 21H,CMP AL,27 ;若按下ESC键,则退出 JNZ NEXT MOV AH,4CH INC 21H NEXT:JMP FOREVER RECEIVE:MOV DX,2F8H ;接收数据 IN AL,DX AND AL,7FH ;检查是否ESC CMP

19、AL,27,JNZ DISP ;不是ESC,则显示 MOV AH,4CH ;是ESC,退出 INT 21H DISP: PUSH AX MOV BX,0 ;显示字符 MOV AH,14 INT 10H POP AX CMP AL,0DH ;处理回车,JNZ FOREVER MOV AL,0AH MOV BX,0 MOV AH,14 INT 10H JMP FOREVER ERROR:MOV DX,3F8H IN AL,DX MOV AL,?,MOV BX,0 MOV AH,14 INT 10H JMP FOREVER,8250中断方式通信 中断通信方式初始化 修改中断向量:按使用的端口COM1

20、或COM2,接管中断0CH或中断0BH(保存原中断向量,将新的中断向量替换上去,注意程序结束时恢复原中断向量) 确定通信协议:设置波特率及数据传输格式,设置中断允许寄存器相应位的允许或禁止 开放通信中断:对8259A中断控制器的屏蔽寄存器编程(OCW1),允许中断IRQ4或IRQ3,通信中断服务程序 首先读中断识别寄存器IIR,判断中断源,然后转向对应的处理子过程(程序)。 当中断识别寄存器D2D1=11时,表明接收出错中断,需要再读取线路状态寄存器,分析错误原因,再进行错误处理 可能出现多个中断源同时引发中断。因此,每处理完一种中断源后,应继续读取中断识别寄存器,检测D0是否为“0”,当D0

21、=0时,表明还有未决中断,应该继续分析中断源并进行中断处理。 中断程序返回的条件是中断识别寄存器的D0=1。,可编程串行通信接口芯片8251A,8251A基本性能: 全双工、双缓冲器 两种传送方式:同步和异步传送 同步传送:58位/字符,内部或外部同步,可自动插人同步字符 异步传送:58位/字符,时钟速率为通信波特率的1、16或64倍,可自动产生、检测和处理终止字符,可产生1、1.5或2位的停止位 波特率在同步方式时为064Kbps,异步方式时为019.2Kbps 出错检测:具有奇偶、溢出和帧错误等检测电路,8251A的内部结构:,(1) 8251A与CPU接口信号,1、片选信号 CS*为低电

22、平时,8251A被选中 2、数据信号 D7D0与系统的数据总线相连 3、读写控制信号 RD*为读信号 WR*为写信号 C/D*为控制/数据信号 RESET复位 CLK时钟,8251A的接口信号,(2)8251A与外部设备之间的连接信号,1.发送器 1)TxRDY(Transmitter Ready):发送器准备好,高电平有效 2)TxEMPTY(Transmitter Empty):发送器空,高电平有效 3)TxD:发送数据线 4)TxC:发送器输入时钟 2.接收器 1)RxD:接收数据线 2)RxRDY:接收器准备好 3)SYNDET:同步检测 4)RxC:接收器输入时钟 3.与调制器的接口

23、接号 1)DTR:数据终端准备好 2)RTS:请求发送 3)DSR:数据装置准备好 4)CTS:清除传送,8251A的编程,8251A的编程模型(P312, 图7-52) 8251A的读写操作,8251A的工作过程(P315,图7-56),(1)方式命令字,(2)操作命令字(用于控制发/收,数据传送方向),(3)状态寄存器格式,例:若要查询8251A接收器是否准备好,可用下列程序实现: MOV DX,3F9H ;状态口 NEXT: IN AL,DX ;读状态口 AND AL,02H ;查询D1=1? JZ NEXT ;未准备好,转NEXT等待 MOV DX,3F8H ;数据口地址送DX IN

24、AL,DX,8251A应用举例,1.异步方式下初始化程序,例:设8251A工作于异步方式,波特率系数为16,具有7位数据位,1 位停止位,偶校验,发送、接收允许,设端口地址为3F8H和3F9H,试编程初始化。 分析:根据题目要求,可以确定方式命令字为:01111010B,即7AH。而操作命令字为00110111B,即37H,初始化程序如下: MOV DX,3F9H MOV AL,7AH ;送方式命令字 OUT DX,AL MOV AL,37H ;设操作命令字 OUT DX,AL,2.同步方式下初始化程序,例:设8251A工作于同步方式,控制口的端口地址为3F9H,采用双同步字符,奇校验,7 位

25、数据位,试编程初始化。 分析:根据题目要求,可以确定方式命令字为00011000B,即18H。而操作命令字为10110111B即B7H。它使8251A对同步字符进行检索;同时使状态寄存器中3个出错标志复位;此外,使8251A的发送器启动,接收器也启动;控制字还通知8251A,CPU当前已经准备好进行数据传输。,MOV DX,3F9H ;命令端口地址给DX MOV AL,00011000B ;方式命令字 OUT DX,AL MOV AL,16H OUT DX,AL ;送第一个同步字符16H OUT DX,AL ;送第二个同步字符16H MOV AL,B7H ;设置操作命令字 OUT DX,AL,

26、3.两台微机之间进行双机串行通信的举例,例:通过8251A实现两台微机相互通信的硬件连接图如图8-25所示。利用两片8251A通过标准串行接口RS-232C实现两台8086微机之间的异步串行通信。设两台微机中8251A的命令端口地址为均3F9H,数据端口地址均为3F8H。,分析:设系统采用查询方式控制串行通信的过程。 初始化程序由两部分组成: 将一方定义为发送方,发送方CPU查询到TxRDY有效时,则CPU向8251A并行输出一个待发送的字节数据; 将对方定义为接收方,接收方CPU查询到RxRDY有效时,则从8251A输入一个已接收到的字节数据,直到全部数据传送完毕为止。,发送程序如下: ST

27、ART:MOV DX,3F9H MOV AL,7FH ;异步方式,8位数据, ;一位停止位,偶校验 OUT DX,AL ;波特率因子为64,允许 ;发送 MOV AL,11H ;操作命令字 OUT DX,AL MOV DI,1000H ;设置地址指针 MOV CX,40H ;设置计数器初值,L1: MOV DX,3F9H IN AL,DX AND AL,01H ;查询TxRDY是否有效 JZ L1 ;无效则等待 MOV DX,3F8H MOV AL,DI ;向8251A输出一个字节数据 OUT DX,AL INC DI ;修改地址指针 LOOP L1 ;未传送完,则继续下一个 HLT,接收程序

28、如下: BEGIN:MOV DX,3F9H MOV AL,7FH ;异步方式,8位数据,1位停止位 OUT DX,AL ;偶校验,波特率因子64,允许接收 MOV AL,14H ;操作命令字(置ER,RxE 为1) OUT DX,AL MOV SI, 2000H ;设置地址指针 MOV CX,40H ;设置计数器初值 L2:MOV DX,3F9H IN AL,DX ;读取状态字,TEST AL,38H ;查询接收器是否有错。 JNZ ERR ;有错则转错误处理 AND AL,02H ;无误则查状态位D1(RxRDY) JZ L2 ;接收未准备好则等待 MOV DX,3F8H IN AL,DX ;接受准备好,则接收1个字 ;节数据,MOV SI,AL INC SI ;修改接收数据区地址 LOOP L2 JMP L3 ERR:CALL ERR-OUT(略) L3:MOV AX,4C00H ;已接收完,返回DOS INT 21H,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1