한국어
Embedded
 

통신 블루투스(Bluetooth) 기초

makersweb 2019.08.02 20:14 조회 수 : 5660

블루투스(Bluetooth) 라고하면 Bluetooth Classic (BLE이전까지 공통적으로 사용되어 잘 알려진 무선 표준)과 Bluetooth BLE(Bluetooth Low Energy, 4.0에서 도입된 저전력 블루투스 표준)를 모두 포함한다.

 
이 두 가지 무선 통신 표준은 서로 호환되지 않는다. 즉, 4.0 이전 사양 버전(클래식)에서 개발된 블루투스 장치는 BLE 장치와 직접적으로 통신할 순 없다. 하지만 두 표준을 결합한 장치라면 제약을 어느정도 극복할 수 있다.
 
두가지 스펙에 대해서 정리해보면 Bluetooth 사양은 다음과 같이 두 가지 무선 기술로 나뉜다.
  • BR/EDR (Bluetooth Classic)
1.0부터 블루투스 사양으로 발전한 무선 표준.
  • BLE (Bluetooth Low Energy)
규격 버전 4.0과 함께 도입된 저전력 무선 표준.
 
다음은 이러한 구성과 함께 사용되는 두 가지 장치 유형이다.
  • Single-mode (BLE, Bluetooth Smart) device
BLE를 구현하는 장치로 싱글모드 및 듀얼모드 장치와 통신 할 수 있지만 BR/EDR 만 지원하는 장치와는 통신 할 수 없다.
  • Dual-mode (BR/EDR/LE, Bluetooth Smart Ready) device
모든 Bluetooth 장치와 통신 할 수있는 BR/EDR 및 BLE을 모두 구현하는 장치.
 
아래 그림은 이러한 장치간 서로 통신할 수 있도록 하는 프로토콜 스택과 블루투스 버전간의 통신 가능성을 보여준다.

bt_devicespng.png

 

모든 Bluetooth 장치의 세 가지 주요 구성 요소를 간략히 설명하면 다음과 같다.
  • Application
사용자 애플리케이션은 특정 사용 사례를 다루기 위해 Bluetooth 프로토콜 스택과 인터페이스한다.
  • Host
Bluetooth 프로토콜 스택의 상위 계층.
  • Controller
물리계층을 포함한 Bluetooth 프로토콜 스택의 하위 계층
 
표준 규격은 호스트와 컨트롤러 간의 표준 통신 프로토콜인 HCI(호스트 컨트롤러 인터페이스)를 제공하여 서로 다른 회사에서 생산되는 컨트롤러와 호스트 간의 상호 운용성을 허용한다.
 
이러한 계층은 단일 집적회로(IC)나 칩에서 구현하거나, 통신 계층(UART, USB, SPI 또는 기타)을 통해 연결된 여러 IC에서 분할할 수 있다.
 
다음은 현재 상용 제품에서 가장 흔히 볼 수 있는 세 가지 구성이다.

 

Single-Chip.png

싱글칩에서 애플리케이션, 호스트 및 컨트롤러를 실행한다.

 

dual-chip_0.png

듀얼칩으로 구성되어 한 IC는 애플리케이션과 호스트를 실행하고 컨트롤러를 실행하는 두 번째 IC와 HCI를 통해 통신한다. 이런 설계의 장점은 HCI가 Bluetooth 사양에 의해 정의되기 때문에 제조업체에 관계없이 모든 호스트를 어떤 컨트롤러와도 결합할 수 있다는 것이다.

 

dual-chip.png

운영체제가 있는 시스템에서 많은 프로파일을 구현한 패키지를 이용하여 애플리케이션을 실행하고 HCI로 두 번째 IC와 프로토콜을 사용하여 통신한다.

 

단순 센서같은경우 비용과 회로의 복잡성을 낮추기 위해 SoC 구성을 사용하는 경향이 있는 반면, 스마트폰과 태블릿같은 장치는 전체 프로토콜 스택을 실행할 수 있는 강력한 CPU를 이미 가지고 있기 때문에 일반적으로 단일 Soc보다 듀얼 IC 구성을 선택한다. 

번호 제목 글쓴이 날짜 조회 수
33 ESP32 블루투스 스피커(A2DP Sink) file makersweb 2019.10.29 4208
32 ESP-IDF 의 A2DP리뷰 (ESP32) file makersweb 2019.10.28 10132
31 임베디드 리눅스 부팅 절차 file makersweb 2019.10.21 7262
30 mainline 커널 및 etnaviv 를 사용하는 Wandboard(Freescale i.MX6Q)에서 eglfs를 사용 makersweb 2019.10.17 1460
29 Yocto를 이용한 wandboard BSP 및 Qt5 SDK 빌드 file makersweb 2019.09.29 3217
28 STM32 & LibOpenCM3, printf함수사용 file makersweb 2019.08.08 3562
27 STM32(Cortex-M3) LED Blink with PlatformIO file makersweb 2019.08.05 2564
» 블루투스(Bluetooth) 기초 file makersweb 2019.08.02 5660
25 STM32(Cortex-M3) 개발환경구축 with PlatformIO file makersweb 2019.07.26 4460
24 STM32(Cortex-M3) 개발 - Firmware Flashing file makersweb 2019.07.23 3657
23 libopencm3 활용, Cortex-M 펌웨어 개발 makersweb 2019.07.14 1666
22 yocto의 몇가지 중요한 용어 및 개념 makersweb 2019.06.21 4557
21 라즈베리파이3와 PC간 Serial 통신 테스트 [1] file makersweb 2019.05.20 6979
20 욕토 프로젝트를 이용한 Qt SDK 빌드 for 라즈베리파이3 file makersweb 2019.03.19 3579
19 yocto project, 라즈베리파이를 위한 Qt + 임베디드리눅스 빌드 file makersweb 2019.02.01 11736
18 STM32(Cortex-M3) 개발환경구축 with Eclipse file makersweb 2018.11.08 4145
17 STM32와 CAN(Controller Area Network) Loop Back file makersweb 2017.01.23 6034
16 윈도우10에서 Prolific USB to Serial 드라이버 인식문제 file makersweb 2016.01.24 23413
15 AVRISP mkII 펌웨어 업그레이드 file makersweb 2015.07.22 7509
14 이클립스에서 IAR프로젝트 사용방법 file makersweb 2015.07.09 9253