国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)方法及系統(tǒng)與流程

      文檔序號(hào):12308995閱讀:477來源:國知局
      一種串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)方法及系統(tǒng)與流程

      本發(fā)明涉及數(shù)字電路串行解碼技術(shù)領(lǐng)域,具體涉及一種用于2.5mhz-20mhz串行解碼的時(shí)鐘恢復(fù)方法及系統(tǒng)。



      背景技術(shù):

      隨著國家大力發(fā)展智能電網(wǎng)建設(shè),傳統(tǒng)電力設(shè)備的智能化程度越來越高,基本所有的電力設(shè)備都具有數(shù)字化接口。這類數(shù)字化接口需要與其他電力設(shè)備之間交換數(shù)據(jù)及信息?;趇ec60044-7/8的編解碼規(guī)范就使用于智能電力設(shè)備中。這種編解碼規(guī)范是典型的串行編解碼方式,只不過它根據(jù)不同的設(shè)備的功能,其編解碼的速率可以在2.5mhz-20mhz之間選擇。

      作為測試這些智能電力設(shè)備的監(jiān)測裝置,單臺(tái)監(jiān)測裝置需要具有自適應(yīng)滿足各種速率的能力,這樣才能方便現(xiàn)場工作人員使用單臺(tái)監(jiān)測裝置調(diào)試完所有的被測智能裝置。

      傳統(tǒng)的解碼電路及方法會(huì)將所有的信號(hào)編碼速率采用窮舉法的形式,用數(shù)字電路和模塊枚舉出來,然后逐一解碼,如圖1所示。如果采用大容量的fpga,則所有解碼模塊可以集成到單臺(tái)監(jiān)測裝置中,但成本和復(fù)雜度提高。如果采用小容量的fpga,則每種速率都需要一種監(jiān)測設(shè)備,不方便工程師現(xiàn)場調(diào)試。



      技術(shù)實(shí)現(xiàn)要素:

      有鑒于此,本申請(qǐng)?zhí)峁┮环N串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)方法及系統(tǒng),采用該方法的解碼模塊可以放在小容量的單片fpga中,能夠自適應(yīng)不同串行數(shù)據(jù)速率,降低了單臺(tái)監(jiān)測設(shè)備的成本并提高了集成度。

      為解決以上技術(shù)問題,本發(fā)明提供的技術(shù)方案是一種串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)方法,包括:

      生成鑒相時(shí)鐘信號(hào),所述鑒相時(shí)鐘信號(hào)周期為生成串行數(shù)據(jù)的設(shè)備可設(shè)置的最短時(shí)鐘周期的1/n,n為大于1的正整數(shù);

      計(jì)算接收的串行數(shù)據(jù)中各同向信號(hào)跳變點(diǎn)之間的時(shí)間間隔包含的鑒相時(shí)鐘信號(hào)周期的個(gè)數(shù)值并存儲(chǔ);

      獲取存儲(chǔ)的個(gè)數(shù)值中的最小值,根據(jù)個(gè)數(shù)值中的最小值確定串行數(shù)據(jù)的時(shí)鐘信號(hào)周期;

      根據(jù)串行數(shù)據(jù)的時(shí)鐘信號(hào)周期恢復(fù)串行數(shù)據(jù)的時(shí)鐘信號(hào)。

      優(yōu)選地,所述同向信號(hào)跳變點(diǎn)為上升沿信號(hào)跳變點(diǎn)。

      優(yōu)選地,所述同向信號(hào)跳變點(diǎn)為下降沿信號(hào)跳變點(diǎn)。

      優(yōu)選地,所述根據(jù)個(gè)數(shù)值中的最小值確定串行數(shù)據(jù)的時(shí)鐘信號(hào)周期步驟前,還包括將個(gè)數(shù)值中的最小值加入冗余誤差的步驟。

      優(yōu)選地,所述根據(jù)串行數(shù)據(jù)的時(shí)鐘信號(hào)周期恢復(fù)串行數(shù)據(jù)的時(shí)鐘信號(hào)的方法,包括:

      生成校準(zhǔn)時(shí)鐘信號(hào),所述校準(zhǔn)時(shí)鐘信號(hào)周期為所述確定的串行數(shù)據(jù)的時(shí)鐘信號(hào)周期的1/n,n為大于1的正整數(shù);

      當(dāng)接收的串行數(shù)據(jù)出現(xiàn)信號(hào)跳變點(diǎn)時(shí),控制校準(zhǔn)時(shí)鐘信號(hào)的周期計(jì)數(shù)器從0開始計(jì)數(shù),且執(zhí)行下述串行數(shù)據(jù)的時(shí)鐘信號(hào)生成過程:當(dāng)校準(zhǔn)時(shí)鐘信號(hào)的周期計(jì)數(shù)值為0到n/2-1,且接收的串行數(shù)據(jù)沒有發(fā)生跳變時(shí),控制校準(zhǔn)時(shí)鐘信號(hào)持續(xù)輸出電平1;當(dāng)校準(zhǔn)時(shí)鐘信號(hào)的周期計(jì)數(shù)值為n/2到n-1,且接收的串行數(shù)據(jù)沒有發(fā)生跳變時(shí),控制校準(zhǔn)時(shí)鐘信號(hào)持續(xù)輸出電平0;

      若校準(zhǔn)時(shí)鐘信號(hào)的周期計(jì)數(shù)值到n-1,控制校準(zhǔn)時(shí)鐘信號(hào)的周期計(jì)數(shù)器從0開始重新計(jì)數(shù),返回執(zhí)行上述串行數(shù)據(jù)的時(shí)鐘信號(hào)生成過程。

      優(yōu)選地,所述根據(jù)串行數(shù)據(jù)的時(shí)鐘信號(hào)周期恢復(fù)串行數(shù)據(jù)的時(shí)鐘信號(hào)的方法,還包括:

      若接收的串行數(shù)據(jù)發(fā)生跳變,則從接收的串行數(shù)據(jù)發(fā)生跳變的時(shí)刻,控制校準(zhǔn)時(shí)鐘信號(hào)的周期計(jì)數(shù)器從0開始重新計(jì)數(shù),返回執(zhí)行上述串行數(shù)據(jù)的時(shí)鐘信號(hào)生成過程。

      優(yōu)選地,所述信號(hào)跳變點(diǎn)包括上升沿信號(hào)跳變點(diǎn)和下降沿信號(hào)跳變點(diǎn)。

      本發(fā)明還提供了一種串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)系統(tǒng),包括:

      生成模塊,用于生成鑒相時(shí)鐘信號(hào),所述鑒相時(shí)鐘信號(hào)周期為生成串行數(shù)據(jù)的設(shè)備可設(shè)置的最短時(shí)鐘周期的1/n,n為大于1的正整數(shù);

      計(jì)算模塊,用于計(jì)算接收的串行數(shù)據(jù)中各同向信號(hào)跳變點(diǎn)之間的時(shí)間間隔包含的鑒相時(shí)鐘信號(hào)周期的個(gè)數(shù)值并存儲(chǔ);

      獲取模塊,用于獲取存儲(chǔ)的個(gè)數(shù)值中的最小值;

      確定模塊,根據(jù)個(gè)數(shù)值中的最小值確定串行數(shù)據(jù)的時(shí)鐘信號(hào)周期;

      恢復(fù)模塊,根據(jù)串行數(shù)據(jù)的時(shí)鐘信號(hào)周期恢復(fù)串行數(shù)據(jù)的時(shí)鐘信號(hào)。

      優(yōu)選地,該串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)系統(tǒng)還包括加入模塊,用于在存儲(chǔ)的個(gè)數(shù)值中的最小值中加入冗余誤差。

      本申請(qǐng)與現(xiàn)有技術(shù)相比,其有益效果詳細(xì)說明如下:本發(fā)明實(shí)施例提供的串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)方法和系統(tǒng),通過生成鑒相時(shí)鐘信號(hào),計(jì)算接收的串行數(shù)據(jù)中各同向信號(hào)跳變點(diǎn)之間的時(shí)間間隔包含的鑒相時(shí)鐘信號(hào)周期的個(gè)數(shù)值并存儲(chǔ),獲取存儲(chǔ)的個(gè)數(shù)值中的最小值,根據(jù)個(gè)數(shù)值中的最小值確定串行數(shù)據(jù)的時(shí)鐘信號(hào)周期,根據(jù)串行數(shù)據(jù)的時(shí)鐘信號(hào)周期恢復(fù)串行數(shù)據(jù)的時(shí)鐘信號(hào)的方法,能夠根據(jù)不同的串行數(shù)據(jù)速率自適應(yīng)恢復(fù)出串行數(shù)據(jù)的時(shí)鐘信號(hào),解決了由于傳統(tǒng)時(shí)鐘恢復(fù)方法復(fù)雜導(dǎo)致單臺(tái)監(jiān)測設(shè)備成本高的問題,采用本發(fā)明的串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)方法的解碼模塊可以放在小容量的單片fpga中,能夠自適應(yīng)不同串行數(shù)據(jù)速率,降低了單臺(tái)監(jiān)測設(shè)備的成本并提高了集成度。

      附圖說明

      圖1為傳統(tǒng)的解碼電路及方法;

      圖2為本發(fā)明實(shí)施例串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)方法的流程圖;

      圖3為本發(fā)明實(shí)施例中根據(jù)串行數(shù)據(jù)的時(shí)鐘信號(hào)周期恢復(fù)串行數(shù)據(jù)的時(shí)鐘信號(hào)的方法流程圖。

      具體實(shí)施方式

      為了使本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明的技術(shù)方案,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。

      基于iec60044-7/8編解碼規(guī)范的智能電力設(shè)備,根據(jù)其不同功能的需求,其編解碼的速率可以在2.5mhz-20mhz之間選擇。作為測試這些智能電力設(shè)備的監(jiān)測裝置,單臺(tái)監(jiān)測裝置需要具有自適應(yīng)滿足各種速率的能力,這樣才能方便現(xiàn)場工作人員使用單臺(tái)監(jiān)測裝置調(diào)試完所有的待測智能電力設(shè)備。

      如圖2所示,本發(fā)明提供一種串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)方法,通過該方法能將不同速率下的串行數(shù)據(jù)解碼大大簡化,具體包括:

      s1:生成鑒相時(shí)鐘信號(hào),鑒相時(shí)鐘信號(hào)周期為生成串行數(shù)據(jù)的設(shè)備可設(shè)置的最短時(shí)鐘周期的1/n,n為大于1的正整數(shù);

      其中,生成串行數(shù)據(jù)的設(shè)備可設(shè)置的時(shí)鐘頻率為2.5mhz-20mhz,則最短時(shí)鐘周期為50納秒。

      s2:計(jì)算接收的串行數(shù)據(jù)中各同向信號(hào)跳變點(diǎn)之間的時(shí)間間隔包含的鑒相時(shí)鐘信號(hào)周期的個(gè)數(shù)值并存儲(chǔ);

      其中,同向信號(hào)跳變點(diǎn)可以為上升沿信號(hào)跳變點(diǎn)或者下降沿信號(hào)跳變點(diǎn)。上升沿信號(hào)跳變點(diǎn)為接收的串行數(shù)據(jù)從0到1跳變,下降沿信號(hào)跳變點(diǎn)為接收的串行數(shù)據(jù)從1到0跳變。

      s3:獲取存儲(chǔ)的個(gè)數(shù)值中的最小值,根據(jù)個(gè)數(shù)值中的最小值確定串行數(shù)據(jù)的時(shí)鐘信號(hào)周期;

      其中,個(gè)數(shù)值中的最小值需要加入冗余誤差后,再根據(jù)個(gè)數(shù)值中的最小值確定串行數(shù)據(jù)的時(shí)鐘信號(hào)周期。

      s4:根據(jù)串行數(shù)據(jù)的時(shí)鐘信號(hào)周期恢復(fù)串行數(shù)據(jù)的時(shí)鐘信號(hào)。

      如圖3所示,根據(jù)串行數(shù)據(jù)的時(shí)鐘信號(hào)周期恢復(fù)串行數(shù)據(jù)的時(shí)鐘信號(hào)的方法,包括:

      s41:生成校準(zhǔn)時(shí)鐘信號(hào),所述校準(zhǔn)時(shí)鐘信號(hào)周期為所述確定的串行數(shù)據(jù)的時(shí)鐘信號(hào)周期的1/n,n為大于1的正整數(shù)。

      s42:當(dāng)接收的串行數(shù)據(jù)出現(xiàn)信號(hào)跳變點(diǎn)時(shí),控制校準(zhǔn)時(shí)鐘信號(hào)的周期計(jì)數(shù)器從0開始計(jì)數(shù),且執(zhí)行下述串行數(shù)據(jù)的時(shí)鐘信號(hào)生成過程:當(dāng)校準(zhǔn)時(shí)鐘信號(hào)的周期計(jì)數(shù)值為0到n/2-1,且接收的串行數(shù)據(jù)沒有發(fā)生跳變時(shí),控制校準(zhǔn)時(shí)鐘信號(hào)持續(xù)輸出電平1;當(dāng)校準(zhǔn)時(shí)鐘信號(hào)的周期計(jì)數(shù)值為n/2到n-1,且接收的串行數(shù)據(jù)沒有發(fā)生跳變時(shí),控制校準(zhǔn)時(shí)鐘信號(hào)持續(xù)輸出電平0。

      其中,信號(hào)跳變點(diǎn)包括上升沿信號(hào)跳變點(diǎn)和下降沿信號(hào)跳變點(diǎn)。上升沿信號(hào)跳變點(diǎn)為接收的串行數(shù)據(jù)從0到1跳變,下降沿信號(hào)跳變點(diǎn)為接收的串行數(shù)據(jù)從1到0跳變。

      s43:若校準(zhǔn)時(shí)鐘信號(hào)的周期計(jì)數(shù)值到n-1,控制校準(zhǔn)時(shí)鐘信號(hào)的周期計(jì)數(shù)器從0開始重新計(jì)數(shù),返回執(zhí)行步驟s42中串行數(shù)據(jù)的時(shí)鐘信號(hào)生成過程。

      s44:若接收的串行數(shù)據(jù)發(fā)生跳變,則從接收的串行數(shù)據(jù)發(fā)生跳變的時(shí)刻,控制校準(zhǔn)時(shí)鐘信號(hào)的周期計(jì)數(shù)器從0開始重新計(jì)數(shù),返回執(zhí)行步驟s42中串行數(shù)據(jù)的時(shí)鐘信號(hào)生成過程。

      對(duì)外部的串行數(shù)據(jù)進(jìn)行解碼需要同源的時(shí)鐘才能完成,因?yàn)槠渌獠恐悄茈娏υO(shè)備的輸入數(shù)據(jù)接口只有單光纖的數(shù)據(jù),沒有傳送時(shí)鐘信號(hào),所以就需要監(jiān)測裝置從傳送過來的數(shù)據(jù)中恢復(fù)出同源的時(shí)鐘。整個(gè)串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)方法的工作原理為:首先將接收的串行數(shù)據(jù)分為兩路,一路是用于串行解碼,但是需要同源的時(shí)鐘來幫助解碼;而另一路就是用于恢復(fù)同源時(shí)鐘使用的。用恢復(fù)出的同源時(shí)鐘來對(duì)接收的串行數(shù)據(jù)進(jìn)行解碼,解碼后的數(shù)據(jù)經(jīng)過串并轉(zhuǎn)換變成了并行數(shù)據(jù)。該數(shù)據(jù)按照不同設(shè)備應(yīng)用層規(guī)定的格式,進(jìn)一步解析出數(shù)據(jù)幀頭,應(yīng)用層數(shù)據(jù)及數(shù)據(jù)校驗(yàn)方法等。解出的應(yīng)用層數(shù)據(jù)根據(jù)該格式規(guī)定的數(shù)據(jù)校驗(yàn)方法進(jìn)入數(shù)據(jù)校驗(yàn)?zāi)K,通常是通過crc校驗(yàn)或奇偶校驗(yàn)的方法來校驗(yàn)已解碼的數(shù)據(jù)。最終校驗(yàn)過的數(shù)據(jù)可以經(jīng)過電力相應(yīng)算法以后進(jìn)入用戶界面顯示。

      串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)方法都能在單片的fpga片內(nèi)實(shí)現(xiàn),通過verilog編程語言來完成各模塊代碼,通過開發(fā)軟件綜合器綜合為rtl級(jí)電路,最終在fpga片內(nèi)布局布線并實(shí)現(xiàn)所有功能,現(xiàn)場工程師通過采用一臺(tái)集成本發(fā)明方法的設(shè)備就可以調(diào)試多個(gè)智能電力設(shè)備

      下面詳細(xì)描述串行數(shù)據(jù)解碼的過程,由于生成串行數(shù)據(jù)的設(shè)備可設(shè)置的時(shí)鐘頻率為2.5mhz-20mhz,因此設(shè)置一個(gè)200mhz的時(shí)鐘用于鑒相,該200mhz時(shí)鐘是由fpga本地的鎖相環(huán)產(chǎn)生,與接收的串行數(shù)據(jù)被恢復(fù)的時(shí)鐘屬于異步時(shí)鐘。

      以下以接收信號(hào)為20mhz驅(qū)動(dòng)時(shí)鐘的情況來說明,首先接收信號(hào)被20mhz時(shí)鐘驅(qū)動(dòng),如果該信號(hào)為0101……每個(gè)時(shí)鐘周期都翻轉(zhuǎn),那么他的上升沿和下降沿之間的時(shí)間就是50納秒。但實(shí)際上被傳輸?shù)男盘?hào)不可能是0101交替發(fā)生的,會(huì)出現(xiàn)持續(xù)的1或0,比如有可能是0110……或其他情況,這時(shí)候信號(hào)的上升沿和下降沿之間的時(shí)間就是100納秒或更長時(shí)間(也都是50納秒的整數(shù)倍)。如果我們是用200mhz時(shí)鐘來鑒相,每次計(jì)數(shù)的周期是5納秒,那么計(jì)數(shù)終值有可能是10(當(dāng)信號(hào)是0101……的時(shí)候,上升沿和下降沿之間的時(shí)間為50納秒),也可能是20(當(dāng)信號(hào)是0110……的時(shí)候,上升沿和下降沿之間的時(shí)間為100納秒),也可能是30(當(dāng)信號(hào)是01110……的時(shí)候,上升沿和下降沿之間的時(shí)間為100納秒),以此類推。不論如何,我們需要恢復(fù)的時(shí)鐘是20mhz,也就是要找到最小的計(jì)數(shù)終值,因此鑒相過程是在不停的取計(jì)數(shù)終值的最小值。

      具體的鑒相過程如下:在接收的串行數(shù)據(jù)從0到1跳變時(shí),開啟200mhz時(shí)鐘的計(jì)數(shù)器,計(jì)算包含的200mhz時(shí)鐘周期的個(gè)數(shù)值,當(dāng)下一次串行接收數(shù)據(jù)從0到1跳變時(shí),將計(jì)數(shù)終值存入寄存器中,同時(shí)清除計(jì)數(shù)器的值,重新開始計(jì)數(shù),到下一次串行接收數(shù)據(jù)從0到1跳變時(shí),又將計(jì)數(shù)終值存入寄存器中,同時(shí)清除計(jì)數(shù)器的值,又重新開始計(jì)數(shù),整個(gè)鑒相過程持續(xù)不斷的進(jìn)行。取所有計(jì)數(shù)終值里最小的值確定接收的串行信號(hào)的最小周期,也就是接收的串行信號(hào)的驅(qū)動(dòng)時(shí)鐘周期。

      以上所描述的情況是接收信號(hào)為20mhz驅(qū)動(dòng)時(shí)鐘和200mhz鑒相時(shí)鐘是同源時(shí)鐘或同步時(shí)鐘的情況下。實(shí)際上由于硬件晶振的的差異,20mhz驅(qū)動(dòng)時(shí)鐘可能是19.99m,而200mhz時(shí)鐘也可能是200.01mhz,這樣導(dǎo)致的結(jié)果是計(jì)數(shù)終值不一定是整數(shù)10,有可能是9,也有可能是11,所以才把計(jì)數(shù)終值的判斷條件放為一個(gè)區(qū)間:8~12。

      根據(jù)接收的串行信號(hào)的驅(qū)動(dòng)時(shí)鐘通常為2.5mhz,5mhz,10mhz和20mhz中的其中一種,因此鑒相的計(jì)數(shù)終值根據(jù)以下區(qū)間來判斷接收信號(hào)輸驅(qū)動(dòng)時(shí)鐘頻率:計(jì)數(shù)終值為8-12,對(duì)應(yīng)的驅(qū)動(dòng)時(shí)鐘頻率為20mhz;計(jì)數(shù)終值為16-24,對(duì)應(yīng)的驅(qū)動(dòng)時(shí)鐘頻率為10mhz;計(jì)數(shù)終值為32-48,對(duì)應(yīng)的驅(qū)動(dòng)時(shí)鐘頻率為5mhz;計(jì)數(shù)終值為64-96,對(duì)應(yīng)的驅(qū)動(dòng)時(shí)鐘頻率為2.5mhz。由于接收信號(hào)時(shí)鐘和系統(tǒng)本地時(shí)鐘為異步時(shí)鐘,考慮到兩地晶振偏差,因此計(jì)數(shù)終值引入了±20%的冗余誤差。

      例如接收時(shí)鐘為20mhz,前面通過200mhz的時(shí)鐘鑒相得出的計(jì)數(shù)終值在8-12之間,那么就按照20mhz來恢復(fù)時(shí)鐘,同樣用200mhz的時(shí)鐘來分頻恢復(fù)時(shí)鐘。如果不考慮同步性,則用200mhz時(shí)鐘計(jì)數(shù),高電平持續(xù)5個(gè)時(shí)鐘周期,低電平持續(xù)5個(gè)時(shí)鐘周期,總共50納秒,則可以產(chǎn)生200mhz同步的20mhz時(shí)鐘,但這并不是與接收信號(hào)同步的。

      因此恢復(fù)20mhz時(shí)鐘的方法為:當(dāng)接收信號(hào)沿跳變時(shí)(從0到1或者從1到0),此時(shí)200mhz開始計(jì)數(shù),同時(shí)被恢復(fù)的時(shí)鐘輸出電平1,當(dāng)計(jì)數(shù)到4的時(shí)候,被恢復(fù)的時(shí)鐘輸出電平0,當(dāng)計(jì)數(shù)到9時(shí),計(jì)數(shù)器清0,同時(shí)被恢復(fù)時(shí)鐘輸出電平1。

      在上述過程中如果接收信號(hào)沿出現(xiàn)跳變,則200mhz計(jì)數(shù)器清零,并且被恢復(fù)的時(shí)鐘強(qiáng)制輸出電平1,這個(gè)優(yōu)先級(jí)最高,再重復(fù)前面的恢復(fù)時(shí)鐘的方法。

      用200mhz時(shí)鐘來產(chǎn)生被恢復(fù)時(shí)鐘,當(dāng)計(jì)數(shù)值從0-4時(shí),此時(shí)被恢復(fù)時(shí)鐘輸出電平為1,持續(xù)25納秒。接著計(jì)數(shù)值從5-9時(shí),被恢復(fù)時(shí)鐘輸出電平為0,也持續(xù)25納秒。如果不考慮接收信號(hào)時(shí)鐘和200mhz本地時(shí)鐘的誤差,則計(jì)數(shù)值到9以后,就應(yīng)該歸0,然后被恢復(fù)時(shí)鐘輸出電平1,以此往復(fù)。但在實(shí)際情況是肯定存在偏差的,以接收信號(hào)時(shí)鐘19.9mhz為例,由于比200mhz時(shí)鐘分出來的20mhz時(shí)鐘慢,因此計(jì)數(shù)值會(huì)先到9,此時(shí)計(jì)數(shù)值歸0,同時(shí)輸出電平1。隨后在19.99mhz時(shí)鐘下驅(qū)動(dòng)的接收信號(hào)會(huì)有跳變,由于該方法中設(shè)置的跳變優(yōu)先級(jí)最高,因此計(jì)數(shù)值會(huì)再次歸0,同時(shí)輸出電平1的時(shí)間被延長一些,這就保證了被恢復(fù)時(shí)鐘的總周期延長到了和19.99mhz一樣,因此恢復(fù)出了19.99mhz的接收信號(hào)時(shí)鐘。

      同理,如果接收信號(hào)時(shí)鐘為20.1mhz,由于比200mhz時(shí)鐘分出來的20mhz時(shí)鐘快,因此計(jì)數(shù)值還未到9時(shí),在20.1mhz時(shí)鐘下驅(qū)動(dòng)的接收信號(hào)會(huì)有跳變,由于該方法中設(shè)置的跳變優(yōu)先級(jí)最高,因此計(jì)數(shù)值會(huì)提前歸0,同時(shí)輸出電平0的時(shí)間被縮短了一些,這就保證了被恢復(fù)時(shí)鐘的總周期縮短到了和20.1mhz一樣,因此恢復(fù)出了20.1mhz的接收信號(hào)時(shí)鐘。

      綜上所述,當(dāng)獲得到計(jì)數(shù)終值以后,我們只是知道了接收信號(hào)時(shí)鐘是20mhz,不是10mhz或者5mhz,但此時(shí)并未有將接收信號(hào)時(shí)鐘恢復(fù)出來。如前所述,因?yàn)榫д翊嬖谡`差,假設(shè)被恢復(fù)的時(shí)鐘是19.9m,那就需要被恢復(fù)的時(shí)鐘與接收信號(hào)的上升沿或下降沿對(duì)齊,因此就有前面的描述:當(dāng)接收信號(hào)跳變(上升沿或下降沿)時(shí),我們將被恢復(fù)時(shí)鐘的計(jì)數(shù)值歸0(注意:此處的計(jì)數(shù)值和前面的計(jì)數(shù)終值是不同概念,前面的計(jì)數(shù)終值是用于鑒相,用于確定串行數(shù)據(jù)的驅(qū)動(dòng)時(shí)鐘頻率是20mhz、10mhz、5mhz還是2.5mhz。而此處的計(jì)數(shù)值是用于產(chǎn)生恢復(fù)的時(shí)鐘,校準(zhǔn)恢復(fù)的時(shí)鐘)。

      以上過程需要說明三點(diǎn):1.接收信號(hào)沿的跳變(從0到1或從1到0)是由于其驅(qū)動(dòng)時(shí)鐘的上升沿觸發(fā)的,因此這個(gè)時(shí)間點(diǎn)就是被恢復(fù)時(shí)鐘的上升沿。2.計(jì)數(shù)值是從0到9,總共10個(gè)時(shí)鐘周期,因此到9的時(shí)候就自動(dòng)清零。3.接收信號(hào)跳變觸發(fā)的優(yōu)先級(jí)最高,這是由于以下原因:如果接收信號(hào)時(shí)鐘快于fpga本地時(shí)鐘,則本地時(shí)鐘計(jì)數(shù)不到9的時(shí)候就會(huì)出現(xiàn)歸零并拉高被恢復(fù)時(shí)鐘,這就實(shí)現(xiàn)了被恢復(fù)時(shí)鐘與接收信號(hào)時(shí)鐘的同步。如果接收信號(hào)時(shí)鐘慢于fpga本地時(shí)鐘,則本地時(shí)鐘會(huì)先計(jì)數(shù)到9,此時(shí)被恢復(fù)時(shí)鐘提前拉高了,但是由于接收信號(hào)跳變沿觸發(fā)的優(yōu)先級(jí)最高,隨后來的接收信號(hào)跳變會(huì)又讓計(jì)數(shù)器做一次清0,這就保證了兩個(gè)時(shí)鐘之間不會(huì)產(chǎn)生累計(jì)誤差,也就是實(shí)現(xiàn)了被恢復(fù)時(shí)鐘與接收信號(hào)時(shí)鐘的同步。所以,不管是接收信號(hào)時(shí)鐘和本地時(shí)鐘哪個(gè)速率更快,都會(huì)成功恢復(fù)出同步的時(shí)鐘。

      同樣,對(duì)于10mhz,5mhz和2.5mhz的時(shí)鐘的計(jì)數(shù)總值分別是20,40和80,在10,20和40時(shí)輸出低電平。

      至此,一次時(shí)鐘恢復(fù)的過程結(jié)束,隨后進(jìn)入后續(xù)模塊進(jìn)行數(shù)據(jù)校驗(yàn),如果時(shí)鐘恢復(fù)失敗,則采集到的數(shù)據(jù)必定有誤,因此會(huì)造成校驗(yàn)失敗,則狀態(tài)就會(huì)跳轉(zhuǎn)到初始狀態(tài)重新開始時(shí)鐘恢復(fù)。

      本發(fā)明實(shí)施例還提供了一種串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)系統(tǒng),與串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)方法相對(duì)應(yīng),包括:

      生成模塊,用于生成鑒相時(shí)鐘信號(hào),所述鑒相時(shí)鐘信號(hào)周期為生成串行數(shù)據(jù)的設(shè)備可設(shè)置的最短時(shí)鐘周期的1/n,n為大于1的正整數(shù);

      計(jì)算模塊,用于計(jì)算接收的串行數(shù)據(jù)中各同向信號(hào)跳變點(diǎn)之間的時(shí)間間隔包含的鑒相時(shí)鐘信號(hào)周期的個(gè)數(shù)值并存儲(chǔ);

      獲取模塊,用于獲取存儲(chǔ)的個(gè)數(shù)值中的最小值;

      加入模塊,用于在存儲(chǔ)的個(gè)數(shù)值中的最小值中加入冗余誤差。

      確定模塊,根據(jù)個(gè)數(shù)值中的最小值確定串行數(shù)據(jù)的時(shí)鐘信號(hào)周期;

      恢復(fù)模塊,根據(jù)串行數(shù)據(jù)的時(shí)鐘信號(hào)周期恢復(fù)串行數(shù)據(jù)的時(shí)鐘信號(hào)。

      通過上述實(shí)施方式,該串行數(shù)據(jù)解碼的時(shí)鐘恢復(fù)方法及系統(tǒng)可實(shí)現(xiàn)對(duì)2.5mhz-20mhz的串行數(shù)據(jù)進(jìn)行時(shí)鐘恢復(fù),然后用同一條流水線的模塊來進(jìn)行解碼及后續(xù)數(shù)據(jù)處理。采用該方法的解碼模塊可以放在小容量的單片fpga中,包含該解碼模塊的監(jiān)測設(shè)備,滿足相關(guān)行業(yè)標(biāo)準(zhǔn)的要求,能夠幫助現(xiàn)場工作人員簡化調(diào)試過程,并獲得很好的用戶體驗(yàn)。

      以上僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出的是,上述優(yōu)選實(shí)施方式不應(yīng)視為對(duì)本發(fā)明的限制,本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明的精神和范圍內(nèi),還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1