w w w. e p . c o m . p l
ELEKTRONIKA PRAKTYCZNA •
NA CD KATALOGI: INFINEON ORAZ EAUTOMATION FIRMY ADVANTECH
Miêdzynarodowy magazyn elektroników konstruktorów
10/2003
●
październik
●
15 zł 50 gr
(w tym 7% VAT)
10/2003 • paŸdziernik
▲
Radiomodemy Satel Nowości firmy Satel przedstawiamy w artykule na str. 125.
Pokojowy regulator temperatury ▲ ze zdalnym sterowaniem ▲
Jak wiele może tak proste (sprzętowo) urządzenie przekonają się Czytelnicy, którzy zajrzą na str. 91.
2,4 GHz dla każdego Jeżeli chcesz bezboleśnie wkroczyć w pasmo 2,4 GHz koniecznie przeczytaj artykuł ze str. 55.
Zegar ze 100−letnim kalendarzem i dwukanałowym termometrem Zbliża się kolejna zima XXI wieku. Projekt przedstawio− ny w artykule na str. 21 przyda się zarówno jako czasomierz−kalendarz (wystarczy do końca wieku) jak i wielofunkcyj− ny termometr (mierzy także mocno ujemne temperatury).
▲
▲
▲ Niskonapięciowy wzmacniacz słuchawkowy Miniprojekt na mininapięcia. Str. 79.
Inteligentny sterownik oświetlenia wnętrza samochodu
Co prawda komputerów w samocho− dach możemy mieć dostatek, ale posiadaczy słabo zelektronizowa− nych „maluchów”, jak i innych aut pozbawionych elektronicznych „wygód” projekt opisany na str. 27 na pewno zainteresuje.
Uniwersalny odbiornik RC5/SIRC AnadigmVortex − analogowe ▲ FPGA firmy Anadigm
Kolejną przystawkę do PC (lubi się z Girderem!) opisujemy na str. 39.
Terminale to najbardziej efektowne elementy systemów nadzoru i sterowania. Nowości firmy Omron przedsta− wiamy na str. 132.
▲
Czas na „terminale” z interfejsem RS485. Opis ich budowy przedstawiamy w artykule na str. 47.
▲
6
Analogowe układy programowalne wracają na łamy EP jak bumerang. Nowości firmy Anadigm wyglądają więcej niż zachęcająco − str. 76.
▲
„Klocki” RS485
▲
NS − terminale graficzne HMI nowej generacji
Programowany generator PWM w VHDL Kolejny mini−IP Core. W arty− kule na str. 33 pokazujemy przykłady opisu w VHDL uniwersalne− go generatora PWM o ustalanej przez użytkownika rozdziel− czości.
Elektronika Praktyczna 10/2003
Nr 10 (130) październik 2003
Projekty
Krzemowy stos TCP/IP
▲
Wiznet otwiera nam drogę do łatwo dostępnego Internetu. Szczegóły na str. 60.
Cyfrowy oscyloskop/analizator stanów logicznych, część 1 .......................................................................................... 14 Zegar ze 100−letnim kalendarzem i dwukanałowym termometrem, część 1 ................................................................ 21 Inteligentny sterownik oświetlenia wnętrza samochodu ....... 27 Programowany generator PWM w VHDL ................................. 33 Uniwersalny odbiornik RC5/SIRC ............................................... 39 Centrala alarmowa z powiadomieniem GSM, część 2 ......... 43 „Klocki” RS485, część 5 ............................................................... 47
Miniprojekty Niskonapięciowy wzmacniacz słuchawkowy .......................... 79 Kasownik liczników w cartridge'ach drukarek atramentowych firmy Epson ...................................................... 80
Podzespoły 2,4 GHz dla każdego .................................................................. 55 Krzemowy stos TCP/IP ................................................................. 60 Przetwornice DC/DC do systemów pomiarowych i aplikacji audio ........................................................................... 71 AnadigmVortex − analogowe FPGA firmy Anadigm .............. 76
Sprzęt Analizator stanów logicznych LA−2124 ..................................... 68 Programowany zasilacz laboratoryjny PR8323 ........................ 74
Analizator stanów ▲ logicznych LA−2124 Analizator stanów logicznych jest przyrządem bardzo pożą− danym w laboratorium techniki cyfrowej. Jedną z rynkowych nowości tego typu przedstawia− my na str. 68.
Sterowniki programowalne SIMATIC S7−200 Sterowniki SIMATIC reklamy nie wymagają. Ich możliwości komunikacyjne opisujemy w artykule na str. 135.
Kurs Pamięci nieulotne w systemach mikroprocesorowych, część 1 ................................................... 85 Podstawy projektowania systemów mikroprocesorowych, część 8 ................................................... 88
Automatyka Radiomodemy Satel ................................................................. 125 Przemysłowe cyfrowe karty wejść i wyjść .............................. 128 Kolorowa moc − NS − terminale graficzne HMI nowej generacji ......................................................................... 132 Sterowniki programowalne SIMATIC S7−200, część 2 ........... 135
Projekty Czytelników Pokojowy regulator temperatury ze zdalnym sterowaniem, część 1 .......................................................................................... 91
Z kraju i ze świata ........................................................ 115
▲
Biblioteka EP ................................................................. 123 Kramik+Rynek ................................................................ 95 Bascomowe Porady .................................................... 101 Listy ................................................................................. 103 Ekspresowy Informator Elektroniczny ..................... 111 Wykaz reklamodawców ............................................ 114
Elektronika Praktyczna 10/2003
7
Cyfrowy P R O oscyloskop/analizator J E K T Y stanów logicznych
Cyfrowy oscyloskop/analizator stanów logicznych, część 1 AVT−529 O oscyloskopach cyfrowych juø wielokrotnie pisaliúmy na ³amach Elektroniki Praktycznej. Prezentowaliúmy projekty zarÛwno zaawansowane technicznie i†kosztowne w realizacji komercyjne, jak i†tanie, o†prostej budowie - dla elektronikÛw amatorÛw. W†projekcie przedstawionym w†artykule starano siÍ zastosowaÊ niektÛre rozwi¹zania konstrukcyjne tych pierwszych zachowuj¹c dostÍpnoúÊ i walory edukacyjne tych drugich. Rekomendacje: zaawansowany technicznie przyrz¹d umoøliwi wszystkim konstruktorom poznanie najnowszych rozwi¹zaÒ konstrukcyjnych oscyloskopÛw cyfrowych.
Wartoúci parametrÛw i cechy funkcjonalne prezentowanego oscyloskopu pozwalaj¹ zaliczyÊ go do przyrz¹dÛw tanich i†dobrych. Oscyloskop jest wyposaøony w†cztery kana³y o†8-bitowej rozdzielczoúci (w†osi Y)†i czÍstotliwoúci prÛbkowania 100†MHz. Kaødy z†kana³Ûw moøe byÊ niezaleønie zamieniony w†8-bitowy analizator stanÛw logicznych. Godna uwagi jest duøa pojemnoúÊ pamiÍci prÛbek (po 64k prÛbek na kana³). Uk³ad wyzwalania jest w†pe³ni cyfrowy, co gwarantuje powtarzalnoúÊ wyúwietlania wynikÛw. Przyrz¹d wspÛ³pracuje z†komputerem przez port RS232 i†wymaga pojedynczego napiÍcia zasilania 5†V. Zosta³ zaprojektowany tak, aby zapewniÊ moøliwoúci jego rozbudowy (ma budowÍ modu³ow¹). W†tej czÍúci artyku³u zostanie omÛwiona budowa oscyloskopu cyfrowego.
Jak dzia³a oscyloskop cyfrowy Podstawowym elementem kaødego cyfrowego systemu pomiarowego, w†tym i†oscyloskopu, jest przetwornik analogowo-cyfrowy (ADC - Analog to Digital Converter). W†prezentowanym oscyloskopie uk³ad ADC moøe byÊ zast¹piony blokiem wejúÊ cyfrowych w†celu zapamiÍtywania stanÛw logicznych.
14
Poniewaø ADC prÛbkuje sygna³ wejúciowy, moøe wyst¹piÊ zjawisko aliasingu. Polega ono na tym, øe z†jednego zestawu prÛbek moøna odtworzyÊ nieskoÒczenie wiele rÛønych sygna³Ûw. Dla przyk³adu, na rys. 1 przedstawiono dwa moøliwe przebiegi sinusoidalne skonstruowane w†oparciu o†ten sam zestaw prÛbek sygna³u. Okazuje siÍ jednak, øe jeøeli wiadomo, øe sygna³ wejúciowy nie zawiera³ øadnej sk³adowej o†czÍstotliwoúci wyøszej niø po³owa czÍstotliwoúci prÛbkowania, to istnieje dok³adnie jedna moøliwoúÊ odtworzenia tego sygna³u z†prÛbek. Z†tego wynika, øe jeøeli przed prÛbkowaniem zostan¹ odfiltrowane z†sygna³u wejúciowego wszystkie sk³adowe o†czÍstotliwoúci wiÍkszej od po³owy czÍstotliwoúci prÛbkowania, to istnieje pewnoúÊ jednoznacznego odtworzenia kszta³tu sygna³u wejúciowego. To uzasadnia wprowadzenie do uk³adu oscyloskopu kolejnego bloku do proponowanego schematu, a†mianowicie filtru AA (antialias filter). Niestety, przy 100 MHz ten filtr realizuje siÍ w†technice w†pe³ni analogowej (poniewaø jego cyfrowa realizacja wymaga³aby prÛbkowania sygna³u wejúciowego z†jeszcze wiÍksz¹ czÍstotliwoúci¹). Co za tym idzie, trudne jest skonstruowanie bloku o†duøym t³umieniu powyøej
Elektronika Praktyczna 10/2003
Cyfrowy oscyloskop/analizator stanów logicznych
Rys. 1. Ilustracja zjawiska aliasingu przy nieodpowiedniej częstotliwości próbkowania
50†MHz i†ma³ym t³umieniu poniøej 50 MHz, zatem dopuszczono istnienie szerokiego pasma przejúciowego i†ograniczono uøyteczne pasmo oscyloskopu do 35 MHz. Od oscyloskopu oczekuje siÍ, øe umoøliwi prowadzenie pomiarÛw w†szerokim zakresie napiÍÊ. Uk³ady ADC pracuj¹ce przy 100 MHz rzadko maj¹ wbudowany wzmacniacz o†programowalnym wzmocnieniu (PGA, Programmable Gain Amplifier), trzeba wiÍc taki wzmacniacz dodaÊ. Blok PGA jest umieszczony przed filtrem AA. PowÛd takiego postÍpowania jest nastÍpuj¹cy: filtr AA zawiera elementy aktywne, a†co za tym idzie moøe wprowadzaÊ zniekszta³cenia nieliniowe przy ma³ych sygna³ach. Ponadto, kaødy blok dodaje do sygna³u pewne szumy. Jeøeli sygna³ jest ma³y, to stosunek szumu do sygna³u jest stosunkowo duøy, a szumy†s¹ wzmacniane razem z†sygna³em. Za przetwornikiem ADC znajduj¹ siÍ ìczystoî cyfrowe bloki oscyloskopu i†to od nich zaleø¹ moøliwoúci funkcjonalne oscyloskopu. Przy ma³ych czÍstotliwoúciach prÛbkowania (<1 MHz) moøna stosowaÊ do tego celu mikrokontrolery b¹dü wrÍcz bezpoúrednio pod³¹czyÊ przetwornik do komputera PC. Niestety, te tanie i†proste rozwi¹zania (jak na przyk³ad oscyloskop opisany w†EP9/ 2003) nie mog¹ byÊ wykorzystane przy prÛbkowaniu z†czÍstotliwoúci¹ 100 MHz, bowiem wymagana szybkoúÊ transferu danych z†ADC jest ogromna. Opisywany w†artykule oscyloskop gromadzi paczki danych po 32 bity co 10 ns, co daje ³¹cznie 3,2 Gb/s wymaganej przepustowoúci. Naleøy podkreúliÊ, øe øaden standard magistrali w†komputerze PC nie jest w†stanie utrzymaÊ takiego transferu przez d³uøszy czas. Na przyk³ad, maksymalna przepustowoúÊ magistrali PCI33 wynosi zaledwie 1,0 Gb/s. W†do-
Elektronika Praktyczna 10/2003
datku, korzystanie z†magistrali komputera wymaga³oby skonstruowania karty (wk³adanej do obudowy komputera) zgodnej z†dosyÊ skomplikowanym standardem PCI. Z†tego jednoznacznie wynika, øe prÛbki naj³atwiej jest przechowywaÊ w†pamiÍci znajduj¹cej siÍ niedaleko ADC. W†pierwszej chwili nasuwa siÍ pomys³ wykorzystania pamiÍci kolejkowej FIFO (First In, First Out). Moøna by w³¹czaÊ wstawianie danych do kolejki przez jakiú czas po wyzwoleniu oscyloskopu. Niestety, takie rozwi¹zanie pozbawi³oby oscyloskop cyfrowy jednej z†jego istotnych zalet: moøliwoúci przeúledzenia, co dzia³o siÍ przed momentem wyzwolenia. Dlatego w†przedstawionym projekcie zaproponowano uøycie zwyk³ej pamiÍci statycznej RAM, jaka np. by³a uøywana w†pamiÍci podrÍcznej (cache) procesorÛw klasy Pentium. Dane s¹ zapisywane do pamiÍci w†sposÛb ci¹g³y przed wyzwoleniem, a†takøe przez okreúlony czas po nim. Korzystanie z†takiej pamiÍci nieco komplikuje uk³ad steruj¹cy, wymaga bowiem, aby oprÛcz sygna³Ûw zapisu by³y generowane adresy. Zdecydowano siÍ wykorzystaÊ typow¹ pamiÍÊ statyczn¹, a†nie dwuportow¹. Ten wybÛr by³ podyktowany cen¹ pamiÍci dwuportowych o†krÛtkim czasie dostÍpu i duøej†pojemnoúciach. Poza omÛwionymi blokami, kaødy oscyloskop musi zawieraÊ uk³ad wyzwalaj¹cy. Musi on umoøliwiaÊ co najmniej wybÛr zbocza, na ktÛrym oscyloskop zostanie wyzwolony, a†takøe przynajmniej zgrubny wybÛr poziomu wyzwalania. To, czy wyzwalanie zostanie zaimplementowane w†dziedzinie cyfrowej, czy analogowej, zaleøy od projektanta. Zalet¹ cyfrowej metody wyzwalania jest precyzja i†powtarzalnoúÊ.
W†oscyloskopie wprowadzono†moøliwoúÊ oddzielnego wyzwalania w kaødym z†kana³Ûw, a†takøe wyboru wzorca bitÛw (bit pattern) zamiast poziomu i†zbocza, przy ktÛrym nast¹pi wyzwolenie. Jest to konieczne w†przypadku rejestracji stanÛw logicznych. Uk³ad wyzwalania jest jednym z†bardziej z³oøonych blokÛw oscyloskopu. Na koniec naleøy przypomnieÊ o†roli zegara w†oscyloskopie cyfrowym. Sygna³ zegara jest konieczny we wszystkich blokach uk³adu: od przetwornika analogowo-cyfrowego po bufor prÛbek. Poniewaø szum fazowy zegara (niewielkie przesuniÍcia w czasie aktywnych zboczy w†czasie, czÍsto okreúlane mianem jittera) jest w†szybkich uk³adach istotn¹ sk³adow¹ ca³kowitego szumu (m.in. poprzez nierÛwnomiernoúÊ roz³oøenia prÛbek ADC), a†nawet moøe spowodowaÊ nieprawid³owe dzia³anie uk³adu przez skrÛcenie niektÛrych cykli zegara (rys. 2), to zarÛwno wybÛr uk³adu taktuj¹cego, jak i†prowadzenie sygna³u zegara powinno byÊ dokonywane z†najwyøsz¹ uwag¹. Dobrej jakoúci zegar powinien takøe mieÊ kontrolowane przesuniÍcie fazy miÍdzy blokami uk³adu (clock skew). Zignorowanie tego wymagania moøe spowodowaÊ, øe aktywne zbocze sygna³u zegara przybÍdzie do przerzutnikÛw np. o†1†ns pÛüniej niø dane, co moøe spowodowaÊ przek³amania wartoúci niektÛrych bitÛw. Schemat blokowy oscyloskopu cyfrowego przedstawiono na rys. 3. Wyraünie widaÊ, øe moøna na nim wyrÛøniÊ bloki uk³adÛw analogowych i†bloki cyfrowe. Takie rozrÛønienie jest konieczne, poniewaø do blokÛw analogowych stosuj¹ siÍ inne zasady projektowania niø do cyfrowych. Uk³ady cyfrowe generuj¹ szum w.cz. w†zwi¹zku ze stromymi zboczami
Rys. 2. Szum fazowy (jitter) zegara
15
Cyfrowy oscyloskop/analizator stanów logicznych
Rys. 3. Schemat blokowy oscyloskopu
sygna³Ûw. Ten szum czÍsto propaguje siÍ przez obwody zasilania. W†projekcie kaødy z†blokÛw umieszczono na oddzielnej p³ytce z†oddzielnym zasilaniem, dziÍki czemu wraøliwe uk³ady analogowe s¹ odseparowane od ürÛde³ szumu.
Po³¹czenie z†komputerem PC Poniewaø karta oscyloskopu nie zosta³a wyposaøona w†wyúwietlacz, funkcje interfejsu graficznego uøytkownika musz¹ byÊ zrealizowane na do³¹czonym do oscyloskopu komputerze. Karta oscyloskopu komunikuje siÍ z†systemem nadrzÍdnym przez port RS232. PomiÍdzy matryc¹ FPGA zbieraj¹c¹ prÛbki i†magistral¹ I2C†steruj¹c¹ uk³adami analogowymi a†portem RS232 poúredniczy wbudowany w†urz¹dzenie mikrokontroler.
Realizacja blokÛw Wzmacniacz o†programowalnym wzmocnieniu (PGA) G³Ûwnym elementem wzmacniacza PGA jest uk³ad scalony THS7002 firmy Texas Instruments. Jest to dwukana³owy PGA z†przedwzmacniaczem o paúmie 70 MHz (schemat blokowy pokazano na rys. 4). Uk³ad THS7002 pozwala na t³umienie sygna³u w†zakresie do 22 dB lub wzmocnienie do 20 dB. Dodatkowo umieszczono na p³ytce uk³ad pozwalaj¹cy na prze³¹czanie wzmocnienia przedwzmacniacza miÍdzy 0†dB a†40 dB, co ³¹cznie daje maksymalne wzmocnienie 60 dB (napiÍciowo 1000V/
16
V). Prze³¹czniki zosta³y zrealizowane za pomoc¹ jednego uk³adu ADG333 firmy Analog Devices. Nie wykorzystano wbudowanego w†te uk³ady ogranicznika sygna³u, poniewaø filtr antialiasingowy, znajduj¹cy siÍ za wzmacniaczem PGA, pracuje przy pe³nym zakresie napiÍÊ zasilania i†nie ma potrzeby ograniczania sygna³u przed filtrem. Filtr antialiasingowy W filtrze antialiasingowym zastosowano szczegÛlnego typu wzmacniacz, ktÛry nie by³ dot¹d przedstawiany na ³amach EP. Jest to wzmacniacz w†pe³ni rÛønicowy, a†wiÍc taki, ktÛry oprÛcz rÛønicowego wejúcia jest takøe wyposaøony w†rÛønicowe wyjúcie. Potencja³ úrodkowy (odpowiadaj¹cy w†klasycznym wzmacniaczu rÛønicowym wyjúciu zerowemu) moøna ustawiÊ przez pod³¹czenie jednej z†nÛøek do ürÛd³a napiÍcia odniesienia. Wykorzystanie takiego elementu by³o podyktowane wyborem ADC. Zastosowany przetwornik analogowo-cyfrowy wymaga rÛønicowego sygna³u na wejúciu. Wzmacniacz w†pe³ni rÛønicowy jest wiÍc idealnym rozwi¹zaniem. Filtr AA jest zbudowany w oparciu o†wzmacniacz THS4150 firmy Texas Instruments. Jest to filtr aktywny trzeciego rzÍdu. Jednoczeúnie obwÛd ten wprowadza 12 dB t³umienia (napiÍciowo cztery razy), tak øe sygna³ z†poziomu -12...+12 V†jest zmniejszany do poziomu -3...+3 V, bezpiecznego dla przetwornika ADC.
Przetwornik analogowo-cyfrowy FunkcjÍ ADC pe³ni uk³ad podwÛjnego, 8-bitowego przetwornika AD9288BST-100. Zawiera on w†swojej strukturze uk³ad prÛbkuj¹co-pamiÍtaj¹cy. SzczegÛln¹ cech¹ uk³adu AD9288 jest niski pobÛr mocy (90 mW na kana³) i pojedyncze napiÍcie zasilania 3,3 V. Dane wyjúciowe przetwornika mog¹ byÊ w†formacie uzupe³nienia do 2†(-128...127) lub naturalnego kodu binarnego (0...255). Wybrano pierwszy format, dziÍki czemu dane wyjúciowe naturalnie odpowiadaj¹ bipolarnemu przebiegowi na wejúciu ADC. Wejúcia cyfrowe Wejúcia cyfrowe s¹ po³¹czone z†uk³adem poprzez dwa 16-bitowe translatory poziomÛw IDT 74LVC16240. Poniewaø ca³y uk³ad cyfrowy jest zasilany napiÍciem 3,3 V, a†wiele sygna³Ûw spotykanych w†typowych uk³adach ma poziomy np. TTL, taki uk³ad poúrednicz¹cy jest konieczny. Odbiorniki uk³adu 74LVC16240 mog¹ pracowaÊ zarÛwno przy napiÍciu 5 V jak i 3,3 V (jest to cecha wszystkich uk³adÛw wykonanych
Rys. 4. Schemat jednego kanału układu THS7002
Elektronika Praktyczna 10/2003
Cyfrowy oscyloskop/analizator stanów logicznych
Rys. 5. Schemat blokowy systemu wyzwalania
w†technologii LVCMOS), co zapewnia poø¹dan¹ elastycznoúÊ korzystania z oscyloskopu pracuj¹cego w†trybie rejestratora-analizatora stanÛw logicznych. Multipleksery wejúÊ Wejúcia cyfrowe i†analogowe mog¹ byÊ wybierane dla kaødego kana³u niezaleønie. S³uø¹ do tego multipleksery wejúÊ. Ze wzglÍdu na zmniejszenie liczby uk³adÛw scalonych i†zachowanie duøej szybkoúci pracy multipleksery zosta³y zintegrowane wewn¹trz uk³adu FPGA - QL3025 firmy QuickLogic.
Wyzwalanie Uk³ad wyzwalania jest w†pe³ni cyfrowy. Zosta³ on zrealizowany jako blok cyfrowy w uk³adzie FPGA. Kaødy kana³ ma niezaleøny blok wyzwalania, a†sygna³ trigger dla ca³ego uk³adu jest wytwarzany jako iloczyn logiczny sygna³Ûw ze wszystkich czterech kana³Ûw. Schemat blokowy systemu wyzwalania pokazano na rys. 5. Warunkiem wyzwolenia moøe byÊ zarÛwno zgodnoúÊ bitÛw z†zadanym wzorcem jak i†wyst¹pienie zbocza sygna³u. Generowane s¹ oba sygna³y wyzwalaj¹ce, a†nastÍpnie podlegaj¹ multipleksowaniu (multiplekser sterowany jest
Elektronika Praktyczna 10/2003
sygna³em tryb). Wyzwalanie wzorcem bitÛw wymaga okreúlenia, ktÛre bity s¹ istotne (maska) oraz wartoúci, przy jakich uk³ad ma zostaÊ wyzwolony (wartoúÊ). Stosunkowo rzadko spotykan¹ wúrÛd analizatorÛw cech¹, w†jak¹ wyposaøono uk³ad wyzwalania, jest zdolnoúÊ do negacji warunku wyzwalania tak, øe jest moøliwe reagowanie nie tylko na pojawienie siÍ odpowiedniej sekwencji bitÛw na wejúciu oscyloskopu, ale takøe na jej znikniÍcie. Wyzwalanie zboczem jest wykonywane nastÍpuj¹co: wartoúÊ sygna³u wejúciowego jest porÛwnywana z†zadanym progiem wyzwalania. Zbocze jest wybierane przy uøyciu bramki ExOR. Sygna³ wyjúciowy bramki okreúla, czy dana na wejúciu jest mniejsza, czy wiÍksza od progu. Jest on opÛüniany o†jeden cykl zegara (DT). Wartoúci: opÛüniona i†bieø¹ca s¹ porÛwnywane w†bramce logicznej AND. Wykrycie zmiany powoduje wystawienie stanu logicznego 1†na wyjúciu bloku wyzwalania.
Sterowanie Uk³ad sterowania jest rÛwnieø zintegrowany w FPGA. Podstawowym zadaniem uk³adu steruj¹cego jest dostarczanie sygna³Ûw adresowych do zewnÍtrznej pamiÍci
buforowej, a†takøe odliczanie czasu, jaki ma up³yn¹Ê miÍdzy wyzwoleniem uk³adu a†zakoÒczeniem zbierania danych. W†opisywanym oscyloskopie uk³ad steruj¹cy odpowiada takøe za kontrolÍ odczytu danych z†pamiÍci buforowej po dokonaniu pomiaru. Podstawowym elementem bloku sterowania jest 16-bitowy licznik adresowy (rys. 6), zliczaj¹cy w†przÛd. Jego inkrementacja nastÍpuje pod wp³ywem sygna³u WR (powoduj¹cym jednoczeúnie zapis do pamiÍci). W†ten sposÛb generowany jest adres zapisu dla pamiÍci SRAM. Sygna³ WR jest ustawiany podczas procedury zerowania, co przygotowuje uk³ad do zebrania nowych prÛbek. Drugi licznik 16-bitowy zlicza w†dÛ³. Podczas zerowania jest on ³adowany liczb¹ prÛbek, jakie powinny byÊ zapisane po wyzwoleniu pomiaru. Jest on uruchamiany przez sygna³ trigger pochodz¹cy z†opisanego wyøej uk³adu wyzwalania. Kiedy zawartoúÊ licznika osi¹gnie zero, sygna³ WR jest zerowany i†koÒczy siÍ faza zapisu do pamiÍci. Ostatnie 65536 prÛbek jest dostÍpnych w†pamiÍci, a†ostatnia zawartoúÊ licznika adresu (adres ostatniej prÛbki) jest przechowywana w†specjalnym rejestrze.
17
Cyfrowy oscyloskop/analizator stanów logicznych
Rys. 6. Schemat blokowy systemu sterowania
Kiedy sygna³ WR jest wyzerowany, czyli po zakoÒczeniu pomiaru, na pamiÍÊ SRAM jest podawany adres pochodz¹cy z†programowalnych rejestrÛw adresowych, a†w†rejestrach danych odwzorowywana jest zawartoúÊ zaadresownych komÛrek pamiÍci (s³owa). W†ten sposÛb realizowany jest odczyt prÛbek przez port mikrokontrolera.
PamiÍÊ buforowa SRAM ZawartoúÊ pamiÍci w†matrycy FPGA nie jest wystarczaj¹ca do zbudowania dobrego oscyloskopu, wiÍc skorzystano z†pamiÍci zewnÍtrznej. FunkcjÍ tÍ pe³ni uk³ad IDT 71V632, pierwotnie zaprojektowany jako pamiÍÊ cache dla procesorÛw serii Pentium i†PowerPC. Wiele moøliwoúci tego uk³adu, jak tryb burst lub oddzielne bramkowanie zapisu poszczegÛlnych bajtÛw, nie jest wykorzystanych w†tym zastosowaniu. Uk³ad IDT to statyczna pamiÍÊ synchroniczna. Ten typ pamiÍci jest stosunkowo rzadko stosowany, lecz tam, gdzie istotny jest krÛtki czas dostÍpu i†szybki transfer danych, jego osi¹gi s¹ niedoúcignione. Wszystkie szybkie pamiÍci s¹ synchroniczne (do tej grupy naleø¹ takøe popularne pamiÍci dynamiczne SDRAM), a†ich architektura zapewnia dodatkowo natychmiastowy dostÍp do dowolnej po-
18
zycji w†pamiÍci (zasada dzia³ania uniemoøliwia korzystanie w†ten sposÛb z†pamiÍci SDRAM, poniewaø s¹ one podzielone na wiersze, kolumny i†banki). W pamiÍci synchronicznej naleøy podawaÊ wszystkie sygna³y (danych, adresu i†sterowania) synchronicznie z aktywnym zboczem sygna³u zegarowego. Zastosowanie sygna³u zegarowego umoøliwia potokow¹ pracÍ uk³adu pamiÍci. Na przyk³ad wynik polecenia odczytu pojawia siÍ na wyjúciu dopiero po dwÛch cyklach - dziÍki temu moøna by³o podnieúÊ maksymaln¹ czÍstotliwoúÊ zegara do 117 MHz. Jeøeli szybkoúÊ prÛbkowania mia³aby byÊ wyøsza, konieczne by³oby skorzystanie z†dwÛch lub wiÍkszej liczby pamiÍci bufora prÛbek. Wtedy strumieÒ danych jest demultipleksowany na wiÍcej wolniejszych strumieni i†np. parzyste prÛbki trafiaj¹ do pierwszego uk³adu pamiÍci, a†nieparzyste do drugiego.
Zegar Sygna³ zegara systemowego jest generowany przez uk³ad Vaishali VT98521 (produkowane rÛwnieø przez firmÍ TLSI). Jest to jednouk³adowy generator przebiegÛw prostok¹tnych o†wysokiej czÍstotliwoúci. Moøe on wspÛ³pracowaÊ z†rezonatorem kwarcowym. CzÍstotliwoúÊ jego sygna³u jest mno-
øona przez jedn¹ z†wartoúci: 3, 3,125, 4, 5, 5,3125, 6, 6,25 lub 8 za pomoc¹ wbudowanej pÍtli PLL. Poniewaø w†systemie potrzebny jest sygna³ zegarowy 100 MHz, skorzystano z†kwarcu 16 MHz i†mnoøenia przez 6,25. Jitter tego uk³adu jest bardzo ma³y i†nie przekracza 70 ps. OprÛcz sygna³u zegara wewnÍtrznego oscyloskop moøe korzystaÊ rÛwnieø z†zewnÍtrznego zegara o†czÍstotliwoúci nieprzekraczaj¹cej 100 MHz. Wejúcie tego sygna³u jest buforowane i†wyposaøone w†translator poziomÛw 5†V†na 3,3 V. CzÍstotliwoúÊ sygna³u zegara (wewnÍtrznego lub zewnÍtrznego) moøe byÊ dzielona wewn¹trz uk³adu FPGA przez 2, 5, 10, 20, 50 lub 100. Moøliwe teø jest korzystanie z†zegara o†maksymalnej czÍstotliwoúci. Przetworniki ADC nie osi¹gaj¹ pe³nej dok³adnoúci przy prÍdkoúciach poniøej 1†MHz, lecz moøna pod³¹czyÊ zewnÍtrzne wolniejsze przetworniki przez z³¹cze analizatora stanÛw logicznych. Wtedy naleøy skorzystaÊ ze z³¹cza zewnÍtrznego sygna³u zegarowego.
Zasilanie W†uk³adzie niezbÍdne s¹ trzy rÛøne napiÍcia zasilania: 3,3†V, 12†V, -12 V. Poniewaø dostarczanie wszystkich napiÍÊ do uk³adu by³oby k³opotliwe, skorzystano z†niewielkich zintegrowanych przetwornic impulsowych. NapiÍcie 3,3 V†zapewnia uk³ad LM2825N-3.3 firmy National Semiconductor, a†wysokie napiÍcia dla elektroniki analogowej generowane s¹ przez przetwornicÍ PT5061A firmy Texas Instruments. Uk³ad oscyloskopu pobiera pr¹d o†natÍøeniu ok. 1†A†ze ürÛd³a zasilania 5†V.
Interfejs szeregowy Na p³ytce znajduje siÍ jeden port RS232 obs³ugiwany przez mikrokontroler Texas Instruments MSP430F149. Dane s¹ wymieniane z†komputerem wed³ug prostego protoko³u przy szybkoúci 115,2 kbps. Kontroler poúredniczy miÍdzy portem RS232, a†8-bitow¹ szyn¹ danych (takøe wyprowadzon¹ na oddzielne z³¹cze) ³¹cz¹c¹ go z†matryc¹ FPGA. Do jego zadaÒ naleøy takøe programowanie wzmacniaczy PGA oraz prze³¹czanie umieszczonych pod z³¹czami BNC diod úwiec¹cych (poprzez magistralÍ I2C).
Elektronika Praktyczna 10/2003
Cyfrowy oscyloskop/analizator stanów logicznych Te zastosowania nie wyczerpuj¹ nawet u³amka olbrzymich moøliwoúci uk³adu MSP430F149, co daje ogromny potencja³ rozbudowy. Magistrala I2C†moøe zostaÊ w†przysz³oúci wykorzystana takøe do innych zastosowaÒ, np. do sterowania dodatkowym modu³em dwÛch przetwornikÛw analogowo-
Elektronika Praktyczna 10/2003
cyfrowych o†szybkoúci prÛbkowania 200 MHz, pod³¹czanym zamiast wejúÊ cyfrowych. Wyprowadzona 8-bitowa, asynchroniczna magistrala danych miÍdzy kontrolerem a FPGA pozwala na zwiÍkszenie szybkoúci transmisji do komputera albo zbudowania oddzielnego kontrolera
oscyloskopu z†w³asnym wyúwietlaczem i†panelem steruj¹cym. Stanis³aw Skowronek Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziernik03.htm oraz na p³ycie CD-EP10/2003B w katalogu PCB.
19
Zegar ze 100−letnim kalendarzem i dwukanałowym P R O termometrem J E K T Y
Zegar ze 100−letnim kalendarzem i dwukanałowym termometrem, część 1 AVT−513
Prezentowane w†artykule urz¹dzenie jest kolejnym naszym pomys³em ìdla domuî, u³atwiaj¹cym codzienne funkcjonowanie. Bo ktÛø nie jest uzaleøniony od biegn¹cego czasu, wymagaj¹cego nieustannej kontroli, i†temperatury, ktÛra w†skrajnych przypadkach zdecydowanie negatywnie wp³ywa na samopoczucie wiÍkszoúci z†nas? Rekomendacje: ze wzglÍdu na uniwersalnoúÊ i†oczywist¹ przydatnoúÊ, urz¹dzenie opisane w†artykule polecamy wszystkim Czytelnikom lubi¹cym skutecznie kontrolowaÊ czas i†temperaturÍ...
Elektronika Praktyczna 10/2003
Zegar wbudowany w†prezentowane urz¹dzenie ma 100-letni kalendarz uwzglÍdniaj¹cy lata przestÍpne. Liczba dni miesi¹ca jest automatycznie korygowana w†zaleønoúci od bieø¹cego miesi¹ca oraz roku. Rok przestÍpny wystÍpuje co cztery lata i†charakteryzuje siÍ tym, øe luty w†tym roku ma 29 dni, a†w†pozosta³ych latach 28. W†czasie ustawiania daty kontrolowana jest maksymalna liczba dni wystÍpuj¹ca w†danym miesi¹cu i†roku, dziÍki czemu nie moøna wprowadziÊ b³Ídnej liczby dni miesi¹ca - na przyk³ad 31 kwietnia. Dodatkowo zegar posiada wbudowan¹ funkcjÍ pomiaru temperatury z†dwÛch czujnikÛw. Temperatura jest mierzona z†wykorzystaniem specjalizowanych uk³adÛw firmy Maxim, ktÛre przetwarzaj¹ badan¹ wartoúÊ temperatury na postaÊ cyfrow¹ i†w†konsekwencji - z†punktu widzenia mikrokontrolera - ca³y pomiar wykonywany jest na drodze cyfrowej. Temperatura moøe byÊ mierzona w†zakresie -25...125oC†z†rozdzielczoúci¹ 0,1oC. Taki zakres mierzonych
temperatur umoøliwia pomiar zarÛwno w†pomieszczeniach, jak rÛwnieø na zewn¹trz budynkÛw. Dla obydwu mierzonych temperatur zapamiÍtywana jest maksymalna i†minimalna wartoúÊ, ktÛra wyst¹pi³a od momentu kasowania tego wskaünika. Czujniki temperatury mog¹ byÊ oddalone od p³ytki zegara na odleg³oúÊ do 30 metrÛw, co umoøliwia niemaløe dowolne ich rozmieszczenie. Prezentacja czasu i†temperatury odbywa siÍ na dwuwierszowym wyúwietlaczu alfanumerycznym. Jest on wyposaøony w†podúwietlenie, co umoøliwia uzyskanie dobrej widocznoúÊ nawet w†ciemnych pomieszczeniach. Podúwietlanie wyúwietlacza moøe byÊ w³¹czane i†wy³¹czane, dodatkowo intensywnoúÊ podúwietlania moøe byÊ regulowana elektronicznie w†dziesiÍciu krokach. Podczas pracy bez podúwietlania uk³ad pobiera pr¹d o†natÍøeniu oko³o 3†mA, co umoøliwia zastosowanie bateryjnego podtrzymania pracy zegara w†czasie braku zasilania sieciowego przy wykonywaniu wszystkich dostÍpnych funkcji, tak
21
Zegar ze 100−letnim kalendarzem i dwukanałowym termometrem
Rys. 1. Schemat elektryczny zegara
jak przy zasilaniu g³Ûwnym (z†wy³¹czeniem podúwietlania).
Budowa i†zasada dzia³ania Schemat elektryczny zegara przedstawiono na rys. 1. ìSercemî urz¹dzenia jest niewielki mikrokontroler typu PIC16F628. Uk³ad ten steruje wszystkimi procesami poczynaj¹c od odczytu temperatury z†czujnikÛw temperatury, poprzez obs³ugÍ klawiatury aø do sterowania wyúwietlaczem LCD. Mikrokontroler ten posiada do³¹czony rezonator kwarcowy, ktÛry jednak nie s³uøy do jego ìnapÍdzaniaî. Generator taktuj¹cy mikrokontroler znajduje siÍ w†jego wnÍtrzu, dlatego nie jest konieczne stosowanie dodatkowego zewnÍtrznego rezonatora kwarcowego. WewnÍtrzny generator jest generatorem typu RC i†dostarcza czÍstotliwoúci rÛwnej oko³o 4†MHz. StabilnoúÊ tego generatora jest wystarczaj¹ca do wykonywania niemal wszystkich zadaÒ, jakie wykonuje mikrokontroler. Wyj¹tkiem jest precyzyjne odmierzanie czasu, gdyø pomiar
22
czasu z†wykorzystaniem generatora RC powodowa³by bardzo duø¹ rozbieønoúÊ mierzonego czasu. Aby zapewniÊ wysokostabilne ürÛd³o sygna³u zegarowego, zastosowano rezonator kwarcowy X1 o†czÍstotliwoúci pracy rÛwnej 32,768 kHz. Rezonator ten nie jest do³¹czony do standardowych wyprowadzeÒ przewidzianych do tego celu (OSC1, OSC2), lecz wyprowadzeÒ portu RB (RB7 i†RB6). Sytuacja taka jest spowodowana tym, øe wyprowadzenia te oprÛcz moøliwoúci pracy jako typowe wejúcia/wyjúcia s¹ jednoczeúnie wyprowadzeniami wewnÍtrznego licznika TMR1. Licznik ten na swoim wejúciu posiada generator, ktÛry moøe wspÛ³pracowaÊ z†zewnÍtrznym rezonatorem kwarcowym i†s³uøyÊ jako ürÛd³o sygna³u zegarowego powoduj¹ce zwiÍkszanie stanu licznika TMR1. Takie rozwi¹zanie sprawia, øe†licznik TMR1 zlicza impulsy z†generatora kwarcowego, ktÛry jest niezaleøny od g³Ûwnego generatora mikrokontrolera. Zastosowany rezonator kwarcowy posiada czÍstotliwoúci pra-
cy rÛwn¹ 32,768 kHz, co jest wielokrotnoúci¹ cyfry 2†(2 15 ). Znacznie u³atwia to uzyskanie czÍstotliwoúci 1†Hz, bÍd¹cej odpowiednikiem jednej sekundy. Licznik TMR1 ma pojemnoúÊ 16 bitÛw, co odpowiada maksymalnej liczbie zliczonych impulsÛw rÛwnej 65535. WartoúÊ ta jest dwukrotnie wiÍksza od czÍstotliwoúci rezonatora i gdyby licznik pracowa³ z†pe³n¹ pojemnoúci¹, przepe³nienie nastÍpowa³oby co dwie sekundy, a†odliczanie czasu wykonywane by³oby bez koniecznoúci ³adowania pocz¹tkowej wartoúÊ licznika TMR1. W†przedstawionym uk³adzie wyúwietlane s¹ takøe sekundy, dlatego trzeba zmniejszyÊ pojemnoúÊ licznika o†po³owÍ. Zmniejszenie to jest wykonywane przez dodanie liczby 32768 po kaødym przepe³nieniu licznika. Takie rozwi¹zanie jest wygodniejsze do zastosowania niø ³adowanie licznika pocz¹tkow¹ wartoúci¹, gdyø w†drugim przypadku po wyst¹pieniu przepe³nienia licznika i†wygenerowaniu przerwania naleøy policzyÊ liczbÍ cykli wykonanych od
Elektronika Praktyczna 10/2003
Zegar ze 100−letnim kalendarzem i dwukanałowym termometrem momentu wyst¹pienia przerwania do momentu ³adowania licznika i†uwzglÍdniÊ tÍ liczbÍ, ³aduj¹c pocz¹tkow¹ wartoúÊ do licznika. Czas od momentu wyst¹pienia przerwania do za³adowania licznika wynika z†faktu koniecznoúci zachowania niektÛrych rejestrÛw mikrokontrolera przed obs³ug¹ przerwania (W, Status). W†przypadku dodawania liczby do licznika, skorygowanie jego wartoúci moøe nast¹piÊ w†dowolnym momencie, przed zliczeniem 32768 impulsÛw, co odpowiada jednej sekundzie. Ponadto nie ma znaczenia, ile czasu minͳo od przyjÍcia przerwania do korekcji licznika na dodawan¹ wartoúÊ, gdyø zawsze jest ona sta³a†i†wynosi 32768. Jak widaÊ, zastosowanie licznika TMR1 do odmierzania czasu jest bardzo wygodne, a†przerwania nie zaburzaj¹ zbytnio pracy mikrokontrolera, gdyø wystÍpuj¹ co sekundÍ. Do korekcji generowanej czÍstotliwoúci zastosowano trymer C5, ktÛry pozwala na dostrojenie generatora tak, aby czas by³ odmierzany z†jak najwiÍksz¹ dok³adnoúci¹. Pomiar temperatury jest wykonywany przez czujniki temperatury typu DS1820. Zastosowanie tych uk³adÛw ca³kowicie uwalnia mikrokontroler od jakiegokolwiek kontaktu z†sygna³ami analogowymi, wystÍpuj¹cymi przy tradycyjnym pomiarze temperatury. Uk³ad DS1820 zawiera kompletny modu³ pomiaru temperatury i†przetwarzania wyniku na postaÊ cyfrow¹. Komunikacja uk³adu DS1820 z†uk³adem nadrzÍdnym odbywa siÍ przy pomocy jednoprzewodowej magistrali, co jest bardzo korzystne, gdyø mikrokontroler ma niewiele portÛw, a†czujnik wykorzystuje tylko jedno wyprowadzenie. Poniewaø pomiar wykonywany jest w†dwÛch miejscach, naleøa³o zastosowaÊ dwa identyczne czujniki. 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 rejest-
Elektronika Praktyczna 10/2003
rach uk³adu DS1820, operacje te s¹ wykonywane przez mikrokontroler. Pod³¹czenie obydwu czujnikÛw do wyprowadzeÒ mikrokontrolera jest doúÊ nietypowe, gdyø do jednej magistrali moøna pod³¹czyÊ jednoczeúnie nawet kilkadziesi¹t uk³adÛw serii DS, a†w†przedstawionym urz¹dzeniu kaødy uk³ad jest pod³¹czony do innego wyprowadzenia mikrokontrolera. Takie pod³¹czenie zosta³o zastosowane, aby uproúciÊ procedurÍ uruchamiania zegara. Pod³¹czenie kilku uk³adÛw DS1820 do jednej magistrali wymaga odczytania numeru seryjnego kaødego z†nich. Jeúli po rejestracji czujnik zosta³by wymieniony na inny egzemplarz, to konieczna by³aby ponowna rejestracja. Komunikacja mikrokontrolera z†konkretnym uk³adem do³¹czonym do magistrali polega na wys³aniu na magistralÍ numeru seryjnego konkretnego uk³adu i†jeúli taki bÍdzie zastosowany, to zostanie przeprowadzona z†nim wymiana danych. W†tym czasie pozosta³e uk³ady s¹ nieaktywne, gdyø ich numer seryjny jest inny od podanego. Taki sposÛb†komunikacji jest stosowany w†przypadku, gdy do magistrali jest do³¹czony wiÍcej niø jeden uk³ad. W†przedstawionym zegarze rÛwnieø moøna uøyÊ tego sposobu komunikacji, jednak z†uwagi na fakt, øe 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 jest pomijany. Zasilanie ca³ego uk³adu jest wykonane przy uøyciu stabilizatora typu LM2931, stabilizator ten dostarcza stabilizowanego napiÍcia 5†V przy niewielkim poborze pr¹du. Jest to bardziej ekonomiczny uk³ad niø popularny LM78L05. W†czasie pracy uk³ad LM2931 pobiera pr¹d o†natÍøeniu oko³o 400 µA. Ograniczenie pobieranego pr¹du jest szczegÛlnie istotne w†przypadku braku zasilania g³Ûwnego. W†takim wypadku ostateczny pr¹d†pobierany przez ca³y uk³ad wynosi oko³o 3†mA, co pozwala na wielogo-
dzinn¹ pracÍ zegara zasilanego bateryjnie. W†przypadku zastosowania jako stabilizatora uk³adu LM78L05 pobÛr pr¹du wzrasta do wartoúci oko³o 7†mA. Jak widaʆstabilizator ten pobiera wiÍcej pr¹du niø pozosta³e elementy zegara. Wszystkie wartoúci pr¹du dotycz¹ pracy bez podúwietlania wyúwietlacza LCD. Kondensatory C1...C3 wyg³adzaj¹ napiÍcie zasilania. Diody D1 i†D2 pe³ni¹ rolÍ automatycznego prze³¹cznika pomiÍdzy zasilaniem g³Ûwnym i†bateryjnym. W†czasie pracy przy zasilaniu g³Ûwnym na z³¹czu CON1 panuje napiÍcie o†wartoúci oko³o 12 V, a†na z³¹czu CON2 napiÍcie o†wartoúci oko³o 9†V. W†tej sytuacji dioda D2 jest w†stanie zaporowym, gdyø na jej katodzie jest wyøszy potencja³ niø na anodzie wywo³any napiÍciem zasilania g³Ûwnego; jeúli zasilanie g³Ûwne zostanie od³¹czone, to dioda D2 zacznie przewodziÊ i†uk³ad bÍdzie zasilany z†baterii. Prezentacja czasu oraz temperatury jest wykonywana na wyúwietlaczu alfanumerycznym o†organizacji 2x20, co umoøliwia wyúwietlanie wszystkich parametrÛw zarÛwno w†czasie normalnej pracy, jak i†w†czasie ustawiania parametrÛw. Zastosowany wyúwietlacz posiada podúwietlanie pola odczytowego, co umoøliwia odczyt wyúwietlanych wartoúci nawet w†zupe³nej ciemnoúci. Podúwietlanie wyúwietlacza jest wykonane w†postaci matrycy diod úwiec¹cych, co poci¹ga za sob¹ duøy pobÛr pr¹du w†czasie podúwietlania (oko³o 130 mA). Wykorzystanie do zasilania podúwietlania wyúwietlacza napiÍcia 5†V z†wyjúcia stabilizatora spowodowa³oby jego uszkodzenie, gdyø jego wydajnoúÊ pr¹dowa wynosi 100 mA. Zastosowanie stabilizatora o†wiÍkszej wydajnoúci pr¹dowej niepotrzebnie zwiÍkszy³oby gabaryty ca³ego urz¹dzenia, a†zastosowanie stabilizatora o†wydajnoúci 1†A bez radiatora powodowa³oby wydzielanie si͆duøej iloúci ciep³a. Optymalnym rozwi¹zaniem jest zasilanie diod podúwietlaj¹cych wyúwietlacza napiÍciem pobieranym przed stabilizatorem. Takie rozwi¹zanie zastosowano w†uk³adzie zegara, pr¹d zasilaj¹cy diody jest pobierany z†g³Ûwnego napiÍcia zasila-
23
Zegar ze 100−letnim kalendarzem i dwukanałowym termometrem WYKAZ ELEMENTÓW
Rys. 2. Budowa licznika TMR2
nia, przez co dodatkowo uzyskano automatyczny wy³¹cznik podúwietlania w†przypadku braku zasilania g³Ûwnego. W†czasie zasilania bateryjnego dioda D1 nie pozwala na przedostawanie si͆pr¹du do podúwietlania wyúwietlacza. W†czasie pracy przy zasilaniu g³Ûwnym podúwietlanie wyúwietlacza moøe byÊ w³¹czane lub wy³¹czane w†sposÛb elektroniczny, jednym przyciskiem. W³¹czaniem podúwietlania steruje mikrokontroler poprzez wzmacniacz pr¹dowy zrealizowany przy pomocy tranzystora T1. Przy zastosowanej wartoúci rezystora R3 ograniczaj¹cego maksymalny pr¹d p³yn¹cy przez diody podúwietlania wynosi oko³o†130 mA przy napiÍciu zasilania 11,5 V. OprÛcz elektronicznego w³¹czania i†wy³¹czania podúwietlania regulowana moøe byÊ (w dziesiÍciu krokach) takøe intensywnoúÊ podúwietlania. Do sterowania podúwietlaniem wyúwietlacza wykorzystano wyprowadzenie RB3 mikrokontrolera. Wyprowadzenie to oprÛcz funkcji typowego wyprowadzenia wejúcia/wyjúcia jest dodatkowo wyjúciem sygna³u†sprzÍtowego ste-
Rys. 3. Budowa sprzętowego generatora PWM
rownika PWM (modulacja szerokoúci impulsu), dziÍki temu moøliwe jest elektroniczne ustawienie intensywnoúci podúwietlania wyúwietlacza. SprzÍtowy sterownik PWM sprawia, øe sterowanie podúwietlaniem wyúwietlacza jest wykonywane niezaleønie od pracy jednostki centralnej mikrokontrolera. Do pracy sterownika wykorzystywany jest licznik TMR2, ktÛry wraz z†komparatorami cyfrowymi umoøliwia wytworzenie na wyjúciu RB3 przebiegu o†dowolnym wype³nieniu bez udzia³u jednostki centralnej mikrokontrolera. BudowÍ licznika TMR2 przedstawiono na rys. 2. Licznik ten wyposaøony jest w†dzielnik wejúciowy (Prescaler) o†stopniach podzia³u†1:1, 1:4, 1:16, na wyjúciu licznika znajduje siÍ jeszcze jeden dzielnik (Postscaler), dziÍki ktÛremu moøna dodatkowo podzieliÊ przebieg otrzymany z†wyjúcia licznika maksymalnie przez 16. Najwaøniejszym z†punktu widzenia generowania przebiegu PWM jest
Rezystory R1, R2: 2,2kΩ R3: 68Ω R4: 10kΩ R5: 1kΩ PR1: potencjometr montażowy 10kΩ Kondensatory C1, C2: 47µF/16V C3: 100nF C4: 30pF C5: trymer 5−40pF Półprzewodniki D1, D2: 1N4007 T1: BC547B US1: PIC16F628 zaprogramowany US2: LM2931 US3, US4: DS1820 Różne CON1: ARK2(3,5mm) CON2: goldpin 1x2 męski CON3,CON4: goldpin 1x3 męski S1...S4: mikrowłącznik h=10mm X1: rezonator kwarcowy 32,768kHz Wyświetlacz 2x20 (np. GDM2002D) Podstawka DIP18
rejestr PR2, rejestr ten okreúla maksymaln¹ pojemnoúÊ licznika TMR2. WartoúÊ wpisana do rejestru PR2 jest wartoúci¹, po przekroczeniu ktÛrej nast¹pi zerowanie licznika TMR2, dla modulacji PWM jest to czas trwania jednego cyklu (czas trwania 0†+ czas trwania 1†na wyjúciu RB3). KonfiguracjÍ licznika TMR2 w†trybie sprzÍtowego sterownika PWM przedstawiono na rys. 3. Generowanie przebiegu o†zmiennym wype³nieniu sprowadza siÍ do wpisania do rejestru PR2 czasu trwania jednego cyklu, a†do rejestru CCPR1L czasu trwania stanu wysokiego na wyjúciu RB3. Po wpisaniu tych wartoúci przebieg na wyjúciu RB3 jest wytwarzany przez TMR2, bez koniecznoúci kontrolowania przez jednostkÍ centraln¹ mikrokontrolera, dziÍki temu moøe on zaj¹Ê siÍ innymi zadaniami. Krzysztof P³awsiuk, AVT
[email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziernik03.htm oraz na p³ycie CD-EP10/2003B w katalogu PCB.
24
Elektronika Praktyczna 10/2003
Inteligentny sterownik oświetlenia P wnętrza R O J samochodu E K T Y
Inteligentny sterownik oświetlenia wnętrza samochodu AVT−528 Wsiadaj¹c do samochodu noc¹, czÍsto po omacku szukamy stacyjki, bo po zamkniÍciu drzwi lampka oúwietlaj¹ca wnÍtrze kabiny natychmiast gaúnie. Moøna oczywiúcie pozostawiÊ otwarte drzwi, ale w†czasie mrozu, czy opadÛw deszczu nie jest to przyjemne. W wiÍkszoúci nowych samochodÛw s¹ zainstalowane uk³ady steruj¹ce wewnÍtrznym oúwietleniem tak, øe lampka gaúnie stopniowo i z pewnym opÛünieniem, jednak uøytkownicy kilkuletnich samochodÛw s¹ pozbawieni takich udogodnieÒ. Rekomendacje: jest to bez w¹tpienia jeden z bardziej przydatnych samochodowych ìgadøetÛwî. Polecamy go wszystkim posiadaczom starszych samochodÛw, a†takøe†tym konstruktoromelektronikom, ktÛrzy chc¹ poznaÊ tajniki sterowania PWM.
Elektronika Praktyczna 10/2003
Prezentowany w†artykule sterownik lampki powoduje przed³uøenie czasu jej úwiecenia po zamkniÍciu drzwi, co u³atwia w³oøenie kluczyka do stacyjki i†zapiÍcie pasÛw. Po zamkniÍciu drzwi úwiat³o úwieci siÍ jeszcze przez 30 sekund, jeúli jednak w†tym czasie zostanie w³¹czony zap³on (na wyjúciu stacyjki pojawi siÍ napiÍcie), to úwiat³o zostanie natychmiast wy³¹czone. W³¹czenie i†wy³¹czenie úwiat³a jest wykonywane p³ynnie, poprzez stopniowe jego zapalanie i†wygaszanie. Ponadto†sterownik wyposaøono w†funkcjÍ ochrony akumulatora przed roz³adowaniem - w†przypadku, gdy drzwi pozostan¹ otwarte zbyt d³ugo (na przyk³ad przez ca³¹ noc) moøe nast¹piÊ ca³kowite roz³adowanie akumulatora. Sterownik zapobiega takiej sytuacji, wy³¹czaj¹c úwiat³o po 150 sekundach od otwarcia drzwi. Aby ponownie w³¹czyÊ úwiat³o naleøy drzwi zamkn¹Ê i†ponownie otworzyÊ. Dodatkow¹ funkcj¹ sterownika jest w³¹czanie lampki po wy³¹czeniu silnika. Lampka jest w³¹czana na 30 sekund w†przypadku wy³¹czenia stacyjki, gdy by³y zapalone úwiat³a†postojowe. Ostatni¹ funkcj¹, niezwi¹zan¹ ze sterowaniem oúwietleniem, jest symulacja alarmu. Sterownik zosta³ wyposaøony w†diodÍ úwiec¹c¹, ktÛra przy wy³¹czonej stacyjce b³yska z†czÍstotliwoúci¹ 1†Hz, a†po w³¹czeniu stacyjki jest wy³¹czana.
Budowa Schemat elektryczny sterownika lampki samochodowej przedstawiono na rys. 1. Jego g³Ûwnym elementem jest uk³ad US1. Jest to mikrokontroler PIC12F629. Sygna³ zegarowy mikrokontrolera moøe pochodziÊ z†wewnÍtrznego generatora RC. Jego czÍstotliwoúÊ wynosi oko³o 4†MHz, i†moøe byÊ kalibrowana w†32 krokach, poprzez wpis odpowiedniej wartoúci do rejestru OSSCAL. Mikrokontroler zawiera dwa timery oraz uk³ad Watchdoga, ktÛry umoøliwia restart procesora w†przypadku jego zawieszenia. Poniewaø wejúcie zeruj¹ce mikrokontroler moøe pracowaÊ takøe jako wejúcie cyfrowe, w†procesorze zawarty jest uk³ad zeruj¹cy, ktÛry wyzeruje mikrokontroler, jeúli napiÍcie zasilania jest mniejsze niø 2†V. Nie ma wiÍc koniecznoúci stosowania zewnÍtrznego uk³adu zeruj¹cego. W†prezentowanym uk³adzie mikrokontroler jest taktowany z wewnÍtrznego generatora, gdyø nie jest wymagana duøa stabilnoúÊ czÍstotliwoúci sygna³u zegarowego, takøe sygna³ zeruj¹cy jest generowany przez wewnÍtrzne modu³y procesora. Watchdog jest uaktywniany, co sprawia, øe w†przypadku zawieszenia siÍ procesora jego prawid³owa praca zostanie przywrÛcona po czasie oko³o dwÛch sekund. Ze wzglÍdu na czÍste wystÍpowanie zak³ÛceÒ w†samochodzie watchdog jest bardzo przydatny.
27
Inteligentny sterownik oświetlenia wnętrza samochodu
Rys. 1. Schemat elektryczny inteligentnego sterownika lampki samochodowej
W†celu wykorzystania wszystkich moøliwoúci prezentowanego sterownika, niezbÍdne jest doprowadzenie sygna³Ûw napiÍciowych: z†w³¹cznika w†drzwiach, prze³¹cznika úwiate³ pozycyjnych oraz z†wyjúcia stacyjki. Sygna³ z†w³¹cznika umieszczonego w†drzwiach jest podawany na wejúcie procesora poprzez diodÍ. Wyjúcie w³¹cznika w†momencie otwarcia drzwi zostaje zwarte z†mas¹. Dioda zosta³a w³¹czona tak, øe ìprzepuszczaî tylko sygna³y o†poziomie niskim - czyli po otwarciu drzwi na wejúciu procesora wystÍpuje poziom niski. Jeúli zaú drzwi s¹†zamkniÍte, to wewnÍtrzny rezystor podci¹gaj¹cy zawarty w†mikrokontrolerze wymusza poziom wysoki na tym wejúciu. Sygna³y z†wyjúcia stacyjki i†w³¹cznika úwiate³ postojowych podawane s¹ poprzez dzielniki rezystancyjne (R1...R4), maksymalne napiÍcie na ich wejúciach moøe mieÊ wartoúÊ oko³o 15 V. W†przypadku wy³¹czenia úwiate³ lub stacyjki, rezystory R3 i†R4 wymuszaj¹ poziomy niskie na wejúciach mikrokontrolera. W dzielniku nastÍpuje podzia³ napiÍcia przez dwa. NapiÍcie w†instalacji samochodowej moøe wynosiÊ nawet 15V, w†takim przypadku na wyjúciach dzielnikÛw bÍdzie wystÍpowa³o napiÍcie o†wartoúci oko³o 7,5 V. WartoúÊ ta przekracza†dopuszczaln¹ wartoúÊ napiÍcia wejúciowego dla mikrokontrolera, jednak dziÍki wewnÍtrznym diodom zabezpieczaj¹-
28
cym napiÍcia wejúciowe s¹ obniøane do wartoúci VCC+0,4 V, a†takie napiÍcie mieúci siÍ w zakresie†dopuszczalnych napiÍÊ wejúciowych. Do³¹czona dioda úwiec¹ca moøe s³uøyÊ jako symulator alarmu, poniewaø po wy³¹czeniu zap³onu b³yska z†czÍstotliwoúci¹ 1†Hz. Po w³¹czeniu zap³onu dioda jest wy³¹czana. Do zapewnienia odpowiedniej wartoúci napiÍcia zasilania zastosowano stabilizator monolityczny typu LM78L05. Jako klucz w³¹czaj¹cy lampkÍ wewn¹trz kabiny zastosowano tranzystor T1. Jest to tranzystor typu MOSFET o†maksymalnym pr¹dzie przewodzenia 12 A, co w†zupe³noúci wystarcza, gdyø lampka ma zazwyczaj moc 5†W.
Dzia³anie sterownika Algorytm dzia³ania mikrokontrolera przedstawiono na rys. 2. Sprawdzane jest nieustannie czy stacyjka jest w³¹czona, czy teø wy³¹czona. Jeúli stacyjka jest wy³¹czona, to sprawdzany jest stan w³¹cznikÛw†drzwiowych. Jeøeli drzwi zostan¹ otwarte, to zostanie zapalone úwiat³o. Czas úwiecenia úwiat³a jest zaleøny od stanu stacyjki oraz stanu w³¹cznikÛw drzwiowych. W†zaleønoúci od ich ustawienia s¹ wykonywane odpowiednie procedury. Poniøej przedstawiono dzia³anie sterownika dla trzech moøliwych przypadkÛw. 1. Stacyjka wy³¹czona, drzwi otwarte.
W†tej sytuacji zostaje zapalone úwiat³o i†jednoczeúnie zostanie uruchomiony licznik odmierzaj¹cy czas samoczynnego wy³¹czenia úwiat³a. Licznik ten odlicza czas rÛwny 120 sekund. Jeúli taka sytuacja bÍdzie trwa³a 120 sekund, to zostanie odliczone jeszcze 30 sekund i†úwiat³o zostanie wy³¹czone, pomimo, øe drzwi bÍd¹ nadal otwarte. Zapobiega to roz³adowaniu akumulatora w†przypadku pozostawienia otwartych drzwi na d³ugi czas. Jeúli w†ci¹gu 120 sekund od otwarcia drzwi zostan¹ zamkniÍte, to rozpocznie siÍ odliczanie czasu 30 sekund. Dlatego niezaleønie od czasu otwarcia drzwi (nie d³uøszy niø 120 sekund), po ich zamkniÍciu úwiat³o bÍdzie siÍ jeszcze úwieci³o przez 30 sekund. Po zamkniÍciu drzwi úwiat³o moøe zostaÊ wy³¹czone przed up³ywem 30 sekund. Jeúli zostanie w³¹czona stacyjka (silnik), wÛwczas úwiat³o zostanie wy³¹czone natychmiast. Jeøeli zostanie w³¹czona stacyjka (niezaleønie czy drzwi s¹ otwarte, czy nie), to úwiat³o†zostanie wy³¹czone, a†program przechodzi do przypadku, gdy stacyjka jest w³¹czona (punkt 2). 2. Stacyjka w³¹czona, drzwi otwarte. Jest to sytuacja, gdy samochÛd jest uruchomiony i†zostan¹ otwarte drzwi (na przyk³ad wsiada pasaøer). W†tej sytuacji po otwarciu drzwi úwiat³o†zostanie zapalone, a†po ich zamkniÍciu natych-
Elektronika Praktyczna 10/2003
Inteligentny sterownik oświetlenia wnętrza samochodu
Rys. 2. Algorytm działania sterownika lampki samochodowej
miast zgaszone. W†takim przypadku nie jest konieczne wyd³uøanie czasu úwiecenia úwiat³a, poniewaø skoro silnik jest uruchomiony, to jest bardzo prawdopodobne, øe bezpoúrednio po zamkniÍciu drzwi rozpocznie siÍ jazda, a†w³¹czone úwiat³o bÍdzie oúlepia³o kierowcÍ. W†innej sytuacji, jeúli stacyjka jest w³¹czona, drzwi zostan¹ otwarte, a†nastÍpnie stacyjka zostanie wy³¹czona, to nast¹pi przejúcie do przypadku jak w†punkcie pierwszym. 3. Stacyjka w³¹czona, drzwi zamkniÍte, w³¹czone úwiat³a postojowe. Jeúli po zakoÒczonej jeüdzie zostanie wy³¹czona stacyjka, a†úwiat³a mijania lub drogowe by³y†zapalone, to oznacza, øe najprawdopodobniej jest ciemno. W†takiej sytuacji po wy³¹czeniu stacyjki úwiat³o zostanie w³¹czone, bez koniecznoúci otwierania drzwi. Poniewaø w†niektÛrych samochodach wraz z†wy³¹czeniem stacyjki wy³¹czane s¹ teø úwiat³a, konieczne sta³o siÍ zastosowanie pamiÍci zapalonych úwiate³. Bez tej funkcji w†samochodach z†automatycznym wy³¹czaniem úwiate³ lampka nie zosta³aby zapalona, poniewaø procedura w³¹czaj¹ca úwiat³o w†momencie wy³¹czenia stacyjki sprawdza czy s¹ zapalone
Elektronika Praktyczna 10/2003
úwiat³a. Program zawarty w†procesorze zapamiÍtuje wiÍc stan úwiate³ mijania jeszcze przez dwie sekundy po ich wy³¹czeniu. Dlatego jeúli úwiat³a zostan¹ wy³¹czone, na przyk³ad o†sekundÍ wczeúniej niø zostanie wy³¹czona stacyjka, to mikrokontroler i†tak bÍdzie ìwiedzia³î, øe úwiat³a by³y zapalone i†lampka zostanie zapalona. Lampka bÍdzie úwieci³a siÍ przez 30 sekund, jeøeli jednak zostanie w³¹czona stacyjka, to zostanie natychmiast wy³¹czona. Jeøeli zostan¹ otwarte drzwi, to nast¹pi przejúcie do przypadku z†punktu pierwszego. Jeúli nie chcemy, aby lampka by³a w³¹czana samoczynnie po wy³¹czeniu stacyjki, to wejúcie sterownika oznaczone jako ìåwiat³aî naleøy pozostawiÊ niepod³¹czone. Rezystor R4 bÍdzie wymusza³ poziom niski i†niezaleønie od tego czy úwiat³a by³y w³¹czone, czy nie, procesor przyjmie, øe by³y wy³¹czone i†lampka nie bÍdzie w³¹czana. Aby zwiÍkszyÊ komfort uøytkowania sterownika, zapalanie i†gaszenie lampki jest wykonywane stopniowo - powoli rozjaúniaj¹c lub przyciemniaj¹c úwiat³o. Pozwala to na przyzwyczajenie siÍ oczu do zmian natÍøenia oúwietlenia. Przyciemnianie i†rozjaúnianie úwiat³a zosta³o wykonane po-
przez zmianÍ wype³nienia sygna³u steruj¹cego tranzystorem T1 (modulacja PWM). Podczas pe³nego zapalenia albo ca³kowitego wygaszenia øarÛwki tranzystor jest w³¹czony lub wy³¹czony. Podczas w³¹czania lub wy³¹czania tranzystor jest sterowany impulsowo. ProcedurÍ realizuj¹c¹ funkcjÍ powolnego rozjaúniania úwiat³a przedstawiono na list. 1. Aby powoli rozjaúniÊ úwiat³o naleøy zwiÍkszaÊ czas w³¹czenia tranzystora i†zmniejszaÊ czas jego wy³¹czenia (ca³kowity suma czasÛw w³¹czenie i†wy³¹czenia jest zawsze taka sama). Do odliczania czasu w³¹czenia i†wy³¹czenia tranzystora procedura wykorzystuje Timer0. S³uøy on do precyzyjnego odmierzania czasu, dlatego po wpisaniu pocz¹tkowej wartoúci do TMR0 procesor oczekuje na jego przepe³nienie. W†zmiennej i jest pamiÍtana wartoúÊ czasu wy³¹czenie tranzystora, a†w†zmiennej j czas jego w³¹czenia. W³¹czanie i†wy³¹czanie tranzystora jest wykonywane 255 razy, z†tym, øe za kaødym razem czas w³¹czenia jest coraz d³uøszy, a†czas wy³¹czenia coraz krÛtszy, co w†efekcie powoduje coraz jaúniejsze úwiecenie øarÛwki. Dla kaødej wartoúci i i†j przebieg jest powtarzany 30 razy, dziÍki temu proces rozjaúniania jest wykony-
29
Inteligentny sterownik oświetlenia wnętrza samochodu List. 1. Procedura powolnego rozjaśniania światła buz_on() {int i,j,k,l; j=255;i=0; for(k=0;k<255;k++) //wykonaj 255 razy { for(l=0;l<30;l++) //wykonaj 30razy { restart_wdt(); //zeruj WDT buz=0; //wyłącz światło tmr0=i; //przepisz stan i do TMR0 while(!bit_test(intcon,t0if)); //czekaj na przepełnienie TMR0 bit_clear(intcon,t0if); //zeruj flagę przepełnienia TMR0 buz=1; //zapal światło tmr0=j; //przepisz stan j do TMR0 while(!bit_test(intcon,t0if)); //czekaj na przepełnienie TMR0 bit_clear(intcon,t0if); //zeruj flagę przepełnienia TMR0 } i++; j--; } buz=1;
//zwiększ wartość i //zmniejsz wartość j //jeśli wszystko wykonane //to włącz światło
}
wany przez czas oko³o dwÛch sekund. Po tym czasie øarÛwka úwieci pe³n¹ moc¹ i†procedura jest zakoÒczona. Procedura powolnego úciemniania úwiat³a dzia³a na podobnej zasadzie (list. 2), lecz na pocz¹tku czas w³¹czenia tranzystora jest najd³uøszy, a†czas wy³¹czenia najkrÛtszy, przez co pocz¹tkowo øarÛwka úwieci najmocniej i†jest powoli úciemniana. Dodatkowo zwiÍkszona jest liczba powtÛrzeÒ przebiegu dla poszczegÛlnych wartoúci w³¹czenia i†wy³¹czenia tranzystora, co powoduje wyd³uøenie czasu wygaszania úwiat³a i†³agodniejsze przejúcie ze stanu úwiecenia pe³n¹ moc¹ do ca³kowitego wygaszenia. Dla wartoúci rÛwnej 50, czas ten wynosi oko³o 3†sekund.
Montaø i†uruchomienie Uk³ad sterownika naleøy zmontowaÊ na p³ytce jednostronnej zgodnie ze schematem montaøowym pokazanym na rys. 3. Z†uwagi na niewielk¹ liczbÍ elementÛw montaø p³ytki nie jest zbyt trudny. Rozpoczynamy od montaøu elementÛw o†najmniejszych gabary-
tach. Poniewaø uk³ad ma pracowaÊ w†samochodzie, a†wiec w†úrodowisku naraøonym na wilgoÊ, pod mikrokontroler naleøy zastosowaÊ podstawkÍ precyzyjn¹ lub nawet wlutowaʆgo bezpoúrednio w†p³ytkÍ. Pozwoli to unikn¹Ê wyst¹pienia usterek wywo³anych przerwami pomiÍdzy wyprowadzeniami mikrokontrolera i†podstawki. Jeúli sterownik ma s³uøyÊ takøe†jako symulator alarmu, to do z³¹cza CON3 naleøy przylutowaÊ przewÛd zakoÒczony diod¹, a†po zamontowaniu uk³adu w†samochodzie diodÍ umieúciÊ w†widocznym miejscu. Jeøeli nie bÍdzie wykorzystywana funkcja symulacji alarmu, to diodÍ naleøy wlutowaÊ w†p³ytkÍ, gdyø bÍdzie ona pomocna przy uruchamianiu uk³adu. Jeúli montaø zosta³ przeprowadzony poprawnie, moøemy przejúÊ do uruchomienia uk³adu. W†tym celu do z³¹cza CON2 naleøy pod³¹czyÊ napiÍcie o†wartoúci oko³o 12 V†(oznaczone na p³ytce ì+î i†ì-î). Po w³¹czeniu zasilania dioda powinna b³yskaÊ. Jeúli tak jest, to uk³ad dzia³a poprawnie i†moøna go zainstalowaÊ w†samocho-
dzie. Na rys. 4a przedstawiono schemat typowego obwodu w³¹czaj¹cego oúwietlenie wnÍtrza kabiny. Jak widaÊ, za w³¹czenie úwiat³a odpowiadaj¹ w³¹czniki umieszczone w†drzwiach. Dodatkowy prze³¹cznik jest umieszczony wewn¹trz lampki i†umoøliwia w³¹czenie úwiat³a przy zamkniÍtych drzwiach. W†niektÛrych samochodach prze³¹cznik ten jest pominiÍty. Moøe siÍ jednak zdarzyÊ, øe prze³¹cznik ten jest trÛjpozycyjny. W†takim przypadku moøna w³¹czyÊ lampkÍ, prze³¹czyÊ w†tryb sterowania z†w³¹cznikÛw umieszczonych w†drzwiach lub j¹ wy³¹czyÊ. Jeúli w†samochodzie znajduje siÍ w³aúnie taki typ prze³¹cznika, to do poprawnej pracy sterownika musi znajdowaÊ siÍ w†pozycji sterowania za pomoc¹ w³¹cznikÛw umieszczonych w†drzwiach. Aby wykorzystaÊ wszystkie moøliwoúci sterownika naleøy wykonaÊ drobn¹ modyfikacjÍ instalacji samochodowej. Schemat pod³¹czenia sterownika do instalacji samochodowej jest przedstawiony na rys. 4b. OprÛcz po³¹czeÒ pomiÍdzy lampk¹ i†w³¹cznikami w†drzwiach naleøy wykonaÊ po³¹czenia z†w³¹cznikiem úwiate³, plusem zasilania i†z wyjúciem stacyjki. Na schemacie grub¹ lini¹ przedstawiono po³¹czenia, ktÛre naleøy wykonaÊ w†celu zainstalowania sterownika. Przed przyst¹pieniem do szukania w³aúciwych kabli bardzo przydatny moøe byÊ schemat instalacji elektrycznej sa-
List. 2. Procedura powolnego ściemniania światła buz_off() {int i,j,k,l; j=255;i=0; for(k=0;k<255;k++) //wykonaj 255 razy { for(l=0;l<50;l++) //wykonaj 50razy { restart_wdt(); //zeruj WDT buz=1; //włącz światło tmr0=i; //przepisz stan i do TMR0 while(!bit_test(intcon,t0if)); //czekaj na przepełnienie TMR0 bit_clear(intcon,t0if); //zeruj flagę przepełnienia TMR0 buz=0; //zgaś światło tmr0=j; //przepisz stan j do TMR0 while(!bit_test(intcon,t0if)); //czekaj na przepełnienie TMR0 bit_clear(intcon,t0if); //zeruj flagę przepełnienia TMR0 } i++; j--; } buz=0; }
30
//zwiększ wartość i //zmniejsz wartość j //jeśli wszystko wykonane //to wyłącz światło
Rys. 3. Schemat montażowy płytki sterownika
Elektronika Praktyczna 10/2003
Inteligentny sterownik oświetlenia wnętrza samochodu WYKAZ ELEMENTÓW Rezystory R1...R4: 12kΩ R5: 330Ω Kondensatory C1, C4: 100µF/25V C2, C3: 100nF Półprzewodniki D1: 1N4007 D2: BAT43 T1: BUZ10 US1: PIC12F629 zaprogramowany US2: LM78L05 Różne CON1, CON2: ARK3−5mm CON3: Goldpin 1x2 męski Dioda LED 2x5mm dowolna Podstawka DIP8 − precyzyjna
Rys. 4. Schemat elektryczny obwodu oświetlenia wnętrza kabiny (a), sposób podłączenia sterownika do instalacji samochodowej (b)
mochodu, gdyø znacznie przyúpieszy to proces wykonania w³aúciwych po³¹czeÒ. Do pracy sterownika niezbÍdne jest doprowadzenie nastÍpuj¹cych sygna³Ûw: masa, ì+î zasilania, bezpoúrednio z†akumulatora, ì+î pobrany za w³¹cznikiem úwiate³ pozycyjnych, ì+î pobrany za stacyjk¹. Po³¹czenia te polegaj¹ jedynie na odszukaniu odpowiednich przewodÛw i†rÛwnoleg³e pod-
Elektronika Praktyczna 10/2003
³¹czenie ich do sterownika. NajwiÍksz¹ trudnoúÊ sprawi wykonanie po³¹czenia z†w³¹cznikÛw umieszczonych w†drzwiach i†w³¹cznika lampki, gdyø istniej¹ce fabrycznie po³¹czenie naleøy przerwaÊ i†pod³¹czyÊ do sterownika. Naleøy pamiÍtaÊ, øe obwÛd†musi zostaÊ przerwany w†miejscu, w†ktÛrym sygna³y z†wszystkich w³¹cznikÛw drzwiowych s¹ juø po³¹czone (musi to
byÊ przewÛd biegn¹cy bezpoúrednio do lampki). Po prawid³owym wykonaniu wszystkich po³¹czeÒ†uk³ad sterownika jest gotowy do pracy. Krzysztof P³awsiuk, AVT
[email protected] Plik wynikowy do zaprogramowania mikrokontrolera jest dostÍpny na naszej stronie internetowej download.ep.com.pl w†dziale Dokumentacje. Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziernik03.htm oraz na p³ycie CD-EP10/2003B w katalogu PCB.
31
Programowany generator P R O JPWM E w K VHDL T Y
Programowany generator PWM w VHDL W†sprzÍtowe generatory przebiegÛw prostok¹tnych o†zmiennym wspÛ³czynniku wype³nienia (PWM - Pulse Width Modulation) s¹ wyposaøone praktycznie wszystkie wspÛ³czesne mikrokontrolery. Nie dzieje siÍ tak bez przyczyny - za ich pomoc¹ moøna zmieniaÊ m.in. obroty silnikÛw elektrycznych, jasnoúÊ úwiecenia øarÛwek, moøna je takøe wykorzystaÊ jako przetworniki C/A o ca³kiem niez³ych parametrach. DziÍki zastosowaniu uniwersalnego jÍzyka opisu sprzÍtu, prezentowany w†artykule projekt moøna traktowaÊ jak klasyczny blok IP (Intellectual Property core). Rekomendacje: polecamy projektantom uk³adÛw cyfrowych, ktÛrzy chc¹ efektywnie wykorzystywaÊ moøliwoúci nowoczesnych uk³adÛw programowalnych.
Niew¹tpliwie uøytkownicy mikrokontrolerÛw maj¹ wygodne øycie, poniewaø generatory PWM, podobnie do wielu innych przydatnych modu³Ûw i†interfejsÛw dostaj¹ gotowe w†cenie mikrokontrolera ìz pÛ³kiî. Nieco gorzej wygl¹da sytuacja uøytkownikÛw
uk³adÛw PLD, poniewaø - co jest g³Ûwn¹ cech¹ tych uk³adÛw docieraj¹ one do uøytkownika w†postaci wymagaj¹cej konfigurowania ich wewnÍtrznych zasobÛw w celu realizowania dowolnych zadanych przez uøytkownika funkcji. Czy oznacza to, øe fani PLD nie mog¹ wyposaøaÊ swoich projektÛw w†UART-y, interfejsy I2C czy generatory PWM? Oczywiúcie nie, o†czym postaram siÍ przekonaÊ CzytelnikÛw w†najbliøszych
Rys. 1. Trzy przebiegi o współczynniku wypełnienia: a) 90%, b) 50%, c) 20%
Elektronika Praktyczna 10/2003
33
Programowany generator PWM w VHDL
Rys. 2. Charakterystyka widmowa generatora sygnału prostokątnego
Rys. 3. Charakterystyka widmowa sygnału na wyjściu generatora PWM po zastosowaniu filtru dolnoprzepustowego
Rys. 4. Schemat filtru dolnoprzepus− towego RC pierwszego rzędu (wtórnik napięciowy zalecany, lecz niekonieczny)
lu modulo 2n. Liczba zliczonych przez licznik impulsÛw jest porÛwnywana przez komparator z†liczb¹ referencyjn¹ podan¹ przez uøytkownika. Jest ona traktowana jako wartoúÊ okreúlaj¹ca czas trwaCo to jest PWM? nia (liczony w†cyklach zegaroModulacja PWM polega na mowych) stanu ì1î na wyjúciu gedyfikowaniu szerokoúci wybranej neratora PWM. Odliczanie czasu czÍúci (ì0î lub ì1î) przebiegu trwania ì1î na wyjúciu zaczyna prostok¹tnego, ktÛrego czÍstotlisiÍ zawsze przy stanie licznika woúÊ jest sta³a. Oznacza to, ì0î. WartoúÊ parametru n øe w†zaleønoúci od wartoúci okreúla rozdzielczoúÊ geneŹródła w Internecie wspÛ³czynnika wype³nienia, rowanego przebiegu, czyli Pliki źródłowe projektu prezentowanego czasy trwania ìimpulsÛwî inaczej mÛwi¹c - liczbÍ w artykule są dostępne na stronie (zazwyczaj ì1î) ti moøliwych do ustawienia internetowej EP w dziale i†ìprzerwî pomiÍdzy nimi wartoúci wspÛ³czynnika wyDownload>Dokumentacje. tp (zazwyczaj ì0î) zmieniape³nienia. Przyk³adowo, gdy j¹ siÍ, przy czym spe³niana n†= 2, generowany przebieg jest zaleønoúÊ ti + t p = T†= const. liwoúci¹ fPWM tak, øeby spe³niÊ PWM moøe mieÊ wspÛ³czynnik (czyli czÍstotliwoúÊ generowanego warunek fPWM=n*fG, przy czym n wype³nienia o†jednej z†wartoúci: przebiegu jest sta³a). WartoúÊ powinno mieÊ wartoúÊ co naj- 0/4, 1/4, 2/4 i†3/4. ZwiÍkszenie wspÛ³czynnika wype³nienia jest mniej 3, a†w†wiÍkszoúci przypad- d³ugoúci licznika o†jeden bit (czypodawana zazwyczaj w†procenkÛw (zw³aszcza podczas odtwa- li n†= 3) zwiÍksza dwukrotnie tach. Okreúla siÍ j¹ wzorem: α = rzania sygna³Ûw audio) nawet 5. liczbÍ moøliwych nastaw: 0/8 , (ti/T)*100 [%]. Na rys. 1 pokaWartoúci parametrÛw elementÛw 1/8, 2/8 , 3/8, 4/8, 5/8, 6/8 i†7/8. Jak zano trzy przyk³adowe fragmenty RC filtru dolnoprzepustowego widaÊ, zwiÍkszanie d³ugoúci liczprzebiegÛw o†rÛønych wspÛ³czynmoøna obliczyÊ korzystaj¹c ze nika powoduje zwiÍkszenie roznikach wype³nienia. dzielczoúci programowania wzoru R†= 1/(2*π*fG*C). Jak wspomnia³em na wstÍpie wspÛ³czynnika wype³nienia przeJak to zrobiÊ w†VHDL-u? biegu, przy czym najczÍúciej s¹ artyku³u, generator przebiegu Programowany generator PWM stosowane 8...10-bitowe generatoPWM moøna zastosowaÊ m.in. moøna wykonaÊ na wiele rÛønych ry PWM. jako przetwornik C/A. Jak to jest sposobÛw. Prezentowany w†artymoøliwe, jeúli na wyjúciu generaSchemat blokowy generatora kule projekt moøna zakwalifiko- PWM, ktÛrego opis w†jÍzyku tora wystÍpuje przebieg cyfrowy? waÊ jako ìklasycznyî - jego za- VHDL zaprezentujemy w†dalszej OtÛø, úrednia wartoúÊ napiÍcia na sadÍ dzia³ania zilustrowano na czÍúci artyku³u, pokazano na rys. wyjúciu generatora przebiegu rys. 5. Pokazany na tym rysunku 6. Jest on nieco bardziej rozbuPWM jest proporcjonalna do warprzebieg schodkowy symbolizuje dowany niø wynika z†dotychczatoúci wspÛ³czynnika wype³nienia zmianÍ stanÛw na wyjúciu licz- sowego opisu, co zosta³o spowogenerowanego przebiegu. Bezponika binarnego zliczaj¹cego w†cyk- dowane dwoma czynnikami: úrednie wykorzystanie sygna³u wystÍpuj¹cego na wyjúciu generatora PWM, na przyk³ad do odtwarzania sygna³Ûw akustycznych, nie jest moøliwe z†powodu wysokiego poziomu sk³adowych harmonicznych w†jego widmie (jak pokazano na rys. 2). Zmniejszenie ich poziomu wymaga zastosowania prostego filtru dolnoprzepustowego, ktÛrego czÍstotliwoúÊ graniczna fG (-3dB) bÍdzie mniejsza od Rys. 5. Ilustracja zasady działania generatora PWM numerach EP. Zaczynamy od modu³u, ktÛry cieszy siÍ duøym zainteresowaniem wúrÛd pisz¹cych do mnie CzytelnikÛw: programowanym generatorem PWM.
34
czÍstotliwoúci sygna³u PWM (fPWM=1/T, rys. 3). Schemat typowego filtru RC pierwszego rzÍdu pokazano na rys. 4. Ze wzglÍdu na jego prostotÍ (i - niestety stosunkowo niewielk¹ skutecznoúÊ t³umienia niepoø¹danych harmonicznych), zalecane jest kilkukrotne zwiÍkszenie ìodstÍpuî pomiÍdzy czÍstotliwoúci¹ graniczn¹ filtru dolnoprzepustowego a†czÍstot-
Elektronika Praktyczna 10/2003
Programowany generator PWM w VHDL
Rys. 6. Schemat blokowy generatora PWM
- Ze wzglÍdu na chÍÊ zapewnienia wysokiej jakoúci sygna³u PWM (brak impulsÛw glitch na tym wyjúciu), jest on generowany synchronicznie, co wymaga³o zastosowania dodatkowego przerzutnika D. - Aby u³atwiÊ wspÛ³pracÍ generatora z†systemem mikroprocesorowym lub dowolnym innym urz¹dzeniem, na wejúciu danych (tam, gdzie jest wpisywana wartoúÊ odniesienia) zastosowano dwustopniowy rejestr latch. DziÍki temu zmiana wartoúci odniesienia powoduje zmianÍ wspÛ³czynnika wype³nienia dopiero po zakoÒczeniu bieø¹cego cyklu odliczania, co z†kolei powoduje, øe nie wystÍpuj¹ impulsy glitch na wyjúciu PWM (jak ma to na przyk³ad miejsce w†niektÛrych mikrokontrolerach AVR). Na list. 1†przedstawiono opis w†jÍzyku VHDL uk³adu, ktÛrego
schemat blokowy pokazano na rys. 6. Rejestr pierwszego stopnia jest zapisywany sygna³em logicznym ì1î podawanym na wejúcie ld (wejúcie zewnÍtrznego sygna³u zapisuj¹cego) - st¹d warunek w†jego opisie elsif ld = '1' then…. Rejestr drugiego stopnia jest zapisywany narastaj¹cym zboczem sygna³u na wejúciu co, co zapisano jako elsif rising_edge(co) then.... Sygna³ co jest
Narzędzia za darmo Wszystkie narzędzia programowe wykorzystane podczas przygotowywania artykułu są udostępniane przez producentów bezpłatnie (wymagana jest jedynie rejestracja i − w przypadku oprogramowania firmy Altera − bezpłatna aktualizacja co 6 miesięcy licencji). System Max+Plus II oraz syntezer AAS są dostępne pod adresem: https://www.altera.com/support/software/download/ altera_design/mp2_baseline/dnl−baseline.jsp, System WebPack ISE jest dostępny pod adresem: http:// www.xilinx.com/support/download.htm.
Rys. 7. Widok okna edytora schematów z pakietu WebPack ISE z symbolem generatora PWM
Elektronika Praktyczna 10/2003
wytwarzany przez synchroniczny komparator zawsze, gdy wszystkie wyjúcia licznika przyjmuj¹ stany ì1î (nastÍpuje przepe³nienie licznika). DziÍki temu przepisanie z†rejestru pierwszego stopnia na wejúcia komparatora nowej wartoúci referencyjnej nastÍpuje zawsze po zakoÒczeniu pe³nego cyklu zliczania wynikaj¹cego z†d³ugoúci cyklu licznika. Opis licznika zastosowanego w†generatorze jest niezwykle prosty, a†to dziÍki moøliwoúci przeci¹øenia operatora ì+î (zliczanie kolejnych impulsÛw zapisano jako cnt_out <= cnt_out + 1;). Wymaga³o to zastosowania biblioteki STD_LOGIC_ARITH z†pakietu IEEE, ktÛra jest dostarczana z†wiÍkszoúci¹ wspÛ³czesnych systemÛw projektowych (za wyj¹tkiem MAX+Plus II). Opis komparatora wykrywaj¹cego przekroczenie wartoúci referencyjnej jest wydzielonym procesem, w†wyniku syntezy ktÛrego powstaje uk³ad kombinacyjny wykrywaj¹cy warunek data_int_cmp ≥ cnt_out, gdzie data_int_cmp - to wartoúÊ referencyjna, a†cnt_out - bieø¹cy stan
Rys. 8. Widok okna edytora schematów w Max+Plus II z symbolem generatora PWM
35
Programowany generator PWM w VHDL List. 1. Opis w języku VHDL 4−bitowego generatora PWM library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity pwm_gen is port ( data : in std_logic_vector(3 downto 0); clk, res, ld : in std_logic; pwm : out std_logic ); end pwm_gen; architecture Behavioral of pwm_gen is signal signal signal signal signal
data_int_cmp data_int, cnt_out data_int2 res_pwm_o, q, co ld_int, pwm_cn
: : : : :
std_logic_vector(3 downto 0); std_logic_vector(3 downto 0); std_logic_vector(3 downto 0); std_logic; std_logic;
begin -- rejestr wejsciowy pierwszego stopnia process (ld, res) begin if res = '1' then data_int <= "0000"; elsif ld = '1' then data_int <= data; end if; end process; -- rejestr wejsciowy drugiego stopnia process (co, res) begin if res = '1' then data_int_cmp <= "0000"; elsif rising_edge(co) then data_int_cmp <= data_int; end if; end process; -- licznik process (clk, res) begin if res = '1' then cnt_out <= "0000"; elsif rising_edge(clk) then cnt_out <= cnt_out + 1; end if; end process; -- generowanie sygnalu przeniesienia z licznika process (clk, res) begin if res = '1' or cnt_out < "1111" then co <= '0'; elsif rising_edge(clk) and cnt_out = "1111" then co <= '1'; end if; end process; -- komparator process (data_int_cmp, cnt_out) begin if cnt_out = "0000" then res_pwm_o <= '0'; elsif data_int_cmp >= cnt_out then res_pwm_o <= '1'; else res_pwm_o <= '0'; end if; end process;
Implementacja
-- przerzutnik PWM process (clk, res, res_pwm_o) begin if res = '1' then q <= '0'; elsif rising_edge(clk) then q <= res_pwm_o; end if; end process; pwm <= q; end Behavioral;
wyjúÊ licznika. Wprowadzenie w†opisie komparatora, wydawa³oby siÍ zbÍdnego, warunku else res_pwm_o <= '0'; zapobiega zsyntezowaniu na wyjúciu res_pwm_o przerzutnika podtrzymuj¹cego stan wyjúcia. Na list. 1†jest opis 4-bitowego generatora PWM. £atwo oszacowaÊ, øe oferowana przez niego
36
nastaw sygna³u wyjúciowego PWM jest moøliwe poprzez zwiÍkszenie d³ugoúci licznika, komparatora i†rejestrÛw. Zmiana tych parametrÛw wymaga kaødorazowo ingerencji w†plik ürÛd³owy projektu i†zmiany przyk³adowej wartoúci ì3î w†deklaracji std_logic_vector(3 downto 0) na wybran¹ liczbÍ. Nie jest to rozwi¹zanie wygodne, ani eleganckie i†czÍsto prowadzi do b³ÍdÛw uniemoøliwiaj¹cych kompilacjÍ projektu. W†zwi¹zku z†tym powsta³a alternatywna wersja projektu z†list. 1, rÛøni¹ca siÍ od pierwowzoru moøliwoúci¹ ³atwej parametryzacji. Zamieszczono j¹ na list. 2. Jak moøna zauwaøyÊ, w†deklaracji jednostki projektowej zastosowano klauzulÍ generic, ktÛra umoøliwia zdefiniowanie jej parametrÛw ogÛlnych. W†prezentowanym przyk³adzie s³uøy ona do okreúlenia rozdzielczoúci generatora PWM, co uzyskano definiuj¹c sta³¹ pwm_res, ktÛrej jest przypisywana wartoúÊ positive:= n (w przyk³adzie n†= 4). Parametr n†moøe byÊ liczb¹ ca³kowit¹ dodatni¹, co ustalono poprzez okreúlenie podtypu tej liczby jako positive (moøe przyjmowaÊ wartoúci od 1†do 2147483647). Przypisanie temu parametrowi ø¹danej wartoúci jest jedynym zabiegiem (poza rekompilacj¹ projektu) niezbÍdnym podczas zmiany rozdzielczoúci generatora PWM. Zmiana pozosta³ych wartoúci jest wykonywana automatycznie przez program wykonuj¹cy syntezÍ.
rozdzielczoúÊ jest niezbyt wielka i†z†pewnoúci¹ zbyt ma³a, aby moøna go by³o potraktowaÊ ìpowaønieî. Wersja taka powsta³a wy³¹cznie dla wygody testowania - analiza dzia³ania automatu o†16 stanach jest przecieø zdecydowanie ³atwiejsza niø na przyk³ad automatu 256-stanowego. ZwiÍkszenie rozdzielczoúci
Wykorzystanie jÍzyka opisu VHDL zapewnia moøliwoúÊ wzglÍdnie ³atwego przenoszenia projektu pomiÍdzy systemami s³uø¹cymi do syntezy logicznej i†implementacji w†strukturach PLD rÛønych producentÛw. Prezentowany generator zaimplementowano w†dwÛch uk³adach: XC9510815 w†obudowie PLCC84 oraz EPM7128-12 (takøe w†obudowie PLCC84). Jako narzÍdzia projektowe wykorzystano: - udostÍpniony bezp³atnie przez firmÍ Xilinx pakiet WebPack ISE 5.2 z†niez³ym kompilatorem VHDL i†zewnÍtrznym symulatorem ModelSim firmy Mentor Graphics,
Elektronika Praktyczna 10/2003
Programowany generator PWM w VHDL
WebPack ISE dla Windows XP Wadą najnowszej wersji pakietu WebPack ISE (5.2) jest jego kompatybilność wyłącznie z Windows XP. Użytkownicy starszych wersji Windows muszą korzystać ze starszych wersji pakietu, które charakteryzują się niewiele gorszymi możliwościami. - zestaw bezp³atnych narzÍdzi firmy Altera: kompletne úrodowisko projektowe Max+Plus II Baseline 10.2 oraz syntezer VHDL - Advanced Altera Synthesis (ktÛry zast¹pi³ udostÍpniany do niedawna przez Mentor Graphics syntezer Leonardo Spectrum). Poniewaø projekt sk³ada siÍ z†jednego pliku zawieraj¹cego opis w†jÍzyku VHDL, konfiguracja i†przygotowanie projektu do kompilacji, niezaleønie od systemu projektowego, jest bardzo proste. WebPack ISE zawiera komplet narzÍdzi niezbÍdnych do syntezy, implementacji i†kompilacji projektu opisanego w†VHDL. W†zaleønoúci od przyjÍtego sposobu projektowania, uøytkownik moøe w³¹czyÊ plik tekstowy VHDL do struktury w³asnego projektu lub jak s¹dzÍ jest wielu zwolennikÛw tego sposobu projektowania stworzyÊ graficzny element biblioteczny (Processing for Current Source>Design Entry Utilities>Create Schematic Symbol w†Web Pack ISE 5.2) i†po prostu narysowaÊ schemat logiczny generatora z†wykorzystaniem gotowego ìbloczkaî (rys. 7). W†nieco gorszej sytuacji znajduj¹ siÍ uøytkownicy systemu Max+Plus II, ktÛry - co prawda - w†wersji Student Edition udostÍpnia syntezer VHDL, ale jego moøliwoúci s¹ mocno ograniczone. Projektanci korzystaj¹cy z†uk³adÛw firmy Altera mog¹ wykorzystaÊ jako narzÍdzie projektowe nowszy system projektowy tej firmy Quartus II, ale jego popularnoúÊ (g³Ûwnie ze wzglÍdu na trudniejsz¹ obs³ugÍ i†duøe wymagania sprzÍtowe) jest znacznie mniejsza niø Max+Plus II. Skorzystanie z pakietu Max+Plus II jest jednak moøliwe, ale w†tym
Elektronika Praktyczna 10/2003
List. 2. Opis parametryzowanego generatora PWM library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity pwm_gen is generic ( pwm_res : positive:= 4 -- positive oznacza 1...2147483647 ); port ( data : in std_logic_vector(pwm_res-1 downto 0); clk, res, ld : in std_logic; pwm : out std_logic ); end pwm_gen; architecture Behavioral of pwm_gen is signal signal signal signal signal
data_int_cmp data_int, cnt_out data_int2 res_pwm_o, q, co ld_int, pwm_cn
: : : : :
std_logic_vector(pwm_res-1 downto 0); std_logic_vector(pwm_res-1 downto 0); std_logic_vector(pwm_res-1 downto 0); std_logic; std_logic;
constant zero: std_logic_vector(pwm_res-1 downto 0):= (others => '0'); constant ff: std_logic_vector(pwm_res-1 downto 0):= (others => '1'); begin -- rejestr wejsciowy pierwszego stopnia process (ld, res) begin if res = '1' then data_int <= (others => '0'); elsif ld = '1' then data_int <= data; end if; end process; -- rejestr wejsciowy drugiego stopnia process (co, res) begin if res = '1' then data_int_cmp <= (others => '0'); elsif rising_edge(co) then data_int_cmp <= data_int; end if; end process; -- licznik process (clk, res) begin if res = '1' then cnt_out <= (others => '0'); elsif rising_edge(clk) then cnt_out <= cnt_out + 1; end if; end process;
-- zapis alternatywny (cnt_out'range => '0');
-- generowanie sygnalu przeniesienia z licznika process (clk, res) begin if res = '1' or cnt_out < ff then co <= '0'; elsif rising_edge(clk) and cnt_out = ff then co <= '1'; end if; end process; -- komparator process (data_int_cmp, cnt_out) begin if cnt_out = zero then res_pwm_o <= '0'; elsif data_int_cmp >= cnt_out then res_pwm_o <= '1'; else res_pwm_o <= '0'; end if; end process; -- przerzutnik PWM process (clk, res, res_pwm_o) begin if res = '1' then q <= '0'; elsif rising_edge(clk) then q <= res_pwm_o; end if; end process; pwm <= q; end Behavioral;
celu trzeba skorzystaÊ z†pomocy zewnÍtrznego syntezera VHDL firmy Altera (bezp³atny program Advanced Synthesis), za pomoc¹ ktÛrego jest tworzona lista po³¹czeÒ EDIF. NastÍpnie, juø za
pomoc¹ Max+Plus II, z†pliku tekstowego w†formacie EDIF moøna utworzyÊ na przyk³ad symbol schematowy (rys. 8), ktÛry moøna nastÍpnie wykorzystaÊ w†kolejnych projektach w†taki
37
Programowany generator PWM wProgramowany VHDL generator PWM w VHDL
Rys. 9. Przebiegi: zegarowy i wyjściowy dla zadanego współczynnika wypełnienia 1/16 (4−bitowy generator PWM)
sam sposÛb jak pozosta³e (takøe te dostarczone wraz z†systemem projektowym) elementy biblioteczne. Po implementacji prezentowanego projektu i†przy za³oøeniu, øe generator PWM ma rozdzielczoúÊ 10-bitow¹ (czyli dla pwm_res = 10), okaza³o siÍ, øe w†uk³adzie XC95108 (zawiera 108 makrokomÛrek) wykorzystano 35 makrokomÛrek, w†tym 22 rejestry, a†maksymalna czÍstotliwoúÊ taktowania generatora (dla optymalizacji ìpowierzchniowejî i†uk³adu z†sufiksem -15) wynosi 71,429 MHz (wynik nie by³ weryfikowany w†praktyce). Podobne wyniki uzyskano w†przypadku implementacji projektu w†uk³adzie EPM7128. Wykorzystano takøe 35 makrokomÛrek (spoúrÛd 128 dostÍpnych), a†maksymalna czÍstotliwoúÊ taktowania w†przypadku uk³adu oznaczonego sufiksem -12 wynosi³a 73,6 MHz (wynik symulacji, nie weryfikowany w†praktyce).
Uzyskane efekty Podczas opracowywania projektu, wszelkie testy sprzÍtowe by³y prowadzone na uniwersalnym zestawie ewaluacyjnym ZL1PLD (udostÍpniony przez firmÍ BTC), ktÛry dziÍki specjalnej konstrukcji umoøliwia stosowanie dowolnych uk³adÛw PLD. Standardowo, s¹ w†nim stosowane uk³ady CPLD zasilane napiÍciem 5†V. Polityka cenowa producentÛw uk³adÛw powoduje, øe najtaÒsze s¹ uk³ady zasilane napiÍciem 3,3 V†z†portami I/O przystosowanymi do wspÛ³pracy z†uk³adami zasilanymi napiÍciem 5†V. I†tak przyk³adowo, koszt implementacji
38
Rys. 10. Przebiegi: zegarowy i wyjściowy dla zadanego współczynnika wypełnienia 15/16 (4−bitowy generator PWM)
Kłopoty wynikające z niezgodności wersji Udostępniony na naszej stronie internetowej projekt dla systemu WebPack ISE 5.2 nie jest kompatybilny ze starszymi wersjami systemu projektowego. Wynika to z niezgodności formatu plików *.npl i zastosowanej przez twórców systemu projekto− wego struktury plików pomocniczych.
prezentowanego generatora PWM wynosi: - w†uk³adzie XC95108-15 w†obudowie PLCC84 (zasilanie 5†V): 16,47 z³ brutto, - w†uk³adzie XC95144XL-15 w†obudowie TQFP100 (zasilanie 3,3 V): 8,65 z³ brutto, - w†uk³adzie EPM7128-12 w†obudowie PLCC84 (zasilanie 5†V): 19 z³ brutto, - w†uk³adzie EPM3128A-10 w†obudowie TQFP100 (zasilanie 3,3 V): 14,51 z³ brutto. Zestawienie to przygotowano na podstawie cen dystrybucyjnych brutto w†Polsce (zakup pojedynczych sztuk). Do zestawienia dobrano uk³ady najbardziej do siebie zbliøone pod wzglÍdem liczby wbudowanych makrokomÛrek, poniewaø nie s¹ dostÍpne úcis³e odpowiedniki w†wersjach zasilanych napiÍciami 3,3 V†oraz 5†V. Na rys. 9 i†10 pokazano przyk³adowe wyniki dzia³ania 4-bitowego generatora PWM zaimplementowanego w†uk³adzie PLD. Piotr Zbysiñski, AVT
[email protected]
Elektronika Praktyczna 10/2003
Uniwersalny P odbiornik R O J ERC5/SIRC K T Y
Uniwersalny odbiornik RC5/SIRC AVT−519
W†EP3/03 przedstawiliúmy opis uniwersalnego nadajnika promieniowania podczerwonego, ktÛry umoøliwia nadawanie w†systemach RC5 i†SIRC. Kontynuujemy ten temat w tym artykule. Prezentowany uk³ad spe³nia odwrotn¹ rolÍ, gdyø umoøliwia odbiÛr i†dekodowanie sygna³Ûw nadawanych w†tych systemach zdalnego sterowania. Rekomendacje: za pomoc¹ prezentowanego w†artykule odbiornika moøna przekszta³ciÊ komputer w†urz¹dzenie zdalnie sterowane, o†inteligencji ograniczonej wy³¹cznie wyobraüni¹ uøytkownika. RolÍ interfejsu programowego moøe spe³niaÊ np. s³ynny Girder.
Systemy kodowania danych SIRC i†RC5 rÛøni¹ siÍ miÍdzy sob¹ sposobem kodowania stanÛw logicznych, jak rÛwnieø czÍstotliwoúci¹ noún¹ sygna³u. Dla systemu RC5 czÍstotliwoúÊ ta wynosi 36 kHz, a†dla systemu SIRC 40 kHz. Do odbioru transmisji w†podczerwieni zastosowano specjalizowany uk³ad typu TSOP1738, na wyjúciu ktÛrego otrzymuje siÍ przetworzony, cyfrowy sygna³. DziÍki temu budowa systemu trnsmisyjnego znacznie siÍ upraszcza. Uk³ad TSOP1738 odwraca w†fazie sygna³ wejúciowy, dlatego w†czasie spoczynku na wyjúciu tego uk³adu wystÍpuje poziom wysoki, a†w†momencie oúwietlenia niski poziom napiÍcia. Na rys. 1 przedstawiono przebiegi czasowe wystÍpuj¹ce na wyjúciu uk³adu TSOP1738 podczas odbierania danych w†systemie RC5, a†na rys. 2 przebiegi w†czasie odbierania danych w†systemie SIRC. Dekodowanie odbieranych danych odbywa siÍ automatycznie, bez koniecznoúci rÍcznego ustalania, w†jakim systemie ma pracowaÊ odbiornik. Urz¹dzenie wspÛ³pracuje z†komputerem, dlatego dane o†odbieranych kodach wyúwietlane s¹ na ekranie komputera. Odbiornik komunikuje siÍ
z†komputerem poprzez port szeregowy z†prÍdkoúci¹ 9600 bd (8-N-1). Odbiornik pracuje bez zewnÍtrznego zasilania, gdyø do zasilania wykorzystano napiÍcie dostÍpne na wyjúciach tego portu. Wysy³ane do komputera dane s¹ w kodzie ASCII, dlatego do ich wyúwietlenia moøna wykorzystaÊ dowolny program terminalowy, na przyk³ad HyperTerminal.
Opis uk³adu Schemat odbiornika przedstawiono na rys. 3. Uk³ad zawiera niewielk¹ liczbÍ elementÛw, a†to dziÍki zastosowaniu mikrokontrolera, ktÛry dekoduje odbierane dane i†wysy³a je do komputera. Wewn¹trz uk³adu procesora zawarta jest pamiÍÊ programu typu Flash o†pojemnoúci 1k x†14 s³Ûw, 64 B†pamiÍci RAM i†128 B†pamiÍci EEPROM oraz dwa liczniki. Praca procesora moøe byÊ synchronizowana sygna³em zegarowym generowanym przez wewnÍtrzny generator RC, co daje moøliwoúÊ wykorzystania wszystkich dostÍpnych linii do sterowania uk³adami zewnÍtrznymi. Jednak w†przedstawionym uk³adzie wymagana jest duøa dok³adnoúÊ generowanych przebiegÛw, dlatego sygna³ zegarowy jest stabilizowany za pomoc¹ zewnÍtrznego rezonatora kwarcowego. Zerowanie procesora po w³¹czaniu zasilania jest wykonywane przez wewnÍtrzny uk³ad zeruj¹cy.
Rys. 1. Przebiegi czasowe na wyjściu układu TSOP1738 przy odbieraniu danych w systemie RC5
Elektronika Praktyczna 10/2003
39
Uniwersalny odbiornik RC5/SIRC
Rys. 2. Przebiegi czasowe na wyjściu układu TSOP1738 przy odbieraniu danych w systemie SIRC
Jako odbiornik promieniowania podczerwonego zastosowano specjalizowany uk³ad typu TSOP1738. Zawiera on wszystkie elementy niezbÍdne do odbioru promieniowania podczerwonego. Dodatkowo zawiera filtr pasmowo-przepustowy zawÍøaj¹cy pasmo odbieranych czÍstotliwoúci sygna³u noúnego w†transmitowanym przez nadajnik sygnale úwietlnym, co znacznie zmniejsza zak³Ûcenia w odbieranym sygnale. W†przedstawionym uk³adzie úrodkowa czÍstotliwoúÊ tego filtru wynosi 38 kHz. CzÍstotliwoúÊ ta zosta³a wybrana ze wzglÍdu na rÛøne czÍstotliwoúci fali noúnej wystÍpuj¹cej w†obu systemach. Dla systemu RC5 wynosi ona 36 kHz, a†dla systemÛw SIRC 40 kHz. Zastosowanie odbiornika o†czÍstotliwoúci 38 kHz umoøliwia odbiÛr sygna³Ûw z†obydwu systemÛw, bez ISTOTNEGO zmniejszenia zasiÍgu. Zworka JP1 s³uøy do zmiany sposobu wyúwietlania odebranych kodÛw. Pod³¹czona jest bezpoúrednio do procesora, bez rezystora podci¹gaj¹cego do plusa zasilania, gdyø rezystor taki znajduje siÍ wewn¹trz procesora. Komunikacja z†komputerem odbywa siÍ w†standardzie RS232,
dlatego naleøy przekszta³ciÊ 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 komunikacjÍ jednostronn¹ zastosowano prostsze rozwi¹zanie. Elementem prze³¹czaj¹cym napiÍcie na wejúciu RXD (2) jest tranzystor T1. Poziom niski jest wymuszany przez rezystor R1 pod³¹czony do wyprowadzenia TXD (3). Wyprowadzenie to jest wyjúciem sygna³u z†komputera. Poniewaø komunikacja odbywa siÍ tylko w†stronÍ komputera, to na wyjúciu TXD (3) przez ca³y czas wystÍpuje poziom niski (napiÍcie oko³o -10 V). Zastosowany rezystor powoduje, øe na wejúciu RXD (2) panuje napiÍcie o†wartoúci oko³o -5 V, co jest wystarczaj¹ce dla stanu 1. Jeúli ma zostaÊ podany poziom wysoki, to procesor za³¹cza tranzystor, ktÛry podaje napiÍcie zasilania na wejúcie RXD (2) o†wartoúci +5 V. W†ten sposÛb zosta³ wykonany prosty konwerter poziomÛw, bez znacznego rozbudowywania ca³ego uk³adu. Do zasilania odbiornika wykorzystano na-
piÍcie panuj¹ce na wyjúciach RTS i†DTR. Aby uk³ad mÛg³ pracowaÊ, to 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 jego uruchomieniu). NapiÍcia z†wyjúÊ RTS i†DTR s¹ poprzez diody D1 i†D2 sumowane i†kierowane na diodÍ Zenera D3. Diody te dodatkowo 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 podane napiÍcie do wartoúci oko³o 5†V, a†kondensatory C1 i†C2 wyg³adzaj¹ tak uzyskane napiÍcie. NapiÍcie zasilaj¹ce odbiornik (US2) jest dodatkowo filtrowane przez uk³ad zbudowany z†rezystora R2 i†kondensatora C5.
Montaø i†uruchomienie Uk³ad odbiornika zosta³ zmontowany na p³ytce, ktÛrej schemat montaøowy przedstawiono na rys. 4. Uk³ad zawiera niewielk¹ liczbÍ elementÛw, dlatego montaø nie powinien sprawiÊ k³opotu. Elementy naleøy montowaÊ poczynaj¹c od rezystorÛw R1, R2 i†diod D1...D3, nastÍpnie naleøy wlutowaÊ podstawkÍ pod procesor i†kondensatory. Na koÒcu naleøy wlutowaÊ tranzystor, z³¹cze CON1
Rys. 3. Schemat elektryczny odbiornika RC5/SIRC
40
Elektronika Praktyczna 10/2003
Uniwersalny odbiornik RC5/SIRC WYKAZ ELEMENTÓW
Rys. 4. Rozmieszczenie elementów na płytce odbiornika RC5/SIRC
i†uk³ad US2. Po zamontowaniu wszystkich elementÛw uk³ad jest gotowy do pracy.
Obs³uga SprzÍøenie odbiornika z†komputerem polega na pod³¹czeniu go do wolnego z³¹cza portu szeregowego i†uruchomieniu programu HyperTerminal. Program naleøy skonfigurowaÊ do pracy z†prÍdkoúci¹ 9600 bd. W†tym celu naleøy w†Plik->W³aúciwoúci wybraÊ w³aúciwy port, a†nastÍpnie w†Konfiguruj i†prÍdkoúÊ 9600. Po skonfigurowaniu programu i†nawi¹zaniu po³¹czenia kaødorazowe odebranie prawid³owego sygna³u bÍdzie prezentowane w†oknie dialogowym. Oprogramowanie zawarte w†mikrokontrolerze automatycznie rozpoznaje system nadawania i†dlatego oprÛcz informacji o†numerze naciúniÍtego klawisza i†adresie urz¹dzenia podawany jest rÛwnieø system, w†jakim kod zosta³ wys³any. Wyúwietlanie adresu i†komendy jest w†formie dziesiÍt-
Elektronika Praktyczna 10/2003
Rys. 5. Przykładowy komunikat wyświetlony w oknie programu HyperTerminal po odebraniu danych w systemie SIRC
nej. Dla systemu RC5 adres urz¹dzenia zawiera siÍ w†przedziale 0...31, a†numer komendy w†przedziale 0...63. System SIRC umoøliwia przes³anie wiÍkszej iloúci informacji i†dlatego adres urz¹dzenia moøe zawieraÊ siÍ w†przedziale 0...31, a†numer komendy w†przedziale 0...127. Wyúwietlanie informacji moøe byÊ wykonane w†dwojaki sposÛb: pe³ny lub skrÛcony. W†trybie pe³nym podawana jest pe³na nazwa systemu, adresu i†komendy. Dla systemu RC5 przyk³adowy komunikat moøe mieÊ postaÊ: RC5(Philips) Address=2 Command=7, a dla systemu SIRC przyk³adowy format wyúwietlania odebranych kodÛw przedstawiono na rys. 5. Wyúwietlanie w†trybie pe³nym jest wykonywane, jeúli zworka JP1 jest rozwarta. W†przypadku zwarcia zworki informacje bÍd¹ wyúwietlane w†formie skrÛconej. Dla odebranego kodu w†systemie RC5 przyk³adowy komunikat bÍdzie mia³ postaÊ: R†A=4 C=45, a†dla systemu SIRC ten sam komunikat zostanie wyúwietlony w†nastÍpu-
Rezystory R1: 4,7kΩ R2: 220Ω Kondensatory C1: 100nF C2: 100 F/16V C3, C4: 30pF C5: 47 F/16V Półprzewodniki D1, D2: 1N4148 D3: dioda Zenera 5,1V T1: BS250 US1: PIC12F675 zaprogramowany US2: TSOP1738 Różne CON1: DB9 kątowe do druku żeńskie JP1: goldpin 1x2 + jumper
j¹cy sposÛb: S†A=4 C=45. Zmiana stanu zworki moøe byÊ wykonywana w†czasie pracy, gdyø stan portu, do ktÛrego zworka jest do³¹czona jest sprawdzany po kaødorazowym odebraniu kodu i†stan ten jest uwzglÍdniany przy kaødorazowym wysy³aniu danych do komputera. Krzysztof P³awsiuk, AVT
[email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziernik03.htm oraz na p³ycie CD-EP10/2003B w katalogu PCB.
41
Centrala alarmowa z powiadomieniem P R O J E K GSM T Y
Centrala alarmowa z powiadomieniem GSM, część 2 AVT−526
W†drugiej czÍúci artyku³u przedstawiamy tajniki przygotowania programu steruj¹cego prac¹ centrali ze zdalnym powiadamianiem za pomoc¹ telefonu GSM. Jak siÍ okazuje, wysy³anie SMSÛw nie jest aø tak trudne jak siÍ powszechnie uwaøa. Rekomendacje: nowoczesny i†bardzo skuteczny system zdalnej ochrony mienia, dziÍki ktÛremu informacja o†w³amaniu dotrze do Ciebie szybko i w†dowolne miejsce.
Elektronika Praktyczna 10/2003
Wysy³anie SMS ìJak wysy³aÊ wiadomoúci SMS za pomoc¹ mikrokontrolera?î, to pytanie bardzo czÍsto wystÍpuj¹ce w†listach kierowanych do Redakcji oraz zadawane na forum grup dyskusyjnych w†Internecie, dlatego teø poúwiÍcÍ mu nieco wiÍcej miejsca. Obydwa z†posiadanych przez mnie modemÛw GSM obs³uguj¹ dwa tryby przesy³ania wiadomoúci SMS. S¹ one oznaczone numerami 0†i†1. Odpowiedü telefonu lub modemu na rozkaz ìAT+CMGF?î lub ìAT+CMGF=?î bÍdzie zawieraÊ listÍ obs³ugiwanych trybÛw pracy. Ja dla prezentowanej aplikacji wybra³em tryb 1, moim zdaniem najodpowiedniejszy. Nawiasem mÛwi¹c, wolÍ nie wyraøaÊ swojej opinii na temat kodowania wiadomoúci w†trybie 0, zwanym rÛwnieø PDU mode... Podane poniøej informacje opracowane zosta³y na podstawie dokumentacji firmy Siemens dla modemu GSM M20. Zainteresowanym poszerzeniem swojej wiedzy na ten temat odsy³am szczegÛlnie do czterech ürÛde³: 1. Dokumentacji modemu M20 Siemens dostÍpnej na stronie pro-
ducenta pod nazw¹ ìsms_guid_v1_0.docî. Autorem jest T. Schuh. 2. Noty aplikacyjnej umieszczonej pod adresem http:// www.mcselec.com/an_31.htm. Autorem jest Vilko SustiÊ. 3. Noty aplikacyjnej umieszczonej pod adresem http:// www.mcselec.com/an_117.htm. Autorem jest Warren Read. 4. Informacji zawartych na stronie internetowej http://www.dreamfabric.com/sms/.
Mode 0†(PDU) W†tym trybie na projektanta aplikacji spada obowi¹zek zakodowania ca³ej informacji dotycz¹cej wysy³anego komunikatu. Przeanalizujmy przyk³ad (rys. 3) zaczerpniÍty z†materia³Ûw firmy Siemens, ilustruj¹cy przesy³anie wiadomoúÊ o†treúci ìTHE BIG BROWN FOXî pod numer telefonu +991234567. Wyjaúnijmy znaczenie poszczegÛlnych pÛl komunikatu SMS: 1. D³ugoúÊ pola SCA jest opcjonalna dla niektÛrych telefonÛw. Jest to podana szesnastkowo liczba oktetÛw numeru Centrum Us³ug. WiÍkszoúÊ telefonÛw umoøliwia wprowadzenie w†tym
43
Centrala alarmowa z powiadomieniem GSM miejscu wartoúci 0x00, wiÍc nie trzeba podawaÊ i†tym samym znaÊ tego parametru. 2. Typ numeru Centrum Us³ug - podanie wartoúci 91 oznacza numeracjÍ miÍdzynarodow¹ (np. z†prefiksem +48 dla Polski), 81 oznacza numeracjÍ lokaln¹, obowi¹zuj¹c¹ na terenie danego kraju. 3. Numer Centrum Us³ug to numer podany przez operatora, dziÍki ktÛremu moøliwe jest przesy³anie wiadomoúci SMS. Np. dla sieci Plus GSM jest to numer +48601000100. ZwrÛÊmy uwagÍ na sposÛb kodowania tego numeru. Na przyk³ad numer ì601 000100î zakodowany bÍdzie w†sposÛb nastÍpuj¹cy: - numeracja krajowa, bez numeru kierunkowego: 81, - nieparzysta liczba znakÛw - na koÒcu dodawana jest litera F, wiÍc numer bÍdzie mia³ postaÊ ì601000100Fî, - numer po kodowaniu bÍdzie nastÍpuj¹cy: ì06010010F0î. 4. Pierwszy oktet komunikatu SMS Numer bitu 7 6 5 4 3 2 1 0 Nazwa bitu TP− TP− TP− TP− TP− TP− TP− TP− RP UDHI SRR VPF VPF RD MTI MTI Znaczenie poszczegÛlnych bitÛw jest nastÍpuj¹ce: - TP-RP - úcieøka (numer) nadawcy; ustawienie bitu oznacza, øe úcieøka dla odpowiedzi na wys³any SMS jest ustawiona, - TP-UDHI - ustawienie bitu oznacza, øe przesy³ane dane uøytkownika rozpoczynaj¹ siÍ od nag³Ûwka identyfikuj¹cego, - TP-SRR - ustawienie tego bitu oznacza, øe nadawca ø¹da raportu na temat odbioru wiadomoúci SMS przez odbiorcÍ, - TP-VPF - bity okreúlaj¹ce format okresu waønoúci wiadomoúci SMS:
- 0†0: TP-VPP nie wystÍpuje, - 1†0: TP-VPP obecne, format relacyjny (0...143 = (wartoúÊ parametru + 1) x†5†minut, 144...167 = 12 godzin + (wartoúÊ parametru - 143) x†30 minut, 168...196 = (wartoúÊ parametru - 166) x†1†dzieÒ, 197...255 = (wartoúÊ parametru - 192) x†7†dni), - 0†1: format rozszerzony, 7†oktetÛw, - 1†1: format absolutny, 7†oktetÛw, - TP-RD - ustawienie bitu powoduje, øe duplikaty wiadomoúci s¹ odrzucane, - TP-MTI - typ komunikatu: wartoúÊ bitÛw 0†1†powoduje, øe wiadomoúÊ przesy³ana jest w†trybie SMS-SUBMIT. 5. Pole statusu okreúlaj¹ce numer odniesienia dla wysy³anego komunikatu. Wpisanie wartoúci 0x00 powoduje, øe numer telefonu, z†ktÛrego wysy³amy SMS jest rÛwnoczeúnie numerem odniesienia. 6. D³ugoúÊ numeru odbiorcy SMS, podana w†liczbie bajtÛw numeru. 7. Typ numeru odbiorcy SMS (81 lub 91). 8. Numer odbiorcy wiadomoúci SMS (kodowany w†ten sam sposÛb, co numer Centrum Us³ug). 9. Identyfikator protoko³u komunikacyjnego. Wartoúci¹ typow¹, uøywan¹ przez wiÍkszoúÊ sieci telefonÛw komÛrkowych jest 0x00. 10. Schemat kodowania danych. Wprowadzona wartoúÊ 0x00 oznacza, øe znaki kodowane s¹ w†postaci 7-bitowych znakÛw ASCII. 11. Okres waønoúci wiadomoúci SMS. Liczba podana i†interpretowana zgodnie z†kodem regu³y podanym przez bity TP-VPF.
03
91
0100
11
D³ugoæ pola SCA
Typ SCA
Pole numeru SCA
Pierwszy oktet
D³ugoæ pola numeru centrum us³ug w bajtach (mo¿na podaæ 00)
91 numeracja z numerem kierunkowym kraju, 81 bez numeru kierunkowego
0100 = 1000 (zamieniona pozycja cyfr)
00
12. Liczba oktetÛw bajtÛw tekstu. 13. Tekst wiadomoúci. Zgodnie ze specyfikacj¹ organizacji ETSI (www.etsi.org), wiadomoúÊ SMS moøe mieÊ do 160 znakÛw d³ugoúci, przy czym kaødy znak zakodowany jest w†postaci s³owa 7-bitowego. Znaki kodowane 8-bitowo zazwyczaj nie s¹ przez telefony wyúwietlane, natomiast s¹ czasami uøywane jako steruj¹ce (przesy³anie obrazÛw, dzwonkÛw†itp.). Komunikaty zakodowane w†postaci liczb 16-bitowych (maksymalnie 70 znakÛw) s¹ uøywane do przesy³ania komunikatÛw zakodowanych wed³ug standardu Unicode (UCS2) i†mog¹ byÊ wyúwietlane przez wiÍkszoúÊ aparatÛw†GSM. NiektÛre z†telefonÛw wyúwietlaj¹ te komunikaty jako Flash SMS. My zajmiemy siÍ kodowaniem standardowym, gdy kody znakÛw maj¹ d³ugoúÊ 7†bitÛw. Przeúledümy sposÛb kodowania tekstu na przyk³adzie: zakodujmy wiadomoúÊ ìELEKTRONIKAî. Tekst ìELEKTRONIKAî zawiera 11 znakÛw nazywanych septetami ze wzglÍdu na sw¹ d³ugoúÊ - 7†bitÛw. My musimy zmieniÊ sposÛb kodowania z†septetÛw na oktety - znaki o†d³ugoúci 8†bitÛw (tab. 2). Pierwszy septet (E) zamieniany jest na oktet poprzez ìzabranieî najmniej znacz¹cego bitu nastÍpnego w†kolejnoúci znaku i†wprowadzenie go na pozycjÍ bitu 7†(0 + 1000101 = 01000101 tj. 0x45). Po tej operacji bit jest usuwany, wiÍc nastÍpne przekszta³cenie (dla litery L) zabierze dwa bity z†kolejnego znaku, kolejne trzy i†tak dalej. W†konsekwencji znak Ûsmy zostanie ca³kowicie usuniÍty. Dla dziewi¹tego znaku proces rozpocznie siÍ od pocz¹tku (tab. 3). 09
Numer odniesienia dla D³ugoæ numeru wiadomoci SMS. odbiorcy Pierwszy oktet Nale¿y wprowadziæ D³ugoæ numeru statusu wiadomoci wartoæ 0 odbiorcy w bajtach SMS (11H to wartoæ typowa dla wiêkszoci wiadomoci)
91 Typ numeru Podobnie jak w przypadku typu SCA 91 lub 81
Rys. 3. Przykład ilustrujący przesłanie wiadomości o treści „THE BIG BROWN FOX” pod numer telefonu +991234567
44
Elektronika Praktyczna 10/2003
Centrala alarmowa z powiadomieniem GSM Tab. 2. Ilustracja zasady przekodowywania septetów na oktety E
L
E
K
T
R
O
N
I
K
A
0x45 1000101 1000101
0x4C 1001100 0 1001100
0x45 1000101 01 1000101
0x4B 1001011 011 1001011
0x54 1010100 0100 1010100
0x52 1010010 10010 1010010
0x4F 1001111 001111 1001111
0x4E 1001110 1001110
0x49 1001001 1001001
0x4B 1001011 1 1001011
0x41 1000001 01 1000001
Tab. 3. 01000101 0x45
01 01100110 0x66
011 01110001 0x71
0100 01001001 0x49
Zakodowan¹ wiadomoúÊ ìELEKTRONIKAî wyúlijmy na numer sieci Plus GSM. Centrum wiadomoúci (SCA) ma tutaj numer +48601000310. Przeúlijmy wiadomoúÊ na numer +48605010203. 1. D³ugoúÊ pola SCA (w tym przypadku 7†bajtÛw, z†polem typu SCA): 07. 2. Typ SCA - numeracja miÍdzynarodowa: 91. 3. Numer SCA: 8406010013F0. 4. Pierwszy oktet wiadomoúci SMS: 11. 5. Pole statusu: 00. 6. D³ugoúÊ numeru odbiorcy SMS (liczba bajtÛw): 07. 7. Typ numeru odbiorcy numeracja miÍdzynarodowa: 91. 8.Numer odbiorcy: 8496959192F3. 9. Identyfikator protoko³u: 00. 10. Schemat kodowania: 00. 11. Okres waønoúci (1 tydzieÒ): BF. 12. D³ugoúÊ tekstu: 0x0A. 13. Tekst: 45667149953E9DC96510. Uff... Zbierzmy to w†ca³oúÊ: 07918406010013F0110007918496959192 F30000BF0A45667149953E9DC96510. Niestety, oprÛcz znajomoúci d³ugoúci niektÛrych ze sk³adnikÛw wiadomoúci, aby j¹ wys³aÊ musimy jeszcze znaÊ jej ca³kowit¹ d³ugoúÊ. W†prezentowanym przyk³adzie wynosi ona 32 bajty. Zestaw poleceÒ, ktÛre musimy 99214365F7
00
Numer odbiorcy Identyfikator protoko³u wiadomoci SMS Numer odbiorcy SMS: 0x00 dostarcz jako cyfry s¹ zamieniane normalny SMS miejscami a w przypadku gdy zawiera on nieparzyst¹ liczbê cyfr, na koñcu dodawane jest F. (123 → 123F → 21F3)
10010 10010101 0x95
001111 00111110 0x3E
1001110 10011101 0x9D
wydaÊ modemowi aby wys³aÊ wiadomoúÊ, bÍdzie nastÍpuj¹cy: 1. AT+CMGF=0
. 2. AT+CMGS=32 . 3. >07918406010013F011000791 8496959192F30000BF0A456671 49953E9DC96510 . Uwaga: wyøej wymienione znaki s¹ reprezentacj¹ bajtÛw o†wartoúci zakodowanej szesnastkowo. Cyfra ì32î jest d³ugoúci¹ przesy³anej informacji podan¹ w†bajtach. Podany przyk³ad kodowania jest w³aúciwy dla informacji wprowadzanej przez interfejs komunikacyjny. Inaczej wysy³a siÍ wiadomoúÊ, gdy numer Centrum Us³ug znajduje siÍ na karcie, czy teø gdy wysy³ana jest wiadomoúÊ zapamiÍtana w†pamiÍci telefonu lub karty SIM.
Mode 1†(TEXT MODE) W†przeciwieÒstwie do poprzedniego, tryb 1†zwany rÛwnieø TEXT MODE jest bardzo ³atwy w†uøyciu. Poniøsza sekwencja poleceÒ powoduje wys³anie wiadomoúci w†trybie tekstowym: 1. AT+CMGF=1 . 2. AT+CMGS=ì+48605010203î . 3. >ELEKTRONIKA PRAKTYCZNA . Trybem tym pos³uøy³em siÍ tworz¹c procedurÍ ìsend_SMSî. Niestety, nie wszystkie telefony GSM obs³uguj¹ ten tryb pracy.
1 1001001 0xC9
01 01100101 0x65
000 00010000 0x10
Procedura wysy³ania wiadomoúci SMS: ìsend_smsî Na list. 5 jest kod ürÛd³owy procedury wysy³ania wiadomoúci SMS. CzÍúÊ wiadomoúci docieraj¹cej do adresata jest sta³a, zdefiniowana w†programie. CzÍúÊ wiadomoúci taka, jak lokalizacja obiektu i†opis czujnika jest zmienna i†moøe byÊ zdefiniowana przez uøytkownika. Dane te zostaj¹ zapamiÍtane w†pamiÍci EEPROM i†s¹ uøywane przy komponowaniu wiadomoúci. Do modemu jako pierwsze jest wysy³ane polecenie zapisane w†pamiÍci ROM, zdefiniowane pod etykiet¹ send_sms_1. Jest to polecenie za³¹czenia trybu tekstowego ìAT+CMGF=1î. Uwaga! ZarÛwno polecenie wyúwietlaj¹ce listÍ dostÍpnych trybÛw jak i†za³¹czaj¹ce konkretny tryb pracy dzia³a dopiero po zalogowaniu siÍ telefonu do sieci. Kaøde polecenie musi byÊ zakoÒczone znakiem CR (0x0D). Za przes³anie polecenia z†ROM odpowiedzialna jest funkcja o†nazwie putf. RÛøni siÍ ona od puts tym, øe dane wysy³ane przez UART pobiera z†ROM, a†nie bufora w†pamiÍci RAM. W†nastÍpnej kolejnoúci przesy³any jest do modemu numer telefonu, ktÛrego sta³a czÍúÊ zdefiniowana jest pod etykiet¹ send_sms_2, a†zmienna, wprowadzana przez uøytkownika,
00
FF
11
Schemat kodowania danych 0x00 alfabet domylny, 7-bitowe znaki ASCII
Okres wa¿noci SMS
D³ugoæ tekstu
0xFF = 255 192 tygodnie = 63 tygodnie
Szesnastkowo podana liczba bajtów oktetów tekstu
546411244C1E4142E 9F3EA94199F58 Tekst THE BIG BROWN FOX
Rys. 3 − cd.
Elektronika Praktyczna 10/2003
45
Centrala alarmowa z powiadomieniem GSM pobierana jest z†EEPROM. Polecenie zawieraj¹ce numer telefonu adresata wiadomoúci komponowane jest w†pamiÍci RAM i†przesy³ane do modemu przez funkcjÍ puts. Podobnie tworzona jest wiadomoúÊ tekstowa: komponowana w†RAM z†czÍúci sta³ej send_sms_3, tekstu o lokalizacji obiektu wprowadzonego przez uøytkownika oraz etykiety czujnika wyliczanej na podstawie zawartoúci zmiennej sensors (zmienna ta przesuwana jest w†prawo z†uøyciem flagi przeniesienia C†do momentu, aø flaga zostanie wyzerowana; logiczne ì0î oznacza stan aktywny czujnika liczba przesuniÍÊ wskazuje na numer wejúcia). Tekst musi byÊ zakoÒczony znakiem CTRL+Z. Jest to znak koÒca zbioru tekstowego o†kodzie 26 (0x1A). Jacek Bogusz, AVT [email protected] Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziernik03.htm oraz na p³ycie CD-EP10/2003B w katalogu PCB.
46
List. 5. Procedura wysyłania wiadomości tekstowej SMS send_SMS: ldi zl,LOW(send_sms_1<<1) ldi zh,HIGH(send_sms_1<<1) rcall putf rcall gets ldi zl,LOW(send_sms_2<<1) ldi zh,HIGH(send_sms_2<<1) ldi yl,LOW(buffer) clr yh rcall move_rom2ram ldi eeaddr,SMSNUMBER_EEADDR rcall
ee_read2buf
ldi temp,0x22 st y,temp rcall st_EOL rcall puts_buffer ldi zl,LOW(send_sms_3<<1) ldi zh,HIGH(send_sms_3<<1) ldi yl,LOW(buffer) clr yh rcall move_rom2ram ldi eeaddr,SMSTEXT_EEADDR rcall ee_read2buf ldi temp,’,’ st y,temp clr temp send_SMS_sen: inc temp clc ror sensors brcs send_SMS_sen mov eeaddr,temp rcall sen_ee_addr inc yl rcall ee_read2buf ldi temp,0x1A st y,temp rcall st_EOL rcall puts_buffer inc smssent
;Z = adres nastawy-polecenia w ROM ;wysłanie polecenia ;pobranie odpowiedzi modemu ;Z = adres napisu w ROM ;Y = adres bufora w RAM ;tu adresy RAM mogą być tylko 1-bajtowe ;przepisanie danych z ROM do RAM, ;adresy ROM w Z,RAM w Y ;teraz pobranie numeru telefonu z eeprom do „buffer”, ;na który wskazuje Y ;uwaga: zmieniany jest rejestr Y ;cudzysłów zamykający ;zapisanie znaków CR+LF do bufora ;wysłanie zawartości „buffer” przez UART ;teraz kompozycja SMS do wysłania ;odczyt części „stałej” z ROM i EEPROM
;teraz odczyt opisu obiektu (30 znaków wprowadzone ;przez użytkownika) ;do temp kod przecinka ;zapisanie go w buforze ;wyliczenia adresu etykiety i jej odczyt (jeśli czujnik ;jest aktywny, to bit ;przyjmuje wartość „0”) ;kasowanie flagi „carry” ;przeniesienie najmłodszego bitu do C ;jeśli C jest „1”,to wejście nie jest aktywne ;wyznaczenie adresu w eeprom ;odczyt etykiety wejścia do bufora w RAM ;zapamiętanie znaku „Ctrl+Z” ;zapisanie kodów CR+LF ;wysłanie zawartości „buffer” przez UART ;ustawienie znacznika wysłania SMS
ret
Elektronika Praktyczna 10/2003
P
R
O„Klocki” J E K RS485 T Y
„Klocki” RS485, część 5 W†ostatniej czÍúci artyku³u opisujemy budowÍ dwÛch modu³Ûw terminalowych, za pomoc¹ ktÛrych moøna wyúwietlaÊ dane przesy³ane magistral¹ RS485. Pierwszy z†prezentowanych modu³Ûw s³uøy do sterowania czterech wyúwietlaczy LED, a drugi alfanumerycznego wyúwietlacza LCD. Rekomendacje: ìklockiî RS485 polecamy szczegÛlnie tym Czytelnikom, ktÛrzy musz¹ przesy³aÊ dane na duøe odleg³oúci z†relatywnie duø¹ prÍdkoúci¹.
Modu³ terminala z†wyúwietlaczem LED AVT-537 Modu³ z†wyúwietlaczem LED moøe s³uøyÊ do wyúwietlania wynikÛw pomiarÛw wykonanych na przyk³ad za pomoc¹ karty wejúÊ analogowych. Wszystkie wyúwietlacze maj¹ kropki†dziesiÍtne i†kaøda moøe byÊ zapalana i gaszona. Sterownik wyúwietlacza umoøliwia dwustronn¹ komunikacjÍ, dziÍki czemu moøna do niego zapisywaÊ dane do wyúwietlenia, jak rÛwnieø odczytywaÊ aktualnie wyúwietlane cyfry i†stan kropek dziesiÍtnych.
Budowa
Klocki RS485 to: -
AVT-530 - konwerter RS232<->RS485, AVT-531 - karta przekaników, AVT-532 - karta triaków, AVT-533 - karta wyjæ cyfrowych (aktywne GND), AVT-534 - karta wyjæ cyfrowych (aktywne VCC), AVT-535 - karta wejæ cyfrowych, AVT-536 - 8-wejciowa karta wejæ analogowych, AVT-537 - 4-cyfrowy wywietlacz LED, AVT-538 - 32-znakowy wywietlacz LCD.
Elektronika Praktyczna 10/2003
Modu³ wyúwietlacza LED sk³ada siÍ z†dwÛch p³ytek: p³ytki sterownika i†p³ytki wyúwietlaczy siedmiosegmentowych. Na rys. 20 przedstawiono schemat elektryczny sterownika wyúwietlaczy. Uk³adem steruj¹cym modu³em jest mikrokontroler typu PIC16F872, umieszczony w†obudowie 28-nÛøkowej. Posiada on wystarczaj¹c¹ do sterowania wyúwietlaczami liczbÍ wyprowadzeÒ, a†jednoczeúnie zajmuje niewiele miejsca na p³ytce. Linie portÛw mikrokontrolera mog¹ byÊ obci¹øane pr¹dem o†maksymalnej wartoúci 25 mA, zarÛwno w†stanie jedynki jak i†zera logicznego, dlatego teø steruj¹ bezpoúrednio katodami wyúwietlaczy, bez koniecznoúci stosowania dodatkowych uk³adÛw wzmacniaj¹cych. Obs³uga wyúwietlaczy jest realizowana w†trybie multipleksowym. Pozwala to m.in. ograniczyÊ pr¹d pobierany przez modu³. W†obwodzie anodowym wyúwietlaczy p³ynie pr¹d o†wartoúci oko³o 70 mA, dlatego do sterowania nimi zastosowano klucze tranzystorowe umieszczone na p³ytce wyúwiet-
laczy (rys. 21). Mikrokontroler pracuje z†zewnÍtrznym rezonatorem kwarcowym o†czÍstotliwoúci 4†MHz. Do jego zerowania po w³¹czaniu zasilania zastosowano uk³ad typu DS1813 (US3). Za konwersjÍ sygna³Ûw wystÍpuj¹cych w†linii transmisyjnej (o standardzie RS485) na standard TTL odpowiada uk³ad MAX485 (US2). Dokonuje on rÛwnieø konwersji z†poziomÛw TTL na poziomy RS485. W†czasie spoczynku uk³ad ten pracuje w†trybie odbiornika, poniewaø na wejúciach DE i†!RE wystÍpuje poziom niski wymuszony przez wyjúcie procesora. Prze³¹czenie w†tryb nadawania uk³adu MAX485 nastÍpuje tylko na czas wysy³ania danych przez modu³ wyúwietlaczy LED, a†nastÍpnie zostaje przywrÛcony tryb odbioru, aby nie blokowaÊ linii transmisyjnej. Dodatkowy rezystor R* s³uøy do zapewnienia dopasowania linii i†powinien byÊ zamontowany jedynie w†jednym module, najbardziej oddalonym od nadajnika (np. opisanego wczeúniej konwertera RS232<->RS485). O†jego montaøu naleøy jednak zdecydowaÊ po podTab. 9. Znaki możliwe do wyświetlenia przez wyświetlacze LED i ich reprezentacja szesnastkowa Wybrany znak
Kod (hex)
Wyœwietlony znak
0 1 2 3 4 5 6 7 8 9 Spacja
0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x2D 0x20
0 1 2 3 4 5 6 7 8 9 - (minus) Wygaszony
47
„Klocki” RS485
Rys. 20. Schemat elektryczny płytki sterownika wyświetlacza LED
³¹czeniu wszystkich modu³Ûw, gdyø podczas testÛw okaza³ siÍ zbÍdny. Zworka JP1 s³uøy do zmiany podstawowego adresu, pod ktÛrym bÍdzie siÍ zg³asza³ wyúwietlacz LED, natomiast zworka JP2 umoøliwia powrÛt do podstawowego adresu. Rezystory R1 i†R2 podci¹gaj¹ wejúcia RC0 i†RC1 do plusa zasilania. Opis zmiany podstawowego adresu karty wyjúÊ cyfrowych zostanie przedstawiony w†dalszej czÍúci artyku³u, gdyø dla wszystkich modu³Ûw przebiega w†taki sam sposÛb. Na p³ytce wyúwietlaczy znajduj¹ siÍ cztery wyúwietlacze sied-
miosegmentowe o†wysokoúci 13†mm (DP1...DP4), rezystory ograniczaj¹ce pr¹d p³yn¹cy przez diody wyúwietlaczy (R1...R8) i†tranzystory steruj¹ce anodami wyúwietlaczy (T1...T4). Ponadto znajduj¹ siÍ rezystory ograniczaj¹ce pr¹d bazy tranzystorÛw T1...T4 (R9...R12) oraz z³¹cze szpilkowe s³uø¹ce do wykonania po³¹czenia z†p³ytk¹ sterownika.
Montaø Montaø naleøy rozpocz¹Ê od p³ytki sterownika. Na rys. 22 przedstawiono rozmieszczenie elementÛw na p³ytce. Kondensatory
elektrolityczne i†stabilizator napiÍcia naleøy†zamontowaÊ w†pozycji leø¹cej i†dlatego naleøy wczeúniej zagi¹Ê ich wyprowadzenia pod k¹tem 90o. Z³¹cza CON1 i†CON2, w†zaleønoúci od potrzeb, moøna zamontowaÊ od strony elementÛw lub od strony lutowania. Wskazany jest montaø od strony lutowania, gdyø umoøliwi to swobodny dostÍp do elementÛw po po³¹czeniu obydwu p³ytek (sterownika i†wyúwietlaczy). Rozmieszczenie elementÛw na p³ytce wyúwietlaczy przedstawiono na rys. 23. Z³¹cze CON1 naleøy zamontowaÊ od strony lutowania.
Rys. 21. Schemat elektryczny płytki wyświetlaczy LED
48
Elektronika Praktyczna 10/2003
„Klocki” RS485 Po zmontowaniu p³ytek naleøy po³¹czyÊ je ze sob¹ za pomoc¹ z³¹cza CON3 (na p³ytce sterownika) i†z³¹cza CON1 (na p³ytce wyúwietlaczy). Do z³¹cza CON1 p³ytki sterownika naleøy pod³¹czyÊ przewody linii komunikacyjnej, a†do z³¹cza CON3 ürÛd³o zasilania o†napiÍciu oko³o 9†V i†wydajnoúci
pr¹dowej rÛwnej oko³o 100 mA. Po w³¹czeniu zasilania wszystkie wyúwietlacze bÍd¹ wygaszone.
Obs³uga wyúwietlaczy LED Modu³ wyúwietlaczy LED ma adres odpowiadaj¹cy kodowi znaku ì7î (ASCII). WspÛ³praca z nim
Tab. 10. Polecenia umożliwiające sterowanie modułem wyświetlaczy LED Rodzaj komendy
Wydana komenda
Zapis jednego znaku na podany wywietlacz
ESC 7 w c n z enter c - zapis cyfr n - numer cyfry (pozycja) 1...4 z - wywietlony znak (0...9,-, ) Przyk³ad: ESC 7 w c 3 1 enter Zapis cyfr na ESC 7 w c a c1 c2 c3 c4 enter wszystkie wywiet- c - zapis cyfr lacze jednoczenie a - zapis wszystkich cyfr c1 - wartoæ cyfry na pozycji nr 1 c2 - wartoæ cyfry na pozycji nr 2 c3 - wartoæ cyfry na pozycji nr 3 c4 - wartoæ cyfry na pozycji nr 4 Przyk³ad: ESC 7 w c a 1 2 3 4 enter Zapis stanu jednej ESC 7 w k n s enter kropki dziesiêtnej k - zapis stanu kropki dziesiêtnej n - numer kropki (1...4) s - stan kropki (0,1) Przyk³ad: ESC 7 w k 1 1 enter
Reakcja karty wyjϾ cyfrowych Zapisuje znak podany w parametrze z, na pozycji podanej w parametrze n
Zapis cyfry 1 na wywietlaczu o numerze 3 Zapis nowych wartoci na wszystkie wywietlacze, odpowiednio c1 dla wywietlacza DP1, c2 dla wywietlacza C2, itd.
Zapis do wywietlacza cyfr 1234 Zapala lub gasi kropkê dziesiêtn¹ o numerze podanym w parametrze n. Jeli s=0, to kropka zostanie wygaszona, jeli s=1, to kropka zostanie zapalona.
Zapala kropkê dziesiêtn¹ na wywietlaczu o numerze DP1 Zapis stanów ESC 7 w k a k1 k2 k3 k4 enter Ustala stany wszystkich kropek jednoczewszystkich kropek k - zapis stanu kropki nie, jeli kn=1 to kropka zapalona, dziesiêtnych a - zapis wszystkich kropek jeli kn=0, to kropka zgaszona jednoczenie k1 - stan kropki nr 1 (0,1) k2 - stan kropki nr 2 (0,1) k3 - stan kropki nr 3 (0,1) k4 - stan kropki nr 4 (0,1) Przyk³ad: ESC 7 w k a 1 0 1 0 enter Zapala kropki na wywietlaczach DP1 i DP3, a gasi kropki na wywietlaczach DP2 i DP4 Odczyt cyfry ESC 7 r c n enter Zwraca wartoæ wywietlan¹ na wywietwywietlanej na r - odczyt laczu podanym w parametrze n. jednym wywiet- c - dotyczy cyfr Jeli wywietlacz jest wygaszony, to laczu n - numer wywietlacza (1...4) zwraca spacjê. Przyk³ad: ESC 7 r c 2 enter Odczytuje wartoæ zapisan¹ na wywietlaczu DP2 Odczyt wszystkich ESC 7 r c a enter Zwraca wartoci wszystkich cyfr wywietcyfr jednoczenie lanych (cztery znaki) na wywietlaczach zaczynaj¹c od wywietlacza DP1. Jeli wywietlacz jest wygaszony, to zwraca spacjê. Przyk³ad: ESC 7 r c a enter Zwraca wartoci wszystkich wywietlaczy Odczyt stanu ESC r k n enter Odczytuje stan kropki na wywietlaczu wskazanej kropki r - odczyt wskazanym w parametrze n. Jeli kropka dziesiêtnej k - dotyczy kropek jest zapalona, to zwraca 1 (ASCII), jeli n - numer kropki (1...4) jest zgaszona, to zwraca 0 (ASCII) Przyk³ad: ESC r k 3 enter Zwraca stan kropki na wywietlaczu DP3 Odczyt stanów ESC r k a enter Zwraca stan wszystkich kropek, poczynaj¹c wszystkich kropek od kropki na wywietlaczu DP1. Jeli jednoczenie kropka jest zapalona, to zwraca 1 (ASCII), jeli zgaszona, to zwraca 0 (ASCII). Przyk³ad: ESC r k a enter Zwraca stan wszystkich kropek jednoczenie
Elektronika Praktyczna 10/2003
moøe byÊ realizowana po podaniu tego adresu. Zapis wyúwietlanych cyfr moøe byÊ dokonywany pojedynczo, oddzielnie dla kaødego wyúwietlacza lub grupowo, po podaniu w†jednym pakiecie danych dla wszystkich wyúwietlaczy. Ponadto jest moøliwe sterowanie kropkami dziesiÍtnymi - tak jak w†przypadku cyfr moøliwe jest ustalenie stanu dowolnej kropki lub wszystkich jednoczeúnie. Moøliwy jest takøe odczyt wyúwietlanej cyfry oraz stanu dowolnej kropki, jak rÛwnieø wszystkich wyúwietlaczy i†wszystkich kropek. Kaøda komenda rozpoczyna siÍ od znaku ìESCî (klawisz Escape na klawiaturze). NastÍpnie naleøy podaÊ adres karty wyúwietlaczy, rozkaz jaki ma byÊ wykonany lub dane do wyúwietlenia. Wyúwietlacz umoøliwia wyúwietlenie cyfr w†zakresie 0...9, znaku ì-î (minus) oraz znaku spacji, czyli wygaszenia wyúwietlacza. W†tab. 9 zamieszczono zestawienie wszystkich moøliwych do wyúwietlenia znakÛw oraz ich WYKAZ ELEMENTÓW Płytka sterownika Rezystory R1, R2: 10kΩ Kondensatory C1: 100µF/16V C2, C3: 100nF C4: 100µF/16V C5, C6: 30pF C7: 47µF/16V C8: 100nF Półprzewodniki D1: 1N4007 US1: PIC16F872 zaprogramowany US2: MAX485 US3: DS1813 US4: LM7805 Różne JP1, JP2: goldpiny 1x2 + jumpery CON1, CON2: ARK2 (5mm) CON3: goldpin 1x14 żeński Podstawki: DIP8 − 1 szt., DIP28 (300 mils) − 1 szt. Płytka wyświetlaczy Rezystory R1...R8: 68Ω R9...R12: 1kΩ Półprzewodniki DP1...DP4: SA52−11EWA T1...T4: BC558 Różne CON1: goldpin 1x14 męski
49
„Klocki” RS485
Rys. 22. Rozmieszczenie elementów na płytce sterownika wyświetlacza LED
Rys. 23. Rozmieszczenie elementów na płytce wyświetla− czy LED
kodÛw w†zapisie szesnastkowym. Zestaw wszystkich komend umoøliwiaj¹cych sterowaniem wyúwietlaczami LED, przyk³adowe polecenia i†reakcja modu³u wyúwietlacza przedstawiono w†tab. 10.
wana za pomoc¹ rezonatora kwarcowego o†czÍstotliwoúci 4MHz. Mikrokontroler ma wbudowany wewnÍtrzny generator zegarowy, lecz zastosowanie go w†tej aplikacji mog³oby spowodowaÊ b³Ídy w†transmisji, gdyø jest to generator typu RC i†jego stabilnoúÊ nie jest wystarczaj¹ca do komunikacji asynchronicznej. Do zerowania mikrokontrolera zastosowano zewnÍtrzny uk³ad typu DS1813. Komunikacja mikrokontrolera z†wyúwietlaczem odbywa siÍ w†trybie 4-bitowym, z†wykorzystaniem portu RB do przesy³u danych i†portu RA do sterowania wyúwietlaczem. Do ustawienia kontrastu wyúwietlacza zastosowano potencjometr PR1. Sterowanie podúwietlaniem moøliwe jest w†sposÛb zdalny poprzez interfejs RS485. Do sterowania podúwietlaniem wykorzystano wyprowadzenie RB3 mikrokontrolera, ktÛre poprzez klucz tranzystorowy (T1) steruje diodami úwiec¹cymi zawartymi w†wyúwietlaczu LCD. Wyprowadzenie RB3 jest wyjúciem sygna³u modulatora PWM (modulacja szerokoúci impulsu), dziÍki temu moøliwe jest zdalne ustawienie intensywnoúci podúwietlania wyúwietlacza. SprzÍtowy sterownik PWM sprawia, øe sterowanie podúwietlaniem wyúwietlacza jest wykonywane niezaleønie od pracy jednostki centralnej mikrokontrolera.
Alfanumeryczny wyúwietlacz LCD AVT-538 Ten modu³ sk³ada siÍ z†alfanumerycznego wyúwietlacza LCD o†organizacji 2x16 znakÛw (z†podúwietlaniem) i†prostego interfejsu, wykonanego na mikrokontrolerze PIC. Modu³ umoøliwia wyúwietlenie 32 dowolnych znakÛw przesy³anych w kodzie ASCII poprzez magistralÍ RS485. Zastosowany wyúwietlacz ma wbudowane diody podúwietlaj¹ce, ktÛrych intensywnoúÊ úwiecenia moøna regulowaÊ zdalnie. Modu³ wyúwietlacza LCD umoøliwia komunikacjÍ dwustronn¹, dziÍki czemu moøliwy jest zapis danych i†komend do procesora oraz odczyt aktualnie wyúwietlanych znakÛw. Na wyúwietlaczu moøna wyúwietlaÊ polskie znaki diakrytyczne.
Budowa Schemat elektryczny modu³u wyúwietlacza LCD przedstawiono na rys. 24. Elementem steruj¹cym prac¹ modu³u jest mikrokontroler typu PIC16F628. CzÍstotliwoúÊ sygna³u zegarowego jest stabilizo-
50
Za konwersjÍ sygna³Ûw wystÍpuj¹cych w†linii transmisyjnej na standard TTL odpowiada uk³ad MAX485 (US2). Dokonuje on rÛwnieø konwersji z†poziomÛw TTL na poziomy zgodne z†RS485. Uk³ad US2 zosta³ do³¹czony do portu RB, poniewaø na wyprowadzeniach RB1 i†RB2 znajduje siÍ wejúcie i†wyjúcie sprzÍtowego interfejsu transmisji szeregowej, co pozwala na jego wykorzystanie do transmisji. Port RB0 steruje kierunkiem transmisji danych. Jeúli na tym wyjúciu wystÍpuje poziom niski, to uk³ad MAX485 jest w†trybie odbioru. W†tym trybie uk³ad US2 jest przez ca³y czas. Jedynie na czas wysy³ania danych przez mikrokontroler jest zmieniany tryb pracy uk³adu MAX485 na nadawanie, aby tuø po jego zakoÒczeniu powrÛciÊ do trybu odbiorczego. Rezystor R* s³uøy do dopasowania linii i†powinien byÊ zamontowany jedynie w†jednym module, najbardziej oddalonym od nadajnika. Zworka JP1 s³uøy do zmiany podstawowego adresu, pod ktÛrym bÍdzie zg³asza³ siÍ modu³ wyúwietlacza LCD. Natomiast zworka JP2 umoøliwia powrÛt do podstawowego adresu urz¹dzenia. Aby zapewniÊ bezkonfliktowy odbiÛr danych i†sterowanie wyúwietlaczem, w†pamiÍci RAM procesora zosta³ utworzony ìwirtualnyî wyúwietlacz. Wyúwietlacz ten jest 32-bajtowym buforem bÍd¹cym kopi¹ pamiÍci standardowego wyúwietlacza. Zastosowanie bufora znacznie skraca czas zapisu i†odczytu danych, co jest waøne, gdyø odbierane dane s¹ zapisywane w†trakcie odbioru poszczegÛlnych bajtÛw†danych. SzczegÛlnie jest to waøne przy interpretowaniu komend, poniewaø wykonanie niektÛrych komend moøe zaj¹Ê sterownikowi wyúwietlacza LCD nawet 2†ms. Wykonanie dowolnej operacji na pamiÍci RAM zajmie co najwyøej kilkadziesi¹t mikrosekund. DziÍki temu podczas odbioru danych z†linii transmisyjnej mikrokontroler ma duøo czasu na interpretowanie danych i†- w†zaleønoúci od potrzeb - odpowiednie ich modyfikowanie. Po kaødorazowej modyfikacji zawartoúci bufora nastÍpuje jego
Elektronika Praktyczna 10/2003
„Klocki” RS485
Rys. 24. Schemat elektryczny wyświetlacza płytki LCD
przepisanie do wyúwietlacza. Jeúli ma byÊ wykonany odczyt wyúwietlanych przez wyúwietlacz znakÛw, to nie trzeba ich odczytywaÊ z†pamiÍci wyúwietlacza, lecz wystarczy z†pamiÍci bufora. Modu³ wyúwietlacza umoøliwia wyúwietlenie oúmiu polskich znakÛw. Ze wzglÍdu na ograniczon¹ pojemnoúÊ pamiÍci dla w³asnych (definiowanych) znakÛw, nie jest moøliwe wyúwietlanie wszystkich polskich znakÛw, a†ponadto wyúwietlane
s¹ tylko ma³e litery. WybÛr znaku odbywa siÍ tak, jak przy zwyk³ym pisaniu, czyli ìAltî + znak. W†tab. 11 przedstawiono wszystkie moøliwe do wyúwietlenia polskie znaki oraz ich reprezentacja w†kodzie szesnastkowym. Tablica ta bÍdzie przydatna, jeúli modu³ wyúwietlacza bÍdzie sterowany z†mikrokontrolera, a†nie z†klawiatury komputera. Wtedy w†celu wyúwietlenia ø¹danego znaku naleøy wys³aÊ do modu³u wyúwietlacza odpowiadaj¹c¹ mu wartoúÊ w kodzie HEX podan¹ w†tab. 11.
Montaø
Rys. 25. Rozmieszczenie elementów na płytce sterownika wyświetlacza LCD
Elektronika Praktyczna 10/2003
Modu³ wyúwietlacza LCD zmontowano na dwustronnej p³ytce drukowanej o†wymiarach wyúwietlacza. Rozmieszczenie elementÛw przedstawiono na rys. 25. Montaø rezystora R* jest zaleøny od d³ugoúci linii komunikacyjnej i†miejsca umieszczenia modu³u, dlatego na tym etapie nie naleøy montowaÊ tego rezystora. Z³¹cza CON1 i†CON2 moøna zamontowaÊ od strony lutowania, co u³atwi do nich dostÍp po przykrÍceniu p³ytki sterownika i†wyúwietlacza LCD. Stabilizator napiÍcia jest montowany na leø¹co, dlatego wczeúniej naleøy zagi¹Ê jego wyprowadzenia pod k¹tem 90o. Po zmontowaniu wszystkich elementÛw do z³¹cza CON1 nale-
øy do³¹czyÊ ürÛd³o zasilania o†wartoúci napiÍcia oko³o 9†V†i†wydajnoúci pr¹dowej rÛwnej oko³o 150 mA. Do z³¹cza CON2 naleøy do³¹czyʆprzewody magistrali RS485, zwracaj¹c przy tym uwagÍ na pod³¹czenie wejúcia oznaczonego ìAî w†odbiorniku WYKAZ ELEMENTÓW Rezystory R1, R2: 10kΩ R3: 4,7Ω R4: 1kΩ PR1: potencjometr 10kΩ Kondensatory C1, C3: 100µF/16V C2, C4: 100nF C5, C6: 30pF C7: 47µF/16V C8: 100nF Półprzewodniki D1: 1N4007 T1: BC547 US1: PIC16F628 zaprogramowany US2: MAX485 US3: DS1813 US4: LM7805 Różne JP1, JP2: goldpiny 1x2 + jumpery CON1, CON2: ARK2 (5mm) X1: rezonator kwarcowy 4MHz Wyświetlacz LCD 16x2 z podświetlaniem (GDM1602A) Złącze goldpin 16x1 żeńskie Podstawki pod układy DIP8 − 1 szt., DIP18 − 1 szt.
51
„Klocki” RS485 Tab. 11. Kody przypisane polskim znakom diakrytycznym Znak
Kod (hex)
Kombinacja klawiszy
¹ æ ê ³ ñ ó ¿
0xB9 0xE6 0xEA 0xB3 0xF1 0x9C 0xF3 0xBF
Alt+a Alt+c Alt+e Alt+l Alt+n Alt+s Alt+o Alt+z
z†wyjúciem o†takim samym oznaczeniu w†nadajniku. Przed rozpoczÍciem uøytkowania wyúwietlacza naleøy ustawiÊ jego kontrast tak, aby uzyskaÊ jak najlepsz¹ widzialnoúÊ wyúwietlanego tekstu. Poniewaø po w³¹czeniu zasilania na wyúwietlaczu nie jest nic wyúwietlane, to najlepiej jest ustawiÊ potencjometr PR1 tak, aby wejúcie VREG wyúwietlacza by³o zwarte z†mas¹ zasilania. Podanie potencja³u masy na wejúcie regulacji kontrastu spowoduje ustawienie maksymalnego kontrastu, co umoøliwi odczytanie wyúwietlanych znakÛw wys³anych przez modu³ nadawczy. Wys³anie dowolnych znakÛw przez modu³ steruj¹cy w†trakcie komunikacji z†modu³em wyúwietlacza umoøliwi dok³adniejsze ustawienia kontrastu wyúwietlacza.
Obs³uga wyúwietlacza LCD Sterownik wyúwietlacza LCD ma adres odpowiadaj¹cy znakowi ì8î w†kodzie ASCII. Do modu³u sterownika wyúwietlacza mog¹ byÊ wysy³ane dane, ktÛre bÍd¹ traktowane jako znaki do wyúwietlenia lub jako rozkazy do wykonania. Kaøda komenda rozpoczyna siÍ od znaku ìESCî. NastÍpnie naleøy podaÊ adres modu³u wyúwietlacza LCD, rozkaz jaki ma byÊ wykonany lub dane do wyúwietlenia. Zestawienie wszystkich komend umoøliwiaj¹cych sterowaniem wyúwietlaczem LCD oraz przyk³adowe polecenia i†reakcja wyúwietlacza przedstawiono w†tab. 12. Komendy steruj¹ce wyúwietlaczem umoøliwiaj¹ ustawienie kursora na odpowiedniej pozycji. Kursor moøe byÊ ustawiony na pierwszej pozycji pierwszej lub drugiej linii. Wyúwietlany napis
52
moøe byÊ teø skasowany. Komendy te dotycz¹ jednego zadania i†wykonanie nastÍpnego wi¹øe siÍ z†ponownym rozpoczÍciem transmisji (naciúniÍcie klawisza Escape i†podanie kolejnej komendy). Komenda wyúwietlania znakÛw na wyúwietlaczu (ESC 8†w†d†enter) ma inne dzia³anie, gdyø po jej wydaniu odbierane kolejno znaki traktowane s¹ jako dane do wyúwietlenia na wyúwietlaczu (nie trzeba dla kaødego znaku rozpoczynaÊ transmisji klawiszem Escape). Dlatego po wydaniu komendy wyúwietlania znakÛw odbierane znaki z†linii komunikacyjnej s¹ wpisywane na kolejn¹ pozycjÍ wyúwietlacza, do momentu naciúniÍcia klawisza ìESCî. NaciúniÍcie tego klawisza spowoduje wy³¹czenie trybu wyúwietlania znakÛw i†jednoczeúnie moøe byÊ pocz¹tkiem kolejnej komendy dla wyúwietlacza lub innych do³¹czonych modu³Ûw. Procedura zapisuj¹ca odbierane znaki zosta³a tak pomyúlana, øe po zapisaniu znaku na ostatniej pozycji w†linii pierwszej, kursor przechodzi na pozycjÍ pierwsz¹ linii drugiej. Jeúli zostanie osi¹g-
niÍta ostatnia pozycja w†linii drugiej, to kursor przechodzi na pierwsz¹ pozycjÍ w†linii pierwszej. Taki sposÛb zapisu jest przydatny w†czasie zapisu wszystkich 32 znakÛw do wyúwietlacza, gdyø wystarczy wtedy ustawiÊ kursor na pierwszej pozycji linii pierwszej i†wys³aÊ do wyúwietlacza 32 znaki, ktÛre zostan¹ wyúwietlone w obydwu liniach wyúwietlacza. Gdyby nie by³o automatycznego przejúcia do drugiej linii, to po wys³aniu 16 znakÛw trzeba by by³o przerwaÊ transmisjÍ, nastÍpnie wydaÊ komendÍ ustawiaj¹c¹ kursor na drugiej linii, a pÛüniej ponownie prze³¹czyÊ wyúwietlacz w†tryb wyúwietlania znakÛw i†wys³aÊ kolejne 16 znakÛw do wyúwietlenia na drugiej linii wyúwietlacza. OprÛcz komend dotycz¹cych wyúwietlania znakÛw na wyúwietlaczu istnieje jeszcze jedna komenda zwi¹zana z†podúwietlaniem wyúwietlacza. Komenda ta umoøliwia zdalne w³¹czanie lub wy³¹czanie podúwietlania. Jest ona wydawana z†parametrem okreúlaj¹cym intensywnoúÊ podúwietlania, a†parametr ten okreúla war-
Tab. 12. Spis poleceń umożliwiających sterowanie wyświetlaczem LCD Rodzaj komendy
Wydana komenda
Reakcja modu³u wyœwietlacza LCD
Zapis rozkazu do wywietlacza Zapis rozkazu do wywietlacza Zapis rozkazu do wywietlacza Zapis rozkazu do wywietlacza
ESC 8 w c enter
Zapis poziomu intensywnoci podwietlania
ESC 8 w l n enter n- jasnoæ(0...9),
Kasowanie wywietlacza (na wszystkie pozycje wpisywane s¹ spacje) Ustawia kursor na pierwszej pozycji w linii pierwszej Ustawia kursor na pierwszej pozycji w linii drugiej Prze³¹cza modu³ w tryb odbioru danych po wydaniu tej komendy kolejno odbierane dane bêd¹ pojawia³y siê na wywietlaczu. Znaki s¹ wpisywane na wywietlacz do momentu naciniêcia klawisza ESC W³¹cza podwietlanie wywietlacza o poziomie wskazanym w parametrze n
ESC 8 w 1 enter ESC 8 w 2 enter ESC 8 w d enter
Przyk³ad1: ESC 8 w l 9 enter Przyk³ad2: ESC 8 w l 0 enter ESC 8 r 1 enter
Odczyt znaków zapisanych w linii pierwszej Odczyt znaków ESC 8 r 2 enter zapisanych w linii drugiej Odczyt obydwu ESC 8 r a enter linii wywietlacza Odczyt poziomu ESC 8 r l enter intensywnoci podwietlania
W³¹cza podwietlanie wywietlacza z pe³n¹ moc¹ Wy³¹cza podwietlanie wywietlacza Zwraca 16 znaków odpowiadaj¹cych zawartoci pierwszej linii wywietlacza Zwraca 16 znaków odpowiadaj¹cych zawartoci drugiej linii wywietlacza Zwraca 32 znaki odpowiadaj¹ce zawartoci ca³ego wywietlacza w jednym ci¹gu Zwraca jeden znak ASCII bêd¹cy cyfr¹ z zakresu 0...9 okrelaj¹c¹ aktualn¹ wartoæ intensywnoci podwietlania wywietlacza.
Elektronika Praktyczna 10/2003
„Klocki” RS485
Krok−po−kroku Za miesiąc opublikujemy artykuł−instrukcję, w którym na bazie prostych przykładów przedstawimy sposób obsługi prezentowa− nego w cyklu artykułów rozproszonego systemu wymiany danych. toúÊ w†jednym z†10 poziomÛw. Dla parametru rÛwnego ì0î (ASCII) podúwietlanie jest wy³¹czone, a†dla ì9î (ASCII) jest w³¹czone na
Elektronika Praktyczna 10/2003
maksymalnym poziomie. Dla maksymalnego poziomu podúwietlania, pr¹d steruj¹cy diodami úwiec¹cymi podúwietlacza wynosi oko³o 105 mA. Modu³ wyúwietlacza LCD umoøliwia dwustronn¹ komunikacjÍ, dlatego wszelkie zapisane dane mog¹ byÊ rÛwnieø odczytane, dotyczy to zarÛwno znakÛw wyúwietlanych na wyúwietlaczu, jak teø parametru podúwietlania wyúwietlacza. Krzysztof P³awsiuk, AVT [email protected]
Uwaga! Programy wynikowe dla mikrokontrolerÛw stosowanych w†prezentowanych projektach s¹ dostÍpne na naszej stronie internetowej: download.ep.com.pl w†dziale Dokumentacje. Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziernik03.htm oraz na p³ycie CD-EP10/2003B w katalogu PCB.
53
S P R Z Ę T
2,4 GHz dla każdego Tak by³o teø z†pasmem 433 MHz - kiedyú wymagaj¹cym sporo wysi³ku od konstruktora, a†zat³oczonym juø ponad miarÍ przez wszelkiego rodzaju piloty, alarmy i†inne urz¹dzenia, ktÛre na sta³e zagoúci³y w†naszym øyciu. Podobnie jest z†pasmem 868 MHz - przecieø to pra-
Elektronika Praktyczna 10/2003
wie 1†GHz, a†nikt siÍ nie krzywi³, tylko wszyscy zaczÍli starannie zagospodarowywaÊ kolejny fragment ìeteruî. Niestety oba te pasma maj¹ jedn¹ cechÍ wspÛln¹ - s¹ bardzo w¹skie (433 MHz - 1,74 MHz, 868 MHz - 2,00 MHz) i†przez to nie jest moøliwa jednoczesna
praca wielu urz¹dzeÒ (lub szybka transmisja danych). W†Europie moøemy tylko pomarzyÊ o†komforcie jaki maj¹ konstruktorzy amerykaÒscy, gdzie w†paúmie 900 MHz jest do dyspozycji aø 26 MHz. W†takich warunkach uk³ady transceiverÛw nRF903 (firmy NordicVLSI) mog¹ pracowaÊ aø na 169 kana³ach, podczas gdy europejskie pasmo 868 MHz pomieúci ich najwyøej 10. W†tym miejscu uwaøny Czytelnik dostrzeøe nastÍpny problem: firmy o†zasiÍgu globalnym musz¹ przygotowywaÊ co najmniej dwie wersje urz¹dzeÒ: ìamerykaÒsk¹î i†ìeuropejsk¹î, czÍsto takøe trzeci¹ - ìdalekowschodni¹î. Poci¹ga to za sob¹ koszty, z†ktÛrymi wszyscy tak zawziÍcie teraz walcz¹. Remedium na te problemy sta³o siÍ pasmo 2,4 GHz, do-
Jeszcze nie tak dawno (przynajmniej z†punktu widzenia autora) czÍstotliwoúci powyøej 100 MHz stanowi³y niedostÍpn¹ ìkrainÍî. Dominowa³y tam lampy, tylko gdzie niegdzie pojawia³ siÍ jakiú tranzystor, o†uk³adach scalonych mowy nie by³o. A†jeøeli ktoú gdzieú napotka³ czÍstotliwoúci wyraøane w†GHz, to najprawdopodobniej wszed³ w†posiadanie materia³Ûw wojskowych. Ale czasy siÍ zmieniaj¹ i†to, co by³o kiedyú poza zasiÍgiem, jest teraz codziennoúci¹.
55
S P R Z Ę T moøna transmitowaÊ dane z†szybkoúci¹ 1†Mb/s (przy czu³oúci odbiornika -85 dBm) lub 250 kb/s (przy czu³oúci odbiornika -95 dBm).
Shock burst - øeby programistom øy³o siÍ ³atwiej, a†uk³ad pobiera³ mniej pr¹du
Rys. 1. Schemat blokowy układu nRF2401 stÍpne praktycznie wszÍdzie i†na bardzo podobnych warunkach. Wystarczy wiÍc jeden projekt, aby obs³uøyÊ ca³y úwiat. Pasmo to jest teø bardzo szerokie - w†naszym regionie aø 83,5 MHz - pomieúci wiÍc wiele kana³Ûw lub pozwoli na bardzo szybk¹ transmisjÍ danych. Tutaj ma³a uwaga - ci, ktÛrzy s¹dz¹, øe pasmo 2,4 GHz jest przydzielone na wy³¹cznoúÊ bezprzewodowym lokalnym sieciom komputerowym (WLAN) lub teø Bluetooth s¹ w†b³Ídzie. Jest to po prostu jedno z†wielu pasm ogÛlnodostÍpnych okreúlanych czÍsto jako ISM (z angielskiego Industrial-Scientific-Medic). Czyøby same zalety? W³aúciwie tak, ale 2,4 GHz to juø naprawdÍ duøo. Przy tej czÍstotliwoúci kondensator to
juø nie sama pojemnoúÊ, cewka to nie sama indukcyjnoúÊ, a†prawie kaød¹ úcieøkÍ trzeba traktowaÊ jako liniÍ d³ug¹. Innymi s³owy, bez bogatej wiedzy na temat projektowania i†uruchamiania uk³adÛw wysokiej czÍstotliwoúci oraz dobrze wyposaøo-
VLSI wprowadzi³ do produkcji uk³ady nRF2401 - w†pe³ni zintegrowane transceivery na pasmo 2,4 GHz.
Pe³na integracja Z†elementÛw zewnÍtrznych wymaganych w†poprzednich uk³adach firmy NordicVLSI
‘51 wieczenie żywy! Rdzeń ‘51 wykorzystała w swoim scalonym z mikrokontrolerem transceiverze firma Chipcon. Układ CC1010 jest przystosowany do pracy w pasmach 315/433/868 MHz, ma wbudowaną m.in. pamięć programu typu Flash oraz sprzętowy moduł kryptograficzny DES. nego laboratorium nie by³o sensu rozpoczynaÊ projektu na 2,4 GHz. I†by³o tak aø do momentu, w†ktÛrym Nordic-
(nRF401, nRF903) w†nRF2401 zosta³ juø tylko kwarc i†jeden rezystor. Wszystkie pozosta³e, ³¹cznie z†cewk¹ lokalnego oscylatora znalaz³y siÍ wewn¹trz. WidaÊ to doskonale na rys. 1 pokazuj¹cym strukturÍ wewnÍtrzn¹ uk³adu oraz niezbÍdne elementy zewnÍtrzne.
Nowe pasmo - nowe moøliwoúci Kana³y w†nRF2401 moøna wybieraÊ z†krokiem 1†MHz, tak wiÍc w†naszym rejonie mamy ich do dyspozycji ponad 80. Na kaødym z†nich
Ca³kowit¹ nowoúci¹ jest tryb pracy okreúlany jako burst mode. W†tym trybie mikrokontroler wysy³a do nRF2401 sygna³y z†tak¹ szybkoúci¹ jaka jest dla niego najwygodniejsza (np. 10 kb/s jak pokazano na rys. 2). Po zape³nieniu wewnÍtrznego bufora uk³ad automatycznie oblicza sumÍ kontroln¹ (CRC8 lub CRC16), dodaje adres odbiorcy oraz sekwencje rozbiegow¹. Dopiero po tym wszystkim w³¹czany jest nadajnik, ktÛry wysy³a dane z†maksymaln¹ szybkoúci¹ (1 Mb/s lub 250 kb/s). Podobny proces odbywa siÍ w†torze odbiorczym - nRF2401 sam odrzuca sekwencjÍ rozbiegow¹, sprawdza adres i†sumÍ kontroln¹. Dopiero po odebraniu bezb³Ídnego pakietu ze zgodnym adresem uk³ad zg³asza mikrokontrolerowi gotowoúÊ danych, ktÛre mog¹ byÊ przeczytane z†bufora z†dowoln¹ szybkoúci¹. DziÍki temu úredni pobÛr pr¹du przy nadawaniu jest bardzo ma³y i†zmniejsza siÍ ryzyko kolizji pakietÛw, a†mikrokontroler odci¹øony jest od czasoch³onnych zadaÒ zwi¹zanych z†obs³ug¹ transmisji. Oczywiúcie zbÍdne jest wstÍpne kodowanie danych (np. kod Manchester).
DuoCeiver - czyli podwÛjny odbiornik Jeøeli chcemy jednoczeúnie odbieraÊ dane z†dwÛch ürÛde³, nie potrzebujemy drugiego uk³adu nRF2401, wystarczy w³¹czyÊ drugi tor odbiorczy. Z†punktu widzenia uøytkownika wygl¹da on jak ca³kowicie niezaleøny odbiornik, z†w³asnym buforem dla trybu ShockBurst i†w³asnymi wyjúciami sygna³u. DziÍki dwÛm buforom moøna odbieraÊ pakiety danych przychodz¹ce jednoczeúnie na obu kana-
Rys. 2. Zasada nadawania danych w trybie burst
56
Elektronika Praktyczna 10/2003
S P R Z Ę T
Rys. 3. Dzięki dwóm buforom wejściowym układ nRF2401 może odbierać dane jednocześnie w dwóch kanałach radiowych ³ach (rys. 3). Jedynym ograniczeniem trybu DuoCeiver jest sta³y odstÍp miÍdzykana³owy wynosz¹cy 8†MHz.
1,9 V, czyli jeszcze raz o†poborze energii Jedn¹ z†korzyúci wynikaj¹cych z†wykorzystania technologii CMOS 0,18 µm by³o obniøenie minimalnego napiÍcia zasilania do 1,9 V. Poniewaø maksymalne napiÍcie zasilania wynosi 3,6 V, uk³ad moøe byÊ zasilany z†dwÛch baterii bez koniecznoúci stosowania przetwornicy, przy czym wykorzystana zostanie ca³a energia dostÍpna w†ogniwach. Przy nadawaniu z†pe³n¹ moc¹ wynosz¹c¹ 0†dBm (1 mW) uk³ad pobiera 13 mA. Przy odbiorze pobÛr pr¹du zaleøy od konfiguracji toru odbiorczego i†mieúci siÍ miÍdzy 18 mA (250 kb/s, jeden tor odbiorczy) a†25 mA (1Mb/s, dwa tory odbiorcze). Przeliczaj¹c to na warunki rzeczywiste, uk³ad nRF2401 wymieniaj¹cy 256 bitÛw danych co 1†sekundÍ moøe pracowaÊ ponad 5†lat zasilany z†baterii o†pojemnoúci 280 mAh.
Obudowa, czyli wymogi miniaturyzacji Uk³ady nRF2401 s¹ zamykane w†24-nÛøkowej obudowie QFN (fot. 4). DziÍki temu
powierzchnia zajmowana przez uk³ad jest niewielka w†porÛwnaniu z†uk³adami w†obudowach SSOP. Niestety nie ma innych obudÛw niø QFN, co z†pewnoúci¹ skomplikuje øycie amatorom niedysponuj¹cym sprzÍtem do lutowania takich elementÛw.
K³opoty z†p³ytk¹ drukowan¹? Jak do tej pory projektanci uk³adÛw na wysokie czÍstotliwoúci musieli duøo czasu poúwiÍcaÊ na zaprojektowanie p³ytki drukowanej. Wiele elementÛw jest bardzo podatnych na zak³Ûcenia zewnÍtrzne, szczegÛlnej uwagi wymagaj¹ cewki generatorÛw (VCO), filtry poúredniej czÍstotliwoúci i†filtry PLL. Wraz z†pojawieniem siÍ nRF2401 problemy te znikaj¹, poniewaø wszystkie te obwody s¹ zrealizowane w†strukturze uk³adu. Tak jak juø by³o wspomniane, na zewn¹trz pozostaje tylko kwarc i†jeden rezystor. Jest to bardzo znacz¹cy postÍp i†teraz nawet firmy bez fachowcÛw od wysokich czÍstotliwoúci mog¹ úmia³o rozpocz¹Ê projekty urz¹dzeÒ pracuj¹cych w†paúmie 2,4 GHz. Dodatkowym u³atwieniem s¹ przygotowane przez NordicVLSI gotowe wzory p³ytek drukowanych. DziÍki nim czas wdroøenia jest praktycznie wyznaczony przez czas niezbÍdny do oprogramowania mikrokontrolerÛw wspÛ³pracuj¹cych z†nRF2401.
Czy moøna jeszcze bardziej uproúciÊ?
Fot. 4. Układy nRF2401 są dostarczane w obudowach QFN24
Elektronika Praktyczna 10/2003
Wydaje siÍ, øe nie. Dwa elementy zewnÍtrzne to juø naprawdÍ niewiele. Ale przecieø tor radiowy to nie wszystko. W†prawie wszystkich aplikacjach radio jest tylko kana³em wymiany danych miÍdzy mikroproceso-
57
S P R Z Ę T
i†dla nRF24E1 dostÍpne s¹ gotowe do wykorzystania wzory p³ytek drukowanych.
nRF24XX a†inni uøytkownicy pasma 2,4†GHz Jak juø wspomniano, pasmo 2,4 GHz jest ogÛlnodostÍpne i†musi byÊ wspÛ³dzielone pomiÍdzy wielu uøytkownikÛw. NajczÍúciej napotkamy w†nim bezprzewodowe lokalne sieci komputerowe (WLAN) oraz urz¹dzenia wyposaøone w†Bluetooth. Powstaje zatem pytanie, jak w†ich obecnoúci bÍd¹ dzia³aÊ uk³ady nRF24XX oraz jak zareaguj¹ na sygna³y z†nich pochodz¹ce. Urz¹dzenia WLAN w†zdecydowanej wiÍkszoúci wykorzystuj¹ modulacjÍ z†widmem rozproszonym. DziÍki temu energia sygna³u przy nadawaniu jest rozproszona
Rys. 5. Schemat blokowy układu nRF24E1 rami (mikrokontrolerami), czyli øe z†kaødym nRF2401 bÍdzie wspÛ³pracowa³ jakiú mikrokontroler. Gdyby wiÍc tak po³¹czyÊ jedno z†drugim to... otrzymamy nRF24E1. DziÍki technologii 0,18 µm CMOS jest to bardzo ³atwe i†co waøne - niedrogie. CÛø wiÍc zawiera nRF24E1? W†skrÛcie jest to (rys. 5): j¹dro 8051, 3†timery/liczniki, ³¹cze UART i†SPI, 9-kana³owy 12-bitowy przetwornik A/C, uk³ad PWM, watchdog, oscylator RC, no i†oczywiúcie kompletny transceiver o†parametrach identycznych z†nRF2401. Do dyspozycji jest 256 bajtÛw RAM ogÛlnego przeznaczenia i†4†kB RAM pe³ni¹cych funkcjÍ pamiÍci programu. Tak, program wykonywany jest z†pamiÍci RAM. W†zwi¹zku z†tym po zerowaniu mikroprocesor nie zaczyna wykonywania programu od adresu 0x0000h, tylko od 0x8000h, gdzie w†pamiÍci ROM zapisany jest boot-loader. Program ten odczytuje przez z³¹cze SPI pamiÍÊ nieulotn¹, ktÛrej zawartoúÊ zostanie przepisana do wewnÍtrznej pamiÍci RAM. J¹dro 8051 zosta³o zaprojektowane z†myúl¹ o†oszczÍd-
58
noúci energii i†przy pracy z†zegarem 16 MHz pobiera zaledwie 3†mA. Jeøeli do tego dodaÊ, øe j¹dro jest 4-taktowe, czyli trzy razy szybsze od standardowych 8051, otrzymamy bardzo dobr¹ relacjÍ wydajnoúci do poboru energii. W³¹czenie przetwornika A/C zwiÍkszy pobÛr pr¹du o†zaledwie 0,9 mA. W†urz¹dzeniach bateryjnych bardzo przydatny jest tryb power down, w†ktÛrym
uk³ad pobiera zaledwie 2†µA, przy czym ca³y czas dzia³a wewnÍtrzny uk³ad oscylatora RC. DziÍki temu nRF24E1 bÍdzie sam siÍ budzi³ w†zaprogramowanych odstÍpach czasu. To wszystko zamkniÍte jest w†36-nÛøkowej obudowie QFN, na zewn¹trz ktÛrej potrzebny jest tylko kwarc, jeden rezystor i†pamiÍÊ szeregowa. Oczywiúcie tak jak dla poprzedniego uk³adu tak
Fot. 6. Przykładowy zestaw startowy dla układów nRF2401
Elektronika Praktyczna 10/2003
S P R Z Ę T
na wiele (typowo 22) kana³Ûw i†jej poziom w†jednym kanale jest stosunkowo niewielki i†nie wp³ywa na pracÍ klasycznych (w¹skopasmowych) odbiornikÛw. Tak samo przy odbiorze, w¹skopasmowe sygna³y pochodz¹ce z†uk³adÛw nRF24XX nie zak³Ûcaj¹ pracy odbiornikÛw przystosowanych do modulacji szerokopasmowej. Nieco inna sytuacja jest z†Bluetoothem. Ten system komunikacji bezprzewodowej wykorzystuje te same rozwi¹zania co nRF24XX. Jednakøe integraln¹ czÍúci¹ protoko³u Bluetooth jest ci¹g³a zmiana czÍstotliwoúci (frequency hopping). Na jednym kanale urz¹dzenie Bluetooth nadaje przez 625 µs. Jeøeli wiÍc urz¹dzenie z†Bluetoothem ìtrafiî w†kana³, na ktÛrym nadaje nRF24XX, to ³¹cznoúÊ zostanie zak³Ûcona. Ale jest to tylko 625 µs, wiÍc nie wp³ynie to znacz¹-
co na wydajnoúÊ systemu a†z†zak³Ûceniami i†zanikami projektant ³¹cza radowego musi siÍ zawsze liczyÊ. PrÛby przeprowadzone z†wieloma urz¹dzeniami (8 i†wiÍcej) nie spowodowa³y zauwaøalnego spadku szybkoúci transmisji danych przez nRF24E1.
Na dobry pocz¹tek: zestawy startowe, narzÍdzia... Do wszystkich swoich uk³adÛw NordicVLSI oferuje zestawy startowe (fot. 6), ktÛre pozwalaj¹ na wykonanie natychmiastowych prÛb. W†sk³ad zestawu wchodz¹ dwa modu³y, ktÛre moøna po³¹czyÊ z†komputerem PC oraz odpowiednie oprogramowanie. Do programowania nRF24E1 moøna wykorzystaÊ kaøde narzÍdzie (asembler, kompilator) po uzupe³nieniu plikÛw nag³Ûwkowych o†rejestry specyficzne dla tego uk³adu. Jeøeli jednak szukamy rozwi¹zania firmowego, to NordicVLSI poleca úrodowisko firmy Keil, ktÛre wyposaøone jest w†program monitora pozwalaj¹cego na uruchamianie programÛw bezpoúrednio na nRF24E1. Oczywiúcie nic nie stoi na przeszkodzie, aby zacz¹Ê bez zestawu startowego. Skorzystanie z†gotowych wzorÛw p³ytek drukowanych i†kwarcu o†parametrach podanych w†karcie katalogowej gwarantuje poprawn¹ pracÍ uk³adu, a†napisanie programu na 8051 nie powinno byÊ problemem. Czyli - konstruktorzy do dzie³a! Witold Barycki, Eurodis Dodatkowe informacje Wiêcej informacji mo¿na uzyskaæ w firmie Eurodis Electronics Poland Sp. z o.o, tel. (71) 301-04-00, www.eurodis.com.pl.
Elektronika Praktyczna 10/2003
59
P O D Z E S P O Ł Y
W†EP wielokrotnie poruszaliúmy zagadnienia dotycz¹ce dostÍpu do Internetu w†samodzielnie budowanych aplikacjach. Zainteresowanie t¹ tematyk¹ staje siÍ zrozumia³e wobec zwiÍkszaj¹cej siÍ liczby ìsztywnychî po³¹czeÒ internetowych w†prywatnych mieszkaniach. Pewnym problemem jak dot¹d by³a programowa obs³uga doúÊ z³oøonego protoko³u sieciowego, ale...
Krzemowy stos TCP/IP ...zab³ys³a iskierka nadziei. Za spraw¹ firmy WIZnet nasze mÍki zwi¹zane z†programow¹ implementacj¹ stosu TCP/IP odchodz¹ w†zapomnienie. To, co do tej pory prÛbowaliúmy zaszywaÊ w†programie mikrokontrolera jako procedury, teraz otrzymujemy w†postaci niewielkiego uk³adu scalonego o†oznaczeniu W3100A. Jakie przynosi to korzyúci nietrudno sobie wyobraziÊ. Uk³ad jest wykonany w†technologii CMOS 0,35µm LSI i†zawiera kompletny sprzÍtowy stos TCP/ IP. UwzglÍdniono w†nim wszystkie niezbÍdne dla obs³ugi Internetu protoko³y: TCP, IP, UDP, ICMP, ARP, DLC i†MAC. DziÍki zastosowaniu W3100A uzyskujemy szybki dostÍp do Internetu przy minimalnych wymaganiach dotycz¹cych pamiÍci ROM i†RAM wspÛ³pracuj¹cego z†nim mikrokontrolera. Mamy
rÛwnieø moøliwoúÊ realizacji po³¹czeÒ internetowych w†urz¹dzeniach bez systemu operacyjnego. De facto w†strukturze s¹ zaimplementowane pewne jego procedury, z†czym zwi¹zane s¹ wymagane w†takich przypadkach op³aty licencyjne. UwzglÍdniono je w†koszcie uk³adu. W3100A naleøy do grupy produktÛw o†nazwie Internet Inside Chip (spotykane oznaczenia to: I2Chip lub iinChip). Tworz¹ j¹ uk³ady IP - rdzenie protoko³Ûw TCP/IP zrealizowane w†uk³adach ASIC (Application-Specific Integrated Circuit) lub wykorzystywane jako wirtualne komponenty w†uk³adach typu SoC (System on Chip) oraz ASSP (Application-Specific Standard Product), ktÛrych przyk³adem jest w³aúnie W3100A, a†takøe liczne modu³y i†zestawy uruchomieniowe.
Rys. 1. Schemat blokowy układu W3100A
60
W3100A dla ìrzeübiarzyî Do realizacji pomostu pomiÍdzy uk³adem mikroprocesorowym a†warstw¹ fizyczn¹ sieci ethernetowej oprÛcz uk³adu W3100A potrzebny jest jeszcze uk³ad typu PHY (PHysical laYer) np. RTL8210BL (Realtek) wraz z†niezbÍdnymi elementami. Uk³ady te moøna stosowaÊ jako integralne elementy w³asnej aplikacji, a†takøe w†sposÛb opisany w†dalszej czÍúci artyku³u. StrukturÍ uk³adu W3100A zamkniÍto w†64nÛøkowej obudowie LQFP. Jego schemat blokowy jest przedstawiony na rys. 1. Uk³ad W3100A umoøliwia jednoczesn¹ obs³ugÍ czterech niezaleønych kana³Ûw z†wydzielonymi buforami dynamicznymi dla kaødego z†nich, wspÛ³pracuje z†wieloma rodzajami warstw fizycznych (np. PLC, optyczn¹, przewodow¹, itp.), obs³uguje takøe interfejs MII (Media Independent Interface). Uk³ad jest zasilany napiÍciem 3,3†V, ale wyjúcia i†wejúcia toleruj¹ napiÍcie 5†V. W†zaleønoúci od zastosowanego w†aplikacji procesora uzyskuje siÍ prÍdkoúci transmisji od 300†kb/s (dla 8051) do 6†Mb/s (dla i386) w†trybie full-duplex. Problem dopasowania uk³adu do architektury mikrokontrolera zosta³ rozwi¹zany doúÊ elastycznie przez moøliwoúÊ wyboru magistrali typu Intel lub Motorola. Okno na úwiat zewnÍtrzny stanowi powszechnie wykorzystywany interfejs I2C. Uøyt-
Fot. 2. Moduł sieciowy IIM7010A
Elektronika Praktyczna 10/2003
P O D Z E S P O Ł Y
P O D Z E S P O Ł Y
Rys. 3. Schemat blokowy modułu IIM7010 kownik dostaje rÛwnieø zestaw wersji ürÛd³owych procedur interfejsu API (Application Programming Interface), wzorowany na znanym nam ze úrodowiska Windows, a†takøe klienta TCP, serwer TCP oraz biblioteki UDP. Z†pewnoúci¹ u³atwi¹ one oprogramowanie w³asnej aplikacji. Spektrum zastosowaÒ uk³adu W3100A jest ogromne: pocz¹wszy od nowoczesnych interaktywnych zabawek, koÒcz¹c na profesjonalnym sprzÍcie pomiarowym. Powoli przyzwyczajamy siÍ do sterowania poprzez Internet kuchenk¹ mikrofalow¹, lodÛwk¹ czy klimatyzacj¹. Swoje sta³e miejsce zdoby³y juø kamery internetowe, systemy do prowadzenia komunikacji wideofonicznej, itp. ZastosowaÒ profesjonalnych nie sposÛb wymieniÊ. Na pewno wiele z†nich bÍdzie powstawa³o lub juø powsta³o z†zastosowaniem uk³adu W3100A.
WIZnet modu³ IIM7010A (fot. 2). Jego schemat blokowy przedstawiono na rys. 3. Ze wzglÍdu na zwartoúÊ konstrukcji modu³ ten jest bardzo wygodny w†uøyciu. CzÍsto okazuje siÍ op³acalne jego uøycie nawet w†nowo projektowanych aplikacjach. Zastosowany w†module druk dwustronny i†montaø powierzchniowy sprawiaj¹, øe nie zyska siÍ zbyt wiele miejsca na p³ytce (jeúli w†ogÛle), rozdzielaj¹c poszczegÛlne elementy. Jak widaÊ na schemacie blokowym, modu³ IIM7010A realizuje kompletny interfejs miÍdzy systemem mikroprocesorowym a†warstw¹ fizyczn¹ sieci ethernetowej, w³¹cznie z†gniazdem RJ-45 wyposaøonym w†transformator. Bez wiÍkszego problemu mog¹ go uøywaÊ nawet ci projektanci, ktÛrzy do tej pory nie mieli stycznoúci z†urz¹dzeniami sieciowymi. Modu³ ³¹czy siÍ z†systemem poprzez dwie 28-nÛøkowe ³¹czÛwki uwzglÍdniaj¹ce sygna³y z†15-bitoModu³ IIM7010A, wej szyny adresoczyli W3100A dla wej, 8-bitowej szytych, co d³utem ny danych, a†takøe nie pracuj¹ sygna³y steruj¹ce: Jeúli zachodzi ko!INT, !WR, !RD niecznoúÊ przystosoi†!CS. OprÛcz nich wania aplikacji do wystÍpuj¹ ponadto wspÛ³pracy z†sieci¹, m.in. linie interfejto jedn¹ z†najprostsu I 2 C, wyprowadzenia s³uø¹ce do szych metod wydaje sterowania diodasiÍ zastosowanie gomi LED pokazuj¹towego modu³u siecymi status sieci, ciowego. Przyk³adem a†takøe linie zasimoøe byÊ znajduj¹cy laj¹ce. Modu³ jest siÍ w†ofercie firmy zasilany napiÍciem 3,3†V, ale wejúcia i†wyjúcia cyfrowe toleruj¹ poziomy 5†V. Modu³ IIM7010A automatycznie wykrywa sieÊ Ethernet 10/100 Mb/s, obs³uguje protoko³y: TCP, IP, UDP, ICMP, ARP, DLC, MAC, a†takøe protoko³y aplikacyjne takie jak Fot. 4. Płytka ewaluacyjna 8051EVB
62
Elektronika Praktyczna 10/2003
P O D Z E S P O Ł Y
Rys. 5. Przykładowa strona serwe− ra internetowego DHCP, HTTP, SMTP i†PING. Wymiana danych odbywa siÍ w†trybie full-duplex.
Doúwiadczenie zdobywa siÍ przez doúwiadczenia Jak wiadomo najlepsz¹ form¹ poznawania úwiata jest eksperymentowanie. Firma WIZnet opracowa³a w†tym celu kilka odmian zestawÛw ewaluacyjnych. Za ich pomoc¹ moøna wszechstronnie i†bezboleúnie zaznajomiÊ siÍ z†produktami. Przyk³adem moøe byÊ p³ytka 8051EVB oraz kilka wspÛ³pracuj¹cych z†ni¹ modu³Ûw powsta³ych w†kooperacji ze znanym nam dobrze Atmelem. W†Atmelu stworzono nawet grupÍ aplikacji, ktÛrym nadano nazwÍ @Web. Wszystkie s³uø¹ do u³atwienia uøytkownikom dostÍpu do Internetu. P³ytka 8051EVB (fot. 4), jak moøna wywnioskowaÊ z†nazwy, stanowi pole doúwiadczalne dla konstruktorÛw opracowuj¹cych aplikacje internetowe bazuj¹ce na 8-bitowym mikrokontrolerze rodziny 51. Zastosowano w†niej nieco ìwyroúniÍt¹î atmelowsk¹ odmianÍ 51-ki T89C51RD2 z†pamiÍci¹ Flash 64 kB, EEPROM 2†kB i†pamiÍci¹ RAM 1†kB, widzian¹ przez CPU jako pamiÍÊ zewnÍtrzna. Na p³ytce umieszczono trzy gniazda s³uø¹ce do do³¹czania rÛønych modu³Ûw koÒcowych: kamery internetowej, transmisji düwiÍku przez Internet oraz zdalnego sterowania. Przy³¹czenie sieci Ethernet jest moøliwe za pomoc¹ znanego juø nam modu³u IIM7010A. W†zestawie ewaluacyjnym oprÛcz p³ytki 8051EVB znajduje siÍ ponadto jeden z†wymienionych wyøej modu³Ûw, kabel RS232, skrosowany kabel UTP, zasilacz oraz CD-ROM z†przyk³adowym oprogramowaniem oraz dokumentacj¹ zawieraj¹c¹ m.in. schema-
Elektronika Praktyczna 10/2003
P O D Z E S P O Ł Y
ty. Zestaw ten moøe byÊ oczywiúcie wykorzystywany nie tylko do eksperymentÛw. Przyda siÍ rÛwnieø z†pewnoúci¹ w†niewymagaj¹cej aplikacji internetowej, w†ktÛrej uøytkownik zadowoli siÍ transferem do 300 kb/s. Mimo tego ograniczenia moøna swobodnie korzystaÊ z†protoko³Ûw DHCP, SMTP i†HTTP (dostÍpne wersje ürÛd³owe), dziÍki ktÛrym istnieje moøliwoúÊ przesy³ania stron WWW, a†takøe spe³niania funkcji agenta SMTP wysy³aj¹cego korespondencjÍ elektroniczn¹ do serwera SMTP. Funkcja klienta DHCP pozwala aplikacji uzyskiwaÊ adres IP z†serwera DHCP. O†poprawnoúci transmisji uøytkownik upewnia siÍ dziÍki protoko³owi PING rÛwnieø dostÍpnemu w†zestawie. Przed przyst¹pieniem do prÛb naleøy po³¹czyÊ p³ytkÍ 8051EVB kablem szeregowym z†portem RS232 komputera (niezbÍdnym do programowania mikrokontrolera na p³ytce) oraz skrosowanym kablem UTP z†kart¹ sieciow¹. NiezbÍdna bÍdzie teø modyfikacja konfiguracji otoczenia sieciowego zgodnie z†zaleceniami podanymi w†instrukcji. Jeúli powyøsze czynnoúci zostan¹ wykonane prawid³owo, to w†wyniku uruchomienia polecenia ping, na ekranie monitora powinny pojawiaÊ siÍ komunikaty o†przebiegu transmisji. Do programowania mikrokontrolera niezbÍdne bÍdzie pobranie programu FLIP (Software Flexible In-system Programmer). Jest on dostÍpny na stronach Atmela. Porozumiewa-
Fot. 6. Zestaw prezentowany w artykule wyposażono w interne− tową kamerę
63
P O D Z E S P O Ł Y Strony, które warto odwiedzić: - http://www.iinchip.com/e_iinchip/p_pro_all.htm, - http://www.atmel.com/products/8051/atweb.asp, - http://www.korkonet.pl/.
Rys. 7. Schemat blokowy webkamery nie siÍ systemu z†uøytkownikiem u³atwia wyúwietlacz LCD 16x2, umieszczony w†gÛrnej czÍúci p³ytki 8051EVB. S¹ na nim wyúwietlane ewentualne komunikaty o†b³Ídach w†konfiguracji, a†w†przypadku prawid³owego dzia³ania adres IP. Po uruchomieniu przyk³adowego programu serwera internetowego na wyúwietlaczu moøe byÊ wyúwietlany tekst wprowadzany poprzez przegl¹darkÍ stron WWW (rys. 5). Za jej pomoc¹ moøna rÛwnieø sterowaÊ dwoma LED-ami na p³ytce.
Webkamera W†zestawie uruchomieniowym jaki zosta³ udostÍpniony naszej redakcji znajdowa³ siÍ modu³ kamery internetowej (fot. 6). Wykorzystuj¹c p³ytkÍ 8051EVB, moøna przesy³aÊ przez Internet (bez poúrednictwa
64
komputera PC) dane wideo w†formacie CIF 320x240 z†szybkoúci¹ 3†ramek na sekundÍ. Maksymalna szybkoúÊ przesy³u, jak¹ gwarantuje sam modu³, dochodzi do 20 ramek na sekundÍ. Wraz z†modu³em dostarczony jest program IJLView, ktÛry po odpowiednim skonfigurowaniu wyúwietla obraz z†kamery w†wydzielonym oknie. Moøna go rÛwnieø zobaczyÊ bezpoúrednio w†przegl¹darce internetowej po wprowadzeniu odpowiedniego adresu URL. W†tym przypadku jednak obraz bÍdzie statyczny, trzeba go wiÍc odúwieøaÊ rÍcznie. Na p³ytce modu³u umieszczono kolorowy przetwornik wideo CMOS 1/3î, kodek M-JPEG, pamiÍÊ oraz interfejs s³uø¹cy do po³¹czenia z†p³ytk¹ 8051EVB. Schemat blokowy tak utworzonej webkamery pokazano
na rys. 7. Ramki wideo s¹ tworzone na ø¹danie mikrokontrolera przez specjalizowany uk³ad. Obraz jest zapamiÍtywany w†pamiÍci modu³u. Po zakoÒczeniu kompletowania ramki generowane jest odpowiednie przerwanie, w†wyniku ktÛrego mikrokontroler przepisuje zawartoúÊ pamiÍci obrazu w†formacie M-JPEG z†modu³u do pamiÍci na p³ytce 8051EVB. W†chwili, gdy mikrokontroler odbierze informacjÍ z†sieci o†odebraniu poprzedniej ramki, rozpoczyna wysy³anie aktualnej. PodwÛjne buforowanie poprawia p³ynnoúÊ transmisji ramek, zwiÍkszaj¹c tym samym szybkoúÊ wyúwietlania. W†wersji z†p³ytk¹ 8051EVB nadal pozostaje ona jednak stosunkowo niewielka. W†po³¹czeniu z†nie najwyøsz¹ jakoúci¹ sensora ogranicza to zakres zastosowaÒ. Wystarczy jednak do tego, by bÍd¹c w†Zakopanem, w†kaødej chwili mÛc obserwowaÊ, jakie wiatry wiej¹ na Zatoce Wiúlanej. Jaros³aw Doliñski, AVT [email protected] Dodatkowe informacje Zestaw prezentowany w artykule udostêpni³a redakcji firma Gamma, tel. (22) 862-75-00, www.gamma.pl.
Elektronika Praktyczna 10/2003
S P R Z Ę T WspÛ³czesne urz¹dzenia cyfrowe sk³adaj¹ siÍ zazwyczaj z†wielu modu³Ûw funkcjonalnych. Projektanci takich urz¹dzeÒ doskonale wiedz¹ o†tym, øe podczas ich uruchamiania i†testowania bardzo przydatny jest wielokana³owy analizator stanÛw logicznych. Jedno z†takich urz¹dzeÒ - dostÍpnych na naszym rynku przedstawiamy w†artykule.
LA-2124 Analizator stanów logicznych Podczas konstruowania urz¹dzeÒ cyfrowych szczegÛln¹ uwagÍ naleøy zwracaÊ na zaleønoúci czasowe wystÍpuj¹ce pomiÍdzy sygna³ami. Na wejúciach przerzutnikÛw (rejestrÛw) dane powinny pojawiÊ siÍ odpowiednio wczeúniej (setup time) przed narastaniem (opadaniem) zboczy sygna³u zegarowego (clk) i†mog¹ byÊ ìzdejmowaneî dopiero po okreúlonym czasie (hold time). CzÍsto zachodzi takøe†potrzeba sprawdzenia, czy w†zbudowanym uk³adzie nie wystÍpuje zjawisko hazardu spowodowane zastosowaniem elementÛw wprowadzaj¹cych rÛøne opÛünienia. Bardzo waøn¹ rzecz¹ jest, aby oprÛcz zachowania w³aúciwoúci czasowych w†projektowanym uk³adzie by³y zachowane odpowiednie funkcje logiczne (dzia³anie zgodne ze specyfikacj¹ funkcjonaln¹). Sumator ma dodawaÊ, a†nie mnoøyÊ, rejestr przesuwny ma przesuwaÊ dane w†lewo (prawo)
o†okreúlon¹ (a nie dowoln¹) liczbÍ pozycji itp. Potrzeba bardzo wielkiego doúwiadczenia, aby przy tworzeniu za³oøeÒ funkcjonowania uk³adu cyfrowego nie zrobiÊ - juø na wstÍpie - wielu b³ÍdÛw. Zwykle, przy wdraøaniu do produkcji skomplikowanych urz¹dzeÒ cyfrowych, testowanie i†weryfikacja jego dzia³ania trwa d³ugo. Czas trwania tego etapu projektu moøna skrÛciÊ za pomoc¹ specjalnych urz¹dzeÒ, np. analizatorÛw†stanÛw logicznych. DziÍki tym przyrz¹dom moøna poznaÊ zaleønoúci czasowe wystÍpuj¹ce miÍdzy sygna³ami w†testowanym uk³adzie, a†takøe zweryfikowaÊ jego cechy funkcjonalne. O†ile za pomoc¹ oscyloskopu moøemy obserwowaÊ maksymalnie kilka sygna³Ûw jednoczeúnie, o†tyle analizator pozwala obserwowaÊ, z†dok³adnoúci¹ nawet nanosekundow¹, kilkanaúcie (kilkadziesi¹t, a†nawet kilkaset) sygna³Ûw jednoczeúnie. Na etapie opracowywania konstrukcji bardzo przydatnym urz¹dzeniem moøe okazaÊ siÍ analizator LA-2124 firmy Clock Computer Corporation. Firma ta od wielu lat zajmuje siÍ projektowaniem i†produkcj¹ tego typu urz¹dzeÒ. Podstawowymi parametrami analizatora stanÛw logicznych, najczÍúciej branymi pod uwagÍ przez uøytkownikÛw, s¹: liczba kanaRys. 1. Widok okna programu sterującego ³Ûw i†maksymalna czÍspracą analizatora LA−2124 totliwoúÊ prÛbkowania.
68
Prezentowany w†artykule LA-2124 ma 24 kana³y, wszystkie mog¹ pobieraÊ informacje (prÛbkowaÊ) z†czÍstotliwoúci¹ do 100 MHz. Tak wiÍc maksymalna rozdzielczoúÊ pomiaru w†osi czasu wynosi 10 ns. Innymi waønymi parametrami s¹: dopuszczalne napiÍcia wejúciowe (w prezentowanym modelu od -5V do + 10V), prÛg rozpoznawania zera i†jedynki logicznej (w prezentowanym modelu od -1V do 3†V, programowany z†krokiem 50 mV) i†pojemnoúÊ pamiÍci prÛbek, ktÛra w†omawianym urz¹dzeniu wynosi 128 ks³Ûw. Program steruj¹cy prac¹ analizatora LA-2124 pracuje pod kontrol¹ systemu Windows 98/Me. Pozwala on dobieraÊ wszystkie parametry pracy, w†tym: sposÛb wyzwalania, wartoúÊ s³owa wyzwalaj¹cego, napiÍcia referencyjne, czÍstotliwoúci, pojemnoúÊ uøytej pamiÍci, itp.). Program ten s³uøy takøe do ogl¹dania wynikÛw pomiarÛw (rys. 1). Jego dodatkowymi, istotnymi z†punktu widzenia uøytkownika, moøliwoúciami s¹: drukowanie wynikÛw, zapis danych do pliku (odczyt z†pliku), eksport danych do arkusza kalkulacyjnego. Atutem moøe byÊ obszerna pomoc w†postaci elektronicznej (help) napisana w†sposÛb bardzo przejrzysty.
WiÍcej moøliwoúci Firma Clock Computer Corporation modelu analizatora prezentowanego w†artykule, ma w†swojej ofercie takøe modele bardziej zaawansowane. Na przyk³ad modele serii 5000 prÛbkuj¹ z†czÍstotliwoúci¹ do 500 MHz, a†maksymalna
Elektronika Praktyczna 10/2003
S P R Z Ę T Tab. 1. Podstawowe parametry analizatora LA−2124 Predefiniowane czêstotliwoci próbkowania
100 MHz, 50 MHz, 25 MHz, 5 MHz, 1 MHz, 500 kHz, 100 kHz, 50 kHz, 1 kHz, 500 Hz, 250 Hz, 50 Hz, 20 Hz, 10 Hz, 5 Hz, 2 Hz, 1 Hz, taktowanie zewnêtrzne (ext clk) Liczba wejæ (kana³ów) 24 Pojemnoæ pamiêci próbek 128 ks³ów 24-bitowych Czas podtrzymania/ustalania 2 ns/0 ns Napiêcie progowe (0/1) Ustawiane od -1 V do +3 V z krokiem 50 mV Impedancja wejciowa 50 kΩ||8 pF Maksymalne napiêcie wejciowe od -5 V do +10 V Niejednoczesnoæ akwizycji danych max. 2 ns pomiêdzy wejciami Sposoby wyzwalania pomiaru Stany wyzwalania dla poszczególnych wejæ - 0, 1, X (dowolny) (trigger) s¹ mno¿one logicznie (AND), mo¿na wybraæ zbocze tak utworzonego sygna³u. Mo¿liwoæ pre- i post-wyzwalania Wywietlanie - 24 kana³y mog¹ byæ wywietlane jako przebiegi czasowe, - u¿ytkownik definiuje nazwy tych kana³ów, - kana³y s¹ wywietlane w kolejnoci zadanej przez u¿ytkownika, - pokazywany jest czas miêdzy kursorami A, B i momentem wyzwolenia, - powiêkszanie i pomniejszanie widoku w poziomie (1/64 do 64) i w pionie (1x do 4x), - niezale¿ne ustawianie kolorów poszczególnych kana³ów. Komunikacja z komputerem Poprzez port Centronics Oprogramowanie Pracuje pod kontrol¹ Windows 98/Me
liczba ich wejúÊ wynosi 160. OprÛcz tego moøna ustawiaÊ po kilka rÛønych progÛw napiÍciowych jednoczeúnie (w przedziale od -6,4
70
V†do +6,4 V). Dopuszczalne s¹ napiÍcia wejúciowe z†zakresu od -150 V†do +150 V, a†pamiÍÊ prÛbek ma pojemnoúÊ do 512 ks³Ûw.
Bardzo rozbudowane oprogramowanie analizatorÛw z†rodzin 4000 i†5000 wykonuje m.in. automatyczn¹ analizÍ sygna³Ûw magistrali I2C, a†po zastosowaniu dodatkowych modu³Ûw moøe s³uøyÊ jako generator zadanych wzorÛw†(pattern generator). Aby lepiej zapoznaÊ siÍ z†analizatorem przedstawionym w†artykule, moøna pobraÊ oprogramowanie steruj¹ce jego prac¹ i†przetestowaÊ je w†trybie demo (bez do³¹czonego sprzÍtu). Najnowsze wersje oprogramowania s¹ dostÍpne na stronie producenta http://www.clocklink.com.tw oraz na stronie dystrybutora - http://www.elmark.com.pl (w sekcji - pomoc techniczna). Tomasz Koz³owski Elmark Automatyka Sp. z o.o. [email protected] Dodatkowe informacje Przyrz¹d do testów udostêpni³a redakcji firma ELMARK Automatyka Sp. z o.o., tel. (22) 828-2911, www.elmark.com.pl.
Elektronika Praktyczna 10/2003
P O D Z E S P O Ł Y
P O D Z E S P O Ł Y
Przetwornice DC/DC do systemów pomiarowych i aplikacji audio Szwajcarska firma Traco Power ma w swojej ofercie wyspecjalizowane przetwornice impulsowe DC/DC, których podstawowym zadaniem jest separacja linii zasilaj¹cych od siebie. Dziêki nim, w aplikacjach wymagaj¹cych napiêcia zasilaj¹cego pozbawionego zak³óceñ, konstruktor nie musi stosowaæ ju¿ wyrafinowanych, czêsto bardzo kosztownych, sztuczek. Przetwornice nale¿¹ce do rodzin TYL/TVL maj¹ za zadanie przede wszystkim zapewniæ na swoim wyjœciu/wyjœciach (w zale¿noœci od typu) stabilne napiêcie o zminimalizowanym poziomie zak³óceñ. Taki cel postawili przed sob¹ ich konstruktorzy, a za³o¿enia uda³o siê zrealizowaæ m.in. dziêki zastosowaniu bardzo wysokiej czêstotliwoœci pracy przetwornic (TYL: 70...400 kHz, TVL: 50...300 kHz), specjalnej budowie ceramicznej p³ytki pod³o¿owej (na której zmontowano “elektronikê” przetwornicy) oraz metalowej obudowy zapewniaj¹cej zminimalizowanie poziomu zak³óceñ elektromagnetycznych emitowanych do otoczenia. Przetwornice s¹ przystosowane do zasilania napiêciem o wartoœci 4,75...6 VDC, co sugeruje mo¿liwoœæ stosowania ich jako separatorów linii
Elektronika Praktyczna 10/2003
zasilaj¹cych w systemach cyfrowych, w których z natury rzeczy linie zasilaj¹ce s¹ silnie zak³ócone. Przewidywany charakter aplikacji docelowych prezentowanych przetwornic spowodowa³, ¿e napiêcie przebicia izolacji pomiêdzy wejœciem i wyjœciem wynosi tylko 500 VDC. Przetwornice TYL maj¹ moc wyjœciow¹ 1,5 W i w zale¿noœci od wersji: jedno lub dwa (symetryczne) napiêcia na wyjœciu. Napiêcie têtnieñ (³¹cznie z szumami) na wyjœciu nie przekracza 6 mVpp, a po zastosowaniu trzech (lub piêciu w wersjach z podwójnym wyjœciem) zewnêtrznych kondensatorów (wymagane s¹ elementy o wysokiej jakoœci) sumaryczne napiêcie têtnieñ spada do ok. 2 mVpp. Przetwornice z rodziny TVL maj¹ wiêksz¹ moc wyjœciow¹ - dochodzi ona do 5 W - i wszystkie wyposa¿ono w podwójne wyjœcie (napiêcia symetryczne). Charakteryzuj¹ siê one mniejszym poziomem têtnieñ (do 3 mVpp), co uzyskano m.in. dziêki wbudowaniu w przetwornice filtrów nieco bardziej rozbudowanych ni¿ w rodzinie TYL. Dok³adnoœæ ustalonego fabrycznie napiêcia wyjœciowego w przetwornicach z obydwu rodzin nie jest gorsza ni¿ ±3%.
71
P O D Z E S P O Ł Y Tab. 1. Podstawowe parametry przetwornic TVL/TYL Typ przetwornicy
Napiêcie wejœciowe [V]
Napiêcie wyjœciowe1 [V/mA]
Napiêcie wyjœciowe2 [V/mA]
TYL05-05S30
4,75...6
5/300
-
TYL05-12S12
4,75...6
12/120
-
TYL05-15S10
4,75...6
15/100
-
TYL05-05W08
4,75...6
5/80
5/80
TYL05-12W06
4,75...6
12/65
12/65
TYL05-15W05
4,75...6
15/53
15/53
TVL05-1220
4,75...6
12/200
12/200
TVL05-1225
4,75...6
12/250
12/125
TVL05-1516
4,75...6
15/165
15/165
TVL05-1520
4,75...6
15/200
15/100
Zmiana wartoœci napiêcia wyjœciowego w zale¿noœci od zmian napiêcia wejœciowego oraz zmian obci¹¿enia (w zakresie 0/100%) w przypadku rodziny TYL wynosi ±0,3%, natomiast w przypadku przetwornic TVL (odpowiednio) ±0,03%/±0,18%. Podobnie do innych typów przetwornic oferowanych przez Traco Power, tak¿e w prezentowanych w artykule, napiêcie wyjœciowe niezbyt silnie zale¿y od temperatury - wspó³czynnik zmiany nie przekracza ±0,02%/oC. Jest to o tyle istotne, ¿e s¹ one przystosowane do pracy w szerokim zakresie temperatur: -25...+71oC. Komfort korzystania z przetwornic prezentowanych w artykule zwiêksza fakt wbudowania w nie zabezpieczeñ prze-
72
ciwzwarciowych. Uniemo¿liwiaj¹ one przekroczenie wartoœci pr¹du wyjœciowego powy¿ej 20% wartoœci maksymalnej dla danego typu przetwornicy. Dziêki “podciêtej” charakterystyce pr¹dowo-napiêciowej zabezpieczenia, czas trwania zwarcia nie ma wp³ywu na bezpieczeñstwo i trwa³oœæ przetwornicy. Ma to doœæ du¿e znaczenie praktyczne, poniewa¿ producent gwarantuje prawid³ow¹ pracê swoich wyrobów przez dwa lata (wed³ug danych katalogowych MTBF>1000000 h przy temperaturze otoczenia +25oC). Przetwornice prezentowane w artykule, w odró¿nieniu od wiêkszoœci dotychczas prezentowanych, maj¹ szansê znaleŸæ poczesne miejsce w ró¿norodnych aplikacjach audio (szczególnie w przedwzmacniaczach) oraz pomiarowych, np. jako separatory napiêcia w kartach pomiarowych instalowanych w PC. Jest to - jak wynika z prób prowadzonych m.in. w naszym laboratorium - jeden z najskuteczniejszych sposobów eliminacji k³opotliwych zak³óceñ. Andrzej Gawryluk
Dystrybutorem firmy Traco Power jest Amtek spol. s r.o., tel. (22) 874-02-34, [email protected], www.amtek.cz. Dodatkowe informacje mo¿na znaleŸæ w Internecie pod adresem: - http://www.tracopower.com/products/tyl.htm.
Elektronika Praktyczna 10/2003
S P R Z Ę T Jak mawiaj¹ informatycy: drukarka bÍdzie dzia³a³a znacznie lepiej, gdy siÍ j¹ pod³¹czy do pr¹du. Nie tylko drukarka. My, elektronicy, wiemy coú na ten temat. Dobry zasilacz to podstawa wyposaøenia pracowni elektronika, niezaleønie od tego, czy jest on amatorem, czy profesjonalist¹. W†artykule prezentujemy zasilacz PR8323, ktÛry jest przedstawicielem serii PR8000 tajwaÒskiej firmy ABM.
PR8323 Programowany zasilacz laboratoryjny W†niezgodzie z†tym, co napisa³em wyøej, sam uøywam do dzisiaj zasilacza, ktÛry by³ jedn¹ z†pierwszych moich konstrukcji elektronicznych. Tylko historycy elektroniki mogliby doceniÊ elementy, na jakich by³ pierwotnie wykonany. Nie wytrzyma³y one jednak prÛby czasu i†w†trakcie eksploatacji zosta³y prawie w†stu procentach wymienione na inne, nowoczeúniejsze. Ograniczone parametry mojego zasilacza daj¹ mi siÍ we znaki od czasu do czasu, aø przyjdzie moment, kiedy powÍdruje on do domowego muzeum. Po testach zasilacza PR8323, jakie mia³em moøliwoúÊ ostatnio przeprowadziÊ wydaje siÍ, øe dzieÒ ten zbliøa siÍ milowymi krokami. PR8323 jest jednym z†kilku programowanych zasilaczy serii PR8000. Warto tu wspomnieÊ, øe firma ABM oprÛcz programowanych zasilaczy produkuje rÛwnieø programowane mierniki mocy, programowane mierniki impedancji, programowane omomierze, multimetry cyfrowe, zasilacze regulowane oraz liczne akcesoria do wyøej wymienionych przyrz¹dÛw. Wszystkie s¹ wykonane jako urz¹dzenia stacjonarne i†maj¹ cyfrowo zadawane parametry (z klawiatury). DziÍki temu uzyskuje siÍ duø¹ dok³adnoúÊ ustawieÒ. Jedynie zasilacze regulowane maj¹ parametry ustawiane za pomoc¹ potencjometrÛw. WiÍcej danych dotycz¹cych oferty firmy ABM moøna znaleüÊ pod adresem http://www.abmtmi.com.tw/e_index.htm.
Charakterystyka zasilacza PR8323 W†tab. 1 zebrano podstawowe dane techniczne zasilacza PR8323. Do jego najistotniejszych cech naleø¹: - praca ze sta³ym napiÍciem lub sta³ym pr¹dem,
74
- duøy wyúwietlacz LCD 16x2 z†podúwietlaniem, - wysoka rozdzielczoúÊ ustawieÒ: 10 mV, 1†mA, - zabezpieczenie przed przeci¹øeniem, - pamiÍÊ 50 ustawieÒ uøytkownika, - automatyczne odtwarzanie ustawieÒ z†zaprogramowanymi zaleønoúciami czasowymi, - od³¹czanie i†za³¹czenie wyjúcia, - wysoka stabilnoúÊ i†niski poziom szumÛw zarÛwno podczas pracy jako ürÛd³o napiÍciowe jak i†pr¹dowe, - zabezpieczenie przeciwzwarciowe i†przed odwrÛcon¹ polaryzacj¹, - sterowany procesorem wentylator, gwarantuj¹cy ograniczenie ha³asu do niezbÍdnego minimum, - automatyczne zachowanie ustawieÒ, odtwarzane po wy³¹czeniu i†ponownym w³¹czeniu zasilania, - interfejs RS232, - 4-cyfrowe wyúwietlanie wartoúci napiÍcia i†pr¹du, - zgodnoúÊ z†norm¹ IEC 61010-1. - znak CE. Obs³uga zasilacza, mimo doúÊ groünie wygl¹daj¹cej klawiatury jest bardzo prosta. W³¹czenie zasilacza do sieci nie zawsze musi byÊ rÛwnoznaczne z†podaniem napiÍcia/pr¹du na gniazda wyjúciowe. Dzieje siÍ tak dopiero po ustawieniu przyrz¹du w†trybie On za pomoc¹ klawisza Output . Model PR8323 wyposaøono w†jedno wyjúcie. Jeúli zajdzie koniecznoúÊ stosowania zasilania podwÛjnego, niestety trzeba bÍdzie wykorzystaÊ do tego celu drugi egzemplarz zasilacza lub zmieniÊ typ np. na PR9323. Z†oczywistych powodÛw bÍdzie siÍ to wi¹za³o jednak z†dodatkowymi kosztami. Wyjúcie sk³ada siÍ z†trzech zaciskÛw: dwÛch napiÍciowych i†jednego uziemiaj¹cego. Zasila-
nie urz¹dzeÒ na ogÛ³ bÍdzie wymaga³o pracy w†trybie napiÍciowym. W†tym przypadku ustawiona wartoúÊ pr¹du bÍdzie pe³ni³a rolÍ ograniczenia pr¹dowego. ZwiÍkszaj¹c napiÍcie w†trakcie pracy bÍdziemy zgodnie z†prawem Ohma powodowali zwiÍkszanie pr¹du wyjúciowego (przy za³oøeniu sta³oúci parametrÛw obci¹øenia). Po przekroczeniu pewnej wartoúci napiÍcia, pr¹d p³yn¹cy przez obci¹øenie osi¹gnie ustawion¹ wczeúniej wartoúÊ i†zasilacz stanie siÍ ürÛd³em pr¹dowym. PrÛby dalszego zwiÍkszania napiÍcia bÍd¹ nieskuteczne. Moøna w†ten sposÛb sprawdziÊ np. napiÍcie progowe nieznanej diody Zenera. Wystarczy ustawiÊ ograniczenie pr¹dowe (klawiszem ASET) na wartoúÊ jej pr¹du roboczego (kilka mA) i†do³¹czyÊ j¹ do zaciskÛw zasilacza w†kierunku zaporowym. Na wyúwietlaczu pojawi siÍ wartoúÊ napiÍcia Zenera badanej diody. Parametry zaciskowe zasilacza mog¹ byÊ ustawione przed uaktywnieniem wyjúcia. Mog¹ byÊ rÛwnieø zmieniane podczas pracy. Jeúli przewidujemy regulacjÍ napiÍcia w†czasie, gdy wyjúcie pozostaje aktywne, niew¹tpliwie warto bÍdzie ustawiÊ ograniczenie napiÍciowe. Ustawione napiÍcie bÍdzie maksymalnym, jakie uzyskamy na wyjúciu zasilacza. Po jego przekroczeniu nast¹pi automatyczne od³¹czenie wyjúcia. Wejúcie w†tryb regulacji napiÍcia na wyjúciu odbywa siÍ po naciúniÍciu klawisza VSET. Wykorzystuj¹c zasilacz jako ürÛd³o pr¹dowe, w†analogiczny sposÛb moøna ustawiÊ ograniczenie napiÍciowe (klawiszem VSET) i†maksymalny pr¹d wyjúciowy (klawiszem OCP). Aktualny tryb pracy zasilacza jest sygnalizowany lampk¹ /CV /CC. Jeúli siÍ úwieci, oznacza to, øe wyjúcie pracuje w†trybie napiÍcio-
Elektronika Praktyczna 10/2003
S P R Z Ę T wym, w†przeciwnym razie mamy do czynienia z†wyjúciem pr¹dowym. Jednym z†trybÛw pracy zasilacza PR8323 jest tzw. AUTO-RUN. Przed jego uruchomieniem naleøy zaprogramowaÊ sekwencjÍ stanÛw wyjúciowych. Po ustawieniu ø¹danego napiÍcia/pr¹du dla danego kroku wciskamy klawisz Save, zapisuj¹c tym samym aktualne parametry do nieulotnej pamiÍci zasilacza. Moøna zdefiniowaÊ nie wiÍcej niø 50 ustawieÒ. NastÍpnie klawiszem Delay naleøy ustawiÊ czas trwania kroku. Dla ca³ej sekwencji bÍdzie on jednakowy. Kolejn¹ czynnoúci¹ bÍdzie zdefiniowanie pozycji pamiÍci, od ktÛrej bÍdzie pÛüniej odtwarzana sekwencja, a†takøe pozycji ostatniej. Realizuje siÍ to klawiszem SEQ. Ponadto tym samym klawi-
szem moøna okreúliÊ, czy zaprogramowana sekwencja bÍdzie odtwarzana jednorazowo, czy bÍdzie powtarzana cyklicznie. Uruchomienie tego specyficznego programu nastÍpuje po naciúniÍciu klawisza Auto. Ograniczenia OVP i†OCP, wprowadzone niezaleønie, pozostaj¹ aktualne w†trybie auto. Opisana wyøej metoda nadaje siÍ do zautomatyzowania pewnych czynnoúci uruchomieniowo-pomiarowych. PoszczegÛlne pozycje pamiÍci mog¹ byÊ przywo³ywane rÛwnieø bez koniecznoúci wchodzenia w†tryb auto. S³uøy do tego klawisz Recall. Cechy uøytkowe zasilacza znacznie podnosi moøliwoúÊ zdalnego sterowania poprzez interfejs RS232. Jako ürÛd³o poleceÒ moøe byÊ wykorzystany komputer PC lub specja-
Tabela 1. Dane techniczne zasilacza PR8332 Wyjcie
Wspó³czynnik stabilizacji przy zmianach napiêcia zasilaj¹cego Wspó³czynnik stabilizacji przy zmianach obci¹¿enia Têtnienia i szumy Rozdzielczoæ programowania Dok³adnoæ programowania Wspó³czynnik temperatury (0÷40oC) Rozdzielczoæ odczytu Dok³adnoæ odczytu Czas reakcji Wspó³czynnik temp. odczytu Dryf wyjciowy Pamiêæ Ustawianie czasu
Interfejs Zasilanie Zakres temperatur Bezpieczeñstwo i kompatybilnoæ EMC Dane ogólne
Napiêcie Pr¹d Maks. napiêcie Maks. pr¹d Napiêcie Pr¹d
0÷32 V 0÷3 A 0,2÷35 V 0,02÷3,2 A ≤0,01% +3 mV ≤0,06% +3 mA (+6 mA pr¹d znamionowy >3 A) Napiêcie ≤0,01% +3 mV Pr¹d ≤0,06% +3 mA Napiêcie ≤1 mV Pr¹d ≤3 mA Napiêcie 10 mV Pr¹d 1 mA Napiêcie ≤0,05% +10 mV Pr¹d ≤0,08% +5 mA Napiêcie ≤100ppm*/oC+3 mV Pr¹d ≤150ppm/ oC+3 mA Napiêcie 10 mV Pr¹d 1 mA Napiêcie ≤0,05% +10 mV Pr¹d ≤0,08% +5 mA Napiêcie ≤100 ms Pr¹d ≤100 ms Napiêcie ≤100ppm/ oC+3 mV Pr¹d ≤150ppm/ oC+3 mA Napiêcie ≤100ppm/ oC+10 mV Pr¹d ≤150ppm/ oC+3 mV Zapisz/Przywo³aj 0÷50 Zakres 0,1÷9999,9 s Rozdzielczoæ 0,1s Funkcja Dla trybu AUTO RUN RS232 9600,N,8,1 Napiêcie AC 100/200/220/240 V ±10%, 50/60 Hz Pracy 0÷40oC Sk³adowania -10÷70oC CE (zawiera EMC i LVD) Wyposa¿enie Wymiary (mm) Masa (kg)
Elektronika Praktyczna 10/2003
Przewód pomiarowy Przewód zasilaj¹cy Instrukcja 213 (szer.) x 88 (wys.) x 394 (g³.) 6,5
lizowany sterownik. Komunikacja odbywa siÍ w†dwie strony, dziÍki czemu moøliwe jest zarÛwno przekazywanie poleceÒ do zasilacza - np. zmiana napiÍcia wyjúciowego, jak i†odczytywanie parametrÛw z†zasilacza - np. zmierzonej wartoúci pr¹du wyjúciowego. Po po³¹czeniu zasilacza z†komputerem i†uruchomieniu odpowiedniego oprogramowania oraz wydaniu polecenia [+] jest podejmowana prÛba nawi¹zania po³¹czenia. Gdy siÍ powiedzie, zasilacz przechodzi w†zdalny tryb pracy, a†na panelu czo³owym zapala siÍ lampka Remote. Od tej chwili ca³¹ kontrolÍ nad zasilaczem przejmuje komputer, klawiatura zasilacza jest wy³¹czona. Aktywny pozostaje jedynie klawisz Local, poprzez ktÛry moøna przywrÛciÊ rÍczne sterowanie. Sk³adnia poleceÒ/komunikatÛw przekazywanych do/z zasilacza w†trybie automatycznym jest prosta i†dobrze opisana w†instrukcji obs³ugi. Polecenia s¹ przekazywane w†formacie znakowym. Napisanie odpowiedniego skryptu nie powinno sprawiaÊ wiÍkszego k³opotu. Polecenia mog¹ byÊ takøe wydawane rÍcznie z†klawiatury komputera, przy wykorzystaniu dowolnego programu terminalowego (choÊby okienkowego Hyperterminala). W†standardowym wyposaøeniu zasilacza znajduje siÍ bardzo prosta wersja takiego oprogramowania. Przyk³adowo, aby ustawiÊ napiÍcie wyjúciowe zasilacza na wartoúÊ 5†V, moøna przes³aÊ do niego poprzez interfejs szeregowy tekstow¹ wiadomoúÊ ìVS1=05.00î. Odczyt pr¹du nast¹pi po wys³aniu polecenia ì?AM1î, po ktÛrym zasilacz odpowie komunikatem np. AM1=0.250. Oznacza on, øe aktualnie z†zasilacza jest pobierany pr¹d 0,25 A.
Ocena subiektywna WydawaÊ by siÍ mog³o: zasilacz jak zasilacz. Co tu moøna wymyúliÊ ponad to, co juø zosta³o wymyúlone? Niby prawda, ale moje wraøenia po wykonanych testach s¹ bardzo pozytywne. Estetyczna obudowa nadaje zasilaczowi optycznej lekkoúci. Bardzo czytelny wyúwietlacz i†nienagannie pracuj¹ca klawiatura zapewniaj¹ ergonomiczn¹ pracÍ. Do zasilacza jest do³¹czona polska instrukcja oraz dyskietka z†jej elektroniczn¹ (angielsk¹) wersj¹. Najs³abszym punktem jest oprogramowanie uøytkowe (program terminalowy). W³aúciwie moøna by siÍ obyÊ bez niego. WiÍkszy poøytek by³by z†przyk³adowych skryptÛw zamieszczonych w†instrukcji. Nie s¹ to jednak bardzo istotne mankamenty. Nie zmniejszaj¹ pozytywnej oceny zasilacza. Jaros³aw Doliñski, AVT [email protected] Dodatkowe informacje Przyrz¹d do testów udostêpni³a redakcji firma Merserwis, tel. (22) 831-42-56, www.merserwis.com.pl.
75
P O D Z E S P O Ł Y
Uk³ady FPGA kojarz¹ siÍ - i†s³usznie - wy³¹cznie z†technik¹ cyfrow¹. Okazuje siÍ jednak, øe ideÍ FPGA moøna wykorzystaÊ takøe w†technice analogowej, czego przyk³adem s¹ uk³ady Field Programmable Analog Array opracowane i†produkowane przez firmÍ Anadigm.
AnadigmVortex Analogowe FPGA firmy Anadigm Pierwsz¹ generacjÍ uk³adÛw FPAA (sk³ada³a siÍ ona przez d³ugi czas z†jednego tylko typu uk³adu AN10E40) prezentowaliúmy na ³amach EP dwukrotnie, przede wszystkim jako ciekawostkÍ i†jednoczeúnie potencjaln¹ konkurencjÍ dla analogowych uk³adÛw programowalnych firmy Lattice (seria ispPAC). O†ile od pewnego czasu Lattice wyraünie przyhamowa³ prace nad swoimi programowalnymi uk³adami analogowymi, to Anadigm szybko rozwin¹³ gamÍ oferowanych produktÛw, wprowadzaj¹c do sprzedaøy m.in. uk³ady FPAA z†moøliwoúci¹ dynamicznej rekonfiguracji.
PierwowzÛr uk³adÛw FPAA wspomniany wczeúniej AN10E40 jest nadal produkowany, ale firma Anadigm szczegÛlnie promuje uk³ady nowej generacji, ktÛre s¹ nazwano AnadigmVortex.
FPAA drugiej generacji Najpowaøniejsz¹ modyfikacj¹ wprowadzon¹ do architektury uk³adÛw AnadigmVortex s¹ w†pe³ni rÛønicowe tory przetwarzania sygna³Ûw, dziÍki czemu odstÍp sygna³u od szumu wzrÛs³ z†65 dB do 80 dB (a nawet do 100 dB w†zakresie czÍstotliwoúci audio), a†odpornoúÊ na zak³Ûcenia skroúne wzros³a z†55 dB aø do 70 dB. WiÍksze moøli-
woúci oferuje uøytkownikowi takøe nowy konfigurowalny modu³ analogowy CAB (Configurable Analog Block - rys. 1), w†ktÛrym zintegrowano dwa wzmacniacze operacyjne z†rÛønicowymi wejúciami i†wyjúciami, szybki komparator analogowy, osiem podwÛjnych konfigurowalnych zespo³Ûw prze³¹czanych kondensatorÛw, a†takøe programowan¹ tablicÍ sta³ych wartoúci (podobn¹ do klasycznej look-up-table z†FPGA) - stosowan¹ do przechowywania wartoúci koryguj¹cych parametry toru przetwarzania sygna³u lub wartoúci prÛbek dla generatorÛw przebiegÛw arbitralnych, rejestr SAR (Succesive Approximation Register) i†programowany licznik. DziÍki unowoczeúnieniu wewnÍtrznej budowy uk³adÛw AnadigmVortex, moøliwe do uzyskania pasmo przenoszenia wynosi 0...2 MHz, przy maksymalnej gÛrnej czÍstotliwoúci przenoszenia uk³adu AN10E40 wynosz¹cej 250 kHz.
Jak dzia³aj¹ FPAA?
Rys. 1. Schemat blokowy układów ANx21E04
76
Rodzina AnadigmVortex sk³ada siÍ obecnie z†piÍciu uk³adÛw, przy czym s¹ to w†rzeczywistoúci trzy uk³ady istotnie rÛøni¹ce siÍ wewnÍtrzn¹ budow¹, a†dwa pozosta³e typy powsta³y dziÍki drobnym modyfikacjom wewnÍtrznej architektury ìduøychî wersji. W†wersjach uproszczonych usuniÍto 8-bitowy rejestr SAR, zmodyfikowano takøe analogowy multiplekser s³uø¹cy do prze³¹czania sygna³Ûw zewnÍtrznych (tab. 1). Uk³ady FPAA opieraj¹ swoje dzia³anie na kluczowanych kondensatorach, ktÛre spe³niaj¹ rolÍ rezystorÛw o†programowanej rezystancji. Kondensatory pracuj¹ w†uk³adzie czterokluczowym (rys. 2), a†úredni pr¹d ìprzep³ywaj¹cyî
Elektronika Praktyczna 10/2003
P O D Z E S P O Ł Y
Rys. 2. Budowa “rezystora” wyko− nanego na kluczowanym kon− densatorze
go rodzaju filtry o†programowanych parametrach i†charakterystykach, analogowe regulatory (³¹cznie z†pÍtlami PID), przesuwniki fazy, przetworniki A/C (uk³ady z†wbudowanymi rejestrami SAR) itp. Uøytkownicy maj¹ do dyspozycji w†zaleønoúci od wersji - 4†wejúcia rÛønicowe/2 wyjúcia rÛønicowe i†cztery modu³y CAB (uk³ady ANx20E04 oraz ANx21E04) lub 2/4 konfigurowalne wejúcia/wyjúcia, dwa wyjúcia rÛønicowe i†dwa modu³y CAB (uk³ad AN221E02).
przez kondensator jest zaleøny od czÍstotliwoúci kluczowania i†wzajemnego stosunku czasÛw otwarcia/zamkniÍcia kluczy w³¹czonych szeregowo i†rÛwnolegle z†kondenRekonfiguracja w†jÍzyku C satorem. ìRezystancjaî takiego eleFot. 3. Wygląd układów Uk³ady AnadigmVortex kaødoramentu w†uk³adach FPAA wynosi: AN220E04 zowo po w³¹czeniu zasilania trzeR=T/C ba skonfigurowaÊ, do czego zazwygdzie T†- okres kluczowania, C†nej pamiÍci konfiguracji w†chwili, czaj jest wykorzystywana zewnÍtpojemnoúÊ kondensatora. gdy jest zmieniana funkcjonalnoúÊ rzna pamiÍÊ nieulotna z†wyjúciem W†stosunku do klasycznych reuk³adu lub parametry zaimzystorÛw, zastosowane plementowanego w†nim tow†FPAA rozwi¹zanie dyRekonfiguracja dynamiczna... ru przetwarzania sygna³u. namiczne zapewnia lepsze ...to możliwość zmiany konfiguracji układu Przepisanie zawartoúci paparametry elementÛw: to(czyli realizowanej funkcji lub parametrów) miÍci ìcieniaî do pamiÍci lerancja wartoúci dochodzi podczas jego pracy. „Dynamiczność” konfiguracji wymaga zaleddo ±1%, rÛønice pomiÍrekonfiguracji oznacza, że w jej trakcie układ wie jednego cyklu wewnÍtdzy wartoúciami elemenpracuje normalnie. rznego zegara, podczas gdy tÛw nominalnie identyczwpisanie danych konfiguranych nie przekraczaj¹ szeregowym. To w†niej s¹ przechocyjnych do pamiÍci wymaga co ±0,1%, lepsza jest takøe stabilnoúÊ wywane dane zawieraj¹ce binarny najmniej 1,8 µs, a†moøe trwaÊ natemperaturowa. opis projektu implementowanego wet do 120 µs. Tak d³ugie czasy FPAA w†torze obrÛbki w†FPAA. rekonfiguracji praktycznie uniesygna³u Trzy z†piÍciu uk³adÛw Anadimoøliwiaj¹ wykorzystywanie jej do Uniwersalna budowa blokÛw CAB gmVortex s¹ przystosowane do kontekstowego konfigurowania pozwala za ich pomoc¹ wykonaÊ przeprowadzania dynamicznej reuk³adu. Wykorzystanie pamiÍci wszelkie operacje analogowe na obkonfiguracji (AN221E02, AN220E04 ìcieniaî problem ten ca³kowicie rabianych sygna³ach. Moøna wiÍc i†AN221E04), co jest moøliwe dziÍrozwi¹za³o. tworzyÊ w†prezentowanych uk³aki wbudowaniu w†ich struktury paDo rozwi¹zania pozostaje drugi dach sieci wzmacniaczy (takøe miÍci ìcieniî, oddzielnych dla problem - w†jaki sposÛb wpisywaÊ PGA, VCA i†podobnych), aktywne kaødego bloku CAB. S¹ w†nich do pamiÍci FPAA dane niezbÍdne ograniczniki napiÍcia (takøe o†proprzechowywane ìnastÍpneî konfido przeprowadzenia jego dynamiczgramowanej charakterystyce), rÛøneguracje, prze³adowywane do g³Ûwnej rekonfiguracji? Jest to, oczywiúTab. 1 Parametr Napiêcie zasilania [V] Pasmo/SNR Rodzaj wejæ/wyjæ Matryca CAB Zasoby CAB
Wyposa¿enie dodatkowe Rekonfiguracja
AN221E02
AN120E04
AN121E04
AN220E04
AN221E04
5 0...2 MHz/>70 dB Symetrczyne/ asymetryczne 2x1 2 wzmacniacze operacyjne, 8x podwójna matryca kluczowanych kondensatorów, 8-bitowy SAR, komparator LUT, programowany licznik, 8-bitowy przetwornik A/C Statyczna i dynamiczna
5 0...2 MHz/>70 dB Symetrczyne/ asymetryczne 2x2 2 wzmacniacze operacyjne, 8x podwójna matryca kluczowanych kondensatorów, 8-bitowy SAR, komparator LUT, programowany licznik
5 0...2 MHz/>70 dB Symetrczyne/ asymetryczne 2x2 2 wzmacniacze operacyjne, 8x podwójna matryca kluczowanych kondensatorów, 8-bitowy SAR, komparator LUT, programowany licznik, 8-bitowy przetwornik A/C Statyczna
5 0...2 MHz/>70 dB Symetrczyne/ asymetryczne 2x2 2 wzmacniacze operacyjne, 8x podwójna matryca kluczowanych kondensatorów, 8-bitowy SAR, komparator LUT, programowany licznik
5 0...2 MHz/>70 dB Symetrczyne/ asymetryczne 2x2 2 wzmacniacze operacyjne, 8x podwójna matryca kluczowanych kondensatorów, 8-bitowy SAR, komparator LUT, programowany licznik, 8-bitowy przetwornik A/C Statyczna i dynamiczna
Elektronika Praktyczna 10/2003
Statyczna
Statyczna i dynamiczna
77
P O D Z E S P O Ł Y
P O D Z E S P O Ł Y
Fot. 4. Zestaw startowy dla układów FPAA cie, zadanie dla zewnÍtrznego mikrokontrolera, ktÛry dane konfiguracyjne do uk³adu FPAA wprowadza przez 6-przewodowy interfejs szeregowy. Firma Anadigm przygotowa³a niebagatelne wsparcie dla projektantÛw aplikacji korzystaj¹cych z†dynamicznej rekonfiguracji: program narzÍdziowy AnadigmDesigner 2†potrafi automatycznie generowaÊ kod dla mikrokontrolera (zapisany w†jÍzyku C), ktÛry zawiera wszystkie dane i†procedury niezbÍdne do przeprowadzenia rekonfiguracji.
NarzÍdzie Podstawowym i†w†zasadzie jedynym, narzÍdziem s³uø¹cym do projektowania aplikacji na uk³adach FPAA jest windowsowy program AnadigmDesigner 2. Ma on intuicyjny interfejs uøytkownika i†pozwala ìbudowaÊî tor obrÛbki sygna³u za pomoc¹ mechanizmu Drag&Drop. Program wyposaøono w†kreator regulatorÛw PID (AnadigmPID) oraz AnadigmAssistant, ktÛry s³uøy do projektowania zaawansowanych analogowych systemÛw regulacyjnych oraz filtrÛw. Zalet¹ programu jest moøliwoúÊ symulowania dzia³ania zaprojektowanego uk³adu. Efektem dzia³ania AnadigmDesigner a jest m.in. plik binarny lub szesnastkowy zawieraj¹cy dane z†opisem konfiguracji (s³uøy
78
do zaprogramowania pamiÍci nieulotnej) lub wczeúniej wspomniany kod w†jÍzyku C. AnadigmDesigner 2†jest dostÍpny w†60-dniowej wersji ewaluacyjnej, o†moøliwoúciach identycznych z†wersj¹ komercyjn¹, dziÍki czemu Czytelnicy zainteresowani uk³adami FPAA mog¹ samodzielnie zapoznaÊ siÍ z†ich moøliwoúciami.
Podsumowanie Uk³ady AnadigmVortex s¹ interesuj¹ca alternatyw¹ dla klasycznych, zazwyczaj dyskretnych, rozwi¹zaÒ torÛw obrÛbki sygna³Ûw analogowych. Co istotne, uk³ady te s¹ dostÍpne w†sprzedaøy detalicznej, a†ich ceny - wbrew pozorom - s¹ doúÊ przystÍpne. Nie s¹ to przes³anki gwarantuj¹ce rynkowy sukces, ale wiele wskazuje na to, øe liczba aplikacji FPAA szybko siÍ zwiÍkszy. Piotr Zbysiñski, AVT [email protected] Dodatkowe informacje Dodatkowe informacje s¹ dostêpne pod adresami: - http://www.anadigm.com/Down_05_a.asp ewaluacyjna wersja programu AnadigmDesigner 2, - http://www.anadigm.com/products.asp szczegó³owe informacje o cenach i dostêpnoœci uk³adów AnadigmVortex (tak¿e sprzeda¿ detaliczna).
Elektronika Praktyczna 10/2003
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.
Niskonapięciowy wzmacniacz słuchawkowy Czasami trzeba s³uchaÊ muzyki przez†s³uchawki, aby nie przeszkadzaÊ innym. Wiele urz¹dzeÒ ma wyjúcie s³uchawkowe, ale s¹ takøe takie, ktÛre owego wyjúcia nie maj¹. WÛwczas najproúciej jest wyprowadziÊ na zewn¹trz urz¹dzenia sygna³y audio, montuj¹c w†nim wzmacniacz s³uchawkowy. Rekomendacje: dla wszystkich aplikacji, w†ktÛrych wystÍpuje potrzeba wzmocnienia sygna³Ûw audio o†niewielkiej mocy.
PrzerÛbka sprzÍtu audio nie zawsze jest moøliwa. W†takiej sytuacji przydatny bÍdzie prezentowany wzmacniacz - w†wielu urz¹dzeniach moøna bowiem wykorzystaÊ sygna³y wystÍpuj¹ce na wyjúciu liniowym, ktÛre zazwyczaj nie s¹ w†stanie bezpoúrednio wysterowaÊ s³uchawki. Prezentowany w†artykule wzmacniacz charakteryzuje siÍ niewielkimi wymiarami, a†co najwaøniejsze, moøe pracowaÊ juø przy napiÍciu zasilaj¹cym o†wartoúci 1,5 V. Nie trzeba doprowadzaÊ do wzmacniacza dodatkowego napiÍcia zasilaj¹cego, gdyø wystarczy tylko jeden popularny ìpaluszekî (R6). Wzmacniacz zosta³ zbudowany w†oparciu o†uk³ad TPA6102A2 firmy TI. Schemat elektryczny wzmacniacza pokazano na rys. 1 . D o z a p e w n i e n i a prawid³owej pracy wzmacniacza wystarczy tylko piÍÊ kondensatorÛw. Kondensatory C3 i†C4 filtruj¹ napiÍcie zasilaj¹ce. Wzmacniacz ma wewnÍtrznie ustawione wzmocnienie na 14 dB, dziÍki czemu wyeliminowano szeúÊ rezystorÛw zewnÍtrznych. Wysoki poziom na wejúciu SHD umoøliwia pracÍ wzmacniacza, a†niski jego przejúcie w†tryb shutdown. Na rys. 2 przedstawiono schemat montaøowy p³ytki drukowanej. Podczas montaøu naleøy zachowaÊ duø¹ ostroønoúÊ, zw³aszcza przy lutowaniu wzmacniacza U1, ktÛry jest w†obudowie SMD. Uk³ad ten naleøy - jako jedyny - zamontowaÊ od strony úcieøek, zwracaj¹c baczn¹
uwagÍ na kolejnoúÊ wyprowadzeÒ. Po zmontowaniu uk³adu i w³¹czeniu zasilania o napiÍciu z†zakresu 1,5...3,6 V,†wzmacniacz jest gotowy do pracy. Moøna go umieúciÊ w†jednej z†dostÍpnych na rynku obudÛw, w†ktÛrej powinno znaleüÊ siÍ miejsce takøe na baterie. Czy to bÍdzie jedna bateria czy dwie 1,5 V, zaleøy od tego, jaka moc bÍdzie satysfakcjonuj¹ca. Jeøeli wystarczy nie za g³oúny düwiÍk w†s³uchawkach, to z†powodzeniem moøna uøyÊ jednej baterii 1,5 V. W†przypadku, gdy lubi siÍ g³oúno s³uchaÊ muzyki, potrzebne moøe okazaÊ siÍ zastosowanie dwÛch baterii 1,5 V. Nie trzeba stosowaÊ wy³¹cznika zasilania, gdyø wystarczy pod³¹czyÊ prze³¹cznik do wejúcia SHD wzmacniacza. Marcin Wi¹zania, AVT [email protected]
Rys. 2
WYKAZ ELEMENTÓW Kondensatory C1, C2: 1µF stały C3: 47µF/6V C4: 100nF C5: 1µF/6V C6, C7: 100µF/6V Półprzewodniki U1: TPA6102A2 (SOP8) Różne Z1, Z2: goldpin 1x3 Z3: goldpin 1x2 Z4: gniazdo jack 3,5mm stereo do druku
P³ytka drukowana jest dostÍpna w AVT - oznaczenie AVT-1383.
Rys. 1
Elektronika Praktyczna 10/2003
Wzory p³ytek drukowanych w formacie PDF s¹ dostÍpne w Internecie pod adresem: http://www.ep.com.pl/?pdf/ pazdziernik 03.htm oraz na p³ycie CD-EP10/2003B w katalogu PCB.
79
M I N I P R O J E K T Y
Kasownik liczników w cartridge'ach drukarek atramentowych firmy Epson Tym razem nietypowo: w†miniprojektowym artykule wyj¹tkowo prezentujemy nie uk³ad lecz... program. Sta³o siÍ tak z†dwÛch powodÛw: jego funkcjonalnoúÊ i†moøliwoúci kwalifikuj¹ go do grona prawdziwych programatorÛw, a†przy okazji zapowiadamy za miesi¹c przedstawimy w†EP projekt podobny funkcjonalnie, lecz nieco ìobudowanyî sprzÍtowo. Rekomendacje: polecamy uøytkownikom drukarek atramentowych firmy Epson, uczulonym na koszty ich eksploatacji.
Rys. 1
Rys. 2
80
Ceny drukarek dawno juø przebi³y (w dÛ³) granice "przyzwoitoúci" i†nikogo nie dziwi juø stoj¹ca na pÛ³ce w†supermarkecie ìkolorowaî drukarka kosztuj¹ca 250 z³. Czyøby producenci drukarek byli filantropami, inwestuj¹cymi z†w³asnej kieszeni w†sprzÍt wykorzystywany przez nas w†domach? Oczywiúcie nie. Jakkolwiek ceny drukarek s¹ rzeczywiúcie niskie, to ich eksploatacja okazuje siÍ w†praktyce zatrwaøaj¹co kosztowna. Pojemniki z†atramentami zawieraj¹ go coraz mniej, a†ich cena roúnie bardzo szybko. Przez jakiú czas lekarstwem na takie praktyki producentÛw drukarek by³y zestawy do nape³niania pojemnikÛw za pomoc¹ strzykawek, ale doúÊ szybko wprowadzono utrudnienia dla takich praktyk: - piezoelektryczne g³owice drukuj¹ce mia³y trwa³oúÊ odpowiadaj¹c¹ pojemnoúci pojemnika na atrament, w†zwi¹zku z†czym po nape³nieniu go atramentem jakoúÊ druku szybko siÍ pogarsza³a, - w†nowszych rozwi¹zaniach pojemniki wyposaøono w†elektroniczne ìkluczeî, a†z†czasem systemy licznikowe wykonane na miniaturowych mikrokontrolerach (m.in. na popularyzowanym przez EP Nitronie firmy Motorola). Liczniki te (nazywane w†nomenklaturze producenta jako CSIC) kontroluj¹ poziom atramentu i†liczbÍ wydrukowanych znakÛw, a†po wykryciu koÒca nominalnego ìøyciaî cartridge'a blokuj¹ jego pracÍ. W†takiej sytuacji, takøe po uzupe³nieniu atramentu przez uøytkownika, drukarka bÍdzie traktowa³a cartridge jako pusty. Z pomoc¹ uøytkownikom drukarek wyposaøonych w†tak zaawansowane systemy weryfikacji przysz³a firma SSC, ktÛra opracowa³a i†udostÍpnia bezp³atnie program o†nazwie SSC Service Utility. Radzi on sobie bez trudu z†uk³adami CSIC w†cartridge'ach do drukarek firmy Epson i†co niezwykle istotne nie wymaga budowania Rys. 3
jakiegokolwiek interfejsu sprzÍtowego! Wszystkie operacje odbywaj¹ siÍ poprzez standardowy interfejs drukarkowy (nie ma znaczenia czy jest to Centronics, czy USB). Prezentowany program naleøy pobraÊ ze strony internetowej producenta (http:// www.ssclg.com/download/ sscserve.exe) i†zainstalowaʆstandardowo dla systemu operacyjnego Windows (wymagany restart komputera!). Na rys. 1 pokazano wygl¹d g³Ûwnego okna programu, w†ktÛrym prezentowane s¹ stany atramentÛw w†cartrid ge'ach. Na podobnie wygl¹daj¹cym rys. 2 s¹ przedstawiane liczby wystrzelonych przez g³owicÍ kropel atramentu, co wed³ug autorÛw programu daje w†niektÛrych sytuacjach lepsz¹ orientacjÍ co do rzeczywistego poziomu atramentu. Po zamkniÍciu g³Ûwnego okna, program jest dostÍpny w†windowsowym tray'u (rys. 3), a†dostÍp do poszczegÛlnych funkcji jest moøliwy po klikniÍciu na†ikonie prawym przyciskiem myszki. DostÍpne opcje widaÊ na rys. 4, a†ich szczegÛ³owy opis jest dostÍpny w†angielskojÍzycznym helpie. ZwrÛcÍ tylko uwagÍ, øe oprÛcz wielu funkcji u³atwiaj¹cych nape³nianie cartridge'y, program wyposaøono takøe w†funkcje serwisowe, jak np. czyszczenie g³owic (wielostopniowe) czy umoøliwienie wymiany cartridge'a podczas pracy drukarki bez koniecznoúci jej zerowania. Uwaga! Przed rozpoczÍciem pracy z†programem naleøy koniecznie zapoznaÊ siÍ z†uwagami znajduj¹cymi siÍ w†pomocy programu. Niew³aúciwe operacje mog¹ spowodowaÊ uszkodzenie g³owicy drukuj¹cej.
Rys. 4
Dzia³anie programu przetestowaliúmy na drukarce Epson Stylus Color 680USB. Spisuje siÍ on bez zarzutu i†moim zdaniem - ogromn¹ zalet¹ programu jest brak koniecznoúci stosowania jakiegokolwiek interfejsu sprzÍtowego, co ma takøe wadÍ: trudno wykorzystaÊ ten program w†celach us³ugowych (np. øeby u³atwiÊ uzupe³nienie atramentu znajomemu, ktÛry ma inn¹ drukarkÍ atramentow¹). Rozwi¹zanie tego problemu przedstawimy za miesi¹c. Andrzej Gawryluk, AVT Dodatkowe informacje s¹ dostÍpne w†Internecie pod adresami: http://www.ssclg.com/epsone.shtml i†http:// www.ssclg.com/download/ sscserve.exe. Programprezentowanyw artykule obs³ugujedrukarki: Epson Stylus Color 400/440/ 480LPT/480SXU/580/600/640/ 660/670/680/740/760/800/850/ 880/900/980/1160/1520/3000, a tak¿e C20/40, C41/42/43 (brak mo¿liwoci wyzerowania liczników atramentów), C60, C61/62/70/80/ 82 (brak mo¿liwoci wyzerowania liczników atramentów), Epson Stylus Photo, Epson Stylus Photo EX, Epson Stylus Photo 700/IP100, Epson Stylus Photo 750/PM770C, Epson Stylus Photo 780/ 790/810/820/825, Epson Stylus Photo 830 (brak mo¿liwoci wyzerowania liczników atramentów), Epson Stylus Photo 870/PM-875DC, Epson Stylus Photo PM-890C/890/895/900/950, Epson Stylus Photo 1200/1270/ 1280/1290/2000P/2100/2200, Epson Stylus Pro 5000/PM-5000C. Aktualne informacje o typach obs³ugiwanych drukarek s¹ dostêpne pod adresem: http:// www.ssclg.com/epsons.shtml www.ssclg.com/epsons.shtml.
Elektronika Praktyczna 10/2003
K U R S
Pamięci nieulotne w systemach mikroprocesorowych, część 1 Jedn¹ z†najbardziej efektywnych i†jednoczeúnie tanich metod przechowywania danych jest wykorzystanie pamiÍci RAM mikrokontrolera. Ma to jedn¹, waøn¹ zaletÍ: w†przypadku awarii napiÍcia zasilaj¹cego dane juø znajduj¹ siÍ tam, gdzie bÍd¹ potrzebne po przywrÛceniu ìnormalnychî warunkÛw pracy. Nie trzeba zatem wykonywaÊ øadnych dodatkowych krokÛw w†celu ich przechowania. Oczywiúcie pozostaje kwestia kontroli, czy zapamiÍtane dane nie zosta³y uszkodzone, ale nie zmienia to cech, o†ktÛrych by³a mowa wczeúniej. To od strony programowej. A†jak wygl¹da to samo zagadnienie od strony sprzÍtowej? Niestety, niezbÍdne s¹ pewne dodatkowe po³¹czenia i†elementy zewnÍtrzne. Jak zapewne pamiÍtamy, pamiÍÊ DRAM jest zbudowana z wielu miniaturowych kondensatorÛw, ktÛre przechowuj¹ ³adunek elektryczny nios¹cy informacjÍ o†stanie bitu. PamiÍci DRAM wymagaj¹ odúwieøania zawartoúci, czyli okresowego do³adowywania kondensatorÛw. PamiÍÊ SRAM nie wymaga odúwieøania (a w†tak¹ zazwyczaj s¹ wyposaøane mikrokontrolery) i†moøe przechowywaÊ dane dowolnie d³ugi czas, ale pod warunkiem zapewnienia zasilania. RolÍ ürÛd³a zasilaj¹cego moøe pe³niÊ kondensator elektrolityczny o†bardzo duøej pojemnoúci, akumulator lub bateria. Wszystko zaleøy od wymagaÒ aplikacji. W†swoich projektach czÍsto wykorzystujÍ bateriÍ litow¹ o†napiÍciu 3†V. Zasilanie mikrokontrolera wy³¹cznie z†baterii jest raczej nieefektywne, toteø stosuje siÍ automatyczne prze³¹czniki zasilania prze³¹czaj¹ce zasilanie mikrokontrolera pomiÍdzy ürÛd³em stacjonarnym (np. zasilaczem) a†bateri¹ czy akumulatorem. Prze³¹cznik moøna zbudowaÊ w†oparciu o†specjalizowany uk³ad scalony lub za pomo-
Konstruuj¹c urz¹dzenia z†mikrokontrolerami czÍsto stajemy przed koniecznoúci¹ zapewnienia przechowywania danych takøe po wy³¹czeniu lub zaniku zasilania. £atwo jest, jeúli s¹ to sta³e jak: napisy menu (dla przyk³adu w†rÛønych jÍzykach), obrazy, sta³e parametry nastaw. Gorzej, gdy musimy przechowaÊ zmienne. Jeszcze trudniej, gdy musz¹ one byÊ zapamiÍtane rÛwnieø w†przypadku awarii napiÍcia zasilania. c¹ diod krzemowych lub lepiej - germanowych. Przyk³adami fabrycznych rozwi¹zaÒ w†formie uk³adÛw scalonych mog¹ byÊ MAX6326, -75, -81. Inne, bardziej skomplikowane, wyposaøone s¹ rÛwnieø w†funkcjÍ nadzoru napiÍcia zasilania MAX6365...68, wejúcie sygna³u zewnÍtrznego reset (MAX6366) i†uk³ad watchdog (MAX6368). Przyk³ady ich zastosowaÒ, zaczerpniÍte z†not aplikacyjnych producenta, umieszczono na rys. 1 i†2. Na rys. 3 przedstawiono schemat najprostszego prze³¹cznika diodowego. Oczywiúcie, oprÛcz przytoczonych, moøna zaproponowaÊ rÛwnieø wiele innych rozwi¹zaÒ sprzÍtowych. Opracowuj¹c konstrukcje w³asnych prze³¹cznikÛw, zw³aszcza w†po³¹czeniu z†uk³adem nadzoru napiÍcia zasilania, trzeba mieÊ na uwadze kilka istotnych czynnikÛw, miÍdzy innymi: - zanik napiÍcia zasilaj¹cego powinien zostaÊ wykryty wczeúniej niø pojawi siÍ sygna³ reset dla mikrokontrolera, - napiÍcie zasilaj¹ce z†baterii musi byÊ prze³¹czone w†sposÛb ìpewnyî, eliminuj¹cy wahania napiÍcia mog¹ce zak³ÛciÊ pracÍ mikrokontrolera,
Rys. 1. Przykład zastosowania układu MAX6326 do przełączania źródeł napięcia zasilającego
Elektronika Praktyczna 10/2003
- spadek napiÍcia na diodzie krzemowej spolaryzowanej w†kierunku przewodzenia to oko³o 0,6 V, natomiast na diodzie germanowej 0,2 V; wartoúÊ t¹ naleøy odj¹Ê od napiÍcia baterii zasilaj¹cej i†ta rÛønica zasila mikrokontroler, - pr¹d pobierany przez pamiÍÊ CMOS lub mikrokontroler w†stanie IDLE jest tak ma³y, øe rÛwnieø detekcyjne diody germanowe z†powodzeniem mog¹ spe³niaÊ rolÍ prze³¹cznika napiÍcia zasilaj¹cego; odnosz¹c tÍ uwagÍ do rys. 3: dioda D2 moøe byÊ diod¹ germanow¹. Uk³ady mikrokontrolerÛw wprowadzone w†tryb IDLE pobieraj¹ znikom¹ iloúÊ energii i†zachowuj¹ zawartoúÊ pamiÍci RAM. Typowo pr¹d potrzebny do zasilania w†trybie IDLE ma wartoúÊ mniejsz¹ niø 100 µA. W†sytuacji jak opisywana wyøej, gdy do przechowywa-
Rys. 2. Przykład użycia układu MAX6368 do przełączania źródła napięcia zasilającego oraz generowania sygnału reset dla mikrokontrolera
85
K U R S List. 1. Przykład procedury obsługi przerwania wprowadzającej mikrokontroler w stan obniżonego poboru energii IDLE ;********** PRZERWANIE ZEWN.INT1 **************** IrqExt1: clr EA mov P1,INIT_FOR_P1 mov P2,INIT_FOR_P2 mov P3,INIT_FOR_P3 orl PCON,#3 ;wyłączenie mikrokontrolera, przechowywanie zawartości RAM ajmp $ ;ponowne załączenie po sygnale RESET (PD=IDL=1 -> PD)
Rys. 3. Budowa taniego, diodowego przełącznika napięcia zasilania nia danych uøywana jest wewnÍtrzna pamiÍÊ CMOS, uk³ad mikrokontrolera musi byÊ zasilany z†baterii a†zanik napiÍcia zasilaj¹cego powinien byÊ sygnalizowany w†celu wprowadzenia mikrokontrolera w†stan obniøonego poboru energii (IDLE). Abstrahuj¹c od rozwi¹zaÒ sprzÍtowych, mikrokontroler naleøy wyposaøyÊ w†tak zwane wejúcie pomiarowe. Oczywiúcie dla wiÍkszoúci zastosowaÒ wystarczaj¹ce jest wejúcie cyfrowe pozwalaj¹ce stwierdziÊ obecnoúÊ stanu logicznego wysokiego lub niskiego przy³oøonego do wyprowadzenia. CzÍsto do sygnalizacji zaniku napiÍcia wykorzystuje siÍ wejúcie zewnÍtrznego przerwania. Dla mikrokontrolera z†rodziny 8051, wejúcia te oznaczane s¹ jako INT0 i†INT1. Doskonale nadaj¹ siÍ one do takiej sygnalizacji, poniewaø kaøde z†wejúÊ posiada przerzutnik Schmitta pozwalaj¹cy jednoznacznie okreúliÊ stan logiczny. Dodatkowo poziom napiÍcia (lub jego zmianÍ) na wejúciu ³atwo jest powi¹zaÊ z†odpowiadaj¹cym mu fragmentem programu. Fragment ten moøe zawieraÊ na przyk³ad ustalenie stanu portÛw wyjúciowych oraz wprowadzenie mikrokontrolera w†tryb obniøonego poboru energii. Przyk³ad takiej funkcji obs³ugi przerwania zewnÍtrznego przedstawiono na list. 1. W†tym miejscu waøna uwaga: czÍsto programista wykorzystuj¹c wejúcie przerwania zewnÍtrznego w†sposÛb taki, jak opisa³em wyøej (sam rÛwnieø pope³nia³em taki b³¹d) ustawia bit powoduj¹cy wygenerowanie sygna³u przerwania w†momencie pojawienia siÍ opadaj¹cego zbocza sygna³u na wejúciu INTx. Funkcja moøe zawieraÊ rozkaz wprowadzenia mikrokontrolera w†tryb IDLE w†celu obniøenia poboru energii z†baterii. PÛüniej pojawia siÍ sygna³ reset generowany przez uk³ad nadzorcy napiÍcia zasilaj¹cego. Jeúli uk³ad ten nie jest zasilany z†baterii (a najczÍúciej w†celu oszczÍdzania energii tak jest), to aktywny reset zaniknie wraz z†zanikiem napiÍcia zasilania ca³ego obwodu poza mikrokontrolerem. W†takiej sytuacji, zasilany energi¹ z†baterii mikrokontroler, zaczyna wykonywaÊ program pocz¹wszy od adresu 0, poniewaø aktywny sygna³ reset wyprowadzi³ go z†trybu IDLE a†opadaj¹ce zbocze sygna³u na wejúciu przerwania nie pojawi aø do momen-
86
List. 2. Przykład realizacji funkcji zapisu/odczytu danych w EEPROM ;***************** OBSŁUGA DANYCH PAMIĘTANYCH W EEPROM *********************** ;Testowanie bitu gotowości pamięci EEPROM po operacji zapisu EE_BusyTest: mov A,WMCON anl A,#00000010B jz EE_BusyTest ret ;Wyłączenie EEPROM EE_Disable: anl WMCON,#11100111B ret ;Zapamiętanie bajtu danych w pamięci EEPROM,16-bitowy adres w DPTR, bajt w ACC ;po odczytaniu bajtu wartość DPTR jest zwiększana o 1 EE_SaveByte: orl WMCON,#00011000B ;Włączenie trybu zapisu movx @DPTR,A ;Zapis bajtu call EE_BusyTest ;Test zakończenia operacji inc DPTR ret ;Odczyt bajtu danych z pamięci EEPROM,16-bitowy adres w DPTR, bajt zwracany w ACC ;po odczytaniu bajtu wartość DPTR jest zwiększana o 1 EE_ReadByte: anl WMCON,#11100111B orl WMCON,#00001000B ;Tryb odczytu movx A,@DPTR ;Odczyt bajtu inc DPTR ret
tu za³¹czenia i†ponownego wy³¹czenia zasilania. A†my dziwimy siÍ, gdzie podziewa siÍ energia z†baterii, ktÛra powinna wystarczyÊ na co najmniej pÛ³ roku pracy... OmÛwiony wyøej problem moøna rozwi¹zaÊ na szereg rÛønych sposobÛw, zarÛwno programowo jak i†sprzÍtowo. Najprostszym jest programowe testowanie wejúcia pomiarowego lub ustawienie przerwaÒ aktywowanych poziomem niskim sygna³u a†nie jego
zboczem. Oczywiúcie zarÛwno czÍúÊ sprzÍtowa jak i†programowa musz¹ ze sob¹ wspÛ³graÊ w†celu osi¹gniÍcia jak najlepszego efektu. PamiÍtajmy, øe mimo wprowadzenie w†stan IDLE mikrokontroler nadal jest zasilany! W†przypadku niektÛrych aplikacji waønym moøe byÊ rÛwnieø w³aúciwe ustawienie stanÛw portÛw wejúciowych i†wyjúciowych. Praktyka pokazuje, øe mimo iø porty nie powinny byÊ aktywne i†dopuszczaÊ do ìwyciekÛwî energii
List. 3. Przykład użycia funkcji do obsługi pamięci EEPROM z list. 2 ;Zapamiętanie parametrów ustawionych po kalibracji EE_SaveParams: mov DPTR,#EE_PLCSTADDR mov A,PLCSTATE ;<- nastawy maszyny call EE_SaveByte mov A,PRNR ;<- numer aktywnego programu call EE_SaveByte mov A,CALSTEPS call EE_SaveByte mov A,CALSTEPS+1 ;<- liczba kroków kalibracji call EE_SaveByte mov A,CALSTEPS+2 call EE_SaveByte call EE_Disable ret ;Odczyt parametrów systemowych EE_RestParams: mov DPTR,#EE_PLCSTADDR call EE_ReadByte mov PLCSTATE,A call EE_ReadByte cjne A,#0FFH,EE_RestP1 ;<- numer aktywnego programu clr A mov PRNR,A call EE_ReadByte mov CALSTEPS,A call EE_ReadByte mov CALSTEPS+1,A ;<- liczba kroków kalibracji call EE_ReadByte mov CALSTEPS+2,A call EE_ReadProg ;<- odczyt ostatniego programu ret
Elektronika Praktyczna 10/2003
K U R S
Rys. 4. Również układ popularnego RTC zawiera 240 bajtów pamięci RAM, którą można wykorzystać do przechowywania danych zasilaj¹cej, to bywa z†tym rÛønie w†przypadku rÛønych mikrokontrolerÛw od rÛønych producentÛw. Innym zagadnieniem jest w³aúciwa inicjalizacja zmiennych znajduj¹cych siÍ w†pamiÍci RAM. Naleøy bardzo uwaøaÊ na wszelkiego rodzaju polecenia testuj¹ce stan RAM. CzÍsto dzia³aj¹ one w†taki sposÛb, øe zapisuj¹ do i†odczytuj¹ z†pamiÍci pewn¹ wartoúÊ. Dobrze jest w†pamiÍci mikrokontrolera wydzieliÊ dla tego celu pewien obszar a†zawarte w†nim dane opatrzyÊ dodatkowo sum¹ kontroln¹.
Inn¹ moøliwoúÊ tworzy dodanie zewnÍtrznej pamiÍci CMOS RAM. Najlepiej, gdy jest to pamiÍÊ z†interfejsem szeregowym SPI lub I2C. WÛwczas ca³y ciÍøar zwi¹zany z†obs³ug¹ jej spoczywa na oprogramowaniu. Nie jest konieczne projektowanie i†budowa skomplikowanych dekoderÛw adresu. Jednak w†przypadku uøycia pamiÍci zewnÍtrznej, naleøy dobrze przemyúleÊ zarÛwno budowÍ sprzÍtow¹ jak i†sposÛb funkcjonowania programu. O†ile bowiem w†przypadku uøycia wewnÍtrznego RAM mikrokontrolera do jego
List. 4. Funkcje zapisu i odczytu pamięci EEPROM w języku AVR asembler wraz z przykładami ich użycia .def .def
eedata = r23 eeaddr = r24
;bajt do zapisu w eeprom ;adres zapisu bajtu
;--------------------------------------;obsługa pamięci eeprom ;--------------------------------------;zapis bajtu do EEPROM ;adres bajtu w eeaddr, bajt w eedata ee_write: sbic eecr,EEWE ;czekaj na EEWE = 0 rjmp ee_write out eear,eeaddr ;podaj adres danych w eeprom out eedr,eedata ;zapisz dane sbi eecr,EEMWE ;ustaw bit „master ee write enable” nop sbi eecr,EEWE ;ustaw bit „ee write enable” ret ;odczyt bajtu z EEPROM ;adres bajtu w eeaddr, bajt zwracany w eedata ee_read: sbic eecr,EEWE ;czekaj na EEWE = 0 rjmp ee_read out eear,eeaddr ;podaj adres w eeprom sbi eecr,EERE ;ustaw bit „ee read enable” in eedata,eedr ;czytaj dane ret ;zapis danych z bufora w pamięci RAM do EEPROM ;spodziewane: adres danych w eeaddr, koniec oznaczony jako EOD ee_write_buf: ldi yl,LOW(buffer) clr yh ee_write_loop: ld eedata,y ;sbuf = (Y) cpi eedata,EOD ;if (eedata != EOD) goto ee_write_next brne ee_write_next rcall ee_write ;zapisz EOD do eeprom ret ee_write_next: rcall ee_write ;zapisz bajt do eeprom inc eeaddr ;eeadr = eeaddr+1 inc yl ;Y = Y + 1 rjmp ee_write_loop ;goto ee_write_loop ;odczyt danych z EEPROM do bufora w pamięci RAM ;adres danych w eeaddr, koniec oznaczony jako EOD, ;adres miejsca,do którego przesyłane są dane w rej.Y ee_read2buf: rcall ee_read cpi eedata,EOD ;if (eedata != EOD) goto ee_read_next brne ee_read_next st y,eedata ;(Y) += EOD ret ee_read_next: st y,eedata inc yl ;Y += 1 inc eeaddr ;eeadr += 1 rjmp ee_read2buf ret
Elektronika Praktyczna 10/2003
zawartoúci moøna uzyskaÊ dostÍp juø po wykonaniu pojedynczego rozkazu, o†tyle dostÍp do danych poprzez interfejs SPI czy I2C wymaga wykonania kilku lub kilkunastu rozkazÛw. Przyk³ad pod³¹czenia zasilania do uk³adu zewnÍtrznej pamiÍci np. nastaw przedstawiony jest na rys. 4. Wykorzystano tu popularny uk³ad zegara czasu rzeczywistego (RTC) PCF8583 zawieraj¹cy w†swojej strukturze 240 bajtÛw pamiÍci RAM do wykorzystania przez uøytkownika. W†uk³adzie pokazanym na rys. 4†wykorzystano prosty prze³¹cznik diodowy. Po zaniku g³Ûwnego napiÍcia zasilaj¹cego +5 V, samoczynnie za³¹cza on zasilanie PCF8583 z†baterii litowej 3†V. A†co w†takiej sytuacji z†zasilaniem mikrokontrolera? Jeúli zewnÍtrzna pamiÍÊ RAM jest jedynie pamiÍci¹ nastaw, moøna od³¹czyÊ zasilanie awaryjne od mikrokontrolera. Jednak w†przypadku, gdy zawiera rÛwnieø zmienne, naleøy wyposaøyÊ mikrokontroler w†wejúcie pomiarowe i†wykonaÊ pewien fragment programu w†celu zapamiÍtania zmiennych, po zaniku g³Ûwnego napiÍcia zasilaj¹cego. Gdy bÍdzie on sygnalizowany wystarczaj¹co szybko a†w†obwodzie zasilania mikrokontrolera umieúcimy kondensator elektrolityczny o†duøej pojemnoúci, nie jest konieczne doprowadzanie awaryjnego napiÍcia zasilania. Mikrokontroler ìzd¹øyî przes³aÊ zmienne. Oczywiúcie nic nie stoi na przeszkodzie a†nawet jest to rozwi¹zanie bezpieczniejsze, aby mikrokontroler by³ pod³¹czony do zasilania awaryjnego wspÛlnie z†uk³adem pamiÍci. Moøe on np. po wykonaniu procedury awaryjnej przechodziÊ do trybu wy³¹czenia - POWER DOWN lub oszczÍdnego - IDLE w†celu wyd³uøenia øywotnoúci baterii. Rozwi¹zania z†zastosowaniem pamiÍci zewnÍtrznych SRAM moøna mnoøyÊ w†nieskoÒczonoúÊ. CzÍsto do zasilania zamiast baterii stosuje siÍ akumulator wyposaøony w†uk³ad ³adowania. Moøna uøywaÊ pamiÍci rÛwnoleg³ych lub szeregowych. Moøna stosowaÊ uk³ady pamiÍci wykonane w†technologiach Flash i†EEPROM. Wydaj¹ siÍ bardzo dobr¹ alternatyw¹ w†porÛwnaniu z†wszelkimi odmianami RAM. Nie wymagaj¹ bowiem uøycia øadnych dodatkowych ürÛde³ zasilania. Ponadto oferta handlowa zwi¹zana zw³aszcza z†pamiÍciami Flash jest bardzo szeroka. SpotkaÊ moøna pamiÍci wykonane przy uøyciu rÛønych technologii o†pojemnoúciach od kilkuset bitÛw do 2 a†nawet i†wiÍcej Mb. Dla przeciÍtnych zastosowaÒ czÍsto wystarczaj¹c¹ jest pamiÍÊ EEPROM wbudowana w†strukturÍ mikrokontrolera. Ich wad¹ w†porÛwnaniu z†RAM jest d³ugi czas konieczny na zapamiÍtanie danych. Jacek Bogusz, AVT [email protected]
87
K U R S
Podstawy projektowania systemów mikroprocesorowych, część 8 Jednym z†podstawowych elementÛw interfejsu uøytkownika w†systemach cyfrowych jest klawiatura. W†tej czÍúci cyklu pokazujemy, w†jaki sposÛb do³¹czyÊ i†jak obs³ugiwaÊ lokalne klawiatury o†stykach do³¹czanych bezpoúrednio do portÛw mikrokontrolera.
Obs³uga klawiatury Chociaø klawiatura bez w¹tpienia naleøy do grupy omÛwionych w†poprzednim odcinku elementÛw stykowych, to jednak sposÛb obs³ugi duøej liczby przyciskÛw jest zagadnieniem nieco bardziej skomplikowanym (choÊ przy niewielkiej liczbie przyciskÛw sposÛb obs³ugi nie rÛøni siÍ od obs³ugi pojedynczych elementÛw stykowych). Klawiatura jest jednym z†najpopularniejszych urz¹dzeÒ wejúciowych umoøliwiaj¹cych komunikacjÍ uøytkownika z†systemem mikroprocesorowym i†wp³ywanie na sposÛb jego dzia³ania. W†zaleønoúci od funkcji pe³nionej przez dany system klawiatura moøe osi¹gaÊ rozmiary uk³adu kilkunastu czy kilkudziesiÍciu klawiszy. W†zaleønoúci od liczby klawiszy zmienia siÍ takøe sposÛb obs³ugi programowej, poczynaj¹c od bezpoúredniego odczytu stanu portu, a†koÒcz¹c na rozbudowanych procedurach obs³ugi klawia-
Rys. 27
88
tur matrycowych. Obecnie w†uk³adach potrzebuj¹cych duøej liczby klawiszy coraz popularniejsze staje siÍ wykorzystanie gotowych klawiatur z†komputerÛw PC. Jeøeli w†projektowanym systemie nie jest potrzebna duøa liczba klawiszy, wykorzystuje siÍ bezpoúrednie po³¹czenie mikrowy³¹cznikÛw tworz¹cych klawiaturÍ do linii portu mikrokontrolera. SytuacjÍ tak¹ przedstawiono na rys. 27. Po³¹czenie wykonano bezpoúrednio, bez øadnych dodatkowych rezystorÛw podci¹gaj¹cych (oczywiúcie, o†ile wykorzystywane linie posiadaj¹ rezystory wewnÍtrzne), gdyø umieszczona zazwyczaj w†pobliøu mikrokontrolera klawiatura nie jest naraøona na zak³Ûcenia oraz nie ma koniecznoúci stosowania pr¹dÛw gwarantuj¹cych samooczyszczanie stykÛw (nastÍpuje ono w†sposÛb mechaniczny, wskutek dzia³ania znacznej si³y nacisku palca). Prostota uk³adowa tego rozwi¹zania
wp³ywa rÛwnieø na prostotÍ oprogramowania. Detekcja naciúniÍcia przycisku odbywa siÍ na zasadzie odczytu stanu konkretnej linii portu - ì0î oznacza klawisz wciúniÍty. UwzglÍdniaj¹c zjawiska ³¹czeniowe (drgania stykÛw) obs³uga programowa moøe byÊ identyczna jak omÛwiona wczeúniej dla innych elementÛw stykowych. Naleøy jedynie zwielokrotniÊ liczbÍ pomocniczych zmiennych odpowiadaj¹cych liczbie stosowanych klawiszy. Wad¹ prezentowanego uk³adu jest koniecznoúÊ zarezerwowania jednej linii portu mikrokontrolera dla jednego klawisza i†zwi¹zane z†tym trudnoúci wygospodarowania linii sygna³owych przy wiÍkszej liczbie klawiszy i†innych urz¹dzeÒ korzystaj¹cych z†portÛw mikrokontrolera. Na rys. 28 przedstawiono nieco bardziej ekonomiczne rozwi¹zanie. Linie jednego portu s¹ wykorzystywane przez dwa urz¹dzenia - w†tym przypadku jednym urz¹-
Rys. 28
Elektronika Praktyczna 10/2003
K U R S List. 10. Procedura obługująca prostą klawiaturę pokazaną na rys. 28 ;KLAWISZE - zmienna bajtowa przechowująca stan klawiszy (1 - naciśnięty) ;BUFOR - zmienna bajtowa przechowująca daną do wysłania do zatrzasku ;sekwencje napisano jako podprogramy wywoływane rozkazem LCALL KLAWIATURA: MOV P1,#0FFH CLR P3.0
;ustawienie linii portu P1 ;zerowanie linii P3.0
MOV A,P1 CPL A
;odczyt stanu linii ;negacja bitów (aby uzyskać 1 dla naciśniętego klawisza)
MOV KLAWISZE,A
;zapamiętanie stanu klawiatury
SETB P3.0
;ustawienie linii P3.0 (aby naciskanie klawiszy nie ;wpływało na stan linii portu P1
RET
;powrót do programu głównego
ZATRZASK: MOV P1,BUFOR
;przesłanie danych do portu P1
SETB P3.7 CLR P3.7
;generacja sygnału strobującego ;(należy pamiętać o wyzerowaniu linii P3.7 po resecie ;mikrokontrolera - w części programu inicjującej ;zmienne i rejestry)
RET
;powrót do programu głównego
dzeniem jest klawiatura, natomiast drugim uk³ad zatrzaskowy (latch) 74LS573 (moøe to byÊ takøe dowolny inny uk³ad posiadaj¹cy wejúcie zezwalaj¹co/strobuj¹ce i†pozostaj¹cy obojÍtny na stan linii, gdy wejúcie to jest nieaktywne). Przedstawiony schemat uwzglÍdnia jedynie klawiaturÍ czteroprzyciskow¹ (dla zachowania czytelnoúci rysunku), ale nic nie stoi na przeszkodzie, aby pod³¹czona klawiatura wykorzystywa³a wszystkie osiem linii portu. Uk³ad ten dzia³a nastÍpuj¹co: jeøeli chcemy przesy³aÊ dane do rejestru zatrzaskowego, wÛwczas konieczne jest ustawienie linii P3.0 w†stan wysoki. NastÍpnie wysy³amy do portu P1 bajt przeznaczony do przes³ania, a†potem generujemy sygna³ strobuj¹cy (impuls): ustawiamy i†zerujemy liniÍ P3.7 - zbocze opadaj¹ce powoduje zatrzaúniÍcie informacji w†rejestrze i†pamiÍtanie jej gdy P3.7=0. Gdy chcemy obs³uøyÊ klawiaturÍ, naleøy wpisaÊ do portu P1 wartoúÊ 0xFF (ustawienie wszystkich linii w†stan wysoki w†celu wykorzystania ich jako wejúcia), a†nastÍpnie wyzerowaÊ liniÍ P3.0. Jeøeli ktÛryú z†klawiszy zostanie wciúniÍty, to odpowiednia linia portu P1 zostanie wprowadzona w†stan niski (wskutek po³¹czenia z†lini¹ P3.0 pozostaj¹c¹ w†stanie niskim). Odczytuj¹c stan portu P1 odczytujemy zatem stany klawiszy (ì0î klawisz wciúniÍty) - po dokonaniu odczytu naleøy z†powrotem ustawiÊ liniÍ P3.0 w†stan wysoki.
Elektronika Praktyczna 10/2003
Uk³ad dzia³a³by rÛwnieø poprawnie, gdyby pominiÍto zastosowane diody w³¹czone szeregowo z†przyciskami, jednak mog³yby wyst¹piÊ przek³amania przy zapisie do rejestru, gdyby w†czasie transmisji kilka przyciskÛw by³o naciúniÍtych rÛwnoczeúnie. Dlatego teø lepiej wspomniane diody zastosowaÊ. Przyk³adow¹ sekwencjÍ rozkazÛw obs³uguj¹cych wspomniany uk³ad zamieszczono na list. 10.
Na rys. 29 przedstawiono sposÛb do³¹czenia klawiatury do mikrokontrolera z†wykorzystaniem wspÛlnych linii z†innym urz¹dzeniem, ktÛrym jest... rÛwnieø klawiatura! Przedstawiony na rysunku uk³ad pod³¹czenia przyciskÛw tworzy klawiaturÍ matrycow¹. Charakterystyczn¹ cech¹ takiego rozwi¹zania jest moøliwoúÊ wyrÛønienia na schemacie wierszy i†kolumn, na przeciÍciu ktÛrych znajduj¹ siÍ elementy zwieraj¹ce (przyciski). Moøliwa do obs³uøenia liczba klawiszy jest zaleøna od liczby wierszy i†kolumn matrycy, i†jest rÛwna iloczynowi tych dwÛch wartoúci. Zasada dzia³ania uk³adu jest nastÍpuj¹ca: odczytywanie stanu klawiszy odbywa siÍ w†sposÛb grupowy, tzn. jednoczeúnie odczytywany jest stan jednego rzÍdu klawiszy (jeden wiersz lub jedna kolumna) - za³Ûømy, øe w†naszym uk³adzie bÍdziemy klawiaturÍ sprawdzaÊ odczytuj¹c stan klawiszy pogrupowanych w†wiersze (zgodnie z†kolejn¹ numeracj¹ na schemacie). W†takiej konfiguracji linie P1.4 do P1.7 bÍd¹ pracowa³y jako wejúcie, natomiast linie P1.0 do P1.3 jako wyjúcie (nie jest konieczne stosowanie rezysto-
List. 11. Program obsługi klawiatury matrycowej (schemat na rys. 29) ;KLAW1_8 ; ; ;KLAW8_16 ; ;
- pomocnicza zmienna bajtowa pamiętająca stan klawiszy SW1 do SW8 (najmłodszy bit oznacza stan SW8, “1” oznacza klawisz wciśnięty) - pomocnicza zmienna bajtowa pamiętająca stan klawiszy SW8 do SW16 (najmłodszy bit oznacza stan SW16, “1” oznacza klawisz wciśnięty)
CZYTAJ_KLAWISZE: MOV P1,#0FFH
;procedura wywoływana przez LCALL ;ustawienie linii portu P1 w stan wysoki
CLR P1.3 MOV A,P1 SETB P1.3 CPL A ANL A,#0F0H MOV KLAW1_8,A
;wyzerowanie linii P1.3 ;odczyt stanu linii portu P1 (czytamy 1 wiersz) ;ustawienie linii P1.3 (bo stan już odczytaliśmy) ;negacja (aby 1 oznaczała wciśnięty klawisz) ;maskowanie młodszych 4 bitów - interesują nas starsze ;zapamiętanie stanu 4 klawiszy
CLR P1.2 MOV A,P1 SETB P1.2 CPL A ANL A,#0F0H SWAP A ORL A,KLAW1_8 MOV KLAW1_8,A
;wyzerowanie linii P1.2 ;odczyt stanu linii portu P1 (czytamy 2 wiersz) ;ustawienie linii P1.2 ;negacja ;maskowanie ;zamienienie miejscami połówek bajtu (bo wiersz 2 to 4 ;młodsze bity KLAW1_8) ;połączenie informacji o obu wierszach ;zapamiętanie stanu wszystkich ośmiu klawiszy
CLR P1.1 MOV A,P1 SETB P1.1 CPL A ANL A,#0F0H MOV KLAW8_16,A
;wyzerowanie linii P1.1 ;odczyt stanu linii portu P1 (czytamy 3 wiersz) ;ustawienie linii P1.1 ;negacja ;maskowanie ;zapamiętanie stanu 4 klawiszy (SW9-SW12)
CLR P1.0 MOV A,P1 SETB P1.0 CPL A ANL A,#0F0H SWAP A ORL A,KLAW8_16 MOV KLAW8_16,A
;wyzerowanie linii P1.0 ;odczyt stanu linii portu P1 (czytamy 4 wiersz) ;ustawienie linii P1.0 ;negacja ;maskowanie ;zamienienie miejscami połówek bajtu ;połączenie informacji o obu wierszach ;zapamiętanie stanu wszystkich ośmiu klawiszy
RET
;powrót do programu głównego
89
K U R S rÛw podci¹gaj¹cych dla linii P1.0 i†P1.1 mikrokontrolerÛw AT89Cx051, gdyø stan wysokiej impedancji i†stan wysoki s¹ tu nierozrÛønialne - na pracÍ uk³adu wp³ywa tylko stan niski). WstÍpnie naleøy do portu P1 wpisaÊ same jedynki (ustawiÊ wszystkie linie), nastÍpnie moøemy przejúÊ do odczytu pierwszego wiersza. Dokonujemy tego zeruj¹c programowo liniÍ P1.3 (linie P1.0 do P1.2 pozostaj¹ w†stanie wysokim) i†odczytuj¹c stan wyprowadzeÒ P1.4...P1.7 - stan tych linii odzwierciedla stan klawiszy w†pierwszym wierszu (SW1...SW4) przyk³adowo stan niski na linii P1.6 oznacza wciúniÍcie SW2. W†podobny sposÛb postÍpujemy dla pozosta³ych wierszy, kolejno zeruj¹c pojedynczo linie P1.2, P1.1 i†P1.0 (pozosta³e linie w†stanie wysokim) i†odczytuj¹c stan czterech starszych linii portu. Rozwi¹zanie programowe bÍdzie polegaÊ na jednorazowym odczytaniu stanu wszystkich klawiszy, a†nastÍpnie przekazaniu informacji o†naciúniÍciach do programu g³Ûwnego (przez zapamiÍtanie w†pomocniczej zmiennej). Przyk³adow¹ procedurÍ obs³ugi klawiatury matrycowej zamieszczono na list. 11. Gdyby zaistnia³a potrzeba odczytywania stanu klawiatury kolumnami, to zmieni¹ siÍ jedynie funkcje wyprowadzeÒ: kolejno zerowaÊ bÍdziemy wyprowadzenia P1.4...P1.7, a†odczytywaÊ P1.0...P1.3 (tym razem konieczne bÍd¹ rezystory podci¹gaj¹ce dla P1.0 i†P1.1 mikrokontrolerÛw AT89Cx051).
90
Rys. 29 W†przypadku naciúniÍcia wiÍcej niø jednego klawisza istnieje niebezpieczeÒstwo odczytania przez uk³ad dziwnej kombinacji naciúniÍtych klawiszy (podobna cecha jak w†uk³adzie z†rys. 28, choÊ tutaj nie zostan¹ przek³amane øadne transmitowane dane - tylko klawiatura korzysta z†tych linii portu). Aby temu zapobiec moøna zastosowaÊ diodÍ szeregowo w³¹czon¹ z†kaødym klawiszem (patrz rys. 28). W†naszym przypadku (odczytywane wiersze klawiatury) diody naleøy w³¹czyÊ katodami w†kierunku linii wierszy (P1.0...P1.3). Gdybyúmy klawiaturÍ chcieli odczytywaÊ kolumnami, to naleøy diody pod³¹czyÊ odwrotnie. Zastosowanie klawiatury matrycowej w†systemie mikroprocesorowym pozwala na zaspokojenie nawet bardzo rozbudowanych potrzeb dotycz¹cych klawiatury. Istniej¹ jednak aplikacje, w†ktÛrych zastosowanie rozbudowanego uk³adu klawiatury jest niemoøliwe ze wzglÍdu na wykorzystanie w†innych celach linii portÛw mikrokontrolera - po prostu brakuje nam wolnych linii niezbÍdnych do obs³ugi duøej
liczby klawiszy. Rozwi¹zania problemu s¹ dwa: moøna zastosowaÊ specjalizowany uk³ad scalony lub lepiej odpowiednio oprogramowany drugi mikrokontroler (rozwi¹zanie niejednokrotnie taÒsze i†elastyczniejsze) odpowiedzialny tylko i†wy³¹cznie za wykrywanie faktu naciskania klawiszy i†komunikuj¹cy siÍ z†g³Ûwnym mikrokontrolerem za pomoc¹ niewielkiej liczby linii (jedna, gÛra dwie linie) lub zastosowaÊ to samo rozwi¹zanie w†gotowej postaci dostarczanej przez wielu producentÛw sprzÍtu komputerowego - standardow¹ klawiaturÍ komputera PC-AT. Zastosowanie klawiatury PC ma tÍ zaletÍ, øe jest stosunkowo tanie, a†takøe bardzo ³atwe w†adaptacji i†estetyczne - odpada koniecznoúÊ borykania siÍ z†rozwi¹zaniami mechanicznymi i†obudow¹ klawiatury. Jedyn¹ wad¹ takiego rozwi¹zania jest koniecznoúÊ zapoznania siÍ z†doúÊ nietypowym sposobem komunikacji klawiatury z†mikroprocesorem. SzczegÛ³y przedstawimy za miesi¹c. Pawe³ Hadam, AVT [email protected]
Elektronika Praktyczna 10/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.
Pokojowy regulator temperatury ze zdalnym sterowaniem, część 1 Pomys³ budowy urz¹dzenia powsta³, gdy ze wzglÍdu na nisk¹ temperaturÍ panuj¹c¹ w†pokoju, autor zmuszony by³ do korzystania z†dodatkowego ogrzewania elektrycznego. Uøytkowanie typowego ogrzewacza wnÍtrzowego (popularnej ìfarelkiî), oprÛcz wysokich kosztÛw zuøytej energii elektrycznej, mia³o powaøn¹ wadÍ: kaødorazowe w³¹czenie i†wy³¹czenie urz¹dzenia wymaga³o interwencji uøytkownika. A†przecieø jesteúmy tak leniwi...
Projekt
113
Takie sytuacje, w†przypadku autora, powodowa³y koniecznoúÊ zaprzestania wykonywanych w³aúnie zajÍÊ (na ogÛ³ w†najmniej stosownym momencie - np.: podczas precyzyjnego lutowania), przejúcia na drugi koniec po-
koju, w³¹czenia podgrzewacza i†powrotu na miejsce. Chociaø podobna gimnastyka, z†punktu widzenia higieny pracy, jest elementem bardzo pozytywnym, to jednak zbyt czÍste tego typu spacery powodowa³y spadek efektywnoúci pracy
i†by³y czynnikiem determinuj¹cym autora do poszukiwania rozwi¹zaÒ bardziej ìwspÛ³czesnychî. W†pocz¹tkowym zamyúle urz¹dzenia mia³o jedynie w³¹czaÊ i†wy³¹czaÊ ogrzewacz za pomoc¹ pilota, podobnie jak czyni siÍ to z†domowym sprzÍtem AV. Jednak wykorzystanie mikroprocesora umoøliwi³o wyposaøenie sterownika w†dodatkowe funkcje. Urz¹dzenie umoøliwia: - odczyt temperatury otoczenia z†rozdzielczoúci¹ 0,1oC, - odczyt temperatury minimalnej i†maksymalnej w†danym przedziale czasowym, - manualne w³¹czanie i†wy³¹czanie, za pomoc¹ pilota, dowolnego elektrycznego urz¹dzenia grzewczego,
Rys. 1. Schemat elektryczny regulatora temperatury
Elektronika Praktyczna 10/2003
91
PROJEKTY CZYTELNIKÓW Obs³uga i†dzia³anie
Rys. 2. Schemat elektryczny układu sterownika mocy
- automatyczna (dwupo³oøeniowa) regulacja temperatury pomiÍdzy wartoúci¹ minimaln¹ t L i†maksymaln¹ tH , - wprowadzanie za pomoc¹ pilota wartoúci tL i†tH, - w³¹czanie urz¹dzenia grzewczego ìw zerzeî sieci energetycznej, - automatyczne wy³¹czenie urz¹dzenia grzewczego w†przypadku przekroczenia dopuszczalnego czasu pracy.
CzÍúÊ sprzÍtowa Regulator sk³ada siÍ z†p³ytki sterownika mikroprocesorowego zawieraj¹cej cztery siedmiosegmentowe wyúwietlacze LED, zamontowanej bezpoúrednio na obudowie typowego zasilacza wtyczkowego, oraz uk³adu bezstykowego sterownika mocy zamkniÍtego w†oddzielnej obudowie. Schemat elektryczny sterownika mikroprocesorowego przedstawiono na rys. 1. Zastosowano tu popularny mikrokontroler z†rodziny 51 typu AT89C4051 firmy Atmel z†4†kB pamiÍci¹ programu typu Flash. Mikrokontroler jest taktowany sygna³em zegarowym o†czÍstotliwoúci 12 MHz. Jako czujnik temperatury wykorzystano cyfrowy termometr DS1820 firmy Maxim/Dallas. Zintegrowany odbiornik podczerwieni do³¹czony jest do wejúcia przerwania zewnÍtrznego INT0 mikrokontrolera. Port P1 mikrokontrolera steruje bezpoúrednio katodami wyúwietlaczy siedmiosegmentowych. Anody wyúwietlaczy sterowane s¹ poprzez klucze tranzystorowe z†odpowiednich linii portu P3 mikrokontrolera. Na p³ytce drukowanej regulatora zastosowano montaø przewlekany (mikrokontroler, kwarc, wyúwietlacze, kondensator elektrolityczny) oraz SMT (rezystory, kondensatory, tranzystory).
92
Czujnik temperatury jest pod³¹czony do p³ytki regulatora za pomoc¹ kilkunastocentymetrowego przewodu. Oddalenie czujnika pomiarowego od p³ytki regulatora i†obudowy zasilacza jest konieczne ze wzglÍdu na wydzielanie ciep³a przez transformator sieciowy, co w†przypadku zamontowania czujnika bezpoúrednio na p³ytce, powodowa³oby b³Ídne (zawyøone) odczyty temperatury. Zamiast elektromagnetycznego przekaünika w³¹czaj¹cego urz¹dzenie wykonawcze zastosowano modu³ z³oøony z†optotriaka i†triaka o†duøej mocy (rys. 2). Wykorzystywany optotriak posiada dodatkowo uk³ad w³¹czania ìw zerzeî sieci energetycznej. Dodatkowe elementy bierne (R21, R22, C21) ³¹cz¹ce optotriak z†triakiem s¹ zgodne z†typow¹ aplikacj¹ podawan¹ przez producenta i†umoøliwiaj¹ poprawne sterowanie urz¹dzeÒ rÛwnieø o†charakterze indukcyjnym. Jako element wykonawczy zastosowano triak BTA26 o†typowym pr¹dzie przewodzenia 26 A, co jest wartoúci¹ aø nadto wystarczaj¹c¹ do sterowania urz¹dzeÒ grzewczych o†mocach znacznie ponad 2†kW. Triak zamocowano na radiatorze o†doúÊ kompromisowych wymiarach, dostosowanych do objÍtoúci obudowy (w przypadku sterowania urz¹dzeÒ grzewczych o†wiÍkszych mocach konieczne jest zapewnienie odpowiednich warunkÛw ch³odzenia triaka poprzez m.in. odpowiedni dobÛr powierzchni radiatora). Uk³ad sterownika mocy zamkniÍto w†oddzielnej obudowie z†tworzywa sztucznego na ktÛrej zamocowano typowe gniazdko elektryczne s³uø¹ce do pod³¹czenia grzejnika.
Po w³¹czeniu zasilania (w³oøeniu zasilacza wtyczkowego z†p³ytk¹ mikrokontrolera do gniazdka elektrycznego) regulator bezpoúrednio wyúwietla bieø¹c¹ temperaturÍ otoczenia. WciúniÍcie klawisza ì1î w†pilocie zdalnego sterowania spowoduje uruchomienie urz¹dzenia grzewczego. Na lewym skrajnym wyúwietlaczu pojawia siÍ wÛwczas ìwÍdruj¹cy wokÛ³î úwiec¹cy segment sygnalizuj¹cy pracÍ urz¹dzenia wykonawczego. Wy³¹czenie urz¹dzenia wymaga wciúniÍcia klawisza ì2î w†pilocie, lub nastÍpuje automatycznie po oko³o 20 minutach od momentu ostatniego wciúniÍcia klawisza ì1î. WciúniÍcie klawisza ì3î spowoduje wyúwietlenie minimalnej zarejestrowanej temperatury. Sygnalizowane jest to migaj¹cym dolnym segmentem (c) lewego skrajnego wyúwietlacza. WciúniÍcie w†tym momencie klawisza ìPOWERî powoduje przepisanie bieø¹cej temperatury jako temperatury minimalnej (kasowanie pamiÍci temperatury minimalnej) - na wyúwietlaczu pojawia siÍ na parÍ sekund symbol ìSEtî. Jeøeli klawisz ìPOWERî nie zosta³ wciúniÍty, powrÛt do stanu wyúwietlania temperatury bieø¹cej nastÍpuje automatycznie po kilkunastu sekundach lub po wciúniÍciu przycisku ìPHONOî (klawisz tuø obok ìPOWERî pe³ni¹cy funkcjÍ klawisza ESC) lub klawisza ì2î. Analogicznie naciúniÍcie klawisza ì4î podczas wyúwietlania temperatury bieø¹cej powoduje wyúwietlenie temperatury maksymalnej, co sygnalizowane jest migaj¹cym gÛrnym segmentem (a) pierwszego wyúwietlacza. Funkcje rozkazÛw ìPHONOî, ìPOWERî i†ì2î s¹ analogiczne jak dla funkcji wyúwietlania temperatury minimalnej. WciúniÍcie klawisza ìAMî w†czasie wyúwietlania temperatury bieø¹cej spowoduje prze³¹czenie trybu pracy regulatora z†manualnego na automatyczny. Automatyczny tryb pracy sygnalizowany jest wyúwietlaniem co parÍ sekund symbolu ìAutoî na wyúwietlaczu. W†tym trybie bieø¹ca wartoúÊ temperatury porÛwnywana jest z†dwiema wartoúciami progowymi t L i†t H. Jeøeli bieø¹ca wartoúÊ temperatury jest mniejsza niø wartoúÊ progo-
wa t L† wÛwczas nastÍpuje za³¹czenie urz¹dzenia wykonawczego. Wy³¹czenie urz¹dzenia wykonawczego nastÍpuje kiedy temperatura otoczenia osi¹gnie wartoúÊ wiÍksz¹ niø wartoúÊ progowa t H lub po przekroczeniu dopuszczalnego czasu pracy. W†trybie automatycznym aktywne s¹ rÛwnieø klawisze ì1î i†ì2î maj¹ce identyczne znaczenie jak w†trybie manualnym. Moøna wiÍc w†kaødej chwili klawiszem ì1î za³¹czyÊ urz¹dzenie grzewcze, a†klawiszem ì2î wy³¹czyÊ - prze³¹czaj¹c jednoczeúnie regulator w†stan pracy manualnej. Przejúcie do trybu manualnego moøna rÛwnieø osi¹gn¹Ê wciskaj¹c klawisz ìFMî w†pilocie zdalnego sterowania. Aby sprawdziÊ bieø¹ce nastawy wartoúci temperatur progowych t L i†t H naleøy odpowiednio nacisn¹Ê klawisze ìVOL-î lub ìVOL+î. Na lewym skrajnym wyúwietlaczu widnieje wtedy symbol wyúwietlanej wartoúci: zapalone segmenty a, b, f, g†dla wartoúci t H oraz segmenty c, d, e, g†dla wartoúci t L . PowrÛt do wyúwietlania temperatury bieø¹cej nastÍpuje po naciúniÍciu klawisza ìPHONOî lub jeøeli nie wciúniÍto øadnego klawisza automatycznie po kilkunastu sekundach ale tylko wÛwczas gdy za³¹czone jest urz¹dzenie grzewcze. Jeøeli w†czasie wyúwietlania temperatur progowych jeszcze raz zostanie naciúniÍty klawisz ìVOL-î lub ìVOL+î wÛwczas istnieje moøliwoúÊ wprowadzenia nowych wartoúci progowych (t L lub t H zaleønie od tego ktÛra wartoúÊ jest w³aúnie wyúwietlana). Wygaszone zostaj¹ wÛwczas pozosta³e wyúwietlacze z†wyj¹tkiem pierwszego pokazuj¹cego symbol wprowadzanej wartoúci. Naciskanie teraz klawiszy numerycznych zostanie zinterpretowane jako okreúlenie kolejno dziesi¹tek, jednostek i†dziesi¹tych czÍúci danej nastawy t L lub tH . W†kaødej chwili tryb wprowadzania danych moøna opuúciÊ naciskaj¹c klawisz ìPHONOî. W†przypadku kiedy uruchomiony jest ogrzewacz wyjúcie z†tego trybu moøe nast¹piÊ rÛwnieø automatycznie po kilkunastu sekundach od chwili ostatniego wciúniÍcia dowolnego klawisza w†pilocie zdalnego sterowania. Zatwierdzenie wprowadzonej wartoúci odby-
Elektronika Elektronika Praktyczna Praktyczna 10/2003 2/98
PROJEKTY CZYTELNIKÓW
Rys. 3. Fragment przebiegu na wyjściu odbiornika podczerwieni (wartości w ms)
wa siÍ poprzez naciúniÍcie klawisza ìPOWERî. Dodatkowo sprawdzana jest spÛjnoúÊ wprowadzanych danych. Jeøeli t H - t L†< 0,4 oC†wÛwczas sygnalizowany jest b³¹d (symbol ìErrî na wyúwietlaczu) i†wprowadzane wartoúci nie s¹ zapamiÍtywane. Jeøeli wprowadzone dane spe³niaj¹ powyøsze rÛwnanie i†dodatkowo jeøeli wartoúci tL i†t H mieszcz¹ siÍ w†przedziale 0...25,5 oC†(dane moøna zapisaÊ za pomoc¹ 8†bitÛw), wÛwczas przepisywane s¹ do nieulotnej pamiÍci E 2RAM znajduj¹cej siÍ w†uk³adzie DS1820 (wykorzystywane s¹ dwa bajty uøytkownika). Jeøeli ktÛraú z†wartoúci t L lub t H przekracza 25,5 o C†wÛwczas nie jest zapisywana w†pamiÍci nieulotnej lecz jedynie w†pamiÍci RAM mikrokontrolera. Dane z†nieulotej pamiÍci uk³adu DS1820 przepisywane s¹ do pamiÍci RAM mikrokontrolera inicjuj¹c wartoúci t L i†t H podczas sekwencji startowej po w³¹czeniu zasilania. Jeúli wyst¹pi b³¹d odczytu z†pamiÍci nieulotnej sygnalizowane jest to komunikatem ìErrî na wyúwietlaczu tuø po w³¹czeniu zasilania i†obie wartoúci t L i†t H†domyúlnie inicjowane s¹ zerami (wartoúci te moøna zmieniÊ wciskaj¹c dwukrotnie klawisze ìVOL-î lub ìVOL+î).
Oprogramowanie Oprogramowanie steruj¹ce regulatora wykonano w†jÍzyku C†wykorzystuj¹c kompilator Keil w†bardzo starej, ale w†pe³ni funkcjonalnej, wersji 3.20 dla DOS-a. Jedynie procedury obs³ugi magistrali jednoprzewodowej dla uk³adu czujnika temperatury zaimplementowano w†asemblerze. Ca³oúÊ kodu wynikowego (po linkowaniu) zajmuje prawie 4†kB pamiÍci programu mikrokontrolera. W†dalszej czÍúci artyku³u zostanie skrÛtowo
Elektronika Praktyczna 10/2003
opisane dekodowanie sygna³Ûw zdalnego sterowania oraz procedury obs³ugi magistrali jednoprzewodowej i†ich zastosowanie do komunikacji z†uk³adem DS1820.
Dekodowanie sygna³Ûw zdalnego sterowania Jako pilot zdalnego sterowania wykorzystano model RC-200S firmy TEAC. Analiza oscyloskopem cyfrowym generowanych przez pilota sygna³Ûw wykaza³a, iø pracuje on w†standardzie NEC80 (w tym samym standardzie pracuje teø np. pilot od karty tunera TV PixelView, lecz pilot ten inaczej koduje poszczegÛlne klawisze). Oznacza to, øe czas trwania impulsu (poza nag³Ûwkiem) jest w†tym standardzie sta³y, zaú kodowanie ì0î i†ì1î realizowane jest poprzez rÛøny czas przerwy miÍdzy impulsami. W†standardzie NEC80 przesy³ane s¹ 32 bity danych. SzczegÛ³owe informacje na temat kodowania i†sposÛb dekodowania sygna³Ûw zdalnego sterowania zamieszczono w†EP12/2002. SposÛb dekodowania sygna³Ûw zdalnego sterowania zaproponowany w†tym artykule jest nieco inny (powsta³ zanim ukaza³ siÍ wspomniany numer EP). Na rys. 3†przedstawiono fragment przebiegu otrzymanego na wyjúciu odbiornika podczerwieni podczas nadawania wybranego rozkazu. Dekodowanie poszczegÛlnych rozkazÛw bÍdzie wiÍc polega³o na pomiarze czasu pomiÍdzy kolejnymi opadaj¹cymi zboczami sygna³u uzyskanego z†odbiornika podczerwieni. Opadaj¹ce zbocze sygna³u z†odbiornika podczerwieni, pod³¹czonego do wejúcia przerwania zewnÍtrznego mikrokontrolera, spowoduje ø¹danie przyjÍcia przerwania. Aby przyjÍcie przerwania by³o moøliwe konieczne jest wczeúniejsze
ustawienie bitu IT0 w†s³owie steruj¹cym TCON - oznaczaj¹ce sposÛb przyjÍcia przerwania opadaj¹cym zboczem na wejúciu INT0 - oraz ustawienie bitÛw EX0 i†EA w†masce przerwaÒ IE. Pomiar czasu pomiÍdzy kolejnymi opadaj¹cymi zboczami na wejúciu INT0 bÍdzie siÍ odbywa³ za pomoc¹ sprzÍtowego licznika T0 pracuj¹cego w†trybie 1. Na list. 1†przedstawiono kod ürÛd³owy funkcji w†jÍzyku C†obs³uguj¹cej przerwanie z†wejúcia zewnÍtrznego i†realizuj¹cej dekodowanie poszczegÛlnych rozkazÛw oraz funkcji obs³ugi przerwania z†licznika T0 (przerwanie zg³aszane w†momencie przepe³nienia licznika). Bity start_seq i†start_bit wykorzystywane s¹ do sygnalizacji kolejno rozpoczÍcia nadawania rozkazu (nag³Ûwka) i†wyst¹pienia bitu startu. Ustawienie bitu rdy oznacza, øe odebrano pomyúlnie rozkaz, ktÛrego kod znajduje siÍ w†32-bitowej zmiennej typu long o†nazwie byte. Typ danych bit nie jest typem standardowym charakterystycznym dla jÍzyka C. W†kompi-
latorze Keil jest to bit oznaczaj¹cy 8-bitowy adres bitu w†pamiÍci RAM mikrokontrolera. Zmienna mh s³uøy do tymczasowego przechowywania starszego bajtu licznika T0. Od tej teø operacji - zapamiÍtania stanu bajtu TH0 licznika T0 - rozpoczyna dzia³anie funkcja obs³ugi przerwania zewnÍtrznego. NastÍpnie zerowany jest licznik T0. Jeøeli przyjÍte zosta³o przerwanie, a†bit start_seq nie jest ustawiony, oznacza to, øe rozpoczyna siÍ nadawanie rozkazu. Ustawiany jest wÛwczas bit start_seq i†funkcja obs³ugi przerwania koÒczy dzia³anie. Przy kolejnym wywo³aniu funkcji (kolejnym przerwaniu) sprawdzany jest stan bitu start_bit (start_seq jest juø ustawiony). Jeøeli nie by³ on zapalony oznacza to prawdopodobieÒstwo wyst¹pienia bitu startu. Sprawdzany jest teraz czas, ktÛry up³yn¹³ od ostatniego przerwania. Przy czym kaødy pomiar czasu odbywa siÍ z†dok³adnoúci¹ do 256µs brany jest pod uwagÍ jedynie starszy bajt licznika T0. Jeøeli czas ten zawiera siÍ w†przedziale od 11,5 ms do
List. 1. Kod źródłowy funkcji obsługi przerwań i dekodowania rozkazów void int_ext0(void) interrupt 0 using 1 { mh=TH0; TL0=0; TH0=0; if (!start_seq) start_seq=1; else if (!start_bit) { if (mh>45&&mh<54) { start_bit=1; bitcnt=0; byte=0; TR1=0; ET1=0; P1=255; } else start_seq=0; } else if (start_bit) { if (mh>12) { start_seq=start_bit=0; ET1=1; return; } if (bitcnt<32) { byte<<=1; if(mh>6) byte|=1; } bitcnt++; if (bitcnt>32) { rdy=1; start_bit=start_seq=0; TR1=1; ET1=1; } } } void int_t0(void) interrupt 1 using 1 { ET1=1; TR1=1; start_bit=start_seq=0; } Funkcje wykorzystują następujące zmienne zewnętrzne (globalne): bit start_bit,start_seq,rdy; unsigned char mh,bitcnt; unsigned long byte;
93
PROJEKTY CZYTELNIKÓW 14 ms oznacza to, øe odebrany zosta³ nag³Ûwek i†bit startu. St¹d ustawiany jest teraz bit start_bit, zerowany licznik bitÛw bitcnt i†zerowana zmienna byte. Dodatkowo blokowany jest licznik T1 steruj¹cy wyúwietlaczem i†wszystkie bity portu P1 ustawiane s¹ w†stan wysoki, powoduj¹c wygaszenie wyúwietlacza. Przy kolejnym zg³oszeniu przerwania rÛwnieø sprawdzany jest czas, ktÛry up³yn¹³ od ostatniego przyjÍcia przerwania. Jeøeli jest on wiÍkszy niø 3†ms oznacza to b³¹d i†procedura dekodowania rozkazÛw rozpoczyna siÍ od pocz¹tku. W†przeciwnym przypadku, o†ile nie odebrano jeszcze 32 bitÛw, wszystkie bity zmiennej byte przesuwane s¹ o†jedn¹ pozycjÍ w†lewo i†jeøeli wyøej wymieniony czas jest wiÍkszy niø 1,5 ms - co oznacza øe odebrany bit ma wartoúÊ 1†- ustawiany jest najm³odszy bit zmiennej byte. NastÍpnie zwiÍkszany jest
o†jeden licznik bitÛw. Jeøeli przy kolejnej obs³udze przerwania odebrano juø 32 bity (bitcnt > 32) oznacza to wyst¹pienie bitu stopu i†kompletne odebranie rozkazu. Ustawiana jest wÛwczas globalna flaga rdy sygnalizuj¹ca øe zmienna byte zawiera kod odebranego rozkazu. Jeøeli z†jakiegoú powodu transmisja zostanie przerwana (zak³Ûcona) przed odebraniem 32 bitÛw, wÛwczas najpÛüniej po 65,5 ms nast¹pi przepe³nienie licznika T0 i†wys³ane zostanie ø¹danie przyjÍcia przerwania od tego licznika. Funkcja obs³ugi tego przerwania (int_t0()) zeruje bity start_bit i†start_seq powoduj¹c, øe przy kolejnym przerwaniu z†odbiornika podczerwieni, procedura dekodowania rozkazÛw rozpocznie siÍ od pocz¹tku. Wykorzystanie tak zdefiniowanych funkcji dekodowania rozkazÛw z†odbiornika zdalnego sterowania w†programie g³Ûwnym (programie uøytkownika) wymaga zade-
klarowania wymienionych wczeúniej zmiennych na zewn¹trz wszystkich funkcji i†wygl¹da nastÍpuj¹co: if(rdy) // zdekodowano rozkaz { rdy=0; if(byte==0xe19e31ce) { // wciśnięto klawisz // “1” w pilocie } else if(byte==0xe19eb14e) { // wciśnięto klawisz // “2” w pilocie }... }
Lub teø uøywaj¹c krÛtszych - 16 bitowych (dwu bajtowych) sta³ych, z†uøyciem wskaünikÛw, tak jak w†programie obs³ugi regulatora: int *ptr; //deklaracja wskaźnika //do zmiennych typu int ... ptr=(int*)&byte; //wskaźnik ptr zawiera //adres zmiennej byte if(rdy) // zdekodowano rozkaz { rdy=0; if(*ptr++==0xe19e) //stały kod //dla danego pilota { if(*ptr==0x31ce) { // wciśnięto klawisz // “1” w pilocie } else if(*ptr==0xb14e) { // wciśnięto klawisz // “2” w pilocie } ... } }
Poniewaø zmienna byte jest obiektem 32-bitowym typu long a†wskaünik ptr zgod-
94
WYKAZ ELEMENTÓW Rezystory R1...R8: 68Ω R9...R12: 12kΩ R13: 470Ω R14: 4,7kΩ R21: 180Ω R22: 1,2kΩ Kondensatory C1, C2: 33pF, C3: 1µF, C4: 0,1µF, C5: 100µF, C21: 0,22µF Półprzewodniki Wyświetlacze 7−segmentowe LED − 4szt, Mikroprocesor AT89C4051, Tranzystory BC807(SMD) − 4 szt, Termometr DS1820, Scalony odbiornik podczerwieni, Optotriak TLP3041, Triak BTA26 Różne Rezonator kwarcowy 12MHz, Zasilacz “wtyczkowy” 5V, 200mA, Pilot zdalnego sterowania
nie z†definicj¹ moøe pokazywaÊ na obiekty 16-bitowe typu int podczas przypisania adresu konieczna jest konwersja typÛw z†long* do int*. W†przypisaniu ptr=(int*)&byte zastosowano jawn¹ konwersjÍ typÛw z†uøyciem operatora rzutowania (int*). DziÍki takiemu zabiegowi wskaünik ptr pokazuje na starszych 16 bitÛw zmiennej byte zaú ptr+1 na m³odszych 16 bitÛw tej zmiennej. Fakt ten wykorzystano w†prezentowanym programie. Zbigniew Hajduk
Elektronika Elektronika Praktyczna Praktyczna 10/2003 2/98
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, na 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.
Konfiguracja portów mikrokontrolera AVR Stosowanie aliasów W†pierwszym odcinku cyklu rzystane dwie instrukcje: SET oraz opanowania dla pocz¹tkuj¹cego. przedstawimy proste i†zasadnicze RESET. Jeúli np. nÛøka portu mikW†Bascom AVR uøywamy do tego dla pos³ugiwania siÍ mikrokontrorokontrolera skonfigurowana jest celu nastÍpuj¹cych instrukcji: CONFIG PORTx = [INPUT/OUTPUT] lerami zagadnienie, jakim jest spojako wyjúcie, wtedy stan wysoki sÛb konfiguracji portÛw mikrokontCONFIG PINx.y = [INPUT/OUTPUT] ustawiamy instrukcj¹ SET PortX.Y. gdzie: x†- numer portu, y†- numer rolerÛw AVR. Ze wzglÍdu na odStan niski wymuszamy instrukcj¹ koÒcÛwki mienn¹ od '51 budowÍ mikrokontRESET PortX.Y. Na przyk³ad, aby Jeúli podamy parametr INPUT, rolerÛw AVR, konfigurowanie porustawiÊ liniÍ B.2 mikrokontrolera wtedy koÒcÛwka bÍdzie wejúciem, tÛw w†Bascom AVR rÛøni siÍ od naleøy uøyÊ instrukcja: SET analogicznie OUTPUT - skonfigurukonfiguracji portÛw w†Bascom 51, PortB.2, a†jeúli chcemy zmieniÊ je port lub dan¹ liniÍ jako wyjw†ktÛrym liniÍ portu - aby pracostan linii B.0 na niski, to naleøy úcie. ProszÍ o†zwrÛcenie uwagi na wa³a jako wejúcie - wystarczy³o uøyÊ instrukcji RESET PortB.0. rÛønice w†sk³adni: polecenie CONustawiÊ w†stan logicznej ì1î. ProbBascom udostÍpnia takøe instrukFIG PORTx konfiguruje ca³y 8-bilemy z†konfiguracj¹ portÛw mikrocjÍ TOGGLE, ktÛra zmienia stan towy port jako wejúcie lub wyjkontrolerÛw AVR przez pocz¹tkuj¹danej koÒcÛwki portu na przeciwcych wynikaj¹ zazwyczaj ny. Na przyk³ad instrukcja AVR−y od środka z†braku wiedzy o†dzia³aniu, TOGGLE PortB.0 zmieni na budowie i†konfiguracji mikro- Szczegółowe informacje o budowie rdzenia przeciwny stan linii B.0 kontrolerÛw AVR, ktÛre funmikrokontrolera. mikrokontrolerów AVR oraz opisy ich kcjonalnie rÛøni¹ siÍ znaczPozornie bardziej skompliwybranych bloków funkcjonalnych można nie od popularnych '51. kowana wydawaÊ siÍ moøe znaleźć w książce „Mikrokontrolery AVR Mikrokontrolery AVR, ze obs³uga wejúcia, ale tak w praktyce”, dostępnej w ofercie wzglÍdu na swoj¹ budowÍ w†praktyce nie jest. Jeúli lihandlowej AVT pod symbolem wymagaj¹ aby linie portÛw, nia jest skonfigurowana jako KS−230929. ktÛre bÍd¹ wykorzystywane wejúciowa, wtedy (wynika to úcie czyli CONFIG PORTB=INPUT w†urz¹dzeniu by³y odpowiednio z†wewnÍtrznej budowy mikrokontustawi wszystkie 8†koÒcÛwek porskonfigurowane - musi to zrobiÊ rolera) powinniúmy zadeklarowaÊ: tu B†jako wejúcia. Jeúli natomiast programista, najlepiej na pocz¹tku czy linia jest wejúciem ìpodci¹gchcemy ustawiÊ pojedyncze nÛøki programu. Na rys. 1 przedstawioniÍtymî do VCC czy teø ìp³ywaj¹jako wejúcia/wyjúcia naleøy uøyÊ no jako przyk³ad budowÍ jednej licymî. Jeúli stan linii portu ustadrugiej sk³adni: CONFIG PINx.y. nii portu mikrokontrolera AVR. Na wimy poleceniem SET PortX.Y, Czyli aby ustawiÊ liniÍ B.2 jako rysunku widaÊ, øe do konfiguracji wtedy na linii X.Y w†stanie spowyjúcie, polecenie konfiguracyjne portu przeznaczono dwa rejestry: czynku pojawi siÍ napiÍcie VCC jest nastÍpuj¹ce: CONFIG DDRx oraz PORTx, ktÛre umoøliPortB.2 = OUTPUT. Jeúli wiaj¹ konfiguracjÍ oraz obs³ugÍ lilinia B.1 ma pracowaÊ janii I/O. Naleøy mieÊ na uwadze, ko wejúcie, to polecenie øe linie portÛw mikrokontrolera konfiguracyjne bÍdzie namog¹ pe³niÊ takøe alternatywne stÍpuj¹ce: CONFIG PortB.1 funkcje - np. mog¹ byÊ wejúciem = INPUT. Jak widaÊ, moøprzetwornika A/C, analogowego liwe s¹ dwie opcje: INkomparatora, timera itd. PUT - gdy linia ma byÊ Na pocz¹tku programu (choÊ wejúciem lub OUTPUT, takøe w†jego dowolnej czÍúci moøgdy linia ma byÊ wyjna zmieniÊ konfiguracjÍ linii portu) úciem. Moøna takøe uøyÊ naleøy zadeklarowaÊ czy uøywane wartoúci bitowej (0 lub 1) wyprowadzenie (port) bÍdzie pe³niÊ aby szybko skonfigurowaÊ funkcjÍ wejúcia czy teø wyjúcia poszczegÛlne linie portu. mikrokontrolera. S³uøy do tego speW†Bascomie do ustacjalny rejestr DDRx, ktÛry moøemy wiania oraz zerowania oprogramowaÊ ìwprostî (wpisuj¹c danych linii mikrokontrobezpoúrednio do niego wartoúÊ) lub l e r a u s t a w i o n y c h j a k o Rys. 1. Przykład budowy jednej z linii portu w†sposÛb ìbascomowyî, ktÛry jest wyjúcie mog¹ byÊ wyko- mikrokontrolera AVR bardziej czytelny i†³atwiejszy do
Elektronika Praktyczna 10/2003
101
B A S C O M O W E
P O R A D Y
List. 1. Program sterujący diodą LED w zależności od stanu na wejściu D.5 CONFIG PinB.2= OUTPUT CONFIG PinD.5 = INPUT Set Portb.2 Set Portd.5 Do If Pind.5 = 0 Then Reset Portb.2 Else set PortB.2 End if LOOP
'wyjście do którego podłączona jest dioda 'wejście do którego podłączony jest mikroswitch 'teraz ustawiamy na obydwu linach stan wysoki 'tu żeby dioda po włączeniu nie świeciła 'a tu podciągamy port 'pętla główna programu 'porównujemy czy na końcówkę D.5 podano masę '(naciśniety przycisk) 'ustaw stan niski na Portb.2 - co spowoduje zapalenie 'diody 'w przeciwnym wypadku 'ustaw na portB.2 z powrotem na stan wysoki 'czyli zgaś diodę 'koniec nieskończonej pętli
(wewnÍtrzny rezystor podci¹gaj¹cy zostanie do³¹czony do danej linii). Natomiast, jeúli nie skonfigurujemy wejúcia, do³¹czaj¹c do niego wewnÍtrzny rezystor podci¹gaj¹cy (np. poprzez ustawienie danego bitu w†rejestrze portx) lub wydamy polecenie RESET PortX.Y, wtedy na linii wejúciowej nie bÍdzie (tak jak w†wypadku wyjúcia) ìpewnejî masy, lecz wejúcie bÍdzie ìwisieÊî w†powietrzu. Na takiej koÒcÛwce wejúciowej nie bÍdzie stabilnego, jednoznacznie okreúlonego stanu logicznego. Tak¹ konfiguracjÍ linii moøna wykorzystaÊ np. gdy z†jakichú przyczyn wejúcie musi byÊ ìúci¹gniÍteî przez zewnÍtrzny rezystor do masy. Rezystory ìpodci¹gaj¹ceî ustalaj¹ stan spoczynkowy linii wejúciowych i†uodparniaj¹ je takøe - w†pewnym stopniu - na zak³Ûcenia. Dlatego teø zaleca siÍ, aby podczas korzystania z†wejúÊ konfigurowaÊ je jako linie z†aktywnymi rezystorami ìpodci¹gaj¹cymiî lub zastosowaÊ zewnÍtrzne rezystory ìpodci¹gaj¹ceî (lub ìúci¹gaj¹ceî, zaleønie od aplikacji). Oczywiúcie rezystory podci¹gaj¹ce naleøy uøywaÊ, gdy na wejúciach portÛw bÍdzie zewnÍtrznie podawany tylko jeden z†dwÛch moøliwych stanÛw logicznych, co bÍdzie mieÊ miejsce np. w†przypadku do³¹czenia przyciskÛw do linii I/O mikrokontrolera. W†przypadku sterowania
Rys. 2. Schemat ideowy układu dla przedstawionego przykładu
102
wejúcia z†uk³adu cyfrowego, na ktÛrego wyjúciu pojawiaÊ siÍ bÍdzie na zmianÍ stan wysoki i†niski, rezystory podci¹gaj¹ce nie s¹ potrzebne. Tak wiÍc, jeúli chcemy zapewniÊ zawsze stabilny stan na wejúciu mikrokontrolera, naleøy po skonfigurowaniu portu ustawiÊ jego stan na wysoki, najlepiej instrukcj¹ SET PortX.Y, co powoduje do³¹czenie rezystora ìpodci¹gaj¹cegoî. Aby odczytaÊ stan na wejúciu mikrokontrolera pos³ugujemy siÍ poleceniem: zmienna = PinX.Y (na przyk³ad odczyt linii D.5: zmienna=PinD.5). Naleøy pamiÍtaÊ, øe do odczytu stanu danej linii wejúciowej nie s³uøy rejestr portx, lecz rejestr pinx. Pozbierajmy zatem wszystko w†jakiú konkretny przyk³ad: mikrokontroler ma sterowaÊ diodÍ LED w³¹czon¹ miÍdzy ì+î zasilania (VCC) a†B.2, w†zaleønoúci od stanu wejúcia D.5 (linia PD5 jest wiÍc wejúciem, natomiast PB2 wyjúciem). Na rys. 2 przedstawiono schemat elektryczny takiego uk³adu z†wykorzystaniem mikrokontrolera ATmega8, ktÛrym czÍsto bÍdziemy siÍ pos³ugiwaÊ w†przyk³adach przedstawianych w†tej rubryce. Program przedstawiony na list. 1 na czas naciúniÍcia przycisku bÍdzie zapala³ diodÍ LED. W†przyk³adzie, w†nieskoÒczonej pÍtli, ca³y czas jest sprawdzany przy pomocy warunku if stan linii wejúciowej, do ktÛrej do³¹czono przycisk. Jeúli zostanie on naciúniÍty, stan linii wejúciowej zmieni siÍ na niski, co spowoduje zapalenie diody LED. Puszczenie przycisku bÍdzie rÛwnowaøne z†podaniem przez wewnÍtrzny rezystor podci¹gaj¹cy dodatniego napiÍcia zasilania, czyli stanu wyso-
kiego, przy ktÛrym dioda LED bÍdzie wy³¹czona. Na koniec jeszcze s³owo na temat tzw. aliasÛw, czyli alternatywnych nazw dla zmiennych, sta³ych, itd. Poniewaø ludzka pamiÍÊ jest zawodna i†wygodniej nam zapamiÍtywaÊ nazwy w³asne niø nazwy narzucone przez producentÛw uk³adÛw, Mark Alberts zadba³ takøe o†wygodÍ programistÛw. Aliasy umoøliwiaj¹ nadanie standardowym nazwom portÛw, rejestrÛw, zmiennym itp. nazw przyjaznych uøytkownikowi. Sk³adnia instrukcji aliasu jest nastÍpuj¹ca: Nazwa_przyjazna ALIAS Nazwa_trudna_do_zapamiętania
Co w†przyk³adzie przedstawionym na list. 1†mog³oby mieÊ postaÊ: Dioda Alias PortB.2 'przypisanie 'aliasu “dioda” do nazwy portb.2
Nazwie PortB.2 zostanie przypisana alternatywna nazwa dioda, ktÛra jednoznacznie identyfikuje liniÍ portu. Na przyk³ad instrukcja RESET DIODA spowoduje zapalenie diody do³¹czonej do linii B.2 mikrokontrolera. Podobny alias moøna stworzyÊ dla do³¹czonego do linii wejúciowej przycisku. Na przyk³ad: Przycisk alias pind.5 'przypisanie aliasu “przycisk” 'do nazwy pind.5
W†tym przypadku nazwie przycisk przypisano bit 5†rejestru pind, ktÛry jest rejestrem wejúciowym portu D. Jak to wczeúniej wyjaúniono, nie moøna do odczytu stanÛw linii wejúciowych np. portu D†wykorzystaÊ rejestru portd. Mamy nadziejÍ, øe w†tym krÛtkim artykule przedstawiliúmy w†sposÛb jasny i†wyczerpuj¹co zagadnienia zwi¹zane z†konfiguracj¹ linii portÛw mikrokontrolerÛw AVR, a†takøe rozwialiúmy najczÍúciej zg³aszane w¹tpliwoúci. Za miesi¹c przedstawimy zagadnienia zwi¹zane z†obs³ug¹ sprzÍtowego interfejsu RS232, w†ktÛry wyposaøony jest niemal kaødy mikrokontroler AVR. Artur Starz, [email protected] Marcin Wi¹zania, [email protected]
Elektronika Praktyczna 10/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. 65). Chcemy w ten sposób udostępnić je Czytelnikom EP.
Bosch, “Sterowanie silników o zapłonie iskrowym”, WKŁ2002
WúrÛd CzytelnikÛw EP jest zaskakuj¹co wielu fanÛw elektroniki samochodowej. Z†tego powodu ca³y czas monitorujemy pojawiaj¹ce siÍ na rynku ksi¹øki prezentuj¹ce elektronikÍ samochodow¹, bez ktÛrej øaden wspÛ³czesny samochÛd juø siÍ nie obÍdzie. W†naszej ìBiblioteceî prezentujemy trzeci¹ ksi¹økÍ wydan¹ przez WKi£, w†ktÛrej prezentowane s¹ nowoczesne systemy sterowania prac¹ silnika. Ksi¹øka powsta³a w†laboratoriach firmy Bosch, ktÛra jest niezaprzeczalnym rynkowym liderem w†zakresie elektroniki samochodowej. Tematyka prezentowanej ksi¹øki skupia siÍ na systemach stero-
Praca zbiorowa, ìUk³ady sygna³owe i†wzmacniacze wizji w†OTVC i†monitorach, czÍúÊ 1î, Wies³aw Haligowski 2002
Wydawnictwo Wies³awa Haligowskiego wyspecjalizowa³o siÍ w†publikacji ksi¹øek przeznaczonych dla serwisÛw sprzÍtu elektronicznego rÛønego typu. Prezentowana ksi¹øka zawiera informacje katalogowe o†uk³adach scalonych stosowanych w†torach sygna³owych wspÛ³czesnych odbiornikÛw telewizyjnych i†monitorach komputero-
Elektronika Praktyczna 10/2003
wania klasycznych silnikÛw o†zap³onie iskrowym (w tym sposobach generowania iskry) oraz silnikÛw z†rÛønymi rodzajami wtrysku mieszanki i†benzyny. Przy okazji poruszono takøe tematykÍ katalizy spalin, przy czym szczegÛlnie wiele uwagi autorzy poúwiÍcili omÛwieniu roli elektronicznych systemÛw nadzoru i†sterowania w†minimalizacji poziomu zanieczyszczeÒ emitowanych przez silniki. Ksi¹øka zawiera podstawowe informacje niezbÍdne do zrozumienia dzia³ania wspÛ³czesnych elektronicznych systemÛw ìwokÛ³silnikowychî, ale nie zawiera øadnych informacji katalogowych ani serwisowych. Nie przyda siÍ wiÍc zbytnio podczas napraw elektroniki samochodowej, jest natomiast niezast¹piona wszystkim tym elektronikom i†mechanikom samochodowym, ktÛrzy chc¹ z†pierwszej rÍki posi¹úÊ wiedzÍ o†nowoczesnych silnikach samo-
chodowych i†ìelektroniceî, ktÛra steruje ich prac¹. Andrzej Gawryluk
wych. CzÍúÊ z†zamieszczonych w†ksi¹øce materia³Ûw to niemal kompletne noty katalogowe, zawieraj¹ce wszystkie lub wiÍkszoúÊ informacji niezbÍdnych podczas naprawiania i†uruchamiania odbiornikÛw. Wiele uk³adÛw - niestety jest pozbawionych szczegÛ³owych opisÛw, co moøna usprawiedliwiÊ - w†niektÛrych przypadkach trudnoúciami z†dostÍpem do katalogÛw firmowych, doúÊ czÍsto funkcje pe³nione przez opisywane uk³ady s¹ na tyle proste, øe publikowanie kompletnej noty katalogowej nie jest konieczne. W†takich przypadkach musi wystarczyÊ standardowy schemat aplikacyjny lub fragment schematu serwisowe-
123
B I B L I O T E K A
E P
go odbiornika TV, w†ktÛrym opisywany uk³ad zastosowano. WartoúÊ publikowanych informacji zwiÍkszaj¹ opisy objawÛw typowych awarii spowodowanych uszkodzeniami opisywanych uk³adÛw oraz wskazÛwki u³atwiaj¹ce ich diagnozÍ i†usuniÍcie. Prezentowan¹ ksi¹økÍ moøna potraktowaÊ jako niezbÍdnik w†bibliotekach serwisantÛw odbiornikÛw telewizyjnych i†monitorÛw komputerowych. Andrzej Gawryluk
Legenda:
ksi¹øka wybitna, polecamy!
ksi¹øka o†duøych walorach praktycznych, polecamy!
moøe siÍ przydaÊ
Praca zbiorowa, ìUk³ady steruj¹ce w†zasilaczach i†przetwornicach, czÍúÊ 2î, Wies³aw Haligowski 2003
Pierwsz¹ czÍúÊ tej ksi¹øki-katalogu przedstawiliúmy Czytelnikom w†EP2/2003. W†recenzji zwrÛciliúmy uwagÍ na jej doúÊ istotny brak, a†mianowicie brak podstawowych parametrÛw elektrycznych wiÍkszoúci opisywanych uk³adÛw. Niestety, szykuj¹c drug¹ czÍúÊ publikacji wydawnictwo nie uwzglÍdni³o naszej uwagi, w†zwi¹zku z†czym powsta³ zbiÛr kolejnych 251 aplikacji lub wrÍcz samych schematÛw blokowych, o†niewielkich - w†wiÍkszoúci przypadkÛw - walorach
124
daleka od doskona³oúci
praktycznych. W†przypadku uk³adÛw stosowanych w†úciúle okreúlony sposÛb (np. specjalizowane sterowniki do zasilaczy OTV) takie podejúcie wydawcy nie stanowi wiÍkszego problemu, ale pozbawienie opublikowanych w†ksi¹øce aplikacji uk³adÛw Simple Switcher jakichkolwiek informacji o†parametrach i†dostÍpnych wersjach uk³adÛw (a jest to jeden z†wielu, wcale nie najbardziej ìsoczystyî przyk³ad) jest dla mnie niezrozumia³e. Moje zastrzeøenia budzi takøe redakcyjna niekonsekwencja: czÍúÊ
nie warto kupowaÊ
opisÛw jest w†jÍzyku polskim, czÍúÊ w†jÍzyku angielskim, ale nie zachowano ci¹g³oúci stylu, co sugeruje... niedbalstwo? No cÛø, krytykowaÊ ³atwo, ale zdajÍ sobie sprawÍ z†ogromu pracy, jaki w³oøono w†przygotowanie omawianej ksi¹øki. Maj¹c nadziejÍ na solidniejsze przygotowanie kolejnych czÍúci s¹dzÍ, øe 3†lutownice zadowol¹ autorÛw. Miko³aj Andrus
Elektronika Praktyczna 10/2003
A U T O M A T Y K A
Radiomodemy Satel
Najlepsze w transmisji na odleg³oæ 77 m...77 km - ³atwa diagnostyka sieci radiowej, - komunikacja z†urz¹dzeniami w†trybie on-line. WieloúÊ moøliwych konfiguracji systemÛw radiomodemowych firmy Satel gwarantuje dobÛr takiego rozwi¹zania, ktÛre bÍdzie niezawodne, efektywne i†w†pe³ni odpowiadaj¹ce wymaganiom uøytkownika. Satel oferuje dwie grupy produktÛw. Pierwsz¹ grupÍ stanowi¹ klasyczne radiomodemy, drug¹ zaú urz¹dzenia przeznaczone do przesy³ania wy³¹cznie sygna³Ûw cyfrowych.
Radiomodemy Rys. 1. Radiomodem Satelline−3ASd EPIC PopularnoúÊ tych urz¹dzeÒ nie dziwi, jeúli weümie siÍ pod uwagÍ: - niezaleønoúÊ ich pracy od jakiegokolwiek operatora i†zwi¹zane z†tym niewielkie koszty eksploatacji systemu, - moøliwoúÊ obs³ugi duøej liczby urz¹dzeÒ,
Radiomodemy moøna podzieliÊ na dwie podgrupy: urz¹dzenia pracuj¹ce w†paúmie rzÍdu 400 MHz oraz w†paúmie 868...870 MHz. Pasmo 400 MHz Dla pasma 400 MHz Satel oferuje trzy serie radiomodemÛw: Satelline-2ASxE, Satelline-3AS(d) oraz Satelline-3AS EPIC. Wszystkie radiomodemy s¹ przystosowane do dwu-
Bezprzewodowa transmisja danych jest rozwi¹zaniem stosowanym w†praktyce z†roku na rok coraz chÍtniej. W†systemach rozproszonych, w†ktÛrych poszczegÛlne obiekty rozmieszczone s¹ na duøych obszarach, ogromn¹ popularnoúci¹ ciesz¹ siÍ produkty fiÒskiej firmy Satel: radiomodemy Satelline oraz urz¹dzenia do przesy³u sygna³Ûw alarmowych Satelcode/Satelnode. Przedstawiamy je w†artykule. kierunkowej transmisji danych. Modele z†serii 2ASxE oraz 3AS(d) umoøliwiaj¹ transmisjÍ pomiÍdzy dwoma punktami na odleg³oúÊ do ok. 40 km (przy maksymalnej mocy
Rys. 2. Przykładowy system oparty na radiomodemach Satel dla pasma 400 MHz − modele Satelline− 3AS(d) oraz Satelline−3AS(d) EPIC
Elektronika Praktyczna 10/2003
125
A U T O M A T Y K A
Rys. 3. Przykładowy system oparty na radiomodemach Satel dla pasma 868...870 MHz − model Satelline−1870 nadajnika 1†W). W†celu zwiÍkszenia zasiÍgu transmisji, wszystkie modele radiomodemÛw Satel moøna stosowaÊ w†trybie stacji retransmisyjnej (repeater). Zgodnie z†obowi¹zuj¹cym w†Polsce prawem, radiomodemy 2ASxE i†3AS(d) moøna stosowaÊ bez koniecznoúci ubiegania siÍ o†przydzia³ czÍstotliwoúci, gdy transmisja odbywa siÍ z†moc¹ do 20 mW. Moc ta, w†zaleønoúci od warunkÛw topograficznych oraz zastosowanych anten, pozwala na transmisjÍ danych pomiÍdzy dwoma punktami na odleg³oúÊ od kilkuset metrÛw do ok. 4†kilometrÛw. W†przypadku zastosowania wiÍkszych mocy, uøytkownik zobowi¹zany jest do uzyskania pozwolenia radiowego, czyli przydzia³u czÍstotliwoúci. Posiadanie pozwolenia jest wymagane w†przypadku korzystania z†radiomodemÛw Satelline-3AS EPIC (rys. 1), charakteryzuj¹cych siÍ duø¹ moc¹ nadajnika - od 1†W†do 10 W. Takie parametry umoøliwiaj¹ transmisjÍ na bardzo duøe odleg³oúci - aø do oko³o 80 kilometrÛw. Radiomodemy 3AS EPIC s¹ w†pe³ni kompatybilne z†radiomodemami 3AS, dlatego teø moøna je ³¹czyÊ w†jednej sieci radiowej, co pozwala zredukowaÊ koszty instalacji w†sytuacji, kiedy nie jest konieczne stosowanie radiomodemÛw o†du-
126
øej mocy w†ca³ym systemie. Tworzy siÍ wÛwczas sieÊ szkieletow¹ na radiomodemach 3AS EPIC, do ktÛrej s¹ do³¹czone podsieci z³oøone z†modeli 3AS (rys. 2). Bezp³atne pasmo 868...870 MHz Zakres czÍstotliwoúci 868...870 MHz jest w†Polsce nowym bezp³atnym pasmem do transmisji danych, zgodnie z†Rozporz¹dzeniem Ministra Infrastruktury, w†pe³ni zgodnym z†prawem obowi¹zuj¹cym w†Unii Europejskiej. Jest to pasmo wolne uøytkownik wiÍc nie musi staraÊ siÍ o†przydzia³ czÍstotliwoúci. W†omawianym paúmie pracuj¹ dwa modele radiomodemÛw z†oferty firmy Satel: Satelline-1870 oraz Satelline-3AS 869. Model Satelline-1870 jest przeznaczony do transmisji danych na odleg³oúci nieprzekraczaj¹ce 5...6 kilometrÛw. Bardzo czÍsto radiomodemy te s¹ stosowane w†halach produkcyjnych, gdzie odleg³oúci s¹ stosunkowo niewielkie, a†po³oøenie kabla z†rÛønych wzglÍdÛw niemoøliwe. Radiomodem ten, oprÛcz ma³ych gabarytÛw, charakteryzuje siÍ takøe bardzo atrakcyjn¹ cen¹. Satelline-3AS 869 jest z†kolei bliüniaczym modelem radiomodemu 3AS pracuj¹cego w†paúmie 400 MHz. Ma teø wszystkie cechy modelu 3AS, z†wyj¹tkiem zakresu czÍstotliwoúci oraz mocy, ktÛra maksy-
malnie wynosi 500 mW (zgodnie z†wytycznymi dla pasma 868...870 MHz). Moc 500 mW umoøliwia przesy³anie danych punkt-punkt na odleg³oúÊ do 15 km. DziÍki moøliwoúci pracy kaødego z†radiomodemÛw z†rodziny Satelline jako stacji retransmisyjnej, przedstawione w†artykule odleg³oúci moøna efektywnie zwiÍkszaÊ, co pozwala na budowanie bardzo rozleg³ych sieci radiomodemowych.
Urz¹dzenia do przesy³u sygna³Ûw cyfrowych Urz¹dzenia radiowej transmisji informacji alarmowych Satelcode i†Satelnode s¹ przeznaczone do tworzenia zarÛwno prostych, jak i†rozbudowanych systemÛw przekazywania sygna³Ûw binarnych lub alarmÛw drog¹ radiow¹ w†promieniu od kilku do kilkunastu kilometrÛw od anteny nadajnika. Systemy takie s¹ wykorzystywane w†systemach monitoringu przemys³owego, w†ochronie osÛb i†mienia (zabezpieczenia przeciw poøarom i†w³amaniom, monitoring obiektÛw), ale takøe do zdalnego przekazywania sygna³Ûw steruj¹cych. Prosty system przesy³ania alarmÛw (pojedyncza komÛrka) sk³ada siÍ z†odbiornika - Satelnode X3S oraz dowolnej liczby nadajnikÛw sygna³Ûw alarmowych - Satelcode
Elektronika Praktyczna 10/2003
A U T O M A T Y K A
Rys. 4. Przykładowy system zdalnego monitoringu oparty na radiomodemach Satelline−3AS(d) oraz urzą− dzeniach Satelcode/Satelnode (rys. 3). Kaødy nadajnik ma swÛj adres pozwalaj¹cy na jednoznaczne identyfikowanie i†lokalizowanie komunikatÛw alarmowych przezeÒ nadawanych. Przekazane komunikaty alarmowe mog¹ byÊ przes³ane do odpowiednio oprogramowanego komputera lub teø wykorzystane do uaktywnienia wbudowanych wyjúÊ przekaünikowych odbiornika. Kompletny system moøe sk³adaÊ siÍ z†wielu takich podsystemÛw pracuj¹cych niezaleønie lub teø po³¹czonych drog¹ radiow¹ (za pomoc¹ radiomodemÛw serii Satelline - rys. 4). Budowa oraz pÛüniejsza obs³uga systemÛw alarmowych opartych na urz¹dzeniach firmy Satel jest szybka i†efektywna. Konfiguracja poszczegÛlnych urz¹dzeÒ jest prosta i†nie wymaga stosowania specjalistycznych narzÍdzi. W†úrodowisku miejskim maksymalna odleg³oúÊ pomiÍdzy urz¹dzeniami pojedynczej komÛrki systemu wynosi najczÍúciej oko³o 3†km, zaú w†terenie niezabudowanym - nawet 15 km. Odleg³oúÊ ta moøe byÊ zwiÍkszona przez zastosowanie anten wzmacniaj¹cych.
Koszty instalacji Zastosowanie w†systemie transmisyjnym anten kierunkowych, niezbÍdnych do przesy³ania danych na
Elektronika Praktyczna 10/2003
wiÍksze odleg³oúci, nie stanowi øadnego problemu, bowiem w†ogromnej wiÍkszoúci przypadkÛw nie ma potrzeby budowania specjalnych masztÛw antenowych, gdyø zazwyczaj anteny umieszczane s¹ na najwyøszych obiektach na danym obszarze (wysokie budynki, kominy, s³upy energetyczne, maszty radiowe, GSM, itp.). Takøe wykonanie projektu radiowego, ktÛry do niedawna by³ obligatoryjny, teraz nie zawsze jest konieczne. Urz¹d Regulacji Telekomunikacji i†Poczty, do ktÛrego sk³adany jest wniosek o†wydanie pozwolenia radiowego, zazwyczaj wymaga wykonania projektu w†sytuacji, gdy na danym obszarze istnieje duøe zagÍszczenie urz¹dzeÒ radiowych. W†pozosta³ych przypadkach zwykle wystarcza wype³nienie wniosku. Jeúli wykonanie projektu jest konieczne, firma Astor pomaga uøytkownikom w†jego przygotowaniu, kontaktuj¹c ich z†firmami specjalizuj¹cymi siÍ w†tym zakresie. Firmy te najczÍúciej pomagaj¹ takøe w†uzyskaniu przydzia³u czÍstotliwoúci. Urz¹dzenia transmisji sygna³Ûw cyfrowych Satelcode/Satelnode oraz radiomodemy Satelline mog¹ byÊ zastosowane w†kaødej ga³Ízi prze-
mys³u, wszÍdzie tam, gdzie po³oøenie kabla szeregowego jest niemoøliwe lub po prostu nieop³acalne. Radiomodemy Satel posiadaj¹ takøe wiele dodatkowych zalet, takich jak moøliwoúÊ transmisji w†protokole Profibus DP bez ograniczenia d³ugoúci sieci, jakie narzuca ten protokÛ³. Urz¹dzenia Satel s¹ najczÍúciej stosowane w†systemach rozproszonych, obejmuj¹cych zasiÍg od 77 metrÛw do 77 kilometrÛw. Przyk³adem takich aplikacji jest zdalne sterowanie i†monitoring sieci wodno-kanalizacyjnych, wÍz³Ûw ciep³owniczych oraz monitoring trakcji elektrycznej. NiezawodnoúÊ radiomodemÛw potwierdza d³uga lista referencyjna. Prostota wdraøania i†eksploatacji urz¹dzeÒ Satel powoduj¹, øe do ich uøytkowania nie jest wymagana specjalistyczna wiedza, a†dziÍki systemowi bezp³atnych testÛw pierwsze prÛby z†radiomodemami Satel moøe podj¹Ê kaøda osoba tym zainteresowana. Tomasz Micha³ek, Astor Sp. z o.o. Dodatkowe informacje Radiomodemy prezentowane w artykule s¹ dostêpne w firmie Astor, tel. (12) 428-63-40, www.astor.com.pl.
127
A U T O M A T Y K A
Przemysłowe cyfrowe karty wejść i wyjść Addinum to karty przeznaczone dla magistrali PCI, ktÛre mog¹ byÊ instalowane zarÛwno w†standardowych obudowach PC z†p³ytami ATX, jak i†w†przemys³owych obudowach 19î. Wejúcia kart s¹ przystosowane do pracy w†przemys³owym standardzie, w†ktÛrym napiÍcie +24 V†odpowiada logicznej ì1î, dziÍki czemu mog¹ one bezpoúrednio wspÛ³pracowaÊ ze sterownikami PLC. Ze wzglÍdu na uniwersalnoúÊ, karty mog¹ byÊ stosowane szeroko w†dowolnych aplikacjach automatyki przemys³owej i†w†sterowaniu procesami, np. do sterowania i†monitorowania stanÛw wejúÊ i†wyjúÊ, do prze³¹czania sygna³Ûw, jako interfejs do automatycznego testowania instalacji i†urz¹dzeÒ, do w³¹czania, wy³¹czania i†monitorowania odbiornikÛw elekt-
rycznych. Pozwalaj¹ takøe na pod³¹czenie takich urz¹dzeÒ, jak np. zawory, pompy, przekaüniki elektromagnetyczne, wentylatory, úwiat³a czy sterowniki PLC. Wejúcia kart s¹ odizolowane galwanicznie od interfejsu PCI wejúcia i†wyjúcia. Zapewnia to odseparowanie komputera od obiektÛw i†sygna³Ûw zewnÍtrznych. Wejúciowe i†wyjúciowe sygna³y cyfrowe s¹ przesy³ane przez optoizolatory. Karty zabezpieczone s¹ teø przed przepiÍciami, wy³adowaniami elektrostatycznymi i†zak³Ûceniami elektromagnetycznymi wysokiej czÍstotliwoúci (EMI). NiektÛre karty wyposaøono w†dodatkowe zabezpieczenia: przed przekroczeniem dopuszczalnej temperatury, przed nadmiernym spadkiem napiÍcia zasilaj¹cego, wbudowano w†nie takøe†modu³y watchdog i†timer. Poprzez odczyt stanu re-
Fot. 1. Karta APCI−1032
Fot. 2. Karta APCI−1500
Niemiecka firma Addi-Data wprowadzi³a do sprzedaøy karty wejúÊ i†wyjúÊ cyfrowych, przystosowanych do pracy w†systemach zasilanych napiÍciem 24 V. S¹ one przeznaczone przede wszystkim do pracy w†trudnych warunkach przemys³owych. Ich moøliwoúci przedstawiamy w†artykule. jestru statusu moøna prowadziÊ bieø¹c¹ diagnostykÍ na wypadek zwarcia, przegrzania, spadku napiÍcia lub jego nadmiernego wzrostu. NapiÍcie nominalne dla logicznej ì1î wynosi 24 VDC, ale dopuszczalny zakres zmian napiÍcia mieúci siÍ w przedziale 19...30†VDC, przy maksymalnym poborze pr¹du 6†mA. NapiÍcie z†przedzia³u†0...17 VDC jest traktowane jako logiczne ì0î (pr¹d wp³ywaj¹cy do wejúcia nie przekracza wtedy 0,6 mA). OpÛünienie sygna³u dla 24
Fot. 3. Karta APCI−1564
Tab. 1. Zestawienie podstawowych parametrów kart firmy Addi−Data Parametr Wejœcia Wejcia przerywaj¹ce Izolacja 1000V Filtr i zabezpieczenie Napiêcie nominalne DC [V] Pr¹d wejciowy przy 24 VDC [mA] Wyjœcia Izolacja 1000V Napiêcie nominalne DC [V]
Wejœcia APCI-1032 APCI-1016 16 tak tak 24 (19-30) 6
32 16 tak tak 24 (19-30) 6
tak
tak
Pr¹d wyjciowy poj. wyjcia [A] Watchdog Timer (1) Ograniczony do 3A dla wszystkich wyjæ (2) Ograniczony do 2x 3A dla wszystkich wyjæ
128
APCI-1564
Wejœciaiwyjœcia APCI-1500
32 16 tak tak 24 (19-30) 6 32 tak 24 (10-36) 0,5 (1) tak tak
16 14 tak tak 24 (19-30) 6 16 tak 24 (10-36) 0,5 (1) tak tak
APCI-1516
Wyjœcia APCI-2032 APCI-2016
8 tak tak 24 (19-30) 6 8 tak 24 (10-36) 0,5 (1) tak
tak tak
tak tak
16 tak 24 (10-36) 0,5 (1) tak
32 tak 24 (10-36) 0,5 (2) tak
Elektronika Praktyczna 10/2003
A U T O M A T Y K A V†wynosi 70 µs, a†maksymalna czÍstotliwoúÊ sygna³u wejúciowego 5†kHz. NiektÛre z†wejúÊ mog¹ byÊ wykorzystywane jako wejúcia przerywaj¹ce, co poszerza moøliwoúci zastosowaÒ. Wyjúcia o†napiÍciu nominalnym 24 VDC wymagaj¹ podania na kartÍ zewnÍtrznego napiÍcia zasilaj¹cego o†wartoúci 10...36 V. Wyjúcia moøna obci¹øaÊ pr¹dem o†natÍøeniu do 0,5 A, przy dopuszczalnym sumarycznym pr¹dzie dla wszystkich wyjúÊ do 3†A (dla kart do 16 wyjúÊ) lub 6†A†(2x3 A†dla kart do 32 wyjúÊ). Wyjúcia maj¹ zabezpieczenia przeciwzwarciowe, realizowane przez bezpieczniki polimerowe. Dodatkowo, w†momencie w³¹czenia zasilania lub restartu komputera wszystkie wyjúcia ustawiane s¹ w†stanie logicznego ì0î. UdostÍpniane przez producenta oprogramowanie to sterowniki dla systemÛw Windows 2000/NT/98, w†tym sterowniki czasu rzeczywistego dla Windows NT, sterowniki do LabView, przyk³ady programowania w†Visual Basic, C, C++, Delphi. DostÍpne s¹ rÛwnieø narzÍdzia dla Linuksa. WiÍkszoúÊ kart obs³ugiwana jest pod Windows przez nowe oprogramowanie Addipack - sterownik oparty na koncepcji karty wirtualnej. Funkcje wszystkich zainstalowanych jednoczeúnie w†komputerze kart interpretowane s¹ jako funkcje jednej
Fot. 4. Karta APCI−2032
(wirtualnej) karty. Pozwala to na napisanie tylko jednej funkcji oprogramowania dla wszystkich kart maj¹cych te same moøliwoúci sprzÍtowe, bez koniecznoúci odwo³ywania siÍ do adresÛw poszczegÛlnych kart. W†serii Addinum dostÍpne s¹ obecnie nastÍpuj¹ce karty dla magistrali PCI: - APCI-1016 - 16 wejúÊ, - APCI-1032 - 32 wejúcia (fot. 1), - APCI-1516 - 8†wejúÊ, 8†wyjúÊ, - APCI-1500 - 16 wejúÊ, 16 wyjúÊ (fot. 2), - APCI-1564 - 32 wejúcia, 32 wyjúcia (fot. 3), - APCI-2016 - 16 wyjúÊ, - APCI-2032 - 32 wyjúcia (fot. 4). Zestawienie ich najwaøniejszych parametrÛw znajduje siÍ w†tab. 1.
Nie tylko wejúcia/wyjúcia Warto tu wspomnieÊ jeszcze o†dwÛch kartach z†serii Addinum, ale o†nieco innych funkcjach. Pierwsza to APCI-2200 (fot. 5) - karta wyjúÊ przekaünikowych. Zaleønie od wykonania zawiera 8 lub 16 przekaünikÛw. Za jej pomoc¹ moøna prze³¹czaÊ napiÍcia o†wartoúci do 60 VDC lub 48 VAC, przy maksymalnym natÍøeniu pr¹du 1†A. Moc dostarczana do obci¹øenia nie moøe przekraczaÊ 30 W. Karta moøe byÊ dodatkowo wyposaøona w†8†wejúÊ cyfrowych 24 V. Drugim interesuj¹cym rozwi¹zaniem jest APCI-1024 - karta 24 wejúÊ cyfrowych rÛønicowych 0...60†V. Przeznaczona jest przede wszystkim do pomiarÛw samochodowych, w†ktÛrych coraz czÍúciej s¹ stosowane systemy zasilania 42 V. W†przeciwieÒstwie do standardowych kart cyfrowych, APCI-1024 moøe pracowaÊ z†dwoma poziomami prze³¹czania, programowanymi niezaleønie dla kaødego wejúcia. Karta sprawdza, czy sygna³ jest poniøej, pomiÍdzy lub powyøej poziomÛw prze³¹czania. Pozwala to na wykrywanie wartoúci krytycznych i†ostrzeganie np. o†spadku napiÍcia lub przekroczeniu zadanego napiÍcia. Do wszystkich prezentowanych w†artykule kart s¹ dostÍpne kable przy³¹czeniowe i†rÛøne wygodne panele zaciskÛw úrubowych i†dodatkowych przekaünikÛw do mocowania na szynie DIN. Dodatkowe informacje
Fot. 5. Karta APCI−2200
130
Opracowanie na podstawie materia³ów firmy Addi-Data: Egmont Instruments, ul. Ch³odna 39, pawilon 11, 00-867 Warszawa, tel. (22) 8506205, fax (22) 6540248, http://www.egmont.com.pl, email: [email protected]
Elektronika Praktyczna 10/2003
A U T O M A T Y K A
Kolorowa moc NS - terminale graficzne HMI nowej generacji
Jakie najistotniejsze cechy powinien mieÊ terminal, aby spe³niaÊ wymagania uøytkownikÛw? Bez w¹tpienia, powinien byÊ przede wszystkim wyposaøony w†czytelny, moøliwie duøy wyúwietlacz, na ktÛrym bÍd¹ wyúwietlane informacje o†przebiegu nadzorowanego procesu. Drug¹ istotn¹ cech¹ jest moøliwoúÊ wygodnego programowania terminala. Trzeci¹, nie mniej istotn¹, jest ³atwoúÊ do³¹czenia terminala do systemu. Poniewaø rynek terminali graficznych jest stosunkowo m³ody, przez d³ugi czas wystÍpowa³y na nim rÛøne, czÍsto sztywne standardy komunikacyjne, co utrudnia³o korzystanie z†tych urz¹dzeÒ w†systemach budowanych na bazie urz¹dzeÒ pochodz¹cych od rÛønych producentÛw. Urz¹dzenia prezentowane w†artykule kreuj¹c pewne nowe, doúÊ sensowne trendy, mieszcz¹ siÍ jednoczeúnie w†utartych standardach, dziÍki czemu projektanci systemÛw automatyki maj¹ zapewniony wysoki komfort ich aplikowania.
Kolorowy zawrÛt g³owy Bez w¹tpienia, obrazy wyúwietlane w†kolorze s¹ bardziej atrakcyjne i†umoøliwiaj¹ przekazanie
wiÍkszej iloúci informacji niø jest to moøliwe za pomoc¹ popularnych monochromatycznych wyúwietlaczy LCD. St¹d, wszystkie terminale z†rodziny NS wyposaøono w†matryce LCD TFT (NS12 i†NS10) lub LCD STN (NS7) o†rozdzielczoúci VGA 640x480 punktÛw (NS10 - przek¹tna 10,4 i†NS7 - przek¹tna 7,7 ) lub 600x800 punktÛw (NS12 - przek¹tna 12,1 ). Zastosowane matryce LCD umoøliwiaj¹ wyúwietlanie obrazÛw w†256 kolorach, a†terminale NS10 i†NS12 moøna wyposaøyÊ w†specjalne karty, za pomoc¹ ktÛrych jest moøliwe przechwytywanie i†wyúwietlanie na ekranie terminala obrazÛw z†kamer TV (wykorzystywanych np. do rejestracji przebiegu monitorowanego procesu).
Komunikacja rzecz podstawowa Ogromny nacisk po³oøyli konstruktorzy terminali z†serii NS na zapewnienie ich ³atwego do³¹czenia do standardowego systemu sieciowego. St¹d podstawowym interfejsem komunikacyjnym we wszystkich terminalach jest Ethernet (10baseT), a†jego alternatyw¹ interfejs ControllerLink. Standardowo, wszystkie terminale maj¹ na wyposaøeniu takøe dwa interfejsy RS232, z†ktÛrych jeden jest przystosowany do wspÛ³pracy z†czytnikiem kodÛw paskowych. Interfejsy te moøna wykorzystaÊ do lokalnej komuni-
Obrazy s¹ coraz powszechniej stosowane w†mediach, w†najbliøszym czasie zdominuj¹ prawdopodobnie takøe telekomunikacjÍ, ktÛra intensywnie promuje MMS-y. Podobne trendy obowi¹zuj¹ w†automatyce, ktÛra doúÊ d³ugo opiera³a siÍ podobnym modom. Nie mog³o to jednak trwaÊ bez koÒca... Rewolucja zachodzi na naszych oczach: terminale s³uø¹ce do komunikacji z†uøytkownikiem (HMI) s¹ wyposaøane w†coraz silniejsze jednostki centralne, dziÍki czemu - oprÛcz wyúwietlania efektownych grafik - mog¹ spe³niaÊ takøe szereg dodatkowych zadaÒ, a†tworzenie rozproszonych systemÛw sterowania jest coraz ³atwiejsze. kacji terminala ze sterownikami PLC lub innymi urz¹dzeniami wykorzystywanymi w†systemie.
Inteligencja lokalna Terminale z†rodziny NS, w†odrÛønieniu od wiÍkszoúci terminali poprzedniej generacji, wyposaøono w†silny, lokalny procesor, dziÍki ktÛremu czÍúÊ zadaÒ zwi¹zanych z†akwizycj¹ danych jest wykonywana ìna miejscuî. Pomaga w†tym m.in. wbudowana w†termi-
132 132
Elektronika Praktyczna 10/2003
A U T O M A T Y K A nale pamiÍÊ danych lokalnej aplikacji, ktÛrej pojemnoúÊ moøe siÍgaÊ 20 MB (przy 4†MB standardowo dla terminali NS12 i†NS10) lub 6†MB (NS7). Jak wczeúniej wspomniano, wbudowanie w†terminale silnego procesora pozwoli³o wykonywaÊ niektÛre funkcje zwi¹zane z†akwizycj¹ danych bezpoúrednio przez terminal. Zgromadzone dane (mog¹ to byÊ m.in. obrazy przechwycone z†kamery) s¹ przechowywane na karcie pamiÍci CompactFlash, dziÍki czemu moøna je ³atwo przenosiÊ w†dowolne miejsce i†poddawaÊ dalszej obrÛbce. Karta CompactFlash moøe s³uøyÊ takøe do rejestrowania informacji o†predefiniowanych przez uøytkownika alarmach/zdarzeniach wykrytych przez terminal. Istotn¹ zalet¹ terminali NS jest moøliwoúÊ ³atwego programowania animacji i†sekwencji obrazÛw na bazie wczeúniej przygotowanych grafik.
£atwe programowanie W†odrÛønieniu od terminali starszych generacji, terminale NS nie wymagaj¹ programowania za pomoc¹ jÍzyka drabinkowego. Przed uøyciem wymagaj¹ one jedynie prostej w†przeprowadzeniu konfiguracji, czÍúÊ funkcji moøna programowaÊ korzystaj¹c z†jÍzyka skrytpowego operuj¹cego na obiektach (typu: okna dialogowe, wielopoziomowe menu). KonfiguracjÍ terminali u³atwia oprogramowanie narzÍdziowe NS Designer.
134
Standardowa reszta Nowoúci wprowadzone przez producenta do terminali prezentowanych w†artykule to tylko czÍúÊ moøliwoúci oferowanych przez nie uøytkownikom. Spe³niaj¹ one oczywiúcie rygorystyczne normy szczelnoúciowe (obudowa zgodna z†IP65), s¹ przystosowane do dalszej rozbudowy, maj¹ wbudowane wielojÍzyczne menu konfiguracyjne i†wiele innych cech,
uznawanych wspÛ³czeúnie za typowe. S³owem, bardzo efektywne i†efektowne po³¹czenie dobrych ìstarychî standardÛw z rozwi¹zaniami ocieraj¹cymi siÍ o†awangardÍ. 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.
Elektronika Praktyczna 10/2003
A U T O M A T Y K A
Sterowniki programowalne SIMATIC S7-200, część 2
Kontynuujemy prezentacjÍ moøliwoúci komunikacyjnych sterownikÛw PLC firmy Siemens. W†tej czÍúci przedstawiamy sposoby do³¹czenia ich do sieci Ethernet, za jej poúrednictwem do Internetu i†korzystania z†jego ogromnych moøliwoúci: wysy³ania i†odbioru e-maili, przesy³ania plikÛw itp. SieÊ Ethernet CP243-1 - interfejs Ethernet dla sterownikÛw S7-200 Koncepcja TIA - ca³kowicie zintegrowanej automatyki - dotycz¹ca uk³adÛw sterowaÒ programowalnych, uwzglÍdnia koniecznoúÊ zapewnienia komunikacji na kaødym poziomie sterowania. Pocz¹wszy od systemÛw zarz¹dzania przedsiÍbiorstwem ERP i†MES, poprzez niøsze warstwy komunikacji - poczynaj¹c od Ethernetu zapewniaj¹cego szybk¹ wymianÍ duøej iloúci danych pomiÍdzy komputerami typu PC (pracuj¹cymi jako stacje klient-serwer), nastÍpnie Profibus - sieÊ polowa zapewniaj¹ca us³ugi wymiany danych miedzy sterownikami PLC lub ìwyspamiî wejúÊ-wyjúÊ binarnych i†analogowych, aø do sterowaÒ obiektowych opartych na sieci ASi steruj¹cej elementami wykonawczymi i†odczytuj¹cymi sygna³y obiektowe, uk³ady automatyki SI-
Elektronika Praktyczna 10/2003
MATIC zapewni¹ komunikacjÍ i†przechodnioúÊ na wszystkich poziomach sieci. Jednoczeúnie Siemens stale wytwarza nowe modu³y, ktÛre s¹ w³¹czane do systemÛw sieciowych spe³niaj¹cych koncepcjÍ Ca³kowicie Zintegrowanej Automatyki. Jednym z†nowych opracowaÒ jest CP243-1 (fot. 7) - interfejs komunikacyjny do³¹czany do sterownika S7-200. Za jego pomoc¹ sterownik S7-200 moøe komunikowaÊ siÍ z†innymi uczestnikami sieci Ethernet. Z wykorzystaniem CP243-1 moøna zaprojektowaÊ do 8†po³¹czeÒ z†innymi uczestnikami sieci pracuj¹cymi jako klient lub serwer. Moøliwe jest po³¹czenie sterownika S7200 poprzez CP243-1 ze sterownikami S7-300, S7-400 w†tym rÛwnieø z†komputerami PC wyposaøonymi w†kartÍ ethernetow¹. Poprzez us³ugÍ OPC-serwer moøliwa jest wymiana danych pomiÍdzy S7-200 z†CP243-1 a†komputerem PC z†systemem wizualizacji WinCC, WinAC lub Protool/Pro (rys. 8). Na komputerze PC trzeba zainstalowaÊ driver Softnet S7, ktÛry zapewnia wymianÍ danych w†oparciu o†tzw. funkcje S7 (funkcje zapewniaj¹ce komunikacjÍ pomiÍdzy sterownikami serii S7 zapisanymi w†BIOS-ie sterownikÛw) pomiÍdzy systemem wizualizacji a†wiÍksz¹ liczb¹ sterownikÛw S7-200 z†do³¹czonymi modu³ami CP243-1. Uboczn¹ zalet¹ zastosowania CP243-1 jest moøliwoúÊ zdalnego programowania, diagnostyki sterownikÛw S7-200 w†sieci Ethernet za pomoc¹ oprogramowania Step7 Micro/WinV3.2. W†oprogramowaniu Step7Micro/Win V3.2 przygotowany zosta³ specjalny kre-
ator projektÛw, ktÛry za pomoc¹ zapytaÒ i†odpowiedzi generuje kod programu potrzebny do wytworzenia komunikacji w†sieci Ethernet. Dane projektowe gromadzone s¹ w†CPU, dziÍki czemu przy wymianie CP243-1 nie jest potrzebne kolejne parametryzowanie modu³u. Adres IP dla CP243-1 moøe byÊ nadawany na etapie projektowania lub z†serwera za pomoc¹ protoko³u BOOTP (bootstrap-protocol). Ma to miejsce, gdy przy³¹czamy do sieci Ethernet CP243-1 bez okreúlonego adresu IP. Modu³ CP243-1 w†takim przypadku poszukuje serwera BOOTP i†zg³asza siÍ z†w³asnym adresem MAC, ktÛry jest nadawany przez producenta i†jest niezmienny oraz niepowtarzalny. Modu³ CP2431 posiada z³¹cze typu RJ45. Moøe pracowaÊ z†prÍdkoúciami od 10 do 100 Mb/s w†trybie duplex i†pÛ³duplex (prÍdkoúÊ wymiany danych jest ustalana automatycznie). Poprzez do³¹czenie innych modu³Ûw siecio-
Fot. 7
135
A U T O M A T Y K A
Rys. 8 wych np. do sieci ASi lub Profibus, sterownik S7-200 moøe byÊ traktowany jako inteligentny modu³ interfejsu pomiÍdzy segmentami sieci, czyli inteligentny sterownik systemu Ca³kowicie Zintegrowanej Automatyki.
SieÊ Internet Nieco wiÍksze moøliwoúci oferuje modu³ CP243-IT, za pomoc¹ ktÛrego moøna zarz¹dzaÊ prac¹ sterownika S7-200 w†sieci Internet i†Intranet. Komunikacja interfejsu CP243IT za pomoc¹ standardowych funkcji S7 przebiega identycznie jak w†przypadku interfejsu CP243. Modu³ CP243-IT jest pod³¹czany do sterownika S7-200 jak typowy modu³ rozszerzenia. Modu³ CP243-IT jest przeznaczony dla nastÍpuj¹cych aplikacji: - sterowanie urz¹dzeÒ i†kontrola ich pracy poprzez zintegrowany webserwer w†sieci Internet i†Intranet, - wbudowany webserwer (http serwer) z†8†MB pamiÍci dla umieszczenia plikÛw (stron internetowych} w†standardzie HTML, - gotowe strony dla wyúwietlania statusu, konfiguracji oraz wyúwietlania zmiennych ze sterownika S7-200,
136
- moøliwoúÊ tworzenia apletÛw za pomoc¹ jÍzyka JAVA, - FTP serwer dla dostÍpu do plikÛw systemowych poprzez sieÊ, wykorzystuje siÍ to np. do za³adowania plikÛw HTML do procesora komunikacyjnego, - moøliwa komunikacja z†8†uczestnikami sieci.
Przesy³anie wiadomoúci e-mail Zastosowanie modu³u CP243-IT umoøliwia wysy³anie i†odbiÛr emaili z†poziomu sterownika PLC. Uøytkownik moøe okreúliÊ przyczynÍ wys³ania e-maila, dziÍki czemu moøna je wykorzystaÊ np. do przesy³ania informacji o†alarmach wykrytych podczas pracy systemu. Ponadto jest moøliwa wymiana danych przez aplikacjÍ uøytkownika za pomoc¹ FTP (File Transfer Protokol). MoøliwoúÊ ta nie musi byÊ wykorzystywana wy³¹cznie do ³adowania plikÛw HTML do pamiÍci modu³u CP243-IT - moøna j¹ wykorzystaÊ takøe do wymiany zmiennych pomiÍdzy CP234-IT a†CPU S7-200. W†tym przypadku CPU pracuje jako klient FTP. Moøliwym jest wiÍc zapamiÍtywanie w†pamiÍci typu ÑVî sterownika S7200 plikÛw, jako zmienne przekazywanych poprzez sieÊ Internet z†systemu nadrzÍdnego np. komputera PC.
DziÍki temu jest moøliwa wymiana danych pomiÍdzy uczestnikami sieci, pracuj¹cych z†rÛønymi systemami operacyjnymi. Oczywiúcie CPU moøe wykorzystywaÊ FTP do komunikacji z†webserwerem modu³u CP243-IT.
Wymiana danych poprzez CP243-IT z†innymi sterownikami S7 w†sieci Ethernet Sterownik S7-200 wspÛ³pracuj¹cy z†modu³em CP243-IT moøe komunikowaÊ siÍ poprzez Ethernet ze sterownikami S7-300 i†S7-400, wykorzystuj¹c standardowe funkcje S7. Moøliwe jest po³¹czenie CP243-IT z†innymi 8†uczestnikami sieci Ethernet.
Wymiana danych poprzez CP243-IT z†komputerami PC Wymiana danych pomiÍdzy sterownikiem S7-200 z†CP243-IT i†komputerem PC jest moøliwa za pomoc¹ interfejsu OPC. Jest on dostarczany wraz z†funkcjami S7 potrzebnymi do obs³ugi zainstalowanej karty sprzÍtowej w†PC, z†oprogramowaniem SOFTNET S7. Komputer PC moøe byÊ uøyty do wizualizacji i†archiwizacji danych procesowych np. z†aplikacjami stworzonymi za pomoc¹ Wince lub WinAC. Micha³ Bereza, Siemens
Elektronika Praktyczna 10/2003