转载——蓝牙蓝牙核心技术了解(蓝牙协议架构硬件和软件笔记)

Bluetooth的系统构成

1.核心协议:BaseBand、LMP、L2CAP、SDP;2.电缆替代协议:RFCOMM;3.电话传送控制协议:TCS-Binary、AT命令集;4.选用协议:PPP、UDP/TCP/IP、OBEX、WAP、vCard、vCal、IrMC、WAE。

除上述协议层外,规范还定义了主机控制器接口(HCI),它为基带控制器、连接管理器、硬件状态和控制寄存器提供命令接口。在图1中,HCI位于L2CAP的下层,但HCI也可位于L2CAP上层。

蓝牙核心协议由SIG制定的蓝牙专用协议组成。绝大部分蓝牙设备都需要核心协议(加上无线部分),而其他协议则根据应用的需要而定。总之,电缆替代协议、电话控制协议和被采用的协议在核心协议基础上构成了面向应用的协议。

蓝牙协议栈允许采用多种方法,包括 RFCOMM 和 Object Exchange (OBEX ), 在设备之间发送和接收文件。如果想发送和接收流数据(而且想采用传统的串口应用程序,并给它加上蓝牙支持),那么 RFCOMM 更好。反过来,如果想发送对象数据以及关于负载的上下文和元数据,则 OBEX 最好。

蓝牙应用程序活动图,如下:

2.1.1  串口仿真RFCOMM介绍

找到服务,RFCOMM是通过不同的频道(channel)来提供不同的Profile的,所以需要找到要用的服务在设备上的哪个频道上,这是通过同一个软件包里的sdptool来完成的,就是SDP,服务发现协议

2.2 蓝牙profile

从3.0版本开始(据说2.1也是支持的?TBD),蓝牙才开始支持BluetoothProfile。BluetoothProfile是蓝牙设备间数据通信的无线接口规范。想要使用蓝牙无线技术,设备必须能够翻译特定蓝牙配置文件,配置文件定义了可能的应用.

SPP是基于RFCOMM的,spp 协议处于rfcomm的上层,spp的应用需走rfcomm层。如果你使用RFCOMM能够实现,那么也就不需要使用SPP,而却速度还会比SPP来做快,因为省略了采用profile的一些数据包头等。不过,还是推荐采用SPP来做,兼容性有保证,这也是为什么蓝牙本质上数据和语音的传送却出现HFP,HSP,SPP,OPP等诸多具体应用profile的原因。

每个attribute属性被UUID(通用唯一标识符)唯一标识 ,UUID是标准128-bit格式的ID用来唯一标识信息。attributes 被 ATT 格式化characteristics和services形式进行传送。

特征(Characteristics)— 一个characteristics包含一个单独的value值和0 –n个用来描述characteristic 值(value)的descriptors。一个characteristics可以被认为是一种类型的,类似于一个类。

描述符(descriptor)—descriptor是被定义的attributes,用来描述一个characteristic的值。例如,一个descriptor可以指定一个人类可读的描述中,在可接受的范围里characteristic值,或者是测量单位,用来明确characteristic的值。

如上图所示:蓝牙设备可以包括多个Profile,一个Profile中有多个Service,一个Service中有多个Characteristic,一个Characteristic中包括一个value和多个Descriptor。

通用属性规范(GATT)—GATTprofile是一个通用规范用于在BLE链路发送和接收被称为“属性(attributes)”的数据片。目前所有的低功耗应用 profile都是基于GATT。

蓝牙SIG定义了许多profile用于低功耗设备。Profile(配置文件)是一个规范,规范了设备如何工作在一个特定的应用场景。注意:一个设备可以实现多个profile。例如,一个设备可以包含一个心脏监测仪和电池电平检测器。

主从机连接建立过程:

低功耗蓝牙模块主透传协议是针对低功耗蓝牙模块从透传协议设计的,通过本协议模块可替代手机设备与从透传协议模块连接,实现透传功能或直驱控制功能。此协议模块可用作从透传协议模块开发过程中的辅助工具。

BLE主透传协议模块(以下简称MTTM)可以工作在透传模式(TTM)或指令模式(CM)。

