摘? 要: 美國CYPRESS公司的可編程時鐘發(fā)生器芯片ICD2053B的結(jié)構(gòu)和工作原理及其在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用。ICD2053B提供用戶可編程的鎖相環(huán)特性,,輸出可改變到任何所期望的頻率值上(391kHz~100MHz)。在數(shù)據(jù)采集系統(tǒng)中,,利用ICD2053B所具有的動態(tài)改變輸出頻率的能力,可實現(xiàn)系統(tǒng)的變頻率采樣,,提高了系統(tǒng)的適用范圍和兼容性,,給設(shè)計者提供了靈活的設(shè)計自由度。?
關(guān)鍵詞: 可編程時鐘發(fā)生器? ICD2053B? 數(shù)據(jù)采集系統(tǒng)? CPLD設(shè)計?
?
在數(shù)據(jù)采集系統(tǒng)中,,所設(shè)計的系統(tǒng)應(yīng)具有通用性,,可根據(jù)不同的數(shù)據(jù)采集對象,產(chǎn)生不同的采樣頻率;或者系統(tǒng)處于不同的運行情況時,,能夠動態(tài)改變采樣頻率,,即數(shù)據(jù)采集系統(tǒng)應(yīng)當(dāng)具有改變采樣頻率的能力,。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng),一般都是固定頻率的數(shù)據(jù)采集,,很難應(yīng)用于其它采樣頻率的場合,。為了使所設(shè)計的系統(tǒng)適用于不同的場合,具有廣泛的適應(yīng)性,,系統(tǒng)必須具有在線改變采樣頻率的方法,。可編程時鐘發(fā)生器芯片ICD2053B提供了系統(tǒng)動態(tài)改變頻率的方法,,其動態(tài)時鐘輸出頻率范圍從391kHz到100MHz(TTL電平)或391kHz到90MHz(CMOS電平),,具有較寬的頻率范圍,在系統(tǒng)中采用ICD2053B能很好地解決上述問題,。ICD2053B提供完全用戶可編程的鎖相環(huán)特性,,鎖相環(huán)振蕩器輸入由外部參考時鐘(1MHz~25MHz)或外部晶振(2MHz~24MHz)提供。其二線串行接口便于對輸出頻率進(jìn)行編程控制,,具有三態(tài)輸出控制使能,。5V供電、低功耗,、小體積又使其適宜于功耗和空間要求高的應(yīng)用場合,。它所具有的動態(tài)改變輸出頻率的能力,給設(shè)計者提供了靈活的設(shè)計自由度,。?
1? ICD2053B的結(jié)構(gòu)及工作原理?
1.1 引腳功能表及內(nèi)部結(jié)構(gòu)圖?
ICD2053B的內(nèi)部結(jié)構(gòu)如圖1所示,,引腳功能如表1所示。?
?
?
?
1.2? ICD2053B的寄存器?
ICD2053B包含兩個寄存器:控制寄存器和編程寄存器,。?
這兩個寄存器使用協(xié)議字011110來區(qū)分是控制寄存器數(shù)據(jù)還是編程寄存器數(shù)據(jù),。所有要發(fā)送的其它數(shù)據(jù)(除協(xié)議字外)在連續(xù)3個1之后,不論原來其后的數(shù)值是1還是0必須插入一個0,,來區(qū)分是協(xié)議字還是數(shù)據(jù),。所有要編程的串行字從最低位開始串行地移入,,當(dāng)SCLK從低到高跳變時,,將數(shù)據(jù)移入到可編程寄存器中。一旦協(xié)議字檢出后,,前面已移入的8位數(shù)據(jù)就傳遞到控制寄存器中,,然后控制命令立刻被執(zhí)行。?
1.2.1 控制寄存器?
當(dāng)要寫入的數(shù)據(jù)寫入到控制寄存器時,,必須包含協(xié)議字011110,,用來識別所寫入的數(shù)據(jù)為控制寄存器數(shù)據(jù)。?
控制寄存器用來控制ICD2053B的非頻率特性設(shè)置,,它是一個8位的寄存器,,其含義如圖2所示,。?
?
?
控制寄存器數(shù)據(jù)的寫入從控制字的低位(位0)開始,一直到控制字的高位(位7),,然后是6位的協(xié)議字寫入到寄存器中,,故控制寄存器的設(shè)置共需14位數(shù)據(jù)。?
在上電時,,控制寄存器裝入缺省值00000100,,即MUXREF控制位設(shè)置為1,強(qiáng)制CLKOUT輸出為參考頻率fREF,,編程寄存器禁止裝入,,芯片管腳7是輸出使能管腳。?
1.2.2 編程寄存器?
按照所需要的輸出頻率,,將22位的編程字裝入到編程寄存器,,用以實現(xiàn)輸出頻率的更改。由于協(xié)議字為011110,,在傳送編程數(shù)據(jù)時,,凡連續(xù)出現(xiàn)3個1,在其后便添一個“虛”0,,以避免混淆;在接收端凡連續(xù)收到3個1,,就將其后的零丟掉,故裝入的數(shù)據(jù)要完成“位填充”功能,。由于這個原因,,實際的編程字的長度可以為22到27位。編程寄存器各字段含義如表2所示,。?
?
?
可編程振蕩器的頻率fVCO由下式確定:?
fVCO=2×fREF×(P+3)/(Q+2)?
式中,,fREF為參考頻率(1MHz~25MHz)。?
fVCO的頻率值必須保證處在50MHz和150MHz之間,。因此對于輸出頻率低于50MHz,,fVCO必須設(shè)法處于上述限制之內(nèi),可通過復(fù)用(M)字段的設(shè)置來實現(xiàn)該功能,,M初值為000,。首先將所希望的輸出頻率倍頻,作為新的輸出頻率,,M值增1,,若仍未處于上述范圍,循環(huán)直至滿足要求為止(M≤7),。由于倍頻所希望的輸出頻率,,實際的輸出頻率就要進(jìn)行相應(yīng)的分頻,最大的分頻值為128,,即輸出頻率fout由下式確定:?
??? fOUT=fVCO/2M????????????????? ?
指針(I)字段用來使壓控振蕩器VCO預(yù)置到適當(dāng)?shù)念l率范圍,。若fVCO在50~80MHz內(nèi),,I為0000;若fVCO在80~150MHz內(nèi),I為1000,。注意,,此處僅指壓控振蕩器頻率fVCO,而非所希望的輸出頻率,。?
如果壓控振蕩器的頻率正好處在80MHz,,則推薦使用對應(yīng)高頻率范圍的設(shè)置,即I為1000,。?
1.2.3 VCO編程的限制?
編程時有以下3個主要的限制:?
(1) 50MHz≤fVCO≤150MHz?
(2) 1≤P≤127?
(3) 1≤Q≤127?
對于上述限制,,要在最優(yōu)速度、最低噪聲和VCO穩(wěn)定性等因素中,,折衷考慮,。?
2 頻率調(diào)整過程?
當(dāng)改變頻率到一個新頻率時,由于串行字的變化,,輸出信號頻率會產(chǎn)生頻率跳變,。為了避免這種情況發(fā)生,可以利用控制寄存器中MUXREF的特性,。MUXREF使得參考時鐘多路復(fù)用,,無跳變地切換,作為輸出時鐘,,即當(dāng)VCO尋求新的編程值時,,它使輸出時鐘頻率維持在固定的參考時鐘頻率上。?
ICD2053B初始化或調(diào)整新頻率的步驟如下:?
(1)裝入控制寄存器控制字,,允許編程寄存器裝入數(shù)據(jù),,使能MUXREF功能,使輸出頻率穩(wěn)定在參考頻率上,,且這個過程保證無跳變,。控制字如下:?
控制字?? 011110??? 0000X101 --- LSB?
???????????? 協(xié)議字??? 要寫入的控制寄存器控制字?
管腳7的用法由用戶定義,,用X表示,。?
注意:所有的數(shù)據(jù)都從低位移入,首先移入的是控制字的最低位,,協(xié)議字緊跟著控制寄存器的控制字之后輸入到寄存器中,。?
(2)裝入編程寄存器編程字,,使用“位填充”,,最多可得27位的編程字。?
(3)裝入控制寄存器控制字,,使能MUXREF功能,,禁止編程寄存器數(shù)據(jù)的裝入,。該過程將編程字裝入到編程寄存器中,保持輸出在參考頻率上,,同時進(jìn)行新頻率的建立,。控制字如下:?
控制字????? 011110??? 0000X100?
(4)等待至少10ms,,使壓控振蕩器VCO的頻率穩(wěn)定在新的頻率值上,。?
(5)裝入控制寄存器控制字,使能芯片輸出新頻率,,該過程保證無跳變,。控制字如下:?
控制字????? 011110??? 0000X000?
總之,,為了使芯片通過編程輸出一個新頻率,,該芯片需要三個控制字加上一個編程字共同來實現(xiàn)。?
3 ICD2053B在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用?
在我們所設(shè)計的通用數(shù)據(jù)采集系統(tǒng)中,,系統(tǒng)可以在線改變采樣頻率,,具有動態(tài)改變采樣頻率的能力。該通用數(shù)據(jù)采集系統(tǒng)選用可編程時鐘發(fā)生器芯片ICD2053B,,提供大范圍的采樣頻率(391kHz~100MHz),。ICD2053B的編程連接僅需要兩條線,即SCLK(2),、DATA(4),。利用ICD2053B動態(tài)改變采樣頻率的電路原理圖如圖3所示。
?
?
在該系統(tǒng)中,,參考晶振頻率為14.31818MHz,。可編程邏輯器件CPLD作為上位機(jī)與ICD2053B的接口,,實現(xiàn)可編程時鐘發(fā)生器串行時鐘和編程數(shù)據(jù)的串行輸入控制功能,。CPLD的主時鐘由上位機(jī)提供,經(jīng)分頻后產(chǎn)生所需的串行時鐘SCLK,,控制移位寄存器,,串行移出所需的編程數(shù)據(jù)。為了幫助實現(xiàn)計算,,上位機(jī)提供系統(tǒng)工作的驅(qū)動程序,,根據(jù)用戶的參考輸入頻率和所希望的輸出頻率,產(chǎn)生適當(dāng)?shù)木幊碳拇嫫骶幊套帧?
當(dāng)用戶輸入所希望的輸出頻率時,,驅(qū)動程序自動計算所需的編程字,,同時考慮到“位填充”的要求,產(chǎn)生實際的編程字,。然后在上位機(jī)的控制下,,經(jīng)上位機(jī)寫入到可編程邏輯器件CPLD對應(yīng)的寄存器中,,作為觸發(fā)信號,啟動頻率調(diào)整狀態(tài)機(jī),。?
按照頻率調(diào)整過程,,該狀態(tài)機(jī)的狀態(tài)0為空閑狀態(tài);狀態(tài)1為在串行時鐘SCLK的控制下,將控制字01111000000101由低位開始串行移入可編程芯片中;狀態(tài)2為在串行時鐘的控制下,,將寄存器中存放的編程字串行移入到可編程芯片中,,此時要增加超過22位編程數(shù)據(jù)的位計數(shù)器,以便正確地將編程字移入;狀態(tài)3為在串行時鐘的控制下,,將控制字01111000000100由低位開始串行移入可編程芯片中;狀態(tài)4為在串行時鐘的控制下,,延時等待10ms,進(jìn)入下一狀態(tài);狀態(tài)5為在串行時鐘的控制下,,將控制字0111100000000由低位開始串行移入可編程芯片中,,使芯片輸出所希望的新頻率,同時進(jìn)入狀態(tài)0,,等待下一次的頻率調(diào)整,。?
串行時鐘并不是一直輸出,只有在對ICD2053B進(jìn)行編程調(diào)整輸出頻率時,,才有串行時鐘輸出,。即串行時鐘在非編程狀態(tài)時輸出為零,在編程狀態(tài)時才輸出可編程時鐘,。若產(chǎn)生39.5MHz的輸出頻率,,考慮位填充的實際編程字為589370H,其相應(yīng)的可編程時鐘與串行數(shù)據(jù)輸出的波形如圖4所示,。?
?
?
在該數(shù)據(jù)采集系統(tǒng)中,,采用可編程時鐘發(fā)生器芯片ICD2053B,動態(tài)調(diào)整采樣頻率,,使得系統(tǒng)具有通用性,。系統(tǒng)硬件設(shè)計簡單,通過串行數(shù)據(jù)編程,,可在線改變采樣頻率,。而在頻率調(diào)整過程中,無頻率跳變,,輸出時鐘頻率維持在固定的參考時鐘頻率上,,特別適合于對采樣頻率調(diào)整要求高的場合。?
參考文獻(xiàn)?
1 ICD2053B Programmable Clock Generator.CYPRESS,, 1995?
2 侯伯亨,,顧 新. VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計. 西安:西安電子科技大學(xué)出版社, 2000?
3 宋萬杰,羅 豐,,吳順君.CPLD技術(shù)及其應(yīng)用. 西安:西安電子科技大學(xué)出版社,, 1999?
4 劉寶琴,,張芳蘭,,田立生.ALTERA可編程邏輯器件及其應(yīng)用.北京:清華大學(xué)出版社,1995