CAN Bus cable simulation

news2024/11/17 6:46:50

REF:

  1. CAN总线标准接口与布线规范 https://zhuanlan.zhihu.com/p/34333969

  1. 高速CAN总线物理层对线束的要求 https://www.suncve.com/the-requirement-of-physical-layer-of-can-bus-for-wiring-harness/

    • 利用LTSPICE 做仿真, 选用的是 ADI的 CAN transceiver, LTC2875

分支1.6uH 电感量仿真:

分支0.2uH电感量仿真

    • 计算双绞线电感量

双线制平行传输线(电感量)计算公式与在线计算器

https://www.23bei.com/tool/782.html

0.5m 双绞线电感量计算:

2.5m 双绞线电感量计算:

    • CAN总线布线规范

CAN总线布线形式 https://zhuanlan.zhihu.com/p/34333969

  1. “手牵手”式连接

图4 “手牵手”式连接

手牵手布线是最基本的一种方式,需要注意的是在布线的时候电阻和电抗分配必须合理,一般要求在首尾两端各配一个120欧的终端电阻,不可只接单端或不接。

  1. T”型连接

图5 “T型”连接

“T型连接”的布线方式需要注意的是分支的长度,一般波特率在1M的情况下,分支长度最好不要超过0.3m,如果需要增加分支长度,可以降低通讯速率或者使用(CANbridge+)中继器延长距离,一般情况分支布线的情况符合图5即可。

图6 分支距离和波特率的关系

  1. 星型拓扑结构

图7 星型拓扑结构

对于星型拓扑结构来说需要注意的是每个分支的终端电阻的匹配,一般等距离分支终端电阻R=N(分支数)*60即可,如果不等距,需要根据实际情况进行匹配,星型组网一般推荐使用(CANHUB-AS4)集线器,能够有效隔离子网络的干扰,延长通讯距离。

  1. 总线组网线缆的选择

图9 电缆选择和终端电阻匹配

在这里不得不说,同我接触的很多CAN总线的工程师,都会忽略这个电缆选型和终端电阻匹配问题,对于电缆选型很多工程师好像是对线缆的重视程度还不够,一般选择平行线缆带屏蔽的线缆,虽然带屏蔽了,但是CAN_H和CAN_L平行布线并不能很好的抑制共模干扰,导致总线传输总是偶发一些错误帧,导致数据重发,占用总线资源和其它数据传输,造成关键数据传输延迟,对研发工程师造成了极大的困扰,导致项目延迟。

其次就是终端电阻对总线的影响,不能只记着120欧的终端电阻,也应该根据不同长度和电缆的选择合理配。

作为国内CAN总线系统解决方案供应商,同时也是CIA协会在中国最主要的CAN总线技术传播的窗口,目前致远电子的产品覆盖了从CAN隔离收发器模块、接口转换卡、总线分析仪和总线记录仪,可以为用户提供完整的CAN总线解决方案。

    • CAN对于线束的要求

https://www.suncve.com/the-requirement-of-physical-layer-of-can-bus-for-wiring-harness/

5. CAN线测试

总结:

CAN总线最远两端加120欧姆电阻,也就是CAN总线的电阻值是60欧姆。一般波特率在1M的情况下,分支长度最好不要超过0.3m。如果需要增加分支长度,可以降低通讯速率或者使用 (CANbridge+) 中继器延长距离。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/160484.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RabbitMQ快速入门之进阶

RabbitMQ快速入门之进阶 进阶RabbitMQ快速入门之进阶1、confirm 模式的设置2、return 退回模式的处理3、消费者 Ack,手动确认4、消费端限流 (流量削缝)5、TTL存活时间过期时间6、死信队列DLX7、延迟队列 (TTL DLX)1、confirm 模式的设置 *c…

VSCode使用Clangd

前言 在使用微软的C/C插件时,遇到较大项目时,代码提示速度非常的慢,这时可以使用clangd 1、系统安装clangd 版本选择:Linux github仓库: https://github.com/clangd/clangd/releases 解压下载好的安装包: unzip cla…

Python实现小米蓝牙温湿度计2 Home Assistant 自定义组件源码

小米 米家蓝牙温湿度计2 这是一个Home Assistant自定义组件,用于 Home Assistant 通过 蓝牙适配器 直接集成 小米 米家蓝牙温湿度计 (LYWSDCGQ/01ZM) 和 米家蓝牙温湿度计2 (LYWSD03MMC)。 v0.2.0-dev版本以后,已经支持自动发现功能,不需要…

Leetcode:501. 二叉搜索树中的众数(C++)

目录 问题描述: 实现代码与解析: 通用写法(递归): 原理思路: 依据二叉搜索树特性写法(递归): 原理思路: 迭代: 原理思路: 问题…

Android Compose——一个简单的新闻APP

