【启明智显技术分享】探讨CAN总线相关知识以及Model3C 2路CAN的应用

一、 CAN总线相关知识

  • CAN总线概述
    CAN(Controller Area Network)总线是一种高实时性、高可靠性和灵活性的串行通信协议,广泛应用于汽车和工业控制系统中。它由德国BOSCH公司开发,最高速率可达到1Mbps,具有强大的检错和处理机制,以及高抗干扰性和自诊断能力。

1、 CAN总线特点

  • 高实时性:CAN总线采用非破坏性仲裁技术,确保高优先级数据能够优先传输。
  • 高可靠性:CAN总线具有强大的错误检测和处理机制,包括CRC校验、应答机制等,能够有效提高数据传输的可靠性。
  • 灵活性:CAN总线支持多种操作模式,如正常模式、只听模式、自测模式等,满足不同应用场景的需求。
  • 扩展性:CAN总线支持多个节点同时接入,方便用户根据实际需求进行灵活配置和扩展。

2、 为什么CAN节点ID不能相同

CAN(Controller Area Network)总线是一种广泛应用于汽车和工业自动化领域的串行通信协议。在CAN总线网络中,节点ID(标识符)用于区分不同的报文和数据源,确保数据能够准确无误地传输到目标节点。节点ID不能相同的原因主要有以下几点:

  • 仲裁机制:CAN总线的仲裁机制是基于报文的ID进行的。当多个节点同时向总线发送报文时,CAN控制器会监听总线上的电平信号,并根据报文的ID进行仲裁。ID数值越小的报文具有越高的优先级,会优先被发送。如果两个或更多节点具有相同的ID,那么仲裁机制将失效,因为所有具有相同ID的节点都会认为自己具有发送报文的优先权,从而导致总线冲突和数据传输错误。
  • 避免数据冲突:为了确保CAN总线上的数据传输高效且有序,每个节点都需要一个唯一的ID来标识其发送的报文。这样可以有效避免不同节点之间的数据冲突,确保每个报文都能被正确接收和处理。
  • 提高系统稳定性:如果允许节点ID相同,那么CAN总线网络将变得不稳定且难以管理。因为当多个节点同时发送数据时,由于ID相同而无法进行有效的仲裁,这可能导致总线拥塞、数据传输失败甚至整个系统崩溃。

3、CAN总线常遇到的问题

  • 通信错误:由于CAN总线上的节点之间存在不同的优先级,可能导致数据冲突。此外,错误的软件实现或硬件设计也可能导致通信错误。

  • 总线短路:CAN总线上连接的电气设备可能因为短路而损坏总线系统。这通常是由于设备的接地问题、电源问题或其他电气问题导致的。

  • 错误帧:CAN总线上可能会出现错误帧,这些帧包含了错误的ID或者CRC校验错误等信息。错误帧的出现可能会导致总线上的其他节点误判情况,从而影响整个系统的正常运行。

  • 总线过载:当CAN总线上的节点数量过多或者通信数据量过大时,可能导致总线过载,从而影响通信性能和稳定性。

  • 总线阻塞:在某些情况下,CAN总线上的节点可能会长时间保持发送状态,从而导致其他节点无法发送数据,这种现象被称为总线阻塞。

  • 总线错误:CAN总线上的节点可能会发生硬件故障,例如控制器损坏、接口损坏等,这些情况都可能导致总线错误。

  • 总线干扰:CAN总线可能会受到外部电磁干扰,如电源干扰、射频干扰等,这些干扰可能导致总线上的数据传输出错。

4、以个位数价格的工业级HMI芯片–Model3C为例, 2路CAN的应用
在这里插入图片描述

Model3C是启明智显推出的一款基于RISC-V的高性能、国产自主、工业级高清显示与智能控制MCU,集成了先进的工业HMI技术和双CAN通信技术。其2路CAN的应用主要体现在以下几个方面:

  • 双通道冗余设计

Model3C采用双通道冗余设计,当其中一个CAN通道出现故障时,另一个通道可以立即接管数据传输任务,确保系统的持续运行。这种设计大大提高了系统的可靠性和容错能力。

  • 快速数据传输和稳定通信

Model3C配备的2路CAN接口支持多种通信速率和操作模式,能够满足不同应用场景下的数据传输需求。同时,CAN总线的高实时性和可靠性保证了数据传输的快速性和稳定性。

  • 灵活配置和扩展

