博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝牙 (一) 杂谈
阅读量:4285 次
发布时间:2019-05-27

本文共 2056 字,大约阅读时间需要 6 分钟。

蓝牙历史

1998.5,瑞典爱立信、芬兰诺基亚、日本东芝、美国IBM和英特尔公司五家著名厂商,在联合拓展短程无线通信技术的标准化活动时提出了蓝牙技术。1999年下半年,著名的业界巨头微软、moto、3COM、朗讯与蓝牙特别小组5家公司共同发起成立了蓝牙技术推广组织,从而在全球范围内掀起了一股蓝牙潮。

蓝牙解决的问题

解决的是  一些小型的设备和移动终端的互联wifi 解决的是 移动终端与网络(网关设备)互联的技术蓝牙解决的是点对点的问题,但是wifi解决的是 点到 中央的问题.

蓝牙特点

传统蓝牙特点	短距离通信(一般10m内) // 蓝牙技术利用短距离、低成本的无线连接取代了电缆连接,从而为现存的数据网络和小型的外围设备提供统一的连接		蓝牙设备工作在全球通用免费的2.4GHz的ISM(即工业、科学、医学)频段	现在拥有三种类别和四个版本	比特率已经从1Mbps发展的将近54Mbps的境界,在传输速度上似乎要与Wifi分庭抗礼	蓝牙最致命的弱点在于高功耗		一旦打开蓝牙,它就会持续进行搜索并试图与设备保持连接,这个过程的功耗是很大的。		所以蓝牙技术的未来在于如何降低功耗,同时保持高速的传输速率。低功耗蓝牙特点	蓝牙4.0支持低功耗蓝牙	耗电量极低,睡眠模式一般是4-7个uA,广播状态是1个mA以下	接入时间短		低功耗蓝牙设备匹配和接入时间比传统蓝牙大大降低,低功耗蓝牙15ms就可以匹配上。	低功耗不是协议达成,是硬件决定

蓝牙系统

蓝牙系统	天线单元  // 处理发送介质,就像i2c 的两根物理电线一样.	链路控制(硬件)单元 // 控制器,就像i2c控制器一样.	---------------------------- 上面都是硬件,下面都是软件	链路管理(软件)单元	软件(协议)单元

蓝牙类别和版本

三个类别,四个版本(还是5个?)现在蓝牙(V4.0的蓝牙)主要分三类br/edrleamp版本从 v1.0 到 v5.0 ,5个版本

在这里插入图片描述

蓝牙系统详解

  • 天线单元
全是硬件,怎么实现?
  • 链路控制(硬件)单元
全是硬件,怎么实现?
  • 链路管理单元
全是软件,是怎么实现的?
  • 蓝牙协议的实现
CSRBlueZBlueDroidBroadcom BSA
  • 图示(不包括天线单元)
纯硬件(浅绿色部分)就是蓝牙硬件模块(一般是芯片中的一个模块),下面就以蓝牙模块(硬件)代指浅绿色部分这个蓝牙模块需要驱动程序,来控制蓝牙模块(硬件)工作.这个驱动程序提供给其他软件的接口(这个接口包括硬件和软件接口)为 HCI,其他软件不会直接操作蓝牙模块,只会通过 该驱动程序,准确来说是该驱动程序提供的 HCI 来操作硬件.一般驱动程序提供的接口不是 API 吗?不是纯软件的吗?是的,但是蓝牙模块可以 单单 以模块存在,然后驱动程序跑在蓝牙模块上.如果其他软件(想要使用该驱动程序的软件)想要调用这些接口,就要看 该软件 是否和 蓝牙模块上的驱动程序是否在同一cpu上.如果是,则是纯软件接口.如果不是,那除了软件接口还需要考虑硬件接口,例如硬件接口可能是串口,可能是usb接口.Link Manager 的主要内容一般是 驱动该蓝牙模块(硬件)的 驱动程序该驱动程序一般提供什么样的软件 API1. 定义数据包结构/信道2. 发现/连接程序3. 发送/接收数据。
L2CAP	从0开始		一开始涉及的 ble 蓝牙协议只有一种 profile ,那么就不需要用到 L2CAP .		此时想再弄一个 profile ,问题就来了.			如果两个应用并发调用驱动,怎么办?显然会出现问题.			有人就说了,那应用处理吧,应用就不干了,我用你的协议,还要处理你内部的并发,这不合理			有人就说了,说的也是,那蓝牙协议栈处理吧,于是,蓝牙协议栈内部为了解决这个计算机难题,就在蓝牙协议栈中加了一层.(该层用来去并发),做出来了之后,各种好处就出来了.又增又补的,这一层的功能又多了起来.
  • profile
从0 开始		有很多应用,每种应用都要处理自己的封包,		例如 蓝牙耳机使用的 蓝牙音频协议. 		应用1 想用 蓝牙传输音频 ,对不起,蓝牙传输音频的协议没有,自己实现吧,于是,应用1实现了一套		应用2 想用 蓝牙传输音频 ,对不起,蓝牙传输音频的协议没有,自己实现吧,于是,应用2实现了一套		应用3 想用 蓝牙传输音频 ,对不起,蓝牙传输音频的协议没有,自己实现吧,于是,应用3实现了一套		...		有些人一看,得了,这么多人用蓝牙传输音频, 我能不能将一些 通用的 蓝牙传输音频 的代码抽出来,单独做出来,然后别人再实现的 这种应用的时候,直接调用不就行了.ok,于是,出来了 一种 通用的应用协议. 		然后麻烦事就来了,这些协议放哪里呢?		照旧,新增一层,这层就放到  L2CAP 和 之前的 app 层 中间吧.用于存放各种 通用应用协议虽然历史不是这么发展的,但是应该是这么理解的.

在这里插入图片描述

转载地址:http://bligi.baihongyu.com/

你可能感兴趣的文章
/proc/mtd 各个参数含义 -- linux内核
查看>>
linux nand flash常用命令
查看>>
NESSUS扫描操作指导
查看>>
C语言读取文件大小,载入文件全部内容
查看>>
C语言 static静态变量的作用
查看>>
Linux(C/C++)下的文件操作open、fopen与freopen
查看>>
C语言 文件操作的头文件
查看>>
C语言的常用库函数(dos)之四(dir.h文件下的一些函数)
查看>>
warning: jobserver unavailable: using -j1. Add `+' to parent make rule问题怎么解决
查看>>
防火墙报文转发流程
查看>>
以太坊创始人:17岁的亿万富翁养成记
查看>>
linux下IPTABLES配置详解
查看>>
关于iptables -m选项以及规则的理解
查看>>
linux系统中查看己设置iptables规则
查看>>
一些库函数的使用注意事项
查看>>
IPv6地址自动配置中的有状态(stateful)和无状态(stateless)的区别
查看>>
剑指offer系列-T19二叉树的镜像
查看>>
剑指offer系列-T20顺时针打印矩阵
查看>>
剑指offer系列-T21包含min函数的栈
查看>>
剑指offer系列-T22栈的压入、弹出序列
查看>>