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/