반응형

 

체크섬 계산 방법

 

체크섬 계산 사이트

https://fasttool.co.kr/Lin/Checksum_Calculator

 

LIN Checksum Calculator

ID 0x000x010x020x030x040x050x060x070x080x090x0A0x0B0x0C0x0D0x0E0x0F0x100x110x120x130x140x150x160x170x180x190x1A0x1B0x1C0x1D0x1E0x1F0x200x210x220x230x240x250x260x270x280x290x2A0x2B0x2C0x2D0x2E0x2F0x300x310x320x330x340x350x360x370x380x390x3A0x3B0x3C0x3D0x3E0

fasttool.co.kr

 

 

체크섬 계산은 위의 사이트에서 간단하게 하면 된다.

fasttool.co.kr 체크섬 계산

 

 

 

아래는 계산하는 방법을 가져왔다.

 

 

1. 체크섬

    • LIN 통신에서 데이터의 무결성을 확인을 위한 계산

2. 체크섬의 종류 및 차이

    • Classic
      • 데이터만 검증하는 체크섬
      • 1의 보수를 이용
      • 현재 차량 통신(LIN 2.1 ~ 2.2)에서는 Enhanced(향상된) 체크섬을 사용
      • Classic 계산 방법 확인 링크
    • Enhanced
      • 데이터PID를 검증하는 체크섬
      • 1의 보수를 이용
      • 현재 차량 통신에서 사용

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

반응형

+ Recent posts