《单片机串行通讯及其接口》由会员分享,可在线阅读,更多相关《单片机串行通讯及其接口(103页珍藏版)》请在金锄头文库上搜索。
1、第九章 串行通讯及其接口,计算机与外部设备或计算机与计算机之间的数据交换称为通信。,9.1概述,9.1.1 串行通信的基本概念,通信分为并行通信与串行通信两种基本方式。,9.1.1.1 并行通信和串行通信,串行通信:将数据分成1位1位的形式在一条传输线上逐个地传送。,并行通信:将数据的各位用多条数据线同时进行传送,外加地址线和通信控制线。,特点:,并行通信常用于集成电路芯片的内部、同一插件板上各部件之间、同一机箱内各插件板之间的信息交互,串行通信常用于设备之间的信息交互,串行通信1)交互数据信息和控制信息 2)有严格的格式(同步和异步) 3)电平需要转换,若接收端与发送端使用的不是同一时钟信号
2、(但必须同频率),则为异步通信。,1、异步通信,以字符为单位,一个字符一个字符地传送,并且每一个字符要有起始符和停止符作为开始和结束的标志。(一个字符就是一帧),9.1.1.2 同步通信和异步通信,根据数据传输方式的不同,可将串行通信分为同步通信和异步通信。,停止位后面是不定长的空闲位。数据的传送可以是不连续的。,每帧数据由4部分组成:起始位(占1位)、数据位(占位)、奇偶校验位(占位,也可以没有校验位)、停止位(占1或2位)。,起始位:1位。低电平(逻辑0)。标志一个字符传送的开始。,数据位: 58位。低位在前,高位在后。字符编码方式的不同,使得数据可以是58位。,奇偶校验位:1位。检查字符
3、传送的准确性。有三种方式:奇校验、偶校验和无校验,由用户决定。,停止位: 1位、1位半或者两位(高电平逻辑1)。标志一个字符传送的结束。,发送方:传送时先输出起始位“”作为联络信号,接下来的是数据位和奇偶校验位,停止位“1”表示一个字符的结束。其中,数据的低位在前,高位在后。字符之间允许有不定长度的空闲位。,接收方:传送开始后,接收设备不断检测传输线的电平状态,当收到一系列的“1”(空闲位或停止位)之后,检测到一个“”,说明起始位出现,就开始接收所规定的数据位和奇偶校验位以及停止位。,特点:所需传输线少,设备开销较小,在单片机控制系统中得到广泛的应用。 但每个字符要附加23位用于起止位,各帧之
4、间还有间隔,因此传输效率不高。,工作流程,目的:提高可靠性 方法:奇偶校验法、校验和法,校验方法,基本思想: 依据偶校验或奇校验原则,比较发送方和接收方的校验位是否相同。,奇偶校验法的缺点: 1. 每次需要传送检验位。 2. 不能监测偶数个错误。,2. 校验和方法,特点:校验和方法效率更高,可靠性更高。,2、同步通信,同步通信是一种数据连续传输的串行通信方式,通信时发送方把需要发送的多个字节数据和校验信息连接起来,组成数据块。 发送时,发送方只需在数据块前插入12个特殊的同步字符,然后按特定速率逐位输出(发送)数据块内的各位数据。 接收方在接收到特定的同步字符后,也按相同速率接收数据块内的各位
5、数据。,在这种通信方式中,数据块内的各位数据之间没有间隔,传输效率高; 发送、接收双方必须保持同步(使用同一时钟信号), 且数据块长度越大,对同步要求就越高。 同步通信设备复杂,成本高,一般只用在高速数字通信系统中。,9.1.1.3 串行通信方式,1)单工方式:这种方式只允许数据按一个固定的方向传输。,数据传输仅能从发送设备传输到接收设备。,2)半双工方式:数据可以从A发送到B,也可以由B发送到A。但A、B之间只有一根传输线,因此同一时刻只能作一个方向的传送。其传送方向由收发控制开关K切换。平时一般让A、B方都处于接收状态,以便能够随时响应对方的呼叫。,两个串行通信设备之间只有一条数据线,数据
6、传输可以沿两个方向,但需要分时进行。,3)全双工方式:数据可同时在两个方向上传送。,3种方式中, 1)全双工方式的效率最高; 2)半双工方式配置和编程相对灵活,传输成本较低 ; 3)串行通信设备常选用半双工方式。,9.1.1.5波特率(Baud rate),单位:bps(bit per second) 定义:每秒钟传送的二进制位数。 Baudrate:50 19200 57600 50,100,150,300,600,1200,2400, 4800,9600,19200,38400,57600,115200,如每秒传送240个字符,而每个字符格式包含10位这时的波特率为10位(bit)240个
7、/s = 2400 bit/s。 在异步串行通信中,接收方和发送方应使用相同的波特率,才能成功传送数据。,Baudrate9600bps 对应于一个数据位宽约为104us。,数据位宽(每一位代码的传输时间) Td 1 / Baudrate,计算机系统中常用串行、并行接口 并行: EPP:打印机 IDE:硬盘、电子盘 IEEE488(GPIB):智能化仪器 PCI,串行: 异步: RS232-C 384Kbps (15 to 20m) RS422、RS485 1.2Mbps (1200m) 同步: USB 1.1 12Mbps USB 2.0 480Mbps 1394 400Mbps SPI 2
8、6Mbps (Motorola) Microwire 10Mbps (National Semiconductor,国家半导体公司) I2C 400Kbps (Philips),RS232C 简介 信号线 25 芯,22 根信号线,常用9 根线 最简方式 3 根线 RXD:数据接收线 TXD:数据发送线 GND:地线 例如 PC 机上的串口COM1、COM2,电平制 采用负逻辑,对应电平如下: 1 : 3V 15V 0 : 3V 15V 常用驱动器 典型的线驱动器MC1488(反向驱动) 12V 供电 典型的线接收器 MC1489(反向驱动),常用驱动器,MAXIM202,常用驱动器,Sipe
9、x 220,常用驱动器,Max232,异步串口硬件连线方式,1. 4 种工作方式的特点是什么?分别应用 于什么场合? 2. 如何启动发送和接收过程? 3. 首先移出或发送的是D0,还是D7? (9AH10011010B) 4. 在接收数据过程中采用了什么措施提 供可靠性? 5. TI 标志和RI 标志何时会自动置1? 6. 哪些情况下传送的数据会丢失?,全双工的异步通讯串行口,具有UART的全部功能,能同时进行数据的发送和接收 4种工作方式 ,波特率由片内定时器/计数器控制。 每发送或接收一帧数据,均可发出中断请求。 除用于串行通讯,还可用来扩展并行I/O口,或作为串并转换等。,9.2 MCS
10、-51的串行口,MCS-51的串行口主要由两个独立的串行数据缓冲寄存器SBUF(一个发送缓冲寄存器,一个接收缓冲寄存器),发送控制器、接收控制器、输入移位寄存器及若干控制门电路组成。基本结构如图所示。,9.2.1 串行口的组成,P3.0是串行数据接收端RXD,P3.1是串行数据发送端TXD。 串行接口的结构由串行接口控制电路、发送电路和接收电路3部分组成。 发送电路由发送缓冲器(SBUF)、发送控制电路组成,用于串行接口的发送。 接收电路由接收缓冲器(SBUF)、接收控制电路组成,用于串行接口的接收。 两个数据缓冲器(SBUF)在物理上相互独立,在逻辑上却占用同一字节地址99H。,MCS-51
11、可以通过特殊功能缓冲器SBUF对串行接收或串行发送寄存器进行访问,两个缓冲器共用一个地址99H,由指令操作决定访问哪一个缓冲器。 执行写时访问串行发送缓冲器,读时访问接收缓冲器。发送缓冲器只能写入,不能读出;接收缓冲器只能读出,不能写入。 接收器具有双缓冲结构,即在从接收缓冲器中读出前一个已收到的字节之前,便能接收第二个字节,如果第二个字节已经接收完毕,第一个字节还没有读出,则将丢失其中一个字节,编程时应引起注意。 对于发送器,因为数据是由CPU控制和发送的,所以不需要考虑。,单片机串行接口工作方式是通过初始化设置,将两个相应控制字分别写入串行控制寄存器SCON(98H)和电源控制寄存器PCO
12、N(87H)即可。 数据缓冲器(99H) 发送缓冲器:只管发送数据,CPU写入SBUF的时候 (MOV SBUF,A)即为发送; 接收缓冲器:只管接收数据,CPU读取SBUF的过程 (MOV A,SBUF)即为接收。,9.2.1.1控制状态寄存器SCON,MCS-51串行口工作方式的设定、接收与发送控制以及工作状态标志的设置都是通过对串行口控制寄存器SCON的编程确定的。 SCON为一SFR,其地址为98H,可位寻址,其各位的作用定义如下:,(1)SM0、SM1串行口4种工作方式的选择位 表 串行口的4种工作方式 SM0 SM1 方式 功 能 说 明 0 0 0 同步移位寄存器方式(用于扩展I
13、/O口) 0 1 1 8位异步收发,波特率可变(由定时器控制) 1 0 2 9位异步收发,波特率为fosc/64或fosc/32 1 1 3 9位异步收发,波特率可变(由定时器控制),当串行口以方式2或方式3接收时, 如果SM2=1,只有当接收到的第9位数据(RB8)为“1”时,才将接收到的前8位数据送入SBUF,并置“1” RI,产生中断请求;当接收到的第9位数据(RB8)为“0”时,则将接收到的前8位数据丢弃。 如果SM2=0,则不论第9位数据是“1”还是“0”,都将前8位数据送入SBUF中,并置“1” RI,产生中断请求。 方式1时,如果SM2=1,则只有收到停止位时才会激活RI,没有收
14、到有效的停止位时,RI清0。 方式0时,SM2必须为0。,(2)SM2 多机通信控制位 用于方式2或方式3中。,(3)REN允许串行接收位 由软件置“1”或清“0”。 REN=1 允许串行口接收数据。REN=0 禁止串行口接收数据。 (4)TB8发送的第9位数据 方式2和3时,TB8是要发送的第9位数据,可作为奇偶校验位使用,或在多机通信中可作为地址帧或数据帧的标志。 =1为地址帧, =0为数据帧 (5)RB8接收到的第9位数据 方式2和3时,RB8存放接收到的第9位数据,作为奇偶校验位或地址帧/数据帧的标志位。在方式1,如果SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。,(6)
15、TI发送中断标志位 方式0时,串行发送第8位数据结束时由硬件置“1”, 其它工作方式,串行口发送停止位的开始时置“1”。TI=1,表示一帧数据发送结束,可供软件查询,也可申请中断。CPU响应中断后, 向SBUF写入要发送的下一帧数据。TI必须由软件清0。 (7)RI接收中断标志位 方式0时,接收完第8位数据时,RI由硬件置1。 其它工作方式,串行接收到停止位时,该位置“1”。RI=1,表示一帧数据接收完毕,并申请中断, CPU从接收SBUF取走数据。该位状态也可软件查询。RI必须由软件清“0”。,SMOD:波特率选择位。 SMOD=1,波特率加倍。SMOD0,波特率不加倍。 例如:方式1的波特
16、率的计算公式为: 方式1波特率=(2SMOD/32)定时器T1的溢出率 也称SMOD位为波特率倍增位。,9.2.1.2 特殊功能寄存器PCON,字节地址为87H,没有位寻址功能,需要字节传送。,MCS-51单片机串行口共有4种工作方式,SM0、SM1是串行接口的工作方选择位,如表所示。,串行接口中的4种工作方式中,串行通信只使用方式1 、方式2、方式3。 方式0主要用于扩展并行输入输出口。,9.2.2 串行口的4种工作方式,9.2.2.1 方式0,方式0是把串行接口作为同步移位寄存器使用。其波特率是固定的,为fosc/12,即一个机器周期移位一次。 数据由RXD端输出或输入,同时由TXD端输出
17、同步移位脉冲信号。 移位数据的发送和接收以一个字符的8位为一组,不设起始位和停止位。 低位在前,高位在后。其格式为:,1方式0发送 当执行任何一条写SBUF的指令时,就启动了串行接口的发送过程(如MOV SBUF,A)。 内部的定时逻辑在SBUF写入数据之后,经过一个完整的机器周期,输出移位寄存器中输出位的内容送RXD引脚输出; 移位脉冲由TXD引脚输出,它使RXD引脚输出的数据移入外部移位寄存器。8位数据以fosc/12的固定波特率从RXD引脚串行输出。 当数据的最高位D7位移出后,停止发送数据和移位脉冲,就完成了1B的输出,并把中断标志(TI)置“1”。 如要再发送下一字节数据,必须用软件先将TI清“0”。,