전력: 코인 전지로 몇 년
분실물 태그 상자에는 “배터리 1년”, 도어 센서에는 “3년”이라고 적혀 있다. 이 기기들의 전지는 500원짜리 동전만 한 CR2032 하나, 용량 약 220 mAh다. 무선부가 송신할 때 쓰는 전류는 수 mA이니, 계속 켜 두면 이틀도 못 간다. 그런데도 몇 년을 가는 이유는 단 하나, 거의 항상 자고 있기 때문이다. 이 장에서는 연결 이벤트 한 번에 전류가 어떻게 오르내리는지 그려 보고, 그것을 평균 내어 배터리 수명을 계산한다. 그리고 수명을 늘리는 손잡이(간격, 지연, PHY, 송신 전력)와, 간격을 무작정 늘릴 수 없게 만드는 숨은 비용(창 넓히기)을 찾는다.
- LE 기기의 전류가 수면(µA)과 무선 활동(mA) 사이를 오가는 파형을 읽고, 이벤트 한 번의 전하량(µC)을 계산한다.
- 평균 전류 = 수면 전류 + 이벤트 전하 ÷ 간격의 식으로 광고·연결 모드의 배터리 수명을 추정한다.
- 사양의 시계 정확도(활성 ±50 ppm, 수면 ±500 ppm)와 창 넓히기 식이 긴 간격의 전력 비용을 어떻게 만드는지 안다.
- 송신 전력, PHY, 페리페럴 지연, 데이터 양 중 무엇이 수명에 가장 큰지 시뮬레이터로 비교하고, LE 전력 제어의 쓸모를 이해한다.
전류 파형: 몇 µA로 자다가 몇 mA로 깨어나기
LE 칩의 전류를 오실로스코프로 보면 거의 평평한 바닥에 가끔 뾰족한 산이 솟는 모양이다. 바닥은 수면 전류다. 시계(32.768 kHz 수정 발진기)와 메모리 유지에만 1~3 µA 정도를 쓴다. 산은 연결 이벤트나 광고 이벤트다. 산 하나를 쪼개 보면 이렇다.
- 깨어나기: 고속 수정 발진기(32 MHz 등)를 켜고 안정되기를 기다린다. 수백 µs, 수 mA보다 작은 전류.
- 무선부 준비(ramp-up): 주파수 합성기를 채널에 맞춘다. 수십 µs.
- 수신 창: 상대의 패킷을 기다린다. 시계 오차만큼 일찍 열어야 하므로(아래 창 넓히기) 실제 패킷보다 길다. 약 5 mA.
- 송신: 패킷 길이만큼. 0 dBm에서 약 5 mA, +8 dBm이면 10 mA 넘게.
- 뒷정리: CPU가 받은 데이터를 처리하고 다시 잔다.
배터리에 중요한 것은 산의 넓이, 즉 전류 × 시간 = 전하량(µC = µA·s)이다. 평균 전류는 이 넓이를 간격으로 나누고 수면 전류를 더한 것이다.
카페 구석의 손님이 대부분 졸다가, 약속한 시각에만 잠깐 깨서 친구와 몇 마디 나누고 다시 존다. 하루 피곤함은 깨어 있는 횟수와 시간이 거의 정한다. 블루투스 기기의 평균 전류도 같다. µA로 자다가 이벤트마다 몇 ms 동안 mA로 깬다. 그래서 간격과 깨어 있는 시간을 줄이는 것이 수명의 열쇠다.
연결 이벤트 한 번의 전류 파형 (페리페럴 쪽)
숨은 비용: 시계 오차와 창 넓히기
페리페럴은 다음 앵커 포인트에 맞춰 깨어나야 한다. 그런데 두 기기의 수면 시계는 조금씩 다르게 간다. 사양은 수면 시계의 오차를 ±500 ppm 이하(1초에 최대 0.5 ms), 무선 활동 중의 활성 시계를 ±50 ppm 이하로 정한다. 마지막으로 동기를 맞춘 뒤 시간이 오래 지날수록 상대가 언제 말할지 불확실해지므로, 수신기는 그만큼 일찍 깨어나 늦게까지 듣는다. 이것이 창 넓히기(window widening)다.
활성 시계 ±50 ppm, 수면 시계 ±500 ppm, 2 s·500 ppm 예: [Vol 6] Part B §4.2.1·§4.2.2 · 창 넓히기 식(J = 수면 시계 16 µs, 활성 시계 2 µs): §4.2.4 · 수면 시계 정확도 갱신 절차: §5.1.14
그래서 페리페럴 지연이나 연결 간격을 아주 크게 하면 이벤트 수는 줄지만, 이벤트마다 수신 창이 길어진다. 저렴한 RC 발진기(수백 ppm) 대신 32.768 kHz 수정 발진기(±20~50 ppm)를 다는 이유가 여기에 있다. 몇십 원짜리 부품 하나가 긴 간격에서 배터리 수명을 크게 바꾼다. CONNECT_IND의 SCA 필드와 5.1의 수면 시계 정확도 갱신 절차는 이 오차를 상대에게 알려 창을 필요한 만큼만 넓히게 하는 장치다.
배터리 수명 계산기: 광고와 연결
이제 이벤트 하나의 전하량을 시간에 대해 평균 내 보자. 기기의 일은 크게 둘이다. 연결 없이 광고만 하는 것(비콘, 태그), 그리고 연결을 유지하며 가끔 데이터를 보내는 것(센서, 시계).
CR2032 하나로 얼마나 갈까
| 기기 (예) | 하는 일 | 대표 설정 | 평균 전류 감각 |
|---|---|---|---|
| 분실물 태그 | 광고만 | 광고 1~2 s, 0 dBm | 수 µA ~ 10 µA |
| 문 열림 센서 | 평소 잠, 이벤트 때 광고 또는 연결 | 가끔 광고 | 수 µA |
| 심박계 | 연결 + 1초마다 알림 | 간격 수십~수백 ms | 수십 µA |
| 무선 마우스 | 움직일 때 짧은 간격 | 간격 7.5~15 ms | 수백 µA (AAA 전지) |
| 무선 이어폰 | 연속 오디오 스트림 | 10장 | 수 mA (충전식) |
2초마다 광고하는 태그의 평균 전류가 약 7 µA이고 그중 수면 전류가 2 µA다. 광고 간격을 4초로 두 배 늘리면 수명은?
계산기에서 광고 모드, 간격 2 s와 4 s를 비교해 보자.
수명을 늘리는 손잡이들
- 간격과 지연: 가장 큰 손잡이다. 단, 반응 속도와 창 넓히기를 함께 본다. 평소에는 느리게, 일이 생기면 빠르게 바꾸는 것이 정석이다(연결 파라미터 갱신, 5.3의 서브레이팅).
- 송신 전력: 송신 시간이 짧은 LE에서는 생각보다 작은 손잡이다. 이벤트 전하에서 송신 비중이 크지 않기 때문이다. 하지만 가까운 상대에게 +8 dBm은 낭비이고, 상대 수신기를 포화시킬 수도 있다.
- PHY: 2M은 같은 데이터를 짧게 보내 큰 데이터에서 이득이다. Coded는 거리를 얻는 대신 시간을 8배 쓴다(3장).
- 데이터 묶기: 1초마다 2바이트씩 보내는 것보다 10초마다 20바이트를 한 번에 보내는 편이 훨씬 싸다. 고정 비용(기동, 창 넓히기, 처리)이 이벤트마다 붙기 때문이다.
- 수면 전류: 간격이 수 초 이상이면 지배적이다. 센서 회로, 전압 레귤레이터의 대기 전류, 풀업 저항까지 µA 단위로 관리해야 한다.
LE 전력 제어 (5.2)
5.2의 LE 전력 제어(LE Power Control)는 연결된 두 기기가 서로의 송신 전력을 조절하게 한다. 수신 쪽이 RSSI를 보고 “신호가 충분히 세니 줄여도 된다” 또는 “더 올려 달라”고 요청한다(Power Control Request 절차). 가까이 있는 이어폰과 휴대폰은 송신 전력을 낮춰 배터리를 아끼고 주변 간섭도 줄인다. 반대로 너무 센 신호는 수신기를 포화시켜 오히려 연결을 깨뜨릴 수 있는데, 사양은 이 경우에도 전력 제어를 쓰라고 권한다. 경로 손실이 정해진 구간을 넘나들면 호스트에 알려 주는 경로 손실 모니터링도 함께 들어왔다.
LE 전력 제어와 수신기 포화 주의: [Vol 6] Part A §3 · Power Control Request / Power Change Indication 절차: [Vol 6] Part B §5.1.17·§5.1.18 · 5.2 새 기능: [Vol 1] Part C §11.1
CR2032 같은 리튬 코인 전지는 내부 저항이 커서, 송신 순간의 10 mA 펄스를 그대로 뽑으면 전압이 크게 떨어지고 쓸 수 있는 용량도 줄어든다. 그래서 전지 옆에 큰 커패시터를 달아 펄스를 받쳐 주고, 칩의 DC-DC 변환기를 켜서 같은 일에 드는 전류 자체를 줄인다. 상자의 “3년”은 이런 설계와 실제 측정에서 나온 숫자다.
핵심 정리
- LE 기기는 수 µA로 자다가 수 mA로 짧게 깨어난다. 배터리에 중요한 것은 이벤트 한 번의 전하량(전류 × 시간)이다.
- 평균 전류 ≈ 수면 전류 + 이벤트 전하 ÷ 간격, 수명 ≈ 용량 ÷ 평균 전류. 간격을 늘리면 수명이 늘지만 수면 전류가 바닥을 정한다(수확 체감).
- 사양의 시계 오차 한도: 활성 ±50 ppm, 수면 ±500 ppm. 마지막 동기 이후 시간이 길수록 창 넓히기로 수신 대기가 길어진다(2 s·500 ppm → 앞뒤 각 약 1 ms).
- 고정 비용(기동·창 넓히기·처리)이 이벤트마다 붙으므로 데이터는 묶어서 보내는 편이 싸다. 2M은 큰 데이터에서, Coded는 거리가 필요할 때만.
- 5.2의 LE 전력 제어는 RSSI를 보고 상대의 송신 전력을 조절해 배터리와 간섭, 수신기 포화를 함께 줄인다.
확인 퀴즈
이벤트 한 번에 30 µC를 쓰고 500 ms마다 깨어나며 수면 전류가 2 µA인 기기의 평균 전류는?
연결 간격 1 s, 페리페럴 지연 3, 센트럴 수면 시계 ±500 ppm일 때 페리페럴의 창 넓히기(센트럴 시계분, 한쪽)는 대략?
수정 발진기 대신 정확도 ±500 ppm의 RC 발진기를 수면 시계로 쓰면 가장 손해를 보는 경우는?
1초마다 2바이트 측정값을 알림으로 보내던 센서를, 10초마다 20바이트를 한 번에 보내도록 바꿨다. 무엇이 줄어드나?
5.2의 LE 전력 제어가 하는 일이 아닌 것은?