Giải mã các khái niệm cốt lõi của Bluetooth mesh
Hello anh em đồng nhúng !
Trong thế giới công nghệ, Bluetooth không chỉ là một cái tên, mà đã trở thành chuẩn mực kết nối không thể thiếu, len lỏi vào mọi khía cạnh của đời sống hiện đại và các ứng dụng chuyên môn sâu của chúng ta.
Tuy nhiên, trước áp lực cạnh tranh gay gắt từ các chuẩn mạng lưới mạnh mẽ khác như Zigbee và Thread, sự ra đời của Bluetooth Mesh Networking là một bước đột phá chiến lược. Công nghệ này không chỉ kế thừa những ưu điểm vượt trội của Bluetooth Low Energy (BLE) về hiệu suất năng lượng, mà còn bổ sung thêm vô vàn tính năng mới mang tính cách mạng.
Đặc biệt, Bluetooth Mesh đã phá vỡ giới hạn kết nối truyền thống, tạo ra một kiến trúc nhiều-đến-nhiều thực thụ, cho phép mạng lưới mở rộng quy mô lên tới hàng vạn thiết bị chỉ trong một mạng duy nhất.

Vậy, với những tính năng và đặc điểm nổi bật nào mà Bluetooth Mesh có thể làm được điều phi thường đó? Anh em hãy cùng mình đi sâu khám phá ngay!
Trước khi vào bài, có 1 số điều anh em nên biết :
- Bluetooth SIG (Tổ chức phát triển Bluetooth) gọi tiêu chuẩn này là Bluetooth mesh
- Tuy nhiên, Bluetooth mesh được xây dựng dựa trên BLE và có lấy lại nhiều khái niệm của BLE.
- Bluetooth mesh hỗ trợ tất cả các phiên bản của BLE (từ phiên bản Bluetooth 4.0, là phiên bản đầu tiên của đặc tả Bluetooth bao gồm BLE).
- Số lượng node (nút) tối đa trong một mạng lưới Bluetooth mesh (được định nghĩa trong phiên bản 1.0 của đặc tả) là 32.767 node.
- Số bước nhảy (là số node mà bản tin đi qua (hopes)) tối đa mà một thông điệp có thể di chuyển trong một mạng lưới Bluetooth mesh (được định nghĩa trong phiên bản 1.0) là 127 bước nhảy.
1. Mạng Bluetooth mesh là gì ?
Được ra mắt vào 7/2017 với mục tiêu bổ sung sức mạnh cho các mạng Bluetooth, với những phiên bản đầu của Bluetooth chỉ hỗ trợ 2 cấu trúc mạng (topo) như sau :
- Một-đối-một (One-to-one): Khi hai thiết bị BLE được kết nối với nhau.
- Một-đối-nhiều (One-to-many): Khi các thiết bị BLE hoạt động độc quyền ở trạng thái Phát sóng (Broadcast state), ví dụ như các thiết bị Beacon.
BLE mesh đã giới thiệu một cấu trúc liên kết mới cho BLE: Nhiều-đối-nhiều (many-to-many), còn được gọi là mạng lưới (mesh) trong đó nhiều thiết bị có thể giao tiếp với nhiều thiết bị khác trong cùng một mạng. Điều này về cơ bản tạo ra các mạng thiết bị quy mô lớn (hàng trăm, hàng nghìn thiết bị).

3. Bluetooth mesh và các mạng mesh khác
- Giao thức mạng : Bluetooth mesh không sử dụng IP , thay vào đó, nó được xây dựng trực tiếp trên nền tảng BLE.
- Cơ chế truyền tin : Bluetooth mesh sử dụng kỹ thuật Quản lý Lũ lụt (Managed Flooding), khác biệt so với các kỹ thuật định tuyến (routing techniques) mà các giao thức khác thường sử dụng.
- Bảo mật : Bluetooth mesh có các giao thức bảo mật mạnh mẽ hơn so với một số giao thức khác như Zigbee.
Ứng dụng phổ biến : Bluetooth mesh vẫn chủ yếu được sử dụng cho các ứng dụng tự động hóa tòa nhà, chẳng hạn như tự động hóa các thiết bị nhà thông minh và hệ thống chiếu sáng. Trong khi đó, các giao thức khác như Zigbee được sử dụng rộng rãi hơn cho các lĩnh vực như theo dõi tài sản (asset tracking) và tự động hóa công nghiệp.

