news 2026/6/24 4:40:15

硬件 - 常见通信协议整合

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
硬件 - 常见通信协议整合

目录

CAN
1.物理层
1.1 CAN总线结构
1.2 电平定义
2.协议层
2.1 位时序与波特率
2.2 同步机制
2.3 报文类型
-------------------------------------------------------------------------------------
I2S
1.物理特性
2.电气特性
3.常见的I2S数据格式
Philips标准
左对齐(MSB)标准
右对齐(LSB)标准

-------------------------------------------------------------------------------------
RS232
1.接口定义:
2.关于RTS与CTS
3.数据帧格式


CAN

1.物理层
1.1 CAN总线结构
  • 闭环结构

CAN总线闭环结构由 ISO 11898标准定义,适用于高速、短距离,速率在125kb/s ~ 1Mb/s,总线长度可以40m

两端各接一个120R电阻,用于阻抗匹配

  • 开环结构

CAN总线开环结构由 ISO 11519-2标准定义,用于低速、远距离

1.2 电平定义

对应逻辑 1 的,称为隐性电平。对应逻辑 0 的,称为显性电平;

闭环结构:隐性电平压差0V附近,显性电平压差2V附近;

开环结构:隐性电平压差小于0V,显性电平压差大于2V;

2.协议层
2.1 位时序与波特率
  • 波特率确定

首先要明白,CAN波特率与挂载时钟速率不同。比如某个CAN总线挂载在42Mhz的时钟上面,

时钟6分频之后,fcan=7Mhz

那么

然后我们想要配置波特率为500kbps,那么位时间

假设同步段占 1tq,位段1占 4tq,位段2为 2tq

那么,得出 tq=285.71ns

根据285.71ns再来进行时钟的分频;

  • 位时序分解

上面我们展示了 SS(同步段) PBS1(位段1) PBS2(位段2)

其实在 SS 后面往往伴随着 PTS(传播时间段)

SS(同步段):通讯节点用于检测是否同步,假如信号跳变在SS内,那么认为是同步的;

PTS(传播时间段):用于补偿传播的物理时间;

PBS1(相位缓冲段):主要用来补偿边沿阶段的误差;

PBS2(相位缓冲段):用来补偿边沿阶段误差的;

2.2 同步机制
  • 硬同步

总线上出现起始信号(下降沿),各个节点都会监测,

若是这个下降沿落在该节点SS段内,则表示同步,否则不同步;

硬同步的方式是更改SS段,使其包含下降沿,达到同步

  • 重新同步

分成相位超前、相位滞后

比如相位超前2tq,那么下一个位时序,会把PBS1段 +2tq,使得SS可以同步;

若是相位滞后2tq,那么下一个位时序,会把PBS2段 -2tq,使得SS可以同步;

PS:此外,称这段同步时间段为“重新同步补偿宽度SJW”,CAN控制器会限定SJW的最大值;

比如 SJW=3Tq时,认为增加或者减少不能超过3Tq的时间长度;

SJW越大,吸收误差越大,但是通信速率下降;

2.3 报文类型
  • 报文种类
数据帧用于节点向外传送数据
遥控帧用于向远端节点请求数据
错误帧用于向远端节点通知校验错误,并且请求重新发上一个数据
过载帧通知远端节点:本节点尚未做好接受准备
帧间隔用于把数据帧/遥控帧与前面的帧分开
  • 帧的结构

帧起始 | 仲裁段 | 控制段 | 数据段 | CRC | ACK

数据帧以一个显性位(逻辑0)开始,以七个连续隐形位(逻辑1)结束;

帧起始一个显性电平通知各个节点有数据、其它节点通过起始信号电平跳变沿来同步
仲裁段(标准格式)主要包含ID信息(11位)两个报文同时被发送时,根据仲裁段内容,判断哪个优先
ID:包含ID信息,用于报文优先级判定
RTR:区分数据帧/遥控帧,显性数据,隐性遥控
仲裁段(拓展格式)主要包含ID信息(29位)IDE:区分标准/拓展,显性标准,隐性拓展
SRR:只存在拓展格式中,用于代替标准格式中的RTR,在拓展帧中,SRR为隐性,RTR为显性
RTR:…
控制段4个数据位组成用于表示报文有多少字节,0~8r1和r0为保留位,设置为显性
数据段0~8个字节MSB先行
CRC段15位在15位CRC之后,有个界定符,用于与ACK间隔开,界定符为隐性
ACK段2位一位ACK、一位界定符发送节点隐性位,接收节点发送显性表示应答
帧结束7 个连续隐性位(逻辑1)
  • 标准帧与扩展帧区别:

在ID信息上面,

优先级:总线上同时出现显性电平和隐性电平,那么总线状态会被置为显性电平,优先级标准格式>拓展格式;



I2S

1.物理特性

I2S一般用于音频传输;

I2S由一根系统时钟线和三根信号线组成:

1.MCLK 主时钟:频率为128 / 256 / 512 * 采样频率;

2.SCLK(BCLK):串行时钟SCLK(位时钟BCLK),因为每一位音频数据都对应一个脉冲,所以SCLK频率 == 声道数*采样率*采样位数;

