0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简单聊聊单片机通信时序分析

电子工程技术 来源:电子工程技术 2023-02-20 09:39 次阅读

所谓“时序”从字面意义上来理解,一是“时间问题”,二是“顺序问题”。

先说“顺序问题”,这个相对简单一些。我们在学 UART 串口通信的时候,先 1 位起始位,再 8 位数据位,最后 1 位停止位,这个先后顺序不能错。我们在学 1602 液晶的时候,比如写指令,RS=L,R/W=L,D0~D7=指令码,这三者的顺序是无所谓的,但是最终的 E=高脉冲,必须是在这三条程序之后,这个顺序一旦错误,写的数据也可会出错。

“时间问题”内容相对复杂。比如 UART 通信,每一位的时间宽度是 1/baud。我们初中就学过一个概念,世界上没有绝对的准确。那么每一位的时间宽度 1/baud 要求精确到什么范围内呢?

前边教程我提到过,单片机读取 UART 的 RXD 引脚数据的时候,一位数据,单片机平均分成了 16 份,取其中的 7、8、9 三次读到的结果,这三次中有 2 次是高电平那这一位就是 1,有 2 次是低电平,那这一次就是 0。如果我们的波特率稍微有些偏差,只要累计下来到最后一位停止位,这 7、8、9 还在范围内即可。如图 13-1 所示。

ee6f4fdc-b076-11ed-bfe3-dac502259ad0.jpg

图 13-1 UART 信号采集时序图

我们用三个箭头来表示 7、8、9 这三次的采集位置,大家可以注意到,当采集到 D7 的时候,已经有一次采集偏出去了,但是我们采集到的数据还是不会错,因为有 2 次采集正确。至于这个偏差允许多大,大家自己可以详细算一下。实际上 UART 通信的波特率是允许一定范围内误差存在的,但是不能过大,否则就会采集错误。大家在计算波特率的时候,发现没有整除,有小数部分的时候,就要特别小心了,因为小数部分是一概被舍掉的,于是计算误差就产生了。我们用 11.0592M 晶振计算的过程中,11059200/12/32/9600 得到的是一个整数,如果用 12M 晶振计算 12000000/12/32/9600 就会得到一个小数,大家可以算一下误差多少,是否在误差范围内。

1602 的时序问题,大家要学会通过 LCD1602 的数据手册提供的时序图和时序参数表格来进行研究,而且看懂时序图是学习单片机所必须掌握的一项技能,如图 13-2 所示。

ee9bbe14-b076-11ed-bfe3-dac502259ad0.jpg

图 13-2 1602 时序图

大家看到这种图的时候,不要感觉害怕。说句不过分的话,单片机这些逻辑上的问题,只要小学毕业就可以理解的,很多时候是因为大家把问题想象的太难才学不下去的。

我们先来看一下读操作时序的 RS 引脚和 R/W 引脚,这两个引脚先进行变化,因为是读操作,所以 R/W 引脚首先要置为高电平,而不管它原来是什么。读指令还是读数据,都是读操作,而且都有可能,所以 RS 引脚既有可能是置为高电平,也有可能是置为低电平,大家注意图上的画法。而 RS 和 R/W 变化了经过 Tsp1 这么长时间后,使能引脚 E 才能从低电平到高电平发生变化。

而使能引脚 E 拉高经过了 tD 这么长时间后,LCD1602 输出 DB 的数据就是有效数据了,我们就可以来读取 DB 的数据了。读完了之后,我们要先把使能 E 拉低,经过一段时间后 RS、R/W 和 DB 才可以变化继续为下一次读写做准备了。

而写操作时序和读操作时序的差别,就是写操作时序中,DB 的改变是由单片机来完成的,因此要放到使能引脚 E 的变化之前进行操作,其它区别大家可以自行对比一下。

细心的同学会发现,这个时序图上还有很多时间标签。比如 E 的上升时间 tR,下降时间时间 tF,使能引脚 E 从一个上升沿到下一个上升沿之间的长度周期 tC,使能 E 下降沿后,R/W 和 RS 变化时间间隔 tHD1 等等很多时间要求,这些要求怎么看呢?放心,只要是正规的数据手册,都会把这些时间要求给大家标记出来的。我们来看一下表 13-1。

