반응형

2025/03 101

자동차 ECU와 CAN 통신(실전 프로젝트)

자동차 ECU와 CAN 통신(실전 프로젝트)1. 개요자동차는 다양한 전자제어장치(ECU, Electronic Control Unit)로 구성되어 있으며, 이러한 ECU들은 차량 내부에서 CAN(Controller Area Network) 통신을 통해 서로 데이터를 주고받습니다. 이번 포스팅에서는 OBD-II(On-Board Diagnostics) 포트를 통해 차량의 실시간 데이터를 읽고, 이를 활용하여 차량 진단 및 데이터 로깅 시스템을 개발하는 방법을 설명하겠습니다.2. 자동차 OBD-II 포트와 CAN 통신2.1 OBD-II 포트란?OBD-II 포트는 차량의 ECU와 통신하기 위한 인터페이스로, 차량의 센서 데이터 및 진단 정보를 얻을 수 있도록 설계되었습니다. 1996년 이후 생산된 모든 차량에는 ..

CAN/CAN 기초 2025.03.13

CAN 기반 센서 네트워크 구축 (실전 프로젝트)

CAN 기반 센서 네트워크 구축 (실전 프로젝트)1. 개요CAN(Controller Area Network)은 자동차, 산업용 장비, 로봇 및 다양한 임베디드 시스템에서 널리 사용되는 통신 프로토콜입니다. 이번 포스팅에서는 여러 개의 센서를 CAN 네트워크로 연결하고 데이터를 수집 및 분석하는 시스템을 구축하는 방법을 설명하겠습니다. 또한, Python과 PCAN을 활용하여 데이터를 로깅하는 실습도 함께 진행하겠습니다.2. 프로젝트 목표여러 개의 센서를 CAN 네트워크로 연결데이터를 실시간으로 수집하고 분석하는 시스템 구축Python과 PCAN을 활용하여 데이터 로깅 및 모니터링3. 준비물이 프로젝트를 진행하기 위해 다음과 같은 장비와 소프트웨어가 필요합니다.3.1 하드웨어CAN 인터페이스 장치 (예: ..

CAN/CAN 기초 2025.03.13

Board Support Package (BSP) 이해

Board Support Package (BSP) 이해임베디드 시스템 개발에서 Board Support Package (BSP)는 필수적인 요소 중 하나입니다. 이번 포스팅에서는 BSP의 개념, 중요성, 그리고 기존 BSP를 수정하거나 새로운 BSP를 작성하는 방법에 대해 알아보겠습니다. 이를 통해 Rockchip RK3399 시스템을 기준으로 실질적인 BSP 작성 과정을 살펴보겠습니다.1. BSP란 무엇인가?BSP(Board Support Package)는 특정 하드웨어 보드에서 운영 체제를 실행하기 위해 필요한 소프트웨어 계층입니다. BSP는 다음과 같은 주요 구성 요소로 이루어져 있습니다:부트로더(Bootloader): 시스템을 초기화하고 커널을 로드하는 역할을 합니다. 예: U-Boot디바이스 드..

Linux/Kernel Driver 2025.03.12

JPEG 압축 (DCT 기반 압축)

JPEG 압축 (DCT 기반 압축)1. JPEG 압축 개요JPEG(Joint Photographic Experts Group) 압축은 디지털 이미지 데이터를 효율적으로 저장하고 전송하기 위해 널리 사용되는 손실 압축 방식입니다. 이 압축 방식은 사람이 시각적으로 인식하기 어려운 정보를 제거하여 높은 압축률을 달성할 수 있도록 설계되었습니다. JPEG 압축은 주로 DCT(Discrete Cosine Transform, 이산 코사인 변환)를 기반으로 작동하며, 이를 통해 이미지 데이터를 주파수 영역으로 변환하여 저주파 성분을 보존하고 고주파 성분을 제거합니다.2. JPEG 압축 과정JPEG 압축 과정은 다음과 같은 주요 단계로 이루어집니다.색 공간 변환 (Color Space Conversion)RGB 색 ..

CAN FD 및 최신 CAN XL 기술 심화 분석

CAN FD 및 최신 CAN XL 기술 심화 분석1. CAN FD란?1.1 CAN FD의 개념CAN FD(Flexible Data-Rate)는 기존의 CAN(Controller Area Network) 프로토콜을 확장한 통신 방식으로, 데이터 속도와 프레임 크기를 증가시켜 성능을 향상시킨 기술입니다. 기존 CAN과 비교하여 다음과 같은 차이점이 있습니다.데이터 속도 증가: 기존 CAN에서는 최대 1 Mbps의 속도를 제공했으나, CAN FD에서는 8 Mbps까지 속도를 증가시킬 수 있습니다.확장된 데이터 페이로드: 기존 CAN의 데이터 필드는 최대 8바이트였지만, CAN FD는 최대 64바이트까지 확장할 수 있습니다.기존 CAN 네트워크와 호환 가능: CAN FD는 기존 CAN 네트워크와 일부 호환되며,..

CAN/CAN 기초 2025.03.12

Arithmetic Coding

Arithmetic Coding데이터 압축 기법 중 하나인 Arithmetic Coding(산술 부호화)은 확률 모델을 기반으로 가변 길이 부호를 생성하는 방법입니다. 이 글에서는 Arithmetic Coding의 수학적 원리, Huffman Coding과의 비교, 그리고 Java와 C 언어를 이용한 구현 예제 및 응용 방법에 대해 설명합니다.1. Arithmetic Coding의 개요Arithmetic Coding은 고정된 비트 길이를 사용하는 전통적인 부호화 기법과 달리, 입력 데이터를 하나의 실수 구간으로 변환하여 부호화합니다. 이러한 방식은 데이터의 빈도수에 따라 보다 효율적인 압축을 가능하게 합니다.Arithmetic Coding은 다음과 같은 단계로 이루어집니다:입력 심볼의 확률 분포를 기반으..

Linux에서 SocketCAN을 활용한 CAN 네트워크 제어

Linux에서 SocketCAN을 활용한 CAN 네트워크 제어1. 개요CAN(Controller Area Network)은 자동차, 산업 자동화, 로봇 제어 등 다양한 분야에서 사용되는 직렬 통신 프로토콜입니다. Linux에서는 SocketCAN을 통해 CAN 네트워크를 제어할 수 있으며, 이는 기존의 네트워크 소켓 API와 유사한 방식으로 동작합니다.이번 포스팅에서는 Linux의 CAN 드라이버 구조 및 설정, SocketCAN API를 활용한 데이터 송수신, 그리고 Python과 C를 활용한 CAN 통신 프로그래밍 방법을 자세히 살펴보겠습니다.2. Linux의 CAN 드라이버 구조 및 설정2.1 CAN 드라이버 개요Linux 커널은 SocketCAN을 통해 CAN 인터페이스를 네트워크 장치로 지원합니..

CAN/CAN 기초 2025.03.11

Embedded Linux Kernel 포팅 기본

Embedded Linux Kernel 포팅 기본1. 서론Embedded 시스템에서 Linux Kernel을 포팅하는 것은 시스템 개발의 중요한 단계 중 하나입니다. 이번 포스팅에서는 Rockchip RK3399 시스템을 기준으로, 하드웨어 사양 분석에서부터 요구사항 정의까지 Linux Kernel 포팅의 기본 절차를 알아보겠습니다.2. Embedded 시스템에서 Linux Kernel 포팅의 기본 절차2.1 하드웨어 사양 분석Embedded 시스템에 Linux Kernel을 포팅하려면 먼저 하드웨어 사양을 분석해야 합니다. 하드웨어 사양 분석은 다음과 같은 항목을 포함합니다:CPU 아키텍처 확인: Rockchip RK3399은 ARMv8 기반의 Cortex-A72와 Cortex-A53 코어를 포함합니다..

Linux/Kernel Driver 2025.03.11

LZ77, LZ78 및 LZW 알고리즘

LZ77, LZ78 및 LZW 알고리즘데이터 압축은 데이터를 보다 효율적으로 저장하고 전송하기 위해 필수적인 기술입니다. 특히, 텍스트 데이터를 압축하는 기술은 파일 크기를 줄이고 네트워크 전송 속도를 향상시키는 데 중요한 역할을 합니다. 본 글에서는 대표적인 사전 기반 압축 알고리즘인 LZ77, LZ78 및 LZW에 대해 설명하고, 각 알고리즘의 차이점을 비교한 후, 실제 구현 예제를 살펴보겠습니다.LZ77 알고리즘LZ77 알고리즘은 1977년 Jacob Ziv와 Abraham Lempel이 제안한 무손실 데이터 압축 알고리즘입니다. LZ77은 슬라이딩 윈도우(sliding window) 기법을 사용하여 반복되는 문자열을 찾아 참조(reference)로 변환합니다.동작 원리슬라이딩 윈도우: 데이터를 일..

CAN to Wireless 통합 시스템 구축

CAN to Wireless 통합 시스템 구축1. 개요오늘날 산업용 네트워크에서 CAN(Controller Area Network)은 자동차, 로봇, 공장 자동화, 의료 기기 등 다양한 분야에서 중요한 역할을 합니다. 하지만 IoT(Internet of Things) 기술이 발전하면서 무선 통신과의 연동이 필수적으로 요구되고 있습니다. 이에 따라 CAN 데이터를 Wi-Fi, Bluetooth, LoRaWAN 등의 무선 기술과 연동하여 원격으로 데이터를 전송하고 제어하는 시스템 구축이 필요합니다.이번 포스팅에서는 CAN과 무선 통신 기술을 결합하는 방법을 설명하고, 이를 실현하기 위한 시스템 아키텍처와 개발 방법을 소개하겠습니다.2. CAN + Wi-Fi 연동 시스템 (CAN → MQTT 변환)2.1 개요..

CAN/CAN 기초 2025.03.10
반응형