<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > PWM (脈沖寬度調制)原理與實(shí)現

PWM (脈沖寬度調制)原理與實(shí)現

作者: 時(shí)間:2018-08-02 來(lái)源:網(wǎng)絡(luò ) 收藏

一、 PWM(脈沖寬度調制Pulse Width Modulation)原理:

本文引用地址:http://dyxdggzs.com/article/201808/385026.htm

脈沖寬度調制波通常由一列占空比不同的矩形脈沖構成,其占空比與信號的瞬時(shí)采樣值成比例。圖1所示為脈沖寬度調制系統的原理框圖和波形圖。該系統有一個(gè)比較器和一個(gè)周期為T(mén)s的鋸齒波發(fā)生器組成。語(yǔ)音信號如果大于鋸齒波信號,比較器輸出正常數A,否則輸出0。因此,從圖1中可以看出,比較器輸出一列下降沿調制的脈沖寬度調制波。

二、 數字脈沖寬度調制器的實(shí)現:

實(shí)現數字脈沖寬度調制器的基本思想參看圖2。

圖中,在時(shí)鐘脈沖的作用下,循環(huán)計數器的5位輸出逐次增大。5位數字調制信號用一個(gè)寄存器來(lái)控制,不斷于循環(huán)計數器的輸出進(jìn)行比較,當調制信號大于循環(huán)計數器的輸出時(shí),比較器輸出高電平,否則輸出低電平。循環(huán)計數器循環(huán)一個(gè)周期后,向寄存器發(fā)出一個(gè)使能信號EN,寄存器送入下一組數據。在每一個(gè)計數器計數周期,由于輸入的調制信號的大小不同,比較器輸出端輸出的高電平個(gè)數不一樣,因而產(chǎn)生出占空比不同的脈沖寬度調制波。

圖3

為了使矩形脈沖的中心近似在t=kTs處,計數器所產(chǎn)生的數字碼不是由小到大或由大到小順序變化,而是將數據分成偶數序列和奇數序列,在一個(gè)計數周期,偶數序列由小變大,直到最大值,然后變?yōu)閷ζ鏀敌蛄杏嫈?,變化為由大到小。如圖3例子。

奇偶序列的產(chǎn)生方法是將計數器的最后一位作為比較數據的最低位,在一個(gè)計數周期內,前半個(gè)周期計數器輸出最低位為0,其他高位逐次增大,則產(chǎn)生的數據即為偶數序列;后半個(gè)周期輸出最低位為1,其余高位依次減小,產(chǎn)生的數據為依次減小的偶序列。具體電路可以由以下電路圖表示:

三、 8051中的PWM模塊設計:

應該稱(chēng)為一個(gè)適合語(yǔ)音處理的PWM模塊,輸出引腳應該外接一積分電路。輸出波形的方式適合作語(yǔ)音處理。設計精度為8位。

PWM模塊應包括:

1、 比較部分(Comp):

2、 計數部分(Counter):

3、 狀態(tài)及控制信號寄存/(PWM_Ctrl);

1) 狀態(tài)積寄存器:(Flags),地址:E8H ;

①EN: PWM模塊啟動(dòng)位,置位為‘1’將使PWM模塊開(kāi)始工作;

②(留空備用)

③④解調速率標志位:00 – 無(wú)分頻;01 – 2分頻;10 – 10分頻;11 – 16分頻。 (RESET后為00)

⑤(留空備用)

⑥(留空備用)

⑦(留空備用)

⑧(留空備用)

注意:該寄存器可以位操作情況下可寫(xiě),不可讀;只能在字節操作方式下讀取。

2) 數據寄存器(DataStore),地址:F8H;

注意:該寄存器值不可讀,只可寫(xiě)。

4、 端口:

1) 數據總線(xiàn)(DataBus);(雙向)

2) 地址總線(xiàn)(AddrBus);(IN)

3) PWM波輸出端口(PWMOut);(OUT)

4) 控制線(xiàn):

① CLK:時(shí)鐘;(IN)

② Reset:異步復位信號;(IN 低電平有效)

③ WR:寫(xiě)PWM RAM信號;(IN 低電平有效);

④ RD:讀PWM RAM信號;(IN 低電平有效)

