为了把蓝牙开头第一篇写的老少咸宜妇孺皆懂童叟无欺,构思了三天也没有动笔,另外一个原因是我不准备用笔来写。

用过手机的人都用过蓝牙,蓝牙的普及程度可以见一斑。但想想看,从你手机买来到不小心掉进马桶(其实是想换新机故意的)之前,你一共用过几次蓝牙?所以蓝牙是一个既大众又神秘,既普及又无人问津的技术。直到特别兴趣小组(SIG,Special Interest Group)推出4.0版本的蓝牙标准,一切都改变了。BT4.0 加入了被称作BLE(Bluetooth Low Energy)的低功耗蓝牙。BLE有操作简单、连接快、功耗低等优点,填补了国内空白(这是儿时看科技新闻时一定能听到的一句话,必须用上),因此蓝牙会成为一个更好更普遍更实用的技术。

这个专题主要介绍蓝牙的工作原理,更侧重协议方面。你在这里看不到任何代码以及和操作系统或者驱动相关的东西。文章将分为三个部分:第一部分:预备知识,就是这一篇,如果你不做蓝牙研发甚至只单纯为了科普没事可以在朋友面前吹吹牛,看完这篇足够了。第二部分:蓝牙控制器,包括基带(BB,Baseband)和链路控制协议(LMP,Link Manage Protocol),如果你只做Host端的开发这一部分可以一带而过,微微一笑。第三部分:HCI+L2CAP,主控接口+逻辑链路控制和适配协议(全拼太长找度娘),如果用单芯片方案(Host+Controler二合一)可以不看HCI。第四部分,上层Profiles,每个Profile都对应不同应用所以是可选的,如果你做手机协议栈或类似的东西,恭喜你!

1.为啥叫蓝牙?

蓝牙就是蓝色的牙齿,这绝对是一句废话。想当年爱立信还没唆你,诺基亚还不是神器,苹果还不爱疯,三星也还没耍棒子。这四个小学生(98年)搞了个兴趣小组来研究短距离无线通信。第一件事就是要起个好名字,就有人就想到丹麦有个国王极爱吃蓝莓导致牙都是蓝色的,人送诨名布鲁图斯。还有balabala一大堆美好的寓意,就借用这个外号吧。(度娘居然说蓝色牙龈,笑的我露出了粉红色的牙花子!)

至于图标一幅图就明白啦,不过关于这个H,原谅我的无知,我觉得更像个天线,有木有!射频怎能少了天线!

2.蓝牙是什么?

蓝牙是一种无线通信技术,也可以说是一种无线通信协议。分为经典蓝牙(Classic Bluetooth)和低功耗蓝牙(Bluetooth Low Energy)两种。他们使用了射频(RF,RadioFrequency)技术,工作在2.4GHz频段上。

经典蓝牙最初设计的目的是为了省去电脑周围的各种数据线,但直到今天也没有达到这个目标。操作复杂,搜索慢,费电,有时需要外接适配器是限制经典蓝牙发展的主要原因。经典蓝牙的经典应用主要有:蓝牙鼠标使用在笔记本上,蓝牙键盘使用在平板电脑上,蓝牙耳机使用在手机上,两支手机传文件(低像素照片还传的快点)传电话本。说了这么多蓝牙的坏话那还学这个技术干啥!别急,告诉你两个原因:1,经典蓝牙是爪机标配,在垃圾的手机都要配上蓝牙(为了显示身份?),所以蓝牙芯片的出货量不会少于手机基带芯片的出货量。2,低功耗蓝牙改进了经典蓝牙的缺点,成为高端智能手机的标配,并且把应用场合拓展到了一个极大的范围,只要你能想到的应用基本上BLE都能完成。举些例子吧,防丢器,计步器,健身的各种配件等等,可以成为智能手机的延伸或者扩展的接口,只要你能想到的传感器都可以通过BLE变成手机配件。

3.怎么用蓝牙?

只说下经典蓝牙操作方法,因为BLE基本上不用操作,上电就能通信。

(1)搜索:将蓝牙设备开到可发现状态(Discoverable),这里的设备指的是从设备,一般是耳机,键盘,鼠标等。然后让主设备开始搜索。搜索需要一个过程,一般是秒级的,别说一秒很短,那也是人能感受到的时间,对于处理器来说秒简直是天荒地老了,sleepUs()六个零!有代码出现?!搜到以后就可以进行下一步了。

