참고자료: https://www.bluetooth.com/specifications/specs/core-specification-5-3/
* 전체 Bluetooth packet format은 "Bluetooth Packet Format" 참고
Header
- Baseband에서 관리("블루투스 아키텍처 계층" 참고)
1. LT_ADDR (3-bit): logical transport address
- Central -> Peripheral 전송: destination Peripheral를 나타낸다
- Peripheral -> Central: Source Peripheral를 나타낸다
2. TYPE (4-bit): type code
- Packet type을 분류 (SCO/eSCO/ACL/CPB)
Packet Type | |||||||||
Segment | TYPE code b3b2b1b0 |
Slot | SCO (1 Mb/s) |
eSCO (1 Mb/s) |
eSCO (2~3 Mb/s) |
ACL (1 Mb/s) |
ACL (2~3 Mb/s) |
CPB (1 Mb/s) |
CPB (2~3 Mb/s) |
1 | 0000 | 1 | NULL | NULL | NULL | NULL | NULL | NULL | NULL |
0001 | 1 | POLL | POLL | POLL | POLL | POLL | ㅡ | ㅡ | |
0010 | 1 | FHS | ㅡ | ㅡ | FHS | FHS | ㅡ | ㅡ | |
0011 | 1 | DM1 | ㅡ | ㅡ | DM1 | DM1 | DM1 | DM1 | |
2 | 0100 | 1 | ㅡ | ㅡ | ㅡ | DH1 | 2-DH1 | DH1 | 2-DH1 |
0101 | 1 | HV1 | ㅡ | ㅡ | ㅡ | ㅡ | ㅡ | ㅡ | |
0110 | 1 | HV2 | ㅡ | 2-EV3 | ㅡ | ㅡ | ㅡ | ㅡ | |
0111 | 1 | HV3 | EV3 | 2-EV3 | ㅡ | ㅡ | ㅡ | ㅡ | |
1000 | 1 | DV | ㅡ | ㅡ | ㅡ | 3-DH1 | ㅡ | 3-DH1 | |
1001 | 1 | ㅡ | ㅡ | ㅡ | AUX1 | AUX1 | ㅡ | ㅡ | |
3 | 1010 | 3 | ㅡ | ㅡ | ㅡ | DM3 | 2-DH3 | DM3 | 2-DH3 |
1011 | 3 | ㅡ | ㅡ | ㅡ | DH3 | 3-DH3 | DH3 | 3-DH3 | |
1100 | 3 | ㅡ | EV4 | 2-EV5 | ㅡ | ㅡ | ㅡ | ㅡ | |
1101 | 3 | ㅡ | EV5 | 3-EV5 | ㅡ | ㅡ | ㅡ | ㅡ | |
4 | 1110 | 5 | ㅡ | ㅡ | ㅡ | DM5 | 2-DM5 | DM5 | 2-DM5 |
1111 | 5 | ㅡ | ㅡ | ㅡ | DH5 | 3-DM5 | DH5 | 3-DM5 |
3. FLOW (1-bit): flow control
- 0 (STOP): ACL RX buffer가 full 이어서 data를 받을 수 없어서, POLL/NULL packet만 송수신 할 수 있다
- 1 (GO): ACL RX buffer가 data를 수신할 수 있다
- SCO, eSCO에서 FLOW는 사용되지 않는다
- CPB에서 FLOW는 RFU이다
4. ARQN (1-bit): acknowledge indication
- 0 (NAK): CRC를 포함한 payload data가 비정상적으로 전송되었다
- 0 (ACK): CRC를 포함한 payload data가 정상적으로 전송되었다
- CPB에서 ARQN는 RFU이다
5. SEQN (1-bit): sequence number
- Packet 순서를 구분하기 위해, packet에 순차적으로 번호를 할당 (sequential numbering scheme)
- CPB에서 SEQN는 RFU이다
6. HEC (8-bit): header error check
- HEC check를 실패하면, packet 전체를 버린다
- Central Response substate에서 FHS packet: Peripheral의 BD_ADDR의 UAP를 사용하여 HEC를 생성
- 나머지 substate: Central의 BD_ADDR의 UAP를 사용하여 HEC를 생성
'블루투스 > Baseband' 카테고리의 다른 글
Bluetooth Packet Access Code (CAC/DAC/GIAC/DIAC) (0) | 2023.01.26 |
---|---|
FHS packet (0) | 2023.01.25 |
Bluetooth Page / Page Scan (0) | 2023.01.17 |
Bluetooth Inquiry / Inquiry scan (0) | 2023.01.16 |
Class of Device (0) | 2023.01.07 |