CDD的那些事 - 前言

前言

关于UDS和他的工具链们在汽车行业已经流传了20多年,如果它一直接受国内的教育的话,现在已经是大学水平了,这个比喻是为了能够形象的说明这套知识体系和应用已经达到的成熟度,一个大学在社会中已经基本具备了独立处理事情的能力了,只有一些特别复杂或者意外才需要大人出面处理了。对于UDS和他的工具链来说也是一样的。 他们在汽车行业中的应用已经根深蒂固了,目前在引用工具上最流行的肯形式的是Vector的CANOE和它的各种组件上。本文将从一个使用者的角度深入剖析一下UDS和Vector CDD的那些事。

网络与UDS和CDD相关的知识内容非常之丰富,并且也存在了大量的关于如何使用工具来制作CDD的介绍,包括来自于Vector厂家的各种材料中也都有说明,但是这些内容都相对比较零散,有的是是点对点的解决一些特殊问题,有的是概括性的描述一些基础功能,今天我们开启的这个旅程,要带领读者一步一步的依据一个UDS的诊断调查问卷做出一个CDD,即手把手教学。所以我们会尽量的摒弃一些复制粘贴已有文献成果的操作。这次我们闭门造辆车。

        如果我们将视角转化到功能层面,我们将整车的UDS功能看作一个大的系统,系统的边界是整车使用UDS的网络,我们已最为熟知的CAN作为总线,系统的要素是总线网络中各个节点的UDS功能。(系统的定义请小伙伴们自行领悟),同时我们将网络中i给你各个节点(控制器)上的UDS功能看成是每个独立的子系统。那么将这个概念再映射到Vector的工具连上,CDDT就是整车UDS功能视角的功能描述,CDD就是各个子系统的UDS的功能描述,同时CDDT中也描述了每个子系统如何进行交互并组成整车系统的环境和接口。

        CDD的全称是CANdela Diagnostic Descriptions。假设我们将Vector公司的CANOE软件作为一个系统,那么CDD文件是这个系统实现UDS功能的一个输入的配置文件或者某种程度上的数据库文件(当然这是一个具有非常复杂能力的数据库文件),CANOE是运行这个文件并实现这个文件中描述功能的环境。

        我们的目标是依据项目中的需求如“诊断调查问卷”等,开发和使用CDD文件让CANOE这个工具能够准确的理解UDS诊断调查问卷中定义的所有功能要求,假设顾客关于UDS的所有需求收敛到诊断调查问卷,那么这个文件可以作为开发CDD的输入,CDD是CANOE的输入,最终通过Diva完成对这部分功能的仿真测试。

        CDD可以通过Vecotr的编辑工具CANdelaStudio进行编辑,编辑后的文件通过Diva进行使用或者在CANOE的CFG工程中加载使用。CDD可以让Diva读懂所有的UDS诊断相关的功能要求,支持什么服务,不支持什么服务以及非常细致的参数配置。通过这个CDD文件可以将UDS在某控制器上的技术要求尽数描述清楚。

        CDDT是CDD文件的编辑模板,两者的区别在网络上有很多专家大神解读过。因此在这里同样不会再重复的搬运,会在后续的介绍中进行说明,因为只有在使用的过程中才能真正理解它们的边界是如何定义的。网络上关于CDD和CDDT的介绍大多是借用了Vector使用说明中的描述,从设计上来看,这两个文件的定义并没有很好的对结构进行可视化,让使用者能够轻易地理解在功能上的区别,目前更多的看到的是一些笼统的介绍,具体的功能点差异需要我们在使用的过程逐步识别。

        编辑CDDT需要购买单独License。我个人倒是比较能理解这个策略,认为是德国的设计,有想法。OEM作为整车功能设计Owner,应该负责每个CDDT的定义,而Tire1只需要基于OEM释放的CDDT去编辑自己负责开发的控制前上使用的CDD即可,因此通过这个License能够很好的隔离OEM和TIRE1之间的界面。

        但是如此高级的设计在中国实车并没有得到很好的使用。Local OEM项目开发过程和国外的企业差别还是比较大的,具有一定特色,,所以也有不少广大TIRE1 出钱出力购买和开发CDDT。能够从整车功能角度释放CDDT的Local OEM本就不多,再能通过这个文件对于TIRE1进行管理的就更少了,可能还是考虑到成本把,毕竟对于特殊工具的要求是有代价的。

接下来我们就从工具入手逐步揭开UDS和它的工具链门的面纱。

术语

Instance : 定义在Diagnostic Class中的UDS Service

Service:每个Instance中的sub-function

Servies List: 每个Instance中的Services 窗口

Interace:ECU的外部通讯接口,如CAN, CANFD等

怎么用Canoe CAPL发送诊断 怎么用Canoe CAPL发送诊断前言1、直接调用CDD里的诊断发送2、用报文的形式发送诊断3、怎么用CAPL发送多帧的诊断3.1监控流控帧后,把多帧数据自己分帧发送3.2调用CDD里的诊断发送3.3使用CanTp分包分帧发送 前言 以UDS诊断为例,GMLAN会有些许差异,大同小异。 一般Canoe工程加载CDD以后,可以直接通过canoe工程的诊断界面,点击需要的诊断命令就可以发送诊断了。 那为什么还需要通过CAPL来发送诊断呢, 1.诊断界面的数据长度和有的参数范围是有限制(最大值最小值)的,但是 阅读详情