MTTM上电启动后,处于待机模式(SBM),此时处于空闲状态,无睡眠,需要用户通过AT指令控制模块连接从设备。在成功与从设备建立链接后,MTTM会自动查找从设备的透传通道,如果从设备属于BLE从透传协议模块(以下简称STTM),MTTM默认进入透传模式,否则默认进入指令模式。

透传模式下,用户CPU可以通过模块的通用串口与STTM进行双向通讯。从MTTM串口输入的数据将转发到STTM,并从STTM的串口输出;从STTM输入的数据将转发到MTTM,并从MTTM的串口输出,从而实现透明传输功能,用户数据的具体含义由上层应用程序自行定义。

透传中数据的格式也是profile,或蓝牙标准profile或自定义simple profile。基本结构依然是:

服务和特征都是用UUID来唯一标识的,UUID的概念如果不清楚请自行google,国际蓝牙组织为一些很典型的设备(比如测量心跳和血压的设备)规定了标准的service UUID(特征的UUID比较多,这里就不列举了)

iOS 有两个框架支持蓝牙与外设连接。

一个是 ExternalAccessory。从ios3.0就开始支持,也是在iphone4s出来之前用的比较多的一种模式,但是它有个不好的地方,External Accessory需要拿到苹果公司的MFI认证。

另一个框架则是本文要介绍的CoreBluetooth,在蓝牙4.0出来之后(注意,硬件上要4s以上,系统要ios6以上才能支持4.0),苹果开放了BLE通道,专门用于与BLE设备通讯(因为它的API都是基于BLE的)。这个不需要MFI,并且现在很多蓝牙设备都支持4.0,所以也是在IOS比较推荐的一种开发方法。现CoreBluetooth在的开发几乎全部基于该框架,本节只介绍CoreBluetooth。

1,CoreBluetooth介绍

如果你要编程的设备是手机的central,那么你大部分用到peripheral API。反之亦然,设备是peripheral,iphone手机是central,所以将大部分使用central API。使用peripheral编程的例子也有很多,比如像用一个ipad和一个iphone通讯,ipad可以认为是central,iphone端是peripheral,这种情况下在iphone端就要使用上图右边部分的类来开发了。

作为一个中心(central)要实现完整的通讯,一般要经过这样几个步骤:

2, 设备ID描述DID

每个与苹果设备兼容的蓝牙接入都必须:支持蓝牙设备ID描述,1.3版本或者更高;使用蓝牙SIG分配的Assigned Numbers文档中的公司标识作为他的Vendor ID值,也就是VID,如果生产商没有蓝牙SIG公司标识,那么蓝牙HID描述接入可能会使用USB Implementers Forum分配的VID;使用他的VID值来标识最终的产品生产商;使用版本值来唯一标识软件的版本;使用ProductID值唯一标识产品。Device ID描述使得苹果产品能够识别远程的蓝牙接入,该信息可以用来在与远程接入交互的时候连接蓝牙描述间的交替互操作。因此Device ID中的信息记录非常重要。

理想情况下,这两个设备应该有不同的产品ID。但是,当他们拥有完全相同的硬件、软件和特性的时候拥有相同的ProductID也是可以允许的。如果他们有任何的不同,就都应该有不同的Product ID。

3,IOS的蓝牙低功耗

蓝牙4.0标准引入了蓝牙低功耗,一种针对有限电池资源的蓝牙接入的无线技术。如果支持蓝牙低功耗的话,接入点需要支持下面的这些特性。(这里更多的是蓝牙芯片商要做的事情)

蓝牙接入需要实现蓝牙4.0标准中定义的外围角色

蓝牙接入需要使用如下广告PDU中的一个:ADV_IND;ADV_NOCONN_IND;ADV_SCAN_IND。其中ADV_DIRECT_IND不推荐使用。

由蓝牙接入发送的广告信息应该至少包含蓝牙4.0标准中包含的如下信息:Flags;TX Power Level;Local Name;Services。如果需要降低电量消耗或者并不是所有的广告数据都适合放入到广告PDU中的时候,接入点可能将Local Name和TX Power Level数据方知道SCAN_RSP PDU中。需要注意的是根据它的状态,苹果产品可能不会总是执行激活扫描。主要的服务应该总是放在广告PDU中进行广告。次要的服务不应该进行广告。对于接入点不重要的服务信息可能会因为广告PDU中的空间不足而被忽略。广告数据和SCAN_RSP PDU中的扫描响应数据应该遵循蓝牙4.0标准中的格式。

