项目刚好做到蓝牙了,也不是很忙,讲讲自己最近一段时间做的东西。
提到协议栈,都会想到与开放式系统互联(OSI)协议栈的 ,OSI协议栈定义了厂商们如何才能生产可以与其它厂商的产品一起工作的产品。协议栈是指一组协议的集合,举个例子,把大象装到冰箱里,总共要3步。每步就是一个协议,3步组成一个协议栈。把应用层数据包发出去,也要好几步,TCP/UDP头,IP头,ether头,每步也是一个协议。另外每层都有一些特殊的协议。所有这些统称协议栈。
简单的来说,蓝牙协议栈就是SIG(Special Intersted Group)定义的一组协议的规范,目标是允许遵循规范的蓝牙应用应用能够进行相互间操作,图1-1就是完整的蓝牙协议栈和部分profile:
图1-1
接着介绍下蓝牙里面profile的定义,profile既是配置文件,配置文件定义了可能的应用,蓝牙配置文件表达了一般行为,蓝牙设备可以通过这些行为与其它设备进行通信。蓝牙技术定义了广泛的配置文件,描述了许多不同类型的使用案例。按照蓝牙规格中提供的指导,开发商可以创建应用程序以与其它符合蓝牙规格的设备协同工作。 到目前为止,蓝牙一共有22个profile,在这里我就不详细介绍图1-1的协议和每个Profile了,在www.bluetooth.com上有详细的文档说明。
在这里我想详细介绍下已经实现了r的协议栈。
Widcomm: 第一个windows上的协议栈,由Widcomm公司开发,也就是现在的Broadcom .
Microsoft Windows stack: Windows XP SP2中包括了这个内建的协议栈,开发者也可以调用其API开发第三方软件。
Toshiba stack: 它也是基于Windows的,不支持第三方开发,但它把协议栈授权给一些laptop商(sony, asus等,我的本本上就是Toshiba的)。它支持的Profile有: SPP, DUN, FAX, LAP, OPP, FTP, HID, HCRP, PAN, BIP, HSP, HFP , A2DP, AVRCP, GAVDP)
BlueSoleil: 著名的IVT公司的产品,这个应该是个中国公司,值得自豪。该产品可以用于桌面和嵌入式,他也支持第三方开发,DUN, FAX, HFP, HSP, LAP, OBEX, OPP, PAN SPP, AV, BIP, FTP, GAP, HID, SDAP, and SYNC。
Bluez: Linux官方协议栈,该协议栈的上层用Socket封装,便于开发者使用,通过DBUS与其它应用程序通信。那么最近我的工作就是移植bluez 4.x到板子上。
Affix: NOKIA公司的协议栈,在Symbian系统上运行,具体的没找到资料
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,但到现在我没怎么听过这个协议栈的应用,难得是个烂尾楼??
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.
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。
Windows CE:微软给Windows CE开发的协议栈,但是windows ce本身也支持其它的协议栈
BlueLet:IVT公司for embedded product的清量级协议栈。
我公司开发是基于BlueMagic3的,最近呢也在研究bluez 4的移植和profile工作,后面我会再针对bluez做详细介绍。
时间有限,简单的写了下,如果各位网友知道一些协议栈的动态,或对我写的有补充,请给我留言,我会及时改正,
From: http://hi.baidu.com/9562512/blog/item/f1bcca50e7b09b6b84352464.html