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