靳 釗,喬麗萍,王聰華,王江安,郭 晨
(1.長安大學信息工程學院,陜西 西安 710064;2.西藏民族學院信息工程學院,陜西 咸陽 712082)
責任編輯:魏雨博
隨著大規模集成電路、計算機網絡以及全球化商業模式的發展,射頻識別(RFID)技術得到了迅速發展,并被列為21世紀最有前途的重要產業和應用技術之一。在我國正在大力推進的物聯網[1]建設中,RFID標簽作為信息載體,在整個物聯網系統中占據重要的地位,在物流、交通、安全等各個行業有著廣闊的應用前景。在RFID標簽芯片的數字邏輯電路設計中,分頻器是一種重要的電路組成部分。分頻通常包含整數分頻和小數分頻,但一些電路中并不只包含一種頻率或一種占空比的時鐘,如超高頻RFID 的國 際標 準 ISO/IEC 18000—6C[2]和 EPCglobal Class1 Gen2[3]中,規定RFID標簽的反向散射頻率在40~640 kHz范圍內變化,這就要求標簽可以根據輸入控制實時產生特定頻率的編碼時鐘。在一些高頻電源開關控制中也對多種占空比提出了要求。
任意數分頻電路可由模數混合方式實現[4],但模數混合電路相對復雜,純數字的分頻電路得到了越來越多的應用,本文在分析常見分頻電路的基礎上,通過改進與優化,設計了一個新型通用分頻器,該分頻器支持整數和半整數分頻,且占空比全范圍可調,保證了電路時序和功能穩定可靠。該分頻器通過FPGA硬件平臺驗證,給出了幾個特征分頻點的仿真波形,證明了設計的正確性和可行性。
整數分頻可分為偶數分頻和奇數分頻。偶數分頻通常可以通過計數器實現[5]。例如要對一個源時鐘進行2K分頻,則使用一個模2K計數器即可實現。分頻關鍵參數如下

式中:mod_cnt為計數器模值;reverse_cnt為翻轉輸出時鐘時的計數值;duty_cycle為所得到的分頻時鐘占空比。特別地,X取K-1時翻轉輸出時鐘,如此循環即可得到占空比為50%的2K分頻時鐘。
奇數分頻的原理[6-7]和偶數分頻一致,只是計數器的模值做相應改變。如對源時鐘做2K+1分頻,分頻關鍵參數如下

在小數分頻的設計中,目前廣泛采用的方法是雙模前置方式[8-9],通過設計兩個不同分頻比的整數分頻器,控制單位時間內兩種分頻比出現的不同次數,從而在總體的平均意義上獲得一個小數分頻。例如前置m次分頻系數D1分頻,n次D2分頻,則最終可以得到的分頻系數為

從小數分頻的原理可以看出,由于分頻器的分頻值在不斷交替改變,分頻后得到的信號抖動比較大。所以在對時鐘相位敏感的設計中任意小數分頻使用較少。
常見的半整數分頻原理[10]如圖1?;驹O計思想是:對于進行K-0.5分頻,首先進行模K的計數,在計數到K-1時,輸出時鐘置為1,下一個時鐘沿計數器恢復0值,輸出時鐘變為0。即當計數值為K-1時,輸出時鐘才為1。如果計數值K-1對應著半個輸入時鐘周期時,將計數器值置為0,并將輸出時鐘置0,則輸出時鐘高電平時間只有半個輸入時鐘周期長度,即實現了K-0.5分頻時鐘。要保證這個特殊的半個周期時鐘,采用K-0.5分頻信號的2分頻信號與輸入時鐘異或,反轉輸入時鐘,將下一個觸發時刻提前半個周期,相當于扣除掉了半個輸入時鐘周期。

圖1 半整數分頻器原理圖
從上述半整數分頻原理不難看出,clk_div2剛好是50%占空比的2 K-1分頻時鐘。進一步分析發現,如果在異或門上加上使能信號,當使能信號開啟時,即是上面討論的K-0.5半整數分頻電路,當使能信號關閉時,計數器跟隨輸入時鐘翻轉,不會出現半個周期計數值的情況,即可實現K整數分頻,同理在clock_div2處額外的得到了2K偶數分頻。如果模K計數器的模值和輸出波形翻轉的位置可以通過用戶輸入參數實時設定和改變,即分頻時鐘的分頻系數和占空比根據輸入實時改變,則電路的實用性將大大提升。

