290 likes | 529 Views
3-1 双机通信. 项目引入. 在多机控制系统中,双机通信是常见的应用形式。 对讲机. 课堂任务:. 组装 AT89C51 单片机控制一个 8×8 点阵字符显示器的系统,逐字显示“电子设计”四个字。. 跟我想. 1 、通信双方硬件如何连接? 2 、通信双方如何协调收发过程?. 跟我学. 第 9 章 串行接口串行通讯技术. 9. 1 串行通讯的基础知识 9.2 AT89C51 的串行接口. 9.1 串行通信的基础知识. 1 、并行与串行
E N D
项目引入 • 在多机控制系统中,双机通信是常见的应用形式。 对讲机
课堂任务: • 组装AT89C51单片机控制一个8×8 点阵字符显示器的系统,逐字显示“电子设计”四个字。
跟我想 • 1、通信双方硬件如何连接? • 2、通信双方如何协调收发过程?
第9章 串行接口串行通讯技术 9.1 串行通讯的基础知识 9.2 AT89C51的串行接口
9.1 串行通信的基础知识 1、并行与串行 并行:按照信息数据的基本单位,多位同时传送的方式。 串行:按照信息数据的最小单位顺序传送的方式。 2、同步与异步 同步通信:同步字符邀请并应答进入同步传输过程, 信息的各位二进制码之间都没有间隔。 其基本特征是发送与接收时钟始终保持严格同步。
异步通信是按帧传送数据, 它利用每一帧的起‘0’、止信号‘1’来建立发送与接收之间的同步。每帧内部各位均采用固定的时间间隔, 但帧与帧之间的时间间隔是随机的。其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志, 它是以字符为单位一个个地发送和接收的。 3、 波特率 4、串行通信的制式:单工,半双工,全双工 5、校验:奇偶校验,和校验,CRC校验
9.2 AT89C51的串行接口 9.2.1 串行口的控制 9.2.2 串行口的工作方式 9.2.3 多机通信
9.2.1 串行口的控制 1、发送器和接收器SBUF 串行口缓冲器SBUF其内部RAM字节地址是99H。 在物理上, 它对应着两个独立的寄存器, 一个发送寄存器, 一个接收寄存器。发送时, 就是CPU写入SBUF;接收时, 就是读取SBUF的过程。
2、串行口控制寄存器SCON SCON用于控制和监视串行口的工作状态, 相应的各位功能介绍如下:
SM0、SM1: 用于定义串行口的操作模式, 两个选择位对应 4 种模式。 SM2:多机通信时的接收允许标志位。 在模式 2 和 3 中, 若SM2 = 1, 且接收到的第 9 位数据(RB8)是 0, 则接收中断标志(RI)不会被激活。在模式1中, 若SM2=1 且没有接收到有效的停止位, 则 RI不会被激活。 在模式 0 中, SM2 必须是 0。
REN:串行接收允许位。由软件置位或清零,‘1’ :允许接收;’0’:禁止接收。 TB8:在方式2或方式3中,是将要发送的第九位数据,由软件置位或清零,它可作为数据奇偶校验位,也可在多机通信中作为地址帧或数据帧的标志位使用。 RB8:在方式2或方式3中,是己接收到的第九位数据,可作为奇偶校验位。在多机通信中也可作为地址帧或数据帧的标志位。在方式1中,若SM2=0,则RB8是接收到的停止位。在方式0中,该位没有用。
3、电源控制寄存器PCON 特殊功能寄存器PCON中, 只有一位(最高位)SMOD与串行口的工作有关, 该位是串行口波特率系数的控制位: SMOD=1 时, 波特率加倍, 否则不加倍。 PCON的地址为 87H, 不可位寻址, 因此初始化时需要字节传送。
9.2.2 串行口的工作方式 1、方式 0 同步移位寄存器,RXD 输入输出,先低位后高位,TXD输出移位时钟。 (1) 方式 0 输出状态。 图 9.11 外接移位寄存器输出
(2) 方式 0 输入状态。 图9.12 外接移位寄存器输入
10位异步通信接口。数据位由 P3.0 (RXD)端接收, 由P3.1(TXD)端发送。波特率是可变的, 它取决于定时器 T1 的溢出速率及SMOD的状态。 一位起始位0, 8位数据位(低位在前)和一位停止位1。 (1)方式1 发送过程。 用软件清除 TI后, CPU执行任何一条以 SBUF为目标寄存器的指令, 就启动发送过程。数据由 TXD引脚输出, 此时的发送移位脉冲是由定时器 /计数器 T1 送来的溢出信号经过 16 或 32 分频而取得的。一帧信号发送完时, 将置位发送中断标志TI=1, 向CPU申请中断, 完成一次发送过程。 2、方式1
(2)方式1 接收过程。 • 用软件清除 RI后, 当允许接收位 REN被置位 1 时, 接收器以选定波特率的 16 倍的速率采样 RXD引脚上的电平, 即在一个数据位期间有 16 个检测脉冲, 并在第 7、 8、9 个脉冲期间采样接收信号, 然后用三中取二的原则确定检测值, 以抑制干扰。 并且采样是在每个数据位的中间, 避免了信号边沿的波形失真造成的采样错误。当检测到有从“1”到“0”的负跳变时, 则启动接收过程, 在接收移位脉冲的控制下, 接收完一帧信息。 当最后一次移位脉冲产生时能满足下列两个条件: • ① RI=0; • ② 接收到的停止位为 1 或 SM2=0。
3.方式2 和方式3。 串行口工作于方式2 和方式3 时, 被定义为 9 位异步通信接口。 它们的每帧数据结构是 11 位的: 最低位是起始位(0), 其后是 8 位数据位(低位在先), 第 10 位是用户定义位(SCON中的 TB8或 RB8), 最后一位是停止位(1)。方式2 和方式3 工作原理相似, 唯一的差别是方式2 的波特率是固定的, 即为 fOSC/ 32或 fOSC / 64; 而方式3的波特率是可变的, 与定时器 T1的溢出率有关。
9.2.4 波特率 串行口每秒钟发送或接收的数据位数称为波特率。 假设发送一位数据所需时间为T, 则波特率为 1/T。 (1) 模式 0 的波特率等于单片机晶振频率的 1/12, 即每个机器周期接收或发送一位数据。 (2) 模式 2 的波特率与电源控制器PCON的最高位SMOD的写入值有关: 即SMOD=0, 波特率为(1/64) fOSC; SMOD=1, 波特率为(1/32)fOSC。
(3) 模式 1 和模式 3 的波特率除了与SMOD位有关之外, 还与定时器 T1 的溢出率有关。 定时器 T1 作为波特率发生器, 常选用定时方式 2( 8 位重装载初值方式), 并且禁止 T1 中断。此时 TH1 从初值计数到产生溢出, 它每秒钟溢出的次数称为溢出率。 于是
假设某MCS - 51 单片机系统, 串行口工作于方式3, 要求传送波特率为1200 Hz, 作为波特率发生器的定时器T1工作在方式 2 时, 请求出计数初值为多少? 设单片机的振荡频率为6 MHz。 因为串行口工作于方式3 时的波特率为 所以
当SMOD=0 时, 初值TH1=256-6×106/(1 200×12×32/1) =243=0F3H 当SMOD=1 时, 初值TH1=256-6×106/(1200×12×32/2) =230=0E6H
跟我做 1、准备器件及单片机最小系统 2、设计硬件电路,焊接电路板 3、编写控制程序 4、程序下载,软硬件联调
跟我总结 1、与串口通信有关的SFR 2、串行口的工作方式与初始化
课后任务 • 1、编写实训报告:总结实训过程遇到的问题、解决方法和收获 • 2、如果通讯中,增加应答,如何实现?(提示:两机均可收发)