Table of contents
Bit Timing은 CAN 버스 라인을 모니터링, 샘플 포인트의 샘플링 및 조정을 위한 개념입니다.
CAN에서 Bit Timing의 동작은 3개의 Segment로 구분하고 있습니다.
- Synchronization segment
- Bit segment 1
- Bit segment 2
MCU를 활용해서 CAN 컨트롤러를 설정할 때, 일반적으로 Prescaler, SJW, BS1, BS2에 대한 값들을 정해주어야 합니다.
각 특성에 대한 내용은 이렇습니다.
- Prescaler = CAN 컨트롤러에 공급되는 주 클럭의 분주기 설정
- SJW = 1 = CAN 노드 보드 속도 사이의 "허용 오차"의 작은 창 (비슷한 CAN 계층, 일반적으로 고속, 동일한 OSC 속도)
- SJW = 4 = CAN 노드 보드 속도 간의 "허용 오차"의 큰 창. (혼합 된 CAN 레이어, 일반적으로 저속, 혼합 된 OSC 속도
- BS1 = Bit Segment 1의 개수
- BS2 = Bit Segment 2의 개수
아래는 특정 MCU를 활용하여 계산한 과정입니다.
PHB1 클럭: 42Mhz
클럭 디바이더: 7
Tq 시간: 166.66ns = 1/(42Mhz/7) = 1/6Mhz
BPS: 500Kbps
Bit Time: 2us = 1/BPS
최대 Tq 개수: 12개 = 2us/166.666ns = (1 + BS1 + BS2)
Sample Point: 75% = 100 - (BS2 / 12) = 100 - (BS2 / (1 + BS1 + BS2))
BS2: 3Tq
BS1: 8Tq
SJW: 1Tq (전달지연에 큰 문제가 없으므로 1Tq로 설정)
직접 계산하는 것은 너무 번거롭습니다.
이해만 하시고, 가급적 아래의 사이트를 활용하시는 것을 추천드립니다.
http://www.bittiming.can-wiki.info/
'데이터통신/네트워크 > CAN' 카테고리의 다른 글
CAN(Controller Area Network) 통신 요약내용 및 특징 (0) | 2021.12.19 |
---|