通信的基本概念
并行通信和串行通信
并行通信:
- 一次发送多个位
需要硬件资源多(因为一条通道只能发一位,要实现一次发多位则需要的硬件更多),所以只适合近距离传输
串行通信:
节省资源
-
同步通信和异步通信
判断方法:
1、跟时钟信号的步调是否一致
2、另一种理解:接收方接收速率和发送方的发送速率是否一致,不一致则为异步,但不一致的误差不能太大,否则根本就不能通信
串行同步通信 <—— 让发送方和接收方用同一个晶体振荡器控制
串行异步通信 <——大部分情况,因为同步很难做到
一帧:低电平的起始位+数据位(5~8位)+奇偶校验位+高电平的停止位单工、双工、全双工
单工:一方永远是发送,一方永远是接收
半双工:一方可以是发送或接收,但同一个时候只能单向
全双工:任何一方同一时间,既可发送也可接收波特率
指串行通信中,单位时间传送的二进制位数 ,单位:bps(bit per second)
一般为9600,4800,115200bpsMCS-51单片机串行口功能与结构
四种工作方式
方式0
- 方式1(最常用),10位(不使用奇偶校验位)异步通信,双机点对点通信
方式1和方式3的波特率计算公式相同:
波特率 = 2**SMOD**×(T1的溢出率)/ 32 (T1是定时/计数器)
首先令SMOD = 0,算出T1初值,若初值小于256,则将该值赋给T1做初值;若初值大于256,再令SMOD = 1重新算初值
- 方式2
- 方式3(使用奇偶校验位)
结构和工作原理
![QM$TWY_%8I2TG]0W$CXL%@6.png](/uploads/projects/u21314038@lircqs/16c7da775672c723af3970e3d8b4b51c.png)
实际情况基本不使用多机通信,所以SM2基本都置为0
TB8和RB存放奇偶校验位
![7~[XD%M]2U@CBWO~@7[CE5.png](https://cdn.nlark.com/yuque/0/2022/png/21690577/1653211133867-66ef1c92-98b1-4d43-a9e7-53ebe38d9795.png#clientId=u658ecd5d-47f7-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=334&id=u35774b82&margin=%5Bobject%20Object%5D&name=7~%5BXD%25M%5D2U%40CBWO~%407%5BCE5.png&originHeight=418&originWidth=832&originalType=binary&ratio=1&rotation=0&showTitle=false&size=483206&status=done&style=none&taskId=u75531c6d-379e-46ec-a690-3eb589b00d8&title=&width=665.6)
TI=1,RI=1表示发送或接受完成,都需要手动清0
