单片机05:串行通信._第1页
单片机05:串行通信._第2页
单片机05:串行通信._第3页
单片机05:串行通信._第4页
单片机05:串行通信._第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五章第五章 MCS-51MCS-51单片机串行数据通信单片机串行数据通信 第一节第一节 串行通信基础知识串行通信基础知识 第二节第二节 MCS-51MCS-51串行通信简介串行通信简介 第一节第一节 串行通信基础知识串行通信基础知识 一、串行通信基本原理一、串行通信基本原理 1.1.计算机的数据传送方式:计算机的数据传送方式: 并行数据传送和串行数据传送并行数据传送和串行数据传送 并行数据传送的特点:并行数据传送的特点:各数据位同时传送,控制简单各数据位同时传送,控制简单, , 速度快、效率高;成本高,且距离通常小于速度快、效率高;成本高,且距离通常小于3030米。米。 计算机内部的数据传送

2、都使并行数据传送。计算机内部的数据传送都使并行数据传送。 串行数据传送的特点:串行数据传送的特点:数据传送按位数需进行,最少只数据传送按位数需进行,最少只 需一根传输线,成本低需一根传输线,成本低, ,可利用电话网等现成的设备;可利用电话网等现成的设备; 速度慢速度慢, ,控制复杂。距离可从几米到几千公里。控制复杂。距离可从几米到几千公里。 计算机通信计算机通信(串行通信串行通信)是指计算机与外部设备或计算机是指计算机与外部设备或计算机 与计算机之间的信息交换与计算机之间的信息交换。 在多微机系统以及现代测控系统中信息的交换多采用在多微机系统以及现代测控系统中信息的交换多采用 串行通信方式。串

3、行通信方式。 串行通信的方式串行通信的方式: : 异步通信异步通信是指通信的发送与接收设备使用各自的时钟是指通信的发送与接收设备使用各自的时钟 控制数据的发送和接收过程。为使双方的收发协调,控制数据的发送和接收过程。为使双方的收发协调, 要求发送和接收设备的时钟尽可能一致。要求发送和接收设备的时钟尽可能一致。 异步通信是以异步通信是以字符字符(构成的帧构成的帧)为单位进行传输,)为单位进行传输, 字符与字符之间的间隙(时间间隔)是任意的,但每个字符与字符之间的间隙(时间间隔)是任意的,但每个 字符中的各位是以固定的时间传送的,即字符之间是异字符中的各位是以固定的时间传送的,即字符之间是异 步的

4、但同一字符内的各位是同步的。步的但同一字符内的各位是同步的。 2.2.异步串行通信的字符格式异步串行通信的字符格式: : 异步和同步方异步和同步方 式式 5 不要求收发双方时钟的严格一致,实现容易,设备开不要求收发双方时钟的严格一致,实现容易,设备开 销较小,但每个字符要附加销较小,但每个字符要附加2 23 3位用于起止位,各帧位用于起止位,各帧 之间还有间隔,因此传输效率不高。之间还有间隔,因此传输效率不高。 异步异步串行通信的字符格式串行通信的字符格式: : 异步通信的特点异步通信的特点: (2)同步通信。 同步通信中,在数据开始传送前用同步字符来指示(常约定12个), 并由时钟来实现发送

5、端和接收端同步,即检测到规定的同步字符后, 下面就连续按顺序传送数据,直到通信告一段落。同步传送时,字符 与字符之间没有间隙,也不用起始位和停止位,仅在数据块开始时用 同步字符SYNC来指示。 下图: 同步传送的数据格式 二、串行通信的传输方向二、串行通信的传输方向 单工单工 半双工半双工 全双全双 工工 1 1、单工单工是指数据传输仅能沿一个方向,不能实现反向是指数据传输仅能沿一个方向,不能实现反向 传输。传输。 2 2、半双工半双工是指数据传输可以沿两个方向,但需要分时是指数据传输可以沿两个方向,但需要分时 进行。进行。 3 3、全双工全双工是指数据可以同时进行双向传输。是指数据可以同时进

