배터리 구동 Bluetooth 5 인증 다중 센서 IoT 장치를 빠르게 배포

작성자: Stephen Evanczuk

DigiKey 북미 편집자 제공

Bluetooth를 지원하는 휴대용 다중 센서 설계에 대한 수요가 빠르게 증가하는 다양한 시장에서 개발자는 효과적인 솔루션을 찾는 데 어려움을 겪고 있습니다. 초저전력 성능에 대한 기본 요구 사항 외에도 장치-클라우드 사물 인터넷(IoT) 응용 분야에서 신속하게 시제품을 제작하고 설계를 평가하고 맞춤화하는 일은 급변하는 기회를 활용하기 위해 필수적이 되었습니다.

이 기사에서는 ON Semiconductor의 초저전력 Bluetooth 프로세서 SoC(시스템 온 칩)를 설명하고 SoC 또는 연결된 SiP(시스템 인 패키지) 버전이 배터리 구동 설계 관련 기본 요구 사항을 충족하는 방법에 대해 살펴봅니다. 연계된 평가 기판 및 IoT 개발 환경에서는 다중 센서 장치-클라우드 응용 제품 생성 공정을 획기적으로 간소화합니다.

저전력 Bluetooth 응용 제품

Bluetooth를 지원하는 배터리 구동 장치는 피트니스 웨어러블, 의료 모니터, 조명, 잠금장치, 가전, 자동차 등 스마트 제품 응용 분야에서 연결 및 처리 기능을 제공합니다. 사용자의 기대가 높고 경쟁이 치열하기 때문에 더 많은 센서로부터 더 정밀한 데이터를 얻는 보다 종합적인 응용 제품에 대한 요구가 지속해서 증가하고 있습니다. 산업 응용 분야와 같은 일부 영역에서는 작업자 안전, 장비 상태 또는 기본 자산 관리 보장에 움직임, 진동, 충격, 온도, 습도 또는 기타 데이터를 감지하는 다중 센서 기능이 필수적입니다.

사용자의 일상 생활에서 이러한 장치는 여러 센서로부터 데이터를 안정적으로 제공할 뿐만 아니라 배터리의 교체 및 충전 빈도도 낮아야 합니다. 이는 만족스러운 사용자 환경을 구축하는 데 매우 중요한 부분입니다. 동시에 기본 솔루션은 일반적으로 배터리 구동 Bluetooth 제품 설계와 관련된 비용을 절감하고 복잡성을 줄이는 데 도움을 주어야 합니다.

이러한 솔루션 중 하나인 ON Semiconductor의 NCH-RSL10-101WC51-ABG RSL10 SoC는 초저전력 작동 요구 사항을 충족하면서 최종 제품 개발의 가속화를 지원하는 SiP 및 평가 기판용 하드웨어 기반을 제공합니다. 개발자는 RSL10 기반 통합 솔루션을 이용하여 맞춤형 개발용 ON Semiconductor 소프트웨어 또는 빠른 개발용 DigiKey DK IoT Studio를 통해 초저전력 다중 센서 응용 제품을 신속하게 배포하고 평가할 수 있습니다.

RSL10 Bluetooth 무선 SoC 내부

RSL10은 웨어러블, 모바일 제품 및 기타 연결 제품 분야에서 증가하는 초저전력 설계에 대한 요구 사항을 충족하도록 특별히 고안된 Bluetooth 5 인증 무선 SoC입니다. RSL10은 포괄적인 통합 서브 시스템 및 기능 블록과 함께 일반 Bluetooth 지원 IoT 장치 및 웨어러블의 요구 사항을 충족하는 단일 칩 솔루션을 제공합니다(그림 1).

ON Semiconductor의 RSL10 SoC 구성도(확대하려면 클릭)그림 1: ON Semiconductor RSL10 SoC는 프로세서와 무선 서브 시스템을 통합하여 Bluetooth 5 인증 장치를 위한 완전한 초저전력 솔루션을 제공합니다. (이미지 출처: ON Semiconductor)

장치의 주요 처리 블록에는 Arm® Cortex®-M3 코어, 전용 LPDSP32 32비트 이중 하버드 아키텍처 디지털 신호 처리(DSP) 코어, 전체 Bluetooth 5 인증 무선 서브 시스템이 포함되며, 모두 전용 메모리 영역과 공유 메모리 영역에서 지원됩니다. 코드와 데이터를 보호하기 위해 IP 블록에서는 장치의 온칩 플래시, RAM 또는 코어에 대한 외부 액세스를 차단하는 메커니즘을 제공합니다. 전체 표준 직렬 주변 장치와 함께 이 장치는 4채널 아날로그 디지털 컨버터(ADC), 범용 IO(GPIO) 및 오디오 인터페이스를 제공합니다. 전압 조정기 세트는 1.1V ~ 3.3V의 단일 전압 소스로 장치를 작동할 수 있도록 개별 내부 전력 영역을 공급합니다.

