前言
接着上一篇《蓝牙基础知识(一)》,我们继续看看蓝牙的更多的内容。
蓝牙架构
上图有三个部分:Host,HCI和Controller。
- Host: 简单理解就是主控。
- HCI:Host Controller Interface, 主机控制器接口,用于Host和Controller之间通信的接口,比如Uart,USB等。
- Controller: 简单理解就是蓝牙芯片。 举个简单的例子来理解:
现在很多Android设备,就是外挂一个蓝牙芯片,比如RK3288+AP6210。RK3288就是Host,AP6210就是Controller,它们之间通过Uart进行通信。
当然,目前有很多蓝牙芯片是一体的,就是Host和Controller在一颗芯片上的,比如CC2540。这个时候Host和Controller之间直接通过API来交互。
蓝牙地址
蓝牙设备之间要相互连接肯定是要通过地址的嘛。根据蓝牙协议,地址主要有两种类型:公共地址和随机地址。
- 公开地址
蓝牙公共地址是必须在IEEE中注册的全局固定地址。它遵循与MAC地址相同的准则,并且应为48位扩展的唯一标识符。此地址永不更改,并保证对于蓝牙设备唯一。
Company ID:由IEEE公开分配的地址部分
Company Assigned:内部分配的ID。
- 随机地址
随机地址更方便,因为它们不需要向IEEE注册。随机地址是已编程到设备中或在运行时生成的标识符。随机又分静态地址和私有地址。私有地址又分为可解析地址和不可解析地址。
我们看看静态地址的格式:
最后两位固定为1,剩余的46位由开发人员/制造商随机选择
更多随机地址相关内容可以参考蓝牙协议Vol 6, Part B
AMP控制器
从最上面的架构图中,我们看到一个AMP Controller 的东西。这个玩意是干什么用的呢?
AMP控制器也叫次控制器(Secondary Controllers), 当两个BR/EDR蓝牙设备连接建立后,AMP管理器能检测到另外一个设备的AMP管理器。当两个蓝牙设备都有AMP控制器,蓝牙核心系统提供一种机制,让数据流从主控制器迁移到次控制器上。
说简单点就是个打辅助的,这样就可以将主控制器释放出来。我们平时手机为什么能边用蓝牙听歌,还能边搜索其他蓝牙设备,跟这就有关系。
欢迎大家关注微信公众号!!