2014-02-20 6 views
2

에서 BLE에 대한 연결 간격 내 perifpheral (CC2541)에서 내 GalaxyS3 (안드로이드 4.3)로 데이터를 보낼 때 주변 장치 (7.5msec)에서 설정 한 연결 간격에 관계없이 패킷을받습니다. ~ 100msec 간격으로 전송됩니다.갤럭시 S3 안드로이드 4.3

정말 저조한 데이터 전송률입니다.

내가 어떻게 속도를 낼 수 있는지에 대한 조언이 있으십니까?

감사

+1

어떤 메커니즘을 사용하여 데이터를 보내고 있습니까? 우리는 도움이 될 세부 사항에 관해 더 많이 알 필요가 있습니다. CC254x 키트가있는 경우 패킷 스캐너를 사용하여 Android 끝과 관계없이 주변 기기 (예 : 광고)의 비대화 형 기능을 평가할 수 있습니다. –

+0

첫째, 신속한 답변보다 낫다. 우리는 참고로 keyfob 프로젝트를 사용했습니다. GATT Profile API를 사용하여 특성 (20Bytes ~)을 업데이트했습니다. 시작했습니다. 아무 것도 변경하지 않아도됩니다. 안드로이드 4.3에서 S3 BLE로 어떤 데이터 전송률을 기대할 수 있습니까? . 약 1K 데이터를 보내고 많은 시간이 걸립니다. Android 4.4에서 Nexus5를 사용하면 패키지가 25msec 지연되어 전송됩니다. 나는 특정 OS가 문제라고 의심한다 (android 4.3). 정보가 부족해서 죄송합니다. 자세한 내용을 자세히 알려 드리겠습니다. 너는 나를 가장 좋은 길로 인도 할 수있을거야. – user3333648

답변

2

당신이 이미 알고 있겠지만 (내가 이미 무선 랜을 해제), 안드로이드 BLE API의 연결 간격을 구성 할 수있는 방법이 없습니다, 따라서 남아있는 유일한 방법은 그것을 설정하는 것입니다 주변 장치로부터. 주변 장치는 장치 블루투스 하드웨어 및 블루투스 스택에 따라 최적의 연결 간격을 협상해야합니다.

According to Bluetooth Low Energy specs, 연결 간격은 연결 이벤트라고하는 데이터 패킷 교환 시퀀스의 시작 시간을 결정하며 7.5ms에서 4 초가 될 수 있습니다. 이 값은 전력 소비와 밀접하게 관련되어 있으며 값이 작을수록 소비가 높습니다.

주변 장치는 최소 및 최대 값을 제안하는 연결 간격을 협상해야합니다. 장치가 해당 연결 간격을 거부하면 주변 장치는 링크에 대한 최적의 값에 도달 할 때까지 다른 값을 시도해야합니다.

삼성 갤럭시 S3의 경우 높은 연결 간격이 필요한 사용자 중 하나입니다. 내 테스트 중 하나에서 Nexus 5 장치에서 ~ 20ms의 연결 간격을 협상하는 것을 달성했지만 동일한 테스트가 S3에 수행되었을 때이 작은 값을 거부하고 ~ 48ms 중 하나를 설정했습니다.

예를 들어 iOS에서는 Bluetooth design guidelines document으로 최소 연결 간격 값 20ms를 사용하는 것이 좋습니다. 그래서 제가 전에 말했듯이, 작품은 주변 가치를 얻으려고하는 주변의 손에 있습니다.

0

제 지식에 따라 링크 계층 제어 패킷 LL_CONNECTION_UPDATE_REQ를 사용하여 연결 간격 (connInterval)을 협상해야합니다. 사양에 따라 연결 간격은 7.5ms에서 4000ms 사이로 제한됩니다.

관련 문제