다양한 802.15.4 저속 데이터 전송률 개인용 무선 네트워크(WPAN) 프로토콜을 지원할 수 있지만, RSL10은 내장된 하드웨어와 소프트웨어를 조합하여 Bluetooth를 포괄적으로 지원합니다. Bluetooth 물리층(PHY)을 구현하는 통합 무선 주파수(RF) 프런트 엔드를 기반으로 하드웨어를 지원합니다. RF 프런트 엔드로 작업하는 기저대역 컨트롤러는 Bluetooth 프로토콜 스택의 패킷 및 프레임 처리 계층에 대한 하드웨어 지원을 제공합니다. 내장된 소형 소프트웨어 커널은 RF 트래픽 관리, 메시지 교환 및 타이머 기능에 사용하는 이벤트 및 메시지 처리 서비스를 제공합니다. 마지막으로 Bluetooth 라이브러리 및 연결된 프로파일 라이브러리는 Arm Cortex-M3 프로세서에서 실행되어 응용 소프트웨어에 대한 전체 Bluetooth 스택을 완성합니다(그림 2).

ON Semiconductor의 RSL10 SoC 전체 Bluetooth 스택 구성도그림 2: ON Semiconductor RSL10 SoC는 기저대역 프로세서와 기본 RF 프런트 엔드를 비롯한 Arm Cortex-M3 코어 및 전용 하드웨어에서 실행되는 소프트웨어를 조합하여 전체 Bluetooth 스택을 제공합니다. (이미지 출처: ON Semiconductor)

RF 프런트 엔드 및 기저대역 프로세서의 하드웨어 지원을 기반으로 구축되는 소프트웨어 스택에서는 낮은 수준의 Bluetooth 저에너지(BLE) 프로토콜 서비스 계층(논리적 링크 제어 및 적응 프로토콜(L2CAP), 속성 프로토콜(ATT), 보안 관리자 프로토콜(SMP) 등), 연결을 정의하는 데 사용되는 일반 액세스 프로파일(GAP), 서비스와 특성에 기반한 데이터 교환을 정의하는 데 사용되는 일반 속성 프로파일(GATT)을 결합합니다.

Bluetooth 프로토콜 스택과 함께 RSL10 프로파일 라이브러리는 심박수, 혈당 모니터링, 혈압 등 웨어러블 응용 분야에 널리 사용되는 다양한 표준 Bluetooth 프로파일, Rezence 무선 충전 프로파일, 휴먼 인터페이스 장치(HID), 위치 및 실행, 순환 프로파일 등을 지원합니다.

효과적인 성능

설계자에게 가장 중요한 점은 RSL10이 62.5kbps ~ 2000kbps의 데이터 속도로 Bluetooth 연결을 제공하면서도 상대적으로 적은 전류를 소비한다는 점입니다. 파고 수신(Rx) 전류는 공급 전압(VBAT)이 1.25V이면 5.6mA이고, VBAT가 3V이면 3.0mA입니다. 파고 송신(Tx) 전류는 송신 전력이 0dBm(1mW로 참조되는 dB)일 때 VBAT가 1.25V이면 8.9mA이고, 송신 전력이 0dBm일 때 VBAT가 3V이면 4.6mA입니다.

RSL10의 에너지 효율은 업계 최고의 인증된 EEMBC ULPMark 코어 프로파일(3V에서 1090, 2.1V에서 1260)로 입증된 아키텍처를 통해 확장됩니다.

개발자는 RSL10이 전체 실행 모드에 있는 동안 하드웨어 블록을 선택적으로 비활성화하거나 유휴 동안 장치를 저전력 대기 모드 또는 중간 절전 모드로 전환하여 효율을 높일 수 있습니다. RSL10에서는 트랜시버 이벤트 간에 BLE 연결을 유지하기 위해 이러한 전력 모드 메커니즘을 자동으로 적용합니다. 따라서 장치에서 1.1mA만 소비하면서 세 Bluetooth 애드버타이징 채널 모두에서 Bluetooth 애드버타이징 작업을 5초 간격으로 수행할 수 있습니다.

대기 모드에서는 개발자가 활동 지속 시간이 수백 밀리초 이하로 짧은 기간 동안 전력을 절약할 수 있는 옵션을 제공합니다.

