2024 - 2학기/전자공학

01_2 통신 기술의 기초

SHIN JI HAN 2025. 1. 19. 17:42
728x90
728x90
Reporting Date: October. 8, 2024

통신 기술에 관한 전반적인 개념에 대해 다루고자 한다.


목차

01 산술논리연산장치
02 레지스터
03 RS-232
04 기본 논리 연산
05 통신 기술
06 데이터 단위
07 진법
08 8비트의 정의


 

 

 

01 산술논리연산장치

(Arithmetic and Logic Unit, ALU)

컴퓨터 내부에서 산술 연산(덧셈, 뺄셈 등)
논리 연산(AND, OR, NOT 등)을 수행하는 하드웨어 부품.

예를 들어, 7을 3으로 나눌 때
몫과 나머지를 각각 구하는 연산은 ALU에서 처리된다.

이때, 몫은 7 / 3 = 2, 나머지는 7 % 3 = 1로 계산된다.

 

CPU와 MCU 모두 ALU를 가지고 있으며,
산술 연산논리 연산을 처리하는 핵심 컴포넌트이다.

 

 

CPU

(Central Processing Unit)

CPU컴퓨터의 중앙 처리 장치로, 복잡한 계산을 수행하고,
메모리와 입출력 장치와의 데이터 처리를 담당한다.

 

MCU

(Microcontroller Unit)

작은 컴퓨터 시스템을 내장한 마이크로칩으로,
주로 임베디드 시스템에서 사용된다.

MCUCPU에 비해 상대적으로 간단하고 저전력, 소형화된 시스템으로,
제한된 리소스 환경에서도 효율적으로 동작한다.


 

02 레지스터

(Register)

컴퓨터의 CPU 내에서 데이터나 명령어를
저장하고 처리하는 빠른 기억 장치.

CPU는 연산을 수행하거나 메모리와 데이터 교환 시
레지스터를 사용하여 데이터를 중간에 임시로 저장한다.

 

레지스터는 메모리 역할을 수행하는
일시적인 저장소 역할을 한다.

 

 CPU

(Central Processing Unit)

CPU 내의 레지스터는 매우 빠른 임시 저장소로,
연산에 필요한 데이터나 명령어를 빠르게 저장하고 처리한다.

CPU 자체는 레지스터 외에 큰 저장공간 역할을 하지 않는다.

CPU는 대량의 데이터를 영구적으로 저장하는 역할을 하지 않으며,
주 메모리(RAM)저장장치(HDD, SSD 등)처럼 큰 용량의 데이터를 관리하지 않는다.

 

 MCU

(Microcontroller Unit)

MCU는 비교적 작은 시스템으로,
자체적으로 내장 메모리(ROM, RAM)를 가지고 있다.

이 메모리는 프로그램 코드, 변수, 데이터를 저장하는 역할을 하며,
CPU처럼 레지스터는 연산에 필요한 데이터를 임시로 저장하는 용도로 사용된다.

MCU는 외부 메모리와 연결하여 더 많은 데이터를
처리할 수 있지만, 레지스터는 여전히 임시 저장소 역할을 한다.

 

③ 레지스터 초기화

특정 비트를 0으로 설정하려면 AND 연산
마스크(Mask)를 사용하여 원하는 비트를 0으로 만들 수 있다.
반대로, 특정 비트를 1로 설정하려면, OR 연산 마스크를 사용한다.

8비트 값이 10101101일 때, 3번째 비트를 0으로 설정하려면
마스크 11110111 AND 연산을 수행한다.

반대로, 5번째 비트를 1로 설정하려면
마스크 00010000OR 연산을 수행한다.

모든 비트를 0으로 설정할 경우,
단순히 레지스터 값을 0으로 초기화하는 것이 일반적이다.


 

03 RS-232

(Recommended Standard 232)

직렬 통신 프로토콜의 한 종류로,
데이터를 한 비트씩 순차적으로 전송하는 방식이다.

