Loto实践干货(3) 测量CAN总线通讯数据
Loto实践干货(3) 测量CAN总线通讯数据
最近在做运动控制卡的项目,调试样机的过程中,需要验证CAN总线通讯功能的正确性。以前只限于理论上认识CAN总线,使用的CANbus的通讯卡也是有上位机例程,基本上简单地配置上位机软件就可以正常工作了。这次调试需要深入测试CAN接口的通讯过程,正好把之前的对CAN的认识再复习深化一下。

之所以采用CAN总线,是因为它只需要两根双绞线就可以连接多个通讯节点,并且可以传输相对远的距离,在工业现场抗干扰能力也很强。下图是我按照CAN总线的要求做的一条双绞线,黄色和绿色分别是CAN_High线和CAN_Low线。要求绞距20mm,不绞合的距离不超过50mm。

规定的双绞线传输距离与CAN总线的传输速率的关系如下表。我们的传输距离很短,所以可以采用很高的传输速率。即便是采用最高的传输速率,以OSC802示波器的25M带宽,也是足够调试用的。

下图是我设计驱动控制板的CAN通讯接口部分的原理图,使用SN65HVD230收发器:

打样后的运动控制板是这样的:

使用LOTO的USB示波器OSC802对CAN通讯的信号进行捕捉,抓取数据进行解析判断。

使用USB示波器OSC802的单次触发功能,很轻松对CAN总线上的电平信号进行了捕捉。不过我们现在还看不懂它,需要对CAN的电平逻辑和传输协议有所了解。
没有收发信号时,两条导线上的电平相同(大约2.5V)。这种电平状态为隐形状态,也称之为隐性电平,即为逻辑1。有信号时,CAN_H导线的电平升高至少1V;而对应的CAN_L导线电平降低同样值,这种电平状态为显形状态,也称之为显性电平,即为逻辑0。5V和3.3V的CAN收发器的逻辑电平会稍有不同。

我们通过程序发出一串CAN数据后,用OSC802捕捉到的波形如下:


根据波形进行数据解码需要注意的有两点:
1:在CAN协议中将CAN_H和CAN_L的差值为高电平时定义为显性,逻辑上表示为0,为低电平时定义为隐性,逻辑上表示为1。
2:在CAN的协议中当连续出现5个显性时就需要插入一个隐性。
CAN的标准帧和扩展帧协议格式:

所以,波形数据解读为:

图中被红色斜线划掉的为CAN协议有意在5个连续显性后面加的单个隐性位,所以去掉。所以,通过USB 示波器 OSC802抓取到的数据为:

这个数据帧发出的数据为:
1010101111001101
0xAB, 0xCD
解析结果与上位机收发的结果互相验证正确,所以此次运动控制板的CAN接口功能调试成功完成。

