Bluetooth 5.3을 Edge IoT 설계에 빠르고 비용 효율적으로 추가하는 방법

작성자: Jens Wallmann

DigiKey 유럽 편집자 제공

끊임없는 경쟁으로 인해 사물 인터넷(IoT) 장치 개발자는 비용을 절감하고 강력하고 안전한 저전력 통신을 보장하면서 새롭고 혁신적인 제품을 빠르게 소개해야 한다는 압박을 받고 있습니다. 기존의 지능형 IoT 엔드 노드는 에지 처리를 가능하게 하는 마이크로 컨트롤러 장치(MCU)와 연결을 위한 무선 IC로 구성됩니다. 설계 팀이 효과적인 솔루션에 필요한 무선 주파수(RF) 기술을 갖추지 못한 경우 문제가 발생합니다.

적시에 무선 IoT 설계를 완료하고 증명한 후 대량 생산 단계로 전환하기 위해 개발자는 보다 효율적인 개발 공정을 구축해야 합니다. 개발 공정의 효율성을 높이는 한 가지 방법은 저전력 MCU를 통합 Bluetooth Low Energy(BLE) 무선 인터페이스와 함께 사용하는 것입니다.

이 기사에서는 STMicroelectronics의 초저전력 STM32WBA52 MCU 계열을 소개하고 개발자가 BLE 평가 기판, 개발 도구 및 응용 예제를 활용하여 BLE 5.3 무선 설계를 빠르게 고안하고 실행할 수 있는 방법을 보여줍니다. 또한 프로그래밍 및 MCU 배선을 간략하게 살펴봅니다.

높은 보안 수준을 갖춘 절전형 무선 MCU

BLE 5.3 인증을 받은 STM32WBA52 MCU 계열은 초보 개발자가 무선 통신을 장치에 빠르게 추가할 수 있는 비용 효율적인 솔루션입니다. 100MHz 클록 및 TrustZone 기술이 적용된 Arm® Cortex®-M33 코어를 기반으로 하는 이 마이크로 컨트롤러는 높은 수준의 보안을 제공하고, 데이터와 지적 재산(IP)을 보호하며, 해킹 및 장치 복제를 차단합니다.

STM32WBA52CEU6 무선 MCU는 512KB의 플래시 메모리와 96KB의 정적 RAM(SRAM)을 제공하고, STM32WBA52CGU6 변형은 1MB의 플래시 메모리와 128KB의 SRAM을 제공합니다. 그림 1은 48 UFQFN 패키지의 IC 기능 범위를 보여줍니다. 최대 20개의 정전 용량 방식 터치 채널로 밀폐 봉인 장치를 작동할 수 있습니다(기계식 키가 필요하지 않음).

STMicroelectronics의 STM32WBA52 기능별 제품 구성도그림 1: STM32WBA52의 기능별 제품 구성도는 통합 BLE 5.3 무선, 플래시 및 SRAM, 보안 지원을 보여줍니다. (이미지 출처: STMicroelectronics)

다양한 기능을 갖춘 STM32Cube 에코시스템은 BLE 응용 제품의 구현 및 프로그래밍을 지원합니다. 이 제품은 STM32CubeIDE 개발 환경과 STM32CubeMX 주변 장치 구성기 및 코드 생성기, STM32CubeMonitorRF 성능 테스터, 인공 지능(AI)용 STM32Cube.AI 데스크톱 및 클라우드 버전과 같은 도구를 포함합니다. 매칭되는 평가 기판인 NUCLEO-WBA52CG는 시제품 제작을 간소화하고 많은 BLE 샘플 응용 제품과 무료 소스 코드로 검증을 가속화합니다.

장치 및 데이터 보안