圖2 改進的通用分頻器原理圖
基于這一思路,本文對半整數分頻電路進行改進和優化,設計了如圖2所示的通用分頻器。該分頻器有4個輸入,1個輸出。其中M為分頻系數的整數部分,理論取值為[1,∞),本文取4位位寬為例;N為分頻系數小數部分,位寬為1,“0”表示整數分頻,“1”表示半整數分頻;H為占空比控制參數,表示分頻時鐘高電平所占原始時鐘的周期數,位寬一般和M一致,取值為[1,M+N)之間的整數。例如(M,N,K)=(4,0,2)即表示4分頻,占空比要求50%。
下面以2.5分頻為例詳細說明電路的工作原理和過程。分頻器輸入 (M,N,H)=(2,1,1),要求分頻執行2.5分頻,高電平占一個源時鐘周期。輸入處理電路首先對輸入參數進行判斷和處理,此處N為1,即要求半整數分頻,則給出使能信號開啟異或門。輸入的分頻系數為2.5,則預置變模計數器模值為M+N=3,并置最大計數值max_cnt為3-1=2。占空比要求高電平為1個源時鐘周期,將計數器分頻時鐘clk_cnt翻轉點設為H=1,當異或時鐘clk_xor上升沿采樣的計數值小于此值時,時鐘輸出高電平。clk_xor由低到高翻轉,觸發二分頻電路輸出時鐘clk_div2由低到高翻轉,由于電路自身的延遲,clk_div2的相位會比輸入源時鐘clk_in相位滯后,然后clk_div2和clk_in二者異或,在clk_in反轉同時,產生一個窄脈沖,由此窄脈沖下降沿控制計數器計數值加1,從而在下一個clk_xor時鐘上升沿時,采樣到計數值1,隨即翻轉clk_cnt。如此循環即可得到2.5分頻時鐘,NC-Verilog仿真波形見圖3。

圖3 2.5分頻軟件仿真波形(H=1)(截圖)
為了提高電路時序的可靠性,采用了下降沿計數,上升沿采樣計數值翻轉輸出時鐘,以保證采樣時有足夠的建立保持時間。
其次關于圖3中clk_xor的窄脈沖,由波形可以看出在半整數分頻時,時鐘異或出現的窄脈沖的主要功能是上升沿采樣計數值,下降沿將計數值遞增,目的是保證在下一個時鐘上升沿來時,能正確采樣到新計數值而決定輸出時鐘是否翻轉。可以看出理論上只要小脈沖下降沿處在半個源時鐘周期內,就能保證電路功能。所以為了進一步保證電路功能,規避此小脈沖可能受到干擾后對電路功能帶來影響,將二分頻電路的輸出經過一定的延遲,再送入異或門運算,如圖2中的延遲單元BUF。具體延遲值根據源時鐘脈沖大小而定。這樣處理后,電路時序更加穩定可靠,健壯性更強。
分頻器的輸入H為占空比調整參數,H的值控制輸出時鐘不同的相位翻轉時刻,可實現不同的分頻占空比。同樣以上述2.5分頻為例,將分頻器占空比調整參數H由1改到2,即要求分頻時鐘高電平占兩個源時鐘周期,仿真波形見圖4。

