当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]OCA最初是一个实用工具,旨在让我的CAN总线项目开发更加轻松。我决定将其发布为开源项目,以便开发者、学生和嵌入式系统专业人士可以使用它,研究其工作原理,并贡献改进。

CAN总线开发通常需要接收数据帧、识别消息ID、分析时序、发送测试消息以及解释应用信号。

商用CAN工具功能强大,但对于学习、实验开发和嵌入式系统调试而言,一个开放且可定制的解决方案尤为实用。

因此,我创建了Open CAN Analyzer,简称OCA。

OCA最初是一个实用工具,旨在让我的CAN总线项目开发更加轻松。我决定将其发布为开源项目,以便开发者、学生和嵌入式系统专业人士可以使用它,研究其工作原理,并贡献改进。

该项目包含两个主要部分:

1. 一款使用 Python 和 Tkinter 编写的跨平台桌面应用程序。

2. 基于 Infineon DAVE 4 开发的 Infineon XMC4700 Relax Kit 完整固件。

桌面应用程序支持 Windows、macOS 和 Linux 系统。已成功在 Windows 和 macOS 上使用真实硬件测试了双向通信功能。

什么是Open CAN Analyzer?

Open CAN Analyzer 是一款开源工具,用于接收、检查、传输、记录、解码和回放经典CAN通信流量。

桌面应用程序通过USB CDC串行接口,使用文档中规定的OCA文本协议与XMC4700通信。

固件通过XMC4700 MultiCAN外设接收CAN帧,并将其转发至计算机。在反向通信中,它会验证通过USB接收到的命令,然后再将帧发送到CAN网络。

由于通信协议是开放且文档化的,其他开发者可以创建兼容的USB转CAN适配器,同时继续使用相同的桌面应用程序。

主要特点

• 经典CAN帧的接收与发送。

• 标准11位CAN标识符。

• DLC 值从 0 到 8 字节。

• 实时交通可视化。

• 时间戳、方向、ID、DLC、数据及帧周期显示。

• 按CAN ID分组的最新接收帧。

• 用于单个字节和DBC信号的时间序列图。

• 按ID、ID范围、方向和文本筛选。

• JSON配置文件和快速传输预设。

• 可选的自动回复。

• CSV 录制与回放。

• 导出为 candump 格式。

• 使用 cantools 进行 DBC 解码。

• 由硬件控制的仅监听模式。

• 英语和巴西葡萄牙语界面。

• 自动串行端口发现。系统架构

XMC4700 MultiCAN外设从CAN网络接收帧。固件将接收到的帧复制到一个有限队列中,并通过USB CDC将其转发至计算机。

相反,桌面应用程序接收到的命令在固件请求通过CAN网络发送之前会被进行验证。

CAN 接收由中断处理,但 USB 的格式化和通信则在中断之外进行。这有助于保持中断简短,并帮助维持固件行为的可预测性。

固件还会报告控制器诊断信息,包括接收和发送的帧计数、队列溢出、消息丢失事件、CAN控制器状态、TEC、REC以及当前的活动模式或仅监听模式。

沟通流程

CAN网络

→ IFX1051LE CAN收发器

→ XMC4700 MultiCAN 外设

→ OCA 文本协议通过 USB CDC

→ Windows、macOS 或 Linux 电脑

→ 打开 CAN 分析器桌面应用程序

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

在本节中,您将学习如何通过Python应用程序,使用UART串行通信协议,将独立的微控制器(如8051(AT89S51或W78E052DDG)、MSP430或PIC16F系列)与PC连接并进行数据交换。

关键字: 微控制器 Python 串行通信 ATmega328P

PCB设计完成后,走线宽度是否符合工艺规则是制板前的硬门槛——电源线要求20mil以上、信号线8mil、差分对5mil,任何一个违规都可能导致短路或断路。人工肉眼检查几十上百条走线既费时又容易漏,而Python配合Alt...

关键字: Altium自动化 走线宽度检查 Python PCB

产线测试、实验室老化、器件筛选——这些场景里,"手动点按钮→读数据→记 Excel"的方式已经跟不上节奏了。Python + PyVISA 是目前最通用的仪器控制方案,支持 Keysight、R&S、Tektronix、...

关键字: 自动化测试 Python VISA

我通过SSH连接到树莓派,并运行了两个自行编写的Python脚本:一个用于测试IMX500+CPU推理和USB摄像头+CPU推理,另一个用于测试IMX500+传感器内推理。同时,我还测试了reCamera。

关键字: 树莓派5 eCamera Python 传感器

本项目是一款基于Python和Pygame开发的完整功能门将游戏,可通过键盘或使用MPU6050传感器(加速度计+陀螺仪)实时身体动作进行控制。游戏可在Windows和树莓派(支持I²C接口)上运行,是学习硬件接口、游戏...

关键字: Python 加速度计 陀螺仪 树莓派

请注意,对于单一输入流,增加AIPU核心并不会提高吞吐量,而只会降低每帧的延迟。当只有一个流提供数据时,这些核心是通过降低延迟来工作的,而不是提升带宽。

关键字: OpenCL Python INA228

CAN总线作为工业自动化、新能源汽车、智能设备领域的核心通信总线,凭借差分传输、多主仲裁、抗干扰性强的优势,成为设备数据交互的核心载体。但在复杂电磁环境中,地电位差、共模干扰、浪涌电压、电源噪声等问题,极易导致总线数据丢...

关键字: 信号隔离 CAN总线 隔离

原始版本被设计为一款网络应用程序,以最大化可访问性。通过浏览器,用户可以在任何计算机上配置硬件,无需安装专用软件或管理复杂的驱动程序。这种“零安装”的体验使其成为社区内的事实标准。

关键字: 人工智能 Web 应用 Python

在工业现场,CAN总线一旦出现通信故障,往往影响整条产线。不同于实验室环境,现场工程师通常没有昂贵的CAN分析仪,需要在有限条件下快速定位问题。本文总结三种不依赖专业仪器的实用诊断方法,帮你从物理层到协议层逐步排查。

关键字: CAN总线 示波器

Soan Papdidi 改变了这种体验。它是一款紧凑、易于上手的纯FPGA开发板——无需MCU,也无隐藏式微控制器,只需掌握原始的FPGA功能即可。该板配备8个DIP开关、8个LED灯和10个I/O引脚,非常适合用于学...

关键字: FPGA 开发板 数字电路 Python
关闭