葛俊杰,劉旭東,劉愛東
(1.煙臺(tái)職業(yè)學(xué)院 信息工程系,山東 煙臺(tái)264670;2.海軍航空工程學(xué)院 兵器科學(xué)與技術(shù)系,山東 煙臺(tái)264001)
目前,利用CPU 和FPGA 構(gòu)成嵌入式系統(tǒng)是電子設(shè)備小型化的主要技術(shù)途徑,通過FPGA 實(shí)現(xiàn)DAC 可方便系統(tǒng)功能的整合[1-2]。傳統(tǒng)的電流相加型DAC 是一種模數(shù)混合電路,不適合同其他數(shù)字電路模塊集成到一起采用超大規(guī)模電路實(shí)現(xiàn)。目前很多嵌入式CPU 通過計(jì)數(shù)器提供PWM電路實(shí)現(xiàn)數(shù)模轉(zhuǎn)換,例如4 位的DAC,當(dāng)輸入數(shù)據(jù)為8 時(shí),前8 個(gè)時(shí)鐘輸出高電平,后8 個(gè)時(shí)鐘輸出低電平;如果8 個(gè)高電平均勻分布在16 個(gè)時(shí)鐘周期中,這種方式就是Δ 調(diào)制。圖1 為PWM 方式與Δ 調(diào)制方式的波形對(duì)比圖[3],兩種方式的占空比相同,顯然Δ 調(diào)制方式優(yōu)于PWM 方式。由于PWM 電路實(shí)現(xiàn)數(shù)模轉(zhuǎn)換對(duì)濾波電路要求高,且噪聲大,為此提出累加實(shí)現(xiàn)Σ-Δ 式DAC 的設(shè)計(jì)思想,從而大大簡化電路設(shè)計(jì),更利于FPGA 實(shí)現(xiàn),可用簡單的濾波器完成電路濾波。
1 PWM 方式與Δ 調(diào)制方式波形對(duì)比圖
式(1)表明,如果對(duì)Din做2N次加法,結(jié)果一定可以被2N整除,且結(jié)果為Din。進(jìn)一步說,如果累加器是N 位,每個(gè)時(shí)鐘進(jìn)行一次累加,累加器一旦溢出就產(chǎn)生一個(gè)進(jìn)位脈沖,那么經(jīng)過2N個(gè)時(shí)鐘的累加,一定會(huì)產(chǎn)生Din個(gè)進(jìn)位脈沖,即通過求Σ,電路可實(shí)現(xiàn)Δ 調(diào)制。
求和電路可采用異或門實(shí)現(xiàn),為了實(shí)現(xiàn)時(shí)鐘控制的累加功能,還必須具有鎖存器[8]。為了知道是否產(chǎn)生進(jìn)位,應(yīng)當(dāng)采用N+1 位累加器和鎖存器,但這樣還不能實(shí)現(xiàn)每次進(jìn)位產(chǎn)生一個(gè)進(jìn)位脈沖,由于進(jìn)位脈沖的寬度必須準(zhǔn)確為一個(gè)時(shí)鐘周期,因此,希望進(jìn)位脈沖伴隨累加過程產(chǎn)生。為了達(dá)到這一效果,實(shí)際采用N+2 位累加器和鎖存器,第N+2位作為輸出位。圖2 給出了8 位DAC 的電路框圖,虛線框內(nèi)的部分由FPGA 實(shí)現(xiàn)。
初始化時(shí),10 位鎖存器SigmaLatch 的初值為二進(jìn)制0100000000B。
圖2 8 位DAC 的FPGA 電路
圖3 說明了進(jìn)位脈沖的產(chǎn)生過程,為了直觀,圖3 中將最高兩位直接列出,后面的8 位作為一個(gè)整體看待。設(shè)輸入數(shù)據(jù)Din=X,則有:
圖3 進(jìn)位脈沖產(chǎn)生過程
在時(shí)鐘CLK 的作用下,累加器、鎖存器等將按照?qǐng)D3 的過程進(jìn)行變化。圖3 中的向上箭頭代表CLK 信號(hào)上升沿到來,并將∑i的內(nèi)容送入Li。
從進(jìn)位脈沖產(chǎn)生過程可以看出,對(duì)X 進(jìn)行累加,每當(dāng)N 位累加器溢出,鎖存器SigmaLatch 最高位輸出一個(gè)脈沖,且脈沖寬度為一個(gè)時(shí)鐘周期。下面的程序給出了N 位分辨率DAC 的Verilog 實(shí)現(xiàn)。
當(dāng)輸入保持Din=X 不變時(shí),可以證明輸出脈沖個(gè)數(shù)的周期抖動(dòng)最大為一個(gè)時(shí)鐘周期。
證明:根據(jù)式(2),2N= nX-δ,n 為累加次數(shù),可以代表脈沖周期。假設(shè)第min 個(gè)脈沖nmin周期最小,第max 個(gè)脈沖周期nmax最大。則有:
δmin-1和δmax-1代表上一次的余數(shù)對(duì)本次的影響。根據(jù)余數(shù)的性質(zhì),有:
|δmin-1+δmin| <X
|δmax-1+δmax| <X
于是(nmax-nmin)X <2X
即nmax-nmin<2,證畢。
準(zhǔn)確度分析說明2N個(gè)時(shí)鐘周期輸出電平的有效值是絕對(duì)準(zhǔn)確的,抖動(dòng)性分析進(jìn)一步說明任何兩個(gè)脈沖周期輸出的時(shí)鐘脈沖個(gè)數(shù)最多相差一個(gè)時(shí)鐘周期。為了提高響應(yīng)速度,如果采用2M(M <N )個(gè)時(shí)鐘周期的有效值代替2N個(gè)時(shí)鐘周期的有效值,對(duì)精度會(huì)有何種影響,下面給出具體分析。
圖4 N=8,M=3 時(shí)誤差隨輸入量的變化關(guān)系
由于采用Δ 調(diào)制的輸出方式,采用圖2 所示的簡單阻容濾波電路就可以滿足設(shè)計(jì)要求,但在電阻的選取和時(shí)間常數(shù)的選擇上還要注意以下問題[9-10]:
(1)電阻的選取要考慮FPGA 的輸出驅(qū)動(dòng)能力,電阻過小會(huì)造成FPGA 不能滿幅度輸出,一般要求大于2.5 kΩ,但也不能過大,相對(duì)負(fù)載電阻而言要盡可能小。
(2)濾波時(shí)間常數(shù)τ =RC,大一點(diǎn)有助于對(duì)脈沖串的濾波。最惡劣的情況發(fā)生在Din=1 和Din=2N-1 時(shí),在2N個(gè)時(shí)鐘周期內(nèi)只有一個(gè)時(shí)鐘電平幅度不同。峰峰濾波噪聲可以用式(5)近似表示:
式中:PPNFS為滿量程范圍的峰峰濾波噪聲,單位為LSB;f 為DAC 的內(nèi)部時(shí)鐘頻率;τ 為濾波器時(shí)間常數(shù)。
按照?qǐng)D2 的參數(shù),計(jì)算得PPNFS= 0. 165 LSB,剩余0.835 LSB 的噪聲容限可以留給其他噪聲因素。
(3)濾波時(shí)間常數(shù)τ =RC,過大可能造成輸出衰減。低通濾波器的截止頻率為:
按照?qǐng)D2 的參數(shù),計(jì)算得fc=10.3 kHz。當(dāng)DAC 輸出信號(hào)變化比較平緩時(shí),濾波時(shí)間常數(shù)可以大一些,如果希望具有陡峭的變化,時(shí)間常數(shù)應(yīng)當(dāng)小一些。
(1)要保證輸出能夠準(zhǔn)確反映Din的變化,Din的變化速率和內(nèi)部時(shí)鐘頻率的關(guān)系如下:
如果Din的變化速率較高,DAC 的內(nèi)部時(shí)鐘頻率f 可能無法保證。但根據(jù)上述的分析,Δ-Σ式DAC 的輸出能夠快速反應(yīng)出Din的變化,只是精度不夠高,而Δ-Σ 式屬于過采樣技術(shù),噪聲屬于高頻噪聲,如果系統(tǒng)對(duì)高頻噪聲不敏感,可不必按照式(6)確定頻率,但要盡可能遠(yuǎn)遠(yuǎn)大于系統(tǒng)的截止頻率。因此Δ-Σ 式DAC 適合聲卡、反饋控制系統(tǒng)和低頻信號(hào)源的應(yīng)用需求。
(2)傳統(tǒng)DAC 當(dāng)Din=2N-1(滿度)時(shí),DAC輸出一直維持高電平。上述FPGA 的實(shí)現(xiàn)方案在2N個(gè)時(shí)鐘周期內(nèi)一定會(huì)產(chǎn)生一個(gè)低電平脈沖,這一點(diǎn)需要注意。
筆者通過對(duì)Δ 調(diào)制信號(hào)特點(diǎn)的分析,提出了累加實(shí)現(xiàn)Σ-Δ 式DAC 的數(shù)學(xué)模型,利用FPGA實(shí)現(xiàn)了該數(shù)學(xué)模型。與傳統(tǒng)DAC 相比,Δ-Σ 式DAC 通過增加兩個(gè)冗余位,取消了常規(guī)的組合邏輯電路,從而簡化了電路設(shè)計(jì),更加易于FPGA 實(shí)現(xiàn)。另外,筆者從抖動(dòng)性和快速響應(yīng)過程精度進(jìn)行了定量分析,根據(jù)分析結(jié)果可知,Δ-Σ 式DAC便于系統(tǒng)小型化和優(yōu)化設(shè)計(jì),可以根據(jù)需要調(diào)整精度和速度;而根據(jù)N +2 位加法器實(shí)現(xiàn)的N 位DAC,沒有競(jìng)爭冒險(xiǎn)現(xiàn)象,更加適合聲卡、反饋控制系統(tǒng)等多種應(yīng)用場(chǎng)合。
[1] 劉明章.基于FPGA 的嵌入式系統(tǒng)設(shè)計(jì)[M].長沙:國防工業(yè)出版社,2007:33-52.
[2] 張清勇,戴延浩.基于ARM 和FPGA 的手持工程測(cè)試儀設(shè)計(jì)[J].武漢理工大學(xué)學(xué)報(bào):信息與管理工程版,2012,34(4):449-450.
[3] 夏澤中,任大慶,任薛蓓,等.新型單級(jí)隔離型PWM變換器及其控制研究[J].武漢理工大學(xué)學(xué)報(bào):信息與管理工程版,2012,34(5):539-541.
[4] 李笑笑,李章全.用于24 比特音頻DAC 的單環(huán)單比特Σ-Δ 調(diào)制器的設(shè)計(jì)與FPGA 實(shí)現(xiàn)[D].上海:上海交通大學(xué)圖書館,2010.
[5] 彭星曄,孟橋,郝俊.數(shù)字Σ-Δ 調(diào)制器的FPGA 設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007,38(26):204-205.
[6] 李海龍,黑勇,喬樹山,等. 應(yīng)用于ΣΔ ADC 的抽取濾波器的設(shè)計(jì)與實(shí)現(xiàn)[J]. 微電子學(xué)與計(jì)算機(jī),2011,40(7):72-75.
[7] 陳 茜,王錦榮.基于Matlab 的ΣΔ ADC 系統(tǒng)設(shè)計(jì)及仿真[J].系統(tǒng)仿真學(xué)報(bào),2008,20(2):755-758.
[8] STEPHEN E D.微機(jī)接口技術(shù)實(shí)驗(yàn)教程[M]. 蔡梅林,伍欽,譯.北京:機(jī)械工業(yè)出版社,2006:125-128.
[9] SANGIL P. Principles of sigma_delta modulation for analog-to-digital converters[R].[S.l.]:Motorola Corporation,2006.
[10]趙東方,唐紅雨,朱偉興. 基于FPGA 的∑-ΔD/A轉(zhuǎn)換器的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2005,36(7):99-100.