相关推荐

【storybook】神奇工具storybook!只是用来做组件库?(浅谈CDD组件驱动开发)

前言 我一开始以为storybook是做组件库用的,随着我后面了解越来越深发现压根不是这么回事。 我在写组件库中发现,很多功能比如umi-library(现在改名umi-father)都有了,storybook和umi-farther用的都是docz,那我直接用docz,干嘛用storybook?后来经过我不断的翻storybook才发现storybook压根不是只为了做组件库存在的。 storybookUI 我们先说一下不装插件的storybookUI,奇丑无比,一个canvas的tab页,

不忘初心,坚定道路! 1万+

CANdela/Diva系列1--CANdela Studio的基本介绍

CANdela Studio是一种用于网络通信和诊断系统开发的工具,它由Vector Informatik开发并广泛应用于汽车行业。CANdela Studio提供了一个集成环境,使工程师能够创建、编辑和管理诊断规范和通信规范。诊断规范管理:CANdela Studio允许工程师定义和管理诊断规范,包括故障代码、故障描述、诊断服务等。这些规范可以用于诊断ECU(电子控制单元)并支持故障检测和诊断。通信规范管理:CANdela Studio支持定义和管理通信规范,例如CAN、LIN和FlexRay等总线。

汽车ECU自动化测试 2679

Python解析CDD文件

在实际诊断测试开发中,我们写测试脚本会用到CDD文件中的诊断,常规做法可能是用到哪个就定义哪个,这样做的弊端是有可能造成重复定义,或者整个工程中有不同的变量名,较为好的方式是头文件中统一定义,如果人去单独定义的话,CDD中诊断有比较多,浪费时间,所以基于这个需求,我想到了可以用Python 脚本解析CDD文件,统一定义,一键生成,十分快捷。.........

蚂蚁小兵 4706

AUTOSAR从入门到精通-复杂设备驱动(CDD)

CDD是复杂设备驱动的首字母缩写主要为驱动程序或复杂驱动程序,但不限于驱动程序。复杂驱动程序是一种未被AUTOSAR标准化的软件实体,可以通过AUTOSAR接口和/或基本软件模块api访问。 CDD是位于基础软件复杂驱动层的特定模块,与标准BSW模块或Rte交互。 CDD可能需要与分层软件体系结构的模块连接 分层软件架构的模块可能需要连接到CDDCDD可能需要通过Rte连接swc。

getusushu的博客 4195

RH850从0搭建Autosar开发环境【2】- Davinci Configurator配置工程导入DBC与CDD文件

Davinci Configurator配置工程导入DBC与CDD文件,开始Autosar开发

weixin_42412049的博客 8153

DaVinci配置DID之一:CDD准备

本章节主要基于DaVinCi工具链来展开具体DID读写的配置以及最终实现。1,CDD准备2,工具链配置3,代码实现4,验证结果本文讲述流程1话不多说,走你~关于DID读写功能实现的第一步很简单,就是更新诊断描述文件, 从而自动生成DID的配置。注意:由于DaVinci工具链有唯一性检查,因此只能针对工程的CDD文件基础上进行修改。不可以新建一个CDD再放在DaVinci工程中。

weixin_48498880的博客 5520

使用NXP CDD包开发TJA1445

TJA1445作为TJA1145的升级版,具有功耗更低,价格更低的优势。本文介绍基于NXP官网的CDD包快速开发TJA1445软件1445使用也有一些坑的地方,后面有空再介绍。

赞的博客 761

诊断CAPL自动化(5) ——没有CANdela,无法编辑cdd数据库文件,也能轻松完成诊断测试

🍅我们知道cdd数据库文件,是CANoe测试环境的重要组件,它可以让我们更加轻松的完成诊断测试工作;但是创建和编辑cdd文件是需要CANdela 来完成的,一个 liscense 就要将近二十万,成本确实高🍅特别是在处理22/2E/31服务的时候,频繁的增加功能,可能需要频繁的用CANdela 修改CDD,我测试开发过程中,一般很少去修改cdd,有这个时间,纯手撸也开发完了,就一个CANdela,鬼知道此时此刻到了谁手里,我也懒得去找。🍅演示软硬件环境;目录📘前言。

蚂蚁小兵 5756

诊断CAPL自动化(7) —— 大道至简,CAN 诊断的本质,脱离cdd 和dbc ,纯手造轮子

在TP测试中,我们需要检测待测控制器的设计是否满足ISO-15765 ,我们就需要自己去实现诊断的底层逻辑了 ,本博客实现无诊断数据库cdd和CAN报文诊断dbc文件,实现诊断发送于接收,多帧的分组发送,多帧的多帧重组等

蚂蚁小兵 7460

漫谈汽车电子数据库那点事

如上总结了自己从事汽车行业8年来用到的数据库内容,其中ODX(PDX)在这里没有过多介绍,后续有专门专栏做讲解。