4. Những khái niệm cần phải biết khi bắt đầu với Bluetooth mesh
1. Nút mạng ( Mesh Node)
Một nút (node) là 1 thiết bị đã gia nhập vào mạng Bluetooth mesh. Ngược lại, các thiết bị chưa phải là 1 phần của mạng được gọi là thiết bị chưa được cấu hình (unprovisioned devices). Một khi thiết bị chưa được cấu hình thì phải qua quá trình cấu hình (provisioning), nó sẽ thành 1 Mesh node.
2. Thành phần(Element)
Một nút có thể chứa nhiều phần riêng biệt có thể được điều khiển độc lập.
VD : Một công tắc thông minh có 4 kênh ( được gọi là node), thì mỗi kênh của công tắc có thể được gọi là 1 thành phần (element) có thể điều khiển độc lập mà không ảnh hưởng tới cái khác.

3. Mô hình (model)
Một model định nghĩa một phần hoặc toàn bộ chức năng của một element. Nói cách khác, model quy định xem element đó có thể làm gì (ví dụ: bật/tắt, điều chỉnh độ sáng, đo nhiệt độ).
Có ba loại model chính:
- Server Model (Mô hình Máy chủ): Quản lý và lưu trữ các trạng thái của thiết bị chấp hành (ví dụ: trạng thái bật/tắt của công tắc).
- Client Model (Mô hình Máy khách): Gửi yêu cầu để đọc hoặc thay đổi trạng thái trên Server Model (ví dụ: gateway gửi cho công tắc).
- Control Model (Mô hình Điều khiển): Một mô hình phức tạp hơn có thể bao gồm cả logic của Server và Client, thường dùng để điều phối các model khác.
4. Trạng thái (State)
Các element có thể tồn tại ở nhiều điều kiện khác nhau, được biểu thị bằng các giá trị trạng thái (state).
Ví dụ, bật (on) và tắt (off) là các trạng thái của một bóng đèn. Một sự thay đổi từ trạng thái này sang trạng thái khác được gọi là chuyển đổi trạng thái (state transition). Quá trình này có thể diễn ra tức thời, hoặc diễn ra từ từ trong một khoảng thời gian gọi là thời gian chuyển tiếp (transition period). Khi một trạng thái thay đổi, nó thường sẽ dẫn đến sự thay đổi trong hành vi của element đó.
5. Thuộc tính (Property)
Thuộc tính (property) bổ sung thêm ngữ cảnh (context) cho một giá trị trạng thái.
Ví dụ, một trạng thái có thể là giá trị nhiệt độ "25°C", nhưng thuộc tính sẽ định nghĩa rõ hơn đó là nhiệt độ trong nhà hay ngoài trời.
Có hai loại thuộc tính:
- Thuộc tính nhà sản xuất (Manufacturer Property): Cung cấp quyền truy cập chỉ đọc (read-only).
- Thuộc tính quản trị (Admin Property): Cung cấp quyền truy cập đọc-ghi (read-write).
6. Ngữ cảnh (Scene)
Một ngữ cảnh (scene) là một tập hợp các trạng thái đã được lưu trữ và được xác định bằng một số 16-bit duy nhất trong mạng mesh.
Ngữ cảnh cho phép bạn kích hoạt một hành động duy nhất để thiết lập trạng thái cho nhiều nút khác nhau. Ví dụ, ngữ cảnh "Xem phim" có thể đồng thời giảm độ sáng đèn phòng khách, tắt đèn bếp và bật đèn trang trí.
Các ngữ cảnh có thể được kích hoạt theo yêu cầu (on-demand) hoặc tại một thời điểm được chỉ định.
7. Tin nhắn (Message)
Tin nhắn (message) là cơ chế để thực thi các hoạt động (operation) trên các nút.
Nếu một nút cần gửi lệnh (ví dụ: "bật đèn") hoặc cần báo cáo trạng thái của mình (ví dụ: "nhiệt độ hiện tại là 22°C"), nó sẽ thực hiện điều đó thông qua một message. Một loại tin nhắn cụ thể sẽ đại diện cho một hoạt động trên một trạng thái hoặc một tập hợp nhiều giá trị trạng thái.
8. Địa chỉ (Address)
Các message trong mạng Bluetooth mesh phải được gửi đến và gửi đi từ một địa chỉ (address). Địa chỉ giúp xác định đích đến của tin nhắn, cho dù đó là một element cụ thể, một nhóm các element, hay tất cả các nút trong mạng
5. Kiến trúc của Bluetooth Mesh
Bluetooth Mesh được xây dựng trên nền tảng (on top of) Bluetooth LE (Bluetooth Low Energy).
Một điểm mấu chốt là: các thiết bị trong mạng Bluetooth mesh không kết nối với nhau như các thiết bị BLE truyền thống (ví dụ: điện thoại kết nối với tai nghe).
Thay vào đó, chúng sử dụng trạng thái Quảng bá (Advertising) và Quét (Scanning) để chuyển tiếp tin nhắn cho nhau.
Các tầng kiến trúc
Hãy tưởng tượng kiến trúc của Bluetooth Mesh giống như việc gửi một gói hàng qua nhiều lớp dịch vụ. Chúng ta sẽ đi từ dưới lên trên:
- Tầng Bluetooth Low Energy (BLE): Đây là phần móng của cả tòa nhà. Bluetooth mesh yêu cầu một bộ stack BLE đầy đủ chạy trên thiết bị. Nó sử dụng các kênh Quảng bá và Quét để gửi/nhận tin nhắn mesh.
- Tầng Bearer (Tầng mạng): Tầng này định nghĩa "phương tiện" để vận chuyển các gói tin mesh (gọi là PDU).
- Advertising Bearer: Sử dụng phương tiện là quảng bá (Advertising) - đây là phương thức chính, gửi cho mọi người.
- GATT Bearer: Sử dụng "xe máy giao hàng riêng" - đây là phương thức đặc biệt dùng cho Proxy Node, cho phép các thiết bị như điện thoại (không hỗ trợ mesh) tương tác với mạng mesh thông qua kết nối GATT.
- Tầng Lower Transport (Vận chuyển Thấp): Tầng này giống như "nhân viên bốc xếp" ở kho bao gồm các chức năng như :
- Phân đoạn (Segmentation): Nếu gói hàng từ tầng trên (Upper Transport) quá lớn, tầng này sẽ chia nó thành nhiều thùng nhỏ.
- Tái hợp (Reassembly): Khi nhận được các thùng nhỏ từ tầng Bearer, tầng này sẽ ráp chúng lại thành gói hàng lớn ban đầu.
- Tầng Upper Transport (Vận chuyển Cao): Đây là "bộ phận an ninh" của kho.
- Mã hóa (Encryption) và Giải mã (Decryption): Đảm bảo gói hàng được niêm phong an toàn.
- Xác thực (Authentication): Kiểm tra xem gói hàng có đúng là từ người gửi đáng tin cậy không.
- Tin nhắn điều khiển: Xử lý các tin nhắn nội bộ quan trọng như Heartbeat (báo cáo sự sống) và Friendship (tin nhắn cho LPN).
- Tầng Access (Tiếp cận): Tầng này định nghĩa cách ứng dụng sử dụng tầng vận chuyển, giống như "người điều phối" quyết định loại hàng hóa.
- Nó định dạng dữ liệu ứng dụng.
- Nó quyết định dùng "chìa khóa" nào (AppKey) để mã hóa/giải mã, đảm bảo chỉ các ứng dụng liên quan mới đọc được (ví dụ: ứng dụng "Ánh sáng" không đọc được tin nhắn của ứng dụng "An ninh").
- Tầng Foundation Models (Mô hình Nền tảng): Đây là các model bắt buộc, liên quan đến "Quản lý mạng".
- Chịu trách nhiệm về cấu hình mạng, quản lý các khóa bảo mật, v.v.
- Tầng Models (Mô hình): Đây là "gói hàng" thực sự mà người dùng quan tâm. Tầng này triển khai các model cụ thể (ví dụ: Generic OnOff Server), bao gồm các hành vi, trạng thái (ví dụ: "Bật" hoặc "Tắt"), và cách các trạng thái liên kết với nhau.
6. Mạng Bluetooth mesh hoạt động như thế nào ?
Tiếp nối phần trước, chúng ta sẽ tìm hiểu sâu hơn về cách hoạt động của mạng mesh: cách thức các tin nhắn được gửi đi, được tối ưu hóa và cách mạng lưới hỗ trợ các thiết bị tiết kiệm năng lượng.

