Giới thiệu Intel Edison - Tùy biến Bluetooth - P3

Tính năng của một thiết bị bluetooth phụ thuộc vào thông số cấu hình được khai báo trên mạch thu/ phát tín hiệu; việc tùy chỉnh các thông số này trên phần cứng/ phần mềm sẽ giúp quá trình truyền tải giữa các thiết bị đạt hiệu năng tốt nhất cho từng mục đích sử dụng trên thực tế. Mã nguồn BlueZ được cài đặt trên nền Yocto Linux cho phép người dùng Intel Edison tùy biến mạnh mẽ các thông số bluetooth một cách dễ dàng thông qua các tập tin cấu hình.

1. Tổng quan về Bluetooth profile

Để sử dụng công nghệ không dây Bluetooth, các thiết bị phải có khả năng tự định danh thông qua các khai báo mà nhà sản xuất gán sẵn vào phần cứng. Bluetooth profile là một loạt các định nghĩa được mô tả nhằm thông báo với các thiết bị khác các tính năng mà nó hỗ trợ trong phạm vi phần cứng có thể thực hiện (ví dụ: tai nghe bluetooth, bàn phím/ chuột bluetooth, ...)

Một số thuật ngữ

  1. Bluetooth Basic Rate/Enhanced Data Rate (BR/EDR): được sử dụng phiên bản Bluetooth 2.0/2.1
  2. Bluetooth with low energy (LE): được sử dụng phiên bản Bluetooth 4.0/4.1/4.2
  3. Device Identification Profile (DI): cho phép nhà sản xuất, người dùng điều chỉnh, bổ sung các thông tin định danh, tính chất của thiết bị Bluetooth.

Kiến trúc Bluetooth

Kiến trúc lõi của tiêu chuẩn Bluetooth bao gồm nhiều thành phần khác nhau và phân thành ba nhóm Bluetooth Apps, Bluetooth hosts và Bluetooth controllers. Để hiểu rõ thêm về tính năng của từng thành phần, bạn có thể truy cập tài liệu công bố chính thức tại trang web Bluetooth core specification  .

Hình: Kiến trúc lõi tiêu chuẩn Bluetooth

Thành phần mà tôi sẽ đề cập chính trong bài viết này là Generic Access Profile - GAP thực hiện quản lý vai trò của thiết bị (roles), thủ tục (procerdures) và chế độ (modes) trong việc truyền tải dữ liệu, rà quét thiết bị, thiết lập/ quản lý kết nối, thống nhất các mức độ bảo mật. Các thông tin này bắt buộc phải được khai báo trong các thiết bị BLE.

Hình: Bluetooth profiles

Hình: Sơ đồ tương quan giữa Device ID profile và Service Discovery Protocol trong GAP

Hình: BLE protocol stack

Hình: Sơ đồ kết nối các phiên bản Bluetooth

Hình: Một số kiến trúc phần cứng dựa theo tiêu chuẩn Bluetooth

2. Tùy chỉnh thông tin định danh thiết bị (DI)

Sau khi xác định được vị trí của DI trong kiến trúc Bluetooth, người dùng có thể thực hiện điều chỉnh các tham số trong cấu hình Edison nhằm đạt được mục tiêu tùy biến định danh thiết bị. Các profile khác mà BlueZ hỗ trợ người dùng được cập nhật tại trang chính của dự án http://www.bluez.org/profiles/

Để thực hiện thay đổi DI của thiết bị, người dùng chỉnh sửa tập tin /etc/blutooth/main.conf, thông số cần thay đổi là DeviceID = bluetooth:1234:5678:abcd

  • VendorID Source: có thể thiết lập giá trị là Bluetooth hoặc USB.
  • VendorID: 16bits dữ liệu định danh nhà sản xuất. Người dùng có thể tham khảo danh mục các nhà sản xuất đã đăng ký mã định danh thiết bị Bluetooth tại Bluetooth company identifiers và cho USB tại The USB ID Repository
  • ProductID: 16bits dữ liệu dịnh đạnh mã sản phẩm.
  • Version: 16bits dữ liệu định danh phiên bản.

