GAP概述
GAP是其他所有应用框架的基础。两个蓝牙设备建立通信时必要的操作有:设备的发现、链路的建立和配置以及安全性设置。
GAP蓝牙用户接口(UI)的相关术语
1.蓝牙用户接口(UI)---- 蓝牙用户接口指的是蓝牙设备上向用户显示蓝牙相关术语和参数的名称、取值和数字表示的地方(如显示设备、对话框、菜单等)。
2.蓝牙设备名称 ---- 蓝牙设备名称是能够为用户自然语言表述的用户界面友好的名称,如“我的蓝牙”。蓝牙设备名称是以响应 LMP_Name_Req PDU 的形式返回给请求方设备的。
3.蓝牙设备地址(BD_ADDR) ---- 基带蓝牙设备地址表示为48bit的二进制序列,在UI处的蓝牙BD_ADDR显示为十六进制数。
4.蓝牙个人识别号码(PIN)---- PIN是蓝牙安全的关键,用于蓝牙设备之间的鉴权。
5.蓝牙设备类(CoD)两个蓝牙初次见面时,可以通知对方自己的设备类型与提供的服务。
GAP连接模式
1.可发现模式 ---- 是指蓝牙设备将会响应远端设备查询请求的模式
1)通用可发现模式
处于该模式下的设备使用通用查询接入码(GIAC)进入查询扫描,它能够响应其他设备对他的查询,使其能够被发现。
2)受限可发现模式
处于该模式下的设备使用受限查询接入码(LIAC)进入查询扫描,他仅仅能够响应包含LIAC查询信息的设备对他的查询。
3)不可发现模式
处于该模式下的设备不能响应其他设备对他的查询。
2.可连接模式 ---- 可连接模式是指一个设备处于可以与其他设备建立连接的状态。
3.匹配模式 ---- 一个蓝牙允许其他蓝牙设备通过鉴权认证进行鉴权与认证就称为“匹配”,此时该设备处于匹配状态。
GAP空闲模式
空闲模式是指蓝牙设备处于待连接状态。
1.通用查询
通用查询的目的时获取通信范围处于可发现模式(包括通用可发现模式和受限可发现模式)的设备蓝牙地址、时钟、设备类和使用的呼叫扫描模式等信息。
2.受限查询
受限查询的目的是用来发现那些处于受限可发现模式的蓝牙设备。
3.名字发现
名字发现的目的是向设备提供可连接的蓝牙设备名字。名字发现通过蓝牙设备地址来确定请求的目标。
4.设备匹配
设备匹配的目的是在两个蓝牙设备之间建立基于共同链路密钥的连接。包括通用匹配和专用匹配。
5.设备发现
设备发现的目的是为了向设备发现的发起者提供可发现设备的蓝牙地址、时钟、设备类型、使用的呼叫扫描模式以及蓝牙设备名称。
GAP连接建立
GAP定义了三种连接建立进度:链路的建立、信道的建立和连接的建立。
1.链路建立
链路建立的过程取决于蓝牙所处的安全模式。
2.信道建立
一旦蓝牙链路建立完成,就开始建立蓝牙逻辑信道。
3.连接模式
信道建立以后,就可以在两个设备间建立连接了。
蓝牙串口应用框架(SPP)
SPP概述
SPP定义了建立这些应用框架所需的仿真串行链路的过程以及与串口仿真协议(RFCOMM)、逻辑链路控制与适配协议(L2CAP)、服务发现协议(SDP)、链路管理器协议(LMP)和链路控制层的互操作性要求。
SPP只支持单时隙分组,最高数据传输速率为128kbps。
SPP链路
1.虚拟串行连接到建立
1)设备A建立链路和设置虚拟串口连接
- 使用SDP得到远端设备上期待的RFCOMM服务器信道号;
- (可选)执行对远端设备的鉴权和加密;
- 请求建立新的到远端RFCOMM实体的L2CAP信道;
- 在L2CAP信道上发起RFCOMM会话;使用前面得到的RFCOMM服务器信道号在会话上建立新的数据链路连接。
2)设备B接受链路和设置虚拟串行连接
- 如果远端设备要求鉴权和加密,就要参与鉴权和加密过程;
- 接受L2CAP指示建立的新信道;
- 在新建立的信道上建立RFCOMM会话;
- 接受在RFCOMM会话建立新的数据链路连接。
3)设备B在本地SDP数据库中注册服务记录
通过RFCOMM可获得所有服务与应用都需要向SDP数据库提供服务记录,这些服务记录包括访问相应的服务与应用的必要参数。
2.功率模式和链路丢失处理
SPP中没有要求使用任何节能模式,然而应该尽可能使用低功耗节能模式。