배터리 수명 저하 없이 지속적인 Wi-Fi 연결 추가
DigiKey 북미 편집자 제공
2020-09-24
Wi-Fi는 대역폭이 높고 언제 어디서나 이용 가능하기 때문에 여전히 많은 IoT(사물 인터넷) 장치에서 필요로 하는 기본 연결 수단입니다. 그러나 웨어러블 및 기타 배터리 구동 IoT 장치의 경우 기존 Wi-Fi 솔루션에 필요한 전력 때문에 Wi-Fi를 지속적으로 연결하는 것이 비실용적이었으며 일반적으로 개발자는 장치 기능, 성능, 배터리 수명 등 일부 요소가 저하되는 것을 감안해야 했습니다.
일부 팀에서는 저전력에 최적화된 맞춤형 Wi-Fi 솔루션을 설계하는 방식을 선택할 수도 있지만 비용과 시간이 많이 소요되는 일이 될 수 있고 자격을 갖춘 RF 설계자가 부족한 경우 특히 그렇습니다. 저전력 IoT 장치에서도 지속적인 Wi-Fi를 실용적으로 지원할 수 있는 보다 완전한 솔루션이 절실합니다.
이 기사에서는 개발자가 Dialog Semiconductor의 무선 SoC(단일 칩 시스템) 장치에 내장된 저전력 기능을 사용하여 지속적인 Wi-Fi 연결을 구현하는 방법을 보여 줍니다.
모바일 장치의 Wi-Fi 연결 지원 문제
Wi-Fi는 일반적으로 개인용 모바일 제품, 스마트 홈 장치 및 빌딩 자동화 시스템 등 다양한 IoT 응용 분야에 필요하며 언제 어디서나 이용 가능한 유비쿼터스 특징과 성능 특성을 함께 제공합니다. 그러나 과거에는 Wi-Fi 서브 시스템에서 비교적 많은 전류를 소비했기 때문에 개발자는 배터리 구동 IoT 장치에서 배터리 수명이나 신호 강도가 저하되는 것을 받아들일 수밖에 없었습니다.
기존 Wi-Fi 솔루션의 전력 요구 사항이 높아서 IoT 개발자가 해결할 과제가 추가됩니다. 예를 들어 Wi-Fi 연결과 배터리 수명 연장이 모두 필요하면 더 큰 배터리를 수용하느라 설계 크기와 복잡성이 증가할 수 있습니다. 큰 배터리를 수용할 수 없는 웨어러블이나 많은 IoT 장치의 경우 Wi-Fi 신호 강도(및 관련 전력 소비)를 줄여 배터리 수명을 연장하려는 시도가 불가능할 수 있습니다.
이러한 문제와 함께 IoT 개발자는 다중 경로 간섭 및 기타 RF(무선 주파수) 신호 특성으로 인해 신호 강도가 크게 달라질 수 있는 일반적인 Wi-Fi 신호 환경의 실질적인 제한 사항도 처리해야 합니다. 랩톱과 같은 응용 제품에서는 소비자가 랩톱을 이동하는 것만으로 더 나은 Wi-Fi 신호를 얻을 수 있습니다. 반면 스마트 잠금 장치나 가전 제품은 설치 위치에 관계없이 안정적인 연결과 강력한 성능을 유지해야 합니다.
연장된 배터리 수명과 강력한 Wi-Fi 신호 강도를 모두 지원하기 위해 개발자는 일반적으로 대부분의 고급 프로세서, 무선 통신 장치 및 기타 복잡한 하드웨어 부품에 제공되는 저전력 절전 모드를 최대한 활용합니다. 개발자는 전력 소모가 많은 장치가 해당하는 저전력 모드로 작동하는 시간을 최대화함으로써 대개 시스템 기능에 거의 영향을 주지 않으면서 시스템 설계의 배터리 수명을 연장하는 설계를 구현할 수 있습니다. 이러한 설계에서는 저전력 타이머를 통해 주기적으로 잠시 시스템 절전을 해제하여 센서를 읽고 센서 데이터를 무선으로 전송한 후 절전 모드로 돌아갈 수 있습니다.
하지만 일부 IoT 응용 분야에서는 IoT 장치가 모바일 앱, 데스크톱 소프트웨어 또는 기타 장치를 통해 실행되는 사용자 명령에 빠르게 응답하기 위해 Wi-Fi 네트워크와의 지속적인 연결을 유지해야 합니다. 예를 들어 스마트 홈에 있는 스마트 잠금 장치, 조명 및 스위치는 사용자 명령에 즉각 응답하기 위해 연결 상태를 유지해야 합니다. 타이머 기반 장치가 결국 절전 해제되어 명령을 감지하고 마침내 문을 열거나 조명을 켤 때까지 사용자가 기다릴 수 없습니다.
Dialog Semiconductor의 DA16200 SoC 및 관련 모듈은 지속적인 Wi-Fi 연결과 배터리 수명 연장의 요구 사항을 모두 지원할 수 있는 효율적인 저전력 솔루션입니다.
무선 SoC로 Wi-Fi 연결 구현
배터리 구동 IoT 설계를 위해 특별히 설계된 DA16200 SoC는 Arm® Cortex®-M4F와 전체 네트워크 스택을 실행하는 완전한 Wi-Fi 무선 통신 서브 시스템을 결합하여 외부 네트워크 프로세서나 호스트 프로세서 없이도 스택 기능을 제공할 수 있습니다. 이 장치는 무선 통신 서브 시스템과 함께 IoT 설계에 일반적으로 필요한 각종 기능 블록과 인터페이스를 포함합니다(그림 1).
그림 1: Dialog Semiconductor의 DA16200 SoC는 전류를 최소한으로 소모하면서 지속적인 Wi-Fi 연결을 제공할 수 있는 완전한 Wi-Fi 솔루션을 제공합니다. (이미지 출처: Dialog Semiconductor)
이 장치는 여러 표준 인터페이스와 함께 아날로그 신호 취득을 지원하는 4채널 12비트 SAR(연속 근사화 레지스터) ADC(아날로그 디지털 컨버터)를 포함하고 있습니다.
DA16200에는 애플리케이션 실행을 위해 다음과 같은 여러 내부 메모리가 포함되어 있습니다.
- 부트 로더, 시스템 커널, 네트워크 스택 및 드라이버용 읽기 전용 메모리.
- 프로그램 데이터용 SRAM(정적 랜덤 액세스 메모리). 프로그램 코드는 장치의 외부 직렬 플래시 메모리 인터페이스를 통해 액세스되는 직렬 플래시 메모리에서 현재 위치에서 실행(XIP)됩니다.
- 암호화 키 및 보안 부트 로더뿐 아니라 장치 정보를 저장하는 데 사용되는 OTP(일회용 프로그래밍 가능) 메모리. OTP 데이터는 OTP 컨트롤러를 통해서만 액세스할 수 있고 그 외 시스템 버스를 통한 일반 데이터 액세스에는 표시되지 않으므로 안전하게 유지됩니다.
개발자가 연결된 장치 보안의 증가하는 수요를 충족하도록 돕기 위해 DA16200 SoC는 AES(고급 암호화 표준), SHA(보안 해시 알고리즘) 및 기타 암호화를 위한 암호화 엔진을 비롯한 광범위한 보안 메커니즘을 포함할 뿐 아니라 TLS(전송 계층 보안) 프로토콜도 지원합니다. 또한 Arm TrustZone CryptoCell-312(CC312) 보안 IP(지적 재산)도 포함합니다. 저전력 장치용으로 설계된 CC312는 보안 부팅을 지원하고 보안 애플리케이션을 위한 신뢰 루트를 지원합니다.
이 장치는 포괄적인 RF 블록을 통해 Wi-Fi 연결을 간소화합니다. 이 무선 통신 서브 시스템은 내장된 802.11 MAC(미디어 액세스 제어) 및 802.11b/g/n 물리층(PHY) 외에도 통합형 PA(전력 증폭기)와 LNA(저잡음 증폭기)가 있는 온칩 트랜시버를 포함하고 있어 외부 활성 부품이 필요하지 않습니다. 작동 시 DA16200의 Arm Cortex-M4F 프로세서는 내장형 TCP/IP(전송 제어 프로토콜/인터넷 프로토콜) 스택을 실행하여 시스템의 호스트 프로세서에서 연결 작업을 오프로드합니다.
RF 블록을 비롯한 다양한 블록에 전력을 공급하기 위해 DA16200 SoC는 DC DC 컨버터, LDO(저드롭아웃) 조정기 및 전원 스위치를 포함합니다. 장치의 RTC(실시간 클록) 블록에 의해 관리되는 컨버터와 LDO는 필요한 모든 공급 레일을 단일 VBAT 배터리 공급 장치를 통해 생성합니다. DC-DC 컨버터는 VBAT에서 RF 블록 및 디지털 LDO용 1.4V를 생성하고 I / O LDO는 외부 플래시 및 장치의 GPIO(범용 I/O)에 필요한 1.8V를 생성합니다(그림 2).
그림 2: DA16200 SoC의 전력 관리 장치는 별도의 전력 영역에 전압을 공급하는 장치의 통합 전력 부품을 제어합니다. (이미지 출처: Dialog Semiconductor)
DA16200 SoC의 전력 관리 장치는 장치의 다음 세 가지 저전력(절전) 모드를 관리하는 기능의 일부로 이러한 개별 전력 영역에의 전원 공급을 제어합니다.
- 절전 1 - 0.2μA의 최소 전력 작동 제공: 이 모드에서는 장치가 대부분 전원이 꺼져 있지만 SoC의 2개 절전 해제 핀 또는 여러 디지털 I/O 중 하나에 전달되는 외부 트리거에 응답하거나 아날로그 입력 신호가 미리 정의된 임계값을 초과할 때 150ms 이내로 절전 해제됩니다.
- 절전 2 - RTC 기능을 유지하면서 1.8μA만 소비: 이 모드에서 SoC가 외부 절전 해제 이벤트에 응답하거나 프로그래밍된 내부 타이머 완료 시 100ms 미만 동안 절전 해제됩니다.
- 절전 3 - 전류를 최소한으로 소비하면서도 들어오는 Wi-Fi 데이터 패킷을 감지하면 2ms 미만 동안 절전 해제될 수 있는 고유하면서도 계속 연결되는 Wi-Fi 모드 제공: 아래에서 설명하는 대로 기존 TCP 연결 유지 기능과 함께 절전 3을 사용하면 평균 50μA 미만의 전류를 소비하면서 Wi-Fi가 지속적으로 연결되는 기능을 구현하기 위한 기반을 제공할 수 있습니다.
작동 전력 관리 기술로 지속적인 Wi-Fi 연결 지원
이러한 저전력 절전 모드의 기반이 되는 Dialog Semiconductor의 독점적인 DPM(작동 전력 관리) 기술은 사용되지 않는 온칩 마이크로 요소를 종료하여 장치가 데이터를 송수신하지 않을 때 전력 소비를 최소화합니다. Wi-Fi 작동 시 DPM은 무선 통신 송수신 작업 중 필요한 마이크로 요소를 필요할 때만 절전 해제하는 고급 알고리즘을 사용하여 전력 소비를 최소화합니다.
Dialog Semiconductor의 DA16200 SDK(소프트웨어 개발 키트)는 DPM 관리자 API(응용 프로그래밍 인터페이스)를 사용하여 전력 관리 및 DPM 작동의 세부 정보를 추상화합니다. 맞춤형 소프트웨어 개발의 경우 SDK를 통해 애플리케이션 및 시스템 서비스의 DA16200 소프트웨어 스택에 액세스할 수 있습니다(그림 3).
그림 3: DA16200 SoC의 소프트웨어 아키텍처에서는 IoT 장치에서 표준 Wi-Fi 연결을 지원하는 데 필요한 전체 시스템 및 애플리케이션 서비스를 제공합니다. (이미지 출처: Dialog Semiconductor)
지속적인 Wi-Fi 연결 구현에서는 DPM 관리자와 NetX Duo TCP/IP 라이브러리를 함께 사용합니다. NetX Duo 라이브러리는 데이터 없이 TCP 패킷을 Wi-Fi 라우터에 보내 라우터가 Wi-Fi 연결을 활성 상태로 유지하는 TCP 연결 유지 기능을 제공합니다. 개발자는 최신 TCP 소켓 옵션인 keepalive_enabled를 true로 설정하여 간단히 이 기능을 호출하고 연결 유지 패킷 사이의 시간(초)인 keepalive_timeout을 제공합니다. NetX Duo는 필요에 따라 연결 유지 프레임을 자동으로 전송합니다.
연결 유지 패킷은 라우터 또는 다른 호스트와의 네트워크 연결을 유지하고, DA16200의 절전 3 모드 해제 기능은 802.11 관리 프레임에 내장된 표준 TIM(트래픽 표시 맵) 또는 DTIM(전달 트래픽 표시 맵) 정보 요소를 감지해야 작동하며 DA16200 기반 시스템과 같은 네트워크 스테이션에 네트워크 트래픽을 사용할 수 있음을 알리는 데 사용됩니다. DA16200이 절전 3 모드에 있으면 DA16200의 DPM 기술을 통해 무선 통신 서브 시스템이 최소 전력을 사용하여 TIM/DTIM 소자를 찾도록 합니다. DA16200 무선 통신 서브 시스템은 TIM/DTIM 소자를 감지하면 SoC를 절전 해제하여 다른 네트워크 스테이션과 마찬가지로 정상 Wi-Fi 트래픽 처리를 시작합니다.
DA16200 DPM 관리자 API를 사용하면 개발자가 몇 번의 직관적인 호출만으로도 이 기능을 구현할 수 있습니다. 파라미터 및 콜백을 포함하여 필요한 DPM 구성을 정의한 후 개발자는 DPM 관리자 API 함수 호출을 사용하여 DPM 관리자를 호출하고 조작할 수 있습니다. 절전 3으로의 진입과 끝내기는 DA16200 DPM의 기술을 통해 투명하게 처리됩니다.
SDK에 포함된 샘플 애플리케이션에서는 이 작업 시퀀스를 구현하는 데 필요한 기본 설계 패턴을 보여 줍니다(목록 1).
복사
#define TCP_CLIENT_KA_DPM_SAMPLE_DEF_KEEPALIVE_TIMEOUT 55
[lines deleted]
void tcp_client_ka_dpm_sample_wakeup_callback()
{
PRINTF(GREEN_COLOR " [%s] DPM Wakeup\n" CLEAR_COLOR, __func__);
dpm_mng_job_done(); //Done operation
}
[lines deleted]
void tcp_client_ka_dpm_sample_recv_callback(void *sock, UCHAR *rx_buf, UINT rx_len,
ULONG rx_ip, ULONG rx_port)
{
int status = NX_SUCCESS;
//Display received packet
PRINTF(" =====> Received Packet(%ld) \n", rx_len);
tcp_client_ka_dpm_sample_hex_dump("Received Packet", rx_buf, rx_len);
[lines deleted]
dpm_mng_job_done(); //Done operation
}
[lines deleted]
void tcp_client_ka_dpm_sample_init_user_config(dpm_user_config_t *user_config)
{
[lines deleted]
//Set DPM wakeup init callback
user_config->wakeupInitCallback = tcp_client_ka_dpm_sample_wakeup_callback;
[lines deleted]
//Set Recv callback
user_config->sessionConfig[session_idx].session_recvCallback =
tcp_client_ka_dpm_sample_recv_callback;
[lines deleted]
//Set KeepAlive timeout
user_config->sessionConfig[session_idx].session_ka_interval =
TCP_CLIENT_KA_DPM_SAMPLE_DEF_KEEPALIVE_TIMEOUT;
[lines deleted]
}
[lines deleted]
void tcp_client_ka_dpm_sample(ULONG arg)
{
[lines deleted]
//Register user configuration
dpm_mng_regist_config_cb(tcp_client_ka_dpm_sample_init_user_config);
//Start TCP Client Sample
dpm_mng_start();
return ;
}
목록 1: DA16200 SoC를 사용하면 개발자가 구성과 몇 가지 DPM API 함수 호출을 사용하여 지속적인 Wi-Fi 연결을 구현할 수 있습니다. (코드 출처: Dialog Semiconductor)
목록 1에 표시된 대로 개발자는 이 기능을 구현하기 위해 대체로 초기화 함수(tcp_client_ka_dpm_sample_init_user_config())만 사용하는데, 이 함수는 연결 유지 간격(TCP_CLIENT_KA_DPM_SAMPLE_DEF_KEEPALIVE_TIMEOUT)을 비롯한 다양한 구성 파라미터를 설정하고 DMP 절전 해제용 콜백(tcp_client_ka_dpm_sample_wakeup_callback())과 들어오는 데이터 패킷 처리용 콜백(tcp_client_ka_dpm_sample_recv_callback())을 비롯한 다양한 콜백을 제공합니다. TCP 연결 유지 및 DPM 절전 해제 시퀀스를 시작하려면 별도의 함수(tcp_client_ka_dpm_sample())에서 구성 루틴(dpm_mng_regist_config_cb(tcp_client_ka_dpm_sample_init_user_config))과 DMP 관리자(dpm_mng_start())를 호출합니다.
앞에서 설명한 대로 표준 TCP 연결 유지 패킷 및 DA16200 DPM 지원 Wi-Fi 모니터링을 포함하는 이와 같은 전체 시퀀스를 통해 일반적으로 50μA 미만의 평균 전류를 소비하는 지속적인 Wi-Fi 연결 기능이 제공됩니다.
이와 같은 설계 패턴을 사용하여 SoC가 다른 작업을 처리하도록 절전 모드에서 해제할 수 있습니다. 예를 들어 샘플 애플리케이션에서는 DA16200의 RTC를 사용하여 SoC가 데이터를 처리하도록 절전 해제하는 방법을 보여 줍니다(목록 2).
복사
#define SAMPLE_FOR_DPM_SLEEP_3 // Sleep Mode 3
#define MICROSEC_FOR_ONE_SEC 1000000
#define RTC_TIMER_WAKEUP_ONCE 5 // seconds
#define RTC_TIMER_WAKEUP_PERIOD 10 // seconds
static void rtc_timer_dpm_once_cb(char *timer_name)
{
[lines deleted]
static void rtc_timer_dpm_periodic_cb(char *timer_name)
{
/*
*Caution : Don't spend a lot of time in the calback function called by timer.
*/
dpm_app_sleep_ready_clear(SAMPLE_RTC_TIMER);
PRINTF("\nWakeup due to Periodic RTC timer!!!\n");
tx_thread_sleep(10);
dpm_app_sleep_ready_set(SAMPLE_RTC_TIMER);
}
[lines deleted]
void rtc_timer_sample(ULONG arg)
{
[lines deleted]
/* Periodic timer */
status = dpm_timer_create(SAMPLE_RTC_TIMER,
"timer2",
rtc_timer_dpm_periodic_cb,
RTC_TIMER_WAKEUP_PERIOD,
RTC_TIMER_WAKEUP_PERIOD);
[lines deleted]
dpm_app_sleep_ready_set(SAMPLE_RTC_TIMER);
[lines deleted]
}
while (1)
{
/* Nothing to do... */
tx_thread_sleep(100);
}
}
목록 2: 개발자는 DA16200으로 저전력 타이머 기반 기능을 구현할 때 몇 가지 DPM API 함수 호출을 사용하여 DA16200 절전 기간 중 최소 전력을 소비할 수 있습니다. (코드 출처: Dialog Semiconductor)
목록 2에 표시된 대로 개발자는 DPM 관리자 API 함수(dpm_timer_create())를 호출하여 타이머(SAMPLE_RTC_TIMER)를 생성하고 다른 DPM 관리자 API 함수(dpm_app_sleep_ready_set())를 호출하여 시스템이 절전 모드로 돌아갈 준비가 되었음을 나타냅니다. 그런 다음 DPM 엔진에서 현재 활동을 기반으로 시스템이 저전력 절전 모드로 얼마나 빨리 돌아갈 수 있는지를 결정합니다. 나중에 타이머가 다 되면 시스템에서는 개발자의 콜백 함수 rtc_timer_dpm_periodic_cb()를 실행하여 필요한 작업(여기서는 알림을 콘솔에 단순히 출력)을 수행합니다. 작업이 완료되면 동일한 콜백 함수가 dpm_app_sleep_ready_set()을 수행하여 시스템이 절전 모드로 돌아갈 준비가 되었음을 DPM 엔진에 알립니다. 앞에서 설명한 것처럼 DPM 엔진은 해당하는 경우 절전 모드로의 전환을 완료합니다.
드롭인 모듈로 Wi-Fi 설계 간소화
DA16200 SDK로 소프트웨어 설계가 간소화되면 장치의 광범위한 온칩 기능이 비교적 단순한 하드웨어 인터페이스 설계로 변환됩니다. DA16200 SoC와 함께 Winbond Electronics의 W25Q16JVSNIQ 16Mb NOR 메모리 IC 같은 외부 플래시 장치 및 소수의 추가 부품만 사용하면 개발자가 Wi-Fi 지원 보안 IoT 설계를 구현할 수 있습니다(그림 4).
그림 4: 광범위한 통합 기능을 포함하는 Dialog Semiconductor의 DA16200 SoC를 사용하면 외부 직렬 플래시와 최소한의 추가 부품만으로 완벽한 Wi-Fi 시스템을 구현할 수 있습니다. (이미지 출처: Dialog Semiconductor)
DA16200 SoC를 기반으로 자체 설계를 빠르게 개발하려는 개발자는 SoC의 하드웨어 인터페이스를 구현할 필요가 없는 Dialog Semiconductor의 모듈을 선택할 수 있습니다. 해당 모듈에는 DA16200 SoC 외에도 4MB 플래시, RF 부품 및 선택 가능한 온보드 칩 안테나(DA16200MOD-AAC4WA32) 또는 외부 안테나용 u.FL 커넥터(DA16200MOD-AAE4WA32)가 포함되어 있습니다. FCC, IC, CE 및 기타 규제 기관의 정식 인증을 받은 13.8mm x 22.1mm x 3.3mm 모듈로, 저전력 지속적인 Wi-Fi 연결을 구현하기 위한 드롭인 하드웨어 솔루션을 제공합니다.
지속적인 Wi-Fi 연결에 관해 살펴보고 DA16200 SoC를 기반으로 하여 IoT 설계의 시제품을 신속하게 제작하려는 개발자는 Dialog Semiconductor의 DA16200MOD-DEVKT 개발 키트를 바로 활용할 수 있습니다. 이 키트는 DA16200MOD 모듈과 USB 인터페이스, 키 및 연결을 결합하여 DA16200 기반 설계를 빠르게 개발 및 디버깅하도록 지원합니다.
결론
지속적인 Wi-Fi 연결을 유지하는 기능은 랩톱과 기타 연결된 제품의 일반적인 기능입니다. 그러나 웨어러블 및 기타 배터리 구동 IoT 장치의 경우 기존 Wi-Fi 솔루션에 필요한 전력 때문에 Wi-Fi를 지속적으로 연결하는 것이 비실용적이었으며 일반적으로 개발자는 장치 기능, 성능, 배터리 수명 등 일부 요소가 저하되는 것을 감안해야 했습니다.
Dialog Semiconductor의 SoC는 전류를 최소한으로 소모하면서 지속적인 Wi-Fi 연결을 제공하는 완전한 Wi-Fi 솔루션을 제공합니다. 위에서 살펴본 바와 같이 개발자는 SoC 또는 관련 모듈을 사용하여 사용자에게 지속적인 Wi-Fi 연결의 이점을 제공하면서도 배터리 수명 연장에 대한 사용자 기대를 충족할 수 있는 안전한 배터리 구동 장치를 빠르게 구현할 수 있습니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.