3.LRCK(WS):帧时钟,用于切换左右声道数据,0表示左声道,1表示右声道,LRCK频率 == 采样频率;

4.SDATA(SD):二进制补码表示的音频数据;

通信时序:

LRCK时钟控制数据发送到左右声道,SCLK输出时钟方波,数据在SCLK下降沿时触发;

2.电气特性

输出电压 :VL<0.4V , VH>2.4V;

输入电压 :VIL==0.8V , VIH==2.0V;

3.常见的I2S数据格式

I2S有左对齐(MSB)与右对齐(LSB);

Philips标准

其中:

LRCLK需要在第一位(MSB)之前一个时钟就开始跳变,才有效;

并且LRCLK在BCLK下降沿的时候发送变化;

发送端在BCLK下降沿发送数据,接收端在BCLK上升沿接收数据;

这种模式下,数据高位总是在LRCLK变化后的第二个BCLK处,所以接收端和发送端的有效位数可以不同。也就是接收端能处理的有效位数少于发送端发过来的数据,就可以把多余的低位数据给放弃掉,并且假如发送端发送的数据比较少,接收端这边也会自动补足剩余位;

此模式特点:
不会造成数据错位;

左对齐(MSB)标准

这种模式在LRCLK反转时开始传输数据,

但是此模式下LRCLK为1时传输左声道数据,0传输右声道数据;

右对齐(LSB)标准

此模式下,是发送数据,在数据发送完之后LRCLK实现翻转;

且此模式与MSB一样,LRCLK为1时传输左声道,0传输右声道;

RS232



1.接口定义:

通常情况下只需要TX、RX和GND

在RS232中,逻辑1一般是 -3V~-15V , 逻辑0一般为 3V~15V

也就是和印象中的01倒过来的

2.关于RTS与CTS

A的RTS有效,说明A请求发送数据给B了。当A检测到A的CTS有效,也就说明B做好了接受数据的准备

此时:

A的RTS对接B的RTS,当A要给B发送数据

B做好准备,将B的CTS对接A的CTS

A的CTS有效,表明B做好接受的准备

A开始发送数据

(每个字节在发送前都会确保A的CTS有效)

当A的数据发完了,就会将A的RTS无效化,此时B接受到的是A不准备发送信息,也将自己的CTS置为无效

3.数据帧格式

有些时候需要在发送方的TX上面,上拉一个电阻,以增强驱动性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 18:54:37

创业公司实测:调用GPT-4,哪家API中转平台最便宜?

搞AI的创业公司&#xff0c;日子过得像在走钢丝——一边是GPT-4那令人心动的智能&#xff0c;另一边是账单上令人心梗的数字。官方API&#xff1f;贵得像是用金箔打印代码&#xff08;开玩笑&#xff0c;但肉疼是真的&#xff09;。于是&#xff0c;所有人都把目光投向了“中转…

作者头像 李华
网站建设 2026/6/23 10:12:19

天机学堂-积分功能-day07(五)

接口 1.签到功能接口参数说明请求方式POST请求路径/sign-records请求参数无返回值{ "signDays": 10, // 连续签到天数 "points" : 14 // 今日签到获取的积分 }SignRecordController.java/*** 新增签到记录* return SignResultVO*/PostMappingApiOper…

作者头像 李华
网站建设 2026/6/24 3:30:58

无人机相关法律法规全体系梳理

无人机相关法律法规全体系梳理随着无人机产业的高速发展&#xff0c;我国已构建起以“国家行政法规为核心、部门规章为支撑、地方细则为补充”的无人机法律体系&#xff0c;覆盖无人机生产、登记、飞行、监管全链条。本梳理结合2024-2025年最新法规修订内容&#xff0c;聚焦不同…

作者头像 李华
网站建设 2026/6/12 12:14:14

(7-3-03)基于MCP实现的金融投资Agent(3)金融MCP服务器

7.3.5 金融MCP服务器文件server.py是本项目的核心服务器实现&#xff0c;基于模型上下文协议&#xff08;MCP&#xff09;搭建了一个金融数据服务平台。它整合了多个工具函数&#xff0c;提供了全面的金融数据获取与分析能力&#xff0c;包括市场动态&#xff08;涨幅榜、跌幅…

作者头像 李华
网站建设 2026/6/23 15:17:32

车联网时序数据库专业的服务商有哪些

在车联网时序数据库领域&#xff0c;有不少专业的服务商&#xff0c;各有其特点和优势&#xff0c;以下为你介绍一些&#xff1a;TDengineTDengine是涛思数据自主研发的一款专为物联网、车联网、工业互联网、IT 运维等设计的时序数据库。它具有诸多独特优势&#xff0c;测试显示…

作者头像 李华
网站建设 2026/6/22 22:07:56

C++继承机制详解

C中的继承是面向对象编程的核心概念之一&#xff0c;它允许新的类&#xff08;派生类&#xff09;获取已有类&#xff08;基类&#xff09;的属性和行为&#xff0c;从而实现代码的复用和扩展。本文将结合生动的比喻和详细的代码示例&#xff0c;全面讲解C继承的机制&#xff0…

作者头像 李华