[工学]第8章串行口

上传人:tia****nde 文档编号:70525805 上传时间:2019-01-17 格式:PPT 页数:64 大小:1.12MB
返回 下载 相关 举报
[工学]第8章串行口_第1页
第1页 / 共64页
[工学]第8章串行口_第2页
第2页 / 共64页
[工学]第8章串行口_第3页
第3页 / 共64页
[工学]第8章串行口_第4页
第4页 / 共64页
[工学]第8章串行口_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《[工学]第8章串行口》由会员分享,可在线阅读,更多相关《[工学]第8章串行口(64页珍藏版)》请在金锄头文库上搜索。

1、第八章 单片机的串行接口,主要内容 串行通信的基本概念 串行通信接口结构和工作原理 串行通信的应用编程,单片机应用于数据采集或工业控制时,往往作为 前端机安装在工业现场,远离主机,现场数据采用串 行通信方式发往主机进行处理,以降低通信成本,提 高通信可靠性。如图所示。,第一节 概 述,1.数据通信方式分类:并行通信与串行通信 并行通信:所传送数据的各位同时发送或接收, 数据有多少位就需要多少根数据线。 特点:速度快,成本高,适合近距离传输如计算机并口,打印机,8255。 串行通信:所传送数据的各位按顺序一位一位地发送或接收。可只需一根数据,一根地线,共2根(双向通信发送和接收各需1根数据线)。

2、 特点:成本低,硬件方便,适合远距离通信,传 输速度低。,2.串行通信的分类 同步和异步,异步串行通信一帧数据格式:,(1)异步串行通信,(2)同步串行通信 在同步通信中,发送方在数据或字符传送前,以12个字节的同步字符指示一帧的开始,由时钟信号来实现发送端和接收端同步,接收方一旦检测到同步字符就开始接收,发送方将连续按顺序传送若干个数据,最后发校验字节。,3.按通信方向分类 单工、半双工、全双工通信方式,(1)单工方式: 一端是发送端,另外一端是接收端,(2)半双工方式:,每端口有一个发送器和一个接收器, 通过开关连接在线路上,数据可以双向传送,但 不能同时发送和接收. 要通过换向器转换方向

3、。,(3)全双工方式 :,通信双方用两个独立的收发器单 独连接,可以同时发送和接收数据,因而提高了 速度。,4.串行接口的基本任务 在串行传输中,通信的双方都按通信协议进行,所谓通信协议就是通信双方必须共同遵守的一种约定,约定包括数据的格式、同步的方式、传送的步骤、检纠错方式及控制字符的定义等。 (1) 实现数据格式化 因为CPU发出的数据是并行数据,接口电路应实现不同串行通信方式下的数据格式化任务,如自动生成起止方式的帧数据格式(异步方式)或在待传送的数据块前加上同步字符等。,(2) 进行串、并转换 在发送端,接口将CPU送来的并行信号转换成串行数据进行传送;而在接收端,接口将接收到串行数据

4、变成并行数据送往CPU,由CPU进行处理。 (3) 控制数据的传输速率 接口应具备对数据传输率波特率的控制选择能力,即具有波特率发生器。 (4) 进行传送错误检测 在发送时,对传送的数据自动生成校验位或校验码,在接收端能检查校验位或校验码,以确定传送中是否有误码。,51系列单片机内有一个全双工的异步通信接口,通过对串行接口写控制字可以选择其数据格式,同时内部有波特率发生器,提供可选的波特率,可完成双机通信或多机通信。,波特率:单位时间(秒)内传送的二进制位数。 例如:100字符/秒,1个字符11位,波特率为: 10011=1100(波特) 平均每位传送占用时间: Td = 1/1100=0.9

5、09ms,(1)通信线的连接 不同的通信距离,串行通信电路有不同的连接方法,5.串行通信总线标准及接口,数字信号通过调制器变成模拟信号通过电话线传送到对方,接收方通过解调器将模拟信号转换成数字信号接收。,(2)串行通信接口总线标准,测控系统中,计算机通信主要采用异步串行通信方式,常用的异步总线标准有三种: RS-232(RS-232A RS-232B RS-232C) RS-449(RS422 RS423 RS485) 20mA电流环 这里重点介绍RS-232 RS-232C:速率: 20Kbit/s, 最大通信距离:15m RS422: 速率: 10Mbit/s, 传输距离: 120m 采用

