참고자료: https://www.bluetooth.com/specifications/specs/core-specification-5-3/
Connection event란?
- Connection state에서 Data Physical Channel PDU를 전송할 수 있는 anchor point
1. connEventCounter(Connection Event Counter)
- Link Layer에서 control procedure를 동기화하는데 사용
- ACL connection에서 Connection event마다 증가된다
- Connection event에서 Peripheral이 listening 상태가 아니거나, Central이 전송을 하지 않아도, connEventCounter는 증가된다 (Subrating과 Peripheral latency 경우)
- Central/Peripheral 모두 사용한다
- 16 bit: 0x0000에서 시작하여 0xFFFF까지 증가하면, 다음에 0x0000으로 초기화된다
2. connInterval(Connection Interval)
- connInterval = N * 1.25 ms (7.5 ms ~ 4.0 s)
3. connSubrateFactor(Connection Subrate Factor)
- Connection event를 감소시키기 위해 사용
- 값의 범위: 1 ~ 500
- connSubrateFactor 값이 1 이면, connSubrateBaseEvent를 사용할 수 없다
- ACL이 처음 연결되면, 초기값 1을 가진다
4. connSubrateBaseEvent(Connection Subrate Base Factor)
- connSubrateFactor의 기준이 되는 Connection Event
5. connContinuationNumber(Connection Continuation Number)
- 값의 범위: 0 ~ (connSubrateFactor - 1)
- ACL이 처음 연결되면, 초기값 0을 가진다
6. connPeripheralLatency(Connection Peripheral Latency)
- Peripheral에서 listening이 필요한 connection event의 anchor point
- 값의 범위: 0 ~ (connSubrateFactor - 1)
- connPeripheralLatency 값이 0 이면, subrate 상태인 connection event의 anchor point와, continuation event의 anchor point에서 listening 해야 한다
- connSubrateFactor * (connPeripheralLatency + 1) =< 500
- connInterval * connSubrateFactor * (connPeripheralLatency + 1) < connSupervisionTimeout / 2
- 만약 connSubrateFactor=3, connContinuationNumber=0, connPeripheralLatency=6 이면, Peripheral에서 listening이 필요한 connection event의 anchor point는, 3(connSubrateFactor) + 3(connSubrateFactor)*6(connPeripheralLatency) = 21, 즉 21 번째 connection event에서 Peripheral은 listening 해야한다
7. connSupervisionTimeout(Connection Supervision timeout)
- ACL connection에서 link loss 발생을 감지하기 위해 사용
- 각 supervision timeout 시간 안에, Data Physical Channel PDU를 최소한 하나라도 전송해야, link loss가 발생하지 않는다
- connInterval * connSubrateFactor * (connPeripheralLatency + 1) < connSupervisionTimeout / 2
- connSupervisionTimeout = N * 10 ms (100 ms ~ 32 s)
8. Transmit window
- Connectin event의 anchor point를 결정
- Transmit window 전송 시작 시간 = CONNECT_IND PDU 또는 AUX_CONNECT_REQ PDU 패킷의 종료 시점 + transmitWindowDelay + transmitWindowOffset
8-1. transmitWindowSize
- Transmit window의 크기를 정의
- transmitWindowSize = N * 1.25 ms (1.25 ms ~ 10 ms)
- transmitWindowSize = N * 1.25 ms (1.25 ms ~ (connInterval - 1.25 ms))
- connInterval - 1.25 ms =< 10 ms
8-2. transmitWindowOffset
- transmitWindowOffset = N * 1.25 ms (0 ms ~ connInterval)
8-3. transmitWindowDelay
PDU | PHY | transmitWindowDelay 값 |
CONNECT_IND | 1.25 ms | |
AUX_CONNECT_REQ PDU | LE Uncoded PHY | 2.5 ms |
LE Coded PHY | 3.75 ms |
'블루투스 > LE Link Layer' 카테고리의 다른 글
LE Controller features (LE Controller feature set) (0) | 2023.02.24 |
---|---|
LE - RF channel map (0) | 2023.02.24 |
LL Control PDU opcode (0) | 2023.02.09 |
LL Control PDU Payload (0) | 2023.02.09 |
LE MD(More Data) field (0) | 2023.02.07 |