原创  Windows CE下的蓝牙开发 收藏

      CE上的蓝牙开发,分为驱动和应用。CE下的蓝牙整体比较复杂,有提供一些组件可以直接使用,相对于在mobile5.0上面还是麻烦多了,一些蓝牙的应用,对于我们这些不是专业做蓝牙方面的人员来说,难于入手。跌跌碰碰总算也是实现了蓝牙的一些基本功能,满足蓝牙的基本应用(CE5.0下通过PDA上的蓝牙和GPS蓝牙通信,蓝牙设备间文件传输等)。在完成蓝牙模块,做的记录不多,把以前一些记录整理上来,作为CE上蓝牙开发参考。


蓝牙协议栈的体系结构:

RFCOMM (Serial Cable Emulation Protocol) 是蓝牙的TS07.10协议的适配器。这服务是基于com端口模拟工具和源于点对点协议。多路技术和流控基于设备和应用程序也在这里执行。

L2CAP (Logical Link Control and Adaptation Protocol) 是底层基于蓝牙通信多路技术协议的连接。L2CPA不执行流控。它依赖蓝牙硬件提供的一个可靠的设备对设备基带链路。


CE下的蓝牙

蓝牙设备驱动作为一个流设备驱动被执行,它被Device.exe加载。蓝牙协议栈包含在微软的PB底下。最后的应用程序和包依赖于OEM和设计模板。这协议栈是有标准组件的,所以它可以使用作为一个多用途的软件栈,被默认连接,或它可以被分开使用。(可以自己定制?)

 

默认连接在下面的两个DLL

 

Btd.dll是蓝牙设备驱动包含所有的协议层。它被device.exe加载,被AFD使用,提供给TDI。执行在它自己的COM虚拟端口。通过IOCTLs来进行控制。

 

Btdrt.dll是一个实时的thunk DLL,提供标准应用程序接口给用户编程。通过IOCTL访问驱动和提供回调函数。

 

每一层都被直接连接入设备驱动,包括HCI传输,dll连接后,是不能被代替和扩展的,因为协议栈层APIs是不能被标准输出的。

 

然而,每一步连接都是用户控制的,每一层都作为一个库提供出来,任何一层都可以被代替,因此方便以后的更新。大部分可以使用来创建一个设备,有一个可更换的HCI传输,所以传输支持可以被安装为特殊的蓝牙卡。

 

HCI,每一层都可以被公开。扩充可以被写实现SCOACL协议是类似L2CAP,和控制器管理命令。

 

每层都允许多接口去设置它,每个上层的接口可以限制一个子集的连接权力,RFCOMMSDP必须只连接在它们自己的PSMprotocol/service multiplexer);SCO栈也只是操作CSO连接;自定义的软件栈也只能影响一个定义好的蓝牙设备连接。


发表于 @ 2007年06月20日 15:22:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:FLASH小游戏:魔兽元素TD

  • 发表评论
  • 评论内容:
  •  
Copyright © peng22277
Powered by CSDN Blog