Để tìm hiểu hoạt động của Beacons ta tìm hiểu trước tiên về BLE

BLE – Bluetooth Low Energy

Beacons sử dụng công nghệ BLE (Bluetooth Low Energy), còn được gọi là Bluetooth Smart. BLE sử dụng giao thức khác Classic Bluetooth, và không tương thích ngược. BLE sử dụng cùng băng tần 2.4GHz.

Có hai kiểu thiết bị BLE:

  • Bluetooth Smart Ready: hỗ trợ cả BLE và Classic Bluetooth.
  • Bluetooth Smart: chỉ hỗ trợ BLE

Hầu hết điện thoại và máy tính mới đều hỗ trợ Bluetooth Smart Ready, còn beacons chỉ là BLE không hỗ trợ Classic Bluetooth.

Ưu thế lớn nhất của BLE là tiết kiệm năng lượng, cho phép beacons truyền thông tin liên tục lên đến 2-3 năm chỉ với một viên pin nhỏ. Khoảng cách truyền BLE cũng lên đến 100m như Classic Bluetooth.

BLE có hai chế độ trao đổi thông tin:

  • Advertising: chỉ truyền một chiều
  • Connecting: trao đổi hai chiều

Beacons chỉ sử dụng chế độ truyền advertising (chỉ gửi thông tin một chiều). Beacons theo một chu kỳ sẽ phát thông tin quảng bá để các thiết bị khác như smartphone nhận. Beacons có thể phát với chu kỳ từ 20ms đến 10s, chu kỳ càng dài thì thời lượng pin càng lâu.

Định dạng gói tin của Beacons là gì?

Một gói tin để các thiết bị đọc được phải tuân theo các chuẩn đã được định trước, trước tiên là gói dữ liệu advertising.

Một gói tin advertising có độ dài lên đến 47 bytes.

advertising packet

  • Preamble (1 byte)
  • Access Address (4 bytes) – 8E 89 BE D6
  • PDU Header (2 bytes)
  • PDU MAC address (6 bytes)
  • PDU Data (0-31 bytes)
  • CRC (3 bytes)

iBeacon

iBeaconDataFormat

Ảnh nguồn makeandbuild.com

iBeacon được Apple định dạng trong 31 bytes PDU Data, nó báo gồm các trường thông tin:

  • iBeacon prefix (9 bytes) – 02 01 06 1A FF 4C 00 02 15
  • Proximity UUID (16 bytes)
  • Major (2 bytes)
  • Minor (2 bytes)
  • TX power (1 bytes)

Như vậy iBeacon sử dụng 30 bytes trong 31 bytes của PDU Data, còn 1 byte cuối cùng sẽ ko đc sử dụng.

Để phân tích và nhận dạng xem một beacon có phát đúng gói tin tuân theo chuẩn iBeacon hay không chúng ta sẽ phân tích 9 bytes của trường iBeacon prefix.

Eddystone

eddystone packet

Ảnh nguồn mbed.org

Trên đây là định dạng các gói tin của Eddystone, 31 bytes dữ liệu (chính là 31 bytes của PDU Data) được định nghĩa chi làm 3 loại gói tin UUID, URL, và TLM.

Advertisements