eece3196-b076-11ed-bfe3-dac502259ad0.jpg

大家要善于把手册中的这个表格和时序图结合起来看。表 13-1 中的数据,都是时序参数,本节课的所有时序参数,我都一点点的给大家讲出来,以后遇到同类时序图,就不再讲了,只是提一下,但是大家务必要学会自己看时序图,这个很重要,此外,看以下解释需要结合图 13-2 来看。

tC:指的是使能引脚 E 从本次上升沿到下次上升沿的最短时间是 400ns,而我们单片机因为速度较慢,一个机器周期就是 1us 多,而一条 C 语言指令肯定是一个或者几个机器周期的,所以这个条件完全满足。

tPW:指的是使能引脚 E 高电平的持续时间最短是 150ns,同样由于我们的单片机比较慢,这个条件也完全满足。

tR, tF:指的是使能引脚 E 的上升沿时间和下降沿时间,不能超过 25ns,别看这个数很小,其实这个时间限值是很宽裕的,我们实际用示波器测了一下开发板的这个引脚上升沿和下降沿时间大概是 10ns 到 15ns 之间,完全满足。

tSP1:指的是 RS 和 R/W 引脚使能后至少保持 30ns,使能引脚 E 才可以变成高电平,这个条件同样也完全满足。

tHD1:指的是使能引脚 E 变成低电平后,至少保持 10ns 之后,RS 和 R/W 才能进行变化,这个条件也完全满足。

tD:指的是使能引脚 E 变成高电平后,最多 100ns 后,1602 就把数据送出来了,那么我们就可以正常去读取状态或者数据了。

tHD2:指的是读操作过程中,使能引脚 E 变成低电平后,至少保持 20ns,DB 数据总线才可以进行变化,这个条件也完全满足。

tSP2:指的是 DB 数据总线准备好后,至少保持 40ns,使能引脚 E 才可以从低到高进行使能变化,这个条件也完全满足。

tHD2:指的是写操作过程中,要引脚 E 变成低电平后,至少保持 10ns,DB 数据总线才可以变化,这个条件也完全满足。

好了,表 13-1 这个 LCD1602 的时序参数表已经解析完成了,看完之后,是不是感觉比你想象的要简单,没有你想的那么困难。大家自己也得慢慢学会看这种时序图和表格,在今后的学习中,这方面的能力尤为重要。如果以后换用了其它型号的单片机,那么就根据单片机的执行速度来评估你的程序是否满足时序要求,整体上来说器件都是有一个最快速度的限制,而没有最慢限制,所以当换用高速的单片机后通常都是靠在各步骤间插入软件延时来满足较慢的时序要求。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6039

    文章

    44579

    浏览量

    636415
  • 信号
    +关注

    关注

    11

    文章

    2794

    浏览量

    76883
  • uart
    +关注

    关注

    22

    文章

    1240

    浏览量

    101489
  • 串口通信
    +关注

    关注

    34

    文章

    1627

    浏览量

    55571
  • 时序分析
    +关注

    关注

    2

    文章

    127

    浏览量

    22574

原文标题:简单聊聊单片机通信时序分析