6、行双向传输。 三、串行通信的信号形式三、串行通信的信号形式 近程和远程的串行通信的信号形式不同近程和远程的串行通信的信号形式不同 1.1.近程通信近程通信( (本地通信本地通信) ) 采用数字信号直接传送采用数字信号直接传送, ,在传送过程中不改变原数据在传送过程中不改变原数据 代码的波形和频率代码的波形和频率. .这种数据传送方式这种数据传送方式称为基带传送称为基带传送 方式方式. . 寄存器寄存器串行接口串行接口 计算机计算机A A TTLTTL电平电平 寄存器寄存器串行接口串行接口 计算机计算机B B TTLTTL电平电平 RS-232RS-232 电平电平 2.2.远程通信远程通信 1

7、1 利用利用调制器调制器(Modulator)(Modulator)把数字信号转换成模拟信号,把数字信号转换成模拟信号, 然后送到通信线路上去,再由然后送到通信线路上去,再由解调器解调器(Demodulator)(Demodulator)把把 从通信线路上收到的模拟信号转换成数字信号。从通信线路上收到的模拟信号转换成数字信号。 通信是双向的,调制器和解调器合并在一个装置中,通信是双向的,调制器和解调器合并在一个装置中, 这就是通常说的这就是通常说的调制解调器调制解调器MODEMMODEM。 四、传输速率四、传输速率 :波特率:波特率 1、波特率,、波特率,即数据传送速率,表示每秒钟传送二进制即

8、数据传送速率,表示每秒钟传送二进制 代码的位数,即每秒传送一个数据位就是代码的位数,即每秒传送一个数据位就是l波特。单位是波特。单位是 位位/秒(秒(b/s)。)。1波特波特=1 bps(b/s) 波特率是通信协议的内容之一。假设数据传送速率是波特率是通信协议的内容之一。假设数据传送速率是 120字符字符/秒,而每个字符格式包含秒,而每个字符格式包含10个二进制位个二进制位(1个起个起 始位,始位,8个数据位,无校验位,个数据位,无校验位,1个终止位个终止位),这时通信波,这时通信波 特率为特率为: 10120 b/s=1 200 b/s 异步通信的常用波特率在异步通信的常用波特率在50l9

9、200 b/s之间。之间。 2、接收、接收/发送时钟。发送时钟。 在串行通信过程中,二进制数字以信号波形的形式出在串行通信过程中,二进制数字以信号波形的形式出 现。不论接收还是发送,都必须有时钟信号对传送的数现。不论接收还是发送,都必须有时钟信号对传送的数 据进行定位。据进行定位。 6串行通信的过程及通信协议 两个通信设备在串行线路上实现成功的通信必须解决两 个问题:一是串-并/并-串的转换,即如何把要发送的并行 数据串行化,把接收的串行数据并行化;二是设备同步, 即发送设备和接收设备的工作节拍相同,以确保发送数据 在接收端被正确读出。 (1)串-并/并-串的转换。 串行通信是将计算机内部的并

10、行数据转换成串行数据, 将其通过一根通信线传送,并将接收的串行数据再转换成 并行数据送到计算机中。 在计算机发送串行数据之前,计算机内部的并行数据被 送入移位寄存器并一位一位地移出,将并行数据转换成串 行数据。在接收数据时,来自通信线路的串行数据被送入 移位寄存器,满8位后并行送到计算机内部。在串行通信 控制电路中,串-并/并-串转换逻辑被集成在串行异步通信 控制器芯片中。 (2)设备同步。 进行串行通信的两台设备必须同步工作才能有 效地检测通信线路上的信号变化,从而采样传送 数据脉冲。设备同步对通信双方有两个共同要求: 一是通信双方必须采用统一的编码方法;二是通 信双方必须能产生相同的传送速

11、率。 (3)串行通信协议。 通信协议是对数据传送方式的规定,包括数据 格式定义和数据位定义等。通信方式必须遵从统 一的通信协议。串行通信协议包括同步协议和异 步协议两种,本书只讨论异步串行通信协议。 5.1.2 串行接 口电路: 串行数据通信 主要有两个技 术问题:一个 是数据传送, 另一个则是数 据转换。 图图5-10 UART基本组成框图基本组成框图 第二节第二节 MCS-51MCS-51串行通信简介串行通信简介 串行通信的两个技术问题串行通信的两个技术问题: :一个是数据传送一个是数据传送( (第一节第一节) ) 另一个是另一个是数据转换数据转换. . 数据转换数据转换由串行接口电路实现

