CAN Filtering

이채윤·2022년 9월 2일
0

임베디드

목록 보기
62/70

<CAN Filtring 사용 배경>

  • CAN은 하드웨어 레벨에서 원하는 ID의 데이터만 수신할 수 있는 Filter 기능이 있다.
  • CAN은 다수의 장치가 하나의 통신 라인에 연결되기 때문에 각 장치마다 고유의 ID를 부여해야 한다.
  • 다수의 장치의 데이터를 수신하는 ECU나 어떤 장치는 설정된 ID가 보내는 데이터만 수신해야 한다. → 이렇게 지정된 ID가 보내는 데이터만 수신하도록 하는 기능이 CAN Filtering 이다. → 즉, 내가 원하는 장치가 보내는 데이터만 수신할 수 있도록 Filtering을 적용

<CAN Filter 종류>

  • ID List mode, ID Mask mode가 있다.
  • 필더링할 ID의 범위를 지정할 수 있는데, 32 bit mode 와 16bit mode가 있다.
  • 따라서 아래와 같이 4가지 조합이 나올 수 있다.
    • 16 bit, ID List mode
    • 16 bit, ID Mask mode
    • 32 bit, ID List mode
    • 32 bit, ID Mask mode

<ID List Mode 설명>

  • ID List Mode는 지정된 ID만 통과시키는 방식

<ID Mask Mode 설명>

  • ID Mask Mode는 내가 지정한 범위 ID만 수신하도록 하는 기능
    • 즉, 여러 장치의 데이터를 수신할 수 있다.

  • 위의 사진은 MASK MODE에서 예시를 든 것을 볼 수 있다.
  • 위의 두줄은 ID와 MASK이며, 아래의 세줄은 DATA (8byte) 이다.
    • ID == 0, MASK == 0
      • don’t care
    • ID == 0, MASK == 1
      • 받은 id의 값이 0
    • ID == 1, MASK == 1
      • 받은 id의 값이 1

<주의>

  • CAN은 TX ID와 RX ID를 다르게 설정할 수 있다.
  • 같은 CAN 버스에 동일한 ID가 존재하면 안 된다.

0개의 댓글