微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2540广播的方式传送一定的信息

CC2540广播的方式传送一定的信息

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

hi:

   我有一个问题,ble4.0协议栈中,广播数据的数据包中advData段最大是31个字节吗,如果是的话,通过广播方式传送数据只能是每个数据包的拼接,

这样传输的数据大小和传输速率很不理想;

  如果能让advData段字节加长如100个字节,可以吗,怎么做,限制字节数,应该是为了降低功耗,因为想做一个广播推送广告基站,所以不用考虑功耗问题。

广播包负载Payload  = AdvA (6 Bytes) + AdvData (31 Bytes max.),这个是协议定义的,降低功耗主要靠连接间隔等参数,而不是数据大小,蓝牙本身就不适宜大数据传输

Hi Viki shi:

   谢谢你的回答,还有就是一个问题:

      我想把我的广播数据分成两种类型,一种是广播数据一样的,一种是将大的数据分包的,这两种数据包之间间隔30ms更新一次;我试过在

peripheralStateNotificationCB中的GAPROLE_ADVERTISING下用GAPRole_SetParameter( GAPROLE_ADVERT_DATA, sizeof( advertDataNew ), advertDataNew )更新数据,但是没有成功;又在SimpleBLEPeripheral_ProcessEvent中用同样的方法还是没有更新成功;是不是用新的定时器中断来做这件事呢,如果不是该怎么做?

用广播来传送数据是个很有创意的想法,这样就省去了连接的开销,而且一个Broadcast的广播可以被很多个Observer接收。

但是,通过广播来传输数据其实是一种不可靠的数据传输。因为广播者发出的广播有没有被接收者接收到,是没有确认的。

现实的环境可能存在各种干扰,是无法保证Observer能检测到Broadcast的每一次广播包的。

如果你的实际应用中允许这种不确定性的丢包现象,倒也无所谓。

而建立在连接的数据传输,在底层是做好了差错控制的。

Hi shaokai Lin:

  因为需要交互的主机较多,想不到别的办法,由于传输的信息量不是很大,所以容许一定的丢失率,现在就是还不了解怎么更新广播包!

修改广播包

GAPRole_SetParameter( GAPROLE_ADVERT_DATA, sizeof( advertData ), advertData );

修改扫描回应包

GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData );

Hi shaokai Lin:

    修改广播的内容是这样的,我一直没有正确的注意到每隔30ms发送一次广播的事件

我最近也在做广播包携带自己的数据相关的东东,你可以通过GAP_UpdateAdvertisingData( simpleBLEPeripheral_TaskID, TRUE, sizeof( advertData ), advertData );来更新广播数据包。

hi yuhong liu:

   我早前就在app中用GAP_UpdateAdvertisingData( simpleBLEPeripheral_TaskID, TRUE, sizeof( advertData ), advertData );更新广播只更新了一次,最后我采用的是这个函数:HCI_LE_SetAdvDataCmd(len ,advertData);来20ms更新一次广播,结果是主机收到的数据会有一定的丢失率,但是基本是可行的,因为我的数据不多最多300个字节;

   我有一个问题,请知道的工程师帮我解答一下,就是我要连接更新我的广告,要更新的数据大概在300字节,连接发送的时候最大时20个字节,也就是我得自行分包和组包,如果是这样,主机发送是连续的发送数据包,还是数据包之间有一定的时间间隔?

各位大神:

请问:

GAP_UpdateAdvertisingData( simpleBLEPeripheral_TaskID, TRUE, sizeof( advertData ); 或

HCI_LE_SetAdvDataCmd(len ,advertData);

要更新广播数据,些更新函数应该放在哪个地方,我试了几个地方都不行

我用的例程是:SimpleBLEBroadcaster

放在这里面,结果不行

uint16 SimpleBLEBroadcaster_ProcessEvent( uint8 task_id, uint16 events )
{

}

谢谢

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

网站地图

Top