基于USB1.1PHY的时钟频率校正方法与流程

专利2023-05-03  146


基于usb1.1 phy的时钟频率校正方法
技术领域
1.本发明涉及数字设计领域,更具体地涉及一种基于usb1.1 phy的时钟频率校正方法。


背景技术:

2.现有的usb1.1 phy均是通过无晶振设置实现时钟的输出,虽然在其内部会不断进行校正,保证时钟的稳定,但始终存在2.5

的误差;在批量传输,中断传输时,此误差不会有太大影响。而在同步传输时,数据是实时不间断传输,中间通过ram,fifo等缓存器件暂存,会由于时钟误差的存在,两边数据传输带宽会有偏差(如,在usb1.1全速传输时,主机以1ms的标准速率与设备进行通信,而设备端使用的是恢复出来的时钟进行数据搬移)。当时钟速率过慢时,会因来不及取走数据,主机便下发新数据覆盖原来的数据,而导致数据丢失;当时钟速率过快时,会因主机还没下发新数据,原来的数据便被全部取走,而导致数据断流。
3.而解决上述问题的现有方案是,通过实时监测缓存读写指针的变化值,来判断时钟频率的变化,进而进行相应的调整。假设主机以1ms的传输速率来说,标准时钟是c,偏移值为d,在不进行频率调整的情况,当恢复时钟为c-d时(时钟偏慢),则在1ms时间内,读指针会不断减小,最终由于来不及将数据取走,主机新来的数据便会覆盖原来的数据,导致数据丢失。反之,则会因为时钟频率过快,将数据读空后,主机还没来得及下发新数据,导致数据断流。
4.在上述解决的方案中,对于通过判断读写指针来调整时钟频率偏差的方法,需要例化多个缓存空间来进行数据缓存,否则当速率偏差比较大时,由于缓存冗余不够,还没来得及调整,就出现写满或读空的情况;从而使得增大了所需的设计面积,并相应增加了设计复杂度。另外,此调整方式是根据sof来判断读写指针的变化,但读写指针是在一定的范围内循环累加,除了对比指针值,还需要判断循环值,以此来判断时钟频率的快慢;使得除了设计复杂度高,对比周期长,极端情况下出现“来不及调整”的情况,而且还会因设计不周,造成误判,最后使频率偏差越来越大。
5.因此,有必要提供一种在改进的基于usb1.1 phy的时钟频率校正方法来克服上述缺陷。


技术实现要素:

6.本发明的目的是提供一种基于usb1.1 phy的时钟频率校正方法,本发明的校正方法实现简单直接,不会因为改变缓存器件而修改算法,且对于缓存空间的需求不大,大大减小了整体设计的面积与资源消耗。
7.为实现上述目的,本发明提供了一种基于usb1.1 phy的时钟频率校正方法,其包括如下步骤:
8.a.计数器在计数范围(0-g)内开始计数,并以1ms为周期进行循环计数;
9.b.当sof到来时,将计数器当前的计数值n锁存,且n≤g,获取频率偏差值k,k=g/2-n;
10.c.设置至少三个门限值,根据各个门限值与计数值n的关系获取对应的校准系数e;
11.d.通过m
±
e计算得出校准后的分频系数,其中m为phy自身分频系数,e为对应的校准系数。
12.较佳地,所述步骤a还包括,所述计数器在第l个sof到来时首次清零。
13.较佳地,,根据phy输出时钟的频率确定所述计数器的计数范围。
14.较佳地,当频率偏差值k为正,当前频率偏快;当频率偏差值k为负,当前频率偏慢。
15.较佳地,所述步骤根据各个门限值与频率偏差值k的关系获取对应的校准系数具体为,设置三个门限值a、b、c,且g/2》c》b》a,0《n《g/2,phy自身分频系数为m,
16.当a《n《b时,输出校准系数为+x,此时输出时钟的分频系数为m+x;
17.当b《n《c时,输出校准系数为+y,此时输出时钟的分频系数为m+y;
18.当c《n时,输出校准系数为+z,此时输出时钟的分频系数为m+z;
19.且,x《y《z。
20.较佳地,当计数值n在门限范围之内时,n《g/2且n《a时,则关闭校准,实时监测计数值n。
21.较佳地,所述步骤根据各个门限值与频率偏差值k的关系获取对应的校准系数具体为,设置三个门限值a、b、c,且g/2》c》b》a,g/2《n≤g,phy自身分频系数为m,
22.当a《g-n《b时,输出校准系数为-x,此时输出时钟的分频系数为m-x;
23.当b《g-n《c时,输出校准系数为-y,此时输出时钟的分频系数为m-y;
24.当c《g-n时,输出校准系数为-z,此时输出时钟的分频系数为m-z;
25.且,x《y《z。
26.较佳地,当计数值n在门限范围之内时,n《g/2且g-n《a时,则关闭校准,实时监测计数值n。
27.与现有技术相比,本发明的基于usb1.1 phy的时钟频率校正方法,由于是当sof到来时,将计数器当前的计数值n锁存,获取频率偏差值,也即是通过直接对sof到来时的计数值与计数器的计数范围值进行对比,无需再对比指针值以及指针循环次数,使得整个方案设计简单,实现方便,不仅减小整体设计复杂度,还能减少对比周期,并且实现了时钟频率的迅速校正。
28.通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。
附图说明
29.图1为本发明基于usb1.1 phy的时钟频率校正方法的流程图。
具体实施方式
30.现在参考附图描述本发明的实施例,附图中类似的元件标号代表类似的元件。如上所述,本发明提供了一种基于usb1.1 phy的时钟频率校正方法,本发明的校正方法实现
简单直接,不会因为改变缓存器件而修改算法,且对于缓存空间的需求不大,大大减小了整体设计的面积与资源消耗。
31.请参考图1,图1为本发明基于usb1.1 phy的时钟频率校正方法的流程图。如图所示,本发明的基于usb1.1 phy的时钟频率校正方法包括如下步骤:
32.步骤s001.计数器在计数范围(0-g)内开始计数,并以1ms为周期进行循环计数;在本步骤中,所述计数器的最大计数值g是根据phy输出时钟的频率来确定,也即g=1ms/t,t为所述phy输出时钟的周期,以使计数器的计数范围与phy输出时钟的频率对应起来;进一步地,本发明的方案在开始进行循环计数之前,所述计数器在第l个sof到来时首次清零,清零后才真正开始循环计数,其可以保证phy内部自身的时钟校正已经完成,输出的时钟已经是一个稳定的时钟,且以sof为基准开始计数,确保后续对sof计数的准确性;其中,l的取值可根据具体情况而灵活选择,只要求保证所述计数器清零时,phy内部自身的时钟校正已经完成即可,通常取值为10左右比较合适。
33.步骤s002.当sof到来时,将计数器当前的计数值n锁存,且n≤g,获取频率偏差值k,k=g/2-n;在本地步骤中,当所述计数器清零后即开始计数,而sof以1ms为周期到来一次,因此通过计数sof到来时的计数值n;在本发明中,计数值n以g/2为基准进行参考,从而将计数值n与计数范围值g的1/2相减即可得出频率的偏差值k,即k=g/2-n;当n《g/2,即频率偏差值k为正时,当前频率偏快;当n》g/2,即频率偏差值k为负,当前频率偏慢;显而易见地,在相同的1ms周期内,计数越大的其频率就越快,对应地,计数越小的,其频率就越慢。
34.步骤s003.设置至少三个门限值,根据各个门限值与计数值n的关系获取对应的校准系数e;在本步骤中,设置三个门限值a、b、c(c》b》a);当然,在具体应用过程中,所述门限值并不限于设置三个,三个及以上均可实现,可根据校准的精度要求同时综合考虑校准效率而灵活选择门限值的个数,只需要最小的门限值a与最大的门限值b满足下式:
35.a《b《g/2。
36.获取对应的校准系数e根据计数值n的取值不同,有如下两种情况:
37.第一种情况:
38.设置三个门限值a、b、c,且g/2》c》b》a,0《n《g/2,phy自身分频系数为m,
39.当a《n《b时,输出校准系数为+x,此时输出时钟的分频系数为m+x;
40.当b《n《c时,输出校准系数为+y,此时输出时钟的分频系数为m+y;
41.当c《n时,输出校准系数为+z,此时输出时钟的分频系数为m+z;
42.且,x《y《z。
43.在该情况下,当计数值n在门限范围之内时,n《g/2且n《a时,则关闭校准,实时监测计数值n。此时,表明phy的时钟运行正常且无偏差,不需要进行校准,实时监测计数值n即可,当计数值n出现上述需要校准的情况,即开启校准过程。
44.第二种情况:
45.设置三个门限值a、b、c,且g/2》c》b》a,g/2《n≤g,phy自身分频系数为m,
46.当a《g-n《b时,输出校准系数为-x,此时输出时钟的分频系数为m-x;
47.当b《g-n《c时,输出校准系数为-y,此时输出时钟的分频系数为m-y;
48.当c《g-n时,输出校准系数为-z,此时输出时钟的分频系数为m-z;
49.且,x《y《z。
50.当计数值n在门限范围之内时,n《g/2且g-n《a时,则关闭校准,实时监测计数值n。此时,表明phy的时钟运行正常且无偏差,不需要进行校准,实时监测计数值n即可,当计数值n出现上述需要校准的情况,即开启校准过程。
51.其中,上述两种情况中,校准系数e所包括的x、y、z为在不同门限值的取值情况下获得的校准系数,通过在不同门限值条件下获得的不同校准系数,从而可对应地调节输出时钟的分频系数,实现对时钟频率的校准。
52.步骤s004.通过m
±
e计算得出校准后的分频系数,其中m为phy自身分频系数,e为对应的校准系数;则在下一个周期内则按新的分步系数对时钟进行调整,直到phy的时钟频率达到校准的目标值;具体的不同校准系数对应的校准后的分频系数如上所述。
53.在本发明的基于usb1.1 phy的时钟频率校正方法中,当检测到计数值n大于或小于所设置门限值时,则输出对应的校准系数e,以及校准有效信号,当phy采样到校准有效信号时,将其原本默认分频系数m加上校准值,生成新的分频系数m
±
e,以此来改变输出频率。而校准系数e为带符号数,当计数值n《g/2时,表示频率偏快,此时校准系数e为正数,校准后的分频系数为m+e,相较原有分步系数m会变大,即输出频率减小;反之亦然。
54.综上所述,本发明的基于usb1.1 phy的时钟频率校正方法,当计数值超过任何门限值时,校准有效信号将会拉高,phy才会接收校准系数e,起到频率校准的效果。经过校正的时钟会使计数器值n逐渐靠近正常值范围。当计数值n在门限范围之内时,校准有效信号将一直为低,停止校准,并继续进行循环检测,以免有异常情况发生。
55.以上结合最佳实施例对本发明进行了描述,但本发明并不局限于以上揭示的实施例,而应当涵盖各种根据本发明的本质进行的修改、等效组合。