12、由串行接口电路实现,这种电路称为通用异步这种电路称为通用异步 接收发送器接收发送器(UART). 一、一、MCS-51MCS-51串行口及控制寄存器串行口及控制寄存器( (串口串口) ) 1.1.串口的结构串口的结构 有两个物理上独立的接收、发送缓冲器有两个物理上独立的接收、发送缓冲器SBUFSBUF,它们,它们 占用同一地址占用同一地址99H 99H ;接收器是双缓冲结构避免产生;接收器是双缓冲结构避免产生 重叠错误。重叠错误。 (P3.1) (P3.0) 2. 2. 串行口的控制寄存器串行口的控制寄存器(SCON) (98H)(SCON) (98H) SM0SM0SM1SM1SM2SM2R

13、ENRENTB8TB8RB8RB8RIRITITI (2)SM2多机通信控制位。 因多机通信是在方式2和方式3下进行,因此SM2位主 要用于方式2和方式3。当串行口以方式2或方式3接收时, 如SM2=l,则只有当接收到的第9位数据 (RB8)为“l”, 才将接收到的前8位数据送入SBUF,并置位RI产生中断 请求;否则,将接收到的前8位数据丢弃。而当SM2=0时, 则不论第9位数据为“0”还是为“l”,都将前8位数据装入 SBUF中,并产生中断请求。在方式0时,SM2必须为 “0”。 (3)REN允许接收位。 REN位用于对串行数据的接收进行控制: REN=0 禁止接收 REN=1 允许接收

14、该位由软件置位或复位。 (4)TB8发送数据位8。 在方式2和方式3时,TB8的内容是要发送的第9位数据,其 值由用户通过软件设置。在双机通信时,TB8一般作为奇偶校 验位使用;在多机通信中,常以TB8位的状态表示主机发送的 是地址帧还是数据帧,且一般约定:TB8=0为数据帧, TB8=1为地址帧。 (5)RB8接收数据位8。 在方式2或方式3时,RB8存放接收到的第9位数据,代表着接 收数据的某种特征 (与TB8的功能类似),故应根据其状态对接 收数据进行操作。 (6)TI发送中断标志。 当方式0时,发送完第8位数据后,该位由硬件置位。在其他 方式下,于发送停止位之前,由硬件置位。因此TI=

15、1,表示 帧发送结束,其状态既可供软件查询使用,也可请求中断。 TI位由软件清“0”。 (7)RI接收中断标志。 当方式0时,接收完第8位数据后,该位由硬件置位。在其他 方式下。当接收到停止位时,该位由硬件置位。因此RI=1, 表示帧接收结束。其状态既可供软件查询使用,也可以请求中 断。RI位由软件清“0”。 EAEAESESET1ET1EX1EX1EX0EX0ET0ET0 3. 3. 中断允许控制寄存器中断允许控制寄存器IE (A8HIE (A8H)()(已讲已讲) ) SOMDSOMD 4. 4. 电源控制寄存器电源控制寄存器PCON (87H)PCON (87H) 其中其中 ES为串行中

16、断允许位:为串行中断允许位: ES=0 禁止串行中断禁止串行中断 ES=1 允许串行中断允许串行中断 (1)SMOD:在串行口工作方式:在串行口工作方式 1、2、3 中,是波特率加倍位中,是波特率加倍位 SMOD=0时,波特率不加倍时,波特率不加倍 SMOD=1时,波特率加倍时,波特率加倍 系统复位时,系统复位时,SMOD=0 (在在PCON中只有这一个位与串口有关中只有这一个位与串口有关) 5.3.1 工作方式0及应用 在方式0下,是把串行口作为同步移位寄存器使用,数 据发送与接收如下图: 发送数据发送数据 接收数据接收数据 【例5-1】 利用串行口工作方式0扩展出8位并行I/O口,驱动共阳

17、极 LED数码管显示09。电路连接如图5-14。 把89C51串行口8位状态码串行移位输出后,TI置“l”,把Tl作为 状态查询标志,则使用查询方法完成的串行口和CD4094驱动共阳极 LED数码管(查表)显示0-9数字的参考 子程序如下: DSPLY:MOV DPTR, #TABLE MOVC A, A+DPTR MOV SBUF, A JNB TI, $ CLR TI RET TABLE:DB 0C0H,0F9H,0A4H 0B0H,99H DB 92H,82H,0F8H,80H,90H 【例5-2】用51单片机串行口外加移位寄存器CD4014(或 74LSl65,166)扩展8位输入口,