대기 모드에서 RSL10은 논리와 메모리를 클록 게이팅하고 공급 전압을 줄여서 누설 전류를 낮추면 일반 전력 소비는 30mA에 불과합니다. 온칩 전력 회로는 활성 상태로 유지되므로 장치가 상대적으로 신속히 활성 상태로 복귀할 수 있습니다.

중간 절전 모드에서는 외부 이벤트에 대한 응답 기능을 유지하면서 전력 소비를 매우 낮게 실현할 수 있는 다양한 옵션을 제공합니다. 8Kbyte의 RAM 보존이 유지되는 모드에서 작동하는 경우, 장치는 1.25V VBAT에서 300nA 또는 3V VBAT에서 100nA만 소비합니다. 최대 절전 모드에서 장치는 전용 절전 해제 핀에서 수신되는 신호에 응답하여 절전 해제 기능을 유지하면서 1.25V에서 50nA(3V VBAT에서 25nA)만 소비합니다.

집적 설계

개발자는 RSL10의 포괄적인 기능을 사용하여 성능 또는 Bluetooth 연결성에 영향을 주지 않으면서 전력에 최적화된 설계를 생성할 수 있습니다. 높은 수준의 통합으로 하드웨어 설계를 단순화하는 데 도움이 됩니다. 통합 커패시터와 같은 기능은 실시간 클록(RTC)을 위한 32kHz 수정이 탑재된 외장형 커패시터 또는 RF 프런트 엔드 및 기본 시스템 클록을 위한 48MHz 수정 발진기에 대한 일반적인 요구 사항을 제거합니다. 따라서 RSL10은 설계를 완료하는 데 최소한의 외장형 부품만 필요합니다(그림 3).

벅 모드 작동을 위한 ON Semiconductor의 RSL10 구성을 보여주는 구성도그림 3: 높은 수준으로 통합되는 ON Semiconductor RSL10 SoC는 벅 모드 작동 구성에 표시된 대로 상대적으로 적은 수의 외장형 부품으로 전체 설계를 제공합니다. (이미지 출처: ON Semiconductor)

이 장치는 디지털, 메모리 및 RF 프런트 엔드 블록 공급을 위해 여러 프로그래밍 가능 전압 조정기를 통합합니다. 충전 펌프는 아날로그 블록 및 플래시 메모리에 필요한 높은 전압을 제공합니다. 이러한 통합 전력 시스템 덕분에 1.1V ~ 3.3V 사이의 단일 공급 소스로 장치를 작동할 수 있습니다.

전압 레벨이 1.4V 미만인 경우 설계자는 내장형 저드롭아웃(LDO) 조정기를 사용하여 장치를 공급할 수 있습니다. 이보다 높은 레벨에서는 장치의 통합 벅 컨버터에서 인덕터를 추가하여 효율을 높일 수 있습니다. 두 가지 전원 구성의 회로 설계의 차이는 그림 3과 같이 LDO 모드 작동에서 VCC 핀과 VDC 핀 사이의 추가 인덕터 제거 가능 여부에서만 나타납니다. ON Semiconductor는 RSL10에서 부품 교체 및 물리적 인쇄 회로 기판 설계 지침을 제공합니다.

RSL10으로 시스템 설계

이러한 하드웨어 인터페이스를 구축하는 데 필요한 시간 또는 관련 자료가 없는 개발자를 위해 ON Semiconductor의 NCH-RSL10-101S51-ACG RSL10 SiP는 시스템 설계를 위한 맞춤형 하드웨어 구성에 대한 효과적인 대안을 제공합니다. RSL10 SiP는 6mm x 8mm x 1.5mm 크기로, RSL10 SoC, 무선 안테나 및 필요 전체 부품 세트가 단일 패키지에 통합되어 있습니다. RSL10 SiP를 사용하여 설계자는 완전하게 초저전력 인증된 Bluetooth 하드웨어 솔루션을 설계에 적용하고 맞춤형 하드웨어 요구 사항에 집중할 수 있습니다.

마찬가지로 ON Semiconductor의 RSL10 소프트웨어 패키지를 사용하면 맞춤형 요구 사항에 소프트웨어 개발 노력을 집중할 수 있습니다. Arm Cortex 마이크로 컨트롤러 소프트웨어 인터페이스 표준(CMSIS) 하드웨어 추상화 계층(HAL)을 기반으로 구축되는 ON Semiconductor RSL10 소프트웨어 개발 키트(SDK)는 RSL10 CMSIS-Pack에 배포되는 드라이버, 유틸리티 및 샘플 코드를 제공합니다(그림 4).

