设为首页收藏本站

天空语文 如皋  九华 作文  教学

 找回密码
 我要加入(register注册)

QQ登录

只需一步,快速开始

快捷登录

使用微信账号登录

天空新人

李白202091

蓝兰的花朵

天晴朗

嘿嘿嘿

joycy

颂颂.g

酷土土土

用户已注销

Jeremy

ʚ贴贴ɞ

果子黑

H·princess

李苏楠

方大金

依灵灵灵.

金川兰

lulululu

lisunan18795762

清风拂过

楠大人

王悦

朴弟

赵珺琦

王佳慧

八5霍程

查看: 191|回复: 0
收起左侧

[数码知识] 一文让你看懂串口通讯

  [复制链接] TA的其它主题
来自- 中国江苏南通

Ta在天空论坛排行

积分:NO. 1 名

发帖:NO. 1 名

在线:NO. 1 名

gwp! 发表于 2019-11-27 19:35:45 | 显示全部楼层 |阅读模式 来自- 中国江苏南通
天空便利贴:这里是语文的天堂,也是文学的乐园。如有原创或喜欢的文章,可推荐发表,供坛友欣赏提高。您的热情和才华是天空论坛最大的财富。
来自- 中国江苏南通

加入天空更多精彩

您需要 登录 才可以下载或查看,没有账号?我要加入(register注册)

x
一文让你看懂串口通讯原创 爱上半导体 2019-11-23 18:02:51
在讲串口通讯之前,我们先来讲一讲通讯的概念吧,因为我想让大家知道通讯的本质是什么,只有在你知道了通讯的本质之后,你才能在学习通讯的大路上顺风顺水。


所以呢,你们要认真看完我为你们精心编制的小故事,看完之后,你会对现在的通讯有一个更加深刻的理解。
烽火台
在遥远的古代,没有手机、电脑这样的通讯工具,更没有汽车、飞机之类的交通工具,那么如果有敌人来攻城的话,如何快速传递把信息传递给千里之外的兵营呢?
答案想必大家都知道,那就是烽火台!


而且是每隔数里建设一个烽火台,等有敌人来犯就点燃烟草,烽烟会在短时间内传到千里之外的兵营。
我们暂且称它为烽烟通讯,它的通讯原理很简单,有烽烟的情况就代表着有敌人来犯,如果没有烽烟就代表一切正常,它只会出现两种情况。
但是有烽烟并不一定是出现了战争,比如说西周时期的周幽王为了博美人褒姒一笑,在没有发生战争的情况下,点燃了烽火台,各方诸侯诸侯纷纷赶来救驾,来了之后周幽王和褒姒在台上哈哈大笑,面对奇耻大辱,犬戎一怒之下杀死了周幽王。
因为烽烟意味着敌人来犯早已在人们心中达成共识,所以即使是假的,各方诸侯也会默认为真。通讯只能事先代表约定俗成的东西、而不能反映事实上发生的事情。
烽火台这种通讯方式看似简单,但却是我们现在所有高级通讯的基础,夸张一点的讲,无论多么复杂的通讯,像红外遥控、wifi、3G、5G这些都可以说成是烽烟通讯的衍生品,无论现代多么复杂的通讯方式,它的原理都是基于这种烽烟通讯演化而来的,即在某一时刻不是在传递高电平,就是低电平。
只不过这些现代化通讯传输的速率极快,在一秒当中变换高低电平几千万次,甚至上亿次,它可以使我们在及短的时间内接收/传输大量的信息。如果把时间放慢、放慢再放慢,你会发现这些现代化的通讯执行的就是不停的把烽火台点燃熄灭的过程。
串口通讯
串口通讯是电子研发人员常用的一种通讯,也是最简单的一种通讯之一。这种通讯目前最常见的一种形式是:芯片与电脑之间通讯,它的传输速率极慢,通常传输速率1-10KB/S,这个速率相比于我们现在的USB传输速度相差了几千甚至上万倍,但为什么这种通讯至今还没有被淘汰呢?

