采用MCS-51單片機(jī)實現(xiàn)CPFSK調(diào)制
如果波形調(diào)制是單一頻率的,調(diào)制程序可以非常簡單,只要編制順序程序就可以了。如果波形調(diào)制的頻率是變化的,就需要根據(jù)串行數(shù)據(jù)“0”或“1”的變化來改變每個時段的延時時間。在MCS-51單片機(jī)中,串行數(shù)據(jù)流是由軟件設(shè)置,硬件自動產(chǎn)生,由TXD自動發(fā)出的。TXD的高低電平變化可以通過單片機(jī)的程序測得。根據(jù)這一特性,可以通過不斷檢測TXD的高低電平變化來決定每個時段的延時時間。程序流程如圖5所示。
從流程圖5可以看出,在每個相位中,單片機(jī)將Px.x置“1”或置“0”后都要判斷TXD的電平,以確定相應(yīng)延時的機(jī)器周期數(shù)。在某個相位TXD電平開始改變時,程序就從這個相位改變脈沖的延時時間,而程序中相位執(zhí)行的次序并不改變。所以在TXD的電平改變時,兩種頻率的正弦波信號在同一個相位上交接。因此,F(xiàn)SK調(diào)制相位是連續(xù)的,見圖6。
編程時必須注意,程序不論走哪條分支,所用的機(jī)器周期數(shù)都必須跟蹤計算,最終所用的機(jī)器周期數(shù)必須符合表2的要求。另外,在進(jìn)行FSK調(diào)制前應(yīng)該增加一定長度的980Hz 的載波信號(PWM980)作為前導(dǎo)碼信號。在數(shù)據(jù)發(fā)送完之后還應(yīng)該增加一定長度的PWM980作為停止位,因為單片機(jī)的TI標(biāo)志出現(xiàn)在數(shù)據(jù)幀停止位的前沿。
4 波形的優(yōu)化
圖4中B端的波形也就是帶有鋸齒的正弦波,是PWM調(diào)制經(jīng)一階濾波后產(chǎn)生的波形。該波形已具有了正弦波的大致形狀,但鋸齒也很明顯,它和圖2的階梯波有些相似。通過前面的分析和表1的比較知道,增加PWM調(diào)制的時段分割數(shù)可以提高正弦波的波形精確度。
對于時段分割應(yīng)該選擇一個適當(dāng)?shù)臄?shù)字。分割太粗,波形的失真就會嚴(yán)重,給濾波帶來困難;分割過細(xì)會增加程序所占的空間。另一方面,時段的分割也不可能無限加大,因為采用軟件延時時,延時時間的最高分辨率為1個機(jī)器周期。從表2也可以看到,在第4和第6時段出現(xiàn)了最小脈寬為1個機(jī)器周期的情況,而在第5時段甚至出現(xiàn)了只有高電平?jīng)]有低電平的現(xiàn)象。如果繼續(xù)細(xì)分時段,將會出現(xiàn)更多的只有一種電平的脈寬而另一種電平脈寬長度為0的現(xiàn)象。按上述等分時段的方法,如果不提高單片機(jī)的晶振頻率,20個時段的分割已達(dá)到極限。所以不能單純地采用細(xì)分時段的方法來提高波形的精度。
從圖4中帶有鋸齒的正弦波可以看出,鋸齒的大小在整個波形上不是處處相等的,波峰左側(cè)的鋸齒要比右側(cè)的鋸齒小得多。
從圖2的階梯波形可以看出,當(dāng)階梯波的精度最高時,應(yīng)該是電壓的步長或時間的步長之一為最小,而不是電壓步長與時間步長之和為最小,當(dāng)然更不能是電壓或時間的任何步長為0。同樣,用脈寬波表示正弦波時,精度最高的表示方法應(yīng)該是“0、1”之一的脈寬為最小,而不一定是“0、1”脈寬之和為最小,也不能是“0、1”之一的脈寬為0。
評論