6621x系列 Notify等命令的流控机制

pengam · 310次点击 · 11个月前

概述:

      本芯片BLE的发送缓存分2级,第1级缓存是Host层,这个会很大,可能达1-2K,视实际内存使用情况而定。第2级缓存是Controller层,这个缓存可以在一个Interval中支持一次性全部发送出去。

      发送GATTC_NOTIFY首先会抵达Host层队列,Host的调度机制会从队列取出数据发往Controller层, 数据遵循FIFO机制的先进先出原则。

      Controller完成一笔Notify数据的RF发送会以GATTC_CMP_EVT通知应用层。

      Controller收到Indicate的confirm后会以GATTC_CMP_EVT通知应用层。

      Host层的队列缓存大小视内存使用和通讯信号情况而变化,建议只允许缓存10笔左右在协议栈。

      Controller的缓存,6621C为4笔,6621P为12笔。

      Write Conmmand与Notify是一样的流控机制, Read和Write与Indicate是一样的机制。

      seq_num是用于管理不同的characteristic的notify/indicate与GATTC_CMP_EVT一一对应起来,各自分别进行流控管理。所有的notify/indicate都是通过同一个GATTC_CMP_EVT事件上报,所以需要用seq_num来区别不同地方notify/indicate报的。

流控过程: 

6621c_流控.jpg


补充:

     以上流控只适合6621C、6621P,但不适合6621E。

被收藏 2  ∙  4 赞  
加入收藏
点赞
3 回复  
善言善语 (您需要 登录 后才能回复 没有账号 ?)

请先登录网站