老式串口接口,现在已经淘汰


要知道电子开发人员所使用的芯片不是做存储用的,它可能传输的就是温度、距离、压力这些,即使是1K/S,我们也能在1S之内接受1024个数据,对于人类而言,这个速度显然是足够快的,1024次/S的速度就把我们开的眼花缭乱了,面对如此‘多’的数据,你会自顾不暇,所以这种低端芯片与电脑通讯往往采用串口通讯。
接下来说一下串口到底是如何在芯片和电脑之间传输的。
串口通讯本来及其简单的一种通讯,可是现在与之有关的教科书里官腔太多,而且还掺杂着很多专业术语,比如各种寄存器、锁存器这些,除此之外还讲述了串口的很多情况,同步或者异步都有,很多情况是用不到的,学生们往往是怀着期望的心去学习,但是最终却失望而归,只要有一个寄存器的原理不懂,就会影响到你学习的心情。

串口接线


很多人虽然会使用串口通讯了,但是具体是怎么发出去的,可能知道的人就不多了,反正是配置好寄存器就可以使用串口通讯了,这种学习方法是最快的,但是对这个串口的基本工作原理理解的还是不到位。
接下来我们来更深一步的去了解串口,在了解串口之前我们首先要直到串口发送的是什么?
串口其实发送的是高低电平,比如我们把要发送信息的高低电平发送给电脑,它就直到我们发送的信息,并且显示出来、那么问题又来了,电脑是如何直到这些高低电平代表的什么呢?
这些呀,早就有人想过了,就像我们之前讲过的烽烟通讯,烽烟代表敌人来犯。这个串口传输的高低电平也早就我们聪明的人类定义好了,不过这次不是中国人了,而是美国人定义的,然后全世界都这么使用了。
ASCII码
ASCII表如下图所示,每一个图形都对应的8位的二进制,比如A对应的是0100 0001,如果我们要给电脑发送A的话,是不是发送0100 0001对应的高低电平就可以了(1对应高电平)?


当然不是了,因为要成功的发送数据,在它发送数据之前,首先要给电脑发送一个开始信号,不然电脑接收就乱了,就像我们去取快递,都是在收到短信之后再过去,不然去了可能快递还没有到呢。
串口发送数据也一样,首先要发送一个开始的信号,这个信号也叫做起始位。在串口不工作的时候默认的都是高电平,如果要给电脑开始的信号,只需要给一个低电平,电脑就会被唤醒接收我们发送的串口数据,然后我们再逐次发送ASCII数据,是一个一个的发送,而不是同一时刻一起发送。串口嘛,就跟串羊肉串一样,都是一个个的往竹签上串。
这也是串口的优势,发送只需要一根线,如果是并口的话,发送8位数据,就得需要8根线,就物理接线而言,显然串口更有优势。


