CS 99

[임베디드] 엔디안 방식의 이해(2) with CAN Message

본문Big-endian  빅 엔디안 방식은 큰 값을 먼저 저장하는 방식이다. 예를 들어, 1234라는 숫자에서 1이 가장 중요한 숫자(MSB)가 되는 방식이다. 빅 엔디안에서는 이 작은 값이 메모리의 앞쪽에 저장되고, 작은 값(LSB)이 나중에 저장된다.  이 방식은 사람이 숫자를 읽는 방식과 동일하게 데이터를 저장하기 때문에, 디버깅이나 사람이 데이터를 직관적으로 이해하기에 매우 용이하다. 예를 들어, 32비트 정수 0x12345678을 빅 엔디안 방식으로 저장하면 메모리 상에 12 34 56 78 순서로 저장되며, 이는 우리가 숫자를 읽는 순서와 일치한다.  빅 엔디안 방식은 네트워크 프로토콜에서 표준적으로 사용되는데, 이를 "네트워크 바이트 오더"라고 부른다. 이 덕분에 네트워크 통신에서 일관성을 ..

CS/임베디드 2024.09.30

[임베디드] 엔디안 방식의 이해(1) with CAN Message

Endianness개요   엔디안(Endianness)은 컴퓨터 시스템에서 데이터를 메모리나 전송 매체에 저장할 때, 그 배열 순서를 결정하는 개념이다. 즉, 엔디안은 숫자나 다중 바이트 데이터(예: 16비트, 32비트, 64비트 등)를 저장하거나 전송할 때, 어떤 순서로 배열할 것인지를 나타낸다. 이 순서는 시스템의 하드웨어 구조에 따라 달라지며, 특히 메모리, 파일 포맷, 네트워크 통신 등에서 중요한 역할을 한다. 엔디안은 크게 빅 엔디안(Big-endian)과 리틀 엔디안(Little-endian)으로 나뉜다.  엔디안이 중요한 이유는 시스템 간 데이터 전송 시 엔디안의 차이는 호환성 문제를 일으킬 수 있기 때문이다. 따라서 데이터 전송 표준(예: 네트워크에서는 주로 빅 엔디안을 사용)이나 프로토콜..

CS/임베디드 2024.09.26

[통신] CAN DBC

CAN DBC개요  지난 시간엔 CAN 통신에 대한 기초적인 내용(특징, 장점, 단점, 구조 등)에 대해 다뤘다. 이번 시간에는 구체적으로 CAN 통신을 하기 위해서 어떤 과정을 거쳐야 하는지, 이 과정에서 DBC(Data Binary Code)가 어떤 역할을 하는지 알아보도록 하겠다.본문통신 과정  앞서 CAN 통신을 하기 위해서는 MCU 내부에 CAN Controller가 내장되어 있어야 한다고 했다. 이러한 컨트롤러와 통신하기 위해서는 트랜시버(transceiver)가 필요하며, 송/수신되는 데이터를 모니터링하기 위해 물리적인 장치가 필요하다. 대표적으로 Peak CAN과 Vector CAN 장비가 있지만, 이 장비들은 가격이 비싸기 때문에 상대적으로 저렴한 CANable Pro v2.0 제품을 이..

CS/통신 2024.06.22

[통신] CAN 통신 개요

