차량 내 통신 프로토콜은 다양한 장치와 센서들이 네트워크로 연결되어 데이터를 주고받을 수 있도록 합니다. 대표적으로 CAN, LIN, FlexRay, MOST, 그리고 I2C, SPI 등의 통신 프로토콜이 사용됩니다. 각 프로토콜은 특성에 따라 사용 목적이 다릅니다.
비트 스터핑 (Bit Stuffing) CAN 통신에서는 동일한 비트가 연속으로 5개 이상 나타날 경우 오류로 간주합니다. 송신 장치는 데이터 프레임 내에서 동일한 비트가 연속으로 5번 나오면 반대 값을 가진 비트를 자동으로 삽입(stuffing)하여 수신기가 연속적인 비트를 오류로 인식하지 않도록 합니다. 수신 측에서는 이 "스터프 비트"를 제거하여 원래의 데이터를 복구합니다. 연속된 비트가 6개 이상 나타나면 스터프 오류가 발생하여 CAN 네트워크가 해당 프레임을 무효화하고 재전송을 시도합니다.
CRC (Cyclic Redundancy Check) CAN 메시지에는 데이터 무결성을 보장하기 위해 CRC 체크섬이 포함됩니다. 송신 장치는 메시지에 대한 CRC 값을 계산하여 메시지 끝에 추가하고, 수신 장치는 동일한 CRC 계산을 통해 받은 데이터가 손상되었는지 확인합니다. 수신 측에서 CRC 값이 일치하지 않으면 CRC 오류로 간주하여 프레임을 무효화하고 재전송을 요청합니다.
CRC 체크섬 CRC (Cyclic Redundancy Check)는 데이터 전송 시 오류를 검출하기 위해 사용되는 체크섬 알고리즘입니다. CRC는 특히 CAN, Ethernet, USB, 저장 장치 등에서 신뢰할 수 있는 데이터 전송을 위해 널리 사용됩니다. 데이터가 손상되지 않았는지 확인하는 방법으로, 효율적으로 오류를 검출할 수 있습니다.
CRC 체크섬의 원리
CRC 체크섬의 특징
ACK (Acknowledgment) 에러 체크 CAN 네트워크에서 프레임이 성공적으로 수신되면 수신 장치는 ACK 비트를 설정하여 송신 측에 올바른 수신을 알립니다. 송신 장치는 ACK 비트를 확인하여 수신 성공 여부를 파악하며, ACK 비트가 설정되지 않은 경우 ACK 오류로 간주하고 프레임을 재전송합니다. ACK 오류는 주로 네트워크 간 연결 오류 또는 수신 장치 오류에 대한 확인 방법으로 사용됩니다.
형식 오류 (Form Error) CAN 프레임은 고정된 형식을 가지고 있으며, 각 비트 필드는 정확한 규격에 따라 위치해야 합니다. 특정 비트 위치에서 잘못된 형식의 비트가 감지되면 형식 오류가 발생합니다. 예를 들어, 종료 비트, ACK 비트, 인터프레임 간격이 규격에 맞지 않는 경우 형식 오류로 간주됩니다. 이는 프레임이 무효화되고 송신 측에서 재전송을 시도하게 합니다.
오류 복구 메커니즘 CAN 프로토콜은 자동으로 오류를 복구하는 메커니즘을 포함하고 있어, 송신 장치와 수신 장치가 오류 상태를 감지하고 복구할 수 있습니다. 주요 복구 메커니즘은 다음과 같습니다.
이처럼 차량에서는 각각의 통신 프로토콜이 시스템 요구 사항에 맞게 적절히 선택되어 사용됩니다. CAN과 FlexRay는 주요 제어 시스템에, LIN은 비핵심 시스템에, 그리고 MOST와 Ethernet은 인포테인먼트 및 고속 데이터 전송 시스템에 적합합니다.