본문 바로가기
블루투스/LE Link Layer

LE Connection event

by 테크쟁이 2023. 2. 13.
반응형
 

참고자료: 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

connSubrateBaseEvent에 따른 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 해야한다

connPeripheralLatency와 connContinuationNumber에 따른 Connection event


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