《最新微机原理与接口技术课件10串口8251PPT课件》由会员分享,可在线阅读,更多相关《最新微机原理与接口技术课件10串口8251PPT课件(25页珍藏版)》请在金锄头文库上搜索。
1、微机原理与接口技术课件微机原理与接口技术课件1010串口、串口、82518251主要内容n串行通信的相关概念串行通信的相关概念; ;n82518251的组成和工作方式的组成和工作方式; ;n82518251的应用的应用; ;2起止式异步通信数据格式起止式异步通信数据格式11000010111000空闲位起始位数据位0低高校验位停止位应用:早期电传机每个字符总是以起始位开始(每个字符总是以起始位开始(“0”0”),以停止位(),以停止位(“1”1”)结)结束。束。字符之间没有时间间隔要求字符之间没有时间间隔要求字符后一位校验位(可没有)字符后一位校验位(可没有)2.特点:是一个字符一个字符传输特
2、点:是一个字符一个字符传输9 面向字符的同步通信格式面向字符的同步通信格式 1.1.功能:功能: 是一次传送若干个字符组成的数据块是一次传送若干个字符组成的数据块( (数据帧数据帧) ),并且,并且规定了规定了1010个特殊字符作为这个数据块的开头与结束标志以个特殊字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息。及整个传输过程的控制信息。2.2.数据格式(一帧)数据格式(一帧)SYNSYNSOH标题标题STX数据块数据块ETB/ETX块校验块校验103.3.特定字符的定义:特定字符的定义:SYNSYN:同步字符(同步字符(SynchronousSynchronous),表示一帧的
3、开始;),表示一帧的开始;SOHSOH:序起字符(序起字符(Start of HeaderStart of Header),表示标题的开始;),表示标题的开始;标题:标题:包括原地址,目的地址,路由指示等信息;包括原地址,目的地址,路由指示等信息;STXSTX:文始字符(文始字符(Start of TextStart of Text),表示正文开始。),表示正文开始。ETB/ETXETB/ETX:组终组终/ /文终字符(文终字符(End of TextEnd of Text) ETBETB(End of Transmission BlockEnd of Transmission Block)
4、特点:特点:一次传送是一个数据块,传输效率提高了;一次传送是一个数据块,传输效率提高了;采用了一些传输控制字,增加了通信控制能力和校验能力;采用了一些传输控制字,增加了通信控制能力和校验能力;11 8251A 8251A的基本性能的基本性能8251A8251A是通用同步异步接收是通用同步异步接收/ /发送器发送器USARTUSART同步传输:每个字符可设为58位,可内同步或外同步,内同步自动插入同步字符;传输速率可达64Kbps。异步传输:每个字符可设为58位,传输速率可达19.2Kbps,收发时钟速率可为传输波特率的1、16或64倍,可编程产生1、1.5或2位的停止位,能检测假起始位,自动检
5、测奇偶错、格式错和溢出错。完全双工,具有双缓冲的接收器和发送器。所有输入输出电平与TTL兼容。12 用用8251A8251A组成的串行接口组成的串行接口一、一、8251A8251A的内部逻辑与外部信号的内部逻辑与外部信号n功能:异步起止协议功能:异步起止协议 同步面向字符协议同步面向字符协议n组成组成:接收器、发送器、调制控制、读:接收器、发送器、调制控制、读/ /写控制、写控制、数据总线缓冲器数据总线缓冲器13数据总线数据总线缓冲器缓冲器读读/写写控制逻辑控制逻辑调制控制调制控制发送缓冲器发送缓冲器发送控制发送控制接收缓冲器接收缓冲器接收控制接收控制TXDTXRDYTXEMPTYTXCRXD
6、RXRDYSYNDET/BDRXCDTRDSRRTSCTSRESETCLKC/DRDWRCS 8251A内部结构内部结构148251A的引脚信号的引脚信号 151.发送器发送器TXRDYTXRDY(Transmitter ReadyTransmitter Ready):发送器准备好,高电平有效):发送器准备好,高电平有效TXETXE(Transmitter EmptyTransmitter Empty):发送器空,状态线,高有效):发送器空,状态线,高有效TXDTXD:发送数据线:发送数据线TXCTXC:发送器输入时钟:发送器输入时钟2.接收器接收器RXDRXD: 接收数据线接收数据线RXRD
7、YRXRDY: 接收器准备好接收器准备好SYNDET/BD SYNDET/BD :双功能引脚:双功能引脚TXCTXC: 接收器输入时钟接收器输入时钟16 8251的控制字与状态字的控制字与状态字 1. 1.工作方式字工作方式字 约定双方的通信方式,数据格式,传送速率约定双方的通信方式,数据格式,传送速率a.a.作用:对作用:对8251A8251A工作方式进行选择,是异步方式还是同步方式工作方式进行选择,是异步方式还是同步方式b.b.格式:格式:S1S0EPPENL1L0B1B0D7D6D5D4D3D2D1D0停止位停止位奇偶校验奇偶校验字符长度字符长度波特因子波特因子(同步)(同步) (异步)
8、(异步)0=内同步内同步 00=不用不用1=外同步外同步 01=1位位0=双同步双同步 10=1.5位位1=单同步单同步 11=2位位0=无校验无校验01=奇校验奇校验11=偶校验偶校验00=5位位01=6位位10=7位位11=8位位00=同步同步01=1 异步异步10=16 11=64 17 例例1 1:异步通信中,若帧数据格式为:字符长度:异步通信中,若帧数据格式为:字符长度8 8位,停止位位,停止位2 2位,奇校验,波特率因数是位,奇校验,波特率因数是1616,则工作字是:,则工作字是:11011110B=DEH11011110B=DEH 例例2 2:同步通信中,若帧数据格式为:字符长度
9、:同步通信中,若帧数据格式为:字符长度8 8位,双同步位,双同步字符,内同步方式,奇校验,则工作字是:字符,内同步方式,奇校验,则工作字是:00011100B=1CH00011100B=1CH。2.2.工作命令字工作命令字a.a.作用:是确定作用:是确定8251A8251A的实际操作,迫使的实际操作,迫使8251A8251A进行某种操作或进行某种操作或工作状态,以便接收或发送数据。工作状态,以便接收或发送数据。 8251的控制字与状态字的控制字与状态字18b.b.格式:格式:EHIRRTSERSBRKRXEDIRTXEND7D6D5D4D3D2D1D0进入搜索方式内部复位发送请求错误标志复位发
10、中止字符接收允许数据终端准备好发送允许D7=1有效D6=1有效D5=1有效D4=1复位ERD3=1,发中止字符(空号)=0,正常操作D2=1,允许接收=0,禁止接收D0=1,允许发送=0,禁止发送D1=1,已准备好=0,正常操作例例3 3:使使82518251内部复位,并且允许接收,内部复位,并且允许接收,又允许发送,则程序段为:又允许发送,则程序段为:1901000000B 01000000B ;置;置D6=1D6=1,使内部复位,使内部复位00000101B 00000101B ;置;置D0=1D0=1,D2=1D2=1,允许接收和发送,允许接收和发送 3.3.状态字状态字a.a.作用:作
11、用:8251A8251A执行命令进行数据传送后的状态字存放在状态寄执行命令进行数据传送后的状态字存放在状态寄存器中,存器中,CPUCPU通过读出状态字进行分析和判断,以决定下一步的通过读出状态字进行分析和判断,以决定下一步的操作。操作。b.b.格式:格式:DSRSYNDETTEOEPETXERXRDY TXRDYD7D6D5D4D3D2D1D0数传机数传机就绪就绪同步同步检出检出格格式式错错溢溢出出错错奇奇偶偶错错发送器发送器空空接收接收准备好准备好发送发送准备好准备好 8251的控制字与状态字的控制字与状态字20 8251A的方式字和命令的使用(1 1)方式字:)方式字: 约定双方通信的方式
12、,数据格式,传送速率等参数。约定双方通信的方式,数据格式,传送速率等参数。 命令字:规定是发送数据,还是接收数据。命令字:规定是发送数据,还是接收数据。 状态字:何时发状态字:何时发/ /收、取决于状态字。收、取决于状态字。 21 8251A8251A的初始化编程的初始化编程 n异步方式下的初始化异步方式下的初始化 8251A8251A的初始化总是从设置方式指令开始,命令指令不能放的初始化总是从设置方式指令开始,命令指令不能放在方式指令之前。而方式指令必须紧跟在复位之后。如果在在方式指令之前。而方式指令必须紧跟在复位之后。如果在使用过程中改变使用过程中改变8251A8251A的工作方式,也必须
13、先用命令指令的的工作方式,也必须先用命令指令的D6D6l l使使825lA825lA复位。复位。n同步方式下的初始化同步方式下的初始化 初始化的流程是:程序往此端口输出的依次为方式字、同步初始化的流程是:程序往此端口输出的依次为方式字、同步字符和控制字。字符和控制字。22发送方程序发送方程序1 1:Outportb(0x3f9,00);Outportb(0x3f9,00);/8251/8251空操作空操作Outportb(0x3f9,0x40);Outportb(0x3f9,0x40); /8251 /8251软件复位软件复位Outportb(0x3f9, 0xcf); /8251Outpor
14、tb(0x3f9, 0xcf); /8251方式字方式字Outportb(0x3f9, 0x37); /Outportb(0x3f9, 0x37); /工作命令字工作命令字: :置位置位RTSERRxEDTRTxENRTSERRxEDTRTxEN23发送方程序发送方程序2 2:While(id=data_num)While(id=data_num)dodostatus=inportb(0x3f9);/status=inportb(0x3f9);/读状态字读状态字status=status&0x01; /status=status&0x01; /发送准备好?发送准备好? while(status=0);while(status=0); outportb(0x3f8,DATAid); outportb(0x3f8,DATAid); id+; id+; 24