REMI Lab강의 노트

Wireless Embedded Systems E01

무선임베디드시스템과 SDR

휴대폰의 모뎀, 가전제품에 붙는 Wi-Fi 모듈, 이 과목에서 쓰는 ADALM-Pluto는 모두 더 큰 장치 안에서 무선 신호를 보내고 받는 일을 맡은 작은 컴퓨터이다. 이 장에서는 그런 장치를 이루는 분야 가운데 이 과목이 다루는 부분을 정하고, 송수신기의 기능을 소프트웨어로 옮긴 SDR이 무엇을 얻고 무엇을 내주는지 본다.

임베디드 시스템

에어컨에 꽂는 Wi-Fi 모듈과 노트북은 둘 다 컴퓨터이다. 무엇이 다를까?

임베디드 시스템(embedded system)은 더 큰 기계나 전자 장치 안에서 정해진 기능 하나를 맡는 컴퓨터 시스템이다. 노트북은 사용자가 할 일을 정하는 범용 컴퓨터이다. 에어컨의 Wi-Fi 모듈은 에어컨의 상태와 명령을 휴대폰 앱과 주고받는 일만 한다. 공장 설비, 차량, 교통 신호, 건물, 가전제품을 네트워크에 잇는 사물인터넷(IoT)의 끝단 장치는 대부분 이런 시스템이다.

임베디드 시스템 하나를 만들려면 아래 분야가 함께 필요하다.

분야 하는 일
ADC와 DAC 아날로그 신호를 수열로, 수열을 아날로그 신호로 바꾼다
디지털 신호처리 표본에서 필요한 값을 계산한다. 필터, 변조와 복조, 스펙트럼이 여기에 든다
메모리와 인터페이스 표본과 프로그램을 저장하고 옮긴다
아날로그·디지털 회로 설계 증폭기, 필터, 발진기, 전원 회로를 설계한다
RTOS, MCU 프로그래밍 정해진 시간 안에 끝나야 하는 제어 프로그램을 쓴다
직렬 통신 (USB, CAN, LIN) 칩과 칩, 장치와 장치가 데이터를 주고받는다
고속 인터페이스 (LVDS, SerDes) ADC 표본처럼 빠른 데이터를 칩 사이에 옮긴다

RTOS(real-time operating system)는 작업마다 끝나야 할 시각을 지키도록 만든 운영체제이고, MCU(microcontroller unit)는 프로세서와 메모리, 입출력을 한 칩에 담은 작은 컴퓨터이다.

이 과목에서 배우는 것

위 분야 가운데 이 과목은 어디를 다룰까? 무선 통신에서 오가는 디지털 신호, 곧 ADC가 내놓은 표본이 무엇을 담고 있는지에서 시작한다. 계측기 화면에 뜨는 성상도(constellation)나 변조 오차(EVM) 같은 값은 모두 이 표본으로 계산한 것이다. 성상도와 EVM은 4장에서 다룬다.

다음으로 예로 드는 임베디드 시스템이 SDR인 ADALM-Pluto이다. Pluto 안에는 다음 부품이 있다.

  • Analog Devices의 RF 송수신 칩(AD936x 계열): 안테나 쪽 신호를 표본으로 바꾸고, 표본을 안테나 쪽 신호로 바꾼다.
  • Xilinx Zynq SoC: FPGA와 ARM 프로세서를 한 칩에 담았다. 표본을 받아 USB로 보낸다.
  • DDR3L 메모리와 QSPI 플래시: 표본을 잠시 담아 두고, 프로그램을 저장한다.
  • USB 2.0 PHY와 전원 회로.

이 과목은 이 가운데 송수신기를 중심으로, 메모리와 전원 회로가 송수신기와 함께 어떤 역할을 하는지 본다.

다루지 않는 것은 칩을 레지스터 수준에서 제어하는 방법이다. 송수신 칩의 동작 하나하나는 레지스터의 비트로 정해지고, 프로세서는 SPI 같은 직렬 통신으로 그 비트를 쓴다. 비트 연산, SPI, 임베디드 프로세서 프로그래밍은 이 과목의 범위가 아니다. 그 일은 장치의 드라이버가 맡고, 우리는 송수신 주파수, 표본화율, 대역폭, 이득 같은 값을 정한다.

목표는 무선 신호를 직접 보내고 받고, 간단한 무선 통신을 Python으로 해 보는 것이다. 실습은 Chrome이나 Edge에서 Pluto를 USB로 연결해 진행한다. Pluto와 표본을 주고받는 일은 실습 페이지가 맡고, 학생은 받은 표본을 분석하고 보낼 표본을 만드는 신호처리 코드를 쓴다.

아래 그림은 이 과목이 어떤 순서로 이어지는지 위에서 아래로 그렸다. 먼저 위의 두 칸에서 신호 및 시스템의 개념이 2–6장으로 이어지는 것을 보고, 그다음 아래 다섯 칸에서 실습이 장비 없는 시뮬레이션에서 실제 신호까지 어떤 묶음으로 놓였는지 본다.

과목 지도. 신호 및 시스템 개념에서 2–6장으로 이어지고, 시뮬레이션 A–D, 연결 점검, Pluto 1–3 송수신기 이해, 4 통신, 5–6 실제 신호 순으로 실습한다. 신호 및 시스템복소수 · 컨볼루션 · 푸리에 해석표본화 · DFT2–6장: 개념을 송수신기에 쓰기2장 신호와 시스템 복습3장 디지털 신호와 표본화4장 변조와 복조5장 무선 송수신기6장 SDR과 Pluto시뮬레이션 A–DA Python · B DFT와 FFTC 표본화·창·시간-주파수 · D 변조연결 점검 (11장)Pluto 연결 · 첫 캡처송수신 가능 여부 확인Pluto 1–3: 송수신기 이해1 기본 · 2 I/Q 불균형3 대역폭과 aliasingPluto 4: 통신비트를 보내고 받아변조·복조와 BER 관찰Pluto 5–6: 실제 신호5 스펙트럼 모니터링6 LTE·BLE 주파수 오차
위에서 아래로 읽는다. 2장에서 신호 및 시스템을 복습하고, 3–6장에서 표본화·변조·무선 송수신기·SDR을 다룬다. 시뮬레이션 A–D는 장비 없이 하고, 연결 점검 뒤에는 Pluto로 송수신기, 통신, 실제 신호를 차례로 살핀다. 실습 5–6은 안테나로 수신만 한다.