하드웨어

/

임베디드 · IoT

STM32 CAN 통신

STM32 MCU를 이용하여 CAN 통신을 구현하는 방법에 대해 설명하는 텍스트 형태의 강의입니다. CAN 통신 구현의 마스터가 되어보세요.

(2.0) 수강평 1개

수강생 136명

초급자를 위해 준비한
[임베디드 · IoT, 네트워크] 강의입니다.

이런 걸
배워요!

  • STM32 MCU를 이용한 CAN 통신

  • STM32 MCU 활용

막막하게 느껴지는 CAN 통신, 
기초부터 실무까지 흐름을 잡아드립니다. 

💾 수강 전 확인해주세요!

  • 본 강의는 PDF 형태의 텍스트 강의로, 별도 영상을 제공하지 않습니다. (총 7,384자 분량)
  • 강의를 수강하시는 분들께는 강의에 사용된 모든 소스 파일과 Windows Program 소스 및 실행 파일을 제공합니다. 강의 자료는 섹션 0 [자료 다운로드 링크] 수업에서 다운받을 수 있습니다.
  • 본 강의는 실습보드 NUCLEO-F446RE에서 진행됩니다. 강의를 따라 CAN 통신을 구현하고 결과를 확인하기 위해서는 보드를 미리 구매하여 주시기 바랍니다. (2개의 보드를 사용합니다.)

CAN 통신 마스터가 
되고 싶다면?

이 강의에서는 마이크로컨트롤러 유닛(MCU) STM32를 이용해 CAN 통신을 구현하는 방법을 설명합니다. 전반부에서는 STM32F446의 CAN 통신을, 후반부에서는 STM32H743의 CAN 통신을 다룹니다.

CAN 통신
Controller Area Network

차량 내에서 호스트 컴퓨터 없이 마이크로 컨트롤러나 장치들이 서로 통신하기 위해 설계된 표준 통신 규격입니다. 처음에는 차량 네트워크용으로 개발되었으나, 점차 산업 전 분야에 폭넓게 적용되어 쓰이고 있습니다.

CAN 통신은 점차 산업 전 분야에 확대되고 있습니다. 하지만 CAN 통신을 구현하는 일은 개발 경력이 많은 분들조차 쉽게 접근하기 어려운 내용입니다. 본 강의는 CAN 통신의 개념부터 프로그램 방법 및 활용, 파형을 통한 결과 확인까지 CAN 통신의 모든 것을 다루는 걸 목표로 합니다. 

본 강의는 ST MCU를 처음 접하는 사람들도 쉽게 따라할 수 있도록 프로젝트 생성부터 소스파일 수정, 분석까지 자세하게 설명합니다. 또한 디버깅용 프로그램을 이용해 CAN 통신의 송수신 과정과 결과를 확인할 수 있습니다. CAN 파형을 측정, 분석함으로써 CAN 프로토콜을 이해하는 데 도움이 될 수 있을 것입니다.

CAN 통신에 관심이 있는 분들이시라면, 이번 강의를 통해 CAN 통신의 마스터가 되시길 바랍니다.


강의의 특징을 
확인해보세요.

1️⃣
초보자도 쉽게

STM32를 경험하지 못하신 분들도 쉽게 따라할 수 있도록 프로젝트 생성부터 프로그램 구현, 결과 확인까지 모든 과정을 설명합니다.

2️⃣
흐름을 파악할 수 있도록

CAN 통신의 전반적인 내용을 이해하게 될 뿐만 아니라, 실무에서 CAN 통신을 활용할 수 있는 능력까지 습득할 수 있습니다.

3️⃣
꼼꼼한 자료 제공

제공되는 Windows 프로그램을 통하여 CAN 통신 결과까지 확인해볼 수 있습니다. (소스 및 실행파일을 모두 제공해드립니다.)


학습 내용 및 구성

전반부
STM32F446

2개의 NUCLEO-F446RE 개발보드를 활용해 데이터를 주고받는 것을 구현합니다.

후반부
STM32H743

v1.3 버전에 새롭게 추가된 내용으로, STM32F446 보드와 STM32H743 보드를 이용해 데이터를 주고받는 것을 구현합니다.

본 강의에서는 CAN-FD는 다루지 않고, 2.0A(Standard) 및 2.0B(Extended)를 중심으로 설명합니다. (CAN-FD는 다음 버전에 내용을 추가하도록 하겠습니다.) 아울러 실습을 위해 ST사에서 제공하는 NUCLEO-F446RE 개발 보드를, 컴파일러 툴로는 STM32CubeIDE v.10.0을 사용합니다.