圖4 2.5分頻軟件仿真波形(H=2)(截圖)
不難發現圖3、圖4中,clk_cnt高電平都比預設值少了半個周期,并非和所設H參數一致。對于占空比調整參數H,需要補充的是:對于偶數分頻H的值即準確反映高電平的周期數,而對于奇數和半整數分頻H-0.5才是高電平的周期數,這分別和半整數分頻中的脈沖扣除,奇數分頻的占空比調整有關。特別地,當取得H≥(M+N)/2的第一個整數時,對于整數分頻,占空比為50%;對于半整數分頻,不能做到完全的50%,高電平與低電平相差半個周期。這存在一個規律:1)若是M為偶數的半整數分頻,則高電平比低電平多半個周期,占空比≥50%;2)若是M為奇數的半整數分頻,則高電平比低電平少半個周期,占空比≤50%;3)當整數部分越大時,占空比越趨近于50%。具體波形可參見下一節FPGA硬件驗證結果。
另外,H參數取值為[1,M+N)之間的所有整數。且隨著M+N的增大,H的取值也會越多,對應的占空比調整步長也越小,所以理論上本分頻器的占空比調整跨越了幾乎整個M+N分頻系數下合法占空比的取值范圍。
提出的分頻器電路由Verilog HDL語言實現,順利通過NC-Verilog軟件仿真后,采用Xinlinx公司的ISE開發環境綜合并下載到SPARTAN XC3S250E芯片上,通過ISE軟件內嵌的邏輯分析儀ChipScope軟件進行仿真驗證。FPGA綜合資源利用情況如表1所示。表1的7個寄存器中,有4個是被4位寬的計數器所占用,這是由用戶可輸入的分頻控制參數M的位寬所決定的,而其余電路控制結構只使用了3個寄存器,可以看出整個電路占用資源很少。

表1 FPGA綜合利用情況
本文分頻系數M位寬為4,N位寬為1,所以選取了從1~15.5的多個具有代表性的分頻系數和占空比參數進行測試。仿真結果表明電路功能和設計功能一致。另外分頻系數越大,可選擇的占空比調整范圍越寬,如果在時鐘輸出端再加入一級反相器,則可能獲得更多的占空比選擇。例如5分頻占空比為10%,30%,50%,70%,經過反相可以增加占空比為90%的選擇。圖5給出了部分分頻系數下的FPGA測試波形,圖中可以看出不同占空比效果。其中占空比的值為一個輸出時鐘周期內高電平所占輸入時鐘周期數和低電平所占時鐘周期數的比值,圖中以小數表示。如1.5分頻中,一個clk_out周期高電平對應0.5個clk_in周期,低電平對應1個clk_in周期,所以占空比為0.5/1.5=33.3%。

圖5 FPGA硬件測試波形(截圖)
本文提出一種基于半整數分頻電路改進的通用分頻器設計,能根據用戶輸入分頻系數和占空比參數實時產生相應的分頻時鐘。電路支持整數分頻和半整數分頻,支持50%占空比,占空比全范圍可調。對該電路時序上的處理優化,確保了電路時序可靠,功能穩定,并且電路結構簡單,占用資源極少,具有很強的通用性和可移植性。
[1]游曉黔,周韞藝.可信物聯網的研究[J].電視技術,2012,36(14):24-27.
[2]IS0/IEC18000—6,Radio Frequency for Item Management Part 6:Parameters for Air Interface Communications at 860 MHz to 960 MHz[S].2006.
[3]EPC radio-frequency identify protocols Class 1 Generation2 UHF RFID tag:Protocol for communications at 860 Mhz-960Mhz[EB/OL].[2012-10-30].http://www.epcglobalinc.org/home.
[4]KRISHNAPURA N,KINGET P.A 5.3 GHz programmable divider for HiPerLAN in 0.25μm CMOS[J].IEEE J.Solid-State Circuits,2000,35(7):1019-1024.
[5]郭桂良,趙興.一種新型小數/整數分頻器[J].微電子學,2008,38(3):420-423.
[6]高清運,李學初.CMOS高性能奇數分頻器的設計[J].電子學報,2004,32(5):869-870.
[7]TIAN Hongli,SHI Shuo,ZHANG Jun.Controllable arbitrary integer frequency divider based on VHDL[C]//Proc.International Joint Conference on Artificial Intelligence,2009.[S.l.]:IEEE Press,2009:691-694.
[8]曾健平,謝海情,晏敏,等.高性能雙模前置分頻器設計[J].半導體技術,2007,32(1):65-67.
[9]何小虎,胡慶生,肖潔.0.18 μm CMOS PLL頻率綜合器中可編程分頻器的設計與實現[J].微電子學與計算機,2007,24(5):61-65.
[10]白雪皎.基于CPLD半整數分頻器的設計[J].長春大學學報,2006,16(1):13-15.