RSS

BlueCore2External蓝牙芯片的USB接口设计02

来源:网络 作者:佚名 时间:2008-08-11 Tag:BlueCore2External   蓝牙芯片   USB接口设计   点击:

2.3对接对象模块USB
USB是由“通用串行总线实施论坛”组织公开发布推广的一种串行接口标准。蓝牙没有为USB 接口开发新的协议,而是使用已有的USB协议。USB接口支持符合蓝牙规范v1.1,可以和其他数字设备兼容通信,USB设备硬件能够以2种方式装入设备中,一种是形状类似于U盘的US B dongle;另一种是集成到电脑的主板上面。具体蓝牙USB接口端点的配置请参考蓝牙规范1.1。
综上所述,具体设计的硬件信号流程如图3所示。

 

 

 

 

 

 

 

 


?
3软件程序实现
对于USB硬件驱动程序可以使用微软提供的软件开发包DDK,该软件包为驱动程序开发者提供 了用于开发驱动程序所需的资源文件、编译连接程序、开发技术文档等。蓝牙协议没有为US B接口开发新的协议,而是使用已有的USB协议,限于篇幅,对于USB接口硬件驱动程序部分不 再详述。只着重介绍通过蓝牙HCI传输层USB的物理接口来实现蓝牙连接和数据通信。以VC++6.0为软件开发平台,由于条件所限,只给出点对点的蓝牙连接和通信的程序,至于点对多点的只需对某些参数稍做修改。点对点的软件的流程框图如图4所示。

?
代码如下:
(1) 打开设备,同时要开启HCI事件,HCI ACL,HCI SCO三个从主机控制器返回到主机上的事件的线程:

?
(2) 对本地蓝牙设备配置

通过调用此函数来实现对蓝牙设备的配置,包括连接建立最大的响应时间、寻呼最大响应时间、加密、鉴权、流量控制、读取本地蓝牙设备的名字以及本地蓝牙设备地址BD_ADDR等。
(3) 查询有效范围内的其他蓝牙设备

在查询成功的同时通过HCI事件线程Get_HCI_Event()获取对方蓝牙设备的地址和双方的时钟偏差,这2个是决定在下一步是否能建立ACL连接的关键参数。
(4) 建立ACL连接


在建立ACL连接成功的同时,通过HCI事件线程Get_HCI_Event()获取ACL连接句柄,在以后建立SCO连接以及发送ACL数据都将使用这个句柄来完成相应的操作。
(5) 建立SCO连接

在建立SCO连接成功的同时,通过HCI事件线程Get_HCI_Event()获取SCO连接句柄,在以后进行发送SCO数据时要使用这个句柄来完成相应的操作。
(6) 建立完ACL和SCO连接后,就可以进行ACL和SCO数据发送和接收,通过线程Get_ACL_Data(),Get_SCO_Data()获取ACL和SCO数据

(7) 断开连接


1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
教程下载