MCU 어플리케이션이 제어하는CAN 컨트롤러 내부의 핵심적인 레지스터 구성과 신호의 흐름입니다.
데이터 송수신 과정은 일반적으로 아래와 같습니다. 참고로 아래의 과정은 모드 MCU 어플리케이션에 의해 수행됩니다.
- CAN 컨트롤러의 프리스칼라, 비트 세그먼트 등을 설정하여 전송 속도, 타임 퀀텀 구성 등 CAN 통신을 할 때 계속 동일하게 사용될 정적인 설정
- CAN 컨트롤러가 수신할 필터를 구성
- CAN 데이터 프레임에 대응하는 4개의 레지스터로 구성된 TX 메일박스에 유효한 데이터와 그 데이터의 메타데이터를 입력하고, CAN_TI0R 레지스터의 TXRQ(Transmit mailbox request) 비트에 1을 써서 CAN 컨트롤러에게 전송을 명령
- CAN 컨트롤러 -> CAN 트랜시버를 거친 신호는 버스를 타고 자기 자신과 다른 노드에 전달되어 CAN 컨트롤러 내부의 필터에서 필터링된다.
- 필터를 통과한 데이터 프레임은 CAN 컨트롤러에 의해 분류되어 TX 메일박스와 동일한 형태로 구성되고 역시 4개의 레지스터로 이루어진 RX 메일박스에 정리된다.
- 사용자는 RX 메일박스에서 유효한 데이터와 필요하다면 메타데이터를 읽어와 그와 관련된 처리를 수행한다.
자세한 내용은 각 파트에서 자세하게 알아보겠습니다.
'CAN' 카테고리의 다른 글
3. 초기설정 (3) CAN_HandleTypeDef 구조체 (1) | 2017.03.21 |
---|---|
3. 초기설정 (2) CAN_MCR (CAN master control register) (2) | 2017.03.21 |
3. 초기 설정 (1) CAN_BTR (CAN bit timing register) (2) | 2017.03.21 |
2. CAN 통신 흐름 (1) CAN 컨트롤러 - CAN 트랜시버 - 버스 (4) | 2017.03.21 |
1. 개발환경 및 설명 방식 (2) | 2017.03.21 |