【CANdelaStudio编辑CDD】-7.2-给$28服务CommunicationControl创建SubFunction和communicationType(UDS诊断)

本文详细讲解如何在CANdela Studio中为$28 CommunicationControl服务创建Sub-Function和Communication Type,涉及Data Types的创建、Sub-Function的编辑,以及Session和SecurityAccess的指定,适用于UDS/OBD诊断需求编辑。

案例背景(共7页精讲):

在《【ISO14229_UDS诊断】-7.1-$28服务CommunicationControl理论部分https://blog.youkuaiyun.com/qfmzhu/article/details/120969844》中,我们介绍了CommunicationControl $28服务的理论部分,下面讲讲使用CANdela Studio编辑诊断描述CDD文件,为其创建Sub-FunctionCommunication Type

  • Sub-Function = 0x00: enableRxAndTx启用接收和发送
  • Sub-Function = 0x01: enableRxAndDisableTx启用接收和禁用发送
  • Sub-Function = 0x02: disableRxAndEnableTx禁用接收和启用发送
  • Sub-Function = 0x03: disableRxAndTx禁用接收和发送

目录

1 创建一个Data Types

1.1 创建一个Text Table类型的Data Types

1.2 创建一个Packet类型的Data Types

2 在CDD中启用CommunicationControl $28服务

2.1 在CDD中创建CommunicationControl $28服务支持的Sub-Function

2.2 在CDD中编辑Sub-Function支持的Communication Type

参考引用中未提及使用CandeLaStudio编辑CDD得到27服务的相关内容,不过结合通常的UDS诊断及使用工具编辑CDD文件的思路,大致可以推测以下通用步骤: 1. 基于OEM诊断需求规范启动CandeLaStudio,打开或创建一个CDD文件,这是编辑诊断数据库的基础操作,如同编辑其他服务一样,需先有操作的文件载体。 2.CandeLaStudio的交互界面中找到诊断服务相关的编辑区域,一般会有专门的模块用于定义编辑UDS服务。 3. 查找或创建27服务的定义。在该区域中添加27服务(Security Access)的相关信息,包括服务ID、子功能等。27服务主要用于安全访问,不同的子功能对应不同的安全级别操作,需要根据具体需求进行准确设置。 4. 配置27服务的详细参数,如安全算法、密钥长度、响应时间等。这些参数直接影响到安全访问的实现效果,需要根据系统的安全要求进行精确配置。 5. 定义服务的请求响应消息格式。明确27服务请求响应消息中各个字段的含义、长度数据类型,确保消息的正确传输解析。 6. 进行保存验证。完成27服务编辑后,保存CDD文件,并使用CandeLaStudio的验证功能检查文件的完整性正确性,确保编辑的内容符合UDS标准OEM的诊断需求。 以下为伪代码示例,展示如何在代码逻辑中模拟27服务的请求响应: ```python # 模拟27服务请求 def request_27_service(sub_function): service_id = 0x27 request_message = [service_id, sub_function] # 模拟发送请求消息 print(f"Sending 27 service request: {request_message}") return request_message # 模拟27服务响应 def response_27_service(request_message): service_id = request_message[0] sub_function = request_message[1] # 模拟安全算法计算 security_key = calculate_security_key(sub_function) response_message = [service_id + 0x40, sub_function, security_key] # 模拟发送响应消息 print(f"Sending 27 service response: {response_message}") return response_message # 模拟安全算法计算 def calculate_security_key(sub_function): # 这里可以实现具体的安全算法 return 0xAB # 示例调用 request = request_27_service(0x01) response = response_27_service(request) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车电子助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值