CAN XL协议标准在CANoe中的应用

众所周知,CAN通信技术在汽车领域中,有着非常广泛的应用。从1991年,第一代经典CAN在奔驰S级轿车中首次应用;到2011年,开始第二代CAN总线(即CAN FD)的开发;如今,ISO 11898-1:2024以及ISO 11898-2:2024版本的发布,标志着第三代CAN总线——CAN XL的时代将要来临。

在已有CAN 和CAN FD总线的情况下,为什么还要推出 CAN XL呢?当前,常用的车载总线包含了低速率总线和高速率总线,其中CAN、CAN FD、FlexRay等属于低速率总线,以太网(100/1000BASE-T1)属于高速率总线。在车载网络中,大部分控制节点的通信速率在10 Mbit/s以内,因此10 Mbit/s的通信速率有着非常广泛的应用领域。于是,为了顺应这种新的需求,低速率总线得到提升,也就有了CAN XL,通过CAN XL弥补了CAN FD与100BASE-T1之间的空白。

在已发布的ISO 11898-1:2024以及ISO 11898-2:2024的标准中,详细的说明了CAN XL数据帧的结构,其中CAN XL帧的数据段支持高达2048字节的数据传输,理论上CAN XL技术可以适配以太网的高层协议,不过具体的以太网协议兼容性仍需进一步验证。此外,CAN XL在PCS和PMA子层之间引入了PWM编解码机制,以切换PMA子层的两种总线驱动方式(显性/隐性和Level_0/Level_1),从而实现更高的传输速率。

下面将介绍CAN XL在CANoe软件中的应用,从应用中了解CAN XL协议的具体信息。

一、CANXLBasic.cfg工程

以CANoe 18.0 SP2中的DEMO工程CANXLBasic.cfg为例,该示例演示了CAN XL协议在音视频流中的应用。

注:该DEMO工程在CANoe 17.0 SP3及以上版本中存在。

图 1 CAN XL示例工程路径

在CANXLBasic.cfg这个工程中,设置了两路通道,一路通道作为数据发送方,另一路作为数据接收方,即在Panel面板中设计了MediaClient和MediaServe两个面板。

MediaClient面板用于控制音频流的播放,其面板内的时间指示器将实时显示音频文件的播放时间,当音频流停止并重新启动时,数据再次开始传输。

MediaServe面板显示音频文件的相关信息,在MediaClient启动音频流后,MediaServe中的Media File Information区域会显示当前媒体文件、采样率、媒体类型以及服务状态等信息,Frame Information区域则会显示报文周期和报文数据长度。注意:MediaServe中的FrameFormat可以将协议配置为CAN XL或者CAN FD,但如果选择CAN FD,声卡上的音频流输出将出现问题,这表明CAN FD在这种情况下是不够的。

图 2 CAN XL的示例工程

在仿真模式(Simulated Bus)下运行CANXLBasic.cfg工程,当MediaServe面板中的协议类型设置为CAN XL时,Trace窗口自动将Column Layout切换为CAN XL Layout1,即Trace窗口条目栏的解析模板将切换为CAN XL模式,Trace窗口可实时监控并分析CAN XL数据传输情况,通过该窗口,可以查看CAN XL报文的详细信息,包括DLC(数据场长度)、Data(数据场)、SEC(功能保留位)、SDT(数据段数据类型)、VCID(虚拟CAN网络ID)、AF(寻址)等。

图 3 MediaServe协议为CAN XL

当MediaServe面板中的协议类型设置为CAN FD时,Trace窗口可实时监控并分析CAN FD数据传输情况。此时CAN Statistics窗口中的总线负载率超过了90%,在这种高负载的情况下,系统可能无法有效处理所有的数据帧,从而会导致通信延迟或丢帧。MediaClient中播放的音频质量则会下降,变成杂音,这种情况表明CAN FD的速率无法满足该音频流的传输需求。

图 4 MediaServe协议为CAN FD

在真实模式(Real Bus)下运行CANXLBasic.cfg工程,需要带有CAN XL驱动程序的VN1670或者VN1641硬件。在进行硬件配置时,在Network Hardware Configuration中将总线模式配置成CAN XL,总线速率设置为8000kBit/s,在后续实际的应用中,或许可以设置的更高,在ISO 11898-1:2024中已发布,CAN XL的数据场的速率可以达到10Mbit/s,甚至最高可以提速到20 Mbit/s。

图 5 Network Hardware Configuration配置

二、CAN XL报文

已发布的ISO 11898-1:2024中,详细的说明了CAN XL报文的结构,如下图所示:

图 6 CAN XL数据帧结构

CAN XL报文解析,当XLF位置为1时,表示该帧为CAN XL报文。CAN XL报文有两种CRC校验方式,即PCRC(前置CRC校验)和FCRC(后置CRC校验)。PCRC共13bits,主要校验仲裁场、reXEL、ADS、SDT、SEC、DLC和SBC的内容;FCRC共32bits,用于整帧CRC校验,确保整个数据帧的数据完整性。

