高速CAN通信实用重点(1)

b. 线路上传输信号的电平格式

​​

c. 比特率,bit/s,bps

d. 波特率,symbol/s

e. 异步通信

f. CAN的波特率介绍

g. 收发模式

常规模式(最常用)

回环模式(只发不收,发的时候给本机顺带捎一份)

静默模式(对外闭嘴,只和自己发,静默)

回环静默模式

3. 通信相关基础知识——链路传输

a. 地址(CAN ID)

b. 冲突检测与避免(仲裁)

i. 冲突检测(CAN采用的)

ii. 冲突避免

c. 误码校验

d. 滤波器与掩码

e. CAN通信帧介绍

i. 帧分类:

ii. 标准数据帧格式

iii. 扩展数据帧格式


【中科大RM电控合集】小白也能看懂的CAN通信+STM32CubeMX编程_哔哩哔哩_bilibili

CAN通信相关基础知识(原理)(中科大视频总结)

1. 通信相关基础知识——分层思想

  • 分层思想,不同层分工不同
    • CAN通信(Controller Area Network)
      • 可以理解成三层:物理信号层,链路传输层,应用数据层
      • 物理信号层(数据传输的规则方式):规定了硬件电路的设计规则、用户使用的接线方式、线路上传输信号与电平格式的对应关系、波特率比特率、数据同步异步传输、 收发模式等内容
      • 链路传输层(将数据准确传输到指定位置):规定了地址(CAN ID)、冲突检测与避免(仲裁)、误码校验、滤波器与掩码、该层的帧格式
      • 应用数据层:被传输的数据主体
      • 链路层把应用层的数据拿来,加上相关的地址、校验等信息封装;物理层把链路层的数据拿来,编码成物理信号传输出去

2. 通信相关基础知识——物理信号

a. 接线方式
  • 总线接法
    • CAN_H与CAN_L通过120欧姆电阻连接在一起,防止总线上传输的高频信号存在反射振铃效应导致信号不稳定、寄生电容导致信号响应速度变慢等情况(感兴趣可以看看电磁场相关的理论)
    • 每个设备引出两条线,一根是CAN_H,一根是CAN_L(当然也有单线CAN但速度低我们不考虑使用);不同设备的CAN_H接到一起,CAN_L接到一起

  • STM32自带CAN控制器,箭头表示收发关系,直线表示我们自行接到外部的总线
  • STM32一般搭配的收发器型号为SN65HVD230
  • 发送方式:把发送的数据加到CAN收发器中,由它自主控制发送,换句话说放进去就不用管了
  • 接收方式:从接收队列(FIFO队列)选择接收(一旦收到数据,会产生中断,从FIFO0和FIFO1选择一个来接收)接收是FIFO先接收到的,然后产生接收中断
b. 线路上传输信号的电平格式

​​​​​​
  • 在发送和接收中,逻辑1是高电平,逻辑0是低电平

  • 经过CAN收发器之后变成差分信号

    • 如果单片机发送一个低电平,则 一般CAN_H 3.5v,CAN_L 1.5v,逻辑0,显性
    • 如果单片机发送一个高电平,则 一般CAN_H 和CAN_L 2.5v,逻辑1,隐性
  • 差分信号传输,在长距离传输时可保证信号质量(类比相对音感与绝对音感)

  • 实际上0为显性信号,是因为后面仲裁是要进行与操作,0与上其他还是0,所以是显性

c. 比特率,bit/s,bps
  • 每秒钟传输的二进制码元的数量
d. 波特率,symbol/s
  • 每秒钟传输的有效信息码元的数量
    • 举例

CAN通信中,比特率等于波特率,因为有效信息码元直接对应二进制码元十六进制字符编码中,如果一秒传输1000个字符,每个字符对应一种唯一的电平信号,那么波特率就是1000symbol/s;由于一个十六进制字符要用四位二进制编码表示,那么它的比特率就是4000bit/s

e. 异步通信
  • 通过把每个比特(码元)细分时间片,不同时间片做不同的事情

  • 同步段把整条总线各个设备进行同步
    • 其他通信协议还有同步通信方式,比如IIC
      • IIC需要统一的时钟信号给各设备用于同步
    • 其他通信协议也有类似的操作,比如UART
    • 相位缓冲段有两个,其中夹住的时间点就是采样时间点,硬件设备在这个时间点上对电平采样获取当前比特的状态是1或是0
    • 传播段是时间占用,因为有些CAN总线时间比较长,要考虑物理信号在总线的传播时间以及CAN驱动器的处理时间,传播速度是光速的2/3,也就是2*10∧8m/s;传播段时间一般是信号在总线上传播时间的两倍
f. CAN的波特率介绍
  • 波特率计算公式:1/【tq*(BS1+BS2+1)】

  • CAN的一位会被分层数个Time Quantum(tq),且每一位的tq可以调整以保证同步

  • CAN的最高波特率是1Mbps,所以在BS1和BS2长度过小,会导致比特率高于1Mbps,出现错误

g.收发模式
常规模式(最常用)
  • 向总线发送
  • 从总线接收
回环模式(只发不收,发的时候给本机顺带捎一份)
  • 向总线和本机发送
  • 不从总线接收仅从本机接收
静默模式(对外闭嘴,只和自己发,静默)
  • 不向总线发送仅向本机发送
  • 从总线和本机接收
回环静默模式
  • 不向总线发送,仅向本机发送
  • 自收自发
  • 不向总线接收,仅从本机接收

3. 通信相关基础知识——链路传输

a. 地址(CAN ID)
  • 由于是广播性质的总线协议,因此用地址来说并不是十分标准

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

15842047286)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值