570 likes | 758 Views
第八章 MCS—51 串行通信. 8-1 串行通信基础 8-1-1 串行通信. 通信种类: 串行通信 :数据各位一位一位传输。传输距离较远; 并行通信 :数据字符所有位同时传输。速度快、效率高, 距离短。. 串行通信有 同步 和 异步 两种方式. 同步方式 :有严格的同步时钟控制。较少使用。. 异步方式 :不需要严格的同步信号,也不需要数据流的 连续性。在串行通信中常用。. 数据帧 (一帧数据):包含起始位(“ 0” 电平)、数据位、 奇偶校验位、停止位(“ 1” 电平)等组成。. 异步通信中接收和发送双方必须(至少)有两项设定:
E N D
第八章 MCS—51串行通信 8-1 串行通信基础 8-1-1 串行通信 通信种类: 串行通信:数据各位一位一位传输。传输距离较远; 并行通信:数据字符所有位同时传输。速度快、效率高, 距离短。
串行通信有同步和异步两种方式 同步方式:有严格的同步时钟控制。较少使用。 异步方式:不需要严格的同步信号,也不需要数据流的 连续性。在串行通信中常用。 数据帧(一帧数据):包含起始位(“0”电平)、数据位、 奇偶校验位、停止位(“1”电平)等组成。
异步通信中接收和发送双方必须(至少)有两项设定:异步通信中接收和发送双方必须(至少)有两项设定: (1)帧格式确定(帧字符长度) 如ASCII帧(字符)为10位。数据位7位,起始位、校验位、 停止位各一位。 (2)波特率的设定 波特率:每秒传输的位。 如120字符(帧)/秒,每帧数据10位,则传输速率为1200 波特率。
传输方向: 单工方式 半双工方式 全双工方式 所有串行接口电路都是以并行数据形式和CPU接口; 以串行数据形式和外部通信接口。
UART主要功能 1)数据的串化、反串化 数据串化:将并行数据变为串行数据;(发送器) 数据反串化:将串行数据变为并行数据;(接收器) 2)格式信息的插入和滤除 格式信息:异步通信格式中,启始位、奇偶校验位、停止位等。 串化过程:将格式信息插入,和数据位一起构成完整数据帧。 反串化过程:滤除格式信息,保留数据位。 3)错误检验 检验数据通信过程是否正确。
8-2 MCS-51单片机串行通信 MCS-51单片机将一个全双工串行通信接口电路集成 在单片机内。 直观的感觉 向SBUF中写入一个字节是同时写入(并行),向外发送则是一位一位地进行(串行)。 同样由外界向SBUF接收是一位一位进行(串行),而CPU是以字节形式(并行)从SBUF中读入。
串行接收的双缓冲结构 移位寄存器 数据缓冲器SBUF 一帧数据接收完,由移位寄存器装入SBUF,立即接收下一帧。要求主机应立即(在该帧接收结束之前)将SBUF中数据取走。否则前一帧数据将丢失。 发送由CPU操纵,不会发生帧重叠错误。将数据写入SBUF,通过移位脉冲一位一位地发送出去。
8-2-2 串行通信控制寄存器 与串行通信有关的寄存器共有三个。 1)串行控制寄存器SCON 字节地址:98H
各位功能说明: 1)SM0、SM1—串行口工作方式选择位
2)REN—允许接收位 控制串行数据的接收。 REN=0:禁止接收; REN=1:允许接收 通过软件置位、复位 3)TB8 在方式2、方式3下,要发送的第9位数据(格式信息),在多机通信中,通过TB8状态,来表示主机发送的是地址帧(1)还是数据帧(0)。 通过软件置位、复位。
4)RB8 接收数据的第9位。 在方式2、方式3时,存放接收到的第9位数据,代表接收数据的某些特征。
5)SM2—多机通信控制位 当串行口在方式2或方式3下进行数据接收时,如果SM2=1(允许多机通信),REN=1,则从机处于只有接收到RB8=1(地址帧)时,激发中断请求标志位RI,否则将接收到的前8位数据丢弃。 被确认的从机,复位SM2=0,接收RB8=0的数据帧。 RB8=1:地址帧 RB8=0:数据帧 SM2=1:多机通信方式 SM2=0:直通方式
6)TI—发送中断标志 方式0时,发送第8位数据后,硬件置位; 其他方式下,于发送停止位之前硬件置位。 TI=1,表示帧发送结束。其状态可软件查询,也可 申请中断。软件清零。 7)RI—接收中断标志 方式0时,接收完第8位数据后,硬件置位; 其他方式下,接收到停止位时,硬件置位。 RI=1,表示帧接收结束。其状态可软件查询,也可 申请中断。软件清零。
2) 电源控制寄存器PCON (波特率倍增控制寄存器) 字节地址:87H SMOD=1,串行口波特率加倍; SMOD=0,波特率正常。 系统复位时,SMOD=0。 PCON不可以进行位寻址。
中断允许控制寄存器(IE) 字节地址A8H ES:串行口中断允许位 ES=0:禁止串行口中断; ES=1:允许串行口中断。
8-3 MCS-51串行通信工作方式 4种工作方式
8-3-1 串行工作方式0 移位寄存器方式 RXD(P3.0):数据移位的入口和出口; TXD(P3.1):移位脉冲输入端 移位数据:一帧8位。低位在前,高位在后,没有起始位、 停止位
使用方式0,进行数据移位输入、输出时, 是将串行口作为并行口使用 是一种并行口扩展应用 数据发送:实现数据发送,须有串进并出移位 寄存器配合使用。
数据接收:须有并进串出移位寄存器配合使用 数据发送:当8位数据全部移出后,TI被自动置位 数据接收:当REN=1(允许接收),接收到8位数据 时,RI被自动置位。
方式0时,移位操作的波特率固定,为单片机 晶振频率1/12。 晶振fosc=6MHz,波特率为500K/秒,2s移位一次; 晶振fosc=12MHz,波特率为1M/秒,1s移位一次;
应用举例:(P180) 使用CD4094的并行输出端接8只发光二极管,将二极管从左至右依次点亮,并反复循环。 发光二极管共阴极连接
程序清单: MOV SCON,#00 ;方式0 CLS ES ;禁止串行中断 MOV A,#80H ;发光管左边亮起 DELR: CLR P1.0;关闭并行输出 MOV SBUF,A ;串行输出 JNB TI,$ ;状态查询 SETB P1.0;启动并行输出 ACALL DELAY ;状态维持 CLR TI ;清标志 RR A ;发光管右移 AJMP DELR ;继续
数据帧10位,起始位1位(低)、停止位1位(高)、数据帧10位,起始位1位(低)、停止位1位(高)、 数据位8位。 8-3-2 串行工作方式1 数据发送:写SBUF开始,通过串行口自动加入起始位、停止位(格式信息),形成完整帧格式。在移位脉冲作用下,由TXD端串行输出。一个字符帧发送完后,TXD端维持“1”状态,TI置1。通知CPU。
数据接收:REN=1,串行口采样RXD端,当采样到由1到0跳变时,认定接收到起始位。在移位脉冲作用下,把接收到的数据位移入接收寄存器中,直至将停止位移入RB8中,置位RI,通知CPU从SBUF取走接收到的字符。数据接收:REN=1,串行口采样RXD端,当采样到由1到0跳变时,认定接收到起始位。在移位脉冲作用下,把接收到的数据位移入接收寄存器中,直至将停止位移入RB8中,置位RI,通知CPU从SBUF取走接收到的字符。
8-3-3 串行工作方式2、3 11位UART方式 字符帧11位:起始位(低)1位、数据位8位、可程控 第9位数据、停止位(高)1位。 发送时第9位数据由SCON中TB8位提供,软件设置。 SETB TB8 CLR TB8 接收时第9位数据装入SCON中RB8位,系统自动装入。
波特率设定 方式0:波特率固定 方式1:波特率可变; 方式2:波特率为 方式3:波特率可变
对于可变波特率(方式1、3),其计算公式: Smod为PCON寄存器最高位值 定时器溢出率:单位时间定时器溢出的次数; 溢出率为溢出周期的倒数。 溢出周期:定时器溢出一次所需要的时间。
当定时器1作为波特率发生器时,通常选用定时工作方式2(8位自动加载)。当定时器1作为波特率发生器时,通常选用定时工作方式2(8位自动加载)。 设X为计数初值,则:
通常,是知道波特率,求计数初值X 实际使用时, 首先确定波特率; 再计算定时器1的计数初值; 然后进行定时器的初始化。 SMOD值可以通过 MOV PCON,#00H或 MOV PCON,#80H 设定
例题:假设晶振6M,波特率1200,计算定时器1计数初值。串行口工作方式1,写出相应的初始化程序。Smod=0,波特率不倍增。例题:假设晶振6M,波特率1200,计算定时器1计数初值。串行口工作方式1,写出相应的初始化程序。Smod=0,波特率不倍增。 T1工作方式2(8位寄存器自动加载)
初始化程序: MOV TMOD,#20H ;设置T1工作方式2 MOV TL1,#F3H ;计数初值 MOV TH1,#F3H ; SETB EA ;中断允许 CLR ES ;禁止串行中断 MOV PCON,#00H ;波特率不倍增 MOV SCON,#50H ;串行方式1,REN=1 SETB TR1 ;启动定时器1
8-4 单片机多机通信 多机通信:一台主机和多台从机之间的通信。 主从式多机通信
8-4-1 MCS-51单片机多机通信机制 数据的传递 主机发送信息,可以传送到各个从机或指定从机,各从机发送的信息只能被主机接收。 多机通信: 主机发送:地址帧,数据帧通过第9位数据确定。 TB8=1,地址帧 TB8=0,数据帧
从机接收 串行口工作在方式2,方式3下; 多机通信标志SM2(SCON.5)=1 检查接收到的第9位RB8(SCON2),当: RB8=1:地址帧,将数据装入SBUF,置位RI,发出接收中断请求; RB8=0:数据帧,在SM2=1,RB8=0时,接收数据丢弃 SM2=0:直通方式,不论RB8是0还是1,都将接收到的数据送SBUF,并发出中断请求。
对于所有从机,由于SM2=1,RB8=1,各自发出 中断请求。判断主机发送地址是否与本机相符, 若相符,则将从机SM2清0(变成直通方式),准备接收其后传送来的数据。 地址相符,SM2清0 多机通信:关键是地址帧的识别
多机通信过程 1)全部从机串行口工作方式初始化为2或3,置位SM2,允许中断; 2)主机置位TB8,发送要寻址的从机地址; 3)所有从机均接收主机发送的地址,进入中断进行地址比较; 4)确认寻址从机,自身SM2清0,向主机返回地址供主机核对; 5)核对无误,主机向被寻址从机发送命令,通知从机进行一对一数据通信
8-4-2 RS232串行通信总线标准 美国电子工业协会公布的串行通信总线标准(EIA) RS232(电压型总线标准)电平逻辑:负逻辑 带负载时:逻辑1:-5V~-12V; 逻辑0:+5V~+12V 不带负载:输出电平,-25V~+25V 输入电压,-25V~+25V
RS232串行信息格式 MCS-51串行通信采用TTL正逻辑 逻辑1:2.4V 逻辑0:0.4V
MCS-51的串行口和RS-232接口时必须进行电平转换 电平转换常用芯片: 传输驱动器:MC1488 传输接收器:MC1489 MC1488: 供电电压:12V,输入TTL电平,输出RS-232电平 MC1489: 供电电压:+5V,输入RS-232电平,输出TTL 电平
MCS-51与RS-232串行通信硬件接口 最简单RS-232连接
课程设计 某MCS-51单片机(8031)应用系统,实现如下功能: 16路开关量输入; 8路模拟量输入; 8路开关量输出; 1路D/A输出。 系统扩展8k*8位EPROM(2764),8k*8位RAM(6264),扩展一个4*8非编码键盘,用6位LED显示器进行显示,通过RS-232串行通信总线和PC机相连。 画出硬件原理图,给出ROM和RAM的地址范围以及各接口芯片的口地址。写出相应的初始化程序。
单片机系统可靠性技术 1、接地技术 接地类型 外壳接地:仪器外壳接地,和大地实实在在连接。接地电阻要尽可能小,也就是说:接地要完全、充分。 工作接地:通常是零电位参考点。
接地系统 在一个较大的单片机应用系统中,根据信号电压、电流的大小,以及电源的类别来设计接地系统。 通常有三种情况: 弱信号地(工作地):系统中小信号部分,以及相应的直流电源; 功率地:系统中继电器、电磁阀以及它们的驱动电路以及相应的驱动电源构成功率地;(功率大、易对弱信号产生干扰) 机壳地(安全地)。
相互独立的接地系统 伞状接地系统