참고자료: https://www.bluetooth.com/specifications/specs/core-specification-5-3/
블루투스 아키텍처 그림은 "Bluetooth Controller 조합" 참고
1. 블루투스 코어 시스템 아키텍처(Bluetooth core system architecture) - 데이터 처리 구조 관점
1-1. 블루투스 코어 시스템 아키텍처 설명
Host | Application | 블루투스 프로파일과 프로토콜을 사용하는 어플리케이션 - User의 입력/출력을 처리 |
Profile | 어플리케이션의 상호 운용성(interoperability)을 유지하면서, 특정 장치의 기능을 하기 위한 프로토콜 모음 - HFP: 핸즈프리 같은 전화통화 관련 프로파일 - A2DP: 음악 관련 프로파일 - HID: 무선 마우스, 무선 키보드 관련 프로파일 - SPP: 시리얼포트 관련 프로파일 - 그외 다수 프로파일 존재 |
|
GAP (Generic Access Profile) |
블루투스 장치의 기본적인 요구사항을 정의 - 블루투스 디바이스 Discovery - 블루투스 디바이스 Connection - 다른 Security Level을 사용하는 과정 정의 - User interface에서 사용 가능한 파라미터 포맷 정의 |
|
SDP (Service Discovery Protocol) |
디바이스가 지원하는 서비스와 사용(연결) 가능한 서비스를 알려준다. | |
L2CAP (Logical Link Control and Adaptation protocol) |
어플리케이션 데이터를, 동기(SCO) 비동기(ACL) 등등 데이터 종류에 따라 분류하고 Segmentation/Reassembly를 한다. - Protocol Multiplexer - Baseband Logical Link에 따라 CID(Channel Identifier)가 부여 - CID(Channel Identifier)를 사용하여, 각 Logical Channel을 구분 |
|
HCI(Host Controller Interface) | Host와 Controller의 통신을 위한 interface - UART, USB, SD 등이 있다 |
|
Controller | Link Manger | 장치 간의 암호화, logical links 및 관련 logical transports의 생성, 수정 및 해제를 한다. Logical link creation/modification/release Authentication, Pairing, Link Key change Role switch Bluetooth Device Name Encryption enabling/disabling Transmit power adapting QoS setting adjustment Test mode |
Baseband (Link Controller) |
주로 블루투스 패킷의 인코딩/디코딩과 전송 관련 작업이 많다. Bluetooth Device Address (BD_ADDR) FHS(Frequency hopping sequence) Link Supervision Timeout(LSTO) Packet encoding/decoding Flow controll, acknowledgment, retransmission Active mode, Sniff mode, Sniff subrating mode, Hold mode State(Standby, Connection, Page/Page Scan, Inquiry/Inquiry Scan) Class of Device |
|
Radio | RF interface를 통해, 블루투스 패킷을 송수신 BR/EDR radio, LE radio |
2. 블루투스 데이터 전송 아키텍처(Bluetooth data transport architecture) - 데이터 처리 흐름 관점
2-1. 블루투스 데이터 전송 아키텍처 설명
* 자세한 블루투스 데이터 전송 아키텍처 관련 내용은 "Bluetooth Data Transport Architecture" 참고.
계층(Layer) | 설명 |
L2CAP Channels | 다양한 애플리케이션 및 서비스 프로토콜이 ACL-U, APB-U 또는 LE-U와 같은 공유 Logical Link를 통해 데이터를 다중화하여 전송할 수 있도록 한다. 즉, 여러 상위 계층 프로토콜이나 애플리케이션이 동시에 동일한 Logical Link를 사용할 수 있게 해주는 역할을 한다. L2CAP Channels 식별자 CID: 각 L2CAP 채널 엔드포인트는 L2CAP에 의해 할당되는 채널 식별자(Channel Identifier, CID)로 식별된다. 어떤 장치에서든 각 L2CAP 채널 엔드포인트는 고유한 CID를 가진다. 다중화 및 역다중화 L2CAP의 주요 역할은 채널 클라이언트로부터 받은 서비스 데이터 유닛(SDU)을 ACL-U, APB-U, 또는 LE-U Logical Link에 다중화하고, 수신 측에서는 이를 역다중화하여 해당 채널 클라이언트에 전달한다. 단편화 및 재조합 애플리케이션 데이터 유닛(SDU)은 L2CAP PDU로 분할(segmentation)되고, L2CAP PDU는 기본 Baseband 패킷보다 클 경우 여러 조각(fragmentation)으로 나뉘어 전송한다. 수신 측에서는 이를 재조합(recombination)하고 재조립(reassembly)한다. Logical Link ID(LLID) 필드는 이러한 단편화된 메시지의 시작(0b10)과 연속(0b01)을 구분하는 데 사용된다. 채널 유형 - Connection-oriented (연결 지향) - Connectionless (연결 없는) - Fixed Channels (고정 채널) |
Logical Links (논리적 링크) |
두 장치 이상 간에 독립적인 데이터 전송 서비스를 제공하는 데 사용되는 가장 낮은 아키텍처 계층. 전송되는 데이터 유형을 나타내는 접미사(C: 제어, U: 사용자, S: 스트림)를 붙인다. Logical Links 식별자 데이터 페이로드를 전달하는 기본 대역(Baseband) 패킷의 페이로드 헤더에 있는 Logical Link ID(LLID) 비트에 의해 식별되고, SCO/eSCO 링크에는 LLID가 없다. LC Logical Link는 패킷 헤더에 매핑되는 반면, 다른 Logical Link는 패킷 페이로드에 포함된다. SCO-S 및 eSCO-S 링크는 LLID가 없으므로, Logical Transport 식별자인 Logical Transport 주소(LT_ADDR)로 식별된다. BR/EDR Logical Links 종류 - LC (링크 제어) - ACL-C 및 APB-C (ACL 제어) - ACL-U 및 APB-U (사용자 비동기/등시간) - SCO-S (사용자 동기 데이터) - eSCO-S (사용자 확장 동기 데이터) - PBD (프로필 방송 데이터) LE Logical Links 종류 - LE-C (LE 제어): - LE-U (LE 사용자) - ADVB-C (광고 방송 제어) - ADVB-U (광고 방송 사용자 데이터) - LE-S (저에너지 스트림) - LE-F (저에너지 프레임) - LEB-C (저에너지 방송 제어) |
Logical Transports (논리적 전송) |
Logical Transports에서 변경 가능한 속성 - 플로우 제어(flow control) - 확인 응답/재전송 메커니즘(acknowledgment/repeat mechanisms) - 순서 번호 지정(sequence numbering) - 스케줄링 동작(scheduling behavior) Logical Transports 에서 속성 제어 프로토콜 - BR/EDR: Link Manager (LMP) 프로토콜 - LE: Link Layer (LL) 프로토콜 Logical Transports 식별자 - BR/EDR: 대부분의 BR/EDR 논리적 전송은 패킷 헤더에 포함된 논리적 전송 주소(LT_ADDR)로 식별된다. Central은 Peripheral에게 LT_ADDR을 할당한다. SCO 및 eSCO와 같은 일부 논리적 전송은 기본 ACL의 LT_ADDR을 재사용하기도 하지만, 패킷 유형이나 예약된 슬롯 정보를 통해 구분된다. - LE: LE Active Physical Links와 관련된 LE ACL 논리적 전송은 해당 Physical Channel의 무작위 액세스 주소(Access Address)로 식별된다. PADVB 논리적 전송은 advertising 장치의 Bluetooth 장치 주소, 타이밍 및 advertising set으로 식별되며, CIS 및 BIS 논리적 전송 또한 고유한 액세스 주소와 타이밍 정보로 식별됩니다 BR/EDR Logical Transports 종류 - ACL (Asynchronous Connection-Oriented) - SCO (Synchronous Connection-Oriented) - eSCO (Extended Synchronous Connection-Oriented) - APB (Active Peripheral Broadcast) - CPB (Connectionless Peripheral Broadcast) LE Logical Transports 종류 - LE ACL (LE Asynchronous Connection) - ADVB (LE Advertising Broadcast) - PADVB (LE Periodic Advertising Broadcast) - CIS (Connected Isochronous Stream) - BIS (Broadcast Isochronous Stream) |
Physical Links (물리적 링크) |
Bluetooth 장치들 사이에 형성되는 베이스밴드 연결을 표현하는 가상적인 개념으로, 전송되는 패킷에는 관련 내용이 없다. Physical Link에서 속성 변경 프로토콜 - BR/EDR: Link Manager (LM) 프로토콜 - LE: 에서는 Link Layer (LL) 프로토콜 Physical Link에서 변경 가능한 속성 - 전송 전력(transmit power) - 전력 제어(단, CPB 링크는 제외) - 링크 감독(Link supervision) - 암호화(Encryption) - 채널 품질에 따른 데이터 속도 변경 - 다중 슬롯 패킷 제어 - Adapted piconet Physical Channel의 AFH(Adaptive Frequency Hopping) 채널 맵 속성 - CPB Physical Link는 LM 프로토콜을 미지원. Physical Link 식별자 BR/EDR: 기본 ACL 논리적 전송(default ACL logical transport)의 ID인 LT_ADDR으로 식별. LE: Link Layer 패킷에 사용되는 액세스 주소(Access Address)로 식별. BR/EDR Physical Link 종류 - Active physical link - Connectionless Peripheral Broadcast Physical Link(CPB physical link) - Scanning physical link LE Physical Link 종류 - LE active physical link - LE advertising physical link - LE periodic physical link - LE isochronous physical link |
Physical Channels (물리적 채널) |
통신을 위한 물리 채널을 위해, 트랜시버를 동일한 RF 주파수에 동시에 맞춤. - 주파수 호핑 시퀀스: RF 캐리어 시퀀스를 동기화. Physical Channels 식별자 - Access Code (DAC, CAC, IAC)를 사용하여 물리 채널을 구분. BR/EDR Physical Channels 종류 - Basic piconet channel - Adapted piconet channel - Inquiry scan channel - Page scan channel - Synchronization scan channel LE Physical Channels 종류 - LE piconet physical channel - LE advertising physical channel - Periodic physical channel - LE Isochronous physical channel |
Physical Transports (물리적 전송) |
RF 채널에서 하나 이상의 변조 방식을 사용하여, PHY 패킷 전송 및/또는 수신을 담당. - BR/EDR 물리적 전송: BR/EDR Physical Channel을 캡슐화하며, BR/EDR 패킷을 사용. - LE 물리적 전송: LE Physical Channel을 캡슐화하며, LE 패킷을 사용. |
2-2. 블루투스 패킷에서 블루투스 데이터 전송 아키텍처
* 블루투스 패킷에 대한 자세한 내용은 "Bluetooth BR/EDR Packet Format" 참고.
2-3. Bluetooth Baseband Architecture Layer
자세한 내용은 "Bluetooth Baseband Architecture Layer" 참고.
'블루투스 > ETC' 카테고리의 다른 글
Bluetooth Packet/PDU/Payload 정리 (BR/EDR, LE) (0) | 2023.03.09 |
---|---|
블루투스 데이터 전송 아키텍처(Bluetooth Data Transport Architecture) (0) | 2022.12.19 |
Bluetooth BR/EDR Packet Format (0) | 2022.12.10 |
Bluetooth specification 채택(Adopted) 단계 (0) | 2022.12.10 |
Bluetooth Controller 조합 (0) | 2022.12.10 |