- [ 네트워크/CAN 모의해킹 ]Instrument Cluster Simulator (ICSim) 소개 및 실습하기2024-11-02 16:40:43Instrument Cluster Simulator (ICSim)란?Instrument Cluster Simulator (ICSim)는 차량의 계기판(Instrument Cluster)을 가상으로 시뮬레이션하는 소프트웨어 도구입니다. 실제 차량의 계기판에 표시되는 다양한 정보와 기능을 테스트하고 개발하는 데 사용됩니다. 차량 내 다양한 전자 제어 장치(ECU) 간의 상호작용을 진행하여 CAN 버스 환경에서 시뮬레이션하는 데 사용되는 도구입니다. 계기판을 시뮬레이션할 수 있는 그래픽 인터페이스를 제공하여 사용자가 실시간으로 CAN 메시지를 시각화하고 상호작용할 수 있게 해줍니다.ICsim의 주요 기능:시뮬레이션 환경: ICsim은 가상 CAN 버스 환경에 연결되어 사용자가 CAN 메시지를 송수신함으로써 다..
- [ 네트워크/STM32 개발 ]Hello World (Blink LED)2024-11-01 15:39:33보통 프로그래밍 언어를 배우는 과정에서 "Hello World"라는 메시지를 화면에 출력하는 간단한 프로그램을 가장 먼저 작성합니다. 그러나 임베디드 프로그래밍의 경우 디스플레이가 없거나 구현에 여러 코드 작성이 필요하기 때문에 보편적으로 첫 번째 프로그램으로 LED를 깜빡이는 애플리케이션을 작성하는 경우가 많습니다. 그래서 대부분의 개발 보드는 하나 이상의 LED를 탑재하고 있으며 이를 GPIO 핀을 통해 제어할 수 있습니다. 본 장에서는 Blue Pil보드에 내장된 LED 조작을 통해 기본적으로 STM32 프로젝트 개발 과정을 살펴보도록 하겠습니다.프로젝트 개발환경 구성아래 그림과 같이 File -> New -> STM32 Project를 클릭하고 개발보드에서 사용중인 MCU를 입력한 뒤 Next를 ..
- [ 네트워크/STM32 개발 ]실습환경 소개2024-10-21 07:48:38STMicroelectronics 개발보드NUCLEO 보드 : STMicroelectronics가 제공하는 레퍼런스 개발 보드로 가격 대비 뛰어난 성능과 다양한 기능을 갖춘 보드입니다. 보드에 아두이노와 STM32 확장 헤더가 동시에 제공되어 다양한 센서 모듈과 모터 구동 모듈을 손쉽게 연결할 수 있습니다. 또한 NUCLEO 확장 보드를 활용하여 프로토타입을 빠르게 제작할 수 있습니다. ST-LINK 디버거가 기본 내장되어 있어 별도의 디버거 장비 없이 디버깅과 다운로드가 가능합니다. 모든 NUCLEO 보드는 흰색 PCB로 디자인되어 있으며 보드 크기와 핀 수에 따라 세 가지 종류로 나뉩니다. NUCLEO-32: 이 보드는 아두이노 나노와 비슷한 크기로 주로 저전력 마이크로컨트롤러 시리즈(L, U 시리즈..
- [ 네트워크/STM32 개발 ]개발환경 구축하기 - STM32CubeIDE 설치2024-10-19 13:26:48STM32CubeIDE 소개STM32CubeIDE는 STM32Cube 소프트웨어 생태계의 일환으로 제공되는 다목적, 멀티 운영체제 지원 개발 툴입니다. STM32 마이크로컨트롤러(MCU)와 마이크로프로세서(MPU)를 위한 고급 C/C++ 개발 플랫폼으로 주변 장치 구성, 코드 생성, 코드 컴파일, 디버깅 기능을 제공합니다. 이 툴은 Eclipse®/CDT™ 프레임워크와 GCC 툴체인을 기반으로 개발되었으며 디버깅을 위한 GDB를 지원합니다. 또한 Eclipse® IDE의 기능을 확장하는 수백 개의 플러그인을 통합할 수 있습니다. STM32CubeMX에서 제공하는 STM32 설정 및 프로젝트 생성 기능을 통합하여 설치 및 개발 시간을 절약하고 통합된 툴 경험을 제공하며 프로젝트 상태와 메모리 요구 사항에 ..
- [ 네트워크/STMicroelectronics bxCAN ]CAN filter registers2024-10-16 14:15:57CAN filter master register (CAN_FMR) CAN filter master register (CAN_FMR)는 필터의 전반적인 설정을 관리합니다. 예를 들어 필터의 초기화 상태를 설정하고 필터 뱅크가 CAN2에서 사용할 수 있도록 설정하는 등의 기능을 합니다. 주요 필드와 기능은 다음과 같습니다. CAN2SB[5:0]: CAN2 Start Bank이 필드는 CAN2 인터페이스가 필터를 사용할 때 어떤 필터 뱅크부터 시작할지 정의합니다.예를 들어, CAN2SB[5:0] = 28이면 CAN1의 필터도 CAN2에서 사용할 수 있습니다.CAN2SB[5:0] = 0이면 CAN1에는 필터가 할당되지 않습니다.FINIT: Filter Initialization Mode0: 필터가 실제로 동작하..
- [ 네트워크/STMicroelectronics bxCAN ]CAN mailbox registers2024-10-15 07:50:14CAN mailbox registers는 CAN에서 메시지를 송수신하는 데 필요한 정보를 저장하는 레지스터로 송신 메일박스와 수신 메일박스로 나뉘며 각각의 메일박스는 특정한 기능과 구조를 가지고 있습니다.송신 메일박스 (TX Mailbox): 송신할 메시지를 저장하는 공간입니다. 비어 있을 때만 쓰기가 가능하며, 송신 상태를 나타내는 비트(TME)가 설정되어 있어야 합니다.수신 메일박스 (RX Mailbox): 수신한 메시지를 저장하는 공간입니다. 항상 쓰기 보호 상태이며 수신한 메시지는 FIFO 구조로 저장됩니다.CAN TX mailbox identifier register (CAN_TIxR) (x=0..2)CAN TX Mailbox Identifier Register (CAN_TIxR)는 CAN 시스..
- [ 네트워크/STMicroelectronics bxCAN ]CAN control and status registers - CAN bit timing register (CAN_BTR)2024-10-14 10:05:32CAN bit timing register (CAN_BTR)는 CAN 통신에서 비트 타이밍을 설정하는 데 사용되는 레지스터로 전송 속도, 재동기화 점프 폭, 시간 세그먼트 등을 정의하여 CAN 버스의 정확한 동작을 보장합니다. 주요 필드와 기능은 다음과 같습니다.SILM: Silent Mode (Debug)0: 정상 작동1: Silent 모드 (디버그 용도)LBKM: Loop Back Mode (Debug) 0: 루프 백 모드 비활성화1: 루프 백 모드 활성화SJW[1:0]: Resynchronization Jump Width이 비트는 CAN 하드웨어가 비트를 늘리거나 줄여 재동기화를 수행할 수 있는 최대 시간 쿼터 수를 정의합니다.tRJW=tq×(SJW[1:0]+1)t_{RJW} = tq \times ..
- [ 네트워크/STMicroelectronics bxCAN ]CAN control and status registers - CAN error status register (CAN_ESR)2024-10-14 10:05:02CAN error status register(CAN_ESR)는 CAN 프로토콜의 결함 제한 메커니즘을 구현하는 레지스터로 CAN 버스에서 발생하는 오류 상태를 모니터링하고 관리하는 역할을 수행합니다. 주요 필드와 기능은 다음과 같습니다. REC[7:0]: Receive error counter이 카운터는 수신 중 오류가 발생할 때 증가하며 오류의 종류에 따라 1 또는 8만큼 증가합니다. 성공적으로 수신된 경우 카운터는 1만큼 감소하거나 128을 초과할 경우 120으로 리셋됩니다. 카운터 값이 127을 초과하면 CAN 컨트롤러는 오류 수동 상태에 진입합니다.TEC[7:0]: Least significant byte of the 9-bit transmit error counter 이 비트는 9비트 전송 ..
- [ 네트워크/STMicroelectronics bxCAN ]CAN control and status registers - CAN interrupt enable register (CAN_IER)2024-10-14 10:04:44CAN interrupt enable register (CAN_IER)는 다양한 인터럽트를 활성화하거나 비활성화하는 기능을 제공합니다. 이 레지스터의 각 비트는 특정 이벤트에 대한 인터럽트 발생 여부를 제어합니다. 주요 필드와 기능은 다음과 같습니다. SLKIE: SLEEP 인터럽트 활성화0: SLAKI 비트가 설정되어도 인터럽트가 발생하지 않습니다.1: SLAKI 비트가 설정될 때 인터럽트가 발생합니다.WKUIE: WAKEUP 인터럽트 활성화0: WKUI 비트가 설정되어도 인터럽트가 발생하지 않습니다.1: WKUI 비트가 설정될 때 인터럽트가 발생합니다.ERRIE: ERROR 인터럽트 활성화0: CAN_ESR에 오류 조건이 발생해도 인터럽트가 발생하지 않습니다.1: 오류 조건이 발생할 때 인터럽트가 ..
- [ 네트워크/STMicroelectronics bxCAN ]CAN control and status registers - CAN receive FIFO 0/1 register (CAN_RF0R/CAN_RF1R)2024-10-14 10:04:37CAN receive FIFO 0/1 register(CAN_RF0R/CAN_RF1R)는 수신 FIFO 0, 1의 상태를 관리하는 데 사용됩니다. 이 레지스터를 통해 수신된 메시지와 FIFO의 상태를 모니터링할 수 있으며 메시지 수신 모니터링, 오버런 상태 감지, FIFO 상태 확인 등과 같은 작업을 수행합니다. 주요 필드와 기능은 다음과 같습니다. RFOM0/RFOM1 :소프트웨어에서 설정하여 FIFO의 출력 메일박스를 해제합니다. FIFO에 적어도 하나의 메시지가 대기 중일 때만 해제할 수 있으며 FIFO가 비어 있을 때 설정해도 효과가 없습니다. 두 개 이상의 메시지가 대기 중일 경우 다음 메시지에 접근하기 위해 출력 메일박스를 해제해야 합니다. 출력 메일박스가 해제되면 하드웨어에 의해 이 비트는 ..