在8位数据发送完成之后,最后还需要发送一位停止位,即最后一位把电平拉高,告诉电脑发送结束,让电脑准备下一次接收。这东西和我们取快递一样,拿完贵重快递,不能直接走吧,最后还需要签字不是。
所以要发送A的话,需要发送:
10100 00010
1(停止位) 0100 0001(中间8个为字符A) 0(起始位)
无论是串口发送还是取快递都是人类想出来的流程,所以存在共性。
波特率
还有最后一个问题没有解决,那就是这每一位的发送间隔是多少呢?
我们还拿烽烟通讯为例,站岗小兵也不是时时刻刻在盯着烽火台,可能是一小时看一次,然后他也许会做一些娱乐项目。
现在,我们发送串口数据也一样,我们要提前约定好,多长时间发送一次,然后电脑上也要按照这个时间去接收,不然肯定会接收到错误的数据。
我们约定的这个时间就是电子专业中常说的波特率,它所指的是在一秒之内发送了多少位数据。
就拿最常用的波特率9600来说,它所代表的是在1秒之内传输9600位数据(0或1)。
知道波特率之后,我们也就知道了传输一位所需要的时间,即1/9600=104us。
104us对我们来说可能会很短暂,对芯片来却是极其漫长的时间。
这时候还是会有人担心,万一接收的时序对不上怎么办。
这个不用担心,因为芯片接收时也不是104us接收一次,它的接收精度是这个时间的16倍,即以6.5us的最小步长开始计数,它会在你每一位(104us)的中间时刻接收数据,这样误差就会变的很小。
模拟串口吧
所以,串口通讯不需要配置寄存器,直接用单片机的I/O口输出高低电平也可以实现,因为它和你在单片机上配置寄存器是一样的,如果最开始你是使用的寄存器来学习串口,可能是只会串口的收发,而不直到串口的最基本发送原理。
如果你有兴趣的话,直接在单片机上用I/O模拟串口发送试一试,虽然最终我们都会使用配置寄存器的方式发送串口数据,但这样做你会对串口发送有一个新的认识。
Final
  • 上述所讲的串口通讯是最为常用的一种情况,即只有一个起始伟和停止位、无奇偶校验位、波特率为9600。
其它的情况不太常用,暂时就不做阐述。
然后再对上述情况做一个小总结:
发送的数据共10位。
第一位是起始位:把电平拉低。
第二位~第九位:数据位,由所传输的字符决定。在这10位当中,也就这8位是有意义的,因为起始位和停止位不代表任何东西,我们可以说串口传输的效率为80%。
第十位是停止位:把电平拉高。


为了检测大家有没有学会,给你们准备了一个小测试。
猜猜上图这10位代表哪个字符呢?(参考上面的ASCII码表)。




  • 为什么这个图要先看停止位而不是起始位,中间八位从左到右,两边的位信号还要反着从右到左[捂脸]小编我说的能看懂吗?

    回复 ⋅ 3条回复4


  • Meedo48247486 2天前

    如果最后一位也是高电平怎么办?

    回复 ⋅ 4条回复0


  • Joe162997258 4天前

    按楼主的说法“通常传输速率1-10KB/S,”那我56k的modem接到串口上怎么用?

    回复 ⋅ 4条回复0


  • 当幸福来敲门57171275 2天前

    你好,我想问一个问题,我看别人做了一个设备。就是用欧姆龙plc与电源通信,控制电源的电压频率。plc程序也没有负责通讯的。只是把0和1送入到一个寄存器,比如D1004,然后电源就可以达到起停控制了。请问这是什么原理啊?






我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 天空金币 , 目前已有0人回答

最近访客

来自- 中国江苏南通
天空便利贴:
到底了,觉得文章不错的,可以给作者评论或者打赏,这是创作者向前的动力。可以向上滑,或者转到相关热帖。使用过程中如有好的意见或建议,欢迎联系页面qq客服。天空论坛因你更精彩。
回复

手机扫码浏览
天空论坛,有你有我,明天更好!

主题推荐

    暂无主题推荐
来自- 中国江苏南通
点评回复 来自- 中国江苏南通

使用道具 举报 私信管理员来自- 中国江苏南通

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

×天空论坛发帖友情提示:
1、注册用户在本论坛发表、转载的任何作品仅代表其个人观点,不代表本论坛认同其观点。
2、如果存在违反国家相关法律、法规、条例的行为,我们有权在不经作者准许的情况下删除其在本论坛所发表的文章。
3、所有网友不要盗用有明确版权要求的作品,转贴请注明来源,否则文责自负。
4、本论坛保护注册用户个人资料,但是在自身原因导致个人资料泄露、丢失、被盗或篡改,本论坛概不负责,也不承担相应法律责任。

QQ|手机版|我们的天空 ( 苏ICP备18048761号 ) |苏公网安备32068202000215号 |网站地图

GMT+8, 2024-5-14 21:46 , Processed in 0.228982 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表