關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于CPLD的位同步時(shí)鐘提取電路設(shè)計(jì)

基于CPLD的位同步時(shí)鐘提取電路設(shè)計(jì)

——
作者:王志梁 劉篤仁 西安電子科技大學(xué) 時(shí)間:2007-01-26 來(lái)源:《電子元器件應(yīng)用》 收藏


引言

本文引用地址:http://butianyuan.cn/article/21526.htm

異步串行通信是現(xiàn)代電子系統(tǒng)中最常用的數(shù)據(jù)信息傳輸方式之一,一般情況下,為了能夠正確地對(duì)異步串行數(shù)據(jù)進(jìn)行發(fā)送和接收,就必須使其接收與發(fā)送的碼元同步,位同步時(shí)鐘信號(hào)不僅可用來(lái)對(duì)輸入碼元進(jìn)行檢測(cè)以保證收發(fā)同步,而且在對(duì)接收的數(shù)字碼元進(jìn)行各種處理等過(guò)程中,也可以為系統(tǒng)提供一個(gè)基準(zhǔn)的同步時(shí)鐘。

本文介紹的位同步時(shí)鐘的提取方案,原理簡(jiǎn)單且同步速度較快。整個(gè)系統(tǒng)采用veriloghdl語(yǔ)言編寫,并可以在cpld上實(shí)現(xiàn)。

位同步時(shí)鐘的提取原理

本系統(tǒng)由一個(gè)跳變沿捕捉模塊、一個(gè)狀態(tài)寄存器和一個(gè)可控計(jì)數(shù)器共三部分組成,整個(gè)系統(tǒng)的原理框圖如圖1所示,其中data_in是輸入系統(tǒng)的串行信號(hào),clock是頻率為串行信號(hào)碼元速率2n倍的高精度時(shí)鐘信號(hào),pulse_out是系統(tǒng)產(chǎn)生的與輸入串行信號(hào)每個(gè)碼元位同步的脈沖信號(hào),即位同步時(shí)鐘。

跳變沿捕捉模塊的輸入也就是整個(gè)的輸入data_in和clock。當(dāng)data_in發(fā)生跳變時(shí),無(wú)論是上升沿或是下降沿,捕捉模塊都將捕捉所發(fā)生的這次跳變,并產(chǎn)生一個(gè)脈沖信號(hào)clear,這個(gè)clear信號(hào)所反應(yīng)的就是輸入信號(hào)發(fā)生跳變的時(shí)刻。然后以它為基準(zhǔn),就可以有效地提取輸入串行信號(hào)的同步時(shí)鐘。

狀態(tài)寄存器有兩個(gè)輸入,分別接跳變沿捕捉模塊的輸出clear和可控計(jì)數(shù)器的輸出pulse_out,當(dāng)clear信號(hào)的上升沿到來(lái)時(shí),此狀態(tài)寄存器的輸出k被置1,之后在pulse_out和k信號(hào)本身的控制下,k在pulse_out和k信號(hào)上產(chǎn)生一個(gè)脈沖之后被置0,這個(gè)k為一般連接到可控計(jì)數(shù)器的控制端。

可控計(jì)數(shù)器是??勺兊挠?jì)數(shù)器,在k信號(hào)的控制下可以對(duì)clock信號(hào)進(jìn)行模為n-2或2n的計(jì)數(shù),其三個(gè)輸入分別接跳變沿捕捉模塊的輸出clear、狀態(tài)寄存器的輸出k和時(shí)鐘clock。其中clear信號(hào)可以對(duì)計(jì)數(shù)器進(jìn)行異步清零,k信號(hào)可選擇計(jì)數(shù)的模,當(dāng)k=1時(shí),計(jì)數(shù)器的模為n-2,計(jì)數(shù)滿n-2后即產(chǎn)生輸出脈沖pulse_out,當(dāng)k=0時(shí),計(jì)數(shù)器的模為2n,計(jì)數(shù)滿2n時(shí),產(chǎn)生輸出脈沖pulse_out。

整個(gè)系統(tǒng)工作時(shí),當(dāng)輸入信號(hào)data_in發(fā)生跳變時(shí),跳變沿捕捉將可以捕捉到這次跳變,并產(chǎn)生一個(gè)脈沖信號(hào)clear,此clear信號(hào)可以將可控計(jì)數(shù)器的計(jì)數(shù)值清零,同時(shí)將狀態(tài)寄存器的輸出k置1,并送入可控計(jì)數(shù)器中,以使計(jì)數(shù)器進(jìn)行模塊為n-2的計(jì)數(shù),待計(jì)滿后,便可輸出脈沖信號(hào)pulse_out,此信號(hào)一方面可作為整個(gè)系統(tǒng)輸出的位同步時(shí)鐘信號(hào),另一方面,它也被接進(jìn)了狀態(tài)寄存器,以控制其輸出k在計(jì)數(shù)器完成n-2的計(jì)數(shù)后就變?yōu)?,并在沒(méi)有clear脈沖信號(hào)時(shí)使k保持為0,從而使可控計(jì)數(shù)器的模保持為2n,直到輸入信號(hào)data_in出現(xiàn)新的跳變沿并產(chǎn)生新的clear脈沖信號(hào),由以上原理可見,在輸入信號(hào)為連“1”或連“0”的情況下,只要系統(tǒng)使用的時(shí)鐘信號(hào)足夠精確,就可以保證在一定時(shí)間里輸出滿足要求的位同步時(shí)鐘,而在輸入信號(hào)發(fā)生跳變時(shí),系統(tǒng)又會(huì)捕捉下這個(gè)跳變沿并以此為基準(zhǔn)輸出位同步時(shí)鐘。