此外,当前Trace窗口下所选报文的有效字节数为1920个字节,显著高于CAN FD的字节数。相比之下,标准以太网帧的最大长度为1518个字节,考虑到以太网头部和尾部,实际有效载荷会更小。因此,CAN XL的1920字节有效载荷容量远超以太网帧的最大有效载荷,这使得CAN XL能够在单个帧中传输更多数据,特别适用于需要大量数据传输的应用场景。

图 7 Trace窗口报文解析

三、硬件适配

CANoe 16.0开始可以支持CAN XL总线,但是从CANoe 16.0一直到CANoe 18.0的版本中,并没有新建CAN XL总线工程的模板,用户可以通过新建CAN/CAN FD总线工程,然后在Network Hardware Configuration中配置CAN XL的协议(如图5所示),以此建立CAN XL总线通信。

图 8新建CAN XL工程

当前可支持CAN XL的硬件接口卡为VN1670、VN1641。VN1641支持CAN XL的最大速率可达到20Mbit/s,这取决于线路和收发器的配置,即需要选择CAN SIC XL型收发器。注意:当总线速率超过5 Mbit/s时,需要将CAN SIC XL Piggyback配置为FAST Mode。

图 9 CAN收发器型号

图 10控制器与收发器模式

CAN SIC XL收发器需要同时支持显性/隐性与Level_0/Level_1两种驱动方式,即支持两种发送模式: SIC Mode和FAST Mode。在仲裁段采用SIC Mode,此时收发器支持显性/隐性的驱动方式即可,CAN SIC XL收发器亦可以作为CAN SIC收发器使用。在数据段可通过模式转换进入FAST Mode,此时收发器需要支持Level_0/Level_1的驱动方式,当CAN XL控制器发送PWM信号到收发器,收发器检测到PWM信号时,将从SIC Mode转换到FAST Mode,之后如果没有再次检测到PWM信号,收发器会切换回SIC Mode。

注意:VN1670需在CANoe 15.0 SP3以上版本使用,支持Windows 10/ Windows 11系统,若要将其用作支持CAN XL总线的硬件,则需搭配CANoe 16.0及以上的软件,由于CANoe 16.0及以上版本软件仅支持Windows 11系统,因此VN1670在做CAN XL数据收发时,仅支持Windows 11系统。VN1641目前仅支持CANoe 18.0以上的版本,同时只支持Windows 11系统。

图 11 VN1670硬件接口卡

图 12 VN1641硬件接口卡

以上就是有关CAN XL在CANoe软件中的应用以及适配硬件的相关内容,目前CAN XL协议推出不久,还没有被广泛应用,期待在未来的使用中,会有更多的应用场景!

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

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

相关文章

MyBatis 操作数据库入门

目录 前言 1.创建springboot⼯程 2.数据准备 3.配置Mybatis数据库连接信息 4.编写SQL语句,进行测试 前言 什么是MyBatis? MyBatis是⼀款优秀的 持久层 框架,⽤于简化JDBC的开发 Mybatis操作数据库的入门步骤: 1.创建springboot⼯程 2.数…

kwin- 插件加载绘制流程

1. 配置文件的作用具体是做什么的? 相当于用户强制设置了特效的开关,对于没有写在配置文件里的特效,会检测默认加载值,确定是否加载。写在了文件里的会根据返回的值,来加载特效。 2. 为什么配置文件没有写&#xff0c…

【自用】王道文件管理强化笔记

文章目录 操作系统引导:磁盘初始化文件打开过程角度1文件的打开过程角度2 内存映射的文件访问 操作系统引导: ①CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机) ②)将磁盘的第一块–主引导记录读入内存&…

【Ubuntu】git

文章目录 1.配置SSH key2. 基础知识操作命令1分支branch 如果对git命令使用不熟悉,推荐一个非常棒的git在线练习工具 Learn Git Branching。 https://m.runoob.com/git/git-basic-operations.html 1.配置SSH key ssh-keygen -t rsa -C "YOUR EMAIL"完成…

markdown 中启用音频支持

markdown 中启用音频支持 markdown 默认不支持音频文件&#xff0c;我们通过 html 标签渲染 flask项目 其中音频文件放在 /static/audios/vad_example.wav markdown 内容如下&#xff1a; ## 音频播放器示例 <audio controls ><source src"vad_example.wav…

Flink源码剖析

写在前面 最近一段时间都没有更新博客了&#xff0c;原因有点离谱&#xff0c;在实现flink的两阶段提交的时候&#xff0c;每次执行自定义的notifyCheckpointComplete时候&#xff0c;好像就会停止消费数据&#xff0c;完成notifyComplete后再消费数据&#xff1b;基于上述原因…

力扣16~20题

题16&#xff08;中等&#xff09;&#xff1a; 思路&#xff1a; 双指针法&#xff0c;和15题差不多&#xff0c;就是要排除了&#xff0c;如果total<target则排除了更小的&#xff08;left右移&#xff09;&#xff0c;如果total>target则排除了更大的&#xff08;rig…

kafka的成神秘籍(java)

