微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > 蓝牙4.0会话层问题请教

蓝牙4.0会话层问题请教

时间:12-12 整理:3721RD 点击:
按照第二张图,master和slave都是间隔发送,即发完一个数据包,然后接收数据包。隔一段时间后,再发完一个数据包,接收数据包。这样好控制收发,即相邻2个数据包的发送有一时间参数。
可是按照第一张图,slave接收到一数据包后,立即回一个ACK,然后这样再发送数据包,这样让人在时序上很难理解。
不知道为什么会出现这2个不同的时序,盼高人指教,谢谢。


※ FROM: 180.168.40.34]
※ 来源:·水木社区 http://www.newsmth.net·[FROM: 180.168.40.34]
.34
.34

我的理解是:
第二张图是硬件上的收发概念,第一张图是软件上的收发
在硬件上就是一次发,然后接着就是收,收发中间会等一段时间(参数配置)
软件上发一个data packet,收一个ack,这只是说符合一个协议栈的收发数据而已
具体在硬件层就是第二张图了

第一个是MSC,即message sequence chart,上面只是表明了消息的顺序,并不表明中间的时间范围。每个包的发送间隔是由在连接时的latency和interval来决定的。
何况,第二张图是连接的过程,第一个是已经连接好发送数据的过程,俩不是一样的。

还是有点不明白,你的意思是MASTER发送完一个包后,SLAVE必须发送完一个ACK再接着发送一个数据包吗,这样相邻包的发送时间间隔就不一样了啊。
.34

link layer里面有control和data两种数据包类型。你的第一个图是data package,第二个是control package,俩不是一回事儿。
先抛开这个不说。当你发送数据的时候,link layer是有LL的包头的,和网络包差不多,这个包头里面定义了SN,NESN等等,这个里面的内容可以相当于ack。
回到你的问题,SLAVE想发送数据包时,不用先发ACK,可以直接返回数据包,注意这个数据包是由LL的包头的,所以可以视作是上一个MASTER包的ACK。
当然,这是理论性质的,SLAVE的stack不可能马上就把数据准备好发出去。所以还会有个空的ACK发出去先。

那发送数据包还有传输窗口,2个数据包相邻必须多长时间的问题吗,谢谢
.34

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

网站地图

Top