(2)配对:配对是一个很坑爹的词。有次一个测试team的同事把设备名改成一头老母猪,然后搜到了我的手机按下了配对键,你知道我在我的手机屏幕上看到了什么?一头老母猪请求与您配对,同意?同意你妹!强烈建议有关部门封杀这个词。坑爹的不光是用词不雅,配对过程也极其复杂。对于不同应用操作甚至不同:电脑配键盘时,屏幕上会出现6个数字让你用键盘输入,输完了然后怎么没反应,就不告诉你还要按回车啊笨蛋;手机配耳机时,耳机上毛都没显示就让用户输入配对码,谁知到配对码是啥呀,就不告诉你大部分是四个0啊笨蛋,(一次一只山寨耳机难住了我们测试组的同事,一天都没配上对,最后一个财迷按了四个8竟然顺利配对了);手机配手机时,两个人需要先协商好配对码然后分别在自己手机上输入再确认,如果两个人都第一次用肯定会很困惑,这让我们输啥呀,就不告诉你输啥都行只要两边一样就行啊笨蛋。不过在2.1版本之后加入了SSP(Security Simple Peidui Pairing),使得配对简单了不少,很多时候用户不用操作或者只需按下确定。

(3)使用:配对之后就豁然开朗了,键盘打开电源就能用,手机传文件只要在列表里选对方手机就能传,只有耳机复杂点,因为耳机UI有限,一般就一个按键一个灯,按键怎么按灯怎么闪是啥意思就得仔细看说明书了。有一点千万记住,不要轻易从配对列表了删掉设备,因为还得配对啊笨蛋!

4.准备好了?

如果认证看完上面这些东西,相信你肯定没准备好。下面来一些干料!

  • 基于蓝牙的局域网标准为IEEE802.15.1(很多人面试的时候都问这问题,不知道有啥意义)。
  • 蓝牙可以传输同步语音和异步数据。
  • 传输速率为1Mbps,EDR(Enhanced Data Rate,BT2.0 and later)可以达到2-3Mbps。
  • 蓝牙的射频(RF,Radio Frequency)输出功率分为三个类别:Class 3 == 0dBm,Class 2 == 4dBm, Class 1 == 20dBm。这里说的都是最大输出功率。
  • dBm(dB relative to milliwatt),公式列在这里 (dBm) = 10log(mW),0dBm对应1mW,4dBm对应2.5mW,20dBm对应100mW。
  • 蓝牙接收器的灵敏度(Sensitivity)要求大于-70dBm。
  • (A设备发射器的输出功率) - (路径损耗) >= (B设备接收器的灵敏度),满足前面这个公式时B才能收到A的射频信号。这几个参数就是决定最大传输距离的关键。
  • 一般来说10米空气的路径损耗为70dBm,所以两个输出功率为0dBm灵敏度为-70dBm的设备之间的最大传输距离为10m。
  • 不难看出如果想通过单方面增加天赋来提高传输距离,只给输出功率加天赋点是不够的,灵敏度会成为你的软肋。反之亦然。
  • 蓝牙基于2.4GHz频段传输。经典蓝牙从2402MHz到2480MHz平均分为79个频道。BLE的频道少一些,共有40个频道。这让BLE有了一些优势,以后再说。
  • 经典蓝牙在搜索(Inquiry)和尝试连接(Page)时会以固定的间隔和固定的序列进行跳频。在连接建立后master会生成一个伪随机序列,双方以固定的时间和该序列跳频。之所以称之为伪随机是因为这个序列是会重复会回到原点有周期性的,只是这个周期很大。
  • 后面会详细的将跳频,跳频的主要作用有:抗干扰和提高安全性。
  • 目前蓝牙的硬件架构有两种Host+Controller 和 Single Chip。
  • 前一种的优势是明确分工,Controller控制链路而Host处理上层协议。这样方便和简化了双方的开发:Host只需要简单的HCI命令就可以使Controller建立并维持蓝牙连接,而自己则可以专心处理上层协议和应用层;Controller只需要处理HCI命令来建立和维持连接并不需要关系上层在做什么事情。
  • 后一种的优势在于节约成本。
  • 下面这张图就是Host-Controller架构:(我手贱加了一些红红蓝蓝的注释)
  • 下面这是基于Host-Controller架构经典蓝牙协议栈的结构,这是很重要的一张图,之后的章节基本上都要先从这幅图开始:
(如需转载或引用此文章请标明作者和出处,未经同意禁止用于任何商业用途)