STM32WBA52 제품 라인은 IoT 보안 표준 PSA(Platform Security Arm) Certified Level 3 및 SESIP3(Security Evaluation Standard for IoT Platforms Assurance Level 3)을 준수합니다. 보안 분리, 메모리 보호, 조작 방지 및 Arm TrustZone 아키텍처가 탑재된 MCU Cortex-M33을 기반으로 하는 PSA 보안 프로그램을 통해 사이버 보호가 강화되었습니다. TF-M(Trusted Firmware for Arm Cortex-M)은 보안 부팅 및 보안 펌웨어 업데이트(X-CUBE-SBSFU), 암호화, 보안 스토리지, 런타임 증명을 포함한 PSA 불변형 신뢰 루트(RoT)를 통해 산업 표준 PSA 인증 보안 프레임워크를 준수합니다.

BOM을 최소화하는 통합 무선 통신

통합 초저전력 무선 통신 모듈은 1mW 기준 +10dB(dBm) RF 출력 전력을 제공합니다. 이 모듈을 사용하면 단거리(BLE 5.3) 및 장거리에서 최대 2Mbps 데이터 전송률로 안정적으로 통신할 수 있습니다. 최대 대기 저전력 모드는 무선 통신이 활성화되면 전체 전력을 줄입니다. STM32WBA MCU는 최대 20개의 동시 연결을 지원할 수 있습니다.

무선 통신 모듈의 전기적 성능 특성:

  • BLE 5.3을 지원하는 2.4GHz RF 트랜시버
  • RX 감도: -96dBm(BLE, 1Mbps)
  • 프로그래밍 가능한 출력 전력, 최대 +10dBm(1dB 스텝씩 증가)
  • 통합 발룬

고효율 에너지 관리로 인해 배터리 크기 감소

STM32WBA52 MCU는 STMicroelectronics의 LPDMA(Low Power Direct Memory Access), 절전 해제 시간이 빠른 유연한 절전 상태를 포함한 많은 절전 기술을 제공합니다. 이러한 기능을 결합하여 MCU 전력 소비를 최대 90% 줄일 수 있으므로, 배터리 크기를 획기적으로 줄이거나 배터리 수명을 늘릴 수 있습니다.

FlexPowerControl의 전기적 성능 특징:

  • 1.71V ~ 3.6V 전원 공급 장치
  • 140nA 대기 모드(절전 해제 핀 16개)
  • 200nA 대기 모드, 실시간 클록(RTC)
  • 2.4μA 대기 모드, 64KB SRAM
  • 16.3μA 중지 모드, 64KB SRAM
  • 45μA/MHz 실행 모드(3.3V 기준)
  • 무선 통신: Rx 7.4mA/Tx @ 0dBm 10.6mA

또한 Bluetooth 5.3은 낮은 듀티 사이클과 높은 듀티 사이클 간에 더 빠른 전환을 제공하여 이전 버전보다 에너지 효율성이 뛰어납니다.

Bluetooth 스택 및 데이터 패킷 아키텍처

STM32WBA52의 단일 코어 Arm Cortex-M33 MCU는 BLE 스택(컨트롤러 및 호스트)의 프로파일 및 서비스를 포함하여 응용 제품 펌웨어 개발을 위해 설계되었습니다. 이 MCU는 최저 물리층(PHY)의 통합 RF 모듈에서 일반 속성 프로파일(GATT) 및 일반 액세스 프로파일(GAP)로의 데이터 흐름을 처리합니다(그림 2). GAP는 애드버타이징과 연결을 정의 및 관리하고, GATT는 입/출력 데이터 교환을 정의 및 관리합니다.

무선 통신 PHY에서 GATT 및 GAP로의 데이터 흐름을 처리하는 MCU 이미지그림 2: MCU는 무선 통신 PHY에서 GATT 및 GAP로의 데이터 흐름을 처리합니다. (이미지 출처: STMicroelectronics)

BLE는 비트 시퀀스의 고정 프레임 구조로 정의되는 데이터 패킷을 전송합니다. 사용자 데이터 영역의 길이는 27바이트 ~ 251바이트 사이에서 동적으로 변경될 수 있습니다.

BLE 응용 제품 예

