前言:在汽车电子和嵌入式系统中,我们会涉及到众多的总线通信协议,主要包括:CAN(CAN FD)、RS-232、RS-485、IIC、SPI、TCP/IP等。这里我们会进行逐个介绍。
目录
[CAN的发展-CAN FD](#CAN的发展-CAN FD)
一、CAN
CAN全称Controller Area Network,是常用的车载总线协议。
核心特点
1)多主模式,网络中所有节点地位平等,没有主从之分,任意节点都可以主动发起数据传输。当多个节点同时发送数据时,通过仲裁机制解决冲突,优先级高的节点优先发送,不会造成数据丢失。
2)差分信号传输,采用CAN_H和CAN_L两根差分信号线,抗干扰能力强。
- 逻辑0(显性电平):CAN_H - CAN_L ≈ 2V
- 逻辑1(隐性电平):CAN_H - CAN_L ≈ 0V
3)错误检测与自动回传,CAN具备5层错误检测机制(位错误、填充错误、CRC错误、应答错误、格式错误),节点检测到错误后会立即发送错误标志,且错误节点会自动重传数据,保证通信可靠性。

帧结构
CAN(标准帧)总线有5种帧类型,核心是数据帧
| 字段 | 长度(位) | 功能说明 |
|---|---|---|
| 帧起始(SOF) | 1 | 标志帧的开始,一个显性位(0) |
| 仲裁段 | 12 | 包含 11 位标准 ID + 1 位 RTR 位(远程请求位,0 表示数据帧,1 表示远程帧) |
| 控制段 | 6 | 包含 IDE 位(标准帧为 0)、保留位 + DLC 位(数据长度码,0~8,标识数据段字节数) |
| 数据段 | 0~64 | 实际传输的数据,0~8 字节 |
| CRC 段 | 16 | 循环冗余校验码,用于检测数据传输错误 |
| 应答段 | 2 | 包含应答间隙和应答界定符,接收节点正确接收后发送显性位应答 |
| 帧结束(EOF) | 7 | 标志帧的结束,7 个隐性位(1) |
另外:扩展帧的ID是29位(标准帧11位)
CAN的发展-CAN FD
为了解决传统CAN 8字节数据段的限制,发展了CAN FD:
数据段长度扩展至64位 ,采用双波特率,仲裁段用低速,数据段用高速。
二、RS-232
RS-232全称Recommended Standard 232 ,是一种串行异步通信协议,主要用于短距离、低速率的点对点的设备通信。
核心特点
1)异步通信,无需专用时钟线同步,通过起始位、数据位、校验位、停止位的帧格式实现收发双方的时序匹配。
2)点对点通信,仅能实现两个设备间的一对一通信。传输距离短,最大约为15米。

3)采用单端电平,电平定义:
- 逻辑0(SPACE):+3V ~ +15V
- 逻辑1(MARK):-3V ~ -15V
4)易受电磁干扰
帧结构
| 字段 | 长度(位) | 功能说明 |
|---|---|---|
| 起始位 | 1 | 低电平(逻辑 0),标识一帧数据的开始 |
| 数据位 | 7/8 | 传输的有效数据,低位在前,高位在后 |
| 校验位 | 0/1 | 可选,用于验证数据传输正确性 |
| 停止位 | 1/1.5/2 | 高电平(逻辑 1),标识一帧数据的结束 |
三、RS-485
RS-485是一种差分串行通信标准,半双工通信,广泛用于工业控制。
核心特点
1)差分信号传输,采用A(D+)、B(D-)两根差分线,电平差定义逻辑:
逻辑0(SPACE):B- A > +200mV(一般 +2V ~ +6V)
逻辑1(MARK):B - A < -200mV(一般 -2V ~ -6V)
2)多节点通信,总线支持32个标准节点,解决了RS-232点对点的限制。半双工通信,同一时刻只能收或者发。

3)传输距离较大,最远可达1200米。
帧结构
| 字段 | 长度(位) | 说明 |
|---|---|---|
| 起始位 | 1 | 低电平(逻辑 0),标识帧开始 |
| 数据位 | 7/8 | 有效数据,低位在前 |
| 校验位 | 0/1 | 可选(奇 / 偶 / 无),用于错误检测 |
| 停止位 | 1/1.5/2 | 高电平(逻辑 1),标识帧结束 |
四、IIC
IIC全称Inter-Integrated Circuit,是由飞利浦开发的一种串行、半双工的同步通信协议。
核心特点
双线通信,仅需采用两根信号线即可实现多设备组网,无需额外地址线或片选线:
SDA(Serial Data):串行数据线,双向传输
SCL(Serial Clock):串行时钟线,由主设备产生
注:需外接上拉电阻(4.7kΩ~10kΩ),保证总线空闲时为高电平。

