임베디드 용어 사전
필드버스

비트 스터핑

같은 값이 5비트 연속되면 반대 비트를 하나 끼워 넣는 규칙. 수신 측이 클럭을 계속 맞추게 해 준다.

CAN 은 클럭선이 없다. 수신 측은 신호가 바뀌는 순간을 보고 자기 타이밍을 조정하는데, 같은 값이 계속되면 조정할 기회가 사라진다.

원본   1 1 1 1 1 1 1 1 ...      에지가 없다 → 동기를 잃는다
스터핑 1 1 1 1 1 0 1 1 1 ...     5개마다 반대 비트를 강제로 삽입

수신 측은 5개 연속 뒤의 비트를 자동으로 버린다. 데이터에는 영향이 없다.

부작용 둘

  • 프레임 길이가 데이터에 따라 달라진다. 최악 길이로 타이밍을 계산해야 한다
  • 스터핑 규칙 위반은 스터프 오류로 검출된다 — 오류 검출 수단이 하나 더 생기는 셈

어디에 적용되나

SOF 부터 CRC 까지만 적용되고, ACK·EOF 구간에는 적용되지 않는다. 로직 분석기로 파형을 셀 때 비트 수가 안 맞아 보이는 이유가 대개 이것이다.

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — CAN — 차량이 쓰는 버스