有关单片机串口通信的原理性问题讲解

有关串口通信原理性问题的理解(附上字丑的学习笔记)

一、基本概念讲解:

1、串行:数据在一根线上上发送出去,需要采样数据,需要多个时钟周期
优点:占用硬件资源少;抗干扰能力干扰强;传输距离远;应用场合较多;
缺点:数据传输效率慢
2、并行:有几位数据,在几根线上发送出去,一个时钟周期可以完成一组数据的采样
优点:数据传输速率快
缺点:抗高频干扰能力弱;传输距离近;占用硬件资源多;

3、同步:即有CLK,通过时钟线上的采样点对数据信号进行采样
4、异步:无CLK,通过采集一段时间的数据,然后对此段的数据解包,还原成最初的数据。直接与之相关的就是速率波特率。
发送方按照一定的波特率对数据进行发送,然后接收方按照设定好的相对应的波特率接受数据一段时间,然后对这段时间的数据进行解包。这就是异步没有时钟信号的数据传输方法。

5、单工:只能发送或者接受数据
6、双工:既可以发送,又可以接受数据。
双工又分为半双工和全双工
半双工:在一条线上进行发送和接受数据,发送和接收数据不能同时进行
全双工:在两条线上分别发送和接收数据,可以同时进行。

二、引入串口通信

串口:单片机上经常见到UART(UART即异步全双工的缩写)
通过异步全双工,我们应该对串口有个大致的了解了吧,就是上面基本概念的组合起来
即没有时钟信号,是通过约定好的波特率进行采样
通过两条线分别实现发送和接收数据,也就是我们常见的 Tx Rx

三、串口通信的最小单元,码元

1、为什么要有码元?
因为异步的串口通信读取单bit数据的出错率比较高,所以我们将一组数据打包,构成了一个码元,这样出错率会比较低一些。
2、码元是怎么构成的?

起始 数据 校验 结束
1bit(低电平起始信号) 不限位数(不同情况下可以有不同的位数,不过一般是8bit或者9bit) 奇(统计1的个数是不是奇数个。1bit)/偶(统计1的个数是不是偶数个。1bit)/零(统计0的个数。1bit)/无(不进行校验,不占数据位) 高电平信号(位数不固定在0.5~2.5范围内,如果系统比较稳定,可以取位数少的如0.5,系统不太稳定取位数多的),确保数据同步

我们最常用的通信方式——8N1
8:8bit数据
N:无校验位
1:1bit终止信号
另外,附加上1bit的开始信号。

所以,8N1方式就是一次性发送10bit数据,以10bit数据为1码元

这里提到了波特率
波特率的表示是这样的——码元/s
所以:9600bps按照码元是10bit的话,就是每秒传输9600*10bit数据

本篇文章侧重理论性的东西,要想看具体的实例教程的话,推荐我的另外两篇文章,链接如下

STC15F2K60S2串口通信/波特率设置/通信初始化/发送(接收)一个数据教程
STC15F2K60S2单片机/DHT11/OLED12864/串口通信

四、附上学习笔记

有关单片机串口通信的原理性问题讲解_第1张图片
有关单片机串口通信的原理性问题讲解_第2张图片
有关单片机串口通信的原理性问题讲解_第3张图片
有关单片机串口通信的原理性问题讲解_第4张图片

你可能感兴趣的:(概念学习,STC15F2K60S2教程,串口通信原理)