基于usb的同步和定時(shí)系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開基于USB的同步和定時(shí)系統(tǒng)。一種同步裝置,包括:USB設(shè)備,其具有USB微控制器、用于探測(cè)USB業(yè)務(wù)的電路,以及用于從USB數(shù)據(jù)流解碼周期性數(shù)據(jù)結(jié)構(gòu)(例如時(shí)鐘載波信號(hào))并輸出解碼的載波信號(hào)的電路,而且該周期性數(shù)據(jù)結(jié)構(gòu)包含關(guān)于分布式時(shí)鐘頻率和相位的信息;以及用于接收該解碼的載波信號(hào)、用于在接收到預(yù)定義數(shù)據(jù)包(例如SOF包)時(shí)生成軟件中斷,并用于將該軟件中斷傳遞到該USB微控制器的電路;其中該USB微控制器被配置為通過生成適于用作同步基準(zhǔn)信號(hào)的輸出信號(hào)而響應(yīng)該軟件中斷(例如其中提供的中斷服務(wù)例程)。
【專利說明】基于USB的同步和定時(shí)系統(tǒng)
[0001]本申請(qǐng)是申請(qǐng)日為2008年5月12日、申請(qǐng)?zhí)枮?00880007208.9 (PCT/AU2008/000663)且名稱為“基于USB的同步和定時(shí)系統(tǒng)”的發(fā)明的分案申請(qǐng)。
[0002]相關(guān)申請(qǐng)
[0003]本申請(qǐng)基于2007年5月15日提交的美國申請(qǐng)N0.60/938,148,并要求其提交日的權(quán)益,所提交的該申請(qǐng)的內(nèi)容,通過引用被整體合并于此。
【技術(shù)領(lǐng)域】
[0004]本發(fā)明涉及一種用于提供基于通用串行總線(USB)的同步和定時(shí)系統(tǒng)的方法和裝置,該系統(tǒng)特別地但決不排他地用于在本地環(huán)境中或在分布式方案中,提供在必要的任意程度上同步的測(cè)試和測(cè)量設(shè)備、儀器接口和過程控制設(shè)備的時(shí)鐘、數(shù)據(jù)采集以及自動(dòng)化和控制。
【背景技術(shù)】
[0005]USB規(guī)范旨在促進(jìn)來自不同廠商的設(shè)備在開放架構(gòu)下的互操。使用差分信令(即兩條導(dǎo)線傳輸該信息)編碼USB數(shù)據(jù),所述差分信令采用這兩條導(dǎo)線的信號(hào)電平之間的差的形式。USB規(guī)范旨在作為對(duì)PC架構(gòu)、跨越便攜的、臺(tái)式和家用環(huán)境的增強(qiáng)。
[0006]USB規(guī)范假定設(shè)備是不同的。這對(duì)于其中連接來自多個(gè)制造商的設(shè)備的指定環(huán)境而言的確如此,但是還存在需要用于以同步方式操作具有相似特性的多個(gè)設(shè)備的規(guī)范的其它環(huán)境(例如某種共同的工業(yè)或?qū)嶒?yàn)室環(huán)境)。該規(guī)范并未充分解決這個(gè)問題。這樣的環(huán)境通常是其中進(jìn)行測(cè)試、測(cè)量或監(jiān)控并需要設(shè)備被同步到比所指定程度更準(zhǔn)確的環(huán)境。USB規(guī)范通過向所有設(shè)備提供IKHz時(shí)鐘信號(hào)而允許有限的設(shè)備間同步。然而,很多實(shí)驗(yàn)室和工業(yè)環(huán)境需要在兆赫茲頻率或更高頻率下的同步。
[0007]USB采用分層的星型拓?fù)?,其中集線器為USB設(shè)備提供附接點(diǎn)。位于用戶的個(gè)人電腦(PC)、膝上型電腦或個(gè)人數(shù)字助理(PDA)上的USB主機(jī)控制器包含根集線器,該根集線器為系統(tǒng)中所有USB端口的源。所述根集線器提供若干個(gè)USB端口,USB功能設(shè)備或附加集線器可連接至這些USB端口。
[0008]依次,人們可將更多的集線器(例如USB復(fù)合設(shè)備),附接至這些端口中的任一端口,然后,這些集線器經(jīng)由用于另外的USB設(shè)備的端口提供外加的附接點(diǎn)。以這種方式,USB允許最多連接127個(gè)設(shè)備(包括集線器),限制是任何設(shè)備最多可達(dá)五級(jí)深。
[0009]主機(jī)中的根集線器每Ims向每個(gè)設(shè)備發(fā)送一個(gè)幀開始(SOF)信號(hào)包,兩個(gè)SOF包之間的時(shí)間被稱為一巾貞。由于USB拓?fù)渲泄逃械碾娧舆t,所以每個(gè)模塊在不同的時(shí)間接收該SOF包,這意味著,在直接連接到主機(jī)控制器的設(shè)備處與在五級(jí)下的設(shè)備處的信號(hào)接收之間具有顯著的時(shí)延(規(guī)定為< 380ns)。當(dāng)想以兆赫茲及以上的水平使設(shè)備同步時(shí),這是一個(gè)嚴(yán)重的限制。此外,USB規(guī)范使得主機(jī)控制器不能發(fā)送多達(dá)五個(gè)連續(xù)的SOF令牌。
[0010]通過兩種類型的USB傳輸:中斷(Interrupt)和等時(shí)(Isochronous),當(dāng)前在USB主機(jī)與USB設(shè)備之間進(jìn)行同步是可能的。中斷傳輸允許保證設(shè)備具有最小周期為125 μ s的輪詢頻率,而等時(shí)傳輸保證恒定的傳輸速率。這兩種方法都需要在設(shè)備與主機(jī)之間存在業(yè)務(wù)(traffic)以進(jìn)行同步,從而為更高程度的同步預(yù)留了更多帶寬。不幸的是,這意味著在已連接最大數(shù)量的設(shè)備之前就可能用盡可用的USB帶寬。這種方法也向主機(jī)設(shè)置了使127個(gè)設(shè)備通過軟件保持與主機(jī)同步的巨大計(jì)算負(fù)擔(dān),但仍舊未能解決維持設(shè)備之間的同步性問題,因?yàn)閷?duì)于主機(jī)來說,單獨(dú)的設(shè)備表示分離的過程。
[0011]包含某種物理換能器的設(shè)備,例如激光二極管或光電探測(cè)器,可能需要時(shí)鐘和觸發(fā)信息。諸如具有IMHz的調(diào)制光輸出的激光二極管之類的設(shè)備,可使用時(shí)鐘信號(hào)以按規(guī)則的間隔或恒定的頻率執(zhí)行換能器功能。觸發(fā)信號(hào)通常用于在設(shè)定時(shí)間啟動(dòng)或結(jié)束操作。在激光二極管示例中,觸發(fā)信號(hào)可用于接通或關(guān)斷調(diào)制光輸出。
[0012]這些時(shí)鐘和觸發(fā)信號(hào)可用于使多個(gè)設(shè)備彼此同步(由此構(gòu)成下面稱作的“同步信息”),只要這些時(shí)鐘和觸發(fā)信號(hào)對(duì)于所有設(shè)備是共用的且是同時(shí)的。在這里“共用的”和“同時(shí)的”意味著這些信號(hào)在這些設(shè)備之間在時(shí)間上的變化小于規(guī)定量5t。在激光二極管示例中,這將使多個(gè)激光二極管能夠?qū)⑺鼈兊墓廨敵稣{(diào)制在一個(gè)頻率。所有設(shè)備的調(diào)制頻率將是相同的,并且它們的波形將是同相的。當(dāng)前的USB規(guī)范(即2.0)容許長至0.35 μ s的5t。對(duì)于頻率為IMHz和周期為1.0yS的信號(hào),該延遲表示該周期的幾乎一半。因此它不能用作例行使用的同步信息。
[0013]諸如集線器和USB控制器芯片之類的設(shè)備通常使用一定量的鎖相,以便對(duì)USB協(xié)議進(jìn)行解碼。在USB協(xié)議中的SYNC模式的目的是提供用于另一電子電路鎖定到的同步模式。然而,這旨在使該設(shè)備與USB比特流同步到足以解釋MHz比特流的準(zhǔn)確度。它并非旨在使兩個(gè)分離的設(shè)備彼此同步到很多測(cè)試和測(cè)量?jī)x器所需的級(jí)別。USB規(guī)范,就其處理設(shè)備間同步的范圍來說,主要涉及使USB-CD音頻流同步到足以在一個(gè)USB揚(yáng)聲器對(duì)上輸出。這種布置的要求是在kHz范圍內(nèi),并且對(duì)于這種應(yīng)用,USB規(guī)范是令人滿意的。然而,該規(guī)范并未解決同步例如100個(gè)USB揚(yáng)聲器對(duì)的潛在問題。
[0014]如上面所論述的,USB通信在規(guī)則的Ims幀期間(或者,在高速USB規(guī)范的情況下,以每Ims幀八個(gè)微幀的方式)傳輸數(shù)據(jù)。幀開始(SOF)包在每幀起始時(shí)被發(fā)送到除了低速設(shè)備之外的所有設(shè)備,并且在每微幀起始時(shí)被發(fā)送到所有高速設(shè)備。因此該SOF包表示向除了連接到給定主機(jī)控制器的低速設(shè)備之外的所有設(shè)備廣播的周期性低分辨率信號(hào)。
[0015]該SOF包廣播以IkHz (在高速USB規(guī)范的情況下為8kHz)的額定頻率發(fā)生。然而,USB規(guī)范允許大約500ppm的很大的頻率公差(按照儀器標(biāo)準(zhǔn))?!颈尘凹夹g(shù)】利用廣播到這些設(shè)備中的每一個(gè)設(shè)備的低分辨率頻率信號(hào)以提供時(shí)鐘同步,但是僅僅是對(duì)由UDB主機(jī)控制器提供的多少有點(diǎn)不確切的頻率。
[0016]美國專利N0.6,343,364 (Leydier等人)以一種智能讀卡器為目標(biāo)的對(duì)USB業(yè)務(wù)進(jìn)行頻率鎖定的示例。該文獻(xiàn)教導(dǎo)了一種與USB SYNC和包ID流相比為本地自激(free-running)時(shí)鐘;其周期被更新以與該頻率相匹配,結(jié)果形成額定頻率為1.5MHz的本地時(shí)鐘。這提供了足以將智能卡信息讀取到主機(jī)PC內(nèi)的同步程度,但是由于這種方法以智能讀卡器為目標(biāo),因此沒有解決設(shè)備間同步的問題。
[0017]美國專利N0.6,012,115及后續(xù)美國專利N0.6,226,701 (Chambers等人)解決了USB SOF周期性和定時(shí)的編號(hào)問題。這些文獻(xiàn)公開了一種計(jì)算機(jī)系統(tǒng),其通過使用從USB主機(jī)控制器發(fā)送到與之相連接的外圍設(shè)備的幀開始脈沖,可對(duì)實(shí)時(shí)外圍設(shè)備內(nèi)發(fā)生的預(yù)定事件的時(shí)刻進(jìn)行準(zhǔn)確地確定。
[0018]然而,這些文獻(xiàn)所教導(dǎo)的方法并不包括測(cè)量用于確定USB主機(jī)控制器中的主時(shí)鐘的絕對(duì)頻率的包含在USB數(shù)據(jù)業(yè)務(wù)內(nèi)的周期性數(shù)據(jù)結(jié)構(gòu)的頻率,并且在某些情況下依靠在主機(jī)中提供附加計(jì)數(shù)器。
[0019]美國專利N0.6,092,210 (Larky等人)公開了一種為了數(shù)據(jù)傳輸?shù)哪康?通過采用USB到USB連接設(shè)備連接兩個(gè)USB主機(jī)的方法,所述USB到USB連接設(shè)備用于將本地設(shè)備時(shí)鐘同步到兩個(gè)USB主機(jī)的數(shù)據(jù)流。鎖相環(huán)用于使本地時(shí)鐘同步,而過采樣用于保證不發(fā)生數(shù)據(jù)丟失。然而,該文獻(xiàn)涉及兩個(gè)USB主機(jī)的數(shù)據(jù)流彼此同步(并且具有有限的準(zhǔn)確度),從而使所述主機(jī)之間的信息傳輸變得可能。該文獻(xiàn)并未教導(dǎo)任何用于使多個(gè)USB設(shè)備與單個(gè)USB主機(jī)或與多個(gè)USB主機(jī)同步的方法。
[0020]USB規(guī)范是考慮到音頻應(yīng)用而編寫的,并且美國專利N0.5,761,537 (Sturges等人)描述了如何使兩個(gè)以上揚(yáng)聲器對(duì)與單獨(dú)的時(shí)鐘同步,其中一對(duì)以PC中的立體音頻電路為動(dòng)力來運(yùn)轉(zhuǎn),另一對(duì)由USB控制。這兩個(gè)揚(yáng)聲器對(duì)都使用它們自己的時(shí)鐘,因此它們需要被同步,因此該文獻(xiàn)教導(dǎo)了一種不管異步時(shí)鐘之間可能的時(shí)鐘脈沖相位差(clock skew)如何都能夠維持音頻信號(hào)的同步的技術(shù)。
[0021]美國專利申請(qǐng)N0.10/620,769 (Foster等人)公開了一種同步型USB,其中每個(gè)設(shè)備的本地時(shí)鐘在給定USB上被同步到任意的程度。該文獻(xiàn)還公開了一種方法和裝置,用于為USB內(nèi)的每個(gè)設(shè)備提供觸發(fā)信號(hào),以便可通過該觸發(fā)信號(hào)在多個(gè)設(shè)備上同步地啟動(dòng)事件。
[0022]圖1為一示例性【背景技術(shù)】的同步型USB設(shè)備10的示意圖,USB設(shè)備10經(jīng)由USB總線連接器14連接到數(shù)字USB12。USB設(shè)備10包含集成的USB接口和微控制器16、USB設(shè)備功能電路(例如數(shù)控?fù)Q能器)18、總線采樣電路20、數(shù)字I/O總線解碼電路22、同步相位比較器24以及同步時(shí)鐘26。
[0023]USB設(shè)備10通過總線連接器14連接到數(shù)字USB12。數(shù)字USB12包含用于USB設(shè)備10的USB數(shù)據(jù)和控制信號(hào);總線采樣電路20探測(cè)(observe)內(nèi)部USB業(yè)務(wù)30,并生成該USB業(yè)務(wù)30的復(fù)制品32。數(shù)字I/O總線解碼電路22從信號(hào)32解碼出時(shí)鐘載波信號(hào)34。同步相位比較器24將解碼的時(shí)鐘載波34與從同步時(shí)鐘26中分離的時(shí)鐘信號(hào)36進(jìn)行比較,使得輸出的本地時(shí)鐘信號(hào)28 (在實(shí)質(zhì)上高于載波信號(hào)34的頻率的頻率下)在頻率和相位上鎖定到載波信號(hào)34。
[0024]在這種布置中,當(dāng)USB信號(hào)業(yè)務(wù)進(jìn)入U(xiǎn)SB設(shè)備10時(shí),是從USB12檢測(cè)并提取信息,并通過生成本地時(shí)鐘信號(hào)28實(shí)現(xiàn)同步的。
[0025]這種用于同步多個(gè)USB設(shè)備中的每個(gè)設(shè)備上的本地時(shí)鐘的架構(gòu)采用存在于USB業(yè)務(wù)中的周期性數(shù)據(jù)結(jié)構(gòu)。美國申請(qǐng)N0.10/620, 769中公開的實(shí)施例實(shí)質(zhì)上將本地時(shí)鐘在頻率和相位上鎖定到對(duì)USB設(shè)備上的SOF包令牌(token)的檢測(cè)。采用電路探測(cè)通過USB的業(yè)務(wù),并從總線業(yè)務(wù)解碼時(shí)鐘載波信號(hào)(在一個(gè)實(shí)施例中為SOF包),這導(dǎo)致IkHz (或者針對(duì)USB高速的8kHz)的額定載波信號(hào)頻率。來自受控振蕩器時(shí)鐘的本地時(shí)鐘信號(hào),在相位和頻率上都被鎖定到USB SOF包的接收。這保證連接至根集線器的所有設(shè)備在頻率上鎖定到它們接收SOF包令牌的點(diǎn)。然而,美國申請(qǐng)N0.10/620, 769中描述的方法為每個(gè)設(shè)備提供精確已知的時(shí)鐘頻率的能力有限。[0026]進(jìn)一步,盡管該公開教導(dǎo)了連接至USB的設(shè)備的高度準(zhǔn)確的時(shí)鐘同步,但是所公開的方法采用精度受控的振蕩器,其通常為壓控電壓振蕩器的形式,并且必須特別注意要提供穩(wěn)定的供給電壓。然后閉環(huán)控制電路被施加到該精度振蕩器。這增加了同步的USB設(shè)備的設(shè)計(jì)的成本和復(fù)雜度。
[0027]2007年2月15日提交的國際專利申請(qǐng)N0.PCT/AU2007/000155 (Foster等人)中公開的另一種同步的USB設(shè)備示意性地表示在圖2中。該公開的技術(shù)允許在USB設(shè)備上生成準(zhǔn)確的時(shí)鐘頻率而不管主機(jī)PC中的時(shí)鐘的準(zhǔn)確度如何。參見圖2,USB設(shè)備40包括總線連接器44、總線接口電路46、微控制器48、USB設(shè)備功能電路(例如數(shù)控?fù)Q能器)50,以及同步器52形式的同步電路(可與圖1中的數(shù)字I/O總線解碼電路22、同步相位比較器24以及同步時(shí)鐘26相比較)??偩€接口電路46充當(dāng)在總線連接器44處檢測(cè)到的USB數(shù)據(jù)用的收發(fā)器,將該USB數(shù)據(jù)傳遞到微控制器48。USB設(shè)備40還包括探測(cè)內(nèi)部總線鏈路并將USB業(yè)務(wù)58的復(fù)制品56傳遞到同步器52的電路54。微控制器48向同步器52提供信息60,以用于時(shí)鐘信號(hào)62的準(zhǔn)確頻率合成。微控制器48通過通信總線64與設(shè)備功能電路50通信。
[0028]載波信號(hào)一旦從USB業(yè)務(wù)中被解碼,就與定標(biāo)因子(scaling factor)相結(jié)合以生成同步信息,由此利用時(shí)鐘頻率的精確控制使本地時(shí)鐘信號(hào)同步。以這種方式,通過使用來自微控制器48的附加信息信號(hào)60,本地時(shí)鐘信號(hào)的頻率可以比載波信號(hào)的多少有點(diǎn)不確切的頻率更加準(zhǔn)確。
[0029]據(jù)說這種布置能夠產(chǎn)生任意高頻率的本地時(shí)鐘信號(hào),例如數(shù)十兆赫茲的時(shí)鐘頻率,從而保證每個(gè)連接到給定USB的設(shè)備的本地時(shí)鐘在頻率上同步。美國專利申請(qǐng)N0.10/620,769也教導(dǎo)了一種通過測(cè)量從主機(jī)到每個(gè)設(shè)備的信號(hào)傳播時(shí)間并在每個(gè)USB設(shè)備上提供時(shí)鐘相位補(bǔ)償,進(jìn)一步在相位上使多個(gè)本地時(shí)鐘同步的方法和裝置。
[0030]盡管這種的同步USB系統(tǒng)可以利用準(zhǔn)確的時(shí)鐘頻率生成進(jìn)行USB設(shè)備間的準(zhǔn)確的時(shí)鐘同步,但它們需要特殊的硬件部件以對(duì)存在于USB上的數(shù)據(jù)進(jìn)行解碼,并精確確定載波信號(hào)接收的時(shí)刻。除了普通的USB總線接口電路和微控制器(在圖2中分別是46和48),還需要這些部件,因此這些方法與使用非定制USB接口微控制器的USB的一般實(shí)現(xiàn)不相兼容。
[0031]另外,USB規(guī)范限制USB設(shè)備可呈現(xiàn)給總線的電容水平。在存在并聯(lián)的有效對(duì)地電阻的情況下,每條數(shù)據(jù)線對(duì)地的有效USB電容都受到非常嚴(yán)格的控制。對(duì)于兼容的USB設(shè)備,通常僅有很小的電容容限。在傳統(tǒng)USB設(shè)備上添加并行數(shù)據(jù)通路電路(可與圖1的總線采樣電路20的并行數(shù)據(jù)通路電路相比較)通??赡艹^電容極限。
【發(fā)明內(nèi)容】
[0032]按照第一廣義方面,本發(fā)明提供一種同步裝置,包括:
[0033]USB設(shè)備,其具有USB微控制器、用于探測(cè)USB業(yè)務(wù)的電路,以及用于從USB數(shù)據(jù)流解碼周期性數(shù)據(jù)結(jié)構(gòu)(例如時(shí)鐘載波信號(hào))并輸出解碼的載波信號(hào)的電路,而且該周期性數(shù)據(jù)結(jié)構(gòu)包含關(guān)于分布式時(shí)鐘頻率和相位的信息;以及
[0034]用于接收該解碼的載波信號(hào)的電路、用于在接收到預(yù)定義數(shù)據(jù)包(例如SOF包)時(shí)生成軟件中斷的電路,以及用于將該軟件中斷傳遞給該USB微控制器的電路;[0035]其中該USB微控制器被配置為通過生成適于用作同步基準(zhǔn)信號(hào)的輸出信號(hào)而響應(yīng)該軟件中斷(例如利用其中提供的中斷服務(wù)例程)。
[0036]所述USB微控制器可以包括所述用于探測(cè)所述USB數(shù)據(jù)流的電路。
[0037]所述用于接收所述解碼的載波信號(hào)并生成軟件中斷的電路可以被提供在所述USB微控制器內(nèi),然而可替代地它可以作為在所述USB微控制器外部或甚至在所述USB設(shè)備外部的電路被提供。
[0038]所述裝置可以包括混合式USB接口和微控制器,該混合式USB接口和微控制器包括所述用于解碼該周期性數(shù)據(jù)結(jié)構(gòu)的電路和所述用于接收該解碼的載波信號(hào)并生成該軟件中斷的電路。
[0039]所述裝置可以包括單獨(dú)的解碼硬件,該單獨(dú)的解碼硬件生成解碼的SOF信號(hào),并將該解碼的SOF信號(hào)傳遞至所述USB微控制器,其中所述USB微控制器響應(yīng)于將該解碼的SOF信號(hào)傳遞至所述USB微控制器而生成所述軟件中斷。
[0040]所述周期性數(shù)據(jù)結(jié)構(gòu)可以包括例如在USB規(guī)范中定義的USB包信號(hào)結(jié)構(gòu)中的任一種:被發(fā)送給所述USB設(shè)備的命令序列、被發(fā)送給該USB設(shè)備的數(shù)據(jù)序列、OUT令牌、IN令牌、ACK令牌、NAK令牌、STALL令牌、PRE令牌、SOF令牌、SETUP令牌、DATAO令牌、DATAl令牌,或USB數(shù)據(jù)包中的可編程比特模式序列。
[0041]還提供一種用于使多個(gè)USB設(shè)備同步的方法,采用多個(gè)如上所述的同步裝置。
[0042]根據(jù)第一廣義方面,還提供一種同步的USB,包括如上所述的裝置。
[0043]按照第二廣義方面,本發(fā)明提供一種用于向多個(gè)解碼的同步基準(zhǔn)信號(hào)分配有效性權(quán)重的方法,包括:
[0044]探測(cè)解碼的載波信號(hào);
[0045]基于該解碼的載波信號(hào)中的預(yù)定義數(shù)據(jù)包(例如SOF包)引起軟件中斷;
[0046]響應(yīng)于該軟件中斷而執(zhí)行中斷服務(wù)例程,該中斷服務(wù)例程生成中斷輸出信號(hào);
[0047]確定當(dāng)所述軟件中斷被接收到時(shí)正在執(zhí)行的USB微控制器指令;
[0048]確定該USB微控制器指令所需的指令周期數(shù);以及
[0049]基于軟件中斷的接收時(shí)間的不確定性,向定時(shí)基準(zhǔn)信號(hào)分配定時(shí)有效性加權(quán)因子。
[0050]為了更高的準(zhǔn)確度和穩(wěn)定性,第二廣義方面可以采用一種以上統(tǒng)計(jì)方法對(duì)該重復(fù)性載波信號(hào)脈沖進(jìn)行濾波、求平均或其它方式處理。
[0051]按照第三廣義方面,本發(fā)明提供一種用于使USB設(shè)備的本地時(shí)鐘同步的方法,包括:
[0052]探測(cè)USB數(shù)據(jù)流;
[0053]從該USB數(shù)據(jù)流解碼周期性數(shù)據(jù)結(jié)構(gòu);
[0054]基于所述周期性數(shù)據(jù)結(jié)構(gòu)引起軟件中斷;
[0055]響應(yīng)于該軟件中斷而執(zhí)行中斷服務(wù)例程;
[0056]利用該中斷服務(wù)例程生成中斷輸出信號(hào);
[0057]將該中斷輸出信號(hào)作為基準(zhǔn)定時(shí)信號(hào)傳遞至具有鎖相環(huán)架構(gòu)的同步時(shí)鐘電路;以及
[0058]基于該基準(zhǔn)定時(shí)信號(hào)利用該同步時(shí)鐘電路在相位和頻率上鎖定本地時(shí)鐘(例如高頻本地石英振蕩器時(shí)鐘)。
[0059]所述周期性數(shù)據(jù)結(jié)構(gòu)可以包括例如USB規(guī)范中定義的USB包信號(hào)結(jié)構(gòu)中的任一種:被發(fā)送給所述USB設(shè)備的命令序列、被發(fā)送給該USB設(shè)備的數(shù)據(jù)序列、OUT令牌、IN令牌、ACK令牌、NAK令牌、STALL令牌、PRE令牌、SOF令牌、SETUP令牌、DATAO令牌、DATAl令牌,或USB數(shù)據(jù)包中的可編程比特模式序列。
[0060]第三廣義方面還可以用于根據(jù)該方法使用多個(gè)同步的USB設(shè)備生成同步的USB。
[0061]按照第四廣義方面,本發(fā)明提供一種用于使USB設(shè)備的本地時(shí)鐘同步的方法,包括:
[0062]探測(cè)USB數(shù)據(jù)流;
[0063]在USB數(shù)據(jù)流中解碼周期性數(shù)據(jù)結(jié)構(gòu)SOF包;
[0064]使用具有多個(gè)輸出的自激振蕩器時(shí)鐘,每個(gè)輸出具有相應(yīng)的相位(其通常將彼此不相同);
[0065]在接收到該解碼的周期性數(shù)據(jù)結(jié)構(gòu)時(shí),選擇與該解碼的周期性數(shù)據(jù)結(jié)構(gòu)最同相的輸出;以及
[0066]基于所選擇的相位對(duì)該自激時(shí)鐘進(jìn)行相位調(diào)整,以補(bǔ)償不正確的自激時(shí)鐘的頻率或不同步的自激時(shí)鐘的頻率。
[0067]該方法通常將包括重復(fù)地從所述輸出的相位中選擇與該解碼的周期性數(shù)據(jù)結(jié)構(gòu)最同相的相位,并基于所選擇的相位對(duì)該自激時(shí)鐘進(jìn)行相位調(diào)整。
[0068]所述周期性數(shù)據(jù)結(jié)構(gòu)可以包括例如在USB規(guī)范中定義的USB包信號(hào)結(jié)構(gòu)中的任一種:被發(fā)送給所述USB設(shè)備的命令序列、被發(fā)送給該USB設(shè)備的數(shù)據(jù)序列、OUT令牌、IN令牌、ACK令牌、NAK令牌、STALL令牌、PRE令牌、SOF令牌、SETUP令牌、DATAO令牌、DATAl令牌,或USB數(shù)據(jù)包中的預(yù)定義比特模式序列。
[0069]因此,(非頻率受控的)時(shí)鐘的最適合相位可以在每個(gè)周期性數(shù)據(jù)結(jié)構(gòu)(例如S0F)事件時(shí)選擇。這可以與軟件(ISR)或硬件型周期性數(shù)據(jù)結(jié)構(gòu)檢測(cè)一起使用。
[0070]該方法可以包括使用具有多個(gè)相位延遲的輸出的自激振蕩器。
[0071]該方法可以包括使用具有多抽頭延遲發(fā)生器的自激振蕩器生成多個(gè)相位。
[0072]根據(jù)第四方面,還提供一種同步的USB,該同步的USB使用根據(jù)上述方法的多個(gè)被同步的USB設(shè)備。
[0073]根據(jù)一個(gè)廣義方面,本發(fā)明提供一種用于分配定時(shí)基準(zhǔn)信號(hào)的方法,包括:
[0074]將帶有處理器的設(shè)備連接到數(shù)據(jù)總線;
[0075]針對(duì)所述設(shè)備本地的數(shù)據(jù)信號(hào),利用所述處理器監(jiān)控所述數(shù)據(jù)總線,其中所述數(shù)據(jù)包含周期性數(shù)據(jù)結(jié)構(gòu);
[0076]所述處理器通過生成軟件中斷對(duì)檢測(cè)到所述周期性數(shù)據(jù)結(jié)構(gòu)進(jìn)行響應(yīng);
[0077]所述處理器通過執(zhí)行中斷服務(wù)例程對(duì)所述軟件中斷進(jìn)行響應(yīng);
[0078]所述中斷服務(wù)例程生成定時(shí)基準(zhǔn)信號(hào)。
[0079]所述周期性數(shù)據(jù)結(jié)構(gòu)可以是多種周期性數(shù)據(jù)結(jié)構(gòu)中的一種,并且該方法包括,所述處理器通過生成相應(yīng)的軟件中斷對(duì)檢測(cè)到所述周期性數(shù)據(jù)結(jié)構(gòu)中的每一種周期性數(shù)據(jù)結(jié)構(gòu)進(jìn)行響應(yīng),所述處理器通過執(zhí)行相應(yīng)的中斷服務(wù)例程對(duì)所述軟件中斷進(jìn)行響應(yīng),并且所述中斷服務(wù)例程生成相應(yīng)的定時(shí)基準(zhǔn)信號(hào)。[0080]該方法可以進(jìn)一步包括:
[0081]識(shí)別在接收所述相應(yīng)的軟件中斷期間正在被所述處理器處理的軟件指令;
[0082]確定所述處理器執(zhí)行所述軟件指令所需的指令周期數(shù);以及
[0083]向所述相應(yīng)的定時(shí)基準(zhǔn)信號(hào)中的每一個(gè)定時(shí)基準(zhǔn)信號(hào)分配加權(quán)因子,其中該加權(quán)因子是在生成所述相應(yīng)的軟件中斷與所述相應(yīng)的定時(shí)基準(zhǔn)信號(hào)之間的時(shí)段中的不確定性
的度量。
[0084]該方法可以進(jìn)一步包括:
[0085]通過將所述多個(gè)加權(quán)因子與所述多個(gè)定時(shí)基準(zhǔn)信號(hào)組合生成多個(gè)加權(quán)的定時(shí)基準(zhǔn)信號(hào),使得所述定時(shí)基準(zhǔn)信號(hào)中的給定定時(shí)基準(zhǔn)信號(hào)的貢獻(xiàn)通過其對(duì)應(yīng)的加權(quán)因子被加權(quán)。
[0086]該方法可以進(jìn)一步包括:
[0087]將所述設(shè)備的本地時(shí)鐘在頻率和相位上都鎖定到所述多個(gè)加權(quán)的定時(shí)基準(zhǔn)信號(hào)。
[0088]該方法可以進(jìn)一步包括:
[0089]對(duì)所述加權(quán)的定時(shí)基準(zhǔn)信號(hào)進(jìn)行統(tǒng)計(jì)處理,從而更精確地鎖定所述本地時(shí)鐘的頻率和相位。
[0090]所述數(shù)據(jù)總線可以是USB,并且所述設(shè)備是USB設(shè)備。
[0091]所述處理器可以是具有嵌入式USB物理接口的微控制器,也可以是包含嵌入式USB物理接口的現(xiàn)場(chǎng)可編程門陣列或其它形式的可編程邏輯。
[0092]在一個(gè)實(shí)施例中,所述周期性數(shù)據(jù)結(jié)構(gòu)包括在USB規(guī)范中定義的USB包信號(hào)結(jié)構(gòu)中的任一種:被發(fā)送給所述USB設(shè)備的命令序列、被發(fā)送給該USB設(shè)備的數(shù)據(jù)序列、OUT令牌、IN令牌、ACK令牌、NAK令牌、STALL令牌、PRE令牌、SOF令牌、SETUP令牌、DATAO令牌、DATAl令牌,或所述USB數(shù)據(jù)包中的預(yù)定義比特模式序列。
[0093]按照另一個(gè)廣義方面,本發(fā)明提供一種對(duì)多個(gè)時(shí)鐘載波信號(hào)加權(quán)的方法,包括:
[0094]針對(duì)周期性數(shù)據(jù)結(jié)構(gòu),利用處理器監(jiān)控?cái)?shù)據(jù)總線;
[0095]所述處理器通過生成軟件中斷對(duì)所述周期性數(shù)據(jù)結(jié)構(gòu)進(jìn)行響應(yīng);
[0096]所述處理器通過執(zhí)行中斷服務(wù)例程對(duì)所述軟件中斷進(jìn)行響應(yīng);
[0097]所述中斷服務(wù)例程生成定時(shí)基準(zhǔn)信號(hào);
[0098]確定在接收所述軟件中斷期間正在被所述處理器處理的軟件指令;
[0099]確定所述處理器執(zhí)行所述軟件指令所需的指令周期數(shù),其中所述指令周期數(shù)表示對(duì)所述處理器發(fā)出所述軟件中斷的時(shí)間確定中的不確定性的度量;以及
[0100]根據(jù)所述處理器發(fā)出所述軟件中斷的所述時(shí)間中的不確定性對(duì)所述多個(gè)時(shí)鐘載波信號(hào)加權(quán)。
[0101]所述周期性數(shù)據(jù)結(jié)構(gòu)可以是多種周期性數(shù)據(jù)結(jié)構(gòu)中的一種,并且該方法包括:
[0102]所述處理器通過生成相應(yīng)的軟件中斷對(duì)所述周期性數(shù)據(jù)結(jié)構(gòu)中的每一種進(jìn)行響應(yīng);
[0103]所述處理器通過執(zhí)行相應(yīng)的中斷服務(wù)例程對(duì)所述軟件中斷進(jìn)行響應(yīng);
[0104]所述中斷服務(wù)例程生成相應(yīng)的定時(shí)基準(zhǔn)信號(hào);
[0105]向所述定時(shí)基準(zhǔn)信號(hào)中的每一個(gè)分配加權(quán)因子,其中所述加權(quán)因子是對(duì)生成所述軟件中斷與所述相應(yīng)的定時(shí)基準(zhǔn)信號(hào)之間的時(shí)段中的不確定性的度量;[0106]通過將所述多個(gè)加權(quán)因子與所述多個(gè)定時(shí)基準(zhǔn)信號(hào)進(jìn)行組合而生成多個(gè)加權(quán)的定時(shí)基準(zhǔn)信號(hào),使得所述定時(shí)基準(zhǔn)信號(hào)中的給定定時(shí)基準(zhǔn)信號(hào)的貢獻(xiàn)通過其對(duì)應(yīng)的加權(quán)因子被加權(quán)。
[0107]該方法可以包括利用計(jì)算設(shè)備確定生成所述軟件中斷與所述定時(shí)基準(zhǔn)信號(hào)之間的時(shí)段中的不確定性。
[0108]該方法可以包括利用查找表確定生成所述軟件中斷與所述定時(shí)基準(zhǔn)信號(hào)之間的時(shí)段中的不確定性。
[0109]根據(jù)一廣義方面,本發(fā)明提供一種用于對(duì)多個(gè)定時(shí)基準(zhǔn)信號(hào)加權(quán)的裝置,包括:
[0110]支持中斷服務(wù)例程的處理器或微控制器;
[0111]用于探測(cè)所述處理器本地的數(shù)據(jù)業(yè)務(wù)的電路;
[0112]用于從所述數(shù)據(jù)業(yè)務(wù)解碼周期性數(shù)據(jù)結(jié)構(gòu)的電路;
[0113]用于生成與所述周期性數(shù)據(jù)結(jié)構(gòu)的解碼相對(duì)應(yīng)的確認(rèn)信號(hào)的電路;
[0114]用于生成所述處理器的軟件中斷的電路,而且所述處理器被配置為在接收到所述確認(rèn)信號(hào)時(shí)發(fā)出中斷服務(wù)例程;以及
[0115]用于響應(yīng)來自中斷服務(wù)例程的命令而生成定時(shí)基準(zhǔn)信號(hào)的電路。
[0116]該裝置可以進(jìn)一步包括:
[0117]用于報(bào)告當(dāng)所述軟件中斷發(fā)生時(shí)哪條指令正在被執(zhí)行的輸出;
[0118]用于確定生成所述軟件中斷與所述定時(shí)基準(zhǔn)信號(hào)之間的時(shí)段中的不確定性的機(jī)構(gòu);以及
[0119]用于計(jì)算針對(duì)所述多個(gè)定時(shí)基準(zhǔn)信號(hào)中的每一個(gè)的加權(quán)因子的機(jī)構(gòu)。
[0120]所述用于確定生成所述軟件中斷與所述定時(shí)基準(zhǔn)信號(hào)之間的時(shí)段中的不確定性的機(jī)構(gòu),例如可以是例如計(jì)算設(shè)備或查找表。
[0121]所述處理器或微控制器可以具有嵌入式USB物理接口。所述處理器或微控制器可以是可選地具有嵌入式USB物理接口的現(xiàn)場(chǎng)可編程門陣列或其它形式的可編程邏輯。
[0122]本發(fā)明還提供一種用于使USB設(shè)備同步的裝置,包括:
[0123]USB ;
[0124]具有支持軟件中斷和中斷服務(wù)例程的架構(gòu)的處理器或微控制器;
[0125]用于當(dāng)所述USB設(shè)備正在與所述USB進(jìn)行數(shù)據(jù)通信時(shí)探測(cè)所述USB設(shè)備本地的USB業(yè)務(wù)的電路;
[0126]用于從所述USB上的業(yè)務(wù)解碼周期性數(shù)據(jù)結(jié)構(gòu)的電路;
[0127]用于生成與所述周期性數(shù)據(jù)結(jié)構(gòu)的解碼相對(duì)應(yīng)的確認(rèn)信號(hào)(acknowledgementsignal)的電路;
[0128]用于在接收到所述確認(rèn)信號(hào)時(shí)生成所述處理器的軟件中斷的電路,其中所述軟件中斷啟動(dòng)中斷服務(wù)例程,而且該中斷服務(wù)例程被配置以便生成適于被用作本地同步基準(zhǔn)信號(hào)的輸出信號(hào);以及
[0129]用于響應(yīng)來自所述中斷服務(wù)例程的命令而生成定時(shí)基準(zhǔn)信號(hào)的電路。
[0130]該裝置可以進(jìn)一步包括:
[0131]本地時(shí)鐘;以及
[0132]用于控制所述本地時(shí)鐘的頻率和相位的電路,其中所述定時(shí)基準(zhǔn)信號(hào)可用于控制所述本地時(shí)鐘頻率和/或相位。
[0133]所述處理器或微控制器可以包括所述用于探測(cè)所述USB設(shè)備本地的USB業(yè)務(wù)的電路。
[0134]所述處理器或微控制器可以包括所述用于從所述USB上的業(yè)務(wù)中解碼周期性數(shù)據(jù)結(jié)構(gòu)的電路。
[0135]所述處理器或微控制器可以包括所述用于生成與所述周期性數(shù)據(jù)結(jié)構(gòu)的解碼相對(duì)應(yīng)的確認(rèn)信號(hào)的電路。
[0136]所述處理器或微控制器可以包括所述用于在接收到所述確認(rèn)信號(hào)時(shí)生成所述處理器的軟件中斷的電路。
[0137]所述處理器或微控制器可以包括所述用于響應(yīng)來自所述中斷服務(wù)例程的命令而生成定時(shí)基準(zhǔn)信號(hào)的電路。
[0138]所述處理器或微控制器可以包括所述本地時(shí)鐘。
[0139]所述用于探測(cè)所述USB設(shè)備本地的USB業(yè)務(wù)的電路,可以不包含在所述處理器之內(nèi)。
[0140]所述用于從所述USB上的業(yè)務(wù)解碼周期性數(shù)據(jù)結(jié)構(gòu)的電路,可以不包含在所述處理器或微控制器之內(nèi)
[0141]所述用于生成與所述周期性數(shù)據(jù)結(jié)構(gòu)的解碼相對(duì)應(yīng)的確認(rèn)信號(hào)的電路,可以不包含在所述處理器之內(nèi)。
[0142]本發(fā)明還提供一種用于使USB設(shè)備的本地時(shí)鐘同步的方法,包括:
[0143]探測(cè)USB數(shù)據(jù)流;
[0144]在USB數(shù)據(jù)流中解碼周期性信號(hào)結(jié)構(gòu)包;
[0145]使用具有多個(gè)輸出的自激振蕩器時(shí)鐘,每個(gè)輸出具有相應(yīng)的相位;
[0146]在接收到解碼的周期性信號(hào)結(jié)構(gòu)包時(shí),從所述輸出的相位中選擇與該解碼的周期性信號(hào)結(jié)構(gòu)包最同相的相位;以及
[0147]基于所選擇的相位對(duì)該自激時(shí)鐘進(jìn)行相位調(diào)整,以補(bǔ)償不正確的自激時(shí)鐘的頻率或不同步的自激時(shí)鐘的頻率。
[0148]該方法可以包括重復(fù)地從所述輸出的相位中選擇與該解碼的周期性信號(hào)結(jié)構(gòu)最同相的相位,并基于所選擇的相位對(duì)該自激時(shí)鐘進(jìn)行相位調(diào)整。
[0149]所述周期性數(shù)據(jù)結(jié)構(gòu)包可以包括例如USB規(guī)范中定義的USB包信號(hào)結(jié)構(gòu)中的任一種:被發(fā)送給所述USB設(shè)備的命令序列、被發(fā)送給該USB設(shè)備的數(shù)據(jù)序列、OUT令牌、IN令牌、ACK令牌、NAK令牌、STALL令牌、PRE令牌、SOF令牌、SETUP令牌、DATAO令牌、DATAl令牌,或所述USB數(shù)據(jù)包中的預(yù)定義比特模式序列。
[0150]該方法可以包括使用具有多個(gè)相位延遲的輸出的自激振蕩器。
[0151]該方法可以包括使用具有多抽頭延遲的自激振蕩器。
[0152]本發(fā)明還包括一種用于使具有多個(gè)可選相移輸出的設(shè)備的自激本地時(shí)鐘同步的方法,該方法包括:
[0153](i)所述設(shè)備接收周期性基準(zhǔn)信號(hào);
[0154](ii)在接收到所述周期性基準(zhǔn)信號(hào)中的每一個(gè)時(shí),所述設(shè)備檢測(cè)所述多個(gè)可選相移輸出中的哪一個(gè)與所述周期性基準(zhǔn)信號(hào)最同相;以及[0155](iii)采用所述相移輸出中的所述最同相的相移輸出作為所述本地時(shí)鐘信號(hào)。
[0156]該方法可以包括通過重復(fù)步驟(i )至(i i i )在相位上對(duì)所述本地時(shí)鐘信號(hào)進(jìn)行周期性地調(diào)整。
[0157]該方法可以包括當(dāng)在多個(gè)時(shí)鐘周期之上被評(píng)估時(shí)選擇與所述周期性基準(zhǔn)信號(hào)最同相的相移輸出。
[0158]該方法可以進(jìn)一步包括:
[0159]確定所述自激振蕩器輸出在所述周期性基準(zhǔn)信號(hào)的接連的周期之間的時(shí)段期間所經(jīng)歷的累積相位誤差;以及
[0160]在所述周期性基準(zhǔn)信號(hào)的接連的周期之間的時(shí)段內(nèi),周期性地選擇所述多個(gè)相移輸出中下一個(gè)最適合的相移輸出,以便持續(xù)最小化該輸出時(shí)鐘信號(hào)的絕對(duì)相位誤差。
[0161]應(yīng)當(dāng)注意,可以根據(jù)需要組合本發(fā)明的以上方面中的每一方面的各種特征。
[0162]另外,可以以各種方式實(shí)施根據(jù)本發(fā)明的裝置。例如,可以以在印刷電路或印刷接線板上、陶瓷基板上或在半導(dǎo)體級(jí)別上——即作為單晶硅(或其它半導(dǎo)體材料)芯片的多個(gè)部件的形式構(gòu)造這些設(shè)備。
【專利附圖】
【附圖說明】
[0163]為了使本發(fā)明可被更清楚地弄清,現(xiàn)在將參照附圖以示例的方式描述實(shí)施例,在附圖中:
[0164]圖1是【背景技術(shù)】的同步的USB設(shè)備的示意圖;
[0165]圖2是另一【背景技術(shù)】的同步的USB設(shè)備的示意圖;
[0166]圖3是根據(jù)本發(fā)明第一實(shí)施例的同步的USB設(shè)備的示意圖;
[0167]圖4是根據(jù)圖3實(shí)施例的兩個(gè)USB接口 /微控制器的命令執(zhí)行堆棧的示意圖,示出了軟件中斷等待時(shí)間和不確定性;
[0168]圖5是圖4的命令執(zhí)行堆棧的時(shí)序圖;
[0169]圖6是根據(jù)本發(fā)明第二實(shí)施例的同步的USB設(shè)備的示意圖;
[0170]圖7是圖6的USB設(shè)備的同步器電路的示意圖;以及
[0171]圖8是圖7的同步器電路的內(nèi)部電路的示意性時(shí)序圖。
【具體實(shí)施方式】
[0172]在圖3中以附圖標(biāo)記80示意性地示出根據(jù)本發(fā)明第一實(shí)施例的USB設(shè)備,具有數(shù)字USB82。USB設(shè)備80包括用于連接至數(shù)字USB82的總線連接器84、USB接口 /微控制器86、數(shù)字輸入/輸出電路88 (采用例如數(shù)字換能器的形式,例如模數(shù)轉(zhuǎn)換器、壓力換能器或應(yīng)變儀),以及同步時(shí)鐘電路90。
[0173]重復(fù)性載波信號(hào)形式的時(shí)鐘同步信息由USB接口 /微控制器86從數(shù)字USB82中提取出來。傳統(tǒng)的USB微控制器(例如Cypress EZUSB-FX牌系列USB微控制器)能夠被配置為在接收到USB數(shù)據(jù)流中的幀開始(SOF)包時(shí)執(zhí)行軟件中斷,并且在本實(shí)施例中也是如此;響應(yīng)于接收到SOF包而執(zhí)行的中斷服務(wù)例程被編程為(以針對(duì)USB全速的IkHz或針對(duì)USB高速的8kHz)生成基準(zhǔn)定時(shí)信號(hào)92,該基準(zhǔn)定時(shí)信號(hào)92被傳遞至同步時(shí)鐘電路90。同步時(shí)鐘電路90包含利用低頻基準(zhǔn)信號(hào)92從相位和頻率上鎖定高頻本地石英振蕩器時(shí)鐘的鎖相環(huán)架構(gòu)。
[0174]同步輸出時(shí)鐘信號(hào)94被配置為根據(jù)從USB接口 /微控制器86提供的數(shù)據(jù)和命令96同步地控制數(shù)字輸入/輸出電路88的操作。該架構(gòu)允許對(duì)同步電路所使用的載波信號(hào)進(jìn)行解碼,而不使用附加的專用硬件部件來探測(cè)與USB接口 /微控制器86并行的USB數(shù)據(jù)流。
[0175]圖4是根據(jù)圖3實(shí)施例的USB接口 /微控制器86的兩個(gè)示例的第一命令執(zhí)行堆棧110和第二命令執(zhí)行堆棧112各自的示意圖。命令堆棧110、112從上至下地執(zhí)行;在該視圖中,執(zhí)行時(shí)間114從上至下地增加。微控制器指令是單指令周期時(shí)間的整數(shù)倍,并被表示為時(shí)間塊。
[0176]在第一命令堆棧110中的某點(diǎn)處,微控制器86接收采用SOF中斷信號(hào)116形式的物理中斷刺激,對(duì)應(yīng)于內(nèi)部硬件寄存器接收數(shù)據(jù)流中的有效SOF包。在本示例中,這發(fā)生在指令118 (在本示例中任意地示出為三周期指令)期間的某點(diǎn)。指令118完成之后,微控制器86將指令壓入該堆棧,并執(zhí)行中斷服務(wù)例程(ISR)120。ISR120通常是一連串指令,但在這里為了簡(jiǎn)單起見被表示為一個(gè)指令。ISR120在下一可用時(shí)間處響應(yīng)中斷信號(hào)116,并且被編程為生成軟件中斷輸出信號(hào)122 (其可與圖3的基準(zhǔn)定時(shí)信號(hào)92相比較)。物理中斷信號(hào)116的接收和軟件中斷輸出信號(hào)122之間存在時(shí)延tl。
[0177]時(shí)延tl是可變的,并取決于指令周期的長度和物理中斷信號(hào)116被接收時(shí)在指令周期內(nèi)的位置。通過參照第二示例性命令堆棧112對(duì)此進(jìn)行舉例說明。在本示例中,微控制器在指令128 (在本圖中示為單周期指令)期間的某點(diǎn)接收物理SOF中斷信號(hào)126。在指令128完成之后,微控制器86執(zhí)行ISR130。ISR130通常是一連串指令,但是在這里為了簡(jiǎn)單起見被表示為一條指令。ISR130響應(yīng)中斷信號(hào)126,并生成軟件中斷輸出信號(hào)132。物理中斷信號(hào)126的接收和軟件中斷輸出信號(hào)132的輸出之間存在時(shí)延t2。
[0178]因此,在確定SOF包的確切接收時(shí)間時(shí)存在不確定性——在量級(jí)上對(duì)應(yīng)于這些時(shí)延tl和延遲t2。該不確定性取決于當(dāng)前執(zhí)行的指令的持續(xù)時(shí)間和物理SOF中斷信號(hào)被硬件中斷發(fā)生器接收時(shí)在該指令內(nèi)的位置。這通常由給定微控制器上的最長指令的時(shí)長給定。因此,最佳情況(即最小)的不確定性由長度為At的單周期指令周期給定。
[0179]圖5是圖4的示例性命令執(zhí)行堆棧110、112用的示意性時(shí)序圖150。圖5包括SOF包的接收152以及分別與圖4的命令堆棧110和112相對(duì)應(yīng)的時(shí)序圖154和156。SOF包的接收152導(dǎo)致在指令160期間發(fā)生的硬件中斷信號(hào)158。在指令160完成時(shí),中斷服務(wù)例程162生成被用作重復(fù)性同步基準(zhǔn)信號(hào)的本地基準(zhǔn)信號(hào)164。類似地,硬件中斷信號(hào)158發(fā)生在指令166 (對(duì)應(yīng)于圖4的命令堆棧112中的指令128)期間。然后中斷服務(wù)例程168生成本地基準(zhǔn)信號(hào)170。
[0180]某些微控制器具有范圍從單指令周期到針對(duì)復(fù)雜操作的十個(gè)以上指令周期的指令周期時(shí)間。因此在對(duì)SOF接收時(shí)間的任何給定確定的不確定性中存在顯著的可變性。如果已知該軟件的結(jié)構(gòu),則可通過最長指令執(zhí)行時(shí)間和代碼的結(jié)構(gòu)確定這些極限。假設(shè)SOF速率和微控制器代碼執(zhí)行具有異步特性,則SOF接收時(shí)間的準(zhǔn)確確定和不準(zhǔn)確確定存在隨機(jī)分布。
[0181]然而,由于確定在接收SOF期間哪條指令正在執(zhí)行并由此確定該指令的長度和最后得到的測(cè)量的不確定性的長度是可能的,因此確定SOF接收時(shí)間的任何給定確定的準(zhǔn)確性是可能的。這允許SOF接收時(shí)間的任何非常不確定的測(cè)量結(jié)果被識(shí)別出來并由此被丟棄??商鎿Q地,某些形式的統(tǒng)計(jì)加權(quán)可被應(yīng)用在基于在SOF的接收期間正在執(zhí)行的指令的長度而進(jìn)行的SOF接收時(shí)間的確定,從而降低對(duì)取決于過長指令的測(cè)量的依賴。統(tǒng)計(jì)加權(quán)可以確定在控制同步的USB設(shè)備的鎖相環(huán)同步時(shí)鐘時(shí)如何使用每個(gè)測(cè)量結(jié)果,并且在控制同步時(shí)鐘電路90時(shí)僅僅使用SOF接收時(shí)間的最可靠確定。此外,濾波、求平均或其它統(tǒng)計(jì)手段的使用可被用來改進(jìn)同步時(shí)鐘的準(zhǔn)確度和穩(wěn)定性。
[0182]存在與SOF接收時(shí)間的每個(gè)測(cè)量結(jié)果相關(guān)聯(lián)的固定等待時(shí)間172。這是分別執(zhí)行中斷服務(wù)例程162或168所花費(fèi)的時(shí)間。這對(duì)于每類微控制器都是恒定的(假設(shè)恒定時(shí)鐘頻率相等,并且批間不一致性為零)。
[0183]以這種方式,本發(fā)明在不使用例如可能向總線添加額外并聯(lián)的容性負(fù)載的特殊硬件部件的情況下,提供使USB設(shè)備的本地時(shí)鐘在頻率和相位上都與包含在USB數(shù)據(jù)流中的重復(fù)性基準(zhǔn)載波信號(hào)同步的裝置。另外,本發(fā)明提供一種對(duì)來自總線的數(shù)據(jù)進(jìn)行解碼并生成基于軟件中斷的同步基準(zhǔn)信號(hào)的裝置。這種基于中斷的基準(zhǔn)信號(hào)并不需要基于現(xiàn)有技術(shù)硬件的同步的公開的高度準(zhǔn)確的時(shí)間分辨率。
[0184]此外,本發(fā)明提供一種用于估計(jì)基于任何給定中斷的同步基準(zhǔn)信號(hào)的定時(shí)精確度的不確定性的方法,并且利用濾波或統(tǒng)計(jì)手段改進(jìn)所述同步時(shí)鐘的精確度和穩(wěn)定性。
[0185]在圖6中以附圖標(biāo)記200示意性地示出根據(jù)本發(fā)明第二實(shí)施例的USB設(shè)備,具有USB202。USB設(shè)備200包括總線連接器204,USB設(shè)備200利用總線連接器204連接至USB202。USB設(shè)備200具有總線接口 /微控制器206、USB設(shè)備功能電路(例如數(shù)控?fù)Q能器)208、總線采樣電路210 (可與圖1的總線采樣電路20相比較)和同步電路212。
[0186]總線接口電路206探測(cè)存在于總線連接器204處的USB數(shù)據(jù)流,并將USB業(yè)務(wù)216的復(fù)制品214傳遞至同步電路212。同步電路212生成同步本地時(shí)鐘信號(hào)218,該同步本地時(shí)鐘信號(hào)218被傳遞到USB設(shè)備功能電路208,USB設(shè)備功能電路208使用該同步本地時(shí)鐘信號(hào)218同步地執(zhí)行來自總線接口 /微控制器206的命令220。同步電路212從USB業(yè)務(wù)216中解碼出周期性時(shí)鐘載波信號(hào)。
[0187]圖7是圖6的USB設(shè)備200的同步電路212的示意圖。同步電路212具有用于接收USB數(shù)據(jù)業(yè)務(wù)的復(fù)制品214的輸入端口 232、同步時(shí)鐘輸出端口 234、匹配濾波器236、多抽頭自激振蕩器時(shí)鐘238,以及時(shí)鐘選擇器240。
[0188]匹配濾波器236從輸入端口 232接收USB數(shù)據(jù)流242。匹配濾波器236從USB數(shù)據(jù)流242中解碼周期性載波信號(hào)(在本實(shí)施例中采用SOF包令牌的形式),并生成時(shí)鐘同步信號(hào)244。多抽頭自激振蕩器238 (其可采用耦合到多抽頭相位延遲發(fā)生器的自激振蕩器的形式)生成多個(gè)相位延遲的時(shí)鐘信號(hào)246。時(shí)鐘選擇器240利用時(shí)鐘同步信號(hào)244以選擇輸出時(shí)鐘信號(hào)248,而且該輸出時(shí)鐘信號(hào)248是多個(gè)相位延遲的時(shí)鐘信號(hào)246中選出的一個(gè)相位延遲的時(shí)鐘信號(hào)。本領(lǐng)域技術(shù)人員將會(huì)意識(shí)到,存在很多種利用便宜的自激振蕩器生成多個(gè)相位延遲的時(shí)鐘信號(hào)的方式。
[0189]以這種方式,同步電路230使用廉價(jià)的自激振蕩器和時(shí)鐘選擇器電路來控制數(shù)字控制環(huán)路中的輸出時(shí)鐘信號(hào)相位,以維持過程同步。這種系統(tǒng)通常將沒有傳統(tǒng)的模擬鎖相環(huán)架構(gòu)(其提供精確的相位和頻率控制)穩(wěn)定和準(zhǔn)確,但是這種方法提供了相對(duì)便宜的可替代同步系統(tǒng),因?yàn)樗捎媒逡源_定在任意給定時(shí)間使用的最適合的多個(gè)自激時(shí)鐘的一連串步驟(被實(shí)施為在現(xiàn)場(chǎng)可編程門陣列中操作的軟件或固件)。
[0190]為了更充分地解釋同步電路230的操作,圖8提供圖7的同步電路212內(nèi)的時(shí)鐘和控制信號(hào)的示意圖260。
[0191]解碼的幀開始信號(hào)262 (可與圖7中的244相比較)提供本地的同步時(shí)鐘必須與之同步的基準(zhǔn)信號(hào)。完全同步的理想時(shí)鐘264與兩個(gè)相位,即本地自激振蕩器的第一時(shí)鐘相位266和第二時(shí)鐘相位268 (可與圖7的多個(gè)時(shí)鐘相位246中的兩個(gè)時(shí)鐘相位相比較)一起被示出以供參考。輸出時(shí)鐘270 (可與圖7中的輸出時(shí)鐘信號(hào)248相比較)是用來控制同步的USB設(shè)備的同步的時(shí)鐘信號(hào)(可與圖6中的218相比較)。
[0192]幀開始解碼的脈沖272構(gòu)成同步窗口的開始,并且解碼的脈沖274構(gòu)成同步窗口的結(jié)束。理想時(shí)鐘264在頻率和相位上被同步成使得時(shí)鐘脈沖276的前沿與解碼的脈沖272對(duì)準(zhǔn),并且時(shí)鐘脈沖278的前沿與解碼的脈沖274對(duì)準(zhǔn)。(時(shí)鐘脈沖的前沿事實(shí)上可以是波形的任意可重復(fù)點(diǎn),但是在本論述中為了簡(jiǎn)單起見而選擇該前沿)。
[0193]自激振蕩器并不在精確受控的頻率和相位下操作,而是被允許頻率在其整個(gè)范圍上變動(dòng)。
[0194]第一時(shí)鐘相位266表不圖7的多相位時(shí)鐘237的一個(gè)相位,并且與解碼的脈沖272同步280。從第一時(shí)鐘相位266和理想時(shí)鐘264的比較中將明白的是,自激時(shí)鐘運(yùn)行得比理想時(shí)鐘頻率慢。這由相位滯后282表示,第一時(shí)鐘相位266在若干個(gè)時(shí)鐘周期之后相對(duì)于理想時(shí)鐘264表現(xiàn)出相位滯后282 (在本視圖中為了清楚起見而被放大)。盡管第一時(shí)鐘相位266與解碼的脈沖272同步,但是當(dāng)接收到下一解碼的脈沖274時(shí),如時(shí)鐘脈沖284所不,第一時(shí)鐘相位266異相。
[0195]第二時(shí)鐘脈沖268與解碼的S0F272不同步286 (或同相),但是由于圖7的本地自激振蕩器時(shí)鐘238的頻率不同步,因此第二時(shí)鐘相位268與解碼的S0F274同相288。
[0196]圖7的時(shí)鐘選擇器240充當(dāng)數(shù)字開關(guān)以將多個(gè)相位延遲的時(shí)鐘信號(hào)246中的一個(gè)路由至圖7的輸出端口 234。圖7的時(shí)鐘選擇器240與接收解碼的SOF脈沖同步地進(jìn)行切換,從多個(gè)相位延遲的時(shí)鐘信號(hào)246中選擇最適合的(即最準(zhǔn)確地對(duì)準(zhǔn)的)一個(gè)相位延遲的時(shí)鐘信號(hào)。
[0197]在圖8的示例中,圖7的時(shí)鐘選擇器電路240已在SOF脈沖272處選擇第一時(shí)鐘相位266,并且第一時(shí)鐘相位266作為輸出時(shí)鐘270繼續(xù)被發(fā)送,直到接收到下一解碼的SOF脈沖274為止。在圖7的時(shí)鐘選擇器電路240接收解碼的SOF信號(hào)274的時(shí)刻,第二時(shí)鐘相位268是多個(gè)相位延遲的時(shí)鐘信號(hào)246中最準(zhǔn)確地同相的(即時(shí)鐘脈沖288)。因此,第二時(shí)鐘相位268作為輸出時(shí)鐘270繼續(xù)被發(fā)送,直到接收到下一解碼的SOF脈沖為止。在接收到解碼的S0F274之前,輸出時(shí)鐘270的最后一個(gè)時(shí)鐘周期294具有與其余輸出時(shí)鐘周期不同的持續(xù)時(shí)間。給定解碼的SOF包的接收速率和為自激振蕩器時(shí)鐘合理選擇的頻率公差,最后一個(gè)時(shí)鐘周期294的誤差僅僅是一個(gè)時(shí)鐘周期的很小一部分。以這種方式,每次接收到新的解碼的SOF時(shí),以數(shù)字方式對(duì)自激振蕩器時(shí)鐘進(jìn)行相位調(diào)整。
[0198]自激振蕩器的典型頻率公差具有50ppm到IOOppm的量級(jí)。作為典型的IOMHz數(shù)據(jù)采集振蕩器的50ppm的公差,對(duì)應(yīng)于每秒500周期的最壞可能的頻率誤差。在USB高速系統(tǒng)中,以8kHz的速率(或用125 μ s的時(shí)長)接收SOF包。這意味著每125 μ s的SOF時(shí)長中或一個(gè)周期的1/16中發(fā)生最大500周期的時(shí)鐘誤差。IOMHz下一個(gè)周期的十六分之一對(duì)應(yīng)于6.25ns的最壞情況的相位誤差。在接連的SOF時(shí)長中該量級(jí)的累積相位誤差對(duì)于數(shù)據(jù)采集應(yīng)用是不可接受的。然而,根據(jù)本發(fā)明第二實(shí)施例,在每個(gè)SOF時(shí)長中該量級(jí)的相位誤差的數(shù)字校正能提供可接受的數(shù)據(jù)采集時(shí)鐘。
[0199]以這種方式,簡(jiǎn)單的僅數(shù)字相位控制環(huán)路與廉價(jià)的自激振蕩器時(shí)鐘一起使用,以在某些可接受的限度內(nèi)維持輸出時(shí)鐘頻率與來自USB的重復(fù)輸入時(shí)鐘載波信號(hào)同步。此夕卜,多個(gè)各自配置有相似電路的USB設(shè)備形成同步的USB。
[0200]本發(fā)明范圍內(nèi)的改進(jìn)可容易地被本領(lǐng)域技術(shù)人員實(shí)現(xiàn)。因此應(yīng)當(dāng)理解,本發(fā)明不限于上面以示例方式描述的特定實(shí)施例,并且這里描述的各種實(shí)施例的組合對(duì)于本領(lǐng)域技術(shù)人員是容易明白的。
[0201]在前述對(duì)本發(fā)明的描述中,除了由于表達(dá)語言或必要的暗示而在上下文中另有要求的地方之外,詞語“主機(jī)控制器”用來指代標(biāo)準(zhǔn)USB主機(jī)控制器、移動(dòng)USB(USB-on-the-go)主機(jī)控制器、無線USB主機(jī)控制器,或任何其它形式的USB主機(jī)控制器。
[0202]在前述對(duì)本發(fā)明的描述中,除了由于表達(dá)語言或必要的暗示而在上下文中另有要求的地方之外,詞語“包括”或者諸如“包含”和“含有”之類的變化形式以包括在內(nèi)的意義被使用,也就是說,指定所陳述的特征的存在而不排除在本發(fā)明各種實(shí)施例中存在或添加另外的特征。
[0203]進(jìn)一步,在這里對(duì)現(xiàn)有技術(shù)的任何引用并非旨在暗示這種現(xiàn)有技術(shù)形成或已形成公知常識(shí)的一部分。
【權(quán)利要求】
1.一種用于使USB設(shè)備的本地時(shí)鐘同步的方法,包括: 探測(cè)USB數(shù)據(jù)流; 從該USB數(shù)據(jù)流解碼周期性數(shù)據(jù)結(jié)構(gòu); 使用具有多個(gè)輸出的自激振蕩器時(shí)鐘,每個(gè)輸出具有相應(yīng)的相位; 在接收到該解碼的周期性數(shù)據(jù)結(jié)構(gòu)時(shí),選擇與該解碼的周期性數(shù)據(jù)結(jié)構(gòu)最同相的輸出;以及 基于所選擇的相位對(duì)該自激時(shí)鐘進(jìn)行相位調(diào)整,以補(bǔ)償不正確的自激時(shí)鐘的頻率或不同步的自激時(shí)鐘的頻率。
2.根據(jù)權(quán)利要求1所述的方法,包括重復(fù)地從所述輸出的相位中選擇與該解碼的周期性數(shù)據(jù)結(jié)構(gòu)最同相的相位,并基于所選擇的相位對(duì)該自激時(shí)鐘進(jìn)行相位調(diào)整。
3.根據(jù)權(quán)利要求1所述的方法,包括使用具有多個(gè)相位延遲的輸出的自激振蕩器。
4.根據(jù)權(quán)利要求1所述的方法,包括使用具有多抽頭延遲發(fā)生器的自激振蕩器生成所述多個(gè)相位。
5.一種同步的USB,包括根據(jù)權(quán)利要求1所述的方法被同步的多個(gè)USB設(shè)備。
6.一種用于使USB設(shè)備的本地時(shí)鐘同步的方法,包括: 探測(cè)USB數(shù)據(jù)流; 在該USB數(shù)據(jù)流中解碼周期性信號(hào)結(jié)構(gòu)包; 使用具有多個(gè)輸出的自激振蕩器時(shí)鐘,每個(gè)輸出具有相應(yīng)的相位; 在接收到該解碼的周期性信號(hào)結(jié)構(gòu)包時(shí),從所述輸出的相位中選擇與該解碼的周期性信號(hào)結(jié)構(gòu)包最同相的相位;以及 基于所選擇的相位對(duì)該自激時(shí)鐘進(jìn)行相位調(diào)整,以補(bǔ)償不正確的自激時(shí)鐘的頻率或不同步的自激時(shí)鐘的頻率。
7.根據(jù)權(quán)利要求6所述的方法,包括重復(fù)地從所述輸出的相位中選擇與該解碼的周期性信號(hào)結(jié)構(gòu)最同相的相位,并基于所選擇的相位對(duì)該自激時(shí)鐘進(jìn)行相位調(diào)整。
8.根據(jù)權(quán)利要求7所述的方法,其中所述周期性數(shù)據(jù)結(jié)構(gòu)包包括USB規(guī)范中定義的USB包信號(hào)結(jié)構(gòu)中的任一種:被發(fā)送給所述USB設(shè)備的命令序列、被發(fā)送給該USB設(shè)備的數(shù)據(jù)序列、OUT令牌、IN令牌、ACK令牌、NAK令牌、STALL令牌、PRE令牌、SOF令牌、SETUP令牌、DATAO令牌、DATAl令牌,或所述USB數(shù)據(jù)包中的預(yù)定義比特模式序列。
9.根據(jù)權(quán)利要求6所述的方法,包括使用具有多個(gè)相位延遲的輸出的自激振蕩器。
10.根據(jù)權(quán)利要求6所述的方法,包括使用具有多抽頭延遲的自激振蕩器。
11.一種用于使具有多個(gè)可選相移輸出的設(shè)備的自激本地時(shí)鐘同步的方法,該方法包括: (i)所述設(shè)備接收周期性基準(zhǔn)信號(hào); (ii)在接收到所述周期性基準(zhǔn)信號(hào)中的每一個(gè)時(shí),所述設(shè)備檢測(cè)所述多個(gè)可選相移輸出中的哪一個(gè)與所述周期性基準(zhǔn)信號(hào)最同相;以及 (iii)采用所述相移輸出中的所述最同相的相移輸出作為所述本地時(shí)鐘信號(hào)。
12.根據(jù)權(quán)利要求11所述的方法,包括通過重復(fù)步驟(i)至(iii)在相位上對(duì)所述本地時(shí)鐘信號(hào)進(jìn)行周期性地調(diào)整。
13.根據(jù)權(quán)利要求11所述的方法,包括當(dāng)在多個(gè)時(shí)鐘周期之上被評(píng)估時(shí)選擇與所述周期性基準(zhǔn)信號(hào)最同相的相移輸出。
14.根據(jù)權(quán)利要求11所述的方法,進(jìn)一步包括: 確定所述自激振蕩器輸出在所述周期性基準(zhǔn)信號(hào)的接連的周期之間的時(shí)段期間所經(jīng)歷的累積相位誤差;以及 在所述周期性基準(zhǔn)信號(hào)的接連的周期之間的時(shí)段內(nèi),周期性地選擇所述多個(gè)相移輸出中下一個(gè)最適合的 相移輸出,以便持續(xù)最小化該輸出時(shí)鐘信號(hào)的絕對(duì)相位誤差。
【文檔編號(hào)】G06F1/10GK103631745SQ201310487304
【公開日】2014年3月12日 申請(qǐng)日期:2008年5月12日 優(yōu)先權(quán)日:2007年5月15日
【發(fā)明者】彼得·福斯特 申請(qǐng)人:克羅諾洛吉克有限公司