TỔNG QUAN
Giới thiệu tổng quan về Bluetooth
Bluetooth là công nghệ không dây cho phép các thiết bị điện tử giao tiếp trong khoảng cách ngắn thông qua sóng vô tuyến Nó hoạt động trên băng tần chung ISM từ 2.40 đến 2.48 GHz, một dãy băng tầng không cần đăng ký, được sử dụng cho các thiết bị không dây trong các lĩnh vực công nghiệp, khoa học và y tế.
Bluetooth được phát triển để thay thế cáp kết nối giữa máy tính và các thiết bị truyền thông cá nhân, cho phép kết nối không dây giữa các thiết bị điện tử một cách thuận tiện và tiết kiệm chi phí.
Khi được kích hoạt, Bluetooth tự động phát hiện và kết nối với các thiết bị khác trong khu vực có cùng công nghệ Công nghệ này chủ yếu được sử dụng để truyền dữ liệu và âm thanh một cách hiệu quả.
1.1.2 Lịch sử, hình thành và phát triển của Bluetooth
Tên gọi Bluetooth được lấy cảm hứng từ vua Đan Mạch Harald Bluetooth, người nổi tiếng với khả năng giao tiếp và thương lượng Tên này được các nhà nghiên cứu chọn để nhấn mạnh khả năng kết nối và trao đổi thông tin giữa các thiết bị thông qua công nghệ Bluetooth.
In 1994, Sven Mattison and Jaap Haartsen, employees of Ericsson (now Sony Ericsson and Ericsson Mobile Platforms), developed the initial features of Bluetooth technology This innovation was further advanced by the Bluetooth Special Interest Group (SIG), which officially launched the technology on May 20, 1999.
Sony Ericsson, IBM, Intel, Toshiba, Nokia và nhiều công ty khác đã hợp tác phát triển công nghệ không dây tầm gần, giúp truyền dữ liệu giữa các thiết bị di động và cố định qua khoảng cách ngắn, tạo ra mạng cá nhân không dây (Wireless Personal Area Network - PANs) Công nghệ này còn được biết đến với tên gọi IEEE 802.15.1.
1.1.3 Các đặc điểm của Bluetooth
- Tiêu thụ năng lượng thấp, cho phép ứng dụng được trong nhiều loại thiết bị, bao gồm cả các thiết bị cầm tay và điện thoại di động
- Giá thành hạ (Giá một chip Bluetooth đang giảm dần, và có thể xuống dưới mức 5$ một đơn vị).
- Khoảng cách giao tiếp cho phép :
• Khoảng cách giữa hai thiết bị đầu cuối có thể lên đến 10m ngoài trời, và 5m trong tòa nhà.
• Khoảng cách thiết bị đầu cuối và Access point có thể lên tới 100m ngoài trời và 30m trong tòa nhà.
Bluetooth hoạt động trên băng tần không đăng ký 2.4GHz trong dãy băng tần ISM, cho phép truyền dữ liệu với tốc độ tối đa lên đến 1Mbps Điều đặc biệt là các thiết bị kết nối qua Bluetooth không cần phải nằm trong tầm nhìn trực tiếp với nhau.
Bluetooth giúp phát triển ứng dụng dễ dàng bằng cách kết nối các ứng dụng với nhau thông qua các chuẩn "Bluetooth profiles", cho phép tính độc lập về phần cứng và hệ điều hành.
- Bluetooth được dùng trong giao tiếp dữ liệu tiếng nói: có 3 kênh để truyền tiếng nói, và 7 kênh để truyền dữ liệu trong một mạng cá nhân.
- An toàn và bảo mật: được tích hợp với sự xác nhận và mã hóa ( build in authentication and encryption)
- Tính tương thích cao, được nhiều nhà sản xuất phần cứng cũng như phần mềm hỗ trợ.
Chuẩn IEEE 802.15.1: WPAN / Bluetooth
Phiên bản 1.0 và 1.0B có rất nhiều vấn đề và khiến các nhà sản xuất gặp khó khăn để làm cho sản phẩm của mình tương thích.
Bluetooth v1.1, được phê chuẩn theo tiêu chuẩn IEEE 802.15.1-2002, đã khắc phục các lỗi của phiên bản 1.0B Phiên bản này bổ sung khả năng tiếp nhận các kênh không mã hóa và có thể thông báo sức mạnh tín hiệu.
Các cải tiến chính của chuẩn IEEE 802.15.1-2005 bao gồm tăng tốc quy trình tìm kiếm và kết nối với thiết bị, cải thiện tần số để giảm nhiễu, nâng cao tốc độ truyền tải lên 721 kbit/s so với phiên bản 1.1, mở rộng khả năng kết nối đồng bộ và cải thiện chất lượng âm thanh.
Bluetooth v2.0 ra mắt vào năm 2004 với tính năng Enhanced Data Rate (EDR), cho phép truyền tải dữ liệu nhanh hơn với tốc độ lý thuyết khoảng 3Mbit/s và tốc độ thực tế đạt 2,1 Mbit/s EDR không chỉ cải thiện tốc độ truyền dữ liệu mà còn giúp tiết kiệm năng lượng cho thiết bị Tên gọi “Bluetooth v2.0 + EDR” chỉ ra rằng EDR là tính năng tùy chọn, trong khi các sản phẩm không hỗ trợ EDR thường được ghi là “Bluetooth v2.0” hoặc “Bluetooth v2.0 without EDR” trên thông số kỹ thuật.
Vào ngày 26/7/2007, Bluetooth SIG đã công bố các đặc điểm kỹ thuật chính cho phiên bản 2.1 + EDR, với mục tiêu nâng cao khả năng ghép nối bảo mật đơn giản giữa các thiết bị Bluetooth Phiên bản này không chỉ cải thiện tính tương tác và bảo mật mà còn giảm mức tiêu thụ năng lượng khi hoạt động ở chế độ tiết kiệm.
Phiên bản Bluetooth 3.0 + HS, được công bố bởi Bluetooth SIG vào ngày 21/4/2009, lý thuyết có khả năng cung cấp tốc độ truyền dữ liệu lên đến 24Mbit/s, nhưng không qua kênh Bluetooth Thay vào đó, kết nối nhanh được thực hiện thông qua kết nối 802.11 Các thiết bị Bluetooth không có hậu tố “+HS” sẽ không hỗ trợ tốc độ truyền dữ liệu cao, chỉ đáp ứng các tiêu chuẩn truyền thống của Bluetooth.
Bluetooth SIG đã hoàn tất tiêu chuẩn chính của phiên bản 4.0, được gọi là Bluetooth Thông minh, có hiệu lực từ ngày 30/6/2010 Phiên bản Bluetooth v4.0 bao gồm các công nghệ Bluetooth Truyền thống, Bluetooth Tốc độ cao (HS) và Bluetooth tiết kiệm năng lượng (LE).
Bluetooth tiết kiệm năng lượng (Bluetooth low energy – Bluetooth LE), còn được biết đến với tên gọi Wibree, có giao thức kết nối mới nhằm nhanh chóng thiết lập
Bốn liên kết đơn giản đã được phát triển để thay thế giao thức truyền thống của Bluetooth v1.0 và Bluetooth v3.0, nhằm mục đích tiêu thụ năng lượng tối thiểu Việc lựa chọn giữa kết nối tiết kiệm năng lượng và kết nối truyền thống, tiêu tốn nhiều năng lượng hơn, được quản lý bởi một chip chuyên dụng.
Bluetooth v4.1, được công bố bởi Bluetooth SIG vào ngày 4/12/2013, cải thiện khả năng hoạt động và tăng cường hỗ trợ kết nối LTE Phiên bản này cho phép trao đổi dữ liệu tốc độ cao với dung lượng lớn và hỗ trợ đồng thời nhiều vai trò của thiết bị.
Bluetooth 4.1 cải thiện tình trạng chống chéo tín hiệu của Bluetooth 4.0 và mạng 4G Bluetooth 4.1 sẽ tự động nhận diện và điều chỉnh băng tần để thực hiện tối đa sức mạnh của mình.- Khả năng kết nối thật sự thông minh: Bluetooth 4.1 cho phép các nhà sản xuất có thể xác định khoảng thời gian kết nối trở lại sau thời gian chờ trên các thiết bị của họ giúp quản lý năng lượng của nó được tốt hơn, và các thiết bị kết hợp sẽ điều chỉnh năng lượng phù hợp.- Khả năng truyền dữ liệu: Các thiết bị Bluetooth 4.1 có thể giao tiếp một cách độc lập mà không cần phải phụ thuộc vào trung tâm điều khiển.
Bluetooth 4.2, được phát hành vào ngày 02/12/2014 bởi tổ chức phát triển Bluetooth (SIG), mang đến nhiều cải tiến quan trọng về bảo mật, tốc độ và tính năng mới.
Bluetooth 4.2 có tốc độ truyền tải dữ liệu gấp 2.5 lần so với Bluetooth 4.1. Ngoài ra dung lượng của dữ liệu truyền cũng được tăng lên giúp điện năng tiêu thụ của Bluetooth tiết kiệm hơn và ít xảy ra lỗi trong quá trình kết nối. Đặc biệt Bluetooth 4.2 có tính bảo mật cao hơn giúp thiết bị khó bị tấn công hơn và bạn có thể chia sẻ kết nối internet từ điện thoại đến thiết bị khác thông qua chuẩn giao tiếp cao cấp IPv6.
Bluetooth 4.2 có thể được nâng cấp lên từ 4.0, 4.1 thông qua các bản cập nhật firmware từ nhà sản xuất thiết bị Tuy nhiên nếu phần cứng (chip) không hỗ trợBluetooth 4.2 thì bạn sẽ không được hưởng tốc độ truyền dữ liệu cao của v4.2.
Bluetooth 5.0 mang lại hiệu suất vượt trội so với phiên bản trước, Bluetooth 4.2 Low Energy, với tốc độ nhanh gấp đôi, khoảng cách kết nối xa hơn gấp 4 lần và khả năng truyền tải dữ liệu nhiều hơn gấp 8 lần.
Tốc độ băng thông 2Mbps cho thấy sự ổn định và hiệu suất của tín hiệu không dây, giúp việc cập nhật firmware và tải dữ liệu nhanh chóng hơn.
Các loa và tai nghe không dây hiện nay có khả năng kết nối lên tới 800 feet (240m) mà không gặp vật cản, vượt xa khoảng cách của Bluetooth 4.2 Low Energy Công nghệ này không chỉ cải thiện trải nghiệm âm thanh mà còn mở rộng khả năng kết nối cho các thiết bị trong nhà, như camera quan sát, tủ lạnh thông minh và smart TV, tạo nên một hệ sinh thái kết nối vạn vật qua internet.
Chuẩn IEEE 802.15.3: High Rate WPAN
Nhóm Công tác Tốc độ Cao Wpan (TG3) cho Mạng Cá Nhân Không Dây (WPANs™) đã được thành lập nhằm xây dựng và phát hành một tiêu chuẩn mới cho WPANs với tốc độ cao từ 20Mbps trở lên Tiêu chuẩn mới không chỉ mang lại tốc độ dữ liệu cao mà còn cung cấp các giải pháp tiết kiệm năng lượng và chi phí thấp, đáp ứng nhu cầu của hình ảnh kỹ thuật số tiêu dùng di động và các ứng dụng đa phương tiện.
Nhóm công tác WPAN Higher Rate Alternate PHY (TG3a) được thành lập nhằm phát triển và công bố một tiêu chuẩn mới với tốc độ cao hơn, đạt 110 Mbps hoặc hơn, dựa trên dự thảo tiêu chuẩn P802.15.3 Tiêu chuẩn này sẽ đáp ứng nhu cầu cho các ứng dụng truyền phát trực tuyến và các ứng dụng đa phương tiện khác PHY mới sẽ tích hợp MAC P802.15.3 với những sửa đổi hạn chế.
IEEE 802.15.3b-2006
IEEE 802.15.3b-2005 sửa đổi được phát hành vào ngày 5 tháng 5 năm 2006.
Sửa đổi này tăng cường tiêu chuẩn 802.15.3, cải thiện hiệu suất và khả năng tương tác của MAC thông qua nhiều tối ưu hóa, sửa lỗi và làm rõ các mơ hồ Đồng thời, nó cũng bảo tồn khả năng tương thích ngược Một số tính năng mới đã được xác định trong sửa đổi này.
• Điểm truy cập dịch vụ (SAP) thực thể quản lý lớp MAC (MLME) mới
• kiểm soát liên kết lô-gic/giao thức truy cập mạng con (LLC/SNAP)
• gán địa chỉ phát đa hướng
• nhiều giai đoạn tranh chấp trong một superfame
• một phương pháp để từ bỏ thời gian kênh cho một thiết bị khác trong PAN
• khôi phục mạng nhanh hơn trong trường hợp khi điều phối viên piconet(PNC) đột ngột ngắt kết nối
IEEE 802.15.3c-2009
Tiêu chuẩn IEEE 802.15.3c-2009, được phát hành vào ngày 11 tháng 9 năm 2009, đã được phát triển bởi nhóm tác chiến TG3c nhằm cung cấp một lớp vật lý thay thế dựa trên sóng milimet cho tiêu chuẩn WPAN 802.15.3-2003 Nhóm TG3c được thành lập vào tháng 3 năm 2005 và định nghĩa WPAN sóng milimet hoạt động trong dải tần 57-66 GHz, với băng thông từ 2 đến 9 GHz tùy theo khu vực địa lý Tiêu chuẩn này cho phép tốc độ dữ liệu rất cao trong phạm vi ngắn (10 m), phục vụ cho các ứng dụng như truy cập internet tốc độ cao, tải xuống nội dung trực tuyến và phát trực tuyến thời gian thực Tiêu chuẩn cũng định nghĩa ba chế độ PHY, trong đó chế độ Single carrier (SC) có thể đạt tốc độ lên đến 5.3 Gb/s.
• Chế độ giao diện tốc độ cao (HSI) (một nhà cung cấp dịch vụ, lên đến 5 Gb / s)
• Chế độ âm thanh/hình ảnh (AV) (OFDM, tối đa 3,8 Gb/s).
Ứng dụng của Bluetooth
Các ứng dụng nổi bật của Bluetooth gồm:
- Điều khiển và giao tiếp không dây giữa một điện thoại di động và tai nghe không dây.
- Mạng không dây giữa các máy tính cá nhân trong một không gian hẹp đòi hỏi ít băng thông.
- Giao tiếp không dây với các thiết bị vào ra của máy tính, chẳng hạn như chuột, bàn phím và máy in.
Thay thế các kết nối truyền thống bằng dây giữa các thiết bị đo lường, thiết bị định vị, thiết bị y tế, máy quét mã vạch và các thiết bị điều khiển giao thông nhằm nâng cao hiệu quả và độ tin cậy trong việc truyền tải dữ liệu.
- Thay thế các điều khiển dùng tia hồng ngoại.
- Gửi các các tập tin qua lại các thiết bị dùng Bluetooth khác.
- Điều khiển từ xa cho các thiết bị trò chơi điện tử.
- Kết nối Internet cho máy tính bằng cách dùng điện thoại di động thay modem.
Vấn đề về an toàn và bảo mật trong Bluetooth
1.7.1 An toàn bảo mật trong Bluetooth:
Trong lĩnh vực công nghệ, an toàn tuyệt đối là điều khó đạt được Tuy nhiên, sự phát triển không ngừng của các kỹ thuật bảo mật là rất quan trọng Bluetooth SIG đã cải tiến hệ thống bảo mật nhằm nâng cao tính vững chắc của quá trình ghép nối và bảo vệ quyền riêng tư sau khi kết nối Những nỗ lực này giúp đảm bảo rằng thiết bị luôn được bảo vệ khỏi các cuộc tấn công.
Bluetooth đối mặt với nhiều thách thức về bảo mật, đặc biệt liên quan đến mã hóa và xác thực quyền truy cập Bluetooth Special Interest Group đã phát triển bốn yếu tố bảo mật, nhưng mức độ an toàn của chúng vẫn còn hạn chế Điều này dẫn đến việc nhiều thiết bị Bluetooth có thể bị truy cập mà không cần qua bất kỳ rào cản nào.
Bluetooth hoạt động trong môi trường không dây, dẫn đến một số vấn đề bảo mật liên quan đến chuẩn wireless Để khắc phục những vấn đề này, Bluetooth sử dụng hệ thống nhảy tần số, cho phép hai thiết bị kết nối và đồng bộ nhảy 79 bước trên tần số 2.4 GHz Các phiên bản Bluetooth cũ gặp khó khăn do một số quốc gia giới hạn bước nhảy chỉ còn 23, khiến thiết bị 23 bước không thể giao tiếp với thiết bị 79 bước.
8 các thoả thuận của Bluetooth Special Interest Group, Bluetooth đã sử dụng 79 bước nhảy ở tất cả các nước.
Bảo mật Bluetooth đối mặt với nhiều thách thức, nhưng nó dựa vào bốn yếu tố chính để đảm bảo an toàn Đầu tiên, mỗi thiết bị Bluetooth có một địa chỉ duy nhất 48-bit được định nghĩa bởi IEEE Thứ hai, Private Authentication Key là một số ngẫu nhiên 128-bit, trong khi Private Encryption Key có độ dài từ 8-128-bit để thực hiện mã hóa Cuối cùng, một số ngẫu nhiên được tạo ra bởi chính thiết bị cũng góp phần vào bảo mật.
Khi hai thiết bị muốn kết nối, một mã số ngẫu nhiên (link key) được tạo ra; nếu không có sự đồng ý của cả hai thiết bị, kết nối sẽ không thành công Vấn đề có thể phát sinh nếu thiết bị không chờ đủ lâu để tạo link key Thêm vào đó, trong các phiên bản Bluetooth trước, nếu thiết bị slave thực hiện thuật toán tạo khóa nhanh hơn master, cả hai sẽ tự cho mình là master và không thể kết nối.
Bảo mật Bluetooth không phải là điều bắt buộc, với ba cấp độ bảo mật: Cấp 1 không bảo mật, cho phép mọi thiết bị giao tiếp; Cấp 2 yêu cầu xác thực sau khi kết nối; và Cấp 3 chỉ cho phép kết nối sau khi xác thực Vấn đề lớn là nhiều thiết bị Bluetooth được kích hoạt theo chế độ mặc định với bảo mật bị vô hiệu hóa, dẫn đến khả năng truy cập không an toàn từ các thiết bị khác, theo RSA Security (Judge, 2002).
Bluetooth devices have two levels of access, while the services within these devices are categorized into three levels Some services require both authentication and authorization, others need only authentication, and some are open services that do not require any credentials Additionally, there are two security levels at the device level: untrusted devices necessitate authentication, whereas trusted devices do not.
1.7.2 Phần mô tả về an toàn bảo mật:
Kỹ thuật không dây mang đến nhiều nguy hiểm, trong đó có những rủi ro tương tự như mạng có dây, nhưng cũng có những nguy cơ nghiêm trọng hơn do tính chất kết nối không dây và một số mối đe dọa mới xuất hiện Hầu hết các nguy hiểm quan trọng đều bắt nguồn từ việc giao tiếp trong không khí, một môi trường mở và dễ bị tổn thương.
_ Những nguy hiểm đặc biệt và những yếu điểm của mạng không dây và thiết bị cầm tay bao gồm:
Tất cả những yếu điểm tồn tại trong mạng thông thường đều có trong mạng không dây.
Những kẻ xấu có thể truy cập trái phép vào một mạng lưới thông qua kết nối không dây, từ đó vượt qua các rào cản bảo mật như firewall.
Thông tin nhạy cảm không được mã hóa hoặc chỉ được mã hóa bằng các kỹ thuật đơn giản khi truyền qua kết nối không dây có nguy cơ bị ngăn chặn và tiết lộ.
Tấn công DoS có thể được thực hiện ở kết nối không dây hoặc trên thiết bị.
Kẻ xấu có khả năng đánh cắp các đặc điểm nhận dạng của người dùng hợp pháp, từ đó giả mạo danh tính để truy cập vào hệ thống mạng nội bộ hoặc bên ngoài.
Dữ liệu quý có thể bị hỏng trong quá trình đồng bộ sai.
Kẻ xấu có thể can thiệp vào thông tin cá nhân của người dùng và theo dõi được mọi hoạt động của họ.
Kẻ xấu có thể lợi dụng thiết bị không hợp pháp như client và access point để truy cập vào thông tin quý giá.
Thiết bị cầm tay rất dễ bị mất và lộ thông tin mật.
Dữ liệu có thể bị lấy mà không hề bị phát hiện do cấu hình thiết bị không đúng cách.
Virus hoặc những đoạn code nguy hiểm có thể làm hỏng dữ liệu trên thiết bị không dây va sau đó được đưa vào kết nối mạng có dây.
Kẻ xấu có khả năng lợi dụng mạng không dây để xâm nhập vào các tổ chức hoặc chi nhánh, từ đó tiến hành các cuộc tấn công mà không để lại dấu vết.
Kẻ xâm nhập từ bên ngoài có khả năng chiếm quyền kiểm soát và quản lý mạng, dẫn đến việc họ có thể làm gián đoạn hoặc phá hủy tất cả các hoạt động diễn ra trong hệ thống.
Kẻ xấu có thể lợi dụng các dịch vụ mạng không dây không đáng tin cậy từ "nhóm thứ 3" để chiếm quyền truy cập vào tài nguyên của một chi nhánh hoặc tổ chức khác.
Tấn công nội bộ có thể thực hiện được thông qua những đường truyền đặc biệt.
1.7.3 Nhìn sơ về bảo mật Bluetooth:
CÔNG NGHỆ VÀ KỸ THUẬT KẾT NỐI BLUETOOTH
Giới thiệu chung
Bluetooth là công nghệ truyền thông không dây giữa các thiết bị mà không cần cáp Đây là một chuẩn điện tử, yêu cầu các nhà sản xuất tuân thủ để tích hợp tính năng này vào sản phẩm Các chỉ tiêu kỹ thuật đảm bảo rằng các thiết bị có khả năng nhận diện và tương tác hiệu quả khi sử dụng công nghệ Bluetooth.
Ngày nay, hầu hết các nhà máy sản xuất thiết bị đều ứng dụng công nghệ Bluetooth, bao gồm điện thoại di động, máy tính và thiết bị hỗ trợ cá nhân (PDA) Công nghệ Bluetooth sử dụng tần số vô tuyến, cho phép các thiết bị tích hợp giao tiếp với nhau trong một khoảng cách nhất định, đảm bảo hiệu suất truyền và nhận sóng Thông thường, công nghệ này được sử dụng để kết nối giữa hai loại thiết bị khác nhau, chẳng hạn như sử dụng bàn phím không dây với máy tính, tai nghe không dây cho điện thoại di động, hoặc thêm cuộc hẹn vào lịch PDA của bạn bè từ PDA của bạn.
Các khái niệm dùng trong công nghệ Bluetooth
Master là thiết bị duy nhất trong một Piconet, có nhiệm vụ thiết lập đồng hồ đếm xung và kiểu bước nhảy (hopping) để đồng bộ hóa tất cả các thiết bị trong piconet mà nó quản lý Thông thường, Master là thiết bị đầu tiên thực hiện việc chuyển đổi dữ liệu và quyết định số kênh truyền thông Mỗi Piconet sẽ có một kiểu hopping độc đáo riêng.
In a piconet, all devices that are not designated as the Master must function as Slaves A piconet can support up to seven Active Slaves and a total of 255 Parked (Inactive) Slaves.
Có 3 dạng Slave trong một Piconet:
• Active: Slave hoạt động, có khả năng trao đổi thông tin với Master và các
Slave Active khác trong Piconet Các thiết bị ở trạng thái này được phân biệt thông qua 1 địa chỉ MAC (Media Access Control) hay AMA (Active Member Address ) - đó
15 là con số gồm 3 bit Nên trong 1 Piconet có tối đa 8 thiết bị ở trang thái này (1 cho Master và 7 cho Slave).
Chế độ Standby là trạng thái không hoạt động (inactive) của thiết bị, trong đó thiết bị không thực hiện trao đổi dữ liệu và sóng radio không tác động lên nó Công suất của thiết bị được giảm đến mức tối thiểu nhằm tiết kiệm năng lượng, đồng thời thiết bị không có khả năng dò tìm bất kỳ mã truy cập nào.
Có thể coi là những thiết bị trong nằm ngoài vùng kiểm soát của Master.
Parked: là một dạng inactive, chỉ 1 thiết bị trong 1 Piconet thường xuyên được đồng bộ với Piconet, nhưng không có 1 địa chỉ MAC Chúng như ở trạng thái
Trong một Piconet, các thiết bị ở trạng thái Packed sẽ được đánh địa chỉ bằng PMA (Packed Member Address), một số 8 bits giúp phân biệt các packed Slave Khi thiết bị "ngủ", Master sẽ gọi dậy bằng tín hiệu "beacon" Tối đa có thể có 255 thiết bị ở trạng thái Packed trong một Piconet.
Picotnet là một mạng kết nối các thiết bị qua Bluetooth theo mô hình Ad-Hoc, cho phép truyền dữ liệu nhanh chóng và tự động hủy kết nối sau khi hoàn tất Trong một Piconet, có một thiết bị Master, thường là thiết bị đầu tiên thiết lập kết nối, chịu trách nhiệm quản lý kênh truyền thông và đồng bộ hóa các thành phần trong mạng Các thiết bị còn lại được gọi là Slave, gửi yêu cầu đến Master để thực hiện các tác vụ.
Trong một Piconet, các Slave không thể kết nối trực tiếp với nhau mà phải thông qua Master, người sẽ đồng bộ hóa thời gian và tần số cho các Slave Số lượng Slave tối đa có thể hoạt động đồng thời trong một Piconet là 7.
Hình 2.1 Một Piconet trong thực tế.
Hình 2.3 Piconet gồm nhiều Slave.
Piconet được hình thành khi hai thiết bị kết nối, chẳng hạn như laptop và điện thoại di động Mỗi Piconet có thể chứa tối đa 8 thiết bị, với 3 bit MAC cho mỗi thiết bị Tất cả các thiết bị Bluetooth đều có chức năng ngang hàng, nhưng trong một Piconet, một thiết bị sẽ đóng vai trò Master để đồng bộ hóa tần số và thời gian truyền, trong khi các thiết bị còn lại sẽ hoạt động như Slave.
Là 2 hay nhiều Piconet độc lập và không đồng bộ, các Piconet này kết hợp lại truyền thông với nhau.
• Một thiết bị có thể vừa là Master của Piconet này, vừa là Slave của Piconet
Trong Piconet, vai trò của thiết bị không cố định, cho phép chuyển đổi linh hoạt giữa Master và Slave Nếu Master không đủ khả năng cung cấp tài nguyên, nó có thể chuyển quyền điều khiển cho một Slave mạnh hơn và giàu tài nguyên hơn Điều này khả thi nhờ vào việc Clock và kiểu Hopping đã được đồng bộ hóa trong Piconet.
Hình 2.4 Một Scatternet gồm 2 Piconet.
Có 2 cách hình thành một Scatternet:
Piconet hoạt động bằng cách chỉ định một Slave từ Piconet này làm Slave cho Piconet khác, trong khi các Piconet vẫn độc lập và không đồng bộ với nhau Slave này sẽ phân chia các khoảng thời gian (time slots), với một số khoảng thời gian thuộc về Piconet này và một số khác thuộc về Piconet kia.
Hình 2.5 Sự hình thành một Scatternet theo cách 1.
Cách 2: Một Slave trong Piconet có thể trở thành Master trong một Piconet khác, cho phép hai Piconet đồng bộ hóa về xung nhịp và kiểu nhảy tần số Phương pháp này tận dụng việc chia sẻ các TS tương tự như trong cách 1, giúp cải thiện khả năng kết nối và truyền tải dữ liệu giữa các Piconet.
Master trong 1 Piconet mới, sẽ mang theo clock và hopping của Piconet cũ, đồng bộ cho các Slave trong Piconet mới mà nó làm Master.
Hình 2.6 Sự hình thành một Scatternet theo cách 2.
Khi tồn tại nhiều Piconet độc lập, việc nhiễu trên các kênh có thể dẫn đến mất gói dữ liệu, khiến chúng phải được truyền lại Đặc biệt, nếu tín hiệu là âm thanh (tín hiệu thoại), các gói này thường bị bỏ qua.
2.2.5 Kết nối theo kiểu ad hoc
Không có sự phân biệt giữa các đơn vị radio, cho phép kết nối ad hoc mà không cần thiết bị hỗ trợ hay mạch điều khiển trung tâm Điều này tương tự như Bluetooth, nơi nhiều kết nối ad hoc có thể tồn tại đồng thời trong một khu vực mà không cần sắp xếp, tạo ra các mạng độc lập chồng chéo lên nhau.
2.2.6 Định nghĩa các liên kết vật lý trong Bluetooth
Kết nối không đồng bộ không có kết nối (ACL) được thiết lập để truyền dữ liệu, chủ yếu là dữ liệu gói Đây là một kết nối point-to-multipoint giữa Master và tất cả các Slave trong piconet, với chỉ một kết nối ACL duy nhất ACL hỗ trợ cả kết nối chuyển mạch gói đối xứng và không đối xứng, cho phép truyền tối đa 723 kbps ở một hướng và 57.6 kbps ở hướng ngược lại Master điều khiển băng thông của kết nối ACL và quyết định mức băng thông mà mỗi Slave có thể sử dụng trong piconet Các gói tin broadcast từ Master đến tất cả các Slave được truyền qua kết nối ACL, và hầu hết các gói tin ACL đều có khả năng truyền lại.
Kết nối đồng bộ hướng kết nối (SCO) hỗ trợ kết nối đối xứng và chuyển mạch mạch giữa một Master và một Slave trong piconet, chủ yếu dùng để truyền dữ liệu tiếng nói Hai khe thời gian liên tiếp được dành riêng cho liên kết SCO, với tốc độ truyền dữ liệu là 64kbps Master có khả năng hỗ trợ tối đa 3 kết nối SCO đồng thời Lưu ý rằng gói SCO không chứa kiểm tra độ tin cậy CRC và không bao giờ được truyền lại Liên kết SCO chỉ được thiết lập sau khi một liên kết ACL đầu tiên đã được thiết lập.
2.2.7 Trạng thái của thiết bị Bluetooth
Có 4 trạng thái chính của 1 thiết bị Bluetooth trong 1 piconet:
_ Inquiring d e vice ( inq u iry mod e ) : thiết bị đang phát tín hiệu tìm thiết bị
_ Inquiry sc a nning devi c e ( i nquiry scan m od e ) : thiết bị nhận tín hiệu inquiry của thiết bị đang thực hiện inquiring và trả lời.
_ Paging d evice ( p age m od e ) : thiết bị phát tín hiệu yêu cầu kết nối với thiết bị đã inquiry từ trước.
_ Page sc a nning device ( p a ge sc a n m o d e thiết bị nhận yêu cầu kết nối từ): paging device và trả lời.
2.2.8 Các chế độ kết nối
Trong chế độ hoạt động tích cực, thiết bị Bluetooth tham gia vào mạng, với thiết bị chính (master) đảm nhiệm vai trò điều phối lưu lượng và đồng bộ hóa các thiết bị phụ (slave).
Bluetooth Radio
Hệ thống radio thương mại hiện nay chủ yếu dựa vào cấu trúc tế bào radio, trong đó mạng di động sử dụng cáp kim loại để thiết lập cơ sở hạ tầng và các trạm cơ sở được đặt ở vị trí chiến lược nhằm phủ sóng toàn bộ khu vực Thiết bị di động, như điện thoại và các terminal khác, kết nối với mạng thông qua liên kết radio đến các trạm cơ sở Khi một terminal kết nối với mạng, nó sẽ giữ một kênh điều khiển, và việc thiết lập hoặc giải phóng kết nối được thực hiện theo quy trình của kênh đó Các trạm cơ sở quản lý việc truy xuất kênh, chia kênh và điều khiển lưu thông một cách hiệu quả Các hệ thống điện thoại công cộng như GSM, D-AMPS và IS-95, cũng như các hệ thống tư nhân như WLAN và DECT, đều hoạt động dựa trên những quy tắc này.
Trong hệ thống ad hoc, không có sự phân biệt giữa các đơn vị phát sóng, không có cơ sở hạ tầng hỗ trợ kết nối, và không có thiết bị kiểm soát trung tâm Liên kết ad hoc hoàn toàn phụ thuộc vào sự giao tiếp giữa các thiết bị mà không cần sự can thiệp của người điều hành Ví dụ, Bluetooth cho thấy nhiều kết nối ad hoc đồng thời tồn tại trong cùng một khu vực mà không có sự phối hợp, dẫn đến việc nhiều mạng độc lập chồng chéo lên nhau.
Hệ thống ad hoc radio chủ yếu được sử dụng trong các tình huống đặc biệt như walkie-talkie của quân đội, cảnh sát, cứu hỏa và các đội cứu hộ Đặc biệt, Bluetooth là hệ thống ad hoc radio thương mại đầu tiên được áp dụng rộng rãi và phổ biến trong cộng đồng.
2.3.2 Kiến trúc của hệ thống Bluetooth Radio
2.3.2.1 Radio Spectrum-Dãy sóng vô tuyến
Việc lựa chọn dãy sóng vô tuyến cần được xác định một cách độc lập, không có sự can thiệp của người điều hành Dãy sóng này phải được sử dụng công khai và không yêu cầu đăng ký.
Dãy sóng Bluetooth cần phải sẵn sàng để sử dụng toàn cầu, với mục tiêu ban đầu là phục vụ cho các doanh nghiệp du lịch, giúp họ kết nối thiết bị di động ở mọi nơi.
Các quy định về tần số vô tuyến khác nhau trên thế giới, nhưng mục tiêu chung là đảm bảo mọi người dùng có quyền truy cập công bằng Những quy tắc này xác định rõ ràng cách phân bố tín hiệu và mức năng lượng tối đa cho phép Do đó, để một hệ thống hoạt động toàn cầu, khái niệm về tần số vô tuyến hợp pháp cần phải phù hợp với các quy định chung.
2.3.2.2 Interference Immunity – Sự chống nhiễu
Băng tần miễn phí cho phép bất kỳ thiết bị phát nào sử dụng, do đó việc chống nhiễu trở thành một yếu tố quan trọng Phạm vi và khả năng nhiễu trong tần số ISM 2.45 GHz khó có thể dự đoán, vì nhiều thiết bị như Bluetooth, Wifi, lò vi sóng và các thiết bị phát sáng khác cũng hoạt động trong băng tần này.
- Sự chống nhiễu có được thực hiện nhờ vào việc ngăn chặn hoặc tránh đi.Ngăn chặn bằng cách dàn trải những chuỗi hoặc mã (coding or directsequence spreading).
Ngăn chặn tín hiệu có thể thực hiện thông qua việc viết code hoặc chia tần số thành các dãy liên tục, tuy nhiên, phạm vi tần động của các tín hiệu trong môi trường sóng đặc biệt có thể rất rộng Phân chia theo thời gian là một lựa chọn khả thi nếu có sự gián đoạn trong nhịp tần số, nhưng phân chia theo tần số thường hiệu quả hơn Tần số 2.45 GHz cung cấp băng thông khoảng 80 MHz, mặc dù băng thông của hầu hết các hệ thống radio bị giới hạn, nhưng một số phần quang phổ sóng radio có thể sử dụng mà không gặp trở ngại Việc lọc trên các vùng băng tần giúp ngăn nhiễu ở các phần khác của dãy sóng radio, với bộ lọc ngăn chặn có thể đạt tần số lên đến 50 dB hoặc cao hơn.
2.3.2.3 Multiple Access Scheme_Phối hợp đa truy cập
Việc lựa chọn phương pháp phối hợp đa truy cập cho hệ thống vô tuyến ad hoc cần tuân thủ các quy định của dãy tầng ISM và phải đối mặt với thách thức từ sự thiếu phối hợp.
Đa truy cập phân chia theo tần số (FDMA) là một giải pháp hấp dẫn cho các hệ thống ad hoc nhờ vào khả năng kênh trực giao, cho phép mỗi máy phát hoạt động trên tần số riêng biệt Khi kết hợp với việc phân chia kênh truyền một cách thích ứng và năng động, FDMA giúp giảm thiểu nhiễu hiệu quả Tuy nhiên, hạn chế của FDMA là nó không hoàn toàn đáp ứng nhu cầu phát triển trong dãy tần số ISM.
Đa truy cập phân chia theo thời gian (TDMA) yêu cầu sự đồng bộ hóa thời gian rất nghiêm ngặt trong các kênh trực giao Khi nhiều liên kết ad hoc được tổ chức tại một vị trí, việc duy trì tham chiếu khung thời gian trở nên phức tạp và cồng kềnh.
Đa truy cập phân chia theo mã (CDMA) được xem là đặc tính tối ưu cho hệ thống vô tuyến ad hoc, vì nó cho phép phân bổ tài nguyên hiệu quả và phù hợp với các hệ thống rời rạc.
DS-CDMA không thu hút người dùng do vấn đề khoảng cách, yêu cầu kiểm soát năng lượng và xử lý thừa Tương tự như TDMA, kênh trực giao của DS-CDMA cũng cần tham chiếu khung thời gian Mặc dù các chip cao cấp với chi phí cao được sử dụng, nhưng chúng không thu hút nhiều vì băng thông rộng cần thiết để tránh nhiễu và sự tiêu thụ điện năng ngày càng tăng.
Nhảy tần số (FH)-CDMA là lựa chọn tối ưu cho hệ thống vô tuyến ad hoc nhờ vào khả năng trải tín hiệu trên dải tần số rộng, trong khi chỉ sử dụng băng thông nhỏ, giúp giảm thiểu nhiễu trong dãy ISM Bước nhảy sóng mang được thiết kế trực giao, cho phép ngăn chặn nhiễu giữa các bước sóng kế nhau bằng bộ lọc Mặc dù việc phối hợp bước sóng có thể không trực giao và bị hạn chế theo quy định của FCC, nhưng băng thông hẹp và nhiễu từ người dùng chung được xem như gián đoạn tạm thời trong truyền tin, có thể khắc phục bằng các nghi thức ở tầng cao hơn.
Bluetooth sử dụng kỹ thuật FH-CDMA để truyền tải dữ liệu qua các tần số khác nhau trong dải tần ISM 2.45 GHz, với 79 bước nhảy cách nhau 1MHz Việc truyền nhận diễn ra qua các khe thời gian, mỗi khe dài 625 µs Các cách phối hợp bước nhảy được tạo ra ngẫu nhiên, nhưng chỉ có cách phối hợp do một đơn vị gọi là master kiểm soát kênh nhảy tần số Master unit định nghĩa chu kỳ bước nhảy, trong khi các đơn vị khác (slave) đồng bộ hóa với master để chọn bước nhảy giống nhau và thêm thời gian gián đoạn vào đồng hồ của chúng Các kênh thời gian được chia thành các slot, mỗi slot tương ứng với 625 µs Truyền tin song công được thực hiện qua timedivision duplex (TDD), cho phép một đơn vị lần lượt phát và nhận, từ đó giảm thiểu nhiễu xuyên âm giữa quá trình phát và nhận Do phát và nhận diễn ra ở các time slot và bước nhảy khác nhau, điều này giúp tối ưu hóa hiệu suất truyền thông.
2.4 Kĩ thuật trải phổ nhảy tần trong công nghệ Bluetooth
2.4.1 Khái niệm trải phổ trong công nghệ không dây
Các tầng giao thức trong Bluetooth
- Các giao th ứ c c ốt lõi t r ong Bluet o ot h :
Logical Link Control and Adaptation Protocol – L2CAP.
Hình 2.18 Các tầng nghi thức Bluetooth
Tầng Bluetooth radio là tầng thấp nhất được định nghĩa trong đặc tả Bluetooth.
Băng tần ISM 2.4GHz được định nghĩa là băng tần dành riêng cho các thiết bị không dây trong lĩnh vực công nghiệp, khoa học và y tế, cho phép hoạt động mà không cần đăng ký.
Nhờ giao tiếp bằng sóng radio mà dữ liệu Bluetooth có thể xuyên qua các vật thể rắn và phi kim.
Bluetooth sử dụng sóng radio để truyền dữ liệu thông qua kỹ thuật nhảy tần số (frequency hopping), cho phép mỗi gói dữ liệu được gửi trên các tần số khác nhau Tốc độ nhảy nhanh giúp giảm thiểu nhiễu tín hiệu Hầu hết các quốc gia áp dụng 79 bước nhảy, với mỗi bước cách nhau 1MHz, bắt đầu từ 2.402GHz và kết thúc ở 2.480GHz Tuy nhiên, ở một số quốc gia như Pháp và Nhật Bản, số bước nhảy trong dải tần này được giảm xuống còn 23.
Bluetooth được thiết kế để hoạt động ở mức năng lượng rất thấp Đặc tả đưa ra
3 mức năng lượng từ 1mW tới 100 mW
• Mức năng lượng 1 (100mW): Được thiết kế cho những thiết bị có phạm vi hoạt động rộng (~100m)
• Mức năng lượng 2 (2.5mW): Cho những thiết bị có phạm vi hoạt động thông thường (~10m)
• Mức năng lượng 3 (1mW): Cho những thiết bị có phạm vi hoạt động ngắn (~10cm)
Những thiết bị có khả năng điều khiển mức năng lượng có thể tối ưu hóa năng lượng bằng cách dùng những lệnh LMP (Link Manager Protocol).
Giao thức Baseband nằm ở tầng vật lý của Bluetooth, chịu trách nhiệm quản lý các kênh truyền và liên kết vật lý, tách biệt khỏi các dịch vụ như sửa lỗi, chọn bước nhảy và bảo mật Được cài đặt như một Link Controller, Baseband protocol cùng với Link Manager thực hiện các tác vụ cơ bản như kết nối và quản lý năng lượng Tầng Baseband còn quản lý các kết nối đồng bộ và không đồng bộ, xử lý các gói tin, cũng như thực hiện tìm kiếm và yêu cầu kết nối đến các thiết bị Bluetooth khác.
Piconet là mạng kết nối giữa hai hoặc nhiều thiết bị theo kiểu ad-hoc, được thiết lập để phục vụ nhu cầu truyền dữ liệu tạm thời Trong piconet, một thiết bị đóng vai trò là Master, thường là thiết bị đầu tiên kết nối, trong khi các thiết bị còn lại sẽ là Slave Master chịu trách nhiệm thiết lập đồng hồ đếm xung để đồng bộ hóa các thiết bị và quyết định số kênh truyền thông Lưu ý rằng không có truyền thông trực tiếp giữa các thiết bị Slave.
Trong một piconet, vai trò của Master không cố định; khi Master không đủ tài nguyên để phục vụ, nó có thể chuyển giao quyền điều khiển cho một Slave có khả năng tài nguyên tốt hơn, trong khi bản thân trở thành Slave.
Khi có 2 hay nhiều piconet kết hợp lại truyền thông với nhau, ta có một scatternet Có 2 loại scatternet:
Trong một piconet, một Slave cũng có thể hoạt động như một Slave trong piconet khác, tuy nhiên các piconet này hoàn toàn độc lập và không đồng bộ với nhau Khi có nhiều piconet hoạt động song song, có khả năng xảy ra nhiễu trên một số kênh, dẫn đến việc mất một số packet và phải truyền lại Đặc biệt, nếu tín hiệu là tín hiệu thoại, những packet này có thể bị bỏ qua.
Trong một piconet, một Slave có thể trở thành Master trong một piconet khác Khi đó, hai piconet sẽ đồng bộ hóa về xung nhịp và khoảng nhảy tần số, vì Slave giữ vai trò Master trong piconet mới sẽ mang theo xung nhịp và khoảng nhảy tần số của piconet cũ, từ đó đồng bộ hóa cho các Slave trong piconet mới mà nó làm Master.
2.6.2.2 Liên kết SCO và ACL
Tầng Baseband quản lý 2 dạng kết nối:
Liên kết SCO (Synchronous Connection Oriented) là một kết nối đối xứng giữa một Master và một Slave trong piconet, chủ yếu dùng để truyền dữ liệu âm thanh Master có khả năng hỗ trợ tối đa 3 kết nối SCO đồng thời SCO packet không bao gồm CRC (Cyclic Redundancy Check) và không được truyền lại Để thiết lập liên kết SCO, trước tiên cần có một liên kết ACL được thiết lập.
The Asynchronous Connectionless Link (ACL) serves as a point-to-multipoint connection between the Master and all Slave devices within a piconet There is only one ACL connection in existence, and the majority of ACL packets are capable of being retransmitted.
Có 4 loại địa chỉ khác nhau có thể gán cho một thiết bị Bluetooth:
BD_ADDR, AM_ADDR, PM_ADDR, AR_ADDR.
BD_ADDR, hay địa chỉ thiết bị Bluetooth, là một địa chỉ MAC 48 bit theo tiêu chuẩn IEEE, tương tự như địa chỉ MAC trên các card mạng Địa chỉ này xác định duy nhất một thiết bị Bluetooth trên toàn cầu, với 3 byte dành cho nhà sản xuất và 3 byte cho sản phẩm.
- AM_ADDR: Active Member Address Nó còn gọi là địa chỉ MAC (Media
Access Control của thiết bị Bluetooth là một số 3 bit, giúp phân biệt giữa các slave active trong một piconet Với 2^3 = 8, hệ thống cho phép tối đa 7 slave active cùng lúc.
1 piconet, còn 000 là địa chỉ Broadcast (truyền đến tất cả các thành viên trong piconet) Địa chỉ này chỉ tồn tại khi Slave ở trạng thái active.
PM_ADDR (Địa chỉ thành viên đã đỗ) là một số 8 bit dùng để phân biệt các thiết bị Slave đang ở trạng thái đỗ Nhờ vào PM_ADDR, hệ thống có thể nhận diện tối đa 255 thiết bị trong trạng thái này Địa chỉ này chỉ có hiệu lực khi thiết bị Slave đang ở trạng thái đỗ.
- AR_ADDR: Access Request Address Địa chỉ này được dùng bởi parked
Slave để xác định nơi mà nó được phép gửi thông điệp yêu cầu truy cập tới.
Mỗi gói tin bao gồm 3 phần là Access code (72 bits) , header (54 bits) và payload (0-2745 bits)
Hình 2.22 Định dạng gói tin Bluetooth
Access code là mã được sử dụng để đồng bộ hóa và tìm kiếm thiết bị trong quá trình kết nối Có ba loại Access code chính: Channel Access Code (CAC), Device Access Code (DAC) và Inquiry Access Code (IAC) CAC giúp xác định một piconet duy nhất, DAC được sử dụng để thực hiện yêu cầu kết nối, trong khi IAC hỗ trợ trong việc tìm kiếm thiết bị.
Header: Chứa một số thông tin về packet như thứ tự của packet, địa chỉ đích, kiểm lỗi, v.v…
Có 4 trạng thái chính của một thiết bị Bluetooth trong một piconet:
• Inquiring device (inquiry mode): Thiết bị đang phát tín hiệu tìm những thiết bị Bluetooth khác.
• Inquiry scanning device (inquiry scan mode): Thiết bị nhận tín hiệu inquiry của inquiry device và trả lời
• Paging device (page mode): Thiết bị phát tín hiệu yêu cầu kết nối với thiết bị đã inquiry từ trước.
• Page scanning device (page scan mode): Thiết bị nhận yêu cầu kết nối từ paging device và trả lời.
Một piconet được tạo bằng 4 cách:
▪ Có Master rồi, Master thực hiện paging để kết nối với 1 Slave
▪ Một unit (Master hay Slave) lắng nghe tín hiệu mà thiết bị của nó truy cập được (scaning)
▪ Khi có sự chuyển đổi vai trò giữa Master và Slave
Khi một unit chuyển sang trạng thái active, quá trình Inquiry và Paging sẽ được khởi động để thiết lập kết nối mới Quá trình Inquiry giúp unit phát hiện các units khác trong tầm hoạt động, cùng với địa chỉ và đồng hồ của chúng Sau khi hoàn tất Inquiry, thiết bị sẽ tiếp tục với quá trình Paging để thiết lập kết nối, và kết nối chỉ thực sự được thiết lập khi thiết bị được page scanning chấp nhận.
Unit nào thiết lập kết nối sẽ phải thực hiện tiến trình paging và tự động trở thành Master của kết nối.
Sau thủ tục paging (PAGE), Master thăm dò Slave bằng cách gửi packet POLL thăm dò hay packet NULL rỗng.
Trong giao tiếp giữa Master và Slave, chỉ có Master gửi tín hiệu POLL, trong khi Slave không gửi tín hiệu này Khi thiết bị cần tạo kết nối ở các tầng trên của Link Manager (LM), nó sẽ gửi yêu cầu kết nối host qua nghi thức Link Manager Protocol (LMP) Sau khi nhận được thông điệp, unit quản lý host sẽ thông báo cho host về kết nối mới Thiết bị từ xa có thể chấp nhận hoặc không chấp nhận kết nối bằng cách gửi thông điệp tương ứng theo nghi thức LMP Cuối cùng, hai thiết bị có thể tiến hành trao đổi dữ liệu với nhau.
Bluetooth Profiles
Tổ chức SIG (Nhóm Lợi ích Đặc biệt Bluetooth) đã xác định nhiều mô hình ứng dụng công nghệ Bluetooth, nhấn mạnh các ứng dụng chính và thiết bị tương lai Những ứng dụng này bao gồm việc đồng bộ hóa giữa thiết bị di động và máy tính cá nhân, cũng như khả năng kết nối không dây với Internet thông qua điện thoại di động hoặc modem không dây.
Profile xác định giải pháp khả thi cho các chức năng trong mô hình sử dụng đã được cung cấp, đồng thời định nghĩa các giao thức và đặc trưng của từng giao thức hỗ trợ mô hình sử dụng cụ thể Một số profile có sự phụ thuộc lẫn nhau; ví dụ, ba profile như File Transfer Profile, Object Push Profile, và Synchronization Profile phụ thuộc vào Generic Object Exchange Profile Tất cả các profile đều phụ thuộc vào Generic Access Profile.
Các sản phẩm Bluetooth hỗ trợ nhiều bộ profile khác nhau, và để đảm bảo tính tương thích, các đặc điểm bắt buộc của từng profile cần phải được thực hiện đầy đủ.
- Những profile sau được Bluetooth SIG định nghĩa và thông qua:
• Advanced Audio Distribution Profile (A2DP)
• Audio/Video Remote Control Profile (AVRCP)
• Common ISDN Access Profile (CIP)
• Dial-up Networking Profile (DUN)
• General Audio/Video Distribution Profile (GAVDP)
• Generic Object Exchange Profile (GOEP)
• Hard Copy Cable Replacement Profile (HCRP)
• Human Interface Device Profile (HID)
• Personal Area Networking Profile (PAN)
• Service Discovery Application Profile (SDAP)
Những profile còn lại vẫn chưa hoàn thành, nhưng đã được Bluetooth SIG đề xuất là:
• Wireless application Protocol over BT (WAP)
• Extended Service discovery profile (ESDP)
• Device ID (DID) : cho phép thiết bị được nhận dạng theo bản kỹ thuật, nhà sản xuất, sản phẩm, phiên bản sản phẩm,…
Vấn đề sử dụng năng lượng trong Bluetooth
Năng lượng đóng vai trò thiết yếu đối với thiết bị không dây, do chúng chỉ có thể hoạt động nhờ vào pin Điều này dẫn đến các vấn đề như thời gian sử dụng pin, thời gian dự phòng và kích thước vật lý của thiết bị.
2.8.2 Việc sử dụng và quản lý năng lượng trong công nghệ Bluetooth
Bluetooth cung cấp ba chế độ năng lượng thấp cho lập trình viên, bao gồm hold, sniff và park Mỗi chế độ này có những đặc điểm riêng, mang lại lợi ích cho các lớp ứng dụng khác nhau.
Chế độ Hold mang lại lợi ích cho các ứng dụng dự báo và quản lý thời gian truyền dữ liệu tiếp theo Khi khoảng thời gian giữa hai lần truyền được thương lượng độc lập, chế độ này rất thích hợp cho việc giám sát kết nối thường xuyên, cho phép điều chỉnh “thời gian ngủ” (sleep time) để tối ưu hóa hiệu suất.
- Hold mode không thể tự biến mất và do đó không nên dùng cho những ứng dụng có nhu cầu hard latency.
Chế độ sniff cho phép thiết bị Bluetooth tiết kiệm năng lượng bằng cách giảm số slot truyền của master, từ đó giảm số slot mà slave phải nhận So với chế độ hold, sniff mode có ưu điểm là khả năng hoạt động linh hoạt hơn, cho phép slave lắng nghe định kỳ Điều này làm cho chế độ sniff đặc biệt phù hợp với các ứng dụng yêu cầu truyền dữ liệu theo khoảng thời gian đều đặn Tuy nhiên, chế độ này không thích hợp cho các ứng dụng cần truyền lượng dữ liệu lớn liên tục, vì điều đó yêu cầu thiết bị phải giữ trạng thái awake.
Chế độ Park mode cho phép tối đa hóa việc lưu giữ năng lượng, đặc biệt hữu ích cho các ứng dụng có mô hình lưu lượng sóng vô tuyến không thể dự đoán Trong trường hợp này, độ trễ trong việc thiết lập kết nối bị giới hạn bởi các hạn định cao hơn Chẳng hạn, trong profile Headset, liên kết RFCOMM cần được unparked nhanh chóng khi có yêu cầu gửi dữ liệu qua Audio Gateway đến headset.
Các chế độ tiết kiệm năng lượng của Bluetooth khác nhau trong việc quản lý năng lượng, và không có chế độ nào là tốt nhất cho mọi trường hợp Việc xác định chế độ tiết kiệm năng lượng phù hợp phụ thuộc vào nhiều yếu tố, bao gồm loại ứng dụng và nhu cầu cụ thể của nó.
2.8.2.2 Các chế độ năng lượng
Trong chế độ Active, thiết bị hoạt động trên kênh sóng radio, với Master quản lý quá trình truyền phát dữ liệu và Slave lắng nghe các gói tin trong khe thời gian riêng Chế độ này tiêu tốn nhiều năng lượng nhưng mang lại thông lượng dữ liệu cao nhất, được sử dụng làm tiêu chuẩn so sánh với các chế độ năng lượng thấp Mức tiêu thụ năng lượng của thiết bị phụ thuộc vào nhà sản xuất và ứng dụng đang chạy.
Các ứng dụng phù hợp với chế độ Active sẽ không thể tận dụng các chế độ năng lượng thấp như Hold, Park, hoặc Sniff Những ứng dụng yêu cầu tần số dữ liệu truyền tải cao thường tiêu tốn nhiều năng lượng vì cần duy trì hoạt động của máy phát sóng radio trong suốt chu kỳ hoạt động Tương tự, các ứng dụng cần độ trễ thấp cũng không thể sử dụng hiệu quả các chế độ năng lượng thấp.
Chế độ Hold trong Bluetooth là chế độ đơn giản nhất trong các chế độ năng lượng thấp, nơi Master và Slave thỏa thuận trong suốt thời gian thiết bị Slave hoạt động Khi kết nối được thiết lập, chế độ này không hỗ trợ các gói dữ liệu, giúp tiết kiệm năng lượng bằng cách lắng nghe định kỳ trong khoảng thời gian dài hơn hoặc tham gia vào một Piconet mới Thời gian Hold sẽ được thỏa thuận trước mỗi khi chế độ này được thiết lập.
Chế độ Hold cho phép các thiết bị tương tác mà không bị hủy bỏ mỗi khi được thiết lập Quan trọng hơn, khoảng thời gian Hold cần phải kết thúc trước khi khả năng truyền thông có thể được tái kích hoạt.
Chế độ Hold có thể được áp dụng hiệu quả cho các ứng dụng có khả năng kiểm soát thời gian truyền phát dữ liệu, như hệ thống phân phát e-mail không dây E-mail không yêu cầu truyền tải đồng bộ, cho phép thông điệp được gửi đến đích sau vài giây hoặc thậm chí vài giờ Điều này có nghĩa là người dùng không nhận thấy sự chậm trễ nhỏ trong quá trình phân phát e-mail, từ đó giúp kéo dài thời gian sử dụng năng lượng cho thiết bị.
Chế độ Hold cho phép sử dụng liên kết SCO mà không cần gửi các gói dữ liệu, giúp tiết kiệm năng lượng Nếu ứng dụng không yêu cầu chất lượng âm thanh cao, nó có thể giảm số khe thời gian sử dụng Ví dụ, để kiểm tra hoạt động của thiết bị phát âm thanh, chỉ cần sử dụng liên kết SCO mà không cần đến liên kết ACL Bằng cách giữ liên kết ACL trong chế độ Hold trong thời gian hợp lý và giảm chất lượng của liên kết SCO, ứng dụng có thể tiết kiệm năng lượng hiệu quả hơn.
Chế độ Hold không phù hợp cho các ứng dụng cần thời gian phản hồi nhanh và có lưu lượng không thể đoán trước Ví dụ điển hình là thiết bị cảm biến và truy cập web qua kết nối không dây, nơi mà trình duyệt không thể dự đoán được lưu lượng của ứng dụng Lưu ý rằng khi chế độ Hold được thiết lập, nó sẽ không thể bị hủy cho đến khi thời gian Hold đã thỏa thuận kết thúc.
Chế độ năng lượng thấp tiết kiệm năng lượng bằng cách giảm số khe thời gian mà Master bắt đầu truyền dữ liệu, từ đó giảm thời gian mà Slave phải lắng nghe Thời gian Sniff là khoảng thời gian giữa các khe thời gian thỏa thuận giữa Master và Slave khi chế độ Sniff được thiết lập Khi Slave lắng nghe trên kênh truyền, nó hoạt động trong các khe Nsniff attempt và có thể giảm năng lượng cho đến cuối khoảng thời gian Sniff hiện tại Thời gian nhận gói dữ liệu cuối cùng rất quan trọng, vì vậy Slave cần lắng nghe trong khoảng thời gian Nsniff timeout ngắn nhất sau khi gói tin cuối cùng được nhận.
Hình A minh họa số lượng khe thời gian mà Slave cần lắng nghe Trong trường hợp này, Slave chỉ lắng nghe trong khoảng thời gian Nsniff attempt Điều này xảy ra khi Slave nhận được gói tin cuối cùng trong khi có nhiều hơn Nsniff timeout trong Sniff attempt Slave chủ yếu lắng nghe trong phần lớn thời gian của Sniff attempt, sau đó giảm năng lượng.
Tổng quan về Bluetooth API
Bluetooth, giống như các công nghệ giao tiếp khác, bao gồm một tập hợp các thành phần được gọi là chồng giao thức (stack) Chồng giao thức này được mô tả trong sơ đồ dưới đây.
Hình 3.1 Kiến trúc Bluetooth Stack
Các thành phần của Bluetooth Host Controller thường được tích hợp trong phần cứng của thiết bị, do đó các ứng dụng không thể truy cập trực tiếp vào tầng này.
Các thành phần của Bluetooth Host cho phép ứng dụng gửi và nhận dữ liệu qua các liên kết Bluetooth, cũng như cấu hình cho các liên kết này Dưới đây là mô tả chi tiết về các thành phần trong Bluetooth Host.
RFCOMM cho phép các ứng dụng sử dụng kết nối Bluetooth như các liên kết trao đổi thông tin qua cổng Serial Giao thức này mô phỏng cổng Serial, giúp truyền nhận dữ liệu qua Bluetooth một cách hiệu quả.
L2CAP (Giao thức Kiểm soát Liên kết Logic và Thích ứng) là một thành phần quan trọng trong quản lý các liên kết, giúp phân nhỏ các gói tin trước khi gửi đi và sắp xếp lại các gói tin khi nhận được, đảm bảo tính hiệu quả và chính xác trong quá trình truyền tải dữ liệu.
SDP (Service Discovery Protocol) là giao thức được sử dụng để xác định và truy vấn các dịch vụ Bluetooth có sẵn trên thiết bị Nó thường được các ứng dụng sử dụng khi bắt đầu thiết lập kết nối Bluetooth với các thiết bị khác.
• HCI (Host Controller Interface) : cho phép các thành phần khác trong Bluetooth Host giao tiếp với phần cứng.
Hàm Bluetooth APIs của Symbian OS cho phép ứng dụng truy cập vào các dịch vụ như RFCOMM, L2CAP và SDP, hoạt động ở mức giới hạn dịch vụ của HCI.
3.2.1 Các nhóm hàm Bluetooth API:
Các hàm Bluetooth API có thể chia thành những nhóm sau đây:
• Bluetooth Sockets: Cho phép truy cập đến các dịch vụ của L2CAP và RFCOMM thông qua giao diện socket của TCP/IP.
Cơ sở dữ liệu phát hiện dịch vụ Bluetooth (SDP) cho phép các thiết bị ghi nhận và công bố các thuộc tính của mình Nhờ vào các dịch vụ này, các thiết bị khác có thể dễ dàng tìm thấy và xác định tính khả dụng của chúng, từ đó nâng cao khả năng kết nối và tương tác giữa các thiết bị Bluetooth.
Bluetooth Service Discovery Agent (SDP) cho phép người dùng khám phá các dịch vụ và thuộc tính của dịch vụ trên các thiết bị Bluetooth khác Thông qua SDP, người dùng có thể dễ dàng tìm kiếm và kết nối với các dịch vụ có sẵn, nâng cao trải nghiệm sử dụng Bluetooth.
• Bluetooth Security Manger: cho phép các dịch vụ thiết lập các yêu cầu về an toàn và bảo mật mà các kết nối tới cần phải đáp ứng.
• Bluetooth Device Selection UI: Cung cấp một hàm API dùng để thể hiện một dialog yêu cầu người dùng chọn thiết bị muốn giao tiếp.
3.2.2 Quan hệ giữa các nhóm hàm API:
Mối quan hệ giữa các nhóm hàm Bluetooth API được thể hiện rõ ràng, trong đó hàm Bluetooth API của Socket đóng vai trò chủ chốt, các nhóm hàm API khác phụ thuộc vào nó để thực hiện giao tiếp với các thiết bị khác.
Hình 3.2 Quan hệ giữa các nhóm hàm Bluetooth API.
3.3 Một vài kiểu dữ liệu Bluetooth thông dụng
• Bluetooth device address: Mỗi thiết bị Bluetooth được xác định bằng một số nguyên 48bit mô tả địa chỉ thiết bị, trong Symbian, nó được mô tả trong lớp
TBTDevAddr, định nghĩa trong file header “bbtypes.h”
• Universally Unique Identifier (UUID) : UUID là một số nguyên 128 bit được định nghĩa sẵn đại diện cho một dịch vụ Bluetooth UUID được quản lý bởi lớp
TUUID Lớp này có thể quản lý dữ liệu UUID đầy đủ (128 bit) hoặc quản lý ở dạng rút gọn Lớp TUUID được định nghĩa trong file header “bttypes.h”
Mỗi dịch vụ Bluetooth được xác định bởi một UUID và được lưu trữ trong một Bluetooth Service Record Service record này không chỉ chứa UUID mà còn có một tập hợp các thuộc tính cung cấp thông tin chi tiết về dịch vụ Symbian cung cấp các hàm Bluetooth SDP Database API để thao tác với các service record này.
• Service class and Profiles :Service classes được diễn tả bởi các số nguyên UUID Dùng để quản lý các dịch vụ được cung cấp bởi thiết bị.
The Service Profile Handle refers to the unique identification of service records stored in the SDP Database, which utilizes a 32-bit number known as the Service Record Handle Each Service Record Handle is represented by a specific class, ensuring efficient organization and retrieval of service records.
TSdpServRecordHandle, được khai báo trong file header “btsdp.h”
Mỗi bản ghi dịch vụ bao gồm một tập hợp các thuộc tính, và mỗi thuộc tính được xác định bởi một số định danh duy nhất Số định danh này được biểu diễn bởi lớp TSdpAttributeID, tuy nhiên, trên thực tế, nó chỉ là một số nguyên.
16 bit Kiểu dữ liệu này được định nghĩa trong file “btsdp.h” Symbian dùng attribute
ID để xác định các thuộc tính và giá trị của chúng trong SDP database.
Mỗi thiết bị Bluetooth đều có một cơ sở dữ liệu cục bộ gọi là SDP (Service Discovery Protocol), chứa thông tin về tất cả các dịch vụ mà thiết bị đó cung cấp Cơ sở dữ liệu này được thể hiện qua lớp SDP, giúp người dùng dễ dàng nhận diện và truy cập các dịch vụ có sẵn.
RSdpDatabase Lớp này được định nghĩa trong file header “btsdp.h”
• Attribute ranges: Sự khác nhau giữa CSdpSearchPattern và
CSdpAttrIdMatchList là CSdpAttrIdMatchList chấp nhận một cấu trúc
TAttrRange làm tham số Cấu trúc này cho phép xác định một dải các attribute ID cần tìm kiếm.
• Data elements : Bảng sau mô tả các kiểu dữ liệu bluetooth data element, tất cả các kiểu dữ liệu này được khai báo trong file header “btsdp.h”:
Hình 3.3 Bluetooth Data Element Types
Lớp CSdpSearchPattern cho phép người dùng xác định các dịch vụ cần tìm kiếm thông qua việc tạo danh sách các TUUID Nó cung cấp nhiều hàm hữu ích để thao tác với danh sách này, bao gồm các chức năng như AddL, Remove và Find, giúp quản lý và tìm kiếm dịch vụ một cách hiệu quả.
Bluetooth Sockets
Trong Symbian, Bluetooth Sockets được sử dụng để tìm kiếm và trao đổi dữ liệu với các thiết bị Bluetooth khác Trong quá trình này, hai vai trò chính được thiết lập: khởi tạo kết nối (Initiator) và chấp nhận kết nối (Receiver) Bên Receiver sẽ khởi tạo Bluetooth và lắng nghe yêu cầu kết nối từ Initiator Khi kết nối được thiết lập, cả hai bên đều có khả năng gửi, nhận dữ liệu và chấm dứt kết nối.
Hàm API của Bluetooth Sockets hỗ trợ giao tiếp với hai tầng giao thức L2CAP và RFCOMM, cho phép thiết bị hoạt động như Client hoặc Server Các hàm API chuẩn này giúp thiết lập kết nối giữa các thiết bị Bluetooth, cho phép gửi và nhận dữ liệu trước khi kết thúc kết nối Bluetooth Socket API được cải tiến với các kiểu dữ liệu và hằng số phù hợp, giúp tối ưu hóa việc sử dụng các hàm Socket API với Bluetooth.
The Bluetooth Socket API encompasses five fundamental concepts: the socket address, remote device inquiry for device discovery, RFCOMM command sets and options, L2CAP command sets, and HCI command sets.
3.4.1 Mở và cấu hình Bluetooth Socket :
Mọi Bluetooth Socket cần thông qua Socket Server để giao tiếp với nhau, do đó trước khi mở một Socket, cần kết nối vào socket server của thiết bị Để thực hiện điều này, ta sử dụng lớp RSocketServ để giao tiếp và khai báo một đối tượng kiểu RSocketServ, sau đó gọi hàm Connect để thiết lập kết nối.
RSocketServ socksvr; err = socksvr.Connect();
Symbian OS cung cấp lớp RSocket cho phép mở và cấu hình các loại socket khác nhau Tùy thuộc vào giao thức sử dụng, người dùng có thể mở các loại socket tương ứng Để thực hiện việc mở socket, hàm Open() được sử dụng.
TUint addrFamily,TUint sockType,TUint protocol );
* RSocketServ& aServer : Là Socket server kết nối tới.
* Tuint addrFamily :Kiểu địa chỉ của kết nối thực hiện, nếu là kết nối Bluetooth thì đó là KBTAddrFamily, hoặc nếu là TCP/IP thì đó là KafInet.
* Tuint sockType: Xác định loại socket sử dụng, ví dụ : nếu là TCP thì đó là KSockStream.
* Tuint protocol :Xác định loại protocol sử dụng
When using Bluetooth, the sockType is KsockStream and the protocol is KRCOMM for the RFCOMM protocol In contrast, for the L2CAP protocol, the sockType is KsockSeqPacket and the protocol is KL2CAP.
3.4.2 Xây dựng Bluetooth Socket Server : Lắng nghe và chấp nhận kết nối từ thiết bị là Client : Để có thể thiết lập một kết nối Bluetooth giữa hai thiết bị, một trong hai thiết bị phải được thiết lập, khởi tạo Socket Bluetooth ở trạng thái lắng nghe, và sau đó chập nhận kết nối khi có yêu cầu kết nối tới từ thiết bị khác Các bước để tạo Bluetooth Socket Server được thực hiện như sau :
Hình 3.5 Các bước khởi tạo Bluetooth Socket Server
Kết nối vào Socket server trên thiết bị và chọn protocol cần sử dụng.
Mở một socket tương ứng với protocol sử dụng.
Tạo một đối tượng địa chỉ Bluetooth Socket từ lớp TBTSockAddr và thiết lập cổng cho nó là server channel, lưu ý rằng có sự khác biệt giữa giao thức L2CAP và RFCOMM Sau đó, sử dụng hàm RSocket::Bind() để kết buộc socket vào địa chỉ đã thiết lập Cuối cùng, đưa socket vào trạng thái lắng nghe các kết nối bằng cách sử dụng hàm tương ứng.
Để tạo một socket trống, bạn cần truyền nó cho socket lắng nghe thông qua hàm RSocket::Accept(RSocket &acceptSocket, ) Sau khi hàm này hoàn tất, socket được truyền sẽ kết nối với thiết bị khác, cho phép truyền và nhận dữ liệu Trong khi đó, socket lắng nghe vẫn hoạt động và có thể được sử dụng để tạo kết nối mới với một socket trống khác.
Khi ứng dụng hoạt động như một Server hoặc Receiver kết thúc, việc đóng socket listen và tất cả các socket đã kết nối là rất quan trọng Đoạn code dưới đây minh họa cách tạo Bluetooth socket server và lắng nghe các kết nối.
// 1 Kết nối tới socket server secsion RSocketServ socketServ; socketServ.Connect();
_LIT(KL2Cap, "L2CAP"); // hoặc là RFCOMM tùy giao thức sử dụng
// 2 Mở socket để lắng nghe RSocket listen; listen.Open(socketServ,KL2Cap);
// 3 Khởi tạo đối tượng địa chỉ bluetooth socket TBTSockAddr addr; addr.SetPort(KListeningPSM);
// Kết buôc socket lắng nghe
User::LeaveIfError(listen.Bind(addr));
// 4 Bắt đầu lắng nghe các yêu cầu kết nối từ các thiết bị khác.
// 5 Chơ đợi và thực hiện kết nối khi có yêu cầu kết nối
User::LeaveIfError(accept.Open(socketServ)); listen.Accept(accept,status);
// Nếu status == KerrNone : accept socket đã kết nối thành công.
Before accepting a connection, it is essential to establish safety and security requirements for the connections, as outlined in the Bluetooth Security Manager Additionally, it is important to promote the available services of the device for other devices to utilize during the connection process, which is facilitated by the Bluetooth Service Discovery Database.
3.4.3 Xây dựng Bluetooth Socket Client : Tìm kiếm và kết nối tới thiết bị là Server Để một ứng dụng trên thiết bị Bluetooth có thể kết nối tới một thiết bị Bluetooth khác, nó cần phải thực hiện các bước sau : đầu tiên, cần phải xác định được thiết bị server mà người sử dụng muốn kết nối tới, tiếp đó, ứng dụng cần xác định được xem dịch vụ mà nó cần có ở server hay không, cuối cùng, ứng dụng thực hiện kết nối với thiết bị server, và thực hiện việc trao đổi dữ liệu nếu kết nối thành công.
3.4.3.1 Chọn thiết bị để kết nối tới : Ứng dụng có thể xác định được thiết bị mà nó cần kết nối tới bằng một số cách sau :
Kết nối cứng (hard-wired) mặc định đã được thiết lập trước.
Kết nối với các thiết bị đã được lưu thông tin từ trước.
Chọn lựa bởi người dùng thông qua Bluetooth Device Selection UI.
Hoặc được xác định qua lập trình : ứng dụng tự động xác định thiết bị mà nó muốn kết nối.
3.4.3.2 Truy vấn thông tin về thiết bị xung quanh:
Mỗi thiết bị Bluetooth sở hữu một địa chỉ 48 bit duy nhất được tích hợp trong phần cứng, đồng thời có thể có tên thiết bị để người dùng nhận diện.
Địa chỉ và tên thiết bị được truy vấn qua lớp socket RHostResolver của Symbian, sử dụng lớp TInquirySockAddr để chứa đựng thông tin như địa chỉ Bluetooth, mã truy cập, dịch vụ và lớp thiết bị Việc thực hiện truy vấn địa chỉ của thiết bị kết nối được thực hiện qua các bước cụ thể.
To connect to the Socket server (RSocketServ) and select the appropriate protocol, call the function RSockeServ::FindProtocol() The protocol selection is based on the address and device name provided by the BTLinkManager protocol stack, ensuring the correct protocol is chosen for the connection.
+ Tạo ra và thiết lập một đối tượng RHostResolver.
+ Thiết lập tham số TInquirySockAddr cho quá trình truy vấn: đối với truy vấn về địa chỉ, cờ KHostResInquiry cần phải được thiết lập thông qua hàm
Sau đó, việc truy vấn có thể được bắt đầu bằng lời gọi hàm:
RHostResolver::GetByAddress(const TSockAddr &anAddr, TNameEntry
RHostResolver::GetByAddress(const TSockAddr &anAddr, TNameEntry
Bluetooth Service Discovery Agent
Bluetooth Service Discovery Agent cho phép lập trình viên xác định các dịch vụ Bluetooth và thuộc tính của chúng trên các thiết bị xung quanh Các hàm API của Service Discovery Agent là một trong hai loại hàm API hỗ trợ giao thức Bluetooth Service Discovery Loại hàm thứ hai, Bluetooth Service Discovery Database, cho phép các dịch vụ trên thiết bị lưu trữ thuộc tính của chúng vào cơ sở dữ liệu dịch vụ của thiết bị.
The CSdpAgent class in the Bluetooth protocol enables service discovery queries to other devices It supports two basic types of queries that can be executed using this class.
Để truy cập các dịch vụ trên thiết bị khác, bạn cần sử dụng đối tượng CSdpSearchPattern để truy vấn các lớp dịch vụ mong muốn Để lấy thuộc tính của một dịch vụ cụ thể, hãy thiết lập danh sách thuộc tính cần lấy thông qua đối tượng CSdpAttrIdMatchList Ngoài ra, lớp CSdpAgent cần được cài đặt với interface tương ứng.
MSdpAgentNotifier để nhận các đáp ứng từ truy vấn.
Các lớp CSdpAgent, CSdpSerchPattern, CSdpAttrIDMatchList, Msdp AgentNofifier đều được khai báo trong file header “btsdp.h” và được liên kết với thư viện “bluetooth.lib”.
3.6.1 Truy vấn các dịch vụ trên thiết bị khác với Bluetooth Service Discovery Agent:
Bluetooth Service Discovery Agent được sử dụng để truy vấn các dịch vụ Bluetooth có sẵn trên một thiết bị cụ thể Công cụ này thường được áp dụng sau khi xác định một thiết bị Bluetooth phù hợp nằm trong phạm vi cho phép thông qua các hàm của Bluetooth Socket API.
Sau khi hoàn tất việc tìm kiếm dịch vụ, kết quả sẽ bao gồm các record handle của các dịch vụ thuộc lớp đã được định nghĩa (các số UUID) Trước khi ứng dụng có thể tìm kiếm các dịch vụ trên một thiết bị cụ thể, nó cần tạo một lớp cài đặt của lớp MSdpAgentNotifier Kết quả truy vấn sẽ được trả về thông qua các hàm callback của giao diện cài đặt.
Các bước thực hiện tìm kiếm dịch vụ được thực hiện như sau:
Để bắt đầu, bạn cần tạo một đối tượng CSdpAgent và cung cấp cho nó một cài đặt của lớp MSdpAgentNotifier đã được tạo trước đó, đồng thời chỉ định địa chỉ Bluetooth của thiết bị mà ứng dụng muốn truy vấn.
Bước 2: Tạo một đối tượng CSdpSearchPattern và chỉ định các lớp dịch vụ cần tìm kiếm bằng cách sử dụng hàm CSdpSearchPattern::Add(const TUUID &aUUID).
Bước 3: Thiết lập kiểu tìm kiếm cho đối tượng CSdpAgent bằng cách sử dụng hàm CSdpAgent::SetRecordFilterL() để tạo ra danh sách các dịch vụ mà ứng dụng cần quan tâm.
Bước 4: Gọi hàm CSdpAgent::NextRecordRequestL() để thu thập các kết quả tìm kiếm cho đến khi hoàn tất hoặc tìm thấy kết quả mong muốn Khi thực hiện gọi hàm này, quá trình tìm kiếm sẽ diễn ra, và khi một dịch vụ được tìm thấy, hàm MSdpAgentNotifier::NextRecordRequestComplete() sẽ được kích hoạt, thông báo cho ứng dụng thông qua lớp giao diện MSdpAgentNotifier mà ứng dụng đã cài đặt.
Giả sử : rcvr là lớp được cài đặt giao diện lớp MSdpAgentNotifer, và devAddr là địa chỉ của thiết bị đang thực hiện truy vấn tới.
/* 1 : Tạo ra một đối tượng thuộc lớp CSdpAgent.*/ CSdpAgent *agent CSdpAgent::NewLC(rcvr,devAddr);
/* 2: Tạo ra một mẫu tìm kiếm (search pattern) thuộc lớ
CSdpSearchPattern và đặt một service classes vào */
/* 3: set the search pattern on the agent */ agent->SetRecordFilterL(*list);
/*4: Bắt đầu quá trình tìm kiếm , kết quả tìm kiếm được trả về qua hàm callbacks của rcvr */ agent->NextRecordRequestL();
3.6.2 Tìm kiếm các thuộc tính dịch vụ:
Dữ liệu của các service record chứa trong các thuộc tính, mỗi thuộc tính có một
ID được qui định trước, một loại thuộc tính, và một giá trị của thuộc tính đó.
Khi tìm kiếm dịch vụ, các thuộc tính dịch vụ sẽ được trả về thông qua các hàm callback của lớp giao diện MSdpAgentNotifier mà ứng dụng cần cài đặt.
Các bước sau mô tả quá trình tìm kiếm thuộc tính dịch vụ:
1: Tạo ra một đối tượng CSdpAttrIdMatchList qui định các thuộc tính cần lấy về ( gọi là match list ).
2: Thêm các IDs của thuộc tính vào match list sử dụng hàm :
CSdpAttrIdMatchList::AddL(TAttrRange aRange) Các IDs đóng gói trong kiểu dữ liệu TAttrRange Để bỏ các thuộc tính ra khỏi match list sử dụng hàm CSdpAttrIdMatchList::RemoveL(TAttrRange aRange).
3: Bắt đầu thực hiện truy vấn sử dụng hàm:
CSdpAgent::AttributeRequestL() , tùy vào nhu cầu sử dụng mà có nhiều hàm overloaded có thể sử dụng.
Ví dụ về truy vấn các thuộc tính dịch vụ:
( Giả sử agent là một đối tượng CSdpAgent, và serviceHandle là handle của service record).
// 1 Tạo ra một match list
//2 Thêm vào ID của thuộc tính cần lấy : matchList->AddL(TAttrRange(0x102)); //3 Đặt matchList vào agent agent-> AttributeRequestL(serviceHandle,
3.6.3 Tạo ra đối tượng để quản lý các kết quả truy vấn:
Các ứng dụng thực hiện các truy vấn về dịch vụ và thuộc tính qua đối tượng
CSdpAgent phải được cài đặt giao diện MSdpAgentNotifier để quản lý đáp ứng trả về.
+ Quản lý k ết quả t r u y vấn dịch vụ :
Khi việc truy vấn dịch vụ kết thúc, ứng dụng được hệ điều hành thông báo tới thông qua hàm NextRecordRequestComplete() : virtual void NextRecordRequestComplete(TInt aError,
Trong đó : aError : chứa mã lỗi trả về. aHandle : Handle tới service record của dịch vụ tìm được aTotalRecordsCount :tổng số lượng các record thỏa điều kiện tìm kiếm.
+ Quản lý truy vấn thuộc tính:
Khi truy vấn thuộc tính kết thúc, mỗi thuộc tính được trả về với ID của thuộc tính sử dụng hàm : AttributeRequestResult(). virtual void AttributeRequestResult(TSdpServRecordHandle aHandle,
Trong đó : aHandle : Service record thực hiện truy vấn aAttrID : chứa ID của thuộc tính aAttrValue : chứa giá trị của thuộc tính.
Khi đã trả về hết các thuộc tính, hàm AttributeRequestComplete() được gọi. virtual void AttributeRequestComplete( SdpServRecordHandle aHandle, TInt aError )= 0 ;
Trong đó : aHandle : Service record thực hiện truy vấn. aError : KErrNone hoặc một lỗi SDP.
Bluetooth security manager
The Bluetooth Security Manager (BSM) enables Bluetooth applications to establish necessary security modes for connections Security settings include authentication, authorization, and encryption Authentication requires both applications to enter the same key for communication, while authorization prompts the user for permission to connect Encryption ensures that data is encoded during transmission These security configurations apply to specific servers, protocols, and communication channels, ensuring that external connections meet security requirements.
In Symbian, the Bluetooth Security Manager (BSM) is implemented as a server, providing API functions that allow clients to use the TBTServiceSecurity layer for packaging security configurations.
TBTServiceSecurity được định nghĩa trong file header “btmanclient.h”.
Trước khi sử dụng BSM, ứng dụng phải mở một phiên làm việc (session) tới server sử dụng lớp RBTMan và sau đó mở một subsession sử dụng
RBTSecuritySettings để đăng kí hoặc bỏ đăng kí dịch vụ với server của BSM.
Sử dụng đối tượng Security Setting thuộc lớp TBTServiceSecurity dùng để thiết lập khi sử dụng authentication, autorisation, và hoặc cần encryption.
3.7.2 Kết nối vào Bluetooth Security Manager Để có thể sử dụng Bluetooth Security Manager, ứng dụng phải thực hiện các bước sau:
1 : Tạo ra một phiên làm việc mới và kết nối với BSM server thông qua lớp
RBTMan Lớp RBTMan cung cấp kết nối tới BSM server, lớp này được định nghĩa trong file header “btmanclient.h” như sau : class RBTMan : public RSessionBase
IMPORT_C RBTMan(); IMPORT_C TInt Connect(); IMPORT_C TVersion Version() const;
2: Tạo ra một phiên làm việc con( subsession) tới BSM server sử dụng lớp
RBTSecuritySettings, và mở ra một phiên làm việc mới Một ứng dụng có thể có nhiều phiên làm việc con nếu cần.
3: Đóng subsession và session khi sử dụng xong : sử dụng phương thức:
RBTMan::Close(), và RBTSecuritySettings::Close(). Đoạn code sau mô tả cách kết nối tới Bluetooth Security Manager :
/* 1 Tạo và mở một phiên làm việc mới và kết nối tới BSM server thông qua lớp RBTMan */
/* 2 Tạo và mở một subsession */
User::LeaveIfError(secmanSubSession.Open(secMan));
/* 3 Đóng session và subsession khi sử dụng xong*/ secmanSubSession.Close(); secMan.Close();
3.7.3 Thiết lập các chế độ bảo mật :
Để thiết lập các yêu cầu bảo mật cho dịch vụ Bluetooth, người dùng cần chỉ định việc sử dụng các chế độ bảo mật như xác thực (authentication), phân quyền (authorization) và mã hóa (encryption) Các bước thực hiện này sẽ giúp đảm bảo an toàn và bảo mật cho thiết bị Bluetooth.
Để thiết lập các yêu cầu về an toàn và bảo mật, bạn cần tạo một đối tượng thuộc lớp TBTServiceSecurity Đối tượng này sẽ được khởi tạo với giao thức Bluetooth mà dịch vụ sử dụng, cùng với cổng dịch vụ và một định danh duy nhất cho dịch vụ.
* Thiết lập trong đối tượng TBTServiceSecurity là cần chế độ an toàn và bảo mật nào : authentication, authorisation, hay encryption.
To register settings with the BSM server, call the RBTSecuritySetting::RegisterService() function The following example code configures the service's security measures, including authentication, authorization, and encryption.
/* Giả sử secmanSubSession là một subsession đã mở như ở trên, và channel là port mà một dịch vụ RFCOMM đang chạy trên đó*/
// 1 Tạo ra đối tương TBTServiceSecurity TUid serviceUID; serviceUID.iUid = 0X10008AD0; TBTServiceSecurity secSettings(serviceUID, KSolBtRFCOMM, channel);
// 2.Thiết lập các tùy chọn về an toàn, bảo mật secSettings.SetAuthentication(ETrue); secSettings.SetAuthorisation(ETrue); secSettings.SetEncryption(ETrue);
// 3 Đăng kí dịch vụ vào BMS server TRequestStatus status; secmanSubSession.RegisterService(secSettings,status);
Bluetooth Device Selection UI
Khi có nhiều thiết bị Bluetooth xung quanh, ứng dụng cần hiển thị danh sách các thiết bị để người dùng lựa chọn kết nối Symbian cung cấp chức năng tìm kiếm và hiển thị các thiết bị Bluetooth thông qua lớp RNotifier, được định nghĩa trong file header “e32std.h”.
Lớp TBTDeviceSelectionParams cho phép một ứng dụng truyền vào các tham số khởi tạo cho quá trình chọn lựa class TBTDeviceSelectionParams
IMPORT_C void SetUUID(const TUUID& aUUID);
Bằng cách sử dụng hàm SetDeviceClass(), ứng dụng có thể giới hạn số lượng thiết bị cần tìm kiếm Ngoài ra, ứng dụng cũng có khả năng xác định các UUID của dịch vụ cần thiết thông qua hàm SetUUID(), giúp quá trình tìm kiếm chỉ tập trung vào những thiết bị hỗ trợ dịch vụ mà ứng dụng yêu cầu Để tìm kiếm tất cả các thiết bị, người dùng nên để đối tượng TBTDeviceSelectionParams ở giá trị mặc định.
Khi người dùng lựa chọn thiết bị để giao tiếp, thông tin liên quan đến thiết bị đó sẽ được gửi về ứng dụng thông qua đối tượng của lớp.
TBTDeviceResponseParams Lớp này được định nghĩa trong file header
“btextnotifiers.h” Định nghĩa của nó như sau: class TBTDeviceResponseParams
IMPORT_C void SetDeviceAddress( const TBTDevAddr& aBDAddr);
IMPORT_C void SetDeviceName( const TDesC& aName);
IMPORT_C const TBTDevAddr& BDAddr() const;
IMPORT_C const TDesC& DeviceName() const;
Hàm IsValidxxxx() đảm bảo rằng các thông tin cần thiết đã được thiết lập trong lớp Chẳng hạn, nếu hàm IsValidDBAddr() trả về true, ứng dụng sẽ xác nhận rằng địa chỉ thiết bị Bluetooth đã được thiết lập chính xác trong lớp.
TBTDeviceResponseParams trả về giá trị false nếu chưa có dữ liệu về địa chỉ thiết bị Bluetooth trong lớp này Ứng dụng có thể lấy địa chỉ thiết bị bằng hàm BDAddr() và tên thiết bị thông qua hàm DeviceName().
Symbian cung cấp một tập các gói dữ liệu đóng gói các lớp vừa trình bày bên trên:
Nói tóm lại, quy trình để thực hiện tìm kiếm thiết bị được mô tả như sau:
// Kết nối vào server trước khi có thể sử dụng
TBTDeviceSelectionParamsPckg selectionFilter; // Thực hiện tìm kiếm và hiển thị cho người dùng not.StartNotifierAndGetResponse( status,
// Đợi người dùng chọn thiết bị cần giao tiếp User::WaitForRequest(status); if (status.Int() == KErrNone)
{ iReporter.Error(_L("Failed to connect"));
{ iReporter.Error(_L("No device selected"));
} not.CancelNotifier(KDeviceSelectionNotifierUid); not.Close(); return success;
Xây dựng ứng dụng Bluetooth trên Symbian OS với Series 60 SDK
Ứng dụng Bluetooth trên Symbian OS được phát triển như các ứng dụng khác bằng Symbian C++ Bộ công cụ phát triển Series 60 SDK và Series 80 Developer Platform 2.0 SDK cung cấp các hàm Bluetooth APIs cần thiết cho việc xây dựng ứng dụng Bluetooth Ngoài ra, bộ giả lập thiết bị cho phép người dùng kiểm tra ứng dụng trong nhiều trường hợp khác nhau.
1 : Tìm kiếm thiết bị Bluetooth xung quanh.
2 : Truy vấn các dịch vụ Bluetooth được hỗ trợ.
3 : Thiết lập một kết nối tới thiết bị khác.
4 : Gửi và nhận dữ liệu.
Trong khuân khổ của luận văn, chúng em chỉ xin giới thiệu cách xây dựng ứng dụng Bluetooth với bộ công cụ phát triển ứng dụng Series 60 SDK.
3.9.1 Sự khác nhau về Bluetooth trên thiết bị ảo và thiết bị thật
Môi trường phát triển ứng dụng ( bộ giả lập thiết bị trên PC) và môi trường thiết bị thật khác nhau Thể hiện ở các điểm sau :
∗ Hiệu năng của thiết bị ảo và thiết bị thật khác nhau.
∗ Chồng giao thức Bluetooth và các cài đặt bên dưới của thiết bị ảo và thiết bị thật khác nhau như thể hiện trong hình bên dưới đây.
Thiết bị ảo không tự động nạp tất cả các dịch vụ Bluetooth khi khởi động, trong khi thiết bị thật thì có Để một thiết bị khác có thể kết nối với máy ảo, máy ảo cần khởi tạo các dịch vụ Bluetooth cần thiết trước Để hiểu rõ hơn về quy trình này, bạn có thể tham khảo các ví dụ về Bluetooth có trong bộ SDK.
Hình 3.6 Sự khác biệt giữa chồng giao thức Bluetooth trên thiết bị thật và trên máy ảo
Do đó, ứng dụng trước khi hoàn thành cần phải được test cẩn thận trên một thiết bị thật.
3.9.2 Các yêu cầu về phần cứng và phần mềm cho việc phát triển ứng dụng Bluetooth với Series 60 SDK :
Để phát triển ứng dụng Bluetooth cho Series 60, bạn cần một máy tính để bàn chạy hệ điều hành Windows 2000 hoặc Windows XP và cài đặt bộ Series 60 SDK.
Bộ giả lập hỗ trợ phần cứng Bluetooth với phiên bản Host Controller Interface (HCI) là BCSP và H4 UART, đạt tốc độ baud-rate 115.2 kbps, kết nối qua giao diện cổng COM.
Windows chỉ hỗ trợ phần cứng Bluetooth tương thích với BCSP và H4 UART Bộ giả lập đã tích hợp các chồng giao thức Bluetooth, do đó, thiết bị Bluetooth không cần cài đặt thêm phần mềm điều khiển nào.
Thiết bị phần cứng Bluetooth qua giao diện USB không được hỗ trợ bởi bộ SDK, do đó để sử dụng USB Bluetooth với máy ảo, cần có driver chuyển đổi tương thích Hiện tại, chỉ có driver của hãng Cyberabi (www.cyberabi.com) cho phép thực hiện chuyển đổi này.
• Nếu bạn sử dụng Series 60 SDK v1.2, bạn cần có driver DTL_X
• Nếu bạn sử dụng Series 60 SDK v2.1, bạn cần phải sử dụng driver BH4_X.
* Trong luận văn này, chúng em chỉ xin hướng dẫn cách sử dụng với thiết bị phần cứng Bluetooth là USB Bluetooth Dongle.
3.9.3 Cài đặt và cấu hình thiết bị USB Bluetooth
Để cấu hình Bluetooth USB cho việc giả lập thiết bị Bluetooth với máy ảo, trước tiên, bạn cần cài đặt Driver DTL_X hoặc BH4_X của Cyberabi Sau đó, hãy gỡ bỏ tất cả các driver của thiết bị Bluetooth USB đã được cài đặt trên máy tính, tháo rời thiết bị USB Bluetooth và khởi động lại máy tính.
Để kết nối USB Bluetooth với máy tính, hãy cắm nó vào cổng USB Máy tính sẽ tự động nhận diện thiết bị mới và yêu cầu bạn chọn driver tương ứng Bạn cần chọn đường dẫn đến thư mục chứa driver DTL_X hoặc BH4_X để hoàn tất quá trình cài đặt.
Sau khi cài đặt driver cho thiết bị Bluetooth, một cổng COM mới sẽ được tạo ra, gọi là Bluetooth virtual COM port Cổng COM này sẽ được sử dụng cho máy ảo.
Sau khi cổng Bluetooth COM được tạo ra, thực hiện cấu hình Bluetooth cho thiết bị giả lập như sau :
Với bộ SDK v1.2 : Mở file \ Epoc32\Wins\c\system\data\bt.esk Và thay đổi cấu hình file bt.esk như sau :
Hình 3.7 Cấu hình Bluetooth COM port cho thiết bị giả lập
Thay đổi con số ở vị trí port thành số của Bluetooth port mà bạn vừa tạo Lưu ý rằng số nhập vào phải nhỏ hơn số của Bluetooth port một đơn vị; ví dụ, nếu Bluetooth port là COM4, bạn cần thay port thành 3 trong file bt.esk.
Lưu ý rằng thiết bị giả lập chỉ hỗ trợ các cổng COM từ COM2 đến COM6 Nếu sau khi cài đặt driver DTL_X hoặc BH4_X mà xuất hiện cổng COMx với x < 1 hoặc x > 6, cần thiết lập lại số cổng cho đúng.
Bây giờ, thiết bị giả lập đã sẵn sàng cho việc xây dựng và kiểm thử các ứng dụng Bluetooth.
Xây dựng ứng dụng minh họa
Xây dựng chương trình trao đổi phonebook giữa điện thoại di động với máy tính, và với điện thoại di động thông qua Bluetooth.
- Phân tích và xác định yêu cầu
Ứng dụng PbkExchange được thiết kế để kết nối và trao đổi dữ liệu qua Bluetooth, cho phép người dùng chia sẻ sổ danh bạ giữa hai điện thoại di động thuộc Series 60 hoặc giữa điện thoại và máy tính để lưu trữ Ứng dụng này bao gồm hai phần: một phần chạy trên điện thoại và một phần chạy trên máy tính.
Các yêu cầu của ứng dụng:
+ Thực hiện các kết nối Bluetooth.
+ Trao đổi sổ danh bạ giữa điện thoại và máy tính + Trao đổi sổ danh bạ giữa hai điện thoại.
+ Thực hiện các thao tác quản lý sổ danh bạ : thêm, xóa, sửa các phần tử.
- Qui trình kết nối và gửi nhận dữ liệu
Trong một phiên kết nối Bluetooth điểm nối điểm, một thiết bị khởi tạo Bluetooth sẽ thực hiện quảng bá dịch vụ Bluetooth Serial Port tới thiết bị khác thông qua giao thức Serial Port.
Bluetooth hoạt động theo cơ chế lắng nghe các yêu cầu kết nối từ thiết bị khác, được gọi là Server Thiết bị còn lại sẽ tìm kiếm các thiết bị Bluetooth xung quanh, chọn thiết bị mong muốn và gửi yêu cầu kết nối tới Server, được gọi là Client.
Qui trình thực hiện kết nối và truyền nhận dữ liệu giữa hai thiết bị được thể hiện như sơ đồ UML sau :
Hình 3.8 Qui trình kết nối và gửi nhận dữ liệu
- Xây dựng phần ứng dụng trên điện thoại
Ứng dụng PbkExchange trên điện thoại đảm nhận hai vai trò quan trọng: Server và Client Khi kết nối với máy tính, điện thoại hoạt động như một Client, gửi yêu cầu kết nối đến máy tính, trong khi máy tính thực hiện vai trò Server.
Khi kết nối hai điện thoại, một điện thoại sẽ hoạt động như server, khởi tạo Bluetooth và lắng nghe yêu cầu kết nối từ điện thoại khác, trong khi điện thoại còn lại sẽ đóng vai trò client, gửi yêu cầu kết nối đến server.
* Các chức năng của phần ứng dụng trên điện thoại :
• Cho phép thực hiện các thao tác trên phonebook của điện thoại: thêm xóa, sửa các contact.
• Thực hiện khởi tạo và thiết lập các kết nối Bluetooth
Sau khi kết nối thành công, cả server và client có thể gửi và nhận dữ liệu, cho phép trao đổi danh bạ qua Bluetooth.
• Xử lý dữ liệu nhận được.
Các lớp chính của PbkExchange phần trên điện thoại :
Hình 3.9 Sơ đồ lớp của phần ứng dụng trên điện thoại.
STT Tên lớp Chức năng
Lớp CPbkExchangeAppUi là thành phần chính của chương trình, chịu trách nhiệm nhận và xử lý các sự kiện từ người dùng Lớp này cũng thực hiện giao tiếp với các lớp gửi và nhận dữ liệu qua Bluetooth, thao tác với lớp RFile và xử lý dữ liệu nhận được.
2 CMessageClient Thực hiện tìm kiếm thiết bị server, gửi yêu cầu kết nối, quản lý kết nối, nhận và gửi dữ liệu khi đóng vai trò là client.
3 CMessageServer Thực hiện khởi tạo Bluetooth, chấp nhận kết nối và thực hiện các thao tác trao đổi dữ liệu, quản lý kết nối.
4 CPbkExchangeMainView Quản lý các menu và phần giao diện của ứng dụng.
5 CPbkExchangeMainContainer Hỗ trợ cho lớp
CPbkExchangeMainView trong việc quản lý giao diện của ứng dụng.
Tìm thiết bị và dịch vụ Bluetooth, lấy Port hỗ trợ CMessageClient thực hiện kết nối
Hỗ trợ việc lấy, phân tích thuộc tính các record của dịch vụ
8 CMessageServiceAdvertiser Hỗ trợ lớp CMessageServer trong việc quảng bá dịch vụ Bluetooth Serial Port.
Hình 3.10 Mô tả chức năng các lớp của phần ứng dụng trên điện thoại.
Khi một điện thoại hoạt động như một server, nó cần khởi tạo Bluetooth và quảng bá dịch vụ Bluetooth Serial Port để lắng nghe và chấp nhận kết nối từ các thiết bị client khác.
Sơ đồ lớp khi thiết bị đóng vai trò server:
Hình 3.11 Sơ đồ lớp của phần ứng dụng trên điện thoại (Server)
* Lớp CPbkEchangeAppUi là lớp thể hiện giao diện người dùng của ứng dụng, nó sử dụng một thể hiện của lớp CMessageServer để :
+ Khởi tạo dịch vụ Bluetooth Serial Port
+ Cho phép sự kết nối của các thiết bị Bluetooth khác.
+ Quảng bá dịch vụ Bluetooth Serial Port.
+ Chấp nhận một kết nối socket.
+ Thực hiện các thao tác gửi và nhận dữ liệu qua Bluetooth.
* Lớp CMessageServer sử dụng một số lớp của hệ điều hành Symbian sau : + Lớp RSocketServ : Để giao tiếp với socket server của thiết bị.
+ Lớp RSocket : Cung cấp các hàm cho việc tạo socket, đọc và ghi dữ liệu qua socket Có hai thể hiện của lớp RSocket :
• iListeningSocket : lắng nghe các yêu cầu kết nối từ client.
• iAcceptSocket : Socket kết nối với client : thực hiện việc truyền và nhận dữ liệu thông qua socket này.
+ Lớp RBTMan và RBTSecuritySettings : tạo ra một phiên làm việc (session) tới Bluetooth Security Manager (BSM), dùng để đăng kí và hủy bỏ các đăng kí các
88 dịch vụ với BSM Các thiết lập về an toàn của một dịch vụ được chứa trong cấu trúc TBTServiceSecurity.
The CMessageServiceAdvertiser class is utilized by the CMessageServer class to promote Bluetooth Serial Port services This class leverages two Symbian classes, RSdp and RSdpDatabase, to establish a session with the Bluetooth SDP Database The promotion of Bluetooth Serial Port services is achieved by creating an appropriate record in the SDP Database.
* Sơ đồ UML sau thể hiện quá trình quảng bá dịch vụ của server :
Hình 3.12 Quảng bá dịch vụ của Server
Bảng 3.1 Mô tả các hàm quảng bá dịch vụ
1 - 2 Người dùng chọn vào menu StartListen trên thiết bị, lúc này hàm HandleCommanL của lớp CPbkExchangeAppUi được gọi, và tiếp đó hàm StartL() của lớp CMessageServer được gọi.
Hàm StartL() sẽ làm nhiệm vụ tìm kiếm một port để lắng nghe,thiết lập các chế độ an toàn trên đó, và mở port đó để lắng nghe.
3 - 4 StartL() gọi hàm StartAdvertisingL() của lớp
CMessageAdvertiser để quảng bá dịch vụ Bluetooth Serial Port tới các thiết bị khác Biến trạng thái iState của CMessageServer mang giá trị : EWaitingForConnect
Establish a connection with the client device upon receiving a connection request The RunL() function of CMessageServer is invoked, transitioning the state variable iState from EWaitingForConnect to the next appropriate state.
EWaitingForMessage 8-10 Nhận dữ liệu từ Client, hàm RequestData(), và hàm
ReceiveOneOrMore() được gọi để nhận dữ liệu khi được gửi tới.
* Sơ đồ UML sau thể hiện việc nhận dữ liệu từ Client :
Hình 3.13 Nhận dữ liệu từ Client
Sau khi kết nối với client được thiết lập, Server luôn sẵn sàng nhận dữ liệu từ client Khi client gửi dữ liệu, hàm RequestData() trên server sẽ được kích hoạt, sau đó hàm RecvOneOrMore() sẽ thực hiện việc nhận dữ liệu từ socket Dữ liệu nhận được sẽ được chuyển tiếp cho lớp CPbkExchangeAppUi để xử lý.
* Thực hiện truyền Phonebook tới Client :
Ứng dụng trên điện thoại hoạt động như một Client khi gửi yêu cầu kết nối đến máy tính hoặc điện thoại khác Để thực hiện kết nối, ứng dụng cần tìm kiếm các thiết bị Bluetooth xung quanh, chọn thiết bị mong muốn và tiến hành kết nối.
Sơ đồ lớp thể hiện khi thiết bị đóng vai trò là Client :
Hình 3.15 Sơ đồ lớp của phần ứng dụng trên điện thoại (Client)
* Lớp CPbkExchangeAppUi là lớp thể hiện giao diện người dùng của ứng dụng, nó sử dụng một thể hiện cúa lớp CMessageClient để thực hiện kết nối
Bluetooth enables data exchange between devices and a server The CMessageClient class utilizes the RSocketServ and RSocket classes to establish a socket for transmitting and receiving data.
Before opening a socket, the CMessageClient object must search for the Bluetooth server, query the available services on the server to check if it offers Bluetooth Serial Port services, and then establish a connection with the server.
* Thực hiện tìm kiếm thiết bị:
Hình 3.16 Sơ đồ tìm kiếm thiết bị
Bảng 3.2 Mô tả các hàm tìm thiết bị Hàm Mô tả
1 – 3 Hàm ConnectL của đối tượng CMessageClient được gọi, nó thiết lập biến trạng trái (iState) là EGettingDevice và gọi hàm
CMessageServiceSearcher Và hàm này gọi hàm
The StartNotifierAndGetResponse function of the RNotifier object is utilized to identify and select the device it receives Once the user has made their device selection, the RunL function of the CMessageClient object is invoked.
* Thực hiện truy vấn dịch vụ
Hình 3.17 Sơ đồ UML truy vấn dịch vụ trên thiết bị
Bảng 3.3 Mô tả các hàm truy vấn dịch vụ Hàm Mô tả
Thiết bị y tế có kết nối bluetooth
3.11.1 MÁY ĐO HUYẾT ÁP BẮP TAY KẾT NỐI BLUETOOTH BEURER BM77
- Đồng bộ bằng Bluetooth với điện thoại thông minh thông qua phần mềm Beurer HealthManager để theo dõi báo cáo kết quả.
- Có 2 bộ nhớ người dùng với 60 lần lưu kết quả cho mỗi bộ nhớ
- Dùng được cho các bệnh nhân máu nhiễm mỡ và xơ vữa động mạch
- Màn hình cỡ lớn, sáng, dễ đọc
- Đo huyết áp tối đa (tâm thu), đo huyết áp tối thiểu (tâm trương), đo nhịp tim
- Cảnh báo nhịp tim bất thường
- Tự động cảnh báo thao tác sai khi đo huyết áp
- Cảnh báo huyết áp bất thường theo vạch màu(theo chuẩn WHO)
- Chu vi vòng bít: 24 - 40 cm
- Tự động tắt máy khi không sử dụng, màn hình tự tắt sau 3 phút không sử dụng
- Tín hiệu báo thao tác sai
- Pin AAA 4x1.5v, tín hiệu báo thay pin (khi pin yếu xuất hiện kí hiệu cảnh báo)
- Đạt tiêu chuẩn CHÂU ÂU
- Đã được thử nghiệm lâm sàng
Hình 3.18: Giao diện của thiết bị 3.11.2 Máy massage xung điện BEURER EM95 BLUETOOTH Đặc điểm và thông số kĩ thuật của Máy mát xa xung điện Beurer EM95
- 8 điện cực gel tự dính (45х45 mm),
- chương trình cấu hình riêng biệt (kênh),
- 20 chương trình đào tạo cho hai mục đích khác nhau: "Tập thể dục và sức mạnh" hoặc "Thư giãn và hạnh phúc"
- cấp độ khó: dành cho người mới bắt đầu, chuyên gia và chuyên gia,
- Chỉ báo vị trí điện cực,
- Ứng dụng miễn phí với huấn luyện viên ảo và bài tập từ ứng dụng miễn phí: Beurer EMS HomeStudio
- Công nghệ EMC để đào tạo và tái tạo cơ bắp.
- Hoạt động trên pin lithium-ion (1100mA),
- Màn hình màu LCD 3,5 màn hình LCD,
- Bộ sản phẩm bao gồm cáp USB và bộ đổi nguồn
- Tương thích với iOS 9.0 và Android 5.0 trở lên.
Hình 3.19: Giao diện của BEURER EM95
3.11.3 Cân phân tích cơ thể BEURER BF950 BLUETOOTH Đặc điểm của sản phẩm Cân phân tích cơ thể Beurer BF950 Bluetooth:
- Chuyển đổi giữa các đơn vị kilogam “Kg’, pao “Ib’ và xton “st”
Khi bật thiết bị, thời gian và nhiệt độ sẽ được hiển thị, với định dạng 24 giờ và °C khi chọn đơn vị kg, và định dạng 12 giờ cùng ºF khi chọn đơn vị ib/st.
- Chức năng trừ bì khi cân vô cùng tiện lợi
- Chức năng tự động tắt
- Chỉ báo thay pin khi pin yếu
- Tự động nhận diện người dùng
- Lưu trữ dữ liệu của ít nhất 30 lần đo cho 8 người dùng nếu dữ liệu chưa được chuyển sang ứng dụng.
- Thiết bị sử dụng công nghệ Bluetooth năng lượng thấp
- Mức chịu lực tối đa: 180 kg
- Thông báo tình trạng quá tải
- Sử dụng miễn phí phần mềm ứng dụng "Beurer HealthManager"
- Trọng lượng cũng có tính toán lượng calo AMR và BMR - theo mức độ hoạt động đã chọn.
- AMR = Tỷ lệ trao đổi chất hoạt động Đánh giá số lượng calo cơ thể sử dụng trong hoạt động.
- BMR = Tỷ lệ trao đổi chất cơ bản Đánh giá số lượng calo cơ thể sử dụng trong trạng thái nghỉ ngơi
Hình 3.20: Giao diện máy phân tích cơ thể BEURER BF950
Trong chương này, tác giả mô tả chi tiết công nghệ phát triển ứng dụng Bluetooth, bao gồm Symbian, Bluetooth API và Bluetooth Sockets Ngoài ra, các biểu đồ Usercase cũng được trình bày để hỗ trợ kỹ sư và lập trình viên trong quá trình phát triển ứng dụng.
Cuối chương, đã nêu rõ cấu trúc của hai mô hình quan trọng nhất trong phát triển ứng dụng: ứng dụng phía Server và ứng dụng phía Client.
Kết luận, bài viết đã tổng hợp các chuẩn công nghệ Bluetooth mới nhất, bao gồm IEEE 802.15.1 (WPAN/Bluetooth), IEEE 802.15.3 (High Rate WPAN), cũng như các phiên bản IEEE 802.15.3b-2006 và IEEE 802.15.3c-2009 Ngoài ra, chúng tôi đã phân tích chi tiết các phương pháp và yêu cầu kết nối giữa hai thiết bị sử dụng cổng giao tiếp Bluetooth.
Kết quả của đề tài sẽ cung cấp tài liệu tham khảo hữu ích cho sinh viên ngành Điện tử truyền thông, đồng thời giúp tôi nâng cao kiến thức về công nghệ quan trọng trong thời đại 4.0.
Do thời gian hạn chế, tôi chưa thể tiến hành cài đặt thử nghiệm, nhưng đã thiết kế quy trình phát triển ứng dụng dựa trên công nghệ hiện đại Sau khi tốt nghiệp, tôi sẽ tiếp tục nghiên cứu và phát triển ứng dụng một cách cụ thể hơn.