반응형

전체 글 823

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

Device Tree의 이해

Device Tree의 이해Embedded Linux Kernel을 다룰 때, Device Tree는 하드웨어와 소프트웨어를 연결하는 중요한 역할을 합니다. 이번 포스팅에서는 Device Tree의 개념과 기본 구조, 그리고 작성법에 대해 Rockchip RK3399 시스템을 기준으로 예제와 함께 살펴보겠습니다.Device Tree란 무엇인가?Device Tree는 하드웨어의 구성을 소프트웨어에 설명하기 위해 사용되는 데이터 구조입니다. 이는 특히 ARM 기반의 SoC(System on Chip)에서 널리 사용됩니다. 전통적으로 하드웨어 구성은 C 코드로 작성되었지만, 하드웨어가 복잡해지면서 유지보수가 어려워졌습니다. 이에 따라 하드웨어 정보를 독립적인 데이터 파일로 분리한 Device Tree가 도입되..

Linux/Kernel Driver 2025.03.10

Embedded Linux 부트 프로세스 이해하기

Embedded Linux 부트 프로세스 이해하기Embedded Linux를 사용하는 시스템에서 부팅 프로세스를 이해하는 것은 시스템의 안정성과 성능을 최적화하는 데 매우 중요합니다. 이번 포스팅에서는 U-Boot, Bootloader, Kernel, Rootfs 간의 관계와 부팅 과정을 Rockchip RK3399 시스템을 기준으로 분석하겠습니다.Embedded Linux 부트 프로세스란?Embedded Linux 부트 프로세스는 전원이 켜진 후 시스템이 운영체제를 로드하고 실행하기까지의 과정을 말합니다. 이 과정은 아래와 같은 주요 단계로 나뉩니다:Boot ROM: 초기 하드웨어 초기화 및 부트로더 로드.Bootloader (U-Boot): 커널과 Rootfs 로드.Linux Kernel: 운영체제 ..

Linux/Kernel Driver 2025.03.09

압축 알고리즘 Run-Length Encoding (RLE)

압축 알고리즘 Run-Length Encoding (RLE)1. 개요Run-Length Encoding(RLE)은 데이터 압축 기법 중 하나로, 연속적으로 반복되는 데이터를 효율적으로 저장하는 방식입니다. 특히 이미지, 텍스트 및 신호 데이터와 같이 동일한 값이 연속적으로 나타나는 데이터에서 높은 압축 효율을 보입니다.2. 원리 및 구조RLE의 기본 원리는 동일한 문자가 연속적으로 나타날 경우, 해당 문자와 반복 횟수를 함께 저장하는 것입니다. 예를 들어, 다음과 같은 문자열이 있다고 가정합니다.AAABBBCCDAA이 문자열을 RLE 방식으로 인코딩하면 다음과 같이 표현할 수 있습니다.A3B3C2D1A2이러한 방식으로 데이터를 압축하면, 데이터의 크기를 줄일 수 있습니다. 그러나 모든 경우에서 압축 효율..

CAN을 활용한 실시간 제어 시스템

CAN을 활용한 실시간 제어 시스템1. 개요CAN(Controller Area Network)은 실시간 제어 시스템에서 널리 사용되는 통신 프로토콜입니다. 자동차, 산업 자동화, 로봇 공학 등에서 빠르고 신뢰할 수 있는 데이터 교환이 필요할 때 CAN이 효과적으로 활용됩니다. 이번 글에서는 CAN을 활용한 실시간 제어 시스템의 개념과 사용법, 산업 자동화 및 로봇 제어에서의 적용 사례, 그리고 CANopen을 이용한 모터 및 서보 제어 방법을 살펴보겠습니다.2. 실시간 제어가 필요한 환경에서의 CAN 사용법2.1 실시간 제어 시스템이란?실시간 제어 시스템은 입력 데이터를 수집하고 빠르게 처리한 후 즉각적인 출력을 제공해야 하는 시스템을 의미합니다. 이러한 시스템에서는 데이터 전송 지연이나 패킷 손실이 발..

CAN/CAN 기초 2025.03.09
반응형