Model3C的2路CAN接口支持多个节点同时接入总线,方便用户根据实际需求进行灵活配置和扩展。这种扩展性使得系统能够适应不断变化的应用场景,提高了系统的灵活性和适应性。

  • 广泛应用场景

Model3C的2路CAN接口可以应用于多种工业控制场景,如船舶、交通轨道、汽车仪表、医疗器械等领域的区域网络控制。通过CAN通信,设备可以将各种数据发送到彩屏仪表上,为用户提供实时、直观、简洁的信息。

5、以MODEL3C芯片为例,如何做CAN的收发测试

将测试板上的两个CAN接口对接。执行can_sample命令,CAN0会向CAN1发送数据,CAN1会打印接收到的数据。

aic /> can_sample

发送测试数据:
通过调试工具向CAN总线发送测试数据。测试数据可以包括各种类型的数据帧,如标准帧、扩展帧等。确保发送的数据内容正确,并且发送频率和时序符合要求。

观察接收:
观察CAN总线上的接收设备是否能够正确接收发送的测试数据。
验证接收设备的数据内容是否与发送的数据相匹配,并且没有数据丢失或错误。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DisplayManagerService启动-Android13

DisplayManagerService启动-Android13 1、DisplayManagerService启动1.1 简要时序图 2、DEFAULT_DISPLAY主屏幕添加3、默认屏幕亮度 1、DisplayManagerService启动 1.1 简要时序图 2、DEFAULT_DISPLAY主屏幕添加 3、默认屏幕亮度

AI技术颠覆游戏开发:谷歌DeepMind GameNGen实时生成《DOOM》探秘

引言 近年来,生成式人工智能(AIGC)在图像和视频生成领域取得了巨大突破。然而,谁能想到,这项技术正逐渐渗透进游戏开发领域,且潜力巨大。2023年8月29日,谷歌DeepMind发布了名为《扩散模型是实时…

打造安心宠物乐园:EasyCVR平台赋能猫咖/宠物店的智能视频监控解决方案

随着宠物经济的蓬勃发展,宠物店与猫咖等场所对顾客体验、宠物安全及健康管理的需求日益提升。然而,如何确保这些场所的安全与秩序,同时提升顾客体验,成为了经营者们关注的焦点。引入高效、智能的视频监控方案,不仅能够…

浏览器百科:网页存储篇-如何在Chrome打开localStorage窗格(五)

1.引言 在前面的章节中,我们详细介绍了 localStorage 的基本概念、特性及其常用方法,帮助开发者在网页应用中实现数据的持久化存储。为了更好地管理和调试这些存储的数据,了解如何打开和使用浏览器的 localStorage 窗格是非常重要的。本篇文…

【大模型实战篇】大模型显存资源计算以及GPU如何选择

1. 背景介绍 针对我们今天要讨论的话题,从第一性原则出发,要回答的第一个问题就是,为什么要计算大模型占用的显存资源?一句话概括:显存太小,模型无法运行;显存太大,浪费金钱。所以…

深度学习⑧Meta-Learning Introduction

