2017-10-18 40 views
0

Bluetooth LE 버전 4.2가있는 하드웨어 장치가 있고 251 바이트의 페이로드로 데이터 패킷을 보낼 수 있습니다. 그러나 나는 모바일 앱 (안드로이드 & IOS)을 통해 데이터를 수신 할 것이며, 모바일은 v4.0, v4.1 또는 v4.2와 같은 다른 Bluetooth LE 버전을 갖게됩니다.BLE v4.2에서 4.0으로의 페이로드 크기에 대한 이전 버전과의 호환성

내 하드웨어 장치가 마스터 역할을하고 모바일 장치가 슬레이브 역할을한다고 가정합니다. 그리고 여기 마스터는 노예의 블루투스 버전을 모른다.

마스터가 251 바이트의 페이로드로 데이터 패킷을 보내는 경우 슬레이브 (v4.0 - 페이로드 : 33 바이트)가 처리 할 수있는 방법.

질문 1 : BLE GATT 서버는 251 패킷의 버퍼를 유지하고 차례로 33 패킷을 보냄으로써 이러한 역 호환성의 경우를 처리 할 수 ​​있습니까?

질문 2 : 마스터를 v4.2로 유지하면서 모든 BLE 버전으로 여전히 슬레이브에 응답하여 풋 스루 풋을 얻는 최선의 방법은 무엇일까요?

감사합니다. 시바.

답변

1

블루투스 코어 사양을 읽으면 링크 계층에서 링크 계층 패킷 크기가 양쪽에서 협상 될 수 있습니다 (슬레이브 또는 마스터는 중요하지 않음). 다른 장치가 지원하지 않으면 기본 길이가 사용됩니다. 그렇지 않으면 더 큰 길이가 사용됩니다. 따라서 이전 버전과 완벽하게 호환됩니다.

또한 조각화 및 재구성이 L2CAP 계층에서 처리되므로 GATT 계층을 LE 데이터 길이 확장을 지원하기 위해 전혀 변경할 필요가 없습니다.

그러나이 기능을 사용하려면 GATT에 대한 대형 MTU를 교환해야합니다. 바람직하게는 4 + MTU는 링크 계층 패킷의 최대 길이의 배수 여야합니다.