蓝牙查询扫描过程

上传人:mg****85 文档编号:34204077 上传时间:2018-02-21 格式:DOC 页数:9 大小:97.50KB
返回 下载 相关 举报
蓝牙查询扫描过程_第1页
第1页 / 共9页
蓝牙查询扫描过程_第2页
第2页 / 共9页
蓝牙查询扫描过程_第3页
第3页 / 共9页
蓝牙查询扫描过程_第4页
第4页 / 共9页
蓝牙查询扫描过程_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《蓝牙查询扫描过程》由会员分享,可在线阅读,更多相关《蓝牙查询扫描过程(9页珍藏版)》请在金锄头文库上搜索。

1、 物理信道(physical channel)是蓝牙系统的最底层结构,它以一伪随机跳频序列、特定的发送时槽定时、接入码及帧头编码来表征。蓝牙定义了一系列物理信道用于不同的应用,包括用于匹克网内设备通信的匹克网物理信道,用于查找设备的查找扫描物理信道和用于寻呼设备的寻呼扫描物理信道。两台设备必须采用相同的物理信道才能进行通信。 主从设备建立连接的过程就是建立相同的匹克网信道的过程 ,这样主从设备才能以同样的定时和次序进行载波频率的跳变,进行数据传输,同时可以根据匹克网接入码和帧头编码进行数据过滤和解析,避免和其他设备在同一个频段上的偶尔的相撞。1.查询扫描过程2.寻呼扫描过程寻呼扫描物理信道(p

2、age scan physical channel)用于主设备寻呼从设备,是设备建立连接的必经阶段,主从设备是匹克网内设备的概念,这里用来指发起寻呼的设备和寻呼扫描设备。寻呼扫描跳频序列和寻呼请求帧的设备接入码-DAC 是由从设备物理地址运算出来的,主设备以该跳频序列进行载波频率的跳变并在发送时间槽内发送寻呼请求,处于可被连接模式的从设备以固定的周期(由 page scan interval 决定)在一个固定的时间窗(由 page scan window 决定)内以某个跳频频率监听主设备的寻呼请求,监听到请求便在下个时间槽立即发送从设备寻呼响应(slave page response),主设备

3、在收到从设备寻呼响应的下个时间槽发送主设备寻呼响应(master page response),该响应中包含了由主设备地址运算出来的跳频序列信息和时钟相位,从设备接收到这些信息便进入连接状态并自动成为匹克网的从设备,并再次返回从设备寻呼响应,主设备收到该响应后进入连接状态并自动成为匹克网的主设备。应用层的连接是建立在匹克网物理信道之上的逻辑连接,主设备通过 SDP 查询从设备相应服务的逻辑通道号,依据该通道建立应用层级的连接。协议栈已经有了,使用蓝牙是非常简单的事情。(1)找到蓝牙设备,这是 HCI 层负责的,使用 bluez-utils 包提供的hcitool 来找到蓝牙设备。 (2)找到服

4、务,RFCOMM 是通过不同的频道(channel)来提供不同的 Profile的,所以需要找到要用的服务在设备上的哪个频道上,这是通过同一个软件包里的sdptool 来完成的,就是 SDP,服务发现协议。(3)连接恰当的服务并使用。蓝牙的特点就是如上所述的那些了,而用户态的工具所要完成的任务就是发现服务和使用服务了。连接的建立:蓝牙系统有三种主要状态:待机状态,连接状态和节能状态。从待机状态向连接状态转变的过程中,有7个子状态:寻呼、寻呼扫描、查询、查询扫描、主响应、从响应、查询响应。1启动 HCI 设备首先,用户需要启动 hcid,让 HCI 层的通信可以进行。对于 Debian 用户来说

5、,需要安装 bluez-utils 包,并启动 hcid。如果已经运行了 bluetooth 服务,插入USB 适配器后,hcid 就已经在运行了,看看相关信息,见清单15.2。清单15.2 HCI 接口信息1 inspiration :/ etc/ bluetooth # hciconfig -ahci 0: Type : USB3 BD Address : 11:11:11:11:11:11 ACL MTU: 678:8 SCO MTU: 48:10UP RUNNING PSCAN ISCAN5 RX bytes :413 acl :0 sco :0 events :19 errors :

6、0TX bytes :323 acl :0 sco :0 commands :19 errors :07 Features : 0xbf 0xfe 0x8d 0x78 0x08 0x18 0x00 0x00Packet type : DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV39 Link policy : RSWITCH HOLD SNIFF PARKLink mode : MASTER11 Name : inspiration -0Class : 0x3e 010013 Service Classes : Networking , Rendering , Capt

7、uring , Object Transfer , AudioDevice Class : Computer , Uncategorized15 HCI Ver : 1.2 (0x2) HCI Rev : 0x1fe LMP Ver : 1.2 (0x2) LMP Subver : 0x1feManufacturer : Integrated System Solution Corp . (57)这个过程是自动的,当然也可以用 hciconfig(8)来手工控制。hcid 的配置文件位于/etc/bluetooth/hcid.conf, 通常使用软件包附带的版本就可以了,如果希望不用每次连接都

