Okładka EP12/2003
Transkrypt
Okładka EP12/2003
w w w. e p . c o m . p l ELEKTRONIKA PRAKTYCZNA • NA CD KATALOGI FIRM: RFM, AMPIRE, AMIC ORAZ EAGLE 4.11 I AVR STUDIO 4.08 Miêdzynarodowy magazyn elektroników konstruktorów 12/2003 ● grudzień ● 15 zł 50 gr (w tym 7% VAT) 12/2003 • grudzieñ A U T O M A T Y K A Dzia³anie sterowników S7-200 - podstawy, czêœæ 2 W†tej czÍúci artyku³u przedstawiamy informacje istotne dla pocz¹tkuj¹cych projektantÛw systemÛw sterowania, ktÛrzy buduj¹ je na W†programach tworzonych za pomoc¹ Step7MicroWinV3.2 wykorzystuje siÍ nastÍpuj¹ce typy zmiennych: - zmienne typu BOOL informuj¹ce o†stanie logicznym pojedynczego bitu, - zmienne typu BYTE odnosz¹ce siÍ do bajtu danych (8 bitÛw), - zmienne typu WORD odnosz¹ce siÍ do s³owa danych (16 bitÛw), - zmienne typu DWORD odnosz¹ce siÍ do podwÛjnego s³owa (32 bity), - zmienne typu REAL odnosz¹ce siÍ do wartoúci zmiennoprzecinkowych, okreúlonych jako wartoúÊ i†mantysa (32 bity). Uøytkownik ma moøliwoúÊ wybrania wersji jÍzykowej menu edytora. DostÍpne s¹ menu edytora w†jÍzykach: angielskim, niemieckim, francuskim i†w³oskim. Prze³¹czenie wersji jÍzykowej nastÍpuje po wybraniu opcji Tool->Options->Language. W†opcji Tool>Options->Mnemonic Set istnieje moøliwoúÊ wyboru postaci mnemonicznej zmiennych. Wybieraj¹c International decydujemy, øe†wejúcia binarne oznaczone zostan¹ jako ìIî (wejúcia), zaú wyjúcia binarne jako ìQî (wyjúcia). Ustawienie w†Mnemonic Set na SIMATIC powoduje odpowiednio oznaczanie wejúÊ jako ìEî (Eingang) a†wyjúÊ ìAî (Ausgang). W†przypadku pomy³ki edytor samodzielnie zamieni mnemonik na zgodny z†ustawionym standardem. Waøna cech¹ oprogramowania Step7MicroWin 32 jest moøliwoúÊ wyboru konwencji programowania. Uøytkownik na pocz¹tku pisania programu decyduje czy bÍdzie korzysta³ z†funkcji zgodnych ze standardem SIMATIC, czy teø wszystkie instrukcje, ktÛre bÍd¹ uøywane w†programie, bÍd¹ zgodne z†norma IEC 1131-3. Ustawienia standardu programowania dokonuje siÍ w†Tools>Options->Programing Mode. Obszary alokacji zmiennych W†obszarze pamiÍci wyrÛøniamy nastÍpuj¹ce obszary dla alokacji zmiennych: - obszar adresowany bitowo oznaczony jako ìMî (Marker). DostÍp do tego obszaru jest moøliwy jako bitowy M0.0, bajtowy MB0, s³owo MW0 lub podwÛjne s³owo DW0. - Obszar oznaczony jako ìVî (Variable). Jest to ca³y obszar bloku oznaczonego jako Data Block. Obszar ten moøe byÊ ad- Elektronika Praktyczna 12/2003 bazie urz¹dzeÒ z†rodziny S7-200. Zaczynamy od alokacji i†funkcji najpopularniejszych zmiennych systemowych. Dog³Íbne poznanie ich moøliwoúci pozwoli tworzyÊ funkcjonalne i†niezawodne programy. - - - - resowany bitowo V0.0, jako bajt VB0, s³owo VW0, lub podwÛjne s³owo VD0. Obszar oznaczony jako ìIî lub ìEî. Jest to obszar wejúÊ procesu. Sterownik na pocz¹tku cyklu czyta stany sygna³Ûw na wszystkich wejúciach i†wartoúci tych stanÛw odk³ada w†obszarze wejúÊ procesu. Moøliwy jest odczyt sygna³Ûw wejúciowych jako pojedynczy bit I0.0, bajt IB0,s³owo IW0, podwÛjne s³owo ID0. Obszar oznaczony jako ìQî lub ìAî. Jest to obszar wyjúÊ procesu. Sterownik na koÒcu cyklu przepisuje stany sygna³Ûw z†obszaru wyjúÊ procesu na fizyczne wyjúcia sterownika. Moøliwy jest zapis stanÛw z†obrazu wyjúÊ procesu na pojedyncze wyjúcia Q0.0(bit), grupÍ bajt QB0, s³owo QW0, lub podwÛjne s³owo QD0. Obszar oznaczony jako ìLî. Jest to tzw. lokalny stos danych czyli pamiÍÊ programu przydzielona tylko dla bloku programowego np. SBRx, w†ktÛrym s¹ wywo³ywane zadeklarowane zmienne L. W†obszarze ìLî moøliwy jest dostÍp do zmiennych typu bit L0.0, bajt L0, s³owo LW0 lub podwÛjne s³owo LD0. Obszar oznaczony jako ìSMî. Jest to pamiÍÊ znacznikÛw systemowych zapisanych w†BIOS-ie sterownika S7-200. Zadaniem tych znacznikÛw jest analiza pracy systemu. Wszelkie odchy³ki od prawid³owej pracy systemu sygnalizowane bÍd¹ w†znacznikach systemowych SM. Uøytkownik ma rÛwnieø moøliwoúÊ modyfikacji tych znacznikÛw, np. w†celu zmiany prÍdkoúci przesy³u danych przez zintegrowane z³¹cze komunikacyjne sterownika S7-200. Zegary W†systemach automatyki wystÍpuje koniecznoúÊ precyzyjnego odmierzania czasu z†zadan¹ dok³adnoúci¹. W†tym celu w†sterowniku S7-200 przygotowano komÛrki pamiÍci oznaczone liter¹ ìTî (Timer). Timer jest 16bitowym rejestrem, w†ktÛrym znajduje siÍ aktualna wartoúÊ odmierzonego czasu. Numery zegarÛw s¹ powi¹zane z†rozdzielczoúci¹ czasu jaki odmierzaj¹. W†zaleønoúci od numeru zegara przyporz¹dkowana jest rÛøna rozdziel- czoúÊ - np. T0 ma rozdzielczoúÊ 1†ms, zaú T1 rozdzielczoúÊ 10 ms. Zegary rÛøni¹ siÍ rÛwnieø ze wzglÍdu na funkcjonalnoúÊ. W†bibliotece Step7MicroWin znajduj¹ siÍ trzy typy zegarÛw: z†opÛünieniem na za³¹czenie, z†opÛünieniem na wy³¹czenie oraz z†opÛünieniem na za³¹czenie i†podtrzymaniem. Liczba dostÍpnych zegarÛw uzaleøniona jest od typu CPU. Liczniki OprÛcz zegarÛw wykorzystywane s¹ rÛwnie czÍsto liczniki oznaczone jako ìCî (Counter). Ich zadaniem jest zliczanie impulsÛw podawanych na wejúcia binarne sterownika lub zliczanie zmian stanÛw wewnÍtrznych znacznikÛw ìMî. Liczniki s¹ 16-bitowymi rejestrami przechowuj¹cymi aktualnie zliczon¹ iloúÊ impulsÛw. Dziel¹ siÍ na: zliczaj¹ce w†gÛrÍ CTU, w†dÛ³ CTD, oraz uniwersalne zliczaj¹ce gÛra/dÛ³ - CTUD. Liczniki aktywowane s¹ narastaj¹cym zboczem sygna³u. Liczba dostÍpnych licznikÛw uzaleøniona jest od typu CPU. Szybkie liczniki Szybkie liczniki maj¹ rejestry 32-bitowe. Ich zadaniem jest zliczanie impulsÛw podawanych na okreúlone wejúcia CPU z†maksymaln¹ czÍstotliwoúci¹ do 30 kHz. Odczyt impulsÛw odbywa siÍ poza cyklem pÍtli, nie wystÍpuje wiÍc problem z†ìgubieniemî poszczegÛlnych impulsÛw w†zaleønoúci od czasu przetwarzania programu. Odczyt szybkich licznikÛw dokonywany jest na ø¹danie w†programie obs³ugi przerwania czasowego. Szybkie liczniki oznaczane s¹ jako HSC. Wejúcia/wyjúcia analogowe Odczyt sygna³Ûw analogowych dokonywany jest poprzez odwo³anie w†programie do konkretnego kana³u analogowego. Odczytywana jest aktualna wartoúÊ analogowa i†po konwersji A/C. W†rejestrze modu³u analogowego umieszczona zostaje wartoúʆliczbowa z†zakresu -32000...+32000 lub 0...+32000. Aby umieúciÊ przetworzon¹ wartoúÊ w†pamiÍci sterownika naleøy wykorzystaÊ z†biblioteki programu Step7MicroWin - do tego celu s³uøy funkcja MOV AIW0, VW10, gdzie pierwszy kana³ analogowy oznaczony jest jako AIW0, a†VW10 jest zmienn¹ umieszczona w†pamiÍci sterownika w†obszarze îVî o†adresie 10. WartoúÊ analogowa reprezentowana jest przez liczbÍ 16-bitow¹. 141 A U T O M A T Y K A Tab. 1. Zestawienie wyposażenia jednostek centralnych S7−200 Opis CPU221 CPU222 CPU224 CPU226 Pamiêæ programu 4 kB 4 kB 8 kB 8 kB CPU226XM 16 kB Pamiêæ danych 2 kB 2 kB 5 kB 5 kB 10 kB Obraz wejœæ procesu I0.0 do I15.7 I0.0 do I15.7 I0.0 do I15.7 I0.0 do I15.7 I0.0 do I15.7 Obraz wyjœæ procesu Q0.0 do Q15.7 Q0.0 do Q15.7 Q0.0 do Q15.7 Q0.0 do Q15.7 Q0.0 do Q15.7 Liczba kana³ów wejœæ analogowych - AIW0 do AIW30 AIW0 do AIW62 AIW0 do AIW62 AIW0 do AIW62 Liczba kana³ów wyjœæ analogowych - AQW0 do AQW30 AQW0 do AQW62 AQW0 do AQW62 AQW0 do AQW62 Obszar pamiêci typu “V” podany w bajtach VB0 do VB2047 VB0 do VB2047 VB0 do VB5119 VB0 do VB5119 VB0 do VB10239 Obszar pamiêci typu “L” podany w bajtach LB0 do LB63 LB0 do LB63 LB0 do LB63 LB0 do LB63 LB0 do LB63 Obszar pamiêci typu “M” okreœlony bitowo M0.0 do M31.7 M0.0 do M31.7 M0.0 do M31.7 M0.0 do M31.7 M0.0 do M31.7 SM0.0 do SM179.7 SM0.0 do SM 299.7 SM0.0 do SM 549.7 SM0.0 do SM 549.7 SM0.0 do SM 549.7 256 (T0 do T255) 256 (T0 do T255) 256 (T0 do T255) 256 (T0 do T255) 256 (T0 do T255) 1ms 10ms T0,T64 T1 do T4 i T65 do T68 T0,T64 T1 do T4 i T65 do T68 T0,T64 T1 do T4 i T65 do T68 T0,T64 T1 do T4 i T65 do T68 T0,T64 T1 do T4 i T65 do T68 100ms T5 do T31 i T69 do T95 T5 do T31 i T69 do T95 T5 do T31 i T69 do T95 T5 do T31 i T69 do T95 T5 do T31 i T69 do T95 1 ms 10ms T32, T96 T33 do T36 i T97 do T100 T32, T96 T33 do T36 i T97 do T100 T32, T96 T33 do T36 i T97 do T100 T32, T96 T33 do T36 i T97 do T100 T32, T96 T33 do T36 i T97 do T100 100ms T37 do T63 i T101 do T255 T37 do T63 i T101 do T255 T37 do T63 i T101 do T255 T37 do T63 i T101 do T255 T37 do T63 i T101 do T255 Liczniki C0 do C255 C0 do C255 C0 do C255 C0 do C255 C0 do C255 HC0,HC3,HC4,HC5 HC0,HC3,HC4,HC5 HC0 do HC5 HC0 do HC5 HC0 do HC5 Obszar znaczników systemowych “SM” Zagary “Timers” OpóŸnienie na za³¹czenie z podtrzymaniem OpóŸnienie na za³¹czenie/wy³¹czenie Szybkie liczniki HSC Akumulatory AC0 do AC3 AC0 do AC3 AC0 do AC3 AC0 do AC3 AC0 do AC3 Skoki do etykiety 0 do 255 0 do 255 0 do 255 0 do 255 0 do 255 Liczba podprogramów 0 do 63 0 do 63 0 do 63 0 do 63 0 do 127 Liczba funkcji wykrywania zbocza narastaj¹cego/opadaj¹cego 256 256 256 256 256 Iloœæ pêtli regulacji PID 0 do 7 0 do 7 0 do 7 0 do 7 0 do 7 Porty komunikacyjne Port0 Port0 Port0 Port0,Port1 Port0,Port1 Analogicznie sytuacja przedstawia siÍ z†wyjúciami analogowymi, przy czym naleøy wykonaÊ operacjÍ odwrotn¹, czyli przetworzon¹ wartoúÊ z†zakresu -32000...+32000, przechowywan¹ w†pamiÍci sterownika naleøy przes³aÊ na konkretny kana³ analogowy za pomoc¹ instrukcji MOV VW10, AQW0, gdzie VW10 jest zmienna w†sterowniku, a†AQW0 jest pierwszym kana³em wyjúciowym analogowym. Akumulatory Akumulatory s¹ 32-bitowymi rejestrami, s³uø¹cymi do przechowywania wynikÛw poúrednich obliczeÒ oraz wykorzystywane s¹ przy adresowaniu za pomoc¹ wskaünikÛw. Jednym z†zastosowaÒ akumulatorÛw†jest przekazywanie parametrÛw do podprogramÛw i†z†powrotem. W†CPU znajduj¹ siÍ 4†akumulatory oznaczone AC0, AC1, AC2, AC3. Rys. 1 142 Sta³e Wiele operacji arytmetycznych wymaga okreúlenia wartoúci sta³ych. Mog¹ byÊ one okreúlone jako wartoúci typu: binarnego, dziesiÍtnego, hexadecymalnego, ASCII, zmiennoprzecinkowego. Przyk³adowe deklaracje wartoúci sta³ych: Sta³a dziesiêtna 2022 Sta³a hexadecymalna 16#4AE3 Sta³a ASCII ‘ proba ‘ Sta³a zmiennoprzecinkowa +1.175495E-38 lub typu Real Sta³a binarna 2#1000_1001_1010_0100 Adresowanie poúrednie Adresowanie poúrednie jest wykorzystywane jako jeden z†najefektywniejszych sposobÛw dostÍpu do danych znajduj¹cych siÍ w†pamiÍci sterownika. DziÍki adresowaniu poúredniemu istnieje moøliwoúÊ adresowania tabel danych i†³atwego zarz¹dzania nimi. Aby uzyskaÊ dostÍp do danej w†sposÛb poúredni najpierw naleøy utworzyÊ wskaünik adresowy, ktÛry wskazuje na t¹ dan¹. Wskaünik jest zmienn¹ 32-bitow¹ typu podwÛjne s³owo. Jako wskaünik moøe byÊ uøyta zmienna z†obszaru ìVî - np. VD200, akumulator - np. AC1, zmienna lokalna ìLî - np. L6. Aby wygenerowaÊ wskaünik naleøy skorzystaÊ z†funkcji MOVD znajduj¹cej siÍ w†bibliotece funkcji programu Step7MicroWin. Aby poinformowaÊ, øe chcemy zadeklarowaÊ wskaünik do danej VW10 a†nie przes³aÊ wartoúÊ danej do np. akumulatora, koniecznym jest poprzedzenie adresu, na ktÛry ma wskazywaÊ wskaünik znakiem ì&î, np.: MOV &VW10, AC1 MOV &MB4, VD5 MOV &C4, L6 Tak wytworzony wskaünik wskazuje obecnie na konkretna dan¹ czyli jak w†przyk³adach powyøej na VW10, MB4, C4. Jeøeli chcemy odczytaÊ wartoúÊ zawarta w†danej, wskazywanej przez wskaünik naleøy wykonaÊ czynnoúci jak w†przyk³adzie pokazanym na rys. 1. Micha³ Bereza, Siemens Dodatkowe informacje Pe³na dokumentacja w jêzyku angielskim do sterownika S7-200 oraz oprogramowanie STEP7MicroWin znajduje siê na p³ycie CD-EP12/2003B oraz w Internecie pod adresem: www.siemens.pl/simatic w podkatalogu Katalogi>Instrukcje. Elektronika Praktyczna 12/2003 P O D Z E S P O Ł Y P O D Z E S P O Ł Y Przetwornice DC/DC dla urz¹dzeñ elektroniki przemys³owej Wydawa³oby siê, ¿e przetwornice DC/DC osi¹gnê³y tak wysoki stopieñ rozwoju, ¿e producenci nie bardzo maj¹ co ju¿ przy nich robiæ. Jak siê jednak okazuje, d¹¿enie do obni¿enia kosztów i poprawy parametrów powoduj¹, ¿e Traco Power - jeden z najwiêkszych producentów przetwornic - co miesi¹c ma siê czym pochwaliæ. W tym miesi¹cu skupimy siê na dwóch nowych modelach przetwornic z serii TEL. Maj¹ one niezwykle istotn¹ cechê wspóln¹: s¹ tanie, zw³aszcza jeœli wzi¹æ pod uwagê fakt, ¿e parametrami s¹ niemal¿e identyczne ze znanymi na naszym rynku (ju¿ nie tylko z EP) przetwornic z rodziny TEN. 2 W w DIL16 Najmniejszy (gabarytowo i mocowo) model z rodziny TEL. Maksymalna moc dostarczana do obci¹¿enia wynosi 2 W, co jest nie lada osi¹gniêciem, poniewa¿ przetwornica mieœci siê w obudowie o obrysie odpowiadaj¹cym DIL16 i wysokoœci 7,62 mm. Pomimo tak niewielkich rozmiarów napiêcie przebicia izolacji pomiêdzy wyjœciem i wejœciem ma wartoœæ 1000 VDC, przy rezystancji jej up³ywnoœci wynosz¹cej wiêcej ni¿ 1 GΩ. Przetwornice TEL-2 s¹ Elektronika Praktyczna 12/2003 produkowane w czterech grupach przystosowanych do zasilania napiêciami z zakresów: 4,5...9,0 V, 9...18 V, 18...36 V i 36...72 V. W ka¿dej z tych grup znajduj¹ siê przetwornice o napiêciu wyjœciowym wynosz¹cym: 3,3 V, 5 V, 12 V, 15 V, ±5 V, ±12 V lub ±15 V. Napiêcie wyjœciowe jest oczywiœcie stabilizowane - producent gwarantuje dok³adnoœæ ustawienia napiêcia ±2%, stabilnoœæ w funkcji zmian obci¹¿enia (0,25...0,75*Imax) nie gorsz¹ ni¿ 0,75%, a w funkcji zmian napiêcia wejœciowego nie gorsz¹ ni¿ ±0,5%. Napiêcie wyjœciowe zmienia wartoœæ w funkcji temperatury otoczenia o ±0,02%/K, a maksymalna amplituda têtnieñ (w paœmie do 20 MHz) nie jest wiêksza ni¿ 50 mVpp. Warto tu zwróciæ uwagê na fakt, ¿e przetwornice TEL-2 pracuj¹ce z obci¹¿eniem mniejszym ni¿ 0,25*Imax wytwarzaj¹ nieco “gorsze” napiêcie na wyjœciu. Zgodnie z informacjami producenta, w takim przypadku napiêcie têtnieñ na wyjœciu mo¿e mieæ wiêksz¹ - ni¿ deklarowana w danych katalogowych - wartoœæ. Obwód wejœciowy przetwornicy wyposa¿ono w filtr zapobiegaj¹cy przenoszeniu zak³óceñ impulsowych do linii zasilaj¹cej (zgodnie z norm¹ EN55022A). Z kolei obwody wyjœciowe wyposa¿ono w zabezpieczenie przeciwzwarciowe, dziêki któremu ryzyko uszkodzenia wewnêtrznych obwodów przetwornicy jest stosunkowo niewielkie. Relatywnie wysoka sprawnoœæ energetyczna przetwornic (64...81% w zale¿noœci od modelu) tak¿e sprzyja ich d³ugowiecznoœci - w obudowach o tak niewielkiej objêtoœci wytracanie du¿ej iloœci energii musia³oby spowodowaæ znaczne skrócenie czasu niezawodnej pracy, który w przypadku TEL-2 wynosi 1,2 mln. godzin 139 P O D Z E S P O Ł Y (w temperaturze otoczenia 25oC). Pewien jakoœci swoich wyrobów producent zapewnia 3-letni¹ gwarancjê na wszystkie modele z serii TEL-2. nej w³¹cza siê ogranicznik pr¹dowy, zapewniaj¹cy bezpieczeñstwo obwodom wyjœciowym przetwornicy. Czemu dla przemys³u? 6 W w DIP24 Nieco wiêksze gabarytami i oczywiœcie dopuszczaln¹ moc¹ obci¹¿enia s¹ przetwornice TEL-5. Wbrew sugestii zawartej w ich nazwie, maksymalna moc wyjœciowa wynosi 6 W, co jak na obudowê o gabarytach zbli¿onych do DIP24 (wysokoœæ wynosi 10,2 mm) jest wartoœci¹ doœæ znaczn¹. W odró¿nieniu od przetwornic TEL-2, obudowy przetwornic TEL-5 s¹ wykonane z metalu, co zmniejsza ich rezystancjê termiczn¹. Dziêki temu maksymalna dopuszczalna temperatura obudowy wynosi 90oC, a zakres temperatur otoczenia -40...+71oC. Dziêki wiêkszym (ni¿ TEL-2) wymiarom obudowy, napiêcie przebicia izolacji pomiêdzy wyjœciem i wejœciem wynosi 1500 VDC. Przetwornice TEL-5 s¹ dostêpne w dwóch wersjach, przystosowanych do zasilania napiêciami 9...18 VDC lub 18...36 VDC. Uzyskiwane wartoœci napiêæ wyjœciowych s¹ takie same, jak w przypadku serii TEL-2. Sprawnoœæ energetyczna TEL-5 mieœci siê w przedziale 77...86% w zale¿noœci od modelu. Deklarowana przez producenta dok³adnoœæ ustawienia napiêcia wyjœciowego wynosi ±1%, a maksymalna zmiania wartoœci w funkcji zmiany napiêcia zasilaj¹cego nie przekracza ±0,3%. Niestabilnoœæ napiêcia wyjœciowego w funkcji zmian pr¹du obci¹¿enia nie przekracza ±1%. Pozosta³e parametry elektryczne, poza amplitud¹ têtnieñ na wyjœciu (max. 75 mVpp), s¹ bardzo podobne do parametrów przetwornic TEL-2. Identyczne s¹ tak¿e wbudowane zabezpieczenia przy pr¹dzie wyjœciowym wiêkszym o 20% od wartoœci maksymal- 140 Teraz pokrótce odpowiem na pytanie, które prawdopodobnie nasunie siê wiêkszoœci Czytelników: jaka¿ to cecha predestynuje przetwornice z rodziny TEL do zastosowañ przemys³owych? Po pierwsze: niezawodnoœæ. Niewielu producentów udziela 3letniej gwarancji na swoje wyroby, zw³aszcza przystosowane do (potencjalnie) tak trudnych warunków pracy jak w zasilaczach. Po drugie: przystosowanie do pracy w szerokim zakresie temperatur i przy du¿ej wilgotnoœci, osi¹gaj¹cej wartoœæ (wilgotnoœæ wzglêdna) 95%. Po trzecie: chocia¿ w niektórych przypadkach mo¿e najwa¿niejsze - niska cena, pozwalaj¹ca aplikowaæ przetwornice do urz¹dzeñ produkowanych zarówno w niewielkich, jak i du¿ych iloœciach. Po czwarte: odpornoœæ na b³êdy obs³ugi. Oprócz wspomnianych zabezpieczeñ przeciwzwarciowych przetwornice wyposa¿ono w zabezpieczenia przed odwrotn¹ polaryzacj¹ napiêcia zasilaj¹cego. Tylko tyle i a¿ tyle. Myœlê, ¿e u¿ytkownicy sami oceni¹ przydatnoœæ tych nowoczesnych podzespo³ów. Andrzej Gawryluk, EP Dodatkowe informacje s¹ dostêpne na stronie producenta: www.tracopower.com. Dystrybutorem firmy TracoPower jest Amtek spol. s r.o., tel. (22) 423 91 18, [email protected], www.amtek.pl. Elektronika Praktyczna 12/2003 A U T O M A T Y K A Nowe sterowniki modułowe firmy Omron SzybkoúÊ automatyzacji naszego otoczenia jest tak duøa, øe Omron wprowadzi³ na rynek now¹ rodzinÍ miniaturowych sterownikÛw do systemÛw automatyki - CJ1. Wydarzenie - co prawda - niezbyt sensacyjne, ale istotne dla projektantÛw systemÛw automatyki: dziÍki tym sterownikom znacznie ³atwiejsze niø dotychczas sta³o siÍ budowanie optymalnych (pod wzglÍdem kosztÛw, wymiarÛw fizycznych i†sposobu programowania) systemÛw sterowania i†regulacji. Czemu tak? W†sk³ad rodziny CJ1 wchodzi ca³a gama rÛønorodnych modu³Ûw, poúrÛd ktÛrych jednostki centralne (CPU) s¹ tylko jednym wielu elementÛw, z†ktÛrych moøna budowaÊ system. DziÍki temu projektant moøe bez wiÍkszego trudu dobraÊ do wymogÛw aplikacji zarÛwno CPU jak i†wszystkie peryferia, wúrÛd ktÛrych s¹ dostÍpne zarÛwno stosunkowo proste modu³y cyfrowych i†analogowych wejúÊ/wyjúÊ, zasilacze, jak i†kompletne interfejsy sieciowe (Ethernet, DeviceNet, ControllerLink, Profibus DP, CompoBus), czy teø kompletne mini-ste- Elektronika Praktyczna 12/2003 rowniki lokalnie obs³uguj¹ce fragmenty zadaÒ odci¹øaj¹c CPU. Maksymalna liczba obs³ugiwanych przez CPU linii I/O w†systemie CJ1 wynosi 2560 (w maksimum 40 rÛønych modu³ach I/O), dodatkowo uøytkownik moøe mieÊ do dyspozycji 34 porty komunikacji szeregowej. DostÍpne s¹ takøe modu³y szybkich licznikÛw (czÍstotliwoúÊ zliczania do 500 kHz), pozycjonowania serwonapÍdÛw, lokalnych regulatorÛw temperatury itp. Do kaødego zestawu moøna do³¹czyÊ (za pomoc¹ specjalnego modu³u komunikacyjnego) do trzech dodatkowych zestawÛw†oddalonych od siebie na odleg³oúÊ do 12 metrÛw. Nie musz¹ byÊ one wyposaøane w†CPU. W†ramach prezentowanej rodziny urz¹dzeÒ, producent oferuje 8†rÛønych wersji jednostek centralnych, w†tym takøe wyposaøonych w†zintegrowane interfejsy I/O. Niewielkie wymiary obudowy kontrastuj¹ z†duøymi moøliwoúciami CPU. DostÍpna dla aplikacji uøytkownika pamiÍÊ programu ma po- coraz czÍúciej nie zdajemy sobie sprawy z†dyskretnej obecnoúci cichych ìs³uø¹cychî. Rewolucja by³a moøliwa dziÍki wprowadzeniu do sprzedaøy przez producentÛw urz¹dzeÒ automatyki miniaturowych (najczÍúciej tylko rozmiarami) sterownikÛw PLC, ktÛrych ³atwoúÊ obs³ugi i†niska cena spowodowa³y, øe trafi³y one ìpod strzechyî. jemnoúÊ 120 ks³Ûw, a†dla danych udostÍpniono aø 256 ks³Ûw (z podzia³em na banki). Takøe szybkoúÊ wykonywania rozkazÛw jest zaskakuj¹co duøa. Dla przyk³adu, czas wykonywania instrukcji LD wynosi 20 ns, a†bardziej z³oøonej, wie- 135 A U T O M A T Y K A loargumentowej instrukcji MOV 180 ns. Duøa prÍdkoúÊ dzia³ania CPU zapewnia czÍste skanowanie stanu linii I/O - w†przypadku 64 linii†I/O aktualizacja stanu wyjúÊ odbywa siÍ co 15 µs, a†stanu wejúÊ co 12 µs. W†zaleønoúci od potrzeb, uøytkownik buduj¹cy aplikacjÍ moøe wykorzystaÊ do 4096 timerÛw i†do 4096 licznikÛw jednoczeúnie, przy czym zasoby sterownika s¹ zajmowane wy³¹cznie przez timery i†liczniki wykorzystywane w†programie. Tworzenie programÛw steruj¹cych prac¹ CPU jest ³atwiejsze niø w†przypadku wiÍkszoúci dotychczas dostÍpnych sterownikÛw (takøe tych z†wyøszej ìpÛ³kiî), poniewaø zestaw obs³ugiwanych instrukcji jest bardzo bogaty (jest ich aø 400). DostÍpne s¹ m.in. instrukcje obs³ugi kolejek FIFO i†LIFO, obliczeÒ sta³o- i†zmiennoprzecinkowych, transferÛw blokowych (do 65535 s³Ûw) a†takøe instrukcje umoøliwiaj¹ce wygodn¹ obs³ugÍ tablic danych. Programy moøna dzieliÊ na zadania, ktÛre s¹ wykonywane sekwencyjnie w†sposÛb okreúlony przez uøytkownika (pozwala to na budowanie programÛw†wykonywanych quasi rÛwnolegle). Programy oraz dane wymagaj¹ce przenoszenia mog¹ byÊ przechowywane na kartach pamiÍci nieulotnej Flash. ZawartoúÊ wewnÍtrznej pamiÍci danych jest podtrzymywana dziÍki wbudowanej baterii litowej. Producent dbaj¹c o†dotychczasowych uøytkownikÛw produkowanych przez siebie sterownikÛw PLC, umoøliwi³ ³atwe przenoszenie wczeúniej przygotowanych programÛw na sterowniki CJ1. W†wiÍkszoúci przypadkÛw konwersja odbywa si͆ca³kowicie automatycznie - wykonuje j¹ program narzÍdziowy CX-Programmer. Budowanie systemÛw na urz¹dzeniach z†rodziny CJ1 jest wygodne takøe od strony mechanicznej: wymiary modu³Ûw s¹ niewielkie (úciany boczne modu³Ûw s¹ niewiele wiÍksze od karty kredytowej - 90 x†65 mm) i†s¹ one przystosowane do bezpoúredniego montaøu na szynie DIN. Po³¹czenia pomiÍdzy modu³ami s¹ wykonywane automatycznie podczas ich instalacji na szynie - nie ma wiÍc koniecznoúci kupowania specjalnych instalacyjnych p³yt bazowych, a†ca³y system moøna wbudowaÊ np. w†typow¹ skrzynkÍ bezpiecznikow¹. Prezentowane urz¹dzenia s¹ juø dostÍpne takøe w†naszym kraju. Wiele wskazuje na to, øe ich moøliwoúci i†ogromna elastycznoúÊ, przyci¹gan¹ rzesze nowych uøytkownikÛw, bo przecieø coraz wiÍkszego znaczenia nabiera wygoda budowania systemÛw, moøliwoúÊ optymalizacji ich ceny i†szybkoúÊ tworzenia aplikacji steruj¹cych. Te wszystkie zadania moøna ³atwo wykonaÊ korzystaj¹c z†CJ1. Andrzej Gawryluk, AVT Dodatkowe informacje Artyku³ powsta³ na podstawie materia³ów udostêpnionych przez firmê Omron, tel. (22) 645-78-60, www.omron.com.pl. 136 Elektronika Praktyczna 12/2003 B I B L I O T E K A E P W “Bibliotece EP” prezentujemy książki dotyczące zagadnień związanych z różnymi dziedzinami techniki, jednak zawsze przydatne w pracy elektronika lub pomocne w uprawianiu elektronicznego hobby. Nasza opinia jest oczywiście subiektywna, ale wynika z wieloletniego doświadczenia zawodowego i chyba jest zgodna z oczekiwaniami tych, którzy chcą z książek korzystać, a nie przyozdabiać nimi półki. Aby nie marnować miejsca w EP, nie będziemy publikować recenzji książek ocenianych na jedną lub dwie “lutownice”. Przyjęliśmy szeroką skalę ocen, aby ułatwić Czytelnikom orientację w potencjalnej przydatności książki. Publikowane w EP recenzje książek można znaleźć w Internecie pod adresem biblioteka.ep.com.pl. Uwaga! Większość prezentowanych książek można zamówić w Dziale Handlowym AVT (patrz str. 133). Chcemy w ten sposób udostępnić je Czytelnikom EP. Praca zbiorowa, „Synteza układów cyfrowych”, WKŁ 2003 Fani uk³adÛw programowalnych na pewno siÍ uciesz¹: mamy kolejn¹ na rynku wydawniczym pozycjÍ poúwiÍcon¹ tym nowoczesnym uk³adom. Ksi¹øka ³¹czy w†swojej treúci zaawansowan¹ teoriÍ z†praktycznymi aspektami implementacji projektÛw w†uk³adach PLD, co pokazano na czterech przyk³adach, z†ktÛrych dwa s¹ szczegÛlnie interesuj¹ce: modu³ kryptograficzny DES i†filtr cyfrowy - obydwa zapisane w†jÍzyku VHDL. Ksi¹økÍ rozpoczyna wprowadzenie do podstaw teoretycznych dzia³ania i†zasad projektowania uk³adÛw kombinacyjnych i†sekwencyjnych. Autorzy szczegÛlnie duøo miejsca poúwiÍcili przedstawieniu metod ìrÍcznegoî optymalizowania projektÛw wykonywanych na uk³adach cyfrowych, a†takøe komputerowym systemom syntezy logicznej (Espresso, SIS oraz autorskiego opracowania - DEMAIN). Rozdzia³ czwarty zawiera podstawowe infor- Kazimierz Wiatr, ìAkceleracja obliczeÒ w†systemach wizyjnychî, WNT 2003 Ksi¹øka niezwyk³a: porusza niezwykle nowoczesne zagadnienia zwi¹zane z†cyfrow¹ obrÛbk¹ sygna³Ûw, pokazuje jej wiele praktycznych aspektÛw (zarÛwno od strony elektroniki jak i†jej zastosowaÒ), do tego jej autor co bardzo w†EP lubimy - ma wyraün¹ ìøy³kÍî konstruktora. Co prawda za- Elektronika Praktyczna 12/2003 macje o†elementarnych uk³adach cyfrowych oraz rzadko juø stosowanych w†praktyce, ale dobrze ilustruj¹cych poruszane w†ksi¹øce zagadnienia, uk³adach mikroprogramowanych. Warto zwrÛciÊ uwagÍ, øe†algorytm DEMAIN opracowany w†Instytucie Telekomunikacji Politechniki Warszawskiej (gdzie pracuj¹ autorzy ksi¹øki) umoøliwia znaczne ograniczenie do niezbÍdnego minimum zasobÛw uk³adÛw PLD podczas implementacji projektÛw, co przek³ada siÍ na cenÍ implementacji projektÛw w†uk³adach PLD. W†ksi¹øce przedstawiono sposÛb pos³ugiwania siÍ tym oprogramowaniem jako narzÍdziem pomocniczym, wspÛ³pracuj¹cym z†systemem Max+Plus II. Poniewaø†- jak deklaruj¹ autorzy - oprogramowanie realizuj¹ce algorytm DEMAIN jest przez nich udostÍpniane bezp³atnie, czytelnicy ksi¹øki bÍd¹ mieli moøliwoúÊ jego samodzielnego przetestowania i†wykorzystania we w³asnych projektach. Kolejny - pi¹ty - rozdzia³ zawiera skrÛcony kurs dwÛch popularnych jÍzykÛw opisu sprzÍtu AHDL (lokalny jÍzyk stosowany w†systemach projektowych firmy Altera) oraz VHDL. DziÍki duøej liczbie przyk³adÛw†prezentowane zagadnienia s¹ przejrzyúcie objaú- gadnienia poruszane w†ksi¹øce nie naleø¹ do grupy popularnych, ale dziÍki ich przejrzystej prezentacji i†duøemu naciskowi na zagadnienia praktyczne, ksi¹øka ma charakter niemaløe poradnikowy (w najlepszym znaczeniu tego s³owa). OprÛcz prezentacji algorytmÛw obrÛbki obrazÛw i†efektÛw ich dzia³ania, autor wiele miejsca przeznaczy³ na omÛwienie architektur specjalizowanych uk³adÛw wykorzystywanych w†takich aplikacjach. Przedstawi³ takøe alternatywne do ASIC-Ûw sposoby realizacji sprzÍtowych koprocesorÛw wspomagaj¹cych obrÛbkÍ obrazu, w†tym re- nione i†mog¹ byÊ pomocne zarÛwno podczas nauki jÍzyka, jak i†podczas realizacji projektÛw. Reasumuj¹c: jest to bardzo interesuj¹ca pozycja, przydatna szczegÛlnie tym elektronikom, ktÛrzy maj¹ juø doúwiadczenie w†korzystaniu z†uk³adÛw programowalnych. Piotr ZbysiÒski konfigurowalne uk³ady programowalne i†procesory sygna³owe (DSP). Przy okazji prezentacji struktur rekonfigurowalnych, autor przedstawi³ takøe kilka rekonfigurowalnych koprocesorÛw uniwersalnych, opracowanych w†rÛønych oúrodkach akademickich. Tak wiÍc, prezentowan¹ ksi¹økÍ polecam Czytelnikom zainteresowanym zastosowaniami szeroko rozumianej nowoczesnej elektroniki, bo pomimo jej stosunkowo w¹skiej tematyki, sposÛb przedstawienia wiÍkszoúci poruszanych zagadnieÒ jest bardzo uniwersalny i†moøe byÊ przydatny w†wie- 131 B I B L I O T E K A E P B I B L I O T E K A E P Legenda: ksi¹øka wybitna, polecamy! ksi¹øka o†duøych walorach praktycznych, polecamy! moøe siÍ przydaÊ daleka od doskona³oúci lu innych zastosowaniach. Jedynym niedoci¹gniÍciem zauwaøonym w†ksi¹øce jest (co prawda niezbyt czÍste) odwo³ywanie siÍ autora do uk³adÛw PLD, ktÛre nie s¹ produkowane od wielu juø lat (jak choÊby XC2000, XC3000, MAX5000, niektÛre wersje XC4000, DY8000) lub nigdy nie znalaz³y siÍ w†produkcji seryjnej (jak XC6200). Brak s³owa wyjaúnienia moøe spowodowaÊ, øe†Czytelnicy zainteresowani praktycznymi aspektami prezentowanych zagadnieÒ bÍd¹ bezowocnie szukali tych uk³adÛw u†dystrybutorÛw, niestety bezowocnie. Zas³uøone 4†lutownice! Piotr ZbysiÒski nie warto kupowaÊ Tomasz P. ZieliÒski, ìOd teorii do cyfrowego przetwarzania sygna³Ûwî, AGH 2002 Szkoda, øe dotarliúmy do tej ksi¹øki tak pÛüno. Sta³o siÍ tak przede wszystkim dlatego, øe ksi¹øki wydawane przez wydawnictwa uczelniane nie s¹ zbytnio propagowane na rynku, co w†wielu przypadkach (ze wzglÍdu na silne ìprzywi¹zanieî ksi¹øek tego typu do lokalnych warunkÛw uczelnianych) jest oczywiúcie usprawiedliwione, ale - jak s¹dzÍ - ta ksi¹øka ma szansÍ zainteresowaÊ wielu inøynierÛw zajmuj¹cych siÍ lub zamierzaj¹cych zaj¹Ê siÍ cyfrow¹ obrÛbk¹ sygna³Ûw. Autor przygotowa³ potÍøn¹ (576 stron) monografiÍ, ktÛrej treúÊ doskonale oddaje tytu³: od teorii (jest jej bardzo duøo, ale podana w†nadzwyczaj przystÍpny sposÛb) do cyfrowego prze- 132 twarzania sygna³Ûw. Tu uwaga: czytelnicy oczekuj¹cy schematu cyfrowej konsoli audio bÍd¹ z†pewnoúci¹ zawiedzeni, poniewaø w†ksi¹øce nie ma ani jednego przyk³adu tego typu, co zreszt¹ autor zapowiedzia³ w†przedmowie. Moøna natomiast znaleüÊ w†niej komplet informacji teoretycznych, ktÛrych przyswojenie jest warunkiem úwiadomego pos³ugiwania siÍ uk³adami DSP. Ilustracj¹ sporej dawki teorii s¹ interesuj¹ce przyk³ady (w tym kodowanie MPEG), przez ktÛre moøna szczÍúliwie przebrn¹Ê, o†ile znajdziemy w†sobie doúÊ energii na wczeúniejsze poznanie zaawansowanej teorii. Andrzej Gawryluk Elektronika Praktyczna 12/2003 PROJEKTY CZYTELNIKÓW Dział „Projekty Czytelników” zawiera opisy projektów nadesłanych do redakcji EP przez Czytelników. Redakcja nie bierze odpowiedzialności za prawidłowe działanie opisywanych układów, gdyż nie testujemy ich laboratoryjnie, chociaż sprawdzamy poprawność konstrukcji. Prosimy o nadsyłanie własnych projektów z modelami (do zwrotu). Do artykułu należy dołączyć podpisane oświadczenie, że artykuł jest własnym opracowaniem autora i nie był dotychczas nigdzie publikowany. Honorarium za publikację w tym dziale wynosi 250,− zł (brutto) za 1 stronę w EP. Przysyłanych tekstów nie zwracamy. Redakcja zastrzega sobie prawo do dokonywania skrótów. Tester kabli sieciowych LAN Urz¹dzenie prezentowane w†artykule s³uøy do sprawdzania poprawnoúci wykonania kabli ³¹cz¹cych komputer z†gniazdkiem sieci LAN, kabli komputer-komputer, komputer-router itp. Moøe byÊ ono uøywane przez instalatorÛw†do sprawdzania poprawnoúci wykonania instalacji LAN oraz poprawnoúci wykonania kabli patch-cord ³¹cz¹cych urz¹dzenia sieciowe. Rekomendacje: niezbyt skomplikowany, a†mimo to uøyteczny przyrz¹d, przydatny zw³aszcza w†serwisach komputerÛw i†uøytkownikom lokalnych (osiedlowych) sieci komputerowych. Elektronika Praktyczna 12/2003 Pomiar wykonywany jest na zasadzie testu ci¹g³oúci kaødej øy³y oddzielnie. Wykrywane s¹ przerwy, zwarcia i†pomy³ki w†pod³¹czeniu øy³. Nie s¹ wykonywane natomiast pomiary t³umiennoúci par i†przes³uchÛw†sygna³Ûw miÍdzy nimi. W†dobie komputerÛw i†Internetu, ktÛry zawita³ pod strzechy, powszechne jest budowanie sieci komputerowych. W†sieciach komputerowych LAN doprowadzaj¹cych Internet do naszych mieszkaÒ lub biur wykorzystuje siÍ standard Ethernet. Podstaw¹ budowy takiej sieci jest poprowadzenie oddzielnego kabla (zwykle jest to skrÍtka UTP czasem FTP lub STP) od huba lub switcha do kaødego komputera. Wykorzystuje siÍ w†tym przypadku kable ìprosteî, wykonane w†standardzie EIA/TIA 568A lub B. Kabli skrosowanych uøywa siÍ do ³¹czenia bezpoúredniego dwÛch komputerÛw. Taki kabel jest zakoÒczony z†jednej strony zgodnie z†wymaganiami standardu EIA/TIA568A, a†z†drugiej strony z†wymaganiami EIA/ TIA568B. MÛwi¹c proúciej, para TX z†jednej strony jest pod³¹czona do pary RX z†drugiej. Kabel UTP sk³ada siÍ z†8†øy³ plus ekranu (w przypadku kabli STP lub FTP). Øy³y s¹ po³¹czone w†4†pary. Kaøda para drutÛw jest skrÍcona ze sob¹ i†dlatego potocznie mÛwi siÍ na te kable ìskrÍtkaî. Ponadto, kaødy drut jest oznaczony kolorem. W†sk³ad pary wchodzi kabel oznaczony kolorem oraz bia³y z†kolorem lub bia³y. Powszechnie stosowane kolory to zielony, niebieski, pomaraÒczowy i†br¹zowy oraz bia³y†z†kolorem lub bia³y. Pary s¹ oznaczone nastÍpuj¹co: Para #1 bia³o-niebieski, niebieski Para #2 bia³o-pomaraÒczowy, pomaraÒczowy Para #3 bia³o-zielony, zielony Para #4 bia³o-br¹zowy, br¹zowy. Projekt 114 Waøne jest odpowiednie pod³¹czenie par do stykÛw wtyku RJ45. Rozk³ad i†numeracjÍ stykÛw we wtyku RJ45 pokazano na rys. 1. Standard EIA/TIA568A okreúla nastÍpuj¹cy sposÛb pod³¹czenia przewodÛw: Styk 1 bia³o-zielony Styk 2 zielony Styk 3 bia³o-pomaraÒczowy Styk 4 niebieski Styk 5 bia³o-niebieski Styk 6 pomaraÒczowy Styk 7 bia³o-br¹zowy Styk 8 br¹zowy czyli Styki 1, 2 para #3 Styki 3, 6 para #2 Styki 5, 4 para #1 Styki 7, 8 para #4 Natomiast wed³ug standardu EIA/TIA568B ³¹czymy w†pary: Styk 1 bia³o-pomaraÒczowy Styk 2 pomaraÒczowy Styk 3 bia³o-zielony Styk 4 niebieski Styk 5 bia³o-niebieski Styk 6 zielony Styk 7 bia³o-br¹zowy Styk 8 br¹zowy czyli Styki 1, 2 para #2 Styki 3, 6 para #3 Styki 5, 4 para #1 Styki 7, 8 para #4 Rys. 1. Rozmieszczenie styków we wtyku złącza RJ45 101 PROJEKTY CZYTELNIKÓW Rys. 2. Schemat elektryczny części głównej testera LAN 2RJ Takie pod³¹czenie zapewnia poprawn¹ pracÍ z†szybkoúci¹ 100 Mbd. W†przypadku, gdy zainstalowane urz¹dzenia sieciowe pracuj¹ jedynie z†szybkoúci¹ 10 Mbd, wystarczy wykonaÊ kable wed³ug standardu 10Base-T. Wykorzystuje siÍ wÛwczas tylko dwie pary do przesy³ania sygna³Ûw†tj. #2 oraz #3. Pary #1 i†#4 s¹ niewykorzystane i†nie musz¹ byÊ pod³¹czone. Pary te moøna wykorzystaÊ do przesy³ania sygna³Ûw np. do drugiego gniazdka LAN. Przyrz¹d, ktÛry zaprojektowa³em i†zbudowa³em, sprawdza poprawnoúÊ pod³¹czenia kolejnych przewodÛw do odpowiednich stykÛw z³¹cza RJ45. Urz¹dzenie jest uniwersalne i†nie jest istotne dla niego, w†jakim standardzie jest wykonany kabel. Sprawdza jedynie, czy przewody nie s¹ zwarte, rozwarte lub pomylone. Testowany jest zawsze pojedynczy przewÛd w†danym czasie. Wys³anie impulsu testowego do danego przewodu sygnalizowane jest zaúwieceniem diody LED opisuj¹cej ten przewÛd. Weryfikacja poprawnoúci wykonania sieci jest wizualna. Przyrz¹d sk³ada siÍ z†dwÛch czÍúci. G³Ûwna - generator sygna³Ûw testowych i†druga - pÍtla zamykaj¹ca testowan¹ liniÍ. Schemat elektryczny g³Ûwnej czÍúci pokazano na rys. 2. Urz¹dzenie zbudowane jest w†oparciu o†dwa uk³ady scalone CMOS. Uk³ad scalony IC1 typu 4047 pe³ni rolÍ generatora astabilnego i†jednoczeúnie monostabilnego. Zastosowa³em tutaj interesuj¹ce rozwi¹zanie, umoøliwiaj¹ce rÍczne prze³¹czanie multiwibratora z†trybu astabilnego do monostabilnego. PowrÛt do trybu astabilnego nastÍpuje automatycznie. Naciúniecie przycisku S1 powoduje na³adowanie kondensatora C2 przez diodÍ D1 i†prze³¹czenie multiwibratora w†tryb monostabilny. Kolejne naciskanie przycisku S1 powoduje podtrzymywanie tego stanu i†generowanie pojedynczego impulsu na wyjúciu Q. Gdy przycisk S1 nie bÍdzie naciskany przez czas powyøej 2†s, kondensator C2 roz³aduje siÍ przez rezystor R2 i†multiwibrator prze³¹czy siÍ w†stan astabilny. Na wyjúciu Q†pojawi siÍ fala prostok¹tna. Impulsy z†wyjúcia Q†uk³adu IC1 s¹ doprowadzone do wejúcia CLK uk³adu IC2. Uk³ad scalony IC2 to licznik Johnsona z†dekoderem 1†z†10 typu 4017. Doprowadzone impulsy do wejúcia CLK powoduj¹ przesuwanie logicznej jedynki na kolejne wyjúcia - od Q0 do Q9 do Q0 itd. Wyjúcia Qx uk³adu IC2 doprowadzono przez rezystory zabezpieczaj¹ce R7 do R15 do kolejnych stykÛw gniazda RJ45. Jednoczeúnie wyjúcia Q0 do Q8 s¹ pod³¹czone do linijki LED, ktÛra bÍdzie nas informowaÊ zaúwieceniem odpowiedniej diody, do ktÛrego styku jest obecnie doprowadzony sygna³. Przyrz¹d zaprojektowano na dwustronnej p³ytce drukowanej o†wymiarach 84x66 mm. Ca³oúÊ mieúci siÍ w†standardowej obudowie plastikowej typu KM-33B z†pojemnikiem na baterie 9†V. Moøna rÛwnieø go umieúciÊ w†dowolnej innej obudowie o†wymiarach 118x74x29 mm. Druga czÍúÊ przyrz¹du to modu³ pÍtli zamykaj¹cej testowane linie. Zbudowany jest z†zespo³u diod LED. Zastosowa³em tutaj linijkÍ LED-Ûw tego samego typu co w†czÍúci g³Ûwnej. Kaøda dioda LED jest zbocznikowana diod¹ impulsow¹ odwrotnie spolaryzowan¹. Schemat ideowy przedstawiony jest na rys. 3. Modu³ ten zosta³ zaprojektowany na jednostronnej p³ytce drukowanej o†wym. 29x34 mm. Modu³ pÍtli zamykaj¹cej zakoÒczony jest bezpoúrednio wtykiem RJ45 z†ekranem lub bez, w†zaleønoúci jak¹ wersjÍ przyrz¹du wykonamy. WYKAZ ELEMENTÓW Rezystory R1, R2: 1MΩ R3: 10kΩ R4, R6: 1kΩ R5: 220kΩ R7...R15: 470Ω Kondensatory C1: 100nF C2: 10µF C3: 22nF Półprzewodniki IC1: CD4047 IC2: CD4017 2 linijki z 10 diodami LTA1000E, GBG 4850 10 diod 1N4148 Różne Gniazdko RJ45 do druku w ekranie lub bez Przełącznik monostabilny (zwierający) Wtyk RJ45 z ekranem lub bez Kawałek kabla − skrętki UTP, STP, FTP Kompletny przyrz¹d jest zdatny do stosowania przez instalatorÛw sieci LAN, dla ktÛrych jest przeznaczony. Do testowania kabli zakoÒczonych z†obu stron wtykami RJ45 naleøy zastosowaÊ adapter z†dwoma gniazdami RJ45. Leszek Gorzelnik [email protected] Rys. 3. Schemat elektryczny części “zamykającej” testowaną linię 102 Elektronika Elektronika Praktyczna Praktyczna 12/2003 2/98 K U R S Podstawy projektowania systemów mikroprocesorowych, część 10 Buduj¹c urz¹dzenie wykorzystuj¹ce mikrokontroler, musimy pomyúleÊ rÛwnieø o†pewnej liczbie elementÛw wspÛ³pracuj¹cych, ktÛre realizuj¹ potrzebne nam funkcje. W†niektÛrych sytuacjach wystarczaj¹ce staje siÍ siÍgniÍcie do zasobÛw sprzÍtowych wykorzystywanego mikrokontrolera, co jest bardzo korzystne zarÛwno ze wzglÍdÛw komplikacji i†niezawodnoúci urz¹dzenia, jak i†jego ceny. Chociaø omawiane modele mikrokontrolerÛw '51 to jedne z†uboøszych reprezentantÛw tej rodziny, to czÍsto ich moøliwoúci wystarczaj¹ zupe³nie do zrealizowania ca³ego urz¹dzenia bez dodatkowych uk³adÛw†peryferyjnych. SzczegÛ³owe opisy funkcjonowania uk³adÛw peryferyjnych wbudowanych w†mikrokontroler znajdzie Czytelnik w†specyfikacjach producenta, tutaj przedstawimy pracÍ tych uk³adÛw w†najczÍúciej wykorzystywanych przypadkach. Komunikacja szeregowa W†zwi¹zku z†ogromnym rozpowszechnieniem siÍ komputerÛw klasy PC, budowane obecnie systemy mikroprocesorowe maj¹ zazwyczaj moøliwoúÊ komunikacji z†komputerem nadrzÍdnym. Czasami zachodzi teø†koniecznoúÊ wspÛ³pracy kilku komunikuj¹cych siÍ mikrokontrolerÛw. W†takich wypadkach najczÍúciej wykorzystuje siÍ transmisjÍ szeregow¹ z†wykorzystaniem wbudowanego w†wiÍkszoúci mikrokontrolerÛw '51 uk³adu transmisji szeregowej. Wykorzystanie takiego, a†nie innego úrodka komunikacji ma tÍ zaletÍ, øe realizacja transmisji szeregowej jest obs³ugiwana sprzÍtowo - odpada zatem koniecznoúÊ pisania odpowiednich procedur obs³ugi, a†co za tym idzie nie musimy rezerwowaÊ odpowiedniej mocy obliczeniowej procesora na obs³uøenie transmisji. W†przypadku mikrokontrolerÛw rodziny '51 najczÍúciej wykorzystuje siÍ uk³ad transmisji szeregowej skonfigurowany do pracy w†trybie 1. Tak zaprogramowany port szeregowy pracuje asynchronicznie, wykorzystuj¹c 98 do nadawania liniÍ TxD, a†do odbioru liniÍ RxD. Dane transmitowane s¹ w†standardowym formacie 10-bitowym (bit startu - 0, osiem bitÛw danych, bit stopu - 1). Jeøeli øadne dane nie s¹ przesy³ane, to obydwie linie pozostaj¹ w†stanie wysokim. PrÍdkoúÊ transmisji jest ustawiana programowo poprzez odpowiednie zaprogramowanie licznika T1 - naleøy zatem zwrÛciÊ uwagÍ na czÍstotliwoúÊ taktowania mikrokontrolera, gdyø nie zawsze bÍdzie moøna uzyskaÊ standardowe prÍdkoúci transmisji. W†przypadku urz¹dzeÒ wykorzystuj¹cych transmisjÍ szeregow¹ najczÍúciej wykorzystuje siÍ czÍstotliwoúÊ kwarcu rÛwn¹ 11,0592 MHz pozwalaj¹c¹ na uzyskanie wiÍkszoúci standardowych prÍdkoúci do 57600 bd. Dla uk³adu licznikowego T1 wykorzystywanego w†trybie 2†(automatyczne prze³adowywanie) zawartoúÊ rejestru TH1 (wartoúÊ licznika po prze³adowaniu) moøna wyznaczyÊ z†zaleønoúci (dla podanej czÍstotliwoúci kwarcu): TH1=25628800/V (dla bitu SMOD=0, V†prÍdkoúÊ transmisji w†bodach) lub TH1=256-57600/V (dla SMOD=1). Bit SMOD (rejestr PCON) jest bitem konfiguracyjnym uk³adu transmisji szeregowej obs³uguj¹cym blokadÍ wewnÍtrznego dzielnika przez dwa czÍstotliwoúci okreúlaj¹cej szybkoúÊ transmisji. W†tab. 1 przedstawiono wartoúci prze³adowania licznika T1 w†zaleønoúci od oczekiwanej prÍdkoúci transmisji. Do programowej obs³ugi uk³adu transmisji szeregowej wykorzystywane s¹ rejestry: SCON - s³uø¹cy do konfiguracji i†obs³ugi transmisji oraz SBUF - bÍd¹cy jednobajtowym buforem nadajnika i†odbiornika. Dodatkowo wykorzystywany jest teø omÛwiony wczeúniej bit SMOD rejestru PCON. Znaczenie i†po³oøenie bitÛw steruj¹cych rejestru SCON moøna znaleüÊ w†specyfikacji 8051. Nas interesowaÊ tutaj bÍd¹ jedynie bity: SM0 i†SM1 - decyduj¹ce o†trybie pracy - dla trybu 1†bÍd¹ ustawione odpowiednio na 0†i†1. REN - bit w³¹czaj¹cy (dla REN=1) odbiornik uk³adu transmisji szeregowej. RI - bit ustawiany sprzÍtowo na 1†po odebraniu bajtu. TI - bit ustawiany sprzÍtowo na 1†po zakoÒczeniu nadawania bajtu. Programowa realizacja wys³ania czy odebrania bajtu z†uk³adu transmisji szeregowej jest niezmiernie prosta. Polega ona jedynie na odpowiednim skonfigurowaniu portu oraz sprawdzaniu stanu bitÛw RI i†TI. Przy odbiorze danych naleøy sprawdzaÊ stan bitu RI i†w†przypadku pojawienia siÍ stanu 1†naleøy odczytaÊ odebran¹ informacjÍ z†rejestru SBUF oraz wyzerowaÊ bit RI. W†miarÍ bezzw³oczny odczyt odebranego bajtu jest konieczny ze wzglÍdu na moøliwoúÊ zamazania jego zawartoúci przez kolejny odebrany bajt (na odczyt mamy w†najgorszym przypadku czas rÛwny czasowi transmisji ca³ego bajtu). W†przypadku nadawania wystarczy zapisaÊ dan¹ do transmisji do rejestru SBUF - proces transmisji szeregowej rozpocznie siÍ Tab. 1 Elektronika Praktyczna 12/2003 K U R S Rys. 34 automatycznie. Po zakoÒczeniu transmisji zostanie ustawiony bit TI, ktÛrego sprawdzanie pozwala na stwierdzenie gotowoúci uk³adu do transmisji kolejnej danej. Po programowym wyzerowaniu TI moøna do SBUF wpisaÊ kolejn¹ dan¹ do przes³ania (zerowanie TI nie jest konieczne do rozpoczÍcia kolejnej transmisji, umoøliwi nam jednak okreúlenie chwili jej zakoÒczenia). W†mikrokontrolerach '51 ustawienie bitÛw†RI lub TI moøe rÛwnieø byÊ ürÛd³em przerwania, jednak brak jest sprzÍtowej moøliwoúci rozstrzygniÍcia, ktÛry bit wywo³a³ przerwanie (trzeba to sprawdziÊ programowo na pocz¹tku procedury obs³ugi przerwania, rÛwnieø programowo trzeba wyzerowaÊ dany bit przed opuszczeniem procedury obs³ugi przerwania). Na list. 13 pokazano prosty program przeznaczony do odbioru dwubajtowych paczek danych. Kaødy z†dwÛch odebranych bajtÛw zostaje zapamiÍtany w†odrÍbnej komÛrce pamiÍci. Do rozstrzygniÍcia, ktÛry bajt jest odbierany, wykorzystywana jest zmienna bitowa BYL1 ustawiana w†chwili odebrania pierwszego bajtu i†zerowana po odebraniu drugiego. Program ten mÛg³by zostaÊ napisany tak, aby bezpoúrednio po odebraniu pierwszego bajtu oczekiwaÊ na nadejúcie kolejnego, jednak naleøy pamiÍtaÊ o†tym, øe prÍdkoúÊ transmisji zawsze bÍdzie duøo niøsza od prÍdkoúci wykonywania programu, wiÍc takie bezczynne oczekiwanie jest bezcelowe i†marnuje moc obliczeniow¹†mikrokontrolera. Drugi przedstawiony program (list. 14) jest kompletnym oprogramowa- Elektronika Praktyczna 12/2003 niem przeznaczonym dla prostego uk³adu testera portu RS-232. Realizuje on bardzo prosty algorytm polegaj¹cy na odsy³aniu odebranego bajtu i†pozwalaj¹cy w†ten sposÛb sprawdziÊ dzia³anie komunikacji pomiÍdzy urz¹dzeniami. Po w³¹czeniu zasilania nastÍpuje wys³anie przez uk³ad transmisji szeregowej tekstu ìOKî. Transmisja odbywa siÍ z†prÍdkoúci¹†57600 (dla kwarcu 11,0592 MHz). Przy wykorzystywaniu portu szeregowego do po³¹czenia z†komputerem PC naleøy pamiÍtaÊ, øe standard RS-232 wykorzystuje inne po- ziomy napiÍÊ niø stosowany przez mikrokontrolery standard TTL. W†celu po³¹czenia konieczne staje siÍ wykorzystanie dodatkowego uk³adu zapewniaj¹cego konwersjÍ. Moøna do tego wykorzystaÊ rÛøne metody, pocz¹wszy od tranzystorÛw i†bramek CMOS, jednak obecnie najczÍúciej wykorzystuje siÍ scalony konwerter poziomÛw MAX232 (lub zamiennik), ktÛry ma tÍ ogromn¹ zaletÍ, øe zasilany standardowym napiÍciem +5V sam troszczy siÍ o†wytworzenie napiÍcia dodatniego i†ujemnego zgodnego ze standardem RS-232 oraz jest stosunkowo tani i†³atwo dostÍpny. Schemat takiego konwertera pokazano na rys. 34. Niekiedy do uzyskania komunikacji mikrokontrolera z†komputerem PC naleøy zadbaÊ o†po³¹czenie ze sob¹ od strony z³¹cza RS-232 PC-ta wyprowadzeÒ RTS-CTS oraz DTR-DSR-DCD (rys. 35), informuj¹cych komputer o†gotowoúci mikrokontrolera do odbioru/ nadawania danych (uk³ad transmisji szeregowej '51 nie jest wyposaøony w†funkcjÍ sprzÍtowego blokowania transmisji - transmisja moøe byÊ kontrolowana jedynie na drodze programowej). Oczywiúcie naleøy rÛwnieø zadbaÊ o††ustawienie identycznej prÍdkoúci transmisji, gdyø w†przeciwnym wypadku prawid³owy przesy³ danych nie bÍdzie moøliwy. Jeøeli transmisja szeregowa bÍdzie wykorzystywana do komunikacji pomiÍdzy dwoma mikrokontrole- List. 13 ;Konfiguracja MOV TMOD,#020H ;licznik T1 w trybie 2 MOV PCON,#080H MOV TL1,#250 MOV TH1,#250 ;ustawienie bitu SMOD=1 w rej. PCON CLR SM0 SETB SM1 ;ustawienie ;trybu pracy 1 CLR RI ;wyzerowanie flagi SETB TR1 ;włączenie licznika T1 SETB REN ;włączenie odbiornika CLR BYL1 ;wyzerowanie flagi odbioru bajtu 1 ;prędkość transmisji 9600 ;Podprogram obsługi odbioru ODBIERZ: JB RI,JEST1 RET JEST1: CLR RI JB BYL1,JEST2 ;sprawdzenie czy nadeszła dana ;i powrót do programu głównego jeśli nie ;wyzerowanie flagi ;sprawdzenie czy wcześniej odebrano pierwszy bajt, ;jeśli tak to skok do odbioru bajtu 2 SETB BYL1 ;ustawienie flagi odbioru pierwszego bajtu MOV PIERWSZY,SBUF ;zapamiętanie zawartości bufora w komórce pamięci ;zadeklarowanej jako PIERWSZY RET ;powrót do programu głównego JEST2: CLR BYL1 ;wyzerowanie flagi (następny będzie bajt pierwszy) MOV DRUGI,SBUF ;zapamiętanie drugiego odebranego bajtu RET ;powrót do programu głównego 99 K U R S rami, wÛwczas sposÛb ich po³¹czenia zaleøny jest od odleg³oúci ³¹cz¹cego je przewodu. Jeøeli ograniczymy siÍ do po³¹czenia nie d³uøszego niø 1...2m (zw³aszcza przy niskich prÍdkoúciach, nieprzekraczaj¹cych 9600 bd), moøemy wtedy pozostaÊ przy standardzie TTL i†bezpoúrednio po³¹czyÊ pomiÍdzy sob¹ wyprowadzenia RxD i†TxD mikrokontrolerÛw (RxD jednego z†TxD drugiego) oraz po³¹czyÊ masy obu urz¹dzeÒ. Dodatkowo naleøy zastosowaÊ rezystory podci¹gaj¹ce te linie do Vcc o†rezystancji 1...2kΩ ze wzglÍdu na koniecznoúʆszybszego prze³adowania stosunkowo duøej pojemnoúci przewodu po³¹czeniowego. Jeøeli odleg³oúÊ bÍdzie wiÍksza, to nic nie stoi na przeszkodzie, aby zastosowaÊ dwa identyczne uk³ady konwertera omÛwionego wyøej. Dla duøo wiÍkszych odleg³oúci (powyøej 20 m) moøe staÊ siÍ konieczne zastosowanie innego standardu - moøe to byÊ np. RS-485 lub inny wykorzystuj¹cy magistralÍ symetryczn¹. Pawe³ Hadam, EP [email protected] 100 List. 14 ;;Program testujący port szeregowy ;;Konfiguracja MOV TMOD,#020H ;licznik T1 w trybie 2 MOV PCON,#080H MOV TL1,#255 MOV TH1,#255 ;ustawienie bitu SMOD=1 w rej. PCON CLR SM0 SETB SM1 ;ustawienie ;trybu pracy 1 CLR RI SETB TI SETB TR1 ;wyzerowanie flagi (nic nie odebrano) ;ustawienie flagi (gotowy do nadawania) ;włączenie licznika T1 SETB REN ;włączenie odbiornika ;prędkość transmisji 57600 ;;Transmisja “OK” MOV SBUF,#79 CLR TI JNB TI,$ MOV SBUF,#75 CLR TI ;wysłanie kodu ASCII znaku “O” ;wyzerowanie flagi ;oczekiwanie na zakończenie transmisji ;poprzedniego bajtu ;wysłanie kodu ASCII znaku “K” ;wyzerowanie flagi ;;Pętla główna PETLA: JNB RI,$ ;sprawdzanie czy odebrano bajt, jeśli nie, to czekaj CLR RI ;wyzerowanie flagi MOV R7,SBUF JNB TI,$ ;zapamiętanie danej w rejestrze ;czekaj, jeśli jeszcze nadaje MOV SBUF,R7 CLR TI ;nadanie zapamiętanej danej ;wyzerowanie flagi SJMP PETLA ;skok na początek Elektronika Praktyczna 12/2003 B A S C O M O W E P O R A D Y W bascomowym „kąciku” będziemy się starać w miarę przystępnie przedstawiać rozwiązania problemów napotykanych przez naszych Czytelników podczas pisania programów w Bascomie. Rubryka ta powstała z myślą o rozwiązywaniu problemów, jakie najczęściej napotykają programiści, zatem zachęcamy wszystkich Czytelników do zgłaszania problemów, na jakie się natknęli podczas tworzenia własnych programów. Timery − to nie musi być trudne, część 1 WiÍkszoúÊ wspÛ³czesnych mikrokontrolerÛw jest wyposaøona w†co najmniej jeden licznik-timer. Mikrokontrolery AVR w†wiÍkszoúci przypadkÛw maj¹ ich dwa. Pierwszy jest zazwyczaj prostym timerem 8bitowym, natomiast drugi to 16-bitowy timer z†dodatkowymi funkcjami: compare (porÛwnania), capture (przechwytywania) oraz z†moøliwoúci¹ generowania sygna³Ûw PWM. W†artykule szczegÛ³owo opiszemy na przyk³adach sposÛb uøycia timerÛw 0†oraz 1†wystÍpuj¹cych w†wiÍkszoúci mikrokontrolerÛw AVR. Naleøy mieÊ na uwadze, øe by mÛc dobrze stosowaʆtimery naleøy znaÊ ich budowÍ w†wykorzystywanym mikrokontrolerze oraz ich dzia³anie. W†kaødym z†mikrokontrolerÛw AVR funkcje timerÛw mog¹ siÍ rÛøniÊ. Na pocz¹tek kilka s³Ûw wstÍpu. Modu³y licznikowe w†mikrokontrolerach AVR mog¹ pracowaÊ w†dwÛch podstawowych trybach: jako timer (czasomierz) oraz jako counter (licznik). Pocz¹tkuj¹cy programiúci najwiÍcej problemÛw maj¹ najczÍúciej problemy z†okreúleniem, co ile czasu wywo³ane bÍdzie przerwanie, a†w†zwi¹zku z†tym jaki dok³adnie bÍdzie odmierzony czas przy okreúlonych nastawach modu³Ûw licznikowych. WystÍpuje tu wspÛ³zaleønoúÊ trzech parametrÛw: - czÍstotliwoúci oscylatora (najczÍúciej kwarcu), - konfiguracji preskalera (timery zawarte w†mikrokontrolerach posiadaj¹ preskaler, dziÍki ktÛremu moøliwe jest zmniejszenie czÍstotliwoúci taktuj¹cej), - wartoúci pocz¹tkowej za³adowanej do rejestru timera. W†Bascomie Timer0 moøna skonfigurowaÊ instrukcj¹ config timer0. Sk³adnia tej instrukcji jest nastÍpuj¹ca: W†trybie czasomierza: CONFIG TIMER0 = COUNTER, EDGE = RISING | FALLING W†trybie licznika: CONFIG TIMER0 = TIMER, PRESCALE = 1 | 8 | 64 | 256 | 1024 Kiedy Timer0 jest skonfigurowany do pracy w†charakterze licznika (parametr TIMER0=COUNTER) wtedy naleøy okreúliÊ parametr EDGE. Okreúla on czy licznik bÍdzie zwiÍkszany wraz z†pojawieniem siÍ narastaj¹cego zbocza sygna³u (RISING) lub opadaj¹cego (FALLING). Gdy Timer0 jest skonfigurowany do pracy w†charakterze czasomierza (parametr TIMER0=TIMER) wtedy zamiast parametru EDGE naleøy okreúliÊ parametr PRESCALE, ktÛry wyznacza wspÛ³czynnik podzia³u czÍstotliwoúci sygna³u zegarowego. Kaødy modu³ licznikowy w†mikrokontrolerach AVR moøe byÊ w†dowolnej chwili zatrzymany instrukcj¹ STOP TIMERx. Ponowne uruchomienie licznika nast¹pi po wykonaniu instrukcji START TIMERx. Kaødy z†timerÛw moøe zg³aszaÊ przerwania. W†przypadku Timera0 przerwanie jest zg³aszana jedynie po jego przepe³nieniu. Przerwanie to moøna wykorzystaÊ do odmierzania doúÊ dok³adnych jednostek czasowych. DziÍki temu moøna timery oraz generowane przez nie przerwania wykorzystaÊ do budowy zegarÛw lub innych zadaÒ, dla ktÛrych precyzyjne odmierzanie czasu ma znaczenie priorytetowe (np. multipleksowania wyúwietlaczy np. LED czy matrycowych). Aby zilustrowaÊ dzia³anie pracy timerÛw, na rys. 1 przedstawiono schemat prostego systemu z†do³¹czonym do mikrokontrolera (do wyjúcia PB1) diod¹ LED. CzÍúÊ przyk³adÛw w†dalszej czÍúci tego artyku³u bÍdzie powodowaÊ w³¹czanie i†wy³¹czanie diody LED, co odmierzony przez timery czas. Na list. 1 przestawiono przyk³ad odmierzania przez Timer0 w†przerwaniu 1-sekundowych odcinkÛw czasu. Przedstawiony program powoduje zmianÍ stanu na wyjúciu steruj¹cym diodÍ LED dok³adnie co 1†sekundÍ. W†tym przyk³adzie Timer0 skonfigurowano jako czasomierz z†ustawionym preskalerem na podzia³ przez 64, czyli licznik bÍdzie zlicza³ impulsy o†czÍstotliwoúci 8†MHz/64 = 125 kHz. Aby uzyskaʆczÍstotliwoúÊ 1†Hz naleøy pobieliÊ czÍstotliwoúÊ 125 kHz przez 250, nastÍpnie przez 500. Wartoúci te umoøliwiaj¹ podzia³ czÍstotliwoúci 125 kHz bez øadnych czÍúci u³amkowych, co gwarantuje odmierzenie dok³adnego czasu. Poniewaø licznik Timer0 jest 8-bitowy (liczy od 0†do 255), tak wiÍc by liczy³ do 250 (przerwanie by³o wywo³ywane co 250 odliczonych impulsÛw) naleøy†skrÛciÊ jego cykl, poprzez za³adowanie do niego po kaødym przepe³nieniu wartoúÊ 6. Aby odliczyÊ 1†sekundÍ naleøy wprowadziÊ dodatkow¹ zmienn¹, ktÛra bÍdzie liczyÊ przerwania od przepe³nienia Timer0. Zliczenie 500 takich przerwaÒ bÍdzie oznaczaÊ odliczenie dok³adnie 1†sekundy. WartoúÊ pocz¹tkow¹ do timera0 moøna za³adowaÊ instrukcj¹: TIMER0 = wartość lub instrukcj¹ COUNTER0 = wartość Rys. 1 Elektronika Praktyczna 12/2003 gdzie wartoúÊ to liczba od ktÛrej timer zlicza ìw†gÛrÍî. Przyk³adowo polecenie TIMER0 = 16 spowoduje 95 B A S C O M O W E P O R A D Y List. 1. Przykład obsługi Timera 0 do odmierzania 1−sekundowych odcinków czasu 'Przykład programu odmierzającego 1 sekundowe odcinki czasu z wykorzystaniem timer0 'Timer0 będzie odmierzał dokładnie 1 sekundę 8MHz/64/250/500 = 1 sekunda $regfile = "m8def.dat" $crystal = 8000000 'rejestry mikrokontrolera atmega8 'częstotliwość taktowania mikrokontrolera Config Pinb.1 = Output 'linia pb1 jako wyjście Config Timer0 = Timer, Prescale = 64 'deklaracja timera jako czasomierza 'z prescalerem 64 On Timer0 Przerwanie_co_2ms 'deklaracja jaka etykieta obsługuje 'przepełnienie od timer0 Led Alias Portb.1 'alias dla wyjścia b.1 Dim Licznik As Integer 'zmienna licznikowa Enable Interrupts Enable Timer0 'odblokowanie globalnych przerwań 'odblokowanie przerwania od przepełnienia timer0 Timer0 = 6 'wpisanie wartości początkowej 6 do timera, 'czyli timer będzie zliczał 250 (256-6) impulsów 'wyzerowanie zmiennej licznikowej Licznik = 0 Do Loop End 'petla główna programu Przerwanie_co_2ms: wywolywanego co 2 ms Counter0 = Counter0 + 6 'podprogram przerwania od przepełnienia timer0 Incr Licznik If Licznik = 500 Then Toggle Led Licznik = 0 End If Return 'koniec programu 'ustawienie początkowej wartości timera0 poprzez 'dodanie do niego wartości 6 (odliczone zostanie 'dokładnie kolejne 250 impulsów) 'zwiększenie licznika 'jeśli zmienna licznik równa się 500 (czyli 'odliczone zostało 500*2ms=1sek), to 'zmień na przeciwny stan wyjścia led 'wyzeruj zmienną licznik 'powrót z przerwania odliczenie 256-16=240 taktÛw. Obie sk³adnie instrukcji dzia³aj¹ podobnie. W†Bascom AVR wystÍpuje takøe instrukcja: LOAD TIMERX = wartość W†tym przypadku wartoúÊ oznacza liczbÍ impulsÛw jakie timer zliczy do przepe³nienia. Instrukcja ta wykonuje operacjÍ matematyczn¹ (dla Timera0 jest to 256-wartoúÊ) oraz ³aduje obliczona wartoúÊ do rejestru timera. Jeøeli potrzebne jest odliczenie 240 impulsÛw to instrukcja ta za³aduje do timera wartoúÊ 16 (256-240). Jak widaÊ za pomoc¹ tej instrukcji moøna bezpoúrednio podaÊ liczbÍ impulsÛw ktÛre ma zliczyÊ licznik. Oczywiúcie instrukcja ta wystÍpuje dla wszystkich timerÛw, a†x oznacza numer timera. Przy wiÍkszych wartoúciach preskalera - np. 1024 - trudno bÍdzie dobraÊ odpowiedni¹ wartoúÊ pocz¹tkow¹ tak, øeby uzyskaÊ ìokr¹g³yî odstÍp czasowy. Tak wiÍc, ustawiona wartoúÊ podzia³u†preskalera przez 64 i†pocz¹tkowa wartoúÊ timera 6†spowoduj¹, øe przerwania bÍd¹ wywo³ywane dok³adnie co 2†ms. Tak wiÍc zliczenie 500 takich przerwaÒ da jedn¹ sekundÍ. W†programie pokazanym na list. 1 zmienna licznik uøyta zosta³a do zliczania przerwaÒ od przepe³nienia Timera0. W†kaødym przerwaniu od przepe³nienia Timera0 naleøy za- 96 ³adowaʆdo niego wartoúÊ pocz¹tkowa, dziÍki czemu za kaødym razem zostanie odliczone 250 impulsÛw. W†programie wartoúÊ pocz¹tkowa wpisywana do rejestru Timera0 nie zosta³a wprost za³adowana lecz dodana. Umoøliwia to odmierzanie dok³adnych czasÛw. W†przypadku za³adowania w†przerwaniu wartoúci pocz¹tkowej do Timera0 naleøa³oby uwzglÍdniÊ czas jaki up³yn¹³ od zg³oszenia przerwania do chwili jego obs³ugi, gdyø Timer0 pracuje ca³y czas. Wtedy, w†celu zwiÍkszenia dok³adnoúci, do rejestru timera naleøa³oby za³adowaÊ wartoúÊ inn¹ niø 6. Obliczenie dok³adnej wartoúci ³adowanej zmiennej moøe byÊ trudne, a†dodanie wartoúci pocz¹tkowej zamiast jej przypisania doskonale rozwi¹zuje ten problem. W†programie z†list. 1, gdy zmienna ìlicznikî osi¹gnie wartoúÊ 500 (odliczenie 1†sekundy) jest ona zerowana oraz zmieniany jest na przeciwny stan wyjúcia steruj¹cego diodÍ LED. W†przypadku korzystaniu z†przerwaÒ naleøy obowi¹zkowo w†programie odblokowaÊ przerwania globalne oraz przerwanie uøywane. W†przypadku przerwania od przepe³nienia Timera0 bÍdzie to instrukcja ENABLE TIMER0. Bardziej rozbudowany niø Timer0, a†co za tym idzie oferuj¹cy wiÍksz¹ liczbÍ funkcji jest Timer1, ktÛry jest licznikiem 16-bitowym (zlicza do 65536 impulsÛw). Ma on takøe†dodatkowe funkcje i†zwi¹zane z†nimi dodatkowe przerwania. Sk³adnia instrukcji konfiguruj¹cej Timer1 jest nastÍpuj¹ca: W†trybie licznika: CONFIG TIMER1 = COUNTER, EDGE = RISING | FALLING, NOICE CANCEL = 0 | 1 , CAPTURE EDGE = RISING | FALLING, COMPARE A = SET | CLEAR | TOGGLE | DISCONNECT, COMPARE B = SET | CLEAR | TOGGLE | DISCONNECT, CLEAR TIMER = 0 | 1 List. 2. Przykład odmierzania czasu 1 sekundy przez Timer1 'Przykład programu odmierzającego 1 sekundowe odcinki czasu z wykorzystaniem timer1 'Timer1 będzie odmierzał dokladnie 1 sekundę 8MHz/256/31250 = 1 sekunda 'wartość 31250 wynika z 65536-34286 - czyli zostanie odliczonych 31250 impulsów 'do przerwania $regfile = "m8def.dat" $crystal = 8000000 'rejestry mikrokontrolera atmega8 'częstotliwość taktowania mikrokontrolera Config Pinb.1 = Output 'linia pb1 jako wyjście Config Timer1 = Timer, Prescale = 256 ' deklaracja timera 1 jako czasomierza 'z prescalerem 64 On Timer1 Przerwanie_co_1sek 'deklaracja przerwania od przepełnienia timera 1 'aliasy Led Alias Portb.1 'dioda obrazuje wywołanie przerwania Enable Interrupts Enable Timer1 Timer1 = 34286 'wpisanie wartości 34286 do timera Do Loop End 'pętla główna programu Przerwanie_co_1sek: Timer1 = Timer1 + 34286 Toggle Led Return 'koniec programu 'podprogram przerwania od przepełnienia timer1 'wywoływanego co 1 sekunde 'ustawienie początkowej wartości timera1 poprzez 'dodanie do niego wartości 34286 (odliczone 'zostanie dokładnie kolejne 65536-34286 = 31250 'impulsów) 'ustawienie początkowej wartości timera 'zmień na przeciwny stan wyjscia LED 'powrót z przerwania Elektronika Praktyczna 12/2003 B A S C O M O W E W†trybie czasomierza: CONFIG TIMER1 = TIMER, PRESCALE = 1 | 8 | 64 | 256 | 1024, CAPTURE EDGE = RISING | FALLING, COMPARE A = SET | CLEAR | TOGGLE | DISCONNECT, COMPARE B = SET | CLEAR | TOGGLE | DISCONNECT, CLEAR TIMER = 0 | 1 W†trybie generatora PWM: CONFIG TIMER1 = PWM, PWM = 8 | 9 | 10, COMPARE A PWM = CLEAR UP | CLEAR DOWN | DISCONNECT, COMPARE B PWM = CLEAR UP | CLEAR DOWN | DISCONNECT Dla Timera1 moøna skonfigurowaÊ nastÍpuj¹ce parametry: EDGE - ma takie samo znaczenie jak w†przypadku Timera0. CAPTURE EDGE - moøna okreúliÊ czy zawartoúÊ licznika ma byÊ przechwytywana do rejestru CAPTURE1 wraz z†narastaj¹cym (RISING) lub opadaj¹cym zboczem (FALLING) sygna³u pojawiaj¹cego siÍ na koÒcÛwce ICP (lub teø na wyjúciu komparatora analogowego). NOICE CANCEL - Moøna okreúliÊ czy licznik ma byÊ odporny na drobne zak³Ûcenia sygna³u wejúciowego. Wpisanie 1†w³¹cza ta opcjÍ. CLEAR TIMER - Wpisanie ì1î w³¹cza funkcjÍ automatycznego kasowania zawartoúci licznika jeúli porÛwnanie zawartoúci licznika z†rejestrem COMPARE1A lub COMPARE1B da³o wynik pozytywny. Elektronika Praktyczna 12/2003 PRESCALE - ma takie samo znaczenie jak dla Timer0. COMPAREx - okreúla tryb pracy rejestrÛw COMPARE1A lub COMPARE1B. SET - koÒcÛwka OC1x zostanie ustawiona w†stan wysoki. CLEAR - koÒcÛwka OC1x zostanie ustawiona w†stan niski. TOGGLE - stan koÒcÛwki OC1x zostanie zmieniony na przeciwny. DISCONNECT - stan koÒcÛwki OC1x nie bÍdzie zmieniany. PWM - okreúla rozdzielczoúÊ generatora w†bitach. Moøliwe s¹ wartoúci 8, 9†i†10 bitÛw. COMPARE A†PWM, COMPARE B†PWM - okreúla tryb pracy generatora PWM. CLEAR DOWN w³¹cza tryb normalny - im mniejsza liczba w†rejestrze COMPARE1x tym krÛcej trwa stan wysoki na wyjúciu impulsÛw PWM. CLEAR UP w³¹cza tryb odwrÛcony - im mniejsza liczba w†rejestrze COMPARE1x tym krÛcej trwa stan niski na wyjúciu impulsÛw PWM. Podanie DISCONNECT powoduje, øe odpowiednia koÒcÛwka OC1A lub OC1B - przestanie byÊ wyjúciem impulsÛw PWM. Jak wspomniano, timery w†mikrokontrolerach AVR mog¹ siÍ rÛøniÊ i†nie wszystkie mikrokontrolery posiadaj¹ rejestr COMPARE1B licznika TIMER1. Wykorzystanie Timer1 P O R A D Y jako czasomierza umoøliwi bezpoúrednie odmierzenia czasu 1†sekundy bez udzia³u dodatkowej zmiennej ze wzglÍdu na jego 16 bitow¹ pojemnoúÊ. Na list. 2 przedstawiono przyk³adowy program odmierzaj¹cy 1†sekundÍ z†wykorzystaniem Timera1. Program ten robi to samo co poprzedni, czyli zapala i†gasi co sekundÍ diodÍ LED. W†tym przyk³adzie czÍstotliwoúÊ rezonatora jest dzielona (przez preskaler) przez 256, natomiast Timer1 do wywo³ania przerwania zlicza 31250 impulsÛw. Czyli przerwanie od przepe³nienia Timera1 bÍdzie wywo³ywane co 8†MHz/256/3125 = 1†czyli co 1†sekundÍ. W†tym programie dla zwiÍkszenia dok³adnoúci odmierzanego czasu wartoúÊ pocz¹tkowa jest dodawana do stanu licznika a†nie wpisywana bezpoúrednio. Na koniec opisu funkcji czasomierza jedna praktyczna uwaga: nie naleøy przesadzaÊ z†czÍstotliwoúci¹ wywo³ywania przerwania, czyli naleøy - o†ile jest to moøliwe - korzystaÊ z†najwyøszych wspÛ³czynnikÛw podzia³u czÍstotliwoúci przez preskaler. Jest to istotne, by obs³uga przerwania nie zajͳa ca³ej mocy obliczeniowej mikrokontrolera. Marcin Wi¹zania [email protected] Artur Starz [email protected] 97 K U R S Programowe interpretery poleceń w C Na pocz¹tek konwersja typÛw NiektÛrzy z†CzytelnikÛw z†ca³¹ pewnoúci¹ zetknÍli siÍ z†jÍzykiem programowania Pascal oraz specyficznym typem zmiennych tzw. typem proceduralnym. W†duøym uproszczeniu polega³ on na tym, øe odwo³anie do zmiennej mia³o podobne konsekwencje jak wywo³ania procedury. Kompilator jÍzyka C†nie oferuje podobnego typu zmiennych, a†momentami by³by on bardzo przydatny. Ot chociaøby do konstrukcji opisywanego w†poprzedniej czÍúci kursu interaktywnego menu - wybranie w†nim opcji mog³oby bezpoúrednio powodowaÊ uruchomienie odpowiadaj¹cej jej funkcji. Realizacja tak pojÍtego typu proceduralnego jest moøliwa dziÍki wykorzystaniu wskaünikÛw oraz mechanizmÛw przekszta³ceÒ†typÛw. Na list. 1 umieúci³em fragment programu wraz z†definicjami odpowiednich typÛw zmiennych. Jako pierwszy zdefiniowano typ zmiennej bÍd¹cej wskaünikiem typu char, kwalifikowanym do przestrzeni adresowej zawieraj¹cej kod programu mikrokontrolera (code). Za wskaünikiem wystÍpuje lista argumentÛw, ktÛra w†tym przypadku jest pusta. NastÍpnie ten typ wykorzystywany jest do budowy tablicy zawieraj¹cej wykaz funkcji. Tablica rÛwnieø zakwalifikowana zosta³a do obszaru code, poniewaø zawiera wartoúci sta³e, nieulegaj¹ce zmianie w†czasie wykonywania programu. Rozmiar tablicy - wykazu funkcji - nie jest ustalony. Jej koniec sygnalizuje znak o†kodzie ì0î. Dla przyk³adu i†dla uproszczenia funkcja command pokazana na list. 1, zwraca wartoúÊ umieszczon¹ w†tablicy pod indeksem 0. Zgodnie z†wczeúniejsz¹ definicj¹ odpowiada to wskazaList. 1. Fragment programu z definicjami zmiennych − wskaźników do funkcji //struktura na definicje komend typedef struct { char (code *funkcja)(void); }komendy; //tablica z wykazem komend code komendy wykaz[] = { test_1, test_2, 0 }; char command() { return(wykaz[0].funkcja()); } Elektronika Praktyczna 12/2003 Urz¹dzenia wykonawcze pod³¹czane do sterownikÛw stosowane s¹ w†technice bardzo szeroko - pocz¹wszy od prostych sterownikÛw†typu w³¹cz-wy³¹cz, skoÒczywszy na bardzo skomplikowanych, umoøliwiaj¹cych regulacjÍ proporcjonaln¹. NajczÍúciej to wymagania aplikacji wyznaczaj¹ budowÍ uk³adu wykonawczego i†sposÛb jego sterowania. W†artykule przedstawiÍ sposÛb wykorzystania jÍzyka C† do budowy prostego interpretera poleceÒ wysy³anych przez interfejs szeregowy, za pomoc¹ ktÛrych moøna bÍdzie sterowaÊ prac¹ dowolnego uk³adu wykonawczego. niu adresu, pod ktÛrym umieszczona jest funkcja o†nazwie test_1. Funkcja zawarta w†definicji struktury musi zwracaÊ jak¹ú wartoúÊ. Naj³atwiej, gdy jest to wartoúÊ typu char, ktÛr¹†moøna pÛüniej wykorzystaÊ do sygnalizacji np. b³ÍdÛw realizacji poleceÒ, jednak moøe to byÊ rÛwnieø inny typ zmiennych. Jest to wymÛg konieczny dla pÛüniejszej realizacji polecenia return(wykaz[indeks].funkcja()), poniewaø polecenie return nie moøe zwracaÊ wartoúci typu void oraz z†powodÛw, o†ktÛrych bÍdzie mowa dalej. Funkcja command powinna byÊ tego samego typu, jak okreúlono to w†definicji struktury. Oczywiúcie powinna, a†nie musi. Jeúli typy bÍd¹ rÛøne, to nast¹pi niejawna konwersja typu zwracanej wartoúci. Przyjrzyjmy siÍ teraz programowi pokazanemu na list. 2. Zawiera on fragment programu odpowiadaj¹cy funkcji command po kompilacji do postaci jÍzyka asembler. Fragment ten opatrzy³em komentarzami w†taki sposÛb, aby osoby niemaj¹ce do czynienia z†asemblerem, mog³y zrozumieÊ, jak dzia³a mechanizm wywo³uj¹cy funkcjÍ znajduj¹c¹†siÍ pod wskazywa- nym adresem w†pamiÍci programu. Kompilator wykonuj¹c konwersjÍ wskaünika do postaci char, wywo³uje ukrywaj¹c¹ siÍ pod wskazaniem funkcjÍ. Jest to konieczne, aby funkcja zwrÛci³a wartoúÊ, ktÛra bÍdzie mog³a ulec zamianie na typ char. A†to, øe funkcja umieszczona jest na liúcie i†moøliwe jest odwo³anie do konkretnej pozycji tejøe listy, tylko u³atwia realizacjÍ zadania postawionego jako cel artyku³u - realizacjÍ implementacji interpretera poleceÒ. Dla praktykÛw - przyk³ad 1 Wykorzystuj¹c opisany wyøej mechanizm, wykona³em prosty interpreter poleceÒ odbieranych przez mikrokontroler z†wykorzystaniem sprzÍtowego interfejsu UART. Jako uk³ad modelowy pos³uøy³a mi p³ytka prototypowa z†mikrokontrolerem AT89S8252 taktowanym zegarem 7,3728 MHz. Na p³ytce znalaz³ siÍ rÛwnieø uk³ad dopasowuj¹cy stany logiczne na wyprowadzeniach UART mikrokontrolera do portu szeregowego komputera PC standardowy MAX232. Wykonuj¹c programy przyk³adowe, pos³ugiwa³em siÍ kompilatorem RC-51 firmy Raisonance. List. 2. Polecenie return(wykaz[0].funkcja()) po kompilacji 0000 900000 R tablicy wykaz 0003 7400 0005 93 0006 FA 0007 900000 R 000A 7401 000C 93 000D 000E 0010 0012 0015 MOV DPTR,#wykaz ;do rejestru DPTR młodszy bajt adresu funkcji z MOV A,#00 MOVC A,@A+DPTR MOV R2,A MOV DPTR,#wykaz MOV A,#1 MOVC A,@A+DPTR ;akumulator jako wartość indeksu do tablicy - tu 0 ;załaduj do akumulatora bajt spod adresu wykaz+0 ;przechowaj pobraną wartość w rejestrze R2 ;ponownie do DPTR adres tablicy wykaz ;ale indeks tablicy w tym przypadku to 1 ;do akumulatora starszy bajt adresu funkcji ;z tablicy wykaz+1 FB MOV R3,A ;przechowaj jego wartość w rejestrze R3 8A83 MOV DPH,R2 ;przepisz R2 do rejestru DPH (starszy bajt DPTR) 8B82 MOV DPL,R3 ;przepisz R3 do rejestru DPL (młodszy bajt DPTR) 120000 R LCALL ?C_INDCALL ;wywołaj wewnętrzną procedurę RC-51 uruchamiającą ;funkcję spod adresu wskazywanego przez DPTR 22 RET ;powrót do programu głównego 91 K U R S List. 3. Deklaracje zmiennych oraz #include interpretera poleceń z przykładu 1 #pragma DEFJ(TIM1_INIT=0xFE) //timer 1 jako prędkość transmisji (19200bps) //dla rezonatora 11,0592MHz TH1=0xFD; dla 7,3728MHz TH1=0xFE #pragma SMALL //wybór modelu pamięci programu #include “reg8252.h” //dołączenie definicji rejestrów #include “stdio.h” //dołączenie funkcji wejścia - wyjścia #define WORD unsigned int //definicja typu WORD //definicje nagłówków funkcji programu char in(char data *bufor); char out(char data *bufor); char status(char data *bufor); char on(char data *bufor); char off(char data *bufor); char help(char data *bufor); //definicja typu dla tablicy - wykazu poleceń typedef struct { char code *komenda; char (code *funkcja)(char data *); }komendy; //tablica z wykazem poleceń code komendy wykaz[] = { “IN”, in, “OUT”, out, “STATUS”, status, “ON”, on, “OFF”, off, “HELP”, help, “?”, help, “”, NULL }; //wykaz komend i powiązanych z nimi funkcji //koniec wykazu W†przypadku, gdy komenda nie zostanie odnaleziona w†wykazie, wartoúÊ indeksu j†bÍdzie rÛwna 0†i†pos³uøy†do wys³ania komunikatu o†b³Ídzie. W†innym przypadku zwracany jest wskaünik do funkcji, ktÛrego przekszta³cenie do typu char owocuje wywo³aniem funkcji. G³Ûwna pÍtla programu zawiera tylko kilka poleceÒ: rezerwuje miejsce w†pamiÍci na bufor odebranych z†UART znakÛw, ustawia bit SMOD w†rejestrze PCON mikrokontrolera, wysy³a znak zachÍty do terminala (znak >), wywo³uje funkcjÍ gets pobieraj¹c¹ ci¹g znakÛw ze standardowego urz¹dzenia wejúcia - wyjúcia (dla mikrokontrolera jest to UART), a†nastÍpnie przekazuje wskaünik do bufora opisywanej wyøej funkcji command rozpoznaj¹cej odebrane polecenia. Kaødorazowo zakoÒczenie realizacji komendy sygnalizowane jest napisem OK wys³anym przez mikrokontroler do terminala. Dla praktykÛw - przyk³ad 2 Interpreter wykonuje nastÍpuj¹ce polecenia: - IN <numer portu> np. IN 1†- odczyt portu o†podanym numerze - OUT <numer portu> <wartoúÊ> np. OUT 1†0x20 - zapisuje do portu o†podanym numerze liczbÍ, - STATUS - podaje informacjÍ o†statusie urz¹dzenia: WY£•CZONY/AKTYWNY, - ON - za³¹czenie operacji na portach, tj. poleceÒ IN i†OUT, - OFF - wy³¹czenie operacji na portach, tj. blokowanie funkcjonowania poleceÒ IN i†OUT, - HELP lub ? - informacja o†obs³ugiwanych poleceniach. Polecenia mog¹ byÊ przesy³ane przez aplikacjÍ steruj¹c¹ lub podawane rÍcznie za pomoc¹ programu typu terminal znakowy. Kaøde wysy³ane polecenie musi koÒczyÊ siÍ sekwencj¹ 0x0D-0x0A (CR-LF). Na list. 3 pokazano najwaøniejsze fragmenty programu ürÛd³owego w†jÍzyku C†zawieraj¹ce deklaracje zmiennych i†sta³ych oraz dyrektywy steruj¹ce kompilacj¹. Pocz¹tek to w³aúciwe dla RC-51 polecenie #pragma DEFJ(TIM1_INIT=0xFE) definiuj¹ce wartoúÊ zapisywan¹ do rejestru TH1 Timera 1†steruj¹cego prac¹ UART. Dla rezonatora 7,3728 MHz oraz podwÛjnej szybkoúci zegara steruj¹cego prac¹ interfejsu szeregowego (SMOD = 1) zapis do TH1 wartoúci 0xFE wymusza transmisjÍ szeregow¹ asynchroniczn¹ z†prÍdkoúci¹ 19200 bd. W†nastÍpnej kolejnoúci do³¹czane s¹ definicje rejestrÛw mikrokontrolera, biblioteka funkcji wejúcia-wyjúcia oraz dla czytelnoúci programu zdefi- 92 niowany zostaje typ WORD. W†kolejnym kroku definiowane s¹ nag³Ûwki funkcji bÍd¹cych odpowiednikami poleceÒ realizowanych przez interpreter. Zdefiniowanie ich w†tym miejscu jest konieczne, poniewaø za moment nazwy funkcji bÍd¹ uøyte do konstrukcji tablicy-wykazu poleceÒ. Definicja struktury o†nazwie komendy zawiera wiÍcej sk³adnikÛw niø we wczeúniejszym przyk³adzie. Obok znanego nam juø wskaünika do funkcji pojawi³ siÍ rÛwnieø wskaünik do ³aÒcucha znakÛw umieszczonego w†pamiÍci programu mikrokontrolera. Jest to nazwa, po ktÛrej rozpoznawane s¹ polecenia i†jednoczeúnie najprostsza z†metod powi¹zania nazwy symbolicznej z†odpowiadaj¹c¹ mu funkcj¹. Dla ³atwiejszej analizy przyk³adu nazwy funkcji s¹ niemal identyczne z†odpowiadaj¹cymi im poleceniami. Na list. 4 znajduje siÍ fragment programu rozpoznaj¹cy polecenie oraz wywo³uj¹cy odpowiadaj¹c¹ mu funkcjÍ. Pos³uøy³em siÍ w†nim konstrukcj¹ z†pierwszego przyk³adu, z†tym øe polecenie return zawiera dynamicznie wyznaczany indeks do funkcji. Dwie zmienne j†oraz i†s³uø¹ (odpowiednio) jako indeksy do poszczegÛlnych liter przekazywanego jako argument funkcji ci¹gu znakÛw oraz poszczegÛlnych linii tablicy - wykazu poleceÒ. Funkcja XOR (^) s³uøy†do sprawdzenia warunku rÛwnoúci znakÛw, a†bitowe AND (&) maskuje bity odpowiadaj¹ce ma³ym literom alfabetu. DziÍki temu wielkoúÊ znakÛw (liter) odebranych z†UART nie wp³ywa na interpretacjÍ polecenia. Kolejny przyk³ad bazuje na poznanych juø wczeúniej. Ilustruje on jednak jeden z†moøliwych sposobÛw do³¹czenia zdalnego wyúwietlacza sterowanego przez mikrokontroler. Dla uproszczenia funkcji steruj¹cych uøy³em wyúwietlacza LCD 4†linie x†20 znakÛw, jednak moøna sobie wyobraziÊ zastosowanie dowolnego wyúwietlacza, na przyk³ad do³¹czonej do mikrokontrolera tablicy pokazuj¹cej wyniki na meczu pi³karskim, do³¹czonego zdalnie wyúwietlacza zegara itp. Przyk³adowy interpreter realizuje nastÍpuj¹ce polecenia: - CURSOR <kod> np. CURSOR 1†zmiana wygl¹du kursora, wartoúÊ <kod> powinna siÍ zawieraÊ w†przedziale od 0†do 2†(0 = kursor wy³¹czony, 1†- kursor w³¹czony, 2†kursor w³¹czony i†migotanie na polu kursora) - CLR - czyszczenie ekranu LCD, - GOTOXY <x> <y> np. GOTOXY 1†1†- umieszczenie kursora na pozycji <x> <y> (kolumna, wiersz), - WRITE <tekst> np. WRITE Driver LCD 4x20 - wyúwietlenie tekstu podanego jako parametr wywo³ania; uwaga: tekst nie moøe byÊ d³uøszy niø rozmiar bufora - 7†(w tym przypadku s¹ to 34 znaki), - CWRITE <kod> np. CWRITE 0x01 wyúwietlenie znaku o†kodzie <kod>, - FILL <kod> np. FILL 0x01 - wype³nienie LCD znakami o†kodzie <kod>, - DEF <kod> <bajt0>.. <bajt7> - definicja w³asnego znaku uøytkownika np.: DEF 0x00 0xAA 0x55 0xAA 0x55 0xAA 0x55 0xAA 0x55 umieúci definicjÍ ìkratkiî w†generatorze znakÛw LCD na pozycji numer 0, Elektronika Praktyczna 12/2003 K U R S List. 4. Fragment programu odpowiedzialny za rozpoznawanie odbieranych poleceń //wyszukiwanie komend oraz wywołanie odpowiadających im funkcji char command(char data *bufor) { char i, j; //256 komend o maks. długości 256 znaków for (i = 0;;) for (j = 0;; ) { if(wykaz[i].komenda[j] != 0) //jeśli komenda różna od znaku “pustego” { //do porównania zamiana małych liter na duże if(((wykaz[i].komenda[j]^bufor[j]) & 0x5F) == 0) { j++; continue; //następny znak } i++; break; //następna komenda } if( j == 0 ) { printf(“%s\n”,”BLAD: Nie rozpoznano komendy!”); //brak komendy //w wykazie return(0); } else return (wykaz[i].funkcja(bufor+j)); //wykonanie funkcji spod //wskazanego adresu } - INIT - inicjalizacja wyúwietlacza w†trybie interfejsu o†d³ugoúci s³owa rÛwnej 4 bity, - STATUS - podaje informacjÍ o†statusie WY£•CZONY/AKTYWNY, - ON - za³¹czenie akceptowania poleceÒ przez kontroler LCD, - OFF - wy³¹czenie akceptowania poleceÒ przez kontroler LCD, - HELP lub ? - informacja o†realizowanych poleceniach. Program funkcjonuje identycznie jak poprzedni, rÛøni¹ siÍ one miÍdzy sob¹ tylko liczb¹ realizowanych funkcji. Ten pierwszy bÍdzie siÍ nadawa³ szczegÛlnie dobrze do sterowania urz¹dzeÒ typu w³¹cz-wy³¹cz, drugi realizuje takøe nieco bardziej zaawansowane funkcje. Do jego implementacji wykorzysta³em opisywan¹ we wczeúniejszych odcinkach kursu bibliotekÍ LCD4B. Zosta³a ona do³¹czona do pliku projektu, a†nag³Ûwki funkcji steruj¹cych wyúwietlaczem umieszczane s¹ w†programie g³Ûwnym za pomoc¹ dyrektywy #include îlcd4b.hî. Elektronika Praktyczna 12/2003 Program g³Ûwny, oprÛcz omawianych wczeúniej poleceÒ, zawiera rÛwnieø wywo³anie funkcji inicjalizacji oraz czyszczenia ekranu modu³u LCD. Uøycie wymienionego na liúcie realizowanych poleceÒ INIT nie jest konieczne. Zosta³o ono wprowadzone na wypadek sytuacji awaryjnej. Uwagi koÒcowe Jak wspomnia³em wczeúniej, do wykonania programÛw demonstracyjnych pos³uøy³ kompilator firmy Raisonance RC-51. Niestety powstaj¹cy w†wyniku kompilacji kod przekracza 4†kB i†dlatego teø nie moøna pos³uøyÊ siÍ wersj¹†demonstracyjn¹ ìwprostî. Bardzo duøo miejsca w†pamiÍci programu zajmuje zw³aszcza implementacja funkcji printf i†scanf wywo³ywanych wielokrotnie przez rÛøne funkcje. Ta pierwsza formatuje i†przesy³a ci¹g znakÛw przez UART, ta druga odbiera, odczytuje i†przekszta³ca znaki odebrane z†UART na zmienne zgodnie z†podanym wzorcem. Zamiast RC-51 moøna rÛwnieø pos³uøyÊ siÍ innym kompilatorem C. W†takim przypadku polecenie ustawiaj¹ce prÍdkoúÊ transmisji UART moøe wygl¹daÊ jak niøej: void main() { SCON = 0x50; TMOD = 0x20; SMOD = 1; TH1 = 0xFE; TL1 = -1; TR1 = 1; Polecenia wysy³ane przez np. program hyper terminal s¹ odbierane za pomoc¹ zdefiniowanej przez producenta pakietu funkcji gets(). Wymaga ona, aby kaødy przes³any ci¹g znakÛw zakoÒczony by³ przez sekwencjÍ CR-LF. Niestety wiÍkszoúÊ programÛw†typu terminal wysy³a na koÒcu linii CR nie dbaj¹c o†LF. Tak teø jest w†przypadku hyper terminala, ktÛry to musi mieÊ ustawion¹ opcjÍ dodawania LF na koÒcu linii. Naleøy w†nim ustawiʆparametr Wyúlij koÒce wierszy ze znakiem wysuwu wiersza (Plik>W³aúciwoúci, zak³adka Ustawienia>Ustawienia ASCII). Oczywiúcie moøna rÛwnieø zaimplementowaÊ inn¹, w³asn¹ funkcjÍ dzia³aj¹c¹ jak gets(). Port UART mikrokontrolera pracuje z†szybkoúci¹ 19200 bd. TÍ sam¹ naleøy wybraÊ w†nastawach portu COM komputera PC o†ile to w³aúnie on uøywany jest do przesy³ania poleceÒ (19200, n, 8, 1). Funkcja gets() odsy³a echo wysy³anych poleceÒ, toteø s¹ one widoczne na ekranie terminala. Prezentowane wyøej przyk³ady programÛw ürÛd³owych to tylko zachÍta do samodzielnego eksperymentowania. Oczywiúcie maj¹ one pewn¹ wartoúÊ uøytkow¹, jednak bardziej s³uø¹ do wskazania moøliwoúci niø†do budowy gotowego urz¹dzenia maj¹cego konkretne zastosowanie. Jacek Bogusz, EP [email protected] 93 K U R S Silniki elektryczne w praktyce elektronika, część 1 Jak dzia³a silnik elektryczny ìNa przewodnik z†pr¹dem w†polu magnetycznym dzia³a si³a F rÛwna....î - tyle mniej wiÍcej kaødy pamiÍta ze szko³y. Øeby zrobiÊ z†tego silnik elektryczny, potrzebny jest nieruchomy stojan i†osadzony na ³oøyskach wirnik. Kaødy z†tych elementÛw musi spe³niaÊ przynajmniej jeden warunek: - musi umoøliwiÊ przep³yw pr¹du, - musi wytwarzaÊ w³asne pole magnetyczne. Øeby chcia³o siÍ to jeszcze krÍciÊ, potrzebna jest cykliczna zmiana kierunku przep³ywu pr¹du lub zmiana orientacji i†natÍøenia (wirowanie) pola magnetycznego. Takie minimum teorii wystarczy do zrozumienia dzia³ania wiÍkszoúci silnikÛw elektrycznych. Podzia³ silnikÛw elektrycznych Istnieje ponad sto rodzajÛw silnikÛw, rÛøni¹cych siÍ zasad¹ pracy, budow¹ i†w³aúciwoúciami. NiektÛre rodzaje wystÍpuj¹ tylko w†podrÍcznikach i†prÛøno ich szukaʆw†sklepach. Poniøszy podzia³ obejmuje najwaøniejsze typy silnikÛw, produkowane masowo: Silniki pr¹du sta³ego - komutatorowe, w†rodzinie ktÛrych s¹ produkowane: - silniki z†magnesem trwa³ym; - silniki szeregowe; - silniki bocznikowe; - silniki szeregowo-bocznikowe; - z†wiruj¹cym magnesem, w†rodzinie ktÛrych s¹ produkowane: - dwubiegunowe z†czujnikami Halla, - wielobiegunowe z†czujnikami Halla lub enkoderem, - krokowe, w†rodzinie ktÛrych s¹ produkowane: - unipolarne, - bipolarne, - liniowe. Silniki pr¹du zmiennego - komutatorowe (uniwersalne), - asynchroniczne 1-fazowe, w†rodzinie ktÛrych s¹ produkowane: - kondensatorowe; - ze zwart¹ faz¹ rozruchow¹; - z†od³¹czanym uzwojeniem rozruchowym; - asynchroniczne 3-fazowe, - synchroniczne. Wybrane parametry silnikÛw elektrycznych Podstawowe parametry silnika s¹ zwykle podane na jego tabliczce znamionowej, pozosta³e - np. moment rozruchowy, pr¹d rozruchowy, moøna znaleüÊ tylko w†katalogach lub oszacowaÊ wed³ug w³aúciwoúci poszczegÛlnych rodzajÛw silnikÛw. Moc znamionowa. Zazwyczaj jest podawana moc elektryczna w†watach, Elektronika Praktyczna 12/2003 Na co dzieÒ nie zdajemy sobie sprawy, jak olbrzymia liczba rÛønych silnikÛw elektrycznych nas otacza. Wielu elektronikÛw buduj¹c sterowniki mikroprocesorowe, chcia³oby skorzystaÊ z†tego bogactwa, ale nie zawsze wiadomo, jak to zrobiÊ. Dlatego postanowi³em przybliøyÊ Czytelnikom temat w³aúciwoúci i†sposobÛw sterowania typowych silnikÛw elektrycznych - moøe w†sposÛb nienaukowy, przystÍpnie i†bez stosowania wyøszej matematyki. tzn. moc pobierana przez silnik podczas pracy z†normaln¹ prÍdkoúci¹ obrotow¹. Moc mechaniczna, tzw. moc na wale, jest mniejsza i†zaleøy od sprawnoúci silnika (typowo 40...80%). NapiÍcie zasilania. Znamionowa wartoúÊ napiÍcia zasilaj¹cego (sta³ego lub zmiennego), przy ktÛrej okreúlane s¹ inne parametry. WiÍkszoúÊ silnikÛw moøe byÊ zasilana napiÍciem niøszym (minimalnie od 5%U z dla silnikÛw komutatorowych i†od 70%U z dla indukcyjnych). Nie naleøy stosowaÊ napiÍÊ duøo wyøszych od znamionowego (maksimum +15%). Moment obrotowy. W†uproszczeniu jest to si³a, z†jak¹ silnik potrafi krÍciÊ obci¹øeniem. Podawany jest w†Nm (niuton * metr), typowe wartoúci dla ma³ych silnikÛw: od 0,01 do 50 Nm. Moment rozruchowy. Jest to bardzo waøny parametr, informuj¹cy o†tym, czy silnik jest w†stanie wystartowaÊ pod obci¹øeniem. Moøe byÊ podany w†Nm lub w†procentach momentu obrotowego. W†zaleønoúci od rodzaju silnika moment rozruchowy moøe byÊ ma³y (do 150%), úredni (150...250%) lub duøy (powyøej 250%). Moment rozruchowy moøe byÊ parametrem decyduj¹cym o†przydatnoúci silnika do okreúlonych zastosowaÒ. Najmniejsze wymagania stawia napÍd wentylatorÛw - obci¹øenie startowe jest zerowe i†roúnie z†kwadratem prÍdkoúci obrotowej, moøna zastosowaÊ nawet silnik z†momentem rozruchowym niøszym od 100%. Najtrudniejsze warunki rozruchu wystÍpuj¹ w†napÍdach sprÍøarek, düwigÛw oraz pojazdÛw. Obroty znamionowe. Zawsze s¹ podawane obroty w†normalnych warunkach pracy, tzn. przy znamionowym obci¹øeniu i†napiÍciu zasilania. Obroty silnikÛw mog¹ zawieraÊ siÍ w†granicach 100...100000 obr./min., ale najczÍúciej spotykane wartoúci to 1000...4000 obr./min. Pr¹d znamionowy i†pr¹d rozruchowy. Pr¹d znamionowy jest to pobÛr pr¹du w†normalnych warunkach pracy. Pr¹d rozruchowy wystÍpuje tylko pod- czas rozpÍdzania silnika i†jest 2...8-krotnie wiÍkszy od pr¹du znamionowego (najwiÍksze pr¹dy rozruchowe maj¹ silniki indukcyjne). Warto o†tym pamiÍtaÊ, projektuj¹c uk³ad sterowania i†zasilania silnika. Silniki komutatorowe pr¹du sta³ego z†magnesem trwa³ym (PMDC) Konstrukcja silnika komutatorowego jest znana od 100 lat i†mimo swoich wad silniki te nadal s¹ powszechnie stosowane, g³Ûwnie ze wzglÍdu na ³atwoúÊ regulacji obrotÛw i†momentu obrotowego. KonstrukcjÍ silnika komutatorowego z†magnesem trwa³ym przedstawiono na rys. 1. Uzwojenia wirnika umieszczone s¹ w†szczelinach øelaznego rdzenia i†pod³¹czone do komutatora. Komutator sk³ada siÍ z†wielu p³ytek miedzianych umieszczonych na bocznej powierzchni walca, po ktÛrym úlizgaj¹ siÍ wÍglowe szczotki zasilane pr¹dem. Zadaniem komutatora jest prze³¹czanie kierunku przep³ywu pr¹du w†uzwojeniach, tak aby oddzia³ywanie z†polem magnetycznym stojana wprawi³o wirnik w†ruch obrotowy. Obroty silnika komutatorowego zaleø¹ liniowo od napiÍcia zasilania, a†moment obrotowy od natÍøenia pr¹du. ZmianÍ kierunku obrotÛw uzyskuje siÍ poprzez zmianÍ bieguno- Rys. 1. Budowa silnika komutatorowe− go z magnesem trwałym 85 K U R S Rys. 2. Budowa silnika z wirnikiem bez żelaza woúci zasilania. Obroty moøna ³atwo regulowaÊ w†szerokich granicach (od 5% do 110% obrotÛw znamionowych) z†zachowaniem duøego momentu obrotowego. Istnieje teø odmiana silnika komutatorowego - tzw. silnik z†wirnikiem bez øelaza (rys. 2). W†takim silniku wirnik nie posiada rdzenia øelaznego i†jest wykonany podobnie do p³ytki drukowanej - uzwojenia s¹ wykonane w†postaci taúm miedzianych przyklejonych do kr¹øka z†laminatu. Ze wzglÍdu na bardzo ma³¹ masÍ wirnika taki silnik ma ma³¹ bezw³adnoúÊ - moøe wiÍc startowaÊ bardzo szybko i†osi¹gaÊ duøe prÍdkoúci obrotowe. Szczotki s¹ dociskane do obrzeøa wirnika, rolÍ komutatora pe³ni¹ pola stykowe na jego obwodzie. Silniki tego typu uøywane s¹ do napÍdu wirÛwek i†do bardzo szybkich serwomechanizmÛw. Dodatkow¹ zalet¹ silnikÛw z†magnesem trwa³ym jest ³atwoúÊ hamowania. Wykorzystuje siÍ tutaj odwracalnoúÊ pracy takiego silnika: obracanie wirnikiem bez zasilania powoduje, øe silnik staje siÍ pr¹dnic¹. Wystarczy w†chwili od³¹czenia zasilania zewrzeÊ zaciski silnika, aby powsta³ duøy moment hamuj¹cy (zaawansowane sterowniki takich silnikÛw potrafi¹ odzyskiwaÊ energiÍ hamowania silnika i†zwracaÊ j¹ do ürÛd³a zasilania). Niestety silniki komutatorowe maj¹ teø wady. Najwaøniejsza z†nich to zuøywanie siÍ szczotek i†komutatora, co wymaga okresowej konserwacji silnika (trwa³oúÊ komutatora jest szacowana na 2...3 tysi¹ce godzin pracy). Poza tym iskrzenie na komutatorze wytwarza spore zak³Ûcenia elektromagnetyczne, do tego dochodzi ha³aúliwa praca i†wysokie koszty produkcji. NiskonapiÍciowe silniki komutatorowe z†magnesem trwa³ym s¹ powszechnie uøywane w†zabawkach, starszych modelach magnetofonÛw, niektÛrych serwomechanizmach. Do niedawna by³y to najczÍúciej stosowane silniki w†zakresie mocy do 20 W, obecnie s¹ wypierane przez nowoczeúniejsze silniki bezszczotkowe z†wiruj¹cym magnesem. Silniki komutatorowe szeregowe i†bocznikowe Zamiast magnesu trwa³ego moøna do wytworzenia pola magnetycznego stojana uøyÊ elektromagnesu, otrzymu- 86 jemy wtedy silnik z†dwoma uzwojeniami: stojana i†wirnika. W†zaleønoúci od uk³adu po³¹czeÒ otrzymamy silnik szeregowy, bocznikowy lub szeregowobocznikowy (rys. 3). Silnik szeregowy ma bardzo duøy moment obrotowy i†rozruchowy, ale ìmiÍkk¹î charakterystykÍ obci¹øenia, tzn. obroty bardzo silnie zaleø¹ od obci¹øenia silnika. Bez obci¹øenia silnik szeregowy moøe rozpÍdzaÊ siÍ bez ograniczeÒ, aø do jego zniszczenia - tzw. ìrozbieganie siÍî silnika. Wady tej jest pozbawiony silnik bocznikowy - jego obroty s¹ sta³e i†prawie niezaleøne od obci¹øenia. Niestety silniki bocznikowe (poza bardzo ma³ymi) wymagaj¹ skomplikowanych uk³adÛw p³ynnego rozruchu ograniczaj¹cych pr¹d rozruchowy, a†moment rozruchowy jest duøo mniejszy niø w†silnikach szeregowych. Silnik szeregowo-bocznikowy ma charakterystykÍ zbliøon¹ do szeregowego, dodatkowe uzwojenie bocznikowe ogranicza maksymalne obroty przy pracy bez obci¹øenia. Regulacja obrotÛw jest moøliwa poprzez zmianÍ napiÍcia zasilania. Kierunek obrotÛw jest sta³y bez wzglÍdu na biegunowoúÊ zasilania, zmiana kierunku wymaga zamiany miejscami koÒcÛwek jednego z†uzwojeÒ: wirnika lub stojana. Szeregowe silniki pr¹du sta³ego na 12 V†i†24 V s¹ powszechnie stosowane w†samochodach (dmuchawa - 120 W, wycieraczki - 50 W, rozrusznik - 1200 W) oraz w†wiertarkach akumulatorowych. Silniki wiÍkszej mocy spotyka siÍ w†napÍdach maszyn oraz - bardzo duøe - w†pojazdach szynowych. Silniki bocznikowe i†szeregowo-bocznikowe uøywane s¹ g³Ûwnie w†przemyúle m.in. do napÍdu düwigÛw. Sterowniki silnikÛw komutatorowych niska czÍstotliwoúÊ moøe powodowaÊ skokowe zmiany momentu obrotowego a†zbyt wysoka - straty indukcyjne w†silniku. Naleøy tak dobraÊ czÍstotliwoúÊ, aby na kaødy obrÛt silnika przypada³o przynajmniej kilka impulsÛw. Taki sposÛb sterowania jest bardzo wygodny w†przypadku mikroprocesorÛw - generator PWM moøe byÊ ³atwo zrealizowany programowo (niektÛre procesory maj¹ teø sprzÍtowy generator PWM). Przyk³adowy uk³ad sterowania obrotami silnika 12†V/20†W przedstawiono na rys. 4. W†uk³adzie dodatkowo wprowadzono moøliwoúÊ zmiany kierunku obrotÛw za pomoc¹ przekaünika sterowanego wyjúciem DIR. Jeøeli nie ma takiej potrzeby to silnik pod³¹cza siÍ bezpoúrednio miÍdzy dren tranzystora mocy i†ìplusî zasilania. Przy doborze elementÛw naleøy zwrÛciÊ uwagÍ na kilka istotnych szczegÛ³Ûw: - Dioda D1 jest nie tylko elementem t³umi¹cym przepiÍcia, ale umoøliwia takøe zachowanie ci¹g³oúci przep³ywu pr¹du w†indukcyjnoúci silnika. Nie powinna to byÊ zwyk³a dioda prostownicza 1N4001, lecz dioda szybka na pr¹d 1...3 A†(np. BY299, BY397, BYT03, BYW72). - Tranzystor kluczuj¹cy moøe byÊ typu MOS lub bipolarny, powinien mieÊ dopuszczalny pr¹d drenu (kolektora) przynajmniej 3-krotnie wiÍkszy od pr¹du znamionowego silnika. Jeøeli stosujemy tranzystor bipolarny (np. Darlington TIP122), to R1=R2=1,8 kΩ. - Zastosowanie dwÛch po³¹czonych rÛwnolegle inwerterÛw 74HC04 u³atwia szybkie prze³adowywanie pojemnoúci bramki T1. W†tym celu moøna zamiennie uøyÊ np. bufora mocy 74HC240 i†R1=100Ω (dla czÍstotliwoúci kluczowania powyøej 1 kHz lepiej jest uøyÊ tranzystora bipolarnego). - Warto zastosowaÊ w†uk³adzie ogranicznik pr¹du obci¹øenia (lub bezpiecznik) dla unikniÍcia uszkodzeÒ w†przypadku przeci¹øenia silnika. - W†programie steruj¹cym trzeba uwzglÍdniÊ koniecznoúÊ zatrzymania Opisane poniøej uk³ady mog¹ byÊ stosowane do wszystkich rodzajÛw silnikÛw komutatorowych, jednak zmiana kierunku obrotÛw i†hamowanie jest moøliwe tylko w†przypadku silnikÛw z†magnesem trwa³ym. Najprostszym sposobem regulacji obrotÛw jest zastosowanie potencjometru o†odpowiednio duøej mocy, trochÍ lepszym - regulowany stabilizator napiÍcia. Niestety podstawow¹ wad¹ obu uk³adÛw jest zamiana duøej traconej mocy w†ciep³o. Dlatego teø powszechnie stosowane jest zasilanie silnika fal¹ prostok¹tn¹ o†zmiennym wspÛ³czynniku wype³nienia PWM. Ca³kowanie impulsÛw steruj¹cych, dziÍki czemu ruch wirnika jest p³ynny, odbywa siÍ w†sposÛb naturalny - poprzez bezw³adnoúÊ wirnika. CzÍstotliwoúÊ impulsÛw za- Rys. 3. W zależności od układu połączeń uzwojeń wiera siÍ w†przedziale od silniki mogą być szeregowe, bocznikowe lub 100 Hz do kilku kHz. Zbyt szeregowo−bocznikowe Elektronika Praktyczna 12/2003 K U R S S³owniczek wybranych angielskich terminów i skrótów Rys. 4. Układ sterowania obrotami silnika 12 V/20 W silnika przed prze³¹czeniem kierunku obrotÛw, w†przeciwnym razie przez silnik pop³ynie bardzo duøy pr¹d w†momencie zmiany kierunku. - Iskrzenie komutatora moøe zak³ÛcaÊ pracÍ mikrokontrolera. Silnik moøe byÊ fabrycznie wyposaøony w†szeregowe d³awiki przeciwzak³Ûceniowe, jeøeli ich brak, to naleøy zastosowaÊ dwa d³awiki 22...100 µH przystosowane do odpowiednio duøego pr¹du (miniaturowe d³awiki w†obudowach ìrezystorowychî siÍ nie nadaj¹). Na rys. 5 przedstawiono uproszczony schemat sterownika w†uk³adzie mostkowym X, umoøliwiaj¹cy sterowanie prÍdkoúci¹ obrotow¹, kierunkiem obrotÛw†oraz hamowanie silnika komutatorowego z†magnesem trwa³ym. Jeøeli Przydatne linki internetowe Polskie: - http://www.silniki.pl - dystrybutor silników i sterowników, doskonale opracowane informacje praktyczne i teoretyczne, - http://www.robot.opole.pl - du¿o teorii na temat silników komutatorowych i liniowych, - http://www.mikroma.com, http:// www.elcar.com.pl, http:// www.wamel.com.pl - polscy producenci silników, Zagraniczne: - http://www.allegromicro.com - firma Allegro Microsystems - producent scalonych sterowników silników, ciekawe poradniki i noty aplikacyjne, - http://us.st.com/stonline/books - karty katalogowe i noty aplikacyjne sterowników firmy ST Microelectronics, - http://www.maxonmotor.com - strona renomowanego szwajcarskiego producenta silników DC, - http://www.compumotor.com - strona firmy Parker Motion & Control, która opracowa³a doskona³y poradnik “Motor Technologies” (dostêpny tak¿e na stronie Allegro Microsystems). 88 przewodz¹ tranzystory T2 i†T3, to pr¹d p³ynie od ìplusaî zasilania przez T3, silnik, T2 i†Rs do masy. W†momencie zatkania tranzystorÛw pr¹d†samoindukcji przep³ywa przez D2 i†D3. Sterowanie T2 i†T3 impulsami z†generatora PWM pozwala na regulacjÍ obrotÛw silnika. W†przypadku wysterowania tranzystorÛw T1 i†T4 pr¹d p³ynie przez silnik w†przeciwnym kierunku, czyli mamy zmian͆kierunku obrotÛw. Jednoczesne przewodzenie tranzystorÛw T1 i†T2 to zwarcie zaciskÛw silnika - hamowanie. NapiÍcie z†rezystora Rs jest podawane na wejúcie komparatora - ogranicznika pr¹du. Nazwa mostek X†lub mostek H†pochodzi od graficznego przedstawienia przep³ywu pr¹du, przypominaj¹cego literÍ X†lub H. Na rys. 6 przedstawiono schemat aplikacyjny scalonego sterownika A3953 firmy Allegro Microsystems, dzia³aj¹cego wed³ug opisanych powyøej zasad. Na wejúcie /ENABLE s¹ podawane impulsy z†generatora PWM, a†stan logiczny na wejúciu PHASE decyduje o†kierunku obrotÛw. Na wejúcie /BRAKE naleøy podaÊ '1' (stan '0' na wejúciu /BRAKE powoduje hamowanie silnika), wejúcie MODE powinno mieʆstan '0'. Do wejúcia REF do³¹cza siÍ napiÍcie sta³e z†zakresu 0...0,65 V†w†celu ustalenia wartoúci ograniczania pr¹du silnika (maksymalny pr¹d wyjúciowy uk³adu 3953 wynosi 1,3 A). Uk³ad moøe byÊ zasilany dwoma rÛønymi napiÍciami: V BB (tranzystory wyjúciowe) i†V CC (czÍúÊ cyfrowa), dziÍki temu moøliwe jest bezpoúrednie sterowanie wejúÊ A3953 z†wyjúÊ mikroprocesora. Armature, winding - uzwojenie BLDC (Brushless DC motor) - bezszczotkowy silnik DC z wiruj¹cym magnesem Brush motor - silnik komutatorowy Cage motor - silnik indukcyjny AC z wirnikiem klatkowym Capstan motor - potoczna nazwa silnika g³ównego w magnetowidach, magnetofonach Clamp diode - dioda zamykaj¹ca obwód dla pr¹du samoindukcji PMDC (Permanent Magnet DC motor) - silnik komutatorowy z magnesem trwa³ym REPM (Rare Earth Permanent Magnet) - magnes trwa³y wykonany z pierwiastków ziem rzadkich (np. neodym) Spindle motor - 1) potoczna nazwa silnika g³ównego w napêdach dyskowych i CD, 2) silnik z elementem napêdzanym zamocowanym bezpoœrednio na osi wirnika Rotor - wirnik Stator - stojan Torque - moment obrotowy Torque ripple - wahania momentu obrotowego zale¿ne od k¹ta obrotu wirnika Voice Coil motor (actuator) - rodzaj silnika (si³ownika) liniowego z ruchom¹ cewk¹ X-Bridge (H-Bridge) - mostek 4-tranzystorowy do bipolarnego sterowania uzwojeñ silników w†tym samym kierunku niezaleønie od biegunowoúci zasilania - czyli powinien prawid³owo pracowaÊ takøe przy zasilaniu pr¹dem zmiennym. W†praktyce czÍsto rdzeÒ wirnika i†stojana jest wykonany z†jednego kawa³ka metalu i†straty wywo³ane pr¹dami wirowymi by³yby bardzo duøe. Dlatego teø w†silnikach uniwersalnych rdzenie wykonane s¹ w†formie pakietÛw z†cienkich blaszek (jak w†transformatorach sieciowych). Taki silnik moøe byÊ zasilany pr¹dem zmiennym lub sta³ym i†dlatego nazywany jest silnikiem uniwersalnym. Tego typu silniki s¹ powszechnie uøywane Silniki komutatorowe uniwersalne Silniki uniwersalne wystÍpuj¹ w†klasyfikacji jako silniki pr¹du zmiennego, jednak nie do koÒca jest to prawda. Jak wspomniano wczeúniej, silnik komutatorowy szeregowy obraca siÍ Rys. 5. Uproszczony schemat sterowni− ka w układzie mostkowym X Elektronika Praktyczna 12/2003 K U R S w†sprzÍcie gospodarstwa domowego (roboty kuchenne, miksery, m³ynki, odkurzacze) oraz w†elektronarzÍdziach. W†przypadku uøywania silnikÛw uniwersalnych z†odzysku, naleøy pamiÍtaÊ o†moøliwoúci rozbiegania siÍ silnika szeregowego przy braku obci¹øenia. SzczegÛlnie dotyczy to silnikÛw z†odkurzaczy: maj¹ one prÍdkoúÊ znamionow¹ ok. 12†000 obr./min. w†warunkach obci¹øenia turbin¹, a†bez obci¹øenia potrafi¹ osi¹gn¹Ê kilkadziesi¹t tysiÍcy obrotÛw. Przestrzegam przed prÛbami wykorzystania silnika z†odkurzacza do budowy szlifierki - przy np. 30†000 obr./ min. rozpadaj¹ca siÍ tarcza szlifierska powoduje efekt zbliøony do wybuchu granatu! Elektroniczne uk³ady regulacji obrotÛw silnikÛw uniwersalnych zwykle budowane s¹ w†oparciu o†triaki ze sterowaniem fazowym. Schematy takich uk³adÛw moøna bez problemu znaleüÊ w†literaturze (np. z†uk³adem U2008 lub U 2 0 1 0 B f i r m y T e m i c ) . Moøna teø zasiliÊ silnik uniwersalny pr¹dem sta³ym o†napiÍciu 230 V, ale zbudowanie odpowiedniego zasilacza nie jest rzecz¹ prost¹ - wyprostowanie i†odfiltrowanie napiÍcia sieci da na wyjúciu ok. 320 VDC. Elektronika Praktyczna 12/2003 Rys. 6. Schemat aplikacyjny scalonego sterownika silników − A3953 Gdyby jednak to siÍ uda³o, to uzyskamy odrobinÍ wiÍksz¹ sprawnoúÊ silnika (brak strat na przemagnesowanie rdzenia) i†moøemy regulowaÊ obroty opisan¹ wczeúniej metod¹ PWM. Do celÛw przemys³owych uøy- wa siÍ czasem silnikÛw uniwersalnych, przewidzianych do pracy przy napiÍciu 320 VDC (wyprostowane napiÍcie sieci) lub 550 VDC (wyprostowane napiÍcie trÛjfazowe). Jacek Przepiórkowski 89 M I N I P R O J E K T Y Wspólną cechą układów opisywanych w dziale "Miniprojekty" jest łatwość ich praktycznej realizacji. Zmontowanie układu nie zabiera zwykle więcej niż dwa, trzy kwadranse, a można go uruchomić w ciągu kilkunastu minut. Układy z “Miniprojektów” mogą być skomplikowane funkcjonalnie, lecz łatwe w montażu i uruchamianiu, gdyż ich złożoność i inteligencja jest zawarta w układach scalonych. Wszystkie układy opisywane w tym dziale są wykonywane i badane w laboratorium AVT. Większość z nich znajduje się w ofercie kitów AVT, w wyodrębnionej serii “Miniprojekty” o numeracji zaczynającej się od 1000. mail2led − sygnalizator e−maili dla PC KtÛø z†nas chcia³by byÊ natychmiast informowany o nowej poczcie elektronicznej nawet przy uúpionym komputerze? Odpowiedü jest prosta - kaødy! W³aúnie dlatego mail2led zainteresuje chyba kaødego komputerowca. Rekomendacje: uk³ad, dziÍki odpowiedniemu oprogramowaniu, jest dos³ownie dla kaødego. Sprawdzanie poczty elektronicznej naleøy do codziennych czynnoúci kaødego internauty. Czy nie by³oby dobrze, øeby ìcoúî sprawdza³o, czy jest nowa poczta i†informowa³o nas o†tym w†jakiú przyjemny sposÛb? Komputer moøe sobie smacznie ìspaÊî, monitor moøe byÊ wy³¹czony, a†my i†tak bÍdziemy wiedzieÊ, czy mamy now¹ pocztÍ, pod warunkiem øe jesteúmy na sta³e do³¹czeni do Internetu. Sygnalizator poczty mail2led sk³ada siÍ z†dwÛch czÍúci: sprzÍtowej (schemat uk³adu na rys. 1) i†programowej (okno programu pokazano na rys. 2). Budowa uk³adu sygnalizatora jest tak prosta, øe nawet ktoú, kto nie trzyma³ nigdy Rys. 1. Schemat elektryczny interfejsu mail2led Rys. 2. Widok okna ustawień programu mail2led Rys. 3. Menu podręczne przy− wołane prawym przyciskiem myszy Elektronika Praktyczna 12/2003 lutownicy w†rÍce poradzi sobie w†5†minut! Diody LED sygnalizatora moøemy zamocowaÊ na wolnej zaúlepce obudowy lub moøna obudowaÊ wed³ug w³asnego pomys³u. Moøemy takøe†zastosowaÊ diody dwukolorowe, np. lubiane przez uøytkownikÛw PC niebieskie i†bia³e. W†modelowym uk³adzie zastosowano zielone i†czerwone diody LED o†úrednicy 5†mm. Nadruk na zaúlepce moøna wykonaÊ nastÍpuj¹co: drukujemy ìnaklejkÍî na zwyk³ym papierze, przyklejamy do zaúlepki, wiercimy otworki, a nastÍpnie obklejamy bezbarwn¹, samoprzylepn¹ szerok¹ taúm¹. Na koniec naleøy zrobiÊ otworki w†taúmie i†zamocowaÊ diody. Efekt jest naprawdÍ zadowalaj¹cy. Gotowy uk³ad naleøy pod³¹czyÊ do wolnego gniazda RS232 w†komputerze. Oczywiúcie, do sprawdzania stanu kont pocztowych potrzebny jest jeszcze odpowiedni program. Jest on darmowy (freeware) i†moøna go rozpowszechniaÊ do woli. Po uruchomieniu programu (dzia³a pod wszystkimi Windowsami, pocz¹wszy od Windows 95) pojawia siÍ okno konfiguracyjne (rys. 2), umoøliwiaj¹ce wybranie portu, do ktÛrego pod³¹czony jest sygnalizator. W†tym oknie moøemy takøe aktywowaÊ funkcjÍ uruchamiania programu razem z†Windows (bardzo zalecane!), a†takøe zablokowaÊ pojawianie siÍ okienek popup informuj¹cych o†nowej poczcie lub b³Ídzie. Na nastÍpnych zak³adkach okna wpisujemy dane naszych kont pocztowych, a†takøe ustawiamy czas, po ktÛrym program bÍdzie sprawdza³ dane konto w†poszukiwaniu nowych listÛw. Gdy wszystko jest dobrze, pozostaje nam tylko klikniÍcie przycisku Zapisz i†zamknij. Wszystkie ustawienia programu przechowywane s¹ w†rejestrze Windows. Has³a do kont e-mail s¹ szyfrowane algorytmem Bluefish, aby zapewniÊ choÊ odrobinÍ bezpieczeÒstwa danych. Po zamkniÍciu okna ustawieÒ program natychmiast rozpoczyna dzia³anie. Oczywiúcie, w†kaødym momencie moøemy klikn¹Ê prawym kla- Rys. 4. Okienko popup infor− mujące o nowej poczcie wiszem myszy na ikonÍ na pasku zadaÒ i†przywo³aÊ menu podrÍczne (rys. 3). Gdy ustawienia s¹ wpisane do rejestru, program rozpoczyna odmierzanie czasu i†sprawdzanie poczty. Jeúli jest nowa poczta, to program wyúwietli okienko popup (rys. 4) i†zaúwieÊi siÍ zielona dioda na interfejsie. Jeúli s¹ jakieú nieprawid³owoúci, wtedy wyúwietli siÍ okienko popup z†odpowiednim b³Ídem, diody zaczn¹ úwieciÊ na przemian, a†lista b³ÍdÛw bÍdzie wyúwietlona w oknie b³ÍdÛw, ktÛre moøna wybraÊ poleceniem B³Ídy... z†menu podrÍcznego. Jeúli projekt mail2led zyska przychylnoúÊ CzytelnikÛw, to powstanie wersja obs³uguj¹ca dial-up (specjalnie dla modemowcÛw!), a†takøe rÛøne wersje jÍzykowe. MyúlÍ, øe po przeczytaniu tego artyku³u kaødy posiadacz komputera zbuduje sobie sygnalizator i†bÍdzie zawsze wiedzia³, czy na odleg³ych skrzynkach pocztowych nie leøy jakaú korespondencja. Czekam na sugestie CzytelnikÛw i†pytania pod adresem: [email protected]. Pawe³ Bielawski WYKAZ ELEMENTÓW Rezystory R1 200Ω Półprzewodniki LED1, LED3, LED5 dioda LED zielona LED2, LED4, LED6 dioda LED czerwona Różne J1: wtyk DB9 żeński + ew. obudowa przewód 4−żyłowy 79 M I N I P R O J E K T Y Przetwornica do lamp Nixie Opublikowane w†EP opisy zegarÛw z†gazowanymi wyúwietlaczami lampowymi Nixie zachÍci³y wielu naszych CzytelnikÛw do przeszukania swoich magazynkÛw. Okazuje siÍ, øe najpowaøniejszym problemem zg³aszanym nam przez CzytelnikÛw jest zasilanie tych lamp. Urz¹dzenie przedstawione w†artykule ten problem rozwi¹zuje. Rekomendacje: dla projektantÛw urz¹dzeÒ lampowych, szczegÛlnie dobrze nadaje siÍ do zasilania wyúwietlaczy lampowych Nixie. Schemat elektryczny przetwornicy pokazano na rys. 1. Jest to klasyczna przetwornica impulsowa ze stabilizacj¹ napiÍcia wyjúciowego, wykonana na specjalizowanym sterowniku MC34063. Poniewaø uk³ad ten integruje w†sobie wszystkie bloki funkcjonalne poza koÒcÛwk¹ mocy (w stopniu mocy pracuje tranzystor Q1), diod¹ kluczuj¹c¹ (D1) i†d³awikiem (L1), budowa przetwornicy jest ma³o skomplikowana. DziÍki temu z†jej wykonaniem nie bÍd¹ mieli problemu takøe mniej wprawni elektronicy. JakoúÊ napiÍcia uzyskiwanego na wyjúciu przetwornicy (tzn. wspÛ³czynnik jego stabilizacji i†napiÍcie tÍtnieÒ) nie s¹ zbyt wysokie, ale nie ma to istotnego znaczenia dla jakoúci dzia³ania lamp Nixie czy magicznego oka, do zasilania ktÛrego moøna takøe zastosowaÊ tÍ przetwornicÍ. Na rys. 2 pokazano schemat montaøowy p³ytki drukowanej przetwornicy. Jej montaø nie wymaga posiadania specjalnego sprzÍtu ani szczegÛlnych umiejÍtnoúci. UwagÍ naleøy zwrÛciÊ jedynie na sposÛb†montaøu tranzystora Q1 - wyprowadzenie jego drenu jest jednoczeúnie radiatorem, ktÛry naleøy przylutowaÊ do ods³oniÍtego pola na p³ytce drukowanej. Czas lutowania naleøy skrÛciÊ do minimum, dbaj¹c jednoczeúnie o†zapewnienie wysokiej jakoúci lutu. Uruchomienie przetwornicy sprowadza siÍ do ustawienia poø¹danego napiÍcia na wyjúciu. Przy zasilaniu przetwornicy napiÍciem 12 V i†obci¹øeniu jej wyjúcia rezystorem 20 kΩ moøna uzyskaÊ na jej wyjúciu stabilne napiÍcie o†wartoúci 160 do 205 V. Andrzej Gawryluk WYKAZ ELEMENTÓW Rezystory P1: 2,2kΩ R2: 4,7kΩ R4: 330Ω R3: 680kΩ R1: zworka Kondensatory C1: 1000µF/25V C2, C3: 100nF C4: 1nF C5: 47µF/350V Półprzewodniki U1: MC34063A Q1: IFR840S D1: BYV29/400 Różne F1: 0,4AT J1, J2: ARK2 L1: 330µH (max. 1Ω/min. 1,5A) Rys. 1 P³ytka drukowana jest dostÍpna w AVT - oznaczenie AVT-1385. Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: pcb.ep.com.pl oraz na p³ycie CDEP12/2003B w katalogu PCB. Rys. 2 80 Elektronika Praktyczna 12/2003 K U R S Niezbędnik dla amatorów i profesjonalistów W głośnikowym żywiole, część 2 G³oúnikowy triumwirat ZespÛ³ g³oúnikowy sk³ada siÍ z†trzech g³Ûwnych obszarÛw - systemu g³oúnikÛw (przetwornikÛw), zwrotnicy (filtrÛw) i†obudowy. Obszary te s¹ ze sob¹ oczywiúcie konstrukcyjnie sprzÍøone, choÊ rÛøne zwi¹zki maj¹ rÛøn¹ si³Í. NiektÛre parametry samych g³oúnikÛw niskotonowych decyduj¹ o†rodzaju i†wielkoúci obudowy, natomiast parametry wszystkich g³oúnikÛw maj¹ udzia³ w†projektowaniu uk³adu filtrÛw nimi steruj¹cych. Te zwi¹zki s¹ najwaøniejsze, choÊ s¹ i†mniej znane, a†jednak doúÊ istotne. Np. wymiary przedniej úcianki i†sposÛb rozplanowania na niej g³oúnikÛw ma wp³yw na charakterystyki w†zakresie úrednio-wysokotonowym, co z†kolei powinno zostaÊ uwzglÍdnione przy projektowaniu zwrotnicy. W†ten sposÛb obudowa ma poúrednio zwi¹zek ze zwrotnic¹. Mimo to proces projektowania moøna podzieliÊ na etapy prac prowadzonych do pewnego stopnia niezaleønie i†rÛønymi metodami, choÊ na widoku trzeba mieÊ ca³¹ koncepcjÍ. Nie ma np. sensu projektowanie obudowy z†niskoefektywn¹ lini¹ transmisyjn¹, gdy zamierza siÍ zastosowaÊ sekcjÍ úredniowysokotonow¹ z†uøyciem przetwornikÛw tubowych o†wysokiej efektywnoúci, tak jak nie jest racjonalne budowanie uk³adÛw czterodroønych z†13cm g³oúnikiem niskotonowym w†ma³ej konstrukcji podstawkowej, albo wrÍcz przeciwnie - uruchamianie baterii kilkunasotcalowych wooferÛw, podczas gdy do dyspozycji mamy tylko jeden ma³y g³oúnik úredniotonowy (i oczywiúcie wysokotonowy), a†tym bardziej gdy jest to tylko tweeter. Przy- KEF 207 − rzadko spotykane połączenie układu aż czterodrożnego z małą obudową podstawkową Elektronika Praktyczna 12/2003 Po wstÍpnym zachÍcaj¹co-zniechÍcaj¹cym eseju, zamieszczonym w†poprzednim numerze EP, powoli przechodzimy do praktycznotechnicznych wskazÛwek dla amatorÛw samodzielnego konstruowania zespo³Ûw g³oúnikowych. Nigdzie nie bÍdziemy epatowaÊ teori¹, rÛwnaniami, modelami, itp., ktÛre nie znajduj¹ zastosowania w†dzia³aniach konstruktora zespo³u g³oúnikowego. RozpÍdzaÊ bÍdziemy siÍ stopniowo. W†tym numerze rozbierzemy zespÛ³ g³oúnikowy na najwaøniejsze czÍúci. Powstrzymamy siÍ od schematÛw, wzorÛw, choÊ w†samym opisie bÍdziemy siÍ juø do pewnych zaleønoúci odnosiÊ. LekcjÍ tÍ mog¹ sobie darowaÊ konstruktorzy juø obeznani z†podstawowymi faktami. Ale moøe zabrniemy w†jakieú ciekawostki... zarazem nowe spojrzenie nawet na elementarne problemy moøe okazaÊ siÍ poøyteczne. k³ady konfiguracji absurdalnych moøna mnoøyÊ, chociaø czasami pewne rozwi¹zania absurdalnymi nie s¹, mimo øe na takie pozornie wygl¹daj¹. Dopiero dok³adniejsze wejrzenie we w³aúciwoúci zastosowanych przetwornikÛw stawia we w³aúciwym úwietle zamierzenia i†umiejÍtnoúci konstruktora. Na przyk³ad najlepsza podstawkowa konstrukcja firmy KEF, model Reference 201, jest aø czterodroøna zawiera 18-cm g³oúnik niskotonowy, 18-cm nisko-úredniotonowy sprzÍøony z†25-mm kopu³k¹ wysokotonow¹ w†ramach wspÛ³osiowego podsystemu ìUni-Qî, a†na szczycie jeszcze 19mm kopu³kÍ superwysokotonow¹. Z†drugiej strony moøna spotkaÊ uk³ady dwudroøne pos³uguj¹ce siÍ 20, a†nawet 25-cm g³oúnikami nisko-úredniotonowymi, co wymaga od nich wyj¹tkowo (jak na ich wielkoúÊ) daleko siÍgaj¹cych dostatecznie liniowych charakterystyk przetwarzania, a†takøe wysokiej wytrzyma³oúci g³oúnika wysokotonowego, aby mÛc ustaliÊ nisk¹ czÍstotliwoúÊ podzia³u. Tworzenie takich i†innych egzotycznych uk³adÛw wymaga doskona³ej znajomoúci stosowanych przetwornikÛw, doúwiadczenia i†wyczucia, i†nie powinno byÊ rozwaøane przez pocz¹tkuj¹cych konstruktorÛw. A†przecieø zagalopowaliúmy siÍ juø niechc¹cy w†terminologiÍ nieznan¹ pocz¹tkuj¹cym (czÍstotliwoúÊ podzia³u, superwysokotonowy, uk³ad wspÛ³osiowy...), wrÛÊmy do podstaw i†wyjaúnienia, dlaczego w†ogÛle mamy do czynienia z†zespo³ami g³oúnikowymi, a†nie pojedynczymi g³oúnikami; jaka jest rola zwrotnicy, a†jaka obudowy. T¹ drog¹ teø dojdziemy do pytaÒ i†problemÛw. Dlaczego nie solo? Praktycznie nie istnieje pojedynczy g³oúnik zdolny z†satysfakcjonuj¹co niskimi zniekszta³ceniami przetwarzaÊ ca³e pasmo akustyczne. W†tanich urz¹dzeniach (np. tanie radioodbiorniki) spotykamy pojedyncze g³oúniki, ale oczywiúcie ma to zwi¹zek ze zgod¹ na nisk¹ jakoúÊ brzmienia. WiÍkszy k³opot sprawia zinterpretowanie jakoúci nielicznych egzotycznych i†bardzo kosztownych przetwornikÛw szerokopasmowych (np. Lowther), ktÛre wywo³uj¹ apaluz pewnej czÍúci audiofilÛw i†hobbistÛw. Rzeczywiúcie, niektÛrym firmom uda³o siÍ opracowaÊ g³oúniki szerokopasmowe brzmi¹ce na tyle interesuj¹co, øe stanowi¹ one ciekaw¹, ale marginaln¹ alternatyw͆dla zespo³Ûw g³oúnikowych. Nie siÍgaj¹ one ìod dwudziestu do dwudziestuî, maj¹c k³opoty z†przetwarzaniem zarÛwno najniøszych, jak i†wysokich tonÛw, maj¹ niskie moce, ale doskona³¹ spÛjnoúci¹ brzmienia, wynikaj¹c¹ z†samej swojej ìniezespo³owejî natury, w†pewien sposÛb rekompensuj¹ te niedoci¹gniÍcia. Raczej w†duecie Powszechn¹ popularnoúÊ zdoby³o konstruowanie wielodroønych zespo³Ûw g³oúnikowych, z†g³oúnikÛw wyspecjalizowanych w†przetwarzaniu rÛønych zakresÛw pasma. Wystarcz¹ juø dwa g³oúniki, aby stworzyÊ pe³nopasmowy zespÛ³ g³oúnikowy - bÍd¹ to g³oúniki nisko-úredniotonowy i†wysokotonowy, a†zespÛ³ taki nazwiemy dwudroønym. Dwudroøne zespo³y g³oúnikowe maj¹ dzisiaj pozycjÍ dominuj¹c¹, chociaø jeszcze niedawno wydawa³o siÍ, øe dopiero zespo³y trÛjdroøne - czyli z†wyrÛønionymi g³oúnikami niskotonowym, úredniotonowym i†wysokotono- 75 K U R S prostszy od trÛjdroønego, poniewaø nie zawiera filtru dolnozaporowego dla g³oúnika nisko-úredniotonowego. Zespo³y dwuipÛ³droøne s¹ obecnie bardzo popularne i†w†duøym stopniu zast¹pi³y zespo³y trÛjdroøne. Znowu wdepnÍliúmy w†temat filtrÛw, ale akurat w†dobrym momencie. Trzeba z†tym zrobiÊ porz¹dek Legacy Focus 20 − potężna konstrukcja pięciodrożna wym - mog¹ byÊ uznawane ze zespo³y†wysokiej klasy. Zespo³y trÛjdroøne nie zniknͳy, podaliúmy nawet przyk³ad zespo³u czterodroønego, a†zdarzaj¹ siÍ i†piÍciodroøne, jednak nie naleøy s¹dziÊ, øe wraz ze zwiÍkszaniem iloúci ìdrÛgî automatycznie i†bezproblemowo podnosi siÍ jakoúÊ zespo³u g³oúnikowego. WielodroønoúÊ zespo³u powinna byÊ dobrze umotywowana. Mimo øe nie istnieje idealny g³oúnik szerokopasmowy, to w³aúnie funkcjonowanie takiego hipotetycznego g³oúnika jest spe³nieniem wszystkich postulatÛw dotycz¹cych wysokiej jakoúci przetwarzania. WielodroønoúÊ uk³adu nie powinna byÊ celem samym w†sobie, ale tylko sposobem dla uzyskania optymalnych parametrÛw przetwarzania. Moøna nawet powiedzieÊ, øe jes to z³o konieczne. Komplikowanie uk³adu niesie bowiem ze sob¹ problemy, ktÛre nawet umiejÍtnie rozwi¹zywane, pozostawiaj¹ pewne úlady. MÛwi¹c krÛtko, trzeba wiedzieÊ dlaczego i†po co buduje siÍ uk³ad wiÍkszy niø dwudroøny, a†w†myúleniu pocz¹tkuj¹cego konstruktora projektowanie uk³adu dwudroønego, ewentualnie dwuipÛ³droønego, powinno byÊ spraw¹ oczywist¹. Co to jest uk³ad dwuipÛ³droøny? Jak nazwa wskazuje, to uk³ad poúredni miÍdzy dwudroønym a†trÛjdroønym. Powstaje przez dodanie do uk³adu dwudroønego dodatkowego g³oúnika niskotonowego, a†od uk³adu trÛjdroønego rÛøni siÍ tym, øe zamiast g³oúnika úredniotonowego, dzia³a w†nim g³oúnik nisko-úredniotonowy, tak jak niskotonowy przetwarzaj¹cy, oprÛcz úrednich tonÛw, takøe niskie tony. Uk³ad taki jest 76 Stwierdziliúmy, øe pojedynczy g³oúnik nie moøe przetwarzaÊ ca³ego pasma akustycznego - uwaga - z†satysfakcjonuj¹co niskimi zniekszta³ceniami. Oznacza to, øe aplikuj¹c go do zespo³u g³oúnikowego, naleøy†odfiltrowaÊ te czÍúci pasma, ktÛre przetwarza ze zbyt wysokimi zniekszta³ceniami. Jednoczeúnie naleøy podzieliÊ pasmo pomiÍdzy g³oúniki zastosowane w†zespole i†najczÍúciej unikaÊ szerokich zakresÛw, w†ktÛrych dwa rÛøne g³oúniki pracuj¹ rÛwnoczeúnie. Zalecenie to najlepiej spe³niaj¹ filtry wysokiego rzÍdu, to znaczy charakteryzuj¹ce siÍ stromymi zboczami charakterystyk. Ale... ich stosowanie niesie ze sob¹ jednak inne komplikacje, o†ktÛrych dalej, natomiast naj³agodniejsze filtry 1. rzÍdu (spadek 6†decybeli na oktawÍ), teø maj¹ swoje zalety, ktÛre sk³aniaj¹ wielu konstruktorÛw do ich stosowania. Tutaj rozpoczyna siÍ terytorium sporÛw i†rÛønych idei, jakie filtry stosowaÊ, jednak ma³o kto ma w¹tpliwoúci, øe w†ogÛle s¹ one konieczne. Sytuacje, w†ktÛrych jeden z†g³oúnikÛw†nie wymaga filtrowania, bowiem jego charakterystyka przetwarzania samoistnie opada w†wymaganym dla systemu zakresie, s¹ niezwykle rzadkie, a†i†tak kontrowersyjne. Bior¹c na przyk³ad prosty uk³ad dwudroøny zwrÛÊmy teø uwagÍ, øe nieco inne powody dyktuj¹ sposÛb filtrowania g³oúnika nisko-úredniotonowego, a†inne wysokotonowego (a†generalnie, inne powody okreúlaj¹ filtrowanie dolnoprzepustowe, a†inne gÛrnoprzepustowe). Z†g³oúnikiem nisko-úredniotonowym sprawa jest prostsza - tak jak wspomnieliúmy, zamierzamy zostawiÊ w†jego przetwarzaniu tylko ten zakres, ktÛry obs³uguje poprawnie. W†przypadku g³oúnika wysokotonowego powody s¹ bardziej z³oøone. OprÛcz tego, ktÛry dotyczy wyodrÍbnienia zakresu przetwarzanego z†najlepsz¹ jakoúci¹, drugi odnosi siÍ do wytrzyma³oúci g³oúnika wysokotonowego. G³oúnik wysokotonowy trzeba filtrowaÊ (gÛrnoprzepustowo) juø tylko z†tego powodu, øe nie uczynienie tego narazi³oby go na zniszczenie. W†ten sposÛb w†odfiltrowanej czÍúci pasma bardzo czÍsto g³oúnik wysokotonowy wykazuje siÍ jeszcze ³adn¹ charakterystykÍ, z†ktÛrej jednak nie korzystamy, ze wzglÍdu na jego bezpieczeÒstwo. Dlatego pierwszym, absolutnie niezbÍdnym elementem w†zwrotnicy jest kondensator jako najprostszy filtr gÛrnoprzepustowy dla g³oúnika wysokotonowego (owe anegdotyczne 4,7 µ z†moich wspomnieÒ sprzed miesi¹ca). ZespÛ³ dwudroøny z†tak skromnym filtrem najprawdopodobniej bÍdzie brzmia³ bardzo u³omnie (odzywaÊ siÍ bÍdzie obarczony zniekszta³ceniami zakres charakterystyki g³oúnika niskoúredniotonowego), ale ostatecznie moøe†dzia³aÊ w†miarÍ bezpiecznie (chociaø tak proste filtrowanie g³oúnika wysokotonowego nie zabezpiecza go tak dobrze, jak filtry wyøszego rzÍdu). Znan¹ brytyjsk¹ firm¹ g³oúnikow¹ uprawiaj¹c¹ taki skrajny minimalizm jest Epos, ktÛrego przynajmniej dawniejsze konstrukcje (wspÛ³czesne moøe juø nie) mia³y zwrotnicÍ sk³adaj¹c¹ siÍ w³aúnie z†jednego tylko kondensatora; nie by³ to wyraz sk¹pstwa, ale koncepcji, i†pod tym k¹tem przygotowywano charakterystyki samego g³oúnika niskotonowego. Zupe³nie inn¹ genezÍ maj¹ niektÛre bardzo niskiej klasy konstrukcje, w†ktÛrych takie rozwi¹zanie wypada t³umaczyÊ tylko chÍci¹ obniøenia kosztÛw. Wreszcie moøna zrozumieÊ taki uk³ad jako pierwsze kroki hobbisty lub prowizorkÍ. Zanim dalej bÍdziemy wnikaÊ w†tajniki filtrowania, spÛjrzmy dok³adniej na same g³oúniki i†ustalmy, jakie ich cechy konstrukcyjne i†parametry okreúlaj¹, w†jakich zakresach powinny byÊ stosowane. D³ugoúÊ fal? Wracamy do pocz¹tkowego problemu i†pytania - dlaczego pojedynczy g³oúnik nie moøe przetwarzaÊ ca³ego pasma akustycznego? Moglibyúmy tutaj przedstawiaÊ skomplikowan¹ teoriÍ, ale pÛjdziemy na skrÛty. Przede wszystkim nasze obserwacje ograniczymy do przetwornikÛw dynamicznych (magnetoelektrycznych), ktÛre s¹ najpopularniejszym typem g³oúnikÛw spotykanym w†kolumnach. Do typu tego naleø¹ zarÛwno duøe g³oúniki niskotonowe, jak i†ma³e kopu³ki wysokotonowe. Juø na pierwszy rzut oka widaÊ, øe g³oúniki maj¹ce za zadanie przetwarzaÊ czÍstotliwoúci najniøsze, s¹ znacznie wiÍksze od przetwarzaj¹cych czÍstotliwoúci najwyøsze. Jest tu analogia do instrumentÛw muzycznych - stopa perkusji jest wiÍksza od werbla, a†kontrabas od skrzypiec, a†kaøda grubsza struna wydaje düwiÍki niøsze niø cieÒsza, i†tym niøsze, na im niøszych progach gramy (a wiÍc im d³uøsza czÍúÊ struny jest aktywna). Ma to zwi¹zek z†d³ugoúciami fal - im niøsze czÍstotliwoúci, tym s¹ d³uøsze - ale nie tylko. Przecieø kilkunastocentymetrowe membrany typowych g³oúnikÛw nisko-úredniotonowych przetwarzaj¹ czÍstotliwoúci poniøej 100 Hz, nawet jeøeli nie 20 Hz, to przynajmniej 50 Hz. A†50 Hz to fala o†d³ugoúci prawie 7†metrÛw! Powierzchnia i†amplituda! Umiarkowana úrednica membrany nie jest wiÍc bezwzglÍdn¹ przeszkod¹ dla przetwarzania niskich czÍstotliwoúci, chociaø im wiÍksza úrednica i†powierzchnia, tym ³atwiej to zadanie Elektronika Praktyczna 12/2003 K U R S spe³niaÊ. Jest wiÍc zwi¹zek miÍdzy powierzchni¹ membrany a†czÍstotliwoúciami, jakie maj¹ byÊ przez ni¹ przetwarzane, ale zwi¹zek ten zawiera jeszcze jeden czynnik - amplitudÍ, z†jak¹ membrana moøe pracowaÊ. OtÛø powierzchnia membrany i†jej amplituda ìwspÛ³pracuj¹î, i†mniejsza powierzchnia membrany moøe byÊ rekompensowana przez wiÍksz¹ amplitudÍ, i†odwrotnie. Ostatecznie dla zdolnoúci przetwarzania najniøszych czÍstotliwoúci znaczenie ma jak najwiÍksze ìwychylenie objÍtoúcioweî, czyli iloczyn powierzchni membrany i†jej maksymalnej amplitudy. Dlaczego? I†dlaczego nie jest to tak potrzebne przetwarzaniu wysokich tonÛw? Poniewaø dla ciúnienia akustycznego liczy siÍ powierzchnia membrany i†prÍdkoúÊ jej ruchu. Wysokie tony, czyli wysokie czÍstotliwoúci drgaÒ, wytwarzaj¹ wysok¹ energiÍ fali dziÍki wysokim prÍdkoúciom; nawet gdy ruch ten odbywa siÍ na ma³ej amplitudzie, to przecieø 20 tysiÍcy cykli na sekundÍ oznacza ogromne prÍdkoúci. Chc¹c osi¹gn¹Ê porÛwnywalne przyspieszenia przy 20 cyklach na sekundÍ, trzeba stworzyÊ warunki do pracy ze znacznie wiÍkszymi amplitudami, i†posi³kowaÊ siÍ zwiÍkszaniem powierzchni membrany. Teoretycznie, gdyby moøna by³o skonstruowaÊ 25-mm úrednicy g³oúnik kopu³kowy o†amplitudzie powiedzmy jednego metra, g³oúnik taki mÛg³by przetwarzaÊ niskie tony. O†ile... jest jeszcze jeden warunek dla moøliwoúci przetwarzania niskich tonÛw - czÍstotliwoúÊ rezonansowa uk³adu drgaj¹cego g³oúnika. Zaczynamy rezonowaÊ W†ten parametr trochÍ siÍ wgryziemy, bowiem bÍdzie on nam w†przysz³oúci pomocny. Kaødy uk³ad mechaniczny, w†ktÛrym funkcjonuje masa i†podatnoúÊ (zawieszenie), albo uk³ad elektryczny, w†ktÛrym wystÍpuje indukcyjnoúʆ(cewka) i†pojemnoúÊ (kondensator), charakteryzuje siÍ czÍstotliwoúci¹ rezonansow¹, odwrotnie proporcjonaln¹ do pierwiastka z†iloczynu masy i†podatnoúci. Dość prosta, ale nie minimalistyczna, typowa zwrotnica dla układu dwudrożnego Elektronika Praktyczna 12/2003 Czyli im wiÍksza masa i†(lub) podatnoúÊ, tym niøsza czÍstotliwoúÊ rezonansowa. Przy czÍstotliwoúci tej zachodz¹ tajemnicze zjawiska, ktÛrych teoriÍ juø sobie darujemy, bowiem waøne jest dla nas przede wszystkim to, øe poniøej czÍstotliwoúci rezonansowej g³oúnik szybko traci zdolnoúÊ efektywnego przetwarzania (jego charakterystyka opada). Aby granica ta leøa³a jak najniøej, czÍstotliwoúÊ rezonansowa powinna byÊ jak najniøsza, a†wiÍc podatnoúÊ zawieszeÒ i†masa membrany g³oúnika powinny byÊ duøe. Dlatego teø nasza hipotetyczna 25milimetrowa kopu³ka, aby przetwarzaÊ niskie czÍstotliwoúci, powinna nie tylko pracowaÊ na duøych amplitudach, ale i†mieÊ nisk¹ czÍstotliwoúÊ rezonansow¹ - wielokrotnie wiÍksz¹, niø zwykle kopu³ki maj¹. St¹d teø widaÊ, dlaczego ma³e g³oúniki nie potrafi¹ przetwarzaÊ niskich czÍstotliwoúci maj¹ zarÛwno zbyt ma³e wychylenia amplitudowe (przypominam - powierzchnia membrany x†jej amplituda), jak i†zbyt wysokie czÍstotliwoúci rezonansowe (przypominam - jeden nad pierwiastek z†iloczynu masy i†podatnoúci jej zawieszeÒ). Opanowanie myúlowe tych zawi¹zkÛw otwiera drogÍ do rozumienia kolejnych zaleønoúci, dlatego warto w†to w³oøyÊ trochÍ wysi³ku. Rezonujemy dalej... Rozgryümy wiÍc tÍ sprawÍ do koÒca, a†bÍdziemy mieli j¹ z†g³owy. Naúwietlmy te zwi¹zki jeszcze inaczej. OtÛø czÍstotliwoúÊ rezonansowa g³oúnika wp³ynie jednoznacznie na jego charakterystykÍ przetwarzania, ale na charakterystyce tej nie ujrzymy moøliwoúci g³oúnika w†zakresie wychylenia objÍtoúciowego! Czy nie ma tu sprzecznoúci? Przecieø powiedziano, øe wychylenie objÍtoúciowe okreúla moøliwoúci pracy przy niskich czÍstotliwoúciach? Tak, ale badanie charakterystyki przetwarzania przeprowadza siÍ zwykle przy niskim poziomie sygna³u wejúciowego, ktÛry nie ujawnia, jak duø¹ moc g³oúnik jest zdolny przyj¹Ê. Moøna wiÍc zbudowaÊ ma³y g³oúnik niskotonowy (o niewielkiej powierzchni membrany i†niewielkiej dopuszczalnej amplitudzie), ktÛry dziÍki duøej masie membrany i†podatnoúci zawieszeÒ bÍdzie mia³ nisk¹ czÍstotliwoúÊ rezonansow¹, a†wskutek tego charakterystykÍ przetwarzania (mierzon¹ przy niskim sygnale steruj¹cym) siÍgaj¹c¹ najniøszych czÍstotliwoúci. Jednak juø moc nieco wiÍksza niø zawarta w†dotychczasowym sygnale steruj¹cym, ale w†sumie wcale nie taka duøa, powiedzmy kilka watÛw, spowoduje øe na g³oúniku wymuszane bÍd¹ amplitudy znacznie wiÍksze, niø jest on w†stanie bez przesterowania osi¹gaÊ. MÛwi¹c øargonem, jego uk³ad drgaj¹cy bÍdzie szybko ìwypluwanyî. Taki g³oúnik specjalnie nam siÍ nie przyda, sama niska czÍstotliwoúÊ rezonansowa i†³adna charakterystyka przetwarzania Podzielona na dwie płytki skomplikowana zwrotnica układu pięciodrożnego nie daj¹ gwarancji rzeczywiúcie skutecznej pracy w†zakresie niskich czÍstotliwoúci. Wyobraümy sobie przyk³ad odwrotny - g³oúnik o†duøej powierzchni membrany i†duøej amplitudzie maksymalnej, ktÛremu konstruktor ustali³ jednak, np. za pomoc¹ sztywnego zawieszenia (ma³a podatnoúÊ), wysok¹ czÍstotliwoúÊ rezonansow¹. Charakterystyka przetwarzania takiego g³oúnika wykaøe wiÍc wczesny spadek w†zakresie niskich tonÛw, a†dostarczanie do niego nawet duøej mocy w†zakresie niskich tonÛw nie doprowadzi do duøych wychyleÒ i†wykorzystania jego moøliwoúci amplitudowych - g³oúnik bowiem jest zbyt mocno ìtrzymanyî przez zawieszenie. Dlatego przy konstruowaniu i†wybieraniu g³oúnika niskotonowego czy nisko-úredniotonowego, naleøy uchwyciÊ w³aúciwe proporcje miÍdzy czÍstotliwoúci¹ rezonansow¹ a†wychyleniem objÍtoúciowym. Gdzieú dalej zajmiemy siÍ tym, øe okreúlaj¹c czÍstotliwoúÊ rezonansow¹ trzeba umiejÍtnie dobraÊ masÍ i†podatnoúÊ, a†okreúlaj¹c wychylenie objÍtoúciowe - powierzchniÍ i†amplitudÍ. Dlaczego niskotonowy nie moøe byÊ wysokotonowym? Dlaczego ma³y g³oúnik, o†ma³ej masie membrany, ma³ej jej powierzchni i†wychyleniu, nie jest zdolny przetwarzaÊ niskich czÍstotliwoúci - juø wiemy. Dlatego teø g³oúniki szerokopasmowe bardziej przypominaj¹ g³oúniki niskotonowe i†nisko-úredniotonowe, niø wysokotonowe kopu³ki. Dlaczego jednak duøy czy choÊby úredniej wielkoúci g³oúnik nie jest w†stanie prze- 77 K U R S Głośnik wysokotonowy cieszy się z tego, że ma membraną małą i lekką. I w dodatku nie musi ona pracować przy dużych wychyleniach twarzaÊ czÍstotliwoúci wysokich? Tym razem zwi¹zek miÍdzy úrednic¹ membrany a†d³ugoúci¹ promieniowanych fal jest juø wyraüny, ale nadal ma znaczenie rÛwnieø masa membrany. Powyøej czÍstotliwoúci rezonansowej uk³ad drgaj¹cy jest uk³adem bezw³adnoúciowym, wiÍc masa membrany ogranicza prÍdkoúÊ jej ruchu wraz ze wzrostem czÍstotliwoúci. Utrzymanie w†miarÍ p³askiej charakterystyki przetwarzania w†szerokim zakresie powyøej czÍstotliwoúci rezonansowej zawdziÍczamy jednak poprawiaj¹cej siÍ relacji miÍdzy úrednic¹ membrany a†d³ugoúci¹ promieniowanych przez ni¹ fal (poprawia siÍ tzw. rezystancja promieniowania). Kiedy d³ugoúÊ fali (rozchodz¹cej siÍ w†powietrzu) przestaje byÊ wyraünie wiÍksza od úrednicy membrany, zwiÍksza siÍ efektywnoúÊ. Ale ze zjawiska tego moøemy korzystaÊ tylko do pewnego momentu, a†ponadto, kiedy d³ugoúÊ fali (rozchodz¹cej siÍ w†membranie) staje si͆tak ma³a, øe zbliøa siÍ do jej úrednicy, zaczynaj¹ siÍ nowe k³opoty. Przetwarzaj¹c fale d³uøsze, membrana zachowuje siÍ jak sztywny t³ok, lub bardzo podobnie. Oznacza to, øe ca³a†jej powierzchnia pracuje w†tej samej fazie, a†poniewaø fale (w powietrzu) s¹ wyraünie d³uøsze niø rÛønice odleg³oúci od poszczegÛlnych czÍúci membrany (o kszta³cie nawet bardzo g³Íbokiego stoøka), st¹d ciúnienie przed membran¹ jest stabilne w†funkcji czÍstotliwoúci. Dla krÛtkich fal nastÍpuj¹ komplikacje wynikaj¹ce z†dwÛch podstawowych powodÛw. Z†samej stoøkowej geometrii membrany wynika, øe†nawet gdyby wszystkie jej fragmenty porusza³y siÍ w†sposÛb skoordynowany, to rÛønice w†odleg³oúciach od poszczegÛlnych czÍúci membrany do punktu oddalonego od g³oúnika, bÍd¹ powodowa³y ich przesuniÍcia w†fazie i†zaburzenia charakterystyki wypadkowej. Na dodatek membrana przestaje pracowaÊ jak sztywny t³ok. Fale rozchodz¹ce siÍ w†niej zaczynaj¹ j¹ wyginaÊ, co nazywa siÍ zjawiskiem ìdzieleniaî membrany. S¹†to zjawiska niezwykle skomplikowane, zaleøne od prÍdkoúci roz- 78 chodzenia siÍ fal w†membranie (im wyøsza, tym lepiej, bowiem wtedy fale okreúlonej czÍstotliwoúci s¹ d³uøsze i†ich relacja do úrednicy membrany siÍ poprawia), jej sztywnoúci (zwykle idzie w†parze z†wysok¹ prÍdkoúci¹ rozchodzenia siÍ fali, ponadto do pewnego momentu to czynnik sprzyjaj¹cy utrzymaniu pracy wedle zasady ìsztywnego t³okaî, ale powyøej powoduj¹cy gwa³towne zjawiska rezonansowe), i†wreszcie od t³umienia wewnÍtrznego (wprowadza ono t³umienie tych rezonansÛw, ale trudno membranÍ o†wysokim t³umieniu uczyniÊ sztywn¹). Dzielenie siÍ membrany powoduje, øe†rÛøne jej fragmenty pracuj¹ z†rÛønymi fazami, i†w†po³¹czeniu z†przedstawionymi problemami ìgeometrycznymiî powoduje to, øe charakterystyka staje siÍ mniej lub bardziej poszarpana. Gdy jeszcze przywo³amy problem masy, powoduj¹cy spadek zdolnoúci przetwarzania, charakterystyka ostatecznie opada i†to w†sposÛb zwykle daleki od spokojnego zbocza 6†dB/okt. A†i†to jeszcze nie wszystko. Wraz ze wzrostem czÍstotliwoúci, g³oúnik zaczyna skupiaÊ promieniowanie na osi g³Ûwnej... Co z†tego wynika dla projektowania zwrotnic, zostawimy juø na kiedy indziej. Teraz wychodzimy z†tego g¹szczu problemÛw upewnieni, øe g³oúnik zaprojektowany jako niskotonowy czy nisko-úredniotonowy, nie jest w†stanie przetwarzaÊ czÍstotliwoúci wysokich, i†to z†wielu powodÛw. G³oúnik wysokotonowy nie tylko bowiem moøe, ale i†powinien mieÊ membranÍ o†ma³ej úrednicy i†jak najmniejszej masie. Membrana siÍ nie rozdwoi Na d³uøej zajÍliúmy siÍ g³oúnikami, a†przecieø w†tym odcinku mamy jeszcze choÊby skrÛtowo przedstawiÊ rolÍ, jak¹ odgrywa obudowa. KoniecznoúÊ jej stosowania, wielkoúÊ, proporcje, budowÍ wewnÍtrzn¹, okreúlaj¹ przede wszystkim wymagania g³oúnika przetwarzaj¹cego niskie czÍstotliwoúci a†wiÍc niskotonowego lub nisko-úredniotonowego. G³oúnika maj¹cego przetwarzaÊ niskie tony nie moøna pozostawiÊ bez obudowy, bowiem... nie bÍdzie przetwarza³ niskich tonÛw. Przednia i†tylna strona membrany g³oúnika dynamicznego pracuj¹ w†przeciwnych fazach - kiedy patrz¹c z†przodu g³oúnika, membrana wykonuje ruch do przodu, sprÍøaj¹c powietrze, to patrz¹c od ty³u, cofa siÍ, rozprÍøaj¹c je. Fale niskich czÍstotliwoúci maj¹ znaczn¹ d³ugoúÊ, wiÍc gdyby g³oúnik znajdowa³ siÍ w†duøej odgrodzie, powstaj¹ce strefy sprÍøania i†rozprÍøania rozpoúciera³yby siÍ na duøym obszarze odpowiednio przed i†za g³oúnikiem. Bez odgrody, ciúnienie sprzed g³oúnika ìucieknieî do ty³u, gdzie by³o podciúnienie, a†przy przeciwnym ruchu membrany nast¹pi zjawisko odwrotne. Nast¹pi efekt ìzwarcia akustycznegoî i†ca³y czas wokÛ³ g³oúnika ciúnienie bÍdzie W dobrze skonstruowanym głośniku niskotonowym niska częstotliwość rezonansowa powinna iść w parze z dużym wychyleniem objętościowym. Tylko wówczas charakterystyka przetwarzania będzie sięgała niskich częstotliwości, i głośnik będzie je w stanie odtwarzać przy wysokich poziomach natężenia bliskie zeru. Dopiero przy czÍstotliwoúciach, ktÛrych fale maj¹ d³ugoúÊ porÛwnywaln¹ ze úrednic¹ membrany, chociaø ciúnienia na osiach g³Ûwnych przed i†za g³oúnikiem zawsze bÍd¹ pozostawaÊ w†przeciwnych fazach, to juø ìobieganieî fali dooko³a g³oúnika spowoduje jej przesuniÍcia w†fazie, i†interferencjÍ z†fal¹ promieniowan¹ przez przeciwn¹ stronÍ membrany w†sposÛb mog¹cy dawaÊ niezerowe ciúnienie wypadkowe. Dlatego teø z†g³oúnika niezabudowanego s³yszymy úrednie tony, a†nie s³yszymy basu. Aby us³yszeÊ bas, trzeba zlikwidowaÊ fazow¹ kolizjÍ miÍdzy prac¹ przedniej i†tylnej strony membrany. Oczywiúcie nie da siÍ tego zrobiÊ øadnymi elektronicznymi sztuczkami - przednia i†tylna strona s¹ stronami tej samej membrany, ktÛra siÍ przecieø nie rozdwoi. Odizolowanie przedniej i†tylnej strony membrany w†teoretycznych rozwaøaniach przeprowadza siÍ za pomoc¹ nieskoÒczenie wielkiej odgrody. Z†tak¹ ide¹ ma coú wspÛlnego obudowa typu linia transmisyjna, a†z†koncepcj¹ skoÒczonej odgrody obudowa typu dipol (otwarta), ale w†praktyce spotykamy najczÍúciej obudowy bass-reflex, i†znacznie rzadziej zamkniÍte. Teoria bass-reflexu jest doúÊ skomplikowana, teraz w†jednym zdaniu powiemy, øe zasada jej dzia³ania polega na wywo³aniu w†obudowie zjawisk rezonansowych, ktÛre powoduj¹ moøliwoúÊ wypromieniowania czÍúci energii produkowanej przez tyln¹ stronÍ membrany w†fazie zgodnej z†prac¹ przedniej strony membrany (i bez obaw, membrana siÍ nie rozdwoi). Natomiast obudowa zamkniÍta jest czymú znacznie prostszym, a†jej funkcjonowanie polega na zamkniÍciu i†wyt³umieniu ca³ej energii promieniowanej przez tyln¹ stronÍ membrany. Jeøeli jednak ktoú myúli, øe stwierdzenie ìznacznie prostszymî oznacza, øe prostym, juø za miesi¹c przekona siÍ, øe tak nie jest. Andrzej Kisiel Elektronika Praktyczna 12/2003 P R O G R A M Y Konstruowanie nowoczesnych urz¹dzeÒ elektronicznych coraz czÍúciej zmusza projektanta do stosowania wielu rÛønych technik projektowania i†metod implementacji uk³adu. Tam, gdzie nie wystarczaj¹ typowe obwody drukowane obsadzone tradycyjnymi podzespo³ami, pojawiaj¹ siÍ programowalne uk³ady logiczne. Sprawne projektowanie tak z³oøonych uk³adÛw wymaga pos³ugiwania siÍ nowoczesnymi narzÍdziami, ktÛre oferuj¹ wiele technik opisu, analizy oraz implementacji projektu. Takie kryteria spe³nia system nVisage DXP firmy Altium. Wielowymiarowy system projektowy firmy Altium Dlaczego DXP to system wielowymiarowy? Pocz¹wszy od edytora schematÛw, ktÛry pozwala na projektowaProgram nVisage DXP trudno zanie hierarchiczne oraz wielokana³oklasyfikowaÊ jednoznacznie, poniewe, poprzez zintegrowany symulawaø ³¹czy w†sobie kilka narzÍdzi tor Spice 3f5/XSpice (rys. 1), aø pomocnych przy realizacji kolejpo narzÍdzia do analizy sygna³owej nych etapÛw projektu, zarÛwno obwodu, mamy do dyspozycji komprzy projektowaniu pod k¹tem impletny zestaw pozwalaj¹cy na przyplementacji na PCB, jak gotowanie projektu pod k¹tem imi†w†uk³adach FPGA. Lansowane plementacji na p³ycie drukowanej. przez producenta okreúlenie system Wspomniane narzÍdzia do analizy, wielowymiarowy wywodzi siÍ ³atwe w†uøyciu dziÍki integracji z†mnogoúci narzÍdzi oraz moøliwoúz†edytorem schematÛw, pozwaci ich zastosowania i†oddaje najlelaj¹†na wczesne wykrycie i†wyelipiej charakter systemu nVisage. minowanie wiÍkszoúci problemÛw, jeszcze przed przyst¹pieniem do projektowania PCB. Kolejny wymiar, w†ktÛrym nVisage pokazuje swÛj potencja³, to projektowanie programowalnych uk³adÛw logicznych FPGA. Program oferuje kompletny zestaw narzÍdzi potrzebnych do tego rozadaÒ, Rys. 1. Zintegrowane w DXP narzędzia symulacyjne dzaju umożliwiają wszechstronną analizę projektu Elektronika Praktyczna 12/2003 w³¹cznie z†symulacj¹ i†syntez¹†kodu VHDL. Projekt uk³adu logicznego moøemy przygotowaÊ pos³uguj¹c siÍ edytorem schematÛw oraz gotowymi elementami logicznymi dostarczonymi w†bibliotekach, jak i†w†formie kodu w†jÍzyku VHDL. Obie techniki moøna stosowaÊ ³¹cznie. Mamy do dyspozycji kompilator oraz symulator VHDL, ktÛre pozwalaj¹ na przetestowanie uk³adu. Natomiast wbudowane na- 71 P R O G R A M Y Rys. 2. Cechą charakterystyczną środowiska DXP jest doskonała integracja wszystkich narzędzi projektowych rzÍdzia do syntezy obs³uguj¹ wszystkie popularne rodziny uk³adÛw FPGA, daj¹c moøliwoúÊ implementacji projektu w†wybranym uk³adzie np. firmy Xilinx lub Altera. Jak na produkt firmy Altium przysta³o, ca³oúÊ jest doskonale zintegrowana za spraw¹ úrodowiska Design Explorer (DXP), znanego z†programu Protel DXP. SpÛjnoúÊ tak wielu rÛønorodnych narzÍdzi nabiera szczegÛlnego znaczenia przy projektowaniu z³oøonych uk³adÛw, gdzie wystÍpuj¹ rÛwnoczeúnie tradycyjne elementy na PCB i†uk³ady logiczne implementowane w†strukturach FPGA (rys. 2). nVisage jest pozbawiony edytora PCB oraz wszystkich narzÍdzi zwi¹zanych z†projektowaniem i†dalsz¹ obrÛbk¹ obwodu drukowanego, natomiast wspÛ³pracuje doskonale z†wieloma programami do projektowania PCB. Ze wzglÍdu na identyczny format plikÛw oraz integracjÍ przez úrodowisko DXP, jego naturalnym uzupe³nieniem, w†zakresie projektowania druku, jest Protel DXP. Niemniej jednak, dziÍki rozbudowanym moøliwoúciom eksportu/importu, nVisage doskonale wspÛ³pracuje rÛwnieø z†innymi narzÍdziami, jak np. OrCAD czy PCAD. Wymagania systemowe Prezentowany program jest bardzo rozbudowany, wiÍc do komfortowej pracy wymaga sprzÍtu o†duøej wydajnoúci. Podstawowy wymÛg to system operacyjny Win- Rys. 3. Schematy dla obwodów PCB można łączyć z projektami dla FPGA zapisanymi zaró− wno w formie schematów, jak i kodu VHDL 72 Rys. 4. nVisage zawiera pełnowartościowe śro− dowisko programistyczne wspierające kodowanie w języku VHDL dows 2000 lub XP. nVisage DXP nie zainstaluje siÍ na øadnym ze starszych systemÛw: Windows 9x, Millenium czy NT4. Minimum okreúlone przez producenta to komputer wyposaøony w†system Windows 2000 Professional, procesor Pentium 500 MHz, 128 MB RAM, 620 MB wolnej przestrzeni dyskowej oraz grafika o†rozdzielczoúci 1024x768 z†16-bitowym kolorem. Natomiast konfiguracja zalecana powinna zawieraÊ Windows XP (Home lub Professional), procesor Pentium 1,2 GHz lub szybszy, 512 MB RAM, 620 MB przestrzeni na dysku oraz grafikÍ o†rozdzielczoúci 1280x1024 z†32-bitowym kolorem. Warto wspomnieÊ, øe úrodowisko DXP obs³uguje konfiguracje z†dwo- Rys. 5. Pracując z projektami FPGA, możemy dowolnie “mieszać” schematy z kodem źródło− wym VHDL, mając pełną swobodę wyboru optymalnej metody projektowania Elektronika Praktyczna 12/2003 P R O G R A M Y Rys. 6. nVisage obsługuje projekty wielokana− łowe, zachowując hierarchię kanałów podczas całego procesu projektowego ma monitorami, co moøe byÊ wygodnym rozwi¹zaniem podczas pracy nad obszernymi projektami. PCB i†FPGA razem nVisage DXP pozwala ³¹czyÊ kilka metod projektowania. Moøemy mieszaÊ klasyczne schematy ideowe obwodÛw, projekty FPGA w†formie schematÛw uk³adÛw logicznych oraz kod w†jÍzykach opisu sprzÍtu VHDL i†CUPL (rys. 3). Takie moøliwoúci ³¹czenia ze sob¹ w†jednym projekcie rÛønych technik czyni nVisage doskona³ym punktem wyjúcia zarÛwno dla projektÛw PCB, jak i†FPGA. Projekty przeznaczone pod PCB oraz projekty FPGA moøemy ³¹czyÊ we wspÛln¹ grupÍ projektow¹, daj¹c projektantowi ³atwy dostÍp do wszystkich plikÛw zwi¹zanych z†danym przedsiÍwziÍciem. nVisage jest dostarczany z†obszernym zestawem presyntezowanych makr i†bibliotek- Rys. 8. Edytor schematów nVisage potrafi importo− wać i eksportować pliki schematów oraz bibliotek w formacie OrCAD, czyniąc migrację do nVisage szybką i łatwą ami schematowymi komponentÛw logicznych dla wszystkich rodzin uk³adÛw FPGA firm Altera i†Xilinx. Na potrzeby kodowania w†jÍzyku VHDL mamy do dyspozycji edytor tekstowy, wyposaøony w†cechy specyficzne przy programowaniu, m.in. takie jak podúwietlanie sk³adni oraz automatyczne wstawianie wciÍÊ, ktÛre czyni¹ kod lepiej czytelnym (rys. 4). Mechanizmy nawigacyjne wbudowane w†nVisage u³atwiaj¹ poruszanie siÍ po projektach mieszanych, w†sk³ad ktÛrych wchodz¹ schematy oraz kod VHDL (rys. 5). Jeden panel nawigacyjny obs³uguje poruszanie siÍ po ca³ej hierarchii projektu oraz wyszukiwanie skroúne pomiÍdzy arkuszem schematu i†odpowiadaj¹cym mu kodem VHDL. Obs³uguj¹c wiele metod opisu projektu w†ramach jednej aplikacji, nVisage wnosi kolejny nowy wymiar w†proces projektowania. Prawdziwe schematy wielokana³owe årodowisko projektowe nVisage obs³uguje w†naturalny sposÛb projekty hierarchiczne o†dowolnym stopniu zagnieødøenia oraz dowolnej liczbie powtarzaj¹cych siÍ kana³Ûw (rys. 6). W†przeciwieÒstwie do prostych edytorÛw schematÛw, ktÛre sp³aszczaj¹ hierarchiÍ i†fizycznie powielaj¹ arkusze schematÛw, aby Rys. 7. Dzięki temu, że nVisage zachowuje uzyskaÊ wiele kana³Ûw, hierarchię kanałów, projekt może być edy− nVisage zachowuje hierarchiÍ projektu przez catowany łatwo i efektywnie 74 ³y czas. Co wiÍcej, nVisage obs³uguje hierarchiÍ zagnieødøon¹, ktÛra pozwala na tworzenie kana³Ûw wewn¹trz innych kana³Ûw. Poniewaø hierarchia projektu jest zachowana ca³y czas, moøemy w†dowolnej chwili dokonaÊ zmiany na schemacie, ktÛra jest automatycznie propagowana we wszystkich kana³ach, bez potrzeby rÍcznego kopiowania na wiele arkuszy (rys. 7). Podobnie w†kaødej chwili moøemy zmieniÊ liczbÍ kana³Ûw, a†program automatycznie zadba o†wygenerowanie odpowiedniej liczby instancji danego arkusza. W†projektach wielokana³owych automatyczne generowanie wielu instancji nastÍpuje podczas kompilacji projektu. Mamy pe³n¹ kontrolÍ nad stylem oznaczeÒ elementÛw, ktÛry identyfikuje przynaleønoúÊ do kana³u, jak rÛwnieø†nad sposobem powi¹zania portÛw wyjúciowych poszczegÛlnych kana³Ûw. Edytor schematÛw programu nVisage wyposaøono w†mechanizmy translacji, ktÛre pozwalaj¹ na import oraz eksport z†programu Orcad (rys. 8), zarÛwno schematÛw, jak i†plikÛw bibliotek, daj¹c moøliwoúÊ szybkiej i†³atwej migracji do nVisage. Grzegorz Witek, Evatronix Za miesi¹c opiszemy narzÍdzia do analizy i†weryfikacji projektu jakie daje do dyspozycji nVisage, przedstawimy aspekty wspÛ³pracy z†programami do PCB oraz narzÍdziami do implementacji FPGA oraz moøliwoúci konfiguracji úrodowiska, a†takøe zastosowania programu. Elektronika Praktyczna 12/2003 P O D Z E S P O Ł Y Nie bÍdzie wielk¹ przesad¹ stwierdzenie, øe Lattice jest twÛrc¹ reprogramowalnych uk³adÛw PLD. Nie bÍdzie takøe przesad¹ stwierdzenie, øe firma ta przespa³a swÛj najlepszy czas. Ostatnie kilkanaúcie miesiÍcy jej dzia³ania daje jedna nadziejÍ, øe juø wkrÛtce bÍdzie mog³a podj¹Ê rÛwnorzÍdn¹ walkÍ o†rynek uk³adÛw PLD z†jego tuzami - firmami Altera i†Xilinx. Nowoœci Lattice'a Jeszcze kilka lat temu producenci uk³adÛw programowalnych mieli mocno spolaryzowane oferty. Xilinx i†Lucent specjalizowali siÍ w†uk³adach FPGA, Altera i†Intel skupiali siÍ na uk³adach CPLD, a†Lattice, Cypress, AMD, ICT, Texas Instruments, SGS Thomson (obecnie STM), National Semiconductors i†Philips rozwijali rodziny uk³adÛw SPLD, FPLA i†pochodne. Po szeregu mniej lub bardziej spektakularnych sprzedaøy firm lub ich dzia³Ûw, na rynku ustabilizowa³a siÍ obecna sytuacja: najwiÍksi producenci (w porz¹dku alfabetycznym: Altera, Xilinx, Lattice) maj¹ w†swoich ofertach no- woczesne uk³ady ze wszystkich grup: SPLD, CPLD i†FPGA, pozosta³e firmy specjalizuj¹ siÍ w†w¹skich rynkowych ìniszachî. Miejsce Lattice'a PodjÍte przez Lattice'a†prÛby wprowadzenia do sprzedaøy w³asnych uk³adÛw CPLD nie zakoÒczy³y siÍ sukcesem. O†uk³adach z†rodzin ispLSI/LSI1000, ispLSI/ LSI2000, ispLSI/LSI3000 nikt juø praktycznie†nie pamiÍta, a†pierwszy na rynku interfejs ISP - opracowany przez Lattice'a†specjalnie dla uk³adÛw PLD - LatticeISP z†ìprzyzwyczajeniaî jest stosowany wy³¹cznie w†uk³adach ispGAL22V10. Sytuacja uleg³a znacznej poprawie po kupieniu przez Lattice'a†firmy Vantis (ex-AMD), ktÛra produkowa³a dobrze przyjÍte na rynku uk³ady CPLD z†serii MACH. W†ten sposÛb Lattice uzupe³ni³ swoj¹ ofertÍ o†popularne uk³ady CPLD, ktÛre s¹ konsekwentnie rozwijane i†obecnie naleø¹ do rynkowej ekstraklasy. W†podobny sposÛb Lattice rozwi¹za³ problem uk³adÛw FPGA w†swojej ofercie - zakupiono bowiem jeden z†dzia³Ûw firmy Lucent, w†ktÛrym opracowano i†produkowano uk³ady FPGA z†serii ORCA. Nowoúci w†CPLD Lattice wybra³ interesuj¹c¹ drogÍ rozwoju ìwiÍkszychî uk³adÛw CPLD, ktÛra jest w†znacznym stopniu zbieøna z†dzia³aniami pro- SPLD/CPLD/FPGA Rys. 1 68 Za pomocą tych akronimów są nazywane trzy najważniej− sze pośród obecnie produkowanych grupy układów programowalnych: − SPLD (Simple Program− mable Logic Devices) − układy PLD o niewielkiej złożoności o architekturze pochodnej PAL, − CPLD (Complex Programmable Logic Devices) − układy PLD o średniej i dużej złożoności o architekturze pochodnej PAL, − FPGA (Field Programmab− le Logic Devices) − układy PLD o dużej i średniej złożoności o architekturze opartej na matrycach makrokomórek. Elektronika Praktyczna 12/2003 P O D Z E S P O Ł Y P O D Z E S P O Ł Y Tab. 1. Zestawienie układów CPLD produkowanych przez firmę Lattice (nie uwzględniono wersji stopniowo wycofywanych z produkcji − Mature) Uk³ady zasilane napiêciem 1,8 V Rodzina Liczba tPD Fmax makrokomórek [ns] [MHz] Liczba Liczba Pojemnoœæ Liczba I/O wejœæ LB wbudowanej wbudowanych pamiêci [kb] PLL ispXPLD 5000MC 256...1024 3,5 300 141...381 68 64...512 2 ispMACH 4000C 32...512 2,5 400 30...208 36 ispMACH 4000Z 32...256 3,5 267 32...128 36 Uk³ady zasilane napiêciem 2,5 V Rodzina Liczba tPD Fmax Liczba Liczba Pojemnoœæ Liczba makrokomórek [ns] [MHz] I/O wejœæ LB wbudowanej wbudowanych pamiêci [kb] PLL ispXPLD 5000MB 256...1024 3,5 300 141...381 68 64...512 2 ispMACH 5000B 128...512 3,5 275 92...256 68 ispMACH 4000B 32...512 2,5 400 30...208 36 Uk³ady zasilane napiêciem 3,3 V Rodzina Liczba tPD Fmax Liczba Liczba Pojemnoœæ Liczba makrokomórek [ns] [MHz] I/O wejœæ LB wbudowanej wbudowanych pamiêci [kb] PLL ispXPLD 5000MV 256...1024 3,5 300 ispMACH 4000V 32...512 2,5 400 ispMACH 5000VG 768...1024 5 178 ispLSI 5000VE 128...512 5 180 ispMACH 4A3 32...512 5 182 Uk³ady zasilane napiêciem 5,0 V Rodzina Liczba tPD Fmax makrokomórek [ns] [MHz] 141...381 68 30...208 36 196...384 68 72...256 68 32...256 33...36 ispMACH 4A5 32...128 32...256 5 182 ducentÛw uk³adÛw FPGA: jako jeden z†niewielu producentÛw, Lattice wyposaøa†nowsze wersje uk³adÛw CPLD w†bloki konfigurowalnych pamiÍci, dziÍki czemu w†efektywny sposÛb moøna w†tych uk³adach implementowaÊ jedno- i†dwuportowe pamiÍci RAM, pamiÍci FIFO, CAM oraz ROM (rys. 1). Takie rozwi¹zania s¹ rzadko oferowane przez innych producentÛw w†tej grupie uk³adÛw. Podobnie, bardzo rzadko s¹ spotykane w†uk³adach CPLD wewnÍtrzne pÍtle PLL s³uø¹ce do lokalnego wytwarzania sygna³Ûw zegarowych, a†jak widaÊ w†zestawieniu (tab. 1) Lattice wyposaøa w†ten sposÛb najwiÍksze produkowane przez siebie uk³ady. WiÍkszoúÊ uk³adÛw CPLD produkowanych przez Xilinxa wypo- 64...512 - 2 2 - Liczba Liczba Pojemnoœæ Liczba I/O wejœæ LB wbudowanej wbudowanych pamiêci [kb] PLL 33...36 - - saøono w†interfejs JTAG (IEEE1149.1) umoøliwiaj¹cy programowanie ISP. Uk³ady z†rodziny ispXPLD s¹ kompatybilne z†nowymi zaleceniami zwartymi w†normie IEEE1532. Zastosowano w†nich takøe nieco inny sposÛb przechowywania danych konfiguracyjnych niø w†uk³adach starszych generacji: s¹ one lokowane nieulotnej pamiÍci EEPROM i†po w³¹czeniu napiÍcia zasilaj¹cego s¹ automatycznie kopiowane do pamiÍci SRAM (trwa to nie d³uøej niø 200 µs), ktÛra jest pamiÍci¹ konfiguruj¹c¹ uk³ad. ZawartoúʆpamiÍci konfiguracji†SRAM moøna modyfikowaÊ poprzez interfejs szeregowy JTAG lub port rÛwnoleg³y sysCONFIG, ktÛry moøe byÊ taktowany sygna³em zegarowym o†czÍstotliwoúci do 33 MHz. DziÍki zasto- Bezpłatne narzędzia CAD/EDA dla PLD Lattice bezpłatnie udostępnia oprogramowanie narzędziowe do realizacji projektów na układach przez siebie oferowanych. System ispLever jest dostępny bezpłatnie na stronie www.latticesemi.com. Przed ściągnięciem konieczna jest wyłącznie rejestracja, na podstawie której otrzymuje się plik licencyjny. Elektronika Praktyczna 12/2003 69 P O D Z E S P O Ł Y Pamięci CAM CAM − Content Adressable Memory − jest to pamięć adresowana zawartością. Pamięci tego typu są często wykorzystywane w systemach zarządzania ruchem pakietów danych w sieciach informatycznych. sowanym w†rozwi¹zaniom, uk³ady ispXPLD mog¹ byÊ rekonfigurowane nieskoÒczon¹ liczbÍ razy (np. podczas prac uruchomieniowych) - w†takich przypadkach informacje o†konfiguracji s¹ wpisywane wy³¹cznie do pamiÍci SRAM, co pozwala przed³uøyÊ czas øycia pamiÍci nieulotnej, ktÛra moøe byÊ kasowana i†zapisywana do 1000 razy. Ostatni¹ nowoúci¹, na ktÛr¹ warto zwrÛciÊ uwagÍ w†grupie uk³adÛw CPLD firmy Lattice s¹ uk³ady ispMACH4000Z, ktÛre charakteryzuj¹ siÍ bardzo ma³ym poborem mocy (w stanie statycznym pobieraj¹ pr¹d o†natÍøeniu zaledwie 10 µA) i†jednoczeúnie duø¹ szybkoúci¹ dzia³ania (czas propagacji pin-pin nie przekracza 5†ns w†najwiÍkszym dostÍpnym uk³adzie z†256 makrokomÛrkami). Podsumowanie Lattice wyraünie nadrabia straty, a†nowoúci wprowadzone do oferty (przedstawione w†artykule nie s¹ jedynymi) s¹ - moim zdaniem dobrze ukierunkowane. Naleøy†mieÊ nadziejÍ, øe te zabiegi nie zostan¹ zniweczone przez restrykcyjn¹ politykÍ dystrybucyjn¹, ktÛra ma³ych klientÛw (takich jest w†Polsce wiÍkszoúÊ) stawia³a nie zawsze w†dobrej sytuacji - dotyczy to g³Ûwnie moøliwoúci zakupu poø¹danych wersji uk³adÛw w†iloúciach adekwatnych do potrzeb (czytaj: niewielkich). ZachÍcam do sprawdzenia! Piotr Zbysiñski, EP [email protected] Za miesi¹c przedstawimy zestaw ewaluacyjny dla uk³adÛw ispXPLD5000, opracowany i†dystrybuowany przez firmÍ WBC. 70 Elektronika Praktyczna 12/2003 S P R Z Ę T Programator uniwersalny UprogHS 48 Portable jest najnowszym opracowaniem firmy RKSystem. Moøna powiedzieÊ, øe pod wieloma wzglÍdami jest to urz¹dzenie unikalne w†swojej klasie. Szereg interesuj¹cych rozwi¹zaÒ oraz zupe³nie nowe moøliwoúci oferowane przez prezentowany programator zainteresuj¹ na pewno wielu CzytelnikÛw. Programator UprogHS 48 Portable Uniwersalny programator uk³adÛw scalonych postrzegany jest jako urz¹dzenie nierozerwalnie zwi¹zane z†komputerem. Pogl¹d taki wynika z†przyzwyczajenia: zdecydowana wiÍkszoúÊ programatorÛw dostÍpnych na rynku dzia³a†jak przystawka do³¹czona do komputera, sterowana za pomoc¹ odpowiedniego oprogramowania. Takie rozwi¹zanie, choÊ najbardziej rozpowszechnione, niesie ze sob¹ koniecznoúÊ ci¹g³ej ìobecnoúciî komputera†podczas pracy z†programatorem, bez niego bowiem programator jest w³aúciwie bezuøyteczny. Dyskomfort odczuwaj¹ najbardziej ci uøytkownicy, ktÛrzy czÍsto pracuj¹ w†terenie, zajmuj¹c siÍ np. serwisem urz¹dzeÒ. Najlepszym wyjúciem jest oczywiúcie zakup komputera przenoúnego, jednak sumaryczny koszt takiego rozwi¹zania jest stosunkowo wysoki. Rozwi¹zaniem problemu mobilnoúci programatora jest UprogHS 48 Portable - najnowszy model programatora opracowany przez firmÍ RK-System. Ma on kilka cech, ktÛre w†istotny sposÛb odrÛøniaj¹ to urz¹dzenie od pozosta³ych modeli programatorÛw rodziny Uprog. Jednym z†atutÛw nowego programatora jest wbudowany interfejs USB. Liczba dostÍpnych na rynku modeli programatorÛw uniwersalnych wykorzystuj¹cych ten interfejs jest ci¹gle niewielka. Drugim atutem nowego programatora jest moøliwoúÊ pracy samodzielnej, bez koniecznoúci wspÛ³pracy z†komputerem. Niewielkie wymiary programatora Elektronika Praktyczna 12/2003 21x12x3,5 cm oraz niewielka waga u³atwiaj¹ jego przenoszenie, a†opcjonalne wyposaøenie dodatkowe, w†postaci estetycznej torby oraz baterii zapewniaj¹cej ìterenoweî ürÛd³o energii, dodatkowo poprawia mobilnoúÊ. Jeúli chodzi o†wygl¹d zewnÍtrzny, to UprogHS 48 Portable odbiega nieco od pozosta³ych programatorÛw rodziny Uprog. W†odrÛønieniu od nich nowy model wyposaøony jest bowiem w†wyúwietlacz LCD (2x16) oraz klawiaturÍ membranow¹, ktÛre - oprÛcz podstawki ZIF48 - znajduj¹ siÍ na p³ycie czo³owej urz¹dzenia. Dodatki te umoøliwiaj¹ uøytkownikowi komunikacjÍ z†programatorem pe³ni¹c rolÍ interfejsu podczas pracy w†trybie standalone. RolÍ pamiÍci masowej, na ktÛrym przechowujemy dane w†tym trybie, pe³ni karta typu Smartmedia z†pamiÍci¹ o†pojemnoúci 16 MB lub wiÍkszej. Z³¹cze w†ktÛre wsuwamy kartÍ, port USB oraz gniazdo zasilacza znajduj¹ siÍ w†tylnej czÍúci programatora (fot. 1). Tak jak w†przypadku pozosta³ych modeli rodziny Uprog, konstrukcja UprogHS 48 Portable oparta jest o†uk³ad typu FPGA (Field Programmable Gate Array) firmy Xilinx, ktÛrego pracÍ wspomaga dodatkowy procesor. Zaawansowane rozwi¹zania czÍúci sprzÍtowej programatora pozwoli³y na uzyskanie znakomitych czasÛw programowania. Poniewaø uk³ady typu FPGA pozwalaj¹ na rekonfiguracjÍ swojej struktury, j¹dro procesora steruj¹cego programatorem oraz jego peryferia poddawane s¹ dynamicznej modyfikacji w†trakcie pracy urz¹dzenia i†dopasowywane automatycznie w†zaleønoúci od potrzeb aktualnie programowanego uk³adu. Moøna wiÍc powiedzieÊ, øe hardware jest automatycznie optymalizowany i†zmieniany w†celu maksymalnego dopasowania do wybranego w†danej chwili uk³adu. Konstrukcja czÍúci sprzÍtowej UprogHS 48 Portable zapewnia wspÛ³pracÍ z†dowolnym rozk³adem wyprowadzeÒ zasilania i†danych, a†co za tym idzie dodawanie kolejnych uk³adÛw do Fot. 1 63 S P R Z Ę T Rys. 2 listy uk³adÛw obs³ugiwanych nie wymaga wprowadzania øadnych zmian w†sprzÍcie. Kaøde z†wyprowadzeÒ 48-stykowej podstawki ma w³asny sterownik, ktÛry w†zaleønoúci od potrzeb umoøliwia pod³¹czenie do dowolnej nÛøki uk³adu napiÍcia zasilaj¹cego, masy, napiÍcia programuj¹cego lub sygna³u†zegarowego. KoniecznoúÊ stosowania dodatkowych adapterÛw dla uk³adÛw w†obudowach DIP do 48 wyprowadzeÒ jest w†tym wypadku ca³kowicie wyeliminowana, a†dodanie kolejnego uk³adu do biblioteki uk³adÛw obs³ugiwanych odbywa siÍ wy³¹cznie na zasadzie aktualizacji oprogramowania. Biblioteka uk³adÛw obs³ugiwanych obejmuje wszystkie typy uk³adÛw tj. EPROM, EEPROM, Flash, GAL, PAL, PALCE, PLD, CPLD oraz szerok¹ gamÍ mikrokontrolerÛw rÛønych producentÛw. Urz¹dzenie pozwala na pracÍ z†uk³adami o†napiÍciu zasilania 5†V, jak rÛwnieø z†uk³adami niskonapiÍciowymi (3,3 V, 2,7 V, 1,8 V). Producent przewidzia³ dodatkowo moøliwoúÊ programowania uk³adÛw bezpoúrednio w†uk³adzie docelowym (interfejsy szeregowe JTAG, SPI, ICSP, BDM), bez koniecznoúci ich wylutowywania. W†celu usprawnienia komunikacji szeregowej sygna³y niezbÍdne do zaprogramowania uk³adu s¹ wyprowadzane z†podstawki programatora poprzez tzw. serial programming adapter, ktÛry stanowi jeden z†elementÛw wyposaøenia opcjonalnego. OprÛcz moøliwoúci programowania in-circuit, walory uøytkowe programatora podnosi kilka innych opcji dodatkowych, ktÛre dla prezentowanego modelu bÍd¹ dostÍpne juø wkrÛtce. Naleø¹ do nich: uniwersalny tester uk³adÛw cyfrowych, symulator pamiÍci 8bitowych, symulator pamiÍci 16-bitowych oraz 16-kana³owy analizator stanÛw logicznych. OprÛcz typowych operacji zwi¹zanych z†programowaniem uk³adÛw†UprogHS 48 Portable bÍdzie wiÍc mÛg³ byÊ rÛwnieø wykorzystywany do innych celÛw zwi¹zanych z†uruchamianiem czy testowaniem uk³adÛw elektronicznych. Uni- 64 wersalny tester uk³adÛw cyfrowych to standardowa opcja dostÍpna w†przypadku wszystkich modeli uniwersalnych rodziny Uprog. DostÍpna ona bÍdzie rÛwnieø w†UprogHS 48 Portable. Wbudowany w†programator symulator pamiÍci 8-bitowych obs³uguje uk³ady pamiÍci o†pojemnoúci do 128 kB. Istnieje jednak moøliwoúÊ rozszerzenia pamiÍci wewnÍtrznej programatora do 512 kB. W†takiej konfiguracji bÍdzie moøna symulowaÊ pamiÍci 8-bitowe o†pojemnoúciach do 512 kB. Czas dostÍpu dla symulatora pamiÍci 8-bitowych to ok. 10 ns. W†przypadku pamiÍci 16-bitowych obs³ugiwane s¹ odpowiednio uk³ady o†pojemnoúciach do 64 kB lub 256 kB w†zaleønoúci od tego, ile RAM-u ma programator, a†czas dostÍpu wynosi ok. 70 ns. Sygna³y emuluj¹ce w†obu przypadkach wyprowadzane s¹ bezpoúrednio z†podstawki ZIF programatora i†przekazywane do uk³adu docelowego za pomoc¹ kabla zakoÒczonego sond¹ emulacyjn¹. Odpowiednie kable dostarczane s¹ w†zestawie. Kolejn¹ opcj¹, o†ktÛr¹ moøna rozbudowaÊ moøliwoúci i†zastosowania UprogHS 48 Portable jest funkcja szesnastokana³owego analizatora stanÛw†logicznych. Jest juø ona od d³uøszego czasu dostÍpna w†programatorach UprogHS 48 oraz UprogHS 84. Sygna³y zbierane z†testowanego urz¹dzenia przekazywane s¹ do programatora poprzez gniazdo ZIF za poúrednictwem odpowiedniej przejúciÛwki, ktÛra razem z†klipsami dostarczana jest przez producenta w†przypadku zakupienia opcji analizatora. Analizator stanÛw logicznych moøe pracowaÊ w†trybie 8lub 16-kana³owym. Maksymalna czÍstotliwoúÊ prÛbkowania wynosi odpowiednio 100 MHz w††trybie 8-kana³owym i†50 MHz, jeúli pomiar odbywa siÍ w†trybie 16-kana³owym. Oprogramowanie Oprogramowanie do³¹czone do UprogHS 48 Portable zapewnia obs³ugÍ programatora podczas pracy z†komputerem oraz umoøliwia odpowiednie przygotowanie urz¹dzenia do pracy w†trybie stand-alone. WspÛ³pracuje ono z†dowoln¹ wersj¹ Windows pocz¹wszy od Win 95 po Win XP. Podczas pracy z†komputerem sterowanie programatorem odbywa siÍ za pomoc¹ szeregu ikon i†przyciskÛw dostÍpnych w†obszarze g³Ûwnego okna programu (rys. 2) oraz komend ukrytych pod prawym klawiszem myszy. DostÍp†do grup ikon odpowiadaj¹cych za programowanie zaprojektowany jest w†postaci zak³adek, co sprawia, øe produkt jest wyj¹tkowo czytelny. Zak³adki PROGRAM, READ, ERASE zawieraj¹ ikony symbolizuj¹ce poszcze- gÛlne operacje sk³adaj¹ce siÍ na proces programowania, sczytania do bufora lub skasowania zawartoúci pamiÍci uk³adu. Aplikacja pozwala na samodzielne ustalenie, ktÛre z†operacji bÍd¹ wykonywane podczas danego procesu. W†ten sposÛb moøemy zadecydowaÊ, czy na przyk³ad po zaprogramowaniu danego uk³adu zostanie przeprowadzona weryfikacja jego zawartoúci itd. Koncepcja ta pozwala na zachowanie pe³nej kontroli nad programatorem. Uøytkownicy, ktÛrzy nie chc¹ korzystaÊ z†zak³adek zbiorczych, maj¹ do dyspozycji zak³adkÍ SINGLE, ktÛra zapewnia niezaleøny dostÍp do wszystkich operacji, jakie moøe wykonaʆprogramator na okreúlonym uk³adzie. PostÍp i†rezultat wykonywania kaødej z†operacji sygnalizowany jest odpowiednim komunikatem pojawiaj¹cym siÍ na pasku OPERATION STATUS oraz na wyúwietlaczu LCD urz¹dzenia. Aplikacja posiada wszystkie funkcje, w††jakie powinien byÊ wyposaøony profesjonalny programator uniwersalny oraz kilka funkcji dodatkowych, ktÛrych celem jest usprawnienie obs³ugi urz¹dzenia. Jednym z†usprawnieÒ jest na przyk³ad koncepcja ìlisty podrÍcznejî, na ktÛrej uøytkownik moøe zapamiÍtaÊ do dziesiÍciu najczÍúciej uøywanych uk³adÛw. Kaødy uk³ad znajduj¹cy siÍ na liúcie podrÍcznej ma przypisany w³asny bufor, ktÛry moøe byÊ wype³niony dowolnym zbiorem danych. Szybkie prze³¹czanie pomiÍdzy poszczegÛlnymi uk³adami znajduj¹cymi siÍ w†kolumnie uk³adÛw ìpodrÍcznychî wymaga jedynie klikniÍcia mysz¹ i†nie wymaga ci¹g³ego przeszukiwania biblioteki. WybÛr uk³adu z†biblioteki uk³adÛw dostÍpnych u³atwia filtr selekcji (rys. 3). Filtr ten pozwala na filtrowanie bazy pod k¹tem typu uk³adu, jego producenta, umoøliwia takøe odszukanie uk³adu na podstawie fragmentu nazwy. Oprogramowanie steruj¹ce programatorem akceptuje wszystkie popularne formaty tj. hex, bin, jed, jam, svf, rom, txt. Kod, ktÛrym chcemy zaprogramowaÊ okreúlony uk³ad (lub kod odczytany z†uk³adu), prezentowany jest w†ob- Rys. 3 Elektronika Praktyczna 12/2003 S P R Z Ę T S P R Z Ę T wany jest odpowiednim komunikatem, a†niekontaktuj¹ce nÛøki wskazywane s¹†w†odrÍbnym oknie (rys. 5). OprÛcz programowania rÛwnoleg³ego, czyli bezpoúrednio w†podstawce, UprogHS 48 Portable pozwala na programowanie szeregowe przy wykorzystaniu interfejsu SPI, JTAG, ICSP, BDM. Oczywiúcie dotyczy to tylko tych uk³adÛw, w†ktÛrych zaimplementowano jeden z†wymienionych interfejsÛw. Rys. 4 szarze g³Ûwnego okna programu w†postaci HEX i†ASCII. Odczytane z†uk³adu lub zmodyfikowane przez uøytkownika dane moøna zachowaÊ na dysku komputera lub na karcie Flash. Oprogramowanie steruj¹ce programatorem zapewnia oczywiúcie moøliwoúÊ wykorzystania wszelkich dodatkowych zasobÛw uk³adu, takich jak np. fuse bits czy lock bits, jak rÛwnieø niezaleøny dostÍp do pamiÍci programu i†pamiÍci danych w†przypadku procesorÛw posiadaj¹cych dodatkow¹ pamiÍÊ danych. Jedn¹ z†dodatkowych funkcji, jakie daje do dyspozycji UprogHS 48 Portable, jest tzw. OPERATION RECORDER (rys. 4). Rejestrator ten stanowi rodzaj archiwizera umoøliwiaj¹cego gromadzenie informacji dotycz¹cych poszczegÛlnych operacji (za³adowanie pliku, dodanie/usuniÍcie uk³adu, operacje na uk³adzie), ktÛre s¹ wykonywane przez uøytkownika. Inn¹ z†istotnych funkcji, jak¹ posiadaj¹ zreszt¹ wszystkie programatory rodziny Uprog, w†tym UprogHS 48 Portable, jest funkcja PIN CHECK kontroluj¹ca poprawnoúÊ obsadzenia uk³adu w†podstawce. Sprawdzanie poprawnoúci styku pomiÍdzy programowanym uk³adem a†podstawk¹ urz¹dzenia odbywa siÍ w†sposÛb automatyczny. Brak styku na ktÛrejú z†koÒcÛwek sygnalizo- Podsumowanie Programator uniwersalny UprogHS 48 Portable jest interesuj¹c¹ propozycj¹ dla uøytkownikÛw urz¹dzeÒ tego typu. Decyduje o†tym kilka czynnikÛw: oprÛcz obszernej bazy obs³ugiwanych uk³adÛw, braku koniecznoúci stosowania wielu adapterÛw i†wbudowanego interfejsu USB, UprogHS 48 Portable oferuje moøliwoúÊ samodzielnej pracy. Jest to wiÍc szczegÛlnie dobre rozwi¹zanie dla rÛønego rodzaju serwisÛw, ktÛre czÍsto pracuj¹ w†ìterenieî, a†takøe producentÛw urz¹dzeÒ, w†ktÛrych s¹ stosowane programowane uk³ady. W†tym przypadku zakup typowego programatora wi¹øe siÍ zwykle z†koniecznoúci¹ zakupu dodatkowego komputera, ktÛry jest potem wykorzystywany jedynie do obs³ugi programatora. UprogHS 48 Portable posiada poza tym specjalne funkcje, ktÛre mog¹ byÊ wykorzystywane przez firmy programuj¹ce znaczne iloúci uk³adÛw. Jedn¹ z†nich jest np. funkcja AUTORUN usprawniaj¹ca programowanie wiÍkszej partii jednakowych uk³adÛw. Nie bez znaczenia jest tu rÛwnieø duøa szybkoúÊ dzia³ania tego programatora. Szereg unikalnych funkcji, takich jak analizator stanÛw logicznych, emulator pamiÍci, tester uk³adÛw cyfrowych, to kolejne atuty prezentowanego urz¹dzenia. Funkcje te s¹ bowiem bardzo rzadko spotykane w†typowych programatorach uniwersalnych. Pe³na uniwersalnoúÊ sprzÍtowa UprogHS 48 Portable zapewnia ci¹g³y rozwÛj listy uk³adÛw obs³ugiwanych. Dowolny uk³ad programowalny moøna bowiem ìdopisaÊî do listy tylko i†wy³¹cznie poprzez aktualizacjÍ oprogramowania bez koniecznoúci wprowadzania zmian w†czÍúci sprzÍtowej. KJ Dodatkowe informacje Rys. 5 66 Cena: 3700 netto (w podanej cenie uwzglêdniono wszystkie akcesoria). Urz¹dzenie do testów udostêpni³a firma RK-System, tel. (22) 724-30-39, www.rk-system.com.pl. Lista uk³adów obs³ugiwanych przez prezentowany programator jest dostêpna pod adresem: http://www.rk-system.com.pl/uprog.shtml#uproghs48p. Elektronika Praktyczna 12/2003 P O D Z E S P O Ł Y „Mikroprocesor” nie zawsze znaczy to samo Zaczniemy od bana³u: technika mikroprocesorowa opanowa³a juø niemal wszystkie dziedziny øycia. Bana³ drugi: zdecydowana wiÍkszoúÊ elektronikÛw ma na swoim koncie choÊby najprostsze opracowania mikroprocesorowe. Bana³ trzeci: wiÍkszoúÊ z†nich (nas) zna tylko jedn¹ lub co najwyøej dwie ich rodziny, s¹dz¹c przy tym czÍsto, øe ich budowa jest zgodna z†powszechnie obowi¹zuj¹cymi zwyczajami i†stanowi niepodwaøalny standard. Na koniec wstÍpu nie-bana³: rÛønorodnoúÊ dostÍpnych na rynku rozwi¹zaÒ i†pomys³owoúÊ ich konstruktorÛw s¹ doprawdy imponuj¹ce, co powoduje, øe wspÛ³czesny konstruktor nie powinien pozwoliÊ sobie na marazm i†tkwienie w†ciep³ej ìdolinceî przyzwyczajeÒ. Postaramy siÍ nieco w†tym pomÛc. Elektronika Praktyczna 12/2003 Von Neumann vs Harvard W†historycznie najstarszych protoplastach wspÛ³czesnych komputerÛw, opartych g³Ûwnie na technologii przekaünikowej, stosowana by³a najbardziej oczywista koncepcja architektoniczna, w†ktÛrej przetwarzane dane oraz ci¹g rozkazÛw - tworz¹cy program - by³y rozdzielone i†przechowywane na odrÍbnych noúnikach informacji. Przyk³adowo w†najbardziej dojrza³ej konstrukcji Niemca Konrada Zusego (fot. 1) V4 (Versuchsmodell 4) z†1945 roku program by³ umieszczony na perforowanej taúmie filmowej (ze wzglÍdu na jej wiÍksz¹ trwa³oúÊ mechaniczn¹ niø taúmy papierowej) i†z†niej kolejno by³y wczytywane i†wykonywane instrukcje. Miejscem przechowywania przetwarzanych danych by³y 1024 rejestry przekaüniko- 55 P O D Z E S P O Ł Y Fot. 1. Konrad Zuse przy jednym ze swoich kompu− terów we o†d³ugoúci 32 bitÛw kaødy. Maszyna Zusego po wielu wojennych i†powojennych perypetiach juø jako Z4 (fot. 2) trafi³a do Szwajcarii, gdzie j¹ z†powodzeniem eksploatowano aø do lat szeúÊdziesi¹tych. Rozwi¹zania konstrukcyjne zastosowanego przez Zusego by³y efektywne tylko w†powolnych urz¹dzeniach przekaünikowych, w†ktÛrych czas realizacji rozkazu by³ porÛwnywalny, czy teø nawet d³uøszy, od czasu wczytywania go z†mechanicznego noúnika. W†najbardziej znanym i†pierwszym w†USA komputerze przekaünikowym MARK-I, zbudowanym na Uniwersytecie Harvarda i†oddanym do eksploatacji w†1944 roku, czas wykonania dodawania 2†liczb wynosi³ jedn¹ trzeci¹ sekundy, a†dzielenia aø 10 sekund. Mimo tego MARK-I by³ przez wiele lat bardzo intensywnie wykorzystywany, g³Ûwnie w†amerykaÒskim programie atomowym, pracuj¹c czÍsto po 24 godziny na dobÍ. Rozwi¹zania konstrukcyjne stosowane w maszynach przekaünikowych by³y pierwowzorem wspÛ³czesnego modelu architektonicznego, w ktÛrym pamiÍci programu i danych s¹ rozdzielone fizycznie (czyli maj¹ oddzielne magistrale i/lub sygna³y steruj¹ce) oraz logicznie (obs³ugiwane s¹ rÛønymi instrukcjami). O tego typu komputerach czy mikrokontrolerach mÛwi siÍ, øe maj¹ architekturÍ harwardzk¹, wszakøe tylko wtedy, gdy Rys. 3. Schemat blokowy komputera o architekturze harwardzkiej ra zaproponowa³ genialny matematyk amerykaÒski pochodzenia wÍgierskiego, John von Neumann. W maszynie von Neumanna zarÛwno program, jak i dane umieszczone s¹ w jednej tylko, wspÛlnej pamiÍci. Te dwa rodzaje informacji staj¹ siÍ wobec tego fizycznie nierozrÛønialne, a ich identyfikacja nastÍpuje jedynie poprzez miejsce, w ktÛrym Klasyczne architektury komputerów Komputery, w których pamięci programu i danych są rozdzielone fizycznie (czyli mają oddzielne magistrale i/lub sygnały sterujące) oraz logicznie (obsługiwane są różnymi instrukcjami) są nazywane komputerami o architekturze harvardzkiej. Z kolei architektura von Neumanna charakteryzuje się tym, że zarówno program, jak i dane umieszczone są w jednej, wspólnej pamięci. z†obu pamiÍciami moøliwa jest rÛwnoczesna komunikacja. Koncepcja taka jest obecnie czÍsto spotykana, chociaø, poza niew¹tpliwymi zaletami, wykazuje takøe pewne wady. W 1945 roku zupe³nie nowatorsk¹ strukturÍ kompute- we wspÛlnej pamiÍci s¹ umieszczone, a wiÍc przez adres. W pocz¹tkowym okresie idea von Neumanna by³a doúÊ trudna realizacyjnie, wymagaj¹c znacznej pojemnoúci pamiÍci, nieco pÛüniej jednak dziÍki swoim niew¹tpliwym zaletom opanowa³a na wiele lat technikÍ komputerow¹. Tym niemniej od kilku lat daje siÍ zaobserwowaÊ doúÊ wyraüne odejúcie od klasycznej wersji koncepcji von Neumanna oraz zwrot w kierunku architektury harwardzkiej. Jakie s¹ wobec tego najwaøniejsze cechy kaødego z††rozwi¹zaÒ? z†za³oøenia przeznaczonym dla danych. Pozwala to na dynamiczn¹ (ìw†bieguî) wymianÍ fragmentÛw†programu podczas normalnej pracy komputera, ³atwe jest teø uruchamianie i†testowanie nowych programÛw. Nie ma ograniczenia na objÍtoúÊ kaødego z†blokÛw pamiÍci, istnieje tylko ograniczenie globalne wynikaj¹ce z†ca³kowitej pojemnoúci pamiÍci. W†tej samej pamiÍci moøna albo umieúciÊ wiÍkszy program, operuj¹cy na niewielkiej liczbie danych, albo teø mniejszy program i†duøo danych. - Sta³e programowe (np. tablica z†generatorem znakÛw alfanumerycznych, definiuj¹cym kszta³t znakÛw na wyúwietlaczu) mog¹ byÊ bez øadnych problemÛw umieszczane i†odczytywane (a†takøe czasami modyfikowane) z†pamiÍci programu przy wykorzystaniu standardowych rozkazÛw. - W†najbardziej klasycznej formie rejestry obs³uguj¹ce urz¹dzenia wejúcia/wyjúcia mog¹ byÊ traktowane jak normalne komÛrki pamiÍci, z†pe³n¹ dostÍpnoúci¹ wszystkich rozkazÛw i†trybÛw adresowania jednostki centralnej. - Budowa systemu, z†pojedynczymi magistralami Von Neumann Fot. 2. Komputer Z4 56 - Program moøe byÊ umieszczony (i†uruchomiony) w†dowolnym obszarze pamiÍci, takøe Rys. 4. Schemat blokowy komputera o architekturze von Neumanna Elektronika Praktyczna 12/2003 P O D Z E S P O Ł Y obs³uguj¹cymi obie pamiÍci, staje siÍ zdecydowanie prostsza, a†uk³ady scalone maj¹ mniej wyprowadzeÒ. - Wykonanie pojedynczego rozkazu wymaga zwykle wykonania kilku operacji na pamiÍci. Harvard - D³ugoúci s³owa pamiÍci programu i†danych mog¹ byÊ i†zazwyczaj bywaj¹ rÛøne - np. dane s¹ 8-bitowe, a†s³owo pamiÍci programu 16-bitowe. - Istnieje potencjalna moøliwoúÊ rÛwnoczesnej komunikacji jednostki centralnej z†obu pamiÍciami. To w³aúnie ta ostatnia zaleta nabiera ostatnio decyduj¹cego znaczenia. Jeøeli konstrukcja jednostki centralnej pozwala na odczyt nowego rozkazu z†pamiÍci programu jeszcze podczas transferu operandÛw niezbÍdnego dla realizacji poprzedniej instrukcji, wykonanie programu jest zdecydowanie szybsze, szczegÛlnie, gdy kompletny rozkaz mieúci siÍ w†pojedynczym s³owie pamiÍci. Wada zwi¹zana z†niemoønoúci¹ przechowywania sta³ych i†tablic w†pamiÍci programu bywa eliminowana przez wprowadzenie specjalnych rozkazÛw przenoszenia danych, operuj¹cych na pamiÍci programu. W†praktyce czÍsto spotykane s¹ architektury mieszane, niebÍd¹ce øadn¹ z†poprzednich w†stanie ìczystymî. Typowym przyk³adem jest mikrokontroler 8051. Maszyny jedno-, dwu- oraz trzyadresowe i†tryby adresowania Kaødy rozkaz komputera musi zawieraÊ kompletny zestaw informacji pozwalaj¹cy na jego poprawn¹ interpretacjÍ i†wykonanie. Informacje te dzieli siÍ na dwie zasadnicze czÍúci: czÍúʆoperacyjn¹ i†czÍúÊ adresow¹. Jak sama nazwa Elektronika Praktyczna 12/2003 wskazuje, czÍúÊ operacyjna okreúla rodzaj operacji, jak¹ ma dany rozkaz wykonaÊ (np. dodanie dwÛch argumentÛw albo przes³anie zawartoúci jednej z†komÛrek pamiÍci do innej). Liczba stosowanych w†praktyce operacji nie jest zbyt duøa, rzÍdu kilkudziesiÍciu, i†bez problemÛw da siÍ zakodowaÊ na niewielkiej liczbie bitÛw. Pojedynczy bajt, czyli uporz¹dkowanych 8†bitÛw, wystarcza zazwyczaj z†zapasem. Rozkazy dzia³aj¹ jednak na jakichú argumentach i†w†wyniku ich realizacji powstaj¹ wyniki (argumenty i†wyniki nosz¹ nazwÍ operandÛw). Wieloargumentowe operacje zawsze moøna sprowadziÊ do ci¹gu operacji co najwyøej dwuargumentowych, dlatego, ze wzglÍdu na d¹ønoúÊ do maksymalnej prostoty przy zachowaniu dostatecznej uniwersalnoúci, niezmiernie rzadko (ale jednak) spotykane s¹ instrukcje operuj¹ce na liczbie argumentÛw wiÍkszej od dwÛch. Tak wiÍc w†najbardziej ogÛlnym przypadku rozkaz powinien zawieraÊ kod operacji KO (rys. 5) oraz adresy wszystkich operandÛw, a†zatem adres pierwszego argumentu AS1, adres drugiego argumentu AS2 oraz adres komÛrki pamiÍci, do ktÛrej naleøy wys³aÊ wynik AD. Takie maszyny nazywane s¹ trzyadresowymi. Nawiasem mÛwi¹c, istnieje jeszcze bardziej ogÛlna struktura rozkazu, zawieraj¹ca kolejne pole adresowe: adres komÛrki pamiÍci programu, z†ktÛrej ma zostaÊ pobrany i†wykonany nastÍpny rozkaz. Koncepcja taka naleøy na razie do egzotycznych. Powszechnie s¹ stosowane raczej znacznie prostsze maszyny sekwencyjne, a†wiÍc takie, w†ktÛrych na- Rys. 5. Format rozkazu trzyadresowego i jego pola informacyjne 57 P O D Z E S P O Ł Y stÍpny w†kolejnoúci realizacji rozkaz pobierany jest po prostu z†nastÍpnej komÛrki pamiÍci programu - dodatkowy adres staje siÍ wtedy zbÍdny (wyj¹tek stanowi¹ tylko specjalne rozkazy skokÛw). Warto jednak zauwaøyÊ, øe w†systemach wieloprocesorowych odejúcie od sekwencyjnoúci pozwala na wyraüne poprawienie efektywnoúci realizacji ca³ego programu, jednakøe kosztem zdecydowanego powiÍkszenia trudnoúci w†tworzeniu oprogramowania. Maszyny trzyadresowe pozwalaj¹ na uzyskanie zwartego programu, w†szczegÛlnoúci niemal zbÍdne staje siÍ stosowanie instrukcji przenoszenia danych. Wykazuj¹ jednak istotn¹ wadÍ - czÍúÊ adresowa staje siÍ bardzo d³uga, rozkaz zajmuje w†pamiÍci duøo miejsca, a†jego skompletowanie i†wykonanie poch³ania sporo czasu. WyjaúniÊ to moøe przyk³ad prostego hipotetycznego mikroprocesora trzyadresowego, o†8-bitowym s³owie pamiÍciowym i†16-bitowym adresie. Pojedynczy rozkaz dwuargumentowy musi sk³adaÊ siÍ z†7†bajtÛw (1†bajt to kod operacji, a†6†bajtÛw to 3†adresy), jego pobranie wymaga zatem 7†dostÍpÛw do pamiÍci. Do jego wykonania jest jeszcze konieczny odczyt 2†argumentÛw oraz zapis wyniku do pamiÍci, czyli dodatkowe 3†cykle komunikacji z†pamiÍci¹ - razem aø 10. Z†tego powodu maszyny 3adresowe spotykane s¹ bardzo rzadko wúrÛd prostych mikroprocesorÛw, stanowi¹ natomiast naturalne rozwi¹zane w†duøych maszynach, w†ktÛrych ca³y, d³ugi rozkaz mieúci siÍ w†jednym lub co najwyøej 2†s³owach pamiÍciowych. Aby skrÛciÊ czÍúÊ adresow¹, moøna zmniejszyÊ liczbÍ pÛl adresowych, ograniczyÊ w†jakiú sposÛb ich d³ugoúÊ albo teø zastosowaÊ oba rozwi¹zania rÛwnoczeúnie. Najproúciej usun¹Ê 58 trzeci adres (wyniku). W†rezultacie wynik jest transferowany do domyúlnego, z†gÛry okreúlonego miejsca. NajczÍúciej jest wpisywany w†miejsce jednego z†argumentÛw powoduj¹c†tym samym jego zniszczenie. Zwyczajowo jest to pierwszy z†argumentÛw, ale spotykane s¹ teø rozwi¹zania, w†ktÛrych argument zastÍpowany wynikiem moøna wybieraÊ. W†takiej sytuacji poza kodem operacji i†dwoma adresami argumentÛw†w†rozkazie musi pojawiÊ siÍ ta dodatkowa infor- UsuniÍcie kolejnego pola adresowego z†rozkazu prowadzi do maszyny jednoadresowej, w†ktÛrej w†rozkazie wskazaÊ moøna tylko jeden z†argumentÛw operacji. ZarÛwno drugi argument jak i†wynik musz¹ byÊ adresowane w†sposÛb domyúlny (implikowany). W†tym celu wprowadza siÍ specjalny, wyrÛøniony rejestr zwi¹zany z†jednostk¹ arytmetyczno-logiczn¹, zwany akumulatorem, ktÛry zawiera drugi argument operacji i†do ktÛrego wpisywany jest wynik po jej wyko- Symetria i ortogonalność jednostki centralnej Przez symetrię rozumiane jest równoupraw− nienie wszystkich rejestrów jednostki centralnej i ich dostępność dla wszystkich funkcji. Ortogonalność to dostępność wszystkich zaimplementowanych w danej jednostce centralnej trybów adresowania we wszystkich instrukcjach i dla wszystkich operandów. macja, nazywana modyfikatorem adresu. OgÛlnie rzecz ujmuj¹c, modyfikator adresu determinuje sposÛb interpretacji przez jednostkÍ centraln¹ czÍúci adresowej rozkazu. Maszyny dwuadresowe pod wzglÍdem funkcjonalnym s¹ niemal rÛwnowaøne trzyadresowym, przy wyraünie krÛtszej czÍúci adresowej. Jest to obecnie najczÍúciej stosowane rozwi¹zanie w†mikroprocesorach i†mikrokontrolerach úredniej, ale jednak nie najwyøszej klasy. naniu. D³ugoúÊ rozkazu ulega radykalnemu skrÛceniu, ale w†programie poza rozkazami zwi¹zanymi bezpoúrednio z†realizacj¹ algorytmu obliczeÒ pojawiaj¹ siÍ bardzo liczne rozkazy transferu operandÛw pomiÍdzy akumulatorem i†pamiÍci¹. Powoduje to wzrost stopnia komplikacji programu, powiÍksza jego rozmiar i†wyd³uøa czas wykonania, a†intensywnie wykorzystywany akumulator tworzy w¹skie ìgard³oî. Maszyny jednoadresowe Rys. 6. Adresowanie bezpośrednie maj¹ jednak przy tym niezaprzeczaln¹ zaletÍ - s¹ bardzo proste, a†przez to i†tanie. Pewn¹, doúÊ wyraün¹ poprawÍ funkcjonalnoúci moøna uzyskaÊ, jeøeli istnieje moøliwoúÊ wyboru umieszczania wyniku albo w†akumulatorze, albo w†miejscu adresowanego argumentu. Takie mikroprocesory nazywane bywaj¹ pÛ³toraadresowymi. Przyk³adem mog¹ byÊ tu mikrokontrolery PIC. Z†kolei doúÊ typowym przyk³adem mikrokontrolera jednoadresowego z†nieznacznym odchyleniem w†stronÍ pÛ³toraadresowoúci jest '51. Inn¹ moøliwoúÊ ograniczenia d³ugoúci czÍúci adresowej rozkazu stwarza skracanie pÛl adresowych, przy zachowaniu oczywistej zasady jednoznacznego wskazywania po³oøenia operandu w†pamiÍci. Osi¹ga siÍ to poprzez stosowanie rÛønych trybÛw adresowania. Najbardziej oczywistym trybem adresowania jest adresowanie bezpoúrednie (rys. 6), w†ktÛrym pole adresowe rozkazu zawiera po prostu adres operandu. Jedn¹ z†wad tego trybu, poza d³ugoúci¹†pola adresowego, jest fakt, øe adres ten jest sta³y i†nie moøna go w†programie zmieniaÊ (nie moøe byÊ zatem wyliczany). Jeøeli - przyk³adowo - naleøy zwiÍkszyÊ o†jeden zawartoúÊ 100 kolejnych komÛrek pamiÍci, to w†takim trybie adresowania naleøy w†programie 100-krotnie umieúciÊ instrukcjÍ inkrementa- Rys. 7. Adresowanie pośrednie Elektronika Praktyczna 12/2003 P O D Z E S P O Ł Y cji, za kaødym razem operuj¹c¹ na innym adresie. Aø siÍ prosi, aby pojedyncz¹ instrukcjÍ powtarzaÊ w†pÍtli 100 razy, zmieniaj¹c przy tym wraz z†kolejnymi obiegami pÍtli adres argumentu. Czas wykonania takiego fragmentu programu co prawda siÍ nie zmniejszy (a nawet wyraünie powiÍkszy), ale program bÍdzie zawiera³ tylko kilka instrukcji zamiast stu. Wyliczanie adresu operandu umoøliwia adresowanie poúrednie (rys. 7), w†ktÛrym pole adresowe rozkazu nie zawiera bezpoúrednio adresu operandu, a†jest jedynie poúrednim wskaünikiem miejsca, w†ktÛrym tego adresu naleøy poszukiwaÊ (jest to wiÍc jakby adres adresu). Miejscem tym moøe byÊ pamiÍÊ (rzadziej, raczej w†rozwi¹zaniach wyøszej klasy) albo wyrÛøniony rejestr jednostki centralnej. W†tym ostatnim, dominuj¹cym w†prostych mikroprocesorach przypadku, uzyskuje siÍ przy okazji radykalne zmniejszenie d³ugoúci pola adresowego, bo rejestrÛw s³uø¹cych do adresowania poúredniego jest zazwyczaj niewiele i†do ich rozrÛønienia wystarcza kilka bitÛw. W†mikrokontrolerach '51 do Elektronika Praktyczna 12/2003 adresowania poúredniego 8bitowego s³uø¹ wy³¹cznie rejestry R0 i†R1 (pole adresowe skraca siÍ zatem do jednego bitu), a†do adresowania 16-bitowego przeznaczono tylko jeden rejestr DPTR (pole adresowe w†ogÛle znika, ale pozostaje oczywiúcie modyfikator adresu!). W†PIC-ach do adresowania poúredniego przeznaczono tylko jeden rejestr-fantom. W†AVR-ach s¹ to trzy pary rejestrÛw X, Y, Z. W†MSP430 kaødy z†rejestrÛw moøe byÊ wskaünikiem adresowym. Z†punktu widzenia programisty im wiÍcej istnieje rejestrÛw†do adresowania poúredniego, tym lepiej. Z†punktu widzenia konstruktora mikroprocesora jest dok³adnie odwrotnie. Adresowanie poúrednie znalaz³o bardzo szerokie zastosowanie w†technice komputerowej i†ma liczne odmiany. Moøe teø byÊ ³¹czone z†innymi trybami adresowania, w†szczegÛlnoúci wzglÍdnym. Zalet¹ - poza moøliwoúci¹ wyliczania adresu - jest krÛtkie pole adresowe rozkazu. Jeøeli rejestry adresowe maj¹ wystarczaj¹c¹ d³ugoúÊ, to moøliwe jest zaadresowanie dowolnej komÛrki pamiÍci. Wad¹ jest to, øe†do rejestru naleøy 59 P O D Z E S P O Ł Y Rys. 8. Adresowanie względne wczeúniej wpisaÊ docelowy adres, a†wiÍc czÍsto potrzebna jest do tego dodatkowa instrukcja, a†czasem nawet dwie. Najbardziej efektywne staje siÍ adresowanie poúrednie przy wielokrotnie powtarzanym dostÍpie do kolejnych komÛrek pamiÍci, np. przy pracy z†danymi maj¹cymi postaÊ tablic, szczegÛlnie wtedy, gdy istnieje moøliwoúÊ automatycznej inkrementacji b¹dü dekrementacji rejestru adresowego (co jest technicznie stosunkowo proste). Ilustruje to prosty program dla mikrokontrolera '52, wstÍpnie zeruj¹cy wszystkie komÛrki pamiÍci: mov R0,#255 clr A zeruj: mov @R0,A djnz R0, zeruj Obs³uga stosu teø jest przyk³adem specyficznego rodzaju adresowania poúredniego, w†ktÛrym rejestrem adresowym jest wskaünik stosu, a†kaødy zapis czy teø odczyt zwi¹zany jest z†jego automatyczn¹ inkrementacj¹ b¹dü dekrementacj¹. Istniej¹ liczne odmiany adresowania poúredniego, ktÛre nie bÍd¹ tu bliøej omawiane - indeksowe, bazowe, indeksowo-bazowe, stronicowe, cykliczne (cyrkulacyjne) i†inne. Kolejnym, waønym trybem jest adresowanie wzglÍdne (relatywne) - rys. 8. W†tym trybie pole adresowe nie zawiera adresu operandu, ale jego przesuniÍcie (displacement, d) 60 wzglÍdem jakiegoú adresu bazowego. Innymi s³owy, w†trybie takim w†polu adresowym nie ma informacji, øe operand jest zawarty w†komÛrce pamiÍci o†przyk³adowym adresie 2345, jest natomiast informacja, øe†operand jest umieszczony w†komÛrce o†adresie o†123 wiÍkszym od adresu odniesienia. Adresem odniesienia bywa zawartoúÊ specjalnych rejestrÛw (np. indeksowego) albo aktualny stan licznika rozkazÛw. Ten ostatni przypadek tworzy adresowanie wzglÍdne bieø¹ce, stosowane przede wszystkim, ale bynajmniej nie wy³¹cznie, w†instrukcjach skokÛw. PrzesuniÍcie jest traktowane zazwyczaj jako liczba ze znakiem, moøe byÊ wiÍc†dodatnie albo ujemne. Zakres adresowania wzglÍdnego jest zwykle ograniczony, co pozwala na skrÛcenie czÍúci adresowej kosztem pewnego zmniejszenia elastycznoúci programowania. W†mikrokontrolerach '51 s¹ moøliwe skoki wzglÍdne w†zakresie 128...+127 w†stosunku do aktualnego stanu licznika rozkazÛw (wskazuj¹cego zawsze nastÍpn¹ do wykonania instrukcjÍ). W†AVR-ach jest to tylko -64...+63 (ale dotyczy s³Ûw 16-bitowych), a†z†kolei w†MSP430 aø†512...+511. Jedn¹ z†zalet adresowania wzglÍdnego bieø¹cego jest fakt, øe jego konsekwentne stosowanie pozwala na uzyskanie wy- nikowych programÛw posiadaj¹cych cechÍ przesuwalnoúci (relokowalnych). Program taki moøe†zostaÊ umieszczony i†uruchomiony w†dowolnym obszarze pamiÍci, a†nie tylko w†jednym, z†gÛry okreúlonym miejscu. U³atwia to m.in. gospodarowanie wieloma programami we wspÛlnej pamiÍci i†prze³¹czaniem pomiÍdzy nimi realizowanych aktualnie zadaÒ. Nie moøna pomin¹Ê takøe adresowania natychmiastowego (rys. 9), w†ktÛrym pole adresowe rozkazu zawiera nie adres argumentu czy teø wskaünik adresowy, ale sam argument - sta³¹ programow¹. Oczywiúcie taki tryb adresowania ma sens tylko dla argumentÛw, a†nie dla wyniku (bo oznacza³oby to, øe wynik jest znany przed wykonaniem instrukcji). Typowym przyk³adem moøe byÊ rozkaz: anl P3,#80h dla '51. Z†trybami adresowania wi¹ø¹ siÍ dwa waøne pojÍcia: symetrii i†ortogonalnoúci. Przez symetriÍ rozumiane jest rÛwnouprawnienie wszystkich rejestrÛw jednostki centralnej i†ich dostÍpnoúÊ dla wszystkich funkcji, w†szczegÛlnoúci jako wskaünikÛw adresowania poúredniego albo np. rejestrÛw indeksowych. Symetria jest cech¹ bardzo przydatn¹, ale stosunkowo rzadko spotykan¹. O†mikrokontrolerach '51 moøna by by³o mÛwiÊ, øe maj¹ symetryczny rdzeÒ, gdyby adresowanie poúrednie mog³o siÍ odbywaÊ nie tylko poprzez rejestry R0 i†R1, ale takøe przez wszystkie pozosta³e (R2...R7). W†wielu mikroprocesorach poszczegÛlne rejestry pe³ni¹ tylko okreúlone zadania i†nie mog¹ byÊ wykorzystywane do innych celÛw. Przyk³adem ewolucji w†kierunku symetrii mog¹ byÊ mikroprocesory rodziny '86. W†8086 istnia³y wyraünie wyrÛønione, odrÍbne rejestry dla adreso- wania bazowego, indeksowego itp., w†nastÍpcach (386, 486, Pentium) to ograniczenie stopniowo zanika³o. Symetryczne s¹ mikroprocesory rodziny 68000. RÛwnieø w†mikrokontrolerze MSP430 niemal kaødy z†16 rejestrÛw wewnÍtrznych moøe przechowywaÊ dane, pe³niÊ funkcjÍ wskaünika adresowego albo teø rejestru indeksowego. OrtogonalnoúÊ z†kolei to dostÍpnoúÊ wszystkich zaimplementowanych w†danej jednostce centralnej trybÛw adresowania we wszystkich instrukcjach i†dla wszystkich operandÛw. Jest to cecha bardzo rzadka, chociaø jej obecnoúÊ prowadzi do bardzo interesuj¹cych rozwi¹zaÒ. Z†popularnych mikrokontrolerÛw najwiÍkszy stopieÒ ortogonalnoúci wykazuje MSP430, w†ktÛrym dostÍpny jest przyk³adowo tak egzotyczny rozkaz, jak skok ze úladem (CALL) w†trybie adresowania poúredniego z†postinkrementacj¹. Zazwyczaj poszczegÛlnym instrukcjom i†ich operandom przyporz¹dkowane s¹ jednak tylko pewne wybrane tryby adresowania. DostÍpnoúÊ operandÛw w†wielu trybach adresowania, symetria i†ortogonalnoúÊ s¹ bardzo istotnymi cechami jednostki centralnej, byÊ moøe nawet waøniejszymi od bogactwa listy rozkazÛw i†zasobÛw wewnÍtrznych. Bardzo popularny swego czasu mikroprocesor 6502 sk³ada³ siÍ g³Ûwnie z†ìniczegoî, a†jego lista rozkazÛw zawiera³a bodajøe niewiele ponad 50 instrukcji i†to tych najprostszych. Pomimo tego konkurowa³†z†powodzeniem ze znacznie bardziej skomplikowanym Z80, przewyøszaj¹c go w³aúnie asortymen- Rys. 9. Adresowanie na− tychmiastowe Elektronika Praktyczna 12/2003 P O D Z E S P O Ł Y P O D Z E S P O Ł Y Rys. 10. Kodowanie rozkazów dwuargumentowych w mikrokontrolerze MSP430 tem dostÍpnych trybÛw adresowania. Jako reprezentatywny przyk³ad, na rys. 10 przedstawiono sposÛb kodowania rozkazÛw dwuargumentowych w†16-bitowym mikrokontrolerze MSP430. Kaødy rozkaz zawiera 4-bitowy kod operacji KO, co teoretycznie pozwala na zakodowanie 16 rozkazÛw. W†rzeczywistoúci rozkazÛw dwuargumentowych jest tylko 12, a†pozosta³e kombinacje wykorzystywane s¹ przez inne rozkazy (jednoargumentowe i†skoki), w†ktÛrych odmienna jest interpretacja reszty s³owa rozkazowego. Jest to bardzo czÍsto stosowana ìsztuczkaî konstrukcyjna. Jeden bit (B/W) zarezerwowano dla rozrÛøniania operacji oúmio- i†szesnastobitowych - mikrokontroler ten pozwala na wykonywanie tych samych rozkazÛw nie tylko na dwubajtowych s³owach, ale teø na pojedynczych bajtach, z†tym øe oba argumenty (i†wynik) musz¹ mieÊ tÍ sam¹ d³ugoúÊ, a†rejestry wewnÍtrzne nie mog¹ byÊ dzielone na dwie czÍúci. W†przypadku ewentualnych konfliktÛw (np. dodanie 8-bitowego argumentu do zawartoúci jednego z†rejestrÛw) przewidziane zosta³y odpowiednie, jednoznaczne regu³y zachowaÒ. Dwa 4-bitowe pola AS i†AD, kaøde wskazuj¹ce jeden z†16 rejestrÛw uniwersalnych, stanowi¹ czÍúci adresowe operandÛw. Interpretacja zawartoúci pierwszego z†rejestrÛw zaleøy od zwi¹zanego z†nim dwubitowego modyfikatora adresu pierwszego argumentu MS, co moøe sugerowaÊ, øe dostÍpne s¹ dla niego 4†tryby adresowania (konkretnie: bezpoúrednie rejestrowe, poúrednie, poúrednie z†autoinkrementacj¹ i†indeksowe). W†rzeczywistoúci trybÛw Elektronika Praktyczna 12/2003 tych jest aø siedem (dochodzi jeszcze wzglÍdne bieø¹ce, bezpoúrednie odniesione do dowolnej komÛrki pamiÍci oraz natychmiastowe), co wynika z†oryginalnej koncepcji umieszczenia wúrÛd†rÛwnouprawnionych rejestrÛw uniwersalnych takøe licznika rozkazÛw. W†ten sposÛb przyk³adowo adresowanie indeksowe ìwch³aniaî niejako - odniesione do licznika rozkazÛw - adresowanie wzglÍdne bieø¹ce. Dla drugiego argumentu i†rÛwnoczeúnie wyniku przewidziano juø tylko jeden bit modyfikatora adresu MD, co powoduje, øe moøe on (tzn. operand) byÊ wskazywany tylko w†dwÛch trybach adresowania, tym niemniej i†tak odpowiadaj¹cych czterem w†typowych mikroprocesorach. Jest to jedyne odstÍpstwo od ortogonalnoúci, spowodowane po prostu ograniczon¹ d³ugoúci¹ s³owa rozkazowego, ktÛrego wszystkich 16 bitÛw zosta³o juø wykorzystanych. SposÛb u³oøenia tych elementÛw informacyjnych w†rozkazie robi wraøenie nieco chaotycznego i†przypadkowego, ale widocznie projektant mia³ tu jakieú swoje racje, a†moøe po prostu fantazjÍ. Siedem rozkazÛw jednoargumentowych rozpoczyna siÍ unikaln¹ kombinacj¹ 0001, po ktÛrej wystÍpuje dalszy ci¹g kodu konkretnej operacji, wyrÛønik bajt/s³owo, a†nastÍpnie 4-bitowy adres rejestru i†dwubitowy modyfikator adresu identyczne, jak w†rozkazach dwuargumentowych. Rozkazy skokÛw warunkowych rozpoczynaj¹ siÍ kombinacj¹ 001, uzupe³nion¹ trzema bitami koduj¹cymi konkretny warunek skoku i†9-bitowym adresem wzglÍdnym ze znakiem. Maciej Nowiñski 61 Konfiguracja Girdera do współpracy z odbiornikiem SIRC/RC5 P Roraz O termometrem J E K T Y Konfiguracja Girdera do współpracy z odbiornikiem SIRC/RC5 (AVT−519) oraz termometrem (AVT−558) Moøliwoúci Girdera by³y opisywane juø niejednokrotnie. Ze wzglÍdu na duø¹ liczbÍ pytaÒ jakie otrzymujemy w†sprawie jego konfiguracji i†moøliwoúci wspÛ³pracy z†zestawami AVT do tematu wracamy. Rekomendacje: dla wszystkich uøytkownikÛw Girdera, ktÛrzy chc¹ wykorzystaÊ tkwi¹cy w nim ogromny potencja³, zw³aszcza we wspÛ³pracy z wieloma przystawkami sprzÍtowymi opracowanymi w naszym laboratorium. W przedstawionym opisie zosta³y u¿yte nastêpuj¹ce aplikacje, które dostêpne s¹ na stronie www.girder.nl oraz na CD-EP12/2003B: 1. Program Girder, wersja 3.2.9b. 2. Wtyczka Question OSD.dll. 3. Wtyczka XP_OSD.dll wersja 1.3. 4. Wtyczka serial.dll wersja 3.0.15. Elektronika Praktyczna 12/2003 Girder jest udostÍpniany bezp³atnie i†moøna go pobraÊ ze strony www.girder.nl, tam takøe znajduj¹ siÍ dodatkowe pliki (pluginy) umoøliwiaj¹ce rozbudowÍ funkcjonaln¹ tego programu. W†EP6/ 03 opisaliúmy sposÛb skonfigurowania Girdera do wspÛ³pracy z†nadajnikiem zdalnego sterowania (AVT-5104). W†tym przyk³adzie za pomoc¹ Girdera, po naciúniÍciu odpowiedniego klawisza klawiatury, by³y wysy³ane dane poprzez port szeregowy do nadajnika podczerwieni. Teraz przedstawimy sposÛb skonfigurowania Girdera do wspÛ³pracy z†odbiornikiem zdalnego sterowania oraz cyfrowym termometrem, z†ktÛrych pobierane dane bÍd¹ wyúwietlane na ekranie monitora. W†ten sposÛb bÍdzie moøna stworzyÊ nawet cyfrowy przyrz¹d pomiarowy i†to bez znajomoúci øadnego jÍzyka programowania. W†artykule omÛwimy wspÛ³pracÍ Girdera z†odbiornikiem SIRC/RC5 (AVT-519) oraz termometrem (AVT-558), jednak nic nie stoi na przeszkodzie, aby w†ten sam sposÛb wyúwietlaÊ dane pochodz¹ce z†innych ürÛde³. Obydwa wspomniane urz¹dzenia wysy³aj¹ dane poprzez port szeregowy w†postaci ci¹gu znakÛw ASCII. Dane te s¹ formowane w†ramki o†rÛønej d³ugoúci uzaleønionej od parametrÛw odebranego kodu lub wartoúci temperatury. Pomimo tych rÛønic kaøda ramka ma jedn¹ sta³¹ cechÍ: pierwszym transmitowanym znakiem jest polecenie kasowania linii (0x0Ch). Znak ten umoøliwia rozpoznanie przez program pocz¹tku transmisji. DziÍki temu na ekranie moøna wyúwietliÊ tekst z†dowolnego urz¹dzenia do³¹czonego do portu szeregowego, warunkiem jest jednak, aby na pocz¹tku kaødej transmisji zosta³ wys³any znak o†wartoúci (0x0Ch). Do komunikacji Girdera ze úwiatem zewnÍtrznym naleøy zastosowaÊ odpowiedni¹ wtyczkÍ. Wtyczk¹ umoøliwiaj¹c¹ komunikacjÍ poprzez port szeregowy jest serial.dll stworzona przez Marka Fiechtnera. WtyczkÍ tÍ naleøy skopiowaÊ do folderu, w†ktÛrym znajduje siÍ uprzednio zainstalowany Girder (domyúlnie: C:\Program files\girder32\plugins). NastÍpnie naleøy przejúÊ do konfiguracji wymaganych parametrÛw portu szeregowego. W†tym celu uruchamiamy Girdera i†na pocz¹tek, dla u³atwienia obs³ugi, naleøy zmieniÊ jÍzyk interfejsu. W†tym celu wybieramy File->Settings (wygl¹d okna przedstawiono na rys. 1), a†nastÍpnie User interface. W†pozycji Language naleøy wybraÊ Polski i†zatwierdziÊ poleceniem Apply, po tej czynnoúci wszystkie napisy zostan¹ zmienione na jÍzyk polski. NastÍpnie wybieramy opcjÍ Wtyczki i†instalujemy wtyczkÍ Ge- Rys. 1. Wygląd okna Settings 51 Konfiguracja Girdera do współpracy z odbiornikiem SIRC/RC5 oraz termometrem Rys. 2. Wygląd okna instalowania wtyczek neric Serial Support, zaznaczaj¹c j¹ w†oknie dialogowym (rys. 2) i†zatwierdzaj¹c przyciskiem Zastosuj. Dodatkowo trzeba zaznaczyÊ opcjÍ Automatycznie w³¹cz urz¹dzenie wejúciowe. W†ten sposÛb wtyczka zosta³a zainstalowana i†moøna przejúÊ do jej konfiguracji wybieraj¹c opcje Ustawienia. Na ekranie pojawi siÍ okno pokazane na rys. 3, w†ktÛrym moøna wczytaÊ plik konfiguracyjny, wyeksportowaÊ do pliku bieø¹ce ustawienia oraz ustawiÊ nowe parametry dla portu szeregowego. Poniewaø jeszcze nie zosta³ stworzony plik konfiguracyjny, naleøy wybraÊ opcjÍ New. Na ekranie pojawi siÍ okno umoøliwiaj¹ce ustawienie wymaganych parametrÛw (rys. 4). W†pozycji Name naleøy podaÊ nazwÍ, pod ktÛr¹ zostan¹ zapisane ustawione parametry, a†w†pozycji Device numer portu, do ktÛrego do³¹czono zewnÍtrzne urz¹dzenie (np. odbior- Rys. 3. Okno wyboru pliku z parametrami transmisji szeregowej Rys. 4. Okno konfiguracji parametrów transmisji szeregowej 52 nik RC5/SIRC). PrÍdkoúÊ transmisji danych odbiornika oraz termometru wynosi 9600 bd i†tak¹ wartoúÊ naleøy ustawiÊ w†pozycji Baud rate, dodatkowo w†pozycji Handshaking naleøy wybraÊ DTR/RTS power. Spowoduje to ustawienie na liniach DTR/RTS portu szeregowego Rys. 5. Okno konfiguracji parametrów stanÛw wysokich umoøliwia- odbioru danych z portu szeregowego j¹cych zasilanie do³¹czonego urz¹dzenia bezpoúrednio z†portu. - pld1 - w†tym rejestrze zapisyNastÍpnie naleøy wybraÊ opcje wane s¹ odbierane dane lub Message Definition->Receive. No³aÒcuch danych, we okno (rys. 5) umoøliwi usta- - pld2 - rejestr okreúla, czy zosta³a wienie sposobu przetwarzania ododebrana dana, czy tylko zosta³ bieranych danych. W†oknie tym zmieniony stan linii wejúciowej, naleøy uaktywniÊ opcjÍ Character - pld3 - zawiera nazwÍ pliku Events, nastÍpnie wybraÊ Variable konfiguracyjnego okreúlaj¹cego Length oraz ustawiÊ wartoúÊ paparametry portu szeregowego rametru Terminator na ì0Cî i†uak(w†przedstawionym przypadku tywniÊ opcje Strip Terminator. jest Odbiornik IR), Powoduje to, øe do bufora bÍd¹ - pld4 - zawiera nazwÍ uøywanezapisywane dane odbierane z†porgo portu szeregowego, w†natu szeregowego tylko wtedy, gdy szym przypadku jest to COM1. bÍd¹ poprzedzone bajtem o†warDo wyúwietlania na ekranie toúci 0x0Ch. Dodatkowo naleøy monitora informacji z†odbiornika zaznaczyÊ opcjÍ Enable Receive RC5/SIRC i†termometru wykorzysTimeout i†ustaliÊ wartoúÊ rÛwn¹ tywana bÍdzie tylko zawartoúÊ oko³o 300 ms. Opcja ta powoduje, rejestru pld1. øe strumieÒ odbieranych danych zosta³ przerwany jeúli przerwa po- Budowa aplikacji Aby dane odbierane z†portu miÍdzy kolejnymi znakami bÍdzie wiÍksza od 300 ms. Kolejne dane szeregowego by³y wyúwietlane na bÍd¹ ignorowane, aø do momentu ekranie, naleøy tak skonfigurowaÊ pojawienia siÍ ponownie bajtu Girdera, aby odpowiednio je przestartu sygnalizuj¹cego pocz¹tek no- kierowaÊ. W†tym celu naleøy stwowej transmisji (w praktyce oznacza rzyÊ specjaln¹ aplikacjÍ. Aplikacje to, øe ramka danych pochodz¹ca i†polecenia tworzy siÍ w†g³Ûwnym z†odbiornika RC5/SIRC lub termo- oknie Girdera (rys. 6), po naciúmetru zakoÒczy³a siÍ). Na koniec niÍciu prawego klawisza myszy naleøy ustaliÊ d³ugoúÊ bufora od- na bia³ym polu rozwinie siÍ menu bieranych danych Message Buffer umoøliwiaj¹ce te czynnoúÊ. Na pocz¹tku trzeba utworzyÊ aplikaSize. Wprowadzona wartoúÊ moøe z a w i e r a Ê s i Í w † p r z e d z i a l e cjÍ poleceniem Dodaj aplikacjÍ, 30...2048, domyúlnie jest rÛwna nastÍpnie naleøy j¹ zaznaczyÊ, 201. Jest ona jednak zaleøna od ponownie rozwin¹Ê menu i†wyliczby bajtÛw wysy³anych w†jed- braÊ Dodaj polecenie. Kolejnym nym pakiecie do komputera i†mo- krokiem jest dodanie Kodu zdaøe zostaÊ zmniejszona lub zwiÍkszona w†zaleønoúci od iloúci danych wysy³anych przez do³¹czone urz¹dzenie. Po ustawieniu wszystkich parametrÛw†transmisji naleøy zamkn¹Ê wszystkie okienka zatwierdzaj¹c wprowadzone zmiany. Tak skonfigurowany port umoøliwi odbiÛr danych, a†dodatkowo ci¹g bajtÛw wystÍpuj¹cy po bajcie startu 0x0Ch zostanie zapisany w†buforze i†bÍdzie mÛg³ byÊ dalej przetworzony. Parametry portu zaRys. 6. Okno tworzenia aplikacji pisywane s¹ w†czterech rejestrach: (programów) Elektronika Praktyczna 12/2003 Konfiguracja Girdera do współpracy z odbiornikiem SIRC/RC5 oraz termometrem Rys. 7. Okno wczytywania Kodu zdarzenia rzenia. Wszystkie nazwy tworzonych aplikacji i†poleceÒ mog¹ byÊ dowolnie zmieniane poprzez polecenie ZmieÒ nazwÍ. Tak zbudowany ìprogramî bÍdzie oczekiwa³ na zdarzenie zapisane w†Kodzie zdarzenia i†wykona polecenie zapisane w†Polecenie. W†typowych zastosowaniach Kod zdarzenia odpowiada jednemu konkretnemu zdarzeniu, na przyk³ad naciúniÍciu klawisza klawiatury lub odbioru z†portu szeregowego konkretnego bajtu. Przy wspÛ³pracy ze wspomnianymi: termometrem lub odbiornikiem RC5/SIRC, kodem zdarzenia nie jest konkretna wartoúÊ odbieranych danych, bo s¹ one zmienne i†trzeba by by³o wczytaÊ ten kod dla kaødej moøliwej wartoúci, dlatego kod ten trzeba wczytaÊ w†inny sposÛb. Aby go wczytaÊ naleøy zaznaczyÊ opcjÍ Kod zdarzenia, nastÍpnie z†menu (obok klawisza Wczytaj kod) wybraÊ opcjÍ Zdarzenie Girdera, nastÍpnie nacisn¹Ê przycisk Wczytaj kod. W†wyniku tych zabiegÛw zostanie otwarte nowe okno, w†ktÛrym znajduj¹ siÍ dwie opcje do wyboru (rys. 7). Z†pierwszego menu naleøy wybraÊ On Event, natomiast z†drugiego Generic Se- Rys. 8. Okno ustawień sposobu wyświetlania Proste OSD Elektronika Praktyczna 12/2003 rial Support i†zatwierdziÊ przyciskiem Wybierz. Po tych czynnoúciach polecenie Wyúwietl bÍdzie wykonywane po odebraniu dowolnych danych z†portu szeregowego (dane, ktÛre spe³ni¹ warunek postawiony przy konfiguracji wtyczki Generic Serial Support). W†ten sposÛb†odebrane dane moøna dowolnie przetwarzaÊ. W†przedstawionym przyk³adzie dane te bÍd¹ wyúwietlanie na ekranie monitora, dlatego naleøy wywo³aÊ odpowiedni¹ funkcjÍ realizuj¹ca to zadanie. Stworzon¹ aplikacjÍ naleøy zapisaÊ, na przyk³ad jako plik Termometr.GML, aby ustawione parametry mog³y byÊ wczytywane przy kaødorazowym uruchomieniu Girdera. Wyúwietlanie danych na ekranie Wyúwietlanie komunikatÛw na ekranie monitora moøna wykonaÊ na kilka sposobÛw. Pierwszym z†nich jest standardowa funkcja Girdera - Proste OSD. Umoøliwia ona wyúwietlanie komunikatÛw†w†dowolnym miejscu ekranu (okreúlonym wspÛ³rzÍdnymi), wykorzystuj¹c do tego celu czcionkÍ o†wybranej wielkoúci i†kolorze. Wyboru parametrÛw wyúwietlania dokonuje siÍ w†menu Ustawienia>Ustawienia OSD (rys. 8). Wyúwietlany tekst, w†zaleønoúci od potrzeb moøe zostaÊ umieszczony w†ramce, na wybranym kolorze t³a lub bez ramki i†t³a. Po ustawieniu parametrÛw OSD naleøy pobraÊ z†bufora dane odebrane poprzez port szeregowy i†je wyúwietliÊ. W†tym celu naleøy w†g³Ûwnym oknie Girdera zaznaczyÊ polecenie Wyúwietl, nastÍpnie jako obiekt dzia³ania tego polecenia naleøy wybraÊ Girder (rys. 9). NastÍpnie z†menu trzeba wybraÊ opcjÍ Proste OSD. W†oknie Ikona/Urz¹dz. naleøy wpisaÊ tekst, ktÛry bÍdzie wyúwietlony na ekranie. Poniewaø w†przyk³adzie wyúwietlona musi zostaÊ zawartoúÊ rejestru zawieraj¹cego dane odebrane poprzez port szeregowy, w†oknie tym wpisujemy nazwÍ tego rejestru w†nawiasie kwadratowym. W†ten sposÛb†Girder nie bÍdzie wyúwietla³ wpisanej nazwy, ale zawartoúÊ rejestru o†podanej nazwie. W†tym miejscu moøna takøe wpisaÊ dodatkowe rejestry: pld2, pld3, pld4, ktÛre zawieraj¹ informacjÍ o†parametrach portu Rys. 9. Okno konfiguracji wyświetlania danych poprzez Proste OSD szeregowego. OprÛcz rejestrÛw moøna wpisaÊ dowolny tekst, ktÛry zostanie wyúwietlony, na przyk³ad obok wartoúci temperatury. Przyk³adowy sposÛb wyúwietlania temperatury pokazano na rys. 10. Opisany sposÛb wyúwietlania komunikatÛw ma tÍ wadÍ, øe informacja jest widoczna do momentu klikniÍcia na niej myszk¹. W†przypadku termometru napis jest aktualizowany po kaødym pomiarze (co trzy sekundy). Jeøeli wyúwietlany komunikat nie musi byÊ wyúwietlany ci¹gle, a†tylko przez jakiú czas - na przyk³ad po odebraniu kodu z†nadajnika zdalnego sterowania - moøna zmieniÊ sposÛb wyúwietlania, aby po podanym czasie od zdarzenia wyúwietlany napis automatycznie znika³. W†tym celu naleøy zaznaczyÊ polecenie Wyúwietl, a†z†menu Polecenia wybraÊ opcjÍ Ustaw Timeout OSD. Po tej czynnoúci pojawi siÍ okno przedstawione na rys. 11, w†ktÛrym naleøy podaÊ czas wyúwietlania komunikatu w†milisekundach. Inne moøliwoúci wyúwietlania danych na ekranie zapewnia wtyczka o†nazwie Question OSD, ktÛr¹ naleøy skopiowaÊ do folderu Rys. 10. Przykład wyświetlania temperatury Rys. 11. Okno ustawiania czasu wyświetlania komunikatu 53 Konfiguracja Girdera do współpracy z odbiornikiem SIRC/RC5 oraz termometrem Rys. 12. Okno konfiguracji wyświetlania komunikatów przy pomocy wtyczki Question OSD wtyczek i†zainstalowaÊ (analogicznie jak instalacja wtyczki serial.dll). NastÍpnie w†g³Ûwnym oknie Girdera naleøy zmieniÊ parametry polecenia Wyúwietl. Teraz jako obiekt dzia³ania naleøy wybraÊ wtyczkÍ Question OSD, wybieraj¹c†myszk¹ Wtyczki->Question OSD (rys. 12). Dalej naleøy ustawiÊ parametry tej wtyczki, wybieraj¹c przycisk Ustawienia. W†nowo otwartym oknie naleøy wpisaÊ numer wyúwietlanego rejestru, w†Timeout czas wyúwietlania komunikatu w†milisekundach, a†w†pozycji Akcja naleøy wybraÊ OpenOSD. Wpisane parametry naleøy†zatwierdziÊ przyciskiem OK. Po tych czynnoúciach format wyúwietlania bÍdzie zaleøny od ustawieÒ Proste OSD, natomiast sposÛb wyúwietlania bÍdzie kontrolowany przez wtyczkÍ Question OSD. WiÍksze moøliwoúci doboru sposobu wyúwietlania posiada Rys. 13. Okno konfiguracji wyświetlania komunikatów za pomocą wtyczki XP_OSD 54 wtyczka o†nazwie XP_OSD. Jej instalacja przebiega w†taki sam sposÛb, jak wtyczki Question OSD, takøe przypisanie komendy Wyúwietl wykonuje siÍ analogicznie. Po wybraniu opcji Ustawienia dla wtyczki XP_OSD pojawi siÍ okno konfiguracyjne przedstawione na rys. 13. W†oknie OSD Text naleøy wpisaÊ numer rejestru zawieraj¹cego dane do wyúwietlenia (pld1). SposÛb prezentowania komunikatÛw jest ustalany indywidualnie i†moøna ustawiʆczas wyúwietlania komunikatu, rodzaj oraz wielkoúÊ czcionki, napis moøe byÊ wyúwietlany na wybranym kolorze t³a lub bez t³a. Przy wspÛ³pracy z†termometrem w†opcjach Display Duration najlepiej jest wybraʆInfinity, wtedy mierzona temperatura bÍdzie wyúwietlana przez ca³y czas, natomiast dla odbiornika RC5/SIRC wygodniejsze bÍdzie uøycie opcji Timeout i†ustawienie czasu wyúwietlania odebranego kodu z†nadajnika zdalnego sterowania. W†ten sposÛb po odebraniu kodu z†pilota jego wartoúÊ zostanie wyúwietlona przez ustawiony czas, a†nastÍpnie zniknie. Dodatkowo w†oknie tym moøna ustawiÊ przeüroczystoúÊ wyúwietlanego komunikatu oraz przejúÊ do ustawieÒ rodzaju i†wymiarÛw czcionki. W†oknie Size&Position (rys. 14) moøna ustaliÊ rozmiar okna wyúwietlanych komunikatÛw oraz ich pozycjÍ na ekranie. Pozycje moøna ustaliÊ na trzy sposoby: - wybieraj¹c z†menu jedn¹ ze skrajnych pozycji ekranu lub jego úrodek, - poprzez podanie wspÛ³rzÍdnych na osiach X†i†Y, - trzeci sposÛb pozycjonuje miejsce wyúwietlania poprzez przeci¹gniÍcie myszk¹ okna komunikatu w†ø¹dane miejsce ekranu. W†okienku Background Image moøna wskazaÊ plik obrazu, ktÛry bÍdzie t³em wyúwietlanych komunikatÛw. Okno Animation umoøliwia natomiast ustalenie efektÛw przy otwieraniu i†zamykaniu okna wyúwietlanych komunikatÛw, komunikat moøe byÊ wyúwietlony poprzez, na przyk³ad powolne zmniejszanie przeüroczystoúci czy rozwijanie i†zwijanie okna komunikatu. Rys. 14. Pozycjonowanie wyświetlanych komunikatów przez wtyczkę XP_OSD Rys. 15. Okno konfiguracji parametrów startowych Girdera Po ustawieniu parametrÛw wyúwietlania komunikatÛw naleøy ustawiÊ parametry startowe Girdera. W†tym celu naleøy wybraÊ z†menu Plik->Ustawienia->OgÛlny i†ustawiÊ odpowiednie parametry pokazane na rys. 15. Jako úcieøkÍ dostÍpu do pliku Termometr.GML naleøy podaÊ lokalizacje pliku zapisanego podczas tworzenia aplikacji, w†ten sposÛb po uruchomieniu Girdera odpowiednie ustawienia zostan¹ wczytane automatycznie. Krzysztof P³awsiuk, EP [email protected] Uwaga! PoprawnoúÊ dzia³ania programu Girder w†opisanej konfiguracji zosta³a sprawdzona w†systemie Windows 98 oraz XP. Jednakøe wyúwietlanie komunikatÛw†za pomoc¹ wtyczki XP_OSD w†systemie Windows 98 ma ograniczenia, gdyø niedostÍpne s¹ funkcje zwi¹zane z wyúwietlaniem przeüroczystych komunikatÛw. Elektronika Praktyczna 12/2003 semi−MatrixOrbital P R O J E K T LCD Y do PC semi−MatrixOrbital LCD do PC, część 2 AVT−552 Moda na fantazyjn¹ stylizacjÍ PC-ta szybko dotar³a do naszego kraju, w†zwi¹zku z†czym ogromnym powodzeniem ciesz¹ siÍ wszelkie gadøety, ktÛre mog¹ spowodowaÊ, øe nasz komputer staje siÍ trendy. W†artykule przedstawiamy projekt uk³adu, ktÛry chociaø jest ìgadøeciarskiî, to zwiÍksza moøliwoúci nadzoru pracy PC przez uøytkownika. Rekomendacje: polecamy wszystkim uøytkownikom PC, ktÛrzy pragn¹ poprawiÊ komfort jego uøytkowania, zwiÍkszyÊ funkcjonalnoúÊ i†uatrakcyjniÊ wygl¹d. Konfiguracja LCD PC Konfiguracji modu³u wyúwietlacza moøna dokonaÊ za pomoc¹ dowolnego programu terminalowego. Po jego uruchomieniu i†ustawieniu parametrÛw†transmisji na 9600/8/n/1 moøna przyst¹piÊ do konfiguracji modu³u. Jest ona bardzo prosta, a†to dziÍki prostemu w†obs³udze menu. Aby do niego wejúÊ naleøy jednoczeúnie nacisn¹Ê przyciski S1, S3 oraz S4. Menu sk³ada siÍ z†kilku poziomÛw, ktÛre pokazano na rys. 6. Na rys. 7 pokazano zrzut ekranu terminala, w†ktÛrym pokazane s¹ przyk³ady konfiguracji. Przy wyborze w†menu ustawianych parametrÛw†naleøy podaÊ cyfrÍ parametru, ktÛry bÍdzie ustawiany po znaku ì>î potwierdzaj¹c go klawiszem Enter. Po wyborze odpowiedniej prÍdkoúci oraz wyúwietlacza LCD pojawia siÍ przy nich gwiazdka. Podczas zapamiÍtywania adresu pilota RC5 Rys. 6. Struktura menu sterownika 48 naleøy nacisn¹Ê dowolny przycisk pilota a†nastÍpnie klawisz Enter. Jego adres zostanie automatycznie zapisany w†pamiÍci EEPROM. Wybrane parametry zostan¹ przypisane modu³owi po wyjúciu z†trybu menu wysy³aj¹c wartoúÊ ì4î potwierdzon¹ Enterem. Programy wspÛ³pracuj¹ce Istnieje bardzo wiele programÛw czy pluginÛw (np. do Winampa), ktÛre mog¹ wspÛ³pracowaÊ z†zaprezentowanym modu³em. Mog¹, choÊ nie musz¹, bo powyøszy modu³ nie ma zaimplementowanych wszystkich poleceÒ jakie maj¹ wyúwietlacze Matrix Orbital. Jest takøe rÛønica w†dzia³aniu jednego polecenia, ktÛre steruje jasnoúci¹ podúwietlenia zamiast poziomem kontrastu. Rys. 7. Wykaz poleceń widoczny w oknie programu terminalowego Elektronika Praktyczna 12/2003 semi−MatrixOrbital LCD do PC Rys. 8. Okno konfiguracji programu Smartie Rys. 12. Widok zakładki Actions Prezentowany modu³ przetestowspÛ³pracy z†modu³em czyli Senatomiast w†drugiej linii LCD bÍwa³em z†nastÍpuj¹cymi programarial (Matrix Orbital). PrzyciúniÍcie d¹ ukazane dwa parametry dotymi: Girder, Smartie, kilkoma proprzycisku MO settings umoøliwia cz¹ce przep³ywnoúci oraz czÍstotgramami wspÛ³pracuj¹cymi ustawienie kontrastu, co dla tego liwoúci prÛbkowania odtwarzanez†LCDriver oraz pluginami do Wimodu³u bÍdzie rÛwnowaøne go utworu. W†okienku Skip this nampa. Modu³†z†tymi programami z†ustawieniem jasnoúci podúwietscreen if moøna wybraÊ warunek, dzia³a³ bez øadnych zastrzeøeÒ. lenia (rys. 9). ktÛrego spe³nienie spowoduje poWszystkie programy oraz pluginy, W†okienku Screens settings s¹ miniÍcie jego wyúwietlenia. ktÛre przetestowa³em, s¹ dostÍpne zapisywane parametry do wyRÛønie skonfigurowanych okien na CD-EP12/2003B. Poniewaø najúwietlenia przez modu³ LCD. Zamoøe byÊ aø 20. bardziej rewelacyjny (oprÛcz wieznaczenie opcji Donít†scroll this Program Smartie wspÛ³pracuje lokrotnie juø opisywanego Girdeline wy³¹cza w†danej linii wy- z†kilkoma programami jak Wira) wyda³ mi siÍ program namp, czy MBM 5.1, z†ktÛNa CD−EP12/2003B publikujemy Smartie, chcia³bym mu porego pobiera informacje o†temprzetestowane przez autora projektu úwiÍciÊ trochÍ wiÍcej uwagi. peraturze procesora, napiÍprogramy współpracujące z modułem Na rys. 8 pokazano okno ciach itp. Duø¹ zalet¹ prograopisanym w artykule. ustawieÒ programu Smartie. mu Smartie jest moøliwoúÊ Aby mÛg³ on wspÛ³pracowaÊ odczytu stanu przyciskÛw z†prezentowanym modu³em, naleúwietlacza przesuwanie tekstu jeoraz ustawienia wielu moøliwych øy wybraÊ w†okienku Program øeli nie mieúci siÍ on na ekranie reakcji na naciúniÍte przyciski. settings rodzaj wyúwietlacza, na- LCD, natomiast zaznaczenie opcji Konfiguracja programu Smartie tomiast w†okienku LCD settings Continue on next line bÍdzie przebiega rÛwnieø prosto jak kontrzeba wybraÊ numer portu oraz powodowaÊ kontynuacjÍ wyúwietfiguracja parametrÛw do wyúwietprÍdkoúÊ transmisji danych. Polania nie mieszcz¹cego siÍ tekstu lenia na LCD. Do konfiguracji nadto, naleøy zaznaczyÊ opcje w†nastÍpnej linii LCD. funkcji, ktÛre bÍd¹ wykonywane Opcja Center text centruje tekst po naciúniÍciu przycisku s³uøy na wyúwietlaczu LCD. Tekst nazak³adka Actions pokazana na pisany w†liniach emuluj¹cych wyrys. 12. Moøna w†niej skonfigubrany LCD bÍdzie od razu wyrowaÊ nie tylko reakcj͆na naciúúwietlony na wyúwietlaczu. WyniÍty przycisk, ale reakcje na brane parametry s¹ zazwyczaj podowolny inny parametr co zostaprzedzone znakiem $. Na przynie pokazane w†dalszej czÍúci arRys. 9. Zamiast regulacji kontrastu k³ad parametr $Time wyúwietli tyku³u. Aby ustawiÊ warunek dla LCD jest regulowana jasność aktualn¹ godzinÍ, a†parametr $Dadanego przycisku, naleøy wczeúpodświetlenia te aktualn¹ datÍ. Dzia³anie LCD niej wybraÊ boczn¹ zak³adkÍ Butz†parametrami wpisanymi jak potons, w†ktÛrej trzeba zaznaczyÊ kazano na rys. 8†widaÊ na rys. 10. Matrix Orbital Button. NastÍpnie Aby wybraÊ parametr do wyúwietnaleøy nacisn¹Ê przycisk dla ktÛlenia, naleøy ustawiÊ kursor w†darego chcemy skonfigurowaÊ reaknym wierszu wirtualnego wyúwietcjÍ. Kod naciúniÍtego przycisku Rys. 10. Efekt przykładowej lacza, po czym po wybraniu powinien pojawiÊ siÍ w†linii Butkonfiguracji programu Smartie z†bocznych zak³adek parametru ton:. NastÍpnie naleøy nacisn¹Ê naleøy nacisn¹Ê przycisk Insert. przycisk Insert. Po wybraniu waW†jednej linii†wyúwietlacza moørunku reakcji moøna wybraÊ typ na ³¹czyÊ kilka parametrÛw jedreakcji w†okienku Output. Ustanoczeúnie. wienie reakcji w†nastÍpuj¹cy spoNa rys. 11 pokazano parametry sÛb: $MOButton(H)>0 then GPOodczytywane z†Winampa. W†pierTogle(2) bÍdzie powodowaÊ, øe po kaødym naciúniÍciu przycisku wszej linii LCD wyúwietlana bÍRys. 11. Parametry odczytywane o†kodzie ìHî bÍdzie naprzemiendzie nazwa odtwarzanego utworu, z Winampa Elektronika Praktyczna 12/2003 49 semi−MatrixOrbital LCD do PC nie zmieniany stan uniwersalnego wyjúcia O2. Warunki naleøy†zatwierdzaÊ przyciskiem Add, a†kasowaÊ przyciskiem Delete. Na rys. 12 widaÊ, øe dodano jeszcze dwa warunki reakcji na klawisze, ktÛre powoduj¹ wybranie poprzedniego oraz nastÍpnego utworu odtwarzanego w†Winampie. Wspomina³em, øe reakcje mog¹ wywo³ywaÊ nie tylko przyciski lecz dowolne inne parametry. Na rys. 13 pokazano konfiguracjÍ, w†wyniku ktÛrej po przyjúciu wiÍcej niø 5†listÛw†e-mail zostanie odtworzony plik wave.wav. Jeøeli bÍdzie potrzeba automatycznego uruchamiania programu przy starcie komputera, naleøy dodaÊ odpowiedni 50 wpis do folderu Autostart ³¹cznie z†ca³¹ úcieøk¹ do programu. Dodanie dodatkowego parametru -hide bÍdzie skutkowaÊ automatycznym ukrywaniem okna programu. Przedstawi³em tylko niektÛre z†bardzo duøych moøliwoúci programu Smartie. Mam nadziejÍ, øe przedstawione choÊ niewielkie informacje o†Smartie pokaza³y†co drzemie w†tym programie. Ale to nie koniec, gdyø istnieje bardzo wiele innych programÛw obs³uguj¹cych wyúwietlacze LCD. WspomnÍ na koniec o†programach, ktÛre korzystaj¹ z†LCDrivera. Jest kilkanaúcie programÛw wspÛ³pracuj¹cych z†tym ìdriveremî. S¹ to wszelkiego rodzaju zegarki (przy- k³ad pokazano na rys. 14), monitory dyskÛw, pamiÍci a†nawet pluginy do Winampa, ktÛre tworz¹ dla nawet dwukana³owy analizator widma podobny do tego w†samym Winampie. Programy korzystaj¹ce z†LCDrivera wspÛ³pracuj¹ najlepiej z†wyúwietlaczami czterowierszowymi. Wszystkie te programy oraz kilka innych, ktÛre przetestowa³em we wspÛ³pracy z†modu³em, zamieúciliúmy na CD-EP12/2003B. Marcin Wi¹zania, EP [email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: pcb.ep.com.pl oraz na p³ycie CD-EP12/2003B w katalogu PCB. Elektronika Praktyczna 12/2003 Komputerowy termometr P R z interfejsem O J E K RS232 T Y Komputerowy termometr z interfejsem RS232 AVT−558 SpÍdzaj¹c duøo czasu przed komputerem, czÍsto zapomina siÍ o†otaczaj¹cym úwiecie. Przedstawiony w†artykule termometr pozwala na kontrolÍ jednego z†najistotniejszych parametrÛw†otoczenia: temperatury. Moøna j¹ úledziÊ jednoczeúnie w†dwÛch miejscach, a†wynik pomiaru jest przekazywany do komputera poprzez port szeregowy, co umoøliwia wyúwietlenie go na ekranie monitora. Rekomendacje: prosta przystawka do komputera PC umoøliwiaj¹ca na przyk³ad rejestrowanie temperatury wewnÍtrznej i zewnÍtrznej w d³uøszym okresie. Po niewielkiej modyfikacji moøe pe³niÊ takøe funkcjÍ regulatora temperatury: w³¹czyÊ grzejnik elektryczny lub wentylator. Elektronika Praktyczna 12/2003 Wszystkie dane wysy³ane przez termometr s¹ w kodzie ASCII, dlatego do wyúwietlenia temperatury moøna wykorzystaÊ dowolny program terminalowy, na przyk³ad HyperTerminal. Termometr pobiera niewielki pr¹d i†dlatego do jego zasilania wykorzystano napiÍcie dostÍpne na porcie szeregowym komputera. Temperatura moøe byÊ mierzona w†zakresie -25...125oC†z†rozdzielczoúci¹ 0,1oC. Czujniki temperatury mog¹ byÊ oddalone od p³ytki uk³adu pomiarowego na odleg³oúÊ do 30 metrÛw. Opis uk³adu Schemat elektryczny termometru przedstawiono na rys. 1. Sk³ada siÍ on z†niewielkiej liczby elementÛw dziÍki zastosowaniu mikrokontrolera, ktÛry komunikuje siÍ z†czujnikami temperatury i†komputerem. Zastosowany mikrokontroler PIC12F624 jest umieszczony w†oúmionÛøkowej obudowie. We wnÍtrzu uk³adu znajduje siÍ pamiÍÊ programu (Flash) o†pojemnoúci 1k x†14 s³Ûw, a†takøe 64 bajty pamiÍci RAM i†128 bajtÛw pamiÍci EEPROM oraz dwa liczniki. Pomiar temperatury jest wykonywany za pomoc¹ specjalizowanych uk³adÛw typu DS1820. Uk³ad DS1820 zawiera w†swojej strukturze kompletny blok pomiaru temperatury i†przetwarzania wyniku na postaÊ cyfrow¹. Komunikacja uk³adu DS1820 z†mikrokontrolerem odbywa siÍ za pomoc¹ jednoprzewodowej magistrali, co jest bardzo korzystne, gdyø procesor ma niewielk¹ liczbÍ linii I/O, a†czujnik wykorzystuje tylko jedno wyprowadzenie. Uk³ady DS1820 umoøliwiaj¹ bezpoúredni odczyt temperatury z†rozdzielczoúci¹ 0,5oC, ale udostÍpniaj¹ dodatkowe rejestry wykorzystywane podczas procedury pomiaru temperatury i†na tej podstawie rozdzielczoúÊ pomiaru moøna zwiÍkszyÊ do 0,1oC. ZwiÍkszenie rozdzielczoúci pomiarÛw wykonuje siÍ przez odpowiednie operacje matematyczne na rejestrach uk³adu DS1820 (operacje te s¹ wykonywane przez procesor). Pod³¹czenie czujnikÛw do dwÛch wyprowadzeÒ procesora jest nietypowe, gdyø do jednej magistrali moøna pod³¹czyÊ jednoczeúnie nawet kilkadziesi¹t uk³adÛw z†interfejsem 1-Wire. W†przedstawionym termometrze kaødy uk³ad jest pod³¹czony do innego wyprowadzenia procesora, aby uproúciÊ procedurÍ uruchamiania termometru. Pod³¹czenie kilku uk³adÛw DS1820 do jednej magistrali wymaga odczytania wczeúniej numeru seryjnego kaødego z†nich. Jest to identyfikator konkretnego uk³adu pod³¹czonego do magistrali, co wi¹za³oby siÍ z†koniecznoúci¹ ich rejestrowania. Jeúli po rejestracji czujnik zosta³by wymieniony na inny egzemplarz, to konieczna by³aby jego rejestracja. Komunikacja procesora z†uk³adem do³¹czonym do magistrali polega na wys³aniu na magistralÍ numeru seryjnego tego uk³adu i†jeúli taki bÍdzie siÍ znajdowa³, to zostanie przeprowadzona z†nim wymiana danych. W†tym czasie pozosta³e uk³ady s¹ nieaktywne. Taki sposÛb†komunikacji jest sto- 45 Komputerowy termometr z interfejsem RS232 Rys. 1. Schemat elektryczny termometru sowany w†przypadku, gdy do magistrali jest do³¹czony wiÍcej niø jeden uk³ad. W†przedstawionym termometrze rÛwnieø moøna uøyÊ tej metody komunikacji, jednak poniewaø wystÍpuj¹ tylko dwa czujniki, zastosowane zosta³y dwie oddzielne magistrale. DziÍki temu rozbudowuje siÍ procedura komunikacji jednoprzewodowej, ale nie ma koniecznoúci rejestrowania do³¹czonych uk³adÛw DS1820, gdyø przy do³¹czonym do magistrali tylko jednym uk³adzie jego numer seryjny moøe byÊ pomijany. Poniewaø komunikacja z†komputerem odbywa siÍ za pomoc¹ interfejsu RS232, dlatego naleøy przetworzyÊ poziomy napiÍÊ odpowiadaj¹ce standardowi TTL (stan 0: 0...0,8 V, stan 1†(2,4...5 V)) na poziomy RS232 (stan 1: -15...-3 V, stan 0: 3...15 V). Do takiej konwersji moøna zastosowaÊ specjalizowany uk³ad, na przyk³ad MAX232, jednak z†uwagi na komunikacjÍ jednostronn¹ zastosowano prostsze rozwi¹zanie. Elementem prze³¹czaj¹cym napiÍcie na wejúciu RXD (styk 2) jest tranzystor T1. Poziom niski jest wymuszany przez rezystor R1 do³¹czony do wyprowadzenia TXD (styk 3). Wyprowadzenie to jest wyjúciem sygna³u z†komputera, poniewaø komunikacja odbywa siÍ tylko w†stronÍ komputera, to na wyjúciu TXD (styk 3) przez ca³y czas wystÍpuje niski poziom napiÍcia (oko³o -10 V). Zastosowany rezystor powoduje, øe na wejúciu RXD(2) wystÍpuje napiÍcie o†wartoúci oko³o -5 V, co jest wystarczaj¹ce do wymuszenia poziomu niskiego. Jeúli ma zostaÊ podany poziom wysoki, to procesor za³¹cza tranzystor, ktÛry podaje napiÍcie zasilania na wejúcie RXD (styk 2) o†wartoúci +5 V. W†ten sposÛb zosta³ wykonany prosty konwerter poziomÛw, bez rozbudowywania ca³ego uk³adu. Do zasilania termometru wykorzystano napiÍcie wystÍpuj¹ce na wyjúciach RTS i†DTR. Aby uk³ad mÛg³ pracowaÊ, program odczytuj¹cy dane z†portu szeregowego musi ustawiÊ te wyjúcia na poziomie wysokim (w przypadku stosowania programu HyperTerminal poziomy te s¹ ustawiane automatycznie po uruchomieniu programu). NapiÍcie z†wyjúÊ RTS i†DTR s¹ poprzez diody D1 i†D2 kierowane na wejúcie diody Zenera D3. Diody te zabezpieczaj¹ uk³ad przed napiÍciem ujemnym wystÍpuj¹cym, gdy na wyjúciach RTS i†DTR wystÍpuj¹ poziomy niskie. WydajnoúÊ pr¹dowa kaødego z†wyjúÊ wynosi oko³o 10 mA, dlatego nie ma potrzeby stosowania dodatkowego rezystora ograniczaj¹cego pr¹d p³yn¹cy przez diodÍ D3. Dioda Zenera ogranicza napiÍcie zasilaj¹ce do wartoúci oko³o 5†V. Montaø i†uruchomienie Modelowy termometr zmontowano na p³ytce, ktÛrej schemat montaøowy jest przedstawiony na rys. 2. Po zmontowaniu ca³ego uk³adu do z³¹cza CON2 i†CON3 naleøy pod³¹czyÊ czujniki temperatury. Czujniki s¹ zasilane z†linii transmisyjnej, dlatego do pod³¹czenia ich z†p³ytk¹ wystarcz¹ kable dwuøy³owe. SprzÍøenie termometru z†komputerem polega na pod³¹czeniu go do wolnego z³¹cza portu szeregowego i†uruchomieniu aplikacji HyperTerminal. Program naleøy skonfigurowaÊ do pracy z†prÍdkoúci¹ 9600 bd. W†tym celu naleøy†w†menu Plik->W³aúciwoúci wybraÊ odpowiedni port, a†nastÍpnie w†Konfiguruj ustaliÊ prÍdkoúÊ transmisji na 9600 bd. Po skonfigurowaniu prÍdkoúci po³¹czenia naleøy ustawiÊ czcionkÍ w†menu Widok. Wybrana czcionka powinna byÊ typu Courier New. Ta czcionka jest zalecana, gdyø nie dla wszystkich dostÍpnych rodzajÛw czcionek bÍdzie prawid³owo wyúwietlany znak stopni. Po skonfigurowaniu programu i†nawi¹zaniu po³¹czenia w†oknie dialogowym bÍdzie wyúwietlana zmierzona temperatura. Pomiar jest aktualizowany co trzy sekundy. Przyk³adowy widok wskazywanej temperatury jest przedstawiony na rys. 3. Osoby chc¹ce stworzyÊ w³asne oprogramowanie dla termometru z†pewnoúci¹ zainteresuje format Tab. 1. Przykład wysyłanych danych w przypadku największej i najmniejszej liczby wysłanych danych 1 2 3 0x0C 0x0C I I N N 46 4 5 6 7 8 9 10 11 1 4 0 . 3 7 . ° 4 C ° C 12 O 13 14 15 16 U U O T T 5 17 18 19 20 21 22 23 24 1 ° 2 C . 4 ° C . 2 Elektronika Praktyczna 12/2003 Komputerowy termometr z interfejsem RS232 WYKAZ ELEMENTÓW Rezystory R1: 4,7kΩ R2, R3: 2,2kΩ Rys. 3. Widok okna programu HyperTerminal Rys. 2. Rozmieszczenie elementów na płytce termometru ramki wysy³anych danych. Liczba wys³anych danych moøe byÊ rÛøna i†zaleøy od wartoúci zmierzonej temperatury. Najmniejsza liczba danych wystÍpuje dla temperatur mieszcz¹cych siÍ w†zakresie 0...9,9oC, a†najwiÍksza dla temperatur wiÍkszych od 99,9oC oraz mniejszych od -9,9oC. Transmisja rozpoczyna siÍ znakiem kasowania linii (0x0C), na- Elektronika Praktyczna 12/2003 stÍpnie wysy³ana jest wartoúÊ temperatury zmierzonej przez czujnik pierwszy, dalej wartoúÊ temperatury zmierzonej przez czujnik drugi. W†tab. 1 przedstawiono przyk³ady wysy³anych znakÛw przez termometr dla najwiÍkszej i†najmniejszej liczby danych. Krzysztof P³awsiuk, AVT [email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: pcb.ep.com.pl oraz na p³ycie CD-EP12/2003B w katalogu PCB. Kondensatory C1: 100nF C2: 100µF/16V C3, C4: 30pF Półprzewodniki D1, D2: 1N4148 D3: dioda Zenera 5,1V T1: BS250 US1: PIC12F629 zaprogramowany US2, US3: DS1820 Różne CON1: DB9 do druku kątowe żeńskie CON2, CON3: ARK2 (3,5mm) X: rezonator kwarcowy 4MHz 47 Konwerter P R O JUSB<−>RS232 E K T Y Konwerter USB<−>RS232 AVT−556 Coraz czÍúciej mamy do czynienia z†komputerami pozbawionymi interfejsÛw RS232. Co zrobiÊ w†takiej sytuacji? Najproúciej jest kupiÊ przejúciÛwkÍ USB<->RS232, lecz ambitniej samodzielnie wykonaÊ opisan¹ w†artykule. Rekomendacje: konwerter bardzo przydatny, a†wkrÛtce wrÍcz niezbÍdny uøytkownikom nowoczesnych komputerÛw, ktÛrzy bÍd¹ chcieli lub musieli korzystaÊ z†ìleciwego" interfejsu RS232. Interfejs zbudowano w oparciu o wyspecjalizowany uk³ad scalony TUSB3410. Do najwaøniejszych cech tego uk³adu naleø¹ miÍdzy innymi: - pe³na zgodnoúÊ z†interfejsem USB 2.0 (i wczeúniejszymi wersjami); - praca z†prÍdkoúci¹ 12 Mbd (tryb full speed); - jednostka centralna uk³adu zaprojektowana na popularnym rdzeniu 8052. Za pomoc¹ uk³adu TUSB3410 moøna przesy³aÊ dane z†prÍdkoúci¹ 110...921,6 kbd (w trybie IrDA do 115,2 kbd). Ramka danych moøe mieÊ od 4†do 8†bitÛw, bitÛw stopu moøe byÊ: 1, 1,5 lub 2, transmisja moøe odbywaÊ siÍ z†kontrol¹ parzystoúci lub bez. Opis dzia³ania Schemat elektryczny konwertera pokazano na rys. 1. Jest to schemat typowej aplikacji uk³adu TUSB3410 (jego schemat blokowy pokazano na rys. 2). Sygna³y D+ oraz D- (USB) doprowadzane s¹ poprzez rezystory R1 i†R2 do uk³adu TUSB3410. Dzielnik napiÍcia z³oøony z†rezystorÛw R4 i†R8 dostarcza napiÍcia o†wartoúci 1,8 V†dla uk³adu US4. Do linii SDA†oraz SCL (za pomoc¹ zworki JP1) do³¹czona jest opcjonalna pamiÍÊ EEPROM (w naszym przypadku jest to 24LC64). Moøemy w niej przechowywaÊ w³asne wartoúci VID/PID/DID. Przycisk SW1 jest w†zasadzie nadmiarowy (ale jak siÍ okazuje, czasami jest bardzo przydatny) i†s³uøy do zerowania uk³adu. Elementy R7 i†C21 tworz¹ obwÛd zerowania uk³adu Elektronika Praktyczna 12/2003 po w³¹czeniu zasilania. Kondensatory filtruj¹ce C18...C20, C10 oraz C7 umieszczono blisko uk³adu TUSB3410, przy linii zasilaj¹cej 3,3 V, natomiast C8, C11 i†C15 przy linii zasilania 1,8 V. Uk³ad US3 (SN75LV4737) akceptuje poziomy napiÍÊ wejúciowych 0V i 5V, przy napiÍciu zasilania 3,3V. Uk³ad US2 (MAX604) jest stabilizatorem o†napiÍciu wyjúciowym 3,3 V, pracuj¹cym przy niewielkiej rÛønicy napiÍÊ miÍdzy wejúciem a†wyjúciem (tzw. LDO Low Drop Out). Na p³ytce drukowanej, wokÛ³ tego uk³adu znajduj¹ siÍ dwa (po jednym z kaødej strony) wiÍksze pola miedzi, maj¹ce u³atwiÊ odprowadzenie ciep³a ze stabilizatora. Montaø i†uruchomienie Uk³ad zmontowano na stosunkowo ma³ej, dwustronnej p³ytce drukowanej, ktÛrej schemat montaøowy pokazano na rys. 3. Montaø najlepiej zacz¹Ê od uk³adÛw US4 (TUSB3410) oraz uk³adu US3 (SN75LV4737A). Po prawid³owym umieszczeniu elementu na jego polach lutowniczych, przylutowujemy skrajne wyprowadzenia i†jeszcze raz sprawdzamy prawid³owoúÊ u³oøenia uk³adu na polach lutowniczych. Po tym zabiegu lutujemy pozosta³e wyprowadzenia. NastÍpnie moøemy zamontowaÊ uk³ad MAX604 (US2). W†dalszej kolejnoúci montujemy rezystory, kondensatory, a†na samym koÒcu podstawkÍ pod pamiÍÊ EEPROM, rezonator kwarcowy oraz z³¹cza USB i†DB9. Po zakoÒczeniu montaøu, warto jeszcze raz sprawdziÊ jego poprawnoúÊ, po 41 Konwerter USB<−>RS232 Rys. 1. Schemat elektryczny konwertera 42 Elektronika Praktyczna 12/2003 Konwerter USB<−>RS232 WYKAZ ELEMENTÓW Rys. 2. Budowa wewnętrzna układu TUSB3410 czym moøemy rozpocz¹Ê uruchamianie uk³adu. Do tego celu bÍdziemy potrzebowaÊ, oczywiúcie oprÛcz komputera wyposaøonego w†port USB, dowolnego urz¹dzenia ze z³¹czem RS232, kabel USB A-B (najlepiej ekranowany) oraz sterownikÛw, ktÛre s¹ dostÍpne na p³ycie CDEP12/2003B oraz pod adresem http://www-a.ti.com/apps/analog_apps/tusb3410_uart_register.asp. W†przypadku, gdy juø korzystaliúmy z†us³ug TI, wystarczy siÍ tylko za³ogowaÊ, zaakceptowaÊ warunki i†zacz¹Ê úci¹ganie sterownikÛw (objÍtoúÊ pliku 2,04 MB). Jeúli jeszcze nie mieliúmy do czynienia z†Texas Instruments, naleøy siÍ zarejestrowaÊ, co nie powinno nam przysporzyÊ wiÍkszych problemÛw. Po tej czynnoúci moøemy przyst¹piÊ do úci¹gniÍcia odpowiednich sterownikÛw. Po ich rozpakowaniu i†zainstalowaniu odpowiedniej wersji (dla Windows z†serii 9x lub 2K), moøemy pod³¹czyÊ konwerter do portu USB. System powinien wykryÊ nasz konwerter jako UMP 3410 Unitary Driver (rys. 4). NastÍpnie w†oknie Kreatora dodawania nowego sprzÍtu zaznaczamy opcjÍ Podaj lokalizacjÍ sterownika (zaawansoRys. 3. Rozmieszczenie elementów na wane), po czym - w†nastÍppłytce drukowanej Elektronika Praktyczna 12/2003 Rezystory R10: 1,5 kΩ 0805 R5, R6: 1 kΩ 0805 R9, R11: 10 kΩ 0805 R7: 15 kΩ 0805 R12: 32 kΩ 0805 R1, R2: 33Ω 0805 R8: 91 kΩ 0805 R4: 100 kΩ 0805 Kondensatory C8, C10: 1nF 0805 C9, C12...C14, C16: 1µF 0805 C15, C19: 10 nF 0805 C1, C2: 10 µF/16V MELF1 C3, C4: 22 pF 0805 C5, C6: 33 pF 0805 C7, C11, C18, C20: 100 nF 0805 Półprzewodniki US1: 24LC64 (opcja) US2: MAX604CSA US3: SN75LV4737A US4: TUSB3410 (zaprogramowany) D2: dowolna krzemowa (np. LL4148) Minimelf Różne JP1: goldpin 2x1 (opcja) X1: rezonator kwarcowy 12 MHz ZL1: złącze USB−B do druku ZL2: złącze DB9, męskie, kątowe, do druku SW1: switch (opcja) Rys. 4. Okno z informacją o wykryciu dołączenia konwertera do portu USB Rys. 5. Okno konfigurowania konwertera wygląda tak samo jak w przypadku standardowego portu COM 43 Konwerter USB<−>RS232 nym oknie - klikamy kwadracik Okreúlona lokalizacja i†podajemy úcieøkÍ dostÍpu do sterownikÛw, ktÛre wczeúniej zainstalowaliúmy. Na zakoÒczenie powinno byÊ wyúwietlone okienko z†informacj¹, iø System Windows zakoÒczy³ instalacjÍ nowego urz¹dzenia sprzÍtowego. W†ten sposÛb system operacyjny ìwidziî nowy port: UMP3410 Serial Port (COMx), 44 przy czym x oznacza pierwszy wolny numer portu w†chwili pod³¹czenia interfejsu do magistrali USB. Jak widaÊ na rys. 5, moøliwe jest dowolne ustawienie parametrÛw portu, w†tym prÍdkoúci aø do (teoretycznie, przy zastosowaniu szybszego uk³adu interfejsu US3) 921600 b/s. Piotr Klepacz, EP [email protected] Informacje o†standardzie USB moøna znaleüÊ na stronie www.usb.org. Opracowano na podstawie materia³Ûw nastÍpuj¹cych firm: Texas Instruments (www.ti.com), Maxim (www.maximic.com), Microchip (www.microchip.com). Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: pcb.ep.com.pl oraz na p³ycie CD-EP12/2003B w katalogu PCB. Elektronika Praktyczna 12/2003 Zdalnie sterowany P R (DTMF) O J Etermostat K T Y Zdalnie sterowany (DTMF) termostat, część 1 AVT−557 Opisy regulatorÛw temperatury czÍsto pojawiaj¹ siÍ w†czasopismach elektronicznych, takøe EP ma swoim koncie kilka takich urz¹dzeÒ. Mimo tego, a†w³aúciwie dziÍki temu, prezentujemy kolejne - jego moøliwoúci funkcjonalne niemaløe w†100% odpowiadaj¹ wymaganiom stawianym najczÍúciej w†listach od CzytelnikÛw. Rekomendacje: w†zimowe dni zdalnie sterowany termostat polecamy szczegÛlnie tym Czytelnikom, ktÛrzy lubi¹ racjonalizowaÊ wydatki - jak siÍ przekonaj¹, ogrzewanie mieszkania lub domku nie musi byÊ wcale tak kosztowne jak dotychczas! Elektronika Praktyczna 12/2003 Najprostszy termostat moøna wykonaÊ wykorzystuj¹c rezystancyjny czujnik temperatury oraz komparator analogowy. Obs³uga takiego termostatu nie naleøy do najwygodniejszych, bardzo trudne jest takøe jego programowanie, zw³aszcza zdalne. Termostaty wykonane na mikrokontrolerach s¹ wprawdzie nieco droøsze, ale oferuj¹ wiÍcej funkcji i†pozwalaj¹ zautomatyzowaÊ proces regulacji chociaøby poprzez ustawianie rÛønych temperatur dla rÛønych pÛr doby, czy zmiana dok³adnoúci nadzorowanej temperatury. Urz¹dzenie przedstawione w†artykule wykonano na mikrokontrolerze, dziÍki czemu oferuje ono duøe moøliwoúci modyfikowania parametrÛw regulacji. Zakres monitorowanych temperatur wynosi 0...99oC, co wykracza poza wymagania stawiane typowym termostatom domowym, ale wykorzystano moøliwoúci zastosowanego czujnika temperatury. WartoúÊ stabilizowanej temperatury moøe byÊ ustawiona z†rozdzielczoúci¹ 1oC, a†wartoúÊ zmierzonej temperatury jest wyúwietlana z†rozdzielczoúci¹ 0,1oC. Dodatkowo moøna ustaliÊ dok³adnoúÊ nadzorowania zadanej temperatury w†zakresie 0,1oC...2oC. Ustalenie dok³adnoúci (histerezy) temperatury ma na celu z†jednej strony jak najdok³adniejsze jej ìpilnowanieî, a†z†drugiej zapobieganie zbyt czÍstym prze³¹czaniem przekaünika wykonawczego. Jeøeli zostanie ustawiona najlepsza dok³adnoúÊ - na przyk³ad 0,1oC - to temperatura bÍdzie najbardziej zbliøona do za³oøonej, ale przekaünik bÍdzie prze³¹cza³ siÍ bardzo czÍsto, gdyø obniøenie temperatury otoczenia o†0,1oC poniøej za³oøonej wartoúci spowoduje jego za³¹czenie, a†zwiÍkszenie o†0,1oC spowoduje jego wy³¹czenie. Jak widaÊ zmiany temperatury tylko o†0,2oC powoduj¹ zmianÍ stanu przekaünika. ZmianÍ wartoúci wszelkich parametrÛw moøna przeprowadziÊ za pomoc¹ telefonu z†dialerem DTMF. Po odpowiednim skonfigu- rowaniu termostat moøe samodzielnie odebraÊ po³¹czenie przychodz¹ce i†umoøliwiÊ zmianÍ jego parametrÛw. Podczas zdalnej konfiguracji wszystkie dane na temat parametrÛw termostatu przekazywane s¹ uøytkownikowi w†postaci komunikatÛw g³osowych. DziÍki czemu obs³uga nie sprawia trudnoúci, gdyø o†wszystkich dostÍpnych funkcjach jesteúmy informowani, rÛwnieø zmiana parametru jest potwierdzana komunikatem g³osowym. Dodatkowo w†czasie trwania po³¹czenia moøemy uzyskaÊ informacjÍ o†temperaturze panuj¹cej w†pomieszczeniu, w†ktÛrym znajduje siÍ czujnik. DostÍp do zmiany parametrÛw termostatu zabezpieczony jest czterocyfrowym has³em, co uniemoøliwia dostÍp osÛb niepowo³anych. Termostat moøe pracowaÊ w†trybie automatycznym lub rÍcznym. Tryb automatyczny umoøliwia nadzorowanie nastawionej temperatury oraz odpowiednie sterowanie przekaünikiem wykonawczym w†zaleønoúci od wartoúci temperatury mierzonej i†zaprogramowanej. Natomiast tryb rÍczny wy³¹cza automatyczne nadzorowanie temperatury, a†stan przekaünika moøe byÊ zmieniany za pomoc¹ klawiatury termostatu lub w†czasie obs³ugi zdalnej z†klawiatury telefonu. Prze³¹czenie termostatu w†tryb pracy rÍcznej w†po³¹czeniu z†moøliwoúci¹ obs³ugi przez telefon sprawia, øe termostat moøe staÊ siÍ prze³¹cznikiem sterowanym telefonicznie, dziÍki ktÛremu moøna w³¹czyÊ lub wy³¹czyÊ urz¹dzenie pod³¹czone do przekaünika wykonawczego. OprÛcz sterowania termostatem z†klawiatury oraz ze zdalnego telefonu w†trybie odbioru po³¹czenia przychodz¹cego moøliwe jest sterowanie przy pomocy lokalnego aparatu telefonicznego pod³¹czonego do tej samej linii telefonicznej. Daje to moøliwoúÊ sterowania termostatem na przyk³ad z†innego pomieszczenia lub telefonu bezprzewodowego bez koniecznoúci po- 35 Zdalnie sterowany (DTMF) termostat noszenia kosztÛw zwi¹zanych nawi¹zaniem po³¹czenia telefonicznego. W†czasie obs³ugi z†lokalnego telefonu procedura jest taka sama jak w†przypadku obs³ugi zdalnej. Tak samo informacjÍ o†parametrach przekazywane s¹ w†postaci g³osowej, jedyn¹ rÛønic¹ jest to, øe†przy takim sterowanie nie jest wymagane podanie has³a dostÍpu. Opis uk³adu Termostat telefoniczny sk³ada siÍ z†p³ytki sterownika oraz p³ytki wyúwietlacza wraz z†klawiatur¹. Na rys. 1 przedstawiono schemat elektryczny sterownika. ìSercemî uk³adu jest mikrokontroler PIC16F876. Wyposaøono go w†pamiÍÊ programu o†pojemnoúci 8192 14-bitowych s³Ûw pamiÍci programu, 368 bajty pamiÍci RAM oraz 256 bajtÛw nieulotnej pamiÍci EEPROM. Do wytworzenia sygna³u zegarowego zastosowano zewnÍtrzny rezonator kwarcowy o†czÍstotliwoúci 4†MHz. Poniewaø komendy podczas obs³ugi z†lokalnego lub zdalnego telefonu s¹ wydawane za pomoc¹ tonÛw DTMF, w†urz¹dzeniu niezbÍdne jest zastosowanie odbiornika DTMF. W†tej roli pracuje uk³ad US3. Pod³¹czony bezpoúrednio do linii telefonicznej monitoruje wszystkie pojawiaj¹ce sygna³y, bez wzglÍdu na to, czy linia jest zajÍta przez termostat, czy telefon lub nie jest w†ogÛle zajÍta. Elementy C9, C10, R3...R7 dopasowuj¹ poziom sygna³Ûw†pochodz¹cych z†linii telefonicznej do wartoúci potrzebnej do prawid³owej pracy wzmacniacza wejúciowego uk³adu US3. Jako uk³ad odbiornika DTMF zastosowano popularny uk³ad MT8870 pracuj¹cy z†zewnÍtrznym rezonatorem kwarcowym o†czÍstotliwoúci 3,579 MHz. Prawid³owo odebrane tony DTMF s¹ przekazywane na wyjúcie danych Rys. 1. Schemat elektryczny termostatu sterowanego telefonicznie 36 Elektronika Praktyczna 12/2003 Zdalnie sterowany (DTMF) termostat Podstawowe funkcje i mo¿liwoœci termostatu: - pomiar temperatury w zakresie 0oC...99oC z rozdzielczoœci¹ 0,1oC, - nadzorowana temperatura mo¿e byæ ustawiona w zakresie 0oC...99oC z rozdzielczoœci¹ 1oC, - ustawiona temperatura mo¿e byæ nadzorowana z programowan¹ dok³adnoœci¹ (histerez¹) w zakresie 0,1oC...2oC, - wynik pomiaru temperatury oraz wartoœæ nadzorowanej temperatury wyœwietlany jednoczeœnie na wyœwietlaczu alfanumerycznym, - mo¿liwe dwa tryby pracy: automatyczny oraz rêczny, - mo¿e wspó³pracowaæ z lini¹ telefoniczn¹ (medium zdalnego sterowania), - podczas zdalnej obs³ugi (za pomoc¹ telefonu z DTMF) wszelkie informacje na temat stanu termostatu oraz dostêpnych funkcji s¹ przekazywane w postaci komunikatów g³osowych, - podczas obs³ugi zdalnej mo¿na uzyskaæ informacje o temperaturze panuj¹cej w pomieszczeniu, w którym jest umieszczony czujnik temperatury oraz o stanie przekaŸnika wykonawczego, - prze³¹czenie termostatu w tryb pracy rêcznej umo¿liwia dowolne w³¹czanie i wy³¹czanie przekaŸnika wykonawczego, dziêki czemu termostat mo¿e pe³niæ rolê prze³¹cznika sterowanego telefonicznie, - mo¿liwoœæ zmiany liczby dzwonków, po których po³¹czenie przychodz¹ce zostanie odebrane przez termostat, - mo¿liwoœæ wy³¹czenia obs³ugi zdalnej, - dostêp do zdalnego programowania termostatu zabezpieczony czterocyfrowym has³em, - mo¿liwoœæ sterowania przy pomocy lokalnego aparatu telefonicznego w³¹czonego równolegle z termostatem bez dodatkowych kosztów za rozmowy telefoniczne, - czujnik temperatury mo¿e byæ oddalony nawet o kilkadziesi¹t metrów od p³ytki sterownika, - mo¿liwoœæ za³¹czania odbiorników o maksymalnej mocy 3,5 kW. Q1...Q4. Po ìwystawieniuî na wyjúcie binarnej wartoúci odebranego tonu na wyjúciu STD uk³adu US3 pojawia siÍ stan wysoki informuj¹cy procesor, øe zosta³ odebrany nowy kod DTMF. Prze³¹cznik odbiera po³¹czenia przychodz¹ce, musi wiÍc byÊ rÛwnieø wyposaøony w†detektor dzwonienia. Do wykrycia pr¹du dzwonienia zastosowano transoptor TS1, ktÛry wraz z†elementami R18, R19, C6, C7, D2 i†D3 spe³nia rolÍ ìwykrywaczaî napiÍcia przemiennego pojawiaj¹cego siÍ na linii telefonicznej w†czasie dzwonienia. Diody D2 i†D3 ograniczaj¹ t³umienie sygna³Ûw rozmÛwnych w†czasie rozmowy. W†przypadku braku diod Zenera w†czasie normalnej rozmowy uøyteczny sygna³ by³by t³umiony przez Elektronika Praktyczna 12/2003 Rys. 2. Schemat elektryczny płytki wyświetlacza kondensator C6, gdyø linia telefoniczna by³aby zwierana przez jego pojemnoúÊ i†mog³aby ograniczaÊ pasmo rozmÛwne. O†ile w†czasie rozmowy nie jest to zbytnio k³opotliwe, o†tyle praca na przyk³ad modemu zosta³aby zak³Ûcona. W†czasie rozmowy na linii telefonicznej panuje napiÍcie oko³o 10 V, wiÍc zastosowane diody Zenera powoduj¹ blokowanie sygna³Ûw o†amplitudzie mniejszej niø 15 V, dlatego w†czasie rozmowy od³¹czaj¹ one kondensator C6. Pr¹d dzwonienia o†znacznie wyøszej amplitudzie napiÍcia jest ìprzepuszczanyî. Zastosowany transoptor po stronie wejúciowej sk³ada siÍ z†dwÛch diod úwiec¹cych po³¹czonych przeciwsobnie, co powoduje, øe oúwietlanie fototranzystora przez diody nastÍpuje w†przypadku pojawienia siÍ pr¹du o†dowolnej polaryzacji. W†zaleønoúci od polaryzacji úwieci jedna z†dwÛch diod. Zastosowanie transoptora dodatkowo oddziela galwanicznie mikrokontroler od linii telefonicznej. Uk³ad ca³kuj¹cy zbudowany z†rezystora R18 i†kondensatora C7 powoduje, øe detektor dzwonienia jest nieczu³y†na chwilowe impulsy powstaj¹ce przy podnoszeniu i†odk³adaniu s³uchawki telefonu. Kolejnym, istotnym fragmentem urz¹dzenia jest modu³ komutacji termostatu z†lini¹ telefoniczn¹. W†torze przesy³ania düwiÍkÛw pracuje przekaünik PK1, s³uø¹cy do obci¹øania linii telefonicznej sztucznym obci¹øeniem symuluj¹cym aparat telefoniczny. Przekaünik jest w³¹czany przy pomocy tranzystora T1, dioda úwiec¹ca D5 (na p³ytce wyúwietlacza) sygnalizuje, czy przekaünik jest za³¹czony czy teø roz³¹czony. Mostek prostowniczy wraz z†tranzystorem T2, rezystorami R11, R12, R13 i†kondensatorem C12 po do³¹czeniu do linii telefonicznej stanowi obci¹øenie dla sk³adowej sta³ej sygna³u i†powoduj¹c obniøenie napiÍcia do oko³o 10 V†ìzajmujeî liniÍ telefoniczn¹. Jednoczeúnie dla sygna³Ûw rozmÛwnych nie wprowadzaj¹ t³umienia. Dioda Zenera D5 zabezpiecza tranzystor T2 przed zbyt wysokim napiÍciem pojawiaj¹cym siÍ pomiÍdzy emiterem i†kolektorem do wartoúci rÛwnej 15 V. Linia telefoniczna jest naraøona na indukowanie siÍ wysokich napiÍÊ, dlatego zosta³ na³oøony szczegÛlny nacisk na ochronÍ wszystkich podzespo³Ûw prze³¹cznika. Warystor V1 wraz z†rezystorami R1 i†R2 pracuj¹ jako zabezpieczenie przed wysokimi napiÍciami, powo- 37 Zdalnie sterowany (DTMF) termostat Rys. 3. Schemat montażowy płytki sterownika duj¹c zwieranie linii w†przypadku pojawienia siÍ na niej napiÍcia przekraczaj¹cego 140 V. W†tym czasie ca³y pr¹d p³ynie rÛwnieø przez rezystory R1 i†R2, jeúli taki stan bÍdzie trwa³ zbyt d³ugo, to rezystory te ulegn¹ uszkodzeniu, stanowi¹ wiÍc one pewnego rodzaju zabezpieczenie pr¹dowe. Aby zabezpieczyÊ wzmacniacz wyjúciowy uk³adu US2 do³¹czanego do linii telefonicznej, zastosowano separacjÍ galwaniczn¹ w†postaci transformatora TR1, kondensator C13 eliminuje sk³adow¹ sta³¹ sygna³u†od uzwojenia pierwotnego transformatora. Mostek prostowniczy MG2 zabezpiecza przed indukowaniem siÍ wysokich napiÍÊ w†uzwojeniu wtÛrnym transformatora, kondensatory C14 i†C15 oddzielaj¹ sk³adow¹ sta³¹ sygna³u z†wyjúcia wzmacniacza uk³adu US2. Takie úrodki ostroønoúci s¹ konieczne, aby nie zosta³ uszkodzony uk³ad US2 w†wyniku przepiÍÊ czÍsto wystÍpuj¹cych szczegÛlnie w†d³ugich liniach kablowych lub napowietrznych. Uk³adem najwaøniejszym z†punktu widzenia uøytkownika jest US2. Znacznie u³atwia on obs³ugÍ prze³¹cznika podczas zdalnej zmiany parametrÛw, bowiem dziÍki informacjom g³osowym uøytkownik dok³adnie wie, na jakim etapie obs³ugi siÍ znajduje. Uk³ad ten umoøliwia zapis informacji s³ownych o†³¹cznym 75 sekund. Komunikaty zostaj¹ zapisane w†wewnÍtrznej nieulotnej pamiÍci tego uk³adu, nastÍpnie mog¹ byÊ w†dowolny sposÛb odtworzone. Uk³ad ISD2575 zawiera wzmacniacz mikrofonowy, do ktÛrego zosta³ do³¹czony poprzez kondensatory C20 i†C21 mikrofon pojemnoúciowy MK1. Rezystory R14...R16 i†kondensator C18 zasilaj¹ mikrofon. Wbudowany w†uk³ad wzmacniacz sygna³u wyjúciowego umoøliwia bezpoúrednie wysterowania g³oúnika, wiÍc moøliwe jest rÛwnieø bezpoúrednie pod³¹czenie tego wyjúcia do transformatora separuj¹cego TR1, bez stosowania dodatkowego wzmacniacza. Do pomiaru temperatury zastosowano specjalizowany uk³ad typu DS1820. DziÍki cyfrowemu interfejsowi ca³a analogowa czÍúÊ pomiaru jest wykonywana przez ten uk³ad, a†procesor otrzymuje wartoúÊ zmierzonej temperatury w†po- Rys. 4. Schemat montażowy płytki wyświetlacza 38 staci cyfrowej. Komunikacja pomiÍdzy uk³adem DS1820, a†mikrokontrolerem odbywa siÍ za pomoc¹ szeregowej jednoprzewodowej magistrali 1-Wire. Wynik pomiaru podawany jest z†rozdzielczoúci¹ 0,5oC, lecz dziÍki odczytowi rejestrÛw temperatury i†wartoúci licznikÛw oraz wykonaniu kilku operacji matematycznych, moøna j¹ zwiÍkszyÊ do 0,1oC. przy podanych wartoúciach elementÛw uk³ad modelowy pracowa³ bez problemÛw na skrÍtce telefonicznej o†d³ugoúci 60 metrÛw. Jako uk³ad wykonawczy za³¹czaj¹cy urz¹dzenie grzewcze zastosowano przekaünik PK2. Przekaünik ten umoøliwia przewodzenie pr¹du o†maksymalnej wartoúci 16†A, co w†konsekwencji daje moc za³¹czan¹ w†granicach 3,5†kW. Do zasilania termostatu zastosowano stabilizator napiÍcia 5V typu LM7805. Kondensatory C1...C4 wyg³adzaj¹ napiÍcie zasilaj¹ce, a†dioda D1 zabezpiecza przed odwrotn¹ polaryzacj¹ napiÍcia zasilaj¹cego. Na rys. 2 przedstawiono schemat elektryczny modu³u wyúwietlacza i†klawiatury. Wyúwietlacz alfanumeryczny wyúwietla komunikaty tekstowe niezbÍdne podczas programowania i†obs³ugi termostatu. Dioda D5 sygnalizuje stan linii telefonicznej, a†dioda D6 stan przekaünika wyjúciowego. Aby ograniczyÊ liczbÍ po³¹czeÒ pomiÍdzy p³ytk¹ sterownika i†wyúwietlacza do szyny danych wyúwietlacza zosta³a†do³¹czona klawiatura, co pozwoli³o na zmniejszenie o†trzy liczbÍ potrzebnych po³¹czeÒ z†p³ytka sterownika. Rezystory R3...R6 s¹ rezystorami podci¹gaj¹cymi i†wymuszaj¹ stan wysoki na szynie danych w†czasie odczytu stanu klawiatury. W†celu odczytania stanu klawiatury procesor prze³¹cza wyprowadzenia steruj¹ce pod³¹czone do wyprowadzeÒ D4...D7 w†tryb wejúcia. Gdy øaden klawisz nie zosta³ naciúniÍty, to procesor odczytuje same jedynki wymuszone rezystorami podci¹gaj¹cymi. Naciúniecie klawisza powoduje wymuszenie zera na odpowiednim wejúciu procesora. W³¹czone w†szereg z†przyciskami diody umoøliwiaj¹ podawanie przez przycisk tylko masy, plus zostanie zablokowany przez te diody. DziÍki temu klawisze s¹ Elektronika Praktyczna 12/2003 Zdalnie sterowany (DTMF) termostat WYKAZ ELEMENTÓW Płytka główna Rezystory R1, R2: 10Ω R3: 100kΩ R4: 47kΩ R5, R6: 100kΩ R7: 100kΩ R8: 300kΩ R9: 1kΩ R10: 4,7kΩ R11: 39kΩ R12: 22kΩ R13: 10Ω R14...R16: 1,5kΩ R17: 470kΩ R18: 100kΩ R19: 10kΩ R20: 1kΩ R21: 4,7kΩ R22: 1kΩ PR1: potencjometr 10kΩ montażowy Kondensatory C1: 1000µF/16V C2, C3: 100nF C4: 100µF/16V C5: 100nF C6: 220nF/250V C7: 4,7µF/16V C8: 100nF C9, C10: 10nF C11: 100nF C12: 10µF/16V C13...C15: 1µF polipropylenowy C16, C17: 100nF C18: 100µF/16V C19: 1µF polipropylenowy C20, C21: 100nF C22: 4,7µF/16V C23, C24: 30pF Półprzewodniki D1: 1N4007 aktywne tylko wtedy, gdy na wyprowadzeniu portu RC1 pojawi siÍ stan zero. Jeúli na tym wyjúciu jest jedynka, to diody D1...D4 nie pozwalaj¹ na przedostanie siÍ sygna³u do linii danych wyúwietlacza, co zabezpiecza przed zak³Ûceniami spowodowanymi przez naciskanie przyciskÛw, gdy mikrokontroler ìrozmawiaî z†wyúwietlaczem. Montaø i†uruchomienie Montaø rozpoczynamy od p³ytki sterownika (schemat montaøowy na rys. 3). Ze wzglÍdu na duøe upakowanie elementÛw na- Elektronika Praktyczna 12/2003 D2, D3: Dioda Zenera 15V D4: LED 3mm czerwona D5: Dioda Zenera 15V D6: 1N4007 MG1, MG2: mostek prostowniczy 1A/400V T1, T3: BC547 T2: BC517 TS1: SFH620A−3 US1: PIC16F876 (zaprogramowany) US2: ISD2575 US3: MT8870 US4: DS1813 US5: LM7805 US6: DS1820 Różne CON1, CON3: ARK2 (5mm) CON2, CON5: ARK3 (5mm) CON4: goldpin 7x2 męski PK1: przekaźnik OMRON 5V Typ G6H PK2: przekaźnik RM 94P−12−S V1: warystor SIOV−S10K140 X1: rezonator kwarcowy 4MHz X2: rezonator kwarcowy 3,579MHz MK1: mikrofon pojemnościowy TR1: transformator 600/600 TR136−2 Złącze FC−14P 2 szt. Przewód taśmowy 14 żył − 15 cm. Płytka wyświetlacza Rezystory R1, R2: 330Ω R3...R6: 10kΩ Półprzewodniki D1...D4: BAT43 D5: dioda LED 5mm zielona D6: dioda LED 5mm czerwona Różne SW1...SW4: mikroswitch h=10mm CON1: goldpin 7x2 męski Wyświetlacz alfanumeryczny 16*1a leøy zwrÛciÊ szczegÛln¹ uwagÍ na poprawnoúÊ montaøu. Elementy montujemy poczynaj¹c od rezystorÛw, nastÍpnie diody oraz podstawki pod uk³ady scalone. Gdy wlutujemy juø elementy najniøsze montujemy kondensatory oraz z³¹cza, na koÒcu montujemy przekaüniki i†transformator TR1. Jeúli p³ytka sterownika zosta³a poprawnie zmontowana, przechodzimy do montaøu p³ytki wyúwietlacza (schemat montaøowy na rys. 4). W†pierwszej kolejnoúci montujemy rezystory R3...R6 i†diody D1...D4, nastÍpnie z³¹cze CON1. Diody úwiec¹ce D5 i†D6, wyúwiet- lacz oraz przyciski SW1...SW4 montujemy od strony lutowania. Po zmontowaniu obydwu p³ytek naleøy jeszcze wykonaÊ kabel ³¹cz¹cy p³ytkÍ sterownika z†p³ytka wyúwietlacza. Kabel ten wykonujemy przy pomocy odcinka przewodu taúmowego, 14-øy³owego o†d³ugoúci oko³o 15 cm. Z†obydwu koÒcÛw przewÛd naleøy zakoÒczyÊ z³¹czami typu FC-14, w†taki sposÛb, aby numery stykÛw z³¹cza CON4 na p³ytce sterownika by³y po³¹czone z†odpowiadaj¹cymi stykami z³¹cza CON1 na p³ytce wyúwietlacza. Po wlutowaniu wszystkich elementÛw przystÍpujemy do uruchomienia termostatu, w†tym celu do z³¹cza CON3 do³¹czamy napiÍcie zasilania o†wartoúci oko³o 12V (uk³ady scalone wyci¹gniÍte z†podstawek) i†sprawdzamy miernikiem czy napiÍcia na wyjúciu stabilizatora i†na odpowiednich wyprowadzeniach podstawek uk³adÛw scalonych (wed³ug schematu) wynosz¹ 5†V. Jeúli napiÍcia odpowiadaj¹ za³oøonym wy³¹czamy zasilanie i†montujemy uk³ady scalone, ³¹czymy wykonanym wczeúniej przewodem obie p³ytki, do z³¹cza CON2 pod³¹czamy czujnik temperatury US6, nastÍpnie ponownie w³¹czamy zasilanie. Czujnik temperatury moøe byÊ oddalony od p³ytki sterownika nawet o†nawet kilkadziesi¹t metrÛw, do po³¹czenia go z†p³ytk¹ sterownika moøna wykorzystaÊ kabel telefoniczny (2x2). Jeúli p³ytki prze³¹cznika zosta³y zmontowane poprawnie, to po w³¹czeniu zasilania, naleøy potencjometrem PR1 ustawiÊ odpowiedni kontrast wyúwietlacza i†na wyúwietlaczu pojawi siÍ napis (prawdopodobnie z†inn¹ wartoúci¹ temperatury): Jeøeli tak nie jest, naleøy ponownie sprawdziÊ poprawnoúÊ montaøu. Jeúli termostat zosta³ uruchomiony poprawnie, to przechodzimy do procedury programowania. Krzysztof P³awsiuk, EP [email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: pcb.ep.com.pl oraz na p³ycie CD-EP12/2003B w katalogu PCB. 39 Spawarka impulsowa do P spawania R O J metodą E K TTIG Y Spawarka impulsowa do spawania metodą TIG Budow¹ urz¹dzeÒ podobnych do opisanego w†artykule zajmuje siÍ stosunkowo niewielu elektronikÛw. Informacje praktyczne, niezbÍdne do ìpanowania" nad duøymi pr¹dami, s¹ trudno dostÍpne w†krajowej literaturze. Jest wiÍc niebywa³a okazja do poznania tajnikÛw budowy i†dzia³ania nowoczesnego urz¹dzenia spawalniczego. Rekomendacje: projekt z†pogranicza elektryki i elektroniki, ktÛry szczegÛlnie polecamy Czytelnikom podejmuj¹cym prÛby samodzielnej budowy sterownikÛw do spawarek i†innych urz¹dzeÒ wysokopr¹dowych. Elektronika Praktyczna 12/2003 Spawarka do spawania metod¹ TIG (w os³onie gazu obojÍtnego) jest przeznaczona do ³¹czenia metali szlachetnych, miedzi i†stopÛw miedzi, stali nierdzewnych i†wÍglowych. Nadaje siÍ rÛwnieø do lutowania twardego (temperatura topnienia spoiwa wynosi powyøej 500oC), gdy lutowie jest stopem, ktÛrego g³Ûwnym sk³adnikiem jest srebro. Urz¹dzeniem tym nie moøna spawaÊ aluminium, gdyø w†takim przypadku na wyjúciu spawarki jest wymagany pr¹d przemienny. Do ochrony elektrody i†obszaru nadtopionego metalu powszechnie stosowany jest argon (Ar). Natomiast elektroda wykonana jest z†wolframu z†niewielkim dodatkiem takich pierwiastkÛw†jak thor (Th), itr (Y) i†innych. Elektroda wolframowa stosowana w†metodzie spawania TIG jest czÍsto opisywana w†literaturze fachowej jako ìnietopliwaî, co jest tylko czÍúciowo (teoretycznie) prawdziwe, bowiem ulega zuøyciu wskutek duøej gÍstoúci pr¹du wyjúciowego, tzn. zbyt duøego pr¹du roboczego w†stosunku do úrednicy elektrody (po prostu stapia siÍ), b¹dü ulega zuøyciu wskutek zanieczyszczeÒ zawartych w argonie. £uk elektryczny, stanowi¹cy ürÛd³o ciep³a, jarzy siÍ pomiÍdzy elektrod¹ wolframow¹ a†materia³em spawanym, powoduj¹c jego nadtopienie w†miejscu ³¹czenia. Spawanie odbywa siÍ poprzez nadtopienie krawÍdzi ³¹czonych detali bez uøycia materia³Ûw dodatkowych albo z†ich uøyciem. Sk³ad metalurgiczny materia³u dodatkowego jest zbliøony lub taki sam, jak materia³u spawanego. PostÍp w†technologii wytwarzania elementÛw energoelektronicznych (tyrystory, tranzystory Dane techniczne ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ zasilanie: 220V/50 Hz, napiêcie biegu ja³owego: 68 V, maks. pr¹d spawania: 140 A, min. pr¹d spawania: 20 A, zakres regulacji pr¹du bazowego (Ib): 20 do 140 A, zakres regulacji pr¹du impulsu (Ii): 20 do 140 A, zakres regulacji czasu przerwy pomiêdzy impulsami (tp): 0,06 do 1 s, zakres regulacji czasu impulsu (ti): 0,06 do 1 s, opóŸnienie wyp³ywu gazu: 5 s, wydatek gazu ochronnego: 8 do 12 l/min. (argon), inicjacja ³uku spawalniczego: poprzez zwarcie elektrody wolframowej do materia³u spawanego, wymiary: szer. 200, wys.250, d³. 445 mm, waga: 25 kg. 27 Spawarka impulsowa do spawania metodą TIG spawarka parametrami nie odbiega³a od analogicznych wyrobÛw fabrycznych. Budowa spawarki do spawania rÍcznego Rys. 1. Zależność pomiędzy napięciem a prądem przy różnych wartościach prądu spawania duøej mocy) umoøliwi³ budowÍ spawarek do spawania metod¹ TIG, w ktÛrej pr¹d spawania zmienia siÍ w†czasie, przy czym zarÛwno parametry pr¹dowe, jak i†czasowe spawarki moøna regulowaÊ w†szerokim zakresie. W†literaturze fachowej takim urz¹dzeniom nadano nazwÍ IMPULSTIG lub PULSTIG. Impulsowe spawanie TIG umoøliwia wprowadzenie do spoiny znacznie mniejszych iloúci ciep³a, uzyskuj¹c ten sam efekt, co dla zwyk³ej spawarki TIG. Ponadto, szczegÛlnie przy wykonywaniu konstrukcji ze stali nierdzewnych z†zastosowaniem spawania impulsowego, deformacja konstrukcji wskutek naprÍøeÒ termicznych jest znacznie mniejsza. Metoda impulsowa umoøliwia rÛwnieø spawanie detali o†ma³ym przekroju i†znacznie rÛøni¹cych siÍ gruboúci¹ úcianek. Dla przyk³adu: opisan¹ spawark¹ po³¹czono p³ytkÍ gruboúci 0,6 mm z†rurk¹ o†gruboúci úcianki 2†mm wykonan¹ ze stali nierdzewnej oraz pospawano dwie p³ytki o†gruboúci 0,5 i†1†mm, a†takøe wykonano termoogniwa pomiarowe z†drutu platynowego o†úrednicy 0,8 mm. W†przekonaniu, øe czÍúÊ CzytelnikÛw jest zainteresowana budow¹ spawarki impulsowej TIG oraz ze wzglÍdu na wysok¹ cenÍ podobnych fabrycznych wyrobÛw, przedstawiam przyk³ad wykonania samodzielnie takiego urz¹dzenia. Jego konstrukcjÍ zaplanowano tak, aby ponieúÊ jak najmniejsze koszty materia³Ûw i†robocizny z†uwzglÍdnieniem ³atwoúci dostÍpu do poszczegÛlnych podzespo³Ûw, staraj¹c siÍ przy tym, aby 28 Spawanie rÍczne elektrodami otulonymi (do niedawna najpowszechniejsza metoda ³ukowego ³¹czenia metali) wymaga ürÛde³ pr¹du (zarÛwno sta³ego, jak i†przemiennego) o†silnie opadaj¹cej statycznej charakterystyce wyjúciowej. Na rys. 1 przedstawiono zaleønoúÊ miÍdzy napiÍciem a†pr¹dem przy rÛønych wartoúciach pr¹du spawania. Symbolem Uo oznaczono napiÍcie biegu ja³owego - zwykle mieúci siÍ w†zakresie od 48 do 70†V i†jest takie samo co do wartoúci w†ca³ym zakresie regulacji. Pr¹dy Iz1...Iz4 oznaczaj¹ pr¹dy zwarcia dla rÛønych nastaw. Natomiast napiÍcie spawania (Usp) wyliczono empirycznie dla spawarek do rÍcznego spawania ³ukowego elektrodami otulonym i†wynosi Usp [V] = 20 + 0,04 Isp, z†czego wynika, øe np. przy 100-amperowym pr¹dzie spawania napiÍcie spawania jest rÛwne 24 V. Jedn¹ z†najprostszych metod regulacji pr¹du spawania w†transformatorze jest regulacja z†przemieszczanym mechanicznie tzw. bocznikiem magnetycznym wprowadzanym w†obwÛd magnetyczny transformatora spawalniczego. Taki transformator bÍdzie uøyty do budowy spawarki IMPULSTIG, i†w†modelowym wykonaniu zastosowano transformator ze spawarki Besterek 1600, produkowanej przez firmÍ ìBesterî z†Bielawy. Budowa spawarki do spawania impulsowego Podobnie jak do spawania rÍcznego elektrodami otulonymi, spawarka do spawania impulsowego ma silnie opadaj¹c¹ wyjúciow¹ charakterystykÍ statyczn¹. RÛøni¹ siÍ one jedynie tym, iø w†czasie spawania pr¹d†zmienia swoj¹ wartoúÊ wed³ug wczeúniej dokonanych przez uøytkownika nastaw. Na rys. 2 zobrazowano przebieg pr¹du spawania w†funkcji czasu w†metodzie IMPULSTIG. Symbolem Ib oznaczono pr¹d†bazowy (zwykle nie jest mniejszy niø 10 A), natomiast pr¹d impulsu symbolem Ii (maksymalnie osi¹ga wartoúÊ najwyøsz¹ dla danego ürÛd³a pr¹du spawania). Za- Rys. 2. Przebieg prądu spawania w funkcji czasu w metodzie IMPULSTIG rÛwno wartoúÊ pr¹du bazowego, jak i†impulsu moøna p³ynnie regulowaÊ w†pe³nym zakresie. Czas trwania impulsu (ti) jest p³ynnie regulowany, tak samo reguluje siÍ czas trwania przerwy miÍdzy impulsami (tp). W†spawarkach TIG i†IMPULTIG uzyskuje siÍ znacznie mniejsze minimalne pr¹dy spawania niø przy spawaniu elektrodami otulonymi. Po przytoczeniu podstawowych informacji dotycz¹cych budowy i†dzia³ania spawarek do spawania rÍcznego elektrodami otulonymi i†metod¹ impulsow¹ TIG, poniøej przedstawiam opis budowy spawarki do spawania impulsowego TIG. Schemat blokowy Na rys. 3 przedstawiono schemat blokowy spawarki impulsowej TIG. Transformator spawalniczy Ts pochodzi ze spawarki Besterka 1600 i†zasilany jest z†sieci 220 V poprzez wy³¹cznik W1. Moøna uøyÊ kaødego innego transformatora spawalniczego, pod warunkiem øe regulacja pr¹du spawania odbywa siÍ za pomoc¹ bocznika magnetycznego. Bocznik magnetyczny naleøy usun¹Ê z†rdzenia transformatora, gdyø funkcjÍ regulatora pr¹du spawania przejm¹ tyrystory Ty1 i†Ty2, ktÛre z†diodami D1 i†D2 stanowi¹ prostownik pe³nookresowy duøej mocy. UøyÊ naleøy tyrystorÛw o†pr¹dzie przewodzenia min. 150 A i wstecznym napiÍciu min. 200 V. Takie same wymagania dotycz¹†diod D1 i†D2. Elementy te naleøy umieúciÊ na radiatorach ch³odzonych przez wentylator. Wentylator musi rÛwnieø usun¹Ê ciep³o†wytworzone w†transformatorze spawalniczym. Diody D3 i†D4 (wykorzystano mos- Elektronika Praktyczna 12/2003 Spawarka impulsowa do spawania metodą TIG tek prostowniczy o†pr¹dzie 25 A) za³¹czane stykami S1 i†S2 przekaünika P1 wraz z†opornikiem drutowym R1 i†R2 oraz kondensatorem C1 stanowi¹ elementy obwodu znacznie poprawiaj¹cego stabilnoúÊ ³uku spawalniczego. Transformator Tr1 o†napiÍciu wyjúciowym 24 i†12 V†s³uøy do zasilania bloku elektroniki, elektrozaworu gazu oraz sterowania funkcj¹ start-stop procesu spawania. Poniewaø zarÛwno bezpoúrednio przed jak i†po zakoÒczeniu spawania na elektrodzie wolframowej nie moøe wystÍpowaÊ napiÍcie, uzyskano to poprzez odpowiednie wysterowanie tyrystorÛw. Z†tego wynika, øe tyrystory spe³niaj¹ podwÛjn¹ rolÍ: regulatora i†wy³¹cznika pr¹du spawania. Do bieguna ujemnego prostownika mocy jest pod³¹czony przewÛd pr¹dowy palnika TIG. Palnik ma z³oøon¹ mechanicznie budowÍ (³atwo osi¹galny jest w†hurtowniach artyku³Ûw spawalniczych). Wewn¹trz niego umieszcza siÍ w†specjalnej miedzianej tulei elektrodÍ wolframow¹ zakoÒczon¹ z†jednej strony dysz¹ ceramiczn¹, a†z†drugiej zakrÍcan¹ obsadk¹ z†uszczelk¹. Do palnika doprowadzony jest w¹ø igelitowy do dostarczenia gazu ochronnego oraz 2-øy³owy przewÛd sterowniczy pod³¹czony do mikrowy³¹cznika Wp umieszczonego w†rÍkojeúci palnika. Wy³¹cznik ten steruje w³¹czaniem i wy³¹czaniem spawania poprzez przekaünik ma³ej mocy P2, ktÛrego cewka zasilana jest z†oddzielnego uzwojenia (12 V) transformatora Tr1, co wynika z†koniecznoúci galwanicznego oddzielenia obwodu sterowania od innych obwodÛw elektrycznych. Do bieguna dodatniego prostownika mocy pod³¹czony jest przewÛd miedziany o†przekroju 32 mm2 (w†izolacji gumowej), zakoÒczony imakiem lub zaciskiem sprÍøynowym -†pod³¹czany jest do materia³u spawanego, tzw. masy. Gaz ochronny (argon) czerpany jest z†butli poprzez reduktor gazu, ktÛry jest zaopatrzony w†przep³ywomierz, i†poprzez w¹ø gumowy (lub igelitowy) dostarczany do krÛÊca zamocowanego w†obudowie spawarki. Wewn¹trz spawarki gaz przep³ywa poprzez elektrozawÛr, ktÛry wy³¹cza siÍ po ok. 5†s†od momentu zakoÒczenia spa- Elektronika Praktyczna 12/2003 Rys. 3. Schemat blokowy spawarki TIG wania. Ma to na celu ochronÍ gor¹cej jeszcze elektrody wolframowej i†niezastyg³ego jeziorka ciek³ego metalu przed utleniaj¹cym wp³ywem powietrza. Blok elektroniki steruje parametrami spawarki, tj. pr¹dem spawania i†przebiegami czasowymi impulsÛw - jest po³¹czony z†potencjometrami umieszczonymi w†p³ycie przedniej, ktÛrymi wp³ywa siÍ na parametry spawania. Dioda LED úwieci w†takt wystÍpowania pr¹du impulsu. Spawarki IMPULSTIG moøna uøyÊ rÛwnieø do spawania elektrodami otulonymi. WÛwczas naleøy zmieniÊ palnik TIG na zwyk³y uchwyt spawalniczy, prze³¹cznik rodzaju pracy Prp (rys. 4) ustawiÊ w†odpowiednim po³oøeniu, a†potencjometry wartoúci pr¹du ustawiÊ w†takim samym po³oøeniu (eliminacja efektu pulsowania). Na rys. 4 przedstawiono schemat elektryczny spawarki. NapiÍcie wtÛrne†z†transformatora Tr1 (po wyprostowaniu - mostek Pr1) polaryzuje bazÍ tranzystora T1 poprzez dzielnik napiÍciowy z³oøony z†opornikÛw R3 i†R4. Tranzystory T1 i†T2 tworz¹ obwÛd detektora ìzeraî napiÍcia sieci zasilaj¹cej (rys. 5). Kolektor tranzystora T2 jest pod³¹czony do wejúÊ uk³adÛw scalonych US2 i†US3, ktÛre pracuj¹ w†konfiguracji generatorÛw monostabilnych. Kaødorazowo, gdy na wejúciu tych uk³adÛw wyst¹pi zbocze opadaj¹ce, to na ich wyjúciach (wyprowadzenie 3) wyst¹pi¹ poziomy wysokie, ktÛrych czas trwania wynosi tH = 1,1 (PR1+R8)*C5 i†tH = 1,1*(PR2+R10)*C6. Uzyskano minimalny czas trwania impulsu rÛwny 1,25 ms (rys. 6) i†czas maksymalny 7,81 ms (rys. 7). W†tym zakresie czasu moøna regulowaÊ potencjometrami PR1 i†PR2 czas trwania wysokiego poziomu na wyjúciu generatorÛw US2 i†US3 (zbocze opadaj¹ce sygna³u wyjúciowego uaktywnia uk³ad sterowania bramkami tyrystorÛw Ty1 i†Ty2), a†tym samym umoøliwia regulacjÍ pr¹du wyj- 29 Spawarka impulsowa do spawania metodą TIG Rys. 4. Schemat elektryczny spawarki 30 Elektronika Praktyczna 12/2003 Spawarka impulsowa do spawania metodą TIG Rys. 5. Przebieg napięcia na wyjściu detektora zera sieci (jego rolę spełniają tranzystory T1 i T2) − przebieg na wejściach wyzwalają− cych układów czasowych US2 i US3 Rys. 6. Najkrótszy czas impulsu uzyskiwany na wyjściu generatorów monostabilnych wynosi 1,25 ms (przebieg na wyjściach układów scalonych US2 i US3 przy minimalnym prądzie wyjściowym spawarki) Rys. 7. Najdłuższy czas impulsu uzyskiwany na wyjściu generatorów monostabilnych wynosi 7,81 ms (przebieg na wyjściach układów scalonych US2 i US3 przy maksymalnym prądzie wyjściowym spawarki) Elektronika Praktyczna 12/2003 úciowego spawarki. Potencjometrem PR1 regulowany jest pr¹d bazowy (Ib), natomiast potencjometrem PR2 nastawiany jest pr¹d†impulsu (Ii). Sygna³y wyjúciowe z†obwodÛw US2 i†US3 s¹ ìnegowaneî (odwracane) przez tranzystory T3 i†T5, ktÛrych kolektory s¹ ze sob¹ po³¹czone. W†oparciu o†uk³ad scalony US6 (NE 555) jest zbudowany przerzutnik astabilny, ktÛrego zadaniem jest generowanie impulsÛw steruj¹cych bezpoúrednio tranzystorem T7, w†ktÛrego kolektorze jest w³¹czone uzwojenie pierwotne transformatora (Tr2) steruj¹cego bramkami tyrystorÛw. Na wyjúciu US6 (wyprowadzenie 3) uzyskano przebieg prostok¹tny o†czÍstotliwoúci 1,74 kHz i†o†czasie trwania impulsu ok. 47 mikrosekund (rys. 8). Sterowanie bramkami tyrystorÛw pakietem impulsÛw†daje gwarancjÍ pewnego ich za³¹czenia. Do bazy tranzystora T7 do³¹czone s¹ kolektory tranzystorÛw T3 i†T5, ktÛre spe³niaj¹ rolÍ kluczy blokuj¹cych tranzystor T7. Uzwojenie wtÛrne transformatora Tr2 stanowi¹ dwa uzwojenia galwanicznie od siebie oddzielone i†do³¹czone miÍdzy bramkÍ i†katodÍ tyrystorÛw Ty1 i†Ty2. Naleøy pamiÍtaÊ, øe polaryzacja impulsu przy³oøonego do bramki tyrystora jest dodatnia wzglÍdem katody. Uk³ady scalone US4 i†US5 pracuj¹ jako przerzutniki monostabilne w†po³¹czeniu kaskadowym zamkniÍtym. Oznacza to, øe opadaj¹ce zbocze sygna³u wyjúciowego jednego z†przerzutnikÛw uaktywnia wejúcie drugiego przerzutnika. Zaleønoúci na czas trwania impulsu (tH) s¹ takie same, jak w†przypadku uk³adÛw US2 i†US3. Czas trwania impulsu wyjúciowego kaødego z†dwÛch przerzutnikÛw moøna regulowaÊ p³ynnie w†zakresie od 0,06 do 1†sekundy. Potencjometrem PR3 regulowany jest czas przerwy pomiÍdzy impulsami, natomiast potencjometrem PR4 reguluje siÍ czas trwania impulsu pr¹du spawania. Dioda LED, umieszczona na p³ycie czo³owej spawarki, úwieci siÍ podczas trwania impulsu. Elementy D6, C17 i†R17 umoøliwiaj¹ pewn¹ pracÍ generatora. Wyjúcia uk³adÛw US4 i†US5 steruj¹ bazami tranzystorÛw T6 i†T4, ktÛre (zgodnie z†nastaw¹ czasow¹) klu- Rys. 8. Przebieg napięcia na wyjściu układu US6 czuj¹ tranzystory T3 i†T5. Styki prze³¹cznika rodzaju pracy Prp dla trybu spawania elektrod¹ otulon¹ zwieraj¹ do masy bazÍ tranzystora T8, tym samym uniemoøliwiaj¹c w³¹czenie elektrozaworu gazu, a†drugi zespÛ³ stykÛw Prp za³¹cza przekaünik P3. W†obwodzie sterowania jest wy³¹cznik termiczny Wt. Stabilizator napiÍcia US1 (Ul7812) zaopatrzony jest w†radiator z†blachy aluminiowej o†gruboúci 2†mm o†powierzchni ok. 8†cm2. Transformator Tr2 wykonany jest z†kszta³tek typu EI o†powierzchni kolumny úrodkowej rÛwnej 1†cm2. Doskonale nadaj¹ siÍ do wykorzystania transformatory montowane w†tarczowych aparatach telefonicznych (produkowanych przed laty przez RWT Radom), ktÛrych karkasy przystosowane s¹ do montaøu na p³ytce drukowanej. Uzwojenie pierwotne naleøy wykonaÊ drutem DNE 0,2 - 100 zwojÛw, natomiast uzwojenia wtÛrne maj¹ po 70 zwojÛw drutem DNE 0,2. Naleøy zadbaÊ takøe o†staranne odizolowanie od siebie poszczegÛlnych uzwojeÒ. Diody D9 i†D10 s¹ polaryzowane zaporowo w†stosunku do polaryzacji impulsu wyjúciowego transformatora Tr2. Przed montaøem tych diod niezbÍdne staje siÍ uøycie oscyloskopu w†celu okreúlenia polaryzacji impulsu. Zaleca siÍ stosowanie podstawek pod uk³ady scalone US2...US6. Transformator Tr1 220/24/12 V†ma moc ok. 20 VA. Montaø i†uruchomienie Duøe trudnoúci moøe sprawiÊ wykonanie obudowy. Powinna byÊ wykonana z†blachy, np. stalowej, i†musi byÊ stabilna mecha- 31 Spawarka impulsowa do spawania metodą TIG Rys. 9. Przebieg prądu wyjściowego spawarki (przez 6 półokresów sieci zasilającej płynie prąd bazowy i przez 6 półokresów występuje prąd impulsu) nicznie. Moøna wykorzystaÊ gotow¹ obudowÍ, o†wystarczaj¹co duøej kubaturze, od spawarki do spawania rÍcznego. W†pierwszej kolejnoúci naleøy zaplanowaÊ rozmieszczenie podzespo³Ûw najwiÍkszych gabarytowo, tj. transformatora spawalniczego, prostownika mocy z radiatorami i†wentylatorem usuwaj¹cym powietrze z†wnÍtrza spawarki. Naleøy zadbaÊ, aby wentylator rÛwnie skutecznie sch³adza³ prostownik mocy, jak i†transformator spawalniczy. Na oporniku R1, w†przypadku spawania ma³ymi pr¹dami, wydziela siÍ duøa iloúÊ ciep³a Zatem naleøy go umieúciÊ w†strumieniu przep³ywu powietrza ch³odz¹cego. NastÍpnie naleøy zamontowaÊ krÛÊce (wejúciowy i†wyjúciowy) gazu ochronnego. Potem powinien byÊ montowany, jak najdalej od transformatora spawalniczego, transformator Tr1. Jeúli nie jest to moøliwe, naleøy transformator Tr1 ochroniÊ ekranem z†blachy stalowej o†gruboúci 1...2 mm. Na koniec montowane s¹ cztery potencjometry, dioda LED, gniazdo steruj¹ce i†bezpiecznikowe, wy³¹cznik oraz przewÛd sieciowy, a†takøe prze³¹cznik rodzaju pracy Prp. Tak rozmieszczone podzespo³y naleøy po³¹czyÊ przewodami, zaczynaj¹c od tych o najwiÍkszych przekrojach. Bardzo waøne jest, aby spawarka by³a skutecznie zabezpieczona przed poraøeniem elektrycznym uøytkownika. Wszystkie przewody i†podzespo³y, bÍd¹ce pod napiÍciem sieci zasilaj¹cej, musz¹ mieÊ odpowiedni¹ izolacjÍ i†zostaÊ sta- 32 rannie sprawdzone przed montaøem oraz przed uruchomieniem. P³ytka bloku elektroniki powinna byÊ montowana jak najdalej od transformatora spawalniczego, najlepiej w†pobliøu potencjometrÛw regulacyjnych. P³ytka z†transformatorem steruj¹cym bramkami tyrystorÛw oraz z†uk³adem czasowym dla elektrozaworu gazu powinna byÊ montowana tuø przy tyrystorach. Przekaünik P1 (typ R15. prod. Relpol Øary) musi byÊ umieszczony w†pobliøu prostownika mocy. Na koniec montowane s¹ przewody o†ma³ych przekrojach. W†ich pewnym zamocowaniu do wewnÍtrznych krawÍdzi obudowy skuteczny okaza³ siÍ klej Super Glue. Po sprawdzeniu prawid³owoúci montaøu wszystkich podzespo³Ûw i†okablowania moøna przyst¹piÊ do uruchomienia spawarki. Przed w³¹czeniem do sieci zasilaj¹cej naleøy od³¹czyÊ uzwojenie pierwotne transformatora spawalniczego. SprawdziÊ, czy regulacja wszystkich funkcji spawarki jest prawid³owa. SzczegÛlnie naleøy zwrÛciÊ uwagÍ na polaryzacjÍ impulsÛw steruj¹cych bramkami tyrystorÛw. W†tym przypadku niezbÍdny jest oscyloskop i†porÛwnanie z†zamieszczonymi oscylogramami. Po dok³adnym sprawdzeniu przebiegÛw moøna pod³¹czyÊ transformator spawalniczy. Sprawdzenie ca³oúci odbywa siÍ poprzez pod³¹czenie do wyjúcia spawarki opornika o†mocy co najmniej 1000 W i†opornoúci 1†do 5†Ω. Na ekranie oscyloskopu zauwaøymy przebieg napiÍcia (na oporniku) przedstawiony na rys. 9. Po stwierdzeniu prawid³owoúci dzia³ania spawarki pora przyst¹piÊ do spawania. ElektrodÍ wolframow¹ przygotowuje siÍ poprzez zeszlifowanie jej koÒca w†kszta³t stoøka, ktÛrego wysokoúÊ wynosi od 3†do 5 úrednic elektrody. DobÛr úrednic elektrod wolframowych zaleøy od pr¹du spawania.†W†przypadku opisanej spawarki wynosi od 1†do 2,5 mm. Po pod³¹czeniu gazu i†stwierdzeniu jego wyp³ywu z†dyszy palnika, inicjuje siÍ ³uk spawalniczy poprzez umiejÍtne, chwilowe zwarcie z†materia³em spawanym, oderwanie elektrody i ìutrzymanieî ³uku. WYKAZ ELEMENTÓW Rezystory R1: 6...10 Ω/40 W R2: 2,2 kΩ/5 W R3...R7, R9, R11...R15, R23: 5,1 kΩ R8, R10: 200 Ω R16, R18...R20, R25, R27: 1 kΩ R17: 1 MΩ R21: 1,2 kΩ R24, R26: 10 Ω R22: 22 kΩ R28: 27 kΩ PR1, PR2: potencjometr 1 kΩ PR3, PR4: potencjometr 22 kΩ Kondensatory C1: 10 µF/150 V C2: 4,7 µF/25 V C3: 100 µF/35 V C4; 100 µF/16 V C5, C6; 4,7 µF/16V C7, C8, C13, C14, C16; 100 nF C9, C10: 22 µF/50V C11, C12: 10 nF C15: 33 nF C17: 2,2 µF/16 V C18: 10 µF/35 V C19: 47 µF/35 V (dobrać) C20: 100 nF/63 V Półprzewodniki D1, D2: dioda 150 A/200 V D3, D4: dioda 25 A/200 V lub 1/2 mostka prostowniczego D5, D8...D12: dioda 1 A/200 V LED: dowolny D6, D7, D13: dioda krzemowa, małej mocy Pr1, Pr2, Pr3: mostek prostowniczy 1A/200 V T1...T6: BC107 lub podobne T7, T8: TIP122 lub podone (Darlington) US1: UL7812 lub podobny (stabilizator 12 V) US2...US6: NE555 Różne Tr1: transformator 220V/24V/12V 20VA Ts, Tr2: transformator − patrz opis P1: przekaźnik typ R15, cewka 24V/50 Hz (trzy zestawy styków) P2: przekaźnik − styki 1 A, cewka 24 V P3: przekaźnik − styki 1 A, cewka 12 V W1: wyłącznik 25 A/250 V Ws: wyłącznik 1 A/250 V W: wentylator 220 V/50 Hz B: bezpiecznik topikowy 1 A EZ: elektrozawór gazu, cewka 24 V/50 Hz Palnik TIG: typ USM−200 lub podobny Wp: gniazdo sterujące Wt: wyłącznik termiczny, umieszczony na uzwojeniu transformatora spawalniczego Prp: mikroprzełącznik rodzaju pracy Elektronika Praktyczna 12/2003 Spawarka impulsowa do spawania metodą TIG Wszystkie trzy prÛbki s¹ ze stali nierdzewnej. Na koniec przypomnÍ o†koniecznoúci stosowania úrodkÛw ochrony osobistej. Ca³e cia³o podczas spawania ³ukowego musi byÊ os³oniÍte. Dotyczy to szczegÛlnie twarzy, ktÛr¹ naleøy os³oniÊ odpowiedni¹ mask¹ spawalnicz¹. Ignorowanie tego zabezpieczenia grozi powaønymi nastÍpstwami dla zdrowia. Stanis³aw Krasicki, [email protected] Fot. 10. Przykład połączenia pachwinowego po częściowym wytrawieniu za pomocą specjalnej pasty Uwagi koÒcowe Zagadnienia spawalnicze przedstawi³em tylko w†szcz¹tkowym zakresie, gdyø celem tego Fot. 11. Przykład połączenia pachwinowego po częściowym wytrawieniu za pomocą specjalnej pasty oraz częściowo wypolerowa− nego pastami polerskimi Elektronika Praktyczna 12/2003 artyku³u jest wy³¹cznie opis budowy spawarki. Przemys³ wytwÛrczy urz¹dzeÒ spawalniczych dostarcza wiele rÛønych spawarek, czÍsto sterowanych mikroprocesorami. Dlatego zainteresowanych odsy³am do specjalistycznej literatury oraz do ukazuj¹cego siÍ co miesi¹c fachowego pisma ìPrzegl¹d Spawalnictwaî. Trzy prÛbki (fot. 10...12) obrazuj¹ praktyczne moøliwoúci opisanej spawarki. Po³¹czenia pachwinowe wykonane zosta³y z†uøyciem materia³u dodatkowego, przy czym spoina w†prÛbce z†fot. 10 i†11 zosta³a wytrawiona za pomoc¹ specjalnej pasty (do nabycia w†hurtowniach artyku³Ûw spawalniczych) oraz czÍúciowo wypolerowana pastami polerskimi. PrÛbka pokazana na fot. 12 przedstawia wygl¹d po³¹czenia bezpoúrednio po spawaniu (bez stosowania úrodkÛw chemicznych i†polerowania mechanicznego). Literatura: Poradnik Inøyniera - Spawalnictwo, Wydawnictwa Naukowo Techniczne, tom I†i†II, W-wa 1983 r. doc. dr inø. Stanis³aw Bryú i†inni. Fot. 12. Wygląd połączenia bezpośrednio po spawaniu 33 Stereofoniczny wzmacniacz P R O klasy J E DK2x20W T Y Stereofoniczny wzmacniacz klasy D 2x20W AVT−550 Wzmacniacze klasy D†zyskuj¹ od kilku lat coraz wiÍksz¹ popularnoúÊ mimo co prawda coraz rzadszych negatywnych opinii audiofilÛw. Kolejny, bardzo nowoczesny konstrukcyjnie wzmacniacz tego rodzaju przedstawiamy w†artykule. Rekomendacje: jest to wzmacniacz, ktÛry doskonale sprawdzi siÍ zarÛwno w†samochodzie, jak i†jako stacjonarny w†domowym zestawie audio. Tab. 1. Wybrane parametry stereofonicznego wzmacniacza klasy D 2x20W ✦ napiêcie zasilania wzmacniacza 8...18 V, ✦ moc 20 W przy obci¹¿eniu 8Ω lub 13 W przy 4Ω i napiêciu zasilania 18 V (10% THD+N), ✦ THD+N 1% przy mocy 16 W/8Ω lub 10 W/4Ω, ✦ THD+N 0,3% przy mocy 2 W/8Ω i napiêciu zasilania 18 V, ✦ czêstotliwoœæ oscylatora 250 kHz, ✦ pasmo przenoszenia 20 Hz do 20 kHz, ✦ ma wbudowany obwód zapobiegaj¹cy stukom w g³oœnikach podczas w³¹czania, ✦ wbudowane zabezpieczenie przeciwzwarciowe wyjœæ oraz termiczne, ✦ mo¿liwoœæ pracy w trybie mostkowym, ✦ zastosowana technika modulacji eliminuje zazwyczaj du¿y filtr LC oraz polepsza SNR i skutecznoœæ wzmacniacza. Elektronika Praktyczna 12/2003 CzÍsto wzmacniacze pracuj¹ce w†klasie D†s¹ nazywane wzmacniaczami impulsowymi lub cyfrowymi, co odzwierciedla sposÛb ich pracy. Wzmacniacze pracuj¹ce impulsowo charakteryzuj¹ siÍ niew¹tpliw¹ zalet¹ - ich sprawnoúÊ siÍga 90%, podczas gdy wzmacniacze liniowe maj¹ sprawnoúci co najwyøej 60%. DziÍki temu wzmacniaczy pracuj¹cych w†klasie D nie trzeba wyposaøaÊ w†duøe i†ciÍøkie radiatory, a†przy mniejszych mocach wzmacniacza øaden radiator nie jest potrzebny. Wysoka sprawnoúÊ wzmacniacza niekoniecznie musi byÊ okupiona znacznym skomplikowaniem jego budowy. Nowoczesne, scalone wzmacniacze impulsowe pracuj¹ w†otoczeniu zaledwie kilku do³¹czonych elementÛw zewnÍtrznych. Najwaøniejsz¹ wad¹ wiÍkszoúci wzmacniaczy impulsowych jest koniecznoúÊ stosowania na jego wyjúciu dolnoprzepustowych filtrÛw LC przystosowanych do obci¹øeÒ wysokopr¹dowych. Napisa³em ìwiÍkszoúci wzmacniaczyî, bo istniej¹ wzmacniacze, w†ktÛrych uda³o siÍ zmniejszyÊ rozmiary, a†nawet wrÍcz wyeliminowaÊ filtry LC, zazwyczaj duøych rozmiarÛw i†drogie. Przyk³adem takiego wzmacniacza (niepotrzebuj¹cego filtrÛw LC) jest uk³ad TPA3001D1 firmy Texas Instruments. W†oparciu o†ten uk³ad wykonany zosta³ tytu³owy wzmacniacz. Jego niew¹tpliw¹ zalet¹ jest brak koniecznoúci stosowania jakiegokolwiek radiatora oraz filtrÛw LC. MoøliwoúÊ zrezygnowania z†filtru LC uda³o siÍ uzyskaÊ inøynierom z†firmy Texas Instruments dziÍki zastosowaniu zmodyfikowanego sposobu zasilania g³oúnikÛw, omÛwiÍ go w†dalszej czÍúci artyku³u. Prezentowany wzmacniacz, choÊ ma relatywnie niewielk¹ moc wyjúciow¹, moøe znaleüÊ sporo zastosowaÒ. Moøna go wykorzystaÊ jako multimedialny wzmacniacz montowany w†obudowie komputera PC czy w†obudowie g³oúnikÛw, a†takøe jako wzmacniacz do samochodu. S¹dzÍ, øe zastosowaÒ wzmacniacza moøe byÊ wiele dziÍki jego†niew¹tpliwej zalecie jak¹ jest prosta budowa oraz niewielka liczba elementÛw zewnÍtrznych. Podstawowe parametry wzmacniacza zawarto w†tab. 1. Nowoczesna klasa D W klasie D†wykorzystuje siÍ modulacjÍ sygna³u PWM, zamiast liniowego wzmacniania sygna³u, typowego dla pracy w†klasie A†i†AB. We wzmacniaczach im- 21 Stereofoniczny wzmacniacz klasy D 2x20W Rys. 2. Ilustracja tworzenia przebiegu PWM porÛwnywany jest w†komparatorze z†wytwarzanym wewnÍtrznie przebiegiem trÛjk¹tnym, tworz¹c na wyjúciu modulowany przebieg PWM. Przebieg ten steruje tranzystorami mocy (kluczami pr¹dowymi), ktÛrych zadaniem jest dostarczenie wysokopr¹dowego sygna³u wyjúciowego. Na rys. 2 pokazano, w†jaki sposÛb jest tworzony przebieg PWM przez kompaRys. 1. Schemat blokowy układu scalonego TPA3001D1 rator. Jak widaÊ, analogowy sygna³ wejúciowy jest porÛwnywany pulsowych sygna³ audio jest jaúniÊ jak kszta³towany jest prze- z†przebiegiem trÛjk¹tnym o†czÍsprzekszta³cany na zmodulowany bieg PWM. Sygna³ wejúciowy au- totliwoúci 250 kHz. Aby skuteczprzebieg PWM, ktÛrego uúredniodio podawany jest na przed- nie przetworzyÊ sygna³ audio na na wartoúÊ niesie informacjÍ wzmacniacz, a†dalej na integrator przebieg PWM, czÍstotliwoúÊ przeo†chwilowej amplitudzie sygna³u (bÍd¹cy filtrem dolnoprzepusto- biegu trÛjk¹tnego powinna kilkawejúciowego. Wzmacniacz krotnie przewyøszaÊ pasklasy D†ma bardzo duø¹ mo sygna³Ûw akustyczKłopoty z układami? sprawnoúÊ energetyczn¹, nych. Kiedy napiÍcie syggdyø tranzystory stopnia na³u audio jest wiÍksze od Wbrew opiniom malkontentów, układy wyjúciowego pracuj¹ wynapiÍcia przebiegu trÛjk¹tTPA3001D1 są łatwo dostępne: można je ³¹cznie jako klucze, czyli nego, na wyjúciu komparaotrzymać bezpośrednio z firmy Texas znajduj¹ siÍ w†jednym tora pojawi siÍ sygna³ Instruments jako bezpłatne próbki. z†dwÛch stanÛw: w³¹czenia o†poziomie wysokim (naZamówienia należy składać bezpośrednio albo wy³¹czenia. piÍcie dodatnie), natomiast na stronie internetowej producenta. Najpierw postaram siÍ w†przeciwnym wypadku opisaÊ jak jest tworzony bÍdzie poziom niski (namodulowany sygna³ PWM piÍcie zerowe). oraz odpowiedzieÊ na pyTeoretycznie, wzmactania: dlaczego s³yszy siÍ niacz klasy D†moøe mieÊ sygna³y akustyczne, a†nie sprawnoúÊ energetyczn¹ s³yszy sk³adowej sygna³u blisko 100%, poniewaø o†czÍstotliwoúci sygna³u kluczowane tranzystory poPWM, dlaczego przetwawinny dostarczaÊ do obrzanie PWM jest bardziej ci¹øenia tak¹ sam¹ moc jak pobrana z†zasilacza. Øeby skuteczne od wzmacniania tak siÍ sta³o, tranzystory liniowego, a†takøe dlaczeMOSFET musz¹ mieÊ zego niektÛre wzmacniacze row¹ rezystancje w†stanie impulsowe potrzebuj¹ wyjotwarcia oraz powinny byÊ úciowych filtrÛw LC a†insterowane napiÍciowo (bez ne nie. pr¹du bramki). Niestety, Jak we wzmacniaczu klasy D†tworzony jest przebieg wym), ktÛrego zadaniem jest odfil- jeszcze nie opracowano idealnego PWM zawieraj¹cy informacjÍ o trowanie sk³adowych o wyøszych tranzystora o†takich parametrach, sygnale akustycznym? Na rys. 1 czÍstotliwoúciach. Filtracja tych dlatego teø trzeba liczyÊ siÍ ze przedstawiono schemat blokowy sk³adowych sygna³u ma na celu stratami mocy, aczkolwiek nieuk³adu TPA3001D1, w†oparciu zapobiegniÍcie skutkom aliasingu wielkimi. Zazwyczaj tylko 10% o†ktÛry zosta³ zbudowany wzmacoraz polepsza stabilnoúÊ wzmac- pobieranej z†zasilacza energii jest niacz. Schemat ten pozwoli wyniacza. NastÍpnie sygna³ audio tracone. 22 Elektronika Praktyczna 12/2003 Stereofoniczny wzmacniacz klasy D 2x20W Rys. 3. Zależność mocy traconej we wzmacniaczach klasy D i AB w funkcji mocy wyjściowej DziÍki duøej sprawnoúci wzmacniacza nie wystÍpuje problem odprowadzania ciep³a powsta³ego wskutek duøych strat mocy. Przy zasilaniu wzmacniacza impulsowego napiÍciem 12†V nie jest potrzebny øaden radiator. Przy zasilaniu napiÍciem 12 V wzmacniacza pracuj¹cego w†klasie AB radiator jest juø wymagany. Na rys. 3 pokazano straty mocy we wzmacniaczu w zaleønoúci od dostarczanej mocy, odpowiednio klas D†i†AB, przy obci¹øeniu 4†i†8Ω (rysunek zaczerpniÍty z†dokumentacji firmy Texas Instru- ments). Dla przyk³adu, wzmacniacz klasy D†przy mocy 10 W i†obci¹øeniu 4 Ω ma straty mocy na poziomie ok. 3,7 W, a†wzmacniacz klasy AB przy tej samej mocy wyjúciowej ma aø 14 W strat! Jak widaÊ rÛønice w†mocy strat s¹ spore. Modulacja filter-free, czyli jak pozbyÊ siÍ filtru LC Wzmacniacz TPA3001D1 uøywa trochÍ innego rodzaju modulacji PWM niø wczeúniej przedstawiona, dziÍki czemu nie jest Rys. 4. Przebiegi sygnałów na wejściach i wyjściach komparatorów przy modulacji PWM "filter−free" Elektronika Praktyczna 12/2003 konieczne stosowanie filtrÛw LC. Przy modulacji tego rodzaju przebieg na wyjúciu nieodwracaj¹cym jest uzyskiwany tak samo jak w†klasycznym wzmacniaczu klasy D, ale juø przebieg na wyjúciu odwracaj¹cym nie jest juø tylko inwersj¹ przebiegu z†wyjúcia nieodwracaj¹cego. Dla ustalenia uwagi wyjúcie nieodwracaj¹ce bÍdzie oznaczane Vout+, a†wyjúcie odwracaj¹ce Vout-. Przy tej modulacji stosowane s¹ dwa komparatory oraz dwa integratory. Komparator pierwszy porÛwnuje przebieg z†integratora tworz¹c przebieg Vout+, natomiast sygna³ z†drugiego integratora jest porÛwnywany w†przypisanym mu komparatorze, na wyjúciu ktÛrego otrzymuje siÍ sygna³ Vout-. Na rys. 4 pokazano sygna³y na wejúciach oraz wyjúciach komparatorÛw†w†opisywanym sposobie modulacji. Na rysunku pokazano takøe rÛønicowy sygna³ wystÍpuj¹cy na g³oúniku. Jak widaÊ, g³oúnik jest zasilany krÛtkimi, prostok¹tnymi impulsami pr¹dowymi. Na rys. 5 pokazano przebiegi na wyjúciu wzmacniacza przy sygnale wejúciowym o†czÍstotliwoúci 20 kHz. Na rysunku da siÍ zauwaøyÊ, øe przy wzroúcie amplitudy sygna³u wejúciowego roúnie wype³nienie przebiegu PWM. Sygna³ audio wystÍpuj¹cy w†przebiegu PWM jest ³atwiej analizowaÊ w†dziedzinie czÍstotliwoúci. ìZwyk³yî sygna³ PWM ma sk³adowe o†czÍstotliwoúci sygna³u wejúciowego, czÍstotliwoúci przebiegu PWM oraz czÍstotliwoúci harmonicznych sumy bocznego pasma. Na rys. 6 przedstawiono w†dziedzinie czÍstotliwoúci sygna³y: wejúciowy, wyjúciowy oraz Rys. 5. Przebiegi na wyjściu wzmacniacza przy sygnale wejściowym o częstotliwości 20 kHz 23 Stereofoniczny wzmacniacz klasy D 2x20W Rys. 6. Rozkład widmowy sygnału wejściowego, wyjściowego oraz wyjściowego po odfiltrowaniu wyjúciowy odfiltrowany. Rysunek ten pokazuje, jak z†przebiegu PWM jest ìwyci¹ganyî sygna³ audio poprzez filtracjÍ dolnoprzepustow¹. Otrzymany sygna³ audio nie jest czystym sygna³em 1†kHz, lecz posiada liczne harmoniczne. G³oúnik nie moøe odtwarzaÊ czÍstotliwoúci sygna³u PWM (250 kHz) i†jego harmonicznych. Nawet jeúli by³oby to moøliwe, to ucho ludzkie nie jest w†stanie ich us³yszeÊ. S³uchacz nie by³by w†stanie odrÛøniÊ sygna³u odfiltrowanego od†niefiltrowanego (pokazanego na rys. 5) jeúli oba zosta³yby bezpoúrednio wys³ane na g³oúnik. TÍ w³aúciwoúÊ wykorzystali inøynierowie z†Texas Instruments do pozbycia siÍ wyjúciowego filtru LC. Wykorzystali oni naturaln¹ w³aúciwoúÊ s³uchu ludzkiego polegaj¹c¹ na t³umieniu sygna³Ûw o†wyøszych czÍstotliwoúciach (czyli filtracji dolnoprzepustowej). Modulacja tego rodzaju okreúlona jest przez producenta jako filter-free. Moøna teraz zadaÊ pytanie: dlaczego niektÛre wzmacniacze klasy D†wymagaj¹ filtrÛw wyjúciowych a†inne nie? Przecieø moøna podaÊ sygna³ wyjúciowy bezpoúrednio na g³oúnik. RÛønica jest w†wartoúci pr¹du wystÍpuj¹cej podczas prze³¹czania tranzystorÛw. W†modulacji filter-free natÍøenie pr¹du podczas prze³¹czania tranzystorÛw jest zmniejszone do 24 minimum. W³aúnie zmniejszenie tego pr¹du pozwala na wyeliminowanie elementÛw filtru LC. W†takim przypadku prostym filtrem bÍdzie sam g³oúnik, ktÛrego jednym z†g³Ûwnych elementÛw jest przecieø cewka. DziÍki wyeliminowaniu filtrÛw†LC wzmacniacz jest prosty w†budowie, ma takøe wysok¹ sprawnoúÊ. Na rys. 7 przedstawiano przyk³ady przebiegÛw typowych dla modulacji typu filter-free. Dla przypomnienia, przebiegi na wyjúciach VOUT+ oraz VOUT- w†tym typie modulacji s¹ w†fazie. Przy napiÍciu na wejúciu wiÍkszym od 0, przebieg na wyjúciu Vout+ ma wype³nienie wiÍksze od 50%, a†Vout- mniejsze od 50%. W†przypadku, gdy napiÍcie jest mniejsze od 0, Vout+ bÍdzie mieÊ wype³nienie mniejsze od 50% a†Vout- wiÍksze od 50%. W†przypadku napiÍcia 0†V przebiegi na Vout+ i†Vout- maj¹ wype³nienie 50%, ale s¹ trochÍ przesuniÍte, dlatego g³oúnik jest zasilany krÛtkimi szpilkami pr¹dowymi. Takie sterowanie g³oúnika redukuje straty w†samym filtrze LC oraz w†g³oúniku. Pozwala takøe na stosowanie g³oúnika w†roli filtru bez straty skutecznoúci wzmacniacza. Zniekszta³cenia powstaj¹ce w†wyniku zasilania g³oúnikÛw sygna³em prostok¹tnym s¹ lokowane znacznie Rys. 7. Przebiegi napięć dla modulacji filter−free Elektronika Praktyczna 12/2003 Stereofoniczny wzmacniacz klasy D 2x20W powyøej granicy s³yszalnoúci, czyli znacznie powyøej 20†kHz. Dla zmniejszenia emisji zak³ÛceÒ, producent zaleca w takim rodzaju modulacji zastosowanie w†wyjúciach wzmacniacza koralikÛw ferrytowych, ktÛre zminimalizuj¹ emisjÍ zak³ÛceÒ wysokoczÍstotliwoúciowych o czÍstotliwoúciach wiÍkszych niø 1†MHz. W†przypadku potrzeby zmniejszenia emisji zak³ÛceÒ o†czÍstotliwoúciach mniejszych niø 1†MHz producent zaleca zastosowanie filtru LC. Opis dzia³ania uk³adu Rys. 8. Schemat elektryczny wzmacniacza Elektronika Praktyczna 12/2003 Schemat elektryczny wzmacniacza pokazano na rys. 8. £atwo zauwaøyÊ, øe wzmacniacz sk³ada siÍ z†dwÛch takich samych czÍúci (po jednej dla kaødego kana³u). Sygna³y wejúciowe s¹ podawane na wejúcia rÛønicowe. Aby skorzystaÊ tylko z†jednego wejúcia (konfiguracja asymetryczna), wystarczy wejúcia IR- oraz IL- zewrzeÊ do masy. Wzmacniacz ma regulowane zworkami ZW1, ZW2 wzmocnienie wewnÍtrznego przedwzmacniacza. Wartoúci wzmocnienia odpowiadaj¹ce pozycjom zworek zestawiono w†tab. 2. Rezystory R1...R3 podci¹gaj¹ wejúcia GAIN0, GAIN1 oraz !SHD do napiÍcia 5†V, ktÛre wystÍpuje na wyjúciu VREF. Podanie poziomu niskiego (0 V) na wejúcie SHD wprowadza wzmacniacz w†stan uúpienia, w†ktÛrym pobierany pr¹d jest mniejszy niø 1µA. Elementy C34, R4 oraz C35 i†R5 ustalaj¹ czÍstotliwoúci wewnÍtrznych oscylatorÛw na wartoúÊ 250 kHz, natomiast elementy R6, C30, R7, C31 i†R8, C32, R9, C33 wspÛ³pracuj¹ z†obwodem bootstrap. Wyjúcia wzmacniacza (OUTN i†OUTP) steruj¹ bezpoúrednio g³oúnikiem, poprzez proste filtry sk³adaj¹ce siÍ z†koralika ferrytowego i†kondensatora. Filtry te - jak wyøej wspomniano - zmniejszaj¹ emisj͆zak³ÛceÒ o†czÍstotliwoúciach wiÍkszych od 1†MHz. Elementy filtrÛw LC: L5, C5, L6, C6, L7, C7 oraz L8, C8 s¹ typowe dla klasycznych wzmacniaczy klasy D, ktÛre w†tym wzmacniaczu z†wyjaúnionych przyczyn nie musz¹ byÊ montowane. Pozosta³e kondensatory odpowiedzialne s¹ za filtracjÍ napiÍÊ wystÍpuj¹cych we wzmacniaczu. 25 Stereofoniczny wzmacniacz klasy D 2x20W WYKAZ ELEMENTÓW Rys. 9. Rozmieszczenie elementów na płytce drukowanej Montaø i†uruchomienie Stereofoniczny wzmacniacz naleøy zmontowaÊ na p³ytce drukowanej zgodnie z†rys. 9. Montaø wzmacniacza trzeba rozpocz¹Ê od wlutowania wzmacniaczy scalonych wykonanych w†technologii SMD. Do montaøu tych uk³adÛw potrzebna bÍdzie lutownica z†cienkim grotem. PrzydaÊ siÍ moøe cienka cyna najlepiej o†úrednicy 0,25mm lub pasta lutownicza. Wlutowanie elementÛw SMD na pierwszy rzut oka nie musi byÊ trudne lub niewykonalne prostymi metodami. Uk³ady U1, U2 dla lepszego odprowadzania ciep³a zosta³y wyposaøone od dolnej strony obudowy w†metalow¹ wk³adkÍ. Kontakt tej wk³adki z†odpowiednio wyprofilowan¹ úcieøk¹ na p³ytce drukowanej spowoduje Tab. 2. Wzmocnienie wzmacniacza w zależności od położenia ZW1 i ZW2 ZW2 ZW1 1 1 0 0 Gdzie: 26 Wzmocnienie wzmacniacza (dB) 1 12 0 18 1 23,6 0 36 “1” zworka za³o¿ona “0” zworka zdjêta polepszenie odprowadzania ciep³a z†uk³adu. By polepszyÊ kontakt metalowej p³ytki wzmacniacza ze úcieøk¹ p³ytki drukowanej, przed wlutowaniem uk³adÛw, wk³adki moøna posmarowaÊ past¹ silikonow¹. Zanim wlutowane zostan¹ uk³ady SMD, naleøy takøe ocynowaÊ przeznaczone dla nich punkty lutownicze. Po przyklejeniu do p³ytki uk³adÛw SMD moøna je zacz¹Ê lutowaÊ. Do przyklejenia moøna uøyÊ klejÛw, ktÛre maj¹ d³uøszy czas schniÍcia. Nie nadaj¹ siÍ do tego typu wszelakie Kropelki. Lutowanie uk³adÛw SMD polegaÊ bÍdzie na podgrzaniu i†dociúniÍciu ich koÒcÛwek do p³ytki drukowanej. Cyna wystÍpuj¹ca na punktach lutowniczych powinna wystarczyÊ do zalutowania koÒcÛwek uk³adÛw. Pozosta³e elementy s¹ do montaøu przewlekanego. Producent zaleca zastosowanie kondensatorÛw tantalowych, choÊ mog¹ to byÊ takøe†elektrolity. Poniewaø najczÍúciej nie bÍd¹ montowane wyjúciowe filtry LC, miejsca na elementy L5...L8 naleøy zewrzeÊ zworkami z†drutu. Wzmacniacz po zasileniu napiÍciem z†zakresu +9...18 V†powinien od razu dzia³aÊ poprawnie. Rezystory R1...R5: 120kΩ R6...R9: 51Ω Kondensatory C1...C4: 470nF C9...C15: 100nF ceramiczny C16, C17: 10µF/25V C18...C29: 1µF najlepiej tantalowy C30...C33: 220nF C34, C35: 220pF C36: 1000µF/25V C37...C40: 1nF Półprzewodniki D1...D4: Dioda Schottky’ego 1N5818 U1, U2: TPA3001D1 Różne L1...L4: koralik ferrytowy W celu dodatkowego zmniejszenia zakłóceń, montować elementy C5...C8 oraz L5...L8 o wartościach odpowiednio 470nF i 33µH dla obciążenia 8Ω, i odpowiednio 1µF i 15µH dla obciążenia 4Ω. Jak pisa³em, wzmacniacz ma wejúcia rÛønicowe, wiÍc przy korzystaniu tylko z†jednego wejúcia, wejúcia IR- i†IL- naleøy do³¹czyÊ do masy. Wzmocnienie wzmacniacza moøna dobraÊ do w³asnych potrzeb zworkami ZW1 oraz ZW2. Przy napiÍciu zasilania 18†V†i†impedancji g³oúnika 8Ω, wzmacniacz bÍdzie w†stanie oddaÊ 20 W†mocy, przy zniekszta³ceniach 10%. Przy oddawanej do obci¹øenia mocy 15 W†zniekszta³cenia THD bÍd¹ utrzymywane na poziomie 0,1%. Zniekszta³cenia zwiÍkszaj¹ siÍ wraz z moc¹ przy mocach wiÍkszych niø 15 W. W przypadku montaøu wzmacniacza w†obudowie komputera, naleøy zasiliÊ go dostÍpnym napiÍciem +12 V. Marcin Wi¹zania, AVT [email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: pcb.ep.com.pl oraz na p³ycie CD-EP12/2003B w katalogu PCB. Elektronika Praktyczna 12/2003 Licznik P R Oenergii J E K elektrycznej T Y i watomierz Miernik energii elektrycznej i watomierz, część 1 AVT−555 Korzystaj¹c intensywnie z†komputera, czÍsto zostawiamy go w³¹czonym przez 24†godz/dobÍ. Zadajemy sobie wÛwczas pytanie: ìIle energii zuøywa ten komputer?î. Odpowiedü na to pytanie pozwala obliczyÊ ile to kosztuje. Niestety rada w rodzaju: ìzmierz pobÛr pr¹du amperomierzem, pomnÛø przez 220V i czas w³¹czeniaî nie jest w³aúciwa. Do prawid³owego pomiaru mocy czynnej wymagany jest bardziej skomplikowany miernik niø amperomierz jest nim watomierz. Natomiast aby okreúliÊ pobran¹ energiÍ naleøy ìúledziÊ" pobieran¹ moc zasilania w czasie. Rekomendacje: miernik energii niezbÍdny wszystkim uøytkownikom urz¹dzeÒ zasilanych z†sieci energetycznej, ktÛrym zaleøy na zminimalizowaniu wysokoúci rachunkÛw p³aconych za energiÍ elektryczn¹. 14 O†mocach w†telegraficznym skrÛcie Moc chwilowa pobierana przez odbiornik w†chwili t†jest rÛwna: Obliczenie mocy pobranej przez odbiornik jest ³atwe, gdy jest on zasilany ze ürÛd³a pr¹du sta³ego. Wystarczy zmierzyÊ napiÍcie i†pr¹d, pomnoøyÊ i†otrzymujemy moc w†watach. Gdy chcemy obliczyÊ moc odbiornika zasilanego z†sieci pr¹du przemiennego, sytuacja siÍ komplikuje. Aby poprawnie obliczyÊ moc czynn¹ (P) pobran¹ przez odbiornik naleøy jeszcze znaÊ przesuniÍcie fazowe pomiÍdzy przebiegiem sinusoidalnym napiÍcia i†pr¹du. Pomnoøenie tylko wartoúci skutecznych napiÍcia i†pr¹du da w†wyniku moc pozorn¹ (S), ktÛra jest pobierana z†sieci, ale nie jest zamieniana w†ca³oúci na pracÍ. Przyjmijmy, øe napiÍcie i†pr¹d†ma przebieg sinusoidalny wyraøaj¹cy siÍ wzorem: u (t ) = 2U sin(ωt ) i (t ) = 2 I sin(ωt − ϕ ) gdzie: U, I†- wartoúci skuteczne, φ - przesuniÍcie fazowe miÍdzy U†a†I. p(t ) = u (t ) × i (t ) = UI cos ϕ ⋅ (1 − cos(2ωt )) − UI sin ϕ ⋅ sin( 2ωt ) p (t ) = P(1 − cos(2ωt )) − Q sin( 2ωt ) , zatem: P = UI cos ϕ ; Q = UI sin ϕ ; S = UI Charakterystyka przyrz¹du Pomiar wielkoœci: ✓ mocy chwilowej (w odstêpach 1-sekundowych) czynnej, biernej i pozornej, ✓ energii czynnej, (pozornej - opcja), energii czynnej w zadanym przedziale czasowym, równie¿ w systemie dwutaryfowym, ✓ wyliczenie wspó³czynnika mocy PF, ✓ napiêcia RMS, œredniego, amplitudy dodatniej i ujemnej po³ówki przebiegu, ✓ pr¹du RMS (oraz j.w.), ✓ czêstotliwoœci napiêcia. Zakres i rozdzielczoœci: ✓ napiêcie: zakres 270 VAC, rozdzielczoœæ 0,1 V, ✓ pr¹d: zakres 14 AAC, rozdzielczoœæ 1 mA lub 10 mA (powy¿ej 250 mA), ✓ moc: 3200 VA, rozdzielczoœæ 0,1 VA, ✓ energia: maks. 2000000 kWh, rozdzielczoœæ 1 Wh, ✓ pasmo pomiarowe ok. 7 kHz. Pobór mocy: 2VA/0,25W. Zewnêtrzne wymiary: 110x90x40, obudowa plastikowa (konieczna ca³kowita izolacja galwaniczna). Elektronika Praktyczna 12/2003 Licznik energii elektrycznej i watomierz skutecznej dowolnego przebiegu w†szerokim zakresie czÍstotliwoúci jest metoda kompensacyjna na dwÛch grzejnikach rezystancyjnych. WartoúÊ skuteczn¹ moøna rÛwnieø wyliczyÊ dokonuj¹c obliczeÒ na skwantowanym przebiegu napiÍcia za pomoc¹ procesora. Dzia³anie uk³adu ADE7759 Pomiar mocy metod¹ analogow¹ jest moøliwy na dwa sposoby. Pierwszy i†najprostszy, to pomiar watomierzem wskazÛwkowym. Jest to miernik magnetoelektryczny, w†ktÛrym wychylenie wskazÛwki jest proporcjonalne do iloczynu napiÍcia i†pr¹du chwilowego, Rys. 1. Zależności pomiędzy mocami, napięciem i prądem w zależności a†wiÍc rÛwnieø jest uwzglÍdnione od kąta przesunięcia fazowego przesuniÍcie fazowe. Jak wynika z analizy†rÛwnania, czynna jest sum¹ mocy czynnych Drugi sposÛb polega na przebieg mocy chwilowej ma rÛwdla kaødej z†harmonicznych naobliczeniu mocy przez analogowy nieø kszta³t sinusoidy, ale o†dwupiÍcia i†pr¹du. W†typowym oduk³ad mnoø¹cy zbudowany ze krotnie wiÍkszej czÍstotliwoúci biorniku z†prostownikiem i†konwzmacniaczy operacyjnych, jednak (2ω). W†dodatku moc chwilowa densatorem wyg³adzaj¹cym jedyniewielka dopuszczalna dynamika moøe przybieraÊ wartoúci ujemne nie pr¹d ma bardzo odkszta³cony sygna³u na wejúciu i†wyjúciu czyni (rys. 1). WielkoúÊ cosφ jest znana przebieg od sinusoidy. Zatem moc taki przyrz¹d trudnym w†obs³udze. Czytelnikom: im mniejszy Ale wraz z†rozwojem techUwaga! k¹t przesuniÍcia fazowego niki cyfrowej moøliwe stapomiÍdzy napiÍciem a†pr¹³o siÍ obliczenie mocy (i Ze względu na bezpośrednie podłączenie dem, tym wiÍksza jest moc nie tylko) w†sposÛb ca³koprzyrządu do sieci 230VAC, w zależności czynna. Gdy pr¹d jest opÛü- od zorientowania wtyczki sieciowej włożonej wicie cyfrowy. Wystarczyniony wzglÍdem napiÍcia, ³oby w†zasadzie skwantodo gniazdka, na masie przyrządu, a więc to obci¹øenie ma charakter waÊ przebieg napiÍcia i na metalowej ramce wyświetlacza LCD indukcyjny (np. silniki), nai†pr¹du z†odpowiedni¹ może pojawić się faza napięcia sieciowego! tomiast gdy je wyprzedza, czÍstotliwoúci¹, a†reszt¹ zaZ tego względu praca z przyrządem bez to obci¹øenie ma charakter obudowy z tworzywa sztucznego jest wysoce j¹³by siÍ juø odpowiednio pojemnoúciowy. Symbolem zaprogramowany procesor. niebezpieczna. Q†oznaczono moc biern¹. Jednak wydajnoúÊ obliczeczynna jest przede wszystkim Jest ona wydzielana na reaktancji, niowa tego procesora musia³aby zaleøna od†podstawowej (pierwmoc czynna na rezystancji a†moc byÊ doúÊ duøa, poniewaø wymaszej) harmonicznej o†czÍstotliwoúpozorna na impedancji odbiornigana jest wysoka czÍstotliwoúÊ ci 50 Hz. Moc pozorna jest ka. Przebieg mocy biernej jest prÛbkowania sygna³Ûw,†aby przeobliczana klasycznie: jako iloczyn przesuniÍty w†stosunku do przebiegi niesinusoidalne (o szerokim biegu mocy czynnej o†90o (analo- wartoúci skutecznych napiÍcia widmie czÍstotliwoúci) nie powogicznie jak pr¹d w†stosunku do i†pr¹du. Stosunek mocy P/S nie dowa³y zbyt duøego b³Ídu. napiÍcia), a†wiÍc†zaleønoúÊ miÍjest jednak oznaczany jako cosφ, Na szczÍúcie producenci uk³adzy tymi mocami moøna przedlecz jako PF (power factor dÛw scalonych konstruuj¹ coraz to stawiÊ w†trÛjk¹cie mocy (rys. 2). wspÛ³czynnik mocy). W†obu przylepsze i†wymyúlniejsze ìkostkiî, inMoc bierna moøe mieÊ dwojaki padkach (cosφ, PF) naleøy d¹øyÊ tegruj¹ce wiele uk³adÛw nie³atwych charakter†zaleøny od rodzaju obdo tego, aby odbiornik pobiera³ do dyskretnego zrealizowania. ci¹øenia: indukcyjny lub pojemjak najmniej mocy biernej, lecz Uk³ady z†rodziny ADE775x firmy noúciowy. Na tych wykresach wyosi¹gniÍcie tego celu realizuje siÍ stÍpuje moc bierna indukcyjna. rÛønymi sposobami. Ca³kuj¹c (uúredniaj¹c) moc chwiWyjaúnienia wymaga jeszcze low¹ w†czasie trwania jednego pojÍcie wartoúci skutecznej (inaokresu otrzymujemy moc czynn¹ czej RMS). WartoúÊ skuteczna pr¹P, natomiast ca³kuj¹c moc czynn¹ du zmiennego odpowiada takiemu P†w†czasie t†otrzymujemy energiÍ natÍøeniu pr¹du sta³ego, ktÛry czynn¹†E†zuøyt¹ przez odbiornik. p³yn¹c w†obci¹øeniu rezystancyjW†przypadku przebiegÛw nienym wydzieli identyczn¹ moc co sinusoidalnych obliczanie mocy pr¹d zmienny. Dlatego najlepszym jest bardziej skomplikowane. Moc sposobem na zmierzenie wartoúci Rys. 2. Trójkąt mocy Elektronika Praktyczna 12/2003 15 Licznik energii elektrycznej i watomierz Rys. 3. Schemat blokowy układu ADE7759 Analog Devices s¹ tego przyk³adem, a†najnowszy uk³ad ADE7759 (dostÍpny w†sprzedaøy), to w³aúciwie kompletny watomierz sterowany cyfrowo poprzez magistralÍ szeregow¹ SPI. Na rys. 3 przedstawiono jego schemat blokowy. OpiszÍ teraz dzia³anie uk³adu scalonego, zaznaczaj¹c co zosta³o wykorzystane w†opisywanym przyrz¹dzie. Jak widaÊ, uk³ad zawiera dwa tory pomiarowe przetwarzaj¹ce sygna³y wejúciowe: tor V1 pr¹dowy i†tor V2 - napiÍciowy. Poza jednakowymi przetwornikami analogowo-cyfrowymi (A/C) tory znacznie rÛøni¹ siÍ od siebie. Wzmacniacze programowalne maj¹ moøliwoúÊ ustawienia jednej z†piÍciu wartoúci wzmocnienia: 1, 2, 4, 8†lub 16. Tor napiÍciowy ma zakres wejúciowy napiÍcia ustawiony na ±0,5 V†(rÛønicowo), natomiast tor pr¹dowy ma dodatkowo jeszcze dwa zakresy do wyboru: ±0,25 V i†±0,125 V. Te wartoúci odpowiadaj¹ 63% pe³nej skali na wyjúciu przetwornika A/ C. Poniewaø w†opisywanym watomierzu nie jest wykorzystywane wyjúcie impulsowe CF, nie ma†potrzeby kalibrowania przetwarzania bezpoúrednio w†ADE7759 za pomoc¹ rejestrÛw. Dlatego teø zmieni³em w†projekcie maksymalne napiÍcie wejúciowe doprowadzone do wejúÊ na 100% skali A/C. W†efekcie kana³ napiÍciowy moøe ìprzyjmowaÊ" napiÍcie z zakresu do 0,79 V, a†kana³ pr¹dowy pr¹d do 0,395 V. W†rezultacie lepsza jest dynamika mierzonych wartoúci napiÍÊ. Wzmocnienie wzmacniaczy ustawia siÍ za pomoc¹ jednego z†rejestrÛw bloku GAIN. Ze wzmacniaczy sygna³ trafia na 16 przetworniki A/C typu sigma-delta. Przetworniki daj¹ na wyjúciu 20-bitow¹ liczbÍ w†uzupe³nieniu do dwÛch (U2). WartoúÊ liczbow¹ w†kanale pr¹dowym moøna korygowaÊ w†zakresie ±50% za pomoc¹ rejestru APGAIN (tutaj nie wykorzystywany). W†kanale pr¹dowym wystÍpuj¹ jeszcze dwa bloki specjalne. Pierwszym jest filtr gÛrnoprzepustowy HPF1 eliminuj¹cy sk³adow¹ sta³¹, a†drugim jest cyfrowy uk³ad ca³kuj¹cy przeznaczony do wspÛ³pracy z†cewk¹ Rogowskiego, s³uø¹c¹ do pomiaru pr¹du. Obydwa bloki nie s¹ wykorzystywane w†tym watomierzu. W†kanale napiÍciowym umieszczono blok korekcji fazowej sterowany rejestrem PHCAL, wymagany, gdy do pomiaru pr¹du uøyto przek³adnika pr¹dowego lub gdy filtr HPF1 zostanie w³¹czony. Poniewaø ten watomierz mierzy pr¹d za pomoc¹ bocznika, nie jest wymagana øadna korekta fazy. NastÍpnie sygna³y obu torÛw trafiaj¹ do uk³adu mnoø¹cego. Wynikiem mnoøenia jest 20-bitowa liczba w†kodzie U2 odpowiadaj¹ca wartoúci chwilowej mocy czynnej. Uúrednianie mocy chwilowej w†filtrze dolnoprzepustowym LPF2 daje moc czynn¹. Suma tej wartoúci mocy z†zawartoúci¹ rejestru APOS pozwala zminimalizowaÊ b³¹d wartoúci niezerowej mocy przy braku obci¹øenia. Akumulacja mocy w†40-bitowym rejestrze AENERGY pozwala mierzyÊ dok³adnie iloúÊ zuøytej energii elektrycznej przez pod³¹czony odbiornik. Poniewaø wszystkie te czynnoúci odbywaj¹ siÍ ìsprzÍtowoî, w†odpowiednich blokach uk³adu ADE7759 moøliwe sta³o siÍ zmniejszenie czasu potrzebnego na przetwarzanie prÛbek danych. Cykl pracy uk³adu powtarza siÍ z†czÍstotliwoúci¹ czterokrotnie mniejsz¹ niø wynosi jego czÍstotliwoúÊ taktowania. Zalecana czÍstotliwoúÊ rezonatora kwarcowego wynosi 3,579545 MHz, a†wiÍc prÛbkowanie przebiegu wejúciowego, mnoøenie i†akumulacja energii odbywa siÍ z†czÍstotliwoúci¹ prawie 900 kHz. Z†powodu wystÍpowania zjawiska aliasingu przy przetwarzaniu analogowo-cyfrowym, konieczne jest ograniczenie pasma sygna³Ûw†wejúciowych za pomoc¹ filtrÛw RC do oko³o 7†kHz (dla -3dB spadku). W†kanale napiÍciowym wystÍpuje dodatkowo filtr LPF1 ograniczaj¹cy pasmo przebiegu do 156 Hz. Jest on wykorzystywany przez blok detekcji przejúcia przebiegu napiÍcia przez zero (wyjúcie ZX) oraz blok detekcji spadku lub zaniku napiÍcia (wyjúcie SAG). Szerzej o†tym i†jeszcze o†innych funkcjach ADE7759 moøna przeczytaÊ w†opisie udostÍpnionym przez producenta. WspomnÍ jeszcze o†jednej waønej funkcji, mianowicie o†moøliwoúci zg³aszaniu przerwania (wyjúcie IRQ) przez uk³ad pomiarowy, jeúli wyst¹pi jedno z†kilku zdarzeÒ. Moøe nim byÊ pojawienie siÍ w†specjalnym rejestrze 20-bitowej prÛbki chwilowej napiÍcia, pr¹du lub mocy, co zosta³o wykorzystane w†tym watomierzu do obliczenia wartoúci napiÍcia, pr¹du, mocy pozornej itp. CzÍstotliwoúÊ uaktualniania prÛbek zosta³a wybrana tak, aby program realizowany przez procesor zd¹øy³ obs³uøyÊ przerwanie i†dokonaÊ niezbÍdnych obliczeÒ przed nadejúciem kolejnej prÛbki. W†praktyce uda³o siÍ to wykonaÊ w†czasie krÛtszym niø 70 µs, co da³o rozdzielczoúÊ 280 prÛbek na okres sieci (50 Hz). Podsumowuj¹c: moc i†energia czynne s¹ obliczane co 1,12 µs sprzÍtowo w†ADE7759, natomiast pozosta³e wielkoúci s¹ wyliczane programowo przez procesor steruj¹cy, na podstawie prÛbek przychodz¹cych co 71 µs. Do wszystkich funkcji i†rejestrÛw dostÍp jest moøliwy poprzez szeregow¹ magistralÍ SPI. Jest to bardzo wygodne i†nowoczesne rozwi¹zanie - wszystkie ustawienia i†kalibracje dokonywane s¹ pro- Elektronika Praktyczna 12/2003 Licznik energii elektrycznej i watomierz gramowo za pomoc¹ odpowiednich opcji i†zmiennych. Magistrala SPI jest taktowana sygna³em SCLK, ktÛrego czÍstotliwoúÊ nie zaleøy od czÍstotliwoúci pracy uk³adu ADE7759. Zastosowanie 20-bitowego s³owa wyjúciowego z†przetwornikÛw A/C pozwoli³o uzyskaÊ duø¹ dynamikÍ i†rozdzielczoúÊ pomiarÛw napiÍÊ wejúciowych. Producent deklaruje dok³adnoúÊ przetwarzania 0,1% przy dynamice 1000:1 i†PF=1. Przy PF=0,5 i†skrajnej wartoúci temperatury otoczenia, b³¹d roúnie do ±0,4%. Jest to znakomita dok³adnoúÊ i†potrzebna jest dobra konstrukcja przyrz¹du (precyzyjne elementy, dobrze zaprojektowana PCB), aby nie pogorszyÊ znacz¹co tego wyniku. Budowa i†dzia³anie uk³adu Rys. 4. Schemat elektryczny miernika mocy Elektronika Praktyczna 12/2003 Na rys. 4 pokazano schemat elektryczny watomierza. Jest to schemat aplikacyjny ADE7759, nierÛøni¹cy siÍ bardzo od proponowanego przez producenta. Zasilanie czÍúci cyfrowej DVdd i†analogowej AVdd jest takie jak w†nocie aplikacyjnej. Wyjúcie wewnÍtrznego napiÍcia odniesienia 2,4 V†na nÛøce 9†zosta³o zablokowane dwoma kondensatorami: 10 µF i†100 nF. Masa czÍúci analogowej jest po³¹czona z†mas¹ cyfrow¹ w†jednym punkcie, pod uk³adem U1 (ìsymboliczny" rezystor R20 o†rezystancji 0†Ω). Nieco zmieniony jest sposÛb pod³¹czenia wejúÊ pomiarowych do sieci 230 V. NapiÍcie z†bocznika pr¹dowego RS1 o†wartoúci 0,01Ω jest podane na wejúcie rÛønicowe V1P-V1N poprzez filtr antyaliasingowy R1-C1, R2-C2 i†koraliki ferrytowe L1, L2. Koraliki ferrytowe zapobiegaj¹ przedostawaniu siÍ z†sieci do przyrz¹du impulsÛw zak³Ûcaj¹cych o†wysokiej czÍstotliwoúci. Jak juø poda³em wczeúniej, maksy- 17 Licznik energii elektrycznej i watomierz malna wartoúÊ rÛønicowa w kanale pr¹dowym zosta³a ustalona (w rejestrze GAIN) na 0,4 V†przy wzmocnieniu x2. Daje to maksymaln¹ amplitudÍ napiÍcia wejúciowego 0,2†V, co odpowiada pr¹dowi 20†A, czyli 14 Arms. Kana³ napiÍciowy rÛwnieø posiada identyczne filtry antyaliasingowe. NapiÍcie sieciowe jest dzielone w†stosunku 1:500 w†dzielniku R4/(R4+R5+R6+R7). Punkt wspÛlny napiÍÊ wejúciowych, czyli masa analogowa zosta³a†wybrana w†punkcie K2 za koralikiem ferrytowym, wiÍc wejúcia V1P i†V2N s¹ na poziomie masy. Uk³ad ADE7759 jest taktowany przbiegiem zegarowym o†czÍstotliwoúci 3,579 MHz. Wyjúcie zg³aszania przerwania (IRQ) i†detekcji zaniku lub spadku napiÍcia (SAG) oraz wejúcie uaktywniaj¹ce magistralÍ SPI (CS) s¹ podci¹gniÍte do Vdd za pomoc¹ rezystorÛw R13, R14 i†R12. Wyjúcia te s¹ pod³¹czone do odpowiednich linii mikrokontrolera steruj¹cego. Uk³adem steruje mikrokontroler ATmega16 z†popularnej rodziny AVR firmy Atmel. Tym co zadecydowa³o o†jego wyborze, by³a dostÍpnoúÊ sprzÍtowego interfejsu SPI, TWI (czyli I2C) oraz jednostki mnoø¹cej, a†takøe duøa szybkoúÊ wykonywania obliczeÒ i†moøliwoúÊ programowania pamiÍci programu w†uk³adzie docelowym (ISP). ATmega16 posiada 16KB pamiÍci Flash, co daje moøliwoúÊ zapisania prawie 8†tysiÍcy rozkazÛw - jest to wiÍc spora pamiÍÊ jak na program pisany wy³¹cznie w†asemblerze (takie by³o za³oøenie). Z†wyposaøenia ATmega16 zosta³y wykorzystane jeszcze: Watchdog i†Brown-Out-Detector (generuje sygna³ zeruj¹cy przy zbyt niskim napiÍciu zasilania), funkcja ICP timera T1 (mierzenie czasu trwania impulsu) oraz dwa wejúcia przerwaÒ zewnÍtrznych (INT0 i†INT2). Mikrokontroler jest zasilany przez filtr LC (L4, C17, C18), co ma dodatkowo zapobiegaÊ moøliwoúci zak³Ûcenia jego pracy. Taktowany jest sygna³em zegarowym stabilizowanym za pomoc¹ rezonatora 8†MHz, dziÍki czemu ³atwo jest obliczyÊ czasy wykonywania procedur. Do portu A†oraz linii PD4 PD5 i†PD7 podpiÍto alfanumeryczny wyúwietlacz LCD 2x16. Do szeúciu 18 linii portu C zosta³o do³¹czonych 6†przyciskÛw S1...S6 wraz z†kondensatorami C25...C30 s³uø¹cymi do t³umienia drgaÒ ich stykÛw. Wejúcie INT0 (port PD2) i†magistrala TWI (porty PC0, PC1) s¹ po³¹czone z†zegarem czasu rzeczywistego DS1307. Uk³ad ten pracuje z†w³asnym kwarcem czÍstotliwoúci rezonansowej 32 kHz, a†jego praca jest podtrzymywana bateri¹ litow¹. Na wyjúciu SQW pod³¹czonym do INT0 w†ATmega16 wystÍpuje przebieg o czÍstotliwoúci 1†Hz, ktÛry rozpoczyna start nowego cyklu pomiarÛw. Uk³ad ADE7759 komunikuje siÍ z†mikrokontrolerem poprzez magistralÍ szeregow¹ SPI (PB5...PB7). Wyjúcie SS (PB4), aktywne poziomem niskim, inicjuje komunikacjÍ w†ADE7759. Magistrala SPI, sygna³ RESET i†zasilanie s¹ takøe wyprowadzone na z³¹cze szpilkowe J2 (standard STK200), ktÛre s³uøy do programowania pamiÍci programu mikrokontrolera. Przerwania z†ADE7759 s¹ zg³aszane zmian¹ poziomu z†wysokiego na niski na wejúciu INT2 (PB2). Poziom niski na linii SAG sygnalizuje zbyt niskie napiÍcie sieciowe lub jego brak, co jest wykorzystywane w†programie do zapisu stanu licznikÛw energii. Ponadto procesor ma moøliwoúÊ wyzerowania ADE7759 poprzez liniÍ PB0, co jest przydatne (w³aúciwie wymagane) podczas restartu watomierza. PobÛr pr¹du przez uk³ady scalone i†wyúwietlacz wynosi oko³o 20 mA. Do obniøenia napiÍcia sieciowego zastosowany zosta³ miniaturowy transformator o†napiÍciu wtÛrnym 9†V. Aby zmniejszyÊ udar pr¹dowy przy w³¹czeniu oraz zak³Ûcenia z†sieci, przed kondensatorem filtruj¹cym znajduje siÍ rezystor R21 (10Ω). Kondensator C9 ma duø¹ pojemnoúÊ jak na tak niewielki pobÛr pr¹du, poniewaø jego zadaniem dodatkowym jest podtrzymanie dzia³ania watomierza jeszcze przez chwilÍ po zaniku napiÍcia sieciowego. NapiÍcie 5†V†jest stabilizowane przez uk³ad scalony U3 (78L05). Z³¹cze J1 s³uøy do zasilania watomierza podczas programowania procesora. Niedopuszczalne jest wgrywanie programu przy zasilaniu przyrz¹du z†sieci 230 V (chociaø jest to moøliwe, gdy komputer nie jest uziemiony). WYKAZ ELEMENTÓW Rezystory R1...R4: 1kΩ/1% R5: 200kΩ/1% R6, R7: 150kΩ/1% R8, R21: 10Ω/5% R9, R16...R18: 10kΩ/5% R10...R15: 47kΩ/5% R19: 47Ω/5% RV1: 10kΩ potencjometr RS1: 0,01Ω RS−3668671 VR1: 275VAC JVR−14N 431K Kondensatory C1...C4: 22nF/10% C5, C10, C11, C13, C16, C17, C19: 100nF C6, C12, C14, C20: 10µF/6,3V C7, C8, C21, C22: 22pF/5% NP0 C9: 1000µF/25V C15: 220µF/10V C18: 22µF/6,3V C23...C31: 100nF/20% Półprzewodniki U1: ADE7759 U2: ATMega16 U3: LM78L05ACM U4: DS1307Z D1: LL4148 M1: 0,5A/50V B080C1000DIL Różne X1: 3,579MHz X2: 8MHz X3: 32768Hz S1...S6: microswitch 12x12 TR1: TSZZ0.6/9V (Indel) LCD1: LCD 2x16 BAT1: CR2032 podstawka L1...L3: koralik ferrytowy 3,5x9 mm L4: 10µH J1, JP1: goldpiny J2: DC10 obudowa Z5, kabel trójżyłowy z wtyczką, gniazdko sieciowe Do ochrony przyrz¹du przed przepiÍciami w†sieci zasilaj¹cej s³uøy warystor VR1. Cienka úcieøka na p³ytce drukowanej pomiÍdzy przewodem sieciowym a†transformatorem, dzielnikiem i†warystorem pe³ni rolÍ bezpiecznika. Jumper JP1 s³uøy do roz³¹czania transformatora od przewodÛw pomiarowych (sieciowych) podczas kalibracji watomierza napiÍciem sta³ym. Grzegorz Gajewski [email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: pcb.ep.com.pl oraz na p³ycie CD-EP12/2003B w katalogu PCB. Elektronika Praktyczna 12/2003 ▲ Tester kabli sieciowych LAN Skuteczny w działaniu i prosty w wykonaniu – projekt naszego Czytelnika przedstawiamy na str. 101. semi−MatrixOrbital LCD do PC ▲ Druga część opisu niebanalnego PC−towego gadżetu. Str. 48. ▲ Stereofoniczny wzmacniacz klasy D 2x20W Wbrew „nieczystej” naturze klasy D, wzmacniacz ten może okazać się interesujący także dla audiofili. Str. 21. mail2led − sygnalizator e−maili dla PC Projekt znany naszym internetowym forumowiczom. Przykład tego, że marzenia się spełniają! Str. 79. ▲ ▲ Przetwornica do lamp Nixie Ciąg dalszy nixie’owych przygód w EP. Na str. 80 pokazujemy, jak łatwo i pewnie zasilić lampy z 12 V. ▲ „Mikroprocesor” − nie zawsze znaczy to samo Artykuł prezentowany na str. 55 ma w naszych założeniach dogłębnie przedstawić korzenie mikrokontrolerów − podzespołów niezwykle „banalnych” dla współczesnych elektroników. Komputerowy termometr z interfejsem RS232 Na str. 45 przedstawiamy opis przystawki do PC, doskonale współpracującej ze słynnym Girderem. ▲ ▲ nVisage DXP − wielowymiarowy system projektowy firmy Altium Konwerter USB<−>RS232 Prezentację środowiska DXP kontynuujemy na str. 71. Projekt opracowany w ramach koncertu życzeń naszych Czytelników − kolejne podejście do USB. Str. 41. ▲ ▲ Nowe sterowniki modułowe firmy Omron Nowości z oferty firmy Omron przedstawiamy w artykule na str. 135. 6 Elektronika Praktyczna 12/2003 Nr 12 (132) grudzień 2003 Projekty Miernik energii elektrycznej i watomierz, część 1 ................... 14 Stereofoniczny wzmacniacz klasy D 2x20W ............................ 21 Spawarka impulsowa do spawania metodą TIG ................... 27 Zdalnie sterowany (DTMF) termostat, część 1 ......................... 35 Konwerter USB<−>RS232 .............................................................. 41 Komputerowy termometr z interfejsem RS232 ......................... 45 semi−MatrixOrbital LCD do PC, część 2 .................................... 48 Nowości Lattice’a ▲ Konfiguracja Girdera do współpracy z odbiornikiem SIRC/RC5 (AVT−519) oraz termometrem (AVT−558) ................. 51 Wielki powrót na rynek? Mają szanse, o czym przekonają się Czytelnicy artykułu ze str. 68. Miniprojekty mail2led − sygnalizator e−maili dla PC ...................................... 79 Przetwornica do lamp Nixie ....................................................... 80 Podzespoły „Mikroprocesor” − nie zawsze znaczy to samo ........................ 55 Nowości Lattice'a ....................................................................... 68 Przetwornice DC/DC dla urządzeń elektroniki przemysłowej ........................................................... 139 Sprzęt Programator UprogHS 48 Portable ............................................ 63 ▲ Programator UprogHS 48 Portable Polak naprawdę potrafi! Zainteresowanych sukcesem rodaków na skalę niemalże światową zapraszamy na str. 63. Programy nVisage DXP − wielowymiarowy system projektowy firmy Altium ................................................................................... 71 Kurs W głośnikowym żywiole, część 2 ............................................... 75 Silniki elektryczne w praktyce elektronika, część 1 ................. 85 Programowe interpretery poleceń w C ................................... 91 Podstawy projektowania systemów mikroprocesorowych, część 10 ................................................. 98 W głośnikowym żywiole Automatyka Nowe sterowniki modułowe firmy Omron .............................. 135 Działanie sterowników S7−200 − podstawy, część 2 .............. 141 ▲ Quasitechniczne wywody „głośnikowego” guru z miesięcznika Audio przedstawiamy na str. 75. Projekty Czytelników Tester kabli sieciowych LAN ..................................................... 101 Z kraju i ze świata ........................................................ 123 Biblioteka EP ................................................................. 131 Kramik+Rynek .............................................................. 105 Bascomowe Porady ...................................................... 95 Listy ................................................................................. 111 Ekspresowy Informator Elektroniczny ..................... 119 Wykaz reklamodawców ............................................ 122 Elektronika Praktyczna 12/2003 7