多主多从架构,支持多主设备共存,通过总线仲裁机制避免冲突。
帧结构
| 信号类型 | 时序条件 | 功能说明 |
|---|---|---|
| 起始信号(S) | SCL 为高电平时,SDA 由高电平拉低 | 标志通信开始,主设备发起 |
| 停止信号(P) | SCL 为高电平时,SDA 由低电平拉高 | 标志通信结束,主设备发起 |
| 应答信号(ACK) | 接收方在第 9 个 SCL 时钟周期,将 SDA 拉低 | 表示数据接收成功;若 SDA 为高,则为非应答(NACK),表示接收失败或结束传输 |
| 数据有效性 | SCL 为高电平时,SDA 电平必须稳定 | 仅在 SCL 为低电平时,SDA 才能改变电平 |
五、SPI
SPI全称Serial Peripheral interface,是一种同步、全双工、主从架构的串行通信协议。
核心特点
1)四线制架构,SPi采用4根信号线实现全双工通信:
- SCLK(Serial Clock):串行时钟线,由主设备唯一产生
- MOSI(Master Out,Slave In):主发从收数据线,主设备向从设备发送数据
- MISO(Master In, Slave out):主收从发数据线,从设备向主设备发送数据
- SS/CS(Slave Select/Chip Select):片选信号线,主设备拉低该引脚选中从设备,未选中的从设备处于高阻态
2)高速传输,常见速率可达几Mbps到几十Mbps,适合高带宽场景。

SPI工作流程
- 片选选中 :主设备拉低目标从设备的
SS/CS引脚,通知从设备准备通信; - 时钟驱动 :主设备产生固定频率和模式的
SCLK时钟信号; - 同步移位 :每一个时钟周期,主设备通过
MOSI发送 1 位数据,从设备通过MISO发送 1 位数据,双方同时采样接收数据; - 传输结束 :数据传输完成后,主设备拉高
SS/CS引脚,释放总线,从设备回到高阻态。
六、TCP/IP
TCP/IP全称Transmission Control Protocol/Internet Protocol,是一套分层网络通信协议族,它定义了设备在网络中通信的标准规则,是互联网的核心基础。
TCP/IP四层模型
| 层级 | 名称 | 核心功能 | 典型协议 |
|---|---|---|---|
| 第 4 层 | 应用层 | 直接面向用户,负责实现各种网络应用 | HTTP、HTTPS、FTP、MQTT、Socket(编程接口) |
| 第 3 层 | 传输层 | 提供端到端的通信服务 | TCP、UDP |
| 第 2 层 | 网络层 | 负责数据包的路由与传送 | IP(IPv4/IPv6)、ICMP(网络控制消息)、ARP(地址解析) |
| 第 1 层 | 链路层 | 负责物理介质上的信号传输(电气特性、接口标准) | 双绞线、光纤、车载以太网物理层 |
传输层核心-TCP/UDP
1)TCP(传输控制协议):
面向连接:通信前通过三次握手建立连接,通信后通过四次挥手释放连接
可靠性:采用ACK、重传机制、流量控制、拥塞控制,确保数据可靠性
有序交付:通过序列号和确认号,保证接收数据的顺序与发送顺序一致
三次握手示例图:
2)UDP(用户数据协议):
无连接:通信前无需建立连接,速度块
不可靠传输:无确认、重传机制,数据可能丢失
广播:支持一对多通信,适合批量分发
网络层核心-IP
负责为设备分配逻辑地址(IP地址),实现跨网段的数据转发,通过IP地址标识网络中的设备,地址寻址。
IPv4:32位地址,格式为x.x.x.x(如:192.168.1.1),地址资源有限
IPv6:128位地址x:x:x:x:x:x:x:x,解决IPv4地址资源枯竭问题
数据链路层-MAC地址
数据链路层负责同一局域网内的传输,核心是MAC地址。MAC地址是设备的物理地址,48位(如10:1A:2B:3C:4D:5E),全球唯一。