802.11芯片中TBTT时刻校准的算法和装置[发明专利]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[19]
中华人民共和国国家知识产权局
[12]发明专利申请公布说明书
[11]公开号CN 101193100A
[43]公开日2008年6月4日
[21]申请号200610144231.5[22]申请日2006.11.30
[21]申请号200610144231.5
[71]申请人北京中电华大电子设计有限责任公
司
地址100015北京市朝阳区高家园1号
[72]发明人兰天 刘鹏 [51]Int.CI.H04L 29/06 (2006.01)
权利要求书 2 页 说明书 6 页 附图 2 页
[54]发明名称
802.11芯片中TBTT时刻校准的算法和装置
[57]摘要
本发明提供一种在802.11MAC硬件中,进行TBT
T 时刻精确校准的算法和装置。
802.11协议定义了
定时同步功能,要求BSS内的所有STA都需要自己保
持一个同步定时器,并通过BEACON帧使所有STA的
同步定时器保持同步。
这里协议定义发送BEACON帧
的固定间隔点为TBTT时刻,定时同步器的零时刻为
一个TBTT时刻。
在每个TBTT时刻,BSS内应发送一
个BEACON帧,接收到BEACON的STA都需要根据该帧
内的同步定时值更新自己的同步定时器,然后校准
自己的TBTT时刻。
由于无线信道的不可预测性,发
送BEACON帧的时刻总是存在延迟。
这样校准TBTT时
刻,就需要根据当前收到的同步定时值来进行计算。
由于同步定时值为64位,而且校准涉及到取余运算,
所以需要一种算法和装置,能够使用常规时序逻辑
实现协议规定精度的校准计算,降低复杂度和芯片
面积。
200610144231.5权 利 要 求 书第1/2页 1.一种在802.11芯片中TBTT时刻校准的算法和装置,涉及的部件包括:一个802.11的MAC硬件模块,其特征在于:在此MAC硬件模块中还包含一个用于实现TBTT时刻精确校准的TBTT时刻校准装置。
2.如权利要求1所述的802.11芯片中TBTT时刻校准装置,其特征在于:所述TBTT 算法校准模块,主要包括一个timeStampReg寄存器,一个leftReg寄存器,一个middleReg 寄存器,一个rightReg寄存器,一个tsDelayReg寄存器,一个nextTBTTReg寄存器和一个tsDelay算法逻辑模块。
3.如权利要求1或2所述的802.11芯片中TBTT时刻校准装置,其特征在于:所述t i m e S t a m p R e g寄存器,用于存储接收到的B E A C O N帧中的同步定时值; 所述leftReg寄存器,用于存储一个N倍BEACON周期的值,而且该值小于等于收到的BEACON帧中的同步定时值;
所述rightReg寄存器,用于存储一个N倍BEACON周的值,而且该值大于等于收到的BEACON帧中的同步定时值;
所述middleReg寄存器,用于存储一个leftReg寄存器加上rightReg寄存器然后除以2的值;
所述tsDelayReg寄存器,用于存储一个rightReg减去timeStampReg得到的值,该值小于BEACON周期;
所述nextTBTTReg寄存器,用于存储最后校准后的下一个TBTT时刻的计数器,单位为微秒;
所述tsDelay算法逻辑模块,用于实现一段算法,该算法根据当前收到的BEACON帧中的同步定时值,使用加倍定位和折半搜索的方法得到下一个TBTT时刻的精确微秒计数,从而实现TBTT时刻的精确校准。
4.根据权利要求1所述的802.11芯片中TBTT时刻校准的算法,用于在上述各组成部件之间建立联系,实现T B T T时刻校准计算,其特征在于包括如下步骤: 1)启动校准时,将timeStampReg寄存器设置为收到的BEACON帧的同步定时值;将l e f t R e g寄存器设置为0,将r i g h t R e g寄存器设置为B E A C O N周期b e a c o n P e r i o d;
2)在随后每一时钟节拍中,如果rightReg寄存器中的值小于timeStampReg寄存器中的值,那么就将leftReg寄存器中的值设置为rightReg寄存器的值,然后将rightReg寄存器的值×2;
3)如果rightReg寄存器中的值大于等于timeStampReg,那么将middleReg寄存器设置为leftReg寄存器的值加上rightReg寄存器的值然后除以2;此后的每一个时钟节拍中,
200610144231.5权 利 要 求 书 第2/2页
部判断r i g h t R e g寄存器的值减去t i m e S t a m p寄存器的值是否小于B E A C O N周期beaconPeriod,如果小于那么转5),否则转4);
4)判断middleReg寄存器的值是否大于timeStamp寄存器的值,如果大于,那么将rightReg 寄存器的值设置为middleReg寄存器的值,leftReg寄存器保持不变;如果middleReg 寄存器的值小于timeStamp寄存器的值,那么将leftReg寄存器的值设置为middleReg 寄存器的值,rightReg寄存器保持不变;重新计算middleReg寄存器的值,设置该值为leftReg寄存器的值加上rightReg寄存器的值然后除以2;
5)如果rightReg寄存器的值减去timeStamp寄存器的值小于BEACON周期beaconPeriod,那么将该值加上timeStampReg寄存器的值,然后赋给nextTBTTReg寄存器,并输出,校准结束。
200610144231.5说 明 书第1/6页
802.11芯片中TBTT时刻校准的算法和装置
技术领域
本发明涉及无线网络通信领域,尤其涉及一种在802.11芯片中TBTT时刻校准的算法和装置。
背景技术
802.11协议定义了定时同步功能(TSF),要求BSS内的所有STA都需要在本地保持一个同步定时器,并通过一种机制使得所有的同步定时器都需要保持同步。
这种机制要求BSS内以固定间隔发送一种称为BEACON的特殊帧,每个BEACON帧内部包括一个发送该帧的STA的同步定时器的副本。
这里协议规定同步定时器为64位,单位为微秒;定义相邻两个BEACON 帧之间的固定间隔为BEACON周期,相隔BEACON周期的时间点称为的TBTT时刻,定时同步器的零时刻为一个TBTT时刻。
在每个TBTT时刻,BSS内应该发送一个BEACON帧,BSS内收到BEACON帧的SAT都应该根据BEACON帧内部的同步定时值更新自己的同步定时器,并校准下一个TBTT时刻,也就是BSS内下一个发送BEACON帧的时刻。
在基础结构的BSS内,AP作为唯一的定时同步控制器,周期性的发送Beacon帧。
在每个TBTT时刻,AP准备一个信标进行发送,如果当时信道不可用,那么延迟信标的发送。
每个BEACON帧内部包括一个AP TSF定时器的副本,接收到该帧的STA应该根据该帧内的同步定时值更新自己的同步定时器,然后根据该值校准自己下一个T B T T时刻。
在IBSS内,定时同步功能(TSF)通过分布算法实实现。
IBSS内的BEACON周期由发起该IBSS的STA确定,加入该IBSS中的所有成员都使用该周期,并在TBTT时刻参与BEACON的发送。
IBSS中每个STA,如果其收到的BEACON帧中的同步定时值比自己的更新,那么就用该值更新自己的同步定时器,然后使用该值校准自己的下一个T B T T时刻。
802.11协议中对TBTT时刻的使用有严格的定义,无论在基础结构的BSS中,还是在IBSS 中,为了保证在TBTT时刻能够发送BEACON帧,BSS内的每个STA在TBTT时刻都应该挂起非BEACON帧的发送,然后进行BEACON帧的发送或接收。
由于无线信道的复杂性,如果在TBTT 时刻发现信道忙,那么应该推迟BEACON帧的发送,但是仍然要保证后续的BEACON帧应该以
原有额定的信标间隔进行发送,也就是说下一个TBTT时刻应该按原来额定的时间出现,而不能因为上一个BEACON发送的推迟而受到干扰。
802.11协议规范要求,TSF同步定时器的精度要求为+/-0.01%。
BEACON周期业界约定为>20480微秒,那么TBTT时刻的精度要求为小于±2.048微秒。
由于协议规定同步定时器的零时刻是一个TBTT时刻,同时也规定相邻两个TBTT时刻间的间隔是BEACON周期,那么可以得到如下推论:每个TBTT时刻的同步定时值都是BEACON周期的整数倍。
由上述推论可知,如果发送BEACON的时刻正好是TBTT时刻,那么该BEACON帧内的同步定时值等于发送该帧的STA内部定时器的值,也就应该是BEACON周期的整数倍。
基于这个假定,一种校准下一个TBTT时刻的做法是,认为BSS内每次发送BEACON的时刻正好是在TBTT 时刻,那么收到该帧的STA,就可以认为下一个TBTT时刻是收到的BEACON帧的同步定时值加上BEACON周期。
记收到BEACON帧的同步定时值为timeStamp,BEACON周期为beaconPeriod,下一个TBTT时刻为nextTBTT,那么可得到:
nextTBTT=timeStamp+beaconPeriod (1)
但是由于无线信道复杂性,容易干扰的特性,使得发送BEACON的时间点会相对于额定TBTT 时刻延迟,而且其延迟具有不确定性。
也就是说收到的BEACON帧内的timeStamp值是BEACON 周期的整数倍再加上一个延迟。
记该延迟为TSDelay,那么可以得到:
timeStamp=N×beaconPeriod+TSDelay,(N=0..n,0<=TSDelay<=BeaconPeriod)…
(2)
这样采用上述方法计算nextTBTT,就得到如下表达式:
nextTBTT=timeStamp+beaconPeriod+TSDelay(0<=TSDelay<=BeaconPeriod)………
(3)
由(3)式可知,这种方法会导致同步时刻的漂移,而且漂移大小不确定,最大接近一个BEACON周期。
特别在IBSS中,这种漂移会因为同步定时功能(TSF)的分布式实现而被累积传递下去,最终导致BSS同步的失败。
根据表达式(2)的描述,一种改进的精确校准TBTT时刻的方法是,将收到Beacon帧的同步定时值(timeStamp)除以BEACON周期(beaconPeriod),得到余数(TSDelay),然后根据余数(TSDelay)和BEACON周期(beaconPeriod)计算下一个TBTT时刻。
得到如下等式: nextTBTT=timeStamp+beaconPeriod-TSDelay (4)
在实现中,由于同步定时值(timeStamp)为64位,单位为微秒;而beacon周期的范围最小为1024微秒,最大为N*1024微秒,所以该方法需要一个64位的除法器。
但是引入除法器会导致很大电路规模和复杂度,造成开发成本和生产成本的上升。
发明内容
为了解决第一种方法不精确的问题,和第二种方法引入除法器导致的复杂度和面积成本上升的不足,本发明提供了一种方法,能够使用常规的时序逻辑,在精度要求的范围内得到同步定时余数(TSDelay),从而计算出nextTBTT时刻。
请参阅图1,该图描述了本发明中T B T T时刻校准装置的各部分组成。
所述TBTT算法校准模块,主要包括一个timeStampReg寄存器,一个leftReg寄存器,一个middleReg寄存器,一个rightReg寄存器,一个tsDelayReg寄存器,一个nextTBTTReg 寄存器和一个tsDelay算法逻辑模块。
所述t i m e S t a m p R e g寄存器,用于存储接收到的B E A C O N帧中的同步定时值; 所述leftReg寄存器,用于存储一个N倍BEACON周期的值,而且该值小于等于收到的BEACON帧中的同步定时值;
所述rightReg寄存器,用于存储一个N倍BEACON周的值,而且该值大于等于收到的BEACON帧中的同步定时值;
所述middleReg寄存器,用于存储一个leftReg寄存器加上rightReg寄存器然后除以2的值;
所述tsDelayReg寄存器,用于存储一个rightReg减去timeStampReg得到的值,该值小于BEACON周期;
所述nextTBTTReg寄存器,用于存储最后校准后的下一个TBTT时刻的计数器,单位为微秒。
所述tsDelay算法逻辑模块,用于实现一段算法,该算法根据当前收到的BEACON帧中的同步定时值,使用加倍定位和折半搜索的方法得到下一个TBTT时刻的精确微秒计数,从而实现TBTT时刻的精确校准。
802.11芯片中TBTT时刻校准的装置,通过如下描述的算法实现TBTT时刻校准计算: 1)当接收到BEACON帧时,取得其中的同步定时值timeStamp,存储到timeStampReg寄存器中,然后设置leftReg寄存器为0,设置rightReg寄存器为BEACON周期(beaconPeriod)。
2)后每一拍,将rightValue寄存器的值赋给leftValue寄存器,然后将rightValue寄存器的值右移1位,相当于beaconPeriod乘以2。
这样经过n拍以后,能够使得如下等式满足: leftReg=beaconPeriod*2^n;
rightReg=beaconPeriod*2^n+1;
leftReg<=timeStampReg<=rightReg;
timeStamp=M×beaconPeriod+TSDelay(M=0..n,0<=TSDelay<beaconPeriod) 3)然后做如下处理,如果middleReg>timeStampReg,那么设置
leftReg=beaconPeriod*2^n;
rightReg=middleReg=beaconPeriod*(2^n-1+2^n);
middleReg=(leftReg+rightReg)/2=beaconPeriod*(2^n-2+2^n-1+2^n-1)=beaconPeriod*(2^n-2+2^n)
如果middleValue<timeStamp,那么设置
leftReg=middleReg=beaconPeriod*(2^n-1+2^n);
rightReg=beaconPeriod*(2^n+1);
m i d d l e R e g=(l e f t R e g+r i g h t R e g)/2=b e a c o n P e r i o d*(2^n-2+2^n-1+2^n) 4)在下一拍重复3)的过程,直到找到一个点,使得如下等式成立: 0<=rightReg-timeStampReg<beaconPeriod
那么就得到了用以校准下一个T B T T时刻的计数,将该技术和t i m e S t a m p R e g寄存
器的值相加,就得到了下一个TBTT时刻。
上述算法主要使用了折半算法,由于折半算法在最坏情况下的复杂度为O(log N),而timeStamp为beaconPeriod*(2^64),则可知当最坏情况下,使用上述方法得到下一个TBTT时刻点需要64拍。
假设我们设计的硬件工作频率为50M,则需要1.28微秒,满足协议规定的精度。
由上述描述可知,在本发明中,能够很好满足协议规定的精度,设计上只使用了常规的时序逻辑,复杂度低,电路规模也很小;不需要额外的除法器,这样能够使得芯片的开发成本和生产成本的减小。
附图说明
图1为实现本发明的装置结构示意图
图2为实现本发明的校准算法的流程图
具体实施方案
请参阅图1,该图描述了一个实现TBTT时刻校准功能的硬件模块。
实现TBTT时刻校准功能的硬件模块的部件包括:一个timeStampReg寄存器,一个leftReg 寄存器,一个middleReg寄存器,一个rightReg寄存器,一个tsDelayReg寄存器,一个nextTBTTReg寄存器和一个tsDelay算法逻辑模块。
timeStampReg寄存器,leftReg寄存器,rightReg寄存器,middleReg寄存器用,tsDelayR eg
寄存器,nextTBTTReg寄存器都是用于存储在计算过程中产生的数据或者是计算后的输出数据。
tsDelay算法逻辑模块,用于实现一段算法,该算法根据当前收到的BEACON帧中的同步定时值,使用加倍定位和折半搜索的方法得到下一个TBTT时刻的精确微秒计数,从而实现TBTT时刻的精确校准。
请参阅图2,该图描述了t s D e l a y算法逻辑模块的T B T T校准算法的流程。
1)在模块处于开始阶段时,收到校准启动信号tsAdjen后,将从BEACON帧中得到的timeStamp值设置到timeStampReg寄存器中;将leftReg寄存器设置为0;将rightReg 寄存器设置为beaconPeriod。
然后进入范围选择阶段stateRange。
2)在范围选择阶段stateRange,每一个时钟节拍,模块都首先判断rightReg寄存器的值是否大于timeStampReg寄存器的值。
如果小于,则设置leftReg寄存器为rightReg寄存器的值,然后将r i g h t R e g寄存器的值乘以2,也就是将r i g h t R e g寄存器左移一位;如果大于等于,那么进入下一个TBTT校准阶段stateNextTBTT。
3)当在下一个TBTT校准阶段stateNextTBTT时,每一拍,都首先将rightReg寄存器的值减去t i m e S t a m p R e g寄存器的值赋予t s D e l a y寄存器,然后判断该值是否大于beaconPeriod。
如果小于,则转4);如果大于,则判断middleReg寄存器的值是否大于timeStampReg寄存器的值,如果大于,那么将leftReg寄存器的值设置为middleReg 寄存器的值;如果小于,那么将r i g h t R e g寄存器的值设置为m i d d l e R e g寄存器的值。
然后再将l e f t R e g和r i g h t R e g寄存器的值相加除以2,赋给m i d d l e R e g寄存器。
4)如果rightReg寄存器的值减去timeStampReg寄存器的值小于beaconPeriod,那么该值就是用于校准下一个T B T T时刻的计数,将它和t i m e S t a m p R e g寄存器的值相加就得到了下一个TBTT时刻。
200610144231.5说 明 书 附 图第1/2页
图1装置结构示意图
200610144231.5说 明 书 附 图 第2/2页
图2校准算法的流程图
11。