文章出处:【微信号:EngicoolArabic,微信公众号:电子工程技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    聊聊几种常见的单片机通信方式

    在这个数字化和智能化的时代,单片机(MicrocontrollerUnits,MCUs)已经成为现代电子设备中不可或缺的核心组件。从简单的家用电器如微波炉和洗衣,到复杂的工业控制系统,甚至是高科技
    的头像 发表于 05-22 12:28 2041次阅读
    <b class='flag-5'>聊聊</b>几种常见的<b class='flag-5'>单片机</b><b class='flag-5'>通信</b>方式

    单片机通信时序分析

    `来源 畅学单片机所谓“时序”从字面意义上来理解,一是“时间问题”,二是“顺序问题”。 先说“顺序问题”,这个相对简单一些。我们在学 UART 串口通信的时候,先 1 位起始位,再 8
    发表于 01-17 10:12

    聊聊环形缓存在单片机程序中的使用

    片头因为环形缓存在单片机程序中的使用是非常有效的,非常有用的,关于这个话题在此专门开一文章来聊聊这个话题。环形缓存的用途主要是来缓存数据,而需要缓存数据的地方在单片机程序中应用最多的就是通信
    发表于 12-06 08:29

    单片机IIC通信中EEPROM时序分析

    单片机IIC通信中EEPROM时序分析总结根据时序,一步一步写代码,比如说写字节1是S表示开始Start,后面依次看
    发表于 01-07 07:40

    聊聊单片机的内部存储器RAM和FLASH的一些认识和理解

    深入分析STM32单片机的RAM和FLASH学习2019-9-272642阅读97点赞8评论最近在一个问答社区回答了一个问题,关于单片机存储器的,于是有了想专门写一篇关于单片机存储器的
    发表于 01-26 08:09

    如何读单片机时序

    通俗易懂的教会如何去读单片机时序图,简单易掌握。
    发表于 10-29 17:06 18次下载

    单片机上电复位和复位延时的时序分析

    单片机上电复位和复位延时的时序分析
    发表于 01-24 16:15 18次下载

    如何弄懂单片机时序_关于单片机时序分析

    单片机时序是指单片机执行指令时应发出的控制信号的时间序列。这些控制信号在时间上的相互关系就是CPU的时序。它是一系列具有时间顺序的脉冲信号。
    发表于 01-06 09:35 1.2w次阅读
    如何弄懂<b class='flag-5'>单片机时序</b>_关于<b class='flag-5'>单片机时序</b><b class='flag-5'>分析</b>

    单片机通信性能分析与评价方法

    本文对单片机通信性能的分析和评价方法进行研究,指出了物理接口电路分布参数的分析方法和保证通信系统通信
    发表于 03-22 17:51 2292次阅读
    <b class='flag-5'>单片机</b>的<b class='flag-5'>通信</b>性能<b class='flag-5'>分析</b>与评价方法

    如何弄懂单片机时序_关于单片机时序分析

    单片机时序是指单片机执行指令时应发出的控制信号的时间序列。这些控制信号在时间上的相互关系就是CPU的时序。它是一系列具有时间顺序的脉冲信号。
    的头像 发表于 04-18 11:01 1.6w次阅读

    单片机的结构与原理是怎样的和单片机简单应用概述

    本文档的主要内容详细介绍的是单片机的结构与原理是怎样的和单片机简单应用概述目的是:了解单片机的内部结构与主要型号。掌握单片机引脚信号功能定
    发表于 10-19 17:18 33次下载
    <b class='flag-5'>单片机</b>的结构与原理是怎样的和<b class='flag-5'>单片机</b>的<b class='flag-5'>简单</b>应用概述

    如何快速学习单片机聊聊单片机学习基础

      不管是学习什么,快速都对我们有着莫大的吸引力。就像前不久也有几个同学问到——如何快速学习单片机?针对这个问题,小编还是先来聊聊单片机学习基础有哪些?也就是掌握单片机的技能包含什么:
    发表于 11-14 10:51 14次下载
    如何快速学习<b class='flag-5'>单片机</b>?<b class='flag-5'>聊聊</b><b class='flag-5'>单片机</b>学习基础

    51单片机串口通信

    51单片机串口通信文章目录51单片机串口通信串口介绍硬件电路电平标准常见通信接口比较相关术语51单片机
    发表于 11-18 14:06 22次下载
    51<b class='flag-5'>单片机</b>串口<b class='flag-5'>通信</b>

    51单片机串口通信

    51单片机串口通信文章目录51单片机串口通信串口介绍硬件电路电平标准常见通信接口比较相关术语51单片机
    发表于 11-21 20:36 64次下载
    51<b class='flag-5'>单片机</b>串口<b class='flag-5'>通信</b>

    单片机多级菜单简单分析写法

    单片机多级菜单简单分析写法资料分享
    发表于 08-29 16:18 28次下载