온라인 백과 사전인 STM32WBA MCU용 STMicro-Wiki에는 다음을 포함하여 Bluetooth 역할에 대한 여러 응용 제품 예제가 포함되어 있습니다.

  • 애드버타이저: BLE_Beacon
  • 센서: BLE_HealthThermometer,BLE_HeartRate
  • 브리지: BLE_SerialCom
  • 라우터: BLE_p2pRouter
  • 데이터: BLE_DataThroughput, BLE_p2pServer, Multi Slave BLE_p2pClient
  • RF 모니터: BLE_TransparentMode,
  • 무선 펌웨어 업데이트: BLE_Fuota

자신만의 BLE 프로젝트에 따라 장치 설계자와 프로그래머는 해당 GitHub 프로젝트 디렉터리에서 NUCLEO 기판으로 컴파일된 이진 파일을 플래시하고 스마트폰 또는 데스크톱 PC에 대한 Bluetooth 연결을 시작할 수 있습니다. 필수 프로그래밍 장치 소프트웨어인 STM32CubeProg는 디버그 인터페이스와 부트로더 인터페이스를 통한 장치 메모리 읽기, 쓰기, 확인 기능을 제공합니다.

BLE 예제 '건강 온도계 센서' 실행

HTP(Health Thermometer Profile)는 Bluetooth Special Interest Group(SIG)에 의해 정의된 GAP 기반 저에너지 프로파일입니다. HTP는 건강 온도계 수집기와 건강 온도계 센서를 결합하여 다양한 응용 제품에서 데이터를 연결하고 교환합니다(그림 3).

NUCLEO 기판과 스마트폰 사이의 BLE 통신 이미지(확대하려면 클릭)그림 3: NUCLEO 기판(센서/서버)와 스마트폰(수집기/클라이언트) 사이의 BLE 통신 (이미지 출처: STMicroelectronics)

건강 온도계 센서:

  • 건강 온도계 서비스를 통한 온도 측정 및 노출
  • 원격 장치에서 식별할 장치 정보 서비스 포함
  • GATT 서버

건강 온도계 수집기:

  • 건강 온도계 센서에 의해 노출된 정보에 액세스하여 최종 사용자에게 표시하거나 나중에 분석하기 위해 비휘발성 메모리에 저장할 수 있음
  • GATT 클라이언트

건강 온도계 이진 파일이 NUCLEO의 MCU에 플래시된 후, 개발자는 다음 단계에 따라 BLE 응용 제품 예제를 실행해야 합니다.

스마트폰 앱 사용

  1. ST BLE Toolbox를 스마트폰에 설치합니다. 이 앱은 ST BLE 장치를 조작하고 디버깅하는 데 사용됩니다.
  2. 건강 온도계 응용 제품을 통해 STM32WBA NUCLEO 기판의 전력이 플래시됩니다.
  3. 스마트폰 Bluetooth(BT)를 켜고 앱에서 사용 가능한 BT 장치를 스캔합니다. 건강 온도계를 선택하고 연결합니다.

웹 브라우저 인터페이스 사용

  1. 브라우저 호환성 확인:
    • 데스크톱 컴퓨터: Chrome, Edge 또는 Opera
    • 스마트폰 장치: Chrome Android
  2. 건강 온도계 응용 제품을 통해 STM32WBA NUCLEO 기판의 전력이 플래시됩니다.
  3. 컴퓨터에서 Bluetooth를 활성화합니다.
  4. 브라우저에서 https://applible.github.io/Web_Bluetooth_App_WBA/ 웹 페이지를 엽니다.
  5. 웹 페이지 상단의 연결 버튼을 클릭한 후 장치 목록에서 HT_xx를 선택하고 페어링을 클릭합니다. 이제 장치가 연결됩니다.
  6. 건강 온도계를 클릭하여 인터페이스를 표시합니다.

표 1에서는 건강 온도계 센서의 서비스 구조를 설명합니다. 128비트 길이 UUID(Universally Unique Identifier)는 개별 장치 특성과 서비스를 구분합니다.

