TI 出的CC2541和CC2540 同为BLE芯片,主要共同点是:
1.8051内核(现在的蓝牙IC中基本用M0 or M3,据说Ti和ST都在出M0内核的BLE芯片,估计今年年底会出来).
2. 8K sarm 和 128/256K flash。
区别是CC2541有IIC没有USB,而CC2540支持USB而不支持IIC,在功耗上CC2541比CC2540少30%(没有测试).
CC254x的memory包含协议栈,上层应用。如下图:
今天主要了解GAP协议:
GAP功能:
1.协议角色定义: 广播(salve,未连接),观测器(master,未连接),外设(salve,已连接),控制器(master,已连接)。
2.设备发现。
3.建立连接。
4.断开连接。
GAP提供的信息:
GAP 特征和属性
安全特性的初始化,包括配对,鉴定,结合
设备配置。
控制器可以搜寻正在广播的设备,观测者的处理过程和控制器的搜寻方式类似,不过没有SCAN_RSP data,应该就是不会接受连接设备信息。
控制器会初始化设备,然后通知设备进入被发现状态,GAP 会建立链接层,并过滤无效错误的设备信息,需要调用GAP_DeviceDiscoveryRequest().随后,完成搜寻,同时GAP_DeviceDiscoveryRequest()会返回一个数组,包含所有可用的设备地址.
完成搜寻后,控制器开始和设备建立连接,通过调用 GAP_EstablishLinkRequest(),当连接建立后,GAP会产生一个事件 ---
GAP_LINK_ESTABLISHED_EVENT [GAP_LinkEstablished].
连接确认后,便开始进行配对处理,密钥交换工作。