享受蓝牙(一): 开始享受相关推荐

  1. 学会享受寂寞,才能享受爱情

    每个人生下来就在和"与世隔绝"作斗争,所以我们害怕寂寞,需要同伴,甚至渴望爱情. 实际上,爱情的作用在于:把一个人牢牢的绑在身边,让Ta陪伴自己.在一时或一世间,忘记寂寞. 所以, ...

  2. 新晋图灵奖得主Jeff Ullman受质疑,反对者:他享受了不该享受的荣誉

    他写出了传世的经典教材「龙书」,却因为出格的言论招来了争议. >>>> 几天前,一年一度的图灵奖刚刚揭晓,经典教材<编译原理>的作者 Alfred Vaino Ah ...

  3. 在躁动的秋天里 努力享受一份宁静

    在躁动的秋天里 努力享受一份宁静           享受宁静,淡泊人生:凡尘俗事,皆抛九天.<?xml:namespace prefix = o ns = "urn:schemas- ...

  4. 增值税合理税筹,享受政策税收奖励返还,高达85%!

    <财税小喇叭>专注于园区招商,利用地方性税收优惠政策助力企业减税降费! 在国家税法的监管下,在税务系统逐步完善的情况下,企业增值税税负该如何在社会经济环境如此萧条的背景下长久的生存发展? ...

  5. 蓝牙也宽带 诺基亚3230蓝牙共享宽带教程(内网用户设置或网关无响应的解决)

    如自己家里只有一台电脑,却有很多人争着要用,怎么办呢? 手机里有软件要连网更新,但又心疼昂贵的GPRS费用,怎么办呢? 想躺在床上和朋友们QQ聊天,但总抱着笔记本很累,怎么办呢? 用WI-FI无线上网 ...

  6. 台式计算机找不到蓝牙发射器,台式机没有蓝牙功能,怎么连接蓝牙设备呢?

    原标题:台式机没有蓝牙功能,怎么连接蓝牙设备呢? 后台经常有小伙伴提问,小泽,我的台式机电脑没有蓝牙功能,但是想连接蓝牙音箱.蓝牙耳机怎么办?其实很简单,用一个蓝牙适配器就可以搞定! 1. 蓝牙适配器 ...

  7. 蓝牙1.1~5.0不同版本特性简介

    下面对现阶段主要版本蓝牙技术的特性做一个详细的介绍: 1.版本1.1: 传输率约在748~810kb/s,因是早期设计,容易受到同频率之间的类似通信产品干扰,影响通讯质量.这个初始版本支持Stereo ...

  8. bootstrap 悬浮固定_开箱测评|悬浮歌词蓝牙音箱,视听享受!

    前两天买的音箱终于到手了,家里搬家兜兜转转还是入了这个音箱,几乎把市场所有音箱都挑了个遍,还是抵不住MORRORART的颜值冲击,导致音箱实体物到了害怕期待太高,但是MORROR ART 带来的惊喜大 ...

  9. 200块享受高音质TWS蓝牙音乐

    200块TWS蓝牙耳机享受高音质音乐 背景 什么是真TWS蓝牙耳机? 200元以下享用真TWS蓝牙耳机必备条件 万花丛 一点红 如何花200块又能享受高品质音乐呢 升级Android8.0然后刷机(最 ...

  10. 安卓蓝牙键盘切换输入法_超薄无线蓝牙双模罗技K580键盘,自由切换享受打字快乐...

    平时我们在工作时候,往往会受到有线键盘的束缚,由于有线键盘的线条长度有限,可使用的范围也有了一定的限制,十分影响到日常生活中工作的方便,导致降低工作效率,要是想要很好的解决这一问题,那么无线键盘在这时 ...

最新文章

  1. Jeff Dean:我们写了一份「稀疏模型设计指南」,请查收
  2. Redis 与 MQ 的区别
  3. Android -- 带你从源码角度领悟Dagger2入门到放弃(一)
  4. SAP Cloud for Customer ABSL的一些优化
  5. 计算机组装选择题,计算机组装之组装整机题
  6. mtu设置失败_Oracle RAC该调整网卡MTU值
  7. 敏捷系列情景剧 | 如何“正确”开每日站会
  8. js控制分页打印、打印分页示例
  9. 卫星导航信号结构变化的过去,现在和未来
  10. win7计算机远程桌面连接,Win 7连向Win7系统远程桌面连接设置
  11. mysql身份证来算年龄_MySQL 根据身份证出生年月计算年龄户籍地性别
  12. 1068 万绿丛中一点红(JAVA)
  13. 文字跳跃率与图片跳跃率
  14. Kafka其实就是个“篮子”
  15. Java封装和多态作业
  16. 2022年食盐市场现状
  17. ARIMA时间序列与LSTM神经网络的PK
  18. 小孔成像实验探究的软件_转载:探究小孔成像实验
  19. BZOJ 4079 [Wf2014] Pachinko
  20. android 解锁图案,Android开发中的图案解锁

热门文章

  1. Gos —— 实现系统调用
  2. 【特征提取】|TSE
  3. Maximum sum on a torus UVA - 10827
  4. java 位运算取8位_5巨星生涯全明星队友:乔丹2位,科比8位,那詹姆斯呢?
  5. 美国高防服务器亿速云,亿速云香港高防裸金属服务器上线,更强悍的计算性能,更安全的DDoS攻击防护...
  6. android MediaPlayer SurfaceView 网络视频播放器
  7. Python快速读取超大文件
  8. 电驴服务器软性文件,电驴服务器.doc
  9. v2ex站长专访 - 100offer专访Livid:不仅仅是V站站长
  10. 数据安全建设的准绳和参考标准