본문 바로가기

CAN

STM32를 이용해 Control Area Network (CAN) 통신 이해 - 목차

1. 개발환경 및 설명 방식

개발환경 및 설명 방식


2. 통신 흐름

(1) CAN 컨트롤러 - CAN 트랜시버 - 버스

(2) MCU 어플리케이션 – CAN 컨트롤러


3. 초기 설정

(1) CAN_BTR (CAN bit timing register)

(2) CAN_MCR (CAN master control register)

(3) CAN_HandleTypeDef 구조체

(4) HAL_CAN_Init 함수


4. 필터 설정

(1) 설정 방법

(2)~(5) 필터 종류

(6) CAN_FilterConfTypeDef 구조체와 HAL_CAN_ConfigFilter 함수


5. 데이터 송신 (인터럽트 방식)

(1) 데이터 프레임 (2) 리모트 프레임

(3) CanTxMsgTypeDef 구조체 (4) HAL_CAN_Transmit_IT 함수

(5) HAL_CAN_IRQHandler와 CAN_Transmit_IT 함수

(6) 오실로스코프로 데이터 프레임 파형 관찰 (7) 기타 의문점..


6. 데이터 수신 (풀링 방식)

(1) 필터와 FMI

(2) CanRxMsgTypeDef 구조체 (3) HAL_CAN_Receive 함수


7. 오류 검출과 오류 상태

오류 검출과 오류 상태


8. HAL 드라이버 수정

(1) 인터럽트가 2번 걸리는 문제

(2) HAL_CAN_Receive 개선 및 HAL_CAN_Receive_All로 업그레이드

(3) 필터 설정 구조체와 필터 설정 함수 개선