![[工学]第6章 51单片机串行通信_第1页](http://file.renrendoc.com/FileRoot1/2018-7/26/35024729-839a-4e1e-92d0-0a4ac6690eb4/35024729-839a-4e1e-92d0-0a4ac6690eb41.gif)
![[工学]第6章 51单片机串行通信_第2页](http://file.renrendoc.com/FileRoot1/2018-7/26/35024729-839a-4e1e-92d0-0a4ac6690eb4/35024729-839a-4e1e-92d0-0a4ac6690eb42.gif)
![[工学]第6章 51单片机串行通信_第3页](http://file.renrendoc.com/FileRoot1/2018-7/26/35024729-839a-4e1e-92d0-0a4ac6690eb4/35024729-839a-4e1e-92d0-0a4ac6690eb43.gif)
![[工学]第6章 51单片机串行通信_第4页](http://file.renrendoc.com/FileRoot1/2018-7/26/35024729-839a-4e1e-92d0-0a4ac6690eb4/35024729-839a-4e1e-92d0-0a4ac6690eb44.gif)
![[工学]第6章 51单片机串行通信_第5页](http://file.renrendoc.com/FileRoot1/2018-7/26/35024729-839a-4e1e-92d0-0a4ac6690eb4/35024729-839a-4e1e-92d0-0a4ac6690eb45.gif)
已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机技术基础教程与实践第 6章 51单片机串行通信 6.1 异步串行通信6.1.1 异步串行通信介绍串行通信就是同一时刻只传送一位信息,当一位发送之后,经过一段时间延迟,再发送下一位的通信。图示为两台单片机串行通信示意图,其中 UART是通用异步通信收发器, TX表示发射端, RX表示接收端。单片机技术基础教程与实践1. 异步通信数据格式异步是指通信中的发送方与接收方不使用同一个时钟源,收发双方各使用自己的时钟源来控制发送的速率和接收数据的时刻,为了保证时钟不一致导致的数据接收错误,在通信过程中必须约定两点:( 1)约定通信双方的通信速率和字符总长度。 ( 2)发送方应该发送接收方需要的起始位,以使接收方进行接收定位与再同步。在异步通信中,需要有双方认可的通信格式,一般由 4部分组成:起始位、 n位数据、奇偶校验位和停止位,这样一组信息称为一帧。起始位:起始位通常是逻辑 0,占用一位时间,表示一个新字符通信的开始。在不通信时,线路呈现逻辑 1,接收方不断检测逻辑 0,若是在多个逻辑 1后,出现一位 0,则表示一个新字符发过来,就准备接收数据,使接收方的时钟与起始位同步,顺利接收随后的数据。n位数据:起始位后紧跟的就是数据,数据位数可以是 5、 6、 7、 8、 9位,通常采用 8位、 9位为多,通常是低位在前,就是紧跟起始位的是最低位( LSB)。奇偶校验位:占一位,并不是必须的,常改作他用,传递一些特定信息。停止位:表示完成了一个字符的传输,用逻辑 1表示。可以是 1位或是 2位,但通常采用 1位。 单片机技术基础教程与实践波特率( Band rate): 波特率是单位时间内在串行通信中传送的比特数,定义为:波特率 =1/位时间带宽的概念:带宽 =(每帧包含的信息位数 /每帧包含的位数) *波特率下图中上侧为 8位数据位格式,下侧为 9位数据位格式,数据位中的最后一位与奇偶校验位共用。 单片机技术基础教程与实践2. 异步通信传送方式( 1)单工传送单工通信示意图如图所示。一方只发送,另一方只接收。只需要一条通信通道。 单片机技术基础教程与实践( 2)半双工传送半双工通信允许信息在两个方向上传输,但需要分时发送与接收,就是在某时刻,只能单工通信。只需要一条通信通道。图中 RTS信号是发送控制信号, 74125是三态缓冲器,通常情况下, RTS为高电平,通信双方都处于高阻状态;若是某一方需要发送,则使 RTS为低电平,使 74125输出通信数据。 单片机技术基础教程与实践( 3)全双工通信在某时刻,通信中的每一方既可以发送也可以接收,就是在发送的同时,也可以接收。这需要发送与接收两条通信通道。例如 RS232C通信。 单片机技术基础教程与实践4. 组网方式( 1)点对点通信点对点通信方式是一对一的双机通信方式:1)参加通信的节点只有两个,一个节点为主控器,另一个为被控器。2)通信线路为两个节点专用。3)不存在寻址问题。4)没有争夺线路控制权问题。( 2)一点对多点的通信一点对多点的通信,是一点主控器(主机),其他点为被控器(从机)。1)参与通信的节点多于两个。2)通信线路为多点拥有,但不是同时使用。3)一个节点为主控器,其他节点为被控器。4)主控器需要首先通过广播发送被控器地址,才能与被控器通信。5)被控器需具有地址检测功能。6)主控器控制通信线路,享有通信线路的使用权。7)一般只能主控器与一个被控器之间通信,而被控器之间不能通信。单片机技术基础教程与实践( 3)多主机通信多主机通信中具有多个主控器(主机),其特点如下。1)参与通信的节点有多个。2)通信线路为多点拥有,但不是同时使用。3)有多个节点为主控器(主机)。4)占据通信线路的节点,就是主控器,不占有通信线路的节点则为被控器。某一时刻只能有一个主控器(主机)占用通信线路与被控器通信5)主控器需要首先通过广播发送被控器地址,才能与被控器通信6)被控器需具有地址检测功能。7)具有争夺线路控制权问题,主控器需要有解决总线仲裁问题的功能。5. 串行通信模块单片机技术基础教程与实践 很多单片机具有串行通信模块( SCI), 又称为通用异步收发器( UART)。 串行通信模块的示意图如图所示。 单片机技术基础教程与实践( 1)波特率发生器波特率发生器通过对系统时钟进行分数分频,输出串行通信需要的波特率。由于系统时钟与波特率之间不是整数分频关系,因此很难分频出没有误差的波特率,通常低时钟频率误差大,高时钟频率误差小。 单片机技术基础教程与实践如果单片机时钟 fosc=4MHz, 设分频器分频比为 16,则 fclk=fosc/16=250000如果波特率为 9600,则波特率预置数 X为X+1=250000/9600=26.0417由此得到 X=25.0417取 X=25, 则实际波特率为: fclk/( 25+1) =9615.38实际误差为 ( 9615.38 9600) /9600=0.16%单片机技术基础教程与实践( 2)异步模式传送异步模式传送模块如下所示。1)模块有发送数据引脚 TXD。2) 10位或 11位的移位寄存器。3)发送缓冲寄存器 TXBUF。4) 模式控制位 M=0时,发送 8位数据, M=1时发送 9位数据。5)在 9位数据模式(模式位 M=1) 时,有写发送缓冲器 TXBUF的 T8位功能。单片机技术基础教程与实践当 8位新数据装载到发送缓冲寄存器 TXBUF中,就会被拷贝到移位寄存器中,接着加入开始位、停止位和 T8( M=1), 然后帧以波特率发生器发生的波特率移出一位。(注意,只有移位寄存器为空时,才能向发送缓冲寄存器中写入数据。 图中向下的箭头表示移位寄存器的移位时间,模式位 M=0时发送 8位数据, M=1时发送 9位数据。 单片机技术基础教程与实践控制发送硬件的实际时钟 TXCLK是波特率的 16倍,则每隔 16个脉冲,使移位寄存器移位一次,如图所示。发送过程(硬件自动完成)如下:1)使引脚 TXD=0, /发送启动位2)等待 16个脉冲3)使位计数器 n=0 /设置位计数器4)使引脚 TXD=Bn /发送数据位(最低位)5)等待 16个脉冲。6)使位计数器 n=n+1。 7) 如果位计数器 n7, 转移到第 4步,发送下一位。8)若 M=1, 则发送 9位数据,使引脚 TXD=T8。 9) 等待 16个脉冲。10)使引脚 TXD=1 发送停止位。11)等待 16个脉冲。单片机技术基础教程与实践( 2)异步模式接收异步模式接收示意图如图所示。 1)模块有接收数据的引脚 RXD。2) 10位或 11位的移位寄存器。3)只读的接收缓冲寄存器 RXBUF。4) 在 9位数据模式时( M=1), 一帧接收完毕后,读 R8数据位功能。在线路空闲情况下,接收器等待起始位(由 1跳变为 0的信号沿),接着每次从 RXD引脚移入一位到 10位或是 11位数据,然后去掉开始位和停止位,将 8位数据装入接收寄存器RXBUF, 将第 9位数据放入 R8( 若 M=1) 后设置读数据标志。如果移位寄存器完成移位后,接收缓冲寄存器 RXBUF已经有数据,则移位寄存器将等到接收缓冲寄存器内容被取走时,才将数据传送到接收缓冲寄存器。如果移位寄存器中有一帧数据,接收缓冲寄存器中也有一帧,若是 RXD引脚再来一帧,则溢出标志将被置位。 单片机技术基础教程与实践接收帧过程中的开始位时序。 图中 S指示接收器检测到起始位的时刻, R指示当接收移位寄存器移位的时刻,在 R时刻,引脚 RXD上的逻辑电平将被移位到移位寄存器。在时刻 R之前和 R之后 RXD引脚上的信号必须保证有效,为此接收器在检测到起始位的 1向 0跳变后,延迟半个位时间,因此需要比波特率快的时钟 RXCLK, 在此用快于波特率 16倍的时钟实现,就是用延迟 8个 RXCLK时钟的方法达到延迟半位的目的。单片机技术基础教程与实践接收过程(硬件自动完成)如下:1)如果引脚 RXD=1, 则等待。2)等待 8个时钟( RXCLK)。3) 如果引脚 RXD=1, 转移到步骤 1。4)使位计数器 n=0。5) 等待 16个脉冲。6)使数据位 Bn=RXD。7) 使位计数器 n=n+1。8) 如果位计数器 n7, 转移到第 5步。9)等待 16个时钟。10)如果模式控制位 M=1, 则使 R8=RXD, 读 R8位。11)等待 16个时钟。12)如果引脚 RXD=0, 使帧错误标志位 FE=1。单片机技术基础教程与实践6.1.2 RS232接口RS-232C是美国电子工业协会( EIA) 确定的接口标准, RS的英文是 “推荐标准 ”的意思, 232是标识号, C为修改次数,现在 RS-232C接口在 PC机上是标准配置。 该接口实际上只需要 3根线( TX、 RX和地线)就可以进行双工通信,通常都是使用封装为 DB9的 9芯接口。RS-232C规定的数据传输速率波特率为 50、 75、 100、 150、 300、 600、 1200、 2400、4800、 9600、 19200、 38400、 43000、 56000、 576000、 115200b/s, 驱动器允许有 2500pF的电容负载。 单片机技术基础教程与实践引脚号信号名称方向 信号功能1 DCD 向 RS-232C输入 外部送来的检测到载波信号2 RXD 向 RS-232C输入 接收数据3 TXD 从 RS-232C输出 发送数据4 DTR 从 RS-232C输出 数据准备就绪,外部设备可以传输5 GND 6 DSR 向 RS-232C输入 外部设备准备就绪信号7 RTS 从 RS-232C输出 请求外部设备发送数据信号8 CTS 向 RS-232C输入 外部设备送来的请求发送信号9 RI 向 RS-232C输入 外部设备送来的检测到电话的信号(振铃信号)单片机技术基础教程与实践参数 技术指标输出阻抗 +3V逻辑 1时输出逻辑电平(带 37k负载时) 15 5V逻辑 1时输入逻辑电平 3V单片机技术基础教程与实践3. 传输距离当传输波特率为 20kb/s时, RS-232C的推荐电缆长度为 15m( 50英尺)。4. 电平转换由于 RS-232C的接口电平与 TTL兼容接口电平标准不同,所以该接口与 TTL兼容电平连接时需要进行电平转换。就是将 TTL电平转换成 RS-232C电平或反之。MAX232芯片具就是常用的转换芯片,该芯片有 TTL/CMOS电平转换到 RS-232C电平及 RS-232C电平转换到 TTL/COMS电平各两路。 单片机技术基础教程与实践图中 MAX232芯片内部的电源转换器与外接电容 C1、 C2、 C3、 C4将 +5V电源电压转换成正负电压,所以该芯片只需要 +5V电源就可以进行电平转换。电容 C5用于电源去耦,目的是滤去电源噪声。单片机技术基础教程与实践6.2 单片机异步串行通信编程基础6.2.1 异步串行通信过程1. 通信过程单片机通信是个复杂的过程,分为不同的层次,例如,一般的异步串行通信分为如下几个层次。( 1)硬件初始化通信模块是实现通信的最低层次,模块可自动完成一些通信动作,发送缓冲器空,发中断信号,接收缓冲器满,发中断信号,将缓冲寄存器中的数据放入移位寄存器,然后移位输出或是接收等。若使通信模块能够正常运行,需要设置:波特率、数据格式(起始位、数据位、停止位、奇偶校验位等)、波特率发生器、通信模式等。单片机技术基础教程与实践( 2)底层软件底层软件直接与通信模块协同工作,底层软件就是将接收缓冲器的内容读出来保存到存储器中,或是将要发送的内容从数据地址写入发送缓冲器,并按照约定,发送地址位、判断地址位,判断是否出现通信错误等。 ( 3)应用软件应用软件根据系统需要发送数据,或是解释接收到的数据,执行接收到的数据,使系统各单片机之间数据共享。实际上,通信就是硬件实现最底层的通信操作,并在底层软件的配合下,实现字节数据的发送与接收。 单片机技术基础教程与实践6.2.2 硬件初始化与底层软件部分举例下面以 51单片机的异步串行通信为例,介绍硬件初始化与底层软件流程。( 1)查询方式实现串口通信若是连接在 P3.2端口的按钮为低电平,则串口发送端发送 AABB字符串;如果收到信号EEFF, 则使连接在 P1.0的发光二极管闪烁。通信波特率为 9600, 8位数据、一个停止位。硬件初始化:1)设置串口工作模式(模式 1),相当于设置数据位、停止位等2)设置串口为允许接收状态3)设置波特率4)其他初始化,如波特率产生器、中断等单片机技术基础教程与实践底层软件的发送部分:1)将字符串 AABB的第一个字节 AA传送到发送缓冲器。2)不断检测 TI位,若是 TI为 1,则可以确认发送完毕。3)将 TI复位,发送下一字节 BB, 并检查是否是字符串的最后一个字符 0,若是 0,则表示发送结束。底层软件接收部分:1)不断检测 RI位,若 RI=1, 表示有数据,否则等待。2)若 RI=1, 表示接收到字符 EE, 将接收缓冲器中的内容读出到接收变量。3)清除 RI, 准备接收下一字节 FF, 检查是否是字符串的最后一个字节 0,若是 0,则停止接收。应用程序部分:1)准备接收数据存放地址(变量)、发送的字符串。2)检测按钮电平。3)若是按钮电平为低电平,发送字符串 AABB。4) 检测接收的数据是否是 EEFF, 若是使发光二极管闪烁。 单片机技术基础教程与实践( 2)中断方式实现串口异步通信。同上例,但是采用中断方式发送与接收。硬件初始化:1)设置串口工作模式(模式 1),相当于设置数据位、停止位等。2)设置串口为允许接收状态。3)设置波特率。4)其他初始化,如中断初始化,允许中断等。应用程序部分:1)准备发送数据,设置发送字符串与接收地址(变量)等。2)检测按钮电平是否为低电平,若是低电平,则将第一个字节传送到发送缓冲器,发送第一个字节 AA。 随后应用程序等待发送或是接收中断。 单片机技术基础教程与实践中断服务程序:如果发送缓冲器空或是接收缓冲器满,产生中断,中断服务程序开始执行。1)检测接收标志 TI, 如果 TI=1, 则产生的是发送中断,否则接收标志 RI=1, 则是接收中断2)若是 TI=1, 则为发送中断,服务程序清除 TI, 然后继续
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会计经典面试题及答案
- 安全培训取证复审要求课件
- 开学前安全工作培训记录课件
- 地下管网安全知识培训课件
- 国防法规教学课件
- 国网安全培训证明课件
- 国税局依法治国课件
- 国际贸易数字基础设施建设方案研究
- 供水工程材料采购与质量管控方案
- 供水设备运行维护与保养技术方案
- 兽用药品批次追踪与追溯系统考核试卷
- 医院信息透明化责任追究机制
- 人教川教版一年级上册生命生态安全全册教学课件
- 塞力斯招聘在线测评题
- 钻探合同范本
- 西方现代思想讲义
- 高职建筑设计专业《建筑构造与识图》说课课件
- 人教版九年级物理上册《第十三章内能》单元检测卷(带答案解析)
- 细胞膜的结构和功能 教学课件
- 2021综合能源管理平台技术白皮书
- 丹凤县棣花镇生活垃圾填埋场建设监理规划
评论
0/150
提交评论