




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
物理信道(physical channel)是蓝牙系统的最底层结构,它以一伪随机跳频序列、特定的发送时槽定时、接入码及帧头编码来表征。蓝牙定义了一系列物理信道用于不同的应用,包括用于匹克网内设备通信的匹克网物理信道,用于查找设备的查找扫描物理信道和用于寻呼设备的寻呼扫描物理信道。两台设备必须采用相同的物理信道才能进行通信。主从设备建立连接的过程就是建立相同的匹克网信道的过程,这样主从设备才能以同样的定时和次序进行载波频率的跳变,进行数据传输,同时可以根据匹克网接入码和帧头编码进行数据过滤和解析,避免和其他设备在同一个频段上的偶尔的相撞。1.查询扫描过程2.寻呼扫描过程寻呼扫描物理信道(page scan physical channel)用于主设备寻呼从设备,是设备建立连接的必经阶段,主从设备是匹克网内设备的概念,这里用来指发起寻呼的设备和寻呼扫描设备。寻呼扫描跳频序列和寻呼请求帧的设备接入码-DAC是由从设备物理地址运算出来的,主设备以该跳频序列进行载波频率的跳变并在发送时间槽内发送寻呼请求,处于可被连接模式的从设备以固定的周期(由page scan interval决定)在一个固定的时间窗(由page scan window决定)内以某个跳频频率监听主设备的寻呼请求,监听到请求便在下个时间槽立即发送从设备寻呼响应(slave page response),主设备在收到从设备寻呼响应的下个时间槽发送主设备寻呼响应(master page response),该响应中包含了由主设备地址运算出来的跳频序列信息和时钟相位,从设备接收到这些信息便进入连接状态并自动成为匹克网的从设备,并再次返回从设备寻呼响应,主设备收到该响应后进入连接状态并自动成为匹克网的主设备。应用层的连接是建立在匹克网物理信道之上的逻辑连接,主设备通过SDP查询从设备相应服务的逻辑通道号,依据该通道建立应用层级的连接。协议栈已经有了,使用蓝牙是非常简单的事情。 (1)找到蓝牙设备,这是HCI层负责的,使用bluez-utils包提供的hcitool来找到蓝牙设备。 (2)找到服务,RFCOMM是通过不同的频道(channel)来提供不同的Profile的,所以需要找到要用的服务在设备上的哪个频道上,这是通过同一个软件包里的sdptool来完成的,就是SDP,服务发现协议。 (3)连接恰当的服务并使用。 蓝牙的特点就是如上所述的那些了,而用户态的工具所要完成的任务就是发现服务和使用服务了。连接的建立:蓝牙系统有三种主要状态:待机状态,连接状态和节能状态。从待机状态向连接状态转变的过程中,有7个子状态:寻呼、寻呼扫描、查询、查询扫描、主响应、从响应、查询响应。1启动HCI设备 首先,用户需要启动hcid,让HCI层的通信可以进行。对于Debian用户来说,需要安装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:10 UP RUNNING PSCAN ISCAN5 RX bytes :413 acl :0 sco :0 events :19 errors :0 TX bytes :323 acl :0 sco :0 commands :19 errors :07 Features : 0xbf 0xfe 0x8d 0x78 0x08 0x18 0x00 0x00 Packet type : DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV39 Link policy : RSWITCH HOLD SNIFF PARK Link mode : MASTER11 Name : inspiration -0 Class : 0x3e 010013 Service Classes : Networking , Rendering , Capturing , Object Transfer , Audio Device Class : Computer , Uncategorized15 HCI Ver : 1.2 (0x2) HCI Rev : 0x1fe LMP Ver : 1.2 (0x2) LMP Subver : 0x1fe Manufacturer : Integrated System Solution Corp . (57) 这个过程是自动的,当然也可以用hciconfig(8)来手工控制。hcid的配置文件位于/etc/bluetooth/hcid.conf, 通常使用软件包附带的版本就可以了,如果希望不用每次连接都在计算机这里确认一次PIN码的话,可以设置其中的security字段为auto,这样,每 次连接就会使用passkey设置的PIN码了。2寻找蓝牙设备 HCI已经启动了,现在就可以用它来寻找蓝牙设备了,当然,一定要先开启蓝牙设备的蓝牙功能,这个不是废话,手机的蓝牙是 默认关闭的,只有在手动控制之下才会发送信号,允许被扫描到,不过设备的个体差异性太大,这里没法介绍,作者假设读者已经自己摸索或参照说明书打开了设备 的蓝牙电源。寻找蓝牙设备如清单15.3所示。清单15.3 寻找蓝牙设备inspiration :/ home / gnawux # hcitool scan18 Scanning . 00:17:00:7 B :18: B8 Motorola SLVR之后蓝牙设备就会被顺利地找到,当然,前提是不要忘了打开手机的蓝牙开关,并允许被找,这个功能平时最好不要打开,以防在公共场合遇到安全问题。3查看设备提供的服务利用SDP协议,用户还可以查看每个设备都有功能,能提供什么服务,每种基于RFCOMM的服务都使用某种协议,占据一个“频道(channel)”,这是使用蓝牙服务时的一个重要参数。下面是例子,先看看本机,见清单15.4。清单15.4 本机提供的蓝牙服务20 gnawuxinspiration :$ sdptool browse localBrowsing FF: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然后可以看看关心的设备提供的服务,手机提供的服务种类比较多,首先是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) SDP (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 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 656e encoding : 0x6a58 base _ offset : 0x 100 code _ ISO 639: 0x7a6860 encoding : 0x6a base _ offset : 0xc 80062 Profile Descriptor List : Dialup Networking (0x 1103)64 Version : 0x 0100除了拨号网络服务的频道位置相对固定之外,其他服务在不同手机上的频道通常是不同的,手机一般支持的其他服务包括音频/耳机服务、车载免提服务、 OBEX对象推送服务、OBEX文件传输服务以及图片推送服务等,利用这些服务,可以利用手机拨号上网或是与手机交换图片、音乐等文件。15.2.4 使用蓝牙 首先介绍如何利用蓝牙取代手机数据线,以便进行拨号等工作。之后介绍利用蓝牙传送文件的几个用法,都是借助于前面提到的OBEX协议。1用蓝牙代替串口 大家知道,蓝牙的一个基本功能就是模仿串口,而串口的重要作用之一(可能是最重要的了)就是拨号,传统的DTE也就是Modem。实际上,通过RFCOMM,蓝牙连接可以反映在/dev/rfcomm0这样的字符设备上,像串口一样操作。当然,最好先定义/etc /bluetooth/ rfcomm.conf,里面根据手机的设备号和频道号写上相应设置,见清单15.7。清单15.7 rfcomm设置rfcomm 0 66 # Automatically bind the device at startup bind yes ;68 # Bluetooth address of the device70 device 00:17:00:7 B :18: B8;72 # RFCOMM channel for the connection channel 1;74 # Description of the connection76 comment Motorola SLVR L7; 这样,在启动bluetooth服务的时候,就已经自动连接上了,而不需要使用rfcomm(1)命令自己费力气了。现在,可以使用任意一个喜欢的串口程序(minicom、gtkterm等等)来对/dev/rfcomm0进行操作了,当然也可以使用pppd建立拨号网络。2利用OBEX推送文件 这是使用手机或计算机提供的“OBEX Object Push”(0x1105)服务,由另一方向其推送如文件。使用的工具是openobex-apps包里的obex test工具。首先是利用手机的Push服务向手机推送,对于本例中的手机,这是通过清单15.5所使用的sdptool命令得到的结果的一部分,清单 15.8所示。清单15.8 手机提供的对象推送功能78 Service Name : OBEX Object PushService Description : OBEX Object Push80 Service Provider : MotorolaService RecHandle : 0x 1000882 Service Class ID List : OBEX Object Push (0x 1105)84 Protocol Descriptor List : L2CAP (0x 0100)86 RFCOMM (0x 0003) Channel : 888 OBEX (0x 0008)可以看到,推送服务位于频道8,现在,在obex_test的命令行里指定设备和频道,如清单15.9所示。清单15.9 向手机推送文件gnawuxinspiration :$ obex _ test -b 00:17:00:7 B :18: B8 890 Using Bluetooth RFCOMM transportOBEX Interactive test client / server .92 cConnect OK!94 Version : 0x10. Flags : 0x00 p wangxu . jpg me. jpg96 PUT file (local , remote ) name = wangxu .jpg , size =34177Going to send 34177 bytes98 Made some progress .Made some progress .100 Made some progress .Made some progress .102 Made some progress .PUT successful !104 q执行完obex-test之后,进入一个交互状态,首先建立连接,然后传送文件(本地文件名是wangxu.jpg,存在手机上叫me.jpg(这个是随意取的),最后退出。这个过程需要看着手机屏幕,可能要确认是否连接,文件存放在哪里,这个和手机有关。现在也可以看看手机向计算机推送,首先应该让计算机进入接收状态,如果本地没有启动Object PUSH服务,可以利用sdptool把它加上,如清单15.10所示。清单15.10 给计算机加上Object Push服务gnawuxinspiration :$ sdptool add OPUSH106 OBEX Object Push service registered现在进入接收状态,注意要使用计算机(local)的地址和频道号,这些信息可以通过清单15.4所示方法得到,见清单15.11。清单15.11 接收手机推送的文件gnawuxinspiration :$ obex _ test -b FF:FF:FF :00:00:00 9108 Using Bluetooth RFCOMM transportOBEX Interactive test client / server .110 s现在,计算机进入了接收模式,在手机侧发送文件到计算机就可以了。3使用obexftp上传下载 使用“OBEX File Transfer”(0x1106)服务的obexftp是一个方便的工具,利用它可以查看手机上的内容,并进行上传下载,对于本例,对应的频道是9。先来查看一下有哪些目录,见清单15.12。清单15.12 obexftp列目录清单 gnawuxinspiration :$ obexftp -b 00:17:00:7 B :18: B8 -B 9 -l112 Browsing 00:17:00:7 B :18: B8 . Channel : 9114 Connecting . done Receiving ( null ).| 116 118 120 121 folder name = MMC( Removable ) size =0 type = folder modified =19700101 T 000000 Z user - perm = RW124 done Disconnecting . done可以看到,有4个有读写(RW)权限的目录,再看看audio里面有什么,见清单15.13。清单15.13 obexftp查看audio目录126 gnawuxinspiration :$ obexftp -b 00:17:00:7 B :18: B8 -B 9 -l audio Browsing 00:17:00:7 B :18: B8 .128 Channel : 9 Connecting . done130 Receiving audio .| 132 134 file
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 英美文学经典作品导读的教学设计教案
- 关于珍惜友情高一作文11篇范文
- 纪念鲁迅有感课件
- 农民互助土地流转经营合同
- 一年级作文过春节放炮8篇
- 一张难忘的照片作文500字小学作文15篇
- 唐诗的鉴赏方法:古诗语言风格教案
- 2025年全国英语等级考试(PETS)二级试卷:英语词汇与语法同步练习试题
- 合同审核流程及文件存档规范
- 早发型卵巢功能不全课件
- 常见上肢骨折护理常规
- 2025建筑安全员考试题库
- 从2025年河南中考语文试卷中分析阅读理解如何提分
- 军工领域涉密项目保密风险评估及防控措施
- 2025发展对象考试题库附含参考答案
- 《智能建筑供配电与照明》课件(上)
- 公共打印区域管理办法
- 杭州预付消费管理办法
- 2025至2030中国电子束灭菌服务行业项目调研及市场前景预测评估报告
- 模锻工艺培训课件
- 2025年中国淋膜纸市场调查研究报告
评论
0/150
提交评论