6、低传输率时,如:90Kbit/s, 最大通信距离:1200m,抗干扰能力 采用标准的通信接口,本身具有一定的抗干扰能力,但是工业现场的情况往往很恶劣,因而要根据具体情况进行选择。 RS232C:一般场合 RS422: 共模信号比较强 光纤: 电磁干扰较强,6. RS232C,美国电子工业协会(EIA)公布的一种异步通信 标准。RS-232C的采用的D型连接器有25针的和9针的, 微机中都采用9针。各引脚功能如下: (1) 基本数据传送线 TXD:数据发送 RXD:数据接收 GND:信号地线 (2) 握手信号 RTS:请求发送信号 CTS:清除传送,是对RTS的响应信号 DCD:数据载波检测(输

7、入) DSR:数据通信准备就绪(输入) DTR:数据终端就绪,表明计算机已做好接收准备(输出),RS-232C标准: 设备之间通信的距离不大于15米 最大传输速率20Kb/s 采用负逻辑:“1” -5V-15V “0” +5V+15V 不带负载时输出电平:-25V+25V 输出短路电流: 0.5A 最大负载电容: 2500pF 当计算机采用RS232标准时必须通过电平转换。,TTL电平可以由专用集成电路转换成RS232C标准: 如:利用MC1488或75188实现 TTL RS232C 利用MC1489或75189实现 RS232C TTL 由于MC1488需要使用12V电源,一般在单片机 通

8、信中大量使用的是只需要+5V电源、具有发送和接 收的一体化芯片,如:MAX232、ICL232、ADM202等。,MAX232是EIA和TTL电平转换芯片。内部具有电压 提升电路,并有两路接收器和发送器。其连线和引脚 如图,MCS51之间的双机通信,MCS51和PC机的双机通信 MCS51和PC机的双机通信见下图,51单片机有一个可编程的全双工异步串行通信接口(UART),帧格式有8位、10位或11位,并能设置各种波特率,给使用者带来很大的灵活性。 一、串行口的内部结构,第二节 MCS-51的串行口结构,发送 SBUF (99H),门,8,8,图8.7 串行口结构框图,RXD(P3.0),TX

9、D(P3.1),中断,接收 SBUF (99H),定 时 器 T1 fosc 2,分频器,发送控制器,接收控制器,串寄 行存 控器 制 SCON (98H),输入移位寄存器,TI,RI,内 部 总 线,5l单片机通过引脚RXD(P3.0)串行数据接收端)和引脚TXD(P3.l)串行数据发送端)与外界进行通信。 图中有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H,可同时发送、接收数据。 发送缓冲器只能写入,不能读出,CPU写SBUF,一方面修改发送寄存器,同时启动数据发送。 接收缓冲器只能读出,不能写入。读SBUF,就是读接收缓冲器。,串行控制寄存器SCON 用以存放串行口的

10、控制和状态信息。 特殊功能寄存器PCON 最高位SMOD为串行口波特率的倍增控制位。 波特率发生器 可变波特率 定时器T1作为波特率发生器,改变计数初值就可以改变串行通信的速率; 固定波特率 以内部时钟的分频器作为波特率发生器。,发送时,执行指令MOV SBUF,A, 启动发送过程,数据并行送入SBUF,在发送时钟控制下,由低到高一位一位发送。一帧数据发送完毕,将TI置1。 接收时,在接收时钟控制下,由低位到高位顺序进入移位寄存器SBUF,一帧数据接收完毕,将RI置1。,二、串行通信的传送过程用下面简图说明,TI:发送中断标志位; RI:接收中断标志位; 在发送或接收完一帧数据后,由硬件将相应