직렬 데이터 전송을 위한 초기 표준.
간단한 구현과 넓은 호환성을 바탕으로
임베디드 시스템과 주변 기기 통신에 오랫동안 사용되어 왔다.

 

① 통신 방식

TX(전송), RX(수신), GND(접지)와 같은
신호선을 사용하여 데이터를 송수신한다.

기본적으로 비동기식 통신 방식을 채택하고 있으며,
송수신 측이 서로 동기화된 상태에서 데이터를 교환하는 방식이다.

비동기식 통신에서 각 데이터는
스타트 비트, 데이터 비트, 패리티 비트, 스톱 비트로 구분된다.

 

② 사용 범위

RS-232동기식 통신 방식으로도 사용할 수 있다.
이 경우, 클럭 신호를 추가하여 데이터 전송 속도를 동기화한다.

이는 컴퓨터, 서버 간의 통신에 널리 사용되며,
특히 임베디드 시스템에서도 사용된다.

또한, 모뎀, 프린터, 터미널 장치 등과의 연결에도 사용된다.


 

04 기본 논리 연산

디지털 회로와 프로그래밍에서 사용하는 가장 기본적인 연산으로,
논리 상태(0 1)를 처리하는 데 사용된다.

 

아래는 기본 논리 연산의 주요 종류이다.

 

① AND

두 입력이 모두 참(1)일 때만
결과가 참(1)이 되는 연산.

AND 연산의 진리표

 

OR

입력 중 하나라도 참(1)이면
결과가 참(1)이 되는 연산.

OR 연산의 진리표

 

NOT

단일 입력에 대해, 입력이 참이면 결과가 거짓(0),
입력이 거짓이면 결과가 참(1)이 되는 연산.

NOT 연산의 진리표

 

XOR

두 입력이 서로 다를 때만 참(1)이 되는 연산.
즉, 둘 중 하나만 참이어야 참이 된다.

XOR 연산의 진리표

 

 NAND

AND 연산 후에 결과를 부정(NOT)한 연산.
AND의 반대 결과를 생성한다.

NAND 연산의 진리표

 

 NOR

OR 연산 후에 결과를 부정(NOT)한 연산.
OR의 반대 결과를 생성한다.

NOR 연산의 진리표

 

이러한 논리 연산은 전자 회로와
디지털 컴퓨터에서 기본 연산으로 사용된다.

간단한 결정이나 조건을 설정하는 데 유용하며, 
복잡한 연산도 이러한 기본 연산을 조합하여 처리할 수 있다.


 

05 통신 기술

Wi-Fi, Bluetooth, 5G 같은 무선 통신 기술에서
데이터 송수신 과정에서 모뎀 역할을 하는 칩셋이나 모듈이 사용되며, 
동기/비동기 통신 방식대역폭이 전송 속도와 품질에 중요한 영향을 미친다.

서버 기반의 제어 시스템을 조작할 때는 C++과 같은 언어를 활용하여
GUI를 개발하거나 데이터를 효율적으로 처리할 수 있으며,

특히 실시간 데이터 처리와 고성능 연산이 요구되는 환경에서 유용하다.

 

① 제어 흐름 관리

for 문과 if-else 문을 사용하며, 이를 통해 데이터를 수집하거나
명령을 실행하는 프로세스를 제어하는 코드를 작성한다.

이러한 방식은 시리얼 통신, 네트워크 통신 등
다양한 통신 방식에 맞춰 데이터 패킷을 처리하거나,
사용자 입력을 관리하여 프로그램의 동작을 유연하게 제어하는 데 중요한 역할을 한다.

 

 C++의 활용

C++성능 메모리 관리를 직접 제어할 수 있는 언어로,
이를 활용하면 실시간 통신 시스템에서 응답성을 크게 향상시킬 수 있다.

