
通信原理第七章串行通信.ppt
90页7.1 串行通信的基本概念串行通信的基本概念•计算机与外界的信息交换称为通信计算机与外界的信息交换称为通信最基本的通信方法有最基本的通信方法有串串行通信行通信和和并行通信并行通信两种两种 一次同时传送多位数据的通信方法叫做一次同时传送多位数据的通信方法叫做并行通信并行通信特点:传输速度快特点:传输速度快,但在距离远、位数多时,通信线路复杂且但在距离远、位数多时,通信线路复杂且成本高并行通信靠并行接口来实现并行通信靠并行接口来实现数据一位接一位地顺序传送数据一位接一位地顺序传送的通信方法叫做的通信方法叫做串行通信串行通信特点:通信线路简单特点:通信线路简单,只要一对传输线就可实现通信只要一对传输线就可实现通信(如如线线),成本低,成本低,特别适用于远距离通信特别适用于远距离通信缺点缺点是传送速度慢是传送速度慢串行通信可通过串行接口来实现串行通信可通过串行接口来实现一般电脑都有两个外置的一般电脑都有两个外置的COM口,它们是串行接口口,它们是串行接口通信的两种基本方式(a) 并行通信; (b) 串行通信串行通信数据传输方式有三种:串行通信数据传输方式有三种:单工单工、、半双工半双工和和全双工全双工。
⑴⑴ 单工方式单工方式 信号信号(不包括联络信号不包括联络信号) 在信道中只能沿一个方向传送在信道中只能沿一个方向传送 ⑵⑵ 半双工方式半双工方式 通信的双方均具有发送和接收信息的能力通信的双方均具有发送和接收信息的能力,,信道也具有双信道也具有双向传输性能,向传输性能,但在同一时间,信息只能沿某一个方向传送但在同一时间,信息只能沿某一个方向传送半半双工方式大多双工方式大多采用双线制采用双线制 ⑶⑶ 全双工方式全双工方式 信号在信号在通信双方之间可沿两个方向同时传送,在同一时刻任通信双方之间可沿两个方向同时传送,在同一时刻任何一方既能发送又能接收信息何一方既能发送又能接收信息全双工串行通信需要两根线全双工串行通信需要两根线 51单片机有一个全双工串口,单片机有一个全双工串口,TXD是它的发送端,是它的发送端,RXD是它的接收端是它的接收端 在数据通信中,在数据通信中,要保证发送的信号在接收端能被正确地要保证发送的信号在接收端能被正确地接收,接收,必须解决收发之间的必须解决收发之间的同步问题同步问题 常用的常用的同步技术有两种:同步技术有两种: 同步传输同步传输也称同步字符同步方式也称同步字符同步方式 异步传输异步传输也称起止同步方式也称起止同步方式 它们对应就是它们对应就是同步通信同步通信和和异步通信异步通信方式。
方式 1) 同步通信方式同步通信方式 将一大批数据分成几个数据块将一大批数据分成几个数据块, 数据块之间用同步字符予以数据块之间用同步字符予以隔开隔开, 而块内传输的而块内传输的各位二进制码之间没有间隔各位二进制码之间没有间隔 由于数据块传递开始要用同步字符来指示,同时要求由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,由时钟来实现发送端与接收端之间的同步,发送与接收发送与接收时钟始终要保持严格同步,时钟始终要保持严格同步,故硬件较复杂故硬件较复杂 基本特征基本特征: 发送与接收时钟始终保持严格同步发送与接收时钟始终保持严格同步 2))异步通信方式异步通信方式 以字符为单位进行数据传输,每个字符都用起始位、停以字符为单位进行数据传输,每个字符都用起始位、停止位包装起来止位包装起来(起始位和停止位作为字符的开始和结束标志)(起始位和停止位作为字符的开始和结束标志),这样的一个字符信息又称一帧信息这样的一个字符信息又称一帧信息在字符间允许有长短在字符间允许有长短不一的间隙不一的间隙基本特征基本特征:以字符(以字符(帧)帧)为单位一个个地发送和接收,为单位一个个地发送和接收,数据在数据路上的传送不连续线路上的传送不连续。
在单片机中使用的串行通信都是异步方式在单片机中使用的串行通信都是异步方式 一个字符一个字符((帧)由帧)由起始位、数据位、奇偶校验位和停起始位、数据位、奇偶校验位和停止位止位4个部分组成个部分组成 起始位为起始位为0信号信号,占占1位位;紧接着是;紧接着是数据位数据位(可以是可以是5位、位、6位、位、7位或位或8位位),,传送时低位在先、高位在后传送时低位在先、高位在后;再后面为;再后面为1位位奇偶校验位奇偶校验位(可以不要可以不要), ;最后是;最后是停止位停止位,停止位为信号停止位为信号1,可可以是以是1位、位、1位半或位半或2位位 两帧信息间可以无间隔两帧信息间可以无间隔,也可有间隔也可有间隔,间隔用空闲位间隔用空闲位“1”来填充异步通信数据传送格式异步通信数据传送格式异步传送中,通信双方必须事先约定:异步传送中,通信双方必须事先约定: (1) 字符格式字符格式包括字符的编码形式、奇偶校验形式及字符的编码形式、奇偶校验形式及起始位和停止位的规定起始位和停止位的规定 (2) 波特率波特率(Baud rate) 波特率波特率是数据的传送速率是数据的传送速率,,即即每秒钟传送的二进制位每秒钟传送的二进制位数数,单位为:位,单位为:位/秒。
秒字符传送速率字符传送速率单位为:字符单位为:字符/秒 波特率波特率=一个字符的二进制编码位数一个字符的二进制编码位数×字符字符/秒秒异步通信异步通信要求发送端与接收端的波特率必须一致要求发送端与接收端的波特率必须一致 由于异步通信每帧都要加上由于异步通信每帧都要加上起始位、停止位,起始位、停止位,所以通所以通信速度比同步慢信速度比同步慢 串行通信常用的标准波特率在串行通信常用的标准波特率在RS-232C标准中已有标准中已有规定,如波特率规定,如波特率600、、1200、、2400、、4800、、9600、、19200等 一般异步通信波特率为一般异步通信波特率为110~~9600,而同步通信波特,而同步通信波特率在率在56 Kb以上 在选择通信波特率时在选择通信波特率时, 以满足数据传输要求为原以满足数据传输要求为原则,波特率越高,对发送、接收时钟信号频率的一致则,波特率越高,对发送、接收时钟信号频率的一致性要求就越高性要求就越高 每一位数据传送的时间为波特率的倒数每一位数据传送的时间为波特率的倒数串行通信常用波特率衡量通信串行通信常用波特率衡量通信(数据传送数据传送)的快慢的快慢。
例:采用串行异步通信方式传送字符例:采用串行异步通信方式传送字符‘5’ 的的ASCII码,码,规定为规定为7位数据位,位数据位,1位偶校验位,位偶校验位,1位停止位,无空闲位位停止位,无空闲位传送传送ASCII码字符码字符‘5’的波形图的波形图 起始位起始位校验位校验位001停止位停止位数据位数据位 单片机内部单片机内部配置的串行口主要靠硬件解决通信配置的串行口主要靠硬件解决通信问题,问题,51内部有一个内部有一个采用采用通用异步接收和发送器通用异步接收和发送器((UART )工作方式的)工作方式的全双工的异步串行通信接口全双工的异步串行通信接口,, 可同时发送和接收数据可同时发送和接收数据它有它有4种工作方式种工作方式,可供不可供不同场合使用同场合使用7.2 MCS-51单片机串行口的功能与结构单片机串行口的功能与结构 51单片机单片机串行口的串行口的波特率用软件设置,由片内波特率用软件设置,由片内的定时的定时/计数器产生计数器产生,其,其接收和发送既可采用查询接收和发送既可采用查询方式控制也可采用中断方式方式控制也可采用中断方式, 使用灵活使用灵活。
51的串行口除用于的串行口除用于数据通信数据通信外外,还可方便地还可方便地构成构成1个或多个并行输入个或多个并行输入/输出口输出口或作或作串并转换串并转换,用来驱动键盘与显示器等用来驱动键盘与显示器等7.2.1 51单片机串行口能实现的功能单片机串行口能实现的功能 51串行口有串行口有4种工作方式,种工作方式,SM0SM1工作方式工作方式功功 能能波波 特特 率率00方式方式0移移位位寄寄存存器器方方式式,,用用于于并并行行I/O扩展扩展fosc /1201方式方式18位通用异步接收器位通用异步接收器/发送器发送器可变可变10方式方式29位通用异步接收器位通用异步接收器/发送器发送器fosc /32或或 fosc /6411方式方式39位通用异步接收器位通用异步接收器/发送器发送器可变可变 方式方式2、方式、方式3的一帧信息由的一帧信息由11位组成,其中位组成,其中9位数位数据位,两方式的不同在于波特率的选择不同据位,两方式的不同在于波特率的选择不同方式方式2、、方式方式3主要用于多机通信,也可用于双机通信主要用于多机通信,也可用于双机通信。
其中其中,方式,方式0并不用于通信,而是通过外接移并不用于通信,而是通过外接移位寄存器芯片来实现位寄存器芯片来实现I/O口的扩展口的扩展利用这个功能,利用这个功能,可可实现扩展实现扩展2脚的串行脚的串行I/O到到8脚的并行脚的并行I/O口该方式又称作移位寄存器方式该方式又称作移位寄存器方式方式方式1、方式、方式2、方式、方式3都是异步通信方式都是异步通信方式 方式方式1的一帧信息由的一帧信息由10位组成,其中位组成,其中8位数据位位数据位方式方式1主要用于双机串行通信主要用于双机串行通信MCS-51单片机单片机串行口的工作原理:串行口的工作原理: 发送时发送时,,将将CPU送来的并行数据转换为一定送来的并行数据转换为一定格式的串行数据,然后从引脚格式的串行数据,然后从引脚TXD按规定的波特按规定的波特率一位一位地发送出去率一位一位地发送出去 接收时接收时,监测,监测引脚引脚RXD,一旦出现起始位,一旦出现起始位“0”,则开始接收外设送来的一定格式的串行,则开始接收外设送来的一定格式的串行数据,并将其转换为并行数据,等待数据,并将其转换为并行数据,等待CPU读入。
读入 串行口主要由串行口主要由发送数据缓冲器发送数据缓冲器、、发送控制器发送控制器、、输出控制门输出控制门、、接收数据缓冲器接收数据缓冲器、、接收控制器接收控制器、、输入移位寄存器输入移位寄存器等组成 7.2.2 51单片机串行口的结构单片机串行口的结构一、串行口结构一、串行口结构波特率发生器用定波特率发生器用定时时/计数器计数器T1或或T2构成SCONCPU写入数据写入数据CPU读出数据读出数据发送发送接收接收接收缓冲器之前的移位接收缓冲器之前的移位寄存器,构成了串行寄存器,构成了串行接接收的双缓冲结构,收的双缓冲结构,可以可以避免在数据接收过程中避免在数据接收过程中出现帧重叠错误,出现帧重叠错误,二、与串行口有关的特殊功能寄存器二、与串行口有关的特殊功能寄存器 1. 数据缓冲器数据缓冲器SBUF(地址(地址99H)) 串串行行口口缓缓冲冲器器SBUF在在物物理理上上对对应应着着两两个个独独立立的的寄寄存存器器::发发送送寄寄存存器器、、接接收收寄寄存存器器发发送送缓缓冲冲器器只只可可写写; 接接收收缓缓冲冲器器只可读,只可读,所以,两者虽共用一个地址,但不会有误操作。
所以,两者虽共用一个地址,但不会有误操作 51 没有专门的启动发送的指令,没有专门的启动发送的指令,CPU将数据写入将数据写入 SBUF时就开始发送,读取时就开始发送,读取SBUF就可获取串口接收的过程就可获取串口接收的过程 接收缓冲器之前的移位寄存器构成了串行接收缓冲器之前的移位寄存器构成了串行接收的双缓冲接收的双缓冲结构结构,, 可避免在接收下一帧数据之前可避免在接收下一帧数据之前, CPU没能及时响应接没能及时响应接收器的中断把上一帧数据读走而产生两帧数据重叠的问题收器的中断把上一帧数据读走而产生两帧数据重叠的问题 2. 串行口控制寄存器串行口控制寄存器SCON SCON用用于于设设定定串串行行通通信信的的方方式式、、控控制制接接收收和和指指示示串串行行口的中断状态口的中断状态其各位功能如下其各位功能如下: SM0、、SM1: 用于定义串行口的工作方式用于定义串行口的工作方式SM2: 多机通信时的接收允许标志位多机通信时的接收允许标志位 在方式在方式2 和和 3 中中, 若若SM2 = 1,则则仅当接收到的第仅当接收到的第9位位((RB8)为)为1时,才将接收到的前时,才将接收到的前8位数据送入位数据送入SBUF中中,,并把并把RI置置1向向CPU申请中断;申请中断;若接收到的第若接收到的第9位数位数据位为据位为0,则把,则把RI置置0,并将接收到的数据丢弃。
并将接收到的数据丢弃 在方式在方式1中中, 若若SM2=1,,只有接收到有效的停止位,只有接收到有效的停止位,接收中断接收中断RI才置才置1在方式在方式 0 中中, SM2 必须是必须是 0 而而当当SM2==0时,则时,则不论接收到的笫不论接收到的笫9 9位数据位是位数据位是0 0 或或1 1 ,都将接收到的前,都将接收到的前8 8位数据装入位数据装入SBUFSBUF中,并申请中,并申请中断 REN——允许串行接收位允许串行接收位 在通信协议中,常规定在通信协议中,常规定TB8作为奇偶校验位在多机通作为奇偶校验位在多机通信中,信中,TB8=0用来表示数据帧;用来表示数据帧;TB8=1表示是地址帧表示是地址帧用软件置位/清除用软件置位/清除REN==1时时,,允许串行接收允许串行接收;;REN==0时,禁止串行接收时,禁止串行接收用软件置位/清除用软件置位/清除TB8——方式方式2和方式和方式3中要发送的第中要发送的第9位数据位数据RB8——方式方式2和方式和方式3中接收到的第中接收到的第9位数据位数据在方式在方式1中,该位是接收到的停止位方式中,该位是接收到的停止位。
方式0中不使用这一位中不使用这一位 TI——发送中断标志位发送中断标志位 方式方式 0中,中,TI在发送第在发送第 8位末尾置位;在其它方式时,在位末尾置位;在其它方式时,在发送停止位开始时设置发送停止位开始时设置注意:注意: TI由硬件置位,用软件清除由硬件置位,用软件清除 3. 电源控制寄存器电源控制寄存器PCON(地址为(地址为 87H,)) 特殊功能寄存器特殊功能寄存器PCON中中, 只有一位(最高位)只有一位(最高位)SMOD与串行口的工作有关与串行口的工作有关, 该位是串行口波特率系数的控制位该位是串行口波特率系数的控制位:SMOD=1 时时, 波特率加倍波特率加倍, 否则不加倍否则不加倍注意注意::PCON不可位寻址不可位寻址, 因此初始化时需要字节传送因此初始化时需要字节传送 RI——接收中断标志位接收中断标志位 方式方式 0中,在接收第中,在接收第 8位末尾置位,在其它方式下,在接位末尾置位,在其它方式下,在接收停止位中间设置收停止位中间设置 注意:注意:RI由硬件置位由硬件置位,用软件清除用软件清除TI、、RI均可共查询均可共查询。
系统复位后系统复位后,SCON中所有位被清中所有位被清0串口中断控制串口中断控制::中断允许位中断允许位ES中断入口中断入口::0023H7.3.1 方式方式 0 方式方式0为为同步移位寄存器方式同步移位寄存器方式, 其其波特率固定波特率固定为为fosc/12就是一个机器周期可以通过就是一个机器周期可以通过RXD发送或读入一位数据发送或读入一位数据 方式方式0接收/发送的是接收/发送的是8位数据位数据,,无起始位和停止位无起始位和停止位传输时低位在前帧格式如下:输时低位在前帧格式如下: …D0D1D2D3D4D5D6D7…·由由RXD((P3..0)输入或输出数据,)输入或输出数据,·由由TXD((P3..1)输出同步移位时钟,每个脉冲对应一个数)输出同步移位时钟,每个脉冲对应一个数据位 ·发送过程:数据写入发送过程:数据写入SBUF,启动发送启动发送,一帧发送结束一帧发送结束,使使TI=1 ·接收过程:当接收过程:当REN=1且且RI=0,启动接收启动接收,一帧接收完毕一帧接收完毕,使使RI=1 方式方式0工作时工作时,必须使必须使SM2位为位为“0”。
方式方式0应用应用——扩展单片机的并行扩展单片机的并行I/O口口 方式方式0时,串口本身在时,串口本身在发送状态相当于发送状态相当于“并入串出并入串出”的的移位寄存器移位寄存器,,接收状态相当于接收状态相当于“串入并出串入并出” 的移位寄存器的移位寄存器注意注意: CPU在响应接收中断后要用软件清除在响应接收中断后要用软件清除RI标志标志,否则无否则无法启动下一次接收法启动下一次接收 由于方式由于方式0不能自动插入和检出同步字符不能自动插入和检出同步字符,故故方式方式0不用不用于通信于通信,, 它的它的主要用途是主要用途是和外部同步移位寄存器配合为单和外部同步移位寄存器配合为单片机扩展并行片机扩展并行I/O口将串行口作为并行输出口使用时,可采用如下图所示的方法将串行口作为并行输出口使用时,可采用如下图所示的方法 若串行口要作为并行口进行输入输出若串行口要作为并行口进行输入输出, 必须设置必须设置“串入并出串入并出“或或”并入串出并入串出”的移位寄存器来配合使用的移位寄存器来配合使用(如如CD4094、、74LS164或或CD4014、、 74LS165等等)。
1 1、与、与“串入并出串入并出”芯片芯片74LS16474LS164配合,通过串行口配合,通过串行口扩展扩展MCS-51MCS-51的输出口的输出口连线图74LS164的串行数据输入端的串行数据输入端74LS164的移的移位脉冲位脉冲CLK•74LS16474LS164为为8 8位串并转换移位寄存器,能实现将位串并转换移位寄存器,能实现将串行输入数据并行输出的功能串行输入数据并行输出的功能并行数据并行数据输出引脚输出引脚例例1 1:: 用用74LS164与串口配合扩展的并行输出口接与串口配合扩展的并行输出口接8只只LEDLED,利用它,利用它的串入并出功能,依次点亮的串入并出功能,依次点亮LEDLED,并不断循环之电路设计见下图并不断循环之电路设计见下图 用用P1.0接接74LS164的的CLR 端,端,这样这样可控制可控制74LS164的数据接收和清除的数据接收和清除设置设置SCON因为因为,方式式方式式0时时, SM2、、RB8、、TB8均不用,故都设为均不用,故都设为0,初始,初始TI、、RI也应为也应为0,,做输出口所以禁止接收,做输出口所以禁止接收,REN=0故故 SCON 设为:设为:00H#include
电路设计见下图并不断循环之电路设计见下图 用用P1.0接接74LS164的的CLR 端,端,这样这样可控制可控制74LS164的数据接收和清除的数据接收和清除设置设置SCON因为因为,方式式方式式0时时, SM2、、RB8、、TB8均不用,故都设为均不用,故都设为0,初始,初始TI、、RI也应为也应为0,,做输出口所以禁止接收,做输出口所以禁止接收,REN=0故故 SCON 设为:设为:00H#include
第第9 9位数据位在位数据位在TB8/RB8TB8/RB8中,常用作校验位和多机通信标识位中,常用作校验位和多机通信标识位2 2.RXD.RXD:接收数据端,:接收数据端,TXDTXD:发送数据端发送数据端3 3. .波特率:波特率: 方式方式2 2:波特率:波特率=(2=(2SMODSMOD/64)/64)××fosc fosc 可选可选方式方式3 3:波特率:波特率=(2=(2SMODSMOD/32)/32)××T1T1溢出率溢出率 可变可变 起 始D0D1D2D3D4D5D6D7D8 停 止方式方式2 2与方式与方式3 3 的不同仅在于:的不同仅在于:方式方式2 2的波特率是两个固定的波特率是两个固定值,而方式值,而方式3 3的波特率是可变的的波特率是可变的4 4. .发送:发送:由软件先装入由软件先装入TB8TB8,再将待发送数据写入,再将待发送数据写入SBUFSBUF,即,即启动发送,发送结束,启动发送,发送结束,TI=1TI=1 接收接收:与方式:与方式1 1的接收类似的接收类似接收完一帧,若接收完一帧,若RI=0RI=0且第且第9 9位位为为1 (1 (或或SM2=0)SM2=0),才将接收数据装入接收,才将接收数据装入接收SBUFSBUF,第,第9 9位装入位装入RB8RB8,并使,并使RI=1RI=1;否则丢弃接收数据,不置位;否则丢弃接收数据,不置位RIRI。
方式方式0 0为固定波特率为固定波特率:: 波特率波特率=fosc/12=fosc/12方式方式2 2可选两种波特率可选两种波特率:: 波特率波特率=(2=(2SMOD SMOD /64)/64)××fosc fosc 7.3.4 串行口的波特率发生器及波特率设置串行口的波特率发生器及波特率设置 方式方式1 1、、3 3为可变波特率为可变波特率, ,用用T1T1或或T2T2作波特率发生器作波特率发生器, ,波波特率由定时器特率由定时器T1(或(或T2))的溢出率和的溢出率和SMOD确定用用T1定时定时工作工作做波特率做波特率发生器发生器时时: :波特率波特率=(2=(2SMODSMOD/32)/32)××T1T1溢出率溢出率SMOD=0时时, 波特率为波特率为(1/64) fOSC; SMOD=1, 波特率为(波特率为(1/32))fOSC T1的溢出率与它的工作方式有关:的溢出率与它的工作方式有关:T1方式方式0、方式、方式1时时::L 要要保证定时器产生频率固定的脉冲,需在定时中断后重新保证定时器产生频率固定的脉冲,需在定时中断后重新对定时器置初值,所以,要考虑这些工作附加的时间,上式中对定时器置初值,所以,要考虑这些工作附加的时间,上式中的的X是中断服务程序的机器周期数。
是中断服务程序的机器周期数T1方式方式2工作时工作时:: 方式方式2是是8位可重装的方式位可重装的方式,无需对定时器置数,没有中断引,无需对定时器置数,没有中断引起的误差,起的误差,此时,此时,应禁止定时器应禁止定时器T1T1中断中断溢出率溢出率= =fosc 112 28- (TH1)X表表 定时器定时器T1产生的常用波特率产生的常用波特率 一、一、 串行口的编程串行口的编程 串串行行口口需需初初始始化化后后, 才才能能按按要要求求完完成成数数据据的的输输入入、、输输出出其其初初始化过程如下始化过程如下: (1) 按要求的串口的工作方式设定按要求的串口的工作方式设定SCON的的SM0、、SM1两位两位 (2) 对对于于方方式式 2 或或 3, 应应根根据据需需要要在在 TB8 中中写写入入待待发发送送的的第第 9 位数据 (3) 若选定的方式不是方式若选定的方式不是方式 0, 还需设定接收还需设定接收/发送的波特率。
发送的波特率 设定设定SMOD的状态的状态, 以控制波特率是否加倍以控制波特率是否加倍 若选定方式若选定方式1或或3, 则应对则应对T1进行初始化以设定其溢出率进行初始化以设定其溢出率 7.4 MCS-51单片机串行口应用单片机串行口应用 7.4.1 利用方式利用方式0实现串行扩展实现串行扩展 利用串口的工作方式利用串口的工作方式0加上串入并出移位寄存加上串入并出移位寄存器器74LS164 、并入串出移位寄存器、并入串出移位寄存器74LS165等外围等外围芯片,可以实现芯片,可以实现I/O口的串行扩充口的串行扩充 利用外围芯片的特性及串行口方式利用外围芯片的特性及串行口方式0本身的特本身的特点,用点,用74LS164可以方便的将两位的串口扩展成多可以方便的将两位的串口扩展成多个个8位的并行输出口位的并行输出口 而用而用74LS165可以方便的接收多个可以方便的接收多个8路的并行路的并行信号,然后转化为串行信号,送入单片机处理信号,然后转化为串行信号,送入单片机处理7.4.2 方式方式1应用举例应用举例 将单片机的将单片机的TXDTXD接接RXDRXD,实现串口数据自发自收,接收的数据,实现串口数据自发自收,接收的数据通过通过P1P1口输出到发光二极管口输出到发光二极管, ,控制控制8 8个发光二极管奇、偶位交替个发光二极管奇、偶位交替点亮。
