Research Institute
  • bxCAN 주요기능 소개 - Error management
    2024년 10월 08일 07시 44분 43초에 업로드 된 글입니다.
    작성자: IIIIIIIIIIIIIIIIIIIIl

    Error management는 Transmit Error Counter(TEC)와 Receive Error Counter(REC)를 사용합니다. 해당 값들은 오류 상태에 따라 증가하거나 감소하며 각각 CAN_ESR 레지스터에 저장됩니다. 소프트웨어는 TEC REC 값을 읽어 오류 여부를 판단할 수 있습니다. 그리고 하드웨어는 현재 오류 상태에 대한 자세한 정보를 CAN_ESR 레지스터에 제공합니다.

    • Transmit Error Counter (TEC) :  송신 오류의 수를 나타내며 송신 중 발생한 오류가 증가할 때마다 카운터 값이 증가합니다. 이 카운터는 송신이 성공적으로 이루어지면 감소할 수 있습니다. TEC 값이 특정 임계치를 초과하면 CAN 모듈은 오류 상태로 진입할 수 있으며 이를 통해 소프트웨어는 네트워크의 문제를 감지하고 대응할 수 있습니다.
    • Receive Error Counter (REC) : 수신 오류의 수를 기록하며 수신된 메시지에서 오류가 발견될 때마다 카운터 값이 증가합니다. 정상적으로 수신된 메시지는 REC 값을 감소시키지 않습니다.  REC 값이 임계치를 초과하면 네트워크의 수신 상태가 불안정함을 나타내며 이를 통해 소프트웨어는 네트워크의 문제를 감지하고 대응할 수 있습니다.

    Bus-Off recovery

    bxCAN에서 Bus-Off 상태는 TEC가 255를 초과할 때 발생하며 Bus-Off 상태에 빠지면 bxCAN이 메시지를 송신하거나 수신할 수 없습니다. CAN_MCR 레지스터의 ABOM 비트를 설정하여 Bus-Off 상태에서 자동으로 복구하거나 소프트웨어 요청을 전송하여 활성 상태로 전환할 수 있습니다. 

    Error States

     

     

    참고자료

    USENIX - Exposing New Vulnerabilities of Error Handling Mechanism in CAN

    STM32F105/107 - PDF Documentation

    댓글