单片机串行口
RS-232C的缺点
接口的信号电平值较高,易损坏接口电路的 芯片。 与TTL电平不兼容,与TTL电平接口连接需 进行电平转换。
传输距离短,使用时传输距离一般不超过 15m,线路条件好时也不超过几十米。
传输速率较低,最高传送速率为20kbit/s。 由于收发信号采用共地传输,容易产生共模 干扰,所以抗干扰能力较差。
SCON各位名称和功能
若接收收方单片机的SM2 = 0,则RB8不再 具有控制RI激活的功能,不论收到的RB8为0还 是1,收到的数据都会进入SBUF,并使RI = 1。 运用SM2的控制功能,便可以实现多机通信
在方式0时,不使用SM2控制位,应将SM2 设定为0。在方式1时,通常也将SM2设为0,若 使SM2 = 1,则只有接收到有效的停止位时,RI 才被置1。
RS-232C的信号电平
通常,RS-232C的逻辑电平采用+12V表示逻 辑0,−12V表示逻辑1。
RS-232C的信号电平
RS-232C的传输距离与传输速率:
RS-232C的传输距离:DTE和 DEC之间采用RS-232C传输的最大距离 不大于15m。
RS-232C的传输速率:小于 20kbit/s。
单片机的串行接口
串行通信基本知识 串行接口结构及控制 串行接口工作方式与波特率 串行口应用举例
数据通信
计算机与外界的信息交换称为通信。基本的通信方法有 并行通信和串行通信两种。
1.并行通信
单位信息(通常指一个字节)的各位数据同时传送的通 信方法称为并行通信。
2.串行通信
单位信息的各位数据被分时一位一位依次顺序传送的通 信方式称为串行通信。
P1.0 P1.1 P1.2 P1.3 89C52 P1.4 P1.5 P1.6 P1.7 GND
D0 D1 D2 D3 D4 D5 D6 D7 GND
外 部 设 备
RXD TXD
89C52
TXD RXD 外 部 设 备 GND
GND
图1 并行通信示意图
图 2 串行通信示意图
异步通信和同步通信
1.异步通信 异步通信中,传送的数据可以是一个字符代码或一个字 节数据,数据以帧的形式一帧一帧传送。
串行接口的工作方式
1.方式0
2.方式1 3.方式2和方式3
方式1
工作方式1时,串口被设定为10位异步通信口。 TXD为数据发送引脚,RXD为数据接收引脚,所传送 的字符帧格式如图所示。
串口方式1的字符帧格式
方式1发送
在TI = 0时,当执行一条写SBUF的指令后, 即可启动串行口发送过程: 发送电路自动在写入SBUF中的8位数据前 后分别添加1位起始位和1位停止位。在发送移 位脉冲作用下,从TXD引脚逐位送出起始位、数 据位和停止位。发送完一个字符帧后,自动维持 TXD线为高电平。并使发送中断标志TI置1,产 生串口中断请求。通过软件将TI清0,便可继续 发送。
DB-25和DB-9连接器
DB-25和DB-9连接器
RS-232C的引脚功能
引脚 序号 1 2(3) 3(2) 信号 名称 PGND TXD RXD 功 能 保护(屏蔽)接地 发送数据(串行输出) 接收数据(串行输入) DTE→DCE DTE←DCE 信号方向
4(7)
5(8) 6(6) 7(5)
电源控制寄存器PCON
PCON的字节地址为87H,不能按位寻址,只能 按字节寻址。各位的定义如图9-16所示。其中,只 有一位SMOD与串行口工作有关。编程时只能使用 字节操作指令对它赋值。
图9-16 电源控制寄存器
PCON控制位的名称和功能
SMOD(PCON.7):波特率倍增 位。在串行口方式1、方式2、方式3中,用 于控制是否倍增波特率。当SMOD = 0时, 波特率不倍增;当SMOD = 1时,波特率提 高一倍。
RS-232C与51系列单片机的连接
由于51系列单片机的串行口不是标准 RS-232C接口,采用的是正逻辑TTL电平: 即逻辑1为+2.4V;逻辑0为+0.4V。
所以使用RS-232C接口将51系列单片机 与计算机或其他具有RS-232C接口的设备进 行连接时,必须考虑电平转换问题。
通常使用专用的电平转换芯片来进行电 平转换。
SCON各位名称和功能
TB8(SCON.3):发送数据第9位。在 方式2或方式3中,用于存放发送数据的第9 位,此时,该位可以用作奇偶校验位,在多 机通信中,可以作为地址帧/数据帧的标志 位。 REN(SCON.4):允许接收控制位。 若使REN=1,则启动串行口接收数据;若 使REN=0,则禁止串口接收。
信号 名称 — SDCD SCTS STXD TXC SRXD RXC — SRTS DTR SQD RI DRS ETXC —
功 能
未定义 辅助信道载波检测 辅助信道允许发送 辅助信道发送数据 发送时钟 辅助信道接收数据 接收时钟 未定义 辅助信道请求发送 DTE就绪(数据终端准备就绪) 信号质量检测 振铃指示 数据信号速率选择 外部发送时钟 未定义
SCON各位名称和功能
SM2(SCON.5):多机通信控制位。主要用于方 式2和方式3中。(一般设置为0) 若接收方单片机的SM2 = 1,则由收到的RB8来控 制是否使RI置1:当收到的RB8 = 0时, RI不被置1, 收到的信息被丢弃;当收到的RB8 = 1时,收到的数 据进入SBUF(接收),并将RI置1,向CPU发出串口 中断请求,接收方可在串口中断服务中将数据从 SBUF(接收)中读走。也可以通过查询RI的办法, 在发现RI为1后,将SBUF(接收)中的数据读走。
串行接口的结构
51单片机串行口的结构
串行口由发送电路和接收电路两部分组成。图中有 两个物理上独立的串行口接收、发送缓冲器SBUF。 SBUF(发送)用于存放将要发送的字符数据; SBUF(接收)用于存放串行口接收到的字符数据,数 据的发送、接收可同时进行。 SBUF(发送)和SBUF(接收)同属于特殊功能 寄存器SBUF,占用同一个地址99H。但发送缓冲器只 能写入,不能读出;接收缓冲器只能读出,不能写入。 因此,对SBUF进行写操作时,是把数据送入SBUF(发 送)中;对SBUF进行读操作时,读出的是SBUF(接收 )中的数据。
表
SM0 SM1
串行口的工作方式
功 能
移位寄存器 10位异步收发(8位数据) 11位异步收发(9位数据) 11位异步收发(9位数据)
工作方式
0 1 2 3
波特率
fosc/12 可变,由定时器控制 fosc/64或fosc/32 可变,由定时器控制
0 0 1 1
0 1 0 1
SCON各位名称和功能
RI(SCON.0):接收中断标志位。用 于指示一帧信息是否接收完毕它的工作过 程是:当串行口接收到停止位时;由内部 硬件电路使RI=1。一旦RI被硬件置1,便 产生串口中断请求
第n个字符 停 止 位 0/1 0/1 1 起 始 位 0 校 验 位 停 止 位 1 起 始 位 0 第n+1个字符
8位数据
数据 0/1 0/1 „
0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1
异步通信的一帧数据格式
2.同步通信
在同步通信中,每一数据块发送开始时,先发送一个或 两个同步字符,使发送与接收取得同步,然后再顺序发送数 据。数据块的各个字符间取消起始位和停止位,所以通信速 度得以提高 。
串口发送过程
当单片机执行“写”SBUF命令时,将欲发 送的字符送入SBUF(发送)后,发送控制器 在发送时钟的作用下,自动在发送字符前后添 加起始位、停止位和其他控制位,然后在发送 时钟的控制下,逐位从TXD线上串行发送字符 帧。发送完后使发送中断标志TI=1,发出串口 发送中断请求。
串口接收过程
信号方向
DTE←DCE DTE←DCE DTE→DCE DTE←DCE DTE←DCE DTE←DCE DTE→DCE DTE→DCE DTE←DCE DTE←DCE DTE→DCE DTE→DCE
RS-232C的电气特性
RS-232C的信号电平:RS-232C标准 规定采用负逻辑电平。信号源点的逻辑0电平 范围为+5V~+15V,逻辑1电平范围为−5V~ −15V;信号目的点的逻辑0电平范围为+3V ~+15V,逻辑1电平范围为−3V~−15V,噪 声容限为2V。RS-232C的信号电平下图所示 。
串行接口的控制寄存器
1.串行口控制寄存器SCON 2.电源控制寄存器PCON
串行口控制寄存器SCON
SCON用于设定串行口的工作方式、接收/发送 控制以及设置状态标志等。它的字节地址为98H, 可进行位寻址,其各位的定义如图所示。
图9-15 串行口控制寄存器
SCON各位名称和功能
SM0和SM1(SCON.7和SCON.6):串行口工作 方式选择位。可选择4种工作方式,如表所示。
SCOห้องสมุดไป่ตู้各位名称和功能
TI(SCON.1):发送中断标志位。用 于指示一帧信息是否发送完毕它的工作过 程是:开始串行发送停止位时,由内部硬 件电路使TI=1,并向CPU发出串口中断请 求。与RI标志的清除方法相似,TI也必须 通过软件才能将其清0
SCON各位名称和功能
RB8(SCON.2):接收数据第9位。在 方式2或方式3中,用于存放接收数据的第9 位,此时,该位可能是奇偶校验位,也可 能是多机通信中的地址帧/数据帧的标志位 。在方式1时,若SM2=0,则RB8为接收到 的停止位。方式0时,不使用RB8。
MAX232电平转换芯片 MAXIM公司生产MAX232。它仅需要+5V电源, 由内置的电子泵电压转换器将 +5V转换成 −10V ~+10V。该芯片与TTL/CMOS电平兼容,片内 有2个发送器和2个接收器,使用比较方便。由它 构成的电平转换电路如图所示。