ON Semiconductor의 RSL10 소프트웨어 환경 구성도그림 4: ON Semiconductor RSL10 소프트웨어 환경에서는 포괄적인 서비스 및 유틸리티를 기준 패키지로 제공하고 패키지를 추가하여 Bluetooth 메시 네트워킹 및 Bluetooth IoT 개발을 지원할 수 있습니다. (이미지 출처: ON Semiconductor)

이 팩에는 Bluetooth 지원, FreeRTOS 실시간 운영 체제(RTOS), 펌웨어 무선(FOTA) 업데이트 유틸리티를 비롯한 특수 서비스가 포함되어 있습니다. 또한, ON Semiconductor는 Bluetooth 메시 네트워킹 및 Bluetooth IoT 개발(B-IDK)을 위한 별도 팩을 통해 더 많은 특수 기능을 지원합니다. 예를 들어 B-IDK CMSIS-Pack은 센서 드라이버, 클라우드 연결 지원, 관련 응용 분야 레벨 소프트웨어 샘플을 비롯한 IoT 관련 서비스를 제공합니다.

맞춤형 개발을 위해 소프트웨어 엔지니어는 기준 팩과 선택 사양 팩을 통합 개발 환경(IDE)으로 로드하기만 하면 됩니다. RSL10 소프트웨어 배포에서는 ON Semiconductor의 고유 IDE와 Arm Keil µVision 및 IAR Embedded Workbench 환경을 지원합니다. 팩을 로드한 후 개발자는 샘플 응용 제품과 주요 기능의 시험 구현을 살펴볼 수 있습니다.

BLE 다중 센서 기판의 배포 준비

RSL10 SiP와 RSL10 SDK를 함께 사용하면 초저전력 작동을 위한 엄격한 요구 사항 충족이 가능한 맞춤형 Bluetooth 지원 장치를 신속하게 개발할 수 있습니다. 하지만 일부 응용 분야에서는 맞춤형 솔루션을 구축하는 데 필요한 시간과 관련 자료가 제공되지 않거나 필요한 경우도 있습니다.

예를 들어 산업용 다중 센서 모니터 또는 스마트 잠금장치 장치 및 조명 스위치에는 여러 센서 유형을 통해 데이터를 제공하면서 배터리 수명을 늘릴 수 있는 소형 Bluetooth 지원 장치가 필요할 수 있습니다. 이러한 응용 분야에서 ON Semiconductor RSL10-SENSE-GEVK 다중 센서 평가 키트는 즉각적인 하드웨어 솔루션을 제공할 수 있습니다. 국제적으로 인증된 이 평가 키트의 기판은 초저전력 응용 분야에 배포할 수 있습니다.

RSL10-SENSE-GEVK 기판에는 RSL10 SiP, 여러 센서, ON Semiconductor N24RF64DWPT3G 64Kbyte NFC(근거리 무선 통신) EEPROM, RGB LED, 프로그래밍 가능 버튼이 포함되어 있습니다. 이 기판은 지름이 30mm 미만인 원형 실장 면적을 차지합니다. 이는 키트에 포함된 CR2032 동전형 전지 배터리 및 유연한 NFC 안테나보다 약간 더 큽니다(그림 5).

ON Semiconductor의 RSL10-SENSE-GEVK 평가 기판 이미지그림 5: ON Semiconductor RSL10-SENSE-GEVK 평가 기판은 RSL10 SiP를 웨어러블 및 IoT 장치에 일반적으로 필요한 센서의 기판 어레이와 결합합니다. (이미지 출처: ON Semiconductor)

기판은 펌웨어가 미리 로드된 상태로 제공되며, 펌웨어는 다음과 같이 여러 센서의 작동을 입증하도록 설계되었습니다.

  • 주변광 센서(ON Semiconductor NOA1305)
  • 3축 가속도계와 3축 자이로스코프를 포함하는 관성 측정 장치(Bosch Sensortec BHI160)
  • 3축 디지털 지자기 센서(Bosch Sensortec BMM150)
  • 환경 센서(Bosch Sensortec BME680) - 가스, 기압, 습도 및 온도 센서 포함
  • 디지털 마이크

개발자가 RSL10-SENSE-GEVK 기판을 사용하여 센서 컬렉션 및 RSL10 성능을 신속하게 평가할 수 있도록 돕기 위해 ON Semiconductor는 Android 및 iOS App Store를 통해 RSL10 Sense and Control 모바일 앱을 제공합니다.

