사용자 설명서(User Manual) Voice Over Internet Protocol KIT Version 1.0 REBO Co., Ltd.
목차 1. 제품 소개 1.1 제품 설명 1.2 제품 사양 1.3 제품 구성 1.4 구성도 1.5 H/W 구성 2. 제품 사용법 2.1 전원입력 2.2 Ethernet 설정 2.3 PC Tool 사용법 2.4 음질 설정 및 플러그인 사용법 2.5 다운로드 및 테스트 2.5.1 PC TO Board 2.5.2 Board to Board 3. Ogg Vorbis 3.1 Header Information 3.2 재생 방법 2
1. 제품 소개 1.1 제품설명 저희 보드는 Wiznet사의 W3100A-LF를 이용하여 Ethernet을 구성하고 VS1053b를 사용하여 Analog 음원을 Digital화 시키고 이것을 Ethernet을 통하여 먼 곳 까지 송신하여 손쉽게 테스트 할 수 있도록 제작된 보드 입니다. 추가로 장착된 SD 슬롯을 이용하여 VS1053B의 decode를 이용하여 MP3,Ogg, 등여러음원을재생할수도있습니다. Mp3 player, Internet Radio 가능 1.2 제품 사양 MCU : ATmega128-16AU Codec : VS1053B(VLSI solution) Ethernet : W3100A-LF(WIZNET) physical : RTL8201BL(REALTEK) Debug : RS232(USB to Serial) 1.3 제품구성 Board 1개 USB (A-B)케이블 1개 CD(소스및회로도포함) 1개 아답터 별매(DC 5V, 2A) 3
1.4 구성도 SPI SD Card VS1053B SPI ATmega128 W3100 & RTL8201 1. ATmega128 : Main control 2. VS1053B : Audio encode & decode 3. W3100A : Ethernet 4. RTL8201 : Physical layer 4
1.4 H/W구성 1. ATmega128 : Main Controller 2. VS1053B : Audio Encode & Decode 3. W3100A-LF : Ethernet (TCP or UDP) 4. RTL8201 : Physical Layer 5. SD-Slot : SD-Memory Slot 6. FT232BL : USB to Serial IC 7. USB cable connector 8. Ethernet cable connector 9. SRAM(256K) 10. Power Switch On, Off 11. Audio Jack : Line in, Mic In, Audio Out 12. JTAG Connector : DEBUG & Download 5
사용설명서 2. 제품 사용법 2.1 전원입력 USB를 통한 전원입력, 아답터를 이용한 전원입력. (5V) 2.2 Ethernet 설정 첨부된 파일의 socket.c 파일에 값을 수정 각각의 값은 Src_ip[4] = 실제로 사용될 IP Address Dst_ip[4] = 접속 요청을 보낼 IP Address Mac[6] = mac. address 로 사용됨 Gway[4] = gateway address 설정 사용자의 gateway와 동일하게 설정 smask[4] = subnet mask address 설정 기존설정 유지. 위의 설정 중 Src_ip와 Dst_ip, Mac address는 기존의 address와 겹치지 않도록 주의하여 설정을 하여야 합니다. 연결확인 방법 : 위 설정이 정확하다면 보드다운로드 후 케이블을 연결하시고 소켓에 불이 들어온 것을 확인한 후 윈도우 실행 창을 띄우시고 cmd 라고 입력을 합니다. 실행창에서 ping xxx.xxx.xxx.xxx 입력하신 IP address를 치시면 TTL = 64ms 이런 문구가 나오게 됩니다. 이러면 Ethernet은 정상연결 이된것입니다. Ping 테스트시 소켓의 주황불이 깜빡거리니 확인 하시기 바랍니다. 데이터 전송 시 or Ping 테스트 시 깜빡임 케이블 연결 시 녹색불 점등 6
2.3 PC Tool 사용법 1. IP Address & PORT 보드에 입력한 IP Address를 입력, PORT도 보드 에 부여한 PORT와 동일하게 입력 2. Connect 버튼을 누르면 연결과 동시에 3번의 연결부분이 녹색불이 활 성화. 실패시 접속실패 메시지 발생 3. Connect의 유무를 알 수 있도록 녹색불 켜짐 4. Audio Data packet을 보내는 타이밍 5. Audio Data Packet의 크기(최대 512Byte) 6. 버튼을누르면보내고자하는음원을선택할수있음 7. 현재 보내려고 하는 있는 음원의 종류와 이름 8. Play 버튼을 누르면 7번에 있는 음원이 TCP를 통하여 전송된다. 9. 연결 종료와 함께 프로그램 종료 7
2.3 음질 설정 및 플러그인사용법 VS105B는 ADPCM방식과 16bit PCM 그리고 Ogg Vorbis 방식의 encode 가 가능합니다. ADPCM은 PCM데이터를 압축하여 보내며 원본의 약 4배가량이 압축됩니다. OGG Vorbis는 PCM 데이터를 압축하며 원본의 약 10배가량이 압축됩니다. 음원 송신시 압축하여 전송하면 MCU가 다른 동작을 할 시간적 여유가 생기기 때문에 저희 제품은 Ogg Vorbis를 이용합니다. VS1053B는 기본적으로 ADPCM 방식은 지원하나 Ogg Vorbis를 사용할 시 는 소프트웨어 플러그인을 사용하여야 합니다. 예) venc44k1q05.plg 플러그인은 첨부된 소스폴더내의 Plug_in 폴더로서 그 안의 파일들은 각각 Ogg Vorbis의 sample rate와 mono, stereo를 설정하여 encode 할 수 있도 록 정하여 주는 것 입니다. ATmega128로서는 Hi-Fi Voice까지 재생이 가능하 며 이 후 Stereo는 재생시 음이 끊기는 현상이 있습니다. (MCU 속도문제) 장비 테스트시 44.1kH의 mono로 encode하더라도 stereo와 큰 음질차 이는 없습니다. Ogg Vorbis는 손실압축을 사용하며 가변 비트레이트 VBR을 이용하기 때문에 정확한 비트레이트는 정해져 있지 않으나 첨부된 데이터 시 트를 보시면 플러그인의 기능을 알 수 있습니다. 첨부된 소스의 vs1053b.c 파일의 include부분에서 원하는 플러그인을 include 시켜줍니다. Vs1053b.c파일의 VS1053_Recording_Init() 함수 안에서 LoadUserCode() 함 수를 호출하여 플러그인을 불러 옵니다. 불러오는 위치는 첨부된 데이터 시트 내에 있습니다. http://www.vlsi.fi/ (VLSI solution)에 가시면 1053에 관한 각종 플러그인 PATH등이 자세히 나와있습니다. 예전버전의 플러그인을 사용시 음질에 차이 가 있을 수 있으니 유의 하십시오. 소스 포함 플러그인 버전(Encoder v1.50)입 니다. 8
2.4 다운로드 및 테스트 첨부된 소스는 Codevision으로 짜여진 소스이며 다른 툴 사용시 거기에 맞도 록 수정을 하셔야 됩니다. 기본적으로 저희 보드는 JTAG 다운로드를 이용합니 다. JTAG Mode check! JTAG은 별도로 구매를 하셔야 됩니다. <AVR Studio 실행화면> 다운로드 툴로는 AVR studio를 사용합니다. 사용자 기호에 따라 AVR studio로 개발하시고 다운로드 하셔도 무방합니다. 기본적으로 제공되는 소스는 Server와 Client로 나누어 서로간에 통신을 하여 Client에서 접속요청이 오면 Server에서 데이터를 전송하기 시작합니다. 확인 연결이 됐다면 보드출력으로 소리를 들으실 수가 있습니다. 커넥터 소켓부분의 주황불이 깜빡 거리며 데이터의 이동을 보실 수 있습니다. 커넥터의 소켓부분 주황불이 깜빡 거리나 소리가 나지 않는다면 해더 정보를 다 못 받았을 수 있으니 서버로 재접속을 하시기 바랍니다. 9
2.4 다운로드 및 테스트 다운로드 하고자 하는 Hex 파일을 선택하여 Program 버튼을 클릭. 제일 아래쪽 메시지가 뜨고 Leaving programming mode.. OK 가 뜨면 완료. 10
사용설명서 2.5.1 PC TO Board IP ADDR에 IP주소 입력 후 포트설정을 해주고 CONNECT 버튼을 누름 데이터 패킷을 보낼 타이밍을 정해주고 패킷 크기를 정해줌 SEARCH 버튼을 눌러 전송하고자 하는 파일을 선택 PLAY 버튼으로 음원 송신 아날로그 디지털 Speaker & Earphone Decode TCP or UDP 11
2.5.1 Board to Board Board to Board 에서는Analog 입력을 Line in 과 Mic. 2가지로 줄 수 있습니다. 선택 방법은 연결 잭 옆 부분의 점퍼를 연결을 이용하여 사용합니다. Line in Mic Encode SPI TCP/UDP <Server> Speaker & Earphone SPI Decode TCP/UDP <Client> 12
3.1 Header Information 빨강 (4 byte) : Magic Code OggS 항상 오게 됨 ( 4F 67 67 53 Hex type) 주황 (1 byte) : 버전 정보가 들어있다. (기본 0) 노랑 (1 byte) : 3가지 헤더 타입 중 스트림의 시작을 알리는 타입 연두 (8 byte) : Granule position 파랑 (4 byte) : 얼마의 sample rate를 사용하였는지 표시 보라 (4 byte) : Ogg 헤더 패킷의 번호 검정 (4 byte) : Checksum 회색 (1 byte) : 헤더가 가지고 있는 데이터의 양 13
3.2 재생 방법 Ogg 헤더는 OggS 와 다음 OggS의 사이까지 해당됩니다. 노란색의 헤더타입에 따라 그 다음 Ogg 헤더의 유무를 판별합니다. 기본적으로 Ogg 디코딩 시 OggS와 OggS사이의 데이터를 디코딩 하게 됩니다. 그 다음 나오는 Vorbis는 노래의 정보 를 저장하고 흔히 Vorbis comment라고 표현합니다. Comment에는 노래의 Title, Artist, Album,Tracknumber등 여러 정보를 담게 됩니다. Comment이후에 실제 디 지털화된 음원이 들어가게 되고 이것의 양 또한 정해줄 수 있습니다. 하지만 VS1053B에서 제공해주는 Ogg 헤더는 조금 다른 형태를 취하고 있습니다. 보시는 바와 같이 OggS와 Vorbis는 동일하나 이후 VS1053B의 정보가 나오는 것을 보실 수 있습니다. 이후 스트림 형식으로 데이터가 나오게 되며 이것을 전송하 여 음원을 내보내게 되는 것 입니다. VS1053B에서도 마찬가지로 OggS와 그 다음 OggS의 사이 디지털화된 데이터를 토 데로 음원을 추출해 냅니다. VS1053B의 SCI_AICTRL3 (첨부 데이터시트 참조) 레지스 터의 4 ~ 7번 비트의 값에 따라 OggS 사이의 데이터를 조절 할 수 있습니다. 위에 설 명 드린 데로 2개의 OggS가 들어와야 디코딩이 시작되기 때문에 너무 많은 값을 넣게 되면 시간지연이 생기게 됩니다. 보통 아날로그 음원이 들어가 VS1053을 거쳐 TCP방식을 통해 반대편보드에서 디코 딩되서 나오는데 까지 약 500ms정도가 소모되며 UDP 방식을 사용했을시 약 250ms 정도가 차이가 납니다. 하지만 UDP는 매우 근거리가 아닐 시 전송 시 데이터 손실이 생 길 수 있으므로 가급적 사용을 자제 하시기 바랍니다. 최초 Ogg 인코딩시 코덱칩 자체 내에서 Head를 생성해 주는데 이것이 제대로 전달 되지 못하면 뒤쪽에 올바른 OggS 해더 정보가 넘어가더라도 음이 나오지 않으니 펌웨 어 제작 시 유의 하시기 바랍니다. 14