蓝牙控制器
1.控制器
通常是一个物理设备,并有发送和接收装置,即能够发送或接收无线电信号,也能够将信号转换为相应的数据包。
1.1 物理层
- BR/EDR信道
采用2.4GHz的无线电,2402MHz-2480MHz,信道频宽1MHz,故有79信道。
- BLE信道
采用2.4GHz的无线电,2402MHz-2480MHz,信道频宽2MHz,故有40信道,其中3 个固定的广播通(信道编号37.38.39),37 个自适应自动调频数据通道。
1.2 链路层
主要负责广播、扫描、建立连接等,故涉及到信道,报文等概念
-
信道:广播信道、数据信道(BLE有37个),在未建立连接时使用的都是广播信道(BLE只有3个)(如:广播数据包,扫描请求包及扫描响应包),建立连接之后使用的数据通道进行通信
-
报文:广播报文及数据报文
1.2.1 链路层状态
- Standby State
就绪态,或称为空闲态,设备上电之后处于该状态,直到收到主机的命令,否则一直是就绪态
- Advertising State
广播态,发送广播报文,回应主动扫描响应
- Scanning State
扫描态,接收广播信道的报文,并监听正在广播的设备
- Initiating State
发起态,发起连接,将携带 connection request(连接请求)响应广播者
- Connection State
连接态,进入已连接状态,发起连接的设备变为 master(主机),接收连接请求的设备变为 slave(从机),故由广播态进入,如下图所示,连接态的设备只能通过断开连接进入就绪态,而不能进入其他状态,但是我们的蓝牙都断开连接后一般还是可以进入之前的广播态,是开发代码中增加了再次开启广播
1.2.2 状态角色之间关系
主机和从机工作:从机开启广播,然后主机扫描广播的从机,当从机接收到主机的扫描请求后,会向主机发送扫描回应数据。然后主机发起链接,然后开始通信。