한국어
Embedded
 

MCU ESP-IDF 의 A2DP리뷰 (ESP32)

makersweb 2019.10.28 23:48 조회 수 : 13535

Espressif IoT Development Framework(이하 ESP-IDF) 의 Bluetooth (Classic BT + BLE)호스트 스택으로 Bluedroid 가 사용된다.(BLE 전용으론 Apache NimBLE 이 있다.) 이 Bluetooth 스택은 안드로이드 Bluedroid 에서 시작되었고 완전한 기능 세트를 가지고 있으며 ESP의 임베디드 응용프로그램에 맞게 커스터마이징 되었다. 

 

architecture.png

▲ESP-IDP의 Bluetooth 호스트 및 컨트롤러 아키텍처 (ESP32 Bluetooth Architecture)

 

ESP-IDF 의 Bluetooth 스택 하위 계층에서 Bluetooth 호스트 스택은 가상 HCI 인터페이스를 통해 Bluetooth 듀얼 모드 컨트롤러와 통신한다. 상위 계층에서 Bluetooth 호스트 스택은 스택 관리를 위한 프로파일 및 API를 사용자 애플리케이션에 제공한다.

 

다음은 현재 호스트 스택에서 지원되는 Classic BT 프로필 및 프로토콜이다.

• Profiles: GAP, A2DP(SNK), AVRCP(CT)

• Protocols: L2CAP, SDP, AVDTP, AVCTP 

 

A2DP (Advanced Audio Distribution Profile)는 GAP 및 GAVDP (Generic Audio / Video Distribution Profile)에 의존하며 모노 또는 스테레오로 고품질 오디오 컨텐츠의 분배를 실현하는 프로토콜 및 절차를 정의한다.

종종 오디오/비디오 제어 기능이 포함 된 AVRCP (Audio / Video Remote Control Profile)와 함께 사용된다.

 

A2DP에는 소스(SRC)와 싱크(SNK)의 두 가지 역할이 정의되어있다. SRC는 디지털 오디오 스트림의 소스로 동작하고 SNK는 SRC에서 전달 된 디지털 오디오 스트림의 싱크로 동작한다.

 

현재 ESP-IDF 의 Bluedroid 스택 A2DP 프로파일에서 지원되는 기본 오디오 코덱은 SBC이다. 이 코덱은 A2DP 프로파일을 지원하는 모든 기기에서 의무적(?)으로 사용된다. (블루투스의 오디오 인코더 및 디코더의 참조 구현이고 결정적으로 무료이다.) ESP-IDF에서 A2DP 버전 1.2 및 AVDTP 버전 1.2가 구현되었다.

 

A2DP의 기본 전송 프로토콜 인 AVDTP는 L2CAP 계층을 기반으로 하며 AVDTP (Audio / Video Distribution Transport Protocol)는 스트리밍 위한 오디오 및 비디오를 위한 이진 트랜잭션을 정의한다.

 

소스코드 위치: https://github.com/espressif/esp-idf/tree/master/components/bt/host

번호 제목 글쓴이 날짜 조회 수
35 임베디드 시스템에서 베어메탈(Bare metal) 이란? makersweb 2019.12.11 8918
34 HelloWorld 커널 모듈과 yocto 레시피 추가 방법 file makersweb 2019.12.09 10837
33 ESP32 블루투스 스피커(A2DP Sink) file makersweb 2019.10.29 6945
» ESP-IDF 의 A2DP리뷰 (ESP32) file makersweb 2019.10.28 13535
31 임베디드 리눅스 부팅 절차 file makersweb 2019.10.21 11096
30 mainline 커널 및 etnaviv 를 사용하는 Wandboard(Freescale i.MX6Q)에서 eglfs를 사용 makersweb 2019.10.17 5425
29 Yocto를 이용한 wandboard BSP 및 Qt5 SDK 빌드 file makersweb 2019.09.29 6046
28 STM32 & LibOpenCM3, printf함수사용 file makersweb 2019.08.08 5868
27 STM32(Cortex-M3) LED Blink with PlatformIO file makersweb 2019.08.05 5726
26 블루투스(Bluetooth) 기초 file makersweb 2019.08.02 9244
25 STM32(Cortex-M3) 개발환경구축 with PlatformIO file makersweb 2019.07.26 7125
24 STM32(Cortex-M3) 개발 - Firmware Flashing file makersweb 2019.07.23 6352
23 libopencm3 활용, Cortex-M 펌웨어 개발 makersweb 2019.07.14 5636
22 yocto의 몇가지 중요한 용어 및 개념 makersweb 2019.06.21 7731
21 라즈베리파이3와 PC간 Serial 통신 테스트 [1] file makersweb 2019.05.20 9776
20 욕토 프로젝트를 이용한 Qt SDK 빌드 for 라즈베리파이3 file makersweb 2019.03.19 6137
19 yocto project, 라즈베리파이를 위한 Qt + 임베디드리눅스 빌드 file makersweb 2019.02.01 14868
18 STM32(Cortex-M3) 개발환경구축 with Eclipse file makersweb 2018.11.08 6914
17 ST, STM32 MCU용 ‘통합 개발 환경(IDE)’ 무료 제공 makersweb 2015.03.04 13298
16 USB OTG 기술의 개념 file pjk 2014.11.03 20109
 
단일배너