한국어
Embedded
 

통신 블루투스(Bluetooth) 기초

makersweb 2019.08.02 20:14 조회 수 : 5668

블루투스(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 라즈베리파이3와 PC간 Serial 통신 테스트 [1] file makersweb 2019.05.20 6981
32 yocto의 몇가지 중요한 용어 및 개념 makersweb 2019.06.21 4559
31 libopencm3 활용, Cortex-M 펌웨어 개발 makersweb 2019.07.14 1667
30 STM32(Cortex-M3) 개발 - Firmware Flashing file makersweb 2019.07.23 3658
29 STM32(Cortex-M3) 개발환경구축 with PlatformIO file makersweb 2019.07.26 4460
» 블루투스(Bluetooth) 기초 file makersweb 2019.08.02 5668
27 STM32(Cortex-M3) LED Blink with PlatformIO file makersweb 2019.08.05 2564
26 STM32 & LibOpenCM3, printf함수사용 file makersweb 2019.08.08 3562
25 Yocto를 이용한 wandboard BSP 및 Qt5 SDK 빌드 file makersweb 2019.09.29 3217
24 mainline 커널 및 etnaviv 를 사용하는 Wandboard(Freescale i.MX6Q)에서 eglfs를 사용 makersweb 2019.10.17 1465
23 임베디드 리눅스 부팅 절차 file makersweb 2019.10.21 7266
22 ESP-IDF 의 A2DP리뷰 (ESP32) file makersweb 2019.10.28 10138
21 ESP32 블루투스 스피커(A2DP Sink) file makersweb 2019.10.29 4212
20 HelloWorld 커널 모듈과 yocto 레시피 추가 방법 file makersweb 2019.12.09 6256
19 임베디드 시스템에서 베어메탈(Bare metal) 이란? makersweb 2019.12.11 4143
18 임베디드 비대칭 멀티 프로세싱(asymmetric multiprocessing) 시스템 file makersweb 2019.12.31 1455
17 RISC-V : 자유롭고 개방 된 RISC 명령어 세트 아키텍처 [2] file makersweb 2020.01.01 1982
16 디바이스 트리(Device Tree, DT) makersweb 2020.01.12 6875
15 플랫폼 디바이스 및 드라이버에 대해서 makersweb 2020.02.01 7715
14 라즈베리파이 부팅 가능한 sd카드 파티션 생성 makersweb 2020.04.15 2650