中文字幕无码日韩视频无码三区

突發通信的時鐘恢復方法

文檔(dang)序號:7505532閱讀:616來源(yuan):國知(zhi)局
專利名稱:突發通信的時鐘恢復方法
技術領域
本發明一般涉及時鐘恢復方法,尤其涉及在具有突發信號傳輸(例如USB)的通信系統中的恢復時鐘的方法。
相關應用的參考本申請涉及于2001年6月19日提交的、以“FIELDPROGRAMMABLE MIXED-SIGNAL INTEGRATED CIRCUIT”為標題的美國專利申請09/885,459(Atty.Dkt.No.CYGL-25,768)(被包括在這里作為參考)以及與其同時的未決美國專利申請No._的“PRECISION OSCILLATOR FOR AN ASYNCHRONOUSTRANSMISSION SYSTEM”,Atty.Dkt.CYGL-26,116(也被包括在這里作為參考)。
背景技術
串行總線通信協議長期以來用于兩個設備之間的通信。這種串行通信能夠提供兩個設備間長距離或者短距離的通信,而且既可以為“同步的”也可以為“異步的”。對于異步傳輸來說,提供兩個獨立的時鐘,一個在主結點,一個在從結點(注意在通信路徑的任意端上的任一設備都可以做為主結點或者從結點),其中主結點和從結點都可以只基于它們的時鐘接收或者發送數據。異步通信會稍微慢于同步通信,因為在兩個時鐘之間當然存在一定差異。對于同步通信來說,在獨立時鐘線上的兩個設備之間提供獨立的時鐘信號,或者利用某種類型的時鐘恢復。一種利用獨立時鐘線的同步串行傳輸協議被稱作I2C。在時鐘恢復系統中,時鐘信號與同一線路上的數據重疊,使得能夠根據數據傳輸恢復時鐘信息。一種這樣的時鐘恢復協議是曼徹斯特編碼的PSK。與本說明書相關的另一種是通用串行總線(USB)。
為了維護兩個系統之間的同步,接收端典型的做法就是“鎖住”所接收的數據,并從中提取時鐘信息。典型地提供接收時鐘,接收時鐘將使其頻率和相位充分地等于從接收到的數據中所提取發送時鐘的頻率和相位。用于提供接收時鐘并且校調整其頻率和相位的一種技術是鎖相環。對于連續發送系統,例如曼徹斯特編碼的PSK,數據發送是在充分連續的基礎上,使得在接收時鐘和發送時鐘之間相位和頻點誤差被連續地最小化或者得到校正。然而,對于USB傳輸系統,它具有被稱為“突發”通信;也就是,數據只出現在突發中。因此,為了鎖住鎖相環,不存在充分連續的數據傳輸。這樣,在沒有數據發送的期間,接收時鐘可能會在相位和頻率上漂移,在接收下個數據突發的時候,在能夠保證數據接收的完整性之前將必須重新獲得鎖定。
發明綜述這里所公開和要求的發明,從一方面來說,包括一種用于根據接收到的、包含了具有在數據突發之間基本沒有數據的區域的數據突發的數據流恢復時鐘的方法。提供了工作在參考頻率范圍內的接收時鐘。然后,相對于接收時鐘來測量在接收到的數據中數據轉換之間的時間。如果所測得的時間基本上是接收時鐘的整數,那么就作決定。如果不是接收時鐘的基本整數,就調整接收時鐘以補償差別。


為了更完整地理解本發明及其優點,結合浮土參考以下描述,其中圖1是使用USB接口的混合信號(mixed-signal)集成電路的整體框圖;圖2是圖1所示的集成電路的詳圖;圖3是通用UART的框圖;圖3A是波特率發生器的框圖;
圖4是精確振蕩器的框圖;圖5是圖4所示的精確振蕩器的詳圖;圖6是精確振蕩器的輸出波形圖;圖7是溫度補償參考電壓的示意圖;圖8是輸出波形整形電路的一半的示意圖;圖9是表明掩模可編程特點的其中一個電阻器的示意圖/布局;圖10是可編程電容器的示意圖;圖11是比較器的示意圖;圖12是與比較器結合起來的S/R鎖存器的邏輯圖;圖13是延時模塊的示意圖;圖14是比較器的偏移量電路的示意圖;圖15是兩個計算機外圍設備的框圖;圖16表明了USB端口的數據流;圖17是用于根據突發通信恢復時鐘的系統的整體框圖;圖18是相對于PH以K為模的計數的SP計數器工作示意圖;圖19是SP計數值的示意圖;圖20說明了相對于SP計數的接收數據轉換的示意圖;圖21是SP計數器和BP計數器的操作的示意圖;圖22是突發通信時鐘恢復方法的整體框圖;圖23是描述突發通信方法基本控制步驟的簡化流程圖;圖24是一個振蕩器實例的框圖;圖25和圖26表明了振蕩器控制表。
發明詳述參考圖1,介紹一種集成電路,包括完全集成芯片上的混合信號集成系統,此芯片包括具有可編程增益預放大器S12的真12位多信道ADC 110、兩個12位DAC 114和116、兩個電壓比較器118和120、電壓參考22和具有32K字節快速擦寫存儲器126的8051兼容微控制器內核124。還配備有I2C/SMBUS 128、UART 130,和以硬件實現的SPI 132串行接口140(在用戶軟件中不是“bit-banged”),以及具有五個截獲/比較模塊的可編程計數器/計時器陣列(PCA)134。還有32個通用數字端口I/O。在模擬側還包括多路復用器113,可以連接八個模擬輸入信號到可編程放大器112以及到ADC 110。
通過板上VDD監測器136、WDT、和時鐘振蕩器137,集成電路是芯片上的獨立系統。MCU有效地配置和管理模擬和數字外圍設備。甚至能夠內部電路地(in-circuit)重新編程快速擦寫存儲器126,以便提供非易失性的數據存儲,并且也允許8051固件的現場升級。MCU還能夠單獨關閉任何或全部外圍設備,以節約電量。
JTAG接口142允許用戶通過常規的JTAG輸入組144與集成電路進行交互。板上JTAG調試支持允許使用安裝在最終應用中的集成電路產品的、非干涉的(不使用片上資源)、全速率的內部電路調試。此調試系統支持對存儲器和寄存器的檢查和修改、設置斷點、觀察點,單步執行、運行和暫停命令。當使用JTAG進行調試時,所有的模擬和數字外圍設備都是完全起作用的。
微控制器140完全與MCS-51TM指令集兼容。標準的803x/805x匯編程序和編譯器可以用于開發軟件。內核具有標準8052包括的所有外圍設備,包括三個16位計數器/計時器、全雙工UART、256字節的內部RAM、128字節的專用功能寄存器(SFR)地址空間、和4個字節寬度的I/O端口。通用串行總線(USB)接口具有與存儲器162(其全部或部分可以在具有控制器160的集成電路上)接口的控制器160和USB收發器164。收發器164將與專用管腳166連接,來接收/發送串行數據。這些數據被稱作“突發通信”。
進一步參考圖1,內核141通過內部總線150與各種輸入/輸出模塊接口。縱橫機(cross-bar switch)152提供了UART 130、SPI總線132等等與數字I/O輸出之間的接口。這是可以配置的接口。
內核140使用流水線結構,這樣大大的增加了它在標準8051體系結構上的指令流量。在標準8051中,在最大系統時鐘是12M赫茲時,所有的指令(除了MUL和DIV以外)都需要12或者24個系統時鐘周期來執行。作為對比,內核140在一個或兩個系統時鐘周期內執行70%的指令,而只有四條指令用了多于四個系統時鐘周期。內核140總共有109條指令。指令的個數與執行他們所需的系統時鐘周期如下所示

