CC254x BLE 主从连接过程是怎样的?
时间:10-02
整理:3721RD
点击:
最近,CC254x 在学校BLE 工程文件 SimpleBLEPeripheral.ewp
有几个问题:
1)连接
主从机连接过程
一个典型的低功耗蓝牙系统同时包含外设和核心(主机),两者的连接过程如下:
外设角色向外发送自己的信息(设备地址、名字等),主机收到外设广播信息后,发送扫描请求(scanrequest)给外设,外设响应主机的请求,连接建立完成。
问题:
连接完成的标志是什么?工程中的代码在哪里体现?外设相应主机的请求,相应的代码在哪里?整个的连接过程是怎样的,比较模糊,代码找了半天没看到?
2)加密处理
利用配对实现,利用密匙来加密授权连接。典型的过程是:外设向主机请求口令一个(passkey)以便进行配对,待主机发送了正确的口令之后,连接通信通过主从机互换密码来校验。
问题:关于 外设向主机请求口令一个(passkey)以便进行配对,相应的代码段在哪里体现? 谢谢!
有几个问题:
1)连接
主从机连接过程
一个典型的低功耗蓝牙系统同时包含外设和核心(主机),两者的连接过程如下:
外设角色向外发送自己的信息(设备地址、名字等),主机收到外设广播信息后,发送扫描请求(scanrequest)给外设,外设响应主机的请求,连接建立完成。
问题:
连接完成的标志是什么?工程中的代码在哪里体现?外设相应主机的请求,相应的代码在哪里?整个的连接过程是怎样的,比较模糊,代码找了半天没看到?
2)加密处理
利用配对实现,利用密匙来加密授权连接。典型的过程是:外设向主机请求口令一个(passkey)以便进行配对,待主机发送了正确的口令之后,连接通信通过主从机互换密码来校验。
问题:关于 外设向主机请求口令一个(passkey)以便进行配对,相应的代码段在哪里体现? 谢谢!
1: 搜索GAPROLE_CONNECTED事件。
peripheralStateNotificationCB()函数处理各种状态变化。
最开始是simpleBLEPeripheral_HandleKeys() 处理按键操作启动广告。
2:配对操作是由如下回调函数来处理的,由于默认都是NULL,所以请求的密码是000000
static gapBondCBs_t simpleBLEPeripheral_BondMgrCBs =
{
NULL, // Passcode callback (not used by application)
NULL // Pairing / Bonding state Callback (not used by application)
};
配对鉴权操作是在Gapbondmgr.c中处理的,可以仔细看看
GAPBondMgr_ProcessGAPMsg()的处理