11个帖子/ 0新
最后一篇
Mahesh.
离线
最后一次露面:3年2个月前
加入:2016年1月4日14:03
BLE传输

你好,

我在DA14583DEVKT-B板上使用SDK 5.0.3软件。
我已经采取了“ble_app_peripheral”(BLE例子给出项目)。我已经修改了对两个特点的工作(i..e单独的UUID)。

我的要求是发送应用程序特定数据为每5毫秒。
我想知道以下细节。
1.我可以发送BLE报文的最大速率。
2.最大有效载荷可以在每个分组BLE被发送。
3.一次启用多少个最大特征。
4.什么是影响传输中的其他因素。
5.高达该采样是数据是可靠的。

请分享信息,并指导我需要参考哪些文件来了解上述因素。

问候,
马赫什Chandana。

设备:
mt_dialog.
离线
最后一次露面:1个月4天前
职员
加入:2015-06-08 11:34
嗨mahesh,

嗨mahesh,

1.您可以使用BLE定时器触发通知,但内核定时器只有10毫秒的分辨率,除了我想你可以触发使用580的定时器您想要的频率的通知。所述trasmit速率决定于连接间隔和每个设备可以发送(每个设备不同的能力的数据包,例如580是能够发送和高达每连接时间间隔10个的数据包,但是,这并不意味着该中央,其连接将允许)。

2.通过增加MTU尺寸,且仅当数据关注相同的特征时,每个分组在空中的最大有效载荷大约为20字节,这可以在相同的连接间隔上的下一个数据包上增加到27。

3.最大特性取决于数据库堆的大小,通过增加您将获得更多空间以创建更多特征。

4.快速传历程的因素是连接间隔和数据包的每一个连接间隔,该系统能够支持的数目。

你的最后一个问题非常通用。

为了了解影响BLE的传历程和数据包如何transimted你必须明白是怎么BLE协议的工作,我建议您阅读BLE规范更详细的信息,如何将两个BLE协议交换数据的因素。

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3年2个月前
加入:2016年1月4日14:03
你好,

你好,
谢谢你的快速反应。

我已经采取了“ble_app_peripheral”(BLE例子给出项目)。我已经修改在两个工作特性(用于发送传感器1个数据和传感器数据2)下一个服务。
这意味着,我的应用程序必须发送(即DA14583)2分组(即一个是传感器1数据,另一个是传感器2数据)每10毫秒秒。移动侧我正在使用Android应用程序记录数据。

对于每一个数据包,我都包计数,以确定任何数据包丢失。有些时候,DA14583(即BLE周)重复发送数据包(即,发送数据包两次)和丢失数据包的实际。例如:我需要与编号0,1,2,3,4,5,6,7,8,9,10发送报文,但它正在发送0,1,2,2,4,4,6,6-(数据包丢失也存在的)9,10。

以上提到的问题,我面临着10毫秒采样率。如果采样率增加至20毫秒,则没有分组丢失和没有重复。这是20毫秒工作的罚款。

请指导我解决这个问题。

问候,
马赫什Chandana。

mt_dialog.
离线
最后一次露面:1个月4天前
职员
加入:2015-06-08 11:34
嗨mahesh,

嗨mahesh,

你是如何触发从项目的通知?当你有时会说,多久会发生这种情况?还什么是实际的连接间隔的两台设备建立(参数由主人而不是奴隶设定的连接,从只能说明连接间隔他想,但这不是强制性的主人跟随)。有多大,你发送的数据?我已经tetsed下面的代码片段在周边项目(在ADC2 characteritsic补充通知并粘贴下面的计时器处理程序代码段),似乎是工作的虚拟值就ok了,因为我可以通过嗅探器的日志查询。

// ***************定制值1 **************** //
结构custs1_val_ntf_req * REQ = KE_MSG_ALLOC_DYN(CUSTS1_VAL_NTF_REQ,
TASK_CUSTS1,
task_app,
custs1_val_ntf_req,
def_cust1_adc_val_1_char_len);

//待采样的ADC值
静态uint16_t样品;
样本=(样品<= 0xFFFF的)?(样品+ 1):0;

req-> conhdl = app_env-> conhdl;
req->手柄= CUST1_IDX_ADC_VAL_1_VAL;
req-> length = def_cust1_adc_val_1_char_len;
的memcpy(req->值,&样品,DEF_CUST1_ADC_VAL_1_CHAR_LEN);

KE_MSG_SEND(REQ);

结构custs1_val_ntf_req * req_2 = KE_MSG_ALLOC_DYN(CUSTS1_VAL_NTF_REQ,
TASK_CUSTS1,
task_app,
custs1_val_ntf_req,
DEF_CUST1_ADC_VAL_2_CHAR_LEN);

// ***************定制值2 **************** //
静态uint16_t sample_2 = 100;
sample_2 =(sample_2 <= 0xFFFF的)?(sample_2 + 1):0;

req_2-> conhdl = app_env-> conhdl;
req_2-> handle = cust1_idx_adc_val_2_val;
req_2->长度= DEF_CUST1_ADC_VAL_2_CHAR_LEN;
memcpy(req_2->值,&sample_2,def_cust1_adc_val_2_char_len);

ke_msg_send(req_2);

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3年2个月前
加入:2016年1月4日14:03
你好,

你好,
我从触发手机上的Android应用程序的通知。
重复发生不一致。主要是它在1.5秒到2秒(我的BLE采样时间为10毫秒)。此重复发生在70至300毫秒的时间内。从从站我表示连接间隔,在主站配置相同。我的数据包大小为20字节的数据。我已经使用单独的值1和值2.是否为ADC1和ADC2提供单独通知?

问候,
马赫什Chandana。

Mahesh.
离线
最后一次露面:3年2个月前
加入:2016年1月4日14:03
你好,

你好,

是否有规定转让在BLE批量数据传输。

问候,
马赫什Chandana。

mt_dialog.
离线
最后一次露面:1个月4天前
职员
加入:2015-06-08 11:34
嗨mahesh,

嗨mahesh,

我无法复制您是经验的内容,使用10毫秒的定时器和10 ms连接间隔即使设置两个不同的计时器触发,则通过嗅探器检查通知。我可以假设的是,也许两个设备之间的链路的连接间隔没有设置为最佳状态(连接间隔达到核心来决定外围设备只能指示它想要的)。我不能在580方面看到任何其他原因导致这种数据丢失并具有这种行为,也许这是手机上应用程序的问题。

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3年2个月前
加入:2016年1月4日14:03
你好,

你好,

感谢您的信息。我需要一些关于“在BLE中的批量数据传输提供的信息”的更多信息

问候,
马赫什Chandana。

mt_dialog.
离线
最后一次露面:1个月4天前
职员
加入:2015-06-08 11:34
嗨mahesh,

嗨mahesh,

我不明白的问题,可以请您给一些澄清?

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3年2个月前
加入:2016年1月4日14:03
你好,

你好,
我想知道的BLE堆栈是否会支持“蓝牙规范4.2版”。

截至目前,我们能够在每个特征上发送20字节。是否可以在每个特征上传输批量传输(在每个传送上)。

问候,
马赫什Chandana。

mt_dialog.
离线
最后一次露面:1个月4天前
职员
加入:2015-06-08 11:34
嗨mahesh,

嗨mahesh,

580堆栈4.2合格并支持4.2蓝牙规范的强制性要求,但不可选的。

关于您的第二个问题,您可以增加您的特征和MTU的大小,但您将成功更新的特点以及您将能够成功发送的数据包数量受到在第2章中提到的因素的限制。

谢谢mt_dialog.