论文部分内容阅读
蓝牙是一种开放性短距离无线通信技术标准,基于HCI层蓝牙协议栈的应用软件必须依赖相应的设备驱动程序才能控制蓝牙外设,实现蓝牙无线数据传输的功能。为了进一步发挥蓝牙技术在成本、功耗和传输速度等方面突出的综合优势,扩展蓝牙技术在个人无线通信领域的应用,本文配合自有蓝牙协议栈实现了在Linux操作系统上的蓝牙USB设备驱动程序,解决了自有蓝牙协议栈缺少配套设备驱动的问题。本文在深入研究和理解蓝牙2.0规范HCI层协议、USB2.0规范、Linux2.6版本操作系统设备管理方法和Linux USB核心功能的基础上,结合蓝牙协议栈的实现方式,采用Linux内核模块机制,用C语言和GNU工具链构造并且实现了基于X86平台和Linux2.6.29内核的蓝牙USB设备驱动程序。本文实现的蓝牙USB设备驱动程序可以支持蓝牙HCI指令分组、HCI事件分组、ACL数据分组的传输,具有工作稳定、可自由挂载和卸载的特点。实验表明本文实现的蓝牙USB设备驱动程序,能够很好的驱动蓝牙USB设备,可以配合自有蓝牙协议栈和蓝牙应用程序完成蓝牙组网、数据传输的功能。并且可以支持其他的嵌入式处理器,如ARM等,具有很强的移植性。