Bluetooth 4.x2014.06.18 00:30

[nRF51822] 03. BLE 기본 예제 실행하기


이번에는 nRF51822 의 주기능인 BLE 관련 기본 예제에 대하여 설명한다.


nRF51822 SDK 상에서의 BLE 기본 예제는 아래 경로에 위치한다.


C:\Keil\ARM\Device\Nordic\nrf51822\Board\nrf6310\s110

C:\Keil\ARM\Device\Nordic\nrf51822\Board\nrf6310\s120


위의 경로를 보면 2가지 경로를 제시했는데... 살펴보면 s110 과 s120 으로 구분되는 것을 확인 할 수 있다.


s110 은 Peripheral Stack 으로서 기존의 Classic Bluetooth 기준으로 보자면 Slave로 생각하면 된다.

s120 은 Central Stack 으로서 기존의 Classic Bluetooth 기준으로 보자면 Master로 생각하면 된다.


Datasheet를 보면 나오는 사항이지만 NORDIC의 nRF51822은 Pre-Compiled Binary 를 제공한다.


즉, Lib 와 같이 Application Binary 와 병합되는 형태가 아닌 별도의 Stack Hex 파일을 Application Hex와 서로 다른 영역의 Flash 공간에 Program Writing 하는 것이다.


NORDIC 에서는 이러한 Pre-Compiled Binary 형태의 BLE Stack 을 Soft Device 라고 부른다.


따라서 NORDIC 의 nRF51822 에서는 s110이라는 이름을 가진 Peripheral Hex 와 s120이라는 이름이 가진 Central Hex .....2가지의 각기 다른 Soft Device 가 존재한다.


물론 s110 폴더의 예제에는 s110 Soft Device Hex를 별도의 영역에 Program Writing 하여야 하며, s120 폴더의 예제에도 s120 Soft Device Hex를 별도의 영역에 Program Writing 하여야만 한다.


s130 이라는 Peripheral + Central Stack 도 있지만 이 글을 쓰는 시점에서는 Alpha Version 이므로 권장하지 않기 때문에 차후 정식 Version으로 릴리즈되면 별도의 글로 설명을 하도록 하겠다.


일단 본 글에서는 최초에 BLE 로 Issue 를 만든 대표적인 Profile 인 Proximity Profile 에 대한 예제로 설명을 하도록 하겠다.


참조로 nRF51822의 BLE 예제는 거의 대부분 Bluetooth SIG 에서 제정한 Standard GATT Profile 만을 다루고 있으니 참조 바란다.


물론 Proximity Profile 도 Standard GATT Profile 이다.


Proximity Profile 예제의 경로는 아래와 같다.


C:\Keil\ARM\Device\Nordic\nrf51822\Board\nrf6310\s110\ble_app_proximity


일단 이전 MCU 기본 예제 글과 같이 위 경로의 하위 폴더인 arm 폴더에 있는 Project 파일을 실행한다.


기존 MCU 기본 예제와 같이 Compile 을 한 이후에 Program Writing을 하면.... 아마도... 실행이 안될 것이다.


앞서 설명한 바와 같이 해당 예제에 맞는 Soft Device 를 Program Writing 하여야 한다.


아래 그림을 보면 NORDIC에서 제공하는 nRFgo Studio를 이용해서 Soft Device를 어떻게 Program Writing 하는지 손쉽게 파악할 수 있을 것이다.





위의 예시에서는 Soft Device 버전을 6.0.0 으로 선택하였는데 Soft Device 버전은 사용하는 SDK 의 버전과 연관이 있다.


즉, Soft Device에 맞는 SDK 의 버전이 있다는 말이다.


s110 의 경우 Soft Device 버전이 5.2.1 이면 4.x.x 의 SDK 를 사용하고


Soft Device 버전이 6.0.0 이면 5.x.x의 SDK 를... Soft Device 버전이 7.0.0 이면 6.x.x의 SDK 를 사용한다.


현재 이 글을 작성할 때의 시점에서는 Soft Device 의 최신 버전은 7.1.0 이고 SDK 의 최신 버전은 6.1.0 이다.


이후의 Soft Device 및 SDK 대응 버전은 NORDIC Homepage의 White paper 를 참조하기 바란다.


그럼 이제 nRFgo Studio 에서 Soft Device 를 Program 한 이후에 Application Program을 Writing 해보자.


nRF6310 Mother Board + nRF51822-DK 기반의 개발환경이라면 처음에 첫번째 LED 가 켜져 있을 것이다.


현재 Advertising 상태라는 말이다.


고맙게도 NORDIC 에서는 iOS 및 Android 의 운영체제를 가지는 스마트폰 에서 nRF51822 과 연동될 수 있는 Application 을 제공한다. App Store 및 Google Play 에서 무료로 다운로드 가능하다. 


iPhone 의 경우 BLE 지원은 iPhone s4 이후 기종부터.... Android 는 Android OS 4.3 이상 기종부터 지원된다. 


원래부터 안되는 스마트폰 기종으로 힘빼지 말자.


nRF Toolbox 라고 검색어를 쳐서 해당 Application을 다운로드 받고 실행하고 Proximity 를 선택한 후 Connect 를 누르면 nRF51822-DK 와 연결이 이루어져서 서로 알람 통신을 주고 받고 특정 거리 이상 떨어지면 서로 떨어짐을 알리는 알람이나 LED 가 켜지게 된다.


구성은.... 해당 Code 를 참조하기 바란다. 다 가르쳐 주면 매력 없다... ㅋ


나머지 예제들도 대부분 Proximity Profile 과 같은 Standard Profile 이다.   


BLE Profile 및 Service에 대한 내용은 아래의 Bluetooth 홈페이지를 참조하기 바란다.


https://developer.bluetooth.org/TechnologyOverview/Pages/Profiles.aspx











저작자 표시 비영리 변경 금지
신고
Posted by USN-Pioneer USN-Pioneer

티스토리 툴바