串行通信和可编程接口芯片8251A.ppt
第十章 串行通信和可编程接口芯片8251A,10-1 串行通信的基本概念,通信:计算机与外部的信息交换。,一、数据传送的方向,1.单工,2.半双工,3.全双工,二、串行通信的两种基本工作方式,1.异步方式,数据传输效率相对较低!,2.同步方式,注意:接收发送双方时钟必须同步!,三、串行传输速率(波特率),波特率:每秒所传送数据的位数。单位为波特(即比特/秒:bps),例如一个串行字符由1个起始位、7个数据位、1个奇偶校验位和1个停止位这10位构成,每秒传送120个这样字符,则数据传送的波特率为:10位/字符120字符/秒1200bps,传送1位数据需要多长时间?,波特率因子:在异步通信方式进行通信时,发送端需要用时钟来决定每1位对应的时间长度,接收端也需要用一个时钟来测定每1位的时间长度,前一个时钟叫发送时钟,后一个时钟叫接收时钟。这两个时钟的频率可以是波特率的数倍,一般取16倍、32倍或64倍。这个倍数就称为波特率因子。,四、异步串行收发器UART,串行接口的基本结构主要是异步接收/发送器(UART),它不仅包括并行数据和串行数据之间的相互转换,还有检测串行通信在传送过程中可能发生错误的逻辑部件。通用的硬件UART的电路如下图所示。,五、调制解调器(MODEM),能将数字信号转换成音频信号和能将音频信号转换成数字信号的器件称为调制解调器。,调制的主要形式有幅度调制、频率键移FSK、相位键移PSK和多路载波几种。,10-2 可编程串行通信接口芯片8251A,主要基本性能:1.可用于同步和异步传送2.波特率,DC19.2K(异步);DC64K(同步)。3.完全双工,与8080/8085CPU完全兼容。,一、8251A的内部结构和外部引脚,1.数据总线缓冲器,用作8251A与系统数据总线之间的接口,内部包含3个三态、双向、8位缓冲器,它们是状态缓冲器、接收数据缓冲器和发送数据/命令缓冲器。,2.接收缓冲器和接收控制电路,接收数据的速率取决于接收端 时钟频率。在异步方式下,它可以是波特率的1、16或64倍。(即波特率因子是1、16或64)。,在异步方式下,若波特率因子为16,则8251A对数据的采样过程如下图所示。,内同步:8251A自身先检测一个或两个字节数据与同步字符寄存器中的内容进行比较,若一样,则表示达到同步,从8251A的SYNDET引脚输出一个高电平。,外同步:由外部电路来检测同步字符,若检测到同步字符,就输入一个高电平到8251A的SYNDET引脚,通知8251A。,在同步方式下:内同步和外同步。,3.发送缓冲器和控制电路,并行数据通过发送缓冲器中的移位寄存器转换成串行数据,经TXD引脚发出。,异步方式:按起始位、数据位、奇偶校验位和停止位顺序发送,发送速率取决于引脚 上的时钟频率,它可以是波特率的1倍、16倍或64倍。,同步方式:先发送1个或2个同步字符,然后再发送数据。在同步发送时,字符之间不允许存在空隙!,4.读/写控制电路,用来接收CPU的控制信号和控制命令字,决定8251A的工作状态以及向内部部件发出控制信号。,5.8251A与CPU及外设的连接,数据端口地址:E0H控制端口地址:E2H,二、8251A的编程,对8251A的编程主要包括:写入方式字:用来确定8251A的工作方式,如同步或异步方式、波特率、字符长度及是否需要奇偶校验等。,写入命令字:用来控制允许或禁止8251A收发数据,启动搜索同步字符,迫使8251A内部复位等。,读入状态字:了解8251A的工作状态。,1.方式字格式,2.命令字格式,3.状态字格式,TxRDY是发送器准备好状态位,它与引脚信号有些区别。,4.8251A的编程流程图,三、8251A初始化编程举例,1.异步方式初始化程序,软件复位:连续3次向8251A控制端口写入00H数据,然后再写入1次数据40H。,写恢复时间:16个Tclk。(写入数据字符可以不考虑),例如要求8251A工作于异步方式,波特率因子为16,7个数据位,1个停止位,偶校验,控制字端口为E2H,写恢复时间程序为REVTIME,则对8251A的初始化程序为:,MOVAL,00H;软件复位OUT0E2H,ALREVTIMEOUT0E2H,ALREVTIMEOUT0E2H,ALREVTIMEMOVAL,40HOUT0E2H,ALREVTIMEMOVAL,01111010B;写入方式字OUT0E2H,ALREVTIMEMOVAL,00010101B;写入命令字OUT0E2H,AL,2.同步方式初始化程序,流程:软件复位写入方式字写入同步字 符写入命令字,例如要求8251A工作于同步方式,双同步字符,两个同步字符都为16H,7个数据位,奇校验,控制字端口为E2H,写恢复时间程序为REVTIME,则对8251A写入软件复位以后的初始化程序为:,;软件复位MOVAL,00011000B;写入方式字OUT0E2H,ALREVTIMEMOVAL,16H;写入同步字符OUT0E2H,ALREVTIMEOUT0E2H,ALREVTIMEMOVAL,10010101B;写入命令字OUT0E2H,AL,