服務作用:
SecuriyAccess(0x27)服務主要為了確認訪問數據的人是否合法,因為數據是無價的,各主機廠都針對一些特有數據進行保密,為了鑒別是否授權獲取保密數據、寫入數據,出現了安全訪問服務,只有正確解鎖對應的安全鎖級,才能訪問該安全等級的數據,否則無法訪問。
服務格式:
Tester:27 01
ECU: 67 01 seed(4byte)
Tester: 27 02 key(4byte)
ECU : 67 02
服務解析:
01和02定義由主機廠定義,但格式保持請求種子2n-1.請求密鑰2n.請求順序也必須先請求種子,再請求密鑰,若順序不對,則ECU會回復NRC 24,告訴你順序反了。
通過ECU響應的seed通過各主機廠定義的密鑰算法算出key,再將key與ECU的key做比較,若一致安全訪問通過,可以訪問私密數據,若不通過則會恢復NRC=35的否定響應碼,若操作多次,ECU會回復NRC=36告訴你已經超過失敗的次數了,不能再請求安全解鎖了。若你執意再請求,ECU就會回復你NRC=37告訴你ECU現在不接受安全訪問,這就是ECU鎖死的現象,需等待一定時間后才可繼續請求安全訪問。
ECU上電后,保持上鎖狀態,一般進入擴展會話(1003進入)才能請求27服務,而編程會話的安全等級與擴展會話的安全的等級不一致。
若已成功解鎖安全等級,再請求相同層級的解鎖服務,ECU一般會回復0種子。
實際應用:
當我們要將一些數據寫入ECU時,應先獲得權限,才能寫入數據,所以需要先解鎖能寫入數據的安全等級。若沒有授權則ECU會回復NRC 33未解鎖的提示。
2E服務、2F服務、31服務、34、36、37服務等