背景:

CAN通信有错误帧,丢包,波特率不匹配等问题。通过STM32可以返回出填充错误,隐形位错误,应答错误等问题。但是面对错误无能为力。通过示波器又无法直观看出错误帧在哪里。

看了广东致远电子的 CAN节点测试与标定方案.pdf 感觉非常有启发。对于CAN节点的测试,文档中和网上的资料比较相似,主要可以分为以下几点:

* 位宽度容忍测试(波特率波动)
* 报文压力测试(大数据量负载情况)
* 错误波特率压力测试(错误波特率)
* 抗干扰能力测试(在高强度干扰)
* 总线短路测试
* 总线断路测试
* 容抗增加压力测试(适应的容抗最高值)
* 总线网络阻抗测试(适应的阻抗最高值)
* 对正负电源或地短路(对正负电源或者地短路)
* 终端电阻变化压力测试等(终端电阻范围)

通过一般的CAN分析仪比较难以进行上面各类测试。需要数字示波器配合一些程序进行分析。

程序与示波器通信:

公司使用的是RIGOL的示波器。一般的方法是通过U盘拷波形。手里这台示波器插什么U盘显示的大小都是0KB,也无法保存。
无奈之下打电话给技术支持。说是示波器有二次开发接口。从网上下到编程手册,果然有一套SCPI命令。
引用一下:SCPI, Standard Commands for Programmable Instruments的缩写,即程控仪器(可编程仪器)标准命令集。
SCPI 是一种建立在现有标准IEEE488.1 和 IEEE 488.2 基础上,并遵循了IEEE754 标准中浮点运算规则、ISO646 信息交换7 位编
码符号(相当于ASCll编程)等多种标准的标准化仪器编程语言。
感觉非常不错,是通用接口。安捷伦,泰克等示波器都兼容这个协议。有一种一劳永逸的感觉。
可惜的是RIGOL的编程手册只给了指令集,所有的开发都要基于NI Labview的那套VISA接口。本科的时候搞过,感觉一切和
Labview挂钩的开发都非常的业余。而且本身示波器有LAN接口。为什么基于网络的开发还要加载人家的静态库。
于是把示波器的网线连上,RIGOL自己的PC客户端开起来,wireshark开起来抓包。一目了然。
从抓包的信息可以看出,LAN客户端走的是TCP,示波器IP 192.168.192.88这个是我设置的,端口号619,做TCP服务器。这个应该
是设备默认的。然后在TCP之上走了个VXI-11的协议,还有涉及关键字: Remote Procedure Call,好像就是著名的RPC。
有了这几个信息之后搞起来就很方便了。先验证一下TCP服务器和端口号是不是对的。拿TCP调试助手连一下,没问题。
然后查一下VXI-11:
The VXI-11 protocol is an RPC-based communication protocol primarily designed for connecting instruments (such as
oscilloscopes, multimeters, spectrum analyzers etc.) to controllers (e.g., PCs). 
看样子需要一个VXI-11调试助手之类的东西。于是网上找,可惜没找到。但是找到一个python的库:python-vxi11
下载,安装,照着例程发一条指令:instr.ask("*IDN?"),成功读到设备信息。
那么接下来知道写好初始化和配置时序,就可以连续读取示波器的采样数据了。

VXI-11协议记录

ultrascope 访问流程:

instr.write(':RUN')

需要这行代码启动示波器的LAN,否则SCPI指令返回的值很奇怪。

Remote Procedure Call: XID
按照wireshark截的报文,消息每首发来回一次,XID加1。
用于标记回包对应的查询包。

