微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于主机向从机发起连接请求

关于主机向从机发起连接请求

时间:10-02 整理:3721RD 点击:

主机扫描到从机后,会发送一个连接请求,请求里面会包括一些连接参数,比如连接时间间隔、从机潜伏、连接超时等等参数,但是看主机的连接函数:

GAPCentralRole_EstablishLink( DEFAULT_LINK_HIGH_DUTY_CYCLE,DEFAULT_LINK_WHITE_LIST,addrType, peerAddr );

是调用了这个函数:

GAP_EstablishLinkReq( &params );

而GAP_EstablishLinkReq( &params );传递的就是主机的连接请求,这个连接请求的数据类型是个结构体,这个结构体定义如下:

typedef struct
{
uint8 taskID; //!< Requesting App/Profile's Task ID
uint8 highDutyCycle; //!< TRUE to high duty cycle scan, FALSE if not.
uint8 whiteList; //!< Determines use of the white list: @ref GAP_WHITELIST_DEFINES
uint8 addrTypePeer; //!< Address type of the advertiser: @ref GAP_ADDR_TYPE_DEFINES
uint8 peerAddr[B_ADDR_LEN]; //!< Advertiser's address
} gapEstLinkReq_t;

这个结构体里面并没有对主机和从机的连接间隔、从机潜伏、连接超时等等参数进行定义呀?所以我不是很难明白主机和从机的连接间隔、从机潜伏、连接超时等等参数是如何在连接的时候传递到从机上面的?

另外我看TI的主机例程(central)里面定义了

#define DEFAULT_UPDATE_MIN_CONN_INTERVAL          400

#define DEFAULT_UPDATE_MAX_CONN_INTERVAL          800

我想问的是主从机的连接间隔不是一个定值吗?这个连接间隔难道是400-800ms范围内的任意值吗?如果真是在范围内取值的话,我想把时间间隔定为一个确定的值,是不是只要把最小时间间隔和最大时间间隔设为相等就可以了,比如想设时间间隔为500,只需定义DEFAULT_UPDATE_MIN_CONN_INTERVAL 和DEFAULT_UPDATE_MAX_CONN_INTERVAL均为500  ?

希望大神们能不吝赐教一二!感激不尽!

楼主可以参考下面贴子中的内容,希望可以帮到你。

http://blog.csdn.net/ooakk/article/details/7302425

好像没回答楼主的问题

我也有同样的疑问。根据我的理解,蓝牙4.0的协议里提到过建立链接需要传递参数,但是TI应该是使用了默认的参数。在建立连接后,主机使用GAPCentralRole_UpdateLink来配置新的参数,估计在之后的协议栈版本中会有改进

经过验证,看来我说的没错,不过TI现有协议栈里已经包含相关的设置,只不过没有在例程中体现出来。如果不想使用默认参数,需要在初始化时加入以下设置

GAP_SetParamValue( TGAP_CONN_EST_INT_MIN, DEFAULT_UPDATE_MIN_CONN_INTERVAL );
GAP_SetParamValue( TGAP_CONN_EST_INT_MAX, DEFAULT_UPDATE_MAX_CONN_INTERVAL);
GAP_SetParamValue( TGAP_CONN_EST_LATENCY , DEFAULT_UPDATE_SLAVE_LATENCY );
GAP_SetParamValue( TGAP_CONN_EST_SUPERV_TIMEOUT ,DEFAULT_UPDATE_CONN_TIMEOUT );

然后在建立连接时会自动调用这些参数。

其中DEFAULT_UPDATE_MIN_CONN_INTERVAL,DEFAULT_UPDATE_MAX_CONN_INTERVAL, DEFAULT_UPDATE_SLAVE_LATENCY,DEFAULT_UPDATE_CONN_TIMEOUT是你自己定义的参数

TI的协议栈还是比较完善的,值得深究

你好,请问你改的这些参数是从机里面的还是主机里面的?

是主机里的,连接参数是由发起者来定义的。从机可以在连接后进行更新

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top