이 앱은 Bluetooth 지원 모바일 장치에서 실행되며, 개발자는 이 앱을 통해 다양한 센서 구성, 샘플링 간격 및 주기, RSL10 전력 모드 등과 같은 파라미터로 전력 소비를 모니터링할 수 있습니다. 앱에서 원하는 대로 센서 구성을 설정하면 일련의 창에 결과가 표시됩니다(그림 6).

ON Semiconductor의 RSL10 Sense and Control 모바일 앱 이미지그림 6: ON Semiconductor RSL10 Sense and Control 모바일 앱은 RSL10-SENSE-GEVK 평가 기판의 다중 센서 성능을 평가할 수 있도록 준비된 솔루션을 제공합니다. (이미지 출처: ON Semiconductor)

개발자는 앞서 언급한 CMSIS-Pack 배포 및 IDE 옵션을 사용하여 데모 코드를 확인하고 수정할 수 있습니다. 새로운 펌웨어를 생성한 후 개발자는 태그 연결 TC2050-IDC-NL과 같은 10핀 니들 헤더에 어댑터를 연결하여 이미지를 로드해야 합니다. 이 어댑터는 RSL10-SENSE-GEVK 다중 센서 평가 키트에 포함되어 있지 않지만 디버그 버전 키트(RSL10-SENSE-DB-GEVK)에서는 납땜 처리된 10핀 디버그 플러그와 이 플러그에 연결하는 Segger Microcontroller Systems J-Link LITE Cortex 디버거를 제공합니다.

DK IoT Studio를 통한 빠른 개발

RSL10-SENSE-GEVK 다중 센서 평가 기판은 연장된 배터리 수명이 필요한 다중 센서 응용 분야의 폭넓은 어레이에 대한 하드웨어 개발 문제를 해결할 수 있습니다. 대부분의 응용 분야에서 DigiKey의 개별 온라인 개발 도구를 사용하면 시제품 또는 생산 시스템의 신속한 개발마저도 소프트웨어 코딩이 필요하지 않습니다. RSL10-SENSE-GEVK 평가 기판에서 DK IoT Studio를 사용하면 개발자가 코드 없는 개발 방식에 따라 전체 센서-클라우드 응용 제품을 신속히 배포할 수 있습니다.

DK IoT Studio 그래픽 인터페이스를 사용하여 개발자는 IoT 응용 분야에 사용되는 광범위한 하드웨어 및 소프트웨어 항목을 나타내는 요소를 드래그하여 놓습니다. 하드웨어 요소는 RSL10-SENSE-GEVK 평가 기판에 포함된 것을 비롯하여 개별 GPIO 핀부터 전체 센서 장치까지 다양합니다. 소프트웨어 요소는 프로그램에 사용되는 루프 및 조건문과 같은 일반 하위 레벨 기능부터 클라우드 서비스 인터페이스까지 다양합니다.

이러한 요소를 조합하여 개발자는 DK IoT Studio 그래픽 인터페이스의 별도 탭에서 소프트웨어 코드를 작성할 필요 없이 RSL10, 컴패니언 DK IoT Studio 앱 및 클라우드에서 실행되는 작업을 정의합니다.

이러한 접근 방식은 요소와 연결된 "기능" 및 "이벤트"를 기반으로 구축됩니다. 예를 들어 BME680 통합 환경 센서에서는 온도, 기압 및 습도를 읽을 수 있는 기능을 제공합니다. 간격 요소와 같은 기타 기능 요소는 요소의 기능이 실행되도록 이벤트를 주기적으로 트리거합니다. 스마트폰과 같은 Bluetooth 지원 모바일 장치와 Bluetooth 통신을 나타내는 다른 요소도 있습니다.

DigiKey를 이용하면 이 방식으로 응용 제품을 간단히 빌드할 수 있습니다. DigiKey는 RSL10-SENSE-GEVK 평가 기판을 위한 데모 프로젝트를 많이 제공합니다. 예를 들어 BME680 데모 프로젝트에서 간격 요소는 1000ms마다 온도, 기압 및 습도를 읽는 BME680 센서 기능을 트리거합니다. 그러면 센서 출력에 연결된 Bluetooth 요소가 이러한 센서 판독 값을 Bluetooth 장치로 전송합니다(그림 7).

DigiKey의 DK IoT Studio 장치 탭 이미지(확대하려면 클릭)그림 7: DigiKey DK IoT Studio 장치 탭에서 개발자는 요소를 결합하여 RSL10-SENSE-GEVK 평가 기판의 환경 센서에서 데이터를 주기적으로 읽은 다음 Bluetooth 연결을 통해 센서 데이터를 컴패니언 모바일 앱으로 전송합니다. (이미지 출처: DigiKey)

