没有合适的资源?快使用搜索试试~ 我知道了~
首页基于bluez的应用程序开发
Linux下Bluez的编程实现 1、 蓝牙的各个协议栈的简介 2 1.1、蓝牙技术 2 1.1、蓝牙协议栈 2 1.2、蓝牙技术的特点 4 1.2.1、蓝牙协议栈体系结构 4 1.2.2、蓝牙协议栈低层模块 4 1.2.3、软件模块 5 1.3、蓝牙的一些Profile 6 2、Bluez和D-Bus 7 2.1、Bluez和D-Bus体系结构 7 2.2、D-Bus介绍 9 2.3、Bluez的安全接口 13 2.4、Bluez适配器接口 15 2.5、Bluez配对 16 2.6、Bluez绑定 17 3、Bluez编程实现 18 3.1、蓝牙开发关键技术剖析 18 3.1.1、连接机制分析 18 3.1.2、自动连接 18 3.1.3、时钟设计 19 3.1.4、配对列表管理 20 3.1.5、蓝牙文件传输模式 20 3.2、hci层介绍 20 3.2.1、hci层介绍 20 3.2.2、hci层编程 21 3.3、L2CAP层编程 25 3.3.1、L2CAP协议简介 25 3.3.2、L2CAP编程方法 26 3.4、SDP协议简介 27 4、Openobex 28 4.1、Openobex简介 28 4.2、Openobex与bluez编程实现 29 5、 Obexftp 32 5.1、obexftp简介 32 5.2、基于Obexftp的应用程序开发 32 6、参考资料 32
资源详情
资源评论
资源推荐
Linux 下 Bluez 的编程实现
1、 蓝牙的各个协议栈的简介..........................................................................................................2
1.1、蓝牙技术............................................................................................................................2
1.1、蓝牙协议栈........................................................................................................................2
1.2、蓝牙技术的特点................................................................................................................4
1.2.1、蓝牙协议栈体系结构.............................................................................................4
1.2.2、蓝牙协议栈低层模块.............................................................................................4
1.2.3、软件模块.................................................................................................................5
1.3、蓝牙的一些 Profile............................................................................................................5
2、Bluez 和 D-Bus..............................................................................................................................7
2.1、Bluez 和 D-Bus 体系结构.................................................................................................7
2.2、D-Bus 介绍.........................................................................................................................9
2.3、Bluez 的安全接口............................................................................................................13
2.4、Bluez 适配器接口............................................................................................................17
2.5、Bluez 配对........................................................................................................................17
2.6、Bluez 绑定........................................................................................................................18
3、Bluez 编程实现...........................................................................................................................19
3.1、蓝牙开发关键技术剖析..................................................................................................19
3.1.1、连接机制分析.......................................................................................................19
3.1.2、自动连接...............................................................................................................19
3.1.3、时钟设计...............................................................................................................20
3.1.4、配对列表管理.......................................................................................................21
3.1.5、蓝牙文件传输模式...............................................................................................21
3.2、hci 层介绍........................................................................................................................21
3.2.1、hci 层介绍.............................................................................................................21
3.2.2、hci 层编程.............................................................................................................22
3.3、L2CAP 层编程.................................................................................................................26
3.3.1、L2CAP 协议简介..................................................................................................26
3.3.2、L2CAP 编程方法..................................................................................................27
3.4、SDP 协议简介..................................................................................................................28
4、Openobex.....................................................................................................................................29
4.1、Openobex 简介.................................................................................................................29
4.2、Openobex 与 bluez 编程实现..........................................................................................31
5、 Obexftp.......................................................................................................................................33
5.1、obexftp 简介.....................................................................................................................33
5.2、基于 Obexftp 的应用程序开发.......................................................................................33
6、参考资料.....................................................................................................................................33
1、蓝牙的各个协议栈的简介
1.1、蓝牙技术
% 蓝牙(Bluetooth)技术是由 Ericsson、IBM、Intel、Nokia 和 Toshiba 公司于
1998 年 5 月共同提出开发的,并联合成立了蓝牙特殊利益小组(SIG),负责开发
无线协议规范并设定交互操作的需求。其本质是设备间的无线链接,意在于代
替有线电缆。
1.1、蓝牙协议栈
协议栈是指一组协议的集合,举个例子,把大象装到冰箱里,总共要 3 步。
每步就是一个协议,3 步组成一个协议栈。把应用层数据包发出去,也要好几
步,TCP/UDP 头,IP 头,ether 头,每步也是一个协议。另外每层都有一些特殊
的协议。所有这些统称协议栈。蓝牙协议栈就是 SIG 定义的一组协议的规范,
目标是允许遵循规范的蓝牙应用能够进行相互间操作,如图 1.1 蓝牙协议栈
图 1.1 蓝牙协议栈
在蓝牙协议体系中,底层、中间层、应用层按序排列构成了蓝牙协议栈,
如左图所示。底层(硬件层)和中间协议层(软件层)之间 的接口使用主机控制器
接口(HCI)。HCI 是软硬件之间必不可
少的接口,其功能是解释并传递两层
之间的消息和数据。软件通过 HCI 调
用底层 LMP/BB 和 RF 等硬件。HCI 以
下的功能由蓝牙设备实施;HCI 以上
的 功 能 由 软 件 运 行 , 在 主 机 上 实 现 。
HCI 对于上、下两层数据的传输都是
透明的。
在蓝牙 协议栈中 ,最主要 的是蓝
牙核心协议,包括基带协议(BP)、链
路管 理协议 (LMP)、 链接控制 和适配
协议(L2CAP)、服务发现协议(SDP)等。
蓝牙设备基本上都需要核心协议,其
他协议则按蓝牙设备的需要而选定。
1.2、蓝牙技术的特点
1.2.1、蓝牙协议栈体系结构
整个蓝牙协议体系结构可分为底层硬件模块、中间协议层和高端应用层三
大部分。链路管理层(LMP)、基带层(BBP)和蓝牙无线电信道构成蓝牙的底层模
块。BBP 层负责跳频和蓝牙数据及信息帧的传输。
LMP 层:负责连接的建立和拆除以及链路的安全和控制,它们为上层软件模块
提供了不同的访问人口,但是两个模块接口之间的消息和数据传递必须通过蓝
牙主机控制器接口的解释才能进行。也就是说,中间协议层包括逻辑链路控制
与适配协议(L2CAP)、服务发现协议(SDP)、串口仿真协议(RFCOMM)和电话控
制协议规范(TCS)。
L2CAP:完成数据拆装、服务质量控制、协议复用和组提取等功能,是其他上
层协议实现的基础,因此也是蓝牙协议栈的核心部分。
SDP:为上层应用程序提供一种机制来发现网络中可用的服务及其特性。在蓝牙
协议栈的最上部是高端应用层,它对应于各种应用模型的剖面,是剖面的一部
分。目前定义了 13 种剖面。
1.2.2、蓝牙协议栈低层模块
蓝牙的低层模块是蓝牙技术的核心,是任何蓝牙设备都必须包括的部分。
蓝牙工作在 2.4GHZ 的 ISM 频段。采用了蓝牙结束的设备讲能够提供高达
720kbit/s 的数据交换速率。
蓝牙支持电路交换和分组交换两种技术,分别定义了两种链路类型,即面
向连接的同步链路(SCO)和面向无连接的异步链路(ACL)。
为了在很低的功率状态下也能使蓝牙设备处于连接状态,蓝牙规定了三种
节能状态,即停等(Park)状态、保持(Hold)状态和呼吸(Sniff)状态。这几种工作
模式按照节能效率以升序排依次是:Sniff 模式、Hold 模式、Park 模式。
蓝牙采用三种纠错方案: 1/3 前向纠错(FEC)、2/3 前向纠错和自动重发
(ARQ)。前向纠错的目的是减少重发的可能性,但同时也增加了额外开销。然
而在一个合理的无错误率环境中,多余的投标会减少输出,故分组定义的本身
也保持灵活的方式,因此,在软件中可定义是否采用 FEC。一般而言,在信道
的噪声干扰比较大时蓝牙系统会使用前向纠错方案,以保证通信质量:对于
SCO 链路,使用 1/3 前向纠错;对于 ACL 链路,使用 2/3 前向纠错。在无编号
的自动请求重发方案中,一个时隙传送的数据必须在下一个时隙得到收到的确
认。只有数据在收端通过了报头错误检测和循环冗余校验(CRC)后认为无错时,
才向发端发回确认消息,否则返回一个错误消息。
蓝牙系统的移动性和开放性使得安全问题变得及其重要。虽然蓝牙系统所
采用的调频技术就已经提供了一定的安全保障,但是蓝牙系统仍然需要链路层
和应用层的安全管理。在链路层中,蓝牙系统提供了认证、加密和密钥管理等
功能。每个用户都有一个个人标识码(PIN),它会被译成 128bit 的链路密钥 (Link
Key) 来 进 行 单 双 向 认 证 。 一 旦 认 证 完 毕 , 链 路 就 会 以 不 同 长 度 的 密 码
(Encryphon Key)来加密(此密码以 shit 为单位增减,最大的长度为 128bit)链路层
安全机制提供了大量的认证方案和一个灵活的加密方案(即允许协商密码的长
度)。当来自不同国家的设备互相通信时,这种机制是极其重要的,因为某些国
家会指定最大密码长度。蓝牙系统会选取微微网中各个设备的最小的最大允许
密码长度。例如,美国允许 128bit 的密码长度,而西班牙仅允许 48bit,这样当
两国的设备互通时,将选择 48bit 来加密。蓝牙系统也支持高层协议栈的不同应
用体内的特殊的安全机制。例如两台计算机在进行商业卡信息交流时,一台计
算机就只能访问另一台计算机的该项业务,而无权访问其他业务。蓝牙安全机
制依赖 PIN 在设备间建立信任关系,一旦这种关系建立起来了,这些 PIN 就可
以存储在设备中以便将来更快捷地连接。
1.2.3、软件模块
L2CAP 是数据链路层的一部分,位于基带协议之上。L2CAP 向上层提供面
向连接的和无连接的数据服务,它的功能包括:协议的复用能力、分组的分割
和 重 新 组 装 (Segmentation And Reaassembly) 以 及 提 取 (Group
Abstraction)。L2CAP 允许高层协议和应用发送和接受高达 64K Byte 的数据分组。
SDP 为应用提供了一个发现可用协议和决定这些可用协议的特性的方法。
蓝牙环境下的服务发现与传统的网络环境下的服务发现有很大的不同,在蓝牙
环境下,移动的 RF 环境变化很大,因此业务的参数也是不断变换的。SDP 将
强调蓝牙环境的独特的特性。蓝牙使用基于客户/服务器机制定义了根据蓝牙服
务类型和属性发现服务的方法,还提供了服务浏览的方法。
RFCOMM 是 射 频 通 信 协 议 , 它 可 以 仿 真 串 行 电 缆 接 口 协 议 , 符 合
ETSI0710 串口仿真协议。通过 RFCOMM,蓝牙可以在无线环境下实现对高层
协议,如 PPP、TCP/IP、WAP 等的支持。另外,RFCOMM 可以支持 AT 命令集
从而可以实现移动电话机和传真机及调制解调器之间的无线连接。
蓝牙对语音的支持是它与 WLAN 相区别的一个重要的标志。蓝牙电话控制
规范是一个基于 ITU-T 建议 Q.931 的采用面向比特的洗衣,它定义了用于蓝牙
设备间建立语音和数据呼叫的呼叫控制信令以及用于处理蓝牙 TCS 设备的移动
性管理过程。
1.3、蓝牙的一些 Profile
蓝牙里面 profile 的定义,profile 既是配置文件,配置文件定义了可能的应
用,蓝牙配置文件表达了一般行为,蓝牙设备可以通过这些行为与其它设备进
行通信。蓝牙技术定义了广泛的配置文件,描述了许多不同类型的使用案例。
剩余33页未读,继续阅读
guoxiaojie_415
- 粉丝: 162
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论30