2014-11-19 3 views
1

맞춤 보드에 내장 된 BLuetooth 저에너지 모듈에서 작업 중입니다. 때마다 내가 인터럽트 (푸시 버튼)를 누르면 ble 모듈은 한 번만 광고하고 한 번 잠들다가 다음 번 번호 (증가 된 값)를 광고하고 잠자기 상태로 전환됩니다.이 값은 실행중인 사용자 정의 Android 응용 프로그램에서 스캔됩니다 넥서스 5. 전화기가 대부분의 패킷을 스캔하는 중 일부 데이터 패킷을 캡처하지 못하는 경우가 있습니다. 맞춤형 보드가 한 번만 광고하고 잠자기 상태가되면 휴대 전화는이 광고 패킷을 캡처 할 수 있어야하지만 데이터가 누락 될 수 있습니다 패킷. 그래서 제 질문은 BLE 호환 전화기가 페러 페럴 장치의 모든 데이터 패킷을 캡처 할 수 없다는 것입니다. 즉 일부 데이터 패킷이 손실 될 수 있습니다. 아니면 스마트 폰 nexus 5 ble 하드웨어의 문제입니까?스마트 폰에서 데이터 패킷의 BLE 손실

+1

정상입니다. 친구. – reTs

+1

이것은 우리가 말하는 라디오입니다. 더 높은 수준의 프로토콜 데이터를 추가하지 않으면 데이터 손실이 예상됩니다. 높은 수준의 프로토콜을 사용하더라도 상황이 범위를 벗어날 수 있으므로 실패를 예상해야하며 범위에서 성공보다 실패를 더 많이 제한 할 수 있습니다. – Ifor

+0

이것은 범위를 벗어난 문제가 아닙니다. 전화가 가까이에 배치되지만 전화는 모든 데이터 패킷을 캡처 할 수 없습니다. 좀 더 높은 수준의 프로토콜이 무엇을 의미하는지 간단히 설명해 주시겠습니까? – HRG

답변

0

BLE는 혼잡 한 스펙트럼에서 낮은 전력으로 전송합니다. 일부 패킷 손실이 예상됩니다 (나는 그것이 내가 원하는 것보다 더 동의한다).

상위 수준 프로토콜은 패킷 손실을 감지하고 재전송을 요청합니다. BLE의 경우 데이터에 대한 광고를 사용하는 대신 실제로 장치에 연결 한 다음 알림을 사용할 수 있습니다. 이들은 훨씬 더 신뢰할 수 있으며 떨어 뜨려서는 안됩니다. 단점은 대부분의 장치가 소수의 주변 장치 (일반적으로 7)에 연결하는 것만 지원한다는 것입니다. 광고 청취는 연결이 필요하지 않으므로 청취 할 수있는 광고주의 수에 고정 된 제한이 없습니다.

패킷 손실은 수신 대기에 따라 달라집니다. 제로 범위에서 Android 5.0을 사용하는 Nexus 4로 nRF51822를 전송하면 PLOS가 50 % 이상 향상됩니다. 다른 nRF51822로 전송할 때 약 20 % PLOS가됩니다. Nexus 4는 전력을 절약하려고 시도하므로 계속 듣지 않을 수 있습니다.

+0

은 맞춤식 애플리케이션 브로드 캐스터 모드가 필수이며 광고는 한 번만 수행되므로 스마트 폰 (넥서스 5)은 손실없이 해당 패킷을 캡처해야합니다. nrf 스니퍼 응용 프로그램 (nrf51822 동글 사용)이 세 채널 모두에서 패킷을 캡처하기 때문에 한 채널에서 다른 채널을 놓친 경우에도 두 채널을 캡처 할 수 있기 때문에 페어링 및 연결 이외의 다른 문제를 극복 할 수 있습니까? – HRG

+0

네, 서로 다른 채널에 3 패킷 만 보내는 패킷 배달을 원격으로 보장 할 방법이 없습니다. 나는 왜 당신이 3 개 이상의 패킷을 보낼 수 없었는지 모르겠습니다. 필요한 경우 소프트 장치를 버리고 라디오를 수동으로 제어 할 수 있습니다. 문서화되어 있고 BLE 광고를 보내는 것은 충분히 간단합니다. 그럼 당신은 빨리 많은 패킷을 보낼 수 있었고 더 많은 것을 얻을 수 있기를 바란다. (아마도 블루투스 사양을 따르지 않았지만 왜 작동하지 않는지 나는 알지 못한다.) 왜 당신은 오직 하나의 광고 만 보낼 수 있습니까? – Timmmm

+0

응용 프로그램은 일부 중요한 절전 문제로 인해 최대 하나의 광고 만 전송할 수 있습니다. 따라서 우리는 누락 된 부분을 캡처해야합니다. 내 생각에 스마트 폰 구는 데이터가 스캔 간격 (정확한지는 확실하지 않음)의 시간에 전송 될 때 일부 패킷이 누락 될 수 있습니다. nexus 5 bluetooth의 스캔 간격은 어떻게됩니까? 스캔 간격 값을 검색하기 위해 안드로이드 소스 코드를 다운로드했지만, 아직도 couldnt합니다. 지금 안드로이드 수준 4.3.1 API를 사용하고 있습니다. 4.3.2 API 사용에 문제가 있습니까? – HRG

관련 문제