반응형
체크섬 계산 방법
체크섬 계산 사이트
https://fasttool.co.kr/Lin/Checksum_Calculator
체크섬 계산은 위의 사이트에서 간단하게 하면 된다.
아래는 계산하는 방법을 가져왔다.
1. 체크섬
-
- LIN 통신에서 데이터의 무결성을 확인을 위한 계산
2. 체크섬의 종류 및 차이
-
- Classic
- 데이터만 검증하는 체크섬
- 1의 보수를 이용
- 현재 차량 통신(LIN 2.1 ~ 2.2)에서는 Enhanced(향상된) 체크섬을 사용
- Classic 계산 방법 확인 링크
- Classic
-
- Enhanced
- 데이터와 PID를 검증하는 체크섬
- 1의 보수를 이용
- 현재 차량 통신에서 사용
- Enhanced
3. Enhanced 체크섬 계산 방법
-
- 데이터의 값을 합산
- 합산한 값에 PID값을 합산
- 각각의 데이터 합산시 0xFF(255)를 넘는 경우 값에서 0xFF(255)를 뺀뒤 이어서 계산
- 계산한 값의 1의 보수가 체크섬
4. 계산 예제
-
- Example 1
- ID : 0x22, PID : 0xE2
- Data : 0x72, 0xA4, 0xF3, 0x3B (DLC 4byte)
- 데이터 합산
- 0x72 + 0xA4 = 0x116 (0xFF 보다 크니 0x116 - 0xFF = 0x17)
- 0x17 + 0xF3 = 0x10A (0xFF 보다 크니 0x10A - 0xFF = 0x0B)
- 0x0B + 0x3B = 0x46 (0xFF 보다 작으니 Pass)
- PID 합산 ( PID : 0xE2 )
- 0x46 + 0xE2 = 0x128 (0xFF 보다 크니 0x128 - 0xFF = 0x29)
- 0x29의 보수 계산 ( 0b0010_1001을 반전 = 0b1101_0110)
- 최종 체크섬 : Checksum = 0b1101_0110 = 0xD6
- 데이터 합산
- Example 2
- ID : 0x1C, PID : 0x9C
- Data : 0x72, 0xA4, 0xF3, 0x3B, 0xAB, 0x03, 0xDD, 0x33 (DLC 8byte)
- 데이터 합산
- 0x72 + 0xA4 = 0x116 (0xFF 보다 크니 0x116 - 0xFF = 0x17)
- 0x17 + 0xF3 = 0x10A (0xFF 보다 크니 0x10A - 0xFF = 0x0B)
- 0x0B + 0x3B = 0x46 (0xFF 보다 작으니 Pass)
- 0x46 + 0xAB = 0xF1 (0xFF 보다 작으니 Pass)
- 0xF1 + 0x03 = 0xF4 (0xFF 보다 작으니 Pass)
- 0xF4 + 0xDD = 0x1D1 (0xFF 보다 크니 0x1D1 - 0xFF = 0xD2)
- 0xD2 + 0x33 = 0x105 (0xFF 보다 크니 0x105 - 0xFF = 0x06)
- PID 합산 ( PID : 0x9C )
- 0x06 + 0x9C = 0xA2 (0xFF 보다 작으니 Pass)
- 0xA2의 보수 계산 ( 0b1010_0010을 반전 = 0b0101_1101)
- 최종 체크섬 : Checksum = 0b0101_1101 = 0x5D
- 데이터 합산
- Example 1
반응형
'자동차 시험 > LIN 통신' 카테고리의 다른 글
차량 통신 LIN LDF 뷰어 ( LIN LDF Viewer, Lin Description File) (0) | 2024.09.25 |
---|