본문 바로가기

CAN

2. CAN 통신 흐름 (2) MCU 어플리케이션 – CAN 컨트롤러

MCU 어플리케이션이 제어하는CAN 컨트롤러 내부의 핵심적인 레지스터 구성과 신호의 흐름입니다.

stm32f091 can peripheral diagram bus data frame

데이터 송수신 과정은 일반적으로 아래와 같습니다. 참고로 아래의 과정은 모드 MCU 어플리케이션에 의해 수행됩니다.

  1. CAN 컨트롤러의 프리스칼라, 비트 세그먼트 등을 설정하여 전송 속도, 타임 퀀텀 구성 등 CAN 통신을 할 때 계속 동일하게 사용될 정적인 설정
  2. CAN 컨트롤러가 수신할 필터를 구성
  3. CAN 데이터 프레임에 대응하는 4개의 레지스터로 구성된 TX 메일박스에 유효한 데이터와 그 데이터의 메타데이터를 입력하고, CAN_TI0R 레지스터의 TXRQ(Transmit mailbox request) 비트에 1을 써서 CAN 컨트롤러에게 전송을 명령
  4. CAN 컨트롤러 -> CAN 트랜시버를 거친 신호는 버스를 타고 자기 자신과 다른 노드에 전달되어 CAN 컨트롤러 내부의 필터에서 필터링된다.
  5. 필터를 통과한 데이터 프레임은 CAN 컨트롤러에 의해 분류되어 TX 메일박스와 동일한 형태로 구성되고 역시 4개의 레지스터로 이루어진 RX 메일박스에 정리된다.
  6. 사용자는 RX 메일박스에서 유효한 데이터와 필요하다면 메타데이터를 읽어와 그와 관련된 처리를 수행한다.

자세한 내용은 각 파트에서 자세하게 알아보겠습니다.