I2S(Inter-IC Sound, Inter-IC Serial) 프로토콜은 디지털 오디오 데이터를 전송하기 위한 직렬 통신 인터페이스입니다. 주로 오디오 CODEC, DAC, ADC, 마이크, DSP, MCU 간의 오디오 데이터 교환에 사용됩니다.


🔧 기본 구성 신호선

I2S는 일반적으로 3개 혹은 4개 라인으로 구성됩니다.

신호 명칭 방향 설명
SCK (또는 BCLK) Bit Clock Master → Slave 각 비트 전송 타이밍을 지정하는 클록. 1bit마다 1번 토글.
WS (또는 LRCLK) Word Select / Left-Right Clock Master → Slave 좌/우 채널 구분. 0=Left, 1=Right
SD Serial Data 양방향 (보통 한쪽 전송) 오디오 데이터 스트림 (MSB부터 전송).
MCLK (Optional) Master Clock Master → Slave 내부 oversampling용 클록 (예: 256×fs). 일부 CODEC에서 필요.

🧩 데이터 포맷 구조

한 프레임(frame)은 왼쪽 채널 데이터 + 오른쪽 채널 데이터로 구성됩니다.

기본 타이밍 예시:

  • **WS(=LRCLK)**이 0일 때 → 왼쪽 채널 데이터
  • WS이 1일 때 → 오른쪽 채널 데이터
  • 각 채널의 데이터 길이는 일반적으로 16bit / 24bit / 32bit
  • 데이터는 항상 MSB(최상위 비트)부터 전송

🕒 클록 관계

  • Bit Clock(BCLK) 주파수 = fs × 채널수 × 비트수
    • 예: 48 kHz, 16bit, 스테레오 → 48,000 × 2 × 16 = 1.536 MHz
  • Master Clock(MCLK)는 CODEC 내부 PLL용
    • 보통 MCLK = fs × 256, 즉 12.288 MHz (for 48 kHz)

🧠 동작 모드

모드 BCLK / WS 생성 주체 설명
Master Mode MCU가 클록 생성 MCU → CODEC (BCLK, WS, MCLK 송출)
Slave Mode CODEC이 클록 생성 CODEC → MCU (MCU는 수신만)

🗣️ 예시 시나리오

  • MCU → DAC : MCU가 오디오 데이터를 DAC에 전송 → TX 모드
  • ADC → MCU : ADC가 샘플 데이터를 MCU로 전송 → RX 모드
  • Full-Duplex : 동시에 송수신 가능 (I2S 지원 칩에서만)

⚙️ 변형 프로토콜

I2S 규격은 Philips가 정의했지만, 유사한 파생 형태가 많습니다.

형식 특징
Left Justified (LJ) 데이터가 WS 변화와 동시에 시작됨 (MSB=WS 경계)
Right Justified (RJ) LSB가 WS 경계에 맞춰짐
TDM (Time Division Multiplexed) 4ch 이상 다채널 확장용
DSP Mode (PCM Mode) 일부 오디오 DSP용, WS 펄스 한 번만 발생

📊 요약

항목 내용
전송 방식 동기식 직렬
데이터 단위 16/24/32bit
채널 2채널(스테레오)
동작 클록 SCK(=BCLK), WS(=LRCLK), MCLK
전송 순서 MSB First
사용 예 오디오 CODEC, DAC, ADC, 마이크, Bluetooth 오디오

 

🎧 2. I2S는 “클록 기반 동기형 스트리밍”이다

I2S는 이런 핸드셰이크 신호가 없습니다.
그 이유는 I2S가 다음과 같은 전제를 가지기 때문입니다:

  • Master 장치BCLK(비트클록), WS(LRCLK) 를 계속 생성
  • Slave 장치(예: CODEC, DAC, ADC)는 클록에 맞춰 즉시 송수신
  • 즉, "준비됐냐?" / "보내도 되냐?" 같은 질의응답이 필요 없음
  • 오디오 스트림은 연속 데이터 흐름(Stream) 형태로 동작함

따라서 I2S에서는:

“클록이 곧 타이밍이고, 클록의 존재 자체가 핸드셰이크 역할을 대체한다.”

🔄 3. 실제 동작 흐름 (예: MCU → DAC)

 
1️⃣ MCU가 Master로서 MCLK, BCLK, WS를 생성
2️⃣ DAC은 WS=0일 때 왼쪽 채널, WS=1일 때 오른쪽 채널로 샘플 수신
3️⃣ MCU는 각 WS 전환 주기에 맞춰 SD 라인에 데이터 출력
4️⃣ 클록이 유지되는 한 스트림은 끊김 없이 계속됨

즉, 데이터는 BCLK 신호에 맞춰 밀어 넣거나 읽기만 하면 된다.
ACK, READY, BUSY 같은 신호가 존재하지 않는다.

⚙️ 4. 정리: I2S 신호 교환의 성격

항목 설명
핸드셰이크 신호 없음
동기화 방식 클록(BCLK, WS)에 의한 하드웨어 동기
전송 흐름 제어 불가 (Flow control 없음)
전제 조건 송수신 클록 정확히 일치해야 함
오류 복구 없음 (오디오 스트림이므로 실시간 손실 허용)

🎧 I2S 주요 신호와 주파수 관계

신호 의미 일반 표기 주파수 계산식 예시 (48kHz, 16bit, 스테레오)
MCLK Master Clock (오버샘플 클록) fMCLK=fs×Nf_{MCLK} = f_s × N 48k×256=12.288MHz48k × 256 = 12.288 MHz  
BCLK / SCK Bit Clock (비트 단위 전송) fBCLK=fs×채널수×비트수f_{BCLK} = f_s × \text{채널수} × \text{비트수} 48k×2×16=1.536MHz48k × 2 × 16 = 1.536 MHz  
LRCLK / WS Left-Right Clock (채널 구분) fWS=fsf_{WS} = f_s 48kHz48 kHz  
SD Serial Data 데이터 비트 스트림 BCLK 속도에 맞춰 변화 비트당 1.536 MHz 속도로 변화

'하드웨어 > 상식' 카테고리의 다른 글

RabbitMQ  (0) 2025.10.15
MQTT(Message Queuing Telemetry Transport)  (0) 2025.10.15
UF2 : USB Flashing Format  (0) 2025.10.13
Oscillator(발진기) 설명 및 신호 측정  (0) 2025.10.04
LoRa(Long Range) : 저전력 광역 통신망(LPWAN)  (0) 2025.09.30

+ Recent posts