⑤ DONE:接受完畢反饋信號;(OUT 高電平有效)

⑥ INT:中斷申請信號;(OUT 低電平有效)

⑦ IntResp:中斷響應信號;(In低電平有效)

⑧ ByteBit:字節/位操作控制信號(IN 1-BYTE 0-BIT);

⑨⑩

中斷占用相當于MCU8051的外部中斷2,則可保證在5個(gè)指令周期之內,“讀取數據”中斷必定得到響應。

PWM模塊使用方法:因為占用了8051外部中斷1,所以在不使用該模塊時(shí),應該把外部中斷2屏蔽。而PWM模塊產(chǎn)生的中斷請求可以看作是“能接受數據”的信號。中斷方法如后“中斷讀取數據過(guò)程”。使用PWM模塊,應該先對內部地址8FH的數據寄存器寫(xiě)入數據,然后設置地址8EH的狀態(tài)寄存器最低位(0)為‘1’,即PWM模塊開(kāi)始工作并輸出PWM調制波(如TIMER模塊)。在輸出PWM調制波過(guò)程中,應及時(shí)對PWM寫(xiě)入下一個(gè)調制數據,保證PWM連續工作,輸出波形連續。 (待改進(jìn))

中斷讀取數據過(guò)程:

PWM模塊可以讀取數據,申請中斷信號INT置位為‘0’,等待8051響應;

8051接受到中斷申請后,作出中斷響應,置位IntResp信號線(xiàn)為‘0’;

PWM模塊收到IntResp信號后,把中斷申請信號INT復位為‘1’,等待8051通知讀取數據WR信號;

8051取出要求數據放于數據總線(xiàn)(DataBus)上,并置WR信號為‘0’;

PWM模塊發(fā)現WR信號為‘0’,由數據總線(xiàn)(DataBus)上讀取數據到內部數據寄存器,將DONE位置位為‘1’;

8051發(fā)現DONE信號的上跳變?yōu)?lsquo;1’,釋放數據總線(xiàn);

PWM模塊完成當前輸出周期,復位DONE為‘0’,從此當前數據寄存器可以再次接受數據輸入。

注意事項:

1)輸出的PWM信號中的高電平部分必須處于一個(gè)輸出周期的中間,不能偏離,否則輸出語(yǔ)音經(jīng)過(guò)低通后必定是一失真嚴重的結果。

2)對于8位精度的PWM,每個(gè)輸出周期占用256(28)個(gè)機器周期,但是包含256個(gè)機器周期至少有22個(gè)指令周期,亦即264(22*12)個(gè)機器周期,由于語(yǔ)音信號的連續性,256與264之間相差的8個(gè)機器周期是不能由之丟空的,否則也會(huì )使輸出信號失真。如果將須輸出數字量按256/264的比例放大輸出,亦不可行,因為如此非整數比例放大,放大倍數很小,則經(jīng)過(guò)再量化后小數部分亦會(huì )被忽略掉,產(chǎn)生失真。舉例:輸出數字量為16,按比例放大后為16.5,更會(huì )產(chǎn)生難以取舍的問(wèn)題。

故采取以下辦法:該模塊以時(shí)鐘周期為標準,而與TMBus無(wú)關(guān),即基本上與8051部分異步工作。讀取數據方式為每次讀取足夠數據段儲存于模塊內的RAM內(暫定每次讀取8字節),儲存字節數必須能保證PWM輸出該段數據過(guò)程中,有足夠時(shí)間從RAM處繼續讀取數據。由于占用了8051的外部中斷2,中斷申請在3個(gè)指令周期(36個(gè)時(shí)鐘周期)內必定能得到響應,而PWM模塊處理一個(gè)數據需要固定耗時(shí)256個(gè)時(shí)鐘周期,故能保證PWM模塊順序讀取數據中斷能及時(shí)得到響應,不會(huì )影響調制信號的連續性。

3)RD RAM過(guò)程是異步過(guò)程。

4)輸出后數據寄存器不自動(dòng)清零。因為可以通過(guò)把Flags(0)寫(xiě)‘0’而停止PWM模塊繼續工作。



關(guān)鍵詞: 控制器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>