kafka的成神秘籍 kafka的简介 ​ Kafka 最初是由Linkedin 即领英公司基于Scala和 Java语言开发的分布式消息发布-订阅系统&#xff0c;现已捐献给Apache软件基金会。Kafka 最被广为人知的是作为一个 消息队列(mq)系统存在&#xff0c;而事实上kafka已然成为一个流行的分布式流…

【mmengine】配置器(config)(进阶)继承与导出,命令行修改配置

一、配置文件的继承 1.1 继承机制概述 新建optimizer_cfg.py: optimizer dict(typeSGD, lr0.02, momentum0.9, weight_decay0.0001)新建runtime_cfg.py: device "cuda" gpu_ids [0, 1] batch_size 64 epochs 100 num_workers 8新建resnet50.py: _base_ […

Vue 路由设置

为了防止遗忘&#xff0c;记录一下用Vue写前端配置路由时的过程&#xff0c;方便后续再需要用到时回忆。 一、举个例子 假如需要实现这样的界面逻辑&#xff1a; 在HomePage中有一组选项卡按钮用于导航到子页面&#xff0c;而子页面Page1中有一个按钮&#xff0c;其响应事件是…

笔记-stm32移植ucos

文章目录 一、UCOS的基础知识1.1 前后台系统:1.2 RTOS系统可剥夺型内核:前后台系统和RTOS系统 1.3 UCOS系统简介学习方法 二、ucossii移植Step1&#xff1a;在工程中建立存放UCOSS代码的文件夹UCOSIIStep2:向CORE文件夹添加文件Step3:向Config文件夹添加文件Step4:向port文件夹…

LLM4Rec最新工作: 字节发布用于序列推荐的分层大模型HLLM

前几个月 Meta HSTU 点燃各大厂商对 LLM4Rec 的热情&#xff0c;一时间&#xff0c;探索推荐领域的 Scaling Law、实现推荐的 ChatGPT 时刻、取代传统推荐模型等一系列话题让人兴奋&#xff0c;然而理想有多丰满&#xff0c;现实就有多骨感&#xff0c;尚未有业界公开真正复刻 …

vscode中配置python虚拟环境

python虚拟环境作用 Python虚拟环境允许你为每个独立的项目创建一个隔离的环境&#xff0c;这样每个项目都可以拥有自己的一套Python安装包和依赖&#xff0c;不会互相影响。实际使用中&#xff0c;可以在vscode或pycharm中使用虚拟环境。 1.创建虚拟环境的方法&#xff1a; …

【NLP自然语言处理】01-基础学习路径简介

目的&#xff1a;让大家能够在 AI-NLP 领域由基础到入门具体安排&#xff1a; NLP介绍 文本预处理RNN 及其变体&#xff08;涉及案例&#xff09;Transformer 原理详解迁移学习 和 Bert 模型详解 &#xff08;涉及案例&#xff09;特点&#xff1a; 原理 实践每个文章会有练习…

04-SpringBootWeb案例(中)

3. 员工管理 完成了部门管理的功能开发之后&#xff0c;我们进入到下一环节员工管理功能的开发。 基于以上原型&#xff0c;我们可以把员工管理功能分为&#xff1a; 分页查询&#xff08;今天完成&#xff09;带条件的分页查询&#xff08;今天完成&#xff09;删除员工&am…

算法题总结(十)——二叉树上

#二叉树的递归遍历 // 前序遍历递归LC144_二叉树的前序遍历 class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result new ArrayList<Integer>(); //也可以把result 作为全局变量&#xff0c;只需要一个函数即可。…

Linus Torvalds 要求内核开发人员编写更好的 Git 合并提交信息

昨天在宣布 Linux 6.12-rc2 内核时&#xff0c;Linus Torvalds 要求内核维护者在提交信息方面做得更好。Torvalds 尤其希望内核维护者在描述拉取请求中的变更时&#xff0c;能更好地使用积极、命令式的语气。 Linux创建者在6.12-rc2 公告中解释道&#xff1a; 总之&#xff0c…

论文阅读笔记-XLNet: Generalized Autoregressive Pretraining for Language Understanding

前言 Google发布的XLNet在问答、文本分类、自然语言理解等任务上都大幅超越BERT,XLNet提出一个框架来连接语言建模方法和预训练方法。我们所熟悉的BERT是denoising autoencoding模型,最大的亮点就是能够获取上下文相关的双向特征表示,所以相对于标准语言模型(自回归)的预…

【AIGC】ChatGPT提示词Prompt高效编写模式:结构化Prompt、提示词生成器与单样本/少样本提示

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;结构化Prompt (Structured Prompt)组成元素应用实例优势结论 &#x1f4af;提示词生成器 (Prompt Creator)如何工作应用实例优势结论 &#x1f4af;单样本/少样本提示 (O…

什么是安全运营中心 SOC?

SOC 代表安全运营中心&#xff0c;它是任何企业中负责组织安全、保护企业免受网络风险的单一、集中的团队或职能。 安全运营中心将管理和控制业务运营的所有安全要素&#xff0c;从监控资产到雇用合适的人员和流程&#xff0c;再到检测和应对威胁。 在本文中&#xff0c;我们…