pwm的工作原理
脈寬調(diào)制PWM是開(kāi)關(guān)型穩(wěn)壓電源中的術(shù)語(yǔ)。這是按穩(wěn)壓的控制方式分類(lèi)的,除了PWM型,還有PFM型和PWM、PFM混合型。脈寬寬度調(diào)制式(PWM)開(kāi)關(guān)型穩(wěn)壓電路是在控制電路輸出頻率不變的情況下,通過(guò)電壓反饋調(diào)整其占空比,從而達(dá)到穩(wěn)定輸出電壓的目的。
隨著電子技術(shù)的發(fā)展,出現(xiàn)了多種PWM技術(shù),其中包括:相電壓控制PWM、脈寬PWM法、隨機(jī)PWM、SPWM法、線電壓控制PWM等,而在鎳氫電池智能充電器中采用的脈寬PWM法,它是把每一脈沖寬度均相等的脈沖列作為PWM波形,通過(guò)改變脈沖列的周期可以調(diào)頻,改變脈沖的寬度或占空比可以調(diào)壓,采用適當(dāng)控制方法即可使電壓與頻率協(xié)調(diào)變化??梢酝ㄟ^(guò)調(diào)整PWM的周期、PWM的占空比而達(dá)到控制充電電流的目的。
pwm的定義
脈寬調(diào)制(PWM)是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測(cè)量、通信到功率控制與變換的許多領(lǐng)域中。
模擬信號(hào)的值可以連續(xù)變化,其時(shí)間和幅度的分辨率都沒(méi)有限制。9V電池就是一種模擬器件,因?yàn)樗妮敵鲭妷翰⒉痪_地等于9V,而是隨時(shí)間發(fā)生變化,并可取任何實(shí)數(shù)值。與此類(lèi)似,從電池吸收的電流也不限定在一組可能的取值范圍之內(nèi)。模擬信號(hào)與數(shù)字信號(hào)的區(qū)別在于后者的取值通常只能屬于預(yù)先確定的可能取值集合之內(nèi),例如在{0V, 5V}這一集合中取值。
模擬電壓和電流可直接用來(lái)進(jìn)行控制,如對(duì)汽車(chē)收音機(jī)的音量進(jìn)行控制。在簡(jiǎn)單的模擬收音機(jī)中,音量旋鈕被連接到一個(gè)可變電阻。擰動(dòng)旋鈕時(shí),電阻值變大或變??;流經(jīng)這個(gè)電阻的電流也隨之增加或減少,從而改變了驅(qū)動(dòng)揚(yáng)聲器的電流值,使音量相應(yīng)變大或變小。與收音機(jī)一樣,模擬電路的輸出與輸入成線性比例。
盡管模擬控制看起來(lái)可能直觀而簡(jiǎn)單,但它并不總是非常經(jīng)濟(jì)或可行的。其中一點(diǎn)就是,模擬電路容易隨時(shí)間漂移,因而難以調(diào)節(jié)。能夠解決這個(gè)問(wèn)題的精密模擬電路可能非常龐大、笨重(如老式的家庭立體聲設(shè)備)和昂貴。模擬電路還有可能?chē)?yán)重發(fā)熱,其功耗相對(duì)于工作元件兩端電壓與電流的乘積成正比。模擬電路還可能對(duì)噪聲很敏感,任何擾動(dòng)或噪聲都肯定會(huì)改變電流值的大小。
通過(guò)以數(shù)字方式控制模擬電路,可以大幅度降低系統(tǒng)的成本和功耗。此外,許多微控制器和DSP已經(jīng)在芯片上包含了PWM控制器,這使數(shù)字控制的實(shí)現(xiàn)變得更加容易了。
pwm的工作原理
脈沖寬度調(diào)制波通常由一列占空比不同的矩形脈沖構(gòu)成,其占空比與信號(hào)的瞬時(shí)采樣值成比例。圖1所示為脈沖寬度調(diào)制系統(tǒng)的原理框圖和波形圖。該系統(tǒng)有一個(gè)比較器和一個(gè)周期為T(mén)s的鋸齒波發(fā)生器組成。語(yǔ)音信號(hào)如果大于鋸齒波信號(hào),比較器輸出正常數(shù)A,否則輸出0。因此,從圖1中可以看出,比較器輸出一列下降沿調(diào)制的脈沖寬度調(diào)制波。
通過(guò)圖1b的分析可以看出,生成的矩形脈沖的寬度取決于脈沖下降沿時(shí)刻t k時(shí)的語(yǔ)音信號(hào)幅度值。因而,采樣值之間的時(shí)間間隔是非均勻的。在系統(tǒng)的輸入端插入一個(gè)采樣保持電路可以得到均勻的采樣信號(hào),但是對(duì)于實(shí)際中tk-kTs<<Ts的情況,均勻采樣和非均勻采樣差異非常小。如果假定采樣為均勻采樣,第k個(gè)矩形脈沖可以表示為:
(1)
其中,x{t}是離散化的語(yǔ)音信號(hào);Ts是采樣周期; 是未調(diào)制寬度;m是調(diào)制指數(shù)。
然而,如果對(duì)矩形脈沖作如下近似:脈沖幅度為A,中心在t = k Ts處, 在相鄰脈沖間變化緩慢,則脈沖寬度調(diào)制波xp(t)可以表示為:
(2)
其中, 。無(wú)需作頻譜分析,由式(2)可以看出脈沖寬度信號(hào)由語(yǔ)音信號(hào)x(t)加上一個(gè)直流成分以及相位調(diào)制波構(gòu)成。當(dāng) 時(shí),相位調(diào)制部分引起的信號(hào)交迭可以忽略,因此,脈沖寬度調(diào)制波可以直接通過(guò)低通濾波器進(jìn)行解調(diào)。
數(shù)字脈沖寬度調(diào)制器的實(shí)現(xiàn):
實(shí)現(xiàn)數(shù)字脈沖寬度調(diào)制器的基本思想?yún)⒖磮D2。
圖中,在時(shí)鐘脈沖的作用下,循環(huán)計(jì)數(shù)器的5位輸出逐次增大。5位數(shù)字調(diào)制信號(hào)用一個(gè)寄存器來(lái)控制,不斷于循環(huán)計(jì)數(shù)器的輸出進(jìn)行比較,當(dāng)調(diào)制信號(hào)大于循環(huán)計(jì)數(shù)器的輸出時(shí),比較器輸出高電平,否則輸出低電平。循環(huán)計(jì)數(shù)器循環(huán)一個(gè)周期后,向寄存器發(fā)出一個(gè)使能信號(hào)EN,寄存器送入下一組數(shù)據(jù)。在每一個(gè)計(jì)數(shù)器計(jì)數(shù)周期,由于輸入的調(diào)制信號(hào)的大小不同,比較器輸出端輸出的高電平個(gè)數(shù)不一樣,因而產(chǎn)生出占空比不同的脈沖寬度調(diào)制波。
圖3
為了使矩形脈沖的中心近似在t=kTs處,計(jì)數(shù)器所產(chǎn)生的數(shù)字碼不是由小到大或由大到小順序變化,而是將數(shù)據(jù)分成偶數(shù)序列和奇數(shù)序列,在一個(gè)計(jì)數(shù)周期,偶數(shù)序列由小變大,直到最大值,然后變?yōu)閷?duì)奇數(shù)序列計(jì)數(shù),變化為由大到小。如圖3例子。
奇偶序列的產(chǎn)生方法是將計(jì)數(shù)器的最后一位作為比較數(shù)據(jù)的最低位,在一個(gè)計(jì)數(shù)周期內(nèi),前半個(gè)周期計(jì)數(shù)器輸出最低位為0,其他高位逐次增大,則產(chǎn)生的數(shù)據(jù)即為偶數(shù)序列;后半個(gè)周期輸出最低位為1,其余高位依次減小,產(chǎn)生的數(shù)據(jù)為依次減小的偶序列。具體電路可以由以下電路圖表示:
8051中的PWM模塊設(shè)計(jì):
應(yīng)該稱(chēng)為一個(gè)適合語(yǔ)音處理的PWM模塊,輸出引腳應(yīng)該外接一積分電路。輸出波形的方式適合作語(yǔ)音處理。設(shè)計(jì)精度為8位。
PWM模塊應(yīng)包括:
1、 比較部分(Comp):
2、 計(jì)數(shù)部分(Counter):
3、 狀態(tài)及控制信號(hào)寄存/控制器(PWM_Ctrl);
1) 狀態(tài)積寄存器:(Flags),地址:E8H ;
①EN: PWM模塊啟動(dòng)位,置位為‘1’將使PWM模塊開(kāi)始工作;
②(留空備用)
③④解調(diào)速率標(biāo)志位:00 – 無(wú)分頻;01 – 2分頻;10 – 10分頻;11 – 16分頻。 (RESET后為00)
⑤(留空備用)
⑥(留空備用)
⑦(留空備用)
⑧(留空備用)
注意:該寄存器可以位操作情況下可寫(xiě),不可讀;只能在字節(jié)操作方式下讀取。
2) 數(shù)據(jù)寄存器(DataStore),地址:F8H;
注意:該寄存器值不可讀,只可寫(xiě)。
4、 端口:
1) 數(shù)據(jù)總線(DataBus);(雙向)
2) 地址總線(AddrBus);(IN)
3) PWM波輸出端口(PWMOut);(OUT)
4) 控制線:
① CLK:時(shí)鐘;(IN)
② Reset:異步復(fù)位信號(hào);(IN 低電平有效)
③ WR:寫(xiě)PWM RAM信號(hào);(IN 低電平有效);
④ RD:讀PWM RAM信號(hào);(IN 低電平有效)
⑤ DONE:接受完畢反饋信號(hào);(OUT 高電平有效)
⑥ INT:中斷申請(qǐng)信號(hào);(OUT 低電平有效)
⑦ IntResp:中斷響應(yīng)信號(hào);(In低電平有效)
⑧ ByteBit:字節(jié)/位操作控制信號(hào)(IN 1-BYTE 0-BIT);
⑨⑩
中斷占用相當(dāng)于MCU8051的外部中斷2,則可保證在5個(gè)指令周期之內(nèi),“讀取數(shù)據(jù)”中斷必定得到響應(yīng)。
PWM模塊使用方法:因?yàn)檎加昧?051外部中斷1,所以在不使用該模塊時(shí),應(yīng)該把外部中斷2屏蔽。而PWM模塊產(chǎn)生的中斷請(qǐng)求可以看作是“能接受數(shù)據(jù)”的信號(hào)。中斷方法如后“中斷讀取數(shù)據(jù)過(guò)程”。使用PWM模塊,應(yīng)該先對(duì)內(nèi)部地址8FH的數(shù)據(jù)寄存器寫(xiě)入數(shù)據(jù),然后設(shè)置地址8EH的狀態(tài)寄存器最低位(0)為‘1’,即PWM模塊開(kāi)始工作并輸出PWM調(diào)制波(如TIMER模塊)。在輸出PWM調(diào)制波過(guò)程中,應(yīng)及時(shí)對(duì)PWM寫(xiě)入下一個(gè)調(diào)制數(shù)據(jù),保證PWM連續(xù)工作,輸出波形連續(xù)。 (待改進(jìn))
中斷讀取數(shù)據(jù)過(guò)程:
- PWM模塊可以讀取數(shù)據(jù),申請(qǐng)中斷信號(hào)INT置位為‘0’,等待8051響應(yīng);
- 8051接受到中斷申請(qǐng)后,作出中斷響應(yīng),置位IntResp信號(hào)線為‘0’;
- PWM模塊收到IntResp信號(hào)后,把中斷申請(qǐng)信號(hào)INT復(fù)位為‘1’,等待8051通知讀取數(shù)據(jù)WR信號(hào);
- 8051取出要求數(shù)據(jù)放于數(shù)據(jù)總線(DataBus)上,并置WR信號(hào)為‘0’;
- PWM模塊發(fā)現(xiàn)WR信號(hào)為‘0’,由數(shù)據(jù)總線(DataBus)上讀取數(shù)據(jù)到內(nèi)部數(shù)據(jù)寄存器,將DONE位置位為‘1’;
- 8051發(fā)現(xiàn)DONE信號(hào)的上跳變?yōu)椤?’,釋放數(shù)據(jù)總線;
- PWM模塊完成當(dāng)前輸出周期,復(fù)位DONE為‘0’,從此當(dāng)前數(shù)據(jù)寄存器可以再次接受數(shù)據(jù)輸入。
注意事項(xiàng):
1)輸出的PWM信號(hào)中的高電平部分必須處于一個(gè)輸出周期的中間,不能偏離,否則輸出語(yǔ)音經(jīng)過(guò)低通后必定是一失真嚴(yán)重的結(jié)果。
2)對(duì)于8位精度的PWM,每個(gè)輸出周期占用256(28)個(gè)機(jī)器周期,但是包含256個(gè)機(jī)器周期至少有22個(gè)指令周期,亦即264(22*12)個(gè)機(jī)器周期,由于語(yǔ)音信號(hào)的連續(xù)性,256與264之間相差的8個(gè)機(jī)器周期是不能由之丟空的,否則也會(huì)使輸出信號(hào)失真。如果將須輸出數(shù)字量按256/264的比例放大輸出,亦不可行,因?yàn)槿绱朔钦麛?shù)比例放大,放大倍數(shù)很小,則經(jīng)過(guò)再量化后小數(shù)部分亦會(huì)被忽略掉,產(chǎn)生失真。舉例:輸出數(shù)字量為16,按比例放大后為16.5,更會(huì)產(chǎn)生難以取舍的問(wèn)題。
故采取以下辦法:該模塊以時(shí)鐘周期為標(biāo)準(zhǔn),而與TMBus無(wú)關(guān),即基本上與8051部分異步工作。讀取數(shù)據(jù)方式為每次讀取足夠數(shù)據(jù)段儲(chǔ)存于模塊內(nèi)的RAM內(nèi)(暫定每次讀取8字節(jié)),儲(chǔ)存字節(jié)數(shù)必須能保證PWM輸出該段數(shù)據(jù)過(guò)程中,有足夠時(shí)間從RAM處繼續(xù)讀取數(shù)據(jù)。由于占用了8051的外部中斷2,中斷申請(qǐng)?jiān)?個(gè)指令周期(36個(gè)時(shí)鐘周期)內(nèi)必定能得到響應(yīng),而PWM模塊處理一個(gè)數(shù)據(jù)需要固定耗時(shí)256個(gè)時(shí)鐘周期,故能保證PWM模塊順序讀取數(shù)據(jù)中斷能及時(shí)得到響應(yīng),不會(huì)影響調(diào)制信號(hào)的連續(xù)性。
3)RD RAM過(guò)程是異步過(guò)程。
4)輸出后數(shù)據(jù)寄存器不自動(dòng)清零。因?yàn)榭梢酝ㄟ^(guò)把Flags(0)寫(xiě)‘0’而停止PWM模塊繼續(xù)工作。
PWM技術(shù)的具體應(yīng)用
PWM軟件法控制充電電流
本方法的基本思想就是利用單片機(jī)具有的PWM端口,在不改變PWM方波周期的前提下,通過(guò)軟件的方法調(diào)整單片機(jī)的PWM控制寄存器來(lái)調(diào)整PWM的占空比,從而控制充電電流。本方法所要求的單片機(jī)必須具有ADC端口和PWM端口這兩個(gè)必須條件,另外ADC的位數(shù)盡量高,單片機(jī)的工作速度盡量快。在調(diào)整充電電流前,單片機(jī)先快速讀取充電電流的大小,然后把設(shè)定的充電電流與實(shí)際讀取到的充電電流進(jìn)行比較,若實(shí)際電流偏小則向增加充電電流的方向調(diào)整PWM的占空比;若實(shí)際電流偏大則向減小充電電流的方向調(diào)整PWM的占空比。在軟件PWM的調(diào)整過(guò)程中要注意ADC的讀數(shù)偏差和電源工作電壓等引入的紋波干擾,合理采用算術(shù)平均法等數(shù)字濾波技術(shù)。
評(píng)論
查看更多