개발/BLE 16

BLE 란?

1. BLE란BLE는 BlueTooth Low Energy의 약어로서 블루투스 4.2버전부터 지원하기 시작했다.용도는 기존의 블루투스 BR/EDR에 비해 저전력으로 사용하는데 적합하도록 설계되었다.블루투스 스마트 레디 는, 듀얼모드라고도 불리우며 BR/EDR + BLE 를 의미한다.블루투스 스마트 는, 싱글모드라고도 불리우며 BLE 를 의미한다. 최근, BLE를 이용한 제품들이 많이 나오고 있다. 미아 방지를 위한 제품도 나와있고, 쇼핑센타에서 제품 광고에도 사용되고 있다(예 시럽) 또한 가정에서도 IoT에도 적용이 되고 있으며, 저전력이라는 장점으로 많은 곳에 활용이 되는 추세이다. 2. BLE 개발에 관하여BLE를 개발하기 위해서는 기본적으로 Protocol을 이해 해야 한다. 물론 BLE 칩 제조사..

개발/BLE 2016.07.07

CC2540 Timeout Terminate

Supervision Timeout으로 인하여 Link가 해제 되는 원인중의 하나로 supervision timeout의 설정을 잘못한 것일수도 있다. supervision timeout이란? Master와 Slave가 연결된 상태에서 아무런 데이터를 주고 받지 않는 상황이 설정된 시간이 다되도록 이루어 지고 있지 않다면 연결을 해제 하는 기능이다.따라서 아래 supervision timeout을 설정하는 공식을 반드시 준수해야 한다.또한 supervision timeout은 master/slave가 각각 개별적으로 설정하여 수행된다. Supervision Timeout은 (1 + slaveLatency) * (ConnInterval) 보다 무조건 커야 한다. 작을경우 문제가 발생한다. 자세한 내용은 아..

개발/BLE 2016.07.06

CC2540 Disconnect the Connection Immediately

Central과 Peripheral간에 Connection을 해제 하기 위해서는 Terminate API를 사용하는데, 이것을 사용할경우엔 notify를 받아야지만 Connection이 해제 된다. 즉, 이제 더이상 너랑 붙어있기 싫다고 요청했으면 응답을 받은뒤에야 connection 상태를 해제 한다는 것이다. 그러나 사용하기에 따라서는 일방적으로 Connection을 해제 할고 싶을때가 있다.이때 사용하는 API가 바로 요거다. HCI_EXT_DisconnectImmedCmd( simpleBLEConnHandle ); 이 API는 notify없이 곧바로 disconnect가 된다. 그렇게 되면 문제는 다른 한쪽에서는 계속 connect 상태가 된다. 가령 Connect 상태에서 Central이 일방적..

개발/BLE 2016.07.01

CC2540 Supervision Timeout

Supervision timeout 이란? 슬레이브와 마스터간의 Connection 상태에서 어느한쪽이 일방적으로 전원을 OFF 할경우 Connection 상태를 해제 하기 위한 타임 모니터링이다. 그런데.... 이걸 어떻게 활용해야 하나...샘플 코드에는 // Supervision timeout value (units of 10ms, 1000=10s) if automatic parameter update request is enabled#define DEFAULT_DESIRED_CONN_TIMEOUT 300 저렇게 define이 되어 있기때문에 저 값만 바꾸면 될것 같지만 사실 그렇지 않다.. 저것의 용도는 DEFAULT_ENABLE_UPDATE_REQUEST is set to TRUE 로 되어 있어야..

개발/BLE 2016.07.01