목적
Nordic SDK를 통해 BLE 통신이 어떻게 이루어 지는지 알아보자. 제공되는 SDK를 가지고 BLE 통신 프로토콜을 완전 이해하는 욕심은 버리자. BLE Chip 제조사 엔지니어가 잘 구현해 줄 것이다.
nNF52 DK를 검색하면 아래와 같은 이미지를 찾을 수 있다. USB 케이블만 연결하면 전원 및 디버깅 동작을 할 수 있다.
IDE 및 Toolchain도 같이 다운. (SEGGER Embedded Studio를 다운)
관련 소스코드는 여기에서 다운.
다운 받을 때 SoftDevice를 선택해야 하는데 s112를 다운 받았다. HW DK가 nRF52832를 사용하기 때문에. SoftDevice별 버전 차이 설명은 여기서.
다운받은 소스 구조는 아래 그림처럼 되어 있으며 분석에 필요한 예제는
\nRF5_SDK\examples\ble_peripheral\ble_app_uart 안에 있다.
\nRF5_SDK\examples\ble_peripheral\ble_app_uart\pca10040\s112\ses\ble_app_uart_pca10040_s112.emProject 를 사용한다. SEGGER Studio에서 바로 사용 가능한 Project 이다.
위 그림의 nRF52 DK 그림의 PCA10040 칩이 있는데 이것은 nRF BLE 칩과 외부 사이에서 Debugger 역할을 하고 있고 SoftDevice는 s112 는 Peripheral 동작을 하기 때문에 선택한 Project이다.
ble_app_uart 의 main 루틴으로 BLE 프로토콜을 이해할 수 있다.
소스코드를 분석하는 목적이 BLE 통신의 이해 이외에 UART 통신이 목적이므로 UART 패킷과 관련된 루틴을 분석 해 보면
그림과 같이 UART Rx --> BLE Tx 및 BLE Rx --> UART Tx 동작을 구현 할 수 있다.