为什么要加安全访问权限呢?
因为某些诊断服务操作会涉及对服务端的功能产生永久性改变,这种服务如果普通人能用诊断仪直接使用这些诊断服务去胡乱操作一通,万一对服务端内部一些功能参数被错误修改,那么整车正常行驶都可能会造成一定危害,严重的甚至造成重大交通事故,比如:
-
写参数服务会通过改变服务端内部的一些标定参数来永久性改变控制器的功能或者性能,如:改写发动机烟度限制参数可以对发动机扭矩响应有一定提升;
-
输入输出控制会操作服务端外部的一些执行器,如果操作不当造成部件损坏或人身危险;
安全算法访问交互代码
一般我们都会有SID为0x10开头的先访问,比如10 03命令,用于指示ECU将进入安全的session。ecu回复SID+0x40作为肯定回复之后开始发送安全算法
之前我们已经对Can的单帧和多帧发送底层代码做了描述,今天我们直接将这部分封装成一个api