서비스 특성 속성 UUID 크기
건강 온도계 서비스 0x1809
온도 측정 표시 0x2A1C 13
온도 유형 읽기 0x2A1D 1
중간 온도 알림 0x2A1E 13
측정 간격 읽기, 쓰기, 표시 0x2A21 2
장치 정보 서비스 0x180A
제조업체 이름 문자열 읽기 0x2A29 32
모델 번호 문자열 읽기 0x2A24 32
시스템 ID 읽기 0x2A23 8

표 1: '건강 온도계 센서' GAP용 GATT 서비스 및 UUID (이미지 출처: STMicroelectronics)

GitHub의 다음 JavaScript 시퀀스는 웹 브라우저 인터페이스에서 다양한 GATT 데이터 처리량 특성을 필터링하는 방법을 보여줍니다(목록 1).

복사
[...]

// Filtering the different datathroughput characteristics
  props.allCharacteristics.map(element => {
    switch (element.characteristic.uuid) {
      case "00002a1c-0000-1000-8000-00805f9b34fb":
        IndicateCharacteristic = element; // Temperature Measurement (TEMM)
        IndicateCharacteristic.characteristic.startNotifications();
        IndicateCharacteristic.characteristic.oncharacteristicvaluechanged = 
        temperatureMeasurement;
        break;
      case "00002a1d-0000-1000-8000-00805f9b34fb":
        ReadCharacteristic = element; // Temperature Type
        readTemperatureType();
        break;
      case "00002a1e-0000-1000-8000-00805f9b34fb":
        NotifyCharacteristic = element; //Immediate Temperature
        NotifyCharacteristic.characteristic.startNotifications();
        NotifyCharacteristic.characteristic.oncharacteristicvaluechanged = notifHandler;
        break; 
      case "00002a21-0000-1000-8000-00805f9b34fb":
        ReadWriteIndicateCharacteristic = element; // Measurement Interval
        readMeasurementInterval();
        break;
      default:
        console.log("# No characteristics found..");
    }
  });

[...]

목록 1: 이 JavaScript 시퀀스는 표 1에서 다양한 GATT 데이터 처리량 특성을 필터링합니다. (목록 출처: GitHub, STMicroelectronics)

BLE 스택 공정 추적

NUCLEO-WBA52CG에는 직렬 인터페이스를 통해 PC와 통신하기 위해 STM32 가상 COM 포트 구동기를 지원하는 ST-LINK/V3 회로 내 디버거 및 프로그래밍 장치가 내장되어 있습니다. 소프트웨어 단자를 통해 이 직렬 통신 포트를 열어서 APP_DBG_MSG 함수에 의해 코드로 생성되는 짧은 문자 메시지를 표시할 수 있습니다.

app_conf.h 파일에서 프로젝트 내부 트레이스를 활성화해야 합니다.

#define CFG_DEBUG_APP_TRACE   (1)

또한 'SE BLE Toolbox' 스마트폰 앱의 <응용 제품 로그> 탭에는 트레이스 기능이 제공됩니다.

BLE 5.3 응용 제품 프로그래밍

STM32WBA52 MCU 프로그래밍을 위해 STM은 하드웨어 추상화 계층(HAL), 저계층 애플리케이션 프로그래밍 인터페이스(API) 및 CMSIS, 파일 시스템, RTOS, BLE/802.15.4, 스레드 및 Zigbee 스택으로 구성되는 STM32CubeWBA-Package와 STMicroelectronics 기판에서 실행되는 예제를 함께 제공합니다.

IAR Embedded Workbench for Arm(EWARM), Keil MDK-ARM, STM32CubeIDE 등 세 개발 환경(IDE) 모두에 대한 프로젝트 구조 설정이 각 NUCLEO-WBA52CG BLE 응용 제품 예제에 포함되어 있습니다.

건강 온도계 예제의 경우 프로젝트 디렉터리 트리의 특정 파일만(그림 4 왼쪽 프레임) GATT 서비스를 생성합니다. 표 1의 두 루틴 '건강 온도계 서비스'(HTS) 및 '장치 정보 서비스'(DIS)는 병렬로 실행됩니다(그림 4의 오른쪽 하단).

