微机原理与接口技术课件10串口.ppt
1,第十讲 串口与8251,2,主要内容,串行通信的相关概念;8251的组成和工作方式;8251的应用;,3,串行通信与并行通信,并行通信和串行通信,4,串行通信的基本概念,串行通信:在单根导线上将二进制数一位一位顺序传输。每个时间单位仅传送一位信息;每个数据的各位依次传送。优点:传输线的数目少,成本低,传输距离远;可利用电话线进行信息传送。,5,串行数据传送方向,单 工:一条数据通路,数据单向传送;半双工:一条数据通路,分时复用全双工:两条数据通路,数据双向传送;,发送器,接收器,发送器/接收器,发送器/接收器,发送器/接收器,发送器/接收器,6,传输速率,本章首页,1.波特率:是指在串行通信中,每秒钟传送的二进制数据的数目,是衡量数据传输速度快慢的重要指标。单位:bit/s(位/秒);2.常用的标准波特率:110,300,1K,1.2K,2.4K,4.8K,9.6K,19.2K,56K,7,串行通信的数据格式,通信协议:通信双方的一种约定,包括数据格式,同步方式,传送步骤,纠错方式等内容。,8,同步通信和异步通信,同步通信:通信双方用统一时钟控制通信过程,信息传输组成数据包(数据帧)。每帧头尾是控制代码,中间是数据块,可有数百字节。不同的同步传输协议有不同的数据帧格式。异步通信:通信双方无统一时钟同步,传送的信息以一个字符数据为单位,开头与结尾均有特别的位码供接收方识别,信息格式双方事先约定。,9,起止式异步通信数据格式,每个字符总是以起始位开始(“0”),以停止位(“1”)结束。字符之间没有时间间隔要求字符后一位校验位(可没有),2.特点:是一个字符一个字符传输,10,面向字符的同步通信格式 1.功能:是一次传送若干个字符组成的数据块(数据帧),并且规定了10个特殊字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息。2.数据格式(一帧),11,3.特定字符的定义:SYN:同步字符(Synchronous),表示一帧的开始;SOH:序起字符(Start of Header),表示标题的开始;标题:包括原地址,目的地址,路由指示等信息;STX:文始字符(Start of Text),表示正文开始。ETB/ETX:组终/文终字符(End of Text)ETB(End of Transmission Block)特点:一次传送是一个数据块,传输效率提高了;采用了一些传输控制字,增加了通信控制能力和校验能力;,12,8251A的基本性能,8251A是通用同步异步接收/发送器USART同步传输:每个字符可设为58位,可内同步或外同步,内同步自动插入同步字符;传输速率可达64Kbps。异步传输:每个字符可设为58位,传输速率可达19.2Kbps,收发时钟速率可为传输波特率的1、16或64倍,可编程产生1、1.5或2位的停止位,能检测假起始位,自动检测奇偶错、格式错和溢出错。完全双工,具有双缓冲的接收器和发送器。所有输入输出电平与TTL兼容。,13,用8251A组成的串行接口,一、8251A的内部逻辑与外部信号,功能:异步起止协议 同步面向字符协议组成:接收器、发送器、调制控制、读/写控制、数据总线缓冲器,14,8251A内部结构,15,8251A的引脚信号,16,1.发送器TXRDY(Transmitter Ready):发送器准备好,高电平有效TXE(Transmitter Empty):发送器空,状态线,高有效TXD:发送数据线TXC:发送器输入时钟2.接收器RXD:接收数据线RXRDY:接收器准备好SYNDET/BD:双功能引脚TXC:接收器输入时钟,17,8251的控制字与状态字 1.工作方式字 约定双方的通信方式,数据格式,传送速率a.作用:对8251A工作方式进行选择,是异步方式还是同步方式b.格式:,18,例1:异步通信中,若帧数据格式为:字符长度8位,停止位2位,奇校验,波特率因数是16,则工作字是:11011110B=DEH 例2:同步通信中,若帧数据格式为:字符长度8位,双同步字符,内同步方式,奇校验,则工作字是:00011100B=1CH。2.工作命令字a.作用:是确定8251A的实际操作,迫使8251A进行某种操作或工作状态,以便接收或发送数据。,8251的控制字与状态字,19,b.格式:,EH,IR,RTS,ER,SBRK,RXE,DIR,TXEN,D7,D6,D5,D4,D3,D2,D1,D0,进入搜索方式,内部复位,发送请求,错误标志复位,发中止字符,接收允许,数据终端准备好,发送允许,D7=1 有效,D6=1 有效,D5=1 有效,D4=1 复位ER,D3=1,发中止字符(空号)=0,正常操作,D2=1,允许接收=0,禁止接收,D0=1,允许发送=0,禁止发送,D1=1,已准备好=0,正常操作,例3:使8251内部复位,并且允许接收,又允许发送,则程序段为:,20,01000000B;置D6=1,使内部复位00000101B;置D0=1,D2=1,允许接收和发送 3.状态字a.作用:8251A执行命令进行数据传送后的状态字存放在状态寄存器中,CPU通过读出状态字进行分析和判断,以决定下一步的操作。b.格式:,8251的控制字与状态字,21,8251A的方式字和命令的使用(1)方式字:约定双方通信的方式,数据格式,传送速率等参数。命令字:规定是发送数据,还是接收数据。状态字:何时发/收、取决于状态字。,22,8251A的初始化编程 异步方式下的初始化 8251A的初始化总是从设置方式指令开始,命令指令不能放在方式指令之前。而方式指令必须紧跟在复位之后。如果在使用过程中改变8251A的工作方式,也必须先用命令指令的D6l使825lA复位。同步方式下的初始化 初始化的流程是:程序往此端口输出的依次为方式字、同步字符和控制字。,23,发送方程序1:Outportb(0 x3f9,00);/8251空操作Outportb(0 x3f9,0 x40);/8251软件复位Outportb(0 x3f9,0 xcf);/8251方式字Outportb(0 x3f9,0 x37);/工作命令字:置位RTSERRxEDTRTxEN,24,发送方程序2:While(id=data_num)dostatus=inportb(0 x3f9);/读状态字status=status,