嵌入式-各个通讯协议
2022-03-05 14:58:35 21 举报
AI智能生成
包含CAN协议、modbus协议、网络协议等
作者其他创作
大纲/内容
SPI
通信
总线
MISO
主设备输入/从设备输出引脚
MOSI
主设备输出/从设备输入引脚
SCLK
时钟信号线
片选
CS
从设备选择信号线/片选信号线
IIC
待补充
UART
待补充
CAN
第一章
概况
总线连接
优点:使用的线缆数量<=n+1
优点:使用的线缆数量<=n+1
历程:
为了减少线缆数量而开发了CAN-bus协议
现在每辆汽车上几乎都有CAN-bus
为了减少线缆数量而开发了CAN-bus协议
现在每辆汽车上几乎都有CAN-bus
通信层次
物理层
不同的CAN-bus协议,仅物理层不同
CAN收发器
物理信号转逻辑信号,逻辑信号转为差分电平信号
信号电平
2种标准,高度和低速
高速
显性0
H:3.5V L:1.5V
隐性1
H:3.0V L:3.0V
低速
显性0
H:4V L:1V
隐性1
H:1.75V L:3.25V
单节点信号
开关断开,
高电平;
开关闭合,
低电平;
高电平;
开关闭合,
低电平;
线“与”原理
多个节点接到总线上,只要一个节点为低电平,则总线就为低电平;
所有节点都为高电平,总线才为高电平;
所有节点都为高电平,总线才为高电平;
同步和异步
同步串行
按照时钟信号的沿来采样数据
异步串行
按照约定的频率进行采样,受波特率影响
如何消除波特率误差带来的影响?
同步
将信号跳变沿作为
同步的时刻,误差会限制在两个跳变沿之间
同步的时刻,误差会限制在两个跳变沿之间
如果多个相同的信号,一直没有跳变沿,误差就会不短了累积,怎么处理?
规定信号位相同时,每五个信号位插入一个相反位,产生跳变沿,强制进行一次同步;
传输速率与距离
关系成反比,距离<40m,速率还能保持在1M上,距离<130m,速率保持在500k以上;
数据链路层
通信帧
数据帧
帧起始
单个显性位组成
仲裁段
标准格式
ID[0:10] 11位ID
RTR 远程帧发送标识位,显性,1bit
拓展格式
ID[0:10]
SRR
替代远程帧请求为,显性,1bit
IDE
识别符拓展位,标准显性,拓展隐性,1bit
ID[11:28] 和前11位共同组成28位ID
RTR 远程帧发送标识位,显性,1bit
总线仲裁
优先级:帧ID越小越高
数据帧大于远程帧
标准帧大于拓展帧
数据帧大于远程帧
标准帧大于拓展帧
控制段
标准格式
IDE
识别符拓展位,标准显性,拓展隐性,1bit
r0
保留位,各占1bit,隐性电平填充
DLC
数据段的长度码,占4bit;
BCD编码,范围0~8
拓展格式
r1
相同
r0
相同
DLC
相同
数据段
byte0~byte7
短小的优势:实时性好,抗干扰性强
CRC段
校验
ACK段
ACK槽
发送节点:发送1个隐性电平
帧起始到CRC段都没错,将发一个显性电平
ACK界定符
1个隐性电平
帧结束
7个连续的隐性位组成
远程帧
无数据段,且RTR位为隐性,1bit;
其他段分类和数据帧一样
其他段分类和数据帧一样
和数据帧对比的区别
……
错误帧
CAN-bus错误类型
CRC错误
发送节点计算的和接受到的CRC值不同
格式错误
数据帧格式和合法格式不同
应答错误
发送节点在ACK阶段未收到应答
位发送错误
发送节点发送时总线与发送节点电平不同
位填充错误
线缆传输信号违反“位填充”规则
结构
错误标志
主动错误:6个显性位;被动错误,6个隐性位
错误界定符
8个隐性位
3种状态以及行为
主动错误
被动错误
总线关闭
过载帧
结构
过载标志
过载界定符
帧间隔
作用
隔开数据帧和远程帧
应用层
……
第二章
CAN节点电路
CAN收发器
物理信号逻辑信号转换
CAN控制器
解析协议
MCU
功能电路
第三章
编程基础
第四章
待补充
modbus
接口
RS232转485
485+
485-
RS232
RXD
TXD
GND
格式
从机地址
功能码
01读线圈
03读保持寄存器
04读输入寄存器
05写单个线圈
06写单个寄存器
15写多个线圈
16写多个寄存器
数据地址
数据
校验位
网络协议
TCP/IP
UDP
HTTP
HTTPS
SNMP
NTP
SNTP
DNS
其它协议
电总协议
蓝牙协议
Wifi协议
Type-C协议
Zigebee
收藏
0 条评论
下一页