这里修改蓝牙连接参数,主要是为了降低连接频率,达到低功耗目的。设计的参数包括:连接间隔最小值(Interval Min),连接间隔最大值(Interval Max),从机潜伏次数(Slave Latency),连接超时时间(connSupervisionTimeout)。其中从机潜伏次数的意思为“当无有效数据传输的时候,允许从机跳过的连接事件的次数”。
BLE蓝牙的通讯值通过连接事件来完成的,其中连接事件一直伴随着整个蓝牙连接的周期,不管这其中有没有数据要传输,连接事件一直在周期的产生,这个周期也就决定了蓝牙通讯的速率,周期短,通讯速率就快,相应的功耗就高,连接周期长,通讯速率就慢,功耗就低,用户应该根据自己的需求来设置合理的值,在功耗与速率之间寻求一个平衡。
下面我们通过在CC2541上的蓝牙从机上修改连接参数(很多资料都说连接参数是由主机决定的,从机只能请求更改,但主机不一定同意),这些参数是我修改过后的,是按照IOS的蓝牙连接规范来改的,经过验证,IOS和Android都接受这些值。这几个参数都定义在simpleBLEPeripheral.c中,用宏表示分别为:
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 240 //(units of 1.25ms)
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 320 //(units of 1.25ms)
#define DEFAULT_DESIRED_SLAVE_LATENCY 4
#define DEFALUT_DESIRED_CONN_TIMEOUT 600 //(units of 10ms)