远程激活例程

远程激活例程功能单元只有一个服务ID,即0x31,客户端使用此服务通过根据特定的OEM的例程ID执行特定项目的功能。

Service Request ServiceID Response ServiceID Sub-Function
Routine Control Service 0x31 0x71 Yes
此服务主要有以下三个子功能:

Start routine –- 即启动例程,启动任何服务,用于指示任何服务的启动/完成。
Stop routine –- 即停止例程,通过此子功能,客户端可以随时中断服务器中正在运行的服务。
Request routine result– 即请求例程结果,主要是指客户端从服务器获取服务结果的请求。
因此,此服务主要用于:

  1. 通知任意服务开始执行/停止执行。
  2. 下载后擦除NVM或执行完整性校验。

举个栗子:
假设您要按照OEM规范在download之前擦除Flash, 擦除Memory的例程ID是0xAABB,则
请求:(客户端--->服务器) = 0x31 01 0xAA 0xBB……
如果内存擦除成功,则
肯定响应:(客户端<---服务器) = 0x71 01 0xAA 0xBB……
否定响应:(客户端<---服务器) = 0x7F 0x31 01 0xAA 0xBB……

这样客户端可以通过不同的ID和这些数据在支持UDS的服务器中执行各种功能。服务ID的值由汽车制造商诊断规范定义。

下一节