Tổng quan và các khái niệm quan trọng trong Bluetooth Mesh

Bluetooth Low Energy (BLE) xuất hiện vào năm 2010 để góp phần giải quyết những vấn đề về kết nối và truyền nhận dữ liệu trong thời kì phát triển nhanh chóng của các thiết bị trong lĩnh vực Internet of Things (IoT) bao gồm cảm biến, thiết bị đeo, thiết bị y tế, … . Bên cạnh đó, BLE đã hỗ trợ mô hình kết nối mạng mesh. Trong mô hình kết nối đó các thiết bị BLE có thể gởi bản tin cho nhau hay chuyển tiếp bản tin đến các thiết bị khác ở trong mạng. Đến tháng 7/2017 thì  Bluetooth SIG đã chính thức phát hành chuẩn Bluetooth Mesh.

Bài viết này cung cấp cho các bạn các thông tin tổng quan và các khái niệm quan trọng trong Bluetooth Mesh, các bài viết chuyên sau về lập trình chức năng cho thiết bị Bluetooth các bạn có thể xem qua tại địa chỉ này.  

A/Tổng quan về Bluetooth Mesh

  • Bluetooth mesh do chuẩn Bluetooth SIG quy định và được phát hành vào tháng 7 năm 2017 với mục tiêu mở rộng kết nối của các thiết bị Bluetooth.
  • Bluetooth mesh xây dựng dựa trên BLE và sử dụng nhiều khái niệm của BLE
  • Có 2 trạng thái hoạt động chính của các thiết bị BLE là: Advertising (Scanning), hoặc Connection. Còn Bluetooth mesh chỉ sử dụng trạng thái Advertising/Scanning của thiết bị BLE. Điều này có nghĩa là các thiết bị nằm trong mạng Bluetooth mesh sẽ không kết nối lẫn nhau như cách truyền thống mà BLE đã làm. Thay vào đó, các thiết bị sẽ chuyển tiếp bản tin cho nhau thông qua các gói tin Advertising và sẽ được nhận bởi các thiết bị khác trong mạng thông qua Scanning.
  • Bluetooth mesh hỗ trợ từ version BLE 4.0 trở đi, với BLE 5.0 thì khoảng cách truyền xa hơn, tốc độ truyền dữ liệu cao hơn.
  • Các phiên bản trước của Bluetooth hỗ trợ hai cấu trúc liên kết khác nhau:  One-to-one (Khi hai thiết bị BLE được kết nối). One-to-many: Khi các thiết bị BLE hoạt động độc lập và đang ở trạng thái Broadcast.
  • Với Bluetooth mesh, BLE sẽ sử dụng một cấu trúc liên kết mới. Các thiết bị hoạt động như mạng many-to-many, các thiết bị có thể thiết lập kết nối với nhiều thiết bị khác ở trong mạng.
  • Số lượng node tối đa trong mạng Bluetooth mesh là 32.767 node.
  • Bước nhảy tối đa mà bản tin có thể truyền trong mạng Bluetooth mesh là 127 bước.

Lợi ích của mesh network:

  • Extended range: Các node có thể chuyển tiếp bản tin đến các node ở xa hơn thông qua node ở giữa chúng. Điều này cho phép mở rộng phạm vi hoạt động của mạng và mở rộng phạm vi hoạt động của các thiết bị.
  • Self-healing capabilities: Nếu có một node ở trong mạng bị mất kết nối, thì các node còn lại vẫn có thể tham gia vào quá trình gởi bản tin, chuyển tiếp bản tin để node khác. Tuy nhiên, điều này chỉ đúng một phần trong BLE mesh vì có rất nhiều loại node có chức năng khác nhau và một số loại node lại phụ thuộc lẫn nhau, mình sẽ đề cập những loại này sau trong bài viết sau.