Owl简述效果视频导航导航结点路线图底部导航栏使用标签页状态切换FeaturePage构建CoursePage实现搜索ViewModelView详情页DetailDescribeLesson尾Gitte简述 此Demo是参考Google Github其中一个Demo而完成,涉及的内容并不复杂,主要是为了熟悉Compose编码…

2022爱分析・出海数字化系列报告之“出海实时互动与通信”厂商全景报告 | 爱分析报告

报告编委 张扬 爱分析联合创始人&首席分析师 文鸿伟 爱分析高级分析师 王鹏 爱分析分析师 目录 研究范围定义厂商全景地图市场分析与厂商评估入选厂商列表研究范围定义 研究范围 改革开放四十多年来,中国企业经历了自商品出海到当前的品牌出海,出海…

Servlet的使用

作者:~小明学编程 文章专栏:JavaEE 格言:热爱编程的,终将被编程所厚爱。 目录 什么是Servlet? 创建一个Servlet程序 1.创建一个Maven项目 2.引入依赖 3.创建目录 4.编写代码 5.打包 6.部署程序 7.验证程序 …

Rust如何进行模块化开发?

类似es6的模块化,Rust通过package、create、module来实现代码的模块化管理 Rust如何进行模块化开发? Rust的代码组织包括:哪些细节可以暴露,哪些细节是私有的,作用域内哪些名称有效等等。 而这些功能被统称为模块系统…

晒成绩单了,百度智能云交出2022年终大考试卷!

晒成绩单了,百度智能云交出2022年终大考试卷! 2023年伊始,工厂加快步伐复工复产、城市烟火气涌现、消费活力加速释放,企业对未来发展呈现乐观预期。有外媒称,“中国经济将实现比预期更快的复苏””。 站在更宏观的视…

java入门到废为止

目录基础数据变量类型数据类型基本类型上下转型引用类型类型对比装箱拆箱缓存池输入数据数组初始化元素访问内存分配数组异常二维数组运算参数形参实参可变参数方法方法概述定义调用注意事项方法重载重载介绍方法选取继承重载参数传递枚举Debug对象概述类定义构造器包封装thiss…

【React】二.JSX

目录 二.JSX JSX的基本使用 jsx使用步骤 JSX中使用JavaScript表达式 嵌入JS表达式 注意点 JSX的条件渲染 问题记录 JSX的列表渲染 JSX的样式处理 总结 二.JSX JSX的基本使用 createElement()的问题繁琐不简洁不能直观看出所描述的结构不优雅,用户体验不佳…

Java设计模式-代理模式Proxy

介绍 代理模式是一种比较好理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 代理模式的主要作用是扩展目标对象的功能&a…

Linux编译器-gcc/g++的使用

📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容主要介绍了Linux编译器g/gcc的相关使用方法&#xff0c…

Linux学习笔记——分布式内存计算Flink环境部署

5.13、分布式内存计算Flink环境部署 5.13.1、简介 Flink同Spark一样,是一款分布式内存计算引擎,可以支撑海量数据的分布式计算。 Flink在大数据体系同样是明星产品,作为最新一代的综合计算引擎,支持离线计算和实时计算。 在大…

libcurl库及curl API的简介

目录 一、libcurl简介 二、curl API简介 三.库安装编译方法 内容来源:Http协议之libcurl实现 - 谢呈勖 - 博客园 (cnblogs.com) 一、libcurl简介 libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。…

当 Rainbond 遇上龙蜥!小龙带你玩转一站式云原生,点击开启

Rainbond 是一个云原生应用管理平台,使用简单,不需要懂容器、Kubernetes 和底层复杂技术,支持管理多个 Kubernetes 集群,和管理企业应用全生命周期。主要功能包括应用开发环境、应用市场、微服务架构、应用交付、应用运维、应用级…

Golang的Fork/Join实现

做过Java开发的同学肯定知道,JDK7加入的Fork/Join是一个非常优秀的设计,到了JDK8,又结合并行流中进行了优化和增强,是一个非常好的工具。1、Fork/Join是什么Fork/Join本质上是一种任务分解,即:将一个很大的…

FPGA图像处理HLS实现RGB转灰度,提供HLS工程和vivado工程源码

目录一、图像RGB转灰度原理二、HLS方案实现三、HLS在线仿真并导出IP四、Kintex7开发板vivado工程验证五、zynq7100开发板vivado工程验证六、板级调试验证七、福利:工程源码获取一、图像RGB转灰度原理 图像rgb转灰度图有固定的公式,具体公式csdn一大堆&a…

mirco:bit是什么?小学生拿着它就能召唤神龙?

mirco:bit是什么?micro:bit是一款由英国广播电视公司(BBC) 为青少年编程教育设计,并由微软,三星,ARM,英国兰卡斯特大学等合作伙伴共同完成开发的微型电脑。BBC希望通过micro:bit驱动青少年参与到创造性的硬件制作和软件…

MySQL基础——DCL语句

概述 DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。 管理用户 查询 查询用户代码如下: USE mysql; SELECT * FROM user; …