Pulzně šířková modulace (dále jen PWM, angl. Pulse Width Modulation - zkr.PWM) je způsob kódování dat, která se přenášejí z vysílajícího zařízení k přijímacímu zařízení zvolenou přenosovou cestou. Přenosovou cestou může být pevné drátové spojení nebo bezdrátové spojení, kdy se data přenášejí vzduchem např. při IR komunikaci. Nás bude zajímat samotná pulzně šířková modulace, která reprezentuje sled bitů přenášeného rámce dat - jak ji generovat na straně vysílacího zařízení, příp. zpracovávat na straně přijímacího zařízení.

A jak takový signál kódovaný pulzně šířkovou modulací vypadá?

     Jde tedy o signál s konstantní periodou T, kde se mění střída napětí (tj. poměr délky impulzu ku délce mezery uvažovaný v jedné periodě). Střída se uvádí někdy jako poměr (1:1,2:1,1:5 atd.), kdy je nutné uvést které číslo představuje impulz a které mezeru. Někdy se střída vyjadřuje procentuálně (100%,50%,0.1% atd.), kde 100% představuje ideální poměr 1:0, 50% poměr 1:1 atd. Poměr délky impulzu ku délce mezery bývá v zahraniční literatuře nazýván Duty Cycle.

Obr.č. 1


     Využití pulzně šířkové modulace ve spojení s processorem řady x51 je možné použít (mimo jiné) v těchto aplikacích:
  řízení stejnosměrného motorku
Generování PWM signálu na straně 8051, přijímací část představuje budič stejnosměrného motorku.
  zpracování dat z inteligentního snímače teploty
Obecně zpracování PWM signálu na vstupu 8051, vysílajícím zařízením může být snímač, jehož výstupem je PWM signál. Příkladem může být snímač teploty SMARTEC SMT160, který funguje právě jako převodník teplota/střída.
  IR datový přenos
Jeden z používaných druhů kódování při IR přenosu dat, 8051 se používá obvykle jako přijímající část, vysílající částí může být vysílací modul dálkového ovládání.
     Pulzně šířková modulace se využívá i v konvenčním řízení otáček stejnosměrných motorů (nemusí zde být k řízení použit mikroprocesor), stejně tak i ve frekvenčních měničích pro řízení střídavých asynchronních motorů. Energetická úspora oproti řízení otáček změnou velikosti nap.napětí může být u velkých motorů značná. Také se tato modulace používá ve spínaných napájecích zdrojích.

Generování pulzně šířkově modulovaného signálu na výstupu 8051
Pokud budeme ve vyvíjeném zařízení potřebovat generovat PWM signál (uvažujme příklad pro ovládání ss motorku), je vhodné se hned na začátku rozhodnout, jestli použijeme standardní typ mikroprocesoru a PWM signál budeme vytvářet softwarově, nebo použijeme mikroprocesor, který má už v sobě integrován obvod PWM.Přehled mikroprocesorů obsahujících hardwarově obvod PWM najdete na stránce výrobců. Použitím takovéhoto procesoru si můžete práci usnadnit, ale např. nyní hodně rozšířené mikroprocesory ATMEL AT89Cxxxx obvod PWM nemají a pak nezbývá než generování PWM signálu zajistit čistě softwarově. Obvod PWM integrovaný v mikroprocesoru funguje podle obr.č. 2.

Obr.č. 2   Obecná struktura obvodu PWM
Obecná struktura obvodu PWM

     Do frekvenční děličky se přivádí hodinový signál fosc, který se může ponechat nezměněn nebo se vydělí nějakou dělící konstantou. Dělící konstantu lze obvykle zvolit nastavením příslušného řídícího registru. Místo vnitřního hod.signálu lze u některých mikroprocesorů použít i extení zdroj hod.signálu. Čítač PWM je volně běžící čítač, který čítá hodinový signál z frekvenční děličky. Obsah tohoto čítače je komparátorem porovnáván s obsahem registru PWM, do kterého programově nastavíme požadovanou hodnotu. Na výstupu komparátoru dostáváme PWM signál - jsou-li obsahy čítače a registru stejné, je na výstupu log.0, jsou-li různé, je na výstupu log.1. Střída výstupního signálu je tedy úměrná hodnotě zapsané v registru PWM (přibližně podle obr.č.3). Perioda výstupního signálu je pevná a je dána čítaným signálem a modem čítače PWM.

Obr.č. 3

     Popíšeme si ještě obvod PWM u mikroprocesoru Dallas DC87C550, kde je tento obvod řešen trošku odlišně:
mikroprocesor obsahuje 4 výstupy s 8-bitovou pulzně šířkovou modulací. Obvod PWM sestává se 3 částí: frekvenční děličky, hodinového generátoru a pulzního generátoru. Do frekvenční děličky přivádíme hodinový signál (můžeme použít i signál z externího zdroje). Nastavením bitů PWxS2,PWxS1,PWxS0 (v tabulce symbolicky PWxS2:0), kde x představuje číslo jednoho ze čtyř možných výstupů (0-3), se zvolí dělící konstanta dle tabulky níže.
     Výstup z děličky se přivádí na všechny čyři přítomné hodinové generátory. Hodinovým generátorem je zde 8-bitový čítač s automatickým přednastavováním, který udává periodu výst.signálu. Pulzní generátor představuje 8-bitový časovač časovaný signálem z 8-bitového čítače. Procesor umožňuje kaskádové spojení dvou PWM obvodů, čímž dostaneme 16-bitový PWM signál. To nám umožní dosáhnout většího rozlišení (např. při řízení otáček ss motorku jemnější nastavení). Jinými slovy - když budeme mít k dispozici 8-bitový pulzně šířkový modulátor, můžeme měnit rychlost otáčení motorku maximálně v 255 krocích (rozlišení 0,4%).

Výstupní frekvence děličky Nastavení
PWxS2:0
Machine Cycle_Clock / 1 000
Machine Cycle_Clock / 4 001
Machine Cycle_Clock / 16 010
Machine Cycle_Clock / 64 011
PWMCx (externí) 1xx



Vytisknout stránku
Zpátky Zpátky
© DH servis 2002 -