Espressif IoT Development Framework(이하 ESP-IDF) 의 Bluetooth (Classic BT + BLE)호스트 스택으로 Bluedroid 가 사용된다.(BLE 전용으론 Apache NimBLE 이 있다.) 이 Bluetooth 스택은 안드로이드 Bluedroid 에서 시작되었고 완전한 기능 세트를 가지고 있으며 ESP의 임베디드 응용프로그램에 맞게 커스터마이징 되었다.
▲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
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
13 |
STM32와 CAN(Controller Area Network) Loop Back
![]() | makersweb | 2017.01.23 | 6740 |
12 |
윈도우10에서 Prolific USB to Serial 드라이버 인식문제
![]() | makersweb | 2016.01.24 | 24551 |
11 |
AVRISP mkII 펌웨어 업그레이드
![]() | makersweb | 2015.07.22 | 8300 |
10 |
이클립스에서 IAR프로젝트 사용방법
![]() | makersweb | 2015.07.09 | 10231 |
9 |
JFlashARM으로 MCU에 bin(바이너리)다운로드
![]() | makersweb | 2015.06.07 | 5596 |
8 |
AVR(AT90USB162)을 USB to Serial 로 이용하기
![]() | makersweb | 2015.02.14 | 5962 |
7 | 실시간 운영 체제 또는 RTOS(Real Time Operating System) | pjk | 2014.12.02 | 7201 |
6 |
폴링(Polling), 인터럽트(Interrupt), DMA(Direct Memory Access)
![]() | pjk | 2014.10.24 | 7488 |
5 |
부트로더의 start.S 분석
![]() | makersweb | 2014.03.23 | 5001 |
4 | 임베디드 시스템 개발 환경 선택 | makersweb | 2014.03.05 | 4819 |
3 |
GNU C 레퍼런스 메뉴얼 - 부록 D
![]() | makersweb | 2014.02.28 | 5 |
2 | printk() | makersweb | 2014.02.27 | 6176 |
1 | [Uboot 명령어 및 환경 변수 요약]U-Boot에 Command 및 Parameter에 대한 설명 | pjk | 2014.01.09 | 12283 |