主题中讨论的其他器件: CC2540
大家好、
我们使用的是 CC2541、我们的应用具有2个 BLE 器件、所有器件均可单独与 Android 手机通信。 在2个器件中、一个器件处于中央角色、另一个处于外设角色。 要将数据发送到 Android 手机中央角色、将切换到外设。 角色切换将从外部事件触发。 每个 BLE 器件都通过 UART 连接到外部 MCU。
在中央器件中、UART 的数据将使用 WriteReq 方法发送到外设。 数据长度为16字节。 外设以指示方法将数据发送到中央。
我们能够在不丢失数据的情况下实现双向通信。 但是、连接后的数据通信时间大约为190到200ms。 BLE1到 BLE2花费80到90ms、反之亦然。 BLE1是中央器件、BLE2是外设。 时序详细信息附在此处。
连接参数如下
中央侧
/扫描响应的最大数量
#define DEFAULT_MAX_SCAN_RES 8.
//扫描持续时间(以 ms 为单位)
#define DEFAULT_SCAN_DURATION 4000
//调查模式(有限、通用、全部)
#define DEFAULT_DISCOVERY_MODE DEVDISC_MODE_ALL
// true 使用活动扫描
#define DEFAULT_DISCOVERY ACTIVE_SCAN TRUE
// true 在发现过程中使用白色列表
#define DEFAULT_DISCOVERY_WHICE_LIST FALSE
// true 在创建链接时使用高扫描占空比
#define default_link_high_Duty_cycle false
// true 在创建链接时使用白色列表
#define DEFAULT_LINK_WHICE_LIST FALSE
//默认 RSSI 轮询周期,以 ms 为单位
#define DEFAULT_RSSI_PERIOD 1000
//在建立连接时是否启用自动参数更新请求
#define DEFAULT_ENABLE_UPDATE_REQUEST TRUE
//如果启用了自动参数更新请求,则最小连接间隔(单位为1.25ms)
#define DEFAULT_UPDATE_MIN_CONN_INTERVAL 8.
//如果启用了自动参数更新请求,则最大连接间隔(单位为1.25ms)
#define DEFAULT_UPDATE_MAX_CONN_INTERVAL 8.
//启用自动参数更新请求时要使用的从器件延迟
#define DEFAULT_UPDATE_SLAVE_DELATCY 0
//如果启用了自动参数更新请求,则监控超时值(10ms 的单位)
#define DEFAULT_UPDATE_CONN_TIMEOUT 600
外设侧
//可发现器件时的广播间隔是多少(单位625us、160=100ms)
#define DEFAULT_advertising_interval 160
//如果启用了自动参数更新请求,则最小连接间隔(单位为1.25ms,80=100ms)
#define DEFAULT_MIVEed_MIN_CONN_INTERVAL 8.
//如果启用了自动参数更新请求,则最大连接间隔(单位为1.25ms,800=1000ms)
#define DEFAULT_RETOVE_MAX_CONN_INTERVAL 8.
//启用自动参数更新请求时要使用的从器件延迟
#define DEFAULT_REGLED_SLAVE_LON延 时0
//如果启用了自动参数更新请求,则监控超时值(10ms、1000=10s 的单位)
#define DEFAULT_MODED_CONN_TIMEOUT 1000
//在建立连接时是否启用自动参数更新请求
#define DEFAULT_ENABLE_UPDATE_REQUEST FALSE
我已禁用睡眠模式以优化时间
xPOWER_SAVing、 HCI_EXT_HaltDuringRfCmd (HCI_EXT_HALT_During_RF_DISABLE);
连接 BLE 后、外设将更新连接参数
GAPRole_SendUpdateParam (6、6、0、1000、GAPROLE_RESDED_PARAM_UPDATE);
是否有任何方法来优化时间?
此致、
Kayathri


