作者:小镇七公主 | 来源:互联网 | 2023-08-30 19:17
该项目将提供一个演示,演示使用德州仪器表2.1.0SDK的多角色项目。由这里提供的补丁添加的项目将能够同时作为主设备和从设备运行。该项目称为多角色,将位于Projects\ble\
该项目将提供一个演示,演示使用德州仪器表2.1.0 SDK的多角色项目。由这里提供的补丁添加的项目将能够同时作为主设备和从设备运行。该项目称为多角色,将位于Projects\ble\multi\u role\cc26xx。同时提供了CCS和IAR项目。请注意,这是为了证明概念:还有很多工作要做(请参见下面的相关部分),软件实现在未来的版本中可能会发生巨大的变化。
虽然此演示将允许多角色设备以任何角色组合连接到最多7个其他设备,但以下场景经过了专门的考虑和测试,其中箭头指示BLE连接:
请注意,只要遵循下面限制部分中所述的连接间隔规则,就可以使用任何设备和任何角色组合。
由于RAM的限制,对于这种特定的配置,可以实现的最大同时连接数是7。如果可以删除某些功能,如同时主/从功能、GATT配置文件、LCD驱动程序、应用程序代码等,则可以增加同时连接的数量。
在2.1版本中,多个连接不支持GapBondMgr,因此此项目不包括它。
当已经形成至少一个连接时,为了让足够的处理时间扫描新连接,可以使用的最小可能连接间隔(以毫秒为单位)是:
12.5+5×N
其中n是当前连接的数量。例如,如果当前有四个连接,所有四个连接都必须使用125+54=32.5 ms的最小连接间隔,以便进行扫描以建立新连接。
控制器在参数更新后的调度机制还没有得到充分的描述。参数更新不会导致连接断开,但可能导致错过连接事件。为了获得最大的稳定性,所有连接都应以相同的间隔或最小连接间隔的倍数建立。
应该对堆进行分析,以验证是否有足够的内存供最坏情况下的应用程序使用。以下是使用下面的演示说明对各种连接进行基本测试的结果。请注意,连接数由max_num_-conns预处理器定义设置。下面显示的堆数是为IAR项目同时分配的最大堆数(heapmgrmmax)。有关分析堆的详细信息,请参阅安装程序附带的软件开发人员指南。
由于编译器的不同,不可能将堆大小增加到足以支持ccs项目中的7个连接的高度。因此,使用ccs时支持的最大连接数为6。
假设
对于本演示,术语master/central和slave/peripheral是同义词。假设主/中心设备是GATT客户机,从/外围设备是GATT服务器。一旦达到连接限制(默认设置为7的max_num_ble_conns),在断开连接之前,将不允许多角色设备公布/扫描。假设系统中的所有外围设备都具有simplegattprofile,并将其暴露在广告数据中。但是,系统中的外围设备可能具有不同的属性表,因为多角色设备将在形成每个连接后执行服务/特征发现。