Project ES/: : Peripheral

I2S (Inter-IC Sound)

Jay.P Morgan 2026. 5. 8. 11:21

 

 

  ◈  I2S (Inter-IC Sound)

 

    I2S(Inter-IC Sound)는 디지털 오디오 장치 간에 데이터를 전송하기 위해 설계된 직렬 인터페이스 표준입니다. 필립스에서 제정했으며, 주로 MCU, DSP, 오디오 코덱, DAC/ADC 사이에서 무손실 오디오 데이터를 주고받을 때 사용하는 버스입니다.

    I2S의 핵심은 데이터(Data)와 클록(Clock)을 분리하여 전송함으로써, 신호의 시간적 오차인 지터(Jitter)를 최소화한다는 점입니다.

 

 

  1.  I2S의 3대 핵심 신호라인

 

I2S는 최소 3개의 선으로 구성됩니다.

       SCK (Serial Clock): 비트 클록(BCLK)이라고도 하며, 데이터의 각 비트가 전송되는 타이밍을 결정합니다(동기식 통신에 사용).

       WS (Word Select): 좌/우 채널을 구분하는 신호입니다. (FS-Frame Select, LRCK라고도 부름)

          - Low (0)일 때는 왼쪽 채널, High (1)일 때는 오른쪽 채널 데이터를 전송하는 것이 표준입니다.

          - 좌우 채널은 일정한 주기로 반복이 되기 때문에 클럭으로 표기하기도 합니다.

       SD (Serial Data): 실제 오디오 데이터가 전송되는 라인입니다. (SDATA, SDINT, SDOUT으로 표시)

          - 2의 보수(2's complement) 형태의 MSB부터 순차적으로 전송됩니다.

 

 

  네 번째 라인, 마스터 클럭

    I2S규격에는 포함되어 있지 않지만, 실제 제품에서 흔히 사용되는 네번째 라인이 있습니다. 마스터 클럭이라고 불리는 신호선으로 좌우 채널 선택 클럭(LRCLK)의 256배에 해당하는 클럭을 사용합니다. 오디오 집적 회로는 이 신호에 동기화하여 작동합니다.

 

    원래 IC들은 내부에 OSC를 갖고 있는데, 별도로 외부의 클럭을 사용하는 것은 전송되는 데이터가 오디오라는 특수성 때문입니다. 오디오 데이터는 끊김이 없이 일정한 속도로 흘러 가야 하며, 만약 그렇지 못하면 스피커를 통해서 재생되는 중, 소리가 끊기거나 튀는 소리 등, 비정상적인 소리가 발생할 수 있기 때문입니다.

    이러한 현상을 방지하기 위해서 시스템 내부의 모든 부품이 일사 분란하게 동작하여야 하며, 전투선의 북소리와 같은 역할을 마스터 클럭이 담당하게 된다.

 

 

  2.  주요 동작 특성

 

       마스터와 슬레이브: 통신을 제어하는 장치(주로 MCU나 DSP)가 클록(SCK, WS)을 생성하는 마스터가 되고, 데이터를 받는 쪽(DAC 등)이 슬레이브가 됩니다.

       데이터 정렬 (Alignment): 표준 I2S 방식에서는 WS 신호가 변한 뒤 한 클록 뒤에 실제 데이터 비트가 시작됩니다. (이 외에도 Left-Justified, Right-Justified 등의 변형 포맷이 있습니다.)

       동기화: 클록이 데이터와 별도로 존재하기 때문에 송수신 장치 간에 별도의 복잡한 동기화 과정 없이도 정확한 오디오 재생이 가능합니다.

 

 

  3.  I2S

 

I2S 기술의 세부사항

 

  (1) 네트워크 구성

 

    I2S는 버스 구조를 갖기 때문에 여러 대의 장치를 연결할 수 있다. 오디오 신호를 전송하는 기기(트랜스미터, Transmitter)와 오디오 신호를 수신하는 기기(리시버, Receiver)외에 마스터 클럭을 제공하는 기기(컨트롤러, Controller)가 연결될 수 있고, 또는 오디오 신호를 외부로부터 받아들일 수 있는 마이크 장치가 버스에 연결될 수 있다. 일반적으로 트랜스미터는 CPU, 혹은 마이크로 프로세서에 해당하고, 리시버는 디지털 신호를 아날로그 신호로 변환하여 스피커로 보내 주는 오디오 장치에 해당한다.

 

    마스터 클럭을 제공하는 컨트롤러는 별도로 존재할 수도 있고, 트랜스미터나 리시버가 그 역할을 겸할 수도 있다. 이 경우에는 네트워크가 일대일 구성을 이루게 된다.

 

[그림 2] I2S 네트워크 구성

 

  (2) 버전과 데이터의 전송 속도

    일반적인 데이터를 전송하는 UART, I2C, SPI와 달리 오디오 데이터를 전송하는 I2S는 전송하는 데이터가 어떻게 생성되었는지에 따라서 데이터의 전송 속도가 정해진다. I2S디지털 오디오 데이터를 전송하는 커넥티비티이므로 디지털 오디오 데이터가 어떠한 특성을 갖느냐가 중요하다. 예를 들어 디지털 오디오 데이터가 고음질이라면, 초당 전송해야 하는 데이터 양을 많아 질 것이고, 그렇다면 데이터의 전송 속도도 올라가야 한다. 반면, 저음질의 오디오 데이터라면, 초당 전송해야 하는 데이터 양은 적을 것이며, 그렇다면 데이터의 전송 속도는 낮아질 것이다. 이러한 현상은 데이터의 전송과 스피커를 통한 출력이 동기화되어야 하기 때문에 발생한다. 아무리 빨리 데이터를 보낼 수 있다고 하더라도 스피커로 출력되는 데이터의 양을 이미 정해져 있기 때문이다. 반면, 고음질의 데이터의 경우에는 한번에 스피커로 출력할 수 있는 데이터의 양이 많다는 것을 의미하는데, 만약 충분한 커넥티비티가 데이터 전송 속도를 갖지 못한다면, 스피커에서는 계속해서 음이 끊기는 현상이 나타나게 될 것이다.

구체적으로 데이터의 전송 속도를 결정짓는 디지털 오디오의 특성은 다음과 같은 두 가지 요소가 중요한데, 첫째는 샘플링 레이트(sampling rate)이고, 둘째는 비트 깊이(bit depth)이다.

 

 

이제는 I2S의 데이터의 전송 속도를 알아 볼 시간이 되었다. I2S는 오디오 신호를 전송하는 것이므로, 스피커를 통해서 소리가 출력되는 속도와 동일한 속도로 데이터의 전송이 이루어져야 한다. 더 빨라도 안 되고, 더 늦어도 안된다. 마스터 클럭을 통해서 데이터의 전송 속도와 오디오 집적 회로의 동작 클럭을 일치시키는 것도 이러한 이유 때문이다.

먼저, CD 의 음원을 전송하는 경우이다. 샘플링 레이트가 44.1kHz 이므로, 초당 44100번의 샘플링이 있었으며, 샘플링된 신호는 16비트로 양자화되었으므로 1초에 전송해야 할 데이터는 44100 x 16 비트 = 705,600 비트이다. 이것은 모노(mono)인 경우이다. 만약 스테레오의 경우라면 왼쪽과 오른쪽 마이크를 통해서 샘플링된 신호가 각각 존재하므로, 1초에 전송해야 할 데이터는 모노의 2배에 해당하므로 44100 x 16비트 x 2 채널 = 1,411,200 비트가 된다. 즉, CD음원을 전송하는 경우 I2S의 데이터 전송 속도는 1.411 Mbits/s가 된다. 이런 식으로 전송하는 오디오 음원의 제작 방법에 따라서 I2S의 데이터 전송 속도는 달라지게 된다.

 

 

기술의 동작

  (1) 데이터의 전송

데이터의 전송을 위해서 세 개의 라인을 통해서 동기화된 출력이 필요하다. 첫째는 클럭 신호를 통해서, 오디오 데이터의 송신기와 수신기가 데이터를 주고 받기 위한 동기화를 하게 된다. 클럭 신호는 I2S 버스 시스템에 연결되어 있는 기기 중에서 한 곳에서 생성이 된다. 앞에서 설명한 것과 같이 클럭을 생성하는 장치를 마스터라고 한다.

클럭은 32KHz, 44.1KHz, 48KHz 또는 이들의 배수에 해당하는 값을 사용한다. 이유는 이미 앞에서 설명한 것과 같이 전송되는 데이터가 오디오이므로, 스피커를 통해서 출력하는 속도와 같아야 한다. 32KHz, 44.1KHz, 48KHz는 일반적으로 디지털 오디오 음원에 사용되는 샘플링 레이트이다. CD 음원을 사용하는 경우라면, 음원의 샘플링 레이트가 44.1KHz 이고, 16비트로 구성되며, 왼쪽 스피커/오른쪽 스피커(L/R)신호로 구성이 되므로, 사용되는 클럭은 44.1KHz x 16 비트 x 2 채널= 1.4112MHz이다.

둘째는 오디오가 스테레오의 경우라면, 좌우 채널 선택을 해주어야 한다. 즉, 현재 전송하고자 하는 오디오 신호가 왼쪽 채널인데, 오른쪽 채널인지를 리시버에게 알려주어야 한다. 그래야만 리시버는 자신에게 연결되어 있는 2개의 스피커 중 올바른 쪽으로 소리를 출력할 수 있다. 구체적으로 트랜스미터는 좌우 채널 선택 클럭 신호를 low신호로 바꾸고, 왼쪽 채널 신호를 전송한다. 그 다음 좌우 채널 선택 클럭 신호를 high신호로 바꾸고 오른쪽 채널 신호를 전송한다. 좌우 채널 선택은 일정한 주기로 반복이 된다.

셋째는 오디오 데이터를 전송한다. 오디오 데이터의 길이는 앞에서 살펴 본 비트 깊이(bit depth)에 따라 다르다. 데이터의 길이는 28비트까지 조정이 가능하다. 아래의 그림은 16비트 길이의 경우와 24비트 길이의 경우를 예시하고 있다.

[그림 3] I2S의 데이터 전송 타이밍

  (2) 데이터 프레임

I2S는 오디오 데이터의 전송이 목적이기 때문에 데이터 프레임이란 다름 아닌 오디오 데이터를 담기 위한 포맷이며, 왼쪽과 오른쪽 채널의 구분이 있으나, 데이터의 포맷은 동일하다.

 

 

기술의 구현

  (1) 안드로이드에서의 I2S

    아래는 스마트 폰을 비롯하여 안드로이드가 탑재되는 기기에서 사용되는 I2S 버스 시스템의 일반적인 블록도이다. 전화 통화를 지원하기 위해서 기본적으로 마이크와 스피커가 탑재되어 있고, 마이크는 아날로그 신호를 디지털 신호로 변환하는 작업을 맡고, 스피커는 DAC(Digital Analog Converter)를 통해서 디지털 신호를 아날로그 신호로 변환한다.

 

[그림 4] 안드로이드에서의 I2S 연결

아래의 소스 코드는 안드로이드에서 I2S 통신을 하기 위한 환경 설정 부분이다.

private static final AudioFormat AUDIO_FORMAT_STEREO =
new AudioFormat.Builder()
.setChannelMask(AudioFormat.CHANNEL_IN_STEREO) // 2 channels
.setEncoding(AudioFormat.ENCODING_PCM_16BIT) // 16-bit samples
.setSampleRate(44100) // 44.1kHz
.build();

  (2) TDM

I2S는 두 채널의 오디오 신호, 즉 왼쪽 스피커를 위한 채널과 오른쪽 스피커를 위한 채널를 전송하기 위한 규격이다. 그러나, 현실에서는 훨씬 많은 채널을 전송해야 할 필요가 있다. 서라운드 효과를 위해서 기본적으로 5.1채널이 요구되며, 보다 실감나는 효과를 위해서 7.1 채널도 사용이 된다. 이들은 왼쪽 스피커, 오른쪽 스피커 이외에도 후방의 좌우에 스피커를 각각 배치하며, 전방의 좌우 스피커에 사이에 센터 스피커를 배치한다. 그리고, 서브 우퍼가 연결이 된다. 이렇게 설치되어 있는 모든 스피커들에게 동일한 타이밍으로 오디오 신호를 전송해야만 올바른 소리를 들을 수 있다.

이 문제를 해결하기 위해서 I2S규격과 유사한 방식을 사용하는데, 이러한 방식을 TDM(Time Division Multiplexed)라고 한다. 이름에서도 짐작할 수 있듯이, 하나의 물리 채널을 이용하여 여러 개의 오디오 채널을 전송하기 위해, 각각의 오디오 채널에게 일정한 간격으로 시간을 할당하는 방식이다. I2S도 좌우 채널이 일정한 간격으로 각자의 오디오 신호를 전송하므로, TDM방식이라고 볼 수 있다. 다만, I2S는 단 2개의 오디오 채널만 사용되므로 5.1채널의 6채널보다 시간적으로 여유롭게 물리 채널을 사용할 수 있다.

TDM은 표준규격이 존재하지 않는다. 따라서 제조업체에 따라서 다양한 형태로 구현이 된다. 그러나, 기본적인 동작 방식은 거의 동일하다. I2S와 같이 데이터 전송을 위한 연결 라인, 동기 신호를 보내는 클럭 라인, 그리고, 프레임 동기화 신호를 전송하는 라인으로 구성이 된다.

 

 

  4.  I2S  vs.  다른 인터페이스

 

       I2C/SPI와의 차이: I2C나 SPI는 일반적인 데이터를 주고받는 데 최적화되어 있지만, I2S는 실시간 오디오 스트리밍에 최적화되어 오디오 샘플링 레이트에 맞춘 정밀한 타이밍 제어가 가능합니다.

 

  I2C와 I2S

       연결

        -  I2C는 독자적으로 사용 가능

        -  I2S는 환경 설정을 해 줄 별도의 커넥비티비가 필요하고, 일반적으로 I2C가 그 역할을 담당

        -   따라서, 일반적으로 오디오 데이터를 전송하는 I2S와 일반 데이터를 전송하는 I2C가 쌍을 이루어서 제품에서 사용

 

       마스터 정의

        -  I2C에서는 데이터 전송을 시작할 수 있으면 마스터라고 부르지만,

        -  I2S에서는 클럭을 내보는 역할을 담당하는 기기를 마스터라고 부른다.

        -  I2S에서는 슬레이브라는 개념은 없으며, 데이터를 보내는 트랜스미터(Transmitter)와 데이터를 받는 리시버(receiver)가 있다.

 

       Duflex

        -  I2C는 데이터가 양방향으로 이동할 수 있는 반이중모드가 가능하지만, I2S는 단방향 통신만 가능하다.

 

 

  PCM/TDM

 I2S는 기본적으로 2채널(스테레오)을 지원합니다. 만약 8채널 이상의 다채널 오디오가 필요하다면 I2S를 확장한 TDM(Time Division Multiplexing) 방식을 사용하게 됩니다.

 

 

 

  5.  하드웨어 설계 시 고려사항

 

 

    실제 임베디드 시스템이나 하드웨어를 설계할 때 I2S와 관련하여 자주 언급되는 추가 신호가 있습니다.

 

       MCLK (Master Clock): I2S 표준 자체에는 포함되지 않으나, 오디오 코덱이나 DAC가 내부 연산을 위해 I2S 클록보다 훨씬 빠른(예: 256 x fs) 시스템 클록을 요구할 때 사용됩니다.

       신호 무결성: 고속 디지털 신호이므로 라인 길이가 길어지면 노이즈나 반사가 발생할 수 있어, 보통 수 cm 이내의 짧은 거리에서 연결하거나 적절한 터미네이션 저항을 배치합니다.

 

 

 

    I2S는 오늘날 블루투스 모듈, 오디오 앰프 설계, 하이파이(Hi-Fi) 오디오 시스템 등 디지털 음향이 들어가는 거의 모든 분야에서 표준으로 사용되고 있습니다.

 

 

참고: https://blog.naver.com/ittalentdonation/221194850771

'Project ES > : : Peripheral' 카테고리의 다른 글

ADI - DAI와 NXP - SAI  (0) 2026.05.07
PIO와 Pin Muxing  (0) 2026.03.23
Serial / TTY 서브시스템  (0) 2026.02.20
A2B 오디오 버스: 10년과 3세대의 역사  (1) 2026.02.16
R&D Stories: Automotive Audio Bus 시작하기 (4부)  (0) 2026.02.16