프레임 코드 파일에 자신만의 GATT 콘텐츠를 추가할 수 있는 프로그래밍 장치 구성도(확대하려면 클릭)그림 4: 프로그래밍 장치는 자신만의 GATT 콘텐츠를 프레임 코드 파일에 추가할 수 있고(왼쪽), 이러한 파일은 GATT 서비스를 생성합니다(오른쪽). (이미지 출처: STMicroelectronics)

프로그래밍 장치는 자신만의 프로젝트에 대한 소스 코드를 사용하고 USER CODE BEGIN/USER CODE END(목록 2) 표시된 영역에서 GATT 콘텐츠로 소스 코드를 확장할 수 있습니다. hts.c 파일의 초기화 시퀀스는 UUID 0x2A1C를 전달하는 GATT 특성 온도 측정(TEMM)을 생성합니다.

복사
[...]
 void HTS_Init(void)
 {
 [...]

  /* TEMM, Temperature Measurement */
  
  uuid.Char_UUID_16 = 0x2a1c;
  ret = aci_gatt_add_char(HTS_Context.HtsSvcHdle,
                          UUID_TYPE_16,
                          (Char_UUID_t *) &uuid,
                          SizeTemm,
                          CHAR_PROP_INDICATE,
                          ATTR_PERMISSION_NONE,
                          GATT_DONT_NOTIFY_EVENTS,
                          0x10,
                          CHAR_VALUE_LEN_VARIABLE,
                          &(HTS_Context.TemmCharHdle));
  if (ret != BLE_STATUS_SUCCESS)
  {
    APP_DBG_MSG("  Fail   : aci_gatt_add_char command  : TEMM, error code: 0x%2X\n", ret);
  }
  else
  {
    APP_DBG_MSG("  Success: aci_gatt_add_char command  : TEMM\n");
  }

  /* USER CODE BEGIN SVCCTL_InitService2Char1 */

  /* USER CODE END SVCCTL_InitService2Char1 */

 [...]
 }
[...]

목록 2: hts.c 파일의 초기화 시퀀스는 GATT 특성 TEMM을 생성합니다. (이미지 출처: GitHub, STMicroelectronics)

외부 부품 요구 사항

STM32WBA52 무선 MCU에는 Bluetooth 기능 기본 작동을 위한 소수의 외부 부품만 필요합니다. 여기에는 전압 공급용 커패시터, 수정 발진기, 임피던스 정합 인쇄 회로 기판(pc 기판) 안테나, 고조파 필터가 포함됩니다(그림 5).

STMicroelectronics의 STM32WBA52 RF 단자 구성도(확대하려면 클릭)그림 5: Bluetooth의 경우 STM32WBA52의 RF 단자는 임피던스 정합 회로망, 고조파 필터, 안테나에 연결됩니다. (이미지 출처: STMicroelectronics)

결론

무선 IoT 장치 개발자는 빠르게 진화하는 시장에서 경쟁하기 위해 설계 주기를 단축하고 비용을 절감해야 합니다. 하지만 RF 설계는 까다롭습니다. 통합 BLE 5.3 인터페이스가 탑재된 STM32WBA52 MCU를 사용하면 개발자가 비용 효율적으로 시장 출시 기간을 단축할 수 있습니다. 미리 프로그래밍된 BLE 스택과 여러 BLE 응용 제품 예제가 맞춤형 프로젝트를 위한 프로그래밍 템플릿을 형성하며, 이 템플릿에 GATT 콘텐츠를 쉽게 삽입할 수 있습니다.

DigiKey logo

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

작성자 정보

Jens Wallmann

Jens Wallmann

Jens Wallmann은 인쇄 및 온라인 전자 출판물에 기고하는 프리랜서 편집자로 활동하고 있습니다. 전기 엔지니어(통신 공학)이자 숙련된 산업 전자 엔지니어인 그는 측정 기술, 자동차 전자 장치, 공정 산업 및 무선 주파수를 전공으로, 전자 장비 개발 분야에서 25년 이상의 경력을 보유하고 있습니다.

게시자 정보

DigiKey 유럽 편집자