蓝牙接入的广告间隔应该慎重考虑,因为他会影响到发现和连接的性能。对于低功耗的接入,电池资源也应该被考虑在内。为了能够被苹果产品发现,蓝牙接入应该首先使用推荐的广告间隔20ms,并持续至少30秒。如果在这30秒内没有被发现,那么接入点可能会选择节省电池电量然后增加广告间隔,苹果推荐使用如下依次延长的事件间隔来发现蓝牙接入点:645 ms;768 ms;961 ms;1065 ms;1294 ms

蓝牙接入负责用来LE连接的连接参数。接入点需要请求合适的连接参数来在合适的时候发送一个L2CAP连接参数跟新请求。如果他没有符合如下规则,那么连接参数请求可能会被拒绝:Interval Max * (Slave Latency + 1) ≤ 2 seconds;Interval Min ≥ 20 ms;Interval Min + 20 ms ≤ Interval Max;Slave Latency ≤ 4;connSupervisionTimeout ≤ 6 seconds以及Interval Max * (Slave Latency + 1) * 3 < connSupervisionTimeout。苹果设备不会读取或者使用Peripheral Preferred Connection Parameters特性中的参数。

蓝牙接入应该在任何情况下都能够满足Resovable Private Address。因为私隐方面的考虑,苹果设备将会使用蓝牙4.0标准中定义的随机设备地址。

蓝牙接入不需要请求特殊的授权,如配对、认证或加密等来发现服务和特性。只有在获取特性值或者描述值的时候可能会需要特殊的授权。9

蓝牙接入不应该请求配对。如果处于安全考虑,接入点需要与Central建立绑定关系,外围可以使用Insufficient Authentication错误码在必要的时候拒绝ATT请求。因此苹果设备可能会需要按照既定的安流程程来执行过程。配对可能会需要基于苹果产品的用户认证。

通用接入描述服务:蓝牙接入应该实现按照蓝牙标准4.0中的Device Name特性

通用属性描述服务:只有当接入有能力在生命周期内更改他的服务的时候,该接入点才需要实现Service Changed特性。苹果产品可以使用Service Changed服务特性来决定它是否可以使用之前读取的或者缓存的来自设备的信息。

设备信息服务:蓝牙接入应该实现设备信息服务。服务的UUID不应该包含在广告数据当中。如下的特性需要被支持:Manufacturer Name String;Model Number String;Firmware Revision String;Software Revision String

4,IOS APP开发 的蓝牙操纵API

手机APP要想获得蓝牙设备的一些额外的信息如电量或者操作蓝牙设备,必须通过IOS API。那么IOS底层必然有某种方式来与蓝牙设备交互。 那么电量通过什么来读写呢?自定义 service characteristic?

任何免提的蓝牙耳机都可以在iOS设备的状态栏中显示一个用来标识他电池电量的图标。这个特性被所有的iOS设备所支持,包括iPhone、iPod和iPad。耳机的蓝牙知识通过两个iOS蓝牙HFP AT命令:HFP Command AT+XAPL

最后叮嘱:大家有好的的蓝牙通信的资料链接在下面留言分享下~多谢♪(^∇^*)