Motivation 人类学习: 当我们学习新任务时,通常会应用从相关任务中学到的知识。我们通常可以从少量示例中学习,并能够快速适应新任务。我们可以随时刷新或更新自己的知识。 机器学习: 学习仅从少量示例中获得知识(少样…

8. GIS数据分析师岗位职责、技术要求和常见面试题

本系列文章目录: 1. GIS开发工程师岗位职责、技术要求和常见面试题 2. GIS数据工程师岗位职责、技术要求和常见面试题 3. GIS后端工程师岗位职责、技术要求和常见面试题 4. GIS前端工程师岗位职责、技术要求和常见面试题 5. GIS工程师岗位职责、技术要求和常见面试…

软件测试学习笔记丨Pytest+Allure测试计算器

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/31954 项目要求 3.1 项目简介 计算器是近代人发明的可以进行数字运算的机器。 计算器通过对加法、减法、乘法、除法等功能的运算,将正确的结果展示在屏幕上。 可帮助人们更方便的…

【GD32】---- 使用GD32调试串口并实现printf打印输出

1 复制工程模板 直接复制工程模板里的系统文件和固件库文件到新的工程文件01_USART_Printf 2 新建keil工程 参考上一篇博文:【GD32】---- 移植工程模板及点灯测试 3 编写代码 3.1 创建USART文件 创建一个USART.c文件,放于05_UserDriver文件夹中 …

Rust 赋能前端:PDF 分页/关键词标注/转图片/抽取文本/抽取图片/翻转...

❝ 我从不幻想成功。我只会为了成功努力实践 大家好,我是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享的Coder ❝ 此篇文章所涉及到的技术有 WebAssembly Mupdf Pdf操作( 分页展示/文本抽离/文本标注/获取超链接/Pdf转图片/翻转/截取) 因为,行文…

新型PyPI攻击技术可能导致超2.2万软件包被劫持

一种针对 Python 软件包索引(PyPI)注册表的新型供应链攻击技术已在野外被利用,并且目前正试图渗透到下游组织中。 软件供应链安全公司 JFrog 将其代号定为Revival Hijack,并称这种攻击方法可用于劫持 2.2万个现有 PyPI 软件包&am…

6、LVGL控件-线条、图片、按钮矩阵

本篇文章目录导航 ♠♠ LVGL控件-线条、图片、按钮矩阵 ♣♣♣♣ 一、LVGL 线条部件 ♦♦♦♦♦♦♦♦ 1.1 线条部件组成部分 ♦♦♦♦♦♦♦♦ 1.2 线条部件基本API ♦♦♦♦♦♦♦♦ 1.3 实验小演示 ♣♣♣♣ 二、LVGL 图片部件 ♦♦♦♦♦♦♦♦ 2.1 图片部件组成部分 ♦♦…

前端框架有哪些?

前言 用户体验是每个开发网站的企业中的重中之重。无论后台有多方面的操作和功能,用户的视图和体验都必须是无缝的最友好的。这需要使用前端框架来简化交互式、以用户为中心的网站的开发。 前端框架是一种用于简化Web开发的工具,它提供了一套预定义的代…

基于蜣螂优化最小二乘支持向量机的数据分类预测Matlab程序DBO-LSSVM 多特征输入多类别输出 含基础程序

基于蜣螂优化最小二乘支持向量机的数据分类预测Matlab程序DBO-LSSVM 多特征输入多类别输出 含基础程序 文章目录 一、基本原理DBO(Dung Beetle Optimization)算法原理LSSVM(Least Squares Support Vector Machine)模型原理DBO-LSS…

C语言 | Leetcode C语言题解之第388题文件的最长绝对路径

题目: 题解: #define MAX(a, b) ((a) > (b) ? (a) : (b))int lengthLongestPath(char * input){int n strlen(input);int pos 0;int ans 0;int * level (int *)malloc(sizeof(int) * (n 1));memset(level, 0, sizeof(int) * (n 1));while (po…

iOS——Block与内存管理

需要内存管理的情况 1、对象类型的auto变量。 2、引用了 __block 修饰符的变量。 三种block类型 全局类型 (NSGlobalBlock) 如果一个block里面没有访问普通局部变量(也就是说block里面没有访问任何外部变量或者访问的是静态局部变量或者访问的是全局…

SpringBoot+Vue实现大文件上传(断点续传-后端控制(一))

SpringBootVue实现大文件上传(断点续传) 1 环境 SpringBoot 3.2.1,Vue 2,ElementUI,spark-md5 2 问题 在前一篇文章,我们写了通过在前端控制的断点续传,但是有两个问题,第一个问题&…

AUTOSAR Adaptive与智能汽车E/E架构发展趋势

AUTOSAR Adaptive是一个面向现代汽车应用需求的标准,特别适用于那些需要高计算能力和灵活性的应用。以下是AUTOSAR Adaptive的典型特性: 高计算能力:AUTOSAR Adaptive支持使用MPU(微处理器),这些处理器的性…

嵌入式开发学习路线(25届校招学习) 嵌入式学习路线七年规划:从大一小白到校招大佬 (学习路线汇总)

嵌入式开发学习路线(25届校招可以参考) 嵌入式系统作为当前最热门且最有发展前途的IT应用领域之一,吸引了大量有志于从事该行业的学习者。为了系统地掌握嵌入式开发技能,以下是一条详细的学习路线,旨在帮助初学者逐步…

CodeSys中动态切换3D模型

文章目录 需求研究结果 需求 在前面的【CodeSys开发3d机械臂显示控件】中,我们已经实现了一个可以显示3d模型的控件。但是这个控件是和使用的3d模型绑定死的,在安装这个控件时就已经将模型文件于控件一起安装到codesys中。 假如我想在不同的工程中&…