B/ Các khái niệm quan trọng trong Bluetooth Mesh

  • Node: Node là một thiết bị đã tham gia mạng Bluetooth mesh. Các thiết bị không phải là một phần của mạng được gọi là thiết bị chưa được cấp phát (unprovisioned). Khi một thiết bị unprovisioned được cấp phát (provisioned) nó sẽ tham gia vào mạng Bluetooth mesh và trở thành một node.

  • Element: Một node có thể chứa nhiều phần có thể được kiểm soát độc lập. Ví dụ, một cụm bóng đèn có thể chứa nhiều bóng đèn có thể bật/tắt độc lập. Những phần khác nhau của một node được gọi là các phần tử.

  • State: Trong node có nhiều phần tử khác nhau và mỗi phần tử mang một trạng thái. Chẳng hạn bật và tắt là trạng thái của bóng đèn trong cụm 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à sự chuyển đổi trạng thái. Điều này có thể là ngay lập tức hoặc có thể xảy ra theo thời gian.  Một số trạng thái có thể bị ràng buộc với nhau, có nghĩa là một thay đổi trong một trạng thái kích hoạt một thay đổi ở trạng thái khác. Có thể có hai hoặc nhiều trạng thái ràng buộc với nhau. Lấy ví dụ như một bóng đèn dimmer: Điều chỉnh độ sáng của đèn cần những mức độ khác nhau cũng như trạng thái bật/tắt. Nếu giá trị trạng thái hiện tại thay đổi thành 0, nó sẽ kích hoạt trạng thái bật/tắt để chuyển sang tắt. Nếu mức thay đổi từ 0 thành giá trị khác không, thì điều đó sẽ kích hoạt trạng thái bật/tắt để chuyển sang bật và sáng theo từng mức độ khác nhau.
  • Property: Thuộc tính được thêm vào trong một số tình huống cho giá trị trạng thái. Chẳng hạn, định nghĩa giá trị nhiệt độ ở trong nhà hoặc ngoài trời có hai kiểu thuộc tính:
    • Manufacturer property: Chỉ cung cấp quyền truy cập cho đọc
    • Admin property: Chỉ cung cấp quyền truy cập cho ghi
  • Message: Trong Bluetooth mesh, tất cả các giao tiếp trong mạng đều được thực hiện theo bản tin. Các node gửi bản tin để điều khiển hoặc chuyển tiếp thông tin cho nhau. Có ba loại bản tin trong Bluetooth mesh, mỗi loại được xác định bởi một mã opcode:
    • Một bản tin GET: Một thông báo để yêu cầu status từ một hoặc nhiều node.
    • Một bản tin SET: Một thông báo để thay đổi value của một status nhất định.
      • Phản hồi bản tin GET: Chứa giá trị trạng thái.
      • Phản hồi bản tin SET: Xác nhậnMột bản tin STATUS: Bản tin về status được sử dụng trong các tình huống khác nhau
    •  Một số bản tin yêu cầu thiết bị nhận xác nhận bản tin được gửi. Việc thông báo xác nhận này có hai mục đích như sau:
      • Xác nhận đã nhận được bản tin
      • Trả lại dữ liệu liên quan đến bản tin nhận được.
    • Trong trường hợp thiết bị gửi không nhận được phản hồi cho bản tin hoặc nhận được phản hồi không mong muốn, nó có thể gửi lại bản tin. Nhiều bản tin được xác nhận nhận được bởi một node không ảnh hưởng đến quá trình hoạt động của node đó.
  • Address: Bản tin trong mạng Bluetooth mesh phải được gởi đến hoặc gởi từ một địa chỉ. Có ba loại địa chỉ:
    • Unicast Address: Một địa chỉ định danh duy nhất của 1 node được cung cấp trong quá trình provisioning
    • Group Address: Một địa chỉ được sử dụng để xác định một nhóm các node. Một group address có thể hiểu như một căn phòng, các bóng đèn ở trong một các phòng nhất định và mỗi bóng đèn là một node. Theo định nghĩa của BLE SIG, có 4 Group address cố định bao gồm All-proxies, All-friends, All-relays, and All-nodes
    • Virtual Address: Địa chỉ mà có thể gán cho một hoặc nhiều phần tử, trên một hoặc nhiều nodes. Hoạt động này giống như là một nhãn và có định dang 128-bit UUID có thể lấy bởi bất kì phần tử nào liên kết. Địa chỉ ảo này có khả năng được cấu hình sẵn tại điểm sản xuất.
  •  Publish/Subcribe: Cách trao đổi bản tin trong mạng Bluetooth mesh thông qua cơ chế Publish/Subcribe. Publish là hoạt động gửi bản tin đi. Subcribe là cấu hình đăng kí một địa chỉ nhất định để nhận các bản tin Pushlish sau đó xử lý. Thông thường, tin nhắn được gửi đến Group address hoặc Virtual addres.

    Ví dụ về mạng lưới trong một ngôi nhà mà  gồm có 6 công tắc đèn và 9 bóng đèn. Mạng lưới sử dụng phương thức Pushlish/Subcribe để cho phép các nút gửi bản tin cho nhau. Các Node có thể Subcribe nhiều địa chỉ như bóng đèn 3 trong hình trên, được Subcribe vào cả địa chỉ nhóm Kitchen và Dining Room. Ngoài ra, nhiều nút có thể Publish đến cùng một địa chỉ, chẳng hạn như các công tắc 5 và 6 trong ví dụ này hai công tắc này điều khiển cùng một nhóm đèn Garden.

  • Managed flooding: Bluetooth meshchuyển tiếp bản tin thông từ node này đến node kia trong mạng mà không xem xét về đường truyền để đến được địa chỉ đích. Kỹ thuật này được gọi là Managed flooding, bản tin được phát tới tất cả các node trong phạm vi của node gởi với một vài kĩ thuật tối ưu hóa được thêm vào:

    • Messages have a TTL assignedTTL là viết tắt của time-to-live, giới hạn số bước nhảy mà bản tin có thể truyền qua các nodes trong mạng. Nếu TTL = 0 có nghĩa là một node có thể gửi tin nhắn đến các nodes khác trong phạm vi phủ sóng của nó và chỉ ra rằng các nodes không có khả năng chuyển tiếp bản tin khi TTL = 0. Nếu một tin nhắn được gửi với TTL = 2, thì mỗi lần nó được chuyển tiếp, giá trị TTL sẽ bị giảm. Giá trị TTL là 1 có nghĩa là tin nhắn có thể đã được chuyển tiếp ít nhất một lần nữa.
    •  Messages are cached: Bản tin được yêu cầu lưu trữ bởi tất cả các nodes và yêu cầu tất cả các bản tin tồn tại trong bộ nhớ đệm phải bị xóa ngay lập tức
    • Friendship: là mối quan hệ của 2 node trong mạng, hai loại này là:
      • Low-power node (LPN) là node bị giới hạn nguồn và bảo tồn nguồn năng lượng và hầu hết không thể nhận được bản tin của mạng mesh trong hầu hết thời gian. Node này dành hầu hết thời gian để tắt bộ phát sóng.
      • Friend node luôn luôn được cấp năng lượng để hoạt động, nó có thể dụng để cấp phát dữ liệu cho LPN, Friend node sẽ lưu trữ bản tin cho LPN để tiết kiệm năng lượng, vì vậy LPN có dành hầu hết thời gian ở trạng thái ngủ và thỉnh thoảng thức dậy. Khi LPN thức dậy, nó sẽ đọc hết tất cả dữ liệu ở trong bộ nhớ của Friend node và gởi bất kỳ bản tin nào mà nó cần phải gởi đến mạng lưới.

Bài viết chia sẻ về Tổng quan và các khái niệm quan trọng trong Bluetooth Mesh đến đây kết thúc.  Hẹn các bạn ở bài viết tiếp theo để tìm hiểu thêm 1 số khía cạnh của Bluetooth mesh như:

  • So sánh Bluetooth Mesh và các công nghệ truyền dữ liệu không dây khác.
  • Kiến trúc của Bluetooth Mesh
  • Các loại node trong Bluetooth mesh
  • Quá trình cấp phát Bluetooth mesh vào mạng
  • Bảo mật

Nguồn bài viết:  novelbits.io 

Chúc các bạn thành công! 

Nhóm TAPIT R&D