数字示波器CAN节点标定相关推荐

  1. LMS151-10100单线激光雷达与RealSense双目相机的联合标定

    一丶标定板的准备 棋盘格规格使用A4纸大小,角点(图7中红色.绿色圆圈标记)数分别为8个及6个,单个棋盘格为0.024mm*0.024mm的正方形. 将打印出的高清A4大小棋盘格粘贴在平整.坚硬的平面 ...

  2. 2021秋招学习笔记

    PS:csdn上有很多图片加载不出来,有PDF版在我的资源.(如果没有1积分可以评论我,直接发给你邮箱) 文章目录 Java基础篇学习(7/3-7/4) 数据类型 泛型.反射.注解.序列化(加实例) ...

  3. 相机标定:(1)相机模型

    之前在进行标定时只是简单的会使用,调用OpenCV里边的函数,完成标定即可.并没有做过多深入的理解,今天趁着course学习把标定详细的记录一下,以下完全是个人理解如果有不对的地方欢迎批评指正. 公式 ...

  4. 头戴式AR/VR 光学标定

    文章:A Survey of Calibration Methods for Optical See-Through Head-Mounted Displays 作者:Jens Grubert , Y ...

  5. 相机标定 matlab opencv ROS三种方法标定步骤(3)

    三 ,  ROS 环境下 如何进行相机标定 刚开始做到的时候遇到一些问题没有记录下来,现在回头写的时候都是没有错误的结果了,首先使用ROS标定相机, 要知道如何查看节点之间的流程图  rosrun r ...

  6. 标定(二)----------双目相机与IMU联合标定(工具箱使用方法——Kalibr)

    16个相机参数: Overview ethz-asl/kalibr is a toolbox that solves the following calibration problems: Multi ...

  7. 详解:Camera-IMU内外参标定原理

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 在vio系统中,camera-imu间内外参精确与否对整个定位精度 ...

  8. 一文详解Camera-IMU内外参标定原理

    作者丨Bjergsen@知乎 来源丨https://zhuanlan.zhihu.com/p/68863677 编辑丨3D视觉工坊 在vio系统中,camera-imu间内外参精确与否对整个定位精度起 ...

  9. 使用ros标定相机的内参和外参

    使用ros标定相机的内参和外参 1 安装依赖 2 运行标定节点 2.1 rocore 2.2 启动摄像头驱动程序 2.3 加载将要标定的图像主题 3 开始标定 3.1 打印一张棋盘格图片 3.2 具体 ...

最新文章

  1. MySQL 高频 100 问
  2. Solaris和Linux的比较、区别、异同云云。。。
  3. HTML5中aside标签的两种使用方法
  4. 之江汇空间如何加音乐背景_从脚本到成品,教你如何快速制作出创意又浪漫的婚礼视频...
  5. Git 之fatal: remote origin already exists 错误解决办法(通俗易懂)
  6. 【笔记】Automatic recognition of soybean leaf diseases using UAV images and deep convolutional neural ne
  7. PHP中使用RabiitMQ---各项参数的使用方法
  8. 时序分析:DTW算法(基于模板)
  9. spi总线 上层调用_spi总线设备驱动分析
  10. h5页面预览pdf文件_H5移动端在线浏览pdf文件,推荐插件TouchPDF
  11. 用docker swarm 实现集群
  12. Android系统运行库分为,Android系统架构
  13. OpenCV-基本图形绘制(圆、矩形、椭圆)
  14. bootstrap tab 组合表头
  15. 【渝粤教育】国家开放大学2018年春季 0242-22T机械制图 参考试题
  16. 手机5g什么时候普及_5G牌照发放仨月,5G手机扎堆上市,何时才能真正普及?
  17. 找不到.jack_您不了解Jack关于Firefox的知识!
  18. PTA 1072 开学寄语
  19. 同步练习(Java SE(十二))
  20. xtend 生成代码的编码问题

热门文章

  1. 名帖82 苏轼 行楷《前赤壁赋诗卷》
  2. JQuery对象与JavaScript对象的区别与转换
  3. 从C快速入门C++ (命名空间、引用、函数重载)
  4. 解密刷子是如何进行APP刷量的?
  5. 宽带和网线有什么区别?
  6. 涨知识!原来华为手机摄像头还有这些高级玩法,学会轻松提高工作效率
  7. Windows API函数大全---附:windows运行命令详解
  8. 通信之道-傅立叶分析
  9. 面向对象的五大原则是什么
  10. 快速完成会议记录的智慧之选,讯飞智能录音笔SR502表现出色