iOS Core Bluetooth/BLE 통신 속도

Bluetooth Low Energy(Bluetooth 4.0, 이하 BLE)의 통신 속도에 대해 조사, 실측해 본 메모.

(2015.3 덧붙여) 이 기사는 낡았고, 쓴 당시에는 BLE에 대한 지식도 부족했기 때문에 내용에는 아마도 잘못이 섞여 있을 가능성이 있습니다.

조사



우선 "BLE 통신 속도"로 구그 해 보았습니다.

BLE(Bluetooth Low Energy)란? 진지하게 쓰다



BLE에서는 「무접속 상태」로부터 → 「접속」→「데이터 교환」까지의 속도를 압도적으로 빨리 하는 것으로
평상시는 수시로 「연결」 「죽어」 「연결」 「죽어」를 반복하고 있다.

정말 필요한 때밖에 움직이지 않고 소비 전력을 최적화하고 있는 셈이다.

그렇게 하면 신경이 쓰이는 것은 송신측에서의 데이터 입력으로부터 수신측에서의 수신까지의 지연이지만,
접속 자체의 딜레이는 6ms정도, 어쨌든 데이터 송수신 총 20-30ms 정도일까.

아무튼 보통의 인간이 느낄 수 있는(위화감을 느낄 수 있다) 딜레이는 기껏해야 30ms 이상의 경우 뿐이기 때문에 기존의 키보드 등의 용도로는 전혀 확실한 레벨이라고, 말할 수 있을 것이다.

스루 방지도? BLE가 가져오는 비즈니스 기회



스펙상은 최대 통신 속도가 1Mbps로 구분되고 있지만, "실질 10kbps 정도로 압도적으로 느린"(모리야마 씨) 그렇다.

iOS Bluetooth 저에너지 개발 1



BLE는, 예를 들면 1초에 20바이트 정도의 데이터를 송수신하는 것과 같은, 데이터의 교환 빈도는 낮지만, 무선 접속 자체는 장기간 유지할 수 있는 응용 분야를 상정한 규격입니다. 데이터 통신 속도도 물리 계층에서 1Mbps입니다. 클래식 BT는 헤드셋 및 개인 영역 네트워크 (PAN)와 같은 특정 터미널과 연결 (페어링), 항상 데이터 통신이 있고 높은 데이터 속도 (~ 3Mbps)가 필요합니다. 되는 장면을 상정한 규격입니다.

BLE의 통신 속도는 물리 계층에서 1Mbps, 실제 통신 속도는 ~50kbps 정도입니다. 한편 클래식 BT는 물리층에서 3Mbps(WiFi의 물리층을 사용하지 않는 것이면)로 ~500kbps 정도입니다. 원래, 이러한 연속하고 고속의 데이터 송수신을 계속하는 응용예에는, BLE를 선택하는 것 자체가, BLE의 규격의 목적으로부터 벗어나고 있기 때문에, 클래식 BT만으로 설계하면 좋을 것입니다.

제설이 있습니다만, 실질 10~50kbps와 같습니다.

iOS의 Core Bluetooth로 실측



Core Bluetooth에서 실제로 구현하여 측정해 보았습니다.

계측용 앱은, 이하의 서적의 샘플을 기초로,
  • NSTimer로 센트럴로부터의 Read 처리 ((퍼리퍼럴로부터의 Notify도 마찬가지로 루프시켜 시험해 보았는데, Read보다 느렸기 때문에, 이 기사에서는 Read에 대해서만 언급하고 있습니다.))를 루프 시킨다 (루프 간격은 UI에서 변경할 수 있음)
  • 주변 장치는 임의의 NSData를 반환합니다 (데이터 길이는 UI에서 변경할 수 있음)
  • 중앙에서 수신 된 데이터 크기에서 통신 속도 (최대, 최소, 평균)를 계산합니다.

    라는 계측용 앱을 만들었습니다.



    위를 목표로 하는 프로그래머를 위한 iPhone 앱 개발 테크닉 iOS 7편 posted with amazlet at 14.01.09

    카토 히로토 니시카타 나츠코 후지카와 히로유키 스즈키 아키라 타카오카 치오 임프레스 재팬 판매 순위 : 6,194

    Amazon.co.jp에서 ​​자세히 보기


    중앙 측에 iPhone5s, 주변 장치 측에 iPhone5를 사용하여 루프 간격이나 한 번에 보내는 NSData 객체의 크기를 여러 가지로 변경하면서 측정했는데 안정적으로 나온 통신 속도는 5kbps 정도였습니다.

    관련 기사


  • Core Bluetooth/BLE로 음성 데이터 교환
  • Core Bluetooth 프로필에 대해 알아본 내용 요약
  • 좋은 웹페이지 즐겨찾기