8、在计算机这里确认一次 PIN 码的话,可以设置其中的security 字段为 auto,这样,每 次连接就会使用 passkey 设置的 PIN 码了。2寻找蓝牙设备HCI 已经启动了,现在就可以用它来寻找蓝牙设备了,当然,一定要先开启蓝牙设备的蓝牙功能,这个不是废话,手机的蓝牙是 默认关闭的,只有在手动控制之下才会发送信号,允许被扫描到,不过设备的个体差异性太大,这里没法介绍,作者假设读者已经自己摸索或参照说明书打开了设备 的蓝牙电源。寻找蓝牙设备如清单15.3所示。清单15.3 寻找蓝牙设备inspiration :/ home / gnawux # hcitool scan18 Scan

9、ning .00:17:00:7 B :18: B8 Motorola SLVR之后蓝牙设备就会被顺利地找到,当然,前提是不要忘了打开手机的蓝牙开关,并允许被找,这个功能平时最好不要打开,以防在公共场合遇到安全问题。3查看设备提供的服务利用 SDP 协议,用户还可以查看每个设备都有功能,能提供什么服务,每种基于RFCOMM 的服务都使用某种协议,占据一个“频道(channel) ”,这是使用蓝牙服务时的一个重要参数。下面是例子,先看看本机,见清单15.4。清单15.4 本机提供的蓝牙服务20 gnawuxinspiration :$ sdptool browse localBrowsing F

10、F:FF:FF :00:00:00 .22 Service Name : OBEX Object PushService RecHandle : 0x1000024 Service Class ID List : OBEX Object Push (0x1105)26 Protocol Descriptor List :L2CAP (0x0100)28 RFCOMM (0x0003)Channel : 930 OBEX (0x0008)Profile Descriptor List :32 OBEX Object Push (0x1105)Version : 0x0100然后可以看看关心的设备

11、提供的服务,手机提供的服务种类比较多,首先是 SDP 服务器,也就是服务发现服务器,有了这个服务,就可以接下来发现其他服务功能了,见清单15.5。清单15.5 手机提供的 SDP 功能34 gnawuxinspiration :$ sdptool browse 00:17:00:7 B :18: B8Browsing 00:17:00:7 B :18: B8 .36 Service RecHandle : 0x0Service Class ID List :38 SDP Server (0x 1000)Protocol Descriptor List :40 L2CAP (0x 0100)SD

12、P (0x 0001)42 Profile Descriptor List :SDP Server (0x 1000)44 Version : 0x 0100手机的最基本功能就是用于(电话或网络)拨号,这里列出的第一项服务也是“拨号网络网关” ,标识服务具体类型的字段是“Service Class ID” ,它所在的频道是RFCOMM 的频道1,如清单15.6所示。清单15.6 手机提供的拨号网络功能Service Name : Dialup Networking Gateway46 Service Description : Dialup Networking GatewayService

13、Provider : Motorola48 Service RecHandle : 0x 10001Service Class ID List :50 Dialup Networking (0x 1103)Protocol Descriptor List :52 L2CAP (0x 0100) RFCOMM (0x 0003)54 Channel : 1Language Base Attr List :56 code _ ISO 639: 0x 656eencoding : 0x6a58 base _ offset : 0x 100code _ ISO 639: 0x7a6860 encodi

14、ng : 0x6abase _ offset : 0xc 80062 Profile Descriptor List : Dialup Networking (0x 1103)64 Version : 0x 0100除了拨号网络服务的频道位置相对固定之外,其他服务在不同手机上的频道通常是不同的,手机一般支持的其他服务包括音频/耳机服务、车载免提服务、 OBEX 对象推送服务、OBEX 文件传输服务以及图片推送服务等,利用这些服务,可以利用手机拨号上网或是与手机交换图片、音乐等文件。15.2.4 使用蓝牙首先介绍如何利用蓝牙取代手机数据线,以便进行拨号等工作。之后介绍利用蓝牙传送文件的几个用法,

15、都是借助于前面提到的 OBEX 协议。1用蓝牙代替串口大家知道,蓝牙的一个基本功能就是模仿串口,而串口的重要作用之一(可能是最重要的了)就是拨号,传统的 DTE 也就是 Modem。实际上,通过 RFCOMM,蓝牙连接可以反映在/dev/rfcomm0这样的字符设备上,像串口一样操作。当然,最好先定义/etc /bluetooth/ rfcomm.conf,里面根据手机的设备号和频道号写上相应设置,见清单15.7。清单15.7 rfcomm 设置rfcomm 0 66 # Automatically bind the device at startupbind yes ;68# Bluetooth address of the device70 device 00:17:00:7 B :18: B8;72 # RFCOMM channel for the connectionchannel 1;74# Description of the connection76 comment Motorola SLVR L7; 这样,在启动 bluetooth 服务的时候,就已经自动连接上了,而不需要使用rfc

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号