THE END
0.预售¥19.99 已售114 剩余26 【预售-8月5日配送】仟幻开放式运动蓝牙耳机VV4(白色)/1件 蓝牙5.3/HIFI原声音效/开放气传导喇叭/立体环绕声/持久续航 到店 叼到家厦门站 服务到店自提 · 收货后结算 选择 规格 叼到家厦门站 关注店铺 进店逛逛 商品说明jvzquC41vwodc|mkgt4zq~cp0ipo8uc{1}teptqfueptmjtAcrjc|B4qhhbv>oilqsic>
1.头条文章​今晚20:00,让我们一起狂欢吧!祝大家好运! 406、极米NEW Z6X投影仪 ▼口令↓ 1(tnb0XtpZx2N):/ 405、理肤泉水杨酸黑膜 ▼口令↓ 1(1NBCXtpZPAO):/ 404、娇韵诗颈霜 ▼口令↓ 1(TwIrXtpZi3J):/ jvzquC41ogjjc7|gkdu/ew4ctvodnnDkf?842B9268?56<>:47987=;8
2.的平面.已知A.B.C三点的电势分别为2V.4V.6V.则D点的电势为4VVm,场强方向平行于正方形所在的平面,已知A、B、C三点的电势分别为2V、4V、6V,则D点的电势为4VV,匀强电场的场强为2V/m. 试题答案 在线课程 分析 连接AC,在AC上找出与B点等电势点,作出等势线,再过D作出等势线,在AC线上找出与D等势点,再确定D点的电势.根据电场线与等势面垂直垂直画出电场线,根据jvzq<84yyy422:5lkcpjcx3eqo5h|€q1ujoukhnfa8hdgl8:89k87k8egh746o583hj6c>8;h
3.4Vv4路CC终极玩法解析,掌握核心技巧轻松获胜,成为团队最强战力情人网名大全2 qq情侣网名大全 1、多年之后你还爱我吗i | 多年之后我爱你如初i 2、温柔开朗淑 | 高冷闷骚萌 3、把枪藏进风衣 | 把刀藏进衣袖 4、忘川零星泪点 | 彼岸花开不得见 5、树深时见鹿 | 梦醒时见你 6、时光带走青春无知 | 留下一路沧桑 7、迷路十七年# | 而你在身边 8、jvzq<84ycr4ky{q0ep5dq€4424;23:634:4ivv
4.VV4不入耳运动蓝牙耳机骨传导开放式无线耳机立体声长续航便携式义乌国际商贸城二区40门3楼8街18004A 详细信息 品牌:博力神 功能:超长续航,支持音乐 蓝牙协议:5.0 使用方式:耳塞式 是否单双耳:双边立体声 颜色:白色 类型:收纳款【不入耳蓝牙耳机】 模具类型:其它 芯片类型:无 续航时间:4-8小时(小时) 更新时间:2024-05-23 15:15:19jvzquC41yy}/{r|wiq4dqv4rtqjve}4fgvgjn8>824?32==0jvsm
5.4Vv4路CC全新升级震撼来袭,性能突破,智能操控,畅享极致驾乘体验主角穿越平行世界唱歌的小说有哪些?,主角穿越至平行世界并唱歌的小说包括:1.《从天后演唱会开始的文娱之王》:主角来到一个全新的世界,以多重身份成为文娱界的传奇。他创作并演绎了诸如《后来》、《泡沫》、《十年》、《晴天》、《七里香》和《真的爱你》等深入人心的音乐作品。同时,他还参与执导和制作了《还珠格jvzq<84j70zjcw~cpzpll7hp1jkbt}4332?03=>83;e46@880jzn
6.头条文章12、SENNHEISER/森海塞尔真无线蓝牙耳机 长按复制以下□令 打开淘bao即可查看bao贝详情 1(6lJ2XH2W2kp):/ ↓↓↓ 13、FENTY BEAUTY蕾哈娜星钻高光粉饼 长按复制以下□令 打开淘bao即可查看bao贝详情 1(rUA7XH2WgRf):/ ↓↓↓ 14、颜朗之琦化妆刷套刷 长按复制以下□令 打开淘bao即可查看bao贝详情 1(9KejvzquC41o0}fkkt0ep5uvjwvkerf1y4ujq}@kmB452?52=;;84<:7@<;34=:8
7.4块钱一个的麦芽糖,你们觉得怎么样呢?你说这个世界,有没有可能变成一个大号的印度呢? 热点大放送 24跟贴 中蒙俄天然气大单落地,500亿方能源动脉贯通,亚洲定价权在移位 亚蓓搞笑 1跟贴 深度解析大漂亮还能扛多久? 蓝飘飘fly 1跟贴 加沙惨剧或再上演,以色列再对盟国出手,美严厉警告:简直愚蠢! 铁甲雄狮 jvzquC41o07757hqo1|0xrigq1\W3ALLIHR/j}rn
8.薇娅10月20日直播预告清单!387、华为 蓝牙音箱 ▼口令↓ 1¥bso5XtgJyYg¥:/ .. 386、麦趣尔新疆纯牛奶 ▼口令↓ 1(btRDXt80xp9):/ .. 385、永璞闪萃咖啡 ▼口令↓ 1(T7ZvXt8Zqg1jvzquC41ogjjc7|gkdu/ew4ctvodnnDkf?842B9268?5396474;18<93
9.吃一个月玉米能瘦多少病情分析:玉米中的大量镁元素可以增加肠壁的蠕动,另外它可以促进机体的废物排泄,而且它还含有多种维生素,矿物质和亚硫酸经常使用对人体是有很大好处的吃一个月的玉米能瘦多少斤是因人而异的,有的人能瘦5~10斤左右,他虽然能使身体瘦下来,但是还会造成营养不均衡,造成营养不良的现象发生,另外还会引起其他的疾病发生jvzquC41okv/rrsiiwumx7hqo1gtm8ssxx{py=3jvor
10.4月1日:李佳琦、薇娅、烈儿宝贝、雪梨直播预告爆款清单4.1(剧透剧透口令: ¥moogXbxvvj9¥ 29、资生堂红腰子精华 剧透口令: ¥1409XbC9YeZ¥ * 四、李佳琦4月1日直播预告清单(樱花季专场) 开播时间:20:15,开播前1-2个小时更新剧透口令 ① 剧透口令更新后,提前加🛒,不用券的,上链接前5-60分钟会自动变价② 详情券:商品下拉到【宝贝详情】领券,部分上链接前5-20分钟jvzquC41yy}/fxzdcp4dqv4pqvk09B=9:67:58
11.为什么月经期前一个星期痛经?出现月经提前一个星期,而且存在痛经的情况下,有可能是月经失调导致的,比如精神紧张,压力大,劳累,熬夜,吃了过多辛辣、刺激性、凉的食物,都有可能导致月经出现这种情况,可以多喝热的姜糖水或者红糖水,有利于经血的排出,缓解痛经的症状。如果月经持续的时间与月经量jvzquC41yy}/orfqujuv0wjv1cxuklqg1{:rO€rl{X\Xpb{Z;0nuou
12.vv4*95电力电缆「电力电缆」vv4*95电力电缆 110千伏以下等级交联聚乙烯电力电缆已有取代油浸纸绝缘电力电缆的趋势。此外,还可按电流制分为交流电缆和直流电缆。 超高压电缆:(275~800千伏)。 (2)机械机能:电缆的机械强度、伸长率,绝缘护层材料的机械机能,阻燃机能,绝缘老化寿命等。自从开发出不滴流浸纸绝缘后,解决了落差限制题目,使油浸纸绝缘jvzquC41o0sbmnuqnq4dqv4rtqjve}4322949A8;6;
13.从此以后一个人南宫嘉骏高音质在线试听从此以后一个人 喜怒哀乐再没有人心疼 喧闹的红尘中无处安身 只有那孤单单的泪痕 爱着爱着就要离分 所有熟悉的都变陌生 那些爱的画面成致命伤痕 撕心的疼在心底扎根 该遗憾还是该悔恨 忍痛踏上孤独的旅程 那些甜蜜回忆如今多残忍 那感觉让人痛不欲生 jvzq<84v50qvixz0eqs0uxsi0jznnHnf?6K:SP7hzX\3
14.爱就一个字(弹唱版)李巍V仔高音质在线试听爱就一个字 拨开天空的乌云 像蓝丝绒一样美丽 我为你翻山越岭 却无心看风景 我想你身不由己 每个念头有新的梦境 但愿你没忘记 我永远保护你 不管风雨的打击全心全意 两个人相互辉映 光芒胜过夜晚繁星 我为你翻山越岭 却无心看风景 我想你鼓足勇气 凭爱的地图散播讯息 但愿你没忘记 我永远保护你 从此不必再流浪找寻 爱就一个字 我只说一jvzq<84v30qvixz0eqs0uxsi0jznnHnf?4L4wr9dzX\4
15.PS2模拟器4K去雾化重影真高清还您一个通透不一样的铁拳5简单zwa123斗鱼视频,zwa123精彩视频内容等你来看jvzquC41x0jpw‚z0eqs0uqty12€[XUqFqRrYX9G4
16.cad一键标注闭合区域lispCAD快捷键大全,你值得学会!ALT+NL 线性标注 ALT+VV4 快速创建四个视口 ALT+MUP 提取轮廓 Ctrl+B: 栅格捕捉模式控制(F9) Ctrl+C: 将选择的对象复制到剪切板上 Ctrl+F: 控制是否实现对象自动捕捉(F3) Ctrl+G: 栅格显示模式控制(F7) Ctrl+J: 重复执行上一步命令 Ctrl+K: 超级链接 jvzquC41dnuh0lxfp0tfv8|gkzooa=5223?798ftvkimg8igvcomu8634578::>
17.尸骨无存一个小哑巴高音质在线试听尸骨无存歌词歌曲下载酷狗音乐为您提供由一个小哑巴演唱的高清音质无损尸骨无存mp3在线听,听尸骨无存,只来酷狗音乐!jvzquC41yy}/m~lqw0ipo8rkzuuoi89xx:;ig;3jvor@h{todcoew
18.《一个连环杀手》高清电影剧情简介 :世界上有4.3亿的手机用户,全世界每分钟会接到6万个电话。这些电话都没有已知的源头,没有数字,不能追溯。有些人认为,这些电话都是精神试图连接到我们的世界!3G是山姆Arora和希娜,一对夫妇的可怕的故事,谁成为一系列事件的受害者,山姆买了一个3G二手机在斐济群岛在度假。一天晚上,他们得到一个幻影的召jvzquC41f{4tq|t0eqs0ox{kg1s{w€~5m9nb{}lodznfg>kq7{<4c;q7z€h{={xs0nuou
19.OPPOEncoAir4真无线蓝牙耳机,159元入手!OPPO Enco Air4真无线蓝牙耳机,159元入手!ZOL中关村在线 中关村在线官方账号 01.2619:15 关注 相关新闻OPPO Find X9使用体验,标准版全面进化! 145App专享 千元内TWS耳机该选谁?OPPO/小米/苹果耳机对比评测! 0App专享vivo X300测评:6.31英寸小屏旗舰配2亿主摄潜望 4323App专享 华为FreeBuds Pro 5获星闪认证,突破jvzquC41hktbplj0uktb0ls1vgii1;547/62/;;1fgzbku2kpgnjh{;89<::@3f0jznn
20.360导航网友热搜换一换 1春节假期倒计时100天2护士因太忙杀害10人3耿爽霸气回怼美代表4多个鱼场用辣椒养鱼5日本熊害已逼近东京6直播绑架4人被行拘7气象局大地磁暴预警8法大学生被骗近60万9路边黄金千万别捡10四川中小学春秋假3天11沙僧刘大刚去世12北京下雪了13醋厂靠玄学出圈14六小龄童悼念刘大刚15寿司郎收5元服务费16美企裁员jvzquC41jcu/5?50ep5@pmw?3(yjfFOH[Kii[?|xx6
21.张学友回应“地下恋情”,自曝和罗美薇曾分手一个星期张学友回应“地下恋情”,自曝和罗美薇曾分手一个星期推荐视频 05:39 打开APP阅读 实拍全新坦克400:新三大件配齐,硬派与家用不冲突00:38 打开APP阅读 俄军无人机撒下死亡之卵,乌军老兵持铁锹清理,手动引爆销毁 03:03 打开APP阅读 为了逼以色列交出解药,救回迈沙阿勒,约旦国王使出杀手锏 03:00 打开APP阅读 王夫之jvzquC41x0oggwl0eqs0e8{1x263mP[XV|92VzpOQ/31qoWNvK;T:ZhRMHvnDcT2GRV5|}ryaa
22.韩庚发文祝卢靖姗40岁生日快乐,两人结婚6年育有一女,一个月前关注jvzquC41kunbtn3khgth0lto1e5t1528Zs./TS\7y:{[