位同步時(shí)鐘的提取

本系統(tǒng)包括三個(gè)部分,一是采用veriloghdl語(yǔ)言編寫程序,第二步再將每個(gè)部分作為一個(gè)模塊(module)來(lái)編寫,最后通過(guò)元件例化的方法將三個(gè)模塊連接起來(lái),以完成這個(gè)整個(gè)系統(tǒng)的設(shè)計(jì)。

下面是跳變沿捕捉模塊的部分程序,其中int0為串行輸入信號(hào),pcclk為輸入系統(tǒng)的高精度時(shí)鐘信號(hào),本模塊的輸出pcout對(duì)應(yīng)于圖1中的clear信號(hào),它同時(shí)又接入狀態(tài)寄存器模塊的psclr和可控計(jì)數(shù)器模塊的clr。其仿真結(jié)構(gòu)如圖2所示。

跳變沿捕捉模塊的部分程序如下:

module pcheckcapture (pcout,int0,pcclk);

……

reg pctemp1,pctemp2;

always@(posedge pcclk) begin

pctemp1<=int0;

pctemp2<=pctemp1;

end

assign pcout=pctemp1^pctemp2;

……

狀態(tài)寄存器模塊的部分程序如下,其中輸入信號(hào)psclr來(lái)自跳變沿捕捉模塊,另一個(gè)輸入信號(hào)pss則來(lái)自可控計(jì)數(shù)器的輸出s對(duì)應(yīng)圖1中的pulse_out,輸出信號(hào)psout對(duì)應(yīng)圖1中的k;

module pchecksreg (psout,pss,psclr);

……

wire pstemp;

assign pstemp=~(pss&psout);

always@(posedge pstemp or posedge psclr) begin

if(psclr==1b1)psout<=1;

else psout<=~psout;

end

……

下面是可控計(jì)數(shù)器模塊的部分程序,其中三個(gè)輸入信號(hào)k、clr、clk分別對(duì)應(yīng)于圖1中的k、clear、clock,輸出信號(hào)s對(duì)應(yīng)于圖1中的輸出信號(hào)pulse_out;

module pcheckcoumter (s,k,clr,clk);

……

always@(posedge clk or posedge clr)

begin

if(clr==1)begin

s=0;

cnt=0;

end

else begin

if(k==0) begin

if(cnt==2n-1)begin

cnt=0;

s=1;

end;

else begin

cnt=cnt+1;

s=0;

end

end

else begin

if(cnt==n-2)begin cnt=0;

s=1;

end

else begin

cnt=cnt+1;

s=0;

end

………

在頂層模塊中,應(yīng)對(duì)三個(gè)模塊進(jìn)行例化,并在導(dǎo)線相連接,以構(gòu)成一個(gè)完整的系統(tǒng),此模塊的程序如下:

modulepchecktop (ptout,ptint,ptclk);

inout ptout;

input ptint,ptclk;

pcheckcapture a (clear,ptint,ptclk);

pcheckcounter b (ptout,k,clear,ptclk);

pchecksreg

c(k,ptout,clear);

endmodule

圖3為整個(gè)系統(tǒng)的仿真結(jié)果。

結(jié)束語(yǔ)

本位同步時(shí)鐘提取方案已在cpld器件上進(jìn)行了仿真實(shí)現(xiàn),通過(guò)以上的分析可知,本位同步時(shí)鐘的提取方案具有結(jié)構(gòu)簡(jiǎn)單、節(jié)省硬件資源、同步建立時(shí)間短等優(yōu)點(diǎn),在輸入信號(hào)有一次跳變后,系統(tǒng)出現(xiàn)連“1”連“0”,或信號(hào)中斷時(shí),此系統(tǒng)仍然能夠輸出位同步時(shí)鐘脈沖,此后,只要輸入信號(hào)恢復(fù)并產(chǎn)生新的跳變沿,系統(tǒng)仍可以調(diào)整此位同步時(shí)鐘脈沖輸出而重新同步,此系統(tǒng)中輸入的時(shí)鐘信號(hào)頻率相對(duì)碼元速率越高,同步時(shí)鐘的位置就越精確,而當(dāng)輸入碼元速率改變時(shí),只要改變本系統(tǒng)中的n值系統(tǒng)就可重新正常工作。



關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