蓝牙基础知识(二)

原文首发于:http://kobe-onepiece.work/archives/5128

前言

接着上一篇《蓝牙基础知识(一)》,我们继续看看蓝牙的更多的内容。

蓝牙架构

在这里插入图片描述
上图有三个部分: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控制器,蓝牙核心系统提供一种机制,让数据流从主控制器迁移到次控制器上。

说简单点就是个打辅助的,这样就可以将主控制器释放出来。我们平时手机为什么能边用蓝牙听歌,还能边搜索其他蓝牙设备,跟这就有关系。

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页