Loto实践干货(3) 测量CAN总线通讯数据的更多相关文章
- Loto实践干货(8)loto示波器在LED台灯调光问题维修中的应用案例
Loto实践干货(8)loto示波器在LED台灯调光问题维修中的应用案例 一位客户最近觉得觉得他的LED台灯好闪, 于是拆了看看,里面的控制板是这样的: 干掉双色调光功能,只调亮度的话闪烁的状况能好转 ...
- Loto实践干货(8) 实测 保险丝 用示波器带电流探头
本文用LOTO示波器和5A的电流探头来实验两种常见类型的保险丝的保护曲线.一种是熔断型的,另一种是自恢复型的.我们通常需要在一些电路中对电流过大的情况做保护,比如防止用户把输出源短路,比如防止用户对电 ...
- LOTO实践【干货】电压比较器的快速应用
LOTO实践[干货]电压比较器的快速应用 话不多说先上图: 最近出差去客户那边做设备调试,现场如上图,其中我负责的技术部分包含了一个掉落物监测的功能.硬件上的原理比较简单,发射板上的红外发射头阵列,以 ...
- I2C总线通讯协议
I2C总线通讯协议 1. I2C总线简介 I2C是Inter-Integrated Circuit的简称,读作:I-squared-C.由飞利浦公司于1980年代提出,为了让主板.嵌入式系统或手机用以 ...
- 让Elasticsearch飞起来!——性能优化实践干货
原文:让Elasticsearch飞起来!--性能优化实践干货 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog ...
- .Net最佳实践3:使用性能计数器收集性能数据
本文值得阅读吗? 本文讨论我们如何使用性能计数器从应用程序收集数据.我们将先了解的基本知识,然后我们将看到一个简单的示例,我们将从中收集一些性能数据. 介绍: - 我的应用程序的性能是最好的,像火箭 ...
- 如何在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据
http://www.jb51.net/os/windows/189090.html 今天给大家介绍一种如何在Windows操作系统上使用著名的抓包工具软件Wireshark来截获iPhone.iPa ...
- Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用
Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用 原创 2017-04-13 嘟嘟MD 嘟爷java超神学堂 前言 前面几章介绍了一些基础,但都是静 ...
- java实现测量到的工程数据
[12,127,85,66,27,34,15,344,156,344,29,47,-] 这是某设备测量到的工程数据. 因工程要求,需要找出最大的 5 个值. 一般的想法是对它排序,输出前 5 个.但当 ...
- WOT干货大放送:大数据架构发展趋势及探索实践分享
WOT大数据处理技术分会场,PingCAP CTO黄东旭.易观智库CTO郭炜.Mob开发者服务平台技术副总监林荣波.宜信技术研发中心高级架构师王东及商助科技(99Click)顾问总监郑泉五位讲师, ...
随机推荐
- NC224933 漂亮数
题目链接 题目 题目描述 小红定义一个数满足以下条件为"漂亮数": 该数不是素数. 该数可以分解为2个素数的乘积. 4 是漂亮数,因为 4=2*2 21 是漂亮数,因为 21=3* ...
- P2P通讯方式
概述 实现p2p通讯我们提供两种方式,这两种方式分别是通过客户端直接互通和p2p映射: 无论哪一种,首先设备两端都得部署好fastnat客户端,NAT类型不能是对称类型NAT(Symmetric),否 ...
- openai chatGPT 原理通俗介绍
引言 近年来,随着深度学习技术的不断发展,自然语言处理(NLP)领域取得了长足的进步.ChatGPT(Generative Pre-trained Transformer)作为一种先进的语言生成模型, ...
- 【Unity3D】缩放、平移、旋转场景
1 前言 场景缩放.平移.旋转有两种实现方案,一种是对场景中所有物体进行同步变换,另一种方案是对相机的位置和姿态进行变换. 对于方案一,如果所有物体都在同一个根对象下(其子对象或孙子对象),那 ...
- Windows系统下的输入法选择
总共用过5款输入法:搜狗拼音输入法,QQ拼音输入法,谷歌拼音输入法,手心输入法,小狼毫. 搜狗输入法功能最强大,词库也很全,基本上对于盲打的输入纠错很准确,但是因为后台会启动多个服务,会占很多内存资源 ...
- tox包
官方文档 https://tox.readthedocs.io/en/latest/example/basic.html 官方提供的一个简单的tox.ini/默认环境 [tox] envlist = ...
- 我的第一个项目(十三) :组件间传值的一些方案(vuex,eventbus,localStorage)
好家伙, 先说一下我的需求,我要组件间传值 1.eventBus 前端兄弟组件传值eventbus无法使用 不报错也不触发,就很奇怪 //eventBus.js import Vue from & ...
- Java 从键盘上输入"year"“month”和“day”,要求通过程序输出 输入的日期为第几年的第几天
1 /** 2 * 编写程序: 3 * 从键盘上输入"year""month"和"day",要求通过程序输出 4 * 输入的日期为第几年的第 ...
- pycharm/Intellij idea双击打不开,没有反应,下列方法亲测有用!
第一种方法: 看看你的微软C++运行库是不是误删了.....我就这么干过...以前有个软件捆绑这个 安装了 结果我后来给删了 ,导致我pycharm 和intellij idea全都打不开 !!!各位 ...
- 1、eureka的注册流程
客户端注册到服务端是通过http请求的 涉及到多级缓存 register注册表 源码精髓:多级缓存设计思想 在拉取注册表的时候: 首先从ReadOnlyCacheMap里查缓存的注册表. 若没有,就找 ...