12/08/2018, 14:36

Tổng quan về Bluetooth Smart hay Bluetooth Low Energy(BLE) – Part 1

Bluetooth Low Energy (BLE), hay còn được biết đến là “Bluetooth Smart”, công nghệ này được giới thiệu khi BLE 4.0 chính thức được ra mắt. Như vậy từ BLE 4.0 bên cạnh Bluetooth classic, thì chúng ta đã có một người anh em khác là BLE Smart. Hai công nghệ này có những điểm ưu và hạn chế ...

Bluetooth Low Energy (BLE), hay còn được biết đến là “Bluetooth Smart”, công nghệ này được giới thiệu khi BLE 4.0 chính thức được ra mắt. Như vậy từ BLE 4.0 bên cạnh Bluetooth classic, thì chúng ta đã có một người anh em khác là BLE Smart. Hai công nghệ này có những điểm ưu và hạn chế khác nhau, tuỳ vào yêu cầu kỹ thuật mà ta lựa chọn công nghệ cho phù hợp. Ví dụ, để truyền dữ liệu có kích thước lớn, tính delay chậm thì Bluetooth classic sẽ được lựa chọn. Đối với những bài toán truyền tải dữ liệu nhỏ, cần tiết kiệm năng lương, thì BLE Smart là lựu chọn tối ưu.

Hiện nay, có rất nhiều công nghệ không dây được giới thiệu, tuy nhiên BLE vẫn được các kỹ yêu thích sử dụng trong các dự án của mình, với lý do nó có tính tương thích cao với nhiều nền tảng. Đặc biết với các nền tảng mobile như (iOS, Android,Windows Phone,...).

Bài viết dưới đây, sẽ đưa ra một cái nhìn tổng quát về BLE, đặc biết là cách mà dữ liệu được tổ chức, truyền tải trong BLE, bên cạnh đó là cách mà thiết bị “advertise”( tạm hiểu là thiết bị sẽ bắn ra các gói tin về sự tồn tại của nó,các thiết bị BLE khác đang lắng nghe, dò tìm sẽ nhận được thông tin đó, từ đó có thể thiết lập giao tiếp với nhau).

**II. Các nền tảng được hỗ trợ ** Những nền tảng hỗ trợ Bluetooth 4.0 thì đều hỗ trợ Bluetooth Low Energy. ¬ iOS5+ (iOS7+ preferred) ¬ Android 4.3+ (numerous bug fixes in 4.4+) ¬ Apple OS X 10.6+ ¬ Windows 8 (XP, Vista and 7 only support Bluetooth 2.1) ¬ GNU/Linux Vanilla BlueZ 4.93+ III. GAP – Generic Access Profile GAP là khái niệm đầu tiên cần phải biết đến khi làm việc với BLE, nó là viết tắt của Generic Access Profile. GAP ở đây, định nghĩa cách một thiết bị được nhìn thấy bởi thế giới bên ngoài, và cách mà hai thiết bị có thể tương tác với nhau.

Vai trò của mỗi thiết bị khi tương tác với nhau Trong sự tương tác giữa 2 thiết bị, có 2 khái niệm quan trọng đó là: Central and Peripheral. Mối quan hệ Central-Peripheral cũng giống như mối quan hệ của Client-Server, trong đó Central là Client và Peripheral sẽ là server. Peripheral sẽ advertise,bắn ra các gói tin, chứa thông tin về các dịch vụ mà nó cung cấp, Central sẽ lắng nghe, khi nó bắt được các gói tin chứa các thông tin mà nó quan tâm, thì một yêu cầu kết nối sẽ được gửi đến Peripheral. Peripheral: thông thường là các thiết bị nhỏ, năng lượng thấp, như các sensor chẳng hạn. Còn Central thông thường sẽ là các thiết bị mobile, cần lấy thông tìn từ các sensor kia chẳng hạn. Có hai cách để một peripheral cung cấp thông tin của nó ra thế giới bên ngoài: Advertising Data payload và Scan Response payload. Cả hai cách trên đều gửi tối đa một gói tin 31 bytes, tuy nhiên mỗi cách được sử dụng theo một mục đích khác nhau. “Advertising Data payload” gói tin này là bắt buộc các thiết bị peripheral phải cung cấp ra bên ngoài, gói tin này chứa các thông tin cơ bản mà thiết bị đó muốn thế giới bên ngoài biết được. Tuy nhiên như đã nói ở trên, vì giới hạn chỉ là 31 bytes, nên không phải lúc nào các thông tin cũng đầy đủ để phía Central có thể tin cậy đó là đối tác đang tìm kiếm. Khi đó Scan Response payload sẽ được sử dụng, lúc này sau khi Central bắt được gói tin Advertising Data payload, vì vẫn chưa đủ thông tin, nên nó sẽ gửi thêm một yêu cầu (Scan Response Request) về phía Peripheral, Peripheral lúc này sẽ đáp trả yêu cầu trên bằng cách bắn ra một gói tin Scan Response playload, gói tin chứa các thông tin mà phái Central yêu cầu.

Sauk khi kết nối được tạo thành giữa Central-Peripheral, quá trình Peripheral sẽ kết thúc quá trình Advertise, ngoài Central đã tạo được kết nối, không thiết bị nào có thể nhìn thấy Peripheral đó nữa. Đối với Central đã kết nối, việc trao đổi dữ liệu hai chiều lúc này được tiến hành qua GATT profile, sẽ được đề cập ở phần tiếp theo.

IV. GATT - Generic Atrribute Profile GATT là viết tắt của Generic Atrribute Profile quy định cách hai thiệt bị BLE lưu trữ, trao đổi với nhau thông qua hai khái niệm Service và Characteristics. Như đã đề cập ở trên, GATT chỉ được đề cập khi hai thiết bị đã thiết lập được kết nối. Một điều quan trọng nữa của GATT tại một thời điểm, một peripheral chỉ cho phép một kết nối duy nhất đến từ Central. Ở chiều ngược lại, một Central có thể kết nối đến nhiều peripheral một lúc. Bất cứ khi nào kết nối được tạo, thì lập tức peripheral sẽ dừng lại quá trình adveritise, và như thế không một thiết bị nào có thể “nhìn” thấy nó nữa. GATT Transactions Các thiết bị peripheral còn được gọi là GATT Server, nơi cung cấp cá thông tin được định nghĩa thông qua service và characteristic, GATT Client (phone, table) sẽ gửi các request về GATT Server để lấy thông tin cần thiết. Services and Characteristics GATT transaction in BLE được được thi thông qua các khái niệm profile, service và characteristics được mô tả như bên dưới. Profile là một tập hợp các Services đã đươc định nghĩa trước, các service đó sẽ cùng hoạt động trong một peripheral. Services: là tập hợp của các charactistic có quan hệ với nhau. Để thuận lợi cho việc tổ chức dữ liệu, mỗi service được tạo ra sẽ có một một đích nhất định và không chia sẻ characteristic với service khác. Một ví dụ đơn giản, một thiết bị BLE có các cảm ứng về nhiệt độ và độ ẩm, sẽ tạo tách biệt ra 2 service về nhiệt độ và độ ẩm riêng. Characteristic: chính là nơi dữ liệu được lưu trữ và chung chuyển. Phần sau, tôi sẽ đề cập đến việc áp dụng GATT trên hai nền tảng mobile là Android và iOS.

0