CAN 통신개요 및 특징  CAN(Controller Area Network) 통신은 호스트 컴퓨터 없이 마이크로컨트롤러와 각종 장치들이 상호 통신할 수 있도록 설계된 메시지 기반 멀티플렉스 통신 프로토콜이다. 이때 호스트 컴퓨터(Host Computer)가 없다는 것은 각 장치가 중앙 제어 장치 없이 독립적으로 동일한 버스를 통해 데이터를 주고받는다는 것을 의미하며, 멀티플렉스 프로토콜(Multiplex Protocol)은 여러 신호를 하나의 통신 회선으로 다중 전송하여 회선 수를 줄인 것을 의미한다.  CAN 통신은 다음과 같은 특징을 갖고 있다. 1. 신뢰성: 메시지 충돌과 오류를 자동으로 검출하고 수정하는 기능을 내장하고 있어 노이즈에 강함. 이때 버스가 Twist Pari 2선(High, Low..

CS/통신 2024.06.09

[디지털영상처리] Morphological Image Processing (1)

Morphology 개요 모폴로지(Morphology)는 이미지의 구조와 형태를 분석하고 처리하는 방법론을 의미한다. 이는 기본적으로 이미지의 구성 요소들을 추출하고 나타내는 데 유용한 도구로 사용되며, 특히 이미지의 경계와 골격 같은 영역의 형태를 표현하고 기술하는 데 중요한 요소들이 포함된다. 또한, 모폴로지는 이미지의 전처리나 후처리 과정에도 활용되기도 한다. 이번 시간에는 모폴로지의 대표적인 기술인 침식(Erosion)과 팽창(Dilation), 오프닝(Opening)과 클로징(Closing)에 대해 배워보도록 하겠다. 본문 Set Theroy 모폴로지를 설명하기에 앞서, 형태학적인 연산의 범위(픽셀)를 제한하기 위해 집합론을 정의해야 한다. 즉, 이미지를 픽셀의 집합으로 간주하고, 각 픽셀을 좌..

[디지털영상처리] Color Image Processing (2)

본문 Pseudocolor Image 가색상(Pseudocolor) 이미지 처리는 단색 또는 흑백 이미지에 색상을 매핑하여 시각적으로 이해하기 쉽게 하는 방법이다. 예를 들어, 위와 같이 위성사진을 촬영한 결과물에 가색상을 입힌다고 가정해 보자. 좌측의 위성사진에 기온, 수심, 등고선 등의 지표의 밝기(Intensity)에 따라 사전에 정의해 둔 색상을 매핑하면 우측의 그림처럼 바뀐다. 즉, 위의 그래프처럼 밝기 값에 따라 R/G/B에 해당하는 값을 할당하는 사전에 정의된 함수를 이용한다. 이러한 함수는 일반적으로 사용자가 찾는 것이 아닌, 누군가 이미 정의한 coloramp을 사용한다. I = rgb2gray(imread('bone.jpg')); figure(1); imshow(I); colorbar;..

[디지털영상처리] Color Image Processing (1)

컬러 이미지 처리 개요 지금까지 이미지 처리를 배우며 대부분 흑백 이미지만 사용하였다. 이는 흑백 이미지가 이미지 처리의 기본 개념을 파악하기 용이하기 때문인데, 컬러 이미지에 비해 데이터 양이 적고 처리 속도가 빠르기 때문이다. 이번 시간에는 색상에 대한 개념부터 컬러 이미지 처리에 대한 전반적인 개념을 배우는 시간을 가지도록 해보자. 본문 색이란? 색(Color)이란 빛의 성질 중 하나로, 빛의 파장 분포에 의해 결정되며 인간의 눈과 뇌에 의해 인식되는 것을 의미한다. 이때 물리적인 특성보다는 시각적 경험에 의존하는 심리적 특성이다. 이때 빛과 색을 혼동하는 경우가 많은데, 일반적으로 빛(Light)은 물리적인 에너지의 형태로서 색을 생성하는 물리적인 원인이며, 색은 그 결과로써 인간이 인식하는 현상..

[디지털영상처리] Filtering in Frequency Domain (3)

본문 Zero Padding 디지털 영상 처리에서 이미지를 주기적인 신호로 간주하고 처리한다. 위의 그래프에서 왼쪽에 있는 것이 원래 신호고, 오른쪽에 있는 그래프가 이미지가 주기적이라는 것을 가정한 상태다. 이는 이미지의 한쪽 끝과 다른 쪽 끝이 서로 연결되어 있다고 가정하는 것과 동일하다. 이러한 처리 방식에서는 이미지의 오른쪽 끝과 왼쪽 끝, 상단과 하단이 서로 감싸는 Wraparound Error가 발생할 수 있다. 즉, 컨볼루션 연산 중 이미지의 한쪽 끝의 값이 반대편 끝에 영향을 미친다. 위의 두 신호 f(m)과 h(m)에 대해 컨볼루션 연산을 적용하는 과정을 통해 왜 이러한 일이 발생하는지 알아보자. 컨볼루션의 정의에 따라 h(m)을 y축에 대해 대칭시키면 다음과 같이 표현할 수 있을 것이다..

[마이크로프로세서] USART 통신

USART 통신 개요 개요 데이터를 모니터에 출력하려면, 메인보드와 HDMI를 연결하여 데이터를 송/수신해야 한다. 이처럼 장치 간 데이터를 주고받을 때, 하나의 신호선을 직렬로 연결하여 사용하는 통신 방식을 USART(Universal Synchronous and Asynchronous Receiver and Transmitter)라고 한다. 이번 시간에는 비동기 방식을 다루도록 해보겠다. 직렬 통신(Serial Communication): 순차적으로 데이터를 한 번에 하나의 비트만 송수신하는 통신 방법 병렬 통신(Parallel Communication): 여러 개의 채널을 통해 여러 비트를 송수신하는 통신 방법 동기식(Synchronous) 통신: 기준 클럭에 맞춰 데이터를 송수신하는 방법 비동기식..

[마이크로프로세서] ADC(Analog-Digital Converter)

ADC 개요 많은 센서들은 아날로그 신호를 출력한다. 예를 들어, 온도, 습도, 광도, 압력 등을 측정하는 센서들이 그러하다. 이러한 아날로그 신호를 디지털 신호로 변환해야 마이크로컨트롤러에서 이를 처리하여 사용할 수 있다. 일반적으로 아날로그 신호를 디지털 신호로 변환하는 소자를 ADC(Analog-Digital Converter)라고 부르며, 표본화(Sampling), 양자화(Quantization), 부호화(coding)의 과정을 거친다. 표본화: 연속 신호를 시간 축 방향에서 일정 간격으로 표본을 추출하여 이산 신호로 바꾸는 과정 양자화: 샘플링된 진폭의 값을 한정된 개수의 대표 값으로 바꾸는 과정 부호화: 신호 처리가 용이한 디지털 코드인 0과 1로 변환하는 과정 아날로그 신호가 입력되는 방법에..