一种蓝牙模块的设计及使用_精品文档资料下载.pdf
《一种蓝牙模块的设计及使用_精品文档资料下载.pdf》由会员分享,可在线阅读,更多相关《一种蓝牙模块的设计及使用_精品文档资料下载.pdf(3页珍藏版)》请在冰豆网上搜索。
文献标识码:
B?
文章标号:
1009-3184(2003)02-0048-021?
蓝牙技术及协议栈图1?
蓝牙协议栈体系简图蓝牙技术是一种低功耗的无线技术,用在短距离内取代PC机、打印机和移动电话等设备上的连接电缆,实现方便、灵活、低成本、小功耗的数据和语音通信。
蓝牙技术工作在全球通用的ISM(IndustrialSci?
enceandMedicine)2.4022.480GHz频段,分为79个小频段,频段间隔1MHz;
采用时分双工工作方式,1600跳/秒的快跳频方案,支持电路交换和分组交换,数据传输速率理论值1Mbit/s,非对称连接实测速率最高可达721kbit/s。
蓝牙技术有三种纠错方案:
1/3比例前向纠错码,2/3比例前向纠错码和自动重传方案。
蓝牙的发射功率一般为1mW,发射距离10m,当增加功率到100mW时,发射距离可以达到100m。
蓝牙的核心协议,包括基带协议(Baseband)、连接管理协议(LMP)、逻辑链路控制和适配协议(L2CAP)、服务发现协议(SDP)、串口仿真协议(RF?
COMM)和一些可选的高层协议。
蓝牙协议栈结构见图1,图中没有画出所有的可选协议。
基带协议(Baseband)确保网内蓝牙单元之间由射频构成的物理连接。
链路管理协议(LMP)负责各个单元之间连接的建立、交换、核实、身份验证和加密等。
逻辑链路控制和适配协议(L2CAP)采用多路技术分割和重组技术等,负责识别高层协议,把高层协议拆分成小数据包传给低层,把低层小数据包重新组合传给高层。
虽然基带支持两种传输方式:
无连接ACL(AsynchronousConnectionLink)方式和面向连接SCO(SynchronousConnectionOrientation)方式,但是L2CAP只支持ACL链路。
服务发现协议(SDP)的作用是查询潜在的蓝牙设备及其服务类型,从而建立相应的连接。
串口仿真协议(RFCOMM)是蓝牙常用的协议,它在基带之上仿真RS232控制和数据信号,为那些使用串行传送机制的上层协议提供服务支持。
HCI为主机控制接口(HostControlInterface),说明见后文。
其余的协议视具体应用而定,为可选协议。
图2?
配有天线的蓝牙模块?
48?
技术应用?
黑龙江通信技术HeilongjiangCommunicationsTechnology?
2003年6月第2期No.2June20032?
蓝牙模块的组成采用两块芯片组成一个模块,配合一个发射天线,组成完整的收发体系,结构如图2。
模块可以看成两个单元:
无线收发单元和链路管理单元,就是一块射频芯片和一块基带控制芯片。
表?
表1爱立信ROK_101_007蓝牙模块主要管脚的说明类型标号管脚名工艺数据流向管脚意义UARTUARTUARTUARTA5A6B5B6RXDRTSTXDCTSCMOSCMOSCMOSCMOSINPUTINPUTOUTPUTOUTPUT数据流接口,通过UART接口接收数据流控信号,主机要求传输数据数据流接口,向UART接口发送数据流控信号,通知主机可以立即传输数据USBUSBUSBUSBB1B2B4C1D+D-WAKE_UPDETACHCMOSCMOSCMOSCMOSIN/OUTIN/OUTOUTPUTINPUT通过USB接口输入/输出数据通过USB接口输入/输出数据蓝牙模块希望连接到USB主机USB主机要求断开与蓝牙模块的连接其它C2VCCPOWERPOWER电源1是蓝牙模块主要管脚的意义。
3?
HCI接口和接入方式开发高层协议的人员直接调用HCI(HostControlInterface)指令就可以实现不复杂的通信。
HCI接口位置见图3。
下面分别说明采用RS-232接口或USB接口的方案。
图?
3HCI接口的位置3.1?
采用HCIRS-232传输层的接入方式HCIRS232传输层的目标是在主机和主控制器之间的RS232接口上使用HCI指令,通过RS-232接入主机(比如笔记本电脑)。
可以外设电路,利用蓝牙模块B5(TXD)、B6(CTS)、A5(RXD)、A6(RTS)4个管脚按到RS232,如图4。
图4?
蓝牙模块与RS232接口以爱立信的ROK_101_007系列模块为例,两个单元经过ACL链路建立主从网络时所用最基本的HCI指令如下述。
两个模块及相连的主机分别设为主单元和从单元,建立ACL链路。
设为从单元的流程如下:
Reset01030C00?
注:
复位蓝牙主机控制器,连路管理器和无线模块Set_Event_Filter01050C0100?
指定不同的事件过滤器Write_Scan_Enable011A0C0103?
周期地对其他蓝牙设备的寻呼进行扫描Set_Event_Filter01050C03020002设为主单元的流程如下:
Reset01030C00Set_Event_Filter01050C0100Write_Scan_Enable011A0C0103Set_Event_Filter01050C03020002Read_BD_ADDR01091000?
读取蓝牙地址Inquiry01010405338B9E0600?
问询蓝牙设备Creat_Connection0105040D99B11637800008000000000000?
建立连接这样建立起来的一条ACL链路,做好了传输数据/语音的准备。
下面具体解释上述HCI指令。
?
49?
第2期?
郭宏博?
张中兆:
一种蓝牙及模块的设计使用?
技术应用HCI分组有6种:
HCI指令分组、HCIACL数据分组、HCISCO数据分组、HCI事件分组、错误消息分组、协商分组,对应的指示分别为:
0x01、0x02、0x03、0x04、0x05、0x06。
每个指令都有2字节的操作码,以标识指令类型,这里用到的都是HCI主控制器与基带指令。
操作码分为两段:
操作组段OGF和操作码指令段OCF,OGF占高6位,OCF占其余10位。
各个HCI主控制器与基带指令OGF都是0x03,但有不同的OCF。
具体分析一条HCI指令Write_Scan_Enable011A0C0103,见表3。
第1个字节01代表该分组为HCI指令分组;
表3对一条HCI主控制器与基带命令的解析指令分组类型(1字节)操作码(2字节)参数总长(1字节)参数(1字节)参数(1字节)参数(1字节)Write_Scan_Enable011A0C0103无无?
第2、3个字节由OGFOCF=0x030x001按照字节逆序得来;
第4个字节01代表参数长为1个字节;
最后一个字节03是参数,表示查询扫描允许而且呼叫扫描允许。
更多的指令参数在蓝牙规范1.1HCI命令集部分有详细说明,可以查阅蓝牙规范1.1的HCI命令集部分和蓝牙规范1.1的附录。
3.2?
采用HCIUSB传输层的接入方式图5?
使用USB传输层的硬件框图根据新的USB规范,传输速率理论可以达到12Mbit/s,完全可以满足一般的传输要求,不会产生接口上的速率瓶颈。
蓝牙模块通过USB接口接入到有USB接口的设备中,比如PC机,PDA等。
缺点是开发过程涉及USB接口及其相关协议不如串口简单。
使用USB传输层的连接如图5,利用D+和D-管脚实现数据传输,利用WAKE_UP和DETACH管脚传输控制信号。
4?
结束语通过RS232串行口利用HCI指令建立ACL链路,通过HCI指令可以实现简单的数据/语音传输。
但是由于蓝牙的基带不能够识别高层协议,而且支持的数据包大小有限(最大为341个字节),所以难以实现复杂功能。
L2CAP能够识别高层的复杂协议,并将高层协议拆分后再传给低层,将底层协议重新组合再传给高层。
因此为了实现更复杂的功能,就必须涉及L2CAP层控制协议和高层应用协议(图1)。
解析这些协议比较困难,但是它们为开发更高层的复杂应用铺平了道路,使得各种各样的蓝牙应用得以实现。
参考文献1?
金纯,许光辰,孙睿.蓝牙技术M.北京:
电子工业出版社,2001.2?
Miller.B.A.宋俊德,侯春萍,宋梅等译.蓝牙核心技术-全球无线通信开放规范的权威性指南M.北京:
机械工业出版社,2001.3?
何荣森,王宏宝,张跃.蓝牙技术及其硬件设计J.电子技术,2001(4):
1316.4?
SIG.SpecificationoftheBluetoothsystemEB/OL.http:
/年生,哈尔滨工业大学通信与信息系统专业,硕士研究生,研究方向为无线数据与移动网络,目前主要从事无线局域网、蓝牙技术等方面的研究。
收稿日期:
2003-04-05?
50?
黑龙江通信技术?
2003年