(1) I2S란?
:
위키에 보면 I2S는 Integrated Interchip Sound 의 약어라고 한다.
즉, 디지털 오디오 장치에 표준 통신법. ( I2SBUS.pdf)



위의 그림과 같이 기본적으로는 3개의 line이 연결.
[ serial clock(이하 SCK), word select(이하 WS), serial data(이하 SD)]

○ Tansmitter - CPU
○ Receiver - Sound IC(sound codec)


(2) I2S Interface



● SCK
 : bit clock으로 'SD'로부터 나오는 데이터를 SCK의 Clock 기준으로 잘라 SD값을 읽어간다.
   1 bit값(0 or 1)을 읽을 수 있는데, 연속적으로 읽게되면 음악이 된다. (bit clock)
   대부분의 칩간의 통신이 이러한 기준 clock을 가지고 data를 읽어오곤 한다.

● WS
 : 스테레오의 'left / right 정보로 스피커에서 서로 다른 소리가 날 수 있도록 한다.

   예를 들면, 'WS'가 low일 경우 left용 data를 읽고, high일 경우 right용 data를 읽는다.

● SD
 : sound data가 되고, PCM Data.

● MASTER CLOCK
 : sound IC는 스스로 clock을 만들 수 없기 때문에 master clock을 받게 된다.
이 clock을 기준으로 sound IC는 나누고 곱하는 등 작업을 내부적으로 동작하며 'SCK'나 'WS'를 발생한다.

● UPDA
 : 마이크와 같은 입력장치가 sound IC에 물려 있게 된다면 마이크의 음성 신호를 디지털 데이터로 전환 후
   CPU에 올려줘야 하기 때문에 'SD'와 같은 용도의 upload용 data line으로 bit들이 전송된다.

● I2C
 :추가적으로 sound IC를 제어하기 위해 I2C로 연결되어 있어야 한다.
  I2S는 sound data를 전송하기 위한 표준이고, 실제 sound IC를 제어하려면 제어용 통신이 별도로 필요하기 때문이다.
  SPI통신이나 I2C, serial통신등이 존재하지만 대부분 sound IC는 I2C 통신을 하고 있다.

 위와 같이 I2S라인 5개와 I2C라인 2개가 연결 되야 sound IC를 제어 할 수 있다.


(3) SD DATA
: wave file format은 크게 "RIFF"부분, "fmt"부분, "data"부분으로 나뉘는데, wave file의 정보를 담는 "RIFF"와 "fmt"를 합쳐도 36Byte 이다.
  그리고 나머지는 모두 "data"로 PCM변조하여 analog음원을 digital화 하면서 얻게되는 sample들을 나열한 형태이다.
  이 sample들이 "data"에 담긴 정보인 PCM data 이다.

- 연속적인 data가 'SD'라인을 통해서 sound IC에 전달 되고, sound IC는 PCM data를 아날로그화 하여 스피커로 출력된다.


(4) 정리

첫번째, sound IC가 master인지 slave인지 정하고, sound IC를 initailize(I2S, I2C정보 셋팅)합니다.

두번째, CPU에서 음원(wave file, mp3 file등)을 분석해서 sampling rate, bit per sample, channel수를 알아챕니다.

세번째, I2C를 통해 sound IC에게 sampling rate, bit per sample, channel수 등의 정보를 알려줍니다.

네번째, 'SCK', 'WS'가 해당 음원에 맞게 셋팅 됩니다.

다섯번째, 'SD'에 PCM data를 넣어줍니다.

여섯번째, 음악이 스피커나 이어폰을 통해 재생됩니다.




※ 출처 : http://musart.tistory.com/75

'T heory > Comn Basics' 카테고리의 다른 글

GPIO(General Purpose I/O) (2)  (0) 2011.10.17
SPI(Serial Peripheral Interface Bus)  (2) 2011.10.17
직렬통신(Serial Communications)  (0) 2011.10.17
GPIO(General Purpose I/O) (1)  (0) 2011.10.11
VAD 와 CNG  (0) 2011.10.07
by 민트앤라떼 2011. 10. 17. 15:16