陳硯圃,劉 含,郭 博,石立春
(1.西京學(xué)院計(jì)算機(jī)學(xué)院,西安 710123;2.西京學(xué)院電子信息學(xué)院,西安 710123)
利用波形信號(hào)生成技術(shù)生成各種特定波形信號(hào),在航空航天、通信、導(dǎo)航、雷達(dá)、測控、醫(yī)療等領(lǐng)域的應(yīng)用極其廣泛[1-5]。直接數(shù)字頻率合成(DDS)技術(shù)[6]能夠?qū)π盘?hào)的頻率、相位、幅度等參數(shù)進(jìn)行精確控制,是普遍采用的波形信號(hào)生成技術(shù)。而直接利用DDS 專用芯片或借助FPGA 通用器件,是實(shí)現(xiàn)DDS 技術(shù)最常見的兩種解決方案[7,8]。另一方面,隨著單片機(jī)(含嵌入式微控制器)的主頻、CPU位數(shù)、存儲(chǔ)器容量的提高以及其片內(nèi)集成的外設(shè)越來越豐富,電子裝置的諸多功能由單片機(jī)直接實(shí)現(xiàn)已成為趨勢。為了節(jié)省電路、降低成本并提高系統(tǒng)的可靠性,特別需要對(duì)基于單片機(jī)直接生成波形信號(hào)的方法進(jìn)行研究。
為了能夠直接生成信號(hào),須選用主頻高且片內(nèi)嵌有數(shù)模轉(zhuǎn)換器(DAC)和直接存儲(chǔ)器存取控制器(DMA)等外設(shè)的單片機(jī)。利用DMA 并結(jié)合DAC,完全不占用單片機(jī)CPU 的時(shí)間即可將離散序列自動(dòng)轉(zhuǎn)換為模擬信號(hào)。由于DDS 在實(shí)現(xiàn)過程中需要連續(xù)進(jìn)行相位累加求和及相位的高位截取等操作,而DMA 僅支持?jǐn)?shù)據(jù)的自動(dòng)傳送功能,故DDS 技術(shù)并不適于單片機(jī)直接實(shí)現(xiàn)。單周期循環(huán)法[9]雖然能夠在DMA 模式下直接實(shí)現(xiàn),但其生成信號(hào)的頻偏過大。綜合考慮單周期循環(huán)法與DDS 技術(shù)的優(yōu)點(diǎn),提出了一種整周期循環(huán)波形信號(hào)生成方法。該方法通過對(duì)多個(gè)周期(整周期)的信號(hào)波形進(jìn)行等分離散以增加預(yù)存信號(hào)離散值的個(gè)數(shù),因而可有效提高生成信號(hào)的頻率精度,且能夠在單片機(jī)的DMA模式下直接實(shí)現(xiàn)。
單片機(jī)直接生成波形信號(hào)最簡單的辦法是將1個(gè)周期內(nèi)的波形離散值逐次經(jīng)DAC 后循環(huán)輸出,并通過控制相鄰離散值之間的讀取時(shí)間完成對(duì)信號(hào)頻率的控制。對(duì)正弦信號(hào),1 周期內(nèi)的Nwav個(gè)等間隔離散值為:
式中:bDAC——單片機(jī)片上DAC 分辨率;round[·]——4 舍5 入取整函數(shù)。
由于DAC 的輸出為單極性電壓,方括弧中的第二項(xiàng)(直流分量)可避免Nwav個(gè)離散值Vwav[n]取負(fù)值。
3)計(jì)算周期數(shù)NT和定時(shí)系數(shù)Ar
式中:fclk——定時(shí)時(shí)鐘頻率(fclk=1/tclk)。
受DAC 轉(zhuǎn)換時(shí)間的限制,定時(shí)系數(shù)Ar存在最小值A(chǔ)min,生成信號(hào)的最高頻率為:
在單片機(jī)系統(tǒng)中,定時(shí)時(shí)鐘周期tclk為固定的常數(shù),且生成信號(hào)的周期只能取其整數(shù)倍,這將導(dǎo)致生成信號(hào)的頻率fo與預(yù)設(shè)頻率fs之間存在誤差。設(shè)Nwav取常整數(shù),Ar可變但只能取整數(shù),顯然Ar的誤差在±0.5 之內(nèi),因而生成信號(hào)的最大相對(duì)頻偏為:
梨花松開方竹沿河而行,她知道從此一別,就是永生。梨花走在河北岸,方竹走在河南岸;倆人依舊默默地隔河而行,邊走邊你看我一眼、我看你一眼。不知不覺,又回到他們相遇的地方,彼此都站住了。良久,梨花讓方竹先走;但方竹不走,他讓梨花先走。方竹說:“回去吧!回去……”梨花依舊沒動(dòng)。方竹又揮手道:“回去吧!回去……”梨花這才毅然轉(zhuǎn)過身去,眼淚就嘩地涌了出來。她小跑了幾步,突然又站住了,轉(zhuǎn)過身來,只見方竹依舊站在河邊,呆呆地望著她,她就轉(zhuǎn)身跑了。
式中,Ci為重金屬i在土壤中的實(shí)測含量(mg/kg);Bi為重金屬i在土壤中的背景值(mg/kg)。通常對(duì)于重金屬i:Igeo≤0,土壤無污染;0
2.1 專家基本情況 11名受咨詢專家中,平均年齡45.0 歲;職稱:高級(jí)占 81.8%,中級(jí)占 18.2%;學(xué)歷:本科占 27.3%,碩士占54.5%,博士占 18.2%;另外,博導(dǎo)及碩導(dǎo)占72.7%。
由此可見,單周期循環(huán)法生成信號(hào)的最大頻偏與信號(hào)的頻率成正比。例如,當(dāng)fclk=100 MHz,Nwav=100 時(shí),生成信號(hào)的頻率fo在100 kHz 附近的最大頻偏可高達(dá)5 kHz。為了降低信號(hào)頻偏,一方面盡可能選擇主頻高的單片機(jī),另一方面應(yīng)減小信號(hào)在1 周期內(nèi)離散值的個(gè)數(shù)Nwav。但Nwav越大信號(hào)波形的質(zhì)量也就越高,為了得到高質(zhì)量的信號(hào)波形,一般要求Nwav不低于32。
接連進(jìn)攻了三天,鬼子在一八八團(tuán)五連陣地前丟下了二三百具尸體,這些尸體有的只是一塊塊爛肉,掛在鐵絲網(wǎng)上,鹿砦上,太陽一曬,尸塊都成了醬黑色。也有整尸的,穿戴齊整的,是兩天前被打死的。死了兩天的鬼子沒人收尸,晚上一陣雨,白天太陽曬,死人很快漲得和發(fā)面一樣。
受單周期循環(huán)法和DDS 法的啟發(fā),為了在單片機(jī)的DMA 模式下直接生成具有精確頻率的波形信號(hào),提出整周期循環(huán)波形信號(hào)生成法。與單周期循環(huán)法不同的是,整周期循環(huán)法用到的Nwav個(gè)信號(hào)離散值Vwav[n]是在多個(gè)周期(整周期)內(nèi)對(duì)波形信號(hào)等分離散的結(jié)果,這樣在相鄰離散值的間隔不小于DAC 轉(zhuǎn)換時(shí)間的前提下仍可增大Nwav,進(jìn)而提高生成信號(hào)的頻率精度。
對(duì)正弦信號(hào)的NT個(gè)信號(hào)周期等分Nwav等份后的離散值為:
水仙芝的心是稚嫩的,沒往深處想。在她看來,蔣海峰是班長,找她是正常的。而蔣海峰跟她談話,也是從班上的事情談起。面對(duì)蔣海峰侃侃而談,水仙芝保持沉默,偶爾微微一笑。
受DAC 轉(zhuǎn)換時(shí)間的限制,定時(shí)系數(shù)Ar存在最小值A(chǔ)min,信號(hào)的最高頻率為:
為了使生成信號(hào)的頻率盡可能精確,先根據(jù)預(yù)設(shè)參數(shù)求出Ar,Ar取整后再修正Nwav。由于Ar和Nwav為整數(shù),二者在取整過程中帶來的最大誤差均為1/2,因而生成信號(hào)的最大相對(duì)頻偏近似為:
需求參數(shù):信號(hào)頻率fs,最大相對(duì)頻偏em;
廖:陰陽互根、福禍相倚,中國傳統(tǒng)文化中的道家哲學(xué)思想,在我身上得到了充分的體現(xiàn).沒有現(xiàn)代自然科學(xué)的系統(tǒng)學(xué)習(xí),使得我能夠較為容易地理解中國傳統(tǒng)醫(yī)學(xué)的理論;不如意的現(xiàn)實(shí)生活狀況,逼迫一個(gè)只有小學(xué)文化水平的人,在公布“恢復(fù)高考”后的一個(gè)月時(shí)間中,拿下了“跳龍門”所必須掌握的知識(shí);正規(guī)的醫(yī)學(xué)院校教育,使得兩種截然不同的醫(yī)學(xué)知識(shí)體系在我頭腦中沖突、碰撞,歸于理解;畢業(yè)后沒有去作醫(yī)生,而是改治自己原本最不喜歡的歷史,又為理解傳統(tǒng)醫(yī)學(xué)增添了新的視角.
整周期循環(huán)情況下只要在足夠多的周期內(nèi)對(duì)信號(hào)進(jìn)行離散,就能得到足夠大的Nwav,進(jìn)而可使生成信號(hào)的頻率精度足夠高。
預(yù)設(shè)信號(hào)的Nwav個(gè)離散值Vwav[n]預(yù)存于存儲(chǔ)器中,單片機(jī)的DMA 在定時(shí)器的定時(shí)觸發(fā)下,完全不占用CPU 時(shí)間,每間隔Ar個(gè)定時(shí)時(shí)鐘周期tclk依次循環(huán)讀取Vwav[n]并送至DAC 輸出,生成信號(hào)的頻率為:
基于單片機(jī)的DMA 模式和整周期循環(huán)算法生成波形信號(hào)時(shí),首先依據(jù)預(yù)設(shè)的最大相對(duì)頻偏由式(9)初步估計(jì)信號(hào)離散值的個(gè)數(shù)Nwav。例如,當(dāng)要求相對(duì)頻偏在±0.5 %之內(nèi)時(shí),取Nwav=100。其次,依據(jù)所選的單片機(jī)確定定時(shí)器的時(shí)鐘周期tclk、最小DAC 時(shí)間間隔tmin以及DAC 分辨率bDAC等參數(shù)。單片機(jī)以自動(dòng)循環(huán)DMA 方式逐次讀取預(yù)存的波形數(shù)據(jù)并送至DAC,觸發(fā)相鄰兩次DMA 操作的時(shí)間間隔不得小于tmin。進(jìn)一步,依據(jù)Nwav,tclk,tmin以及預(yù)設(shè)頻率fs計(jì)算波形離散所需的周期數(shù)NT和定時(shí)觸發(fā)DMA 操作對(duì)應(yīng)的定時(shí)系數(shù)Ar,并由取整后的Ar更新Nwav。最后由式(5)計(jì)算Nwav個(gè)波形信號(hào)離散值Vwav[n]并預(yù)存于存儲(chǔ)器中。完成以上設(shè)置與計(jì)算工作后,啟動(dòng)單片機(jī)的定時(shí)器、DAC 以及DMA 等片上外設(shè),單片機(jī)將在DMA 方模式下自動(dòng)生成指定頻率的正弦波信號(hào)。
波形信號(hào)生成的單周期循環(huán)法是將信號(hào)在1個(gè)周期內(nèi)等分后的離散值循環(huán)送至DAC 而實(shí)現(xiàn)的,且受DAC 轉(zhuǎn)換時(shí)間的限制離散值的個(gè)數(shù)Nwav也存在下限,這正是信號(hào)頻偏過大的主要原因。其實(shí)只要能動(dòng)態(tài)獲取各離散時(shí)間信號(hào)的精確相位,再在存儲(chǔ)器中讀取相位最接近的信號(hào)離散值并送至DAC即可實(shí)現(xiàn)對(duì)信號(hào)頻率的精確控制。這正是DDS 波形信號(hào)生成方法的核心,該方法突破了在1 個(gè)周期內(nèi)對(duì)信號(hào)等分離散的要求,生成信號(hào)的頻偏非常小。但是DDS 在實(shí)現(xiàn)過程中需要連續(xù)進(jìn)行相位累加求和及相位的高位截取等操作,通常要借助DDS專用芯片或FPGA 器件才能實(shí)現(xiàn),在單片機(jī)的DMA模式下無法完成。當(dāng)單片機(jī)工作于定時(shí)中斷模式時(shí)能夠完成DDS 的全過程,但頻繁的中斷響應(yīng)、相位累加、相位截取、波形離散值讀取、DAC 裝載、中斷返回等操作不僅耗費(fèi)了大量CPU 時(shí)間,同時(shí)也極大地限制了生成信號(hào)的頻率范圍。
基于單片機(jī)和整周期循環(huán)法生成正弦信號(hào)的具體流程如下:
下變頻電路設(shè)計(jì)中只使用兩個(gè)射頻鎖相環(huán),設(shè)置RF1鎖相環(huán)與RF2鎖相環(huán)的VCO中心頻率分別為1 580 MHz與1 220 MHz,則鎖相環(huán)可輸出頻率范圍分別為1 501~1 659 MHz,1 159~1 281 MHz。兩個(gè)鎖相環(huán)的輸出采用復(fù)用輸出管腳,所以最終本振頻率的輸出范圍就是這兩個(gè)頻率范圍的組合。
1)預(yù)設(shè)參數(shù)
今年48歲的王建云,有著30多年的果樹種植管理經(jīng)驗(yàn),在果樹的選育、栽培、水肥管理等方面可謂樣樣精通。他的12畝果園雖然也遭受了嚴(yán)重的凍害,但同與其毗鄰的果園相比,他的果樹在采摘結(jié)束后仍未脫肥,葉片濃綠,樹勢健康。隨手一抓,能明顯感受到土壤松軟深厚。
可以看出最大相對(duì)頻偏隨頻率的提高而增大。而且在信號(hào)的高頻端上式取最小值中的第1 項(xiàng)大于第2 項(xiàng),故在整個(gè)生成信號(hào)的頻率范圍內(nèi),最大相對(duì)頻偏近似為:
單片機(jī)參數(shù):定時(shí)器時(shí)鐘周期tclk,最小DAC 時(shí)間間隔tmin,DAC 分辨率bDAC;
2)估計(jì)波形離散值個(gè)數(shù)
Nwav=round(1/(2em));
除了人為上的管理,交通安全管理設(shè)備也是保證學(xué)校內(nèi)部交通安全的基礎(chǔ),高校需要更新校園內(nèi)的限速標(biāo)示,使進(jìn)入學(xué)校內(nèi)的人員可以明確校內(nèi)的行車要求,還需要改善測速設(shè)備,保證數(shù)據(jù)接入視頻識(shí)別系統(tǒng),并且還需要針對(duì)限速要求較高的地區(qū),專門配置減速帶,限制校園內(nèi)的車速。
將波形信號(hào)在1 個(gè)周期內(nèi)的Nwav個(gè)離散值Vwav[n]預(yù)存于存儲(chǔ)器中,在單片機(jī)定時(shí)器的控制下每隔Ar個(gè)定時(shí)時(shí)鐘周期tclk依次讀取預(yù)存的Vwav[n]并送至DAC,進(jìn)而生成波形信號(hào)。信號(hào)的頻率為:
NT=ceil(Nwavtminfs);(ceil(·)為向上取整函數(shù))
Ar=round(NT/(Nwavfstclk));
4)更新Nwav
Nwav=round(NT/(Ar fstclk));
5)由式(5)預(yù)設(shè)波形離散值
內(nèi)容資源建設(shè)是各互聯(lián)網(wǎng)期刊主要出版商的重要工作,資源建設(shè)的廣度和內(nèi)容挖掘的深度決定了各平臺(tái)的服務(wù)能力與發(fā)展?jié)摿?。因此,各平臺(tái)都非常重視該項(xiàng)工作,具體情況見表7。
6)啟動(dòng)單片機(jī)的定時(shí)器、DAC 以及DMA
根據(jù)波形信號(hào)單片機(jī)直接生成的理論,為了使輸出信號(hào)的頻率范圍盡可能寬、頻率盡可能準(zhǔn)以及波形質(zhì)量盡可能高,應(yīng)選擇片內(nèi)嵌有大容量數(shù)據(jù)存儲(chǔ)器(SRAM)、高速DMA、高速定時(shí)器以及高速DAC 的單片機(jī)。以下實(shí)驗(yàn)中采用型號(hào)為STM32F407ZGT 的中高端單片機(jī)。該單片機(jī)在國內(nèi)使用普遍,相關(guān)特色有:系統(tǒng)時(shí)鐘頻率fsys=168 MHz,SRAM 的容量為192 KB,支持1 次最多傳送65536 個(gè)數(shù)據(jù)的DMA,12 位的高速DAC。該單片機(jī)片上定時(shí)器分為高級(jí)定時(shí)器、通用定時(shí)器和基本定時(shí)器,實(shí)驗(yàn)中采用輸入時(shí)鐘頻率fclk=84 MHz 的基本定時(shí)器觸發(fā)DMA,進(jìn)而自動(dòng)完成預(yù)存波形值的讀取并送至DAC 生成模擬信號(hào)。另外實(shí)驗(yàn)發(fā)現(xiàn),在最小定時(shí)間隔tmin不低于8tclk時(shí)該型號(hào)單片機(jī)的DAC 能夠正常工作。
首先對(duì)單周期循環(huán)法生成正弦信號(hào)進(jìn)行實(shí)驗(yàn)。為了便于與整周期循環(huán)法進(jìn)行比較,實(shí)驗(yàn)中預(yù)存的信號(hào)離散值個(gè)數(shù)固定,Nwav=100。由于受tmin=8tclk的限制,生成信號(hào)的最高頻率大約為100 kHz。實(shí)驗(yàn)中分別在100 Hz,1 kHz,10 kHz 及100 kHz 等頻點(diǎn)附近對(duì)所生成的正弦信號(hào)進(jìn)行了測試,實(shí)驗(yàn)表明生成信號(hào)的幅度穩(wěn)定、波形質(zhì)量好。Nwav=100 時(shí)單周期循環(huán)法生成不同頻率的正弦波信號(hào)時(shí)對(duì)應(yīng)的最大頻偏如表1 所示,其中的預(yù)設(shè)頻率值由實(shí)際頻偏較大時(shí)對(duì)應(yīng)的頻率給出,最大頻偏是由式(4)給出的理論值??梢钥闯?生成信號(hào)最大頻偏的實(shí)際值與理論值非常吻合。但信號(hào)頻偏隨頻率的升高而顯著增大,在100 kHz 附近最大頻偏可達(dá)6 kHz。
表1 預(yù)設(shè)Nwav=100 時(shí)單周期循環(huán)法的最大頻偏Tab.1 Maximum frequency deviation of single-period repetition method when Nwav=100 is preset 單位:Hz
考慮到整周期循環(huán)法生成的波形信號(hào)的頻偏主要由波形離散值的個(gè)數(shù)Nwav決定,因而除了改變生成信號(hào)的頻率外,還通過改變波形離散值的個(gè)數(shù)Nwav進(jìn)行測試。當(dāng)預(yù)設(shè)Nwav=100,1 000,10 000 時(shí)整周期循環(huán)法所生成信號(hào)的頻偏如表2 至表4 所示,其中的最大頻偏由式(9)給出,可以看出最大頻偏的實(shí)測結(jié)果與理論估計(jì)非常吻合。由表1 與表2可知在高頻端(100 kHz 處),相對(duì)于單周期循環(huán)法,整周期循環(huán)法的頻率精度提高了1 個(gè)數(shù)量級(jí)。比較表2 至表4 的結(jié)果可知,生成信號(hào)的最大頻率偏差與信號(hào)的離散個(gè)數(shù)Nwav成反比,Nwav越大頻率的精度就越高。對(duì)整周期循環(huán)法,波形的離散值取自多個(gè)周期,通過增大周期個(gè)數(shù)增大Nwav,進(jìn)而提高頻率精度。但受單片機(jī)片內(nèi)存儲(chǔ)器容量的限制,Nwav的取值是有上限的。對(duì)STM32F407ZGT 單片機(jī),Nwav可以取至10 000,對(duì)應(yīng)的生成信號(hào)最大相對(duì)頻偏為僅有0.5×10-4。
表2 預(yù)設(shè)Nwav=100 時(shí)整周期循環(huán)法的最大頻偏Tab.2 Maximum frequency deviation of integer-period repetition method when Nwav=100 is preset
表3 預(yù)設(shè)Nwav=1 000 時(shí)整周期循環(huán)法的最大頻偏Tab.3 Maximum frequency deviation of integer-period repetition method when Nwav=1 000 is preset
表4 預(yù)設(shè)Nwav=10 000 時(shí)整周期循環(huán)法的最大頻偏Tab.4 Maximum frequency deviation of integer-period repetition method when Nwav=10 000 is preset
為了得到高質(zhì)量的信號(hào)波形,一般要求在1 個(gè)信號(hào)周期內(nèi)不低于32 個(gè)離散值,又由于實(shí)驗(yàn)中的最小定時(shí)間隔tmin不小于8tclk,理論上生成信號(hào)的頻率可高至330 kHz。但是,以上實(shí)驗(yàn)只給出了頻率在100 kHz 之內(nèi)的生成信號(hào)的結(jié)果,這是因?yàn)楫?dāng)頻率高于100 kHz 時(shí)STM32F407ZGT 單片機(jī)生成信號(hào)的幅度和波形質(zhì)量會(huì)逐漸下降。當(dāng)Nwav=10 000,預(yù)設(shè)頻率fs分別為10 kHz,100 kHz,150 kHz,200 kHz時(shí),用示波器對(duì)生成信號(hào)的實(shí)測結(jié)果如圖1所示,頻率測量值分別為10.000 kHz,100.01 kHz,150.01 kHz,200.01 kHz。頻率為10 kHz 和100 kHz時(shí)信號(hào)的幅度一致(峰峰值均為2.88 V)且波形無失真,頻率為150 kHz 時(shí)峰峰值已降至2.66 V,頻率為200 kHz 時(shí)峰峰值為2.48 V 且波形畸變?yōu)槿遣āP盘?hào)波形的這種失真主要是由單片機(jī)片內(nèi)的DAC 緩沖輸出放大器的壓擺率較低造成的。為了提高不失真信號(hào)的頻率,需選擇片內(nèi)具有壓擺率更高的DAC 緩沖輸出放大器的單片機(jī)。
圖1 整周期循環(huán)法生成正弦信號(hào)的顯示波形圖Fig.1 Sinusoidal signal waveform generated by integer-period repetition method
通過在整數(shù)個(gè)周期內(nèi)對(duì)信號(hào)進(jìn)行等分離散獲取波形信號(hào)的預(yù)設(shè)離散值,提出了生成波形信號(hào)的整周期循環(huán)法。該方法借助片內(nèi)嵌有DMA 和DAC 等外設(shè)的單片機(jī),無需引入外圍芯片即可直接生成預(yù)設(shè)的波形信號(hào),且在生成信號(hào)時(shí)完全不占用單片機(jī)的CPU 時(shí)間。導(dǎo)出了整周期循環(huán)法生成波形信號(hào)的頻率及最大相對(duì)頻偏公式,給出了算法實(shí)現(xiàn)流程。理論分析表明,只要利用足夠多的信號(hào)周期獲得足夠多的預(yù)設(shè)波形離散值,即可滿足預(yù)設(shè)的頻率精度。采用STM32F407ZGT 型單片機(jī)對(duì)整周期循環(huán)法生成的正弦信號(hào)進(jìn)行了實(shí)驗(yàn)測試。實(shí)驗(yàn)表明信號(hào)波形穩(wěn)定、質(zhì)量好,實(shí)測結(jié)果與理論相吻合,信號(hào)的最大頻偏與預(yù)設(shè)波形離散值的個(gè)數(shù)成反比。