实战Linux Bluetooth编程(一) 协议栈概述

Sam一年前在Linux下写了一个相似Windows下BTW的库--BTX。如今须要添加新功能时发现不少知识点都忘记了。因此决定在此次学习中,把一些bluez API记录下来。这几天又想,这样还不够,不如把Linux下的Bluetooth编程基础给记录下来吧。  编程

前言:随着嵌入式系统的飞速发展,不少嵌入式平台上须要Bluetooth设备和应用。但在Linux下如何对Bluetooth编程,一直没有一份很好的中文文档。Sam结合本身的工做,一步一步将一些有用的东西记录下来,但愿对其它Linux下Bluetooth编程的朋友有点帮助。 windows

一:Bluetooth基本概念: 

Bluetooth是爱立信、诺基亚、东芝、IBM和Intel 5家公司在1998年联合推出的一项无线网络技术。其宗旨是提供一种短距离、低成本的无线传输应用技术。在行业协会筹备阶段,须要一个极具备表现力的名字来命名这项高新技术。行业组织人员,在通过一晚上关于欧洲历史和将来无限技术发展的讨论后,有些人认为用Blatand国王的名字命名再合适不过了。Blatand国王将如今的挪威,瑞典和丹麦统一块儿来;就如同这项即将面世的技术,将标准不一的短距离无线传输技术统一块儿来。

Intel负责半导体芯片和传输软件的开发,爱立信负责无线射频和移动电话软件的开发,IBM和东芝负责笔记本电脑接口规格的开发。 

蓝牙是无线数据和语音传输的开放式标准,它将各类通讯设备、计算机及其终端设备、各类数字数据系统、甚至家用电器采用无线方式联接起来。它的传输距离为10cm~10m,若是增长功率或是加上某些外设即可达到100m的传输距离。它采用2.4GHz ISM频段和调频、跳频技术,使用权向纠错编码、ARQ、TDD和基带协议。TDMA每时隙为0.625μs,基带符合速率为1Mb/s。蓝牙支持64kb/s实时语音传输和数据传输,语音编码为CVSD,发射功率分别为1mW、2.5mW和100mW,并使用全球统一的48比特的设备识别码。因为蓝牙采用无线接口来代替有线电缆链接,具备很强的移植性,而且适用于多种场合,加上该技术功耗低、对人体危害小,并且应用简单、容易实现,因此易于推广。 

蓝牙技术的系统结构分为三大部分:底层硬件模块、中间协议层和高层应用。底层硬件部分包括无线跳频(RF)、基带(BB)和链路管理(LM)。无线跳频层经过2.4GHz无需受权的ISM频段的微波,实现数据位流的过滤和传输,本层协议主要定义了蓝牙收发器在此频带正常工做所须要知足的条件。基带负责跳频以及蓝牙数据和信息帧的传输。链路管理负责链接、创建和拆除链路并进行安全控制。 

关于bluetooth协议栈,接下来再谈。 

当前已经实现的Bluetooth协议栈有如下各类:
1. Widcomm:  第一个windows上的协议栈,由Widcomm公司开发,也就是如今的Broadcom.
 
2. Microsoft Windows stack: Windows XP SP2中包括了这个内建的协议栈,开发者也能够调用其API开发第三方软件。
 
3. Toshiba stack: 它也是基于Windows的,不支持第三方开发,但它把协议栈受权给一些laptop商(sony, asus等,个人本本上就是Toshiba的)。它支持的Profile有: SPP, DUN, FAX, LAP, OPP, FTP, HID, HCRP, PAN, BIP, HSP, HFP , A2DP, AVRCP, GAVDP)
 
4. BlueSoleil: 著名的IVT公司的产品.该产品能够用于桌面和嵌入式,他也支持第三方开发,DUN, FAX, HFP, HSP, LAP, OBEX, OPP, PAN SPP, AV, BIP, FTP, GAP, HID, SDAP, and SYNC。
5. Bluez: Linux官方协议栈,该协议栈的上层用Socket封装,便于开发者使用,经过DBUS与其它应用程序通讯。
6. Affix: NOKIA公司的协议栈,在Symbian系统上运行.
7. BlueDragon:东软公司产品,好像2002年6月就经过了蓝牙的认证,支持的Profile:SDP、Serial-DevB、AVCTP、AVRCP-Controller、AVRCP-Target、Headset-AG、Headset-HS、OPP-Client、OPP-Server、CT-GW、CT-Term、Intercom、FT-Server、FT-Client、GAP、SDAP、Serial-DevA、AVDTP、GAVDP、A2DP-Source、A2DP-Sink.
8. BlueMagic:美国Open Interface 公司for portable embedded divce的协议栈,iphone(apple),nav-u(sony)等不少电子产品都用该商业的协议栈,BlueMagic 3.0是第一个经过bluetooth 协议栈1.1认证的协议栈,那么我如今就在用它,那么该栈用起来简单,API清晰明了。实现了的profile有:HCI,L2CAP,RFCOMM,A/V,Remote,Control,A/V,Streaming,BIP,BPP,DUN,FAX,FTP,GAP,Hands-Free,and,Headset,HCRP,HID,OBEX,OPP,PAN,BNEP,PBAP,SAP,SPP,Synchronization,SyncML,Telephony,XML.
9. BCHS-Bluecore Host Software: 蓝牙芯片CSR的协议栈,同时他也提供了一些上层应用的Profile的库,固然了它也是为嵌入式产品了,支持的Profile有:A2DP,AVRCP,PBAP,BIP,BPP,CTP,DUN,FAX,FM API,FTP GAP,GAVDP,GOEP,HCRP,Headset,HF1.5,HID,ICP,JSR82,LAP Message Access Profile,OPP,PAN,SAP,SDAP,SPP,SYNC,SYNC ML。
10. Windows CE:微软给Windows CE开发的协议栈,可是windows ce自己也支持其它的协议栈
11. BlueLet:IVT公司for embedded product的清量级协议栈。
相关文章
相关标签/搜索