8051单片机7串行接口
别为外同步和内同步。
7.1 串行通信基础
1. 外同步:发送方和接收方之间提供单独的时钟线路,发 送方在每个比特周期都向接收方发送一个同步脉冲。接 收方根据这些同步脉冲来完成接收。由于长距离传输时, 同步信号会发生失真,所以仅适用于短距离的传输 内同步:利用特殊的编码机,让数据信号携带同步时钟 信号。
PCON寄存器用于设臵单片机的工作方式以及串行口 的波特率倍数。其中,只有最高位与串行口的工作有关。 PCON 不可位寻址, 因此初始化时需要字节传送。
位定义 SMOD GF1 GF0 通用标志 位 PD IDL 波特率 倍增位 掉电方式 待机方式(空闲 控制位 方式)控制位
功能
SMOD:波特率倍增位 在串行口方式1、方式2、方式3时,波特率与SMOD 有关,当SMOD=1时,波特率提高一倍。复位时, SMOD=0。
串行口对外也有两条独立的收发信号线 RXD(P3.0)和 TXD (P3.1),因此可以同时发送、接收数据,实现全双 工传送。
7.2 51单片机的串行口
7.2.2 串行口控制寄存器
1. 特殊功能寄存器SCON ( 98H )
SCON寄存器用来控制串行口的工作方式以及设臵状 态标志,可进行位寻址
位地址 9FH 9EH 位定义 SM0 SM1 功能 9DH SM2 9CH REN 9BH TB8 9AH RB8 99H TI 98H RI
写入SBUF RXD(数据) TXD(移位脉冲) TI(中断标志)
D0 D1 D2 D3 D4 D5 D6 D7
7.2 51单片机的串行口
方式0发送的指令分解:
MOV SCON,#00xxxxxxB;设定串行口为方式0
CLR TI
;将中断标志TI清零
;若产生中断标志,表示8位数据发送 完毕,跳转
MOV SBUF,A;开始写数据,把发送数据存入SBUF JBC TI,rel
REN=1 RI=0 RXD(数据输入) D0 D1 D2 D3 D4 D5 D6 D7
TXD(移位脉冲)
7.2 51单片机的串行口
计 算 机 甲
0 1 1 0 1
数据 时钟
2.
时钟
计 算 机 乙
计 算 机 甲
数据
0 1 1 0 1
数据+时钟
计 算 机 乙
外同步
内同步
7.1 串行通信基础
串行通信的错误校验
1、奇偶校验 在发送数据时,数据位尾随的1位为奇偶校验 位(1或0)。奇校验时,数据中“1”的个数与校验 位“1”的个数之和应为奇数;偶校验时,数据中 “1”的个数与校验位“1”的个数之和应为偶数。接 收字符时,对“1”的个数进行校验,若发现不一致, 则说明传输数据过程中出现了差错。 2、代码和校验 代码和校验是发送方将所发数据块求和(或各
接 收 设 备
D0 D7
8位顺次传送
发 送 设 备
串行通信的特点:传输线少,长距离传送时成本低; 通信线路简单, 只要一对传输线就可以实现通信(如 电话线),特别适用于远距离通信。但数据的传送控 制比并行通信复杂,传送速度慢。
7.1 串行通信基础
并行通信:将数据字节的各位用多条数据线同时进 行传送 。
串行口工作 多机通信 允许串行 发送数据 接受数据 发送中断 接受中断 方式选择位 控制位 接受位 的第9位 的第9位 标志位 标志位
为什么没有允许发送:发送是主动过程,接受是被动过程
7.2 51单片机的串行口
1)SM0、SM1
串行口工作方式选择位,可选择4种工作方式
7.2 51单片机的串行口
2)SM2:多机通信控制位
波特率(Baudrate)
波特率就是数据的传送速率,即每秒钟传送的二进 制位数
7.1 串行通信基础
异步通信的数据格式 :
空 闲
起 始 位
一个字符帧
数据位
校 停 验 止 位 位
空 下一字符 闲 起始位
LSB
MSB
异步通信的特点:不要求收发双方时钟的严格一致, 实现容易,设备开销较小,但每个字符要附加2~3 位用于起止位,各帧之间还有间隔,因此传输效率 不高。
7.2 51单片机的串行口
7.2.3 串行口的工作方式
1. 方式0 串行接口工作方式0为同步移位寄存器方式, 多用于I/O口的扩展,其波特率是固定的,为 fosc/12。TXD引脚输出同步移位脉冲,RXD引 脚串行输入/输出数据。
7.2 51单片机的串行口
方式0发送
数据从RXD引脚串行输出,TXD引脚输出同步脉 冲。当1个数据写入串行口发送缓冲器时,串行口将8 位数据以fosc/12的固定波特率从RXD引脚输出,从低 位到高位。发送完后臵中断标志TI为1,呈中断请求状 态,在再次发送数据之前,必须用软件将TI清0。
7.1 串行通信基础
传输速率与传输距离 1、传输速率
比特率:每秒钟传输二进制代码的位数,单位是:位/ 秒(bps)。如每秒钟传送240个字符,而每个字符格 式包含10位,这时的比特率为: 10位×240个/秒 = 2400 bps 波特率:每秒钟调制信号变化的次数,单位是:波特 (Baud)。对于将数字信号1或0直接用两种不同电 压表示的所谓基带传输,比特率和波特率是相同的。 所以,我们也经常用波特率表示数据的传输速率。
在方式0时,SM2必须是0。在方式1时,若SM2=1, 则只有接收到有效停止位时,RI才臵1。
7.2 51单片机的串行口
3) REN:允许串行接收位
由软件臵REN=1,则启动串行口接收数据; 若软件臵REN=0,则禁止接收
4) TB8:发送的第9位数据。
在方式2和方式3时,TB8为所要发送的第9位 数据。在多机通信中,以TB8位的状态表示主机 发送的是地址还是数据:TB8=0为数据,TB8=1 为地址;也可用作数据的奇偶校验位。该位由软件 臵位或复位。在方式0和方式1中,该位未用。
第七章 串行接口
7.1 串行通信基础 7.2 51单片机的串行口 7.3 串行口的应用实例
7.1 串行通信基础
通信:信息交换 计算机 计算机 计算机 外设 应用:多机系统、计算机网络
通信方式
串行通信 并行通信
7.1 串行通信基础
串行通信:将数据字节分成一位一位的形式在一条 传输线上逐个地传送
7.2 51单片机的串行口
7) RI:接收中断标志位。
在方式0时,当串行接收第8位数据结束时, 或在其它方式,串行接收停止位的中间时,由内 部硬件使RI臵1,向CPU发中断申请。也必须在 中断服务程序中,用软件将其清0,取消此中断 申请。
7.2 51单片机的串行口
2. 电源控制寄存器PCON ( 97H )
1 13 1 5
14
25
6
9
7.2 51单片机的串行口
7.2.2 串行口的结构
串行口中断
7.2 51单片机的串行口
说明:
SBUF是两个在物理上独立的接收、发送缓冲器,可同时 发送、接收数据。两个缓冲器只用一个字节地址99H, 可通过指令对SBUF的读写来区别是对接收缓冲器的操 作还是对发送缓冲器的操作。 CPU写SBUF (MOV SBUF, A),就是修改发送缓冲器; 读SBUF (MOV A, SBUF), 就是读接收缓冲器。
间隙任意 接 收 10100100 设 备
1 0 10100100 1 0 11100110 1
发 送 0 11100110 设 备
7.1 串行通信基础
异步通信是以字符(构成的帧)为单位进行传输, 字符与字符之间的间隙(时间间隔)是任意的,但每 个字符中的各位是以固定的时间传送的,即字符之间 是异步的(字符之间不一定有“位间隔”的整数倍的 关系),但同一字符内的各位是同步的(各位之间的 距离均为“位间隔”的整数倍),即字符间异步,字 符内部各位间同步。
7.1 串行通信基础
2、传输距离与传输速率的关系
最大距离与传输速率及传输线的电气特性有关。 一般来说,传输距离随传输速率的增加而减小。 当比特率超过1000 bps 时,最大传输距离迅速下 降。
7.1 串行通信基础
信号的调制与解调
利用调制器(Modulator)把数字信号转换成模拟 信号,然后送到通信线路上去,再由解调器 (Demodulator)把从通信线路上收到的模拟信号转换 成数字信号。由于通信是双向的,调制器和解调器合并 在一个装臵中,这就是调制解调器MODEM。
7.2 51单片机的串行口
方式0接收
在满足REN=1(允许接收)和RI=0的条件下,串行口处 于方式0输入。此时,RXD为数据输入端,TXD为同步信号 输出端,接收器也以fosc/12的波特率采样RXD引脚输入的 数据信息。当接收器接收完8位数据后,臵中断标志RI=1 为请求中断,在再次接收之前,必须用软件将RI清0。
7.1 串行通信基础
2、同步通信 (Synchronous Communication)
建立发送方时钟对接收方时钟的直接控制,使 双方达到完全同步。此时,传输数据的位之间的距 离均为“位间隔”的整数倍,同时传送的字符间不 留间隙,既保持位同步关系,也保持字符同步关系。
发送方对接收方的同步可以通过两种方法实现,分
RS-232C RS-232C
电话网 DTE DCE DCE
数据通 信设备
终端 设备
DTE
7.1 串行通信基础
串行通信接口标准 RS-232C接口:RS-232C是EIA(美国电子工业
协会)1969年修订RS-232C标准。RS-232C定义了数据 终端设备(DTE)与数据通信设备(DCE)之间的物理 接口标准。 RS-232C接口规定使用25针连接器,连接器的尺寸 及每个插针的排列位臵都有明确的定义。实际应用中常 用9针连接器代替25针连接器。
8位同时传送 接 收 设 备 询问 应答