技术特征:
1.一种基于usb1.1 phy的时钟频率校正方法,其特征在于,包括如下步骤:a.计数器在计数范围(0-g)内开始计数,并以1ms为周期进行循环计数;b.当sof到来时,将计数器当前的计数值n锁存,且n≤g,获取频率偏差值k,k=g/2-n;c.设置至少三个门限值,根据各个门限值与计数值n的关系获取对应的校准系数e;d.通过m
±
e计算得出校准后的分频系数,其中m为phy自身分频系数,e为对应的校准系数。2.如权利要求1所述的基于usb1.1 phy的时钟频率校正方法,其特征在于,所述步骤a还包括,所述计数器在第l个sof到来时首次清零。3.如权利要求2所述的基于usb1.1 phy的时钟频率校正方法,其特征在于,根据phy输出时钟的频率确定所述计数器的计数范围。4.如权利要求2所述的基于usb1.1 phy的时钟频率校正方法,其特征在于,当频率偏差值k为正,当前频率偏快;当频率偏差值k为负,当前频率偏慢。5.如权利要求2所述的基于usb1.1 phy的时钟频率校正方法,其特征在于,所述步骤根据各个门限值与计数值的关系获取对应的校准系数具体为,设置三个门限值a、b、c,且g/2>c>b>a,0<n<g/2,phy自身分频系数为m,当a<n<b时,输出校准系数为+x,此时输出时钟的分频系数为m+x;当b<n<c时,输出校准系数为+y,此时输出时钟的分频系数为m+y;当c<n时,输出校准系数为+z,此时输出时钟的分频系数为m+z;且,x<y<z。6.如权利要求5所述的基于usb1.1 phy的时钟频率校正方法,其特征在于,当计数值n在门限范围之内时,n<g/2且n<a时,则关闭校准,实时监测计数值n。7.如权利要求2所述的基于usb1.1 phy的时钟频率校正方法,其特征在于,所述步骤根据各个门限值与计数值n的关系获取对应的校准系数具体为,设置三个门限值a、b、c,且g/2>c>b>a,g/2<n≤g,phy自身分频系数为m,当a<g-n<b时,输出校准系数为-x,此时输出时钟的分频系数为m-x;当b<g-n<c时,输出校准系数为-y,此时输出时钟的分频系数为m-y;当c<g-n时,输出校准系数为-z,此时输出时钟的分频系数为m-z;且,x<y<z。8.如权利要求7所述的基于usb1.1 phy的时钟频率校正方法,其特征在于,当计数值n在门限范围之内时,n<g/2且g-n<a,时则关闭校准,实时监测计数值n。

技术总结
本发明公开了一种基于USB1.1PHY的时钟频率校正方法,其包括如下步骤:a.计数器在计数范围(0-G)内开始计数,并以1ms为周期进行循环计数;b.当SOF到来时,将计数器当前的计数值N锁存,且N≤G,获取频率偏差值K,K=G/2-N;c.设置至少三个门限值,根据各个门限值与计数值N的关系获取对应的校准系数E;d.通过M


技术研发人员:赵强
受保护的技术使用者:四川和芯微电子股份有限公司
技术研发日:2022.06.27
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-2415.html

最新回复(0)