10/2003 październik 15 zł 50 gr

Transkrypt

10/2003 październik 15 zł 50 gr
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
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
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
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
Wejœcia przerywaj¹ce
Izolacja 1000V
Filtr i zabezpieczenie
Napiêcie nominalne DC [V]
Pr¹d wejœciowy 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 wyjœciowy poj. wyjœcia [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
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
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
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
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
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
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
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¿liwoœci wyzerowania liczników
atramentów), C60, C61/62/70/80/
82 (brak mo¿liwoœci 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¿liwoœci
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
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
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
Wyjœcie
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 wyjœciowy
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
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
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êstotliwoœci
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 wejœciowa
50 kΩ||8 pF
Maksymalne napiêcie wejœciowe od -5 V do +10 V
Niejednoczesnoœæ akwizycji danych max. 2 ns pomiêdzy wejœciami
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
Wyœwietlanie
- 24 kana³y mog¹ byæ wyœwietlane jako przebiegi czasowe,
- u¿ytkownik definiuje nazwy tych kana³ów,
- kana³y s¹ wyœwietlane w kolejnoœci 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
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
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
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 przekaŸnikó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-wejœciowa karta wejœæ
analogowych,
AVT-537 - 4-cyfrowy wyœwietlacz LED,
AVT-538 - 32-znakowy wyœwietlacz 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
wyœwietlacz
ESC 7 w c n z enter
c - zapis cyfr
n - numer cyfry (pozycja) 1...4
z - wyœwietlony 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 wyœwiet- c - zapis cyfr
lacze jednoczeœnie 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 wyœwietlaczu o numerze 3 Zapis nowych wartoœci na wszystkie
wyœwietlacze, odpowiednio c1 dla
wyœwietlacza DP1, c2 dla wyœwietlacza
C2, itd.
Zapis do wyœwietlacza cyfr 1234
Zapala lub gasi kropkê dziesiêtn¹ o numerze podanym w parametrze “n”. Jeœli s=0,
to kropka zostanie wygaszona, jeœli s=1,
to kropka zostanie zapalona.
Zapala kropkê dziesiêtn¹ na wyœwietlaczu
o numerze DP1
Zapis stanów
ESC 7 w k a k1 k2 k3 k4 enter Ustala stany wszystkich kropek jednoczeœwszystkich kropek k - zapis stanu kropki
nie, jeœli kn=1 to kropka zapalona,
dziesiêtnych
a - zapis wszystkich kropek
jeœli kn=0, to kropka zgaszona
jednoczeœnie
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 wyœwietlaczach DP1
i DP3, a gasi kropki na wyœwietlaczach
DP2 i DP4
Odczyt cyfry
ESC 7 r c n enter
Zwraca wartoœæ wyœwietlan¹ na wyœwietwyœwietlanej na
r - odczyt
laczu podanym w parametrze “n”.
jednym wyœwiet- c - dotyczy cyfr
Jeœli wyœwietlacz jest wygaszony, to
laczu
n - numer wyœwietlacza (1...4) zwraca spacjê.
Przyk³ad:
ESC 7 r c 2 enter
Odczytuje wartoœæ zapisan¹ na
wyœwietlaczu DP2
Odczyt wszystkich ESC 7 r c a enter
Zwraca wartoœci wszystkich cyfr wyœwietcyfr jednoczeœnie
lanych (cztery znaki) na wyœwietlaczach
zaczynaj¹c od wyœwietlacza DP1. Jeœli
wyœwietlacz jest wygaszony, to zwraca
spacjê.
Przyk³ad:
ESC 7 r c a enter
Zwraca wartoœci wszystkich wyœwietlaczy
Odczyt stanu
ESC r k n enter
Odczytuje stan kropki na wyœwietlaczu
wskazanej kropki r - odczyt
wskazanym w parametrze “n”. Jeœli kropka
dziesiêtnej
k - dotyczy kropek
jest zapalona, to zwraca “1” (ASCII), jeœli
n - numer kropki (1...4)
jest zgaszona, to zwraca “0” (ASCII)
Przyk³ad:
ESC r k 3 enter
Zwraca stan kropki na wyœwietlaczu DP3
Odczyt stanów
ESC r k a enter
Zwraca stan wszystkich kropek, poczynaj¹c
wszystkich kropek
od kropki na wyœwietlaczu DP1. Jeœli
jednoczeœnie
kropka jest zapalona, to zwraca “1” (ASCII),
jeœli zgaszona, to zwraca “0” (ASCII).
Przyk³ad:
ESC r k a enter
Zwraca stan wszystkich kropek
jednoczeœnie
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 wyœwietlacza
Zapis rozkazu
do wyœwietlacza
Zapis rozkazu
do wyœwietlacza
Zapis rozkazu
do wyœwietlacza
ESC 8 w c enter
Zapis poziomu
intensywnoœci
podœwietlania
ESC 8 w l n enter
n- jasnoϾ(0...9),
Kasowanie wyœwietlacza (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 wyœwietlaczu. Znaki s¹ wpisywane na wyœwietlacz
do momentu naciœniêcia klawisza ESC
W³¹cza podœwietlanie wyœwietlacza
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 wyœwietlacza
Odczyt poziomu
ESC 8 r l enter
intensywnoœci
podœwietlania
W³¹cza podœwietlanie wyœwietlacza z pe³n¹
moc¹
Wy³¹cza podœwietlanie wyœwietlacza
Zwraca 16 znaków odpowiadaj¹cych
zawartoœci pierwszej linii wyœwietlacza
Zwraca 16 znaków odpowiadaj¹cych
zawartoœci drugiej linii wyœwietlacza
Zwraca 32 znaki odpowiadaj¹ce zawartoœci
ca³ego wyœwietlacza w jednym ci¹gu
Zwraca jeden znak ASCII bêd¹cy cyfr¹
z zakresu 0...9 okreœlaj¹c¹ aktualn¹
wartoœæ intensywnoœci podœwietlania
wyœwietlacza.
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
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
wiadomoœci SMS.
odbiorcy
Pierwszy oktet
Nale¿y wprowadziæ
D³ugoœæ numeru
statusu wiadomoœci
wartoϾ 0
odbiorcy w bajtach
SMS (11H to
wartoϾ typowa dla
wiêkszoœci
wiadomoœci)
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
wiadomoœci 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 <CR>.
2. AT+CMGS=32 <CR>.
3. >07918406010013F011000791
8496959192F30000BF0A456671
49953E9DC96510 <CTRL+Z>.
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 <CR>.
2. AT+CMGS=ì+48605010203î
<CR>.
3. >ELEKTRONIKA PRAKTYCZNA <CTRL+Z>.
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
domyœlny, 7-bitowe
znaki ASCII
Okres wa¿noœci 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
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
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
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
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
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
▲
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

Podobne dokumenty