我不理解UDS协议中的defaultSession、ProgrammingSession、extendedDiagnosticSession。 我们怎样才能从一个会话转到另一个会话?请帮助我。谢谢。
default会话 = ECU 处于正常运行状态,但通常仅响应有限的一组诊断请求。从这个状态你可以通常切换到:
扩展会话来执行一些诊断服务,与 ECU 交谈(读/写值、启动/停止例程等)。在这里,您期望 ECU 对您的请求或多或少及时做出响应。因此您还可以在会话之间切换
编程会话到闪存ECU存储器,以更新ECU软件。更新 ECU 时通常不会响应诊断请求。因此,从编程会话切换到扩展会话甚至默认会话并不常见,因为此切换是来自测试仪的诊断请求。更新结束时,ECU 可以执行一些内存检查,并且会进行重置。更新成功后,它将在默认会话中重新启动。
还可以有其他诊断会话,例如:经销商会话、OEM 会话...
问题出在哪里?由于您使用的是 CANoe,因此您只需使用功能区菜单“诊断和 XCP”中的“会话控制”工具即可切换会话。有关更多信息,请参阅帮助的“诊断会话控制”一章。
如果 ECU 受到保护,您需要配置种子和密钥 DLL 文件和配置。有关更多信息,请参阅“种子和密钥 DLL / 安全访问”。
有关示例,请查看“UDSSystem”演示。
为什么我们不能在默认会话中读取/写入值、启动/停止例程。如果我们在默认会话中尝试它会发生什么?