응용 제품 탭에서 개발자는 DigiKey 모바일 앱 내에서 Bluetooth를 통해 수신되는 데이터를 표시하도록 사용자 인터페이스를 빌드할 수 있습니다. BME680 프로젝트 데모에서 이 응용 제품은 온도, 기압 및 습도를 표시하고 각 센서 판독 값을 클라우드 요소로 전송합니다(그림 8).

DigiKey의 DK IoT Studio 응용 제품 탭 이미지(확대하려면 클릭)그림 8: DigiKey DK IoT Studio 응용 제품 탭에는 연결된 모바일 앱의 센서 데이터를 표시하기 위한 캔버스와 표시된 데이터를 생성하고 모바일 앱에서 다른 작업(예: 클라우드에 데이터 전송)을 수행하기 위한 창이 제공됩니다. (이미지 출처: DigiKey)

중간 앱을 사용하여 센서 데이터를 클라우드 응용 제품으로 전달하는 이 방식은 IoT 장치와 클라우드의 직접 연결을 하지 않기 위해 일반적으로 사용됩니다. Wi-Fi 통신 기능이 내장된 장치의 경우 센서 데이터를 클라우드에 직접 전송할 수 있고 DK IoT Studio에서 해당 방법을 지원하는 Wi-Fi 요소와 기타 요소를 제공합니다. 어느 경우든 클라우드 작업은 클라우드 탭에서 지정됩니다. 이 경우 온도, 기압 및 습도 결과는 DK IoT Studio에 제공되는 클라우드 데이터 스토리지 서비스에 저장됩니다(그림 9).

DK IoT Studio 클라우드 탭 이미지(확대하려면 클릭)그림 9: DK IoT Studio 클라우드 탭에서 개발자는 클라우드 기반 작업(예: 클라우드 스토리지에 센서 데이터 저장)을 정의합니다. (이미지 출처: DigiKey)

장치, 응용 제품 및 클라우드 역할 정의를 완료한 후 사용자는 DK IoT Studio에서 컴파일 아이콘을 클릭하여 프로젝트를 컴파일할 수 있습니다. 코드를 생성한 후 사용자는 결과 펌웨어를 RSL10-SENSE-GEVK로 로드할 수 있습니다. 그러면 사용자 시스템의 실행 중인 소형 유틸리티가 DK IoT Studio에서 해당 시스템과 연결된 평가 기판으로의 전송을 완료합니다. 응용 제품 및 클라우드 코드 세트는 DK IoT Studio 클라우드 환경에 자동으로 저장됩니다.

이 방식을 사용하면 응용 제품 코드를 개발할 필요가 없지만, 각 요소에 연결된 이벤트 및 기능은 DK IoT Studio 개발 환경에서 실행되는 내장형 요소 라이브러리(EEL)라는 소프트웨어 루틴 세트에서 정의됩니다.

예를 들어 BME680 "온도 읽기" 기능은 BME680 C 언어 모듈에 정의된 bme680_get_sensor_() 추상화를 호출합니다(목록 1).

BME680_Status_t BME680_GetTempData( float *tempC )

복사 {        _BME680_StartMeasurement();          struct bme680_field_data data;        int8_t retval = bme680_get_sensor_data( &data, &_BME680_DriverConfig );          if ( retval != 0 )        {               ATMO_PLATFORM_DebugPrint( "Error getting sensor data! %d\r\n", retval );               *tempC = 0;        }        else        {               *tempC = data.temperature / 100.0;        }          _BME680_Sleep();        return BME680_Status_Success; } 

목록 1: DK IoT Studio 그래픽 인터페이스의 기초가 되는 각 요소와 연결된 코드는 "온도 읽기" 기능이 트리거될 때마다 호출되는 이 기능과 같은 특정 기능을 구현합니다. (코드 출처: DigiKey)

동일한 모듈의 하위 레벨 루틴은 하위 레벨 루틴 bme680_get_regs()에서 읽는 센서 레지스터에서 원하는 데이터를 추출하는 데 필요한 비트 조작 작업을 구현합니다(목록 2).

