《第10章串行通信接口.ppt》由会员分享,可在线阅读,更多相关《第10章串行通信接口.ppt(49页珍藏版)》请在三一文库上搜索。
1、第10章 串行通信接口,10.1串行通信总线 10.2串行通信总线标准 10.3通用异步接收发送器INS8250 10.4可编程串行通信接口8251A,10.1串行通信总线,10.1.1串行通信的基本概念 在串行通信时,收发双方要解决的问题。 (1)双方约定以何种速率进行数据的发送和接收(波特率)。(2)约定采用何种数据格式(帧格式),如果包含控制信息那它的定义又是什么。 (3)接收方如何得知一批数据的开始和结束(帧同步)。 (4)接收方如何从位流中正确地采样到位数据(位同步)。 (5)接收方如何判断收到数据的正确性(数据校验)。 (6)收发出错时如何处理(出错处理)。 人们根据同步方式的不同
2、,将串行通信分为两类,即异步通信和同步通信。,10.1串行通信总线,10.1.1串行通信的基本概念 1异步通信 异步通信以字符为单位进行传输,其通信协议是起止式异步通信协议,其传输的字符格式如图10-1所示。 异步通信的传输速度为509600波特之间,常采用的波特率为110、300、600、1200、1800、2400、3600、4800、7200和9600,较高时也可取19200波特。,10.1串行通信总线,10.1.1串行通信的基本概念 2同步通信 同步通信以一个数据块为传输单位,每个数据块附加1个或2个同步字符,最后以校验字符结束,传输格式如图10-2所示。 同步通信协议有多种,现在最常
3、用的是面向比特的高级数据链路控制协议HDLC(High-Level Data Link Control)。IBM系列微机中常用的同步数据链路控制协议SDLC(Synchronous Data Link Control)则是HDLC的子集。,10.1串行通信总线,10.1.1串行通信的基本概念 3传输制式 串行通信通常采用全双工或半双工传输制式,较少采用单工制式。3种传输制式如图10-3所示。,10.1串行通信总线,10.1.2调制解调器 1调制和解调 长距离通信时,常需要利用电话线路,它的频带则只有300Hz3400Hz。为了通过电话线路传输数字信号,必须先把数字信号转换为适合在电话线路上传送
4、的模拟信号,这就是调制;经过电话线路传输后,在接收端再将模拟信号转换为数字信号,这就是解调。 调制方法 : 移频键控(FSK) 移相键控PSK 振幅键控(ASK),10.1串行通信总线,10.1.2调制解调器 2Modem的基本部件 调制器/解调器 缓冲电路 载波检测器 振铃检测器 拨号音检测器,10.2 串行通信总线标准,10.2.1 RS232C总线 1RS-232C信号定义的说明 RS-232C的25个插脚仅定义22个。在微机通信中,通常使用的RS-232C接口信号只有9根引脚(如表10-2)。,10.2 串行通信总线标准,10.2.1 RS232C总线 2RS-232C总线的电气规范,
5、10.2 串行通信总线标准,10.2.1 RS232C总线 3RS-232C标准与TTL标准之间的转换 常用于将TTL电平转换为RS-232C电平的芯片,除MC1488外还有75188,75150等;用于将RS-232C电平转换为TTL电平,除MC1489外,还有75189,75154等。,10.2 串行通信总线标准,10.2.1 RS232C总线 4RS-232C的应用 (1)使用MODEM连接,10.2 串行通信总线标准,10.2.1 RS232C总线 4RS-232C的应用 (2)直接连接,10.2 串行通信总线标准,10.2.1 RS232C总线 4RS-232C的应用 (3)三线连接
6、,10.2 串行通信总线标准,10.2.2 相关的其他总线 1RS-423A总线 全称是“不平衡型电压数字接口电路的电气特性”,该标准的主要优点是在接收端采用了差分输入。 采用普通双绞线,RS-232C传输距离不超过15米,RS-423A线路可以在130m用100K的波特率可靠通信。在1200m内,可用1200波特率进行通信。,10.2 串行通信总线标准,10.2.2 相关的其他总线 2RS-422A总线 也称为“平衡型电压数字接口电路的电气特性”,采用平衡输出的发送器和差分输入的接收器。 采用普通双绞线时,RS-422A可在1200m范围内以38400的波特率进行通信。在短距离(200m),
7、RS-422A的线路可以轻易地达到200K以上的波特率。,10.2 串行通信总线标准,10.2.2 相关的其他总线 3RS-485总线 RS-485适用于收发双方共用一对线进行通信,也适用于多个点之间共用一对线路进行总线方式联网,通信只能是半双工的。 100Kbps波特率可传送达1200米;9600bps时可传送15千米;10Mbps时则只能传送15米。,10.3通用异步接收发送器INS8250,PC系列微机异步通信适配器是微机与外界进行异步通信的接口,其核心是UART。 常见的UART主要有INS8250、PC16450和PC16550。此外,还有带更大缓冲的UART,称为PC16650和P
8、C16750。 INS8250主要功能: 支持起止式异步串行通信协议; 具有独立的收、发时钟,波特率系数为16; 接收、发送双缓冲; 可控MODEM; 支持中断工作方式(多中断源); 可编程。,10.3通用异步接收发送器INS8250,10.3.1 8250内部结构,10.3通用异步接收发送器INS8250,10.3.1 8250内部结构 为了使传递过程更可靠,8250在接收端设立了3种出错标志。 (1)奇偶错误。 (2)帧错误。 (3)溢出错误。,10.3通用异步接收发送器INS8250,10.3.2 8250的引脚 1、并行数据I/O及其控制线(CPU侧) D7D0;CS0,CS1和CS2
9、;ADS;DISTR和DISTR;DOSTR和DOSTR;A0,A1和A2;CSOUT;DDIS。 2、串行数据I/O线(接口侧) SOUT;SIN;XTAL1;XTAL2;BAUDOUT;RCLK。 3、和MODEM的握手信号线(接口侧) DSR;DTR;RI;RLSD;RTS;CTS。 4、中断请求、复位输入及其他信号线(CPU侧) INTPRT;MR;OUT1和OUT2。,10.3通用异步接收发送器INS8250,10.3.3 8250的寄存器,10.3通用异步接收发送器INS8250,10.3.3 8250的寄存器 (1)接收缓冲寄存器RBR。(A2A1A0=000)存放串行接收后转换
10、成并行的数据。 (2)发送保持寄存器THR。(A2A1A0=000) 包含将要串行发送的并行数据。 (3)除数寄存器。 (DLAB=1,A2A1A0=000(低)或001(高))保存设定的分频系数。该寄存器是16位的,必须在初始化期间分两次写入: 8250发送或接收串行数据时,所使用的时钟信号频率是传送波特率的16倍, 分频系数=基准时钟频率(16波特率),10.3通用异步接收发送器INS8250,10.3.3 8250的寄存器 (4)通信线路控制寄存器LCR。(A2A1A0=011)通信线路控制寄存器指定串行通信的字符格式 。,10.3通用异步接收发送器INS8250,10.3.3 8250
11、的寄存器 (5)通信线路状态寄存器LSR。(A2A1A0=101)通信线路状态寄存器提供串行通信的状态,供CPU读取和处理。LSR还可以写入(除D6位),人为地设置某些状态,用于系统自检。 在16550中,D7为1,表明FIFO中接收数据错误。,10.3通用异步接收发送器INS8250,10.3.3 8250的寄存器 (6)调制解调器控制寄存器MCR。(A2A1A0=100)调制解调器控制寄存器用来设置8250与通信设备(如调制解调器)之间联络应答的输出信号 。 当置OUT2=1时,INS8250的INTPRT信号(向量中断)才可能有效,否则,中断处理只能通过查询方式进行。 当置LOOP=1时
12、,INS8250的RBR与THR直通。(自测),10.3通用异步接收发送器INS8250,10.3.3 8250的寄存器 (7)调制解调器状态寄存器MSR。 (A2A1A0=110)反映调制解调器4个控制输入信号的当前状态和其变化信息 。,10.3通用异步接收发送器INS8250,10.3.3 8250的寄存器 (8)中断允许寄存器IER 。(A2A1A0=001)低4位控制82504级中断是否被允许。 这4级中断按优先权从高到低排列的顺序为:接收线路状态中断(包括奇偶错、溢出错、帧错和中止字符),接收器数据准备好中断、发送保持寄存器空中断和调制解调器状态中断(包括清除发送状态改变、数据终端准
13、备好状态改变、振铃接通变成断开和接收线路信号检测状态改变)。,10.3通用异步接收发送器INS8250,10.3.3 8250的寄存器 (9)中断识别寄存器IIR。(A2A1A0=010)只读保持正在请求中断的优先级最高的中断级别编码,在这个特定的中断请求由CPU进行服务之前,不接受其他的中断请求。 IP=0时,ID2、ID1值为当前最高优先级中断类型。 每次IN操作后,当前中断已处理中,ID2、ID1值变为除当前中断外的最高优先级中断类型,等待处理。要处理中断,必须通过循环语句处理已产生的所有中断(直到IP=1为止)。,常用UART比较:,10.3通用异步接收发送器INS8250,10.3.
14、4 8250在IBM PC中的应用 1异步通信适配器的接口电路,10.3通用异步接收发送器INS8250,10.3.4 8250在IBM PC中的应用 2异步通信适配器的编程应用 初始化:,1)设置波特率 置DLAB=1,写线路控制寄存器LCR(端口3); 设置波特率,写除数寄存器DL(端口0和端口1)。,2)设置通信数据格式 置DLAB=0,写线路控制寄存器LCR(端口3)。,3)设置MODEM控制字(工作方式) 写MODEM控制寄存器MCR(端口4)。,4)设置中断允许控制字(屏蔽位) 写中断允许寄存器IER(端口1)。,10.3通用异步接收发送器INS8250,10.3.4 8250在I
15、BM PC中的应用 2异步通信适配器的编程应用,mov dx,3fbh ;线路控制寄存器地址 mov al,80h out dx,al ;DLAB=1 mov dx,3f8h ;低位除数寄存器 mov al,0ch ;9600波特率的除数低8位 out dx,al mov al,00 inc dx ;高位除数寄存器 out dx,al,mov al, 00011011b ;偶校验、1位停止位、8位数据位 mov dx,3fbh ;线路控制寄存器地址 out dx,al mov al,03h mov dx,3fch ;MODEM控制寄存器地址 out dx,al mov al,0 ;禁止中断 m
16、ov dx,3f9h ;中断允许寄存器地址 out dx,al,10.3通用异步接收发送器INS8250,10.3.4 8250在IBM PC中的应用 38250编程,查询方式发送,10.3通用异步接收发送器INS8250,10.3.4 8250在IBM PC中的应用 38250编程,查询方式接收,10.3通用异步接收发送器INS8250,10.3.4 8250在IBM PC中的应用 38250编程 中断方式通信,1)中断通信方式初始化,修改中断向量:按使用的端口COM1或COM2,接管中断0CH或中断0BH(保存原中断向量,将新的中断向量替换上去,注意程序结束时恢复原中断向量)。,确定通信协
17、议:设置波特率及数据传输格式。 确定INS8250操作方式:设置中断允许寄存器相应位的允许或禁止,并允许向量中断模式(置MCR的D3=1)或查询中断模式(置MCR的D3=0) 。,开放通信中断:对8259A中断控制器的屏蔽寄存器编程(OCW1),允许中断IRQ4或IRQ3。,10.3通用异步接收发送器INS8250,10.3.4 8250在IBM PC中的应用 38250编程 中断方式通信,2)通信中断服务程序,首先读中断识别寄存器IIR,判断中断源,然后转向对应的处理子过程(程序)。判断中断源应该按照中断优先级别次序进行。 当中断识别寄存器D2D1=11时,表明接收出错中断,需要再读取线路状
18、态寄存器,分析错误原因,再进行错误处理。,可能出现多个中断源同时引发中断。因此,每处理完一种中断源后,应继续读取中断识别寄存器,检测D0是否为“0”,当D0=0时,表明还有未决中断,应该继续分析中断源并进行中断处理。 中断程序返回的条件是中断识别寄存器的D0=1。,10.4可编程串行接口8251A,可用于同步和异步传送。 同步传送:58bit字符,可实现外同步或内同步,自动插入同步字符。 异步传送:58bit字符,时钟速率为通信波特率的1、16或64倍。 可产生中止字符:可产生1、1.5或2位的停止位。可检查启动位,自动检测和处理中止字符。 波特率:DC19.2k(异步);DC64k(同步)。
19、 完全双工:双缓冲器发送和接收器。 误差检测:具有奇偶、溢出和帧错误检测电路。,10.4可编程串行接口8251A,10.4.1 8251A的内部结构,10.4可编程串行接口8251A,10.4.2 8251A的引脚 1.发送器 1)TXRDY(Transmitter Ready):发送器准备好,高电平有效 2)TXE(Transmitter Empty):发送器空,状态线,高有效 3)TXD:发送数据线 4)TXC:发送器输入时钟 2.接收器 1)RXD:接收数据线 2)RXRDY:接收器准备好 3)SYNDET:同步检测 4)RXC:接收器输入时钟 3.与调制器的接口接号 1)DTR:数据终
20、端准备好 2)RTS:请法发送 3)DSR:数据装置准备好 4)CTS:清除传送,10.4可编程串行接口8251A,10.4.3 8251A的控制字及初始化方法 8251A是一个可编程的多功能通信接口。所以在具体使用时必须对它进行初始化编程,确定它的具体工作方式。,10.4可编程串行接口8251A,10.4.3 8251A的控制字及初始化方法 1方式选择控制字,10.4可编程串行接口8251A,10.4.3 8251A的控制字及初始化方法 2命令控制字,10.4可编程串行接口8251A,10.4.3 8251A的控制字及初始化方法 3状态字 在发送前和发送后状态位TxRDY和输出引脚TxRDY
21、的状态可能不一致,但在发送过程中两者总是一致的。前者可供CPU查询,后者可作为向CPU发出的中断请求信号。,10.4可编程串行接口8251A,10.4.4 8251A的初始化编程 特别要注意,825lA的方式寄存器、同步字符寄存器、命令寄存器均使用相同的端口地址,即在=0且=1的端口地址。 由于825lA的内部操作需要一定的时间,各种控制字发送后,需要设置几条空操作命令,保证内部操作完成后再设置其他指令。,10.4可编程串行接口8251A,10.4.4 8251A的初始化编程 对8251A异步通信初始化程序段如下: MOV AL,0FAH ;设置方式字 OUT 52H,AL MOV AL,37
22、H ;设置命令字,启动发送器、接收器 OUT 52H,AL 对825lA同步通信初始化程序段如下: MOV AL,38H ;设置方式字 OUT 52H,AL MOV AL,16H ;2个同步字符均为16H OUT 52H,AL OUT 52H,AL MOV AL,97H ;设置命令字,启动发送器、接收器 OUT 52H,AL,10.4可编程串行接口8251A,10.4.5 8251A的应用示例,10.4可编程串行接口8251A,10.4.5 8251A的应用示例 在实际应用中,对8251A设置方式字之前,通常采用先送3个0,再送40H的方法使8251A确保复位,这是8251A的编程约定。此例要
23、求8251A的波特率为2400,波特率因子必须选16。下面给出8251A的初始化程序段: XOR AL, AL OUT 0DAH, AL CALL DELAY ;调延时子程序 OUT 0DAH, AL CALL DELAY OUT 0DAH, AL CALL DELAY MOV AL, 40H ;设置复位命令字 OUT 0DAH, AL CALL DELAY,10.4可编程串行接口8251A,10.4.5 8251A的应用示例 MOV AL, 4EH ;设置方式字,异步、8位数据、波特率因子16等 OUT 0DAH,AL CALL DELAY MOV AL, 27H ;设置命令字,启动发送器、接收器 OUT 0DAH,AL 假定要向外输出的一个字符已放在AH寄存器中。若采用查询式输出,程序先对状态口进行测试,判断TxRDY状态位是否有效。若TxRDY为“1”,则说明当前数据输出缓冲器为空,CPU可以向8251A输出一个字符。程序段如下: NEXT: IN AL,0DAH TEST AL,01H JZ NEXT MOV AL,AH OUT 0D8H,AL,本章结束 谢谢,
链接地址:https://www.31doc.com/p-2546921.html