第七章 串行口及串行通信
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.奇偶校验位 :。奇偶校验用于有限差错检测, 通信双方应约定一致的奇偶校验方式 .如果 选择偶校验,那么组成数据位和奇偶位的逻 辑“1”的个数必须是偶数;如果选择奇校验, 那么逻辑“1”的个数必须是奇数。 4.停止位约定 :停止位是一个字符数据的结束 标志,可以是1位或多位的高电平。 5.波特率设置 :每秒传送多少个二进制位, 叫 波特率,它的单位是位/秒(b/s或bps)。 6.握手信号约定
7.1.4 串行通信的过程及通信协议 通信协议是对数据传送方式的规定,包括数据 格式定义和数据位定义等。通信方式必须遵 从统一的通信协议。 1.起始位 :当通信线上没有数据被传送时,通 信线应处于逻辑“1”状态(高电平)。当发 送设备要发送一个字符数据时,首先发出一 个逻辑“0”信号(低电平),这个逻辑低电 平就是起始位。 2.数据位 :当接收设备收到起始位后,紧接着 就会收到数据位。
7.2 串行口及应用
7.2.1 89C51串行口 一.结构 MCS-51单片机内部的串行口有两个物理上独 立的接收、发送缓冲器SBUF,可同时接收和 发送数据。发送缓冲器只能写入不能读出, 接收缓冲器只能读出不能写入。两个缓冲器 占用同一个地址(99H)。
TI 移位时钟 发送SBUF TXD 写SBUF:MOV SBUF, A 内部BUS 读SBUF:MOV A,SBUF 接收SBUF 装载SBUF 移位时钟 输入移位寄存器 RI RXD
74HC164
P1.0
方式0发送时序
方式0接收时序
2.串行口方式1:10位异步串行通信方式,1位起 始位,8位数据位,1位停止位,波特率可变。 a.方式1发送 当执行数据写入发送缓冲器SBUF的命令时,就启动 了发送器开始发送。(MOV SBUF,A) b.方式1接收 在REN=1的前提下,并检测到起始位(RXD上检测 到由1到0的跳变),方法是以所设波特率的16倍 速率采样RXD引脚,其3次采样中至少有相邻两次 相同的值进行判断,在确认起始位有效后才开始接 收数据。
是一种非标准的串行接口 电路,但简单,对电气噪 声不敏感
为了提高传输率和通信距离, 由EIA所公布
一. RS-232C标准接口总线 是目前最常用的串行接口标准,用来实现计 算机与计算机之间,计算机与外设之间的数 据通信,适用于通信距离不大于15m,传输 速率最大为20KB/S。 信号特性:采用负逻辑:-5V~-15V为逻 辑“1”,+5V~+15V为逻辑“0” 接口引脚说明: 完整的RS-232C接口有22根线,采用标准 的25芯插头和插座
并同时满足一下两个条件,接收才有效,否 则该帧信息丢失: RI=0; SM2=0或收到停止位“1” 满足以上条件后,将接收到的数据装入接收 SBUF,并置位RI。
方式1收发时序
3.串行口方式2和方式3 11位异步通信,1位起始位,8位数据位, 1位可编程的第9位数据位和1位停止位,这 两种方式除了波特率的设置不同以外,其余 完全一样。 发送时,先将第9位数据位装入TB8中,然 后将要发送的数据写入SBUF中(执行MOV SBUF,A指令),即启动发送,发送完毕后 置位TI。接收时,REN=1,并检测到有效 起始位后,开始接收数据,当满足RI=0且 SM2=0或接收到的第9位数据为1时,前8 位数据位装入SBUF中,第9位数据位送入 RB8中,并置位RI。
7.1 串行通信基本知识
7.1.1 数据通信 并行通信 串行通信 7.1.2 串行通信的传输方式 1.单工方式 2.半双工方式 3.全双工方式
发送器
接收器
发送器 接收器
数据流
接收器 发 送 器
数据流 发送器 接收器 接收器
发送器
7.1.3 异步通信和同步通信 1.异步通信 2.同步通信
TB8:发送数据的第9位装入TB8中,由软件 置1或清0,在方式2、3中用,可作为奇偶 校验位,也可作为多机通信的地址帧或数据 帧的标志位,1为地址帧,0为数据帧,方式 0、1中此位未用。 RB8:在方式2、3时,接收数据的第9位装 入RB8中,在方式1时,如果SM2=0,RB8 是接收到的停止位,方式0中不用。 PCON 其中的SMOD是波特率选择位,方式1、2、 3时,波特率与2SMOD成正比。
解:初值计算 X=28-2SMOD×fosc/(384×波特率) 代入fosc和波特率,并设SMOD=1,得X=F3H 流程图:
中断服务程序: SBR1:JNB RI,SEND ACALL SIN SJMP NEXT SEND:ACALL SOUT NEXT:RETI
发送子程序: SOUT:CLR TI MOV A,@R0 MOV C,P CPL C MOV ACC.7,C INC R0 MOV SBUF,A RET
接收子程序: SIN:CLR RI MOV A,SBUF MOV C,P CPL C JC ERROR ANL A,#7FH MOV @R1,A INC R1 SJMP NEXT1 ERROR:… NEXT1:RET
(a)MC1488
(b)MC1489
1488
1489 RXD TTL
TXD
TTL
电平
RXD 1489 GND 89C51 (1)
RS232电平
1488
电平
TXD
GND 89C51 (2)
单片机之间的RS-232通信接口
MAX232实现电平转换(书181页,略) 二.单片机之间点对点异步通信程序设计(查询 方式和中断方式) 例1:设甲机发送,乙机接收,串行口工作于方式3, 第9位作奇偶校验位,两机均选用6MHZ的振荡 频率,波特率为2400b/s。通信功能为: 甲机:将片外数据4000H~407FH单元的内容向 乙机发送,等待乙机的回复信号,若正确,则发 送下一个数据,若错误,重发原数据。 乙机:接收甲机发送的数据,每接收一帧数据就进 行奇偶校验,若正确,则发送“00H”,若错误, 则发送“FFH”,并将正确的数据写入以4000H为 首的片外数据存储器中。
串行口方式2、3的时序
四、波特率的设置 方式0的波特率:fosc/12 方式2的波特率:fosc×2SMOD/64 方式1和方式3的波特率: 定时器T1的溢出率×2SMOD/32 T1初值计算(在模式2的情况下): X=28-2SMOD×fosc/(384×波特率) 注意:T1在作为波特率发生器时,如果T0不设 置在模式3下,则必须禁止T1的中断,否则 会产生不必要的中断。
开始 同步字符
终止 数据块 CRC字符
在异步通信中,数据是一帧一帧(包含一个字符代 码或一字节数据)传送。 在帧格式中,一个字符由四个部分组成:起始位、 数据位、奇偶校验位和停止位。即首先是一个起始 位“0”,然后是5~8位数据(规定低位在前,高位 在后),接下来是奇偶校验位(可省略),最后是停 止位“1”。 在同步通信中,数据开始传送前用同步字符来指示 (常约定1~2个),并由时钟来实现发送端和接收端 同步,即检测到规定的同步字符后,下面就连续按 顺序传送数据,直到通信告一段落。 在同步传送时,要求用时钟来实现发送端与接收端 之间的同步。为了保证接收正确无误,发送方除了 传送数据外,还要把时钟信号同时传送。
三.串行口的工作方式 1.方式0:串行口为同步移位寄存器输入/ 输出方式,其波特率固定为fosc/12。数据由 RXD(P3.0)端输入或输出,同步移位脉冲由 TXD(P3.1)端输出,发送、接收的是8位数据, 低位在先,高位在后。
P3.0 RXD A B P3.1 TXD CLK CLR Q0 Q7
例3:用第9个数据位作奇偶校验位,编制串 行口方式2的发送程序:
TRT:MOV SCON,#80H MOV PCON,#80H MOV R0,#50H MOV R7,#10H LOOP: MOV A,@R0 MOV C,PSW.0 MOV TB8,C MOV SBUF,A WAIT: JBC TI,CONT SJMP WAIT DJNZ R7,LOOP RET
例2:89C51串行口按双工方式收发ASCII字符, 最高位用来作奇偶校验位,采用奇校验方式,传送 的波特率为1200 b/s。 解:7位ASCII码加1位奇校验,采用方式1 所谓奇校验就是保证A中1的数目为奇数,方法是 把P的值取反后放入A的最高位。
MOV TMOD,#20H MOV TL1,#0F3H MOV TH1,#0F3H SETB TR1 MOV SCON,#50H MOV R0,#20H MOV R1,#40H ACALL SOUT SETB ES SETB EA SJMP $
7.3 通信硬件设计及单片机之间点对点异步通信
在计算机测控系统中,数据通信主要采用异 步串行通信方式,在设计通信接口时,要根 据需要选择标准接口。 美国电子工业协会(EIA)正 式公布,适合于短距离或带调 三类异步串行通信接口: 制解调器的通信场合
RS-232C(RS-232A,RS-232B) RS-449,RS-442,RS-423和RS-485 20mA电流环
7.2.2 89C51串行口的应用
例1:如书164页例7 -2 ORG 0000H AJMP MAIN ORG 0023H AJMP SBR ORG 0030H MOV SCON,#00H MOV A,#80H CLR P1.0 MOV SBUF,A
SJMP $ SBR:SETB P1.0 ACALL DELAY CLR TI RR A CLR P1.0 MOV SBUF,A RETI DELAY: … RET END
串行接口内部结构示意简图
二.串行口控制字及控制寄存器(SCON和PCON)
SCON
D7 D6
发送数据的 第9位。
接收数据的 第9位。
D5
D4
D3
D2
D1
D0
SCON
位地址
SM0
9F
SM1
9E
SM2
9D
REN
9C
TB8
9B
RB8
9A
TI
99
RI
98
SM0、SM1: 串行口的工 作方式设置 位
SM2:方式2和 方式3下,多 机通讯的控 制位。
第七章 89C51串行口及串行通信
学习目的及要求
熟悉数据通信中并行/串行、同步/异步、单工/双工以 及波特率等概念。 熟悉89C51串行口的基本结构,熟练掌握串行口控制 寄存器SCON各个位的含义及其控制功能。 熟练掌握89C51串行口的4种工作方式及其应用 熟悉RS-232C、RS-422A/RS-485标准接口总线及串 行通信硬件的设计。 熟悉单片机之间的接收/发送程序的设计思想,理解多 机通信的基本原理 了解89C51与PC机之间的通信硬件系统及软件设计
REN:允许串 行接收控制 位,由软件 置1或清0。
SM0 SM1
工作方 式
功能说明
波特率
0 0 1 1
0 1 0 1
0 1 2 3
同步移位寄存器(扩展I/O口) 10位异步收发方式 11位异步收发方式 11位异步收发方式
fosc/12 由T1控制 fosc/64或 fosc/32 由T1控制
SM2:允许方式2和方式3进行多机通讯控制位。在 方式2或方式3中,如果SM2=1,则接收到的第9 位数据(RB8)为0时不激活RI,接收到的数据丢失; 只有当收到的第9位数据(RB8)为1时才激活RI, 向CPU申请中断。如果SM2=0,则不论收到的第9 位数据(RB8)为1还是为0,都会将接收的前8数据 装入SBUF中。在方式1时,如果SM2=1,则只收 到有效的停止位时才会激活RI;若没有接收到有 效的停止位,则RI清零。在方式0中,SM2必须为 0。 REN:允许串行接收控制位 ,为1时允许接收,反 之禁止接收。 注:在串行通信中,如满足RI=0且REN=1的条件, 就允许接收数据,并装入接收SBUF中。
DTE
DTE
பைடு நூலகம்
A
DCE
公用电话交换网
DCE
B
IBM Compatible
Modem
Modem
IBM Compatible
RS-232C接口
RS-232C接口
电平转换:RS-232C规定的逻辑电平与一般微处 理器,单片机的逻辑电平是不一致的,必须进行电 平转换,可用MC1488和1489,或MAX232来实 现