《单片机的串行口.ppt》由会员分享,可在线阅读,更多相关《单片机的串行口.ppt(42页珍藏版)》请在优知文库上搜索。
1、第第6 6章章 串行通信串行通信本章要点本章要点v异步通信和同步通信异步通信和同步通信v串行通信波特率串行通信波特率v串行通信的制式串行通信的制式v串行通信的校验串行通信的校验v串行口特殊功能寄存器串行口特殊功能寄存器v串行工作方式串行工作方式 串行通信串行通信优点优点:便于长距离传送便于长距离传送 缺点缺点:传送速度较慢传送速度较慢计算机与外界信息交换称为计算机与外界信息交换称为通信通信。通信的通信的基本方式基本方式可分为并行通信和串行通信:可分为并行通信和串行通信:并行通信并行通信是数据的各位同时发送或同时接收;是数据的各位同时发送或同时接收;串行通信串行通信是数据的各位依次逐位发送或接收
2、。是数据的各位依次逐位发送或接收。并行通信并行通信优点优点:传送速度快传送速度快 缺点缺点:不便长距离传送不便长距离传送串行通信的基本特征是串行通信的基本特征是数据数据逐位顺序逐位顺序进行传送进行传送串行通信的格式及约定(如:同步方式、通讯速串行通信的格式及约定(如:同步方式、通讯速率、数据块格式、信号电平率、数据块格式、信号电平等)不同,形成等)不同,形成了多种串行通信的协议与接口标准。了多种串行通信的协议与接口标准。常见的有:常见的有:通用异步收发器通用异步收发器( (UARTUART) )本课程介绍的串口本课程介绍的串口通用串行总线(通用串行总线(USBUSB)I I2 2C C总线总线
3、CANCAN总线总线SPISPI总线总线RS-485RS-485,RS-232CRS-232C,RS422ARS422A标准标准等等等等异步通信对硬件要求较低,实现起来比较简异步通信对硬件要求较低,实现起来比较简单、灵活,适用于数据的随机发送单、灵活,适用于数据的随机发送/接收,但因接收,但因每个字节都要建立一次同步,即每个字符都要每个字节都要建立一次同步,即每个字符都要额外附加两位,所以工作速度较低,在单片机额外附加两位,所以工作速度较低,在单片机中主要采用异步通信方式。中主要采用异步通信方式。6-1 6-1 串行通信概述串行通信概述一、一、异步通信和同步通信异步通信和同步通信串行通信按同步
4、方式可分为异步通信和同步通信。串行通信按同步方式可分为异步通信和同步通信。1、异步通信异步通信异步通信依靠起始位、停止位保持通信同步。异步通信依靠起始位、停止位保持通信同步。 异步通信数据传送按帧传输,异步通信数据传送按帧传输,一帧数据包含一帧数据包含起始位、数据位、校验位和停止位起始位、数据位、校验位和停止位。 同步通信传输速度较快,但要求有准确同步通信传输速度较快,但要求有准确的时钟来实现收发双方的严格同步,对硬件的时钟来实现收发双方的严格同步,对硬件要求较高,适用于成批数据传送。要求较高,适用于成批数据传送。2、 同步通信同步通信同步通信依靠同步字符保持通信同步。同步通信依靠同步字符保持
5、通信同步。 同步通信是同步通信是由由1 12 2个同步字符和多字节个同步字符和多字节数据位组成数据位组成,同步字符作为起始位以触发同,同步字符作为起始位以触发同步时钟开始发送或接收数据;多字节数据之步时钟开始发送或接收数据;多字节数据之间不允许有空隙,每位占用的时间相等;空间不允许有空隙,每位占用的时间相等;空闲位需发送同步字符。闲位需发送同步字符。 波特率的倒数即为每位传输所需的时间。波特率的倒数即为每位传输所需的时间。 相互通信的甲乙双方必须具有相同的波特相互通信的甲乙双方必须具有相同的波特率,否则无法成功地完成串行数据通信。率,否则无法成功地完成串行数据通信。二、二、串行通信波特率串行通
6、信波特率波特率波特率bps(bit per second)bps(bit per second)定义定义: 每秒传输数据的位数,即:每秒传输数据的位数,即:1波特波特 = 1位位/秒(秒(1bps1bps)三、三、串行通信的制式串行通信的制式 串行通信按照数据传送方向可分为三种制串行通信按照数据传送方向可分为三种制式:式: 单工制式单工制式是指甲乙双方通信时是指甲乙双方通信时只能单向传只能单向传送数据送数据,发送方和接收方固定。,发送方和接收方固定。 1 1、单工制式(单工制式(SimplexSimplex) 半双工制式半双工制式是指通信双方都具有发送器是指通信双方都具有发送器和接收器,既可发
7、送也可接收,但不能同时和接收器,既可发送也可接收,但不能同时接收和发送,接收和发送,发送时不能接收,接收时不能发送时不能接收,接收时不能发送。发送。2、半双工制式(半双工制式(Half DuplexHalf Duplex) 全双工制式全双工制式是指通信双方均设有发送器和是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方因此全双工制式可实现甲乙双方同时发送和接同时发送和接收数据收数据,发送时能接收,接收时也能发送。,发送时能接收,接收时也能发送。3 3、全双工制式(全双工制式(Full DuplexFull
8、Duplex)四、四、串行通信的校验串行通信的校验3、循环冗余码校验循环冗余码校验(Cyclic Redundancy Check,Cyclic Redundancy Check,简称简称CRCCRC)1、奇偶校验奇偶校验2、累加和校验累加和校验累加和校验累加和校验是指发送方将所发送的数据块求和,并是指发送方将所发送的数据块求和,并将将“校验和校验和”附加到数据块末尾。接收方接收数据附加到数据块末尾。接收方接收数据时也是先对数据块求和,将所得结果与发送方的时也是先对数据块求和,将所得结果与发送方的“校验和校验和”进行比较,相符则无差错,否则即出现进行比较,相符则无差错,否则即出现了差错。了差错
9、。“校验和校验和”的加运算可用逻辑加,也可用的加运算可用逻辑加,也可用算术加。累加和校验算术加。累加和校验的缺点是无法检验出字节位序的缺点是无法检验出字节位序( (或或1 1、0 0位序不同位序不同) )的错误。的错误。 循环冗余码校验的基本原理循环冗余码校验的基本原理是将一个数据块看成一是将一个数据块看成一个位数很长的二进制数,然后用一个特定的数去除个位数很长的二进制数,然后用一个特定的数去除它,将余数作校验码附在数据块后一起发送。接收它,将余数作校验码附在数据块后一起发送。接收端收到该数据块和校验码后,进行同样的运算来校端收到该数据块和校验码后,进行同样的运算来校验传送是否出错。目前验传送
10、是否出错。目前CRC已广泛用于数据存储和已广泛用于数据存储和数据通信中,数据通信中,并在国际上形成规范,已有不少现成并在国际上形成规范,已有不少现成的的CRCCRC软件算法。软件算法。 80C5180C51系列单片机有一个系列单片机有一个全双工全双工的串行口,这个口既可以用于网络通的串行口,这个口既可以用于网络通信,也可以实现串行异步通信,还可信,也可以实现串行异步通信,还可以作为同步移位寄存器使用。以作为同步移位寄存器使用。6-2 80C516-2 80C51串行口串行口51单片机的串行接口SBUF(发)(发)SBUF(收)(收)发送控制器发送控制器 TI接收控制器接收控制器 RI移位寄存器
11、移位寄存器波波特特率率发发生生器器T1 1A累累加加器器(门门)移位寄存器移位寄存器RxDTxD去申请中断去申请中断引脚引脚引脚引脚CPU内部内部发送时发送时,只需将发送数据输入,只需将发送数据输入SBUFSBUF,CPUCPU将自动启动和将自动启动和完成串行数据的发送;完成串行数据的发送; 接收时接收时,CPUCPU将自动把接收到的数据存入将自动把接收到的数据存入SBUFSBUF,用户只,用户只需从需从SBUFSBUF中读出接收数据中读出接收数据。一、一、串行口特殊功能寄存器串行口特殊功能寄存器1 1、串行数据缓冲器串行数据缓冲器SBUFSBUF 在在逻辑上逻辑上只有一个只有一个,既表示发送
12、寄存器,又表示接收寄,既表示发送寄存器,又表示接收寄存器,具有同一个单元地址存器,具有同一个单元地址99H99H,用,用同一寄存器名同一寄存器名SBUFSBUF。 在在物理上有两个物理上有两个,一个是发送缓冲寄存器,另一个是接,一个是发送缓冲寄存器,另一个是接收缓冲寄存器。收缓冲寄存器。指令指令 MOV SBUFMOV SBUF,A A 启动一次数据发送启动一次数据发送, ,可向可向SBUFSBUF 再发送下一个数再发送下一个数指令指令 MOV AMOV A,SBUFSBUF 完成一次数据接收完成一次数据接收,SBUF,SBUF可再可再 接收下一个数接收下一个数2 2、串行控制寄存器串行控制寄
13、存器SCONSCONSCONSCOND7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0位名称位名称SM0SM0SM1SM1SM2SM2RENRENTB8TB8RB8RB8TITIRIRI位地址位地址9FH9FH9EH9EH9DH9DH9CH9CH9BH9BH9AH9AH99H99H98H98H功能功能工作方式工作方式选择选择多机通信多机通信控制控制接收接收 允许允许发送发送 第第9 9位位接收接收 第第9 9位位发送发送 中断中断接收接收 中断中断 SM0 SM1SM0 SM1 串行口串行口工作方式工作方式选择位。选择位。 SM2SM2 多机通信控制位。多机通信控制位。 RENR
14、EN 允许允许接收控制位。接收控制位。REN=1REN=1,允许接收。,允许接收。 TB8TB8 方式方式2 2和方式和方式3 3中要发送的第中要发送的第9 9位数据。位数据。 RB8RB8 方式方式2 2和方式和方式3 3中要接收的第中要接收的第9 9位数据。位数据。 TITI 发送发送中断标志。中断标志。 RIRI 接收接收中断标志。中断标志。 SM0 SM1SM0 SM1串行口工作方式选择位。其状态组合所对应串行口工作方式选择位。其状态组合所对应的工作方式如表的工作方式如表6-26-2所示。所示。 SM0 SM1工作方式工作方式 功能说明功能说明 00 0同步移位寄存器输入同步移位寄存器
15、输入/输出输出,波特率波特率固定固定为为fosc/12 01 18位位UART;波特率;波特率可变可变(TI溢出率溢出率/n,n=32或或16) 10 29位位UART,波特率,波特率固定固定为为fosc/n,(n=64或或32) 11 39位位UART,波特率,波特率可变可变(T1溢出率溢出率/n,n=32或或16) SM2-多机通信控制位。在方式多机通信控制位。在方式2和方式和方式3中,若中,若SM2=1,且且RB8(接收到的第接收到的第9位数据位数据)=1时,将接收到的前时,将接收到的前8位数据送入位数据送入SBUF,并置位,并置位RI产生中断请求;否则,将接收到的产生中断请求;否则,将
16、接收到的8位数据位数据丢弃。而当丢弃。而当SM2=0时,则不论第时,则不论第9位数据为位数据为0还是为还是为1,都将前,都将前8位数据装入位数据装入 SBUF中,并产生中断请求。中,并产生中断请求。 在方式在方式0 0时,时,SM2SM2必须为必须为0 0。 REN-允许接收控制位。允许接收控制位。REN位用于对串行数据位用于对串行数据的接收进行控制:的接收进行控制:REN=0,禁止接收;,禁止接收;REN=1,允许,允许接收。该位由软件置位或复位。接收。该位由软件置位或复位。TB8-方式方式2和方式和方式3中要发送的第中要发送的第9位数据。在方位数据。在方式式2和方式和方式3时,时,TB8是发送的第是发送的第9位数据。在多机通信位数据。在多机通信中,以中,以TB8位的状态表示主机发送的是地址还是数据:位的状态表示主机发送的是地址还是数据:TB8=0表示数据,表示数据,TB8=1表示地址。该位由软件置位表示地址。该位由软件置位或复位。或复位。 TB8还可用于奇偶校验位。还可用于奇偶校验位。RB8-方式方式2和方式和方式3中要接收的第中要接收的第9位数据。在方位数据。在方式式2或方式或方