第八章 单片机串行数据通信
第八章 单片机串行数据通信
8.1串行通信的基础知识 串行数据通信要解决两个关键技术问题,一个是数据传送, 另一个是数据转换。所谓数据传送就是指数据以什么形式进行 传送。所谓数据转换就是指单片杋在接受数据时,如何把接收 到的串行数据转化为并行数据,单片机在发送数据时,如何把 并行数据转换为串行数据进行发送
8.1 串行通信的基础知识 串行数据通信要解决两个关键技术问题,一个是数据传送, 另一个是数据转换。所谓数据传送就是指数据以什么形式进行 传送。所谓数据转换就是指单片机在接受数据时,如何把接收 到的串行数据转化为并行数据,单片机在发送数据时,如何把 并行数据转换为串行数据进行发送
8.1.1数据传送 单片机的串行通信使用的是异步串行通信,所谓异步就是指 发送端和接收端使用的不是同一个时钟。异步串行通信通常以 字符(或者字节)为单位组成字符帧传送。字符帧由发送端 帧一帧地传送,接收端通过传输线一帧一帧地接收。 1.字符帧的帧格式 字符帧由四部分组成,分别是起始位、数据位、奇偶校验 位、停止位。如图8.1所示: 1)起始位:位于字符帧的开头,只占一位,始终位逻辑低 电平,表示发送端开始发送一帧数据。 2)数据位:紧跟起始位后,可取5、6、7、8位,低位在前, 高位在后
8.1.1 数据传送 单片机的串行通信使用的是异步串行通信,所谓异步就是指 发送端和接收端使用的不是同一个时钟。异步串行通信通常以 字符(或者字节)为单位组成字符帧传送。字符帧由发送端一 帧一帧地传送,接收端通过传输线一帧一帧地接收。 1. 字符帧的帧格式 字符帧由四部分组成,分别是起始位、数据位、奇偶校验 位、停止位。如图8.1所示: 1) 起始位:位于字符帧的开头,只占一位,始终位逻辑低 电平,表示发送端开始发送一帧数据。 2) 数据位:紧跟起始位后,可取5、6、7、8位,低位在前, 高位在后
3)奇偶校验位:占一位,用于对字符传送作正确性检查, 因此奇偶校验位是可选择的,共有三种可能,即奇偶校验、偶 校验和无校验,由用户根据需要选定 4)停止位:末尾,为逻辑“1高电平,可取1、1.5、2位, 表示一帧字符传送完毕 数数 数奇停停起 始据据 据偶止止始 位 位位 位位位位位 (0)(1) (n-1) 一帧数据 图8.1字符帧格式
3)奇偶校验位:占一位,用于对字符传送作正确性检查, 因此奇偶校验位是可选择的,共有三种可能,即奇偶校验、偶 校验和无校验,由用户根据需要选定。 4)停止位:末尾,为逻辑“1”高电平,可取1、1.5、2位, 表示一帧字符传送完毕。 起 始 位 数 据 位 (0) 数 据 位 (1) 数 据 位 (n-1) 奇 偶 位 停 止 位 停 止 位 起 始 位 一帧数据 图8.1 字符帧格式
2.传送的速率 串行通信的速率用波特率来表示,所谓波特率就是指一秒钟 传送数据位的个数。每秒钟传送一个数据位就是1波特。即:1 波特=1bps(位秒)。 在串行通信中,数据位的发送和接收分别由发送时钟脉冲 和接收时钟脉冲进行定时控制。时钟频率高,则波特率高,通 信速度就快;反之,时钟频率低,波特率就低,通信速度就慢
2. 传送的速率 串行通信的速率用波特率来表示,所谓波特率就是指一秒钟 传送数据位的个数。每秒钟传送一个数据位就是1波特。即:1 波特=1bps(位/秒) 。 在串行通信中,数据位的发送和接收分别由发送时钟脉冲 和接收时钟脉冲进行定时控制。时钟频率高,则波特率高,通 信速度就快;反之,时钟频率低,波特率就低,通信速度就慢
8.1.2数据转换 串行接口电路为用户提供了两个串行口缓冲寄存器 (SBUF),一个称为发送缓存器,它的用途是接收片内总线 送来的数据,即发送缓冲器只能写不能读。发送缓冲器中的数 据通过TXD引脚向外传送。另一个称为接收缓冲器,它的用途 是向片内总线发送数据,即接收缓冲器只能读不能写。接收缓 冲器通过RXD引脚接收数据。因为这两个缓冲器一个只能写, 个只能读,所以共用一个地址99H。串行接口电路如图82所
8.1.2 数据转换 串行接口电路为用户提供了两个串行口缓冲寄存器 (SBUF),一个称为发送缓存器,它的用途是接收片内总线 送来的数据,即发送缓冲器只能写不能读。发送缓冲器中的数 据通过TXD引脚向外传送。另一个称为接收缓冲器,它的用途 是向片内总线发送数据,即接收缓冲器只能读不能写。接收缓 冲器通过RXD引脚接收数据。因为这两个缓冲器一个只能写, 一个只能读,所以共用一个地址99H。串行接口电路如图8.2所 示
I(发送中断 发送SBUF TXD串行输出 单片机内 部总线 移位时钟 接收SBUF 输入移位寄存器一RXD串行输入 RI(接收中断) 图82MCS-51串行口寄存器结构
移位时钟 发送SBUF 接收SBUF 输入移位寄存器 单片机内 部总线 TXD串行输出 RXD串行输入 RI(接收中断) TI(发送中断 图8.2 MCS-51串行口寄存器结构
82MCS-51单片机丰行通信的控制寄存器 1.串行口控制寄存器(SCON) SCON是MCS-51单片机的一个可位寻址的专用寄存器,用于 串行数据通信的控制。单元地址为98H,位地址为98H~9FH。寄 存器的内容及位地址表示如下: 位地址9FH9EH9DH9cH9BH9AH99H98H 位符号SMSM1SM2REN|TB8RB3 RI 各位的说明如下 1)SM0、SM1串行口工作方式选择位 其状态组合和对应工作方式为: SMO SMI 工作方式 00 方式0 01 方式1
8.2 MCS-51单片机串行通信的控制寄存器 1. 串行口控制寄存器(SCON) SCON是MCS-51单片机的一个可位寻址的专用寄存器,用于 串行数据通信的控制。单元地址为98H,位地址为98H~9FH。寄 存器的内容及位地址表示如下: 位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H 位符号 SM0 SM1 SM2 REN TB8 RB8 TI RI 各位的说明如下: 1) SM0 、SM1——串行口工作方式选择位 其状态组合和对应工作方式为: SM0 SM1 工作方式 0 0 方式0 0 1 方式1
0 方式2 方式3 允许方式2、3的多机通信控制位 在方式2和3中,若SM2=1且接收到的第九位数据(RB 为1,才将接收到的前8位数据送入接收SBUF中,并置位RI 产生中断请求;否则丢弃前8位数据。若SM2=0,则不论第九 位数据(RB2)为1还是为0,都将前8位送入接收SBUF中,并 产生中断请求。 方式0时,SM2必须置0 3)REN允许接收位 REN=0禁止接收数据 REN=1允许接收数据 4)TB发送数据位8 在方式2、3时,TB的内容是要发送的第9位数据,其值由 用户通过软件来设置
1 0 方式2 1 1 方式3 2) M2——允许方式2、3的多机通信控制位 在方式2和3中,若SM2 =1且接收到的第九位数据(RB8) 为1,才将接收到的前8位数据送入接收SBUF 中,并置位RI 产生中断请求;否则丢弃前8位数据。若 SM2 =0,则不论第九 位数据(RB8)为1还是为0,都将 前8位送入接收SBUF中,并 产生中断请求。 方式0时,SM2必须置0。 3) REN——允许接收位 REN=0 禁止接收数据 REN=1 允许接收数据 4) TB8——发送数据位8 在方式2、3时,TB8的内容是要发送的第9位数据,其值由 用户通过软件来设置
5)RB接收数据位8 在方式2、3时,RB是接收的第9位数据。 在方式1时,RB是接收的停止位 在方式0时,不使用RB8 6)T发送中断标志位 在方式0时,发送完第8位数据后,该位由硬件置位 在其它方式下,于发送停止位之前,由硬件置位。 因此,T=1表示帧发送结束,其状态既可供软件查询使用, 也可请求中断。 TI由软件清“0°。 7)RI接收中断标志位 在方式0时,接收完第8位数据后,该位由硬件置位 在其它方式下,于接收到停止位之前,该位由硬件置位。 因此,RI=1表示帧接收结束,其状态既可供软件查询使用 也可请求中断 RI由软件清“0
5) RB8——接收数据位8 在方式2、3时,RB8是接收的第9位数据。 在方式1时,RB8是接收的停止位 在方式0时,不使用RB8 6) TI——发送中断标志位 在方式0时,发送完第8位数据后,该位由硬件置位。 在其它方式下,于发送停止位之前,由硬件置位。 因此,TI=1表示帧发送结束,其状态既可供软件查询使用, 也可请求中断。 TI由软件清“0”。 7) RI——接收中断标志位 在方式0时,接收完第8位数据后,该位由硬件置位。 在其它方式下,于接收到停止位之前,该位由硬件置位。 因此,RI=1表示帧接收结束,其状态既可供软件查询使用, 也可请求中断。 RI由软件清“0