복사 static int8_t read_field_data( struct bme680_field_data *data, struct bme680_dev *dev ) {        int8_t rslt;        uint8_t buff[BME680_FIELD_LENGTH] = { 0 };        uint8_t gas_range;        uint32_t adc_temp;        uint32_t adc_pres;        uint16_t adc_hum;        uint16_t adc_gas_res;        uint8_t tries = 10;          rslt = null_ptr_check( dev );          do        {               if ( rslt == BME680_OK )               {                      rslt = bme680_get_regs( ( ( uint8_t ) ( BME680_FIELD0_ADDR ) ), buff, ( uint16_t ) BME680_FIELD_LENGTH,                                              dev );                        data->status = buff[0] & BME680_NEW_DATA_MSK;                      data->gas_index = buff[0] & BME680_GAS_INDEX_MSK;                      data->meas_index = buff[1];                        adc_pres = ( uint32_t ) ( ( ( uint32_t ) buff[2] * 4096 ) | ( ( uint32_t ) buff[3] * 16 )                                                | ( ( uint32_t ) buff[4] / 16 ) );                      adc_temp = ( uint32_t ) ( ( ( uint32_t ) buff[5] * 4096 ) | ( ( uint32_t ) buff[6] * 16 )                                                | ( ( uint32_t ) buff[7] / 16 ) );                      adc_hum = ( uint16_t ) ( ( ( uint32_t ) buff[8] * 256 ) | ( uint32_t ) buff[9] );                      adc_gas_res = ( uint16_t ) ( ( uint32_t ) buff[13] * 4 | ( ( ( uint32_t ) buff[14] ) / 64 ) );                      gas_range = buff[14] & BME680_GAS_RANGE_MSK;                        data->status |= buff[14] & BME680_GASM_VALID_MSK;                      data->status |= buff[14] & BME680_HEAT_STAB_MSK;                        if ( data->status & BME680_NEW_DATA_MSK )                      {                            data->temperature = calc_temperature( adc_temp, dev );                            data->pressure = calc_pressure( adc_pres, dev );                            data->humidity = calc_humidity( adc_hum, dev );                            data->gas_resistance = calc_gas_resistance( adc_gas_res, gas_range, dev );                             break;                      }                        dev->delay_ms( BME680_POLL_PERIOD_MS );               }                 tries--;        }        while ( tries );          if ( !tries )        {               rslt = BME680_W_NO_NEW_DATA;        }          return rslt; } 

목록 2: DK IoT Studio의 각 요소에 연결된 코드는 상위 레벨 서비스의 다양한 추상 함수 호출을 특정 작업(예: 환경 센서 레지스터에서 데이터 추출)으로 해석합니다. (코드 출처: DigiKey)

앞서 제안한 것처럼 요소는 소프트웨어 개발자가 일상적으로 사용하는 조건문과 같은 메서드와 하드웨어 개발자가 일반적으로 사용하는 GPIO 제어와 같은 메서드를 제공합니다. DK IoT Studio 환경에서 해당 요소는 조건을 테스트하고 적절한 동작을 실행하기 위하여 간단한 드래그 앤 드롭 방식을 제공합니다. 예를 들어 다른 데모 프로젝트에서는 기판 주변광 센서의 출력이 일부 지정된 값을 초과할 때 RSL10-SENSE-GEVK 기판의 LED를 켜는 방법을 보여줍니다(그림 10).

DigiKey의 DK IoT Studio 이미지그림 10: DK IoT Studio는 더 추상적인 논리(예: 값 검사)와 하위 레벨 작업(예: ON Semiconductor RSL10-SENSE-GEVK 평가 기판의 LED에 연결되는 GPIO 설정)을 수행하는 데 필요한 요소를 제공합니다. (이미지 출처: DigiKey)

클라우드 측에서 유사한 테스트로 모바일 앱에 대한 메타데이터를 생성할 수 있습니다. 이 경우 앱에서 메타데이터를 사용하여 센서에서 감지되는 문제를 나타내는 경고 아이콘을 설정할 수 있습니다(그림 11).

상태 메타데이터를 설정하는 DK IoT Studio 조건 확인 이미지그림 11: DK IoT Studio는 앱에 대한 상태 메타데이터를 설정하고 클라우드 스토리지에 데이터를 보존하는 이 조건 확인과 같이 더 정교한 작업을 클라우드 및 모바일 앱에서 지원합니다. (이미지 출처: DigiKey)

LED를 토글하기 위해 기본 코드를 실행하는 경우 기본 환경에서 해당 이벤트와 연결된 상위 레벨 함수를 호출하는 호출 체인을 따릅니다. SetPinState 함수는 지정된 핀을 설정하는 ON Semiconductor RSL10 SDK 라이브러리 함수 Sys_DIO_Config()를 호출하여 필요한 기능을 구현하는 하위 레벨 함수 ATMO_ONSEMI_GPIO_SetPinState()를 가리키도록 초기화 도중 설정되는 함수 포인터입니다(목록 3).