Soly_kun的博客 809

UDS肯定响应抑制位SPRB原理与CDD/DiVa配置实战

UDS协议中的肯定响应抑制位(SPRB)是ISO 14229-1定义的关键通信控制机制,用于在单条诊断请求中抑制正响应帧(0x62/0x7F)的发送,而非关闭ECU应答能力。其核心原理在于SID最高位(bit7)的语义标记,直接影响ECU协议栈行为与测试工具(如CANoe.DiVa)的CDD校验逻辑。该机制具备明确的技术价值:降低总线负载、支持静默式刷写握手、适配功能安全场景下的确定性通信。典型应用场景包括编程会话准备(10 02 + SPRB)、DID读取优化(22服务)及RoutineControl静默

weixin_29183637的博客 100

利用gprMax与Matlab实现SFCW雷达信号的高效仿真与优化

本文详细介绍了如何结合gprMax与Matlab实现SFCW雷达信号的高效仿真与优化。通过利用gprMax获取地下场景的冲激响应,并在Matlab中运用卷积与信号处理技术,可大幅提升SFCW雷达系统仿真的效率与灵活性,为探地雷达研究与设计提供强大工具。

book8的博客 706

安装Tailscale

如果返回 /usr/bin/tailscale 或类似路径,说明已安装但 sudo 可能找不到它。如果 which tailscale 没有输出,说明安装失败,重新执行安装步骤。Tailscale 的后台服务 tailscaled 必须运行。检查 tailscaled 服务是否运行。检查 tailscale 命令是否存在。

FairLikeSnow的博客 1478

【随机过程】 3 - 随机过程的频域分析1 - 功率谱

随机过程的频域分析 文章目录随机过程的频域分析1. 什么是谱2. 确定信号的频谱2.1 周期信号的频谱2.2 非周期信号的频谱3. 随机信号的谱3.1 随机信号做傅里叶分析的困难3.2 功率谱密度的物理和数学表示形式3.2.1 功率谱密度的物理表示3.2.2 功率谱密度的数学表示3.3 功率谱密度的解读3.3.1 量纲分析3.3.2 谱3.3.3 密度3.3.4 wiener和khinchin3.4 功率谱密度的性质3.4.1 非线性3.4.2 偶函数3.5 wiener-khinchin关系的应用3.6

qq_41741344的博客 3133

【Docker】如何让docker容器正常使用nvidia显卡

描述了如何在docker容器中使用英伟达显卡的过程和问题解决方法。

NameLoadingFailed的博客 8372

从零构建:Simulink与PX4的快速原型开发实战

本文详细介绍了如何利用Simulink与PX4进行四旋翼无人机的快速原型开发,涵盖环境搭建、动力学建模、控制器设计、仿真验证及自动代码生成全流程。通过实战案例展示姿态控制器的实现与调试,帮助开发者高效完成从算法设计到硬件部署,显著提升开发效率并降低试错成本。

plant的博客 323

脑电数据预处理八:基于 ICA 的伪迹去除

摘要: 脑电图(EEG)数据分析中,伪迹(如眼电、心电、肌电)与脑电信号频谱重叠时,独立成分分析(ICA)成为有效工具。ICA通过盲源分离将混合信号分解为统计独立的成分,识别并移除伪迹后重建干净信号。MNE-Python实现步骤包括:数据预处理(滤波、坏导处理)、ICA分解、人工与自动结合识别伪迹成分、剔除后重建数据。实践建议强调人工检查的重要性,避免过度使用ICA,并保存模型以提高效率。该方法显著提升数据质量,为后续分析奠定基础。

qq_32516809的博客 1660

Qwen3-Omni-30B-A3B-Instruct微调指南:如何打造专属智能博物官(附数据集)

本文详细介绍了如何对Qwen3-Omni-30B-A3B-Instruct模型进行微调,以打造专业的智能博物官。指南涵盖了从理解模型架构优势、构建高质量文博数据集,到使用LLaMA-Factory进行实战微调、效果评估与部署优化的完整流程,并提供了关键的环境配置与性能优化建议,帮助开发者在垂直领域高效定制专属AI助手。

weixin_29096377的博客 1144

2026最新openclaw(clawbot/moltbot)真正在自己个人电脑上搭建部署,配置飞书远程远程让AI助理操控电脑完成任务,以及结合ollama无限token实现7*24小时工作(附配置)

2026最新openclaw(clawbot/moltbot)真正在自己个人电脑上搭建部署,配置飞书远程远程让AI助理操控电脑完成任务,以及结合 ollama 无限token实现7*24小时工作,以及部署安装需要的 skills 完成复杂的工作任务(附完整可以运行的配置文件)。 很多人已经会配置安装 openclaw 了 ,但是 安装完成之后真正让电脑自动运行起来的很好,完成出色工作的更少,最常见的就是聊聊天,或者执行一些简单的命令,理解要让电脑自动化工作,openclaw、skills、大模型这三样。

代码讲故事 2963

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

下一篇: CDD那些事 - CDD和CDDT的创建和保存
狄大大21
博客等级 码龄7年 32粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值