您的位置:首页 > 运维架构 > Linux

Linux蓝牙系列(1) --- bluetooth基本概念

2013-01-25 15:39 260 查看
http://blog.chinaunix.net/uid-20587912-id-405132.html

Andrew Huang bluedrum@163.com

为了教学和未来汇森(huisen.cc)相关方案的推出,需要测试和应用大量蓝牙外设。因此准备一系列相关文章来分析测试蓝牙外设和应用。

这一篇是解释一些基础性的概念方便后理解。而这一些概念在随后的应用中大量出现。

一.蓝牙是什么?
--------------------------------------------------------------------------------
蓝牙是Nokia发明的短距无线通讯协议。具有体积小,低成本等特点,广泛应用在手机,嵌入式设备之间的低速数据交换。
蓝牙原意是bluetooth.名字源于于统一北欧的瑞典国王的名字Harald Bluetooth,由爱立信(Ericsson)所研发的一种短距离无线传输介面,并在
1998 年联合 IBM、Intel、Nokia、Toshiba 五家厂商成立 Bluetooth SIG 蓝牙联盟(Bluetooth Special Interest Group)。而蓝牙技术最主要的三个特性分别为:无方向性、语音和资料的传输、及可以同时连结多个装置。 取这个名字有统一短距离无线通讯的野心。但是短距离无线通讯技术更新发展非常之快,WiFi,UWB以及较新的Zigbee等技术不断应用,不过蓝牙仍然算应用广泛的嵌入式设备。在市场上有大量蓝牙外设。

蓝牙采用2.4G 的FHSS频段.使用2.402 GHz到2.480 GHz之中79个通道. , 最大是10米通讯矩离。蓝牙的联接分为两种类型异步无连接,(ACL)
和同步面向连接链路(SCO).其中sco针对音,视频的数据。

蓝牙采用主从通讯模式.即通讯只能发生主设备与从设备之间。每个设备采用一个48bit全球唯一的蓝牙地址(BT_ADDR).

在一个嵌入式设备中,蓝牙设备(IC)与CPU之间,它们之间的接口称为 HCI(Host Controller Interface
)

关于HCI有详细解析
http://oscar.iitb.ac.in/onsiteDocumentsDirectory/Bluetooth/Bluetooth/Help/Host%20Controller%20Interface.htm

在host与bt device 的HCI主要三种数据包交互,分别command packet,event packet和data packet.



二.蓝牙的协议
-------------------------------------------------------------------------------
主要概念来源于 http://cgi.cse.unsw.edu.au/~cs4411/wiki/index.php?title=Bluetooth


在HCI接口之下,是传输层协议.由蓝牙模块实现。
Radio层是物理层的通讯协议,它采用2.4Ghz 频段.
Baseband layer/Link Manager是蓝牙链路层协议,

在HCI接口之上,是需要HOST来实现,它分别主要由嵌入式软件实现.是我们后移植和开发的重点。
L2CAP Logical
Link Control and Adaptation Protocol
实现蓝牙数据包分割和重组,信息传递服务质量,可以理解为是蓝牙的网络层协议,主要在Linux主要由驱动来实现。
RFCOMM ([b]Radio
Frenquency Communication protocol
).[/b]在L2CAP提供的模拟串口接口。

在串口之上都是一些标准应用

OBEX是Object Exchange的简称,这个应用本来是IrDA?为红外传输制定的协议,但它并不限于特定的底层传输方式,可以运行于blueteeth、usb和tcp/ip其它多种协议之上。OBEX主要是会话层协议,同时也包括应用层部分功能。它可以传输任何对象,在手机中,通常用来传输文件、图片、名片(Vcard)和日程(Vcal)等。

Service Discovery Protocol (SDP) 提供服务协商协议。蓝牙设备用SDP向其它设备宣告自己支持的服务。

HCI只是提出一个抽象的逻辑接口,具体蓝牙设备与CPU互联还是需要特定的硬件方式.
最常见的是USB联接,市面常见USB蓝牙棒即是此类接口。
还有UART串口形式的蓝牙设备。

另外一种接口是BCSP,是BlueCore
Serial Protocol的简称,是英国CSR公司的专用接口,相当于在HCI又增加一些控制命令,bluez中的bccmd就是用来调用其接口的。它的具体实现仍然是靠PCMIA和CF卡来实现。还有一般的串口也能支持BCSP接口,比如这一款。
http://www.sz-hhw.com.cn/athena/offerdetail/sale/jiafangsheng-1034009-696532524.html

PCMIA接口蓝牙适配器

[align=center] [/align]

三.蓝牙通讯过程
----------------------------------------------------------------- --------------

两个蓝牙设备正常通讯需要经历如下完整的四个阶段
1.发现(Discover)
首先蓝牙设备断开联络进入搜索模式,它发送一个广播信息给周围10米的蓝牙设备。
2.搜索(search)
这一阶段在搜索10米可用的蓝牙设备。
3.配对(Pair)
一但发现可用设备,则进入配对阶段,双方交换各自7个数字长的PIN码(Personal Identification Number )。这样一是为安全,二是区别不同设备
4.联接(connect)
当配对成功后,通讯双方进入联接阶段,两个设备互相收发数据

这四个阶段都需要软硬件通力配合来完成。并按如下顺序



[align=center] [/align]
这里详细描述成 http://oscar.iitb.ac.in/onsiteDocumentsDirectory/Bluetooth/Bluetooth/Help/Host%20Controller%20Interface.htm [align=left] [/align]
[align=left] [/align]
四.常见的蓝牙应用模式
---------------------------------------------------------------------------
引自 http://www.tutorial-reports.com/wireless/bluetooth/usagemodels.php
1.文件传输

通过SDP发送文件传输功能宣告,并通过OBEX来传输文件。



[align=center] [/align]
[align=left]2.信息同步[/align]
两台设备交换通讯录,邮件,日程等信息,有一种标准协议IrMC,它是 Infrared
Mobile Communications.它定义了利用Ir无线传输协议,最早用于红外传输,因此而得名,后被移植到蓝牙之上。
[align=left] [/align]
关于IrMC参见 http://www.360doc.com/content/08/0229/10/18242_1080598.shtml


[align=center] [/align]
[align=left]3.蓝牙电话[/align]



[align=center]拨号协议TCS-BIN通过L2CAP来完成,而音频流绕开了L2CAP直接通讯[/align]
[align=left]4.蓝牙耳机[/align]
[align=center] [/align]





[align=left] [/align]
[align=center] [/align]

五.常见的蓝牙设备
---------------------------------------
除手机外。常见的蓝牙设备有

USB蓝牙棒

PCMIA接口蓝牙设备。



[align=center] [/align]
[align=left]SDIO接口(即SD卡接口)蓝牙设备[/align]

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: