한국어
Embedded
 

MCU ESP-IDF 의 A2DP리뷰 (ESP32)

makersweb 2019.10.28 23:48 조회 수 : 9490

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

번호 제목 글쓴이 날짜 조회 수
51 Raspberry Pi에서 I²C 그리고 Bit-bang (비트뱅) makersweb 2023.08.27 366
50 Yocto 프로젝트 3.4 릴리스(honister) 이상 버전으로 마이그레이션 시 참고 사항 makersweb 2023.03.21 628
49 Raspberry Pi 와 ATtiny85 간 I²C 통신 file makersweb 2023.03.18 342
48 로직분석기와 함께 PulseView 를 사용해서 CAN 신호 캡쳐 file makersweb 2023.03.16 421
47 임베디드 개발자를 위한 Hex,Bin,Dec 변환기 유틸 file makersweb 2023.02.27 1034
46 ATtiny85 개발보드(HW-260) file makersweb 2023.01.02 362
45 플랫폼 디바이스 및 디바이스 트리 makersweb 2021.03.20 3736
44 Android 기기를 사용하여 Raspberry Pi SD 카드 작성 방법 file makersweb 2020.08.01 900
43 Raspberry Pi 의 프레임버퍼(Framebuffer)구성 makersweb 2020.05.15 1715
42 라즈베리파이2에서 RTOS기반 GPIO제어(LED) file makersweb 2020.04.21 1537
41 POSIX를 지원하는 오픈소스 RTOS, RTEMS file makersweb 2020.04.15 1604
40 라즈베리파이 부팅 가능한 sd카드 파티션 생성 makersweb 2020.04.15 1614
39 플랫폼 디바이스 및 드라이버에 대해서 makersweb 2020.02.01 6053
38 디바이스 트리(Device Tree, DT) makersweb 2020.01.12 5347
37 RISC-V : 자유롭고 개방 된 RISC 명령어 세트 아키텍처 [2] file makersweb 2020.01.01 920
36 임베디드 비대칭 멀티 프로세싱(asymmetric multiprocessing) 시스템 file makersweb 2019.12.31 878
35 임베디드 시스템에서 베어메탈(Bare metal) 이란? makersweb 2019.12.11 3261
34 HelloWorld 커널 모듈과 yocto 레시피 추가 방법 file makersweb 2019.12.09 5547
33 ESP32 블루투스 스피커(A2DP Sink) file makersweb 2019.10.29 3456
» ESP-IDF 의 A2DP리뷰 (ESP32) file makersweb 2019.10.28 9490