串口 通讯,串口通信简介
chanong
|在讲串口通信之前,我想让大家先了解一下通信的本质,所以我们先来说一下通信的概念,只有了解了通信的本质,才能在学**通信的道路上顺利前行。
因此,如果你花时间阅读我精心整理的短篇小说,我想你会对当前的交流有更深入的了解。
烽火台古代没有汽车、飞机等交通工具,也没有手机、电脑等通讯工具,如果敌人袭击一座城市,信息如何快速传递到军营?如何沟通它。距离多少英里?
每个人都应该知道答案。这是一座烽火台。
此外,每隔数里就竖起烟塔,当敌人入侵时,点燃香烟,烟雾迅速蔓延到千里之外的军营。
现在我们将其称为信标通信,但通信原理很简单,如果有信标,则表示有敌人攻击,如果没有信标,则表示正常,只有两个情况。
然而,慢烟的存在并不一定意味着一定会爆发战争;例如,西周时期,周瑜王在没有出战的情况下点燃了慢塔,以歌颂美丽的女子。随后,周幽王与褒姒在台上大笑,饱受屈辱的犬戎勃然大怒,杀死了周幽王。
既然硝烟代表着敌人的入侵,人们心中已经形成了共识,即使是谎言,各方统治者也都默认其为真理。沟通只能代表事先约定的内容,不能反映实际发生的情况。
信标塔的通信方式看似简单,但可以说无论多么复杂,它都是先进通信的基础,比如红外遥控、Wi-Fi、3G、5G等。无论现代通信方法多么复杂,其原理都是基于这种信标通信的演变,其中在给定时刻传输高电平或低电平。
然而,现代通信的传输速度极快,每秒高低电平切换数千万次,有些情况甚至达到数亿次,使得在短时间内发送和接收大量信息成为可能。时间。时间。如果我们把时间放慢、放慢、再放慢,我们会发现现代通讯不断经历着一个信标塔开关的过程。
串口通信串口通信是电子研发人员常用的一种通信方式,也是最简单的通信方式之一。这种类型的通信最常见的形式是: 芯片到计算机通信。它的传输速度非常慢。典型的传输速度为1-10KB/S。这个速度与目前的USB传输速度相差数千倍。尽管我们已经进行了数万次,但为什么这种交流还没有消失?
旧的串行端口接口已被弃用
要知道,电子开发商使用的芯片并不是用来存储的。它可以传输温度、距离、压力等。即使在1K/S的情况下,1S内也能接受1024条数据。对于人类来说,这个速度显然已经很快了,每秒1024次的速度在面对大量数据时让人眼花缭乱却又不堪重负,所以这种低端芯片经常采用串行通信的方式与计算机进行通信。
接下来我们讨论一下串口在芯片和电脑之间是如何传输的。
串行通信原本是一种非常简单的通信形式,但是现在关于它的教科书包含了太多的官方语言,并且包含了许多诸如各种寄存器和锁存器之类的技术术语。它还描述了串行通信。 port 经常同步或者异步,而且经常不用。学生常常抱着很高的期望去学**,但最终却失望而归。如果不了解寄存器的原理,他们的心情就会受到影响。
串口接线
很多人都会使用串口通信,但可能很少有人知道如何发送。不管怎样,只要设置好寄存器,就可以使用串口通信了。这种学**方法是最快的,但需要了解连续剧的基本运行原理。端口尚未完全了解。
接下来,让我们仔细看看串行端口。在了解串口之前,我们首先要知道串口发送的是什么内容。
串口实际上传输的是高电平和低电平。例如,您向计算机发送要发送的高级和低级信息,计算机识别并显示您发送的信息。计算机知道这些高低电平代表什么吗?
我想有些人已经思考这个问题很久了,但是就像前面提到的信标通信一样,信标代表着敌人的入侵。这个串口传输的高低级别,早就被我们聪明人定义好了,但是这次是美国人定义的,而不是中国人定义的,然后全世界都用了。
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位需要的时间,即1/9600=104us。
104us对于我们来说可能是很短的时间,但是对于芯片来说却是非常长的时间。
这个时候,有些人可能还在担心如果接收时机不对怎么办。
接收时并不是每104us就接收一次,所以请放心,本次接收精度是16倍,即至少以6.5us步长开始计数,中间接收接收。由于每一位数据都是瞬时的(104us),因此误差非常小。
模拟串口。因此,串行端口通信不需要配置寄存器。这也可以通过直接利用单片机的I/O口输出高低电平来实现。这是因为它与您在微控制器中设置的寄存器相同。单片机什么时候第一次使用寄存器在学**串口的时候,你只知道串口是如何发送和接收的,但并不了解串口最基本的传输原理。
如果您有兴趣,请尝试使用I/O 直接在微控制器上模拟串行端口传输。你最终会使用配置寄存器来传输串口数据,但这样做会让你对串口传输有一个新的认识。
最后,上面介绍的串口通信是最常用的情况。即只有一位起始位和一位停止位,无奇偶校验位,波特率为9600。其他情况不太常见,暂时不讨论。
接下来我们简单总结一下上述情况。
发送的总数据为10 位。
第一位是起始位。将级别降低至低。
第2至第9位:数据位。由发送的字符确定。这10位中,起始位和停止位不代表任何东西,所以只有这8位有任何意义,我们可以说串口的传输效率是80%。
第10 位是停止位。将级别提高到高。
为了测试你是否学会了,我给你准备了一个小测试。
你认为上图中的10位数字代表哪个字符?(参考上面的ASCII码表)。