상세 커리큘럼 (목차)
  • 1 개요 (3)
  • 2 HW 구성 (4)
  • 2.1 FW 다운로드 핀맵 (5)
  • 2.2 전원 핀맵 (5)
  • 2.3 UART 핀맵 (6)
  • 2.4 CAN 핀맵 (6)
  • 2.5 전체 시스템 구성도 (7)
  • 2.6 프로그램 다운로드 (8)
  • 2.6.1 ST-LINK FW 업데이트 (8)
  • 2.6.2 보드 연결 (9)
  • 3 CAN 통신 개요 (10)
  • 3.1 데이터 프레임 구조 (10)
  • 3.2 Bit Timing (12)
  • 3.3 Arbitration  (13)
  • 3.4 Bit Stuffing (15)
  • 4 SW 구현 (16)
  • 4.1 프로젝트 생성 (16)
  • 4.2 Configuration (18)
  • 4.2.1 RCC, DEBUG (19)
  • 4.2.2 Clock Configuration (20)
  • 4.2.3 Timer 설정 (21)
  • 4.2.4 UART 설정 (22)
  • 4.2.5 CAN 설정 (23)
  • 4.2.6 GPIO 설정 (26)
  • 4.3 코드 구현 (27)
  • 4.3.1 printf문 사용 (27)
  • 4.3.2 Build & 다운로드 (28)
  • 4.3.3 타이머 인터럽트를 이용한 LED On/Off (30)
  • 4.3.4 UART1 수신 인터럽트 구현 (33)
  • 4.3.5 CAN 통신 구현 (35)
  • 4.3.5.1 main.h (40)
  • 4.3.5.2 can.c (40)
  • 4.3.5.3 can.h (43)
  • 4.3.5.4 usart.c (44)
  • 4.3.5.5 usart.h (46)
  • 4.3.5.6 main.c (46)
  • 5 결과 확인 (48)
  • 5.1 Test Mode 1 (List16 Mode) (49)
  • 5.2 Test Mode 2 (List32 Mode) (50)
  • 5.3 Test Mode 3 (Mast16 Mode) (51)
  • 5.4 Test Mode 4 (Mask32 Mode) (52)
  • 5.5 Test Mode 5 (List16 2-Bank Mode) (53)
  • 5.6 모든 메시지 수신 설정 (54)
  • 6 파형 분석 (56)
  • 7 STM32H743 CAN 구현 (59)
  • 7.1 프로젝트 생성 (59)
  • 7.2 Configuration (61)
  • 7.2.1 RCC, DEBUG (61)
  • 7.2.2 UART 설정 (63)
  • 7.2.3 CAN 설정 (64)
  • 7.2.4 Clock Configuration (67)
  • 7.2.5 CAN Baud Rate 설정 (68)
  • 7.2.6 Code 생성 (69)
  • 7.3 코드 구현 (70)
  • 7.3.1 main.h (70)
  • 7.3.2 main.c (70)
  • 7.3.3 fdcan.c (72)
  • 7.3.4 fdcan.h (81)
  • 7.3.5 usart.c (81)
  • 7.3.6 usart.h (83)   
  • 8 결과 확인 (84)
  • 8.1 Test Mode 1 (84)
  • 8.2 Test Mode 2 (85)
  • 8.3 Test Mode 3 (86)
  • 8.4 Test Mode 4 (87)
  • 9 참고 자료 (88)
  • 10 Revision History (89)

Q&A 💬

Q. 강의를 듣기 위해 준비해야 할 사항이 있나요?

본 강의는 실습보드 NUCLEO-F446RE에서 진행됩니다. CAN 통신을 확인하여 2개의 보드를 사용합니다. 만약 보드가 준비되지 않았다면 먼저 내용을 보시고 나중에 보드를 구입해서 보드상에서 확인해 보시길 바랍니다.

Q. 프로그램 툴은 무엇을 사용하나요?

ST사에서 무료로 제공하는 STMCubeIDE v1.9.0을 사용합니다. 수강 전 미리 설치해 주시길 바랍니다.

🎙️ 강의를 만든 지식공유자 소개

저는 20여 년 동안 대기업, 중소기업에서 개발자로 일해왔고 현재는 작은 기업을 운영하고 있습니다. CCTV용 ISP(Image Signal Processing) ASIC을 개발하였고 OLED 검사 장비, DAQ (Data Acquisition System) 등 FPGA를 이용한 많은 제품을 개발하였습니다. FPGA뿐만 아니라 FW 개발 (STM32, PIC32, AVR, ATMEGA 등), 회로 설계, Windows Program 등 많은 경험을 갖고 있습니다. 그동안 제가 쌓아온 폭넓은 경험을 바탕으로 여러분의 학습에 도움이 되기를 소망합니다.

함께 보면 좋은 강의 📖

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • STM32 MCU에 관심 있으신 분

  • CAN 통신을 구현하고자 하시는 분

선수 지식,
필요할까요?

  • C언어

안녕하세요
alex입니다.

저는 지난 20여년 동안 대기업, 중소기업에서 개발자로 일해왔고

현재는 작은 기업의 대표로 있습니다.

주요 경력사항은

  • Verilog HDL을 이용한 FPGA 설계

    • CCTV용 ISP ASIC 개발 (약 10년)

    • OLED Display 검사장비 개발 (약 3년)

    • FPGA를 이용한 장비 개발

  • MCU FW

    • STM32

    • PIC32

    • AVR, ATMEGA

    • DSP (TI)

  • Windows Application Program

    • Visual Studio MFC, C++

입니다.

커리큘럼

전체

89개

수업 자료

가 제공되는 강의입니다.

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!