作为一名嵌入式工程师,以下这些常用的通信协议往往都是面试中的必问知识。
1. UART协议
UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是一种双向、串行、异步的通信总线,仅用一根数据接收线和一根数据发送线就能实现全双工通信。
典型的串口通信使用3根线完成,分别是:发送线(TX)、接收线(RX)和地线(GND),通信时必须将双方的TX和RX交叉连接并且GND相连才可正常通信。
协议特点
异步 (Asynchronous):
不需要共享的时钟信号线
串行 (Serial):
单根数据线串行传输
全双工 (Full Duplex):
TX (Transmit): 发送数据线(从本设备角度看是输出)。
RX (Receive): 接收数据线(从本设备角度看是输入)。
点对点 (Point-to-Point):
标准的 UART 协议设计用于连接两个设备。
数据帧格式
起始位 (Start Bit):
1个bit的逻辑低电平 (0),标志着一个新数据帧的开始
数据位 (Data Bits):
通常是 5, 6, 7 或 8 位(最常用的是 8 位)。代表实际传输的一个字节(或部分字节)的数据。
传输顺序通常是最低有效位 (LSB) 在前(即先发送 bit0,最后发送 bit7)。
校验位 (Parity Bit):
可选,可以是 1 位或无。用于简单的错误检测(奇校验或偶校验)。
奇校验 (Odd Parity): 数据位 + 校验位中“1”的总数为奇数。
偶校验 (Even Parity): 数据位 + 校验位中“1”的总数为偶数。
无校验 (None): 最常见的选择,不包含校验位。
停止位 (Stop Bits):
通常是 1 位、1.5 位 或 2 位(最常用的是 1 位)。
逻辑高电平 (1),标志着一个数据帧的结束。
提供帧之间的分隔,并确保接收电路有足够时间复位,准备好接收下一个起始位。
空闲状态 (Idle State):
当没有数据传输时,TX 和 RX 线都保持在逻辑高电平 (1)。起始位的下降沿将线路从空闲的高电平拉低。
2. IIC协议
I²C协议(Inter-Integrated Circuit) 是由飞利浦公司(现恩智浦)开发的一种同步、半双工、多主从架构的串行通信协议,专为板级短距离低速设备通信设计。
协议特点
信号线:SDA(串行数据线)+ SCL串行时钟线(均为双向开漏输出)
拓扑结构:总线式,多设备并联,通过地址寻址
通信模式:半双工,同一时刻只能发送或接收
速度模式:标准模式(100 kbps)、快速模式(400 kbps)、高速模式(3.4 Mbps)
寻址能力:7位地址(最多支持128个设备)或10位地址(最多支持1024个设备)
数据帧格式
起始条件(START)
SCL高电平时,SDA从高→低跳变
从机地址 + 读写位(ADDRESS + R/W#)
7位地址:高7位(MSB优先)
读写位:
0
=主机写,1
=主机读 示例:地址0x50
的EEPROM写操作 →1010000 0
(二进制)应答位(ACK/NACK)
ACK:第9个时钟周期,接收方拉低SDA
NACK:SDA保持高电平(表示错误或传输结束)
数据字节(DATA)
每字节8位(MSB优先),后紧跟ACK/NACK
应答位(ACK/NACK)
ACK:第9个时钟周期,接收方拉低SDA
NACK:SDA保持高电平(表示错误或传输结束)
停止条件(STOP)
SCL高电平时,SDA从低→高跳变
数据仲裁
时钟同步
线与逻辑:SCL线被所有主机并联控制,任一设备拉低SCL即导致总线低电平
最长低电平胜出:低电平持续时间最长的主机决定SCL低相位周期
数据仲裁
每个主机在SCL高电平期间采样SDA状态
若自身发送的电平 不等于 总线实际电平,则立即退出竞争
失败方行为
切换为从机模式,监听赢得仲裁的主机通信
释放SCL控制权
缓存未发送完的数据,等待总线空闲后重试
仲裁结束
当某主机完整发送数据且未被中断则成为总线控制者
发送STOP条件后释放总线
3. SPI协议
SPI协议(Serial Peripheral Interface) 是一种高速、全双工、同步串行通信协议,由Motorola开发,专为短距离板级芯片间通信设计。
协议特点
信号线:CS(片选线)、SCK(时钟线)、MOSI(主出从入数据线)、MISO(主入从出数据线)
拓扑结构:主从架构(一主多从),片选信号寻址
通信模式:全双工
传输速度:通常10-100 Mbps
数据传输时序
数据帧格式
多从机模式
独立CS:互不干扰,速度最优,但需占用IO口
菊花链:仅需一个CS,数据叠加,速度受限
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://www.hqyman.cn/post/12054.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~