Giá trị mặc định được thiết lập trên Edison có ý nghĩa như sau:

  • VendorID Source: USB
  • VendorID: 0x1D6B (Linux Foundation)
  • ProductID: 0x0246 (BlueZ)
  • Version: 0x0525 (5.37)
root@VisudoBlog:~# rfkill unblock bluetooth  
root@VisudoBlog:~# bluetoothctl  
[NEW] Controller 98:4F:EE:04:21:A5 VisudoBlog [default]
[bluetooth]# show
Controller 98:4F:EE:04:21:A5  
        Name: VisudoBlog
        Alias: VisudoBlog
        Class: 0x6c0110
....
        Modalias: usb:v1D6Bp0246d0525
        Discovering: no

3. Thay đổi Bluetooth MAC address

Trên mỗi thiết bị Intel Edison, một dãy địa chỉ Bluetooth MAC duy nhất sẽ được định danh bởi nhà sản xuất. Để thực hiện thay dổi giá trị MAC, bạn cần thực hiện mount thư mục /factory và chỉnh sửa tập tin /factory/bluettoh_address, sau đó tiến hành khởi động lại thiết bị reboot để xem sự thay đổi.

Kiểm tra thư mục /factory sử dụng lệnh df -h

root@VisudoBlog:~# df -h  
Filesystem       Size  Used Avail Use% Mounted on  
/dev/root        1.4G 1011M  318M  77% /
.....
/dev/mmcblk0p10  1.3G  7.5M  1.3G   1% /home
tmpfs            481M  6.1M  474M   2% /var/volatile  
/dev/mmcblk0p5  1003K   19K  913K   3% /factory
.....

Kiểm tra thư mục /factory sử dụng lệnh mount -v | grep factory

root@VisudoBlog:~# mount -v | grep factory  
/dev/mmcblk0p5 on /factory type ext4 (ro,nosuid,nodev,noatime,discard,noauto_da_alloc)

Thực hiện mount thư mục /factory và chỉnh sử Bluetooth MAC address.

root@VisudoBlog:~# mount -o remount,rw /dev/mmcblk0p5 /factory  
root@VisudoBlog:~# vi /factory/bluetooth_address  
root@VisudoBlog:~# reboot  

4. Tham khảo

  1. https://developer.bluetooth.org/TechnologyOverview/pages/profiles.aspx
  2. https://developer.bluetooth.org/TechnologyOverview/Pages/HID.aspx
  3. Intel Edison Bluetooth Guide - R004
lên
3 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 
Chuyên mục: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Giới thiệu Intel Edison - Cylon.js - P6

CylonJS là một thư viện Javascript hỗ trợ trong việc phát triển Robot và các dự án IoT trên nền tảng Node.js. Sức mạnh của CylonJS nằm trong số lượng 43 mạch điều khiển và phần mềm mà nó hỗ trợ. Trường hợp bạn đang sở hữu một mạch Arduino và muốn tìm hiểu về CylonJS, hãy truy cập ngay trang web chính thức để có thể bắt đầu từ bây giờ https://cylonjs.com/documentation/platforms/arduino/.

lên
6 thành viên đã đánh giá bài viết này hữu ích.

Giới thiệu SDR - Ứng dụng MATLAB và RTL-SDR trong nghiên cứu sóng vô tuyến - P1

Trong bài viết này, tôi sẽ thực hiện các thí nghiệm về xử lý tín hiệu không dây sử dụng công nghệ Software Defined Radio (SDR), đây là một chủ đề đã được nghiên cứu trong 20 năm trở lại đây và đang là xu hướng phát triển trong các thiết bị IoT ngày nay.

lên
8 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: