参考视频: 2.8_异步串行通信数据帧格式和突发传输_哔哩哔哩_bilibili
1.总线数据传输方式


我们知道CPU和主存之间的话,是由多根这个数据线的一次性的可以传输多位,所以是并行传输,CPU跟主存之间既可以采用同步通信,也可以采用异步通信,那么如果采用同步通信的话呢,那么CPU和主存之间就是同步并行通信。如果采用异步通信的话,那么就是异步并行通信。
2.同步串行通信
在两个设备之间只有一根数据线,数据是一位一位的传输,也就是串行通信。那么同步串行通信的话,就需要用到总线的时钟信号。在每一个时钟周期内呢都会传输一串二进制位(图2-1)

那么这里的同步方式的话呢是外同步法。还有一种同步串行传输的话,不需要时钟信号而是在这个二进制串之间之前的话,用同步字符来同步,这种同步方法的话呢为自同步法(图2-2)

同步串行通信的两种同步方式 —— "军训VS密语接头"
1. 外同步(硬件同步)—— "军训走正步"
核心特点:
-
独立时钟线:像教官的哨子(专门一根线传输时钟信号CLK)
-
严格对齐:每个数据bit必须在哨音响起的瞬间传输
-
典型协议:SPI、I2C等
🌰 生活比喻:
军训时,教官吹一声哨,你就必须迈一步(一个时钟沿传一个bit)。
哨子不停,步伐就不能乱,完全依赖外部指挥。
2. 同步字符(软件同步)—— "特务密语接头"
核心特点:
-
无专用时钟线:靠特殊字符标记开始(如0xAA、0x55)
-
自同步编码:数据流内嵌时钟信息(如曼彻斯特编码)
-
典型协议:UART(通过起始位/停止位同步)
🌰 生活比喻:
特务接头时,对方先说"天王盖地虎"(同步字符),
你听到后立刻开始记后续密文(数据),靠开头短语对齐节奏。
🔍 关键对比表:
外同步 | 同步字符 | |
---|---|---|
同步方式 | 专用时钟线(如SPI的CLK) | 数据流中的特殊字符/编码 |
硬件成本 | 需要额外时钟线 | 只需数据线(如UART) |
抗干扰能力 | 极强(时钟独立) | 较弱(依赖数据流质量) |
典型应用 | 高速短距通信(芯片间) | 低速长距通信(串口设备) |
💡 终极记忆法:
-
需要绝对精准?→ 选外同步("教官哨子"模式)
-
想省一根线?→ 选同步字符("密语接头"模式)
3.异步串行通信
奇偶校验:是一种用于检测数据传输或存储过程中,是否发生错误的一个简单校验的方法,分为奇校验和偶校验。
如果在传输的过程当中有一位发生了错误,比如这里的0变成了1接收到了这一串数据之后,它会检测这个1的个数,一的个数是六个是偶数,本来我是用奇校验你要保证这个发送的时候,你1的个数本来就是奇数,你发送过来之后,1变成了偶数个。那这个时候我肯定就判断你这个传输出错了。但是如果有两个位发生了错误,比如这里的1变成了0.接收奇校验,这个的时候发送1的话,仍然是五。仍然是奇数个。所以因为是奇校验,我判断它没有出错,实际上它已经出错了。
为什么要用用低电平0来表示这个起始位?
这是因为在两个这个设备之间的,这个总线上,如果没有数据传输的话,一般是高电平,也就是说你这个传输线如果是空闲的话,一般是高电平,那么当来了一个低电平之后,就说明有数据传输了。那么后面传输的就是数据和校验位了
3.1 异步串行通信中数据传送速率
它的数据传送速率用波特率来衡量.

4.突发传输
🔍 核心差异对比表:
突发传输 | 非突发传输 | |
---|---|---|
寻址次数 | 1次起始地址,后续自动增量 | 每次传输都需独立寻址 |
效率 | 高(适合连续数据) | 低(适合随机访问) |
总线占用 | 长时间占用但整体效率高 | 频繁申请释放总线 |
典型应用 | 内存批量读写/DMA传输 | 寄存器访问/I2C设备通信 |
💡 技术本质:
-
突发传输:
地址阶段
发送首地址+突发长度 →数据阶段
连续传输N个数据
(类似网购时勾选"批量加入购物车") -
非突发传输:
每次地址阶段
+数据阶段
只能传输1个数据
(类似便利店每次结账一件商品)
🚀 记忆技巧:
-
记住两种购物场景:
「零售模式」(非突发)vs 「批发模式」(突发) -
关键区分点:
是否需要反复报地址(就像购物时是否要反复扫码)