當內核140的最大系統時鐘在20M赫茲時,它的峰值流量為20MIPS。
作為對圖1系統的綜述,縱橫機152能夠被設置為將其I/O側的任何端口連接到提供縱橫機152和內核140之間接口的任何功能模塊128、130、132、134、或者136。而且,縱橫機152還能夠通過這些功能模塊128-136直接連接到總線150。
現在參考圖2,表示圖1所示的集成電路的更詳細的框圖。在此實施例中,可以看到,縱橫機152實際上通過總線150與系統總線202接口。總線150是允許內核140與各種功能模塊128-134、和多個計時器204、206、208和210以及三個鎖存器212、214和216連接的總線。縱橫機152配置有由內核140配置的配置模塊220。縱橫機152的另一側,I/O側,與由與總線150連接的端口鎖存器224所控制的多個端口驅動器222連接。另外,內核140可以利用控制模塊226中的模擬接口配置來配置模擬側。
內核140由線路232上的時鐘來控制。如圖所示,時鐘選自具有多路復用器236的兩個位置其中之一。第一個是外部振蕩器電路137,第二個是內部振蕩器236。內部振蕩器電路236是精確的溫度補償振蕩器,以下會詳細描述。內核140同時由復位線154上的復位輸入控制。復位信號由監視計時器(watchdog timer)電路(WDT)136產生,時鐘和復位電路都由內核140控制的時鐘和復位配置模塊240來控制。因此,可以看出,用戶能夠配置系統以外部晶體振蕩器或者基本上是“自激的”的內部精確的非晶體非穩定振蕩器來運行。這個振蕩器236(以下將會描述)為內核140和UART 130產生計時,并且相對于溫度是穩定的。
現在參看圖3,圖示說明了UART 130的框圖。系統時鐘被輸入到波特率發生器302,波特率發生器302提供了線路304上的發送時鐘和線路306上的接收時鐘。發送時鐘被輸入到發送控制模塊308,接收時鐘被輸入到接收控制模塊310。提供串行控制寄存器(SCON0)320,其可操作地向控制模塊308和310提供控制信號。傳輸數據被從總線322上接收并通過門324被輸入到串行數據緩沖器(SBUF)326。此數據的輸出被輸入到零檢測器328,然后輸入到控制模塊308。系統是異步的、全雙工的串行端口設備,并提供兩個相關的專用功能寄存器,串行控制寄存器(SCON0)320以及串行數據緩沖器(SBUF0)(沒有圖示)。數據在線路312上被接收,并被輸入到輸入移位寄存器314中。這由控制模塊310控制,以輸出移入的(shifted-in)數據到鎖存器332中,然后通過門334輸出到SFR總線322。在傳輸模式下,數據被從SFR總線321接收,并通過門324輸入到發送移位寄存器326中。其從發送移位寄存器326或者從控制模塊308通過作為到傳輸線路319的OR門340的一個輸入的AND門338輸出到傳輸線路319。以上全部由控制模塊308來控制。
現在參看圖3A,說明波特率發生器302的框圖。這個波特率是由計時器產生的,其中模塊TL1產生發送時鐘,而TL1的復件(表示為RX計時器)產生接收時鐘,其中TL1的復件是用戶不可訪問的。發送和接收計時器溢出都除以2,用于發送時鐘和接收時鐘的波特率。當計時器1被使能時,接收計時器就工作,并且使用相同的TH1值,這是重新加載的值。然而,在接收管腳上檢測到開始條件時,強制進行RX計時器重新加載。這樣就允許了不管發送計時器的狀態,不論何時只要檢測到開始就開始接收。
現在參看圖4,說明位于集成電路中的精確內部振蕩器236的示意圖。在上文提到的集成電路,是商業上可獲得的、包括與其相關的精確振蕩器236的集成電路。集成電路能夠選擇晶體振蕩器(其中晶體位于兩個晶體端口之間)、選擇外部時鐘信號或者選擇內部自激振蕩器。自激振蕩器在圖4中表示為精確振蕩器236。振蕩器的中心是兩個比較器,第一比較器402和第二比較器404。提供溫度補償參考電壓電路406,其向比較器402的負輸入端提供溫度補償參考電壓(斷路電壓VTRIP)作為。比較器402和404的輸出端分別連接到S/R鎖存器408的置位和復位輸入端。其Q和Q-Bar輸出端被輸入到輸出RC定時電路410,其中輸出RC定時電路410可操作地限定振蕩器的周期,S/R鎖存器408的輸出提供了輸出時鐘信號。RC定時電路410的輸出被反饋回比較器402和404的正輸入端。輸出RC定時電路410也是溫度補償的。如以下將會描述的那樣,電壓參考模塊406提供負溫度系數,而比較器402和S/R鎖存器408組合提供正溫度系數,輸出RC定時電路410提供正溫度系數。所有組合的系數將接近于零,如下文描述的那樣。
現在參看圖5,說明圖4中的精確振蕩器的更加詳細的示意圖。電壓參考電路406包括分壓器,其在結點502上將供電電壓VDD分壓為VTRIP。分壓器包括表示為R3的上電阻器504。分壓器的下半部分包括兩個并聯的電阻,表示為R2的電阻506和表示為R4的電阻508。為了命名的目的,這些電阻器將分別被稱為R2、R3和R4。
電阻R3和R4由相同材料制成,用于提供正溫度系數。這些電阻由具有正溫度系數的N-擴散材料制成。作為對比,R2由第一層中的多晶硅制成,其被稱為Poly1材料,并且也具有正溫度系數,但是不相同的正溫度系數。應該理解,可以使用不同材料,只是必須有具有不同的溫度系數的兩個電阻。盡管不屬于本說明書的一部分,Poly1材料基本是置于氧化保護層上方基層上的多晶硅第一層,從中制成如晶體管門的結構。電阻的正溫度系數將導致具有負系數電壓VTRIP。如下所述,不同材料的電阻有助于兩個電阻R2和R4之間的調整,以改變溫度系數。這主要是因為他們是不同材料這個事實。
輸出RC定時電路410包括兩個RC控制電路。第一RC電路包括P通道晶體管520,它的源/漏極路徑連接在VDD和表示為R的電阻522的一端之間,電阻522的另一端連接到節點524。節點524連接到電容526的一端,而電容526的另一端連接到Vss。通道晶體管528的源/漏極路徑連接跨過電容526,并且其柵極連接到P通道晶體管520的柵極,并且也連接到S/R鎖存器408的Q-輸出端。節點524包含比較器402的正輸入。第二RC網絡包含P通道晶體管530,其源/漏極路徑連接在VDD和電阻532(表示為R)的一端之間,電阻532的另一端連接到節點534。節點534連接到電容536的一端,電容536的另一端連接Vss。N通道晶體管538的源/漏極路徑連接在節點534和Vss之間。晶體管538的柵極連接到晶體管530的柵極,并也連接到S/R鎖存器408的Q-Bar輸出端。節點534包含比較器404的正輸入。圖5電路的輸出波形在圖6中表示,其中為每個RC電路圖示說明傳統的RC起落曲線都有。每個輸出波形的周期被限定為從初始接通點(在那里,電壓被施加到電阻R上)到另一個RC電路中的電阻R被接通那點。對于每個RC電路分別為周期T1和周期T2。這兩個周期的和與振蕩器的周期相等。制作晶體管520、530、528和538,使得他們的阻抗會充分地小于電阻522和532的電阻值。電阻522和532由Poly1材料制成,這是由于它低的溫度系數。振蕩器的周期是周期T1和周期T2之和再加上比較器延遲的兩倍。
現在參看圖7,說明參考電壓406的實施方式的詳細框圖。圖5中表示為與VDD連接的電阻504實際上是通過P通道電阻702的源/漏極連接到VDD,而其柵極與偏置電壓連接。相似地,電阻506的底部通過N通道晶體管706的源/漏極路徑與Vss連接,晶體管704和706的柵極都與偏壓連接。制造晶體管702、704、和708,使得他們的阻抗充分地小于電阻R2、R3和R4的電阻值。而且,第一級電源供電獨立也是由于斷路電壓VTRIP與供電電壓成比例,即,VDD*(1-e(t/τ))。因此,在達到比較器的輸入端上斷路電壓所需要的時間中,獨立于第一級地供電。這是使用RC定時電路而不是電流源來對電容充電的一個原因,電流源不提供第一階抵消。
VTrip=VDD*ratioVTrip=VDD*(1-e(-T1/τ))T1=-τ*ln(1-VTrip/VDD)ThusT1=-τ*ln(1-ratio)從溫度補償的觀點來看,電壓參考電路406有許多方面都可以用來提供溫度補償。通常,電阻具有相對于溫度的固定變化(setvariation)。Poly1電阻R2的溫度系數為255ppm,而N-擴散電阻R3和R4的電阻溫度系數為800ppm。在本說明書中,希望具有負系數462ppm。
為了分析用電阻R2、R3和R4這樣產生負溫度系數,假定R2和R4是定義為REQ=R2//R4的并聯組合。如果REQ和R3具有不同的溫度系數并且TCR3>TCREQ,那么斷路電壓將具有負的溫度系數。VTRIP是如下定義的VTRIP=REQR3+REQVDD]]>1VTRIPdVTRIPdT=1REQdREQdT-R3R3+REQ[1REQdREQdT]-R3R3+REQ[1R3dR3R3dT]]]>1VTRIPdVTRIPdT=R2R3+REQ[TCREQ+TCR2]]]>至于REQ,必須假定VTRIP為定值,這樣R2和R4可以是不同的,以獲得特定的溫度系數。可以由如下等式表明1REQdREQdT=[1R2dR2dT]+[1R4dR4dT]-R2R2+R4[1R2dR2dT]-R4R2+R4[1R4dR4dT]]]>TCREQ=TCR2+TCR4-R2R2+R4TCR2-R4R2+R4TCR4]]>等式5的結果可以誒應用在等式3中,以設置最終的溫度系數VTRIP。
現在參看圖8,說明充電結構410的一半的實現的詳細圖示。與對于參考電壓結構406的情況相同,提供了P-通道晶體管802,用于連接電阻522的上端到VDD,而其柵極連接到偏置電源。P-通道晶體管為其溫度操作引入了非常小的誤差。電容526為可變電容,這樣可以改變其電容值來設置振蕩器的周期。電容526由設置在第一層poly,P1和第二層poly,P2之間的絕緣體以及位于其間的氧化物制成。電阻522是晶體擴散電阻。
參考電壓電路406中的電阻R3、R2和R4為可變電阻,可以是掩模可編程電阻。電阻R3用來設定VTRIP的值,電阻R2和R4用來選擇溫度系數,這是因為他們具有不同的溫度系數。
圖9是電阻R2--R4中的一個的布局圖。提供了多個串聯電阻,它們都被制造在具有N-類型擴散的基片中或在Poly1層中。這些電阻提供了掩模可編程組連接904,以允許一個或多個電阻902被加入到電阻串中,他們最初是被短路。盡管在圖中沒有表示,但是也提供了使電阻中附加的那些短路的能力,以減小電阻值。這是掩模可編程的,并且被用于在金屬級“調整(tweak)”設計。
現在參看圖10,說明電容526的示意圖,電容526是寄存器可編程電容,以允許中心頻率的調整。這里提供了380fF的標稱電容1002,它被連接在節點24和Vss之間。與其并聯地,還提供了掩模可編程電容1004,其為編程的八個步驟提供了39.5fF的增加。寄存器可編程電容配備有值為“C”的電容1006,電容1006被連接在節點524和N-通道晶體管1008的源/漏極路徑的一端,N-通道晶體管1008的柵極被連接到LSB位。設置在開關晶體管1008和節點524之間的電容1006的配置只用于LSB。這種結構允許使用較小的單位(unit)電容,但存在由晶體管1008的源/漏極和引線結合器引入的非線性電容量。余下的可選電容每個都包括電容1010,電容1010被連接在Vss和N-通道晶體管1012的源/漏極路徑的一端之間,N-通道晶體管1012的源/漏極路徑的另一端被連接到節點524,而其柵極被連接到位[1]至[6]。與位<1>相關的電容1010的值為“C”,下一個可選的電容具有連接到位<2>的相關晶體管柵極,而最后一個可選電容1010具有連接到位<6>的相關晶體管柵極和值32C。這是二叉樹狀,具有提供近似為C/2的LSB的LSB。
現在參看圖11,說明每個比較器402和404的不同輸入結構的示意圖。這里提供了兩個微分P-通道晶體管1102和1104,其源/漏極路徑的一端與節點1106連接,節點1106通過電流源1108連接到VDD。晶體管1102的源/漏極路徑的另一端連接節點1110,晶體管1104的源/漏極路徑的另一端連接節點1112。晶體管1102的柵極包括正輸入,晶體管1104的柵極包括連接到VREF的負輸入。節點1110連接到N-通道晶體管1114的源/漏極路徑的一端及其柵極,而晶體管1114的源/漏極路徑的另一端連接VSS。節點1112連接到N-通道晶體管1116的源/漏極路徑的一端,N-通道晶體管1116的源/漏極路徑的另一端連接到VSS,而其柵極連接節點1118,節點1118連接到電阻1120的一端,其另一端連接到晶體管1114的柵極。節點1112也連接到N-通道晶體管1122的柵極,其源/漏極路徑連接在節點1118和VSS之間。這種結構被稱為改進的Flynn-Lidholm鎖存比較器,其提供具有動態邏輯的置位/復位鎖存,在1992年7月的Vol.27 No.7中Flynn M.LidholmS.U.的“A 1.2μm CMOS Current Controlled Oscillator,IEEE Journal ofSolid state Circuits”中對其進行了描述。
現在參看圖12,說明比較器402和表示Q-Bar輸出的S/R鎖存器408的一半的示意圖。S/R鎖存器408的這一半使其置位輸入連接到比較器402的輸出端,并被輸入到N-通道晶體管1202的柵極,N-通道晶體管1202的源/漏極路徑連接在節點1204和VSS之間。P-通道晶體管1206的源/漏極路徑連接在節點1204和VDD之間,其柵極連接到節點1208。節點1204連接到常規反相器1210的輸入,并也被連接到N-通道晶體管1212的源/漏極路徑的一端,N-通道晶體管1212的源/漏極路徑的另一端連接到VDD,N-通道晶體管1212的柵極連接到節點1214,節點1214也連接到反相器1210的輸出端。節點1214連接到反相器1216的輸入端,其輸出提供Q-Bar輸出。節點1214也通過延時模塊1218連接到表示為“ND1”的NAND門1220的輸入。NAND門1220包括P-通道晶體管1222(其源/漏極路徑連接在VSS和節點1208之間)和N-通道晶體管1224(其源/漏極路徑連接在節點1204和N-通道晶體管1226的源/漏極路徑的一端之間,N-通道晶體管1226的源/漏極路徑的另一端連接VSS)。晶體管1222和1224的柵極連接到延時模塊1218的輸出端。晶體管1226的柵極連接到來自S/R鎖存器408另一側的復位輸入“RST”。節點1208連接至反相器1230的輸入,其輸出驅動N通道晶體管1232(其源/漏極路徑連接在比較器402的輸出端,鎖存器408的SET輸入端之間,而晶體管1232的源/漏極路徑的另一端連接到VSS)。為比較器404的輸出提供圖12中所示的與比較器402的輸出相關的并聯結構,用于復位輸入。
操作中,當比較器402的正輸入,FB1,充電時,SET開始變高。當它到達晶體管1202的門限電壓VTH時,Q-Bar開始變低,同時,具有類似于ND1的NAND門ND2的鎖存器的另一端開始變低,并使RST變低。當RST變低時,就置位了Q-輸出。最初,假定Q-Bar被設置為值“1”,Q-輸出被設置為“0”,而FB1在比較器402上等于“0”,比較器404正輸入的FB2初始設置為“1”(SET=0和RST=1)。在RST變低以前,延時模塊1218阻止ND1使SET值變低。RST的變低保證了降低的輸入是低的(或者ND1高),從而導致了SET/RST的均衡過程。
現在參看圖13,說明延時模塊1218的示意圖。這個延時模塊包括多個串聯的、包括兩個串聯晶體管的反相器,P通道晶體管1302和N通道晶體管1304,其柵極連接在一起,而其源/漏極路徑的一端連接到節點1306,晶體管1302連接在VDD和VSS之間。
現在參看圖14,說明表示怎樣加強供電獨立的簡化比較器的示意圖由位于VDD和節點1404之間的電流源1402、連接到兩個微分連接的P通道晶體管1406和1408一側的節點1404來說明。圖14的比較器。晶體管1406的柵極連接到一個輸入,而晶體管1408的柵極連接到另一個VREF的輸入。晶體管1406的源/漏極路徑的另一端連接到節點1410,節點1410連接到N通道1412的源/漏極路徑的一端,N通道1412的源/漏極路徑的另一端接地,N通道1412的柵極連接到其在節點1410上的漏極,也連接到N通道晶體管1414的柵極。晶體管1414的源/漏極路徑連接在晶體管1408的另一側和VSS之間。另外,P-通道類型的偏移晶體管(offset transistor)1416的源/漏極路徑連接跨過晶體管1408的源/漏極路徑,其柵極連接到VREF和晶體管1408的柵極。晶體管1416表示可選晶體管,其為掩模可編程的,以選擇比較器中預定偏移的。比較器輸入端的偏移有助于供電獨立。如果沒有偏移量,以下情況將是真實的有偏移量TPeriod=2*(-τ*ln(1-VTrip/VDD)+TDelay(comp))TPeriod=2*(-τ*ln(1-ratio)+TDelay(comp))VTrip=ratio*VDD沒有偏移量VTrip=VTrip+VOSTPeriod=2*(-τ*ln(1-ratio-Vos/VDD)+TDelay(comp))從這些方程式中可以看到,已經增加了VDD的依賴性。通過變化晶體管1416,能夠增加或減小電源供應的依賴性,注意還可以有跨過晶體管1406的可變晶體管。這樣,偏移可以為負或者為正。同樣的,這是掩模可編程系統。
現在參看圖15,說明兩個計算機外圍設備(發送設備1502和接收設備1504,各自獨立又通過串行通信線路1506互相連接)的框圖。在圖15中表示單向傳輸,其中信息被從發送器1502發送到接收器1504。表示為Tref的發送時鐘1508與發送器相關。與接收器1504相關的則為接收時鐘1510Tclk。在圖16中說明發送的數據,其中有大量的數據突發1602,它們在不同的時間發生在時間線(timeline)上,盡管它們可能以給定的周期重復。然而,對于突發通信,注意到以下情況很重要,即通信實際上在突發1512之間的有限時間內消失,使得接收時鐘1510具有更難從接收數據中獲取時鐘信息的時間。
現在參看圖17,說明用于根據突發通信恢復時鐘的系統的整體框圖。接收時鐘1510,如上文所述,是可變頻率時鐘,并且可以使其頻率和相位改變。為了追蹤數據轉換和判定時鐘是否沒有被鎖定,提供第一計數器1702,這個第一計數器1702被稱作滑動周期計數器(SP計數器,Slip Period Counter)。此計數器1702可操作地接收線路1704上的數據轉換以及線路1706上的時鐘電路1510的輸出作為輸入。以高于發送時鐘的速率操作接收時鐘l510,在本說明書中為4X,以提供過采樣的情況。因此,對于發送端時鐘Tref的每一個周期,將有時鐘1510的四個周期。滑動周期計數器1702可操作地在檢測到數據轉換時就以值“0”開始計數。以最高位,,計數器1702將只以兩個最低位繼續向上計數,以提供對4取模的計數,可以理解,這可以是任何取模基數的,也就是,可以為對8取模,對16取模等等。因此,這兩個最低位將從“0”計數到“3”,然后再重新從“0”開始。這兩個最低位的值被稱作相位滑動值“PH”。實際上,計數器1702的這兩個最低位將為發送時鐘的每一個周期提供四個計數值。
如下文所描述的那樣,滑動周期計數器在出現相位滑移時被復位,而且可操作地使用PH值來確定下一次滑移發生的時間。當采樣到后來的數據轉化且PH計數器的值不為零時,這種情況會發生。這表明接收到的數據間隔不是PH時鐘周期乘四的整數倍。例如,在接收到的數據中進行數據轉換時啟動計數器1702。這將導致接收時鐘1510增加計數值。第一數據轉換將發生在PH時鐘值為“0”的時候。如果發送時鐘和接收時鐘被鎖定,并且沒有頻率誤差,且數據轉換間隔為PH時鐘周期乘四的整數倍,那么數據轉換將總是發生在PH時鐘計數值為“0”的時候。然而,如果其中一個時鐘相對于另一個接收/發送時鐘發生漂移,那么將會到達一個時間點,在那里,與數據轉換的發生相關的PH時鐘的值可能對于相對于接收時鐘慢的發送時鐘為“1”,或者對于比接收時鐘快的發送時鐘為值“3”。在確定數據轉換發生在PH計數器值為非“0”時(這產生“滑動”)的時候,SP計數器1702將被記錄,并被輸出到處理器1710,接著SP計數器1702復位。
提供第二計數器,計數器1708,以對與“位周期”相關的接收時鐘周期的數量進行計數,這被稱為“BP”計數器。位周期是發生在接收數據的第M個數據和第M-1個數據轉換之間的兩個數據轉換之間發生的接收時鐘循環的數量,其中,第M個數據轉換構成被確定為在滑移發生并且SP計數器1702被復位時的數據轉換。于是,BP計數器1708的輸出被鎖存在鎖存器1712中,其輸出被提供給處理器1710。如下文所述,鎖存器的內容包括當前滑動周期和最近的上個滑動周期的最后一個位周期的計數。
除了確定SP和BP計數器值,還將提供主誤差(ME)模塊1716,它被用來計算誤差值。這利用線路1704和1706上的數據轉換和時鐘信號。這被提供給處理器1710。
處理器1710將利用來自SP計數器1702的滑移提示和它的值、鎖存器1712的內容和ME模塊1716的內容來確定為了實現接收時鐘1510中的改變以減小接收和發送時鐘之間所需要的頻率誤差所需要的振蕩器校正的方向和校正的大小。然后,它被輸出到振蕩器校準模塊1720,振蕩器校準模塊1720將校正控制提供給接收時鐘。這與使用迭代步驟的標準鎖相環相對照,其中它計算出誤差,然后在一個方向或者另一個方向步測(step)振蕩器,以重新確定誤差。步測的步幅典型是恒定步幅。在所公開的實施例中,處理器1710實際上確定步幅的值和方向。校準模塊1720包括帶符號的加法器。這包括求和器1721,其在輸入端1723上接收誤差εosc,求和器1721的輸出輸入到校準寄存器模塊1730。然后,校準寄存器模塊1730的輸出被輸入到求和器1721的另一個輸入端,并向振蕩器1510提供頻率輸入。
在本說明書的時鐘恢復中,假定到來的轉換之間的時間間隔為參考時鐘Tref周期的整數倍,這是由于時鐘恢復的要求是能夠產生本地振蕩器和參考或者發送振蕩器之間頻率誤差的可靠測量。本系統利用到來的轉換周期的量化特性,以便生成誤差的測量。例如,如果使用以K倍于本地時鐘運行的SP計數器1702來測量每一個到來的轉換,那么在接收和發送時鐘處于相同頻率時,每個轉換都應該發生在此SP計數器1702的相同的對K取模的邊界上。然而,正如以上提到的,如果接收時鐘稍快,那么在每個到來的轉換處對K取模地采樣的計數器值將趨向于在正方向上“移動”。相似地,如果接收時鐘稍慢,則對K取模采樣的轉換將趨向于在負方向上移動。
現在參看圖18,說明SP計數器怎樣相對于PH對K取模的計數器運行的示意圖。可以看到,SP計數器在值“0”處被啟動,然后向上計數。PH計數器也與SP計數器同時被復位為零(這是因為它基本包括SP計數器1802的至少兩位重要位),并且開始從“0”計數到“3”。這樣連續循環,使得,例如每個4的倍數(例如值“8”和“12”)將得到值“0”。
現在參看圖19,說明SP計數值從“0”到值“SP”的示意圖。如果在PH≠0處采樣到一個轉換,并且在PH=1處采樣到后一個轉換,這就被稱為“相位滑動”,這表明接收時鐘快于參考時鐘。因為即使是時鐘的輕微不匹配都最終造成這種情況,所以不知道快多少。在圖19中,第一轉換被表示為發生在SP計數開始時,這是由在前一個SP計數值中檢測到滑步而啟動的,正如下文詳述的那樣。在計數值為“0”的第一計數循環1902,轉換可能已經在計數循環開始到將使計數器加1的下一個時鐘邊之間的時鐘周期內的任何一點上被采樣。這被測量作為從起始邊緣1906(由接收時鐘限定的邊緣1904)到轉換邊緣(由發送時鐘Tref限定的邊緣)的距離,其具有相對于接收時鐘,Tclk,的值aTclk。接收系統將繼續采樣轉換,直到檢測到相位滑動。這將發生在滑動周期SP的最后一個值,在轉換1908處,這個轉換又由發送時鐘Tref確定。轉換1906和1908被整數個發送時鐘N隔開,給出時間間隔N·Tref。第二轉換將在SP計數器1702的最后一個計數循環1910內的任何地方發生。然而,從一個接收時鐘邊緣到接收數據轉換的計數循環內的位置又是未知的。它相對于接收時鐘被定義為b·Tclk。已知相位滑動之間的時間及相位滑動值就提供了頻率誤差,也就是,時間變化上的相位變化。然而,注意,由于不確定aclk,相位滑動“1”可能代表比“0”大比“2”小的相位滑動。振蕩器具有已知的最大誤差,因此,如果在時間上間隔足夠遠地發生轉化,使得相位滑動將太大并超過這個誤差,那么將忽略這個測量。由于數據的突發特性和大的靜寂時間的可能,可能存在這種情況,導致了可能出現轉換之間的時間太大。如果不忽略,可能導致錯誤大小和/或符號的頻率校正。
現在參看圖20,說明相對于SP計數器的接收數據轉換的更詳細示意圖。在第一計數循環2002處的零值處對計數器復位,同時發生接收數據轉換2006,數據轉換2006位于與計數循環2002的前沿距離值aTclk。轉換2006被表示為T1。將表示為Tn的第n個轉換2004說明為發生在值為“41”而PH值為“1”(這表明一個SP時鐘的相位滑動)的、SP計數器2202的計數循環2008期間。轉換2004位于與計數循環2008的前沿距離bTclk。如果時鐘被鎖定,使得N Tref=NKTclk且沒有相對相位滑動,那么這將導致計數循環模塊2010中的第n個轉換Tn的轉換2004’的值為“40”,而PH值為“0”(表明沒有相位滑動)。轉換2004’與計數循環模塊2010的邊緣的距離等于aTclk,使得轉換2006和轉換2004’之間的時間就為NKTref。然而,既然存在時鐘的相位滑動,那么從SP時鐘2002的前沿起的值將為Nclkf+(b-a+1)·Tclk,導致了誤差2012。如果誤差的符號和誤差大小都已知的,那么這個誤差可以被用來調整時鐘。這個誤差的原因就是每個在SP計數器中引入的轉換都包含了范圍從零到一的不確定因數(a&b)。測量到的時鐘之間的誤差可以如下導出1.
aTclk+N Tref=SP·Tclk+bTclk2.
TclkTref=NSP+b-a]]>3.
Tref(1+ϵ)KTref=NSP+b-a]]>4.
ϵ=KNSP+b-a-1=KN-SP-b+aSP+b-a]]>5.
ϵ=PH-b+aSP+b-a]]>6.
PH-1SP+1<ϵ<PH+1SP-1]]>注意,在這些等式中,PH作為二的補碼值,也就是,3=-1,等等。在方程式6中,需要注意的是對于PH(-1,1)的小的絕對值,只有符號信息已知,誤差大小還不知道。BP計數器1708被用來幫助恢復大小信息。另外,使用BP計數器和SP計數器,已知在一行中存在兩個正的相位變化,或者兩個負的相位變化。如果有正的,然后有負的,或者反之,那么誤差就被忽略。
現在參看圖21,說明SP計數器1702和BP計數器1708的操作的示意圖。BP計數器的值包括發生在SP計數器1702復位之前或直到SP計數器1702復位的最后的位周期。為了說明的目的,說明兩個滑動周期,第一滑動周期的值從零到SP1,第二滑動周期的值從零到SP2。在轉換2102以及為非“0”的PH值所發生的數據(沒有標出)時,第一滑動周期將獲得其最終計數值SP1。這將發生在計數循環2104中。這時,SP計數器1702復位到值“0”,使得計數循環2104構成第二滑動周期的第一計數循環,并且PH的值將被置為“0”。這將繼續對發送時鐘的整數倍進行向上的計數,直到與計數循環2108內的非零PH值相關的轉換2106發生。再次,第一轉換2102發生在與計數循環2104的前沿距離為aTclk的地方,而轉換2106發生在與計數循環2108前沿距離為b·Tclk的地方。
對于BP計數器1708,導致用于第一滑動周期的SP計數器1702復位的轉換2102發生在距離在前的轉換2110為Tref時鐘的整數倍處。先前的轉換2110就是數據轉換2102的前一個轉換。然而,應該理解,根據所使用的通信協議,這個數據轉換可以在發送時鐘的任何倍數時發生。BP計數器1708在每個數據轉換(例如計數循環2112內第一滑動周期中的最后位周期的轉換2110,與計數循環2110的前沿的距離為c·Telk)時被復位。BP計數器將在對應于SP計數循環2104的計數循環2114中累加至值BP。這將是與其前沿的距離a·Tclk。當轉換2102發生并且檢測到滑動時,BP計數值被存儲,并且這個值被用來計算時鐘誤差。與前一種情況相似,對于這種情況,時鐘誤差可以被如下計算7.
cTclk+M·Tref+N·Tref=BP·Tclk+SP2·Tclk+bTclk8.
TclkTref=M+NBP+SP2+b-c]]>9.
Tref(1+ϵ)KTref=M+NBP+SP2+b-c]]>10.
ϵ=KM+KN-BP-SP2-b+cBP+SP2+b-c]]>11.
ϵ=PH1+PH2-b+cBP+SP2+b-c]]>表明(KN-SP2)=PH2和(KM-BP)=PH1,這樣12.
|PH1+PH2|-1BP+SP2+1<|ϵ|<|PH1+PH2|+1BP+SP2-1]]>PH1和PH2分別是與SP1和SP2相關的那些值。
方程式12定義了其幅度大小的誤差范圍。符號已經被確定,而且對于PH1和PH2的任何非零值,這個方程式產生了可以計算的時鐘誤差的非零下限。因此,能夠對本地時鐘進行高達兩倍于此下限的頻率校正,而不會增加得到的絕對誤差。對詞的原因就是,例如,下限值上+1.5%的確定的誤差可以在相反方向上被調整高達3%,這將導致時鐘具有-1.5%的誤差,這不會造成更差的誤差。所產生的校正因數如下所示13.
ϵosc=SIGN(PH1+PH2)(|PH1+PH2|-1BP+SP2+1)(1+o)]]>其中,o是最大允許過調,并且校正符號與PH的值的符號相同。因此,方程式13為給定的過調因數o提供了符號和大小。
以上推導使用了關系(KN-SP2)=PH2。然而,由于我們在引入的轉換中采樣PH2的值,所以可能發生混淆,因此使此關系式無效。相對于Tref邊沿的PH2變化率與KTclk上的時鐘誤差相等。因此,Nyquist極限要求14.
1BP·Tclk>2ϵKTclk]]>其中,BP是引入的轉換之間的Tclk周期數量。通常,避免混淆的BP最大值由以下給出15.
BPmax<K2ϵ]]>造成BP計數超出這個數量的轉換應該被忽略以避免誤差。注意,為了知道何時排除引入的轉換,必須知道時鐘誤差的上限。盡管可以基于起始振蕩器容忍度來使用最差情況誤差,但這將會通過排除更多的轉換而減小跟蹤循環的帶寬,因此,增加了將時鐘誤差減少到可接受范圍內所需要的時間。另一個可選擇的方法就是維持對根據引入的轉換所計算出的時鐘誤差的上限(被稱為ME)。于是,這個極限可以用于計算BPmax值。這個上限可以被初始化為最差情況的振蕩器誤差。當觀察到引入的轉換時,就可以減少ME,因此增加了BPmax,并允許有用轉換之間更大的間隙。當處理突發通信系統時,例如USB,這尤其重要。ME的計算將會在下文中描述。
盡管以上方程式通常是正確的,但是可以使用進一步的考慮來優化BPmax的計算。例如,由于在每個引入的轉換之后,SP值都被復位至“0”并因此PH值也被復位至“0”,所以這用PH有效地鎖定了Tref的相位。因此,對于給定的PH采樣值,能夠計算防止對特定PH值混淆的BPmax的特定值。這通過考慮Tref和PH之間的相位誤差怎樣隨時間累加來完成。這個累加的誤差必須被限制,以便防止PH的采樣值重疊。盡管通常這意味著相位誤差必須小于180度的,但是因為Tref和PH在每個轉換都是相位鎖定的,所以在有些情況下,允許的相位誤差可以超出180度。在MTref周期內累加的誤差被如下給出16.
ΛT=aTclk+M(KTclk-Tref)其中a是初始相位誤差。為了避免混淆,這個誤差必須不超出K和PH之間的主要距離(稱為D)。因此17.
aTclk+M(KTclk-Tref)<DTclk其中D由下式給出18.
D=K-|PH|if|PH|<K22K-|PH|if|PH|=K2]]>使用19.
Tref=KTclk/(1+ε)解出M20.
M<(D-a)K(1+ϵ)ϵ]]>使用時鐘之間的關系和a的最差情況值“1”,這可以用BPmaxTclk周期寫作21.
BPmax<D-1ϵ]]>注意,BPmax的這個值是排除混淆轉換所允許的最大值。然而,由于PH值的量化特性,所以能夠計算出BPmax的下限,它保證了不排除對于PH的給定采樣值的有效轉換。這是通過要求累計誤差總是超出PH和0加1之間的主要距離得到的,寫作22.
aTclk+M(KTclk-Tref)>(PH+1)·Tclk這可以用a為0值以BPmax表示解出23.
BBmax>|PH|+1ϵ]]>對于這種時鐘恢復算法的給定實現,使用滿足上下限的BPmax任意值將防止混淆,而不會排除可接受的進入的轉換。實際使用的值可以在這些極限范圍內以減少硬件復雜性的方式來選擇。
如上所述,要求測量最大時鐘誤差,以便合適的排除混淆轉換。從方程式6開始,最大絕對誤差可以寫作如下24.
|ϵmax|<|PH-1|SP+1ifPH<0PH+1SP-1ifPH≥0]]>為了簡化硬件,又不失一般性,這可以近似于25.
|ϵmax|<|PH|+1SP-1]]>最大誤差寄存器(被稱為ME)能夠以最糟糕情況下的初始振蕩器誤差來初始化。在每個有效的到來的轉換上,SP的現在值可以被用于計算εmax的新的絕對值。如果這個新的值小于ME,則ME就可以被縮小到這個新的值。然后,能夠使用εmax=ME來計算BPmax。最大誤差的這個測量隨著時間改善,因此允許混淆發生以前引入的轉換之間較大的間隙。注意,如果最糟糕情況下振蕩器隨時間漂移的情況是已知的,那么為了對這個漂移進行計數,ME值就能夠在規則的間隔處增加校正因數。
現在參看圖22,說明表示計數器和實現本說明中時鐘恢復算法所要求的以上所述的各種方程式的實現方式的框圖。提供通常的控制模塊2202,它可操作地接收轉換線路2204上的數據轉換,并且根據來自其的輸出在線路2206上產生振蕩器校正請求。BP計數器1708被表示為具有累加寄存器2208,其接收兩個多路輸入復用器2210的輸出作為輸入。多路復用器2210由數據轉換控制,在發生數據轉換時選擇“1”用于復位操作,并且在沒有數據轉換時,選擇反饋增加循環,其中反饋增加循環在接收時鐘的每個時鐘循環都將增加BP鎖存器2208中的值。這個操作使得,BP鎖存器2208中所存儲的值將被加載到多路復用器2212的一個輸入端,“1”輸入端,這個多路復用器2212由來自控制模塊2202的滑動檢測輸出2214控制,這將引起BP鎖存器2208的值被加載到BPmax鎖存器2218。在沒有滑動信號的時候,鎖存器2218的輸出被反饋到多路復用器2212的“0”輸入端,使得它被持續地維持在鎖存器2218中。
由接收兩輸入多路復用器2222(“1”輸入端連接到固定的復位值“1”,當滑動信號在線路2214上顯示時多路復用器提供復位)的輸出作為其輸入的SP鎖存器2220來實現SP計數器1702。在沒有滑移信號時,鎖存器2220的輸出被反饋到累加模塊2224,累加模塊2224被反饋到多路復用器2222的“0”輸入端,這樣,對于每一個時鐘循環,SP計數器2220的值被增加。當滑動信號出現時,鎖存器2220的輸出及BPmax寄存器2218的輸出值被輸入到算法模塊2226,以執行方程式13來確定振蕩器周期校正因數。利用這兩個值來實現這項操作。
SP鎖存器2220的輸出也被輸入回控制模塊2202,來確定其PH的值。這些PH值是用來確定是否已經發生滑動的。這個SP輸出值也被輸入到最大誤差計算模塊2228,來計算最大誤差值,模塊2228的輸出被輸入到模塊2234的A-輸入。這被輸入到兩輸入多路復用器2230的“1”輸入端,其輸出被反饋給提供ME輸出的ME寄存器2232。這被輸入回到多路復用器2230的“0”輸入端。計算模塊2228的輸出也被輸入到比較模塊2234,比較模塊2234具有A和B輸入端,其中B輸入連接到ME鎖存器2232的輸出,可以理解,ME鎖存器2232的初始值就是為系統預定的最大誤差值。模塊2234可操作地確定A值是否小于B值。如果是,就與轉換輸入22進行邏輯與,如果A小于B以及數據轉換發生這兩個條件同時滿足,這就導致模塊2228中計算的值被加載至ME模塊2232中。接著,ME鎖存器2232的輸出被輸入到計算模塊2236,計算模塊2236也接收SP鎖存器2224的輸出,以計算反混淆(anti-aliasing)值并且確定BPmax的值。這被輸入到比較模塊2238的A輸入端,B輸入端被連接到BP鎖存器2208的輸出。如果A輸入被確定為小于B輸入,這表明存在混淆情況,這向控制模塊2202發回指示,以便可能地確定滑動指示還沒有實際發生,并且將忽略。
現在參看圖23,說明解釋基本控制步驟的簡化流程圖。程序在起始模塊2302啟動,然后進入到功能模塊2304,來設置ME值為最大初始誤差,然后到功能模塊2306以等待引入的轉換。當引入轉換發生時,BP計數器復位,如功能模塊2308指示的那樣。然后,程序流到功能模塊2310,等待下一個轉換。當下一個轉換發生時,SP計數器和BP計數器都被采樣,正如功能模塊2312指示的那樣。接著,程序到判定模塊2314,以確定BP值是否小于BPmax的值。如果是,則程序將繼續沿著“Y”路徑到達功能模塊2316,以更新ME的值,然后到達判定模塊2318,以確定PH值是否等于零。如果不是,就表明滑動,然后程序繼續前進到判定模塊2320。如果是,則程序將返回到功能模塊2308的輸入。相似的,如果要求反混淆且在判定模塊2314中已經確定BP不小于BPmax,那么程序將從判定模塊2314流向功能模塊2322,以復位SP計數器,然后返回到功能模塊2308的輸入。然而,當PH值被確定為不為零時,也就是滑動情況,那么程序流到判定模塊2320,并且對當前PH值和前一個PH值是否有相同的符號做出判定。如果不是,則程序將流向功能模塊2322來復位SP計數器。如果是,則程序將沿著“Y”路徑到達功能模塊2328,以用確定的最小誤差來校準本地振蕩器。
以上所述算法的實現主要是在管理量化和有限寄存效果的練習。例如,振蕩器校正因數必須被指定為振蕩器內在周期分辨率的整數倍。而且,因為邏輯必須從不增加相對誤差,所以振蕩器的最大可能單位步伐大小必須在計算中使用。這個值在RTL代碼中定義如下26.
MAXOSCSTEP=1ϵstep]]>起始最糟糕情況的振蕩器誤差(εinit)定義為εstep的倍數,也就是27.
MAXINITERROR=ceil(ϵinitϵstep)=ceil(MAXOSCSTEP·ϵinit)]]>允許的最大過調被定義為25%的倍數,即28.
OVERSHOOT=4o最終,最大誤差(ME)被維持為εME的整數倍(εstep的固定份額),由ERRORSTEP定義如下29.
ERRORSTEP=ϵstepϵME=1MAXOSCSTEP·ϵME]]>不同計數器的寬度通常被限定在對其將執行非混淆計算的最大值范圍內。
余下的實現問題就是怎樣避免大多數所述方程式中內在的分配。對于在實現中所使用的值K=4,大多數方程式只有八個或者更少的唯一值。這允許預先計算分配。例如,考慮振蕩器校正因數的計算30.
|ϵosc|=(PH1+PH2-1BP+SP2+1)(1+o)]]>這可以寫作31.
BP+SP2=(PH1+PH2-1|ϵosc|)(1+o)-1]]>現在,對于K=4,唯一有趣的情況對應于(PH1+PH2)=±2(為了簡化硬件,(PH1+PH2)=±3的情況被近似為±2)。因此,方程式可以寫作32.
BP+SP2=(1+o|ϵosc|)-1]]>既然23εstep>εinit,εosc的值可以量化到3位。因此,振蕩器校正因數可以計算如下33.
|ϵosc|=7ifBP+SP2<(1+o7ϵstep)-1else6ifBP+SP2<(1+o6ϵstep)-1else5ifBP+SP2<(1+o5ϵstep)-1else4ifBP+SP2<(1+o4ϵstep)-1else3ifBP+SP2<(1+o3ϵstep)-1else2ifBP+SP2<(1+o2ϵstep)-1else1ifBP+SP2<(1+o1ϵstep)-1else0]]>這對應了一組七個比較器加上一些硬件的解碼邏輯。
現在參看圖24,說明精確振蕩器的一個實例的示意圖。在集成電路上實現的振蕩器中,提供可編程的內部時鐘發生器2402,內部時鐘發生器2402由寄存器2406和寄存器2408控制。內部時鐘發生器的輸出被輸入到分配電路2410,分配電路2410也是由寄存器2408控制,其輸出被輸入到多路復用器2410的一個輸入端。這個多路復用器2410由寄存器2408控制。寄存器2410輸出系統時鐘(SYSCLK),其被輸入到波特率發生器302。除了內部時鐘發生器,還提供外部晶控振蕩器。提供了晶控的內部或者片上的振蕩器2412,其通過輸入電路2412連接到終端2416和2418,到外部晶體2416。振蕩器2412的輸出被輸入到多路復用器2410的一個輸入端。另外,在終端2420上提供外部時鐘,其也被輸入到多路復用器2410的一個輸入端。晶控振蕩器2412由寄存器2422控制。
提供內部振蕩器2402,使得它在系統復位后作為缺省系統時鐘。內部振蕩器周期可由寄存器2406按照如下方程式編程
ΔT≡0.0025×1fBASE×ΔOSCICL]]>其中fBASE是內部振蕩器復位后的頻率,ΔT是內部振蕩器中的變化,ΔOSCICL是寄存器2406中值的變化。典型的,寄存器2406將被工廠校準到規定的頻率,例如,12.0MHz。
現在參看圖25,說明寄存器2406的表,其中可以看到,位6-0與振蕩器的校準寄存器相關,而且它的值可以內部地變化。圖26圖示了說明為其提供的控制的控制寄存器2408。
盡管已經詳細描述優選實施例,但是應該理解,還可以進行多種變化、替代或者變更,而不會背離由權利要求書所限定的此項發明的本質和范圍。
權利要求
1.一種用于根據所接收的包含數據突發、并且具有在所述數據突發之間基本上沒有數據的區域的數據流來恢復時鐘的方法,包括以下步驟提供在參考頻率范圍內工作的接收時鐘;相對于所述接收時鐘測量所接收到的數據中數據轉換之間的時間;確定所測量的時間是否基本為所述接收時鐘的整數;如果不是所述接收時鐘的基本整數,則調整所述接收時鐘的頻率,以補償差異。
2.根據權利要求1的方法,還包括以下步驟計算所測量的時間和最近的接收時鐘間隔之間的差的數量作為相位漂移值,并且從中計算頻率誤差作為相位差除以所測量的在其上確定相位差的時間;可操作地調整,以便調整所述接收時鐘頻率,以使這個頻率誤差最小。
3.根據權利要求2的方法,其中,如果前面的、為前面的調整所述接收時鐘頻率的步驟計算相位值的步驟產生了與當前的相位值計算的相位值符號相反的相位值,則調整所述接收時鐘頻率的步驟就被禁止。
4.根據權利要求2的方法,其中提供接收時鐘的步驟包括提供K倍于所述發送時鐘Tclk頻率的過采樣的接收時鐘,因此,計算所述相位值的步驟包括確定數據轉換之間的時間是否與所述過采樣時鐘的K個循環的整數倍不同。
5.根據權利要求的2方法,其中所述調整步驟包括用步長值來調整所述接收時鐘的頻率。
6.根據權利要求5的方法,其中進一步包括給所述步長值加上預定的過調值。
7.根據權利要求5的方法,其中所述步長值的符號與所述相位值符號一致。
8.根據權利要求1的方法,其中所述數據是不歸零的二進制數據。
9.根據權利要求1的方法,其中在所述數據轉換時量化所述測量數據轉換之間時間的步驟。
10.根據權利要求1的方法,其中從第一數據轉換到第二數據轉換地測量數據轉換之間的時間,所述第二數據轉換包括在確定所測量的時間是否基本為所述接收時鐘整數的步驟確定所測量的時間基本不是所述接收時鐘的整數時發生的數據轉換。
11.根據權利要求10的方法,其中在所述第一和第二數據轉換之間可以有多個中間數據轉換。
12.根據權利要求10的方法,其中所述第一和第二數據轉換可以存在于不同的數據突發中。
13.根據權利要求2的方法,其中所述接收時鐘具有已知的最大誤差值,并且進一步包括步驟確定所測量的時間上應用的這個已知最大誤差值是否可能導致所得到的相位的符號不確定,如果是,則禁止調整所述接收時鐘的頻率的步驟。
14.根據權利要求13的方法,其中提供接收時鐘的步驟包括提供K倍于發送時鐘TCLK頻率的過采樣的接收時鐘,因此,計算所述相位值的步驟包括確定數據轉換之間的時間是否與過采樣時鐘的K個循環的整數倍不同,并且進一步包括以下步驟計算所測量的時間和最近的接收時鐘間隔之間的差的數量作為相位漂移值,并且從中計算頻率誤差作為除以所測量在其上確定相位差的時間的相位的差;可操作地調整,以便調整所述接收時鐘的頻率以使這個頻率誤差最小,并且還包括在每次確定所測量的時間是否基本為所述接收時鐘的整數時根據下式調整所述最大頻率誤差的步驟|ϵmax|<|PH-1|SP+1ifPH<0PH+1SP-1ifPH≥0]]>其中,PH=相位漂移誤差,SP=在從第一數據轉換到第二數據轉換的數據轉換之間所述過采樣時鐘循環的數量。
15.一種用于從遠程發送位置接收串行數據的方法,其中所述數據被包括在具有在數據突發之間基本沒有數據的區域的數據突發的數據流,包括以下步驟在串行端口接收所述數據;通過以下步驟,從所接收的數據流中恢復時鐘提供工作在參考頻率范圍內的接收時鐘;相對于所述接收時鐘測量所接收的數據中數據轉換之間的時間;確定所測量的時間是否基本為所述接收時鐘的整數;如果不是所述接收時鐘的基本整數,則調整所述接收時鐘的頻率,以補償差異;使用調整后的頻率接收時鐘來解碼所述數據。
16.根據權利要求15的方法,進一步包括計算所測量的時間和最近的接收時鐘間隔之間的差的數量作為相位漂移值、并且從中計算頻率誤差作為除以所測量的在其上確定相位差的時間的相位差的步驟,可操作地調整以便調整所述接收時鐘頻率以使這個頻率誤差最小的步驟。
17.根據權利要求16的方法,其中如果前面的、計算用于前面的調整所述接收時鐘頻率的步驟的相位值的步驟產生與當前相位值計算的相位值的符號相反的相位值,則調整所述接收時鐘頻率的步驟被禁止。
18.根據權利要求16的方法,其中提供接收時鐘的步驟包括提供K倍于所述發送時鐘Tclk頻率的過采樣的接收時鐘,并且因此,計算所述相位值的步驟包括確定數據轉換之間的時間是否與所述過采樣時鐘的K個循環的整數倍不同。
19.根據權利要求16的方法,其中所述調整步驟包括用步長值來調整所述接收時鐘的頻率。
20.根據權利要求19的方法,其還包括為所述步長值加上預定的過調值。
21.根據權利要求19的方法,其中所述步長值的符號與所述相位值的符號一致。
22.根據權利要求15的方法,其中所述數據是不歸零的二進制數據。
23.根據權利要求15的方法,其中測量數據轉換之間時間的步驟在所述數據轉換時被量化。
24.根據權利要求15的方法,其中從第一數據轉換到第二數據轉換地測量數據轉換之間的時間,其中所述第二數據轉換包括在確定所測量的時間是否基本為所述接收時鐘整數的步驟確定所測量的時間基本不是所述接收時鐘整數時所發生的數據轉換。
25.根據權利要求24的方法,其中在所述第一和第二數據轉換之間可以有多個的中間數據轉換。
26.根據權利要求24的方法,其中所述第一和第二數據轉換可以存在于不同的數據突發中。
27.根據權利要求16的方法,其中所述接收時鐘具有已知的最大誤差值,并且進一步以下步驟包括確定在所測量的時間上應用的這個已知最大誤差值是否可能導致所得到的相位的符號不確定,如果是,則禁止調整所述接收時鐘的頻率。
28.根據權利要求27的方法,其中提供接收時鐘的步驟包括提供K倍于所述發送時鐘Tclk頻率的過采樣的接收時鐘,并且因此,計算所述相位值的步驟包括確定數據轉換之間的時間是否與所述過采樣時鐘的K個循環的整數倍不同;并且進一步包括計算所測量的時間和最近的接收時鐘間隔之間的差的數量作為相位漂移值、并且從中計算頻率誤差作為除以所測量的、在其上確定了相位差的時間的相位差的步驟,可操作地調整以調整所述接收時鐘頻率以使這個頻率誤差最小的步驟,還包括在每次確定所測量的時間是否基本為所述接收時鐘的整數時根據以下方程式調整最大頻率誤差的步驟|ϵmax|<|PH-1|SP+1ifPH<0PH+1SP-1ifPH≥0]]>其中,PH=相位漂移誤差,SP=在從第一數據轉換到第二數據轉換的數據轉換之間的所述過采樣時鐘循環的數量。
29.一種從所接收的包含數據突發、并且具有在所述數據突發之間基本沒有數據的區域的數據流中恢復時鐘的時鐘恢復設備,包括工作在參考頻率范圍內的接收時鐘;用于相對于所述接收時鐘測量在所接收的數據中數據轉換之間時間的測量設備;用于確定所測量的時間是否基本為所述接收時鐘整數的相位漂移檢測設備;以及用于如果所測量的時間被確定為不是基本為所述接收時鐘整數時,調整所述接收時鐘頻率以補償這個差異的控制設備。
30.根據權利要求29的控制設備,其中所述相位漂移設備可操作地計算所測量的時間和最近的接收時鐘間隔之間的差的數量作為相位漂移值,并且從中計算頻率誤差作為除以所測量的、在其上確定了所述相位差的時間的相位差,所述控制設備可操作地調整所述接收時鐘的頻率以使這個頻率誤差最小。
31.根據權利要求30的控制設備,其中,如果前面的、計算用于前面的調整所述接收時鐘頻率的操作的相位值的步驟生成了與當前相位值計算的相位值的符號相反的相位值,則禁止所述控制設備步驟來調整所述接收時鐘的頻率。
32.根據權利要求30的控制設備,其中所述接收時鐘包括K倍于所述發送時鐘TCLK頻率的過采樣的接收時鐘,并且所述相位檢測設備可操作地確定數據轉換之間的時間是否與所述過采樣時鐘的K個循環的整數倍不同。
33.根據權利要求30的控制設備,其中所述控制設備可操作地通過步長值來調整所述接收時鐘的頻率。
34.根據權利要求33的控制設備,其中還包括給所述步長值加上預定的過調值。
35.根據權利要求33的控制設備,其中所述步長值具有與所述相位值的符號一致的符號。
36.根據權利要求29的控制設備,其中所述數據是不歸零的二進制數據。
37.根據權利要求29的控制設備,其中所述測量設備可操作地測量被量化的數據轉換之間的時間。
38.根據權利要求29的控制設備,其中是從第一數據轉換到第二數據轉換地測量數據轉換之間的時間,其中所述第二數據轉換包括在所述相位檢測設備確定所測量的時間基本不是所述接收時鐘整數時發生的數據轉換。
39.根據權利要求38的控制設備,其中在所述第一和第二數據轉換之間可以有多個中間數據轉換。
40.根據權利要求38的控制設備,其中所述第一和第二數據轉換可以存在于不同的數據突發中。
41.根據權利要求30的控制設備,其中所述接收時鐘具有已知的最大誤差值,并且進一步包括禁止設備,用于確定在所測量的時間上應用的這個已知最大誤差值是否可能導致得到的相位的符號不確定,如果是,則由所述控制設備禁止調整所述接收時鐘的頻率。
42.根據權利要求41的控制設備,其中所述接收時鐘包括K倍于所述發送時鐘TCLK頻率的過采樣的接收時鐘,并且所述相位檢測設備可操作地確定數據轉換之間的時間是否與所述過采樣時鐘的K個循環的整數倍不同;并且所述相位檢測設備可操作地計算所測量的時間和最近的接收時鐘間隔之間的差的數量作為相位漂移值,并且從中計算頻率誤差作為除以所測量的、在其上確定了所述相位差的時間的相位差,所述控制設備可操作地調整所述接收時鐘頻率來最小化這個頻率誤差,并且進一步可操作地在每次確定所測量的時間是否基本為所述接收時鐘的整數時根據下式調整所述最大頻率誤差|ϵmax|<|PH-1|SP+1ifPH<0PH+1SP-1ifPH≥0]]>其中,PH=相位漂移誤差,SP=在第一數據轉換到第二數據轉換的數據轉換之間的過采樣時鐘循環的數量。
43.一種數據接收器,用于接收從遠程發送位置發送的串行數據,其中所述數據被包括在具有在數據突發之間基本沒有數據的區域的、數據突發的數據流中,所述數據接收器包括在串行端口上接收所述數據;從所接收的數據流中通過以下步驟恢復所述時鐘接收時鐘,工作在參考頻率范圍內;測量設備,用于相對于所述接收時鐘測量在所接收的數據中數據轉換之間的時間;相位漂移檢測設備,用于確定所測量的時間是否基本為所述接收時鐘的整數;控制設備,用于如果確定所測量的時間不是基本上為所述接收時鐘的整數,則調整所述接收時鐘頻率,以補償所述差異;使用調整后的頻率接收時鐘來解碼所述數據。
44.根據權利要求43的數據接收器,其中所述相位漂移檢測設備可操作地計算所測量的時間和最近的接收時鐘間隔之間的差的數量作為相位漂移值,并且從中計算頻率誤差作為除以所測量的、在其上確定了所述相位差的時間的相位差,調整步驟可操作地調整所述接收時鐘頻率以使這個頻率誤差最小。
45.根據權利要求44的數據接收器,其中如果前面的、計算用于前面調整所述接收時鐘頻率的步驟的相位值的步驟生成了與當前相位值計算的相位值的符號相反的相位值,則禁止所述控制設備步驟調整所述接收時鐘頻率。
46.根據權利要求44的數據接收器,其中所述接收時鐘包括K倍于所述發送時鐘TCLK頻率的過采樣的接收時鐘,并且所述相位檢測設備可操作地確定數據轉換之間的時間是否與所述過采樣時鐘的K個循環的整數倍不同。
47.根據權利要求44的數據接收器,其中所述控制設備可操作地通過步長值來調整所述接收時鐘的頻率。
48.根據權利要求47的數據接收器,其中還包括給所述步長值加上預定的過調值。
49.根據權利要求47的數據接收器,其中所述步長值具有與所述相位值符號一致的符號。
50.根據權利要求43的數據接收器,其中所述數據不歸零的二進制數據。
51.根據權利要求43的數據接收器,其中所述測量設備可操作地測量被量化的數據轉換之間的時間。
52.根據權利要求43的數據接收器,其中從第一數據轉換到第二數據轉換地測量數據轉換之間的時間,其中所述第二數據轉換包括在所述相位檢測設備確定所測量的時間基本為所述接收時鐘整數,確定所測量的時間基本不是所述接收時鐘整數時發生的數據轉換。
53.根據權利要求52的數據接收器,其中在所述第一和第二數據轉換之間可以有多個中間數據轉換。
54.根據權利要求52的數據接收器,其中所述第一和第二數據轉換可以存在于不同的數據突發中。
55.根據權利要求44的數據接收器,其中所述接收時鐘具有已知的最大誤差值,并且進一步包括禁止設備,用于確定在所測量的時間上應用的這個已知最大誤差值是否可能導致得到的相位的符號不確定,如果是,就禁止調整所述接收時鐘的頻率。
56.根據權利要求52的數據接收器,其中所述接收時鐘包括K倍于所述發送時鐘TCLK頻率的過采樣的接收時鐘,并且所述相位檢測設備可操作地確定數據轉換之間的時間是否與所述過采樣時鐘的K個循環的整數倍不同;并且所述相位檢測設備可操作地計算所測量的時間和最近的接收時鐘間隔之間的差的數量作為相位漂移值,并且從中計算頻率誤差作為除以所測量的、在其上確定了所述相位差的時間的相位差,所述控制設備可操作地調整所述接收時鐘頻率來最小化這個頻率誤差,并且還包括以下步驟在每次確定所測量的時間是否基本為所述接收時鐘的整數時根據下式調整所述最大頻率誤差|ϵmax|<|PH-1|SP+1ifPH<0PH+1SP-1ifPH≥0]]>其中,PH=相位漂移誤差,SP=從第一數據轉換到第二數據轉換的數據轉換之間的過采樣時鐘循環數量。
全文摘要
本發明公開了一種用于根據所接收的數據流恢復時鐘的方法,所接收的數據流包括數據突發,而在數據突發之間具有基本沒有數據的區域。提供了一個接收時鐘,它在參考頻率范圍內工作。然后,相對于接收時鐘測量所接收數據中數據轉換之間的時間。然后,如果測量的時間基本是接收時鐘的整數,那么作出確定。如果不是接收時鐘的基本整數,那么調整接收時鐘的頻率,以對差別進行補償。
文檔編號H03L7/085GK1706143SQ03824509
公開日2005年12月7日 申請日期2003年9月15日 優先權日2002年9月16日
發明者肯尼思·W.·弗納爾德 申請人:希格納爾集成產品公司
網友詢(xun)問(wen)留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1