11、标志置1。而任意一个标志为1,都会提出串行中断请求。 注意:TI和RI必须由软件清0。,由上述可知: 甲、乙方的移位时钟频率应相同,即应具有相同的波特率,否则会造成数据丢失。 发送方是先发数据再查标志,接收方是先查标志再收数据。 CPU通过指令和SBUF并行交换数据,并不能控制数据的串行移位,它只能查询标志位来确定数据的移位是否完成。,51单片机串行口是一个可编程接口,对它的编程只用两个控制字分别写入特殊功能寄存器: 串行口控制寄存器SCON(98H) 电源控制寄存器PCON(97H),三、串行口的控制寄存器,8.3 串行口的控制寄存器 8.3.1 串行口的控制寄存器SCON,SM0(SCON

12、.7)和SM1(SCON.6):串行口工作方式控制位,方式0 通过RxD输入和输出串行数据,TxD输出移位时钟。传输和接收8位数据,首先传送最低位。为固定波特率,波特率为fosc/12。 写SBUF启动发送。发送完毕后,硬件将TI置1。 只要满足条件REN=1且RI=0时,才启动接收。接收完毕后,硬件将RI置1。,方式1 TxD发送数据,RxD接收数据。一帧数据为10位,1个开始位(0)、8个数据位和1个停止位(1)。波特率由T1生成。 写SBUF启动发送。一帧数据发送完毕,硬件将TI置1。 检测到RxD引脚上的下降沿时开始接收。接收时,停止位放在SCON寄存器中的RB8位。只有满足以下条件,

13、才会将接收到的数据存入SBUF和RB8中,并将RI置1。 条件: RI=0; SM2=0,或者 接收到的停止位为1。,方式2和3 TxD发送数据,RxD接收数据。一帧数据为11位,1个开始位(0)、8位数据、可编程控制的第9个数据位和1个停止位(1)。发送时第9个数据位可以为0或1。接收时第9个数据位存放在SCON的RB8中。 方式2为固定波特率,波特率为fosc/32或fosc/64。 方式3为可变波特率,波特率由T1生成。 满足以下条件时,才接收数据,并将RI置1。 条件: RI=0; SM2=0 或 接收到的第9个数据位为1;,SM2:多机通信控制位 在方式2和方式3中,SM2为1时,如

14、果接收到的第9个数据位(RB8)为0,就不会激活RI。 第9个数据位(RB8)为1,表示该帧为地址帧。 多机通信中,首先主机发送地址帧,只有指定地址的从机才能接收数据。80C51中,地址确定由软件完成。 开始通信时,先将从机的SM2置1,此时从机等待主机发送地址帧。接收到地址帧后,同本机地址比较,若相同,则从机将SM2清0,等待主机发送数据。 在方式1中,SM2为1时,则只有接收到有效的停止位后,才会接收数据,并将RI置1。方式0下,SM2应该为0。,REN:串行接收允许位 由软件设置,0为禁止接收,1为允许接收。 TB8: 欲发送第9位数据 在方式2和3中,待发送的第9位数据。 RB8: 收

15、到的第9位数据 在方式2和3中,接收到的第9位数据。 在方式1中,存放接收到的停止位。,TI: 发送中断标志位。 发送前必须用软件清0,发送过程中TI保持为0,发送完一帧数据后,硬件将TI置 “1”,发送下一帧数据前,必须清0。 RI: 接收中断标志位。 接收前,必须用软件清0,接收过程中RI保持0,接收完一帧数据后,硬件将RI置“1”。接收下一帧数据前,必须清0。,PCON,87H,8.3.2 电源控制寄存器PCON,PCON的格式如下图所示,串行通信只用其中的最高位SMOD,SMOD : 波特率倍增位。在计算串行方式 1、2、3的波特率时,SMOD为0,不加倍; 为1,加倍。 PCON的字

16、节地址为87H, 只能字节寻址,初始化时SMOD=0.,8.4 串行口的应用编程,串行口的波特率有两种方式:固定和可变波特率 方式0:固定波特率,baud = fosc/12; 方式2:SMOD=0时,baud = fosc/64; SMOD=1时,baud = fosc/32。 方式1和方式3:可变波特率,由定时器1提供,此时T1工作于方式2。 baud = (Kfosc)/(3212(256 - TH1)) 若PCON中的SMOD为0,则K=1;否则,K=2。 根据波特率计算T1的计数初值的公式如下: TH1 = 256 - (Kfosc)/(384baud),串行通信的编程方式 查询方式 查TI或RI 是否为“1”。 中断方式 TI或RI为“1”,都会将串行中断请求置1。因而中断服务程序中需要查询SCON,判断引起中断的原因。 注意:两

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号