특히, 서버 제어 시스템에서 통신 장비와 상호 작용하는 프로그램을 개발할 때,
C++의 효율성과 네트워크 라이브러리를 활용하면 안정적이고 빠른 성능을 달성할 수 있다.


③ 디지털 (Digital)

01과 같은 이진 값을 사용하여 정보를 표현한다.

디지털 신호는 일정한 시간 간격으로 구분된
이진 상태를 나타내며, 최소 단위비트이다.

이진 상태가 "0"과 "1"로만 표현되므로, 값은 이산적이다.

 

아날로그 (Analog)

시간에 따라 연속적으로 변화하며,
01 사이의 모든 값을 가질 수 있다.


 

06 데이터 단위

 

① 비트 (Bit)

01로 이루어진 가장 작은 데이터 단위.
디지털 정보의 기본 단위로, 두 가지 상태를 표현할 수 있다.

 

니블 (Nibble): 4비트

1니블은 4개의 비트로 구성된다.
보통 1바이트를 2니블로 나누는 데 사용된다.

 

바이트 (Byte): 8비트

1바이트는 8비트로 이루어지며, 컴퓨터에서 문자나
데이터를 표현하는 기본 단위로 많이 사용된다.

 

워드 (Word)

프로세서가 한 번에 처리할 수 있는 데이터의 크기로,
시스템 아키텍처에 따라 달라진다.

워드 크기는 아키텍처에 따라 대체로 위와 같이 설정된다.

 

과거에는 16비트 였던 워드 크기가
현재는 32비트 혹은 64비트로 변화되어 사용된다.


 

07 진법

컴퓨터와 디지털 시스템에서는 데이터를 다양한 진법으로 표현한다.

각 진법은 사용되는 숫자의 개수와 자리 값을 기반으로
데이터를 표현하며, 특정 진법은 특정 상황에서 유용하다.

 

① 2진수(Binary)

 

숫자 2를 기반으로 하는 진법으로, 01의 두 가지 숫자만 사용된다.
디지털 회로와 컴퓨터 내부 연산에서 가장 기본적인 진법이다.

 

2의 거듭제곱으로 자리값이 결정된다.

 

8진수(Octal)

숫자 8을 기반으로 하는 진법으로, 0 ~ 78가지 숫자를 사용한다.
3개의 이진수 그룹을 한 자리의 8진수로 표현할 수 있어,
컴퓨터 시스템에서 간단한 데이터 표현에 사용된다.

 

8의 거듭제곱으로 자리값이 결정된다.

 

10진수 (Decimal)

우리가 일상생활에서 사용하는 기본 진법.

숫자 10을 기반으로 하는 진법으로, 0 ~ 9의 숫자를 사용한다.

 

10의 거듭제곱으로 자리값이 결정된다.

 16진수 (Hexadecimal)

 

숫자 16을 기반으로 하는 진법으로,
숫자 0 ~ 9와 문자 A ~ F를 사용한다.

문자 A ~ F 10 ~ 15의 값을 나타낸다.

4개의 이진수 그룹을 한 자리의 16진수로 표현할 수 있어,
메모리 주소나 색상 표현 등에 자주 사용된다.

 

16의 거듭제곱으로 자리값이 결정된다.


 

08 8비트의 정의

8자리의 2진수로 표현되며,
각 자리의 가중치는 다음과 같다:

왼쪽에서 오른쪽으로 자리의 가중치가 점점 작아진다.

 

값의 범위

8비트의 최소값과 최대값

 

총 가능한 값의 개수는  2⁸ = 256 가지이다.

11111111₂은 각 자리의 가중치를 모두 더하는 방식으로 계산된다.

 

응용

8비트의 범위는 0 ~ 255로,
컴퓨터가 데이터를 저장하거나 표현할 때 자주 사용된다.

색상 표현에서 RGB 값은 각각 0 ~ 255로 표현된다.
문자 저장에 사용되는 ASCII 코드도 보통 8비트를 사용한다.


728x90
반응형