当前位置:
文档之家› 《单片机原理及应用》第七章 89C51串行口及串行通信技术
《单片机原理及应用》第七章 89C51串行口及串行通信技术
IBM-PC相同。
.
14
图7-5
.
15
图7-6
.
16
2)设备同步
• 进行串行通信的两台设备必须同步工作才能有效地检测通 信线路上的信号变化,从而采样传送数据的脉冲。
• 设备同步对通信双方有两个共同要求:
➢通信双方必须采用统一的编码方法;
➢通信双方必须能产生相同的传送速率。
• 采用统一的编码方法确定了一个字符二进制表示值的位发 送顺序和位串长度,当然还包括统一的逻辑电平规定,即 电平信号高低与逻辑1和逻辑0的固定对应关系。
.
10
同步通信
• 同步字符的插入可以是单同步字符方式或双同步字符方式, 然后是连续的数据块。同步字符可以由用户约定,也可采 用ASCII码中规定的SYNC代码,即16H。按同步方式通 信时,先发送同步字符,接收方检测到同步字符后,即准 备接收数据。
• 在同步传送时,要求用时钟来实现发送端与接收端之间的 同步。为了保证接收正确无误,发送方除了传送数据外, 还要同时传送时钟信号。
• 在方式2或方式3中,根据发送数据的需要由软件置位或复 位。
• 在许多通信协议中可用作奇偶校验位,也可在多机通信中作 为发送地址帧或数据帧的标志位。对于后者,TB8=1,说 明该帧数据为地址;TB8=0,说明该帧数据为数据字节。
• 起始位(0)信号只占一位,用来通知接收设备一个待接收的字符开始 到达。线路上在不传送字符时应保持为1。接收端不断检测线路的状态, 若连续为1以后又测到一个0,就知道发来一个新字符,应马上准备接 收。字符的起始位还被用作同步接收端的时钟,以保证以后的接收能 正确进行。
• 起始位后面紧接着是数据位,它可以是5位(D0-D4)、6位、7位或8 位(D0-D7)。若所传字符为ASCII码,则常取7位。
• 对于发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误,一般不 需要用双缓冲器结构来保持最大传送速率。
.
21
串行口控制字及控制寄存器
• 89C51串行口是可编程接口,对它初始化编程只用两个控 制字分别写入特殊功能寄存器SCON(98H)和电源控制 寄存器PCON(87H)中即可。
(1)SCON(98H) • 89C51串行通信的方式选择、接收和发送控制以及串行口
• 在计算机串行发送数据之前,计算机内部的并行数据被送 入移位寄存器并一位一位地输出,将并行数据转换成串行 数据。如图7-5所示。
• 在接收数据时,来自通信线路的串行数据被压入移位寄存 器,满8位后并行送到计算机内部。如图7-6所示。
• 在串行通信控制电路中,串--并、并--串转换逻辑被集成
在串行异步通信控制器芯片中。89C51单片机的串行口和
全双工配置是一对单向配置,它要求两端的通信设备都具 有完整和独立的发送和接受能力。
.
5
串行通信中的数据传送方式
.
6
异步通信和同步通信
• 串行通信有两种基本通信方式,即异步通信和同步通信。
异步通信
• 在异步通信中,数据是一帧一帧(包括一个字符代码或一 字节数据)传送的。
• 在帧格式中,一个字符由四个部分组成:起始位、数据位、 奇偶校验位和停止位。首先是一个起始位(0),然后是 5~8位数据(规定:低位在前,高位在后),接下来是奇 偶校验位(可省略),最后是停止位(1)。
• 通信方式有两种,即并行通信和串行通信。
• 通常根据信息传送的距离决定采用哪种通信方式。
例如,PC机与外部设备(如打印机等)通信时,如果距 离小于30 m,可采用并行通信方式;当距离大于30 m时, 则要采用串行通信方式。89C51单片机具有并行和串行二 种基本通信方式。
.
2
并行通信
• 并行通信是指数据的各 位同时进行传送(发送 或接收)的通信方式。
行发送和接收数据。 • 它可以作UART(通用异步接收和发送器)用,也可以作
同步移位寄存器用。 • 使用串行接口可以实现89C51单片机系统之间点对点的单
机通信和89C51与系统机(如IBM-PC机等)的单机或多 机通信。
.
18
串行口结构
• 89C51通过引脚RXD(P3.0,串行数据接收端)和引脚 TXD(P3.1,串行数据发送端)与外界进行通信。有两个 物理独立的接收、发送缓冲器SBUF,它们占用同一地址 99H,可同时发送、接收数据。发送缓冲器只能写入,不 能读出;接收缓冲器只能读出,不能写入。
的状态标志等均由特殊功能寄存器SCON控制和指示。
.
22
串行口控制寄存器SCON
.
23
SCON(98H)
• ①SM0和SM1(SCON.7,SCON.6)——串行口工作方 式选择位。两个选择位对应4种通信方式,如下表所示。 其中,fosc是M1 0 1 0 1
工作方式 方式0 方式1 方式2 方式3
的起始位。若停止位以后不是紧接着传送下一个字符,则使线路电平
保持为高电平(逻辑1)。
.
9
同步通信
• 同步通信中,在数据开始传送前用同步字符来指示(常约 定1个--2个),并由时钟来实现发送端和接收端同步,即 检测到规定的同步字符后,下面就连续按顺序传送数据, 直到通信告一段落。
• 同步传送时,字符与字符之间没有间隙,也不用起始位和 停止位,仅在数据块开始时用同步字符SYNC来指示。
题: 1)串←→并转换,即如何把要发送的并行数据串行化,把
接收的串行数据并行化; 2)设备同步,即发送设备与接收设备的工作节拍同步,以
确保发送数据在接收端被正确读出。
.
13
1、串←→并转换与设备同步
1)串←→并转换
串行通信是将计算机内部的并行数据转换成串行数据,将 其通过一根通信线传送;并将接收的串行数据再转换成并 行数据送到计算机中。
• 各个从机根据收到的第9位数据(RB8中)的值来决定从机可否再接 收主机的信息。若(RB8)=0,说明是数据帧,则使接收中断标志 位RI=0,信息丢失;若(RB8)=1,说明是地址帧,数据装入 SBUF并置RI=1,中断所有从机,被寻址的目标从机清除SM2以接 收主机发来的一帧数据。其他从机仍然保持SM2=1。
• 串行发送与接收的速率与移位时钟同步。89C51用定时器 T1作为串行通信的波特率发生器,T1溢出率经2分频(或 不分频)后又经16分频作为串行发送或接收的移位脉冲。 移位脉冲的速率即是波特率。
.
19
串行口结构
串行口内部结构示意简图
.
20
• 从图中可看出,接收器是双缓冲结构,在前一个字节被从接收缓冲器 SBUF读出之前,第二个字节即开始被接收(串行输入至移位寄存器), 但是,在第二个字节接收完毕而前一个字节CPU未读取时,会丢失前一个 字节。(出现溢出错误)
• 优点:传送速度快; • 缺点:数据有多少位,
就需要多少根传送线。 • 例如,右图89C51单片
机与外部设备之间的数 据传送就属于并行通信。
.
3
串行通信
• 串行通信指数据是一位(bit)一位按顺序传送的通信方式。 • 优点:只需一对传输线(利用电话线就可作为传输线),
大大降低了传送成本,特别适用于远距离通信; • 缺点:传送速度较低。假设并行传送N位数据所需时间为T,
• 同步传送可以提高传输速率(达56kb/s或更高),但硬件 比较复杂。
.
11
波特率(Baud rate)
• 波特率,即数据传送速率,表示每秒钟传送二进制代码的位 数,它的单位是b/s (bits per second)。
• 假设数据传送速率是120字符/s,而每个字符包含的代码位有: 1个起始位、8个数据位、1个停止位。这时,传送的波特率 为:
• 串行口的发送和接收都是以特殊功能寄存器SBUF的名义进行读或写的。 当向SBUF发“写”命令时(执行“MOV SBUF,A”指令),即是向发送 缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完便使发送 中断标志位TI=1。
• 在满足串行口接收中断标志位RI(SCON.0)=0的条件下,置允许接收位 REN(SCON.4)=1就会接收一帧数据进入移位寄存器,并装载到接收 SBUF中,同时使RI=1。当发读SBUF命令时(执行“MOV A,SBUF”命 令),便由接收缓冲器(SBUF)取出信息通过89C51内部总线送CPU。
第 N +1个 字 符
停起
数 据 位
校停
起
止始
验止
始
位位D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 位 位 空 闲 位 位 数 据 位
1 0 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 1 1 1 1 0 … …
(b)有空闲位
异步通信数据格式
.
8
• 异步串行通信协议
• 奇偶校验(D8)只占一位,但在字符中也可以规定不用奇偶校验位, 则这一位可省去。也可用这一位(1/0)来确定这一帧中的字符所代表 信息的性质(地址/数据等)。
• 停止位用来表征字符的结束,它一定是高电位(逻辑1)。停止位可以
是1位、1.5位或2位。接收端收到停止位后,知道上一字符已传送完毕,
同时,也为接收下一个字符做好准备。只要再接收到0,就是新的字符
那么串行传送的时间至少为NT,实际上总是大于NT。
接收设备
D0 D1 D2 D3 D4 D5 D6 D7 发送设备
.
4
串行通信的传输方式
• 串行通信的传输方式通常有三种: ➢ 单向(或单工)方式,只允许数据向一个方向传送; ➢ 半双向(或半双工)方式,允许数据向两个方向中的任一
方向传送,但每次只能有一个站点发送; ➢ 全双向(或全双工)方式,允许同时双向传送数据,因此,
• 通信双方只有产生相同的传送速率,才能确保设备同步, 这就要求发送设备和接收设备采用相同频率的时钟。发送 设备在统一的时钟脉冲上发出数据,接收设备才能正确检 测出与时钟脉冲同步的数据信息。