복사 ATMO_GPIO_Status_t ATMO_GPIO_SetPinState( ATMO_DriverInstanceHandle_t instance, ATMO_GPIO_Device_Pin_t pin,         ATMO_GPIO_PinState_t state ) {        if ( !( instance < numberOfGPIODriverInstance ) )        {               return ATMO_GPIO_Status_Invalid;        }          return gpioInstances[instance]->SetPinState( gpioInstancesData[instance], pin, state ); } 

목록 3: DK IoT Studio는 하위 레벨 서비스 계층에서 실현되고 하드웨어 특정 작업(예: GPIO 비트 설정)을 구현하는 일반 추상화 세트를 제공합니다. (코드 출처: DigiKey)

DK IoT Studio는 단순하지만 매우 유연한 개발 환경을 제공합니다. 개발자는 요소의 EEL 코드를 그대로 사용하거나 필요에 따라 응용 분야에 맞게 수정하여 사용할 수 있습니다. 개발 중에 DK IoT Studio 장치 탭에는 탭 캔버스에 배치된 요소와 연결되는 기본 상위 레벨 코드가 들어 있는 패널이 제공됩니다(그림 7 참조). 응용 분야에서 일부 특수 처리가 필요한 경우 개발자는 이 패널에서 코드를 즉시 수정할 수 있습니다. 개발자가 환경에 제공되는 기능 및 함수로 실행을 보완할 수 있도록 "function" 요소와 같은 다른 기능은 코드에 빈 함수 정의를 추가합니다.

실제로 DK IoT Studio는 코드가 없는 단순한 드래그 앤 드롭식 개발에 기본 하드웨어 장치의 메모리양과 프로세서 기능으로만 제한되는 유연성 및 성능을 결합한 방식을 사용합니다. RSL10-SENSE-GEVK 기판에서 이 방식을 사용하는 개발자는 장치-클라우드 연결 및 모바일 앱 지원을 통해 전체 기능을 갖춘 시제품을 신속하게 배포할 수 있습니다.

결론

소비자, 자동차, 산업 영역을 비롯한 다양한 시장에서 다중 센서 장치의 새로운 응용 분야가 지속해서 생겨나고 있습니다. 대부분의 응용 분야에서는 Bluetooth 연결과 배터리 수명 연장이 매우 중요하지만, 설계자는 유연한 설계 방식으로 지속적인 출시 시간 단축 압박에 대응할 수 있는 지원 에코시스템이 필요합니다. ON Semiconductor의 RSL10 SoC, RSL10 SiP 및 RSL10-SENSE-GEVK 평가 기판에서는 이러한 문제를 해결하여 각각 맞춤형 설계, 통합 모듈 및 완전한 다중 센서 솔루션에 대한 요구 사항을 충족하는 일련의 솔루션을 제공합니다. 이러한 하드웨어 플랫폼을 사용하여 개발자는 RSL10 소프트웨어 개발 키트와 연결된 소프트웨어 배포 팩을 통해 맞춤형 응용 제품을 구현할 수 있습니다.

다중 센서 장치-클라우드 응용 제품의 빠른 개발을 위해 ON Semiconductor RSL10-SENSE-GEVK 평가 기판과 DK IoT Studio IDE를 조합하여 완전한 장치-클라우드 응용 제품에서 초저전력 다중 센서 솔루션을 구현하는 강력하고 빠른 개발 플랫폼을 제공합니다. RSL10 하드웨어는 사용 가능한 소프트웨어 옵션과 더불어 배터리 수명 연장 요구 사항을 충족하는 인증된 Bluetooth 장치를 개발하고 배포하기 위한 매우 유연한 플랫폼을 제공합니다.

DigiKey logo

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

작성자 정보

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk는 전자 산업에 관해 하드웨어, 소프트웨어, 시스템, 응용 제품(예: IoT)을 비롯한 광범위한 주제에 대해 20년 이상 집필한 경력을 갖고 있습니다. 그는 신경 과학의 뉴런 네트워크 박사 학위를 받았으며항공 우주 산업 분야의 광범위하게 분포된 보안 시스템 및 알고리즘 가속 메서드 관련 업무를 수행했습니다. 현재, 기술 및 엔지니어링에 대해 기사를 쓰지 않을 때에는 인식 및 추천 시스템에 대한 심층적 학습 응용 프로그램을 연구하고 있습니다.

게시자 정보

DigiKey 북미 편집자