Nordic SDK를 통한 BLE 통신 이해하기

codedrawer·2021년 3월 20일
0

BLE

목록 보기
3/3
post-custom-banner

목적

  • BLE 프로토콜 이해
  • UART 통신구현

Nordic SDK를 통해 BLE 통신이 어떻게 이루어 지는지 알아보자. 제공되는 SDK를 가지고 BLE 통신 프로토콜을 완전 이해하는 욕심은 버리자. BLE Chip 제조사 엔지니어가 잘 구현해 줄 것이다.

nNF52 DK를 검색하면 아래와 같은 이미지를 찾을 수 있다. USB 케이블만 연결하면 전원 및 디버깅 동작을 할 수 있다.

SDK 다운로드

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 프로토콜을 이해할 수 있다.

gap_params_init

  • DEVICE_NAME 변경이 가능
  • Central Device와 연결 후 통신 시 Connection Interval 의 최소/최대 시간 값을 설정
    NRF51 time synchronize sensors - Nordic Q&A - Nordic DevZone - Nordic  DevZone

service_init

  • Profile 내의 Service UUID를 설정
  • UART Service가 Primary Service 임을 설정
  • UART Service 내의 Characteristic인 Tx/Rx 동작에 대한 설정

UART 포트와 BLE 통신 path

소스코드를 분석하는 목적이 BLE 통신의 이해 이외에 UART 통신이 목적이므로 UART 패킷과 관련된 루틴을 분석 해 보면

그림과 같이 UART Rx --> BLE Tx 및 BLE Rx --> UART Tx 동작을 구현 할 수 있다.

profile
Embedded SW
post-custom-banner

0개의 댓글