一、深入简出串口(USRT)通信——基本概念。

一、前言

串口到底是什么?简单来说一句话就可以解释,串口就是一种通信协议

看到这里可能大家会觉得你这不是放屁么,说了跟没说一样。所以这里做前言来描述,大家要先对通信协议有一个下意识地认识才能在学习串口的时候不至于迷茫。

通信协议

所谓通信协议,说白了就是传输数据的双方规定好的一些规则。

就像你朋友问你这周末去干嘛?你回复个233。如果不事先规定好,你朋友肯定觉得一头雾水。

另一种情况同样是你朋友问你这周末去干嘛?但是你俩事先规定了,2就是钓鱼,3就是追剧。那么他就知道你周末要做的事就是钓鱼、追剧、追剧。

二、串口通信协议(USRT)

前面我们知道串口是一种通信协议。详细点来说:

串口协议是一种全双工串行异步的通信协议。

对于纯小白来说乍一看挺唬人的。其实就是加上三个修饰语。
全双工 :接收信息,和发送信息可以同时进行。

串行 :传输数据的时候数据走同一根数据线。

异步 :各自使用自己的时钟。

异步就像是你给一个远在大洋彼岸的朋友发送信息,可能你这里是早上8:00,他那里是下午3:00。那么你这里显示的发送时间就是早上8:00,他那里显示接收到的时间就是下午3:00。

串口传输数据格式

数据格式,是作为一个通信协议很重要的一部分。这就像你和中国人聊天用中文,和英国人聊天用英格力士。

串口的数据格式如下:

上图中绿色的数据部分自然不必多说,本来就是为了传输数据才有的串口协议,所以必须携带数据。但是另外三个为什么在传输数据的时候还有这三个东西呢?
起始位: 标志数据传输的开始。

这个有必要解释一下,为什么需要起始位,串口这个东西可以将它想象成对讲机一样,你将对讲机调到指定频道,他就会一直传来各种声音,那么什么时候这些信息是对你说的呢?那就是你听到对讲机里有人喊你的时候,你才应该认真听接下来的信息。这个就是起始位的作用。

如果不要这个起始位,你就无法分析对讲机传来的声音到底什么时候是对你说的,想象一下你手握的对讲机一直在传递命令但是并没有指定是对谁说的,也是很诡异的。
校验位: 校验数据是否正确。

校验位就是一种防止信息出错的一种保障,就像你给你的好兄弟或者好闺蜜寄一个很贵重的东西,你在包装她的时候贴了一个封条,你俩约定好对方收到后先检查封条,如果封条没问题就证明你发出去的东西没有被动过。体现在数据传输就是校验位
停止位: 表明数据传输完成。

这个没啥可解释的,就是表明这个数据发完了。

串口传输数据原理

串口通信是利用高低电平来完成的。数据以0,1的形式传递。

0: 0V电压。
1: 3.3~5V电压。

这么解释会使我们感到它的原理云遮雾罩,类比一下就可以很好理解。

想象一下,梦回古代现在两军交战,你负责统帅三军,那么该如何指挥?

古人很聪明啊,他们想到用旗帜的是否举起来传递信息,举旗进攻,落旗后撤。这其实就可以当作串口中的高低电平。

串口通信空闲的时候是高电平

上述例子有个问题,就是不传递信息的时候,我的🚩到底是举着还是落了?这时候我们规定不用的时候举起来。体现在串口通信就是空闲态为高电平

串口通信起始位是高电平到低电平的变换

回到上面的假设,不传递信息的时候,我的🚩一直举着,传递信息时举旗代表进攻。观察员该怎么分辨到底是进攻还是空闲?这里我们规定当旗帜从举着到挥下,这个代表开始传递信息(起始位),观察员看到这个就知道,好了下面该传递信息了。

串口通信终止位是高电平

上面我们已经知道,高电平代表空闲态,不传输数据了。所以停止位就是要把电平恢复到高电平。

这里为什么不说 串口通信终止位是低电平到高电平的变换 呢?

因为传输数据完就是停止位,所以谁知道最后一位数据是高电平还是低电平。

就像上面用旗子传递,谁知道你最后一个指令是举着旗子还是落下旗子。

相关推荐
一个通信老学姐12 小时前
专业130+总400+武汉理工大学855信号与系统考研经验电子信息与通信工程,真题,大纲,参考书。
考研·信息与通信·信号处理·1024程序员节
AORO_BEIDOU17 小时前
迈入国际舞台,AORO M8防爆手机获国际IECEx、欧盟ATEX防爆认证
5g·安全·智能手机·信息与通信
AORO_BEIDOU1 天前
热成像手机VS传统热成像仪:AORO A23为何更胜一筹?
人工智能·5g·安全·智能手机·信息与通信
Leung_ManWah3 天前
NRF52832学习笔记(41)——添加串口库libuarte
串口·uart·ble·nrf52832·libuarte
陌夏微秋3 天前
硬件基础06 滤波器——无源、有源(含Filter Solutions、Filter Pro、MATLAB Fdatool)
matlab·硬件工程·信息与通信·信号处理
老哥不老3 天前
LTE及EPC技术原理(笔记)
笔记·信息与通信
今天还没学习3 天前
基于LabVIEW应用ARINC 429板卡实现数据通讯——(下篇)
信息与通信·labview
得之坦然,失之淡然。4 天前
FPGA实现USB2.0通信——基于CY7C68013A芯片
fpga开发·开源·信息与通信
北辰远_code4 天前
三层交换技术,eNSP实验讲解
计算机网络·信息与通信·三层交换机·ensp仿真实验
国产化嵌入式平台解决方案5 天前
【网络监控加速设备】国产化一站式高性能数据处理平台(海光CPU+复旦微FPGA)
网络·嵌入式硬件·信息与通信·网络监控·全国产化