18、输入数据由8个开关提供, 另有一个开关K提供联络信号。当K=0时,表示要求输入 数据,输入的8位为开关量,提供逻辑模拟子程序的输入 信号。如图6-15所示。 解:串行口方式0的接收要用SCON寄存器中的REN位作 为开关来控制。因此,初始化时,除了设置工作方式之外, 还要使REN位为l,其余各位仍然为0。 对RI采用查询方式来编写程序,当然,先要查询开关K是 否闭合。 参考程序: START:MOV SCON,#10H ;串行口方式0初始化 JB P1.l,$ ;开关K未闭合,等待 SETB Pl.0 ;P/=1,并行置入数据 CLR Pl.0 ;P/=0,开始串行移位 JNB RI,$ ;查

19、询RI CLR RI ;查询结束,清RI MOV A,SBUF ;读数据到累加器 ACALL LOGSIM ;进行逻辑模拟 SJMP START ;准备下一次模拟 5.3.2 工作方式1及应用 方式l是10位为一帧的异步串行通信方式。共包括1 个起始位,8个数据位和1个停止位。其帧格式为: 1数据发送与接收数据发送与接收 方式方式1的数据发送是由一条写发送寄存器的数据发送是由一条写发送寄存器(SBUF)的指的指 令开始,令开始,随后在串行口由硬件自动加入起始位和停止位,随后在串行口由硬件自动加入起始位和停止位, 构成一个完整的帧格式,然后在移位脉冲的作用下,由构成一个完整的帧格式,然后在移位脉

20、冲的作用下,由 TXD端串行输出。端串行输出。 接收数据时,接收数据时,SCON的的REN位应处于允许接收状态位应处于允许接收状态 (REN=1)。随后在移位脉冲的控制下,把接收到的数据位。随后在移位脉冲的控制下,把接收到的数据位 移入接收寄存器中。移入接收寄存器中。直到停止位到来之后置位中断标志位直到停止位到来之后置位中断标志位 RI,通知,通知CPU从从SBUF取走接收到的一个字符。取走接收到的一个字符。 2波特率的设定 方式0的波特率是固定的,但方式l的波特率则 是可变的,以定时器T1作波特率发生器使用,其值 由定时器l的计数溢出率来决定,其公式为: 波特率= (定时器1溢出率) 其中s

21、mod为PCON寄存器最高位的值,其值为l或0。 当定时器l作波特率发生器使用时,选用工作方式 2(即8位自动加载方式)。假定计数初值为X,则计数 溢出周期为: 波特率= 32 2 mods )256(1232 2 mods X fosc 例5-3】假定甲、乙机以方式1进行串行数据通信,其波特 率为l 200 bps。甲机发送,发送数据在外部RAM 4000H401FH单元中。乙机接收,并把接收到的数据块 首末地址及数据依次存入外部RAM 5000H开始的区域中。 如图5-16所示。 解题说明: (1)假设晶振频率为6MHz,按l200波特率,计算定时器 1的计数初值。 (2)smod=0,波

22、特率不倍增,则应使PCON=00H。 (3)串行发送的内容包括数据块的首末地址和数据两部 分内容。对数据块首末地址以查询方式传送,而数 据则以中断方式传送。因此在程序中要先禁止串行 中断,后允许串行中断。 (4)数据的传送是在中断服务程序中完成的。数据为 ASCII码形式,其最高位作奇偶校验位使用。51单 片机的PSW中有奇偶校验位P,当累加器A中l的数 目为奇数时,P=1。 具体程序参见书 5.3.3 工作方式2及应用 方式2是11位为一帧的串行通信方式,即1个起 始位、9个数据位和1个停止位。 在方式2下,字符还是8个数据位。而第9数据 位既可作奇偶校验位使用,也可作控制位使用, 其功能由用户确定,发送之前应先在SCON的 TB8位中准备好。这可使用如下指令完成: SETB TB8 ;TB8位置1 CLR TB8 ;TB8位清0 方式方式2的波特率是固定的,且有两种。的波特率是固定的,且有两种。一种是晶振频率的一种是晶振频率的1/32; 另一种是晶振频率的另一种是晶振频率的1/64。即。即fosc/32和和fosc/64。如用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论