elektronika praktyczna 2002


NA CD M.IN. KATALOGI: 臉j ORAZ &1P
7/2002 > lipiec > 15 z艂 50 gr (wtym7%vAT)
艢81'EGO STEROWANIA
3GRAMATOR 1HP" DLA MIKROWEWSlgROLER脫W AVR ZESTAW EDUKACYJNY^D.LA JVIIKROI玂NTROLER脫W ST62
UNIWERSALNY REGU REJESTRATOR TELd
PROGRAMATOR W STEROWNIK ODTV
SPRZ臉TOWY TE BYTEBLASTER
V SILNIKA AC
KURS: TANDARDU
SPRZ臉T:
SYSTEM BEZSTYKOWBJ IDENTYFI FIRMY TEXAS INSTRUMENTS SMARTPROG - INTEL'1'艢iHMNY PR.Q FLASH I USB W HC08 ^6S艂 . -'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^H BIBLIOTEKA EP
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 rnarnowa膰 miejsca w EP, nie b臋dzie my publikowa 膰 recenzji ksi膮偶ek ocenianych na jedn膮 lub dwie
przydatno艣ci ksi膮偶ki,
Uwaga! Wi臋kszo艣膰 prezentowanych ksi膮偶ek mo偶na zam贸wi膰 w Dziale Handlowym A,VT (patrz str, 73), Chcemy w ten spos贸b udost臋pni膰 je Czytelnikom EP,
Monika Ku bas, Marian Moiski: "Karta eiektroniczna -bezpieczny no艣nik informacji", Mikom 2002
ic俰mu* mlnatoen wiera rozdzia艂 4, kt贸ry po艣wi臋con
przedstawieniu nomenklatury zwiq
zanej z kartami elektronicznym
oraz prezentacji najwa偶niejszyc
norm opisuj膮cych zar贸wno mecha- ]23f SfcTfc SOOO I
niczn膮, jak i elektryczn膮 budow臋
kart. Niezwykle 艂akomym dla prak- ^ OJ/81 CK/03 1 Jak wynika z informacji o tej tyk贸w k膮skiem jest rozdzia艂 6,
ksi膮偶ce znajduj膮cych si臋 na stronie w kt贸rym opisano komunikacj臋 kart MONIKA
WWW wydawnictwa Mikom, atak- ze sterownikiem (mikrokontrolerem) MARIAN
偶e z jej wst臋pu, jest to drugie, po- zintegrowanym w czytniku. Nieco
ukira艂anesi臋Wy odnitakimi膮sakmymkt脫tya ^ rzyllatne^informaS -^zczet^il KARTA E LL KTRONICZNA
tu艂em w 1999 roku. Szczerze m贸- dla u偶ytkownik贸w kart - przedsta- ^piPr,:m H^H-k
wi膮c, w stosunku do pierwszego wiono w rozdzia艂ach 7 i 8, w kt贸-
nie tyle poprawionego, co napisa- lu 偶ycia karty oraz bezpiecze艅stwo
nego od nowa, dzi臋ki czemu u偶ytkowania kart elektronicznych,
znacznie wzros艂y walory u偶ytkowe W bardzo kr贸tkim - a szkoda - roz-
i poznawcze tej pozycji. Wynika to dziale 9 autorzy w ekspresowym
z faktu, 偶e opr贸cz interesuj膮cego tempie "przelatuj膮" nad stosowany-
rysu historycznego, autorzy zawarli mi w kartach elektronicznych me-
w ksi膮偶ce bardzo du偶膮 ilo艣膰 infor- todami kompresji danych. Do艣膰 po- resy firm dzia艂aj膮cych na rynku
macji praktycznych, kt贸re zosta艂y bie偶nie potraktowano tak偶e prezen- polskim. Znalaz艂 si臋 w艣r贸d nich
usystematyzowane, u艂atwiaj膮c zrozu- tacj臋 systemu numeracji kart. Roz- tak偶e przejrzy艣cie opracowany
mienie zagadnie艅 przedstawianych dzia艂y 11 i 12 zawieraj膮 przegl膮d s艂ownik polskiej terminologii.
w ksi膮偶ce. zastosowa艅 kart elektronicznych Podsumowuj膮c: dobrze napisana,
Autorzy przedstawili w艂asn膮 kla- w r贸偶nych aplikacjach oraz dost臋p- logicznie skomponowana ksi膮偶ka,
syfikacj臋 kart elektronicznych, om贸- no艣膰 kart r贸偶nego rodzaju w Pols- zawieraj膮ca praktycznie wszystkie
wili budow臋 kart r贸偶nego rodzaju ce. podstawowe informacje o kartach
(艂膮cznie z kartami bezstykowymi) i- Du偶ym atutem ksi膮偶ki s膮 zawar- elektronicznych, w tym bezstyko-
co prawda nieco skr贸towo - przed- te w niej dodatki, w kt贸rych auto- wych. Polecamy!
stawili mo偶liwo艣ci kart pami臋cio- rzy zebrali podstawowe dane kata-
wych wyposa偶onych we w艂asny logowe kilku popularnych typ贸w
system plik贸w oraz systemy opera- kart, adresy stron internetowych
cyjne. Bardzo cenne informacje za- zwi膮zanych z tematyk膮 ksi膮偶ki i ad-
M. Ritchie: "J臋zyk ANSI C", do nauki programowania w j臋zyku C. towany bardziej szczeg贸艂owo - om贸-
WNT 2002, 358 str. Mimo zmiany tytu艂u (dotychczas ksi膮偶- wion臋 s膮 m.in. podstawowe i z艂o偶one
ka ta by艂a znana w Polsce pod tytu- typy danych, operatory j臋zyka C, in-
艂em "J臋zyk C"), tre艣膰 ksi膮偶ki jest na- strukcje steruj膮ce wykonywaniem pro-
Przegl膮daj膮c ksi膮偶ki dotychczas wy- wzorcowy dla kursu nauczania progra- rozdzia艂 po艣wi臋cono "wizyt贸wce" j臋zy-dane przez wydawnictwo WNT w ra- mowania w dowolnym j臋zyku. Ksi膮偶ka ka C, czyli wska藕nikom, kt贸re nietrudno nie odnie艣膰 wra偶enia, 偶e tytu艂 ka C, przy czym dob贸r tre艣ci pozwala gramist贸w do j臋zyka C. Tak wi臋c wy-
Najlepsaym tego przyk艂adem jest oma- programu ju偶 po przeczytaniu kilku- rzeczy 艂atwiejszych do bardziej skorn-wiana ksi膮偶ka, kt贸ra doczeka艂a si臋 ju偶 dziesi臋ciu stron, W dalszej cz臋艣ci plikowanych, Dodatkowym atutem jest
Elektronika Praktyczna 7/2002 121
IBLIOTEKA EP
spo艂贸w. W ostatnim rozdziale autorzy du偶a liczba program贸w przyk艂adowych. przedstawili spos贸b produkcji uk艂ad贸w Ksi膮偶ka jest adresowana do szero- scalonych i innych element贸w p贸艂prze-
ksi膮偶ka o du偶ych walorach praktycznych, polecamy!
daleka od doskona艂o艣膰


autorzy przygotowali tak偶e kr贸tkie 艢adzenie w technik臋 przesy艂贸w sa-
t臋pn
mpil
tego

rnyct
]臋zyka dla wielu popularnych mikro- dlatego pewnie wielu z nich nawet do Naszym zdaniem opracowanie ]est
k贸w pisz膮cych programy dla budowa- nie艅 bardzo istotnych dla rozumienia pletnymi schematami elektrycznymi
ad贸i
ipo艂c
lektroniki. Moi

ych odbiornik贸w. Fra schemat贸w, do kt贸rych odwo艂uj膮
Dzi臋ki nim ka偶dy mo偶e zweryfikowa膰 Jerzy Gremba, Sebastian z艂o偶y膰 w ca艂o艣膰, co w niekt贸rych przy-
stopie艅 przyswojenia materia艂u. Gremba: "Naprawa odbiornik贸w padkach mo偶e wr臋cz uniemo偶liwi膰 na-
Na szczeg贸ln膮 pochwa艂臋 zas艂uguje satelitarnych", Wies艂aw prawe odbiornika. Szkoda te偶, 偶e ksi膮偶-
twarda oprawa ksi膮偶ki, dzi臋ki niej b臋- Haligowski 2002 ka nie ukaza艂a sie_ na rynku kilka lat
za kilka lat. ^^^^^^ analogowe odbiorniki satelitarne. Z tego
Bosch: "Mikroelektronika ////
w pojazdach", WK艁 2002 Co prawda, analogowa telewizja sa-
telitarna powoli odchodzi w historycz-ny niebyt, ale nadal na rynku s膮 do-st臋pne r贸偶norodne modele odbiornik贸w umo偶liwiaj膮cych jej odbi贸r. Nadal s膮 Miesi膮c temu, w odpowiedzi na ]e- taks臋 nadawane w ten spos贸b pro gra-
den z list贸w nades艂anych do redakcji, my telewizyjne. W ksi膮偶ce autorzy zeb-
polecali艣my t臋 ksi膮偶k臋 i s艂usznie, bo rali komplet informacji przydatnych,
dzie ona przydatna tak偶e elektronikom. wisach analogowych odbiornik贸w sate-ICsi膮sk臋 rozpoczyna krotki wst臋p, w ra- litarnych. Vvsrod nich znaidui膮 si臋 dosc
dzia艂ania eleme n t o w stos owa ny ch kow [13 na]bardzie] popularnych ty-w elektronice, w tym tak偶e dzia艂anie pow), opisy typowych napraw 17 mo-elementow p贸艂przewodnikowych. W ko- d臋li odbiornik贸w satelitarnych oraz naj-
formacje o mi kr oko艅 troi erach, prze ds ta- biorczych stosowanych w odbiornikach wio no ich architektury i sposoby pro- [wsrod nich modele oferowane przez
o przyk艂adowy komputer samochodowy nasonic j wiele innych firm), W jednym
Elektronika Praktyczna 7/2002
IBLIOTEKA EP
Jarrod Hollingworth, Dan Butterfield, Bob Swart, Jai
wych komponent贸w oraz program贸w arz臋dziowych dla programuj膮cych
Vademecum profe Tom II", Helion
uilder
Piotr Lesiak, Dariusz 艢wisulski: "Komputerowa
/godnie z wcze艣niejszymi zapowie- technika pomiarowa dziami wydawnictwa Helion, w maju w przyk艂adach", zawiera CD-br. ukaza艂 si臋 drugi tom znakomitej ROM, Agenda Wydawnicza
ksi膮偶ki o Ctt Euilderze, wydany w ra- PAK 2002
gdy艣 spodziewali艣my si臋, se wreszcie Szybki roz w oj elektroniki
der. Nasze oczekiwania spe艂ni艂y si臋. zelektronizowanych element贸w s艂u偶膮 Tom drugi jest uzupe艂nieniem wia- cych do budowy system贸w steruj膮co
k臋 sk艂adaj膮 si臋
niezale偶nych podr臋cznik贸w. Jest to rozwi膮zanie korzystne dla Czytelnik贸w,
znacznie trudniejszy do przyswojenia przez programist贸w 艣redniozaawanso-wanych ni偶 wt贸rnie pierwszym. Omowe, wykorzystanie COMt, technologi臋 MIDAS, COREA, ActiveX, zaawansowa-
Na do艂膮czonej do ksi膮偶ki p艂ycie CD-ROM znajduj膮 si臋 m.in. kody 藕r贸d艂owe 2 przyk艂adami zawartymi w ksi膮偶ce, Dodatkowo na p艂ycie znajduje si臋
wiele freeware owych i shareware
y, to mo偶liwe w tym najpopularniejszych magistral 贸w jako
KOMPUTEROWA TECHNIKA POMIAROWA
ter _ A
i interfejs贸w komunikacyjnych, opis
czujnik贸w i wsp贸艂pracuj膮cych z nimi wzmacniaczy pomiarowych (kondycjo-ner贸w), a tak偶e element贸w tworz膮cych system akwizycji danych DAQ. Wi臋kszo艣膰 istotnych dla praktyk贸w zagadnie艅 autorzy przedstawili wraz z niezb臋dn膮 dawk膮 teorii, ale podan膮
ksi膮偶ki po艣wi臋cono prezentacji podsta-wowych mo偶liwo艣ci pakiet贸w LabView oraz Measurement Studio, dzi臋ki cze-
ttm profesjonalisty pleksowego poznania wsp贸艂czesnych
sposob贸w tworzenia system贸w akwizy- , cji i obr贸bki danych.
ra CD-ROM z Instrupedi膮 firmy Na-
Tom 2
C++Builder5
Elektronika Praktyczna 7/2002
IBLIOTEKA EP
Jacek Matuszczyk: "Poradnik Reinhard Wobst: "Kryptologia. Anton Herner: "Elektronika
antenowy", WK艁 2002 Budowa i 艂amanie w samochodzie", WK艁 2001
zabezpiecze艅", zawiera
CD-ROM, Wydawnictwo
RM 2002
dziele niezwykle umiej臋tnie po艂膮czy艂
dziwe komputery na k贸艂kach. Me-
wych z praktycznymi poradami i pre- z pewno艣ci膮 nie zaii zentacj膮 r贸偶nego rodzaju rozwi膮za艅 kich elektronik贸w,
tat
idu艂ar
w ksi膮偶ce opracowa艅 pochodzi "ze z kryptografi膮 ukryt膮 w karcie kredyto- la si臋 zdalnie poprzez specjalne z艂膮-艣wiata", ale znajduj膮 si臋 w niej tak- wej b臋dziemy mieli ju偶 wkr贸tce do cze diagnostyczne.
pr;

przez r贸偶ne s艂u偶by oraz w aplika- podpis贸" cjach komercyjnych, jak na przyk艂ad
ucieszy z pewno艣ci膮 rozdzia艂, w kt贸rym autor om贸wi艂 materia艂y i podzespo艂y stosowane do budowy anten,
r贸偶nego typu. Wiele praktycznych
tak偶e projekty prostych przyrz膮d贸w nie wykona膰. Ksi膮偶ka jest bogato ilu-
偶o rysunk贸w pogl膮dowych i konstruk-cyjnych, dzi臋ki kt贸rym mosna dosc
ne do budowy anten.
a tak偶e spor膮 dawk臋 rzetelnej wiedzy
klucze
Elektronika
w samochodzie
Kryptologia
Anton Herner
W prezentowanej ksi膮偶ce autor przedstawi艂 kilka przyk艂adowych sys-
nych samochodach, w tym: uk艂ady regulacji dynamiki jazdy, uk艂ady zapo-
To wszystko w przysz艂o艣ci, a ju偶 biegania kradzie偶y i uk艂ady zwi臋ksza-teraz - dzi臋ki prezentowanej ksi膮偶ce j膮ce bezpiecze艅stwo os贸b podczas "wy-- mamy mo偶liwo艣膰 poznania tajnik贸w padkow. Nieco miejsca przeznaczono wsp贸艂czesnych algorytm贸w szyfruj膮- tak偶e na opis magistrali komunikacyj-cych (DES, RSA i ich modyfikacji), nej CAN stosowanej w samochodach
mi kryptograficznymi, Autor rzuci艂 matycznego kierowania samochodami tak偶e 艣wiat艂o na polityczne i gospo- lub - w nieco prostszych wykonaniach
nia szyfrowanej dystrybucji informacji. parkingach.
Niezwykle interesuj膮ce jest tak偶e Zawarto艣膰 ksi膮偶ki - z powodu
przygotowane przez autora wprowa- niezbyt du偶ej liczby elektronicz-
dzenie w tematyk臋 szyfrowania, z kr贸t- nych szczeg贸艂贸w - usatysfakcjonuje
kim rysem historycznym [od szyfru racz臋] me cha nikow sam ochodowy ch,
przede wszystkim z Internetu. Ksi膮偶k臋 i wymaganiach stawianych tym nie-wydano w twardej oprawie, zawiera zwykle profesjonalnym konstruk-
Elektronika Praktyczna 7/2002
AUTOMATYKA
Build a mor臋 rehabl臋 worlcT
Z systemem
operacyjnym QIVX
zetkn膮艂 si臋 niemal
ka偶dy, lecz niewielu
z nas zdaje sobie
z tego spraw臋 - jest
on bowiem s tos owany
w bardzo wielu
'.膮dzei
ach
codziennego u偶ytku (np.
w VCR i DVD),
a tak偶e w aparaturze
medycznej, sztucznych
satelitach i promach
kosmicznych.
System operacyjny QNX zosta艂 stworzony na pocz膮tku lat 80. przez kanadyjsk膮 firm臋 QNX Software Systems. Wersja, kt贸r膮 tu przedstawia-
wersja Beta systemu QNX 6.2) bazuje na j膮d-
od podstaw wiele lat te-
Wiele os贸b zd膮偶y艂o pozna膰 star膮 wersj臋 sys-
sj膮 interfejsu graficznego
dyskietce 1.44MB. Naj-
QNX RTP desktop-enhan-ced (darmowa dla zasto-
dzia艂a z platformami opartymi na procesorach typu
nowoczesnych pi
typu RISC. Wersj臋 t膮 wy-ny interfejs graficzny, bez
z wcze艣niejszych wersji bardzo stabilne j膮dro systemu - Neutrino.
Instalacja
Pierwsz膮 wersj臋 platformy QNX RTP (RTP -
W
syste

og艂y by膰 insta-
dyskach z partycjami zawieraj膮cymi w艂asny system plik贸w QNX, jak te偶 na partycjach z systemem plik贸w FAT. Instalacja na
wistego - Real-Time Plat-wrze艣niu 2000 roku i od
ternetowej QNX 艣ci膮gn臋艂o j膮 ju偶 ponad milion u偶ytkownik贸w. Od tamtej pory firma QNX Software Systems wypu艣ci艂a ju偶 kilka poprawek i uaktual-
cej,
jest trudna, potrzebne jest jedynie oko艂o 1GB wolnego miejsca na dysku, jednak偶e ka偶dy megabajt wi臋-
riany przez system.
Pulpit
QNX RTP ma w艂asny
kownika nazwany Photon. u lat, "
艢stei
ta艂
Photon nie obs艂uguje ikon pulpitowych, jednak偶e Si-debar jest ich namiastk膮. Nowa wersja systemu posiada narz臋dzia oparte
u偶ytkownika (GUI) umo偶liwiaj膮ce konfiguracj臋 po艂膮cze艅 LAN i dial-up (rys. 2) oraz sterownika grafiki (rys. 3). Instalacja nowych sterownik贸w wymaga ko-
W systemie znajduje si臋 wiele plik贸w pomocy, ale przewa偶nie jest to zbi贸r
dla programist贸w, kt贸ry
terfejs贸w API, zamiast do odpowiednich dla uzyt-kownika dokument贸w.
Godn膮 uwagi cz臋艣ci膮 systemu QNX jest instalator pakiet贸w (Package
fikowany - jest bardziej nowoczesny, bardziej przyjazny i lepiej wygl膮da. U偶ytkownicy na pewno

allei).
i膮ga膰 i instalowa膰 aplikacje z r贸偶nych 藕r贸de艂 (dysk twardy, no艣nik CD,
jacy t膮tw
dowisku graficznym. Na sek zada艅 Launch z zesta-
nia aplikacji, bardzo podobnym do menu Stort znanego z system贸w Windows. Po prawej stronie znajduje si臋 belka Sidebar (rys. 1) zawieraj膮ca list臋 skr贸t贸w do aplikacji oraz plug-in贸w (odtwarzacz CD, wirtualny pulpit, monitory pami臋ci/procesora itp.)
aplikacjami. W QNX RTP udosko-
Elektronika Praktyczna 7/2002
AUTOMATYKAi
Rys. 3
anti-ahased, w wersji 6.2
o zapewnieniu pe艂nej obs艂ugi dla czcionek arabs-
wersji systemu wprowa-aplikacji pocztowych, pa-
ned偶era plik贸w, edytora tekst贸w, zapewniono tak偶e podstawow膮 obs艂ug臋 kart Ati-TV i rozbudowano aplikacj臋 wykorzysty-
Photona. W sk艂ad kompo-nent贸w systemu wchodzi
rzacz medi贸w (rys. 4), obs艂uguj膮cy formaty wgv, mp3. mpeg video i wiele innych. Tw贸rcy systemu umie艣cili w nim tak偶e modu艂 XingDVD, umo偶liwiaj膮cy odtwarzanie p艂yt DVD, kt贸ry wcze艣niej nie by艂 dostarczany z 偶adn膮 wersj膮 RTP.
nenty systemu to: przegl膮darka graficzna (rys. 5)
nie podstawowych opera-cji na plikach graficz-nych, przegl膮darka inter-netowa Voyager (rys. 6) - odpowiednik Netscape 3 - obs艂uguj膮ca Macromedia Flash i Real Player.
budow臋, dzi臋ki czemu
go j膮dra HTML-owego Oper膮 5 lub Mozill膮.
oko艂o 300 aplikacji dla QNX RTP. W艣r贸d nich mo偶na znale藕膰: Embeded X Server, GTK+ (Gimp) XllAmp ports, Python, Allegro, SDL, Mozilla, AbiWord i Apache.
Wn臋trze systemu
Mikroj膮dro QNX Neu-trino nale偶y do najszyb-szych na 艣wiecie, oferuj膮c najkr贸tszy czas reak-
wej". Dzi臋ki cechom ta-wo艣膰, wielow膮tkowo艣膰,
szeregowanie proces贸w, synchronizacja oraz szybkie prze艂膮czanie kontekst贸w (0,55 ns na procesorach Pentium III), system jest dobrze dostosowany
Rys. 5
wbudowanych.
QNX jest udost臋pniany bezp艂atnie do zastosowa艅 niekomercyjnych. Je偶eli
rzy膰 komercyjny produkt dla systemu QNX RTP, powinni艣my ui艣ci膰 op艂at臋 licencyjn膮 firmie QNX Software Systems zanim
wypuszczenie produktu na rynek. Mo偶e to brzmie膰 troch臋 restrykcyjnie dla wi臋kszo艣ci os贸b, ale jest
praktyka w 艣wiecie system贸w wbudowanych. Nie
偶e QSSL prawie w og贸le
Rys. 6
t ami Gl id e i Vo o do o 3. Mile widziany by艂by te偶 lepiej wykonany system plik贸w.
Podsumowanie
Wi
i 6.2 i
d
le艅 od chwili ukazania si臋 wersji 6.1-PatchA. Wprawdzie interfejs sys-
zaprojektowany, poprawio-
rzeczywisty", rozumie si臋, 偶e komendy s膮 wykonywane w spodziewanym czasie, np. natychmiast, bez wzgl臋du na to jakie zadania realizuje system operacyjny. Wykonywanie pojedynczych zada艅 przebiega bardzo szybko, jed-
uruchomimy np. 1 lub 2 pliki wideo i w tym samym czasie b臋dziemy korzysta膰 np. z sieci lub
przeszukiwanie zasob贸w dysku twardego. 艢wiadczy to o tym, 偶e platfor-
wa艅 wbudowanych (em-bedded), jednak nie najbardziej nadaje si臋 do
typu ultimate desktop. Nie jest to spowodowane z艂ym dzia艂aniem wieloza-daniowo艣ci, kt贸ra zosta艂a zaimplementowana w systemie i dzia艂a bardzo dobrze, lecz "rzeczywisto-
b臋d膮c膮 bardziej odpo-
rynku system贸w dla komputer贸w biurkowych. QNX RTP rozpowszechniany
platforma programistyczna dla m.in. urz膮dze艅 inter-netowych opartych o QNX i wielu innych zastosowa艅 wbudowanych.
Silnym punktem systemu QNX jest certyfikacja POSIX, co znaczy, 偶e
wym modelem systemu, u偶ywaj膮c systemu QNX b臋d膮 czu艂y si臋 jak w domu. Innym silnym punktem systemu jest jego
Czego nie ma w systemie QNX
Faktem jest, 偶e Pho-
nizmu "przeci膮gnij
i upu艣膰 (drag-n-drop),
gi DVD nie zosta艂a roz-
ponad p贸艂tora roku, a obs艂uga 3D zdaje si臋, 偶e nadal dzia艂a tylko z kar-
ku czliwych b艂臋d贸w, dodano tak偶e nowe sterowniki oraz lepsz膮 obs艂ug臋 drukarek, jednak偶e zabrak艂o wielu element贸w znanych z poprzednich wersji sys-temu. QNX rozwija ci膮gle swoje opracowanie, kt贸re z powodu unikalnych mo偶liwo艣ci jest coraz powszechniej stosowane w aplikacjach komercyjnych. Bezp艂atn膮 wersj臋 systemu QNX RTP mo偶na pobra膰 ze strony QSSL -http://get.qnx.com. Natomiast niezwykle ciekawe
i wielu innych system贸w nach http://dedicated-sys-Tomasz Bogacz, Ouantum

Ciuantu msp. 1711 362-
1 3-56, ht
Wersj u Ope
p u bli kuje p艂ycie CD-EP7/
艢 )02B,
Intern cie p d adiese m: h tp://
y et.qnx.c m.
Elektronika Praktyczna 7/2002
AUTOMATYKA
PJppill|C
Cz臋sto otrzymujemy
pytania zwi膮zane
z obs艂ug膮 narz臋dzi
wspomagaj膮cych tworzenie program贸w dla sterownik贸w PLC firmy Siemens.
W artykule przedstawiamy skr贸cony opis sposobu pos艂ugiwania si臋 pakietem
narz臋dziowym Step7 MicroWin 32, kt贸ry jest obecnie w swojej grupie najlepszym
narz臋dziem firmy Siemens.
pj pod kontrol膮 Windows 95/98/Me/NT/2000/XP.
i dodat-rze艂膮cz-
le, jest g艂贸wn膮 dla programato-
i pr臋d- r贸w PG) mo偶na znale藕膰
pomi臋- w oknie Set PG/PC Inter-
m PC face (rys. 1). Dost臋p do
iwaniem Step7 tego okna jest mo偶liwy
sja programu, dost臋pna i bezpo艣rednio z progra-
Elektroniki Praktycznej Rozpoczynamy od
(JJowitloaa>i\arzeazia), sKontigurowania transmisji
pozwala po instalacji na danych. Po uruchomieniu
ka przez 60 dni od daty Win nale偶y w g艂贸wnym
zainstalowania. menu wybra膰 opcj臋 PLC,
RS232 na RS485 i kowo, poprzez p niki konfiguracyjn na nim dobieran ko艣膰 komunikacji dzy komputere
S7-20
SIEMENS
艢 , i
d
p
iwe t. o pro cesor ram 0^ van ia je; ;t spi raw 'dze- mun icatic 昻s. Ab
MB pa mi臋ci RAM, nie 1 ista kor nui nika- do ustaw PL
one jak wi da膰 - cyi] ^y ch pon li臋dz ;y ste- kom unika cyi1 艂ych
V c< )lu skomi iniko- kie PC. W cati
du偶
kiem S7-200 nale偶y po- sowanych protoko艂贸w
siada膰 dodatkowo kabel oraz sprz臋tu (dodatkowe
PC/PPI, kt贸ry jest kon- karty sprz臋towe, karty
werterem standardu zintegrowane z p艂yt膮
Rys. 3
dokona膰 wyboru szybko艣-
tu komunikacyjnego itp.,
przej艣膰 rys. 5). W Network Para-
imetr贸w meters jest ustalana pr臋d-
w oknie ko艣膰 wymiany danych
'tup na- pomi臋dzy komputerem PC
le偶y dwukrotnie klikn膮膰 a sterownikiem, przy
na ikonk臋 PC/PPI cable czym identyczna pr臋dko艣膰
(rys. 3). W oknie PG/PC musi by膰 ustawiona za
lnteiface wy艣wietlonym pomoc膮 prze艂膮cznik贸w na
w wyniku tej operacji s膮 kablu PC/PPI. W zak艂adce
dost臋pne dwa rozwijane Locol Connection (rys. 6)
menu (rys. 4), z kt贸rych jest podawany numer
g贸rne {Access Point of portu komunikacyjnego
Application) s艂u偶y do komputera, przez kt贸ry
wybrania protoko艂u ko- b臋dziemy komunikowa膰
lunikacyjnego pomi臋dzy mummmmm^^^^^^^^^^^^^^m
tym
komputerem PC (w przypadku progn Step7 Micro Win) a ste-
ter Assignment Used)
sprz臋tu, za pomoc膮 kt贸rego u偶ytkownik komuni-kuje si臋 ze sterownikiem. W oknie Properties (wy-
Elektronika Praktyczna 7/2002
AUTOMATYKAi
PPI, ustaleniu pr臋dko艣ci
komunikacyjnego, mo偶na przyst膮pi膰 do sprawdze-
nikiem. W tym celu nale偶y nacisn膮膰 dwukrotnie na ikonk臋 Double Click to Refresh (rys. 7) co
(sinx, cosx, regulator PID itp.) oraz wiele innych. Spos贸b korzystania z element贸w dost臋pnych w bibliotekach poka偶emy na prostym przyk艂adzie: odczytamy stan wej艣cia
no艣ci od niego b臋dziemy aktywowali wyj艣cie q0.0. Dodatkowo, szeregowo
10
Rys. 6
si臋 z programowanym sterownikiem. W oknie Mo-
prze艂膮czy膰 komunikacje z kabla PC/PPI na komunikacj臋 za pomoc膮 modem贸w 10-bitowych. Funkcja ta znajduje zastosowanie przy teleserwisie, co
czy膰 si臋 ze sterownikami S7-200 na obiektach oddalonych poprzez modemy i dokonywa膰 zmian
i zatrzymywa膰 prac臋 sterownik贸w, wgrywa膰 zda艂-nie nowe aplikacje oraz uruchamia膰 funkcje debu-gera. Szczeg贸艂owy opis sposobu nastaw i dost臋p-nych modem贸w, przewidziany jest w kolejnych artyku艂ach.
kich niezb臋dnych nastaw, tzn. wyboru kabla PC/
Dwukrotne klikni臋cie na ikonk臋 z symbolem sterownika powoduje odczytanie ze sterownika infor-
Nale偶y potwierdzi膰 wykryty przez oprogramowanie typ sterownika poprzez naci艣ni臋cie przycisku OK i od tej chwili mo偶na rozpocz膮膰 programowanie sterownika.
Najprostszym i najbardziej lubianym przez elektryk贸w i automatyk贸w sposobem przygotowywa-
dla sterownika PLC jest schemat drabinkowy (lad-der network). Aby m贸c programowa膰 w tym trybie nale偶y w menu w opcji View wybra膰 LAD, po czym biblioteki (rys. 8)
\ydnZ skonfigurowane do pracy w tym trybie wy艣wietlania.
Jak du偶e s膮 mo偶liwo艣ci programowe sterownik贸w S 7-200 mo偶na si臋 przekona膰 analizuj膮c biblioteki dost臋pnych funkcji. Oprogramowanie Step7 MicroWin ^^Hj udost臋pnia funkcje operacji bitowych wykorzystuj膮cych zegar su rzeczywistego, funkcje ko-nunikacyjne (ob-s艂uga sieci, po艂膮-snia punkt-punkt), funkcje
wstawimy bit SM0.5 (bit systemowy sterownika -generator jednosekundo-wy), aby mo偶liwe by艂o uzyskanie zmian sygna艂u na wyj艣ciu Q0.0. W oknie edycji znajduj膮 si臋
Network (rys. 9). S膮 to obszary, w kt贸rych
ne elementy z bibliotek. W pojedynczym elemencie Network powinien znajdowa膰 si臋 jeden blok logiczny, kt贸ry mo偶e sterowa膰 kilka wyj艣膰.
otwart y wybi era my go z biblioteki Bit Logic i klikaj膮c dwukrotnie powodujemy jego prze-
edycji. W opisie znajduj膮cym si臋 powy偶ej styku podajemy 10.0 (adres wej艣cia: bajt O/bit 0). Drugi styk, dla odmiany normalnie otwarty wybieramy podaj膮c w opisie SM0.5. Nast臋pnie na wyj艣ciu wybieramy "cewk臋", czyli wyj艣cie funkcji przez nas stworzonej. W opisie funkcji wyj艣ciowej podajemy Q0.0 (adres wyj艣cia: bajt O/bit 0). Tak przygotowany najprostszy program musimy zapisa膰 w pami臋ci sterownika. W tym celu w menu w opcji File wybieramy Download. W oknie informacyjnym, znajduj膮cym si臋 poni偶ej okna edycji w przypadku wyst膮pienia b艂臋d贸w podczas kompilacji
go do pami臋ci sterownika, b臋dzie podana przyczyna wyst膮pienia b艂臋du.
Rys. 8
zainicjowa膰 wywo艂uj膮c w opcji menu Debug, program Status (rys. 10), kt贸ry w spos贸b graficzny przedstawi b臋dzie aktualny stan pracy programu. Elementy aktywne w danej chwili b臋d膮 pod-
rem. W ka偶dej chwili
z biblioteki mamy mo偶liwo艣膰 odwo艂ania si臋 do plik贸w pomocy poprzez naci艣ni臋cie przycisku Fl. Opisy funkcji, jakkolwiek w j臋zyku angielskim lub niemieckim, w czytelny
wybranej funkcji, cz臋sto podane s膮 tak偶e przyk艂a-
funkcji w programie.
Oczywi艣cie, rzeczywis-
nie bardziej skomplikowan膮 struktur臋. W zwi膮zku z tym cz臋sto konieczny jest podzia艂 programu na podprogramy. Jest to mo偶liwe dzi臋ki instrukcji cali nazwa pod programu
Elektronika Praktyczna 7/2002
AUTOMATYKA
cykli popr
gary
by膰 wyk. lub przerw;
a艂ywani
bezwzgl臋dnymi typu 10.0 dunk贸w dla paneli ope-
mo偶na w opcji View ratorskich TD200 oraz
Symbol Table przypo- TP070. Program znajduj膮-
rz膮dkowa膰 adresy bez- cy si臋 w oknie edycji,
h k d j
zgl臋dn bli
je;
umieszczony w pami臋ci programu sterownika, za艣 niezb臋dne dane dla prze-
metry pocz膮tkowe opera-
mi臋ci danych oznaczonej jako Data Rlock. Je偶eli
komplikowanych jest konieczna modyfikacja pr臋dko艣ci przesy艂ania dt贸w danych przez port komu-ibs艂u- nikacyjny, nale偶y wybra膰 k贸w, ikon臋 System Rlock (rys. kacji 12), gdzie w zak艂adce mel- Ports definiujemy para-
etry komunikacyjne ort贸w. W tym samym knie mo偶emy zdefinio-
a膰 obszary pami臋ci ste- ik k贸
,nych nadanych programist臋, dzi臋ki wej艣cie 10.0 mo偶-
ipcji Tools g艂贸wne-
.najduj膮 si臋 kreatory
ty:
;ji, jak np. zdefi-
;ybkich lic: etr贸w kom
by膰 podtrzymywane po wy艂膮czeniu napi臋cia zasi- 艂aj膮cego. Obszary te zde- finiowane s膮 jako Reten- tive Rang臋. Operator mu-
ment takiego obszaru oraz liczb臋 kolejnych. Podtrzymanie danych do- tyczy膰 mo偶e obszaru pa- mi臋ci danych "V", licz- nik贸w, zegar贸w, oraz ob- szar贸w o adresowaniu bi- towym typu "M". Micha艂 Bereza, Siemens
Elektronika Praktyczna 7/2002
PROJEKTY
Analizator stan贸w logicznych
AVT-5074
Czy podczas uruchamiania
system u wykon an ego n a
uk艂adach cyfrowych mia艂e艣
miejsca awarii? Czy
pr贸bowa艂e艣 za pomoc膮
pr贸bnika stan贸w logicznych
obserwowa膰 kilka sygna艂贸w
jednocze艣nie?
Takie (ale nie tylko!)
problemy rozwi膮偶e
prosty przyrz膮d laboratoryjny, zaprojektowany zgodnie
obowi膮zuj膮cymi w elektronice.
rodzaju, produ owanych przez
Ka dy elektronik buduj膮cy cyf-jk艂ady elektroniczne znalaz艂 mniej lub bard
^o艣ci pomiarowe
/ poziomy sygna艂u wej艣ciowego TTL, CMOS wykor pewno艣ci膮 w sytuacji, gdy any uk艂ad dzia艂a艂 niepra- s膮 bardzo du偶e, cena stanowi pr ednak zazwyczaj
wid艂o wo lub - co gorsza - nie liw膮 do przeby膰 a dla wi臋kszo艣ci
750 ns, 1, 2, 5,10, 20, 50,100, 200, dzia艂a wcale. Jak trudne jest amator贸w. Jed nym wyj艣ciem
500 ns, 1, 2, 5,10, 20, 50,100, 200, wykry cie przyczyny tego niepo- w tej sytuacji je t wykonanie we
500 ms, 1, 2, 5 s, / pojemno艣膰 pami臋ci pr贸bek 31 kB, wodze pr贸bo nia wie ka偶dy, kto cho膰 raz wa艂 naprawi膰 wadliwie dzia- w艂asnym zakres: rz膮du spe艂niaj膮c e prostego przy-3go funkcj臋 ana-
/wyzwalanie rejestracji r臋czne zboczem 艂aj膮cy uk艂ad elektroniczny. Hob- lizatora stan贸w ogicznych. Prze膰
narastaj膮cym/opadaj膮cym nawej艣ciu TIG, bysta zazwyczaj nie posiada skom- rokiem zbudow 艂em taki anali-
kombinacj膮 stan贸w logicznych na wej艣ciach plik贸w anej aparatury pomiarowej, zator na w艂asne )otrzeby i chcia艂-
/zako艅czenie rejestracji r臋czne przepe艂nienie a jego wyposa偶enie jest niejedno- bym teraz pr zedstawi膰 jogo
pami臋ci pr贸bek, zebranie okre艣lonej liczby krotni e ograniczone do miernika budow臋 szerszen iu gronu czytel-
pr贸bek, kombinacj膮 stan贸w logicznych na uniwe rsalnego, lutownicy i zasi- nik贸w.
wej艣ciach (warunek AND), lacza tabilizowanego. Przy spraw- G艂贸wnym za艂o 偶eniem konstruk-
/wy艣wietlacz LCD 2*16 znak贸w, /obs艂uga 9 klawiszy dzanii prostego uk艂adu cyfrowego cyjnym by艂o uzy skanie por臋czne-
/komunikacja z PC poprzez RS232 mo偶e to wystarczy膰, jednak przy go przyrz膮du, pr cuj膮cego autono-
z szybko艣ci膮 9600 bod贸w uk艂ad ch bardziej rozbudowanych micznie (bez kor deczno艣ci wsp贸艂-
/zasilanie 9 12VDC, /pob贸r pr膮du 35 40 mA porno zb臋dn ^"mo偶TokTzao^T/wt: pracy z kompute tanich i og贸lnie rem), z mo偶liwie dost臋pnych pod-
Elektronika Praktyczna 7/2002
Analizator stan贸w logicznych
Rys. 1. Schemat elektryczny analizatora
zespo艂贸w. Jego parametry na pew- Opis uk艂adu
no nie s膮 imponuj膮ce, ale w ama- Analizator zbudowano w opar-
torskiej praktyce mo偶na je uzna膰 ciu o mikrokontroler firmy Atmel
za wystarczaj膮ce. typu AT90S8515. Jest to nowo-
czesny mikrokontroler RISC (wi臋kszo艣膰 rozkaz贸w wykonywanych jest w pojedynczym cyklu zegarowym), co w po艂膮czeniu z du偶膮 cz臋stotliwo艣ci膮 taktowania (wynosz膮c膮 8 MHz) zapewnia du偶膮 szybko艣膰 jego pracy. Mikrokontroler ma wbudowane 8 kB wewn臋trznej pami臋膰 programu typu Flash, 512B wewn臋trznej pami臋ci RAM i 512B pami臋ci EEPROM. Jego szczeg贸ln膮 zalet膮 (jak r贸wnie偶 innych mikrokontroler贸w z rodziny AVR) jest mo偶liwo艣膰 艂atwego programowania w systemie przez interfejs SPI, do czego wystarcza prosty programator (wiele opis贸w mo偶na znale藕膰 w czasopismach elektronicznych i Internecie). Drug膮 bardzo u偶yteczn膮 cech膮 uk艂ad贸w z rodziny AVR jest mo偶liwo艣膰 bezp艂atnego pozyskania (ze strony: www.atmel.com) programu AVR Studio, zawieraj膮cego doskona艂y asembler i symulator mikrokontroler贸w AVR. Za pomoc膮 tego w艂a艣nie narz臋dzia zosta艂o przygotowane oprogramowanie steruj膮ce analizatora. Cz臋艣膰 sprz臋towa analizatora sk艂ada si臋 z dw贸ch po艂膮czonych ze sob膮 modu艂贸w. Na rys. 1 przedstawiono schemat elektryczny modu艂u p艂yty g艂贸wnej, a na rys. 2 schemat p艂ytki klawiatury.
Za po艣rednictwem uk艂adu U2 do mikrokontrolera Ul jest do艂膮czona zewn臋trzna pami臋膰 RAM o pojemno艣ci 32 kB (typu 62256). Uk艂ad U2 pe艂ni rol臋 zatrzasku mniej znacz膮cej cz臋艣ci adresu multipleksowanej szyny danych. Chc膮c zwolni膰 mikrokontroler z programowego sprawdzania przepe艂nienia zewn臋trznej pami臋ci RAM, a tym samym uzyska膰 mo偶liwie najwi臋ksz膮 cz臋stotliwo艣膰 pr贸bkowania, przenios艂em ten obowi膮zek na cz臋艣膰 sprz臋tow膮 analizatora. Mikrokontroler Ul mo偶e zaadresowa膰 do 64kB pami臋ci RAM. W uk艂adzie analizatora zastosowano jednak tylko jedn膮 pami臋膰 32 kB, wi臋c ko艅c贸wk臋 PC7 mikrokontrolera (pe艂ni膮c膮 funkcj臋 najbardziej znacz膮cego bitu - A15 - 16-bitowej szyny adresowej) do艂膮czono do jednego z wej艣膰 bramki U8C. Do drugiego wej艣cia do艂膮czono poprzez bramk臋 U8A (spe艂niaj膮c膮 funkcj臋 in-wertera), przycisk r臋cznego zatrzymania rejestracji - BREAK. Wyj艣cie bramki U8C po艂膮czone
Elektronika Praktyczna 7/2002
15
Analizator stan贸w logicznych
320
U20 74HC164
J20 KBY
QA OB QC OD QE
>CLK QF OG
CLR QH
10
12
13
>VCC
S25
-o o-S26
-O O S27
D20
D21
D22
D23
D24
D25
D26
D27
8x1N4148
VCC
Rys. 2. Schemat elektryczny bloku klawiatury
jest z ko艅c贸wk膮 PD3 mikrokontrolera (wej艣cie zewn臋trznego przerwania INTl). W procedurze obs艂uguj膮cej to przerwanie mikro-kontroler mo偶e przechwytywa膰 wszystkie pr贸by zapisu do pami臋ci ponad 32kB i wci艣ni臋cie przycisku BREAK.
Sygna艂y z o艣miu kana艂贸w wej艣ciowych CH0...CH7 podawane s膮 ze z艂膮cza J21 przez rezystory R3...R10 na uk艂ad U7. Rezystory ograniczaj膮ce R3...R10 wraz z diodami zawartymi w strukturze uk艂adu U 7 zabezpieczaj膮 go przed uszkodzeniem w przypadku pojawienia si臋 zbyt wysokiego lub ujemnego napi臋cia na wej艣ciach CH0...CH7. Zastosowanie bufora U7 jest niezb臋dne w celu zabezpieczenia kosztownego mikrokontrolera przed uszkodzeniem w skutek pojawienia si臋 przepi臋膰 na wej艣ciach pomiarowych. Dla wej艣cia wyzwalania zboczem (TIG) funkcj臋 zabezpieczaj膮c膮 pe艂ni bramka U8D i rezystor Rll.
Liczba linii mikrokontrolera wykorzystanych do obs艂ugi zewn臋trznej pami臋ci RAM i sygna艂贸w wej艣ciowych CH0....CH7 wymusi艂a potrzeb臋 ich "rozmno偶enia". Zrealizowano to przez do艂膮czenie do Portu A mikrokontrolera dodatkowego zatrzasku U6. Jego wej艣cie steruj膮ce C i wej艣cie aktywa-
cji zewn臋trznej pami臋ci CS po艂膮czone s膮 z ko艅c贸wk膮 PD5 mikrokontrolera. Ustawienie na tej ko艅c贸wce wysokiego poziomu powoduje zablokowanie zewn臋trznej pami臋ci RAM, a przenoszenie ustawie艅 Portu A przez U6. Poziom niski powoduje zatrza艣ni臋cie wyj艣cia uk艂adu U6 i jednocze艣nie aktywuje zewn臋trzn膮 pami臋膰 RAM. Z wyj艣膰 uk艂adu U6 sterowany jest wy艣wietlacz LCD pracuj膮cy w trybie czterobitowym i uk艂ad U2 0 (p艂ytka klawiatury) po艣rednicz膮cy w obs艂udze o艣miu przycisk贸w klawiatury. Obs艂uga klawiatury polega na przesy艂aniu "w臋druj膮ce" poziomu niskiego do rejestru przesuwnego U20 i p贸藕niejszej kontroli poziomu na wyprowadzeniu PD4 mikrokontrolera. Diody D20...D27 separuj膮 poszczeg贸lne przyciski od siebie i zabezpieczaj膮 przed powstaniem konfliktu w przypadku jednoczesnego naci艣ni臋cia kilku przycisk贸w.
Uk艂ad U5, wraz z kondensatorami C4....C7 i gniazdem Jl, po艣redniczy w pracy interfejsu szeregowego RS232 wykorzystywanego do transmisji zarejestrowanych pr贸bek do komputera. Mikrokon-troler taktowany jest sygna艂em z generatora kwarcowego o cz臋stotliwo艣ci 8 MHz. Generator za-
pewnia dok艂adniejsz膮 prac臋 analizatora, jednak znacznie zwi臋ksza zu偶ycie pr膮du. Analizator mo偶e by膰 zasilana z zewn臋trznego zasilacza napi臋ciem sta艂ym 9....12 V (do艂膮czonego do gniazda J8) lub z baterii 9 V (do艂膮czonej do gniazda J9). Uk艂ady scalone analizatora zasilane s膮 stabilizowanym napi臋ciem +5 V uzyskiwanym z monolitycznego uk艂adu 78L05. W egzemplarzu modelowym zastosowano wy艣wietlacz LCD wymagaj膮cy ujemnego napi臋cia polaryzuj膮cego, dlatego konieczne sta艂o si臋 dodanie przetwornicy napi臋cia. Zrealizowano j膮 z zastosowaniem uk艂adu U4 (ICL7660) i dw贸ch kondensator贸w Cl i C2. Za pomoc膮 gniazda J4 jest mo偶liwy wyb贸r odpowiedniego napi臋cia polaryzuj膮cego. Potencjometr monta偶owy PTI s艂u偶y do regulacji kontrastu wy艣wietlacza. Gniazdo J3 wykorzystywane by艂o w procesie programowania mikrokontrolera przez interfejs SPI.
Na etapie projektowania uk艂adu i p艂ytki analizatora przewidywa艂em mo偶liwo艣膰 jego pracy tak偶e w trybie generatora stan贸w logicznych (sterowanie wej艣cia DIR uk艂adu U7 przez jedno z wyj艣膰 uk艂adu U6), jednak rozmiar gotowego programu rejestracji i analizy danych (praktycznie pe艂ne 8kB) uniemo偶liwi艂 zrealizowanie tego planu.
Monta偶 i uruchomienie
Na rys. 3 i 4 przedstawiono schematy monta偶owe p艂ytek drukowanych wykonanych na laminacie jednostronnym (ich wzory s膮 dost臋pne CD-EP7, na naszej stronie www.ep.com.pl, wydrukujemy je tak偶e na wk艂adce w sierpniowym wydaniu EP) . P艂ytki zosta艂y zwymiarowane dla typowej, 艂atwo dost臋pnej obudowy KM-42N lub KM-35. Po艂膮czenie mi臋dzy p艂ytkami zapewnia - od strony p艂yty g艂贸wnej - jednorz臋dowe, szesnastopinowe gniazdo, a od strony p艂ytki klawiatury rz膮d szesnastu goldpin贸w wlutowanych od strony druku. Na rys. 5 przedstawiono spos贸b zamontowania poszczeg贸lnych podzespo艂贸w przyrz膮du w obudowie typu KM-42N (z wn臋trza kt贸rej nale偶y wyci膮膰 wszystkie wystaj膮ce cz臋艣ci). Pojemnik na baterie nale偶y wykona膰 we w艂asnym zakresie z odpowiednio przyci臋tych i polu-
16
Elektronika Praktyczna 7/2002
Analizator stan贸w logicznych
D
o o o o o S o
o
oo oo
OOOOOOD
ooooooo
lool (foooooooo
8MHz
lOu
Rys. 3. Rozmieszczenie element贸w na bazowej p艂ytce drukowanej analizatora
Rys. 4. Rozmieszczenie element贸w na p艂ytce drukowanej klawiatury
towanych pask贸w laminatu jednostronnego . Przymocowa膰 go do dolnej cz臋艣ci obudowy klejem termotopliwym, a baterie dociska膰 odpowiednio grubym kawa艂kiem gumy przyklejonej do dolnej strony p艂ytki drukowanej. W egzemplarzu modelowym do zasilania bateryjnego zastosowa艂em pakiet sze艣ciu po艂膮czonych szeregowo baterii typu LR03 (AAA). Pob贸r pr膮du z baterii przez analizator jest znaczny, ale przy umiej臋tnym korzystaniu mo偶liwa jest kilkunastogodzinna praca. W przypadku zamiany generatora kwarcowego na rezonator pob贸r pr膮du mo偶na ograniczy膰 o oko艂o jedn膮 trzeci膮. Dodatkowo, po zast膮pieniu stabilizatora napi臋cia typu 78L05 (U9) przez odpowiednik - uk艂ad LM2931 (stabilizator napi臋cia +5V o skrajnie ma艂ym spadku napi臋cia pomi臋dzy wej艣ciem a wyj艣ciem uk艂adu wynosz膮cym ok. 0,2V) i diody 1N4001 (D2) przez diod臋 Schottky'ego np. BAT4 3 lub 1N5 817, mo偶na przyrz膮d zasila膰 z pakietu czterech baterii o 艂膮cznym napi臋ciu 6V. Zmniejszy to koszt zakupu baterii, a jednocze艣nie obni偶y pob贸r pr膮du przez analizator (LM2931 pobiera mniejszy pr膮d spoczynkowy). Sygna艂y wej艣ciowe do艂膮czane s膮 do analizatora za pomoc膮 kilkudzie-si臋ciocentymetrowego kabla wst膮偶kowego (ta艣my) zaopatrzonego w minichwytaki.
Opis dzia艂ania programu
Do zobrazowania wynik贸w pomiar贸w zastosowano popularny wy艣wietlacz 2*16 znak贸w. Nie zapewnia on du偶ego komfortu podczas korzystania z analizatora, jednak jego koszt w por贸wnaniu z najprostszym nawet wy艣wietlaczem graficznym jest 艣miesznie niski. Sterowanie analizatorem odbywa si臋 z dziewi臋cioprzycisko-wej klawiatury, przy czym jeden klawisz BREAK s艂u偶y tylko do r臋cznego zatrzymywania trybu rejestracji, pozosta艂e s膮 klawiszami funkcyjnymi: Run, Set, Ok, Esc i kursorami: 艢+, -*-, t, 艂. Podczas pracy analizatora wykorzystywane s膮 r贸wnie偶 kombinacje klawiszy (np. Set+1, Run+Ok). Program steruj膮cy sk艂ada si臋 z trzech cz臋艣ci, tj. Rejestratora, Analizatora i Monitora.
Rejestrator odpowiada za gromadzenie, z ustawion膮 przez u偶ytkownika cz臋stotliwo艣ci膮, w zewn臋trznej pami臋ci RAM stan贸w logicznych wyst臋puj膮cych na wej艣ciach pomiarowych CHO....CH7. Drug膮 wa偶n膮 funkcj膮 jest sprawdzanie warunk贸w wyzwolenia i przerwania trybu rejestracji danych. Na rejestrowane pr贸bki przypada 31 kB pami臋ci RAM -pozosta艂y 1 kB wykorzystywany jest na inne cele. Rejestrator mo偶e utworzy膰 w wolnej pami臋ci do o艣miu niezale偶nych bank贸w pr贸bek.
Dla ka偶dego z bank贸w mo偶na ustali膰 nast臋puj膮ce parametry:
- nada膰 czteroznakow膮 nazw臋 (plus automatyczny numer banku),
- ustawi膰 aktywne kana艂y pomiarowe (z trzyznakowymi identyfikatorami),
- wybra膰 okres, z jakim b臋d膮 pr贸bkowane wej艣cia,
- okre艣li膰 warunek wyzwolenia rejestracji,
- okre艣li膰 warunek zako艅czenia rejestracji,
- ustawi膰 opcj臋 pracy rejestratora z por贸wnaniem lub bez.
Kr贸tka nazwa identyfikuje zgromadzone w danym banku pr贸bki. Aktywacja kana艂贸w pomiarowych umo偶liwia wy艂膮czenie tych, kt贸re pozostaj膮 niewykorzystane w danej sytuacji pomiarowej (nie maj膮 wp艂ywu na proces rejestracji i nie s膮 zobrazowane na wy艣wietlaczu). Kana艂om pomiarowym mo偶na nada膰 trzyznakowe identyfikatory (np. CLK, CS, Q) u艂atwiaj膮ce ich p贸藕niejsz膮 identyfikacj臋. Okres pr贸bkowania mo偶na wybra膰 z przedzia艂u od 750 ns (1,3 MHz) do 5 s (0,2 Hz), ze skokiem 1, 2 i 5 jednostek zakresu.
Wyzwolenie rejestracji mo偶e odby膰 si臋 kilkoma sposobami. Najprostszym jest wyzwolenie r臋czne przyciskiem Run. Inna mo偶liwo艣膰, to wyzwolenie zboczem narastaj膮cym lub opadaj膮cym na wej艣ciu TIG. Dozwolone jest tak偶e wyzwolenie rejestracji dowoln膮 programowan膮 kombinacj膮 stan贸w logicznych na wej艣ciach pomiaro-
Elektronika Praktyczna 7/2002
17
Analizator stan贸w logicznych
wych CH0....CH7, przy jednym z dwu warunk贸w por贸wnania (AND/OR). Rejestracje programowo mo偶na zatrzyma膰 dwoma sposobami (z wy艂膮czeniem najmniejszego okresu pr贸bkowania 750 ns). Pierwszy polega na zebraniu ustawionej liczby pr贸bek (skok co 1 kB). W drugim, podobnie jak przy wyzwoleniu, rejestracja jest zatrzymywana przy dowolnej kombinacji stan贸w logicznych na wej艣ciach pomiarowych (tylko warunek AND). W trybie pracy rejestratora bez por贸wnywania, na ka偶d膮 pr贸bk臋 przypada jeden bajt pami臋ci RAM. Natomiast przy por贸wnywaniu zapis pojedynczej pr贸bki zajmuje dwa bajty pami臋ci, przy czym jeden zawiera czas utrzymywania si臋 danego stanu na wej艣ciu (do 255 powt贸rze艅), a drugi przedstawia ten stan. Ze wzgl臋du na wyd艂u偶enie kodu potrzebnego dla realizacji por贸wnania kana艂贸w i zapisu dwubajtowe-go pojedynczej pr贸bki, funkcja ta jest dozwolona od okresu pr贸bkowania 2 |is (500 kHz). Pomimo zmniejszenia o po艂ow臋 dost臋pnej pami臋ci tryb ten w wielu sytuacjach znacznie wyd艂u偶a maksymalny czas rejestracji (pr贸bkowanie z du偶膮 cz臋stotliwo艣ci膮 sygna艂贸w wolnozmiennych). Dla okres贸w pr贸bkowania wi臋kszych od 50 |is, na wy艣wietlaczu LCD zobrazowane s膮 na bie偶膮co stany aktywnych kana艂贸w pomiarowych, a przy okresach kr贸tszych wy艣wietlacz pozostaje wygaszony (czas zape艂nienia pami臋ci pr贸bkami jest bardzo kr贸tki).
Wy艣wietlacz LCD (2x16 znak贸w)
Po zako艅czeniu rejestracji zostaje wy艣wietlone podsumowanie procesu zawieraj膮ce: opis przyczyny zako艅czenia rejestracji, liczb臋 wykorzystanych bajt贸w pami臋ci RAM, 艂膮czny czas trwania procesu i liczb臋 zarejestrowanych pr贸bek. Maksymalny czas trwania rejestracji zale偶y od wybranego okresu pr贸bkowania i trybu rejestracji. Przy rejestracji bez por贸wnania, czas ten wynosi od 23,8 ms (750 ns) do ponad 44 godzin (5 s). Natomiast przy rejestracji z por贸wnaniem, czas ten jest zale偶ny g艂贸wnie od typu rejestrowanego przebiegu.
Blok programu nazwany Analizator powoduje przedstawienie na wy艣wietlaczu, w mo偶liwie czytelny spos贸b, danych zarejestrowanych w pami臋ci RAM podczas procesu rejestracji. Analiza danych mo偶e odbywa膰 si臋 w dw贸ch trybach: pomiarowym i przegl膮dania. W trybie pomiarowym na wy艣wietlaczu zobrazowane s膮 stany kana艂贸w pomiarowych (w postaci
0 i 1) i pozycja aktualnie wy艣wietlanej pr贸bki (jako numer lub czas). Podczas pomiar贸w mo偶na zastosowa膰 dwa markery X i Y. Po wybraniu konkretnego kana艂u mo偶na wy艣wietli膰, dla aktualnej
1 poprzedniej pr贸bki, cz臋stotliwo艣膰 i wsp贸艂czynnik wype艂nienie przebiegu. Tryb przegl膮dania s艂u偶y przede wszystkim do poszukiwania pr贸bek, kt贸re spe艂niaj膮 ustawiony warunek. Ze wzgl臋du na niewielk膮 szeroko艣膰 wy艣wietlacza (tylko szesna艣cie znak贸w w linii), czas wy艣wietlany jest w formacie bez przecink贸w, np.: 100, 350ms
P艂ytka drutowana (p艂yta klawiatury)
Nakr臋tka M2.5
P艂ytka drukowana (p艂yta g艂贸wna)
艢ruba M2.5
Tulejka z gwintem wewn臋trznym M2.5
Obudowa KM-42N
Klej mocuj膮cy pojemnik na baterie Guma dociskaj膮ca baterie_______
Baterie LR03 (AAA)___________________________
Pojemnik na baterie (wykona膰 we w艂asnym zakresie)_____________
Rys. 5. Spos贸b zamontowania podzespo艂贸w analizariwa w obudowie
WYKAZ ELEMENT脫W
(p艂yta g艂贸wna) Rezystory
Rl, R2: 10kO
R3...R11: lka
PTI: potencjometr monta偶owy
10ka
Kondensatory
C1...C7: 10uF/16V
C8...C14: 100nF/63V
C15: 220uF/16V
Cl贸: 100uF/16V
P贸艂przewodniki
DL D2: 1N4001
Ul: AT90S8515 (zaprogramowany)
U2, U贸: 74HC573
U3: 62256
U4: ICL76脫0
U5: ICL232
U7: 74HCT245
U8: 74HCT02
U9: 78L05
R贸偶ne
Jl: DB9F k膮towe do druku
J2: gniazdo IDC 14 pin
J3: gniazdo 6 pin
J4: listwa 3 goldpin + zworka
J5: gniazdo 16 pin
J6...J8: listwa 2 goldpin
Xl: generator kwarcowy 8MHz
podstawki pod uk艂ady scalone
wy艣wietlacz LCD 2*16 znak贸w
obudowa KM-42N
kabel ta艣mowy 10-偶y艂owy
kabel ta艣mowy 14-偶y艂owy
wtyk Z-LPV14
wtyk Z-LPV10
minichwytaki lOszt.
P艂ytka klawiatury Rezystory R20: 2,2kQ Kondensatory C20: 100nF/63V P贸艂przewodniki D20...D27: 1N4148 U20: 74HC164 R贸偶ne
J20: listwa l贸goldpin J21: gniazdo IDC lOpin S20...S28: przycisk
jako 100m350. W tym bloku programu dost臋pna jest funkcja kasowania ostatniego banku pr贸bek (a tym samym zwolnienie zaj臋tej pami臋ci RAM), jak r贸wnie偶 przes艂anie danego banku pr贸bek do komputera przez interfejs RS232. Ostatni膮 i najprostsz膮 cz臋艣ci膮 programu jest Monitor. S艂u偶y on do
18
Elektronika Praktyczna 7/2002
Analizator stan贸w logicznych
Tab. 1. Opis formatu ramki danych wysy艂anej przez rejestrator
0x00
0x01
0x06^
0x07:0x08
0x09:0x0A
OxOB:OxOF 0x10:0x27
Okres
Status
Okres pr贸bkowania ([0]-750ns, [1]-1jis, [2]-2ns,[ 3]-5ns....[21]-5s) Bajt statusu (bit 3: rodzaj rejestracji [1]-z por贸wnaniem [0]-bez por贸wn ania)
Tlg/Stop
Afflw
Start
Bid
Robocze (maski wyzwolenia i zako艅czenia rejestracji)
fflaska aktywacji kana艂贸w pomiarowych ([1]-aktywny [0]-wy艂膮czony)
Adres pocz膮tku bloku danych w pami臋ci RAM
"kdros ko艅ca bloku danych +1 (liczba zarejestrowanych pr贸bek LEN: L
EN=End-Start)
BankName Nazwa banku (kody ASCII)
Chldent i Trzy znakowe identyfikatorykanarbw pomiarowych CH7...CH0 Dane procesu rejestracji o d艂ugo艣ci LEN
- rejestracja bez por贸wnania: 1 pr贸bka=1 bajt
- rejestracja z por贸wnaniem: 1 pr贸bka=2bajty
format zapisu dwubajtowego - PO:ST [PO]-czas utrzymywania sta艂ego stanu sygna艂贸w wej艣ciowych [01]-1 okres.... [FF]- 255 okres贸w, [00]- 256 okres贸w [ST]-stan sygna艂贸w wej艣ciowych (warto艣膰 bitowa)
bezpo艣redniego wy艣wietlania (bez rejestracji do pami臋ci RAM) stan贸w logicznych wyst臋puj膮cych na wej艣ciach pomiarowych. Dane mog膮 by膰 wy艣wietlane w formacie liczby binarnej, szesnastkowej i dziesi臋tnej.
Obs艂uga przyrz膮du
Rejestrator
Opis linii statusowej: I * I # I okres I T I E I O I [*] - nazwa banku; [#] - aktywacja kana艂贸w pomiarowych, identyfikatory kana艂贸w; [okres] - okres pr贸bkowania sygna艂u wej艣ciowego (750 ns...5 s); [T] - wyzwolenie rejestracji:
[r] - r臋czne,
[&] - mask膮 AND,
[v] - mask膮 OR,
[1 ] - zboczem opadaj膮cym na
wej艣ciu TIG,
[J ] - zboczem narastaj膮cym na
wej艣ciu TIG; [E] - zako艅czenie rejestracji:
[s] - rozmiarem banku (l-31kB),
[&] - mask膮 and; [O] - typ rejestracji:
[.] - bez por贸wnywania,
[p] - z por贸wnaniem. Opis funkcji klawiszy: [Run] - uruchomienie rejestracji; [Set] - ustawienie parametr贸w
rejestracji;
[Break] - przerwanie rejestracji; [Ok] - zatwierdzenie wyboru; [Esc] - anulowanie wyboru; [-*-, 艢+, t, 艂] - nawigacja.
Analizator
Opis linii statusowej:
I BANK I okres I LICZBA I
[BANK] - nazwa bie偶膮cego banku pr贸bek;
[okres] - okres pr贸bkowania;
[LICZBA] - liczba pr贸bek do analizy.
Opis funkcji klawiszy:
[Set] - wyb贸r banku do analizy;
[Run] - uruchomienie analizy;
[Ok] - opis wybranego kana艂u (tryb pomiarowy);
[Esc] - powr贸t do menu;
[t],[艂] - przesu艅 w g贸r臋/d贸艂;
[-*-],[->] - wyb贸r kana艂u pomiarowego (tryb pomiarowy);
[-*-],[->] - szukaj wg. maski poszukiwania w g贸r臋/d贸艂 (tryb nawigacyjny);
[Set]+[t] - prze艂膮czenie czas/numer pr贸bki (tryb pomiarowy);
[Set]+[t] - ustawienie maski poszukiwania (tryb nawigacyjny);
[Set]+[艂] - prze艂膮czanie pozycja/ r贸偶nica (tryb pomiarowy);
[Set]+[艂] - ustawienie warunku poszukiwania &-and/v-or (tryb nawigacyjny);
[Set]+[-] - ustaw/skasuj marker pomiarowy X;
[Set]+[-*] - ustaw/skasuj marker pomiarowy Y;
[Set]+[Ok] - prze艂膮czenie tryb pomiarowy/tryb nawigacyjny;
[Run]+[-] - wy艣wietl pomiary wg. markera X;
[Run]+[-*] - wy艣wietl pomiary wg. markera Y;
[Run]+[t] - skocz do markera X;
[Run]+[艂] - skocz do markera Y;
[Run]+[Ok] - wy艣lij przez RS232;
[Run]+[Esc] - skasuj bank.
Monitor
Opis funkcji klawiszy:
[Run] - uruchomienie monitora;
[Esc] - powr贸t do menu;
[Set] - wy艣wietlanie/nie wy艣wietlanie liczb w formacie DEC, HEX;
[Ok] - wy艣wietlanie wszystkich kana艂贸w/kana艂贸w aktywnych rejestracji;
[Run] - w czasie pracy monitora uruchomienie procesu rejestracji;
[BREAK] - wci艣ni臋ty podczas w艂膮czania przyrz膮du przywraca standardowe ustawienia analizatora.
Opis formatu transmisji danych
Analizator wyposa偶ono w prost膮 procedur臋 jednokierunkowego przesy艂ania zarejestrowanych danych do komputera PC (przez interfejs RS232 z szybko艣ci膮 9600 bod贸w). Przedstawiony w tab. 1 format ramki transmisyjnej bloku danych mo偶na wykorzysta膰 we w艂asnym zakresie, na przyk艂ad do stworzenia programu graficznej prezentacji wynik贸w rejestracji na ekranie monitora. Zbigniew Golonka
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdj'/lipie cO2.htm oraz na p艂ycie CD-EP07/2002B w katalogu PCB.
Elektronika Praktyczna 7/2002
19
PROJEKTY
Interaktywny, telefoniczny modu艂 zdalnego sterowania, cz臋艣膰 1
AVT-5071
R贸偶nego rodzaju zdalnie
sterowane wy艂膮czniki by艂y ju偶
niejednokrotnie prezentowane
na 艂amach Elektroniki
Praktycznej. Jako medium
transmisyjne sygna艂u
za艂膮czania i wy艂膮czania
wykorzystywano podczerwie艅,
fale radiowe, a tak偶e kable
telefon iczn e. Opracowany
w redakcyjnym laboratorium
kolejny modu艂 zdalnego
sterowania r贸偶ni si臋
zasadniczo od wcze艣niej
opisanych - jest on w pe艂ni
in teraktywny i inform uje
u偶ytkownika g艂osem
o kolejnych czynn o艣ciach
obs艂ugi.
Prezentowany sterownik wy艂膮cznik贸w jest sterowany za pomoc膮 sygna艂贸w DTMF poprzez lini臋 telefoniczn膮, co stwarza mo偶liwo艣膰 nadzorowania urz膮dze艅 domowych praktycznie z ka偶dego miejsca na 艣wiecie. Po pod艂膮czeniu uk艂ad贸w wykonawczych wy艂膮cznika do o艣wietlenia domowego lub sprz臋tu muzycznego mo偶na go wykorzysta膰 do symulacji naszej obecno艣ci w domu - wystarczy wtedy zadzwoni膰 do domu i za pomoc膮 odpowiednich komend w艂膮czy膰 艣wiat艂o czy telewizor. Mo偶na r贸wnie偶 przed powrotem do domu zdalnie w艂膮czy膰 ogrzewanie.
Sterownik wy艂膮cznik贸w umo偶liwia niezale偶ne sterowanie o艣mioma urz膮dzeniami, kt贸re mog膮 by膰 rozmieszczone w dowolnych miejscach mieszkania, przy czym nie jest konieczne stosowanie rozbudowanego okablowania.
Umieszczenie przeka藕nik贸w za艂膮czaj膮cych na p艂ytce sterownika jest niepraktyczne, gdy偶 do ka偶dego urz膮dzenia nale偶a艂oby uk艂ada膰 kable zasilaj膮ce (220VAC). Zdecydowa艂em si臋 na inny spos贸b za艂膮czania poszczeg贸lnych urz膮dze艅: uk艂ady wykonawcze zosta艂y oddzielone od p艂ytki sterownika i stanowi膮 autonomiczne uk艂ady za艂膮czaj膮ce
sterowane przez mikrokontroler. Mo偶liwe jest do艂膮czenie dw贸ch rodzaj贸w uk艂ad贸w wykonawczych. W zale偶no艣ci od pr膮du pobieranego przez urz膮dzenia mo偶e by膰 zastosowany modu艂 z przeka藕nikiem lub z triakiem. Modu艂 z triakiem mo偶e by膰 wykorzystany do sterowania o艣wietleniem, a za pomoc膮 przeka藕nika mog膮 by膰 w艂膮czane urz膮dzenia pobieraj膮ce du偶y pr膮d - na przyk艂ad grzejniki lub urz膮dzenia zasilane innym napi臋ciem ni偶 220V, tak偶e napi臋ciem sta艂ym.
Ze wzgl臋du na do艣膰 du偶y pr膮d pobierany przez uzwojenie przeka藕nika, modu艂y przeka藕nikowe wymagaj膮 zewn臋trznego zasilania 12V. Do komunikacji pomi臋dzy wszystkimi uk艂adami wykonawczymi zastosowano protok贸艂 magistrali jednoprzewodowej 1-Wire. Taki spos贸b komunikacji umo偶liwia "rozmawianie" procesora z dowolnym uk艂adem do艂膮czonym r贸wnolegle do tej magistrali, co u艂atwia wykonanie okablowania (nie trzeba uk艂ada膰 osobnego kabla do ka偶dego urz膮dzenia, wystarczy tylko rozprowadzi膰 jeden kabel 3-偶y艂owy). Uk艂ady wykonawcze mog膮 by膰 do艂膮czane w dowol-
Elektronika Praktyczna 7/2002
21
Interaktywny, telefoniczny modu艂 zdalnego sterowania
Rys. 1. Schemat elektryczny sterownika wy艂膮cznika telefonicznego
nym miejscu magistrali, w zale偶no艣ci od potrzeb.
Druga innowacja wprowadzona do prezentowanego wy艂膮cznika polega na sposobie jego komunikacji z u偶ytkownikiem. Sterowanie o艣mioma urz膮dzeniami poprzez telefon jest do艣膰 skomplikowane, a zastosowanie tylko sygna艂贸w d藕wi臋kowych sygnalizuj膮cych stan danego wy艂膮cznika jest k艂opotliwe. Stan obwod贸w wykonawczych jest wi臋c sygnalizowany za pomoc膮 komunikat贸w g艂osowych. Dodatkowo, przed dokonaniem zmiany stanu dowolnego prze艂膮cznika u偶ytkownik jest informowany - r贸wnie偶 g艂osowo - o operacjach, jakie mo偶e wykona膰 w danej chwili. Prze艂膮cznik odbiera po艂膮czenie automatycznie po zaprogramowanej dla niego liczbie dzwonk贸w. Liczba dzwonk贸w, po kt贸rej rozmowa zostanie przyj臋ta, mo偶e by膰 programowana w zakresie od 1 do 8. Dost臋p do sterowania urz膮dzeniami po przyj臋ciu po艂膮czenia jest zabezpieczony cztero cyfrowym has艂em. Po艂膮czenie mo偶e by膰 przerwane przez u偶ytkownika lub automatycznie przez procesor, je艣li zostanie wykryty 30 sekundowy okres bezczynno艣ci (brak sygna艂贸w DTMF pochodz膮cych z klawiatury), kt贸ry mo偶e by膰 spowodowany roz艂膮czeniem si臋 osoby dzwoni膮cej. W takiej sytuacji wy艂膮cznik, po odczekaniu 30 sekund, zwalnia lini臋 telefoniczn膮 i po chwili jest gotowy do przyj臋cia kolejnego wywo艂ania.
Budowa prze艂膮cznika
Prze艂膮cznik telefoniczny sk艂ada si臋 z p艂ytki sterownika oraz p艂ytek uk艂ad贸w wykonawczych. Na rys. 1 przedstawiono schemat elektryczny sterownika. Sercem uk艂adu jest procesor PIC16F873, umieszczony w w膮skiej 28-n贸偶ko-wej obudowie.
Uk艂ad PIC16F873 ma pami臋膰 programu o pojemno艣ci 4K, 192 bajt贸w pami臋ci RAM oraz 128 bajt贸w nieulotnej pami臋ci EEP-
Elektronika Praktyczna 7/2002
Interaktywny, telefoniczny modu艂 zdalnego sterowania
Rys. 2. Schemat uk艂adu wykonawczego z triakiem
ROM. W oscylatorze sygna艂u zegarowego zastosowano zewn臋trzny rezonator kwarcowy o cz臋stotliwo艣ci 4 MHz. Uk艂ad zeruj膮cy procesora wykonano na elementach C7 i R14. Jest on wspomagany przez wewn臋trzne uk艂ady wyd艂u偶aj膮ce impuls zeruj膮cy, co gwarantuje prawid艂owy start procesora nawet przy wolno narastaj膮cym napi臋ciu zasilania.
Poniewa偶 wszystkie komendy programowania i obs艂ugi wy艂膮cznika s膮 wydawane z klawiatury telefonu, niezb臋dny jest w urz膮dzeniu odbiornik DTMF. Jako odbiornik sygna艂贸w DTMF zastosowano uk艂ad US3 pod艂膮czony bezpo艣rednio do linii telefonicznej. Monitoruje on wszystkie pojawiaj膮ce si臋 sygna艂y bez wzgl臋du na to czy linia telefoniczna jest zaj臋ta przez modu艂 wy艂膮cznik贸w, czy przez telefon. Elementy C21, C2 2 i R4...R6 powoduj膮 dostosowanie poziomu sygna艂贸w pochodz膮cych z linii telefonicznej do warto艣ci w艂a艣ciwej dla prawid艂owej pracy wzmacniacza wej艣ciowego uk艂adu US3. Odebrane przez US3 prawid艂owe sygna艂y DTMF s膮 przekazywane na wyj艣cie danych uk艂adu Ql...Q4. Po wyst膮pieniu na wyj艣ciu binarnej warto艣ci odpowiadaj膮cej odebranej kombinacji ton贸w, na wyj艣ciu "STD" uk艂adu US3 pojawia si臋 wysoki poziom informuj膮cy procesor, 偶e zosta艂 odebrany nowy kod DTMF.
Sterownik wy艂膮cznik贸w odbiera po艂膮czenia przychodz膮ce, musi wi臋c by膰 r贸wnie偶 wyposa偶ony w detektor dzwonienia. Do wykrycia pr膮du dzwonienia zastosowano transoptor TSl, kt贸ry wraz z elementami R21, R22, C5, C6, D2, D3, D4 stanowi "wykrywacz" napi臋cia przemiennego pojawiaj膮cego si臋 na linii telefonicznej w czasie dzwonienia. Diody D2 i D3 zapobiegaj膮 t艂umieniu sygna艂贸w rozmownych w czasie rozmowy. W przypadku braku diod Zenera w czasie normalnej rozmowy u偶yteczny sygna艂
by艂by t艂umiony przez kondensator C5, gdy偶 linia telefoniczna by艂aby zwierana przez jego pojemno艣膰, co spowodowa艂oby ograniczenie pasma rozmownego. Chocia偶 w czasie rozmowy nie jest to zbytnio k艂opotliwe, to praca modemu zosta艂aby zak艂贸cona. W czasie rozmowy na linii telefonicznej wyst臋puje napi臋cie oko艂o 10V. Zastosowane diody Zenera powoduj膮 blokowanie sygna艂贸w o amplitudzie mniejszej ni偶 15V, dlatego w czasie rozmowy od艂膮czaj膮 one kondensator C5, a pr膮d dzwonienia o znacznie wy偶szej amplitudzie napi臋cia jest "przepuszczany".
Kolejnym blokiem sterownika jest blok komutacji z lini膮 telefoniczn膮. W torze przesy艂ania d藕wi臋k贸w pracuje przeka藕nik PKl s艂u偶膮cy do obci膮偶ania linii telefonicznej sztucznym obci膮偶eniem symuluj膮cym aparat telefoniczny. Przeka藕nik jest w艂膮czany za pomoc膮 tranzystora Tl, a dioda 艣wiec膮ca D5 sygnalizuje czy przeka藕nik jest za艂膮czony, czy roz艂膮czony. Mostek prostowniczy wraz z tranzystorem T2, rezystorami Rll, R12, R13 i kondensatorem C20 stanowi, po do艂膮czeniu do linii telefonicznej, obci膮偶enie dla sk艂adowej sta艂ej sygna艂u i powoduj膮c obni偶enie napi臋cia do oko艂o 10V "zajmuje" lini臋 telefoniczn膮. Obw贸d ten dla sygna艂贸w rozmownych nie wprowadza t艂umienia. Dioda D14 zabezpiecza tranzystor T2 przez ograniczenie napi臋cia mi臋dzy emiterem i kolektorem do warto艣ci r贸wnej 15V.
Linia telefoniczna jest nara偶ona na indukowanie si臋 wysokich napi臋膰 , dlatego szczeg贸ln膮 uwag臋 zwr贸cono na ochron臋 wszystkich podzespo艂贸w wy艂膮cznika. Warystor VI wraz z rezystorami Rl i R2 stanowi zabezpieczenie przed wysokimi napi臋ciami, powoduj膮c zwieranie linii w przypadku pojawienia si臋 napi臋cia przekraczaj膮cego 140V - w tym czasie ca艂y pr膮d p艂ynie przez rezystory Rl i R2.
Aby zabezpieczy膰 wzmacniacz wyj艣ciowy uk艂adu US2 do艂膮czanego do linii telefonicznej zastosowano separacj臋 galwaniczn膮 za pomoc膮 transformatora TRI. Kondensator Cl9 "odcina" sk艂adow膮 sta艂膮 sygna艂u od uzwojenia pierwotnego transformatora. Mostek prostowniczy MG2 zabezpiecza przed indukowaniem si臋 wysokich napi臋膰 w uzwojeniu wt贸rnym transformatora. Kondensatory Cl7 i C18 oddzielaj膮 sk艂adow膮 sta艂膮 sygna艂u z wyj艣cia wzmacniacza uk艂adu US2. Takie 艣rodki ostro偶no艣ci s膮 konieczne, aby w wyniku przepi臋膰, cz臋sto wyst臋puj膮cych szczeg贸lnie w d艂ugich liniach kablowych lub napowietrznych, nie zosta艂 uszkodzony uk艂ad US2.
Bardzo istotnym z punktu widzenia u偶ytkownika elementem wy艂膮cznika jest uk艂ad US2. To w艂a艣nie dzi臋ki niemu obs艂uga wy艂膮cznika jest komfortowa. Dzi臋ki informacjom g艂osowym u偶ytkownik dok艂adnie wie, na jakim etapie obs艂ugi si臋 znajduje. Uk艂ad ten umo偶liwia zapisanie komunikat贸w s艂ownych o 艂膮cznym czasie trwania jednej minuty. Komunikaty zostaj膮 zapisane w jego wewn臋trznej nieulotnej pami臋ci, a nast臋pnie mog膮 by膰 dowolnie odtworzone. Uk艂ad ISD2560 zawiera wzmacniacz mikrofonowy, do kt贸rego zosta艂 do艂膮czony poprzez kondensatory Cli i C12 mikrofon pojemno艣ciowy MKl. Rezystory R15...R17 i kondensator
Rys. 3. Schemat uk艂adu wykonawczego z wyj艣ciem przeka藕nikowym
Elektronika Praktyczna 7/2002
23
Interaktywny, telefoniczny modu艂 zdalnego sterowania
DATA
)5uA 'TYP.
PIO
Tx/Rx 1-Wire
CONTROL
GROUND
Rys. 4. Schemat uk艂adu DS2405
Cl6 zapewniaj膮 odpowiednie zasilanie mikrofonu.
Zawarty wewn膮trz wzmacniacz sygna艂u wyj艣ciowego umo偶liwia bezpo艣rednie wy sterowania g艂o艣nika, a wi臋c mo偶na by艂o pod艂膮czy膰 jego wyj艣cie bezpo艣rednio do transformatora separuj膮cego TRI. Zapisane w uk艂adzie ISD2560 komunikaty mog膮 by膰 odtworzone w dowolnej kolejno艣ci, bez znajomo艣ci adresu komunikatu w pami臋ci wewn臋trznej. Do komunikacji z procesorem wystarczy tylko sze艣膰 linii po艂膮czeniowych.
Diody 艣wiec膮ce D7...D13 sygnalizuj膮 stany poszczeg贸lnych uk艂ad贸w wykonawczych. Sterowanie poszczeg贸lnymi urz膮dzeniami odbywa si臋 za pomoc膮 jednoprze-wodowej magistrali 1-Wire. Umo偶liwi艂o to komunikacj臋 ze wszystkimi wy艂膮cznikami przy wykorzystaniu tylko jednego wyprowadzenia procesora. Rezystor R19 podci膮ga lini臋 do poziomu wysokiego wymaganego w standardzie zastosowanej magistrali. Diody D15 i D16 oraz rezystor R20 zabezpieczaj膮 port procesora przed wysokim napi臋ciem mog膮cym wyst膮pi膰 na przewodach rozprowadzonych na du偶膮 odleg艂o艣膰. Przy zastosowanych warto艣ciach element贸w uk艂ad modelowy pracowa艂 bez problem贸w na skr臋tce telefonicznej o d艂ugo艣ci 60 metr贸w. Do zasilania ca艂ego uk艂adu zastosowano stabilizator napi臋cia +5V typu LM7805 z kondensatorami C1...C4. Dioda Dl zabezpiecza uk艂ad w przypadku odwrotnej polaryzacji napi臋cia zasilaj膮cego.
Jak wspomniano, uk艂ad wykonawczy wy艂膮cznika zosta艂 wykonany w dw贸ch wersjach, przystosowanych do niewielkich obci膮偶e艅 pr膮dowych, na przyk艂ad o艣wietlenia oraz do obci膮偶e艅 znacznie wi臋kszych (grzejnik贸w). Na rys. 2 przedstawiono schemat elektryczny uk艂adu wykonawczego przystosowanego do ma艂ych obci膮偶e艅. Sygna艂y z magistrali 1-
Wire, wraz z napi臋ciem zasilaj膮cym, s膮 doprowadzone do z艂膮cza CONl, nast臋pnie przez zwork臋 JPl trafiaj膮 do wej艣cia "DQ" uk艂adu DS2405. W zale偶no艣ci od informacji przesy艂anych magistral膮 1-Wire, uk艂ad USl mo偶e zmienia膰 stan wyj艣cia "PIO" (spos贸b komunikacji procesora z uk艂adami DS2405 zostanie opisany w dalszej cz臋艣ci artyku艂u). Wyj艣cie "PIO" uk艂adu DS2405 jest typu otwarty kolektor, z kt贸rego mo偶e by膰 pobierany maksymalny pr膮d r贸wny 4mA. Poniewa偶 do sterowania optotriakiem Ql potrzebny jest pr膮d o warto艣ci oko艂o 15mA, konieczne sta艂o si臋 zastosowanie wzmacniacza pr膮dowego w postaci tranzystora PNP. W momencie pojawienia si臋 ujemnego napi臋cia na wyj艣ciu "PIO" uk艂adu USl, tranzystor Tl zaczyna przewodzi膰 i w艂膮cza diod臋 艣wiec膮c膮 zawart膮 w optotriaku, a tym samym powoduje za艂膮czenie triaka Q2 i urz膮dzenia odbiorczego (oczywi艣cie do wej艣cia CON2 nale偶y do艂膮czy膰 napi臋cie 220V). Dzi臋ki zastosowaniu optotriaka p艂ytka g艂贸wna prze艂膮cznika jest oddzielona galwanicznie od sieci energetycznej.
Na rys. 3 przedstawiono schemat elektryczny uk艂adu wykonawczego wykonanego na przeka藕niku. Tak jak w uk艂adzie z triakiem, przewody magistrali 1-Wire do艂膮czane s膮 do z艂膮cza CONl. Wyj艣cie "PIO" uk艂adu USl steruje diod膮 transop-tora, kt贸ry w艂膮cza tranzystor Tl, w kt贸rego obwodzie kolektora jest w艂膮czone uzwojenie przeka藕nika. Zastosowanie transoptora w celu izolacji galwanicznej w uk艂adzie z przeka藕nikiem wydaje si臋 by膰 niecelowe, poniewa偶 sam przeka藕nik spe艂nia takie zadanie, ale w tym uk艂adzie jest konieczna dodatkowa izolacja. U偶ycie przeka藕nika wymaga zastosowania dodatkowego napi臋cia zasilaj膮cego 12V w miejscu zainstalowania uk艂adu wykonawczego (w艂a艣ciwego wy艂膮cznika). Po艂膮czenie masy tego zasilania z mas膮 magistrali 1-Wire powoduje powstawanie zak艂贸ce艅 w transmisji. Jest to szczeg贸lnie odczuwalne przy du偶ych d艂ugo艣ciach magistrali 1-Wire. Wykorzystanie do sterowania przeka藕nikiem napi臋cia do艂膮czonego wraz z magistral膮 1-Wire jest r贸wnie偶 niemo偶liwe, gdy偶 ju偶 przy kilkunastometrowej d艂ugo艣ci przewod贸w powsta-
j膮 zbyt du偶e spadki napi臋cia, wi臋c zasilanie zewn臋trzne jest konieczne. Zastosowany przeka藕nik umo偶liwia za艂膮czanie obci膮偶e艅 o mocy do 3kW. Jest to wystarczaj膮ca moc do pod艂膮czenia grzejnika czy innego urz膮dzenia pobieraj膮cego du偶膮 moc. Za pomoc膮 styk贸w przeka藕nika mog膮 by膰 za艂膮czane urz膮dzenia zasilane nie tylko napi臋ciem 220V, lecz r贸wnie偶 inne, na przyk艂ad zasilane napi臋ciem sta艂ym.
Komunikacja z uk艂adem DS2405
Uk艂ad DS2405 jest prze艂膮cznikiem do艂膮czanym do magistrali 1-Wire. Tak jak wszystkie uk艂ady przystosowane do pracy z t膮 magistral膮, jest zasilany bezpo艣rednio z linii danych. Posiada jedno wyprowadzenie, kt贸rego stan mo偶e by膰 zdalnie odczytywany lub zmieniany (schemat blokowy tego uk艂adu pokazano na rys. 4). Wyj艣cie uk艂adu jest typu otwarty kolektor, w zwi膮zku z czym mog膮 wyst臋powa膰 na nim dwa stany: zera logicznego i wysokiej impedancji. Zalet膮 takiego rozwi膮zania jest mo偶liwo艣膰 zdalnego odczytania stanu linii "PIO", co umo偶liwia do艂膮czenie do jednoprzewodowej magistrali nawet kilkuset takich uk艂ad贸w. Stan ka偶dego z nich mo偶e by膰 odczytywany i zmieniany przy u偶yciu tylko jednego wyprowadzenia portu procesora.
Jak wszystkie uk艂ady wsp贸艂pracuj膮ce ze sob膮 poprzez magistral臋 1-Wire, uk艂ad DS2405 reaguje na komendy ROM pojawiaj膮ce si臋 na magistrali. Opr贸cz standardowych komend rozpoznawanych przez wszystkie uk艂ady, takich jak: odczytaj ROM, dopasuj ROM, odszukaj ROM i przeskocz ROM, uk艂ad DS2405 obs艂uguje jeszcze jedn膮 komend臋 - odszukaj tylko aktywny ROM. Komenda ta ma na celu odszukanie uk艂ad贸w do艂膮czonych do magistrali, u kt贸rych sygna艂 steruj膮cy wewn臋trznym tranzystorem Control ma p ozi om wys oki (stan logiczny "1"). Na wyj艣cie "PIO" uk艂adu mo偶e panowa膰 stan "0" w dw贸ch sytuacjach: je艣li zero zosta艂o wymuszone przez wewn臋trzny tranzystor lub w przypadku wymuszenia przez sygna艂 zewn臋trzny. Dlatego przy sprawdzaniu stanu tego wyj艣cia odczytanie stanu "PIO" nie daje jednoznacznej informacji co jest przyczyn膮
Elektronika Praktyczna 7/2002
Interaktywny, telefoniczny modu艂 zdalnego sterowania
?ooooooooooooo oooooooooooooo
0C250I IOCBOII QX1Q MOC9OI D
Rys. 5. Rozmieszczenie element贸w na p艂ytce drukowanej sterownika
wyst膮pienia zera na tym wyj艣ciu. Do jednoznacznego stwierdzenia stanu oraz przyczyny wywo艂ania tego stanu na wyj艣ciu "PIO" nale偶y odczyta膰 stan sygna艂u Control oraz stan wyj艣cia "PIO".
Poni偶ej przedstawione s膮 komendy steruj膮ce uk艂adem DS2405, umo偶liwiaj膮ce odczyt oraz zmian臋 stanu na wyj艣ciu "PIO":
Odczytaj ROM (33h) - wys艂anie komendy powoduje, 偶e uk艂ad DS2405 podaje sw贸j unikalny numer seryjny.
Dopasuj ROM (55h) - procesor steruj膮cy wysy艂a na magistral臋 numer seryjny (numer, kt贸ry wcze艣niej zosta艂 odczytany za pomoc膮 komendy odczytaj ROM), je艣li jest do艂膮czony uk艂ad o takim numerze seryjnym, to jak w przypadku wszystkich uk艂ad贸w "jednoprze-wodowych" odpowie impulsem obecno艣ci oraz dodatkowo: zmieni stan wyj艣cia "PIO" na przeciwny, je艣li procesor wystawi na magistral臋 dodatkow膮 szczelin臋 czasow膮 odczytu. W贸wczas uk艂ad DS2405 wystawi na magistral臋 stan swojego wyj艣cia "PIO". Je艣li wyj艣cie
fto ocfr
Rys. 6. Rozmieszczenie element贸w na p艂ytce drukowanej modu艂u z triakiem
"PIO" ma stan "1" to odpowie szczelin膮 czasow膮 logicznej "1", w przeciwnym przypadku odpowie szczelin膮 czasow膮 zera logicznego. Komenda dopasuj ROM umo偶liwia wi臋c zmian臋 na przeciwny stan wyj艣cia "PIO" oraz odczyt tego wyj艣cia. Jest to jednak komenda niepraktyczna do sprawdzenia stanu wyj艣cia "PIO", gdy偶 za ka偶dym razem, gdy b臋dziemy chcieli sprawdzi膰 jego stan, b臋dziemy jednocze艣nie zmieniali go na przeciwny. Dlatego w celu sprawdzenia stanu "PIO" bez jego zmiany nale偶y u偶y膰 dw贸ch innych komend przedstawionych poni偶ej.
Odszukaj ROM (FOh) - komenda ta zosta艂a stworzona do identyfikacji wszystkich uk艂ad贸w do艂膮czonych r贸wnolegle do magistrali i umo偶liwia odczytanie numeru dowolnego uk艂adu nawet je艣li do magistrali jest do艂膮czonych kilka r贸wnolegle. W przypadku uk艂ad贸w DS2405 komenda ta umo偶liwia dodatkowo odczytanie stanu wyj艣cia PIO - bez jego zmiany. Wiemy wi臋c ju偶 jaki stan panuje na wyj艣ciu "PIO". Nie wiadomo jeszcze tylko czym ten stan jest spowodowany. Aby to sprawdzi膰, nale偶y jeszcze odczyta膰 stan sygna艂u Control. Do tego celu s艂u偶y nast臋pna instrukcja.
Odszukaj tylko aktywny ROM (ECh) - wys艂anie tej komendy powoduje, 偶e swoj膮 obecno艣膰 sygnalizuj膮 tylko uk艂ady, kt贸rych wewn臋trzny sygna艂 Control jest r贸wny "1", czyli wyj艣cie "PIO" ma stan "0" wymuszony przez wewn臋trzny tranzystor. Po odczytaniu stanu wyj艣cia "PIO" i sygna艂u Control mo偶na jednoznacznie okre艣li膰 stan
wyj艣cia "PIO" oraz jego przyczyn臋 (wywo艂anie). Je艣li "PIO" jest r贸wne "0", a Control jest r贸wny "1", oznacza to, 偶e na wyj艣ciu "PIO" jest stan "0" wymuszony przez uk艂ad DS2405. Je艣li za艣 "PIO" jest r贸wne "0" i Control jest r贸wnie偶 r贸wne "0", to oznacza, 偶e na wyj艣ciu "PIO" jest stan "0" wymuszony przez sygna艂 zewn臋trzny.
Monta偶 i uruchomienie
Monta偶 rozpoczynamy od p艂ytki sterownika (schemat monta偶owy pokazano na rys. 5). Ze wzgl臋du na du偶e upakowanie element贸w nale偶y zwr贸ci膰 szczeg贸ln膮 uwag臋 na poprawno艣膰 monta偶u. Elementy montujemy poczynaj膮c od rezystor贸w, nast臋pnie diody oraz podstawki pod uk艂ady scalone. Gdy wlutujemy ju偶 elementy najni偶sze, montujemy kondensatory oraz z艂膮cza, a na ko艅cu montujemy przeka藕nik i transformator TRI. Je艣li jako odbiornik DTMF zastosujemy uk艂ad HT9170, to nale偶y wlutowa膰 tak偶e kondensatory C23 i C24. Je艣li za艣 b臋dzie to uk艂ad MT8870, kondensatory te s膮 zb臋dne.
Po wlutowaniu wszystkich element贸w przyst臋pujemy do uruchomienia sterownika wy艂膮cznik贸w. W tym celu do z艂膮cza CON3 do艂膮czamy napi臋cie zasilania
0 warto艣ci oko艂o 9V (uk艂ady scalone wyj臋te z podstawek) i sprawdzamy miernikiem czy napi臋cia na wyj艣ciu stabilizatora i na odpowiednich wyprowadzeniach podstawek uk艂ad贸w scalonych wynosz膮 oko艂o 5V. Je艣li napi臋cia s膮 prawid艂owe, wy艂膮czamy zasilanie,
1 montujemy uk艂ady scalone i ponownie je w艂膮czamy. Je艣li p艂ytka sterownika zosta艂a zmontowana poprawnie, to po w艂膮czeniu zasilania powinny za艣wieci膰 si臋 dio-
+12U
CHIdi K>
o-L2LJo o-OO-o
O O
o^a o
z; i-
O O
o o
to
o贸
Rys. 7. Rozmieszczenie element贸w na p艂ytce drukowanej modu艂u wykonawczego z przeka藕nikiem
Elektronika Praktyczna 7/2002
25
Interaktywny, telefoniczny modu艂 zdalnego sterowania
WYKAZ ELEMENT脫W
Sterownik Rezystory
Rl, R2, R13: 10O R3, R5...R7, R21: lOOka R4: 47kO R8: 300kO R9: 330O RIO: 4,7kQ Rl 1: 39kO R12: 22kO R14, R22: 10kO R15...R17: l,5kQ R18: 470kO R19: l,5kQ R20: 4,7Q R*: 100O RP1: 8x4700 Kondensatory Cl: 1000mF/25V C2, C3, Cli, C12, C14, C15, C25: lOOnF C4, C16: 100^F/16V C5: 220nF/250V C6: 4,7^F/1脫V tantalowy C7, C20: 10jiF/25V C8, C9, C23, C24: 30pF CIO: 4,7^F/1脫V
C13, C17...C19: ljiF polipropylenowy
C21, C22: 10nF/100V P贸艂przewodniki Dl: 1N4007
D2, D3, D14: dioda Zenera 15V D4: 1N4148
D5: LED 3mm czerwona D6...D13: LED 3mm 偶贸艂ta D15, D16: 1N5817 MG1, MG2: mostek prostowniczy 1A/4OOV Tl: BC547 T2: BC517 TS1: PC817
US1: PIC16F873 zaprogramowany US2: ISD2560 US3: MT8870 US4: 7805
dy 艣wiec膮ce D7...D13 i po dw贸ch sekundach zgasn膮膰. Je偶eli tak nie jest, nale偶y ponownie sprawdzi膰 poprawno艣膰 monta偶u.
Po wst臋pnym uruchomieniu p艂ytki sterownika rozpoczynamy monta偶 uk艂ad贸w wykonawczych (rys. 6 i 7). Elementy montujemy poczynaj膮c od tych o najmniejszych gabarytach. Jak wspomniano, sterownik mo偶e "obs艂u偶y膰" maksymalnie osiem takich uk艂ad贸w, ale mo偶e r贸wnie偶 pracowa膰 z jednym. Modu艂y wykonawcze nie wymagaj膮
R贸偶ne
Xl: rezonator kwarcowy 4MHz
X2: rezonator kwarcowy 3y579MHz
MK1: mikrofon pojemno艣ciowy
TRI: transformator 600/600 TRI36-2
CON1, CON2: gniazdo telef. RJ11
6/6 do druku
CON3: ARK2(5mm)
CON4: ARK3(5mm)
PK1: przeka藕nik OMRON 5V
Typ G6H
VI: warystor SIOV-S10K140
Modu艂 wykonawczy (z Makiem) Rezystory
Rl: 4,7kQ R2: 330O R3, R4: 220O P贸艂przewodniki
Tl: BC547
Ql: MOC3041
Q2: BT138-600
Ul: DS2405
R贸偶ne
CON1: ARK3(5mm)
CON2, CON3: ARK2(5mm)
JP1: goldpin 1x2 + Jumper
Bl: bezpiecznik
Modu艂 wykonawczy (z przeka藕nikiem) Rezystory
Rl: lkii R2: 47kO R3: 10kO P贸艂przewodniki
Dl: 1N4007
Tl: BC547
TS1: PC817
Ul: DS2405
R贸偶ne
CON1: ARK3(5mm)
CON2, CON3: ARK2(5mm)
CON4: ARK2(5 mm)
JP1: goldpin 1x2 + Jumper
Bl: bezpiecznik
PK1: RM 94P-12-S
uruchomienia, a ich dzia艂anie b臋dzie mo偶na sprawdzi膰 dopiero po do艂膮czeniu do p艂ytki sterownika. Do zasilania modu艂贸w z przeka藕nikiem nale偶y przygotowa膰 dodatkowy zasilacz o napi臋ciu oko艂o +12V i pr膮dzie oko艂o lOOmA. Krzysztof P艂awsiuk, AVT
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipie cO2.htm oraz na p艂ycie CD-EP07/2002B w katalogu PCB.
26
Elektronika Praktyczna 7/2002
PROJEKTY
Zestaw edukacyjny & dla mikrokontroler贸w ST62
AVT-5072
Zach臋ceni du偶ym
zainteresowaniem jakim cieszy艂
si臋 program ST-Realizer oraz
opublikowany w EP kurs
programowania, opracowali艣my Zestaw jest przeznaczony dla
zestaw edukacyjny, za tych, kt贸rzy bez zbytniego wysi艂ku pomoc膮 kt贸rego mo偶emy chc膮 rozpocz膮膰 sw膮 przygod臋
Zestaw, wraz z publikowanym
zaprogramowa膰 mikrokontroler z technik膮 mikroprocesorow膮. Ze- w EP kursem obs艂ugi ST6-Realize-rodziny ST62 do realizowania staw umo偶liwia szybkie wykona- ra, mo偶e wi臋c stanowi膰 doskona艂e elementarnych funkcji n*e sterownika i jego przetestowa- wsparcie procesu dydaktycznego sterowania z u偶yciem znajduj膮cych si臋 w zestawie element贸w, takich jak: diody
n*e
w
wykonania p艂ytki prototypowej. Skraca to znacznie czas od pomys艂u do realizacji uk艂ado- Opis uk艂adu
zakresie mikiokontioler贸w.
wej oraz zmniejsza koszty przy-
Schemat ideowy zestawu przedstawiony jest na rys. 1 .
LED, wy艣wietlacz LCD, gotowania projektu. Korzystaj膮c
przyciski, przeka藕niki z zestawu mo偶na przeprowadzi膰 Uk艂ad mo偶emy podzieli膰 na kilka j tranzystory. wiele 膰wicze艅 zwi膮zanych z przy- blok贸w funkcjonalnych, umo偶liwiaj膮cych r贸偶ne jego skon-
^ u x i i x - figurowanie. W sk艂ad ze-
Zestaw jest przeznaczony dla tych, kt贸rzy
szybko chc膮 wykona膰 prototypowy
sterownik w oparciu o mikrokontrolery
z rodziny ST62. Zestaw umo偶liwia r贸wnie偶
przeprowadzenie wielu w艂asnych
eksp e rym ent贸w._____________
gotowywanym oprogramowaniem sterownika. Zestaw ten powsta艂
stawu wchodz膮: - blok programuj膮co-testo-wy mikiokontiolera (sk艂ada si臋 on z trzech podstawek precyzyjnych DIP16, ^m_ DIP20, D1P28 pod mikio-kontrolery, z艂膮cza DB25, oddzielnego uk艂adu zasilania modu艂u programuj膮cego);
w wyniku wymiany do艣wiadcze艅 - blok sygnalizacyjny (wy艣wiet-
z ST-maniakami. Jego prosta budowa sprawia, 偶e ka偶dy - nawet pocz膮tkuj膮cy elektronik - mo偶e pokusi膰 si臋 o wykonanie "w艂asnego" uk艂adu mikroprocesorowego szybko i tanio.
lacz LCD 1x16, wy艣wietlacz siedmiosegmentowy 2 x LED, diody LED ze wsp贸ln膮 anod膮, diody LED ze wsp贸ln膮 katod膮, diody LED sterowane tranzystorami NPN);
Elektronika Praktyczna 7/2002
27
Zestaw edukacyjny dla mikrokontrolerow ST62
OZ/Ld 8/S/WH
Rys. la. Schemat elektryczny zestawu edukacyjnego - cz臋艣膰 zasadnicza
Elektronika Praktyczna 7/2002
Zestaw edukacyjny dla mikrokontrolerow ST62
AC/DC 13V
JP20 BLOKADA
74HC244
JP12
Rys. lb. Schemat elektryczny zestawu edukacyjnego - programator
bloki wykonawcze (tranzystory
mocy, triak, przeka藕nik, modu艂
separuj膮cy, transoptor);
blok fotoelement贸w (fotorezys-
tor, fotodioda);
blok sk艂adaj膮cy si臋 z rezystor贸w
0 r贸偶nych warto艣ciach, termisto-ra i potencjometr贸w;
blok generator贸w (generator akustyczny z przetwornikiem piezo, generator o zmiennym wsp贸艂czynniku wype艂nienia); blok zasilania zestawu (+12V
1 +5V).
Ponadto, u偶ytkownik ma do dyspozycji podstawki precyzyjne DIP8, DIP14, DIP16, DIP20, zwor-ki, przyciski, z艂膮cza ARK.
Uk艂ad wyposa偶ono wi臋c w dosy膰 bogaty zestaw r贸偶nych element贸w.
Programator wbudowany w zestaw umo偶liwia programowanie oraz testowanie nast臋puj膮cych typ贸w mikrokontrolerow rodziny ST62: ST62T01, ST62T10/20 oraz ST62T15/25. Dla rozpoczynaj膮cych prac臋 z mikrokontrolerami to zu-
pe艂nie wystarczy. Budowa zestawu stwarza jednak mo偶liwo艣膰 samodzielnej rozbudowy cz臋艣ci programuj膮cej.
Zestaw mo偶e pracowa膰 w jednym z dw贸ch tryb贸w:
- programowania,
- testowania uk艂adu.
Dla trybu programowania nale偶y odpowiednio ustawi膰 kilka zworek konfiguracyjnych wed艂ug nast臋puj膮cego zestawienia: JPl zwarta, JP2 wolna, JP3 wolna, JP4 zwarta, JP5 wolna, JP6 zwarta, JP7 zwarta, JP8 wolna, JP9 wolna, JP1O zwarta, JPll zwarta, JP12 zwarta, JP13 wolna, JP14 zwarta, JPl5 wolna/zwarta, JPl 6 wolna/ zwarta, JPl7 wolna/zwarta, JPl 8 wolna, JP19 wolna, JP2O zwarta.
Ze wzgl臋du na du偶膮 liczb臋 zworek nale偶y ze szczeg贸ln膮 uwag膮 przygotowywa膰 zestaw do programowania mikrokontrolera. Aby u艂atwi膰 wykorzystywanie zworek opiszemy przeznaczenie ka偶dej z nich.
Zwora JPl jest wykorzystywana przy programowaniu mikrokontrolera - przez ni膮 podawany jest sygna艂 RESET z komputera. Zwor-ki JP2 i JP3 s膮 wykorzystywane podczas testowania systemu: JP2 do艂膮cza obw贸d zerowania mikrokontrolera z wykorzystaniem kondensatora i rezystora, a JP3 do艂膮cza uk艂ad zerowania mikrokontrolera z wykorzystaniem DS1813. Zworka JP4 jest stosowana przy programo-
Elektronika Praktyczna 7/2002
29
Zestaw edukacyjny dla mikrokontrolerow ST62
OOOOOOO脫O ^S
o o o o o o
0|0|0|0|0|0|0|0|0
hnnnnnnnnn
i
oooooooooo o o o
_^____. *._. O J JJ B T
555555o5505535
POOCI OOC u u u u
Ol aooooooooo
oooooooooo
o-LflIHJ-o ETofe
o-LfiMJ-o I5"ob
OOOOOOOO
ulo-CECI-o o, ____
O-l SH ho
- a
Rys. 2. Rozmieszczenie element贸w na p艂ytce drukowanej
waniu - przez ni膮 jest podawany sygna艂 zegarowy do programowanego mikrokontrolera. JP5 jest u偶ywana podczas normalnej pracy do
do艂膮czania potencja艂u masy na wyprowadzenie Vpp/Test mikrokontrolera. JP6 jest u偶ywana podczas programowania - przez ni膮
jest podawane napi臋cie z zasilacza modu艂u programuj膮cego (o warto艣ci +5/+12V) na wyprowadzenie Vpp/Test. JP7, r贸wnie偶 jest wykorzystywana podczas programowania - przez ni膮 podawane jest napi臋cie zasilania +5V na wyprowadzenie Vdd (tylko podczas programowania i odczytu zawarto艣ci pami臋ci mikrokontrolera). Przez JP8 podaje si臋 napi臋cie zasilania mikrokontrolera +5V podczas testowania - z zestawu edukacyjnego. Podczas testowania przez JP9 podaje si臋 +5V na elementy obwodu zeruj膮cego. Zwory JP1O, JPll, JP12, przez kt贸re podane s膮 sygna艂y programuj膮ce, nale偶y zewrze膰 tylko podczas programowania procesora. Za pomoc膮 JP13 do艂膮cza si臋 do wyprowadzenia Reset mikrokontrolera przycisk do r臋cznego zerowania podczas testowania mo偶na zastosowa膰 obydwa obwody zerowania. JP14 nale偶y zewrze膰 podczas programowania jak i testowania mikrokontrolera. Zworki JP15, JP16, JP17 s膮 u偶ywane podczas programowania i testowania - za ich pomoc膮 doprowadza si臋 sygna艂 zeruj膮cy do mikrokontrolera. Spo艣r贸d tych trzech zworek mo偶e by膰 u偶yta tylko jedna odpowiadaj膮ca typowi programowanego i testowanego procesora. JP15 mo偶e by膰 zwarta tylko dla ST62T01, JP16 tylko dla ST62T10/20, JP17 zwarta tylko dla ST62T15/25. Kolejne dwie zwory JP18 i JP19 przy艂膮czaj膮 rezonator kwarcowy -s膮 u偶ywane tylko podczas testowania. Zwora JP2O jest u偶ywana podczas programowania (blokada).
Trzy pozosta艂e, wolne zwory (JP21.. JP2 3) s膮 przeznaczone do wykorzystania przez u偶ytkownika.
30
Elektronika Praktyczna 7/2002
Zestaw edukacyjny dla mikrokontrolerow ST62
Wykorzystanie zworek podczas testowania powinno by膰 nast臋puj膮ce: JPl wolna, JP2 lub JP3 - wybra膰 rodzaj uk艂adu zeruj膮cego, JP4 wolna, JP5 zwarta, JP6 wolna, JP7 wolna, JP8 zwarta, JP9 zwarta, JP1O, JPll, JP12
- wolne, JP13 zwarta/wolna, JP14 zwarta, JP15 lub JP16 lub JP17 zwarta, JP18 i JP19 - zwarte, JP2O wolna.
Programowanie mikrokontroler贸w
Gdy mamy przygotowany program i odpowiednio za艂o偶one zworki w zestawie, mo偶emy przyst膮pi膰 do programowania mikro-kontrolera. Uk艂ad programatora zosta艂 tak zaprojektowany, aby m贸g艂 wsp贸艂pracowa膰 z programem WinEpromer, kt贸ry opisali艣my na 艂amach EP przy okazji opisu Multiprogramatora ST62 (AVT993, EP1/O1). WinEpromer jest dost臋pny bezp艂atnie na stronie internetowej firmy STMicroe-lec tronie s pod adresem http:// eu.st.com/stonline/products/sup-port/mcu8/st6/toolch.htm. Program ten oraz inne narz臋dzia dla ST62 (w tym: Realizer II 4.0, VM Lab, asembler i lniker ST62) publikujemy r贸wnie偶 na p艂ycie CD-EP7/2002B.
Zestaw skonfigurowany poprawnie jako programator mo偶emy pobie偶nie sprawdzi膰 za pomoc膮 programu, kt贸ry w wersji instalacyjnej znajduje si臋 na p艂ycie CD-EP7/2 002B. Program ten zosta艂 napisany specjalnie do uruchamiania Multiprogramatora AVT993, ale nadaje si臋 r贸wnie偶 do zastosowania przy sprawdzaniu zestawu edukacyjnego. Po zainstalowaniu i uruchomieniu programu otwiera si臋 okno z przyciskami, po naci艣ni臋ciu kt贸rych na p艂ytce programatora diody 艣wiec膮 si臋 nast臋puj膮co:
- Przycisk ODCZYT: 艣wiec膮 si臋 diody D2 i D3 (dioda D2 艣wieci s艂abiej).
- Przycisk PROGRAMOWANIE: 艣wiec膮 si臋 diody D2 i D3 (dioda D2 艣wieci ja艣niej).
- Przycisk WYCZY艢膯: diody D2 i D3 gasn膮.
Najbardziej pewne jest pe艂ne testowanie dzia艂ania zestawu z programem Windows Epro-mer.
Testowanie uk艂adu
Zmiana trybu pracy z programowania na testowanie odbywa si臋 poprzez prze艂o偶enie zworek. Czynno艣膰 t臋 po zaprogramowaniu mikrokontrolera nale偶y wykona膰 przy wy艂膮czonym napi臋ciu zasilania ca艂ego zestawu. Za pomoc膮 zworek zestawiany jest podstawowy uk艂ad pracy mikrokontrolera, w sk艂ad kt贸rego wchodzi rezonator kwarcowy, obw贸d zeruj膮cy oraz zasilanie. Wszelkie inne po艂膮czenia mikrokontrolera z modu艂ami wykonujemy za pomoc膮 przewod贸w po艂膮czeniowych o r贸偶nych d艂ugo艣ciach.
Monta偶 uk艂adu
Podejmuj膮c decyzj臋 o budowie zestawu musimy u艣wiadomi膰 sobie, 偶e wykonanie p艂ytki (schemat monta偶owy pokazany na rys. 2, jej wz贸r opublikujemy na wk艂adce za miesi膮c) w spos贸b amatorski jest do艣膰 trudne ze wzgl臋du na jej wymiary oraz du偶膮 liczb臋 punkt贸w lutowniczych. Po zgromadzeniu wszystkich element贸w mo偶emy przyst膮pi膰 do ich monta偶u. Proponuj臋 zacz膮膰 od wykonania mostk贸w, z tego powodu, 偶e jest ich do艣膰 sporo oraz cz臋艣膰 przebiega pod innymi elementami. Po wykonaniu mostk贸w, w nast臋pnym kroku nale偶y zamontowa膰 oko艂o 300 ko艂k贸w. Ze wzgl臋du na liczb臋 ko艂k贸w mo偶e to by膰 zaj臋cie do艣膰 m臋cz膮ce i czasoch艂onne. Podczas monta偶u ko艂k贸w, po osadzeniu w otworze, nale偶y delikatnie docisn膮膰 je szczypcami p艂askimi do p艂ytki, a nast臋pnie przylutowa膰. Po wlutowaniu wszystkich ko艂k贸w montujemy pozosta艂e elementy zestawu.
Przed przyst膮pieniem do realizacji pierwszych projekt贸w za pomoc膮 zestawu, nale偶y wykona膰 przewody po艂膮czeniowe o r贸偶nych d艂ugo艣ciach. Na pocz膮tek wystarczy kilkana艣cie przewod贸w.
Mam nadziej臋, 偶e przedstawiony w artykule zestaw edukacyjny zach臋ci elektronik贸w-hobbyst贸w do eksperymentowania z mikro-kontrolerami ST62. Krzysztof G贸rski, AVT krzysztof.gorski@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipiecO2.htm oraz na p艂ycie CD-EP07/2002B w katalogu PCB.
SPIS ELEMENT脫W
Rezystory
Rl, R2: 5,贸kQ
R3, R4, R19, R20, R39, R45...R52:
3,9kQ
R5...R8: 300kQ
R9: 1,1 kQ
R13...R18, R59: 22kQ
R21, R22, R24: lkO
R25, R26: 2,7kQ
R24...R34: dowolne
RIO, Rl 1, R3脫, R40...R44, R53...R58:
820O
R37, R38: 220O
R脫O, R贸l: lOOkO
RA...RG: 560O
POT1, POT4: lOOkO
POT2, POT3: 20kQ
Kondensatory
Cl: 1000|iF/16V
C2, C3: 470^F/16V
C4, C脫...C8, CIO, Cli, C18:
lOOnF
C5: 47^F/16V
C9: l|iF/16V
C12, C13: 30pF
Cl 4: 150nF
C15...C17: lOnF
P贸艂przewodniki
DL D2: 1N4148
D3...D5: Diody LED ka偶da innego
koloru
D6...D16: Diody LED
D17: 1N4148
US1: 74HCT04
US2: 74HCT244
US3, US脫, US7: 78L05
US4: 7805
US5: DS1813
US8, US9: NE555
Ml: 1,5A
Tl: BC177 lub BC307
T2, T3, T脫...T10: BC237
T4, T5: BC307
T11...T14: BD135
R贸偶ne
Termistor: 4,7kQ
Z艂膮cze ARK 2x2: 4 szt.
Z艂膮cze ARK 2x3: 6 szt.
JP1...JP23 zworki
Ko艂ki: 300 szt.
Przewody po艂膮czeniowe z wtykami:
30 szt.
OPTOTRIAC: MOC3020
TRIAK: BTA16/脫00B
OPTO1: CNY 17-4
Wy艣wietlacz alfanumeryczny LCD:
1x16
Kwarc 8MHz
Wy艣wietlacz 2 cyfry LED: wsp贸lna
anoda
Z艂膮cze DB25 do druku 偶e艅skie
Przeka藕nik M4-12H
Elektronika Praktyczna 7/2002
31
PROJEKTY
Sprz臋towy terminal
AVT-5073
Interfejs komunikacji
szeregowej RS232 jest, ze
wzgl臋du na 艂atwo艣膰
implementacji i wystarczaj膮c膮
w wi臋kszo艣ci
zastosowa艅 szybko艣膰
transmisji, stosowany w wielu
urz膮dzeniach komunikuj膮cych
si臋 z otoczeniem- Uk艂ad
opisany w artykule jest
prostym, dwukierunkowym
terminalem RS232
o nietypowych mo偶liwo艣ciach.
Dl CON1 1NW1
Podczas pracy z urz膮dzeniami wyposa偶onymi w interfejs szeregowy cz臋sto wyst臋puje potrzeba sprawdzenia poprawno艣ci transmisji. Prezentowany w artykule uk艂ad umo偶liwia odbieranie oraz wysy艂anie danych przez interfejs RS232. Odbierane dane s膮 kierowane do portu procesora, kt贸ry mo偶e na przyk艂ad wystero-wa膰 diody 艣wiec膮ce w celu por贸wnania danych wys艂anych przez komputer lub procesor z tymi, kt贸re faktycznie pojawiaj膮 si臋 na szeregowej linii danych. Do wyj艣膰 mikiokontiolera mo偶na r贸wnie偶 do艂膮czy膰 urz膮dzenia steruj膮ce odbiornikami du偶ej mocy, umo偶liwiaj膮c sterowanie za pomoc膮 komputera r贸偶nymi urz膮dzeniami domowymi. W trybie nadajnika dane pojawiaj膮ce si臋 na liniach portu procesora s膮 wysy艂ane do komputera szeregowo. Do portu tego mo偶na do艂膮czy膰 klawiatur臋 lub dowolny czujnik, a stan linii b臋dzie wy艣wietlany na ekranie mo-
nitora. Do sterowania przep艂ywem danych mo偶na u偶y膰 dowolnego programu terminalowego, na przyk艂ad Hyper Terminal, w kt贸ry jest wyposa偶ony ka偶dy system Windows. Pr臋dko艣膰 transmisji mo偶e by膰 zmieniana w zakresie od 300 do 19200 bd. Transmisja odbywa si臋 w spos贸b a synchroniczny, z jednym bitem startu i jednym bitem stopu, bez bitu parzysto艣ci.
Budowa i dzia艂anie
Na rys. 1 przedstawiono schemat elektryczny sprz臋towego terminala. "Sercem" uk艂adu jest mikrokontroler firmy Atmel AT89C2051, kt贸ry zawiera w swojej strukturze 2 kB pami臋ci programu typu Flash oraz - bardzo istotny dla dzia艂ania urz膮dzenia -sprz臋towy interfejs szeregowej transmisji danych. Dzi臋ki niemu
Rys. 1. Schemat elektryczny terminala z portem szeregowym
Elektronika Praktyczna 7/2002
33
Sprz臋towy terminal RS232
?
o-rrai-o
ooooo ooooo
D
runi膮ooooooool |
oooooooooo*
tsn
?ooooooooo
Rys. 2. Rozmieszczenie element贸w na p艂ytce drukowanej terminala
procedura obs艂ugi portu szeregowego jest bardzo uproszczona, gdy偶 procesor nie musi programowo odbiera膰 i wysy艂a膰 danych bit po bicie. Jest to wykonywane ca艂kowicie sprz臋towo. Wbudowany w mikrokontroler nadajnik-od-biornik samodzielnie przetwarza dane i po odebraniu lub wys艂aniu ich informuje procesor, 偶e ca艂y bajt zosta艂 odebrany lub wys艂any. W czasie wysy艂ania lub odbierania danych z portu szeregowego procesor mo偶e zajmowa膰 si臋 innymi procesami.
Sygna艂 zegarowy potrzebny do pracy procesora jest wytwarzany przez oscylator z zewn臋trznym rezonatorem kwarcowym o cz臋stotliwo艣ci ll,059MHz. Taka cz臋stotliwo艣膰 pracy procesora umo偶liwia uzyskanie standardowych pr臋dko艣ci transmisji. Zerowanie procesora po w艂膮czeniu zasilania zapewnia obw贸d r贸偶niczkuj膮cy z艂o偶ony z rezystora Rl i kondensatora Cli. Zestaw rezystor贸w RNl zapewnia zewn臋trzne podci膮ganie wyprowadze艅 portu Pl do poziomu wysokiego. Jest to konieczne, gdy偶 w wewn臋trzne rezystory podci膮gaj膮ce [pull-up) wyposa偶one s膮 tylko wyprowadzenia Pl. 2.. .Pl. 7, natomiast wyprowadzenia Pl.O i Pl.l s膮 typu otwarty kolektor. Dla ujednolicenia warunk贸w pracy portu, rezystory zastosowano dla wszystkich jego wyprowadze艅.
Uk艂ad US2 jest konwerterem dostosowuj膮cym napi臋cia standardu RS232 (-15V...+15V) do napi臋膰
w standardzie TTL (O...5V), akceptowanych przez mikrokontroler. Uk艂ad MAX232 ma wbudowany podwajacz napi臋cia (do uzyskania napi臋cia na wyj艣ciach oko艂o +10V) oraz uk艂ad generuj膮cy ujemne napi臋cie o warto艣ci r贸wnej oko艂o -10V. Komputery akceptuj膮 napi臋cia wej艣ciowe dla dodatniego w przedziale +5V...+15V oraz ujemnego -5V...-15V, wi臋c uk艂ad US2 spe艂nia wymogi napi臋膰 standardu RS232 pod wzgl臋dem napi臋ciowym.
Do zasilania ca艂ego uk艂adu wystarczy tylko napi臋cie 5V, kt贸re jest otrzymywane na wyj艣ciu stabilizatora US3.
Dane odbierane przez terminal z portem szeregowym s膮 przekazywane do z艂膮cza CON2. Je艣li uk艂ad pracuje jako nadajnik szeregowy, dane s膮 pobierane z portu Pl. Na z艂膮czu CON2, opr贸cz wyprowadze艅 portu Pl, jest dost臋pne r贸wnie偶 jedno wyprowadzenie portu P3. Wyprowadzenie to jest wykorzystywane jedynie wtedy, gdy dane s膮 pobierane z portu Pl i maj膮 by膰 wys艂ane szeregowo.
Po ustawieniu odpowiednich stan贸w na z艂膮czu CON2 nale偶y poda膰 ujemny impuls na wyprowadzenie P3.7 portu P3. Spowoduje on wys艂anie danych ze z艂膮cza CON2 szeregowo do komputera. Na tym wej艣ciu wyzwalania transmisji s膮 programowo eliminowane drgania zestyk贸w, co umo偶liwia wyzwalanie za pomoc膮 klawisza.
Prezentowany uk艂ad umo偶liwia transmisj臋 przy jednej z siedmiu standardowych pr臋dko艣ci. Do wyboru pr臋dko艣ci s艂u偶膮 z worki JP1...JP3. Wykorzystanie tych zworek i ustawienia 偶膮danej pr臋dko艣ci transmisji zestawiono w tab. 1 (1 - zwarcie, 0 - rozwarcie). Poniewa偶 za pomoc膮 trzech zworek mo偶na wybra膰 osiem stan贸w, a mamy tylko siedem pr臋dko艣ci, dlatego kombinacji pozycji si贸dmej i 贸smej odpowiada taka sama pr臋dko艣膰.
Do prze艂膮czania uk艂adu mi臋dzy nadawaniem i odbiorem s艂u偶y zworka JP4 - jej zwarcie wprowadza uk艂ad w tryb odbioru danych z portu szeregowego i przes艂anie na z艂膮cze CON2. Rozwarcie tej zworki umo偶liwia wys艂anie danych pobranych ze z艂膮cza CON2
przez port szeregowy. Wszelkie zmiany pr臋dko艣ci, czy trybu pracy nale偶y wykonywa膰 przy wy艂膮czonym zasilaniu, gdy偶 ustawienie wszystkich zworek jest odczytywane tylko raz, przy starcie procesora. Wszelkie zmiany ustawienia zworek w czasie pracy procesora b臋d膮 uwzgl臋dnione dopiero po jego wyzerowaniu, czyli wy艂膮czeniu i ponownym w艂膮czeniu zasilania.
Dzi臋ki sprz臋towemu sterownikowi transmisji szeregowej wbudowanemu w mikrokontroler, procedura nadawania i odbioru danych sprowadza si臋 jedynie do odczytu lub zapisu danych do odpowiedniego rejestru. Poniewa偶 praca portu szeregowego jest asyn-chroniczna, w zale偶no艣ci od wybranej pr臋dko艣ci poszczeg贸lne bity s膮 wysy艂ane z r贸偶n膮 pr臋dko艣ci膮. Do odliczania czasu pomi臋dzy kolejnymi bitami wysy艂anego lub odbieranego bajtu danych najwygodniej jest zastosowa膰 Timer. W mikrokontrolerze zastosowanym w terminalu do dyspozycji s膮 dwa Timery, jednak偶e do obs艂ugi transmisji jest przypisany Timerl. Sk艂ada si臋 on z dw贸ch rejestr贸w (THl - starszy bajt i TLI - m艂odszy bajt). W zale偶no艣ci od konfiguracji Timera, rejestry mo偶na po艂膮czy膰 ze sob膮, dzi臋ki temu otrzymamy licznik dwubajtowy, o maksymalnej zliczanej warto艣ci 65 536. Do wsp贸艂pracy ze sterownikiem transmisji szeregowej wykorzystano tryb pracy tego Timera, nazywany trybem 2. W tym trybie Timerl mo偶e odliczy膰 maksymalnie 256 cykli. Zliczanie odbywa si臋 w rejestrze THl, a w rejestrze TLI przechowywana jest pocz膮tkowa warto艣膰, od kt贸rej licznik ma rozpocz膮膰 zliczanie. Po uzyskaniu maksymalnej warto艣ci rejestru
Tab. 1. Wykorzystanie zworek do ustawienia pr臋dko艣ci transmisji
Lp. JP3 JP2 JP1 Pr臋dko艣膰 transmisji [bd]
1 0 0 0 300
2 0 0 1 600
3 0 1 0 1200
4 0 1 1 2400
5 1 0 0 4800
6 1 0 1 9600
7 1 1 0 19200
8 1 1 1 19200
34
Elektronika Praktyczna 7/2002
Sprz臋towy terminal RS232
List. 1. Procedura inicjalizacji i obs艂ugi portu szeregowego
r********* Ustawienie TIMERA ********* ;TIMER 1
T1_G EQU0 ;GATE T1_C EQU0 ;COUNTER/-TIMER T1_M EQU2 ;MODE (0. .3) TIM1 EQUT1_M+T1_CM+T1_G*8 TMOD_SET EQUTIMO+TIM1*16 ;
ustawienie trybu 2 dla timeral TR_M EQU1 ;tryb transmisji (1..3) TR_R EQU1 ;Zezwolenie na odbi贸r SCOW_SET EQU TR_M*64+TR_R*16 ;Usta ;trans, asynchronic
MOVTH1, #TH1_SET ;Wpisanie warto艣ci ;pocz膮tkowej Timera
MOVTL1, #TL1_SET ;wg. wzoru
;TH1=256-(57600/V)
MOVSCON, #SCON_SET ; konfiguracja portu
szeregowego jako
ssynchroniczny MOVTMOD, #TMOD_SET ; konfiguracja Timeral
pracy w trybie 2 SET臉 SET臉 TI
portl=FF
port3=FF
je偶eli tryb=l,to nadajnik
ORLPCOW,#80H D, #TMO
TRI; start
TI
MOVP1,#2 5 5 MOVP3,#2 5 5 JWE TRYB , LCOP_1
; Praca jakc LCOP:
JWE TI, $
JE DIODA,LOOP
CLRTI LOOP_2:
MOVA,P1
MOV SEUF,A LOOP_3:
JWE DIODA, LOOP_3
MOVA, #10
CALL WAIT_10
SJMP LCOP
jnik
; Praca jak< LOOP_1:
SET臉 DIODA
JWE RI, $
CLRRI
MOVA,SEUF MOV Pl, A SJMP LCOP_1
je偶eli P3.7=0 n
z Portul
zeruj znacznik
lak aj zn
kopiuj portl do ACC wy艣lij znak
nzekaj na rzeka] lOn
kolejny zn 艢i orni k
ak z portu
ustaw P3.7
czekaj na
szeregowego
je艣li jest, to zeruj
znacznik
przepisz znak do ACC
przepisz znak do portu Pl
nast臋pny znak
THl nast臋puje automatyczne przepisanie jego warto艣ci pocz膮tkowej z rejestru TLI, dzi臋ki czemu nie trzeba za ka偶dym razem wpisywa膰 jego warto艣ci pocz膮tkowej. Na list. 1 przedstawiono procedur臋 obs艂ugi portu szeregowego.
Na pocz膮tku programu ustalamy tryb pracy Timera (wsp贸艂czynnik podzia艂u cz臋stotliwo艣ci sygna艂u zegarowego). Wyliczona z zale偶no艣ci: T1_M+T1_C*4+T1_G*8 warto艣膰 jest przechowywana w TIMl. Nast臋pnie ustalamy tryb pracy sterownika transmisji szeregowej (w przyk艂adzie: praca asynchro-niczna oraz zezwolenie na odbi贸r) i wst臋pnie zapisujemy wyliczon膮 z zale偶no艣ci TR_M*64+TR_R*16 warto艣膰 w SCON_SET. Pocz膮tkowa warto艣膰 wpisana do rejestru Timera, dla rezonatora kwarcowego o cz臋stotliwo艣ci ll,059MHz, jest obliczana ze wzoru THl=256-(57600/V), gdzie V oznacza pr臋dko艣膰 transmisji. Dla przyk艂adu, dla pr臋dko艣ci 9600 wz贸r ma posta膰 THl=256-(57600/9600), czyli THl=250. Warto艣膰 t臋 wpisujemy
zar贸wno do rejestru THl, jak r贸wnie偶 do TLI. Wpis ten wykonujemy jednorazowo, na pocz膮tku programu.
W procedurze Sta艅 nast臋puje uruchomienie portu szeregowego oraz start Timeral. W zale偶no艣ci od stanu zworki TRYB (JP-4) program przechodzi do procedury odbioru lub nadawania znak贸w. Je艣li zworka jest rozwarta, to wykonywany jest podprogram nadawania (p臋tla LOOP). W p臋tli tej sprawdzany jest stan bitu TI. Bit ten informuje, czy sterownik portu szeregowego sko艅czy艂 nadawanie poprzedniego znaku. Je艣li TI=1, to sprawdzany jest stan portu P3.7 (warunek odczytu portu Pl). Je艣li obydwa warunki s膮 spe艂nione nast臋puje odczyt stan贸w portu Pl i przepisanie tych stan贸w do rejestru SBUF. Po wpisaniu danych do tego rejestru nast臋puje automatyczne jego wys艂anie portem szeregowym. Nast臋pnie program oczekuje na stan wysoki na wyprowadzeniu portu P3.7, i powraca do pocz膮tku p臋tli LOOP.
Procedura wysy艂ania danych przez port szeregowy sprowadza si臋 do sprawdzenia czy zosta艂 ju偶 wys艂any poprzedni znak oraz wpisania odpowiedniej warto艣ci do rejestru nadawczego SBUF, a ca艂a procedura wysy艂ania poszczeg贸lnych bit贸w jest wykonywana poza programem. Podobnie jest dla odbioru transmisji szeregowej. Zapewnia go procedura zawarta w p臋tli LOOPl. Jej zadaniem jest sprawdzanie stanu flagi TI. Je艣li TI=1, oznacza to, 偶e w rejestrze SBUF jest odebrany szeregowo bajt danych i nast臋puje jego przepisanie do portu Pl. Rejestr SBUF pe艂ni podw贸jn膮 rol臋 - w czasie nadawania jest buforem nadawczym, a w czasie odbioru buforem odbiorczym.
Monta偶 i uruchomienie
Monta偶 wed艂ug schematu monta偶owego pokazanego na rys. 2 wykonujemy rozpoczynaj膮c od element贸w o najmniejszych gabarytach (rezystory, diody, podstawki pod uk艂ady scalone), a nast臋pnie montujemy kondensatory i z艂膮cza CON1...CON3. Po zmontowaniu ze sprawnych element贸w uk艂ad jest gotowy do pracy. Dla pewno艣ci przed w艂o偶eniem uk艂ad贸w
WYKAZ ELEMENT脫W
Rezystory
Rl: 10kO
RN1: R-pack - 10kO
Kondensatory
Cl, C2: 33pF
C3, C4: lOOnF
C5:
C贸:
C7...C11: 10|iF/16V
P贸艂przewodniki
Dl: 1N4004
US1: AT89C2051 zaprogramowany
US2: MAX232
US3: 78L05
R贸偶ne
CON1: ARK2(3,5mm)
CON2: goldpin 5*2
CON3: DB9M do druku
JP1...JP4: goldpin 1*2
Ql: kwarc ll,059MHz
scalonych mo偶na sprawdzi膰, czy napi臋cie zasilaj膮ce uk艂ady wynosi 5V (uprzednio do z艂膮cza CONl nale偶y do艂膮czy膰 napi臋cie 9V). Po艂膮czenie p艂ytki z komputerem wykonujemy kablem zako艅czonym z obydwu stron z艂膮czami DB9-偶e艅skimi. Kable takie s膮 wykorzystywane do po艂膮czenia dw贸ch komputer贸w. Wa偶ne jest, aby posiada艂 przeplot pomi臋dzy wyprowadzeniami "2" i "3". Schemat po艂膮cze艅 umo偶liwiaj膮cy samodzielne wykonanie takiego kabla jest przedstawiony na rys. 3. Po wykonaniu powy偶szych czynno艣ci uk艂ad jest gotowy do wsp贸艂pracy z dowolnym komputerem. Krzysztof P艂awsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdj'/lipie cO2.htm oraz na p艂ycie CD-EP07/2002B w katalogu PCB.
DB9F
DB9F
Rys. 3. Spos贸b wykonania kabla
Elektronika Praktyczna 7/2002
35
PROJEKTY
Uniwersalny regulator obrot贸w silnika AC
Zestaw Velleman K2636
"Stary, nie 艣ciemniaj" - to
od偶ywka m艂odych ludzi
popularna obecnie. Spoko -
m贸wi膮c ich j臋zykiem -
艣ciemnia膰 nie b臋d臋. Wr臋cz
przeciwnie, spr贸buj臋 co nieco
rozja艣ni膰 pewien temat.
Sciemniacze, to do艣膰
popularny typ uk艂ad贸w
budowanych przez
elektronik贸w. Wynika to z ich
przydatno艣ci w gospodarstwie
domowym. Prezentowane
w a艅ykule urz膮dzenie mo偶e
wprawdzie pracowa膰 w roli
regulatora o艣wietlenia, ale
zamys艂 konstruktora by艂 nieco
inny.
Rys. 1. Przyk艂ady w艂qczania triaka w regulatorach napi臋cia.
Ka偶demu z nas, od czasu do czasu, zdarza si臋 skorzysta膰 z urz膮dze艅 zawieraj膮cych silniki pr膮du zmiennego. S膮 one w odkurzaczach, robotach kuchennych, elektrycznych krajalnicach czy maszynkach do mi臋sa. Domowi maj-sterkowicze na pewno posiadaj膮 wiertarki. My elektronicy cz臋sto u偶ywamy je do najbardziej ulubionej czynno艣ci podczas wykonywania nowego urz膮dzenia, jak膮 jest wiercenie otwor贸w w p艂ytce obwodu drukowanego. Podczas tych prac, bardzo pomocna lub wr臋cz nieodzowna jest mo偶liwo艣膰 regulacji obrot贸w. Lecz tu ujawnia si臋 pewna niemi艂a cecha komutatorowych silnik贸w pr膮du zmiennego. Wraz ze spadkiem obrot贸w maleje ich moment obrotowy. Postanowi艂em tak zaprojektowa膰 uk艂ad, aby maksym alnie zmniejszy膰 to niekorzystne zjawisko. Na element wykonawczy wybra艂em tiiak.
Dzia艂anie regulator贸w zbudowanych na triakach polega na w艂膮czaniu ich w odpowiednim momencie cyklu napi臋cia zasilaj膮cego. W tradycyjnych 艣ciemniaczach impuls wyzwalaj膮cy jest podawany w tych samych chwilach t^,, zar贸wno dla dodatniej, jak i ujemnej po艂贸wki przebiegu napi臋cia (rys. la). Taki typ sterowania doskonale sprawdza si臋 w regula-
torach o艣wietlenia, jednak w przypadku regulacji obrot贸w silnik贸w komutatorowych lepszym rozwi膮zaniem jest wyzwalanie tiiaka tylko w jednym punkcie cyklu (rys. lb lub lc). Gdy b臋dzie to nast臋powa艂o w zakresie ma艂ych obrot贸w silnika, a wi臋c w drugiej po艂贸wce cyklu (rys. lc), 艣rednie napi臋cie podawane przez regulator b臋dzie osi膮ga艂o warto艣膰 r贸偶n膮 od zera. Silnik jest w贸wczas zasilany ze sk艂adow膮 sta艂膮, ale w艂a艣nie dzi臋ki temu wzrasta moment obrotowy.
Zasada dzia艂ania
Schemat ideowy regulatora jest przedstawiony na rys. 2. Wyr贸偶niamy w nim trzy bloki funkcjonalne: zasilacz, uk艂ad ustalaj膮cy moment wyzwolenia triaka i przerzutnik steruj膮cy bramk膮. Regulator mo偶e by膰 zasilany z sieci energetycznej 125V lub 22O...24OV, poprzez transformator separuj膮cy i jednocze艣nie obni偶aj膮cy napi臋cie. Dzi臋ki dzielonemu uzwojeniu wt贸rnemu mo偶na by艂o zrezygnowa膰 z mostka Graetz'a w zasilaczu. Prostowanie napi臋cia zapewniaj膮 diody Dl i D2, a kondensator Cl zapewnia jego wyg艂adzanie. Kondensator C3 powoduje gaszenie zak艂贸ce艅 impulsowych. Tranzystor Tl pracuje jako klucz - od zatkania do nasycenia. Jest on w艂膮czany i wy艂膮czany prawie
Elektronika Praktyczna 7/2002
37
Uniwersalny regulator obrot贸w silnika AC
LOAD
220V
Rys. 2. Schemat elektryczny regulatora.
dok艂adnie na pocz膮tku i na ko艅cu dodatniej po艂贸wki napi臋cia wyst臋puj膮cego w dolnej sekcji uzwojenia wt贸rnego transformatora (mi臋dzy mas膮 a diod膮 D2 i rezystorem Rl). Dzieje si臋 tak, gdy偶 uzwojenie to jest po艂膮czone poprzez rezystor Rl z baz膮 Tl. W efekcie, na kolektorze tego tranzystora uzyskuje si臋 przebieg prostok膮tny (rys. 3). Kolektor tranzystora Tl jest po艂膮czony poprzez uk艂ad r贸偶niczkuj膮cy C5, R4 z baz膮 T2. Tranzystor T2, pracuj膮cy r贸wnie偶 jako klucz, jest wi臋c w艂膮czany na kr贸tko w chwilach pojawiania si臋 narastaj膮cego zbocza na kolektorze Tl. O tym jak d艂ugo jest w艂膮czony tranzystor T2, decyduje sta艂a czasowa R4, C5 (Tl na rys. 3). W por贸wnaniu z okresem napi臋cia zasilaj膮cego, czas ten jest bardzo kr贸tki. W艂膮czenie tranzystora T2 powoduje natychmiastowe roz艂adowanie kondensatora C2, natomiast, gdy T2 jest wy艂膮czony, kondensator C2 jest 艂adowany poprzez potencjometry RVl i RV2 oraz rezystory R7 i R6. Dzi臋ki zastosowaniu potencjometr贸w mo偶na zmienia膰 sta艂膮 czasow膮 艂adowania, a to z kolei, jak si臋 przekonamy p贸藕niej, ma wp艂yw na ustalenie napi臋cia zasilaj膮cego do艂膮czony do regulatora odbiornik. Diody D3 i D4 zabezpieczaj膮 z艂膮cza baza-emiter tranzystor贸w Tl i T2, gdy s膮 one spolaryzowane ujemnie.
Elementem wykonawczym opisywanego regulatora jest triak TRI. Aby m贸g艂 on przewodzi膰, obw贸d do kt贸rego jest do艂膮czona jego bramka powinien umo偶liwia膰 przep艂yw pr膮du. Jak wida膰 ze schematu, bramka jest sterowana poprzez
tranzystor T4, kt贸ry wraz z tranzystorem T3 i przyleg艂ymi elementami tworzy przerzutnik Schmitta. Dzi臋ki dodatniemu sprz臋偶eniu zwrotnemu realizowanemu przez rezystor R8, uk艂ad ten pracuje tylko w dw贸ch stanach: I - w艂膮czony T4, wy艂膮czony T3; II - wy艂膮czony T4, w艂膮czony T3. Dzieje si臋 tak nawet w przypadku wolnozmiennego napi臋cia steruj膮cego, podawanego na wej艣cie przerzutnika. Dla Uwe mniejszego od napi臋cia na bazie T3 (ok. 3.5V), ustalonego przez dzielnik R12, R3, tranzystor T4 b臋dzie wy艂膮czony, T3 za艣 b臋dzie w艂膮czony. Je艣li napi臋cie wej艣ciowe nawet minimalnie przekroczy napi臋cie UBT3, to tranzystor T3 zostanie przytkany, gdy偶 wzro艣nie potencja艂 emiter贸w obu tranzystor贸w. Baza T3 pozostaje nadal na niezmiennym (prawie) potencjale ustalonym przez wspomniany dzielnik napi臋ciowy. Przytkanie tranzystora T3 oznacza wzrost napi臋cia na jego kolektorze, a to z kolei zwi臋ksza (poprzez R8) napi臋cie wysterowu-j膮ce T4. Wida膰 tu dzia艂anie dodatniego sprz臋偶enia zwrotnego, gwarantuj膮cego bardzo szybki przerzut regeneracyjny tranzystor贸w, po przekroczeniu progowej warto艣ci napi臋cia wej艣ciowego. Przerzutnik Schmitta cechuje si臋 wyst臋powaniem histerezy w jego charakterystyce przej艣ciowej. Oznacza to, 偶e aby uk艂ad powr贸ci艂 do stanu poprzedniego, napi臋cie wej艣ciowe musi spa艣膰 do warto艣ci du偶o ni偶szej ni偶 wspomniana wy偶ej warto艣膰 progowa. W tym konkretnym przypadku r贸偶nic臋 napi臋膰 wyznaczaj膮 napi臋cia przewodzenia diod D5 i D6 (razem ok. 1,2V). Charakterys-
tyka uk艂adu jest przedstawiona na rys. 4.
Wr贸膰my do om贸wienia efekt贸w zwi膮zanych z 艂adowaniem kondensatora C2. Analiz臋 rozpoczniemy, gdy jest on ca艂kowicie roz艂adowany (T2 - rys. 3). Napi臋cie na nim - jak wiadomo - b臋dzie narasta艂o wyk艂adniczo do warto艣ci wyznaczonej przez napi臋cie zasilaj膮ce (ok. 8V). Po przekroczeniu warto艣ci progowej dla przerzutnika Shmitta nast膮pi jego przerzut, a co za tym idzie w艂膮czenie triaka. Czas, po kt贸rym to nast膮pi (T2 -rys. 3), mierzony od chwili rozpocz臋cia 艂adowania kondensatora C2, b臋dzie zale偶a艂 od sta艂ej czasowej ustawionej potencjometrami RV1 iRV2. W chwili tl (rys. 3) tranzystor Tl zostaje wy艂膮czony, co jak ju偶 by艂o powiedziane wcze艣niej, powoduje roz艂adowanie kondensatora C2. Napi臋cie steruj膮ce przerzutnikiem Shmitta spada wi臋c
Rys. 3. Przebiegi czasowe
w wybranych punktach uk艂adu.
Elektronika Praktyczna 7/2002
Uniwersalny regulator obrot贸w silnika AC

4
-------------------------------->
Rys. 4. Charakterystyka U(wy)=f(Uwe) przerzutnika Schmitta.
poni偶ej dolnej warto艣ci progowej, powoduj膮c tym samym ponowny jego przerzut, a wi臋c i wy艂膮czenie triaka. Jak wida膰 z rysunku 4, triak pozostaje w艂膮czony od momentu t3 do tl i jak nie trudno zauwa偶y膰, przedzia艂 ten mo偶e si臋 rozci膮ga膰 na prawie ca艂y okres cyklu napi臋cia zasilaj膮cego. Praktycznie, zakres ten wynosi od 5 do 95% okresu. W takim te偶 przedziale mo偶emy wp艂ywa膰 na napi臋cie podawane na obci膮偶enie uk艂adu.
Monta偶 i uruchomienie
Przyznam szczerze, 偶e opisywany tu uk艂ad by艂 pierwszym kitem Vellemana, kt贸ry osobi艣cie zmontowa艂em i uruchomi艂em. Musz臋 przyzna膰, 偶e jestem pod wra偶eniem. Ca艂o艣膰 jest bardzo starannie przygotowana, pocz膮wszy od opakowania, poprzez kr贸tki, ale wystarczaj膮cy opis uk艂adu, a偶 po zgromadzenie element贸w do monta偶u. Mo偶e nawet 艣mieszy膰 bardzo szczeg贸艂owe wymienianie w instrukcji kolejno艣ci montowanych element贸w. Dzi臋ki temu jednak mog膮 sobie z tym poradzi膰 nawet zupe艂ni laicy nie rozr贸偶niaj膮cy kondensatora od rezystora. Je艣li w instrukcji jest napisane, 偶e "przylutuj najpierw rezystor Rl", to wiadomo, 偶e element ten b臋dzie na pocz膮tku tasiemki ze sklejonymi podzespo艂ami. Ka偶dy kolejny element b臋dzie odpowiada艂 kolejnej pozycji wymienionej w instrukcji. Dodatkowo - chyba na wszelki wypadek - podawany jest kod kolorowy, je艣li taki w艂a艣nie rodzaj oznakowania zastosowa艂 producent. W zestawie znajdziemy wszystko, 艂膮cznie ze 艣rubkami potrzebnymi do przykr臋cenia radiatora. Uruchamiaj膮c uk艂ad wykry艂em jednak drobn膮 r贸偶nic臋 mi臋dzy zamieszczonym w instrukcji schematem ideowym, a po艂膮czeniami na p艂ytce drukowanej. Aktualny schemat jest przedstawiony w niniejszym artykule. Dla porz膮dku wi臋c dodam tylko, 偶e r贸偶nice dotyczy艂y wyprowadze艅 艂膮cz贸wek "VAC" i "LOAD".
Podczas monta偶u nale偶y zwraca膰 uwag臋 na polaryzacj臋 kondensator贸w elektrolitycznych i diod. Wydaje si臋 ma艂o prawdopodobne, 偶eby wyprowadzenia triaka mog艂y si臋 zewrze膰 z radiatorem, lecz przed pod艂膮czeniem napi臋cia nale偶y sprawdzi膰, czy tak si臋 jednak nie sta艂o. Na wst臋pie pisa艂em, 偶e uk艂ad mo偶e by膰 zasilany z sieci 125V lub 22O...24OV. W naszym przypadku b臋dziemy mieli do czynienia raczej z t膮 drug膮 mo偶liwo艣ci膮. Wyboru dokonujemy wluto-wuj膮c zwork臋 w odpowiednie miejsce na p艂ytce. Po zamontowaniu wszystkich element贸w nale偶y w艂o偶y膰 bezpieczniki w specjalnie do tego przeznaczone podstawki. Je艣li kt贸ry艣 z nich ulegnie przepaleniu, mo偶na go zast膮pi膰 tylko identycznym. Przed do艂膮czeniem napi臋cia, warto jeszcze sprawdzi膰 poprawno艣膰 monta偶u. Je艣li wszystko jest w porz膮dku, mo偶na przyst膮pi膰 do uruchomienia uk艂adu. I tu wa偶na informacja: do艂膮czany do regulatora odbiornik mo偶e by膰 zasilany napi臋ciem zmiennym
0 warto艣ci skutecznej od 24 do 240V. Wa偶ne tylko, aby napi臋cie to mia艂o t臋 sam膮 cz臋stotliwo艣膰 co napi臋cie zasilaj膮ce i by艂o z nim w zgodnej lub przeciwnej fazie. Na p艂ytce znajduj膮 si臋 trzy 艂膮cz贸wki 艣rubowe. Pierwsza z nich (opisana "MAINS") s艂u偶y do do艂膮czenia napi臋cia zasilaj膮cego uk艂ad, do drugiej ("LOAD") do艂膮czamy odbiornik, a do trzeciej ("VAC") napi臋cie zasilaj膮ce odbiornik. Na elementach wlutowa-nych do p艂ytki wyst臋puje niebezpieczne dla 偶ycia napi臋cie sieciowe. Nale偶y zachowa膰 szczeg贸ln膮 ostro偶no艣膰 podczas uruchamiania uk艂adu. Pod 偶adnym pozorem nie mo偶na wymienia膰 bezpiecznik贸w, gdy uk艂ad nie jest od艂膮czony od sieci. Je艣li odbiornik ma by膰 zasilany napi臋ciem 22O...24OV, to sie膰 nale偶y doprowadzi膰 jednocze艣nie do 艂膮cz贸wek "MAINS"
1 "VAC". Maksymalne obci膮偶enie uk艂adu to 5.5A (ok. 1200W). Regulator jest przeznaczony g艂贸wnie dla silnik贸w AC. Najlepiej wi臋c uruchamia膰 uk艂ad, do艂膮czaj膮c taki w艂a艣nie typ odbiornika. Przed w艂膮czeniem zasilania potencjometr RVl nale偶y skr臋ci膰 w lewe, skrajne po艂o偶enie. Teraz mo偶na w艂膮czy膰 napi臋cie zasilaj膮ce. Reguluj膮c potencjometrem RV2, dopro-
WYKAZ ELEMENT脫W
Rezystory
Rl: 4,7kQ
R2: 3,3kQ
R3: 680O
R4, R5: 22kQ
R6: l,5kQ
R7: 47kQ (dla 50Hz), 10kO (脫OHz)
R8: lOOka
R9: 100O
RIO: 120O
Rl 1: 68Q
R12: lkn
R13: 27Q
R14: 390kO
RV1: lOOka potencjometr
RV2: lOOka potencjometr
monta偶owy
Kondensatory
Cl: 470^F/25V
C2: l|iF/16V
C3: lOOnF
C5: 47nF MKM
C贸: 100nF/400V
C7: 47nF/400V
P贸艂przewodniki
DL D2, D7: dioda z serii 1N4000
D3...D6: 1N914 lub 1N4148
Tl, T3: BC547, (545/549/238/239)
T4: BC517
TRI: BT137F
R贸偶ne
TRAFO: transformator 125V/220V/2x6V
LI: d艂awik przeciwzak艂贸ceniowy
wadzamy do uzyskania minimalnych obrot贸w silnika. Dzi臋ki temu ograniczymy iskrzenie szczotek, a tym samym przed艂u偶ymy ich 偶ywot. Gdyby okaza艂o si臋, 偶e w minimalnym po艂o偶eniu potencjometru, moment obrotowy silnika jest za ma艂y, zalecam zamieni膰 miejscami przewody doprowadzone do 艂膮cz贸wki "VAC". Mo偶na uzna膰, 偶e na tym uruchamianie uk艂adu zosta艂o zako艅czone. Teraz pozostaje ju偶 tylko zamkn膮膰 ca艂o艣膰 w jak膮艣 obudow臋, naklei膰 na ni膮 tabliczk臋 znamionow膮 (zawart膮 w zestawie element贸w), za艂o偶y膰 wiert艂o do wiertarki i wierci膰, wierci膰, wierci膰... Jaros艂aw Doli艅ski, AVT jaroslaw.dolinski@ep.com.pl
Zestawy firmy Velleman s膮 dost臋pne w ofercie handlowej AVT - szczeg贸艂y w Internecie www.sklep.avt.com.pl oraz pod numerami telefon贸w opublikowanych na str. 103.
Elektronika Praktyczna 7/2002
39
PROJEKTY
Sterownik odtwarzacza CD
W artykule przedstawiamy
projekt sterownika nap臋du
CD, za pomoc膮 kt贸rego
m o偶n a zam ien i膰 stary
komputerowy CD-ROM na
niez艂ej jako艣ci odtwarzacz
p艂yt kompaktowych. Opis ten
jest uzupe艂nieniem artyku艂u
o interfejsie ATA (str. 85).
Na p艂ycie CD-EP7/2002B
publikujemy kod 藕r贸d艂owy
programu dla mikrokontrolera
AVR.
Do budowy w艂asnego odtwarzacza CD wykorzysta艂em modu艂 YAMPP-3 w okrojonej wersji. Mo偶e na pocz膮tku s艂贸w kilka o tym uk艂adzie. Jest to odtwarzacz plik贸w MP3 zbudowany na mikro-kontrolerze AVR AT90S8515 oraz sprz臋towym dekoderze MP3 VS1OO1 (uk艂ad scalony firmy VLSI). Autorem tego projektu jest Jesper Hansen, a jego opis i dokumentacja s膮 dost臋pne na stronie WWW o adresie http:// www.yampp.com (jego budow臋 opiszemy we wrze艣niowym wydaniu EP).
Do przechowywania plik贸w MP3 uk艂ad wykorzystuje 2,5" dyski twarde ze z艂膮czem 44-styko-wym. Sterownik YAMPP'a potrafi obs艂ugiwa膰 systemy plik贸w FAT32-LBA oraz FAT16. Je偶eli dobrze pami臋tam, rekordzista YAMPP-3 pracowa艂 z dyskiem twardym o pojemno艣ci 40 GB. Ja bez problemu u偶ywa艂em dysk twardy o pojemno艣ci 10 GB.
Po mojej adaptacji na potrzeby odtwarzacza p艂yt audio CD, z p艂ytki YAMPP'a-3 zosta艂 jedynie procesor AVR z rezonatorem kwarcowym, uk艂ad zatrzasku 74HC573 (cho膰 po pewnych modyfikacjach w kodzie programu, mo偶na r贸wnie偶 zrezygnowa膰 i z niego) oraz 40-stykowe z艂膮cze IDE.
Opis uk艂adu
Schemat elektryczny sterownika przedstawiono na rys. 1. Procesor AT90S8515 jest procesorem typu RISC. W uk艂adzie odtwarzacza CD zastosowano konfiguracj臋 uk艂adu z zatrzaskiem 8-bitowym 74HC573. W normalnej sytuacji, gdy do procesora jest do艂膮czana zewn臋trzna pami臋膰, s艂u偶y on do zatrza艣ni臋cia mniej znacz膮cej cz臋艣ci adresu danej - w tym przypadku A0...A7. Adres ten jest dost臋pny w porcie A podczas pierwszego cyklu odczytu pami臋ci. Bardziej znacz膮ca cz臋艣膰 adresu wy-
Elektronika Praktyczna 7/2002
41
Sterownik odtwarzacza CD
vcc
STEROWANIE
ADO wstecz
AD1 stop
AD2 l
AD3 pauza
AD4 naprz贸d KEYS
10 9 MISC
fl 7 SCK
,__a ,___4 2 -o -o -o o-o-o- s HST
vcc 3 1 MOS

KLAWIATURA
DO PROGRAMATORA
Rys. 1. Schemat elektryczny sterownika CD
stawiana jest na wyprowadzeniach portu C (rys. 2).
Trzy linie adresowe interfejsu IDE - DAO (styk 35), DAl (styk 33) i DA2 (styk 36) po艂膮czono odpowiednio z liniami adresowymi A0, Al i A2 systemu. Linie CSO i CSl, s艂u偶膮ce do wyboru bloku rejestr贸w Command b艂ock lub Control b艂ock, do艂膮czono do linii adresowych A3 i A4 systemu mikroprocesorowego. Mo偶na 艂atwo zauwa偶y膰, 偶e adres na liniach adresowych A0...A7 systemu mikroprocesorowego uzyskujemy poprzez zatrza艣ni臋cie danej z portu A. Do zatrza艣ni臋cia danej s艂u偶y linia ALE mikroprocesora. W uk艂adzie sterownika nap臋du CD-ROM zastosowano pewien trick zwi膮zany z obs艂ug膮 pami臋ci zewn臋trznej:
ot贸偶 spos贸b obs艂ugi pami臋ci zewn臋trznej zale偶y od bitu SRE w rejestrze MCUCR. Informuje on procesor o obecno艣ci (bit ustawiony) lub braku (bit wyzerowany) zewn臋trznej pami臋ci SRAM. Gdy bit SRE jest ustawiony, linie port贸w A i C staj膮 si臋 liniami magistrali adresowej bez wzgl臋du na to, jak wcze艣niej skonfigurowali艣my porty A i C. Dokonuj膮c odczytu z kom贸rki nale偶膮cej do zewn臋trznej pami臋ci, mniej znacz膮cy bajt adresu A0...A7 jest generowany poprzez zatrza艣ni臋cie danej z portu A. Generuj膮c odpowiedni adres na liniach A0...A7 wybieramy odpowiedni rejestr sterownika wbudowanego w CD-ROM. Nast臋pnie mo偶emy wyzerowac bit SRE. Porty A i C staj膮 si臋 wtedy
Rys. 2. Ilustracja zasady rozdzielania adresu i danej z magistrali multipleksowej
List. 1. Fragment kodu 藕r贸d艂owego odpowiedzialny za obs艂ug臋 klawiatury
艢ent_e get_key_event (void)
static U0 8 keydown = 0;
U08 i;
event_e event = EV_IDLE;
cbi(MCUCR, SRE);
// disable EXTRAM
outp(0xff, PORTA-1);// set port as output outp(0, PORTA); // set all pins to 0
WDR; // allow time for port
// to actiyate delay (500); //odczekanie 1 ms
// w przypadku d艂u偶szych przewod贸w
if (keydown)
// if a key was pre // earlier
// see if it has been released
if (bit_is_set(PIND,PD3)) // check bit
{
// no key is down
// retum last key seen
switch (keydown)
{
case 1 : event = EV_PREV; break; case 2 : event = EV_STOP; break; case 3 : eyent = EV_PLAY; break; case 4 : event = EV_PAUSE; break; case 5 : event = EV_WEXT; break;
)
keydown = 0;
// check if a key is down if (bit_is_clear(PIWD,PD3))
// a key is for (i=0;i<8
ctive, check which
// write bit mask
outp(~(l玦) , PORTA);
// wait a while
asm volatile("nop");
WDR;
// op贸藕nienie w przypadku
// d艂u偶szych przewod贸w
delay (500);
// this bit ?
if (bit_is_clear(PIWD,PD3))
{
// stor臋 the key
keydown = i+1;
// and exit
break;
sbi(MCUCR, SRE); return event;
//
able RAM
42
Elektronika Praktyczna 7/2002
Sterownik odtwarzacza CD
Rys. 3. Schemat elektryczny uk艂adu klawiatury
normalnymi portami. Dzi臋ki temu mamy do dyspozycji magistral臋 16-bitow膮. Zmiany konfiguracji port贸w A i C nie maj膮 偶adnego wp艂ywu na stan CD-ROM-u, dop贸ki nie ustawimy DIOR lub DI O W na poziomie niskim.
Nap臋d jest sterowany za pomoc膮 prostej (rys. 3), pi臋cioprzycis-kowej klawiatury. Umo偶liwia ona wybranie: nast臋pnego lub poprzedniego utworu, rozpocz臋cie odtwarzania, pauzy oraz zatrzymania odtwarzania p艂yty CD. Klawiatura jest pod艂膮czana za pomoc膮 z艂膮cza SV3.
Zastosowany w projekcie spos贸b do艂膮czenia klawiatury jest
Intejalizacja port贸w Rejestr贸w CPU

S Jest \w <. p艂yta CD? y~\
Czekaj 350 ms

Odczytaj TOC
Obs艂uga p艂yty CD w zale偶no艣ci od
naci艣ni臋tego przycisku PLAY, STOP, PAUSE, .
艢rodowisko pracy wykorzystane podczas realizacji prezentowanego sterownika
Kompilator - do tworzenia i kompilowania program贸w na procesory z rodziny AVR - u偶ywam 艣wietnego i darmowego kompilatora AVR-GCC w wersji 3.0.2.
Edytor - jako edytor z pod艣wietlan膮 sk艂adni膮 wykorzystuj臋 darmow膮 wersj臋 AVR-studio - ver. 3.53 (niestety, najnowsza wersja 4.0 tego programu ogranicza edycj臋 jedynie do plik贸w assemblera).
Programator - jedn膮 z najwi臋kszych zalet procesor贸w z rodziny AVR jest mo偶liwo艣膰 ich programowania poprzez interfejs ISP, czyli bez demontowania procesora z p艂ytki. Jako programowego sterownika programatora u偶ywam darmowego programu YAAP ver 0.2 autorstwa Jespera Hansena (kr贸tki jego opis przedstawiamy w Mi ni projekt ach, na str. 75). Mo偶na go pobra膰 ze strony WWW -http://www.myplace.nu/avr/yaap/index.htm.
Rys. 4. Algorytm dzia艂ania programu steruj膮cego
bardzo czytelny, lecz zas艂uguje na kilka s艂贸w komentarza. Linia KEYS jest skonfigurowana jako wej艣ciowa. Funkcja sprawdzaj膮ca stan klawiatury znajduje si臋 w p臋tli g艂贸wnej programu. Przed przyst膮pieniem do sprawdzenia stanu przycisk贸w "od艂膮czana" jest pami臋膰 zewn臋trzna poprzez skasowanie bitu SRE w rejestrze MCUCR. Jest to koniecznie, poniewa偶 do odczytu klawiatury jest wykorzystywany PORT A, kt贸ry normalnie s艂u偶y do przesy艂ania adresu. Nast臋pnie program sprawdza czy naci艣ni臋ty zosta艂 jakikolwiek klawisz - wtedy s膮 zerowane wszystkie linie portu A. W kolejnym kroku jest sprawdzany stan wej艣cia KEYS. Gdy jest "1" -wychodzimy z procedury - oznacza to, 偶e 偶aden klawisz nie jest naci艣ni臋ty (przedtem ustawiamy bit SRE). Gdy jest "0" - za pomoc膮 przesuwanej jedynki sprawdzamy, kt贸ra z linii portu A jest po艂膮czona z KEYS. Zapami臋tujemy numer linii portu A oraz fakt wci艣ni臋cia przycisku. Wychodzimy z procedury odczytu klawiatury, po czym jest ona znowu wywo艂ywana. Wej艣cie w procedur臋 spowoduje (przedtem zerujemy bit SRE) przej艣cie do sprawdzenia, czy zapami臋tany przycisk zosta艂 ju偶 zwolniony. W tym celu zerujemy zapami臋tan膮 lini臋 portu A i sprawdzamy stan linii KEYS. Gdy na linii KEYS jest "1" -przycisk zosta艂 ju偶 zwolniony. Funkcja zwraca numer zapami臋tanej linii portu A. Gdy na linii
KEYS jest "0" - wtedy przycisk jest nadal wci艣ni臋ty. Wychodzimy z funkcji (ustawiaj膮c przed wyj艣ciem bit SRE).
Na list. 1 znajduje si臋 fragment kodu 藕r贸d艂owego odpowiedzialnego za obs艂ug臋 klawiatury. Ca艂y program oraz wzory p艂ytek drukowanych (w wersjach SMD i przewlekanej) publikujemy na CD-EP7/2002B. Na rys. 4 zilustrowano algorytm dzia艂ania programu steruj膮cego. Pawe艂 Dienwebel pelos@pelos.pl
Dodatkowe informacje mo偶na znale藕膰 w Internecie pod adresem: http://www.pehs. pllcdjreel.
WYKAZ ELEMENT脫W
Rezystory
Rl: lkn M0805
R2: 10kO M120脫
R12: 10kO M0805
Kondensatory
Cl: 22pF C0805
C2: 22pF C0805
C3: lOOn C1206
P贸艂przewodniki
IC1: AT90S8515J (PLCC44) -
zaprogramowany
IC2: 74HC573 SO20L
R贸偶ne
Jl: programator MA05-2
J5: POWER MA02-1
Ql: 7,3728 MHz HC49U-V
Sl: RESET ALPS_45
SV1: ML40
SV3: MAO脫-1
Elektronika Praktyczna 7/2002
43
PROJEKTY
Rejestrator telefoniczny z dekoderem CLIP,
cz臋sc 2
AVT-5065
W drugiej cz臋艣ci artyku艂u
przedstawiamy opis
uruchomienia rejestratora,
kt贸ry jest uk艂adem o do艣膰
skomplikowanej budowie
i w swej pierwotn ej wersji
sprawia艂 sporo problem贸w
u偶ytkownikom. Przedstawiamy
tak偶e skr贸cony opis obs艂ugi
rejestratora. Mamy nadziej臋m
偶e jego mo偶liwo艣ci zadowol膮
nawet najbardziej wybrednych
u 偶ytko wn ik贸w.
Uruchomienie
Ustawienie kontrastu wy艣wietlacza
Potencjometr P3 skr臋camy w prawe skrajne po艂o偶enie (zwarcie suwaka z GND), nast臋pnie kr臋c膮c w lewo staramy si臋 uzyska膰 jak najwi臋kszy kontrast.
Test uk艂adu pomiaru pr膮du w linii
Po pod艂膮czeniu rejestratora do linii, bez wzgl臋du na to czy rejestrator jest zasilany, czy nie, telefon powinien funkcjonowa膰 poprawnie. Je艣li tak nie jest, przyczyny nale偶y szuka膰 w obwodzie przeka藕nika lub diod D3...D6. Po w艂膮czeniu zasilania, przy od艂o偶onej s艂uchawce na wide艂kach, na wyj艣ciach transoptor贸w OPl i OP2 powinny wyst臋powa膰 wysokie poziomy napi臋cia. Je艣li na kt贸rym艣 jest poziom niski, nale偶y zmniejszy膰 warto艣膰 R2 tak, a偶 na obydwu b臋d膮 poziomy wysokie. Po podniesieniu s艂uchawki telefonu na jednym z transoptor贸w powinien wyst膮pi膰 poziom niski.
Test detektora sygna艂u dzwonienia
W czasie gdy telefon dzwoni, na wyj艣ciach obydwu transopto-
r贸w OPl i OP2 powinny si臋 pojawia膰 ujemne impulsy, a na wyj艣ciu transoptora OP3 wyst臋puje niski poziom napi臋cia.
Test generatora sygna艂u nie-osi膮galno艣ci
Zwieramy wej艣cie 13 US2 do masy. Przeka藕nik powinien "z艂apa膰". W s艂uchawce powinno by膰 s艂ycha膰 sygna艂 nieosi膮galno艣ci (kr贸tki przerywany oko艂o 330 Hz). Nie musimy si臋 martwi膰, 偶e zwieraj膮c wyj艣cie US8 uszkodzimy go. Procesor ma wyj艣cia ze s艂abym podci膮ganiem (podobne do OC) i zwarcie wyprowadzenia do masy nie spowoduje przep艂ywu nadmiernego pr膮du.
Test dekodera DTMF
Przy wybieraniu cyfr w kodzie DTMF, na wyprowadzeniu 15 US3 powinny pojawia膰 si臋 impulsy dodatnie. Je艣li ich nie ma, to sprawdzamy czy na wyprowadzeniu 8 US3 wyst臋puje przebieg o cz臋stotliwo艣ci 3,57 MHz. Wyj艣cie to nale偶y obci膮偶y膰 jak najmniejsz膮 rezystancj膮 i pojemno艣ci膮. W przeciwnym wypadku generator mo偶e zerwa膰 drgania. Sonda logiczna na tym wyprowadzeniu mo偶e wykaza膰 ujemne impulsy szpilkowe, ale to zale偶y od jej budowy. Brak impuls贸w mo偶e by膰 spowodowany uszkodzeniem US6
Elektronika Praktyczna 7/2002
45
Rejestrator telefoniczny z dekoderem CLIP
lub US7. Mo偶na je usun膮膰 z podstawek i sprawdzi膰 czy generator zacz膮艂 pracowa膰 poprawnie. Je艣li tak, nale偶y ustali膰, kt贸ry z uk艂ad贸w jest uszkodzony i wymieni膰 go na nowy. Je艣li s膮 oscylacje, a dekoder nie pracuje poprawnie, nale偶y pod艂膮czy膰 oscyloskop do wyprowadzenia 3 US3. Po podniesieniu s艂uchawki powinien pojawi膰 si臋 tam sygna艂 o cz臋stotliwo艣ci 400 Hz. Je艣li nie zastosowali艣my transformatora tylko uk艂ad z艂o偶ony z RZ1...RZ3 i C5A, przebieg mo偶e by膰 zniekszta艂cony (na艂o偶ony sygna艂 o cz臋stotliwo艣ci 50 Hz). Mo偶e on by膰 przyczyn膮 nieprawid艂owego dzia艂ania dekodera DTMF, a w konsekwencji dekoder贸w 16 kHz i 400 Hz. Je艣li brak jest sygna艂u o cz臋stotliwo艣ci 400 Hz, nale偶y sprawdzi膰 czy sygna艂 pojawi si臋 na wej艣ciu uk艂adu (wyprowadzenia 1 i 2). Je艣li sygna艂 na wej艣ciu jest, a brak go na wyj艣ciu, mo偶e to 艣wiadczy膰 o uszkodzeniu US4, US5, C14 lub C18.
Uwaga! Aby poprawnie funkcjonowa艂y US4...US7 musi poprawnie dzia艂a膰 US3!
Ustawienie dekodera 400 Hz Je艣li mamy miernik cz臋stotliwo艣ci, pod艂膮czamy go do wyprowadzenia 5 US4. Kr臋c膮c potencjometrem Pl ustawiamy jak najdok艂adniej cz臋stotliwo艣膰 400 Hz dla sygna艂u na tym wyprowadzeniu. Je艣li nie posiadamy miernika, pod艂膮czamy rejestrator do linii, odk艂adamy s艂uchawk臋 obok telefonu, pojawi si臋 w niej ton 400 Hz z centrali. Do wyprowadzenia 8 US4 pod艂膮czamy sond臋 logiczn膮 (lub miernik uniwersalny na zakresie pomiarowym 10/20 V). Kr臋c膮c potencjometrem Pl powodujemy zmian臋 poziomu napi臋cia na wyprowadzeniu 8 z wysokiego na niski. Poziom niski b臋dzie wyst臋powa艂 w pewnym k膮cie obrotu potencjometru - ustawiamy go po艣rodku tego k膮ta.
Ustawienie detektora 16 kHz Wariant 1, na US7 - nie wymaga regulacji.
Wariant 2, na US5 - je艣li posiadamy miernik cz臋stotliwo艣ci, pod艂膮czamy go do wyprowadzenia 5 US5. Kr臋c膮c potencjometrem P2 ustawiamy jak najdok艂adniej cz臋stotliwo艣膰 16 kHz dla sygna艂u na tym wyprowadzeniu. Je艣li posiada-
my generator, ustawiamy na nim sygna艂 o cz臋stotliwo艣ci 16 kHz i poziomie 200 mV. Do wyprowadzenia 8 US4 pod艂膮czamy sond臋 logiczn膮. Kr臋c膮c potencjometrem P2 powodujemy zmian臋 poziomu napi臋cia na wyprowadzeniu 8 z wysokiego na niski. Poziom niski wyst臋powa艂 w pewnym k膮cie obrotu potencjometru - ustawiamy go po艣rodku tego k膮ta.
Gdy nie posiadamy miernika cz臋stotliwo艣ci ani generatora, pozostaje czasoch艂onna metoda pr贸b i b艂臋d贸w. Ustawiamy P2 w skrajnym po艂o偶eniu, do wyprowadzenia 8 US5 pod艂膮czamy sond臋 logiczn膮. Wybieramy p艂atny numer i obserwujemy diod臋 na pr贸bniku. Po zrealizowaniu po艂膮czenia powinien pojawi膰 si臋 kr贸tki (oko艂o 0,2 s) impuls ujemny. Je艣li go brak, przekr臋camy troch臋 potencjometr, zn贸w wykonujemy po艂膮czenie i tak a偶 do skutku.
Kalibracja zegara
Do wyprowadzenia 10 lub 11 US12 pod艂膮czamy miernik cz臋stotliwo艣ci lub czasu. Kr臋c膮c try-merem staramy si臋 uzyska膰 jak najdok艂adniej cz臋stotliwo艣膰 128 Hz dla sygna艂u na wyprowadzeniu 11 lub okres 1 s (wyprowadzenie 9), czy te偶 poziom "H" lub "L" 500 ms.
Test portu RS232C
Do rejestratora pod艂膮czamy komputer typowym kablem null-modem. Uruchamiamy program terminala (parametry transmisji nie s膮 istotne). Po ka偶dym naci艣ni臋ciu spacji na klawiaturze, na wyprowadzeniu 10 US8 powinny pojawia膰 si臋 ujemne impulsy. Zwieramy wyprowadzenie 11 US8 do masy. Na wyprowadzeniu 4 OP4 powinno wyst膮pi膰 napi臋cie 3...12V.
Obs艂uga i programowanie
Po pierwszym uruchomieniu, je偶eli pami臋膰 EEPROM jest pusta, rejestrator po tek艣cie powitalnym wy艣wietli dat臋, godzin臋, a w dolnym wierszu komunikat Z艂a suma konfigu. Nale偶y zewrze膰 jumper INIT, podnie艣膰 s艂uchawk臋 i wywo艂a膰 zerowanie CPU. Na wy艣wietlaczu pojawi si臋 napis: Kasowa膰 [0/1]? - w odpowiedzi naciskamy klawisz 1, pojawi si臋 pytanie: Na pewno [0/1]? - nacis-
kamy ponownie 1. Gdy wszystko jest OK, dolny wiersz wy艣wietlacza jest pusty. W pami臋ci dostarczanej w kicie b臋d膮 zaprogramowane tablice taryf, prefiks贸w i standardowa konfiguracja. Na wy艣wietlaczu w stanie spoczynku b臋dzie wy艣wietlana godzina i data przy wygaszonym pod艣wietlaniu wy艣wietlacza.
Komunikaty b艂臋d贸w zg艂aszane przez rejestrator:
- B艂膮d: EEPROM IIC - procesor nie wykry艂 pami臋ci EEPROM,
- B艂膮d: Stos - b艂膮d w programie, nale偶y skonsultowa膰 si臋 z autorem,
- B艂膮d: Zegar IIC - procesor nie wykry艂 uk艂adu zegara,
- B艂膮d: FIFO - przepe艂niony bufor odbiorczy RS.
Dodatkowo, podczas wy艣wietlania daty, w dolnej linii mo偶e pojawi膰 si臋 napis:
- Z艂a suma konfigu - b艂膮d podczas zapisu konfiguracji,
- Z艂a suma taryf - b艂膮d podczas zapisu tablicy taryf,
- Z艂a suma prefiks - b艂膮d podczas zapisu tablicy prefiks贸w.
Przyczyn膮 wyst膮pienia wymienionych b艂臋d贸w by艂o przerwanie zapisu danych do pami臋ci EEPROM. W przypadku wyst膮pienia kt贸rego艣 z powy偶szych b艂臋d贸w nale偶y przejrze膰 tablic臋 lub zawarto艣膰 pami臋ci konfiguracji i poprawi膰 ewentualne b艂臋dy. Zapis tablicy czy konfiguracji nast臋puje automatycznie w chwili wyj艣cia z opcji edycji tablicy lub konfiguracji.
Inny b艂膮d jest zg艂aszany po uaktualnieniu programu, je艣li w nowej wersji wprowadzono nowe opcje. Najlepiej przed uaktualnieniem wydrukowa膰 konfiguracj臋. Po uaktualnieniu nale偶y ponowi膰 wydruk i ustawi膰 opcje, kt贸re zosta艂y zmienione.
- Z艂a wersja konf. - nowa wersja programu, w EEPROM stara wersja konfiguracji.
W przypadku zape艂niania si臋 bufora rozm贸w nale偶y wydrukowa膰 i skasowa膰 jego zawarto艣膰. Rejestrator informuje o ryzyku przepe艂nienia bufora komunikatami:
- Zosta艂o 10% buf - oznacza, 偶e nied艂ugo bufor zostanie przepe艂niony.
- Bufor pe艂ny - brak pami臋ci na nowe rekordy. Najstarsze rozmo-
46
Elektronika Praktyczna 7/2002
Rejestrator telefoniczny z dekoderem CLIP
wy b臋d膮 zast臋powane nowymi. Aby usun膮膰 komunikat nale偶y wydrukowa膰 i skasowa膰 bufor rozm贸w.
Rozmowy przychodz膮ce
Gdy zadzwoni telefon, na wy艣wietlaczu pojawi si臋 napis Dzwonek... oraz w艂膮czy si臋 jego pod艣wietlanie. Je偶eli abonent wywo艂uj膮cy b臋dzie mia艂 w艂膮czon膮 identyfikacj臋, jego numer pojawi si臋 w dolnym wierszu wy艣wietlacza. Gdy podniesiemy s艂uchawk臋 pojawi si臋 napis Rozmowa... wraz z numerem, z kt贸rym mamy po艂膮czenie.
Rozmowy wychodz膮ce
Po podniesieniu s艂uchawki w艂膮czy si臋 pod艣wietlanie wy艣wietlacza oraz pojawi si臋 napis Nr: z migaj膮cym kursorem. W trakcie wybierania numeru jest on widoczny na wy艣wietlaczu (np. 0221234567).
Gdy nast膮pi po艂膮czenie, na wy艣wietlaczu ujrzymy:
00:00:00 0.35
Warszawa tO4
Podczas rozmowy licznik b臋dzie wskazywa艂 czas trwania po艂膮czenia, z prawej strony widoczny b臋dzie aktualny koszt po艂膮czenia, a w dolnym wierszu komentarz przypisany do rozpoznanego prefiksu i taryfa wed艂ug kt贸rej jest przeprowadzane zaliczanie impuls贸w.
Podgl膮d licznik贸w
Po naci艣ni臋ciu przycisku PR脫G na wy艣wietlaczu ujrzymy napis:
10.15/0.35
kt贸ry nale偶y interpretowa膰 nast臋puj膮co: bufor w rejestratorze mo偶e zmie艣ci膰 872 rekordy (po艂膮czenia), wykorzystano 8. Zarejestrowano rozmowy o 艂膮cznej warto艣ci 10 z艂 15 gr, ostatnia rozmowa kosztowa艂a 35 gr. Liczba rekord贸w jak膮 mo偶e zmie艣ci膰 rejestrator zale偶y od tego, ile i jakich uk艂ad贸w pami臋ci u偶yjemy. Szczeg贸艂y opisano w tabelce na p艂ytce drukowanej. Program sam rozpoznaje jaka pami臋膰 jest zamontowana na p艂ytce. Koszt ostatniej rozmowy b臋dzie wiarygodny, gdy po ostatniej rozmowie nie by艂o zerowania. W przeciwnym przypadku b臋dzie wy艣wietlony koszt = 0.00.
Programowanie
Aby wej艣膰 w tryb programowania nale偶y po naci艣ni臋ciu przycisku PR脫G podnie艣膰 s艂uchawk臋. Po chwili pojawi si臋 napis Kod:, a w s艂uchawce b臋dzie s艂ycha膰 przerywany ton 330 Hz. Po poprawnym wpisaniu kodu (domy艣lnie 1111) na wy艣wietlaczu b臋d膮 cyklicznie pojawia膰 si臋 podpowiedzi z numerami program贸w i ich kr贸tkim opisem. W czasie wy艣wietlania tekst贸w nale偶y wybra膰 dwucyfrowy kod programu, co spowoduje wej艣cie do niego. Je艣li kod wpiszemy b艂臋dnie pr贸b臋 mo偶na powt贸rzy膰 lub od艂o偶y膰 s艂uchawk臋, co spowoduje wyj艣cie z opcji programowania.
Je艣li posiadamy dowolny komputer z wolnym portem RS i programem terminalowy, mo偶emy do niego pod艂膮czy膰 rejestrator. Aby wej艣膰 w tryb programowania nale偶y wpisa膰 w oknie terminala znak "#" a po nim dwucyfrowy kod programu. Je艣li wpiszemy kod programu, kt贸ry nie istnieje pojawi si臋 komunikat B艂膮d: Sk艂adnia, a pod nim zostanie wy艣wietlona 艣ci膮gawka z wszystkimi dost臋pnymi programami. Z wszystkich program贸w mo偶na wyj艣膰 odk艂adaj膮c s艂uchawk臋 (lub naciskaj膮c znak ESC przy programowaniu z komputera).
Programy diagnostyczne
Poni偶ej przedstawimy opisy niekt贸rych program贸w, w kt贸re wyposa偶ono mikrokontroler steruj膮cy rejestratorem. Kompletny opis funkcji b臋dzie do艂膮czany do zestaw贸w AVT.
Kod: 11 - Wy艣wietla stan licznik贸w (jak naci艣ni臋cie przycisku pr贸g).
Kod: 71 - Drukuje bufor rozm贸w. Wydruk ma nast臋puj膮c膮 posta膰:
Ni 09 Wrz 19:08
Wydruk danych rejestratora
Lp. Data Godz Nr telefonu
Tar Strefa Czas
Licznik Cena
Suma : Koniec
0,70
1 09/02 00 :01 0202122 17
Internet 0, 35 2 09/03 13 00: 01.31 :15 956 1 02
Us艂ugi 0, 35 3 09/05 08 00 :02 .23 :14 9427 1 00
Interpretacja wydruku jest do艣膰 艂atwa. W pierwszym wierszu umieszczona jest data wydruku. W drugim informacja, 偶e wydrukowano bufor rozm贸w. W pierwszej kolumnie umieszczono liczb臋 porz膮dkow膮 rekordu (rozmowy), w drugiej dat臋, w trzeciej godzin臋, w czwartej wybrany numer telefonu, w pi膮tej taryf臋 do jakiej zakwalifikowano wybrany numer, w sz贸stej komentarz przypisany do prefiksu z jakim zgadza si臋 zarejestrowany numer, w si贸dmej czas trwania po艂膮czenia, w 贸smej liczb臋 zaliczonych impuls贸w, a w dziewi膮tej cen臋 rozmowy. Na ko艅cu wydruku znajduje si臋 podsumowanie licznika impuls贸w i koszt wszystkich wydrukowanych rozm贸w. Po wydrukowaniu rozm贸w pojawi si臋 napis: Kasowa膰 <1/O>, wybranie 1 powoduje wyzerowanie bufora rozm贸w, 0 -rozmowy zostan膮 zachowane w rejestratorze. Kod: 72 - Drukuje tablic臋 prefik-
s贸w - przyk艂adowy wydruk: Ni 09 Wrz 19:26 #82 Prefiksy
Nr Tar Opis
D 02 Lokalna
02 Us艂ugi
D01033 04 M/M TPSA
D01044 19 M/M NOM
D01055 20 M/M Netia

Wydruk interpretujemy nast臋puj膮co: pierwszy wiersz - data wydruku, drugi (znaki #82) znacznik w trybie wsadowym dotycz膮cy programowania tablicy prefik-s贸w. Pierwsza kolumna - cyfry prefiksu, druga - taryfa przyporz膮dkowana do danego prefiksu, trzecia komentarz s艂owny. Kod: 73 - drukuje tablic臋 taryf -
przyk艂adowy wydruk: Ni 09 Wrz 19:21 #83
Taryfy Nr Godz Dni powsz Dni 艣wiat
Poczta g艂 00:01.
too 00 B00, 00 B00, 00
toi 00 COO, 00 COO, 00
tO2 08 180, 00 360, 00
Elektronika Praktyczna 7/2002
47
Rejestrator telefoniczny z dekoderem CLIP
tO2 22 Koniec
360,00
Pierwszy wiersz - data wydruku, drugi (znaki #83) znacznik w trybie wsadowym dotycz膮cy programowania tablicy taryf. Pierwsza kolumna - numer taryfy, druga - godziny obowi膮zywania, trzecia - okres zaliczania w dni robocze, czwarta - w dni wolne od pracy.
Je艣li zadeklarujemy dwa pre-fiksy w cz臋艣ci zgodne, na przyk艂ad: Prefiks=0034 i Prefiks=003, po wybraniu 00345 6 rozmowa zostanie zakwalifikowana do pre-fiksu d艂u偶szego. Istnieje te偶 pre-fiks pusty oznaczaj膮cy rozmow臋 miejscow膮. Zawarto艣膰 tablicy pre-fiks贸w obejmuje taryfikacje na Polsk臋, taryfy zagraniczne dla niekt贸rych kraj贸w, po艂膮czenia audio-tele i kom贸rkowe. Kod: 93 - Ustawianie ceny impulsu
Po wybraniu opcji pojawi si臋 napis: Cena ??.?? - wpisujemy cen臋 impulsu w z艂otych i groszach. Kod: 94 - ustaw czas
Po wybraniu opcji pojawi si臋 napis: RRRR/MM/DD - wpisujemy rok miesi膮c dzie艅, nast臋pnie ujrzymy: gg:mm i wpisujemy godzin臋 i minut臋. Kod: 95 - spos贸b zaliczania
Po wej艣ciu w ten program pojawi si臋 komunikat: Zaliczanie ??
W pole ?? mo偶na wpisa膰:
00 - zaliczanie po zmianie biegunowo艣ci linii telefonicznej,
01 - zaliczanie po wykryciu impuls贸w 16 kHz,
02 - zaliczanie po zaniku tonu 400 Hz na ponad 5 s,
03 i wi臋cej - zaliczanie po czasie xx sekund od wybrania ostatniej cyfry numeru.
Zaliczanie po zmianie polaryzacji oznacza, 偶e kryterium rozpocz臋cia rozmowy jest zmiana biegunowo艣ci linii telefonicznej, kt贸ra nast臋puje po zg艂oszeniu si臋 wywo艂ywanego abonenta. Analizowana jest tablica prefiks贸w, na podstawie kt贸rej ustalana jest taryfa, nast臋pnie analizowana jest tablica taryf. Zale偶nie od pory dnia ustalany jest okres zaliczania. Jest to stosunkowo dok艂adny spos贸b taryfikacji. Przy dobrym ustawieniu tablicy taryf i prefiks贸w oraz czasu, niedok艂adno艣膰 nie przekracza 1%.
Zaliczanie 16kHz oznacza, 偶e kryterium rozpocz臋cia rozmowy jest pierwszy impuls 16 kHz, kt贸ry ustawia licznik w stan 0001. Ka偶dy kolejny impuls zwi臋ksza stan licznika. Przy tym sposobie zaliczania tablica taryf jest nieistotna, z tablicy prefiks贸w jest brany tylko nr taryfy i nazwa miejscowo艣ci. Jest to najdok艂adniejszy spos贸b taryfikacji (tak dok艂adny jak wydruk bilingu).
Zaliczanie po zaniku 400 Hz oznacza, 偶e kryterium rozmowy jest pojawienie si臋 sygna艂u 400 Hz na co najmniej 1 sekund臋 (膮200 ms), czyli rozpoznanie sygna艂u wo艂ania, a nast臋pnie zanik na co najmniej 5 s (zanik sygna艂u wo艂ania). Zaliczanie nie jest zbyt dok艂adne (b艂膮d kryterium rozmowy nawet 5 s). Ponadto rejestrowane jako p艂atne b臋d膮 po艂膮czenia do zapowiedzi s艂ownych (np.: "Abonent chwilowo niedost臋pny..."). Tak jak przy zaliczaniu po zmianie polaryzacji, pod uwag臋 jest brana tablica prefiks贸w i taryf.
Zaliczanie po czasie: spos贸b u偶ywany w centralach, kt贸re nie generuj膮 impuls贸w 16 kHz ani nie zamieniaj膮 polaryzacji na linii telefonicznej. Zaliczanie impuls贸w rozpocznie si臋 po ustawionym czasie bez wzgl臋du na to czy po艂膮czenie mia艂o miejsce, czy nie. Tak jak przy zaliczaniu po zamianie polaryzacji. Pod uwag臋 jest brana tablica prefiks贸w i taryf. Jest to najmniej dok艂adny spos贸b taryfikacji.
Kod: 01 - kasuje bufor rozm贸w. Po wybraniu tego programu pojawi si臋 napis: Kasowa膰 . Wybranie 1 spowoduje wyzero-wanie bufora rozm贸w.
Programowanie wsadowe
Pliki odczytane programem #72 i #73 mo偶na podda膰 edycji w edytorze tekst贸w ASCII, po czym wys艂a膰 do rejestratora. W plikach istotne jest kilka tzw. s艂贸w kluczowych:
- #82 lub #83 na pocz膮tku pliku oznaczaj膮 tablic臋 prefiks贸w czy taryf programowan膮 w trybie wsadowym,
- p - (litera "p" koniecznie ma艂a) oznacza kolejny rekord tablicy prefiks贸w,
- t - (litera "t" koniecznie ma艂a) oznacza kolejny rekord tablicy taryf,
- K - koniec wydruku - (litera "K" koniecznie wielka) oznacza koniec tablicy taryf czy prefiks贸w. Podczas interpretacji pliku wsadowego przez rejestrator, w oknie terminala ujrzymy: Wczytuj臋 tablice... po chwili Sortuje..., a na koniec OK. W przypadku wyst膮pienia b艂臋du pojawi si臋 komunikat: B艂膮d: D艂ugo艣膰 tablicy, kt贸ry oznacza przekroczenie maksymalnej liczby rekord贸w dla danej tablicy. Tablica prefiks贸w mie艣ci 160 rekord贸w, natomiast tablica taryf - 40. Je艣li rekord贸w b臋dzie wi臋cej, nadmiarowe zostan膮 zignorowane.
Po wczytaniu tablice taryf s膮 sortowane. Wykorzystano najprostszy, a zarazem najmniej efektywny algorytm sortowania, tzw. b膮belkowy. Zalet膮 tego algorytmu jest jego prostota, a co za tym idzie zajmuje ma艂o miejsca w pami臋ci programu. Odbi艂o si臋 to jednak niekorzystnie na czasie sortowania. Sortowanie 40 rekord贸w tablicy taryf mo偶e trwa膰 nawet 1 minut臋. Na czas sortowania ma wp艂yw to, w jakim stopniu tablica nie jest posorto-wana. Im wi臋cej rekord贸w nale偶y przekopiowa膰, tym d艂u偶ej trwa sortowanie. Jak pokaza艂y eksperymenty, za d艂ugi czas sortowania jest odpowiedzialny przede wszystkim czas niezb臋dny do zapisania pami臋ci EEPROM. S艂awomir Skrzy艅ski, AVT slawomir.skrzynski@ep.com.pl
Oprogramowanie rejestratora jest ci膮gle rozwijane. Nowsze wersje s膮 bezp艂atne. W oprogramowaniu V2.xx spe艂ni艂em wi臋kszo艣膰 postulat贸w nades艂anych przez u偶ytkownik贸w. Je艣li macie jakie艣 uwagi, propozycje, piszcie na adres redakcji lub na adres e-mailowy autora. Osoby, kt贸re szybko chc膮 otrzymywa膰 upgrade prosz臋 o listy o tytule: Rejestrator Telefoniczny V2-upgrade.
Uwaga! Ze wzgl臋du na brak homologacji, opracowany przez nas rejestrator nie mo偶e by膰 do艂膮czany do linii telefonicznej!
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/lipie cO2.htm oraz na p艂ycie CD-EP07/2002B w katalogu PCB.
48
Elektronika Praktyczna 7/2002
PROJEKTY Z SIECI
Programator WillemProg 3.0, cz臋艣膰 2
AVT-5070
W drugiej cz臋艣ci a艅yku艂u
ko艅czymy opis p艂yty bazowej
WillemProga. Zamieszczamy
tak偶e kr贸tk膮 instrukcj臋 obs艂ugi
programu steruj膮cego prac膮
programatora, je偶eli
zain tereso wanie program atorem
b臋dzie du偶e, w najbli偶szych
wydaniach EP przedstawimy
adaptery do WillemProga,
dzi臋ki kt贸rym programowanie
uk艂ad贸w innych ni偶
wymienione w poprzedniej
cz臋艣ci opisu nie b臋dzie
stan o wi艂o problem u.
Ze wzgl臋du na prost膮 budow臋, monta偶 WillemProga nie powinien sprawi膰 k艂opotu tak偶e mniej wprawnym konstruktorom. Podczas obsadzania element贸w na p艂ytce drukowanej pomocny b臋dzie schemat monta偶owy pokazany na rys. 2. Monta偶 nale偶y rozpocz膮膰 od wlutowania zworek, kt贸ry bardzo du偶a liczba jest wynikiem wykonania projektu p艂ytki na laminacie jednostronnym. Zworki mo偶na wykona膰 ze srebrzanki lub kynaru, ze wzgl臋du na ryzyko korodowania nie zalecamy wykorzystywania do tego celu drutu miedzianego.
W zale偶no艣ci od zasobno艣ci portfela jako podstawk臋 pod programowany uk艂ad mo偶na zastosowa膰 32-stykow膮 podstawk臋 ZIF (co wi膮偶e si臋 jednak ze sporymi kosztami, zapewnia natomiast d艂ug膮 偶ywotno艣膰 programatora) lub
zwyk艂膮 podstawk臋 tulipanow膮. Ostateczno艣ci膮 jest zastosowania najta艅szych podstawek ze stykami spr臋偶ynowymi, kt贸rych trwa艂o艣膰 jest bardzo niska. Podstawki warto zastosowa膰 tak偶e pod pozosta艂e uk艂ady programatora, co u艂atwi serwisowanie urz膮dzenia.
Oprogramowanie
Oprogramowanie steruj膮ce prac膮 programatora zamie艣cili艣my na p艂ycie CD-EP6/2002B, jest ono tak偶e dost臋pne (bezp艂atnie!) na kilku stronach inteinetowych, w tym na stronie tw贸rcy programatora - www.wil-lem.org. Program nie wymaga instalacji, wystarczy go skopiowa膰 i uruchomi膰 z dowolnego katalogu.
Wersja dost臋pna w ostatnich dniach czerwca obs艂uguje klasycznego WillemProga, a tak偶e jego udoskonalon膮 wersj臋 3.0 (z punktu wi-
Rys. 2. Schemat monta偶owy p艂ytki programatora
Elektronika Praktyczna 7/2002
Programator WillemProg 3.0
Rys. 3. Program sterujqcy pracq programatora obs艂uguje jego obydwie wersje (klasycznq i 3.0)
dzenia osoby obs艂uguj膮cej, najwa偶niejsza r贸偶nica polega na innym ulokowaniu DlP-switcha konnguruj膮-cego sprz臋t programatora). Prze艂膮czanie tryb贸w pracy programu umo偶liwia przycisk wyr贸偶niony na rys. 3. Program opr贸cz funkcji steruj膮cych, spe艂nia tak偶e rol臋 interaktywnego pomocnika, kt贸ry pod-
Rys. 4. Widok zak艂adki Device z informacjami o konfiguracji DlP-switcha i innych parametrach programowania
powiada u偶ytkownikowi spos贸b skonfigurowania nastaw DlP-swit-cha i umiejscowienie programowanego uk艂adu w podstawkach.
Na rys. 4 pokazano widok zak艂adki Device g艂贸wnego okna programu. Jest w nim wy艣wietlany widok fragmentu p艂ytki drukowanej z wyra藕nie zaznaczonym umiejscowieniem programowanego uk艂adu, a tak偶e po艂o偶enie prze艂膮cznik贸w w DIP-switchu Tw贸rcy oprogramowania przewidzieli mo偶liwo艣膰 r臋cznego modyfikowania parametr贸w czasowych impuls贸w programuj膮cych, ale dla wi臋kszo艣ci programowanych uk艂ad贸w 偶adne modyfikacje nie s膮 konieczne. Ka偶dorazowo po uruchomieniu program przyjmuje domy艣lne dla ka偶dego uk艂adu warto艣ci parametr贸w czasowych, dzi臋ki czemu ryzyko uszkodzenia programowanego uk艂adu zosta艂o zminimalizowane. Wyb贸r programowanego uk艂adu jest mo偶liwy dzi臋ki systemowi rozwijanych okienek (rys. 5), w kt贸rych pogrupowano uk艂ady pod wzgl臋dem funkcjonalnym.
Program wyposa偶ono w prosty edytor bufora wpisywanych danych, kt贸rego mo偶liwo艣ci w tej wersji programu s膮 bardzo ma艂e, ale wystarczaj膮 do realizacji typowych zada艅.
Tw贸rcy oprogramowania pomy艣leli tak偶e o u艂atwieniu testowania i uruchamiania programatora: program wyposa偶ono w zak艂adk臋 (rys. 6), z poziomu kt贸rej mo偶na zmienia膰 stany logiczne na poszczeg贸lnych wyprowadzeniach podstawki ZIF32. Mo偶na zmienia膰 zar贸wno stany pojedynczych wyprowadze艅, jak i grupami (oddzielnie dla magistrali danych i adresowej). Andrzej Gawry luk, AVT
Rys. 5. Wyb贸r typu programowanego uk艂adu jest 艂atwy
Projekt przedstawiony w artykule opracowa艂 Willem Kloosterhuis (h ttp ://www. willem.org). Wersja przedstawiona w artykule jest zmodyfikowan膮, wersj膮 WillemProga 3.0, w pe艂ni z nim kompatybiln膮.
Program do uruchamiania i testowania p艂ytki programatora: http.f /scorpius.spaceports.com/~mpu51/ eprom/prog/ETESTDB25.zip.
Nowe wersje oprogramowania steruj膮cego: httpj/scorpius.space-ports. com/~mp u51 /eprom/win9x.html.

41 MV (艢ta DhVH |

i* ir fciw | n-pi hm |
:*' =* m* bn |
'U UJ > _t iii .i 艢 艢 -艂 i 艢 , (J7,n
? 'td Jl i^^.i艂艂艂.r -r
nEBEtt

IV TriMfl

Rys. 贸. Zak艂adka umo偶liwiajqca edycje stan贸w na wyprowadzeniach podstawki ZIF32
50
Elektronika Praktyczna 7/2002
SPRZ臉T
ARM
Firma ARM zdominowa艂a w ostatnich latach rynek 32-bitowych procesor贸w RISC. Nie by艂oby w tym nic dziwnego, gdyby nie fakt, 偶e firma ta nigdy nie wyprodukowa艂a jakiegokolwiek uk艂adu scalonego, a jej konstruktorzy technologi臋 produkcji p贸艂przewodnik贸w znaj膮 tylko (bo nie musz膮!) z podr臋cznik贸w...
Nowoczesny spos贸b na RISC
Za艂o偶yciele firmy wykazali si臋 niezwyk艂膮 intuicj膮 i odwag膮, bowiem w czasach panowania na rynku mikroprocesor贸w 32-bitowych takich firm jak Intel, AMD, czy National Semi-conductor swoj膮 dzia艂alno艣膰 skupili na produkowaniu wirtualnych mikroprocesor贸w RISC. Dlaczego "wirtualnych"? Ot贸偶 ARM nie produkuje uk艂ad贸w scalonych! Jej konstruktorzy zajmuj膮 si臋 natomiast przygotowywaniem blok贸w funkcjonalnych opisanych za pomoc膮 j臋zyk贸w HDL [Hardware Description Language), w tym kilku rodzin procesor贸w ARM, kt贸re przebojem zdoby艂y rynek.
Podstawy sukcesu
Szybki w ko艅cu lat 90. rozw贸j uk艂ad贸w PLD, a tak偶e istotne obni偶enie koszt贸w produkcji uk艂ad贸w ASIC i obni偶enie minimalnych prog贸w, dla kt贸rych produkcja tych uk艂ad贸w jest op艂acalna, spowodowa艂y, 偶e konstruktorzy coraz ch臋tniej spogl膮dali w stron臋 nowatorskich koncepcji projektowych, jak np. uk艂ady SoC (lub PSoC - Programmable System on a Chip). Przeszkod膮 na drodze rozwoju powa偶nych aplikacji (np. telekomunikacyjnych) by艂y trudno艣ci z implementacj膮 szybkich, a przy tym energooszcz臋dnych procesor贸w, kt贸rych budowa by艂aby na tyle prosta, 偶eby wykonanie kompletnego uk艂adu PSoC nie wymusza艂o radykalnego powi臋kszenia powierzchni struktury uk艂adu scalonego. W tab. 1 zawarto pod-
stawowe informacje o parametrach dw贸ch przyk艂adowych implementacji procesor贸w ARM - jak wida膰 wszystkie za艂o偶enia uda艂o si臋 zrealizowa膰:
Uk艂ady PSoC (Programmable System on
a Chip) sk艂adaj膮 si臋 z dw贸ch cz臋艣ci:
mikroprocesora i uk艂adu PLD, kt贸rego
konfiguracj臋 mo偶na zmienia膰 dynamicznie.
ar Uk艂ad nmoramc
JTAG/Debug
Programmable Logic
Projektowanie takich uk艂ad贸w jest cz臋sto nazywane hardware-software co-destgn,
poniewa偶 cz臋艣膰 sprz臋towa uk艂adu
i program steruj膮cy prac膮 procesora/
mikrokontrolera s膮 tworzone zazwyczaj
za pomoc膮 jednego, zintegrowanego
narz臋dzia.
nizm ten nie powoduje istotnego spowolnienia pracy procesora, pozwala natomiast radykalnie upro艣ci膰 budow臋 systemu.
Innym interesuj膮cym mechanizmem zaimplementowanym w rdzeniach niekt贸rych procesor贸w ARM jest Jazelle - jest to sprz臋towa platforma z
zaimplementowan膮 maszyn膮 Ja-vy. Niekt贸re rdzenie wyposa偶ono tak偶e w zestaw dodatkowych instrukcji, kt贸re zoptymalizowano pod k膮tem aplikacji DSP (m.in. jest mo偶liwe wykonanie w jednym takcie operacji MAC na dw贸ch s艂owach 16-bitowych lub na jednym 16-bitowym i jednym 32-bitowym).
Na rys. 2 znajduje si臋 graficzne zestawienie mo偶liwo艣ci rdzeni procesor贸w z rodziny ARM7.
ARM
procesory s膮 szybkie, pobieraj膮 niewiele mocy, a powierzchnia zajmowana przez procesor jest zaskakuj膮co ma艂a.
Architektura
ARM oferuje modele kilku rodzin procesor贸w, po艣r贸d kt贸rych najwi臋ksz膮 obecnie popularno艣ci膮 ciesz膮 si臋 ARM7 i ARM9. Budow臋 rdzenia procesora ARM7 pokazano na rys. 1, a zestawienie podstawowych parametr贸w oferowanych przez ARM wersji - w tab. 2.
Procesory ARM maj膮 architektur臋 32-bitow膮, co z jednej strony zapewnia im ogromn膮 wydajno艣膰, z drugiej strony wywo艂uje powa偶ne k艂opoty z do艂膮czeniem do procesora zewn臋trznych pami臋ci, czy te偶 innych blok贸w peryferyjnych. Z tego powodu tw贸rcy rdzeni procesor贸w ARM wyposa偶yli je w modu艂y nazwane Thumb, kt贸re umo偶liwiaj膮 dekompresj臋 polece艅 odczytywanych z 16-bitowej pami臋ci programu. Mecha-
Aplikacje
O tym, 偶e procesory ARM podbi艂y 艣wiat 艣wiadcz膮 tysi膮ce aplikacji komercyjnych (szczeg贸lnie w sprz臋cie przeno艣nym), du偶a liczba licencji sprzedanych przez ARM producentom p贸艂przewodnik贸w (produkuj膮 oni wiele wersji "samodzielnych" mikroprocesor贸w, jak cho膰by Atmel -rodzina AT9lThumb, Samsung - rodzina S3C, czy Intel - xScale), a tak偶e r贸偶nego rodzaju implementacje w uk艂adach SoC oraz PSoC. Jednym z przyk艂ad贸w takiej implementacji s膮 uk艂ady Excali-bur firmy Altera, w kt贸rych zintegrowano rdzenie ARM922T. Z kolei firma Triscend zaimplementowa艂a w swoich
Tab. 1. Przyk艂adowe implementacje procesor贸w ARM7TDMI
Proces 0,18(i.m 0,13 iim
Zajmowana powierzchnia [mm2] 0,53 0,26
Cz臋stotliwo艣膰 taktowania [MHz] 88 133
Pob贸r mocy [mW/MHz] 0,25 0,06
Elektronika Praktyczna 7/2002
51
SPRZ臉T
32-BKAddrouBua
ARM InMnjction Decodor & Conbol Logic
i
Ins&uctton
Thumb Instruction Decomprwscr
Ppeline
32-bKDataBus
Rys. 1
uk艂adach PSoC z rodziny A7 rdzenie ARM7TDMI, dzi臋ki czemu u偶ytkownicy wymagaj膮cy mocy obliczeniowych wi臋kszych ni偶 oferowane przez rdze艅 '51 (zaimplemen-towany w uk艂adach z rodziny E5, kilkakrotnie prezentowanych w EP) mog膮 - nie zmieniaj膮c 艣rodowiska projektowego - wielokrotnie zwi臋kszy膰 wydajno艣膰 systemu. Przyk艂adami aplikacji komercyjnych, kt贸rych "sercem" jest kt贸ry艣 z procesor贸w ARM s膮 m.in.: drukarki Do-
cuPrint M750/760 firmy Xerox, kos-nola do gier Nintendo, rodzina drukarek Zx2 firmy Lexmark, przeno艣ny odtwarzacz MP3 - Rio600 firmy SONICblue, bezprzewodowe terminale p艂atnicze firmy Artema, cz te偶 modu艂y sprz臋towego szyfrowania danych nCipher. Jest to naprawd臋 osza艂amiaj膮ca kariera, zw艂aszcza wzi膮wszy pod uwag臋 fakt, 偶e pierwszy komercyjny rdze艅 RISC firma ARM zacz臋艂a promowa膰 w 1991 roku. Tomasz Jakubik
Dodatkowe informacje
Artyku艂 powstat nabazie materia艂贸w udost臋pnionych przez firm臋 Memec Unique,tel. (32)238-05-60, http:// www.atest.com.pl/unique.htm.
Dodatkowe informacje s膮 dost臋pne w Internecie pod adresem www.arm.-com oraz na ptycie CD-EP7/2002B (publikujemy na niej kompletny katalog firmy ARM).
Tab. 2. Zestawienie najwa偶niejszych w艂a艣ciwo艣ci procesor贸w ARM
Blok
zarz膮dzania pami臋ci膮
Cz臋stotliwo艣膰
taktowania
[MHz]
Emb&dd&d Cores
ARM7TDMI - + - - 133
ARM7TDMI-S - + - - 100...133
ARM7EJ-S - + + + 100...133
ARM966E-S - + + - 230...250
ARM940T MPU + - - 180
ARM946E-S MPU + + - 180...210
ARM1026EJ-S MMU+MPU + + + 266...325
Platform Cores
ARM720T MMU + - - 100
ARM920T MMU + - - 250
ARM922T MMU + - - 250
ARM926EJ-S MMU + + + 220...250
ARM1020E MMU + + - 325
ARM1022E MMU + + - 325
ARM720T
Dpin platform pracaiior c贸ra
ARM7TDMI
ARM7TDMI-S
Rys. 2
Elektronika Praktyczna 7/2002
53
SPRZ臉T ^^^^^h
Interfejs USB, pomimo wielu trudno艣ci zwi膮zanych z jego stosowaniem w produktach kr贸tkoseryjnych, jest jednak coraz cz臋艣ciej wykorzystywany. Znacznym u艂atwieniem dla konstruktor贸w s膮 obecnie 艂atwo dost臋pne mikrokontrolery z wbudowanym sprz臋towym interfejsem USB. Jedn膮 z nowo艣ci tego rodzaju opisujemy w artykule.
Kilka miesi臋cy temu Motorola wprowadzi艂a do produkcji i sprzeda偶y nowe mikrokontrolery, kt贸re wyposa偶ono w sprz臋towe interfejsy USB (tab. 1). S膮 w艣r贸d nich mikrokontrolery wyposa偶one w reprogra-mowaln膮 pami臋膰 programu typu Flash, dost臋pne s膮 tak偶e uk艂ady z pami臋ci膮 programowan膮 mask膮 ROM (tylko do aplikacji wysoko-nak艂adowych).
Dla wi臋kszo艣ci standardowych aplikacji wymagaj膮cych USB, najbardziej odpowiedni b臋dzie uk艂ad oznaczony 68HC908JB8 (ma wbudowany sprz臋towy interfejs USB 1,5 Mb/s oraz analogowy transcei-veT r贸偶nicowy na wej艣ciu). Dost臋pne s膮 tak偶e znacznie bardziej rozbudowane mikrokontrolery z USB, jak np. 68HC908BD48, w kt贸rym zintegrowano ponadto interfejs PC (kompatybilny ze standardem monitorowym DDC), czy te偶 68HC908LD64, w strukturze kt贸rego producent
intelligence everywhere
digitaldna
iUSE
iv HCO8
znalaz艂 miejsce na kompletny, 4-wej艣ciowy hub USB (interfejsy 1,5 Mb/s) z szybkim (12 Mb/s) wyj艣ciem z koncentratora.
Poniewa偶 dwa ostatnie mikrokontrolery s膮 przeznaczone do stosowania przede wszystkim w monitorach komputerowych, nieco wi臋cej miejsca przeznaczymy na prezentacj臋 uniwersalnego mikrokontrolera -68HC908JB8.
Tak prosto, jak si臋 da: 68HC908JB8
Budow臋 mikrokontrolera 68HC908JB8 zilustrowano na schemacie blokowym (rys. l). Producent zastosowa艂 w nim klasyczne rozwi膮zania, znane z wcze艣niejszych wersji mikro-kontroler贸w tworz膮cych rodzin臋 HC08: standardowy rdze艅 08 zosta艂 "otoczony" przez modu艂y peryferyjne, z kt贸rymi CPU komunikuje si臋 za pomoc膮 przerwa艅 oraz zbioru rejestr贸w specjalnych ulokowanych
w pami臋ci RAM. Ze wzgl臋du na przejrzyst膮 budow臋, liniowe adresowanie w ca艂ej dost臋pnej przestrzeni adresowej (dost臋pnych jest a偶 16 tryb贸w adresowania!), 艂atwo艣膰 operowania na danych w kodzie BCD, wbudowany blok sprz臋towego mno偶enia/dzielenia, a tak偶e przemy艣lan膮 list臋 rozkaz贸w, rdze艅 mikrokon-troler贸w HC08 nale偶y zaliczy膰 do rynkowej ekstraklasy. Niestety za jako艣ci膮 mikrokontroler贸w nie zawsze nad膮偶a艂a rynkowa polityka Motoroli, co znalaz艂o odbicie w stosunkowo ma艂ej popularno艣ci tych uk艂ad贸w w艣r贸d polskich elektronik贸w.
Podobnie do wcze艣niejszych wersji mikrokontroler贸w HC08, tak偶e 68HC908JB8 zosta艂 wyposa偶ony w blok nadzoru poprawno艣ci dzia艂ania mikrokontrolera SIM (System Integration Module), kt贸rego schemat blokowy pokazano na rys. 2. Jest to rozwini臋ty system nadzoru
54
Elektronika Praktyczna 7/2002
SPRZ臉T
M68HC08CPU
CPU REGISTERS ARITHMETIC/LOGIC UNIT (ALU)

INTERNALBUS
AA W
COWTROL AND STATUS REGISTERS - 64 BYTES
USER FLASH MEMORY - 8,192 BYTES
USER RAM-256 BYTES
MONTOR ROM 976 BYTES
USER FLASH YECTORS -16 BYTES
OSC1 OSC2
RST
IRQ
OSCILLATOR
SYSTEM INTEGRATION MODULE
IRQ MODULE
Rys. 1
(typowego watchdoga), kt贸ry - opr贸cz zerowania mikrokontrolera w sytuacjach, gdy program nie dzia艂a w spos贸b przewidziany przez programist臋 - kontroluje tak偶e warto艣膰 napi臋cia zasilaj膮cego i nie zezwala na prac臋 mikrokontrolera przy jego zbyt ma艂ej warto艣ci, wykrywa nielegalne kody polece艅, a tak偶e odwo艂ania pod nieistniej膮ce adresy. W ka偶dej z takich sytuacji mi kro kontroler jest zerowany przez blok SIM, co - przy odpowiednio napisanym programie - zwi臋ksza prawdopodobie艅stwo jego prawid艂owej pracy i gwarantuje restart w przypadku wyst膮pienia b艂臋du.
Interfejs USB wbudowany w 68HC908JB8 wyposa偶ono w stabilizator napi臋cia 3,3 V, kt贸ry mo偶na wykorzysta膰 do zasilania mikrokontrolera bezpo艣rednio z linii zasilaj膮cych USB. Od strony logicznej, w blok USB wbudowano trzy end-pointy USB (rodzaj terminali po艂膮cze艅 logicznych), z kt贸rych dwa obs艂uguj膮 transmisj臋 w dw贸ch kierunkach, a jeden tylko od mikrokontrolera do PC. Wszystkie kana艂y komunikacyjne wyposa偶ono w 8-bajto-we bufory FIFO, kt贸re u艂atwiaj膮 obs艂ug臋 transmisji. Obs艂ug臋 i programowanie USB zapewnia a偶 3 5 rejestr贸w ulokowanych w pami臋ci RAM. Sprz臋t zintegrowany w bloku
AA W
AA W
AA W
AA W
AA W
AA W
KEYBOARD INTERRUPT MODULE
AA W
TIMERINTERFACE MODULE
W
BREAK
MODULE
A W
LOWV0LTAGEINHIBIT
MODULE
AA W
POWER-ON RESET MODULE
AA W
COMPUTER OPERATING PROPERLY MODULE
AA W
USB i
MODULE '
USBENDPOINT0,1,2 ,
AA W
AA W
AA
DDRA PTA
PTA7A

DD
PTAO/KBAO
PTB7-PTB0
DDRC PTC
AA
PTC7-FTC0
AA
AA W
PTD7-PTD6 PTD5-PTD2
PTD1-PTD0
PTE4/D-
PTE3/D+
PTE2/TCH1
PTE1ATCH0
PTEOTOLK
USB zapewnia kompletn膮 obs艂ug臋 transmisji, zajmuje si臋 tak偶e kontrol膮 i generowaniem sum kontrolnych (CRC) przesy艂anych pakiet贸w, tworzy i dekoduje pakiety danych, generuje przerwania informuj膮ce CPU o sytuacjach krytycznych wykrytych przez sterownik interfejsu. Pami臋膰 programu mikrokontrolera mo偶e by膰 programowana w systemie za pomoc膮 jednego z wyprowa-
dze艅. Format przekazywanych danych jest zgodny z ramk膮 stosowan膮 podczas transmisji za pomoc膮 RS232 - sk艂ada si臋 ona z bitu startu, 8 bit贸w danych i jednego bitu stopu. Szybko艣膰 transmisji danych mo偶e wynosi膰 4800 lub 9600 bd. Od strony mikrokontrolera interfejs ISP jest obs艂ugiwany przez program przygotowany przez programist贸w firmy Motorola, kt贸ry znajduje si臋
STOPWAIT
CONTROL
VDD
IWTERNAL PULL-UP
RESET PIN LOGIC
SIM COUNTER
CLOCK
CONTROL
CLOCK GENERATORS
POR CONTROL
RESET PIN CONTROL
SIM RESET STATUS REGISTER
AA W
Rys. 2
MASTER
RESET
CONTROL
MODULE STOP MODULE WAIT
CPU STOP (FROM CPU) CPU WAIT (FROM CPU)
SIMOSCEN CTO OSCILLATOR) COP CLOCK
OSCXCLK (FROM CLOCK DOUBLER) OSCOJT (FROM CLOCK DOUBLER)
INTERNALCLOCKS
ILLEGAL OPCODE (FROM CPU) ILLEGAL ADDRESS (FROM ADDRESS MAP DECODERS)
COP TIMEOUT (FROM COP MODULE) LVI RESET (FROM LVI MODULE) USB RESET (FROM USB MODULE)
56
Elektronika Praktyczna 7/2002
SPRZ臉T
Tab. 1. Zestawienie mikrokontroler贸w z rodziny HC908 wyposa偶onych w interfejs USB (na 偶贸艂to zaznaczono mi kro kontrolery z pami臋ci膮 Flash)
Oznaczenie uk艂adu Pojemno艣膰 pami臋ci RAM IB] Pojemno艣膰 pami臋ci Flash/ROM IkB] Timer Liczba dost臋pnych linii l/O Interfejs szeregowy PWM Cz臋stotliwo艣膰 taktowania IMHz]
68HC08JB1 128 -/5,5 2-kana艂owy 16-bitowy, IC, OC, lub PWM 13 USB lub PS/2 Zobacz tirner 3
68HC908JB8 256 8,0/- 2-kana艂owy 16-bitowy, IC, OC, lub PWM maks 37 USB Zobacz tirner 6
68HC08JB8 256 -/8,0 2-kana艂owy 16-bitowy, IC, OC, lub PWM maks 37 USB Zobacz tirner 3
68HC908LD64 2k 60/- 2-kana艂owy 16-bitowy, IC, OC, lub PWM maks 37 IIC.DDC1/ 2AB.USB (hub) Zobacz Timer 6
68HC908BD48 1 k 48/- 2-kana艂owy 16-bitowy, IC, OC, lub PWM maks 32 USB, IIC, DDC1/2AB 16-kana艂owy, 8-bitowy 6
w specjalnym obszarze pami臋ci ROM (zajmuje 976 B). Interpretuje on polecenia przys艂ane z zewn膮trz i realizuje przypisane im zadania. Dost臋pnych jest sze艣膰 polece艅: READ/WRITE (odczyt/zapis pami臋ci), IREAD/IWRITE (indeksowany odczyt/zapis pami臋ci), READSP (odczyt wska藕nika stosu) i RUN (uruchomienie programu u偶ytkownika). Program ten odpowiada tak偶e za zabezpieczenie zawarto艣ci pami臋ci -przed odczytaniem jej zawarto艣ci konieczne jest podanie 8-baj-towego has艂a, kt贸re ustala programista.
Mikrokontroler wyposa偶ono tak偶e w inne u偶yteczne peryferia, w tym m.in.: programowany, uniwersalny timer-licznik TIM, blok obs艂ugi przerwa艅 sprz臋towych i specjalny port przystosowany do do艂膮czenia prostej klawiatury.
Poczuj USB
Z my艣l膮 o konstruktorach chc膮cych sprawdzi膰 dzia艂anie interfejsu USB w mikrokontrolerze 68HC908JB8, jedna z niemieckich firm wsp贸艂pracuj膮ca z Motorola opracowa艂a i produkuje prosty w obs艂udze zestaw ewa-luacyjny. Na p艂ytce zestawu USB08EB (fot. 3) umieszczono po trzy cyfrowe wej艣cia i wyj艣cia,
Fot. 3
a tak偶e trzy wej艣cia analogowe (pomiar temperatury, nat臋偶enia 艣wiat艂a i napi臋cia na suwaku potencjometru - odpowiednie czujniki i potencjometr znajduj膮 si臋 oczywi艣cie na p艂ytce). Z zestawem wsp贸艂pracuje prosta aplikacja systemu operacyjnego Windows, za pomoc膮 kt贸rej mo偶na obserwowa膰 zmiany warto艣ci sygna艂贸w analogowych, zmienia膰 stany wyj艣膰 cyfrowych i odczytywa膰 stany wej艣膰 cyfrowych. Na p艂ytce drukowanej znajduj膮 si臋 tak偶e dwa gniazda umo偶liwiaj膮ce do艂膮czenie kabli RS232 (wymagane s膮 przelotki), uniwersalne z艂膮cze szpilkowe zapewniaj膮ce dost臋p do port贸w mikrokontrolera i stabilizator napi臋cia zasilaj膮cego.
Na koniec nale偶y wspomnie膰, 偶e tw贸rcy zestawu wykorzystali bezp艂atny driver USB zapewniaj膮cy obs艂ug臋 jego wszystkich funkcji i - co bardzo wa偶ne - zgodzili si臋 na zamieszczenie kompletu materia艂贸w wraz z kodami 藕r贸d艂owymi na naszej p艂ycie! Piotr Zbysi艅ski, AVT pi ot r. z by s i ns ki @ep .com. pl
Dodatkowe informacje
Prezentowany w artykule zestaw udost臋pni艂a do Test贸w firma Motorola Polska.
Dodatkowe informacje s膮 dost臋pne na ptycie CD-EP7/2002B oraz w Internecie, pod adresami:
- "p贸艂przewodnikowa11 strona Motoroli: http://e-www.motorola.com,
- strona po艣wi臋cona zestawowi USB08EB: hTTp:/ /hcO8web.de.
Elektronika Praktyczna 7/2002
57
^^^^^^^^^M SPRZ臉T
S艂owacka firma Einec jest znana w Polsce z wyrob贸w wysokiej jako艣ci. W jej ofercie znajduj膮 si臋 programatory, kasowniki i symulatory pami臋ci. Mi艂y design tych wyrob贸w sprawia, 偶e ju偶 przy pierwszym kontakcie jeste艣my do nich nastawieni pozytywnie. Uczucie to podtrzymuje tak偶e opr ogram owanie przygotowane dla program atora.
Inteligentny programator ze S艂owacji
Post臋p technologiczny w dziedzinie uk艂ad贸w programowalnych jest zmor膮 producent贸w programator贸w. Nie mog膮 oni osi膮艣膰 na laurach i cieszy膰 si臋 z sukces贸w finansowych osi膮ganych dzi臋ki swoim wyrobom. Niepostrze偶enie mo偶e si臋 okaza膰, 偶e ich wspania艂y programator okazuje si臋 prawie bezu偶ytecznym starociem. Zastanawiam si臋, czy za jaki艣 czas firmy opieraj膮ce sw贸j byt tylko na produkcji programator贸w nie padn膮 jak przys艂owiowe muchy. Wizja ta jest mo偶e troch臋 pesymistyczna, ale faktem jest, 偶e najnowsze uk艂ady projektowane s膮 z my艣l膮 o programowaniu ich w systemie za po艣rednictwem stosunkowo prostych urz膮dze艅, b臋d膮cych de facto tylko interfejsem mi臋dzy komputerem, a programowanym uk艂adem. Na domiar z艂ego, cz臋sto producenci zamieszczaj膮 na swoich stronach internetowych schematy takich programator贸w, kt贸re nawet niedo艣wiadczony elektronik mo偶e wykona膰 w艂asnor臋cznie. Elementem, bez kt贸rego programator traci wiele na warto艣ci, sta艂 si臋 ostatnio interfejs ISP (In System Programmable). Zdaj膮c sobie z tego spraw臋 specjali艣ci z firmy Elnec w swoim nowym programatorze SmartProg nie zapomnieli umie艣ci膰 tego elementu. Niepozorne z艂膮cze jest ledwo widoczne na bocznej 艣ciance obudowy programatora. On sam te偶 wygl膮da niepozor-
nie, ale drzemie w nim ca艂kiem spora "si艂a". Mo偶emy si臋 o tym przekona膰 przegl膮daj膮c zestawienie obs艂ugiwanych uk艂ad贸w, dost臋pne np. pod adresem http://www.elnec.-com/ swZsmapgdev.htm. S膮 w艣r贸d nich pami臋ci EPROM, EEPROM, Flash EPROM, NVRAM, pami臋ci szeregowe E(E)PROM, a tak偶e uk艂ady PLD i liczna grupa mikro kont role r贸w. Jedynym ograniczeniem jest maksymalnie 40 wyprowadze艅 programowanych uk艂ad贸w. Nie stanowi natomiast problemu typ obudowy - Elnec oferuje odpowiednie adaptery. W g贸rnej cz臋艣ci obudowy SmartPro-ga zamontowano 40-n贸偶kow膮 podstawk臋 ZIF (Zero Insertion Force), pozwalaj膮c膮 na umieszczanie w niej uk艂ad贸w w obudowach DIL o szeroko艣ci 300 lub 600 mils, pocz膮wszy od 8-n贸偶kowych. Wszystkie wyprowadzenia podstawki s膮 pod艂膮czone do wewn臋trznych driver贸w o ogromnych mo偶liwo艣ciach konfiguracji. Warto艣ci napi臋膰 sygna艂贸w logicznych obejmuj膮 zakres od 1,8 do 5 V. Jak zapewnia producent, przed ka偶d膮 operacj膮 programowania jest sprawdzana prawid艂owo艣膰 umieszczenia uk艂adu w podstawce, uwzgl臋dniana jest r贸wnie偶 jako艣膰 kontaktu elektrycznego wszystkich wyprowadze艅. Podczas test贸w uda艂o mi si臋 jednak "odczyta膰" zawarto艣膰 pami臋ci EEPROM 24C04, celowo w艂o偶onej odwrotnie. Oczywi艣cie
tak otrzymane dane nie mia艂y wi臋kszego sensu, ale programator nie ostrzeg艂 mnie o b艂臋dzie. Natomiast zrobi艂 to, gdy przesun膮艂em po艂o偶enie uk艂adu o jedno wyprowadzenie. Najwa偶niejsze, 偶e oba eksperymenty nie zako艅czy艂y si臋 "zej艣ciem" badanej pami臋ci. Nie odwa偶y艂em si臋 natomiast na podobne eksperymenty z nieco dro偶szymi mi kro kontrolerami, kt贸rych kilka sztuk na innych programatorach uda艂o mi si臋 w ten spos贸b zniszczy膰.
Programator pozbawiono wy艂膮cznika zasilania. W chwili, gdy nie ma komunikacji z programem, urz膮dzenie jest automatycznie ustawiane w stan u艣pienia, co jest sygnalizowane przyga艣ni臋ciem lampki Power. Dobrym pomys艂em jest do艂膮czenie do programatora pokrywki na podstawk臋 zapobiegaj膮c膮 gromadzeniu si臋 kurzu, gdy urz膮dzenie nie jest u偶ywane.
Sil膮 programu
To, co mo偶na za pomoc膮 programatora zrobi膰, w du偶ej mierze zale偶y od dedykowanego programu uruchamianego na komputerze PC. W przypadku SmartProga dostajemy uniwersalny program PG4UW, w jaki Elnec wyposa偶a wszystkie swoje urz膮dzenia. Program ten dzia艂a we wszystkich aktualnie u偶ywanych systemach operacyjnych. Po rozpocz臋ciu sesji i sprawdzeniu popra-
Elektronika Praktyczna 7/2002
59
SPRZ臉T
艢 1 iT^w^iy^E^ i^J *^ ^f j
Rys. 1. Okno robocze programu PG4UW
wno艣ci funkcjonowania programatora, w oknie raport贸w jest wy艣wietlona informacja o rozpoznanym 艣rodowisku i typie ostatnio programowanego uk艂adu (rys. l). Program wyposa偶ono m.in. w specjalny, programowany licznik, kt贸ry odlicza w d贸艂 udane operacje zapisu. Dzi臋ki temu, szczeg贸lnie przy du偶ej liczbie programowanych uk艂ad贸w, u偶ytkownik w ka偶dej chwili wie, ile uk艂ad贸w pozosta艂o mu do zaprogramowania. Licznik ten nie jest modyfikowany w przypadku wyst膮pienia b艂臋du. Naciskaj膮c prawym klawiszem myszki na ekranowy przycisk Reload Count down, mo偶na wybra膰 operacje, jakie maj膮 by膰 uwzgl臋dniane w statystyce (rys. 2). W dolnej cz臋艣ci ekranu, umieszczono w trzech obszarach informacje o danych znajduj膮cych si臋 aktualnie w buforze, zidentyfikowanym programatorze oraz wybranym typie programowanego uk艂adu. Jakakolwiek zmiana danych w buforze powoduje po zamkni臋ciu jego okna, wyliczenie sumy kontrolnej i wy艣wietlenie jej na ekranie. Dane mo偶na edytowa膰 zar贸wno w postaci znak贸w ASCII, jak i warto艣ci heksadecymalnych (rys. 3). Dost臋pne s膮 funkcje czyszczenia bufora, a dok艂adniej zapisania go jedn膮, dowolnie zdefiniowan膮 warto艣ci膮, wype艂nienia bufora warto艣ciami losowymi (za ka偶dym razem innymi), wype艂nienia bloku danych (blok r贸wny 16 bajt贸w), kopiowania i przenoszenia bloku oraz zamiany miejscami p贸艂bajt贸w w zadanym obszarze. Mo偶na tak偶e szuka膰 do-
Pfc艂 Pf
I
Rys, 2. Okno wyboru operacji do statystyki
wolnych 艂a艅cuch贸w, tak偶e w po艂膮czeniu z zamian膮 danych. Tym, kt贸rzy nic nie widz膮 na monitorze - podobno s膮 tacy - udost臋pniono mo偶liwo艣膰 wydrukowania zawarto艣ci bufora na drukarce. U偶ytkownik sam decyduje, czy dane w buforze maj膮 by膰 traktowane jako pojedyncze bajty, czy jako 2-bajtowe s艂owa.
Ostatni膮 operacj膮, jak膮 mo偶na wykona膰 w oknie edycyjnym bufora, jest wyliczenie sum kontrolnych. Program robi to na r贸偶ne sposoby, a dodatkow膮 opcj膮 jest umieszczenie wyliczonej warto艣ci w podanych kom贸rkach bufora. W takim przypadku nale偶y wcze艣niej okre艣li膰 adres umieszczenia sumy, gdy偶 kom贸rki te nie s膮 wtedy brane pod uwag臋.
Jak ju偶 napisa艂em wcze艣niej, program PG4UW jest dostarczany do wielu urz膮dze艅 firmy Elnec. Chyba w艂a艣nie dlatego umieszczono interesuj膮c膮 opcj臋 wyszukiwania typu do艂膮czonego programatora. Program wysy艂a zapytania do do艂膮czonych urz膮dze艅 i na podstawie odpowiedzi ustala, z jakim programatorem pracuje.
Przygl膮daj膮c si臋 bli偶ej cechom SmartProga doszed艂em do wniosku, 偶e konstruktorzy przewidywali chyba jego u偶ywanie w do艣膰 intensywny spos贸b, 艂膮cznie z masowym programowaniem uk艂ad贸w. 艢wiadczy o tym nie tylko deklarowana 偶ywotno艣膰 podstawki ZIF, szacowana na 25000 cykli, ale r贸wnie偶 pewna opcja programu. Jest to ukryta pod poleceniem Device option tzw. se-rializacja. Mo偶e to nie brzmi zbyt poprawnie i zrozumiale po polsku, ale po namy艣le doszed艂em do wniosku, 偶e do艣膰 dobrze oddaje sens. Chodzi mianowicie o automatyczne nadawanie numer贸w seryjnych programowanym uk艂adom. Podobnie jak w przypadku omawianej wcze艣niej sumy kontrolnej, tak i tu mo偶na okre艣li膰 adres specjalnej kom贸rki, do kt贸rej b臋dzie wpisywany 2-bajtowy numer seryjny, automatycznie inkrementowany po ka偶dej operacji programowania. Przydatn膮 niekiedy cech膮 mo偶e by膰 te偶 mo偶liwo艣膰 testowania pami臋ci SRAM.
Program PG4UW jest rozprowadzany na ma艂ym (8 cm) CDROM-ie, co w pewnych sytuacjach mo偶e by膰 troch臋 k艂opotliwe. S膮 stacje, kt贸re nie maj膮 wysuwanej szufladki, tylko "po艂ykaj膮" kr膮偶ek do 艣rodka. Nie wiem jak sobie radz膮 w takim przy-
t
J 艢 J rilkhllllllM艁l

...

f'艢!

"
nr .....
P艂llh
Rys. 3. Okno edycyjne bufora danych
padku, ale waha艂bym si臋 przed w艂o偶eniem ma艂ej p艂ytki do 艣rodka. Zawarto艣膰 r贸wna tylko 29 MB, usprawiedliwia w pewnym stopniu takie podej艣cie firmy.
Podsumowanie
Jedn膮 z wa偶niejszych cech SmartProga jest szybko艣膰 dzia艂ania, kt贸r膮 zawdzi臋cza zar贸wno dobrym algorytmom programowania, jak i szybkiej (l MB/s) transmisji danych z komputerem. Wykorzystuje si臋 do tego port drukarkowy. Pewien, niestety zauwa偶alny, wp艂yw na uzyskiwan膮 pr臋dko艣膰 transmisji ma konfiguracja komputera. Na pewno nie bez znaczenia dla u偶ytkownika jest 3-letnia gwarancja, jak膮 daje producent na programator oraz dobry sup-port prowadzony zar贸wno telefonicznie jak i poprzez poczt臋 elektroniczn膮. Firma Elnec oferuje m.in. serwis AlgOR (Algoriihm On Re-膮uest), w ramach kt贸rego u偶ytkownicy mog膮 mie膰 wp艂yw na stosowane algorytmy programowania. W tym celu wystarczy (mam nadziej臋) wys艂a膰 odpowiedni formularz pobrany ze strony WWW, w kt贸rym podaje si臋 informacje o typie uk艂adu, nie-uwzgl臋dnionego na li艣cie programatora. Aby zach臋ci膰 do stosowania uk艂ad贸w programowalnych, Elnec umie艣ci艂 na swoich stronach inter-netowych liczne odno艣niki do stron producent贸w uk艂ad贸w PLD oraz mikrokontroler贸w i pami臋ci.
Wszystkie powy偶sze cechy programatora powoduj膮, 偶e ma on wysoki wsp贸艂czynnik mo偶liwo艣ci do ceny urz膮dzenia. Niewielka, kieszonkowa wr臋cz obudowa, mo偶e pozwoli膰 na wykorzystywanie SmartProga nawet poza normalnym stanowiskiem pracy u偶ytkownika. Jaros艂aw Doli艅ski, AVT ja ros la w.do I i ns ki @ep .com. pl
Dodatkowe informacje
Programator do test贸w w redakcji dostarczy艂a firmaEurodis, tel. (71)301 0400, www.rnicrodis.net.
60
Elektronika Praktyczna 7/2002
SPRZ臉T
Obecnie bardzo wielu producent贸w
p贸艂przewodnik贸w produkuje podzespo艂y do system贸w bezstykowej identyfikacji. Przyk艂adem jest chocia偶by system iCODE, prezentowany na 艂amach kwietniowego wydania EP. Jednak pierwszym producentem, kt贸ry upowszechni艂 taki system jest Texas Instruments. W artykule przedstawiamy mo偶liwo艣ci oferowanego przez t臋 firm臋 systemu Tiris.
^r Texas
Instruments
Zasad臋 dzia艂ania systemu bezstykowej identyfikacji zilustro-wano na rys. 1. Modu艂 czytnika wsp贸艂pracuje z anten膮, za pomoc膮 kt贸rej do transpondera (pozbawionego lokalnego 藕r贸d艂a zasilania) jest przekazywana energia elektryczna umo偶liwiaj膮ca jeg prac臋 (zasilanie). Natomiast od transpondera do anteny dane s膮 przesy艂ane w postaci np. numeru seryjnego tianspondera. Nowoczesne transpondery stosowane w systemach bezstykowej identyfikacji s膮 w wi臋kszo艣ci wyposa偶one w zapi-sywaln膮 pami臋膰 EEPROM, kt贸rej zawarto艣膰 mo偶na zdalnie modyfikowa膰, co znacznie zwi臋ksza mo偶liwo艣ci ich stosowania. Poniewa偶 czas trwania zapisu kom贸rek pami臋ci EEPROM jest do艣膰 d艂ugi,
Antena nadawczo-odbiorcza
Pole elektromagnetyczne
Transponder
wyposa偶one w ni膮 transpondery maj膮 wbudowany dodatkowy kondensator gromadz膮cy 艂adunek niezb臋dny do zapewnienia poprawnego zapisania pami臋ci (rys. 2). Czas 艂adowania kondensatora w systemie This LF (z no艣n膮 o cz臋stotliwo艣ci 134 kHz) wynosi 50 ms, przy sumarycznym czasie trwania ramki odczytu danych 86 ms (w uproszczeniu pokazano j膮 na rys. 3). Czas trwania cyklu zapisu pami臋ci transpondera mo偶e wynosi膰 od 293 ms do 341 ms (w zale偶no艣ci od wersji transpondera). Przesy艂ane dane s膮 kodowane metod膮 FSK {Fre膮uency Shift Keying - rys. 4) co oznacza, 偶e stanowi "0" przyporz膮dkowany jest sygna艂 o cz臋stotliwo艣ci 134,2 kHz, a stanowi "1" sygna艂 o cz臋stotliwo艣ci 123,2 kHz.
Transpondery - dla ka偶dego co艣 mi艂ego
Transpondery stosowane w systemie Tiris s膮 oferowane w wielu r贸偶nych wykonaniach mechanicz-
Konderwator
przechowuj膮cy
艂adunek niezb臋dny
dla poprawnego zapisu
pami臋ci EEPROM \
Antena
I
Uk艂ad scalony transpondera
Rys, 2
62
Elektronika Praktyczna 7/2002
SPRZ臉T
nych. R贸偶ni膮 si臋 tak偶e mo偶liwo艣ciami i pojemno艣ci膮 udost臋pnianej pami臋ci.
Jako pierwsze wprowadzono na Tynek transpondery w obudowach szklanych o d艂ugo艣ci 23 i 32 mm (fot. 5), a nast臋pnie znacznie rozszerzono asortyment obud贸w tians-ponder贸w. Obecnie s膮 oferowane w postaci breloczk贸w, kart, miniaturowych walc贸w o 艣rednicy 30 lub 85 mm, a tak偶e w niewielkich obudowach przypominaj膮cych kszta艂tem klin o d艂ugo艣ci 12 mm. Dost臋pne obudowy transponder贸w systemu Tiiis pokazano na fot. 6. W zale偶no艣ci od wymiar贸w obudowy, kt贸re producent powi膮za艂 z wielko艣ci膮 anteny wbudowanej w tiansponder, zasi臋g odczytu zawarto艣ci jego pami臋ci mo偶e wynosi膰 20...200 cm. Ca艂kowita pojemno艣膰 pami臋ci transponder贸w (nie zawsze w ca艂o艣ci dost臋pna dla u偶ytkownik贸w!) mo偶e wynosi膰 w zale偶no艣ci od modelu: 64, 80, 88, 1360 bit贸w. Transpondery wy-
0
1
o
1
Nadajnik w.cz. wy艂膮czony
Nadajnik w.cz. w艂膮czony
Rys, 3
8 bit
128 bit
L膮dowanie kondensatora w transponderzG
______/I______
Adres
50 ma
LSB 16 ma
Dane
f< 20 ma ^i
86 ms
posa偶one w programowaln膮 pami臋膰 nieulotn膮 maj膮 przestrze艅 adresow膮 podzielon膮 na strony. W zale偶no艣ci od wymaga艅 u偶ytkownika, mo偶e to by膰 pami臋膰 z dost臋pem sekwencyjnym (transpondery MPT - Mul艅pa-ge Transponder) lub ze swobodnym dost臋pem do wybranej strony (SAMPT - Selec艅ve Addressable Multipage Transponder). Dost臋pne s膮 tak偶e pami臋ci z wbudowanym zabezpieczeniem przed niepowo艂anym dost臋pem (SAMPTS - Selec艅-
ve Addressable Mul艅page Transponder, Secure).
CzytnikiT anteny i osprz臋t pomocniczy
Texas Instruments produkuje 10 typ贸w modu艂贸w nadawczo-odbiorczych zintegrowanych z mikiokontiolerami steruj膮cymi ich prac膮. Wygl膮d trzech przyk艂adowych modu艂贸w pokazano na fot. 7. S膮 tak zbudowane, 偶e mo偶na je 艂atwo zastosowa膰 we
Fot, 5
Fot, 7
64
Elektronika Praktyczna 7/2002
SPRZ臉T
Fot, 8
w艂asnych aplikacjach, dzi臋ki czemu konstruktor ma rozwi膮zane najwa偶niejsze problemy komunikacyjne i mo偶e si臋 skupi膰 na obr贸bce danych odczytywanych z transponder贸w. Wi臋kszo艣膰 modu艂贸w nadawczo-od-
Fot, 9
biorczych jest przystosowanych do jednoczesnej obs艂ugi kilku tiansponder贸w znajduj膮cych si臋 w zasi臋gu anteny.
Texas Instruments oferuje tak偶e pozosta艂y osprz臋t niezb臋dny do wykonania kompletnego systemu bezstykowej identyfikacji, tzn. anteny (5 typ贸w) oraz wska藕nik dostrojenia wspomagaj膮cy strojenie obwodu rezonansowego anteny.
Zestawy ewaluacyjne
Niezwykle pomocne podczas wst臋pnych prac projektowych s膮 zestawy ewaluacyjne, kt贸re TI produkuje w dw贸ch wersjach, r贸偶ni膮cych si臋 zastosowanym w nich typem modu艂u nadawczo-odbiorczego. Jeden z nich - RI-
K3A-001A (fot. 8) - testowali艣my w redakcyjnym laboratorium.
Aplikacjo
Standardow膮 i bez w膮tpienia najbardziej popularn膮 aplikacj膮 system贸w bezstykowej identyfikacji Tiris jest kontrola dost臋pu. Przyk艂adem mog膮 by膰 m.in. samochodowe immobilizery, w kt贸rych transpondery spe艂niaj膮 rol臋 identyfikatora w艂a艣ciciela (system Tiris jest stosowany w samochodach marki Ford). Firma kurierska FedEx (fot. 9) wdro偶y艂a projekt identyfikowania uprawnie艅 pracownik贸w w zakresie dost臋pu do pomieszcze艅 oraz system automatycznej identyfikacji pojemni-
k贸w, w kt贸rych s膮 gromadzone poselekcjonowane przesy艂ki. W wielu europejskich kurortach narciarskich dost臋p do wyci膮g贸w jest tak偶e strze偶ony przez systemy bezstykowej identyfikacji (fot. 10), co u艂atwia korzystanie z nartostrad i zmniejsza ryzyko powstania "kork贸w".
Bardzo wiele system贸w identyfikacyjnych na mniejsz膮 skal臋 wdra偶aj膮 tak偶e krajowi producenci (zw艂aszcza system贸w alarmowych) - transpondery spe艂niaj 膮 w nich zazwyczaj rol臋 bezstyko-wych kluczy. Andrzej Gawryluk, AVT
Dodatkowe informacje
Zestaw ewaluacyjny do test贸w dostarczy艂a redakcji firma Eurodis, tel. (71) 301-04-00, www.rnicrodis.net.
Dodatkowe informacje s膮 dost臋pne na ptycie CD-EP7/2002B orazw Internecie:
- gt贸wna strona po艣wi臋cona systemom identyfikacji bezstykowej: http://www.ti.corn/ Tiris/delault.htm,
- zestawienie dost臋pnych Transponder贸w: hTTp:// www.Ti.com/Tiris/docs/products/Transponders/ Transponders.shTml,
- zestawienie dost臋pnych czytnik贸w: hTTp:// www.Ti.com/Tiris/docs/producTs/readers/ readers. shtrnl,
- zestawie艅ie dost臋pnych anten: hTTp:// www.Ti.com/Tiris/docs/producTs/anTennas/ antennas.shtml.
Fot, 10
Elektronika Praktyczna 7/2002
65
SPRZ臉T
Agilent Technologies
lnnovatingtheHPWav
W artykule przedstawimy nowe przyrz膮dy
firmy Agilent s艂u偶膮ce do generowania
i analizy sygna艂贸w telefonii cyfrowej drugiej
i trzeciej generacji (2G/3G).
Obecnie, prsy lawinowym rozwoju technik, przek膮su informacji i swi膮sa-nym z tym rosn膮cym stopniem z艂o偶o-no艣ci sygna艂贸w przesy艂anych drog膮 radiow膮, ro艣nie zapotrzebowanie na aparatur臋 pomiarow膮, kt贸ra realizuje odpowiednio skomplikowane funkcje i procedury pomiarowe, ale nie przenosi tej z艂o偶ono艣ci na interfejs u偶ytkownika. Generacja sygna艂贸w i pomiary ich kluczowych parametr贸w we wszystkich najwa偶niejszych formatach 2G/3G, mog膮 by膰 wykonywane szybko i z du偶膮 precyzj膮. Pomimo tego, 艣e takie przyrz膮dy s膮 skomplikowane funkcjonalnie, mog膮 by膰 艂atwe w obs艂udze z punktu widzenia u偶ytkownika. Automatyczny pomiar, kt贸ry sprowadza si臋 tylko do wy-horu odpowiedniego typu cyfrowej rno-dulacji/demodulacji sygna艂u - to ju偶 nie marzenie, lecz rzeczywisto艣膰. Wystarczy si臋gn膮膰 po dwa nowe przyrz膮dy z oferty Agilent Technologies, dedykowane dla test贸w i pomiar贸w urz膮dze艅 i system贸w komunikacji bezprzewodowej drugiej i trzeciej generacji: E4438C ESG Vector Signal Generator (250 kHz...6 GHz) oraz E4443A PSA Spectrum Ana-lyzer (3 Hz...6,7 GHz).
Przyrz膮dy te wybrano z serii ESG i PSA i zestawiono w par臋 nieprzypad-
kowo. Obydwa pokrywaj膮 prawie to samo pasmo cz臋stotliwo艣ci - do 6 GHz, kt贸re obecnie obejmuje wszystkie naj-
Od nowoczesnych przyrz膮d贸w
laboratoryjnych wymaga si臋 prostoty
obs艂ugi pomimo realizacji przez nie
skomplikowanych funkcji i procedur
pom ia r owych.
nych zmian w konstrukcji przyrz膮d贸w pomiarowych. W przypadku generator贸w niezb臋dne by艂o ich ,,doposa偶enie" w modulator kwadraturowy I/Q (rys* 2) oraz wewn臋trzny, szerokopasmowy generator sygna艂贸w moduluj膮cych. Generatory ESG posiadaj膮 r贸wnie偶 alternatywne wej艣cia umo偶liwiaj膮ce doprowadzenia sygna艂贸w I/Q z zewn膮trz. Na schemacie zaznaczono te偶 przetworniki C/A przekszta艂caj膮ce informacje o warto艣ci zale偶nych od cz臋stotliwo艣ci (zapisanych w pami臋ci) wsp贸艂czynnik贸w ko re kcyj nyc h.
Istotnym parametrem generatora sygna艂贸w zmodulowanych cyfrowo jest maksymalna szeroko艣膰 pasma sygna艂u zmodu-
Fot. 1. Generator sygna艂贸w 2G/3G serii ESG i analizator serii PSA
nowsze systemy telekomunikacji bezprzewodowej. Obydwa s膮 przygotowane do pracy z powszechnie stosowanymi sygna艂ami zmodulowanymi cyfrowo (lub u偶ywaj膮c 艣ci艣lejszego okre艣lenia - sygna艂ami z wielostanowymi modulacjami ampli tudowo-fazowymi). Obydwa obs艂uguj膮 szeroki zbi贸r predefiniowanych format贸w sygna艂贸w tego rodzaju zgodnych z aktualnymi standardami, przy zachowaniu otwarto艣ci na nowe, jeszcze nie unormowane, oraz akceptuj膮 w艂asne schematy modulacyjne zdefiniowane przez u偶ytkownika. List臋 obs艂ugiwanych format贸w zawarto w tab. 1.
Oczywi艣cie, nie wszystkie wymienione formaty s膮 interesuj膮ce dla ka偶dego u偶ytkownika. Agilent, jako producent o zasi臋gu 艣wiatowym, musi dostosowa膰 si臋 do potrzeb klient贸w z r贸偶nych obszar贸w geograficznych, zdominowanych przez r贸偶ne technologie. W Polsce opr贸cz eksploatowanych aktualnie system贸w GSM (operatorzy kom贸rkowi) i Tetra (Policja i Stra偶 Graniczna) mo偶na si臋 spodziewa膰 ju偶 wkr贸tce wi臋kszego zainteresowania i wzrostu potrzeb pomiarowych zwi膮zanych z wprowadzaniem systemu W-CDMA/ UMTS, a tak偶e z nap艂ywem sprz臋tu powszechnego u偶ytku z interfejsem Pluetooth i z upowszechnianiem si臋 technologii Wireless LAN.
Dotrzymanie kroku gwa艂townym zmianom w 艣wiecie telekomunikacji nie by艂oby mo偶liwe bez r贸wnie dynamicz-
Tab. 1. Formaty sygna艂贸w obs艂ugiwanych przez generator E4438C serii ESG i analizator E4443A serii PSA
1xEV-D0 1xEVolution - Data Only System zgodny z CDMA 2000 艁膮cze radiowe udost臋pnia do 2,4 Mb/s w dedykowanym kanale o szeroko艣ci 1,25MHz Gualcornrn.AlTera, Motorola
802 11a/ 802 11b IEEE Wireless LAN Standard IPover Ethernet a) pasmo 5 GHz, przepustowo艣膰 54Mbps b)pasrno2,4GHz przepustowo艣膰 11 Mbps
AWGN Additive White Gaussian Noise - typ sygna艂u wykorzystywany w Testach system贸w CDMA
Bluetooth Uniwersalny interfejs radiowy kr贸tkiego zasi臋gu Pasmo 2,4 GHz, max przep艂ywno艣膰 720 kb/s Frequency HoppingSpread Spectrum (FHSS)
CDMA-2000 CDMA-One Code Division Multiple Access -Dost臋p Wielokrotny z Podzia艂em Kodowym
DECT Digital European Cordless Telephone
EDGE Enhanced Data lor GSM Evolution
GSM Global System lor Mobile Communi-cation
NADC North American Dual-Mode Cellular
PDC Personal Digital Cellular (Japan)
PHS Personal Handyphone System (Japan)
TETRA Trans European Trunked Radio Access
W-CDMA (UMTS) Wideband CDMA-technologia wykorzystywana przez Universal Mobile Telecommunications System
Elektronika Praktyczna 7/2002
SPRZ臉T
I han BnHind SiW*
Rys. 2. Schemat blok贸w/ modulatora l/G
lowanego, gdy艣 powinna ona pokrywa膰 z zapasem pasma zajmowane przez stosowane obecnie najbardziej ,, szeroko pasm owe" modulacje. Najbardziej dot膮d wymagaj膮cym systemem jest W-CDMA fUMTS) operuj膮cy kana艂ami o szeroko艣ci ok. 5 MHz. Generator E4438C ESG oferuje szeroko艣膰 pasma 80 MHz w przypadku korzystania z wewn臋trznego generatora I/Q lub 160 MHz przy generatorze zewn臋trznym. Tak du偶y zapas szeroko艣ci pasma pozwala na generowanie bardziej z艂o偶onych sygna艂贸w testuj膮cych, kt贸re
Tab. 2. Wybrane parametry generatora E4438C serii ESG
Parametr Warto艣膰
Zakres cz臋stotliwo艣ci 1, 2, 3, 4 lub 6 GHz-zale偶y od wyboru opcji Modele na ni偶sze pasma nie obs艂uguj膮 wszystkich lormat贸w 2G/3G
Szybko艣膰 prze艂膮czania cz臋stotliwo艣ci no艣ne] <13mswtrybieCW
Mocwyi艣ciowa +17 dBm dla 1 GHz
Szybko艣膰
Dok艂adno艣膰 poziomu mocy 膮0,5 dB do 2 GHz
G臋sto艣膰 szumu lazowego <-134 dBc/Hz dla odstrojenia 20 kHz i no艣ne) 1 GHz
Szeroko艣膰 pasma sygna艂u zmodulowanego 160 MHz dla zewn臋trznych sygna艂贸w modulu-l膮cych l/O lub 80 MHz przy wykorzystaniu wewn臋trznego generatora przebieg贸w rnodului膮cych
Pami臋膰 przebiegu modului膮cego 8 lub 32 MS (40 lub 160MB)
Szybko艣膰 odtwarzania pr贸bek przebiegu modului膮cego do 100MS/S
Poiemno艣膰 wbudowanego dysku Twardego 6 GB
Interfejsy 10BaseT U\N. GPIB. RS-232
le偶nie od opcji) przewidziano od 40 do 160MB pami臋ci RAM mieszcz膮cej 8 do 32 M podw贸jnych pr贸bek I/Q.
Opcjonalnie generator ESG mo偶na wyposa偶y膰 w modu艂 odbiornika zdemodu-
Analizator ten wyposa偶ono w szereg nowatorskich rozwi膮za艅, kt贸re pozwoli艂y uzyska膰 parametry do tej pory nieosi膮galne w sprz臋cie powszechnie dost臋pnym. Cyfrowa obr贸bka sygna艂u
2 dB step attenuator
OtoTOdB
Optianil 30 cB giin prearnplifiar 500 kHz to 3 QHz
30 M umpletoc 14 Ul analog dloltaJ conwrter {ADC3
Hlgh reaolutlon daplay
LOphasenolseopilmlzatlDn f 膮ff BweptorFFT
160 narrew st膮p resolutkm bandwidtha
Rys. 3. Uproszczony schemat blokowy analizatora serii PSA
mog膮 symulowa膰 np. prac臋 kilku stacji bazowych jednego systemu lub nawet dw贸ch stacji bazowych r贸偶nych system贸w w celu zbadania reakcji stacji abonenckiej w warunkach zbli偶onych jak najbardziej do rzeczywistych. Wykorzystanie bardziej z艂o偶onych przebieg贸w moduluj膮cych, wykraczaj膮cych poza mo偶liwo艣ci wewn臋trznego generatora I/Q, mo偶e wi膮za膰 si臋 z konieczno艣ci膮 wcze艣niejszego ich przygotowania metodami obliczeniowymi na komputerze i przes艂ania do generatora w postaci ci膮g贸w pr贸bek. Do wyboru s膮 trzy rodzaje interfejs贸w: lOBaseT LAN, GPIB, RS-232. Do przesy艂ania danych fw obie strony) mo偶na wykorzysta膰 dostarczan膮 z generatorem aplikacj臋 IntuiLink pracuj膮c膮 w 艣rodowisku Windows. Generator operuje 16-bitowymi pr贸bkami, na kt贸rych zapami臋tanie (偶a-
艂owanego sygna艂u cyfrowego do pomiaru bitowej stopy b艂臋d贸w BER. W celu wykonania pomiaru generator wykorzystuje standardowe sekwencje pseudoloso-we: PN9, PNll, PNI5, PN20 i PN23.
W przypadku analizator贸w widma PSA kluczowym czynnikiem umo偶liwiaj膮cym ich zastosowanie w analizie sygna艂贸w 2G/3G sta艂a si臋 daleko posuni臋ta cyfryzacja ich budowy. Z uwagi na w pe艂ni cyfrow膮 realizacj臋 ca艂ego toru po艣redniej cz臋stotliwo艣ci w PSA b臋d膮cym z nazwy analizatorem widma, dost臋pne sta艂y si臋 funkcje tradycyjnie zarezerwowane dla wektorowych analizator贸w sygna艂贸w VSA. W szczeg贸lno艣ci bez obr贸bki cyfrowej niemo偶liwe by艂oby zrealizowanie funkcji odzyskiwania przebiegu zegara niezb臋dnego do synchronizacji i demodulacji analizowanych sygna艂贸w 2G/3G.
w torze IF pozwoli艂a wyeliminowa膰 wiele przyczyn powstawania b艂臋d贸w amplitudowych, wprowadzi膰 nowe algorytmy korekcyjne oraz uzyska膰 prawie idealn膮 logarytmiczn膮 charakterystyk臋 wzmocnienia. Wyj膮tkowa dok艂ad-
Jgfari II 1* n 1

1' 1 I i Kt

.1. | !**!艢 -s "艢
1 rrHri ta*!*
, .. ,\i li-. >.-., r-sssn

Rys. 4. Pomiar sygna艂u 2-tonowego w trybie FFT. Czas przemiatania wynosi zaledwie 34ms
68
Elektronika Praktyczna 7/2002
SPRZ臉T

-aa -90 i s 10 n 9 -120 艢130 艢140
\
1
PSA<5OkHz
's PSA>50kHz
* 艢 艢 : 艢4- poctrun imlyzsn
s V V
\
s V 艢
1 10 10 10 OfM/Hz 10 10
Rys. 5. Charakterystyka g臋sto艣ci szumu fazowego heterodyny analizatora PSA
no艣膰 i rozdzielczo艣膰 pomiar贸w amplitudowych PSA pozwala w wielu zastosowaniach wyeliminowa膰 dodatkowy miernik mocy. Uzasadnione sta艂o si臋 udost臋pnienie mo偶liwo艣ci ustawiania poziomu odniesienia co 0,01 dB i skali pionowej 0,1 dB/dzia艂k臋 oraz 3-cyfrowy odczyt poziomu markera. PSA cechuje si臋 r贸wnie偶 bardzo dobr膮 dynamik膮 TOI=+17dBm, DANL=-169dBm. Chocia偶 zakres dynamiki analizatora widma mo偶na definiowa膰 w r贸偶ny spos贸b, w pomiarach 2G/3G miarodajna jest warto艣膰 mo偶liwej do uzyskania dynamiki w pomiarze ACP (Adjacent Channel Power) dla sygna艂u W-CDMA. Typowy wynik dla PSA to 73 dB.
Dzi臋ki zastosowaniu cyfrowych filtr贸w w torze IF oraz FFT z mo偶liwo艣ci膮 automatycznego lub r臋cznego wyboru parametr贸w znacznie uleg艂 skr贸ceniu czas analizy w pomiarach wymagaj膮cych w膮skich filtr贸w RBW. Na rys. 4 pokazano przyk艂ad analizy widma przebiegu dwutonowego z zastosowaniem w膮skich filtr贸w RBW=VBW=100 Hz, w oknie 20 kHz wykonywanej w trybie FFT. Czas analizy wynosi 34ms, podczas gdy w klasycznym analizatorze bez FFT wymaga艂oby to a偶 4 s.
Dodatkowe informacje
Artykut powstat na bazie materia艂贸w firmy Agilent, kt贸re s膮 dost臋pne w Internecie pod adresem www.agilent.com, publikujemy je tak偶e na ptycieCD-EP7/2002B.
Informacje: AM Technologies Polska Sp. z o.o., tel.: (22) 608-14-40, fax: (22) 608-14-44, info@am-tech.pl.
Tab. 3. Wybrane parametry analizatora E4443A serii PSA
Parametr Warto艣膰
Zakres cz臋stotliwo艣ci 6,7 GHz (w serii dost臋pne s膮 r贸wnie偶 modele na pasma: 13,2 GHz, 26,5 GHz, w tym roku tak偶e 43,5 GHz i 50 GHz)
Czasprzemiatania span 10Hz 1ms...2000s
span=OHz 1us-r6000s
Cz臋stotliwo艣膰 powtarzania cyklu pomiarowego przy pracy lokalnej > 50 pomiar贸w/s
Cz臋stotliwo艣膰 powtarzania cyklu pomiar/przestanie danych przy pracy zdalnej > 22 pomiar贸w/s
Szeroko艣ci pasmafiltru RBW 1Hzdo3 MHz co 10% oraz 4, 5, 6 i 8 MHz- 艂膮cznie 160 warto艣ci RBW
Bezwzgl臋dna dok艂adno艣膰 amplitudowa specyfikowana <膮0,27 dB
typowa <膮0,11 dB
B艂膮d amplitudowy w funkcji cz臋stotliwo艣ci, 3Hz-r3 GHz specyfikowany <膮0,38 dB typowy <膮0,1 dB
Dok艂adno艣膰 pomiaru mocy w kanale s膮siednim (ACPR) dla sygna艂u W-CDMA (UMTS) dla stacji abonenckiej 膮0,12 dB dla stacji bazowej 膮0,20 dB
Dynamika pomiaru mocy w kanale s膮siednim (ACPR) dla sygna艂u W-CDMA (UMTS) bez korekcji szum贸w -75 dB z korekcj膮 szum贸w-78 dB
G臋sto艣膰 mocy szumu fazowego dla wybranych odstroje艅 od no艣nej 10kHz nominalnie -114 dBc/Hz, typowo -117 dBc/Hz 1 MHz nominalnie-144 dBc/Hz, typowo-148 dBc/Hz 10 MHz nominalnie -148 dBc/Hz, typowo -157 dBc/Hz
Najni偶szy zobrazowany poziom szum贸w DANL 10 MHz-r3 GHz nominalnie -153 dBm, typowo -154 dBm powy偶ej 3 GHz nominalnie-143 dBm, typowo -145 dBm 10 MHz-r3 GHz z przedwzmacniaczem -166 dBm
Wsp贸艂czynnik kompresji 1 dB 200 MHz-r3.0 GHz nominalnie +3 dBm, typowo +7 dBm
Poziom charakterystyczny sygna艂u wej艣ciowego dla zniekszta艂ce艅 intermodulacyjnych 3-go rz臋du nominalnie+17 dBm, typowo +19 dBm
Interfejsy 10BaseTLAN,GPIB/RS-232
PSA jest pierwszym analizatorem widma, w kt贸rym zastosowano oscyla-tor lokalny LO o prze艂膮czanej charakterystyce szumowej. W zale偶no艣ci od wybranej szeroko艣ci okna cz臋stotliwo艣ciowego, analizator wybiera odpowiedni typ optymalizacji szumu fazowego heterodyny tak, by otrzyma膰 jego mniejsz膮 warto艣膰 w odst臋pie poni偶ej lub powy偶ej 50kHz od no艣nej (rys. 5).
Nale偶y mie膰 na uwadze, 偶e pokazana funkcjonalno艣膰 pomiarowa nowych przyrz膮d贸w, to 艂膮czny efekt nowoczesnej platformy sprz臋towej i zaawansowanego oprogramowania. W przypadku zmiany standardu i formatu analizowanych sygna艂贸w, hardware pozostaje ten sam, wystarczy tylko zmieni膰 oprogramowanie. Fakt ten sprawia, 偶e potencjalny nabywca analizatora PSA ma du偶y komfort i pewno艣膰, 偶e pomimo
nieustaj膮cego wy艣cigu producent贸w wprowadzaj膮cych coraz to nowe, udoskonalone technologie, niepr臋dko odstawi ten przyrz膮d do lamusa. RT
Elektronika Praktyczna 7/2002
69
NA CD M.IN.: KATALOG KUHfF ORAZ
AVR Freaks, Eagle, MPLAB 5.62, PIC C Lite, ProChip Designer
8/2002 sierpie艅 15 z艂 50 gr (wtym7%vAT)
BEZPRZEWODOWY STEROWNIK W臉呕A 艢WIETLNEGO
SAMOCHODOWY WZMACNIACZ W KLASIE T PRZETWORNIK A/C Z INTERFEJSEM RS232 UK艁AD PROGNOZUJ膭CY PRZYMROZKI KONWERTER SYGNA艁U VHS->SVHS
TRENDY:

MULTIPLEKSER SYGNA艁脫W WIDEO LAMPOWY KOREKTOR GRAFICZNY
STEROWNIK
mih\
PEDU CD-ROM
PRZE艁膭CZNIK ZEtLIZENIOWY PR脫BNIK ""
MIKR

KURS:
PROGRAMOWANIE I OBSy MODU艁脫W GSM ^"
EPon/offLINE ISSN
771Ll^D
Dfi>
BIBLIOTEKA EP
IV ^Bibliotece LP" prezentujemy ksi膮偶ki dotycz膮ce zagadnie艅 zwi膮zanych z r贸偶nymi dziedzinami techniki, jednak zawsze przydatne w pracy elektronika iub 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 polki, 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,
Uwaga! Wi臋kszo艣膰 prezentowanych ksi膮偶ek mo偶na zam贸wi膰 w Dziale Handlowym AVT (patrz str, 123), Chcemy w ten spos贸b udost臋pni膰 je Czytelnikom EP,
Praca zbiorowa pod redakcj膮 J贸zefa Kalisza, "J臋zyk VHDL w praktyce", WK艁 2002
Elektroniki PraHyoBi珅
Kolejne na polskim rynku wydawniczym wydarzenie, z kt贸rego z pewno艣ci膮 uciesz膮 si臋 fani uk艂ad贸w programowalnych: kompleksowy przewodnik po j臋zyku VHDL, wzbogacony wieloma trafnie dobranymi przyk艂adami, na podstawie kt贸rych mo偶na pozna膰 wi臋kszo艣膰 zagadnie艅 istotnych w praktycznych zastosowaniach tego j臋zyka.
Ksi膮偶k臋 rozpoczyna wprowadzenie, w kt贸rym autor omawia budow臋 projekt贸w w j臋zyku VHDL, wyja艣nia r贸偶nice pomi臋dzy sposobami opisu sprz臋tu, sporo miejsca po艣wi臋caj膮c rozr贸偶nieniu instrukcji wsp贸艂bie偶nych i sekwencyjnych, kt贸re sprawiaj膮 sporo k艂opot贸w i to nie tylko pocz膮tkuj膮cym.
W dalszej cz臋艣ci ksi膮偶ki skr贸towo przedstawiono trzy systemy projektowe (Max+Plus II, ISPDesign Ex-pert, WebPack ISE), przy czym (zgodnie z deklaracj膮 zawart膮 w tytule ksi膮偶ki) najwi臋kszy nacisk po艂o偶ono nie na ich obs艂ug臋, a na realizacj臋 projekt贸w opisanych w j臋zyku VHDL. Praktyk贸w z pewno艣ci膮 zainteresuj膮 opisy dw贸ch zestaw贸w ewaluacyjnych zaprojektowanych i wykonanych przez autor贸w ksi膮偶-
ki, dzi臋ki kt贸rym mo偶na prowadzi膰 samodzielne pr贸by z programowanymi w systemie uk艂adami firm: Latti-ce i Xilinx. Powa偶n膮 wad膮 opisanego w ksi膮偶ce zestawu dla uk艂ad贸w firmy Lattice jest zastosowanie w nim niedost臋pnych ju偶 uk艂ad贸w PLD z interfejsem Lattice ISP, kt贸ry jest inaczej zbudowany i nieco inaczej dzia艂a ni偶 obecny standard -JTAG (IEEE1149.1). S艂owo wyja艣nienia ze strony autora mog艂oby zapobiec k艂opotom adept贸w PLD, kt贸rzy s膮 skazani na bezowocne poszukiwania uk艂ad贸w zastosowanych w zestawie. Ostatni rozdzia艂 ksi膮偶ki po艣wi臋cono opisowi pakietu Active HDL, kt贸ry jest narz臋dziem do symulacji projekt贸w opisanych w j臋zykach HDL. Jako materia艂 uzupe艂niaj膮cy, w ksi膮偶ce przedstawiono listing opracowanego przez autor贸w pakietu WAT, do kt贸rego funkcji odwo艂uj膮 si臋 niekt贸re przyk艂ady. W ksi膮偶ce umieszczono tak偶e czte-rostronicow膮 wk艂adk臋, na kt贸rej znajduj膮 si臋 przyk艂ady podstawowych konstrukcji j臋zyka VHDL, wymieniono tak偶e predefiniowane funkcje oferowane przez r贸偶nych producent贸w narz臋dzi projektowych.
Reasumuj膮c: dobrze napisana ksi膮偶ka, zawieraj膮ca wiele informacji niezb臋dnych do poznania j臋zyka VHDL. Gor膮co polecamy, ale osoby zainteresowane zakupem tej ksi膮偶ki musimy uprzedzi膰 o nieco zaskakuj膮cym pomy艣le edytorskim, kt贸ry utrudni jej odnalezienie
J臉ZYK
VHDL
w ksi臋garniach: zastosowano bowiem niezwykle nietypow膮 opraw臋 z gi臋tego drutu, w wyniku czego ksi膮偶ka nie ma klasycznego grzbietu. Z jednej strony u艂atwia to korzystanie z niej (nie ma ryzyka rozklejenia ksi膮偶ki), z drugiej powoduje, 偶e ksi膮偶ka wygl膮dem przypomina skrypt. Praktyk贸w to z pewno艣ci膮 nie zrazi.
Xavier PachecoT Steve Teixeira: "Delphi 6. Vademecum profesjonalisty. Tom I"T Helion 2002T 620 str., zawiera CD-ROM
Pierwszy rzut oka na "Delphi 6. Vadernecurn profesjonalisty. Tom I" wzbudzi艂 nasze podejrzenia. Ksi膮偶ka, w por贸wnaniu z "Delphi 4. Vademe-cum profesjonalisty. Tom I", ma prawie 300 stron mniej, a przecie偶 r贸偶nice mi臋dzy Delphi 4 i Delphi 6 s膮 ol-
brzymie. Wszystko wyja艣ni艂o si臋 po przeczytaniu przedmowy do wydania polskiego - w ksi膮偶ce nie om贸wiono cz臋艣ci zagadnie艅, kt贸re nie s膮 zwi膮zane bezpo艣rednio z Delphi 6, a by艂y opisane we wcze艣niejszych wydaniach fnp. wykorzystanie kontrolek ActiveX). Z jednej strony umo偶liwi艂o to wydanie ksi膮偶ki o rozs膮dnych rozmiarach, jednak z drugiej strony od "Vademecum profesjonalisty" oczekuje si臋 kompletnego zaprezentowania materia艂u.
Tom pierwszy zosta艂 podzielony na cztery cz臋艣ci. W cz臋艣ci pierwszej zosta艂y zawarte informacje o 艣rodowisku Delphi, j臋zyku Object Pascal oraz o komunikatach w systemie Windows. Kolejna cz臋艣膰 jest po艣wi臋cona bardziej zaawansowanym zagadnieniom - tworzeniu aplikacji wielow膮tkowych, tworzeniu i wykorzystywaniu bibliotek DLL, natomiast w cz臋艣ci trzeciej znajduj膮 si臋 informacje o tworzeniu aplikacji bazodanowych. W cz臋艣ci czwartej
Elektronika Praktyczna S/2002
121
BIBLIOTEKA EP
Legenda:
Tom 1
Delphi 6
Yademecum profesjonalisty
Zawiera CD
zawarto obszerne informacje o komponentach fVCL i CLX), kt贸re s膮 chyba najwa偶niejszym elementem w 艣rodowisku Delphi. Pojawienie si臋 na rynku ICyliksa (czyli Delphi dla Linuksa) spowodowa艂o, 偶e aplikacje pisane w Delphi 6 mog膮 by膰 przenoszone do 艣rodowiska linuksowego. W aplikacjach takich nale偶y jednak przestrzega膰 pewnych zasad i jedn膮 z zalet ksi膮偶ki jest zaprezentowanie tych regu艂 na bazie wielu przyk艂ad贸w.
Do ksi膮偶ki jest do艂膮czona p艂yta CD-ROM, na kt贸rej mo偶na znale藕膰 kody 藕r贸d艂owe przyk艂ad贸w prezentowanych w ksi膮偶ce, zestaw komponent贸w oraz testowe i demonstracyjne wersje oprogramowania umo偶liwiaj膮cego rozbudowanie warsztatu programistycznego. Na podkre艣lenie zas艂uguje twarda oprawa ksi膮偶ki, kt贸ra w serii "Vademe-cum profesjonalisty" wydawnictwa He-lion ju偶 jest standardem. Ksi膮偶ka jest adresowana zar贸wno do zaawansowanych u偶ytkownik贸w Delphi, jak r贸wnie偶 do nieco mniej do艣wiadczonych programist贸w, poszukuj膮cych informacji o pe艂niejszym wykorzystaniu olbrzymich mo偶liwo艣ci Delphi 6.
Autorzy: zesp贸l, "Elektrotechnika i elektronika dla nieelektryk贸w", WNT 1999
Tytu艂 ksi膮偶ki doskonale oddaje jej zawarto艣膰: zebrano w niej bowiem praktycznie wszystkie podstawowe informacje zwi膮zane z wytwarzaniem i przep艂ywem pr膮du elektrycznego (sta艂ego i zmiennego, jedno- i wielofazowego), bardzo wiele informacji z podstaw elektroniki (w tym om贸wiono budow臋, i wyja艣niono zasad臋.
MCKIE " MECHANIKA
[elektrotechnika i elektronika dla nieelektryki
dzia艂ania element贸w p贸艂przewodnikowych, wzmacniaczy, generator贸w, uk艂ad贸w cyfrowych i impulsowych itp.). Du偶y rozdzia艂 przeznaczono na prezentacje, zagadnie艅 zwi膮zanych z pomiarami warto艣ci elektrycznych i nieelektrycznych, a tak偶e po艣wi臋cono maszynom elektrycznym (w tym transformatorom). Trzy ostatnie rozdzia艂y zawieraj膮 do艣膰 dok艂adne om贸wienie zagadnie艅 zwi膮zanych z przemys艂owym wytwarzaniem, przesy艂em, rozdzia艂em i u偶ytkowaniem energii elektrycznej, a tak偶e - szczeg贸lnie interesuj膮ce dla energoelektronik贸w - z nowoczesnymi metodami konwersji i obr贸bki energii elektrycznej.
Ksi膮偶k臋 oparto na silnych podstawach teoretycznych i trudno w niej znale藕膰 praktyczne przyk艂ady ilustruj膮ce omawiane zagadnienia, ale nie jest to jej wada, zw艂aszcza 偶e rzadko spotyka si臋 na rynku tak kompleksowe kompendia interdyscyplinarne. Ksi膮偶k臋 szczeg贸lnie polecamy pocz膮tkuj膮cym, ale tylko tym, kt贸rzy chc膮 si臋 naprawd臋 czego艣 dowiedzie膰.
Jerzy Brz贸zka: "Regulatory cyfrowe w automatyce", Mikom 2002
Jest to najprawdopodobniej pierwsza na polskim rynku wydawniczym ksi膮偶ka po艣wi臋cona regulatorom cyfrowym. Autor przedstawi艂 w niej zar贸wno zagadnienia podstawowe (m.in. zwi膮zane z konwersj膮 A/C), budow臋 i w艂asno艣ci regulator贸w cyfrowych, jak i nieco - naszym zdaniem zbyt og贸lnych - informacji o programowaniu regulator贸w cyfrowych. W trzech kolejnych rozdzia艂ach zawarto matematyczne podstawy dzia艂a-
ksi膮偶ka wybitna, polecamy!
ksi膮偶ka o du偶ych walorach praktycznych, polecamy!
mo偶e si臋 pizyda膰
daleka od doskona艂o艣ci
nie warto kupowa膰
nia regulator贸w oraz przyk艂ady opis贸w matematycznych liniowych uk艂ad贸w dyskretnych. Szkoda, 偶e autor tak pobie偶nie potraktowa艂 rozdzia艂 "Techniczna realizacja regulator贸w cyfrowych", w kt贸rym przydatne by艂yby przyk艂ady prostych rozwi膮za艅 uk艂adowych. Mocn膮 stron膮 opracowania jest prezentacja oprogramowania wspomagaj膮cego symulacj臋 uk艂ad贸w regulacyjnych, w tym oryginalnych i dodatkowych polece艅 z zewn臋trznych bibliotek Matlaba oraz programu Simulink.
Ksi膮偶ka warta polecenia przede wszystkim pocz膮tkuj膮cym projektantom system贸w regulacji i sterowania, kt贸rym zale偶y na dok艂adnym poznaniu teoretycznych podstaw ich dzia艂ania. Praktycy musz膮 szuka膰 dalej.
122
Elektronika Praktyczna S/2002
AUTOMATYKA
Oprogramowanie SCADA firmy GE-Fanuc
CIMPLICITY Plant Edition to
pakiet narz臋dzi
wizualizacyjnych nale偶膮cy do
rodziny oprogramowania
CIMPLICITY. W jej sk艂ad
wchodzi m.in. Machin臋 Edition
- s艂u偶膮cy do kompleksowej
konfiguracji i programowania
sterownik贸w GE Fanuc.
CIMPLICITY Plant Edition jest otwartym systemem HMI (Rumun Machin臋 Inteiface). Opracowano go w oparciu o wieloletnie do艣wiadczenie firmy GE Fanuc w tworzeniu oprogramowania SCADA. Oprogramowanie, pierwotnie dzia艂aj膮ce tylko pod systemem Unix, zosta艂o zaadaptowane do systemu MS Windows
Plant tdition
jednak偶e przy zachowaniu sprawdzonej jego architektury.
Architektura klient-serwer
Jedn膮 z najistotniejszych cech oprogramowania jest przyj臋cie architektury klient-serwer. System oparty na takim za艂o偶eniu jest bardzo wydajny, a gromadzone dane 艂atwo dost臋pne dla ko艅cowych u偶ytkownik贸w bez konieczno艣ci ich dublowania. Przyk艂adowo, jeden z najprostszych system贸w mo偶e wygl膮da膰 nast臋puj膮co (rys. 1): dane ze sterownika (b膮d藕 grupy sterownik贸w) pobierane s膮 przez serwer, na kt贸rym s膮 gromadzone, a nast臋pnie, w zale偶no艣ci od potrzeb, udost臋pniane kolejnym terminalom operatorskim (Viewer), na kt贸rych operatorzy kontroluj膮 proces (komputer-serwer mo偶e pe艂ni膰 r贸wnie偶 rol臋 terminala -Viewer). Wa偶ne jest, 偶e terminal nie
pobiera danych bezpo艣rednio ze sterownika, tylko od serwera - podobnie przebiega przesy艂anie danych w drug膮 stron臋, tzn. gdy terminal chce ustawi膰 jak膮艣 warto艣膰 w sterowniku, to nie przesy艂a jej bezpo艣rednio, lecz korzysta z serwera, kt贸ry zajmuje si臋 komunikacj膮 ze sterownikiem.
Architektura klient-serwer umo偶liwia r贸wnie偶 艂atw膮 rozbudow臋 aplikacji, od system贸w sk艂adaj膮cych si臋 z pojedynczego komputera do wielooperatorowych, w zale偶no艣ci od aktualnych potrzeb u偶ytkownika.
Integracja Machin臋 Edition z CIMPLICITY
Mimo i偶 CIMPLICITY Plant Edition jest pakietem SCADA (Su.pervi-soiy Conirol and Data Ac膮uisiiion), nie zapomniano w nim o mo偶liwo艣ci programowania sterownik贸w. Dzi臋ki doskona艂ej integracji pakietu CIMPLICITY Plant Ediiion (edytor aplikacji prezentuj膮cej ' wyniki pomiar贸w) z CIMPLICITY Machin臋 Ediiion (edytor program贸w dla sterownik贸w PLC) istnieje mo偶liwo艣膰 wywo艂ania Machin臋 Ediiion z poziomu Plant Ediiion, przygotowania programu steruj膮cego i skonfigurowania sterownika, a tak偶e wymiany informacji o zdefiniowanych zmiennych. Dzi臋ki temu punkty
C****** 艢 - aJ|
艢 *.! t

Tg w* 艢 wJitfE *^i
Rys. 1. Architektura klient-serwer
Rys. 2. Wsp贸lna baza punkt贸w dla wizualizacji i programu dla sterownika
Elektronika Praktyczna S/2002
125
AUTOMATYKA
艢 h.iiln^玪^ CU T.-H (艢 *^^aV^di i> Ikakobl J
irl Aikhni 艁艂ul AdrirrH
I*
p p
r
Rys. 3. Okna konfiguracyjne ulatwiajq wsp贸艂prac臋 ze sterownikami GE Fanuc
utworzone podczas przygotowania programu steruj膮cego mog膮 by膰 automatycznie dodane do listy punkt贸w dost臋pnych w Plant Ediiion (rys. 2). Chocia偶 CIMPLICITY PE mo偶e wsp贸艂pracowa膰 ze sterownikami innych firm ni偶 GE Fanuc (gdy偶 posiada bogat膮 bibliotek臋 program贸w komunikacyjnych), najwi臋cej korzy艣ci odnosimy integruj膮c system z tymi w艂a艣nie sterownikami. Przy konfiguracji projektu oprogramowanie zaoferuje nam skorzystanie z kreator贸w (rys. 3) s艂u偶膮cych do wykrycia pod艂膮czonych sterownik贸w, dodania odpowiednich protoko艂贸w i urz膮dze艅, a tak偶e mo偶liwo艣膰 wybrania obszar贸w danych sterownika w celu utworzenia na ich podstawie listy punkt贸w, kt贸ra zostanie automatycznie dodana do wizualizacji. Od tej chwili mo偶emy odczytywa膰 lub modyfikowa膰 wybrane rejestry sterow-
nika poprzez ich nazwy. Oczywi艣cie, dost臋pna jest r贸wnie偶 mo偶liwo艣膰 modyfikacji w艂a艣ciwo艣ci ka偶dego z utworzonych punkt贸w b膮d藕 "r臋czne" dodanie nowych.
CIMPLICITY PE oferuje tak偶e takie rozwi膮zania jak:
- system rezerwacji serwer贸w, po艂膮cze艅 i sterownik贸w,
- integracja pakietu z programami napisanymi w j臋zykach typu Vi-sual Basic,
- publikowanie aplikacji wizualiza-cyjnych w Internecie,
- us艂ugi terminalowe (Terminal Ser-vices).
Micha艂 Januszek, ASTOR Sp. z o.o.
Dodatkowe informacje
Wi臋cej informacji mo偶na uzyska膰 u autoryzowanego dystrybutora GE Fanuc w firmie ASTOR Sp. z o.o., www.astor.com.pl, tel. (12)428-63-20.
126
Elektronika Praktyczna 8/2002
AUTOMATYKA
Sterowniki
SIMATIC
Firma Siemens zar贸wno na
艣wiecie, jak i w Polsce jest
znana jako dostawca
doskona艂ych rozwi膮za艅
system贸w pomiarowych
i regulacji, a tak偶e
programowanych sterownik贸w
PLC i peryferii niezb臋dnych
do ich pracy. Szybki rozw贸j
technologii spowodowa艂
zwi臋kszenie mo偶liwo艣ci
kolejnych generacji
sterownik贸w PLC,
uproszczenie ich
programowania i obs艂ugi, co
pozwoli艂o w szybkim tempie
wprowadzi膰 je do aplikacji
z grupy popularnych.
Sterowniki starszych generacji
(Simatic S3 i Simatic S5)
nadal pracuj膮 w wielu
zak艂adach produkcyjnych, ale
na rynku niepodzielnie panuj膮
teraz nowoczesne sterowniki
Simatic Sl.
|#rw玧r
mowalne
Coraz wi臋ksze wymagania wsp贸艂czesnych aplikacji z zakresu automatyzacji proces贸w powoduj膮, 偶e sterowniki musz膮 realizowa膰 coraz bardziej skomplikowane algorytmy regulacji, musz膮 je realizowa膰 w coraz kr贸tszym czasie, coraz cz臋艣ciej musz膮 sobie radzi膰 tak偶e z obs艂ug膮 zdarze艅 w czasie rzeczywistym. Wszystkie te cechy Siemens zintegrowa艂 w sterownikach z rodziny Simatic S7, w ramach kt贸rej s膮 dost臋pne trzy grupy o r贸偶nych mo偶liwo艣ciach: X Simatic S7-200, X Simatic S7-300, X Simatic S7-400.
W sk艂ad ka偶dej grupy urz膮dze艅 wchodz膮 r贸偶ne modu艂y peryferyjne oraz jednostki centralne, r贸偶ni膮ce si臋 mi臋dzy sob膮 wydajno艣ci膮, mo偶liwo艣ciami adresowania, a tak偶e mo偶liwo艣ciami komunikacyjnymi.
Rodzina S7-400 jest przeznaczona do automatyzacji du偶ych obiekt贸w, przede wszystkim takich jak: procesy w przemy艣le chemicznym, naftowym, w obs艂udze lotnisk, du偶ych oczyszczalniach 艣ciek贸w, a tak偶e w przemy艣le samochodowym.
Rodzina S7-300 jest stosowana przede wszystkim do automatyzacji linii
wzmacniacz CPU (repeater) CPU
wzmacniacz CPU (repeater)
Rys. 1
32 urz膮dzenia/1200 m
32 urz膮dzenia/1200 m
produkcyjnych we wszystkich dzia艂ach przemys艂u.
Rodzina S7-200 jest przewidziana do automatyzacji maszyn i urz膮dze艅 oraz tworzenia zdecentralizowanych struktur sterowania w ma艂ych obiektach typu przepompownie, oczyszczalnie 艣ciek贸w (automatyzacja poszczeg贸lnych proces贸w i zdecentralizowane sterowanie i komunikacja z systemami nadrz臋dnymi). Urz膮dzenia z grupy S7-200 mo偶na zastosowa膰 r贸wnie偶 do automatyzacji sterowania i kontroli w "inteligentnych" budynkach jedno- i wielorodzinnych. Typowe zastosowania to:
- sterowanie przeno艣nikami ta艣mowymi,
- sterowanie podno艣nikami hydraulicznymi,
- sterowanie maszynami w przemy艣le spo偶ywczym,
- sterowanie grupami nap臋d贸w,
- maszyny pakuj膮ce,
- sterowanie maszyn w przemy艣le budowlanym (maszyny dozuj膮ce, czyszcz膮ce, tn膮ce),
- kontrola i sterowanie wa偶eniem i dozowaniem we wsp贸艂pracy z modu艂ami wagowymi Siwarex,
- systemy odwadniania,
- sterowanie systemami krat, nap臋d贸w i innych w oczyszczalniach 艣ciek贸w oraz sterowanie prac膮 oczyszczalni przydomowych,
- ochrona przeciwpo偶arowa i sterowanie gaszeniem ognia na statkach,
- sterowanie i monitorowanie pracy kot艂owni,
- sterowanie prac膮 pras,
- sterowanie prac膮 urz膮dze艅 zgrzewaj膮cych,
- sterowanie prac膮 urz膮dze艅 stosowanych w przemy艣le drzewnym (tartaki, maszyny do obr贸bki drewna),
Rys. 2
Elektronika Praktyczna S/2002
127
AUTOMATYKA
EM277
J_L
37300
Tab. 1. Mo偶liwo艣ci komunikowania si臋 pomi臋dzy urz膮dzeniami w ramach sieci PPI
Rys. 3
- sterowanie systemami zasilania SZR (system za艂膮czania rezerw),
- sterowanie o艣wietleniem,
- regulacja temperatury,
- sterowanie prac膮 myjni samochodowych,
- kontrola i rozliczenia zu偶ycia energii,
- sterowanie bramami, 偶aluzjami, wentylacj膮 w budynkach.
Dzi臋ki atrakcyjnemu stosunkowi mo偶liwo艣ci do ceny, urz膮dzenia i sterowniki z grupy S7-200 sta艂y si臋 dost臋pne praktycznie dla ka偶dego automatyka, elektryka i elektronika.
Mo偶liwo艣ci komunikacyjne
S7-200
Sie膰 PPI
Wszystkie sterowniki S7-200 wyposa偶one s膮 w port komunikacyjny RS485 i maj膮 wbudowany protok贸艂 PPI do komunikacji mi臋dzy sterownikami i panelami operatorskimi OP w sieci PPI (rys* 1). Panele operatorskie s膮 masierami sieci, natomiast sterowniki mog膮 by膰 konfigu-rowane jako master lub slave. W zwi膮zku z tym w sieci PPI mo偶liwe s膮 struktury muliimasierowe, w przeciwie艅stwie do innych rodzaj贸w sieci. Medium transmisyjnym jest skr臋tka dwu偶y艂owa z ekranem o odpowiednio dobieranych parametrach mechanicznych i falowych. Pr臋dko艣膰 przesy艂u danych wynosi 9,6/ 19,2/187,5 kb/s. Do sieci PPI mo偶na pod艂膮czy膰 nast臋puj膮ce urz膮dzenia: X programatory PG720PII, PG740PIII, PC
RI45 PIH Tower, X komputery PC za pomoc膮 kabla PC/
PPI lub CP5611,
X panel dedykowany TD200 oraz panele operatorskie OP, X sterowniki S7-200,
W sieci PPI mo偶e wymienia膰 dane do 128 urz膮dze艅, przy czym nie wi臋cej ni偶 31 w ka偶dym jej segmencie. Segmenty oddzielone s膮 mi臋dzy sob膮 separatorami logicznymi (repeafer). W ramach jednej sieci mo偶na zastosowa膰 do 9 repeaier贸w. Maksymalna odleg艂o艣膰 pomi臋dzy skrajnymi sterownikami w sieci
Mo偶liwo艣ci pod艂膮cze艅 S7-200
Jeden 0P3 z PPI z kilkoma S7-200 Mo偶liwe jest pod艂膮czenie 2 x S7-200 do jednego 0P3
Kilka 0P3 z PPI do jednego S7-200 Mo偶liwe jest pod艂膮czenie 3 x 0P3 do jednego S7-200
Jeden 0P7 lub 0P17 z PPI do kilku S7-200 Mo偶liwe jest pod艂膮czenie 4 x S7-200 do jednego 0P7/0P17
Kilka 0P17 z PPI do jednego S7-200 Mo偶liwe jest pod艂膮czenie 3 x 0P17 do jednego S7-200
Jeden TD200 do jednego S7-200 Jest To typowe po艂膮czenie TD200 z S7-200
Jeden S7-200 z kilkoma TD200 Mo偶liwe jest pod艂膮czenie 4 x TD200 do jednego S7-200
w jednym segmencie wynosi 1200 m przy pr臋dko艣ci 9,6 kb/s. Sterowniki wyposa偶ono w dwie instrukcje przeznaczone specjalnie do komunikacji przez sie膰 PPI (NETW i NETR).
Wa偶nym parametrem w systemach sterowania jest czas wymiany danych pomi臋dzy uczestnikami sieci. Aby zapewni膰 optymalne czasy przesy艂ania danych pomi臋dzy sterownikami a panelami operatorskimi OP, okre艣lono maksymaln膮 liczb臋 paneli operatorskich OP mo偶liwych do pod艂膮czenia do jednego sterownika S7-200 oraz liczb臋 sterownik贸w, kt贸re mog膮 komunikowa膰 si臋 z jednym panelem. Powy偶sze dane s膮 przedstawione w tab. 1.
Sie膰 MPI
Port komunikacyjny RS485 zintegrowany z S7-200 mo偶e by膰 skonfigurowany do pracy w trybie MPI slave (rys. 2). Pr臋dko艣膰 wymiany danych w tym trybie z innymi uczestnikami sieci wynosi 19,2/187,5 kb/s. W trybie MPI slave S7-200 mo偶e komunikowa膰 si臋 ze sterownikami S7-300 oraz S7-400. Masierem sieci MPI jest sterownik S7-300/400, kt贸ry mo偶e zapisywa膰 i odczytywa膰 dane z S7-200 za pomoc膮 specjalnych instrukcji XPUT i XGET. Sterowniki z grupy S7-200 nie mog膮 w tym trybie pracy komunikowa膰 si臋 ze sob膮 bezpo艣rednio, lecz tylko po艣rednio poprzez S7-300/400.
Sterowniki S7-200 mo偶na pod艂膮czy膰 do sieci MPI r贸wnie偶 poprzez modu艂 EM277, kt贸ry posiada mo偶liwo艣膰 komunikacji jako MPI slave. Do jednego modu艂u EM277 mo偶na pod艂膮czy膰 do 6 urz膮dze艅, przy czym pierwsze po艂膮czenie jest zarezerwowane dla pod艂膮czenia programatora PG, drugie zarezerwowane jest dla panela operatorskiego OP (z wyj膮tkiem OP3). Pozosta艂e cztery po艂膮czenia przeznaczone s膮 dla dowol-
nych urz膮dze艅 komunikuj膮cych si臋 w protokole MPI i mog膮 to by膰 np. sterowniki S7-300/400 (rys. 3). Do jednego sterownika S7-200 mo偶na pod艂膮czy膰 maksymalnie dwa modu艂y EM2 77.
Sie膰 Profibus DP
Za pomoc膮 dodatkowego modu艂u rozszerzenia EM2 77 sterownik S7-200 mo偶e pracowa膰 r贸wnie偶 w sieci Profibus DP (rys. 4) jako urz膮dzenie slave. Masierem sieci Profibus DP mo偶e by膰 sterownik S7-300/400. Maksymalna liczba urz膮dze艅 do艂膮czonych do sieci Profibus DP w zale偶no艣ci od u偶ytego CPU lub procesora komunikacyjnego CP342-5 mo偶e wynosi膰 od 64 do 122. Uczestnikiem takiej sieci jest naturalnie r贸wnie偶 sterownik S7-200, a konkretnie modu艂 EM277. Pr臋dko艣ci w sieci Profibus DP mog膮 by膰 zmieniane w szerokich granicach i wynosz膮 od 9,6 kb/s do 12 Mb/s. W zale偶no艣ci od zastosowanej pr臋dko艣ci r贸偶ni膮 si臋 r贸wnie偶 d艂ugo艣ci dla segment贸w w sieci i wynosz膮 dla 9,6 kb/s - lOOOm i 12 Mb/s - lOOm.
Panele OP w sieci Profibus DP komunikuj膮 si臋 ze sterownikami za pomoc膮 standardowych funkcji S7, kt贸re wprowadzaj膮 ograniczenia na liczb臋 aktywnych po艂膮cze艅. W zwi膮zku z tym nale偶y liczb臋 projektowanych paneli OP dostosowa膰 do liczby dost臋pnych aktywnych po艂膮cze艅 S7.
Sie膰 AS-Interface
Dzi臋ki modu艂owi rozszerze艅 CP243-2 sterownik S7-200 mo偶e pracowa膰 w sieci AS-Interface (rys. 5) jako master sieci. Sie膰 AS-Interface jest sieci膮 znormalizowan膮. Wielu producent贸w wytwarza uk艂ady, urz膮dzenia i elementy pracuj膮ce jako slave sieci AS-Interface. R贸wnie偶 Siemens posiada bogat膮 ofert臋 urz膮dze艅 slave AS-Interface - s膮 to modu艂y wej艣膰-
= *
艢fl
艢3
Rys. 4
128
Elektronika Praktyczna 8/2002
AUTOMATYKA
\
5ranoand sen&a f BERC
Rys. 贸
jest fakt, 艣e transmisja danych i zasilanie intefejs贸w ASi w uczestnikach sieci odbywa si臋 tym samym dwu艣y艂owyrn kablem. Czas odczytu i zapisu danych przez mas艂em CP243-2 dla 62 uczestnik贸w sieci wynosi 10 ms. Ka偶dy z dwustanowych modu艂贸w slave posiada 4 wej艣cia i 4 wyj艣cia binarne. Bior膮c pod uwag臋., 艣e maksymalna liczba uczestnik贸w sieci wynosi 124 (przy zastosowaniu 2 CP243-2 z 1 CPU), maksymalna liczba adresowanych wej艣膰 i wyj艣膰 w sieci AS-Interface wynosi po 496.
Po艂膮czenie typu punkt-punkt
Zintegrowany z CPU port komunikacyjny RS485 mo艣e by膰 r贸wnie偶 skonfigurowany do pracy w trybie swobodnym portu FreePo艅 (rys* 6), tzn. komunikacja i wymiana danych z partnerem mo艣e odbywa膰 sie. za pomoc膮 protoko艂u Modbus. Maksymalna pr臋dko艣膰 przesy艂anych danych wynosi 38,4 kb/s, przy czym dost臋pne s膮 r贸wnie偶 inne pr臋dko艣ci: 600, 1200, 2400, 4800, 9600, 19200 b/s. Przy zastosowaniu kabla PC/PPI istnieje mo偶liwo艣膰 konwersji standardu RS485 na RS232 i dzi臋ki temu w trybie swobodnym portu mo艣na komunikowa膰 si臋 ze wszystkimi urz膮dzeniami, jak np.: drukarki, modemy analogowe i terminal GSM M20, liczniki energii elektrycznej (Modbus) itp. Michat Bereza, Siemens www.siemens.pl/simatic
Rys. 5
wyj艣膰 dwustanowych, analogowych, pneumatycznych, m o to start ery, lampy sygnalizacyjne, modu艂y LOGO! ASi i inne. Maksymalna liczba uczestnik贸w w sieci ASi, kt贸r膮 jest w stanie zaadresowa膰 modu艂 CP243-2 wynosi 62. Do jednego sterownika S7-200 mo艣na jednak do艂膮czy膰 dwa modu艂y CP243-2. Maksy-
malna odleg艂o艣膰 pomi臋dzy masierem a ostatnim uczestnikiem sieci bez zastosowania wzmacniaczy wynosi 100 m. Przy zastosowaniu maksymalnej dopuszczalnej liczby - dw贸ch - repeater贸w, odleg艂o艣膰, na kt贸r膮 mo艣na przesy艂a膰 dane w sieci AS-Interface, wynosi 300 m. Szczeg贸ln膮 w艂asno艣ci膮 sieci AS-Interface
Elektronika Praktyczna S/2002
129
PROJEKTY
Lampowy korektor graficzny
Opisy korektor贸w
graf i czn ych poj膮 wi a艂y si臋 na
艂amach EP ju偶 nieraz. By艂y
to korektory r贸偶nego rodzaju,
ale mo偶na je okre艣li膰 jako
"klasyczne", ho oparte na
p贸艂przewodnikach. Dla
odmiany proponujemy uk艂ad
lampowy, w kt贸rym korekcja
sygna艂贸w audio odbywa si臋
w spos贸b archaiczny, ale
dlatego fascynuj膮cy.
Korektor graficzny budowany wedle tego opisu zawiera zesp贸艂 filtr贸w 艣rodkowoprzepustowych o regulowanej dobroci, kt贸re albo zwieraj膮 do masy sygna艂y o swojej cz臋stotliwo艣ci 艣rodkowej, albo bocznikuj膮 dla tych cz臋stotliwo艣ci obw贸d ujemnego sprz臋偶enia zwrotnego. W pierwszym przypadku nast臋puje t艂umienie sygna艂u, natomiast w drugim podbicie dla tych cz臋stotliwo艣ci. Schemat blokowy ilustruj膮cy zasad臋 dzia艂ania korektora pokazano na rys. 1.
Poniewa偶 zale偶y nam na przenoszeniu sygna艂贸w z pasma cz臋stotliwo艣ci pomi臋dzy 16 Hz a 15000 Hz (a nawet wi臋cej), to oczywiste jest, 偶e filtry nie mog膮 mie膰 du偶ej dobroci. Gdyby filtry
mia艂y zbyt du偶膮 dobro膰 (czyli zbyt du偶膮 selektywno艣膰), nie uda艂oby si臋 kszta艂towa膰 dowolnych charakterystyk korektora - regulacja by艂aby skuteczna tylko dla wybranych cz臋stotliwo艣ci. A chodzi przecie偶 o to, aby mo偶liwa by艂a regulacja w ca艂ym pa艣mie cz臋stotliwo艣ci przenoszonego sygna艂u. Mo偶na to zrealizowa膰 nast臋puj膮co: pogorszy膰 selektywno艣膰 poszczeg贸lnych filtr贸w, aby ich charakterystyki przenoszenia pokrywa艂y si臋 cz臋艣ciowo. Mo偶na w贸wczas uzyska膰 w miar臋 p艂ask膮 char aktery s tyk臋 pr z eno sz eni a.
Jest wi臋c oczywiste, dlaczego korzystnie jest stosowa膰 du偶o filtr贸w - im jest ich wi臋cej, tym wi臋ksze s膮 mo偶liwo艣ci kszta艂towania charakterystyki i w efekcie uzyskanie bardzo p艂askiej charakterystyki przenoszenia. Jako filtr 艣rodkowoprzepustowy nadaje si臋 dobrze szeregowy obw贸d RLC,
WY
WE
Q1 f1
0212
03B
obw贸d ijemnego spiz^偶enia zwiotneao
Rys. 1. Schemat blokowy ilustrujqcy dzia艂anie korektora
14
Elektronika Praktyczna S/2002
Lampowy korektor graficzny
Rys. 2. Szeregowy obw贸d rezonansowy
zbudowany wed艂ug schematu z rys. 2.
Rozpatrzmy prac臋 takiego obwodu. Impedancj臋 (oporno艣膰 zespolon膮) obwodu opisuje wz贸r:
Z=[R2+(coL-l/coC)]1/2 jego cz臋stotliwo艣膰 rezonansow膮:
f=l/2jc(LC)1/2 a dobro膰 obwodu: Q=coL/R
Wz贸r na W jest wzorem przybli偶onym, gdy偶 zak艂ada si臋, 偶e tangens k膮ta stratno艣ci kondensatora C (tg 5) jest r贸wny 0. W naszym przypadku mo偶na za艂o偶y膰, 偶e straty w kondensatorze nie maj膮 znaczenia dla warto艣ci dobroci. Na warto艣膰 rezystancji R sk艂ada si臋 zar贸wno rezystancja cewki, jak i rezystancja do艂膮czonego opornika. Szeroko艣膰 przenoszonego przez obw贸d rezonansowy pasma mo偶na wyznaczy膰 ze wzoru: 2Af= frei/Q
W uk艂adzie wzmacniacza na triodzie, ujemne pr膮dowe sprz臋偶enie zwrotne jest realizowane
WE
w obwodzie katody lampy przez w艂膮czenie rezystora Rk. Bocznikuj膮c ten rezystor filtrem 艣rodkowo-przepustowym, np. szeregowym obwodem RLC, eliminujemy ujemne sprz臋偶enie zwrotne dla sygna艂u o cz臋stotliwo艣ci 艣rodkowej (rezonansowej) filtru. Wskutek tego nast臋puje zwi臋kszenie wzmocnienia uk艂adu dla tej cz臋stotliwo艣ci. Je偶eli warto艣膰 oporno艣ci R w obwodzie RLC b臋dzie regulowana, to mo偶na zmienia膰 dobro膰 obwodu, a tym samym zmienia膰 warto艣膰 wzmocnienia.
Je艣li filtr zostanie w艂膮czony mi臋dzy anod臋 a mas臋 uk艂adu wzmacniaj膮cego (rys. 3), to b臋dzie zwiera艂 do masy sygna艂y o cz臋stotliwo艣ci r贸wnej i bliskiej cz臋stotliwo艣ci rezonansowej. Spowoduje to zmniejszanie udzia艂u sk艂adowych o tych cz臋stotliwo艣ciach w sygnale wyj艣ciowym. T艂umienie mo偶na regulowa膰 tak jak poprzednio - zmieniaj膮c warto艣膰 rezystancji w obwodzie RLC. Pewna wada uk艂adu jest zwi膮zana z konieczno艣ci膮 zastosowania element贸w indukcyjnych, kt贸rych wykonanie mo偶e by膰 nieco k艂opotliwe.
OEa
>WY
WYKAZ ELEMENT脫W
Rezystory
P1...P4: lOkfl, potencjometry
monta偶owe
P5...P14: 2,2kn, potencjometry
monta偶owe
P15....P24 10kn, potencjometr
logarytmiczny
R2, R12: 100Q/0,6W
R3, R4, R13, R14: 5,6kn/0,6W
R5, R6, R15, R16: 100kQ/0,4W
R7, R17: 100kQ/0,6W
R8, R18: 10kQ/0,6W
R9, R19: 1MQ/O,脫W
RIO, R20: 2/2kO/0/6W
Kondensatory
CL C12, C14, C15, C23, C25:
100nF/400V
C2, C3, C贸, Cl贸, C17, C20:
l|iF/250V
CA, C18: 6,8|iF/250V
C5, C19: 2,2|iF/250V
C7, C21: 150nF/250V
C8, C22: 100nF/250V
C9, C27: L5nF/400V
CIO, C26: 100^F/350V
Cli: 100jiF/400V
P贸艂przewodniki
Ml: mostek prostowniczy 1A/8OOV
R贸偶ne
LL L2: lampy ECC 81 + podstawki
10 prze艂膮cznik贸w trzybi egu nowych
1 w艂膮cznik dwupozycyjny
Bl: bezpiecznik 500mAT
B2: bezpiecznik 200mAT
transformatory i cewki wg opisu
Schemat elektryczny uk艂adu korektora przedstawiono na rys. 4. Potencjometry monta偶owe P1...P4 w艂膮czone w obwodach katod i anod umo偶liwiaj膮 wyr贸wnanie asymetrii t艂umienia tak, aby regulacja by艂a skuteczna w granicach 膮12 dB (poziom wzgl臋dny). Po-
-OEa
Cs
WE
>WY
Rk
Rys. 3. Mo偶liwe konfiguracje w艂膮czenia filtru w obwodzie wyj艣ciowym wzmacniacza
Tab. 1. Warto艣ci parametr贸w element贸w filtr贸w korektora graficznego
Cz臋stotliwo艣膰 艣rodkowa [Hz] Indukcyjno艣膰 [mH] Pojemno艣膰 [|iF] Liczba zwoj贸w Przenika Ino艣膰 rdzenia [AL]
60 703 10 890 800
170 248 3,5 310 800
310 136 1,9 170 800
600 70,3 1 90 800
1000 42,1 0,6 53 800
3000 14,1 0,2 224 63
6000 7 0,1 115 63
12000 3,5 0,05 56 63
14000 3 0,042 39 63
16000 2,6 0,037 22 63
Elektronika Praktyczna 8/2002
15
Lampowy korektor graficzny
tencjometry monta偶owe P5...P14, w艂膮czone w obwody filtr贸w, s艂u偶膮 do ustalania ich dobroci na poziomie Q=4. Prze艂膮czniki s艂u偶膮 do w艂膮czania odpowiednich filtr贸w mi臋dzy mas臋 a katod臋 lub mi臋dzy mas臋 a anod臋 lampy. Nie jest to mo偶e najlepsze rozwi膮zanie, ale lepszego nie wymy艣li艂em. Mo偶na by unikn膮膰 stosowania prze艂膮cznik贸w, lecz konieczne sta艂oby si臋 w贸wczas zastosowanie tylu lamp,
Rys. 4. Schemat elektryczny korektora
ile jest filtr贸w. Uk艂ad mo偶na rozbudowa膰, stosuj膮c wi臋cej filtr贸w.
Kondensatory C9 i C27, w艂膮czone w obwody katod "pierwszych" triod zapobiegaj膮 wzbudzaniu si臋 uk艂adu, co mia艂o miejsce w prototypowej wersji urz膮dzenia (zmontowanej pr贸bnie "w powietrzu"). Uk艂ad z drug膮 lamp膮 jest wt贸rnikiem katodowym, kt贸ry nie wprowadza wzmocnienia napi臋ciowego (ku=lv/v), charakteryzuje si臋 natomiast niewielk膮 impedancj膮 wyj艣ciow膮 i bardzo du偶膮 wej艣ciow膮. Zadaniem tego wt贸rnika jest odseparowanie zespo艂u filtr贸w od wyj艣cia uk艂adu. W korektorze zastosowa艂em lamp臋 ECC81, kt贸rej rozk艂ad wyprowadze艅 przedstawiono na rys. 5.
Monta偶
i uruchomienie
Podczas monta偶u korektora, opr贸cz typowych k艂opot贸w zwi膮zanych z monta偶em mechanicznym podzespo艂贸w i wykonaniem obudowy, najwi臋ksze problemy mo偶e sprawi膰 wykonanie element贸w indukcyjnych. Cewki nawija艂em na rdzeniach kubkowych o przenikal-no艣ci AL=800. W tab. 1 zamieszczono najwa偶niejsze wytyczne dotycz膮ce liczby zwoj贸w poszczeg贸lnych cewek.
Warto艣ci pojemno艣ci kondensator贸w zastosowanych w uk艂adzie r贸偶ni膮 si臋 od podanych w tab. 1. Wynika to z faktu dobierania tych warto艣ci "na s艂uch" przy braku mo偶liwo艣ci wyznaczenia dok艂adnej warto艣ci indukcyjno艣ci nawini臋tych cewek. Z tego wzgl臋du nieco inne ni偶 obliczone s膮 tak偶e cz臋stotliwo艣ci 艣rodkowe filtr贸w, co jednak nie ma du偶ego wp艂ywu na dzia艂anie korektora.
Filtry i wszystkie potencjometry monta偶owe zosta艂y zamocowane na oddzielnej p艂ytce drukowa-
16
Elektronika Praktyczna 8/2002
Lampowy korektor graficzny
ECC81
Fceirtr
Rys. 5. Rozk艂ad wyprowadze艅 lampy ECC81
nej, co by艂o zwi膮zane z trudno艣ci膮 zamocowania cewek bezpo艣rednio na metalowej podstawie korektora.
Transformator zasilaj膮cy powinien mie膰 napi臋cie wyj艣ciowe oko艂o 200 VAC (dla zasilania obwodu anodowego) przy pr膮dzie 50 mA i napi臋cie 6,3 V (dla zasilania obwodu 偶arzenia) przy pr膮dzie 1A (ze sporym zapasem). W egzemplarzu modelowym zastosowa艂em transformator sieciowy TS30/1/676, zdemontowany ze starego odbiornika lampowego. Transformator z mostkiem pros-
towniczym i filtrem zasilacza umieszczony jest na p艂ytce drukowanej. Zasilacz warto zaekrano-wa膰 pude艂kiem z blachy z mi臋kkiego 偶elaza (ekran magnetyczny) - u偶y艂em w tym celu obudowy od starego zasilacza PC.
Korektor zosta艂 zamontowany na podstawie z blachy 偶elaznej
0 grubo艣ci 1,5 mm, d艂ugo艣ci 550 mm, szeroko艣ci 200 mm i wysoko艣ci 60 mm (rys. 6). P艂ytka drukowana (o wymiarach 200 x 135 mm) z filtrami jest zamocowana na czterech 艣rubach od spodu podstawy. Nie podaj臋 mozaiki 艣cie偶ek p艂ytek (wykonanych zreszt膮 r臋cznie), gdy偶 nie s膮 one skomplikowane, przy tym zale偶ne od posiadanych rdzeni ferrytowych i transformatora.
Nale偶y pami臋ta膰 o dobrym ekranowaniu po艂膮cze艅 filtr贸w z pozosta艂ymi fragmentami uk艂adu
1 po艂膮czenia z mas膮 jednego z przewod贸w 偶arzenia - zapobiegnie to przyd藕wi臋kowi sieci i paso偶ytniczym sprz臋偶eniom. Aleksander Zawada
a leksan de r_zawada@ poczta.onet.pl
Elektronika Praktyczna 8/2002
17
PROJEKTY
Uk艂ad prognozuj膮cy przymrozki
Cyfrowy miernik temperatury i wilgotno艣ci
S膮siad posadzi艂 w艂a艣nie
pomidory. Zaniepokojony
rozgl膮da si臋 i zastanawia,
czy w nocy b臋dzie
przymrozek? Mo偶na mu
zaproponowa膰, aby uda艂 si臋
do panny Trelawney z pro艣b膮
o przepowiedni臋. Wiemy
jednak, 偶e ju偶 Dumbledore
twierdzi艂, 偶e przepowiadanie
przysz艂o艣ci to bardzo ma艂o
艣cis艂a dziedzina magii,,.
Spr贸bujmy wi臋c inaczej. Co dzieje si臋 po zachodzie S艂o艅ca? Ciep艂o jest z Ziemi wypromienio-wywane i temperatura powietrza obni偶a si臋. Im ch艂odniejsze powietrze, tym mniej wody mo偶e si臋 w nim utrzyma膰. Gdy temperatura obni偶y si臋 do tak zwanego punktu rosy, zaczyna si臋 wykiapla膰 woda i pojawia si臋 rosa lub mg艂a. Podczas skraplania pary wydzielane jest tak du偶o ciep艂a, 偶e dalszy spadek temperatury jest ju偶 bardzo powolny. Gdyby艣my znali temperatur臋 punktu rosy, mogliby艣my, w my艣l zasady, 偶e ka偶da
rozwini臋ta technologia jest nieod-r贸偶nialna od magii, zast膮pi膰 pann臋 Trelawney.
Broni do stoczenia bitwy z tym problemem dostarcza nam fizykochemia. Znaj膮c temperatur臋, mo偶na obliczy膰 pr臋偶no艣膰 pary wodnej w tej temperaturze, a z niej mas臋 wody, kt贸r膮 mo偶e utrzyma膰 powietrze. Je艣li dodatkowo zmierzymy wilgotno艣膰 wzgl臋dn膮, b臋dziemy mogli obliczy膰, ile gram贸w wody jest w metrze sze艣ciennym powietrza. Post臋puj膮c niejako w odwrotnym "kierunku", mo偶na obliczy膰 temperatur臋, w kt贸rej po-
Zintegrowane czujniki wilgotno艣ci i temperatury firmy Sensirion s膮 elementami, na kt贸re czeka艂o wielu elektronik贸w, zw艂aszcza tych, kt贸rzy zajmuj膮 si臋 projektowaniem urz膮dze艅 do system贸w
automatyki i klimatyzacji.
Digital 2-wlrs Interfon
SCK f DATA
GND
VDD
W niewielkiej obudowie producent zintegrowa艂 czujnik temperatury, czujnik wilgotno艣ci, 14-bitowy przetwornik A/C z dwoma wej艣ciami pomiarowymi, pami臋膰 nastaw kalibra-cyjnych, a tak偶e interfejs komunikacyjny, kt贸ry przypomina zasad膮 dzia艂ania I C (lecz nie jest z nim zgodny).
Elektronika Praktyczna S/2002
Uk艂ad prognozuj膮cy przymrozki
List 1. Obs艂uguj膮 transmisji
danych z czujnika SHT11
Sasm
'Pro cedura pomiaru temperatury
setb Sda
'Ini cjalizacj a transmisj i
clr CLK
nop
setb Clk
nop
clr Sda
nop
clr Clk
nop
setb Clk
nop
setb Sda
nop
clr Clk
nop
nop
clr Sda
TfLOV E, #6
'Tra ismituj szesc zer
Temp eratura:
setb Clk
nop
clr Clk
djnz E,Temperatura
'Rozkaz pomiaru temperatury
setb Sda
nop
setb Clk
nop
clr Clk
nop
setb Clk
nop
clr Clk
nop
setb Clk
'ACK
nop
clr Clk
Send Asm
Wait ms 2 50
Sasm
setb Clk
'Opu sc dwa bity
nop
clr Clk
nop
setb Clk
nop
clr Clk
mov DPH, #0
mov E, #6
Pierwszy:
'Czytaj 6 bit贸w
TfLOV C, Sda
mov A, DPH
rlc A
mov DPH, A
setb CLK
nop
nop
clr Clk
djnz E, Pierwszy
clr Sda
'ACK
nop
setb Clk
nop
clr Clk
nop
setb Sda
mov DPL, #0
'Czytaj 8 bit贸w
mov E, #8
Drugi:
mov C, Sda
mov A, DPL
rlc A
mov DPL, A
setb Clk
nop
nop
clr Clk
djnz E, Drugi
setb Sda
nop
'Not ACK
setb Clk
nop
clr Clk
mov {Msb), DPH
mov {Lsb), DPL
Send Asm
OX2
Rys. 1. Schemat elektryczny przewidywacza przymrozk贸w
wietrze nie mo偶e ju偶 utrzyma膰 zawartej w nim wody, a wi臋c temperatur臋 rosy. Jest ma艂o prawdopodobne, aby temperatura w nocy spad艂a poni偶ej punktu rosy. Istnieje, co prawda, mo偶liwo艣膰, 偶e p贸艂nocny wiatr przywieje arktycz-ne powietrze znad bieguna, ale na szcz臋艣cie, p贸艂nocne wiatry nie s膮 u nas cz臋ste.
Opis uk艂adu
Do pomiaru temperatury i wilgotno艣ci wzgl臋dnej zastosowa艂em czujnik SHTll firmy Sensirion. Element ten zawiera w swojej strukturze czujnik temperatury, czujnik wilgotno艣ci, 14-bitowy przetwornik AC, pami臋膰 zawieraj膮c膮 tabele kalibracyjne obu czujnik贸w oraz interfejs szeregowy. Ka偶dy egzemplarz jest fabrycznie kalibrowany w komorze o standaryzowanej temperaturze i wilgotno艣ci, a wsp贸艂czynniki kalibracyjne wpisywane s膮 do pami臋ci OTP czujnika i u偶ywane do korygowania odczyt贸w sensor贸w. W rezultacie otrzymujemy bardzo wysok膮 dok艂adno艣膰 i powtarzalno艣膰 pomiar贸w.
Schemat elektryczny (rys. l) miernika jest typow膮 aplikacj膮 mikrokontrolera AT89C4051 po艂膮czonego z alfanumerycznym wy艣wietlaczem ciek艂okrystalicznym i nie wymaga komentarza. Nale偶y tylko wspomnie膰, 偶e do prawid艂owej komunikacji na szynie szeregowej niezb臋dne s膮 rezystory podci膮gaj膮ce. "Podci膮gi" zawarte w strukturze mikrokontrolera nie s膮 wystarczaj膮ce.
Jak we wszystkich uk艂adach mikrokontrolerowych, ca艂a jego "m膮dro艣膰" jest zawarta w programie. Komunikacja z czujnikiem zrealizowana jest za pomoc膮 dw贸ch linii: linii zegarowej CLK i linii danych SDA. Interfejs jest podobny do PC, ale - niestety -nie jest z nim identyczny. Szczeg贸艂owy opis protoko艂u znajduje si臋 w nocie aplikacyjnej do艂膮czanej do czujnika (mo偶na j膮 tak偶e 艣ci膮gn膮膰 ze strony www.sensirion.com).
Dla zainicjowania transmisji wysy艂ana jest sekwencja startowa. W tym celu mikrokontroler ustawia na obu liniach poziom wysoki, nast臋pnie ustawia poziom
Elektronika Praktyczna 8/2002
Uk艂ad prognozuj膮cy przymrozki
niski na linii SD A, po czym nast臋puje wyzerowanie i ponowne ustawienia linii CLK i ustawienie linii SD A. Sekwencj臋 startow膮 ko艅czy wyzerowanie linii CLK. Nast臋pnie przesy艂any jest adres czujnika. Ma on wy艂膮cznie adres 000, nie mo偶na wi臋c pod艂膮czy膰 do szyny wi臋cej ni偶 jednego czujnika. Kolejne 5 bit贸w jest rozkazem pomiaru: 00011 dla temperatury i 00101 dla wilgotno艣ci. Czujnik potwierdza odbi贸r rozkazu przez wymuszenie poziomu niskiego na linii SD A na jeden okres sygna艂u zegarowego. Mikro-kontroler powinien teraz zatrzyma膰 wysy艂anie impuls贸w zegarowych na czas pomiaru. Wed艂ug danych producenta pomiar mo偶e trwa膰 210ms, wi臋c dla bezpie-
WYKAZ ELEMENT脫W
Rezystory
Rl, R2: 10kO
R3: 10kO potencjometr
miniaturowy
Kondensatory
Cl, C2: 33pF
C3: 10|iF/16V
C4: 100^F/16V
C5: 22|iF/16V
C贸, C7: lOOnF
P贸艂przewodniki
IC1: AT89C4051 zaprogramowany
IC2: 78L05
R贸偶ne
Rezonator kwarcowy 12MHz
Czujnik SHT11
Wy艣wietlacz alfanumeryczny LCD
16*1
Z艂膮cze ARK 2/500 3.5mm
Podstawka DIP20 precyzyjna
cze艅stwa mikrokontroler czeka 2 50ms. Nast臋pnie mikrokontroler wznawia impulsy zegarowe i odczytuje dwa bajty danych. Wyniki pomiar贸w transmitowane s膮 od najbardziej znacz膮cego bitu [MSB first) i wyr贸wnywane do prawego bitu w bajcie. Mikrokontroler potwierdza odbi贸r pierwszego bajtu przez wymuszenie poziomu niskiego na linii SDA na jeden okres zegarowy. Je艣li nie korzystamy z sumy kontrolnej, mikrokontroler powinien zako艅czy膰 transmisj臋 przez pozostawienie linii SDA na poziomie wysokim na jeden okres zegarowy. Fragment programu obs艂uguj膮cy transmisj臋 napisa艂em w asemblerze - mo偶na go przeanalizowa膰 na list. 1.
Nast臋pnie obliczana jest temperatura. Analogicznie jest odczytywany wynik pomiaru wilgotno艣ci i obliczana wilgotno艣膰 wzgl臋dna z uwzgl臋dnieniem korekcji temperaturowej. Procedura ta jest szczeg贸艂owo opisana w nocie aplikacyjnej czujnika. Po wy艣wietleniu wynik贸w mikrokontroler przyst臋puje do obliczania punktu rosy. I tu pojawi艂 si臋 problem: zabrak艂o pami臋ci programu w uk艂adzie 89C4051 (z tej samej przyczyny procedur臋 komunikacji z czujnikiem napisa艂em w asemblerze). Poniewa偶 nie ma sensu stosowanie "wi臋kszego" mikrokontrolera dla stosunkowo prostego zadania, zastosowa艂em rozwi膮zanie kompromisowe polegaj膮ce na obliczeniu warto艣ci funkcji na PC, stabelary-zowaniu ich i umieszczeniu w pami臋ci mikrokontrolera. I tu pojawi艂 si臋 kolejny problem. Kompilator nie chcia艂 przyj膮膰 tak du偶ej tablicy
danych. Zmusi艂o mnie to do podzielenia tablicy na 10 cz臋艣ci. Jest to rozwi膮zanie skrajnie nieelegan-ckie, ale skuteczne.
Monta偶 i uruchomienie
Uk艂ad zosta艂 zmontowany na p艂ytce uniwersalnej AVT-2504. Poniewa偶 nie podoba艂o mi si臋 umieszczenie wy艣wietlacza od strony 艣cie偶ek, jak to przewidzia艂 autor "uniwersalki", pod艂膮czy艂em wy艣wietlacz tasiemk膮 i zamontowa艂em go na tulejkach dystansowych od strony element贸w. Miernik nie wymaga uruchamiania. Jedyn膮 niezb臋dn膮 czynno艣ci膮 jest ustawienie kontrastu wy艣wietlacza. Na wy艣wietlaczu pojawiaj膮 si臋 kolejno: temperatura, wilgotno艣膰 wzgl臋dna i temperatura rosy. Oczywi艣cie, dla zwi臋kszenia czytelno艣ci mo偶na zastosowa膰 wy艣wietlacz dwu- lub nawet cztero-liniowy. Pawe艂 Paw艂owicz
Literatura:
1. SHTlx Humidity and Temperatur臋 Sensmitter, Sensirion 2002.
2. Dewpoint Calculation, Sensirion 2001.
3. G.D. Roth, Pogoda i Klimat, Bertelsmann Sp. z o.o, Warszawa 2000.
4. K.Pigo艅, Z.Ruziewicz, Chemia Fizyczna, PWN Warszawa 1980.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/sierpienO2.htm oraz na p艂ycie CD-EP08/2002B w katalogu PCB.
Elektronika Praktyczna 8/2002
21
PROJEKTY
Bezprzewodowy sterownik w臋偶a 艣wietlnego
AVT-5077
Temat wydaje si臋 banalny,
ale jego realizacja ju偶 nie:
jest to bowiem programowany
sterownik w臋偶a 艣wietlnego,
kt贸ry wsp贸艂pracuje
z modu艂ami wykonawczymi
drog膮 radiow膮. Niebanalne,
funkcjonalne i do tego
niezwykle bezpieczne
rozwi膮zanie!
Sterowniki efekt贸w 艣wietlnych mog膮 mie膰 r贸偶n膮 budow臋. Najprostsze uk艂ady zbudowane s膮 w oparciu o tranzystory, w bardziej z艂o偶onych stosuje si臋 uk艂ady cyfrowe (bramki czy rejestry przesuwaj膮ce), a w najbrdziej rozbudowanych pami臋ci EPROM. Uk艂ady zbudowane z rejestr贸w przesuwaj膮cych umo偶liwiaj膮 uzyskanie niewielkiej liczby sekwencji 艣wietlnych. Znacznie lepiej jest w przypadku zastosowania pami臋ci r贸wnoleg艂ej, gdy偶 liczba uzyskanych efekt贸w jest ograniczona jedynie jej pojemno艣ci膮. Powstaje jednak problem z programowaniem takiej pami臋ci, poniewa偶 wymagany jest odpowiedni programator. W przypadku pami臋ci EPROM zmiana wcze艣niej zapisanego programu wymaga u偶ycia specjalnego kasownika ultrafioletowego. R贸w-
nie偶 swobodny wyb贸r poszczeg贸lnych program贸w wymaga du偶ej liczby uk艂ad贸w steruj膮cych t膮 pami臋ci膮.
W sterowniku przedstawionym w artykule zdecydowano si臋 na zastosowanie mikroprocesora, co pozwala na 艂atw膮 obs艂ug臋 ca艂ego urz膮dzenia za pomoc膮 niewielkiej klawiatury, a sterowaniem do艂膮czonych uk艂ad贸w zajmuje si臋 oprogramowanie zawarte w pami臋ci procesora.
Sterownik pozwala na zapisanie 100 program贸w, a ka偶dy z nich mo偶e zawiera膰 do 80 krok贸w. Wszystkie sekwencje 艣wietlne zapisywane s膮 w szeregowej pami臋ci typu EEPROM, co umo偶liwia swobodne ich programowanie na docelowej p艂ytce sterownika bez konieczno艣ci wyjmowania uk艂adu pami臋ci z podstawki. Oprogramowanie
Elektronika Praktyczna S/2002
23
Bezprzewodowy sterownik w臋偶a 艣wietlnego

s oau
a mu
L 3Ob
B KJU
ti nja
t- sau


i oo/i





5 Kfti
Y ETJU
z eou


sHiiUpiii iiL
8 CC CC 11IC 偶L=!".". "_
9SS

LOGO
Rys. 1. Schemat elektryczny modu艂u sterownika w臋偶a 艣wietlnego
pozwala na 艂膮czenie kilku zapisanych wcze艣niej program贸w efekt贸w 艣wietlnych w jeden mak-roprogram. Wyb贸r opcji jest dokonywany za pomoc膮 czterech klawiszy funkcyjnych z intuicyjnego menu. Dodatkowe klawisze umo偶liwiaj膮 szybkie wybieranie jednego z o艣miu makroprogram贸w poprzez naci艣ni臋cie tylko jednego klawisza.
Pr臋dko艣膰 odtwarzanych sekwencji 艣wietlnych mo偶e by膰 zmie-
niana cyfrowo (za pomoc膮 klawiszy) w zakresie od 100 ms do 25 sekund.
Sterownik sk艂ada si臋 z dw贸ch modu艂贸w - modu艂u sterownika z procesorem i wy艣wietlaczem oraz modu艂u wykonawczego. Modu艂 wykonawczy umo偶liwia bezpo艣rednie sterowanie 偶ar贸wkami 220V. Jako uk艂ady wyj艣ciowe zastosowano triaki - bez radiator贸w mog膮 sterowa膰 偶ar贸wkami o mocy do 200W.
Obydwa modu艂y komunikuj膮 si臋 ze sob膮 za pomoc膮 fal radiowych. Takie rozwi膮zanie gwarantuje pe艂n膮 izolacj臋 galwaniczn膮 mi臋dzy obydwoma modu艂ami, co jest bardzo wa偶ne przy obs艂udze urz膮dze艅 pracuj膮cych pod napi臋ciem sieci. Ponadto, zastosowanie 艂膮czno艣ci radiowej umo偶liwia swobodne umiejscowienie sterownika i ca艂kowicie bezpieczn膮 zdaln膮 obs艂ug臋 w臋偶a.
Budowa i dzia艂ania
Sterownik zbudowany jest na dw贸ch p艂ytkach: p艂ytce w艂a艣ciwego sterownika oraz p艂ytce uk艂adu wykonawczego. Na rys. 1 przedstawiono schemat elektryczny modu艂u steruj膮cego w臋偶em 艣wietlnym. Ze wzgl臋du na z艂o偶ono艣膰 realizowanych funkcji do sterowania zosta艂 wykorzystany mikroprocesor USl.
Uk艂ad PIC16F874 jest du偶ym "bratem" rodziny uk艂ad贸w PICl6F87x. Zawiera w swojej strukturze 4k s艂贸w pami臋ci programu typu Flash. Pod wzgl臋dem budowy wewn臋trznej jest identyczny z opisywanym w EP6/02 uk艂adem PIC16F873. Uk艂ad PIC16F874 posiada jedynie wi臋ksz膮 liczb臋 port贸w, dzi臋ki czemu mamy do dyspozycji o艣miowej-艣ciowy przetwornik A/C a nie pi臋ciowej艣ciowy jak w uk艂adzie PIC16F873. Procesory z serii 16F87x, umieszczone w obudowach 40-n贸偶kowych, maj膮 port r贸wnoleg艂y umo偶liwiaj膮cy komunikacj臋 z innymi uk艂adami w spos贸b podobny do komunikacji z pami臋ci膮 r贸wnoleg艂膮, z wykorzystaniem sygna艂贸w odczytu (RD) i zapisu (WR). Jak wszystkie uk艂ady PIC mo偶e pracowa膰 ze zewn臋trznym sygna艂em zegarowym wytworzonym po do艂膮czeniu element贸w RC lub rezonatora kwarcowego.
W sterowniku zastosowano rezonator kwarcowy X wraz z kondensatorami C5 i C6. Obw贸d zerowania procesora po w艂膮czeniu zasilania jest wykonany za pomoc膮 uk艂adu DS1813. Sterownik jest wyposa偶ony w osiem diod 艣wiec膮cych oraz wy艣wietlacz alfanumeryczny, co pozwala na monitorowanie jego pracy oraz u艂atwia programowanie.
Diody 艣wiec膮ce do艂膮czone s膮 do portu RB i 艣wiec膮 zgodnie
Elektronika Praktyczna 8/2002
Bezprzewodowy sterownik w臋偶a 艣wietlnego
CON殴
Rys. 2. Schemat elektryczny modu艂u wykonawczego
z zaprogramowan膮 sekwencj膮 (programowanie zostanie om贸wione w dalszej cz臋艣ci artyku艂u). Do portu RB do艂膮czone s膮 r贸wnie偶 wej艣cia D1...D8 uk艂adu U3.
Jak wcze艣niej wspomniano, do komunikowania si臋 sterownika z modu艂em wykonawczym zastosowano 艂膮cze radiowe pracuj膮ce w pa艣mie 433MHz. Poniewa偶 bezpo艣rednia transmisja sygna艂贸w jest nara偶ona na zak艂贸cenia, do zabezpieczenia przed b艂臋dami transmisji zastosowano uk艂ad UM375 8-108 b臋d膮cy koderem/dekoderem szyfruj膮cym dane pobierane z wej艣膰 danych D1...D8 oraz wej艣膰 adresowych A1..A10. Uk艂ad ten mo偶e pracowa膰 jako koder lub jako dekoder. Wbudowany oscyloskop wymaga zewn臋trznego obwodu RC (elementy Rl i C7).
W nadajniku ten uk艂ad pracuje jako koder, gdy偶 jego wej艣cie steruj膮ce MOD臉 jest zwarte do
plusa zasilania. Dane pojawiaj膮ce si臋 na wyj艣ciach portu RB procesora s膮 wy艣wietlane na diodach D1...D8 w celu lokalnej wizualizacji oraz kierowane do uk艂adu kodera U3. Uk艂ad U3 wysy艂a je szeregowo z wyj艣cia TRO (poprzez rezystor R2) do wej艣cia nadajnika radiowego Q. Transmisja danych mo偶e by膰 jednak blokowana przez procesor za pomoc膮 tranzystora T. Je艣li transmisja ma by膰 wstrzymana, procesor wystawia na port RC.7 jedynk臋 logiczn膮, powoduj膮c膮 przewodzenie tranzystora, a tym samym zwarcie do masy wej艣cia nadajnika radiowego. Do masy jest zwierane r贸wnie偶 wyj艣cie TRO uk艂adu kodera U3, lecz rezystor R2 chroni to wyj艣cie przed przeci膮偶eniem. Do komunikowania z u偶ytkownikiem zosta艂 zastosowany dwu-liniowy wy艣wietlacz alfanumeryczny, na kt贸rym wy艣wietlane s膮
wszystkie komunikaty w czasie przegl膮dania programowania oraz podczas normalnego u偶ytkowania. Wy艣wietlacz pod艂膮czony jest do wyprowadze艅 portu RA i RE procesora. Potencjometr P umo偶liwia dobranie kontrastu wy艣wietlacza.
Wszelkie nastawy parametr贸w sterownika s膮 wykonywane za pomoc膮 klawiatury. Klawiatura zosta艂a podzielona na dwie cz臋艣ci. Cztery klawi sze funkcyjne S9...S12, s艂u偶膮ce do obs艂ugi i wyboru opcji sterownika, do艂膮czone s膮 do portu RC. Druga cz臋艣膰 klawiatury, sk艂adaj膮ca si臋 z klawiszy S1...S8, zosta艂a do艂膮czona do portu RD. Klawisze te s艂u偶膮 do zmiany stan贸w programowanych sekwencji 艣wietlnych oraz do wyboru wykonywanego programu.
Porty RC oraz RD procesora, wykorzystane do obs艂ugi klawiatury, s膮 skonfigurowane jako wej-
Elektronika Praktyczna 8/2002
25
Bezprzewodowy sterownik w臋偶a 艣wietlnego
?
oooa
IOOOOOOOO DIRP3
o
D
OOOO 8Q

O
"W
o

oooooooooooooooooood
flflflflflflfl999999C99
O
loioioioioioo 'lolol
0 0 ???????!!?? "W
o o Ul
lotoioooiololi ilolo
U3
I O O O O OOOOOOOOOOOOOOOO
.. O-TR3T-O ,________________
. IO O O O O O O O OIRP2 O O
*-------------------------------------n.Q
OO OOOOOOOi lOO
o-OD-o
TOoOi
o o
ii u
xy'
o
li U
o I I o
CII
R2
o
o
o
o 贸
C0N1
D
Rys. 3. Rozmieszczenie element贸w na p艂ytce drukowanej sterownika w臋偶a 艣wietlnego
艣cia, dlatego wymagane s膮 rezystory podci膮gaj膮ce [pull-up), w uk艂adzie sieci rezystor贸w RPl i RP2.
Sterownik w臋偶a 艣wietlnego umo偶liwia zaprogramowanie 100 efekt贸w 艣wietlnych, ka偶dy program mo偶e zawiera膰 do 80 krok贸w. Do tak du偶ej liczby danych wymagana jest pami臋膰 o du偶ej pojemno艣ci. Do przechowywania program贸w najlepiej nadaje si臋 szeregowa pami臋膰 EEPROM. Jej du偶膮 zalet膮 jest mo偶liwo艣膰 komunikacji za pomoc膮 magistrali PC, zajmuj膮cej tylko dwa wyprowadzenia procesora. W uk艂adzie zastosowano pami臋膰 typu AT24C64 o pojemno艣ci 8192 bajt贸w, kt贸ra zosta艂a niemal w pe艂ni wykorzystana.
Do zasilania uk艂adu zastosowano stabilizator napi臋cia 5V typu LM7805 z kondensatorami filtruj膮cymi C1...C4.
Schemat elektryczny modu艂u wykonawczego przedstawiono na rys. 2. Odbiera on sygna艂y radiowe i na ich podstawie odpowiednio steruje diodami 艣wiec膮cymi oraz triakami. Sygna艂 radiowy jest odbierany przez odbiornik radiowy US3, a po przekszta艂ceniu do postaci cyfrowej jest przekazywany na wej艣cie RXI uk艂adu USl.
Uk艂ad UM3758-108A, pracuj膮cy jako dekoder (wej艣cie MOD臉 zwarte do masy), por贸wnuje odbierane dane z adresami ustawionymi na wej艣ciach A1...A10; je艣li dwa kolejno odebrane pakiety zawieraj膮 poprawny adres, to na wyj艣cia danych D1...D8 zostanie przepisana warto艣膰 danych wystawionych
na wej艣cia D1...D8 w module nadajnika. Wyj艣cia D1...D8 posiadaj膮 wewn臋trzny zatrzask, dlatego stan tych wyj艣膰 jest "pami臋tany" do momentu wyst膮pienia kolejnej prawid艂owej transmisji.
Z wyj艣膰 D1...D8 dane s膮 przekazywane do wzmacniaczy pr膮dowych zawartych wewn膮trz uk艂adu US2. Uk艂ad ten zawiera osiem tranzystor贸w o maksymalnym pr膮dzie obci膮偶enia r贸wnym 5 00mA. Po wzmocnieniu sygna艂y steruj膮ce zasilaj膮 diody 艣wiec膮ce D1...D8 oraz diody zawarte wewn膮trz op-totriak贸w U1...U8. Diody 艣wiec膮ce wy艣wietlaj膮 stany wyst臋puj膮ce na wyprowadzeniach portu RB w module sterownika. Optotriaki steruj膮 w艂a艣ciwymi uk艂adami wykonawczymi, czyli triakami Ql...Q8. Na z艂膮czach CON2...CON9 otrzymujemy sygna艂y do bezpo艣redniego sterowania 偶ar贸wkami na napi臋cie 220V.
Zasilanie modu艂u wykonawczego zrealizowano w oparciu o transformator T. Na jego uzwojeniu wt贸rnym otrzymujemy napi臋cie oko艂o 7V, kt贸re po wyprostowaniu przez mostek prostowniczy i wst臋pnym wyg艂adzeniu przez kondensatory Cl i C2 trafia na wej艣cie stabilizatora US4. Na wyj艣ciu tego stabilizatora otrzymujemy napi臋cie 5V.
Monta偶 i uruchomienie
Monta偶 rozpoczynamy od modu艂u sterownika (schemat monta偶owy pokazano na rys. 3). Najpierw montujemy rezystory, nast臋pnie podstawki pod uk艂ady scalone oraz kondensatory. Kon-
WYKAZ ELEMENT脫W
Nadajnik Rezystory
Rl: lOOkO
R2: l,5kQ
R3: 4,7kn
RPL RP2: 8xl0kQ
RP3: 8x4700
P: potencjometr lOkO
Kondensatory
Cl: 220mF/16V
C2, C4: lOOnF
C3: IOOmF
C5, C贸: 30pF
C7: 120pF
P贸艂przewodniki
D1...D8: dioda LED 5mm (kolor
dowolny)
T: BC547
Ul: PIC16F874 zaprogramowany
U2: AT2464
U3: UM3758-108A
U4: DS1813
U5: 7805
R贸偶ne
CON1: ARK2 (5mm)
W: wy艣wietlacz LCD 16*2
Q: nadajnik radiowy RT1
X: rezonator kwarcowy 4MHz
S1-S12: mikrow艂膮cznik 9mm
Odbiornik Rezystory
Rl: lOOkO R2: 100 R3...R26: 220O Kondensatory
Cl, C4: lOOnF
C2: 470mF/16V
C3: 220mF/16V
C5: 120pF
C贸: lOOnF
C7: 100mF/16V
P贸艂przewodniki
D1...D8: dioda LED 5mm
Gl: mostek prostowniczy 1A/4OOV
Ul U8: MOC 3041
Q1...Q8: BT138-脫00
USl: UM 3758-108A
US2: ULN 2803A
US3: Odbiornik radiowy RR3
US4: 7805
R贸偶ne
CON1...CON9: ARK2 (5mm)
Transformator TS2/14
Gniazdo bezpiecznika do druku
Bezpiecznik 2A
26
Elektronika Praktyczna 8/2002
Bezprzewodowy sterownik w臋偶a 艣wietlnego
Q O
CONl
CON2
Q O
C0N3
o o
C0N4
o o
CON5
o o
C0N6
Q O
C0N7
Q O
CON8
Q O
C0N9
Q O
Ql 02 03 Q4 05 06 Q7 08
ooSllooolloooIloo贸llooollooolI 006 Iloo贸
i
o-TrTI-o o-TrTI-o o-TrTT-o o-TrTI-o o-IrTIT-o o-IrTsI-o o-IrTsI-o o-IritI-o o-TrTI-o o-TrTI-o o-TmT-o o-IribI-o o-IrHI-o o-IrhI-o o-IrT61-o o-IribI-o
OOO OOO 000 000 000 000 000 000
ODO
000
000
000
OOO
C3
000
000
000
000
000
D5
ooooooooo
D6
D7
D8
Plausiuk-Uaz suietlny_uykonauczg
US3
oooooo 16 u 1312 me
OOD
3 2 1
D
Rys. 4. Rozmieszczenie element贸w na p艂ytce drukowanej modu艂u wykonawczego
densatory elektrolityczne oraz stabilizator montujemy poziomo. Diody D1...D8, klawisze S1....S12 oraz wy艣wietlacz montujemy od strony 艣cie偶ek. Po zamontowaniu wszystkich element贸w do z艂膮cza CONl do艂膮czamy napi臋cie zasilania
0 warto艣ci oko艂o 12V. Na wy艣wietlaczu powinien ukaza膰 si臋 komunikat:
"Sterownik w臋偶a"
"艣wietlnego"
a po oko艂o dw贸ch sekundach napis zmieni si臋 na: "Wybierz program". Je艣li otrzymali艣my takie komunikaty, to sterownik pracuje poprawnie. Je艣li zastosujemy wy艣wietlacz z pod艣wietlaniem, wskazane jest, aby stabilizator by艂 zamontowany w pozycji pionowej
1 wyposa偶ony w niewielki radiator.
Przy monta偶u p艂ytki modu艂u wykonawczego (rys. 4) w pierwszej kolejno艣ci montujemy rezystory i podstawki pod uk艂ady scalone, nast臋pnie optoriaki, diody 艣wiec膮ce i triaki. Modu艂 odbiornika radiowego montujemy poziomo - "na le偶膮co" (w tym celu nale偶y jego wyprowadzenia zagi膮膰 pod k膮tem 90). Nast臋pnie montujemy z艂膮cza C0N1...C0N9, transformator i bezpiecznik. Do punktu lutowniczego oznaczonego opisem Antena nale偶y przy-lutowa膰 odcinek przewodu o d艂ugo艣ci oko艂o 10 cm, kt贸ry spe艂ni rol臋 anteny odbiornika radiowego. Monta偶 nale偶y wykona膰 wyj膮tkowo starannie, gdy偶 modu艂 ma bezpo艣rednie po艂膮czenie z napi臋ciem 220V.
Modu艂 wykonawczy b臋dzie mo偶na przetestowa膰 dopiero podczas programowania modu艂u sterownika.
Zar贸wno w module nadajnika, jak i module wykonawczym nale偶y ustawi膰 wsp贸lny adres dla uk艂ad贸w kodowania i dekodowa-nia transmisji radiowej. W tym celu wej艣cia adresowe A1...A10 nale偶y zewrze膰 do plusa zasilania lub do masy - jednakowo w obydwu uk艂adach. Krzysztof P艂awsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/sierpienO2.htm oraz na p艂ycie CD-EP08/2002B w katalogu PCB.
Elektronika Praktyczna 8/2002
27
PROJEKTY
Sterownik nap臋du CD-ROM, cz臋艣膰 1
AVT-5078
Przedstawiamy kolejny
projekt sterownika nap臋d贸w
CD-ROM, za pomoc膮 kt贸rego
mo偶na je przekszta艂ci膰
w odtwarzacze audio. Opr贸cz
opisu budowy urz膮dzenia,
szczeg贸艂owo opisano spos贸b
programowej obs艂ugi interfejsu
ATAPL Po lekturze a艅yku艂u
tworzenie w艂asnych opracowa艅
b臋dzie z pewno艣ci膮 艂atwiejsze.
Mo偶liwo艣ci i ograniczenia sterownika opisanego w artykule
Mo偶liwo艣ci:
艢 rozpocz臋cie/zatrzymanie odtwarzania,
艢 pauza,
艢 zmiana aktualne] 艣cie偶ki,
艢 przewijanie (zmienny skok od 3 do 30 sekund),
艢 wy艣wietlanie aktualnej pozycji/d艂ugo艣ci 艣cie偶ki,
艢 wy艣wietlanie numeru 艣cie偶ki/liczby 艣cie偶ek,
艢 wy艣wietlanie paska post臋pu,
艢 mo偶liwo艣膰 w艂膮czeni a/wyl膮c zenia powtarzania ca艂o艣ci (w przysz艂o艣ci zmiana Trybu "jedna 艣cie偶ka "/"ca艂o艣膰"),
艢 wy艣wietlanie nazwy pod艂膮czonego nap臋du,
Ograniczenia:
* brak obs艂ugi p艂yt mieszanych (dane + audio),
艢 brak obs艂ugi p艂yt wielosesyjnych,
艢 brak obs艂ugi wszystkich kod贸w b艂臋d贸w
Zapewne wielu "komputerowc贸w" my艣la艂o ju藕 kiedy艣 o wykorzystaniu starego, niepotrzebnego CDROM-a jako odtwarzacza audio. O ile w艂a艣ciciele nap臋d贸w z dodatkowym przyciskiem Play nie maj膮 problem贸w z adaptacj膮 tego rodzaju, to w zwyk艂ych nap臋dach nie jest to ju藕 takie proste. W typowym CDROM-ie z interfejsem ATA komunikacja z otoczeniem odbywa si臋 z zastosowaniem protoko艂u ATAPL
Standard ATA ujrza艂 艣wiat艂o dzienne wraz z powstaniem komputer贸w klasy AT (st膮d jego nazwa - .A7" Attachment). Dzi艣 powsta艂o wiele jego odmian wykorzystuj膮cych min. transfery DMA, rozszerzon膮 obs艂ug臋 dost臋pu r贸wnoleg艂ego PIO itp. Ci膮gle zwi臋kszana jest szybko艣膰 przesy艂u danych pomi臋dzy HDD a kompute-
rem - osi膮ga ju藕 266 MB/s. Raczej nie b臋dziemy korzystali w naszych projektach z takich pr臋dko艣ci, wi臋c DMA zostawimy w spokoju. W opisach cz臋sto b臋d臋 pomija艂 nieistotne dla dzia艂ania uk艂adu sterownika flagi, komendy itp., aby nie przyt艂oczy膰 Ci臋, drogi Czytelniku, nadmiarem informacji, z kt贸rych znaczna cz臋艣膰 jest ma艂o przydatna konstruktorowi. Ponadto, gdy b臋d膮 w膮tpliwo艣ci, zawsze mo偶na skorzysta膰 z 艂atwo dost臋pnej dokumentacji.
Cz臋艣膰 sprz臋towa
Zgodnie z norm膮 interfejsu mo偶na pod艂膮czy膰 maksymalnie 2 urz膮dzenia do jednej magistrali - master i slave. Magistrala danych w ATA ma 16 bit贸w, co zapewne zmartwi wielu amator贸w mikrokontioler贸w 8-bitowych. Niestety, nie da si臋 w 偶aden spos贸b zmusi膰 nap臋du do pracy w trybie 8-bitowym. Tym samym nie mo偶emy "wpi膮膰" nap臋du do przestrzeni adresowej procesora 51 czy AVR. Rozk艂ad sygna艂贸w w magistrali ATA przedstawiono w tab. 1.
Elektronika Praktyczna S/2002
Sterownik nap臋du CD-ROM
CON2
IDE INTERFACE
38
36
_34|
32
30
_2S
, 26
GND -CS1 A2
PDIAG GND CSEL GND
-DASP
-CSO
AO
A1
INTERQ
IORDY -RD
L39J 37 35
GND -WR
GND
GND
D15 DO
D14 Dl
D13 D2
D12 D3
D11 D4
D10 D5
D9 D6
DB D7
GND -RESET
33
29
27
25
23
21
15
13
CON1 PCMCIA
VCCh
10
12
13
14
15
16
17
18
19
20
21
22
23
25
27
GND
D3
D4
D5
D6
D7
-CE1
A10
-OE(ATA)
A9 AS
-WE
RDY/-IRQ
VCC
A7
A6
A5
A4
A3
A2
A1
AO
DO
Dl
D2
IOIS16
GND
GND
-CD2
D10
D9
DB
BVD1
BVD2
-REG
艢INPACM
-WAIT
RST
-VS2
M/S-
68
VCC
WR-RD--VS1 -CE2 D15 D14 D13 D12 D11 -CD1 GND
51
I 5Q
49.___
48___
47
46
45
44
41
40
39
38
37
38
MASTER/SLAVE
VCC
VCC
Rys. 1. Schemat po艂膮cze艅 (przej艣膰i贸wki) mi臋dzy ATA a PCMCIA
Do podstawowej komunikacji z nap臋dem wystarcz膮 linie danych, adresowe, impulsy zapisu/ odczytu oraz wyb贸r bazy rejestr贸w. Nale偶y pami臋ta膰, 偶e linia D7 jest wewn臋trzne "艣ci膮gni臋ta" (puli down) do masy. S艂u偶y to wykryciu pod艂膮czenia nap臋du (wszystkie pozosta艂e linie s膮 podci膮gni臋te do +). Jak si臋 w praktyce okazuje, do艣膰 cz臋sto "艣ci膮ganie" dzia艂a zbyt skutecznie i trzeba zastosowa膰 wyr贸wnuj膮cego pull-upa. W zale偶no艣ci od aplikacji, przydatne mo偶e by膰 偶膮danie przerwania oraz wska藕nik aktywno艣ci !DASP. Zazwyczaj w kieszeniach nap臋d贸w do tej linii jest pod艂膮czona dioda LED. Gdy nap臋d jest ustawiony w trybie slave, informuje za pomoc膮 tego sygna艂u nap臋d master o swojej obecno艣ci. Wyb贸r nap臋du jest ca艂kowicie programowy, wi臋c nie musimy przejmowa膰 si臋 stanem tej linii. Nie trzeba tak偶e troszczy膰 si臋 o zerowanie (nap臋d wykonuje go automatycznie po uruchomieniu). Oczywi艣cie, mo偶emy wykona膰
"r臋czne" zerowanie, ale zazwyczaj nie jest ono potrzebne.
Bardzo wa偶ne jest, na co radz臋 zwr贸ci膰 uwag臋, zaznaczenie negacji sygna艂贸w "!". Przez przeoczenie tego drobiazgu mia艂em du偶e problemy z uruchomieniem sterownika.
Zgodnie z norm膮 maksymalna d艂ugo艣膰 kabla mo偶e wynosi膰 46 cm. Przy niezbyt du偶ych pr臋dko艣ciach przesy艂ania danych mo偶na t臋 warto艣膰 nieco "rozci膮gn膮膰", ale nie zalecam takiego post臋powania.
Ka偶dy nap臋d ATA posiada 8 rejestr贸w podstawowych (wybierany sygna艂em !CSO) oraz rejestr kontrolny (wybierany sygna艂em !CSl). W moim projekcie nie u偶ywam drugiej bazy rejestr贸w, gdy偶 jedyne, co mo偶emy za jej pomoc膮 zrobi膰, to w艂膮czy膰/wy艂膮czy膰 zewn臋trzne przerwania oraz programowo wyzerowa膰 nap臋d (nie dotyczy to CDROM-贸w). Nap臋dy ATAPI posiadaj膮 tak偶e rejestry do kontroli stacji dysk贸w (np. nap臋d贸w LS120 lub streamer贸w).
To w zasadzie wszystkie informacje, jakie s膮 nam potrzebne do "rozmowy" z CDROM-em lub dyskiem twardym. Znacznie bardziej skomplikowana jest jego programowa obs艂uga. Na koniec tego wst臋pu chcia艂em przedstawi膰 jeszcze ma艂膮 ciekawostk臋.
Nie wszyscy pewnie wiedz膮, 偶e karty ATA Flash (w formie np. kart PCMCIA lub jej wersji mini - Compact Flash) s膮 ca艂kowicie zgodne pod wzgl臋dem interfejsu z klasycznym ATA. Na rys. 1 pokazano schemat po艂膮cze艅 przej-艣ci贸wki mi臋dzy zwyk艂ym ATA a kart膮 PCMCIA. Do wyboru trybu pracy jako ATA s艂u偶y wej艣cie !OE. Karty ATA Flash posiadaj膮 tak偶e wyprowadzenie s艂u偶膮ce do wyboru mi臋dzy prac膮 jako master oraz slave. Dobrym zastosowaniem dla takiej karty, udaj膮cej HDD, mo偶e by膰 np. praca w sterowniku zrobionym na komputerze PC. Taki dysk jest bezg艂o艣ny i znacznie mniej awaryjny ni偶 klasyczne, mechaniczne dyski twarde. Przej艣ci贸wka ta nie zosta-
30
Elektronika Praktyczna 8/2002
Sterownik nap臋du CD-ROM
艂a przeze mnie sprawdzona w praktyce, wi臋c nie gwarantuj臋 jej poprawnej pracy.
Opis uk艂adu
Schemat elektryczny sterownika pokazano na rys. 2. "Sercem" uk艂adu jest procesor AT89S8252. Jest to mikrokontroler ca艂kowicie zgodny z '51. Posiada m.in.:
- 8 kB pami臋ci Flash,
- 2 kB pami臋ci EEPROM,
- mo偶liwo艣膰 programowania w systemie (ISP),
- sprz臋towy interfejs SPI.
G艂贸wn膮 przyczyn膮 wyboru tego w艂a艣nie procesora jest mo偶liwo艣膰 programowania go w systemie. Programator sk艂ada si臋 z dw贸ch wtyczek i 5 przewod贸w, mo偶e go wi臋c wykona膰 ka偶dy i zaprogramowa膰 procesor bez dost臋pu do specjalistycznych urz膮dze艅. Oczywi艣cie mo偶na zastosowa膰 w uk艂adzie dowolny procesor z rodziny '51 np. 89C55.
Mikrokontroler sterownika pracuje w typowej aplikacji z zegarem kwarcowym 12 MHz. Zerowanie po w艂膮czeniu zasilania zapewnia kondensator 1 |iF
w艂膮czony mi臋dzy VCC a wej艣cie zeruj膮ce mikrokontrolera. Wej艣cie EA pod艂膮czone do VCC wymusza prac臋 procesora z wewn臋trzn膮 pami臋ci膮 programu. Port 1 zajmuj膮 linie adresowe interfejsu ATA oraz linie steruj膮ce LCD. Wej艣cie Enable LCD zosta艂o pod艂膮czone do wyprowadzenia 5 portu 3, aby zapobiec uaktywnianiu LCD podczas zapisywania adresu. Okazuje si臋, 偶e podczas pracy konieczne jest od艂膮czenie programatora. Wyprowadzenia P3.6 oraz P3.7 s艂u偶膮 do wysy艂ania sygna艂贸w steruj膮cych zapisem oraz odczytem. Porty 0 oraz 1 s膮 ca艂kowicie wykorzystane przez szyn臋 danych. Rezystor Rl "podci膮ga" lini臋 D7 do VCC (przyczyny wyja艣ni艂em wcze艣niej). Linie P3.0..,P3.4 obs艂uguj膮 klawiatur臋 zbudowan膮 na mikroprze艂膮czni-kach. Wej艣cia procesora s膮 na wszelki wypadek podci膮gni臋te do "+", aby unikn膮膰 zak艂贸ce艅 (procesor posiada wbudowane pull-upy, ale jak wynika z praktyki nie s膮 one zawsze skuteczne). W razie potrzeby mo偶na
pod艂膮czy膰 w miejsce dw贸ch przycisk贸w interfejs RS2 3 2 dla 艂atwiejszej komunikacji z urz膮dzeniem. Potencjometr s艂u偶y do regulacji kontrastu LCD. Uk艂ad posiada wbudowany zasilacz dla nap臋du CD-ROM, zbudowany na dw贸ch typowych stabilizatorach - 7805 i 7812. Wbrew temu, co jest napisane na tabliczce znamionowej nap臋du, przy pracy z pr臋dko艣ci膮 lx (odtwarzanie audio) pob贸r pr膮du nie przekracza 0,5A (5V) i 250mA (12V).
Program steruj膮cy napisa艂em w BASCOM-ie. Posiada on modu艂ow膮 struktur臋, wi臋c mo偶na go bez problemu zaadaptowa膰 do innych urz膮dze艅, modyfikuj膮c tylko procedury RD oraz WR. Listing ilustruj膮cy spos贸b skonfigurowania mikrokontrolera i wykorzystanie procedur zapisu i odczytu przedstawiono poni偶ej:
Io_rd Alias P3.7 Io_wr Alias P3.6 Io_hi Alias P2 Io_lo Alias PO Io adr Alias Pl
Rys. 2. Schemat elektryczny sterownika
Elektronika Praktyczna 8/2002
31
Sterownik nap臋du CD-ROM
Tab. 1.
Numer wyprow. Opis PIN
1 IReset Masa 2
3 D7 D8 4
5 D6 D9 6
7 D5 D10 8
9 D4 D11 10
11 D3 D12 12
13 D2 D13 14
15 D1 D14 16
17 DO D15 18
19 Gnd (blokada) 20
21 !DMARQ Gnd 22
23 !WR Gnd 24
25 !RD Gnd 26
27 I0RDY CSEL 28
29 IDMACK Gnd 30
31 INTRQ 32
33 A1 IPDIAG 34
35 AO A2 36
37 !CS0 ICS1 38
39 IDASP Gnd 40
- D0...D15: linie danych, - A0...A2: linie adresowe, - !CS0 i !CS1: wyb贸r bazy rejestr贸w, - IDASP: wskazuje na aktywno艣膰, s艂u偶y tak偶e do wykrywania obecno艣ci drugiego nap臋du [slave), - -!INTRQ: sygna艂 przerwania, - I0RDY: informacja, czy nap臋d jest gotowy do rozpocz臋cia operacji zapisu/ odczytu, - !RD i !WR: sygna艂y odczytu oraz zapisu s艂owa danych, - IDMACK i !DMARQ: sygna艂y do kontroli transfer贸w DMA - przez nas nie b臋d膮 wykorzystywane, - IPDIAG: sygna艂 informuj膮cy o zako艅czeniu test贸w diagnostycznych, - CSEL: obecnie prawie niewykorzystywane - wyb贸r nap臋du master/s!ave zewn臋trznym sygna艂em.
Sub Rd(adr As Byte) ' ustawienie adresu Shift Adr, Left, 5 Io_adr = Adr ' impuls rd Io_rd = 0
' odczyt danych Lo = Io_lo Hi = Io_hi Io_rd = 1 End Sub
Sub Wr(adr As Byte, Datlo As Byte, Dathi As Byte)
' ustawienie adresu
Shift Adr, Left, 5
' wystawienie danych
Io_adr = Adr
Io hi = Dathi
Rys. 3. Rozmieszczenie element贸w na p艂ytce drukowanej
Io_lo = Datlo ' impuls wr Io_wr = 0 Nop nop Nop
Io_wr = 1 End Sub
Program korzysta tylko z tych procedur podczas komunikacji, wi臋c mo偶na je dowolnie dostosowa膰. Wszystkie numery wyprowadze艅 posiadaj膮 przypisane aliasy na pocz膮tku, wi臋c nie musimy zmienia膰 nazw w ca艂ym kodzie w przypadku jego modyfikacji. Wszystkie komendy oraz numery rejestr贸w maja swoje nazwy z przypisanymi na sta艂e warto艣ciami. Dzi臋ki temu w programie wszystko ma swoj膮 definicj臋 i nie ma liczb o niewiadomym znaczeniu.
To tyle na temat struktury programu - plik 藕r贸d艂owy jest dost臋pny na stronie www.-ep.com.pl w dziale Download>Do-kumentacje oraz na p艂ycie CD-EP8/2002B.
Obs艂uga sterownika jest bardzo 艂atwa i intuicyjna. Mamy do dyspozycji 5 klawiszy: Prev, Pau-se, Next, Stop, Config. Je艣li po uruchomieniu w nap臋dzie znajduje si臋 p艂yta, automatycznie rozpocznie si臋 odtwarzanie. Za pomoc膮 klawiszy Prev oraz Next mo偶emy zmienia膰 艣cie偶k臋. Maj膮 one tak偶e inn膮 funkcj臋 - je艣li
przytrzymamy klawisz d艂u偶ej ni偶 ok. 25 0 ms, to rozpoczniemy przewijanie. Klawisz Stop oczywi艣cie zatrzymuje odtwarzanie. Ponadto, w przeciwie艅stwie do klawisza Pause, zeruje licznik 艣cie偶ek. Je艣li naci艣niemy Stop ponownie, nap臋d wysunie tack臋 z p艂yt膮. Za pomoc膮 klawisza Config mo偶emy wej艣膰 do menu opcji. Na razie dost臋pne s膮 tylko dwie opcje: powtarzanie oraz zmiana skoku przewijania.
Dzia艂anie sterownika
Na pocz膮tku sterownik dokonuje programowego zerowania do艂膮czonego nap臋du. Nast臋pnie odczytuje sygnatur臋, wy艣wietla j膮 i czeka na gotowo艣膰 nap臋du (sprawdza stan flag ASC i ASCQ). Po wykonaniu inicjalizacji przechodzi do g艂贸wnego programu. Podczas pierwszej p臋tli jest sprawdzane, czy jest w艂o偶ona p艂yta. Je偶eli nie, to wy艣wietlany jest odpowiedni komunikat. Po w艂o偶eniu CD sterownik blokuje mo偶liwo艣膰 wysuni臋cia tacki, odczytuje pozycj臋 ko艅ca p艂yty, liczb臋 zapisanych 艣cie偶ek, sprawdza, czy w艂o偶ona p艂yta zawiera tylko dane audio i rozpoczyna odtwarzanie. Nast臋pnie przechodzi do kolejnej p臋tli. Najpierw zostaje sprawdzona aktualna pozycja oraz status odtwarzania. W nast臋pnym kroku nast臋puje odczyt klawiszy. W przypadku naci艣ni臋cia Prev lub Next jest sprawdzane, po jakim
32
Elektronika Praktyczna 8/2002
Sterownik nap臋du CD-ROM
czasie puszczono klawisz. W zale偶no艣ci od wyniku, program zmienia numer 艣cie偶ki, odczytuje jej pozycj臋 i wydaje komend臋 play. Gdy przytrzymano klawisz odpowiednio d艂ugo, dodaje do aktualnej pozycji odpowiedni膮 warto艣膰, rozpoczyna odtwarzanie od nowej pozycji i po ok. 500 ms sprawdza ponownie stan klawisza. Gdy jest on nadal wci艣ni臋ty, to przechodzi do pocz膮tku procedury przewijania. Aktualny numer 艣cie偶ki jest pobrany za pomoc膮 komendy Read Subchannel. Z tego samego 藕r贸d艂a jest okre艣lana aktualna pozycja. Jednak nie korzystam z warto艣ci wzgl臋dnej do pocz膮tku 艣cie偶ki, tylko wyliczam j膮, odejmuj膮c od aktualnej pozycji pozycj臋 pocz膮tku 艣cie偶ki. Jak wynika z moich do艣wiadcze艅, jest to konieczne, bo r贸偶ne nap臋dy bardzo r贸偶nie wyliczaj膮 sobie t臋 warto艣膰 i wyst臋puj膮 du偶e problemy podczas sterowania. Pod koniec sprawdzane jest, czy odtwarzanie zako艅czy艂o si臋 - je艣li tak, to program przechodzi do p臋tli Stop. Mo偶liwe jest teraz wysuni臋cie p艂yty lub ponowne rozpocz臋cie odtwarzania. Informacje o statusie odtwarzania mo偶na uzyska膰 jednocze艣nie z pozycj膮 dzi臋ki komendzie Read Subchannel. W programie u偶ywam komendy Play MSF. Nie jest to zbyt wygodne, poniewa偶 musimy przeliczy膰 adres z postaci LBA na MSF. Wynika to z faktu, 偶e komenda Play (45h) umo偶liwia odtworzenie maksymalnie 65536 sektor贸w (ok. 14 minut). Z kolei komenda Play CD (BCh) nie dzia艂a艂a z 偶adnym z testowanych nap臋d贸w. Poni偶ej przedstawiono procedur臋 przeliczania LBA na MSF:
F = LBA Mod 7 5
LBA = LBA - F
LBA = LBA/75
S = LBA Mod 6 0
LBA = LBA-S
M = LBA/6 0
ca艂kowita. Aby unikn膮膰 mno偶enia bajt贸w przez do艣膰 spore liczby, zastosowa艂em pewn膮 sztuczk臋. Bascom po kompilacji zwraca list臋, na kt贸rej s膮 adresy wszystkich zmiennych w wewn臋trznej pami臋ci. Odczytane bajty zapisuje za pomoc膮 komendy bascoma Poke , bezpo艣rednio do pami臋ci. Dalej kompilator musi si臋 martwi膰, aby te 4 bajty by艂y widziane w programie w postaci liczby ca艂kowitej. Podczas wy艣wietlania informacji na LCD potrzebne jest sformatowanie wszystkich liczb w taki spos贸b, aby zawsze mia艂y format dwucyfrowy (czyli w pustych miejscach widnia艂y zera). Gdyby艣my o to nie zadbali, to d艂ugo艣膰 zapisu na LCD ci膮gle by si臋 zmienia艂a. Aby wyeliminowa膰 ten problem, zastosowa艂em kolejn膮 sztuczk臋 programow膮: Templcd = Makebcd(X) Shift Templcd, Right, 4 Lcd Templcd
Templcd = Makebcd(X)
Templcd = Templcd And &B00001111
Lcd Templcd
Liczba (x) zostaje przekszta艂cona do formatu BCD, czyli pierwsze 4 bity zawieraj膮 jednostki,
Na rysunku przedstawiono schemat elektryczny kabla ISP, kt贸ry mo偶e by膰 stosowany m.in. z Bascomem, bowiem to w j臋zyku Basic powsta艂 ca艂y program steruj膮cy prac膮 nap臋du. Bascom posiada wbudowane oprogramowanie do tego interfejsu pod nazw膮 Stmple electrontc ISP
Schemat po艂膮cze艅 kabla ISP
WYKAZ ELEMENT脫W
Rezystory
Rl, R3...R7: 10kO
R2: potencjometr 10kO
Kondensatory
Cl, C2: 33pF
C3: 220^F/25V
C4, C5, C7: lOOnF
C贸, C8: 100^F/16V
C9: l|iF/16V
P贸艂przewodniki
U2: 7805
U3: 7812
US1: AT89S8252
R贸偶ne
JP1: IDE INTERFACE
JP2: ISP
JP3: LCD
JP4: DC IN
JP5: DC OUT (z艂膮cze 4 pin)
S1...S5: mikroswitch
Xl: kwarc 12MHz
jest zastosowanie LCD 4x20, poniewa偶 ma rozmiary zbli偶one do rozmiar贸w p艂ytki i jest mo偶liwe stosunkowo 艂atwe wykonanie sterownika z rys. 2. U偶ytkownik mo偶e dowolnie modyfikowa膰 spos贸b wy艣wietlania informacji. Obs艂uga wy艣wietlacza jest zawarta w procedurze Show. Uk艂ad by艂 testowany z nap臋dem Teac CDW54E (nagrywarka 4X, CD 32X), DVD Samsung (32X) oraz AOpen (50X). Sterownik najbardziej niezawodnie dzia艂a艂 z tym pierwszym. Nie chc臋, aby kto艣 mnie pos膮dzi艂 o kryptoreklam臋, ale moim zdaniem Teac robi najmniej awaryjne i najcichsze nap臋dy.
programmer.
Rozwi膮zanie to jest
bardzo u偶yteczne przy dopracowywaniu
oprogramowania - pewnie wielu Czytelnik贸w
zna "b贸l" ci膮g艂ego przek艂adania uk艂adu do
pro gramato ra.
Komenda MOD zwraca reszt臋 z dzielenia dw贸ch liczb. Warto艣膰 LBA zwr贸cona np. przez komend臋 Read TOC sk艂ada si臋 z 4 bajt贸w. Potrzebna jest jedna liczba
a kolejne dziesi膮tki. Po odpowiedniej konwersji zawsze b臋dziemy mieli zapis dwucyfrowy. Program zosta艂 przygotowany do wsp贸艂pracy z LCD 2x40, poniewa偶 tylko taki mia艂em. Bardziej praktyczne
Monta偶
i uruchomienie
Sterownik wykona艂em w formie niewielkiego modu艂u z do艂膮czanym wy艣wietlaczem. Mo偶na go zastosowa膰 jako sterownik autonomicznego odtwarzacza lub jako cz臋艣膰 wi臋kszego urz膮dzenia (komunikacja poprzez RS232, o kt贸rej wcze艣niej wspomina艂em).
Schemat monta偶owy p艂ytki znajduje si臋 na rys. 3. Monta偶
Elektronika Praktyczna 8/2002
33
Sterownik nap臋du CD-ROM
wi臋kszo艣ci element贸w nie wymaga komentarza. Mikroprze艂膮czniki najlepiej jest wlutowa膰 od strony druku, poniewa偶 po drugiej stronie wi臋kszo艣膰 element贸w jest do艣膰 wysoka, i w przypadku zabudowy trudno by艂oby "wyprowadzi膰" je na zewn膮trz.
Prototyp wyposa偶ono w stabilizatory przykr臋cone do niedu偶ego radiatora. Lepiej jest wykorzysta膰 metalow膮 obudow臋 nap臋du do odprowadzani ciep艂a. Wy艣wietlacz LCD oraz p艂ytka s膮 przymocowane do p艂yty z pleksiglasu, przytwierdzonej do nap臋du za pomoc膮 trzech wspornik贸w (pozosta艂e ot-
wory wykorzystano do przykr臋cenia 78xx).
Po zaprogramowaniu sterownik powinien dzia艂a膰 od razu. Jedyn膮 regulacj膮 jest ustawienie odpowiedniego kontrastu na wy艣wietlaczu. Program domy艣lnie pracuje z urz膮dzeniem master.
Wa偶ne jest przypisanie odpowiednim aliasom odpowiednich klawiszy. Przyk艂adowo, po obr贸ceniu p艂ytki o 180 stopni klawisze Next i Prev znajd膮 si臋 po przeciwnych stronach - jest to troch臋 nienaturalne.
Oprogramowanie (kody 藕r贸d艂owe i gotowy plik HEX do zapisu
w procesorze) jest dost臋pne w In-ternecie pod adresem http:// www.mwsoft.prv.pl oraz na p艂ycie CD-EP8/2002B.
Do wykonania sterownika wykorzysta艂em dokumentacje: SFF-8020i (ATAPI) oraz X3T13 (ATA), kt贸re tak偶e publikujemy na tej p艂ycie.
Micha艂 Wysocki mwsoft@satkabel.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/sierpienO2.htm oraz na p艂ycie CD-EP08/2002B w katalogu PCB.
34
Elektronika Praktyczna 8/2002
PROJEKTY
Samochodowy wzmacniacz w klasie T
AVT-5079
jakkolwiek zwi臋kszanie
sprawno艣ci energetycznej
urz膮dze艅 stosowanych
w samochodach, w tym
szczeg贸lnie sprz臋tu audio, nie
jest jeszcze modne,
w a艅ykule przedstawiamy
opis konstrukcji
wysoko sprawnego,
stereofonicznego wzmacniacza,
kt贸rego sprawno艣膰 znacznie
przekracza 80%.
Co to oznacza w praktyce? Ot贸偶 to, 藕e z 30W pobranych z instalacji samochodowej ponad 24W zostanie zamienione na sygna艂 akustyczny, a tylko ok. 2...4W zostanie zu偶yte na podgrzanie wn臋trza samochodu. Dla orientacji, w przypadku korzystania w ko艅c贸wce mocy z uk艂adu TDA1555 sprawno艣膰 energetyczna wzmacniacza nie przekracza 30%, w przypadku TDAl56lQ wynosi 28...33%, a w przypadku TDA8566Q dochodzi do 25%. Jasno z tego wynika, 藕e radiator wspomagaj膮cy ch艂odzenie obudowy uk艂adu scalonego praktycznie nie jest potrzebny - to tak偶e niebagatelna oszcz臋dno艣膰. Sprawno艣膰 wzmacniacza ro艣nie wraz z moc膮 wyj艣ciow膮, co oznacza, 藕e zysk energetyczny mo偶na uzyska膰 w przypadku nieco wi臋kszych mocy na wyj艣ciu uk艂adu. Na rys. 1 pokazano wykresy zale偶no艣ci sprawno艣ci od mocy wyj艣ciowej dla dw贸ch impedancji obci膮偶enia.
Wykonanie wysoko sprawnego wzmacniacza audio
parametrach akustycznych by艂o mo偶liwe dzi臋ki zastosowaniu scalonego wzmacniacza TA2020 opracowanego i produkowanego przez ameryka艅sk膮 firm臋 Tripath. Jej autorskim opracowaniem jest nowa klasa pracy wzmacniaczy, nosz膮ca nazw臋 "klasa T\ Z materia艂贸w udost臋pnionych przez producenta nie wynika wprost, jakiego rodzaju udoskonalenia wprowadzono w sterowniku ko艅c贸wki mocy w stosunku do klasycznych rozwi膮za艅 impulsowych, jakie s膮 stosowane m.in. we wzmacniaczach klasy D, ale jako艣膰 (pod wzgl臋dem parametr贸w) uzyskiwanego d藕wi臋ku jest (w najgorszym przypadku) por贸wnywal-
ftO
40
20

BA _-艢 _艢艢
t

//

i
VDD = 13,5V f=1kHz Av = 12


0 5 10 15 20 25
Moc wyj艣ciowa [W]
Rys. I. Zale偶no艣膰 sprawno艣ci energetycznej o dobrych wzmacniacza od mocy wyj艣ciowej
Elektronika Praktyczna S/2002
35
Samochodowy wzmacniacz w klasie T
> : ' i t tli n
Moc wyj艣ciowa [W]
Rys. 2. Zale偶no艣ci warto艣ci wsp贸艂czynnika zniekszta艂ce艅 od mocy wyj艣ciowej
Ko艅c贸wka mocy zastosowana w projekcie jest jednym z pierwszych opracowa艅 firmy Tripath, w kt贸rym zintegrowano sterownik z ko艅c贸wkami mocy, co znacznie upraszcza jej stosowanie, radykalnie obni偶a koszt wykonania wzmacniacza, zapewnia tak偶e dob膮 jako艣膰 odtwarzanego sygna艂u.
na ze wzmacniaczami pracuj膮cymi w klasie AB. Ze szcz膮tkowych informacji upublicznionych przez firm臋 Tripath wynika tylko, 偶e sterownik stopnia mocy analizuje char a kter sy gna艂u wej艣ciowego i w zale偶no艣ci od jego spektrum modyfikuje cz臋stotliwo艣膰 i amplitud臋 sygna艂u taktuj膮cego tranzystory mocy. Drug膮 istotn膮 cech膮 sterownika wbudowanego w uk艂ad TA2020 jest wykorzystanie sygna艂u PWM o wysokiej cz臋stotliwo艣ci "no艣nej" - w stanie spoczynku mie艣ci si臋 ona (w zale偶no艣ci od typu uk艂adu) w przedziale: 100kHz...l,7MHz.
Co potrafi TA2020
Uk艂ad TA2020 zoptymalizowano pod k膮tem stosowania w przeno艣nym i przewo藕nym sprz臋cie audio, ze szczeg贸lnym uwzgl臋dnieniem samochod贸w - wynika to przede wszystkim z przewidzianego przez producenta dopuszczalnego zakresu napi臋cia zasilaj膮cego. W zale偶no艣ci od impedancji obci膮偶enia do艂膮czonego do uk艂adu, maksymalna moc wyj艣ciowa mo偶e wynosi膰 2xl3W (przy 8L艂) lub 2x23W (przy 4Li), a nawet 2x25W przy za艂o偶eniu, 偶e wzmacniacz b臋dzie zasilany napi臋ciem 14,4V (typowe w instalacji samochodowej podczas jazdy na wi臋kszych obrotach silnika). Na rys. 2 pokazano wy-
kresy ilustruj膮ce zale偶no艣膰 pomi臋dzy moc膮 wyj艣ciow膮 i wsp贸艂czynnikiem zniekszta艂ce艅 sygna艂u wyj艣ciowego dla dw贸ch zalecanych impedancji obci膮偶enia.
Uk艂ad wyposa偶ono w wewn臋trzne mechanizmy zabezpieczaj膮ce przed zbyt wysokim lub zbyt niskim napi臋ciem zasilaj膮cym, uk艂ad automatycznego wyciszania sygna艂u wyj艣ciowego podczas w艂膮czania i wy艂膮czania wzmacniacza (u艂atwia eliminacj臋 przykrych stuk贸w w g艂o艣nikach), uk艂ad przeciw zwarciowy zabezpieczaj膮cy stopnie wyj艣ciowe przed przet臋偶eniem, a tak偶e bezpiecznik termiczny, dzi臋ki kt贸remu w przypadku przekroczenia dopuszczalnej temperatury obudowy obci膮偶enie jest od艂膮czane do chwili, gdy obudowa wzmacniacza osi膮gnie bezpieczn膮 temperatur臋.
Pomimo zastosowania do艣膰 "ha艂a艣liwej" elektromagnetycznie te chniki w zm a cni ani a sy gna艂o w audio, dynamika toru akustycznego jest bardzo dobra i wynosi ok. 103dB. Pozwala to na stosowanie uk艂adu TA2020 tak偶e w aplikacjach bardziej zaawansowanych, ni偶 prezentowana w artykule.
J2
CON2
Rys. 3. Schemat elektryczny wzmacniacza
36
Elektronika Praktyczna S/2002
Samochodowy wzmacniacz w klasie T
Uk艂ad TA2020 charakteryzuje si臋 jeszcze jednym istotnym parametrem, o warto艣ci rzadko spotykanej u innych producent贸w -standardowo zakres temperatury pracy wynosi a偶 -4O...+85癈, co znacznie u艂atwia stosowanie uk艂adu w samochodach.
Opis uk艂adu
Schemat elektryczny wzmacniacza pokazano na rys. 3. Budowa uk艂adu TA2020 nie pozwala na wprowadzanie istotnych modyfikacji w jego aplikacji, co 艂atwo zauwa偶y膰 na schemacie - jest to bowiem niemal ca艂kowicie wierna kopia zalecanej aplikacji fabrycznej . We wzmacniaczu zrezygnowano z mo偶liwo艣ci "usypiania" wzmacniacza za pomoc膮 stanu logicznego podawanego na wej艣cie SLEEP, dlatego zosta艂o ono zwarte do masy, blokuj膮c mo偶liwo艣膰 uaktywnienia bloku steruj膮cego obni偶onym poborem mocy. Warto艣ci zastosowanych element贸w wynikaj膮 z zalece艅 producenta, tak偶e wyra藕nie zaznaczony na schemacie podzia艂 obwod贸w mas zasilania jest kopi膮 zalece艅 producenta.
Podczas kompletowania element贸w szczeg贸ln膮 uwag臋 trzeba zwr贸ci膰 na parametry d艂awik贸w L1...L4 (s膮 one w艂膮czone w szereg z obci膮偶eniem), a tak偶e diod
WYKAZ ELEMENT脫W
Rezystory
R1...R4: 20kQ
R5: 8,2kn
R6: lkn
R7, R8: 1QQ
Kondensatory
Cl, C7, C8, C10...C12, C21, C22:
470nF
C2, C3: 4,7\iF
CA, C5, C9, C13, C15...C19:
lOOnF
C贸: luf
Cl A, C20: 220^F/25V
P贸艂przewodniki
DL D2, D4, D5: MBRS130T3
D3: dowolna dioda LED
US1: TA2020
R贸偶ne
Jl: podw贸jny chinch do druku
lub dwa pojedyncze
J2...J5: podw贸jne ARK
L1...L4:
Dooooooooooooooo
oooooooooooooooo
B8B8
B8B8
- O ONO O
Katoda
Anoda
Rys. 4. Rozmieszczenie element贸w na p艂ytce drukowanej wzmacniacza
Schottky'ego Dl, D2 i D3, D4. D艂awiki musz膮 by膰 nawini臋te na rdzeniu niewchodz膮cym w nasycenie przy pr膮dzie przep艂ywaj膮cym przez d艂awik o nat臋偶eniu 3 A, rdze艅 powinien by膰 tak偶e przystosowany do pracy z cz臋stotliwo艣ciami 0,8...lMHz. W przypadku braku mo偶liwo艣ci zakupu diod MBRS13 0 nale偶y starannie dobiera膰 odpowiedniki, szczeg贸lnie bior膮c pod uwag臋 czas ich prze艂膮czania i - oczywi艣cie - pr膮d przewodzenia oraz napi臋cie zaporowe.
Monta偶 i uruchomienie
Silne wyspecjalizowanie uk艂adu TA2020 z jednej strony ogranicza mo偶liwo艣ci modyfikowania uk艂adu aplikacyjnego, z drugiej strony powoduje, 偶e uruchamianie poprawnie zmontowanego wzmacniacza nie wymaga wi臋cej ni偶 kilku minut i zazwyczaj sprowadza si臋 do sprawdzenia jego dzia艂ania.
Podczas monta偶u pomocny b臋dzie schemat monta偶owy p艂ytki drukowanej (dwustronnej), kt贸ry pokazano na rys. 4. Monta偶 nale偶y rozpocz膮膰 od diod Dl, D2, D4, D5, kt贸re s膮 przystosowane do monta偶u powierzchniowego. Na rys. 4 wyja艣niono spos贸b oznaczenia anod i katod tych diod, co pozwoli unikn膮膰 k艂opot贸w podczas monta偶u. Diody s膮 umieszczone na stronie "element贸w" p艂ytki drukowanej, a dzi臋ki do艣膰 du偶ym wymiarom podczas monta偶u nie ma potrzeby korzystania z jakichkolwiek specjalnych narz臋dzi lub 艣rodk贸w. Pozosta艂e elementy maj膮 przewlekane ko艅c贸wki i ich monta偶 nie wymaga komentarza.
Nieco niepokoj膮cy mo偶e si臋 wydawa膰 kszta艂t p艂ytki drukowanej, kt贸rej jedna z kraw臋dzi zosta艂a podci臋ta w kszta艂cie schodk贸w. Taki kszta艂t obrysu p艂ytki wynika z dostosowania jej do monta偶u w efektownym radiatorze, kt贸ry spe艂nia jednocze艣nie rol臋 obudowy wzmacniacza. Pr贸by z tak wykonanym wzmacniaczem wykaza艂y, 偶e nie ma konieczno艣ci przykr臋cania obudowy uk艂adu TA2020 do radiatora, w zwi膮zku z czym spe艂nia on tylko rol臋 obudowy.
Podczas uruchamiania i eksploatacji wzmacniacza nale偶y pami臋ta膰, 偶e maksymalne dopuszczalne napi臋cie zasilania wynosi 16VDC - jego przekroczenie na d艂u偶szy czas mo偶e doprowadzi膰 do uszkodzenia uk艂adu. Piotr Zbysi艅ski, AVT piotr.zbysinski@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/sierpienO2.htm oraz na p艂ycie CD-EP08/2002B w katalogu PCB.
Elektronika Praktyczna 8/2002
37
MINIPROJEKTY
Wsp贸ln膮 cech膮 uk艂ad贸w opisywanych w dziale "Miniprojekty" jest 艂atwo艣膰 Ich praktyczne] 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,
Optyczno-akustyczny tester przewod贸w
Do skontrolowania
po艂膮cze艅 podczas
instalowania sieci
komputerowej, systemu
alarmowego czy sieci
TV kablowej najcz臋艣ciej
stosujemy miernik
uniwersalny. Ale
w takim przypadku nie
musimy okre艣la膰
dok艂adnie rezystancji
przewod贸w. Mo偶emy
wi臋c zast膮pi膰 multimer
prostym wska藕nikiem
akustycznym, kt贸rego
budow臋 przedstawiamy
w artykule.
Na rys. 1 przedstawiono schemat elektryczny uk艂adu, w kt贸rym NE555 pracuje jako multiwibrator astabilny. Uk艂ad mo偶emy podzieli膰 na dwie cz臋艣ci:
- generator z wej艣ciem pomiarowym,
oraz 艣wieci si臋
dioda LED.
W zale偶no艣ci
od warto艣ci
r ezy stancj i
zw i e raj膮 c e j
wej艣cie pomiaro
we, generowany sygna艂
gli WYKAZ ELEMENT脫W
nT
Rys. 1
- cz臋艣膰 sygnalizacyjn膮 z g艂o艣nikiem i diod膮 LED.
Wej艣cie pomiarowe jest do艂膮czone do obwodu generatora ustalaj膮cego warto艣膰 cz臋stotliwo艣ci generowanego sygna艂u akustycznego. Cz臋艣膰 sygnalizacyjna sk艂ada si臋 z miniaturowego g艂o艣nika 3li o mocy O,1W oraz prostego uk艂adu optycznego z diod膮 LED. Po w艂膮czeniu zasilania i zwarciu wej艣cia pomiarowego uk艂ad generuje g艂o艣ny sygna艂 akustyczny
rr Rezystory
Rl, R2: 100D
R3: 10Q
R4: 3,9kQ
Kondensatory
Cl: lOOnF
C2, C4: 1 n-F/16.^"
C3: lO^F/l贸Y
P贸艂przewodniki
3 PRZEWODY Dl: LED
3 PRZEWODY D2, D3: 1N4148
Tl: BC237
US1 : NE555
akustyczny zmienia cz臋stotliwo艣膰.
Pr贸bnik opr贸cz sprawdzania przej艣膰 nadaje si臋 tak偶e do przybli偶onego okre艣lania
Rys. 2
P艂ytka drukowana jest dost臋pna w AVT - oznaczenie AYT-1346.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl sierpieitO2.htm oraz na p艂ycie CD-EP03/2002 w katalogu PCB.
d艂ugo艣ci przewod贸w.
Schemat monta偶owy p艂ytki drukowanej przedstawiono na rys. 2. Krzysztof G贸rski, AVT krzysztof.gorski@ep.com.pl
38
Elektronika Praktyczna S/2002
MINIPROJEKTY
Wsp贸ln膮 cech膮 uk艂ad贸w opisywanych w dziale "Miniprojekty" jest 艂atwo艣膰 Ich praktyczne] 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,
Pr贸bnik tranzystor贸w
Prawie ka偶dy, kto
rozpoczyna swoj膮
przygod臋 z elektronik膮,
pr贸buje wykona膰 prosty
uk艂ad do sprawdzania
tranzystor贸w. W艂a艣nie
tym osobom
postanowili艣my u艂atwi膰
to zadanie
i opracowali艣my uk艂ad pr贸bnika tranzystor贸w.
Uk艂ad jest tak prosty, 偶e nie powinien sprawia膰 偶adnych problem贸w przy budowie i uruchomieniu. Do budowy uk艂adu zastosowano poczciwy uk艂ad czasowy NE55 5. Schemat blokowy testera pokazano na rys. 1, a schemat elektryczny na rys. 2.
Rys. 1
Uk艂ad dzia艂a nast臋puj膮co: generator a stabilny (klasyczna aplikacja NE555) generuje ci膮g impuls贸w zasilaj膮cych badane tranzystory. Takie rozwi膮zanie umo偶liwia badanie tranzystor贸w o odmiennej polaryzacji bez stosowania mechanicznego prze艂膮cznika zmieniaj膮cego polaryzacj臋 dla NPN-PNP. Poziom niski na wyj艣ciu generatora umo偶liwia badanie tranzystora typu
PNP, a wysoki NPN. Po do艂膮czeniu do zacisk贸w pomiarowych tranzystora dowolnego rodzaju uk艂ad automatycznie wy艣wietli typ tranzystora i okre艣li czy jest sprawny.
Dzia艂anie cz臋艣ci pomiarowej jest nast臋puj膮ce: przypomnijmy, 偶e do uk艂adu pod艂膮czymy tranzystor PNP. Gdy poziom impulsu na wyj艣ciu generatora jest r贸wny 0V, tranzystor Tl pozostaje zablokowany, emiter tranzystora badanego zostaje spolaryzowany dodatnio, a jego baza i kolektor ujemnie. Tym samym zosta艂y spe艂nione odpowiadaj膮ce mu warunki zadzia艂ania tranzystora PNP, w wyniku czego za艣wieca si臋 dioda LED. Przy zmianie stanu na wyj艣ciu generatora z 0 na 1, badany tranzystor zostaje zablokowany i dioda przestaje 艣wieci膰. Opisany cykl pracy powtarza si臋, powoduj膮c impulsowe 艣wiecenie diody LED PNP.
Z monta偶em i uruchomieniem nie powinni艣my mie膰 wi臋kszych trudno艣ci. Ca艂y
Rys. 2
Wskazania testera: /艣wieci jedna z diod: NPN lub PNP -
tranzystor sprawny, /艣wieca obie diody na przemian - tranzystor
niesprawny (przebicie emiter-kolektor), /nie 艣wieci 偶adna dioda - tranzystor
niesprawny (przerwa w tranzystorze).
uk艂ad mo偶na zmontowa膰 na tzw. paj膮ka. Dla tych, kt贸rzy wol膮 p艂ytki drukowane, na rys. 3 przedstawiamy jej schemat monta偶owy. Krzysztof G贸rski, AVT krzysztof.gorski@ep.com.pl
WYKAZ ELEMENT脫W
Rezystory
Rl, R2: 脫SkO R3, R4: lkG R5, R贸: 3,9kO Kondensatory Cl: 10nF C2: l^F/l贸Y P贸艂przewodniki Dl: LED czerwono D2: LED zielono Tl: BC548B US1: NE555
P艂ytka drukowana jest dost臋pna w AVT - oznaczenie AYT-1347.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl sierpieitO2.htm oraz na p艂ycie CD-EP03/2002 w katalogu PCB.
38
Elektronika Praktyczna S/2002
MINIPROJEKTY
Konwerter sygna艂u VHS->SVHS
Uk艂ad umo偶liwia
rozdzielenie
zintegrowanego sygna艂u
wideo (composite videoj,
wytwarzanego przez
domowe urz膮dzenia,
takie jak magnetowidy,
telewizory czy kamery,
na niezale偶ne
sygna艂y C (kolor)
i Y (luminancja),
dzi臋ki czemu mo偶na go
zapisa膰 lub wy艣wietla膰
na urz膮dzeniach
z wej艣ciem SVHS.
C6.L2 T 4.43 MHz
Sygna艂 wideo
C9, L1 >
4.43 MHz
Rys. 1
W systemie VHS obraz jest zapisywany w rozdzielczo艣ci ok. 230 linii, natomiast w systemie SVHS z rozdzielczo艣ci膮 do 400 linii. Nagranie zrealizowane w technice SVHS charakteryzuje si臋 bardzo wysok膮 jako艣ci膮 oraz du偶膮 trwa艂o艣ci膮 zapisu, z tego powodu ten standard zdobywa coraz wi臋ksze uznanie na rynku.
Na rys. 1 przedstawiono schemat blokowy konwertera, w kt贸rym mo偶na wyodr臋bni膰 nast臋puj膮ce bloki funkcjonalne:
- filtr pasmowozaporowy (4,43MHz),
- filtr dolnoprzepustowy (4,43MHz),
- wzmacniacze sygna艂贸w C i Y.
Na rys. 2 przedstawiono schemat elektryczny konwertera. Ca艂kowity sygna艂 wizyjny jest rozdzielany za pomoc膮 dw贸ch filtr贸w na dwa sygna艂y, z kt贸rych jeden jest pozbawiony informacji o kolorze (Y), i drugi zawieraj膮cy tylko informacje o kolorze (C). Filtr pasmowozaporowy sk艂ada si臋 z element贸w: L2, C6, natomiast dolnoprzepustowy wykonano na elementach: C9 i L6. Sygna艂y po rozdzieleniu s膮 kierowane na wzmacniacze Tl i T2 i na wyj艣cie konwertera.
Na rys. 3 zamieszczono schemat monta偶owy p艂ytki konwertera. Ze wzgl臋du na prostot臋 uk艂adow膮 z monta偶em nie powinni艣my mie膰 偶adnych problem贸w. Natomiast wi臋cej uwagi nale偶y po艣wi臋ci膰 uruchomieniu konwertera. Do uruchamiania powinni艣my dyspo-
_oY nowa膰 jakimkolwiek
藕r贸d艂em ca艂kowitego sygna艂u wizyjnego. Mo偶e nim by膰 magnetowid lub 癱 kamera wideo. Je偶eli mamy ju偶 藕r贸d艂o, to powin-ni艣my mie膰 r贸wnie偶 od-
biornik z wej艣ciem SVHS. Najprostszym sposobem na sprawdzenie uk艂adu jest naprzemienne pod艂膮czanie wyj艣cia
Y i C konwertera do wej艣cia wideo w odbiorniku telewizyjnym. Przy podaniu sygna艂u z wyj艣cia
Y konwertera obraz telewizyjny pozbawiony jest koloru (obraz jest czarno-bia艂y). Ewentualnej regulacji dokonujemy trymerem C6. Natomiast przy podaniu sygna艂u z wyj艣cia C otrzymamy ciemny ekran z kolorowymi konturami - regulacji mo偶emy dokona膰, wstawiaj膮c trymer zamiast sta艂ego kondensatora C9. Je偶eli podczas uruchamiania uzyskamy podobne efekty, to mo偶emy uzna膰 uk艂ad za wst臋pnie uruchomiony. Do-
+9VO
k艂adniejsze zestrojenie musimy przeprowadzi膰 przy pod艂膮czonym wyj艣ciu konwertera do wej艣cia SVHS. Konwerter mo偶e by膰 doskona艂ym i tanim uzupe艂nieniem domowego "studia" filmowego. Krzysztof G贸rski, AVT krzysztof.gorski@ep.com.pl
Rys. 2
WYKAZ ELEMENT脫W:
Rezystory
Rl, R4: 120Q R2, R5: 2,2kQ R3, R7: 47kQ Kondensatory
Cl: 47O^F/1脫V
C2, C4, C7, CIO, Cli:
lOOnF
C3:
C5:
Rys. 3
C6: 3-3OpF trymer
C8: 470^F/l6V
C9: 33pF
P贸艂przewodniki
Tl, T2: BC547
Ul: 78L05
R贸偶ne
LI, L2: 47^H
Wej艣cie cinch do druku
I szt.
P艂ytka drukowana jest dost臋pna w AVT - oznaczenie AVT-1345.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/7pdf/ sierpienO2.htm oraz na p艂ycie CD-EP08/2002 w katalogu PCB.
Elektronika Praktyczna 8/2002
39
MINIPROJEKTY
Przetwornik A/C z interfejsem RS232
Opisany uk艂ad
przetwarza napi臋ciowy
sygna艂 analogowy na
sygna艂 cyfrowy
i przesy艂a go do
komputera przez 艂膮cze
RS232. Tego rodzaju
uk艂ady s膮 u偶yteczne
przy zdalnym
sterowaniu wielu
urz膮dze艅 za pomoc膮
jednego komputera.
Mo偶na na przyk艂ad
monitorowa膰 kilka
piec贸w, a warto艣ci ich
temperatury przesy艂a膰
do centralnego
komputera. Za pomoc膮
prostego programu
przetwornik A/C
pomaga
w podejmowaniu
decyzji, jakie dzia艂anie
powinno zosta膰 podj臋te
po zmierzeniu
temperatury danego
pieca.
Uk艂ad sk艂ada si臋 z trzech blok贸w (schemat elektryczny pokazano na rys. 1). Jeden zajmuje si臋 konwersj膮 sygna艂贸w analogowych na cyfrowe. W drugim bloku sygna艂y cyfrowe zostaj膮 sformatowane zgodnie z norm膮 RS232 i przetworzone w strumie艅 danych. Ostatni blok jest sterownikiem linii.
Jako przetwornika u偶yto dobrze znanego, taniego uk艂adu ADC0804 (ICl). Przetwarza on napi臋cie analogowe z zakresu od 0 do 5V na warto艣ci cyfrowe o 256 poziomach. Mo偶na u偶y膰 tak偶e innych uk艂ad贸w, trzeba jednak wzi膮膰 pod uwag臋 pojemno艣膰 linii komunikacyjnej.
i IC6). W celu wytworzenia bitu startu i bitu stopu pierwsza i dziesi膮ta kom贸rka tego rejestru s膮 po艂膮czone odpowiednio z mas膮 i z Vcc.
W roli generatora zegarowego u偶yto uk艂adu 555. Zosta艂 on skonfigurowany jako multiwibrator astabilny do generacji fali prostok膮tnej HOHz. Zaleca si臋 skontrolowanie warto艣ci tej cz臋stotliwo艣ci, czy mie艣ci si臋 w granicach tolerancji 膮2%. W razie potrzeby warto艣膰 tej cz臋stotliwo艣ci mo偶na zmieni膰 za pomoc膮 C3 i R4.
Do generacji sygna艂u 艂adowania dla rejestr贸w przesuwaj膮cych u偶yto programowalnego licznika 74F169 (IC4). Jest do niego wst臋pnie
艂adowana liczba 10. Generuje zatem impulsy 艂adowania IC5 i IC6 co dziesi臋膰 impuls贸w zegarowych.
Ostatnim stopniem jest sterownik linii RS232 (IC7), zmieniaj膮cy poziom napi臋cia sygna艂u z TTL do +12V i -12V i dopasowuj膮cy do im-pedancji linii. Sterownikiem tym jest uk艂ad MAX232 w standardowej konfiguracji.
Do po艂膮czenia tego uk艂adu z komputerem trzeba u偶y膰 kabla null modem. Schemat tego kabla zosta艂 dla wygody umieszczony na schemacie. Szybkie uk艂ady "F" TTL mog膮 by膰 ewentualnie zast膮pione odpowiednikami "LS" (ma艂ej mocy Schottky). K. HaddadShargh,EE
Rys. 1
ADC0804 zosta艂 skonfigurowany do ci膮g艂ego przetwarzania. Niestety, w tym trybie w trakcie konwersji na magistrali danych pojawiaj膮 si臋 fa艂szywe dane. Problem ten rozwi膮zuje u偶ycie na wyj艣ciu przetwornika zatrzasku 74F374 (IC2). Po zako艅czeniu konwersji aktywowana zostaje ko艅c贸wka /INTR i w 74F374 zostaj膮 zapisane w艂a艣ciwe dane. S膮 one nast臋pnie kopiowane do rejestru przesuwaj膮cego w celu konwersji z formatu r贸wnoleg艂ego na szeregowy. Rejestr ten jest z艂o偶ony z dw贸ch szeregowo po艂膮czonych uk艂ad贸w 74F166 (IC5
L0 ile 41S 416
IC2 IC4 ICE ICH o1Q oft 08 08
WYKAZ ELEMENT脫W
Rezystory
Rl: 2,2kQ
R2: 10kQ
R3: 30kQ
R4: 5lkQ
Kondensatory
Cl: l5pF
C2: 1O^F/6,3V
C3, C4: lOOnF
C5, C贸, C7, C8:l^F/l6V
C9: P贸艂przewodniki
Dl: LM336
ICl: ADC0804
IC2: 74F374
IC3: NE555
IC4, IC5, IC脫: 74F169
IC7: MAX232
R贸偶ne
Kl: DSUB9 (偶e艅skie)
Artyku艂 publikujemy na podstawie umowy z wydawc膮 miesi臋cznika "Elektor Electronics".
Editorial items appearing on pages 39...40 are the copyright property of (C) Segment B.V., the Netherlands, 1998 which reserves all rights.
40
Elektronika Praktyczna 8/2002
MINIPROJEKTY
Konwerter VGA->TV
Konwertery sygna艂贸w
VGA->TV ciesz膮 si臋
spor膮 popularno艣ci膮,
kt贸ra wynika m.in.
z rozpowszechnienia si臋
nap臋d贸w DVD
w komputerach, obecnie
obowi膮zkowo
wyposa偶onych w karty
graficzne VGA.
Pomys艂odawc膮 prezentowanego projektu jest Fin To-mi Engdahl (http:// www.hui.fi/Misc/Elecironics/ ciicuits/vga2tv/cindex.htm). Jak wida膰 na schemacie elektrycznym (rys. 1), konwerter charakteryzuje si臋 nadzwyczaj prost膮 budow膮, co wi膮偶e si臋 oczywi艣cie z jego do艣膰 skromnymi, ale w zupe艂no艣ci wystarczaj膮cymi w wi臋kszo艣ci przypadk贸w mo偶liwo艣ciami. Do jego poprawnej pracy konieczne jest zainstalowanie driver贸w oraz specjalnego oprogramowania, kt贸rego autorem jest Paulo SErgio Coelho (http://www.geocities.com/Si-HconValley/Horizon/7694/).
Przeprowadzone przeze mnie pr贸by wykaza艂y, 偶e dobre wyniki konwersji obrazu mo偶na uzyska膰 w przypad ku pracy z rozdziel-czo艣ciami VGA 640x430 oraz SVGA 600x300 punkt贸w. Telewizor wsp贸艂pracuj膮cy z konwerterem musi by膰 wyposa偶ony w z艂膮cze Euioscaii.
Monta偶 konwertera mo偶na przeprowadzi膰 na p艂ytce drukowanej, kt贸rej schemat monta偶owy pokazano na rys. 3. Uk艂ad USl jest mon-
2
7^ -^ 13 )
8H74HCW li
9NMHCU
Widok okna uruchomionego programu VGATV pokazano na rys. 2. Za jego pomoc膮 mo偶na sterowa膰 prac膮 adaptera sprz臋towego (do艣膰 istotny jest wyb贸r wersji chipsetu karty graficznej, pomocny jest wbudowany w program system autodetekcji). Dost臋pne s膮 tak偶e drivery i oprogramowanie steruj膮ce dla Linuxa, co znacznie poszerza mo偶liwo艣ci stosowania prezentowanego konwertera.
PZb
Rys. 3
towany powierzchniowo, pozosta艂e elementy s膮 standardowe - z ko艅c贸wkami przystosowanymi do monta偶u przewlekanego. Obydwa gniazda (DB15 - VGA oraz Euroscart) s膮 montowane poza p艂ytk膮, do ich do艂膮czenia zalecam zastosowanie mo偶liwie kr贸tkich przewod贸w. Andrzej Gawryluk, AVT
Wykaz element贸w Rezystory
R1...R4, R8: 2,2kO
R5, R贸, R?,: 47D
R7: 120D
Kondensatory
CL C贸: 22^F/1脫V
C2: 22O^F/1脫V
C3, C4: lOOnF
CS: 47^F/1脫V
P贸艂przewodniki
Ul: SN74HC^脫
U2: 7SL05
QL Q2: BC547
R贸偶ne
Jl: DB15M (VGA)
P艂ytka drukowana jesi dosi臋pna wAVT- oznaczenie AYF-1355.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl sierpieitO2.htm oraz na p艂ycie CD-EP03/2002 w katalogu PCB.
Elektronika Praktyczna S/2002
41
MINIPROJEKTY
Zasilacz back-up
Zasilacz, niezwykle
prosty, powsta艂 przy
okazji budowania
uk艂adu
z mikrokontrolerem
nieposiadaj膮cym pami臋ci
EEPROM. Brak
nieulotnej pami臋ci
wymusi艂 zapewnienie
ci膮g艂o艣ci zasilania
mikrokontrolera.
Zasilacz mo偶emy wykorzysta膰 w prostych systemach mikroprocesorowych o niewielkim poborze mocy. Na rys. 1 przedstawiono jego schemat elektryczny. Podczas normalnej pracy systemu mikroprocesorowego dostarczane jest do niego napi臋cie zasilania oraz - dodatkowo -jest 艂adowany akumulator. 艁adowanie jest sygnalizowane 艣wieceniem diody LED. Pr膮d 艂adowania akumulatora zale偶y g艂贸wnie od maksymalnego pr膮du, jaki mo偶e p艂yn膮膰 przez diod臋 LED oraz od warto艣ci rezystora Rl. Po zaniku g艂贸wnego napi臋cia zasilaj膮cego, procesor jest zasilany napi臋ciem z akumulatora.
Na rys. 2 przedstawiono mozaik臋 艣cie偶ek p艂ytki drukowanej, na kt贸rej umieszczone s膮 wszystkie elementy
412V IN OLTT QND +5V
C1 i Oi470u^^" -piOOn | Im km
MW 艢 U51 7SL05 艢

DE l^ _J 1N4001 - ~ACCU
wraz z akumulatorem zasilaj膮cym. Monta偶 jest niezwykle 艂atwy i nie zabiera wi臋cej ni偶 10 mi- *;艢
nut. Uruchomienie uk艂adu polega na sprawdzeniu po艂膮cze艅 po wykonaniu monta偶u i w艂膮czeniu zasilania. Krzysztof G贸rski, AVT
9V
+ A
isn
WYKAZ ELEMENT脫W
Rezystory
Rl: 820D Kondensatory
Cl: lOOO^F C2, C3: lOOnF P贸艂przewodniki
Dl: LED D2: 1N4001 US1: 78L05 R贸偶ne
Z艂gcza ARK 2 szt.
P艂ytka drukowana jest dost臋pna w AVT - oznaczenie AYT-1351.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl sierpieitO2.htm oraz na p艂ycie CD-EP03/2002 w katalogu PCB.
Rys. 1
Rys. 2
42
Elektronika Praktyczna S/2002
MINIPROJEKTY
Prze艂膮cznik zbli偶eniowy
Prze艂膮cznik,
wykonany z u偶yciem
zaledwie kilkunastu
element贸w, spe艂nia
funkcj臋 prostego, lecz
skutecznego
prze艂膮cznika
zbli偶eniowego. Mo偶emy
go wykorzysta膰 do
ochrony r贸偶nych
przedmiot贸w, urz膮dze艅
i obiekt贸w przed
niepo偶膮danymi osobami,
b膮d藕 do w艂膮czania
o艣wietlenia lub
uruchamiania innych
urz膮dze艅.
Schemat blokowy prze艂膮cznika przedstawiono na rys. 1, a na rys. 2 jego schemat elektryczny. Prze艂膮cznik sk艂ada si臋 z dw贸ch cz臋艣ci: nadajnika i odbiornika. Blok nadajnika to prosty generator w.cz. wykonany na dw贸ch
lonego typu 74HCT14 generuj膮cy sygna艂 o cz臋stotliwo艣ci oko艂o 7MHz. Cz臋stotliwo艣膰 generatora jest regulowana po-
Nadajrik
Anteno nadawcza
Zasilanie
Odbiornik
Anteno od艅rcza
Blok
wykonawczy
Rys. 1
bramkach NOT z uk艂adu sca-US1 MA7805
tencjometrem POT3.
Zadaniem bloku odbiornika jest odebranie sygna艂u z cz臋艣ci nadawczej. Wszelkie zmiany odbieranych parametr贸w sygna艂u, wywo艂ane przemieszczaniem si臋 osoby mi臋dzy elektrodami (antenami), powoduj膮 zadzia艂anie prze艂膮cznika.
o wymiarach 10x2cm ka偶da wycinamy z blachy ocynkowanej.
Po zmontowaniu uk艂adu przyst臋pujemy do jego uruchomienia. Podczas uruchamiania i regulacji prze艂膮cznika musimy wykaza膰 nieco cierpliwo艣ci, a to ze wzgl臋du na do艣膰 spor膮 liczb臋 punkt贸w do regulacji. Nie przeszkadza to jednak, 偶eby urz膮dzenie zosta艂o wykonane i uruchomione przez mniej zaawanso-
Ol/T
Wyj艣cie
Rys 2 a
WYKAZ ELEMENT脫W
Rezystory
Rl, R7: 15kO R2, R4,: lkQ R3: 4,7 kQ R5: 1MQ R贸: 5/>kQ Pl: 5kD P2: lOOkD P3: 220D Kondensatory Cl: 22O^F/1脫V C2: 47 ^F C3, CS: lOOnF C4: 3贸pF
P艂ytka drukowana jest dost臋pna w AVT - oznaczenie AVT-1348.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl sierpienO2.htm oraz na p艂ycie CD-EP03/2002 w katalogu PCB.
C贸: lOOpF C7: 30pF C8: 220pF P贸艂przewodniki
Dl, D2: BAT82 D3: 1N4148 Tl, T2: BC547 US1: 78L05 US2: 74HCT04 US3: TL272 R贸偶ne LI: L2:
AVT
Rys. 3
Uk艂ad montujemy na p艂ytce drukowanej, kt贸rej mozaik臋 艣cie偶ek przedstawiono na rys. 3. Anteny
wanych elektronik贸w amator贸w.
Krzysztof G贸rski, AVT krzysztof.gorski@ep.com.pl
42
Elektronika Praktyczna S/2002
MINIPROJEKTY
JDM PIC Programmer 2
W artykule
przedstawiamy
konstrukcj臋 jednego
z najpopularniejszych
programator贸w dla
mikrokontroler贸w PIC,
za pomoc膮 kt贸rego
mo偶na programowa膰 je
w podstawce
programatora oraz
bezpo艣rednio
w systemie (ICSP).
Niezwykle wa偶nym atutem prezentowanego urz膮dzenia jest fakt, 偶e jest ono kompatybilne z oprogramowaniem pochodz膮cym z wielu bezp艂atnych 藕r贸de艂, dzi臋ki czemu ma zapewnion膮 d艂ug膮 偶ywotno艣膰 i faktyczny brak koszt贸w upgrade owania. Autorem projektu jest Du艅czyk Jens Dyekjaer Madsen, kt贸ry spopularyzowa艂 swoje opracowanie poprzez Internet (www.jdm.h omepage. dk). Obecnie programator JDM jest jednym z najpopularniejszych urz膮dze艅 tego typu. Za jego pomoc膮 mo偶na programowa膰 nast臋puj膮ce uk艂ady: PIC12C5XX, 12C67X, 24CXX, 16C55X, 16C61, 16C62X, 16C71, 16C71X, 16C8X, 16F8X, a tak偶e niekt贸re typy kart chipowych.
Schemat elektryczny programatora pokazano na rys. 1. Jest to urz膮dzenie o niezwykle prostej (ale jak sam
autor informuje, nie najprostszej) budowie. Programowany mikrokontroler jest zasilany napi臋ciem uzyskiwanym z portu RS232, dlatego przed jego zastosowaniem nale偶y sprawdzi膰, czy drivery wyj-
艣ciowe we wsp贸艂pracuj膮cym komputerze s膮 w stanie dostarczy膰 w stanie spoczynku napi臋cia powy偶ej 膮8,5V. Je偶eli nie, to istnieje du偶e prawdopodobie艅stwo, 偶e programator nie b臋dzie dzia艂a艂
Elektronika Praktyczna 8/2002
43
MINIPROJEKTY
Rys. 2
prawid艂owo. Pokazane na schemacie (rys. 1) numery styk贸w odnosz膮 si臋 do wtyku DB25 (RS232).
Schemat monta偶owy programatora pokazano na rys. 2. Monta偶 jest nad wyraz 艂atwy, 偶adnych problem贸w nie powinien tak偶e sprawi膰 dob贸r element贸w. Z艂膮cze DB25 jest montowane na kraw臋dzi p艂ytki drukowanej, dzi臋ki czemu ca艂y programator ma zwart膮 budow臋 i jest 艂atwy w stosowaniu.
Podczas pos艂ugiwania si臋 programatorem nale偶y zwraca膰 uwag臋 na spos贸b monta偶u programowanych uk艂ad贸w - miejsca instalacji "ma艂ych" PIC-贸w i pami臋ci EEPROM wyra藕nie zaznaczono na p艂ytce drukowanej.
El IIU U El Fl LI H -
UtllU
wtt vrr htt wtt wtt jitt wtt
irrr irrr mf *tt wtt >tr> sttt
JfH -ltf'F 艢t艂f J艂艂T JfH A" i艂TT
SFtT W艂f W艂艂 *艂艂艂 i艂lT ItFt I艂TT
fi"HF 3lYt JT艂t Jff艂T J艂艂T ItVI Htt I艂TT
JTFF IFFF WTT Km 艂f艂艂 ITfT WTT S艂TT
ITFF DTF JTTT JUTT im WTT ifTT HTT
ffrr irrr irrr hip btt *tt ittt im
srrr nrr mr HT艂 jitt htt Jftr ttti
irrr frrr nrr sm rrrr Wtt wtt ittt
jftr 艂trr wn htt htt rtn Tttt tftt
irrr 艂rrr wtr mt mt wrr mt att
ff rr rr rt n ff f? tt rr tw n ff rt rr n ir
1
*Uf|(IKA ^^^Hi
Rys. 4
Jak wspomniano na pocz膮tku artyku艂u, dost臋pne jest wiele program贸w umo偶liwiaj膮cych obs艂ug臋 programatora JDM, z kt贸rych chyba najdoskonalsze jest oprogramowanie IC-Prog (www.ic-prog.com), kt贸re ma wiele zalet, w tym: menu w j臋zyku polskim (autorem polskiej wersji j臋zykowej jest Rajmund Komosi艅ski), brak konieczno艣ci instalowania, bardzo szeroka gama programowanych uk艂ad贸w (w tym karty Phoenix i mikrokont-rolery AVR). Podczas pierwszego uruchomienia program trzeba skonfigurowa膰 w spos贸b pokazany na rys. 3. Wybranie polskiej wersji j臋zykowej menu (przyk艂adowy wygl膮d okna programu pokazano na rys. 4) jest mo偶liwe po wybraniu w menu Sei-iings>Opiions i wybraniu w wy艣wietlonym oknie zak艂adki Language.
Za pomoc膮 rozwijanego menu wybieramy j臋zyk polski i potwierdzamy wyb贸r klika-j膮c OK
Jak wspomniano wcze艣niej, programator JDM mo偶na wykorzysta膰 tak偶e do programowania mikrokontroler贸w w systemie (ICSP). Do tego celu niezb臋dne b臋dzie wykonanie prostego adaptera, kt贸rego schemat pokazano na rys. 5. Oryginalne oprogramowanie do programatora JDM ma wbudowane procedury korygowania parametr贸w czasowych przebieg贸w steruj膮cych prac膮 programatora, dzi臋ki czemu (naszym zdaniem raczej teoretycznie) mo偶na zastosowa膰 kabel p o艂膮czeniowy o d艂ugo艣ci do (wed艂ug tw贸rcy 6^贸nB oprogramowa- doiWipait贸wHB7 nia!) 100 met- Rys. 5
WYKAZ ELEMENT脫W
Rezystory
Rl: lOkO Kondensatory
C2: C3: P贸艂przewodniki
D2: diodo Zenera 5,1 V/
lOOmW
D3...D5, D7: 1N4148
D贸: diodo Zenera 8,2V/
lOOmW
GL Q2: BCS47
R贸偶ne
Podstawko DIP1S precyzyjna
DB25M
P艂ytka drukowana jest dost臋pna wAVT- oznaczenie AYT-1354.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl sierpieitO2.htm oraz na p艂ycie CD-EP03/2002 w katalogu PCB.
r贸w. Przeprowadzone przez nas pr贸by nie potwierdzi艂y tak dobrych osi膮g贸w zw艂aszcza, 偶e oprogramowanie IC-Prog okaza艂o si臋 znacznie bardziej przyjazne od oryginalnego. AG
ZullaN* wstaniu doalowi
1N4148
44
Elektronika Praktyczna S/2002
PROJEKTY
Interaktywny, telefoniczny modu艂 zdalnego sterowania, cz臋艣膰 2
AVT-5071
W drugiej cz臋艣ci artyku艂u
przedstawiamy spos贸b
po艂膮czenia element贸w
interaktywnego systemu
zdalnego sterowania oraz
spos贸b programowania jego
konfiguracji.
Programowanie
Aby prze艂膮cznik by艂 gotowy do pracy, nale偶y wcze艣niej zapisa膰 w pami臋ci (zaprogramowa膰) jego wszystkie parametry pocz膮tkowe. W tym celu 艂膮czymy wszystkie modu艂y wykonawcze (zworki JPl we wszystkich modu艂ach nale偶y usun膮膰) oraz do艂膮czamy napi臋cie zasilaj膮ce do p艂ytki sterownika. Modu艂y najlepiej jest po艂膮czy膰 r贸wnolegle kablem telefonicznym 2x2 (skr臋tka telefoniczna). Na rys. 8 przedstawiono spos贸b po艂膮czenia wszystkich modu艂贸w wykonawczych.
Do z艂膮cza CONl, za pomoc膮 kabla telefonicznego zako艅czonego wtykami typu PIN6, do艂膮czamy
prze艂膮cznik do linii telefonicznej. Poniewa偶 prze艂膮cznik nie posiada 偶adnych przycisk贸w, wszelkie parametry ustawia si臋 za pomoc膮 klawiatury telefonu. W tym celu do z艂膮cza CON2 do艂膮czamy aparat telefoniczny z wybieraniem tonowym (r贸wnie偶 za pomoc膮 kabla zako艅czonego wtykiem typu PIN6).
Na rys. 9 przedstawiono algorytm pracy procesora, kt贸ry wraz poni偶szym opisem pozwoli zapozna膰 si臋 z funkcjami realizowanymi przez opisany prze艂膮cznik.
Po w艂膮czeniu zasilania program znajduje si臋 w punkcie "1". W tej p臋tli jest sprawdzane pojawienia si臋 tonu DTMF oraz sygna艂u dzwonienia. Proces programowania zaczyna si臋 od podniesienia s艂uchawki i wybrania kodu dost臋pu. Kod ten zosta艂 tak dobrany, aby nie powodowa艂 wykonywania 偶adnych operacji przez central臋. Jednak dla pewno艣ci mo偶na po podniesieniu s艂uchawki odczeka膰 oko艂o 20 sekund, bo po tym czasie centrala wystawi sygna艂 zaj臋to艣ci i nie b臋dzie odbiera艂a ju偶 偶adnych kod贸w DTMF. Aby wej艣膰 w tryb programowania, nale偶y szybko wybra膰 sekwencj臋 znak贸w: "*##**!*",
Elektronika Praktyczna S/2002
45
Interaktywny, telefoniczny modu艂 zdalnego sterowania
musi by膰 ona wpisana z przerwami pomi臋dzy kolejnymi znakami nie wi臋kszymi ni偶 1 sekunda. Je艣li za艣 zostanie przekroczona maksymalna warto艣膰 czasu mi臋dzy wszystkimi znakami kodu, program przechodzi do pocz膮tku i proces wprowadzania kodu musi zosta膰 powt贸rzony. Po prawid艂owym wpisaniu kodu dost臋pu do programowania za艣wiec膮 si臋 wszystkie diody LED. Dioda D6 sygnalizuje za艂膮czenia przeka藕nika, a pozosta艂e informuj膮, 偶e prze艂膮cznik jest w trybie programowania (punkt "2" algorytmu mikrokontrolera). W dowolnej chwili mo偶emy roz艂膮czy膰 po艂膮czenie naciskaj膮c "*".
Za艂膮czenie przeka藕nika powoduje do艂膮czenie do linii telefonicznej uk艂adu I SD 2 5 60 umo偶liwiaj膮cego odtwarzanie komunikat贸w g艂osowych. Ze wzgl臋du na ograniczony czas trwania nagra艅 w trybie programowania, tylko niekt贸re opcje s膮 wspomagane przez komunikaty g艂osowe.
Nagrywanie komunikat贸w
Aby prze艂膮cznik m贸g艂 informowa膰 g艂osem, to nale偶y najpierw nagra膰 odpowiednie komunikaty. W tym celu naciskamy klawisz "1". Po zwolnieniu go za艣wieci si臋 jedna dioda sygnalizuj膮c, 偶e zosta艂o wybrane pierwsze menu. Aby zatwierdzi膰 wyb贸r, naciskamy przycisk "#". Nast臋pnie nagrywany wszystkie potrzebne komunikaty - ich spis zawarty jest w poni偶szej tabeli: L.p. Komunikat
1 Pierwszy
2 Drugi
3 Trzeci
4 Czwarty
5 Pi膮ty
6 Sz贸sty
7 Si贸dmy
8 脫smy
9 W艂膮cznik
10 W艂膮czony
11 Wy艂膮czony
12 Nieaktywny
13 Has艂o prawid艂owe
14 Has艂o b艂臋dne
15 Spr贸buj jeszcze raz
16 Czas min膮艂
17 Roz艂膮czam po艂膮czenie
18 Has艂o zosta艂o zmienione
19 Podaj nowe has艂o
20 Aby sprawdzi膰 stan w艂膮cznika, wybierz jego numer, aby roz艂膮czy膰, na-ci艣nij gwiazdk臋
21 Aby w艂膮czy膰, naci艣nij jeden, aby wy艂膮czy膰, naci艣nij dwa, aby zmieni膰 stan, naci艣nij trzy, aby anulowa膰, naci艣nij gwiazdk臋
22 Aby zatwierdzi膰, naci艣nij krzy偶yk, aby anulowa膰, naci艣nij gwiazdk臋
Modu艂 wy kor. 1 Modu艂 wy kor. 2 Modu wykon
P艂ytka sterownika Z艂膮cza F CON4|_ 8
RNn
1-Wlm
+5V

23 Tu prze艂膮czniktelefoniczny
24 Podaj has艂o, aby zako艅czy膰, naci艣nij krzy偶yk, aby roz艂膮czy膰, naci艣nij gwiazdk臋
呕eby rozpocz膮膰 nagrywanie komunikatu, naciskamy klawisz "1", zapala si臋 dioda D6, sygnalizuj膮c stan nagrywania. Wypowiadamy odpowiedni komunikat i by zako艅czy膰 zapis, naciskamy klawisz "3" i dioda D6 zga艣nie (na rys. 9 punkt "3" ).
Proces ten musimy powt贸rzy膰 dla wszystkich komunikat贸w, czyli 24 razy. Komunikat 23. jest komunikatem powitalnym i b臋dzie odtwarzany po odebraniu po艂膮czenia przychodz膮cego podczas obs艂ugi prze艂膮cznika, dlatego mo偶na go zmieni膰 wed艂ug w艂asnych upodoba艅.
Po zako艅czeniu nagrywania naciskamy gwiazdk臋 "*" i powracamy do g艂贸wnego menu programowania (na rys. 9 punkt "2") -za艣wiec膮 si臋 jednocze艣nie wszystkie diody LED. Nagrywanie komunikat贸w mo偶na tak偶e przerwa膰, w dowolnym momencie, naciskaj膮c gwiazdk臋 (powracamy do punktu "2"). Je偶eli w czasie nagrywania zostanie przekroczony maksymalny czas nagra艅 uk艂adu ISD2560, to wszystkie diody 艣wiec膮ce b艂ysn膮 pi臋膰 razy i program powr贸ci do punktu g艂贸wnego programowania (punkt "2"). Przedstawione komunikaty zajmuj膮 oko艂o 55 sekund, wi臋c bez problem贸w powinny si臋 "zmie艣ci膰" w pami臋ci uk艂adu ISD2560.
Sprawdzenie zapisanych komunikat贸w
Po nagraniu wszystkich komunikat贸w mo偶na je sprawdzi膰. W tym celu naciskamy klawisz "2" (za艣wiec膮 si臋 dwie diody) i potwierdzamy klawiszem hash "#" (punkt "4"). Ka偶dorazowe naci艣ni臋cie klawisza "#" spowoduje odtworzenie kolejnego komunikatu. Dodatkowo diody b臋d膮 wy艣wietla艂y numer ods艂uchiwanego komunikatu w postaci binarnej. Jak
Rys. 8. Spos贸b pod艂膮czenia modu艂贸w wykonawczych do p艂ytki sterownika
w ka偶dym podprogramie, klawiszem "*" mo偶emy przerwa膰 odtwarzanie komunikat贸w i powr贸ci膰 do programowania (punkt "2"). Je偶eli nie przerwiemy odtwarzania komunikat贸w, po odtworzeniu wszystkich program automatycznie powr贸ci do programowania i za艣wiec膮 si臋 wszystkie diody.
Zmiana has艂a dost臋pu
Po odebraniu po艂膮czenia przychodz膮cego, wszelkie zmiany stan贸w prze艂膮cznika mo偶na przeprowadzi膰 po podaniu czterocyfrowe-go has艂a. W nowym procesorze has艂em tym jest liczba "1234". Aby je zmieni膰, nale偶y w trybie programowania nacisn膮膰 przycisk "3" (za艣wiec膮 si臋 trzy diody) i potwierdzi膰 przyciskiem "#" (punkt "5"). W tym menu zostan膮 wykorzystane komunikaty g艂osowe. W s艂uchawce telefonu us艂yszymy komunikat "PODAJ HAS艁O", na podanie has艂a mamy 30 sekund. Je艣li w tym czasie nie zostanie naci艣ni臋ty 偶aden klawisz, to nast膮pi powr贸t do trybu programowania (punkt "2"). Nast膮pi to r贸wnie偶 wtedy, gdy has艂o zostanie wpisane b艂臋dnie trzy razy. Jednak je艣li znamy stare has艂o, to wpisujemy je. Program sprawdzanie has艂a jest tak zbudowany, 偶e mo偶na wybra膰 dowoln膮 liczb臋 cyfr has艂a, ale za ka偶dym razem uwzgl臋dniane b臋d膮 cztery ostatnie. 呕eby zatwierdzi膰 wybrane cyfry, naciskamy "#". Je偶eli podane has艂o jest b艂臋dne, to us艂yszymy komunikat: "HAS艁O B艁臉DNE, SR脫BUJ JESZCZE RAZ". Je艣li podamy prawid艂owe has艂o, to us艂yszymy komunikat: "HAS艁O PRAWID艁OWE, PODAJ NOWE HAS艁O". W贸wczas wprowadzamy nowe has艂o i potwierdzamy klawiszem "#". W s艂uchawce us艂yszymy: "HAS艁O ZOSTA艁O ZMIENIONE" - tak jak przy weryfikacji starego has艂a, pod uwag臋 s膮 brane tylko cztery ostatnio wybrane cyfry. Zmian臋 has艂a mo偶na w dowolnym momencie przerwa膰, naciskaj膮c gwiazdk臋.
46
Elektronika Praktyczna 8/2002
Interaktywny, telefoniczny modu艂 zdalnego sterowania
Zmiana liczby dzwonk贸w, po kt贸rych zostanie odebrane po艂膮czenie
Wst臋pnie liczba dzwonk贸w jest ustawiona na trzy, jednak mo偶e by膰 zmieniana w zakresie od 1 do 8. Aby zmieni膰 t臋 liczb臋, nale偶y nacisn膮膰 przycisk "4" (za艣wiec膮 si臋 cztery diody) i potwierdzi膰 klawiszem "#" (punkt "6"). Po chwili diody zgasn膮 i nast臋pnie za艣wieci si臋 taka liczba diod, jak ustawiona liczba dzwonk贸w, po kt贸rej po艂膮czenie zostanie odebrane. W naszym przypadku za艣wiec膮 si臋 trzy diody. Wybieramy odpowiedni膮 liczb臋 od 1 do 8, jednocze艣nie zapali si臋 taka liczba diod. Aby zapisa膰 wybran膮 liczb臋 dzwonk贸w, naciskamy "#", 偶eby anulowa膰 zmiany, naciskamy "*". W obydwu przypadkach powracamy do programowania(punkt "2").
Zapis numer贸w seryjnych uk艂ad贸w DS2405
Do sterowania uk艂adami DS2405 potrzebne s膮 ich numery seryjne. W tym celu nale偶y je wcze艣niej odczyta膰. Naciskamy klawisz "5" (za艣wieci si臋 pi臋膰 diod) i potwierdzamy wyb贸r klawiszem "#" (punkt "7"). Nast臋pnie do艂膮czamy do magistrali wybrany uk艂ad DS2405 poprzez zwarcie zworki JPl w module wykonawczym . Teraz naci skamy kla-wisz z cyfr膮, pod kt贸r膮 chcemy zarejestrowa膰 modu艂 (w zakresie od 1 do 8). Dany modu艂 b臋dzie obs艂ugiwany pod tym numerem, na przyk艂ad: pierwszy, drugi itd., za艣wieci si臋 r贸wnie偶 dioda odpowiadaj膮ca numerowi naci艣ni臋tego klawisza. Po wybraniu cyfry zostanie odczytany o艣miobajtowy numer seryjny do艂膮czonego uk艂adu DS2405. Mo偶emy anulowa膰 zapis tego numeru, naciskaj膮c gwiazdk臋 i powr贸ci膰 do menu zapisu kluczy. Aby jednak zapisa膰 odczytany klucz, naciskamy "#". Odczytany numer seryjny zostanie zapisany w wewn臋trznej pami臋ci EEPROM i b臋dzie pami臋tany nawet po wy艂膮czeniu zasilania. Diody b艂ysn膮 trzy razy, sygnalizuj膮c zapisanie klucza do pami臋ci EEPROM.
Je偶eli b臋dziemy chcieli na tej pozycji zapisa膰 jaki艣 inny uk艂ad DS2405, procedur臋 zapisu nume-
ru seryjnego nale偶y po-RySi 9. Algorytm pracy mikrokontrolera
Elektronika Praktyczna 8/2002
47
Interaktywny, telefoniczny modu艂 zdalnego sterowania
wt贸rzy膰. Numer nowego uk艂adu zostanie nadpisany na stary numer. Procedur臋 programowania numer贸w seryjnych nale偶y powt贸rzy膰 dla wszystkich modu艂贸w. Wa偶ne jest, aby w czasie odczytywania numer贸w seryjnych do magistrali 1-Wire by艂 do艂膮czony tylko jeden uk艂ad DS2405.
Je偶eli nie b臋dziemy u偶ywa膰 wszystkich o艣miu modu艂贸w wykonawczych, musimy pomimo to zapisa膰 ich numery seryjne. Na przyk艂ad, je偶eli pod numerem 贸smym nie b臋dzie modu艂u wykonawczego, nale偶y od艂膮czy膰 wszystkie uk艂ady DS2405, nacisn膮膰 klawisz "8" i potwierdzi膰 "#". Chocia偶 do magistrali nie by艂 do艂膮czony 偶aden uk艂ad DS2405, procesor odczyta numer seryjny, lecz warto艣膰 wszystkich bajt贸w b臋dzie r贸wna FFh, czyli same jedynki. Taki numer seryjny nie pozwoli na sterowanie tym modu艂em - jest informacj膮 dla procesora, 偶e pod numerem 贸smym nie ma do艂膮czonego w艂膮cznika. Informacja ta b臋dzie przydatna w czasie obs艂ugi prze艂膮cznika, ale o tym p贸藕niej. Po zarejestrowaniu wszystkich uk艂ad贸w prze艂膮cznik jest gotowy do obs艂ugi po艂膮cze艅 przychodz膮cych.
W menu programowanie znajduje si臋 jeszcze jedna funkcja uruchamiana klawiszem "6". S艂u偶y ona do lokalnego sterowania prze艂膮cznikiem z klawiatury do艂膮czonego r贸wnolegle telefonu. Mo偶liwe dzia艂ania w tym trybie zostan膮 opisane w dalszej cz臋艣ci artyku艂u.
Obs艂uga prze艂膮cznika
Procedura obs艂ugi po艂膮czenia przychodz膮cego sprawdza, czy na linii telefonicznej wyst臋puje sygna艂 dzwonienia, je偶eli zostanie wykryty pr膮d dzwonienia, procesor zlicza liczb臋 dzwonk贸w (punkt "9") i je艣li dzwonienie b臋dzie trwa艂o odpowiednio d艂ugo (liczba dzwonk贸w b臋dzie r贸wna zaprogramowanej), nast臋puje odebranie po艂膮czenia poprzez za艂膮czenie przeka藕nika PKl. Za艂膮czenie przeka藕nika nast臋puje po zako艅czeniu sygna艂u dzwonienia. Ma to na celu zabezpieczenie uk艂adu obci膮偶aj膮cego lini臋 telefoniczn膮 przed uszkodzeniem pr膮dem dzwonienia. Po odebraniu po艂膮czenia przez prze艂膮cznik, w s艂uchawce us艂yszymy komunikat powitania
"TU PRZE艁膭CZNIK TELEFONICZNY", a nast臋pnie zostaniemy poproszeni o podanie has艂a komunikatem: "PODAJ HAS艁O, ABY ZAKO艃CZY膯, NACI艢NIJ KRZY呕YK, ABY ROZ艁膭CZY膯, NACI艢NIJ GWIAZDK臉" (punkt "10"). Nale偶y poda膰 czterocyfrowe has艂o dost臋pu: wybieramy cyfry has艂a, pami臋taj膮c, 偶e niezale偶nie od liczby wybranych cyfr procesor rozpatruje zgodno艣膰 czterech ostatnio wybranych z zapisanymi w pami臋ci. Aby zatwierdzi膰 wybrane cyfry, naciskamy "#".
Je偶eli has艂o by艂o nieprawid艂owe, us艂yszymy komunikat: "HAS艁O B艁臉DNE, SPR脫BUJ JESZCZE RAZ". Przy podawaniu has艂a mo偶na si臋 pomyli膰 dwa razy, bo trzecia pomy艂ka zako艅czy si臋 komunikatem: "HAS艁O B艁臉DNE, ROZ艁膭CZAM PO艁膭CZENIE" i po艂膮czenie zostanie przerwane. Po艂膮czenie zostanie tak偶e przerwane, je偶eli w ci膮gu 30 sekund nie zostanie naci艣ni臋ty 偶aden klawisz -wtedy komunikat b臋dzie nast臋puj膮cy: "CZAS MIN膭艁, ROZ艁膭CZAM PO艁膭CZENIE". R贸wnie偶 my mo偶emy w dowolnej chwili przerwa膰 po艂膮czenie, naciskaj膮c "*" (nast膮pi powr贸t do punktu "2").
Je艣li jednak podali艣my prawid艂owe has艂o dost臋pu, us艂yszymy komunikat "HAS艁O PRAWID艁OWE, ABY SPRAWDZI膯 STAN W艁膭CZNIKA, NACI艢NIJ JEGO NUMER, ABY ROZ艁膭CZY膯 NACI艢NIJ GWIAZDK臉". Je偶eli nie podejmiemy 偶adnego dzia艂ania, to co oko艂o 10 sekund b臋dzie powtarzany komunikat: "ABY SPRAWDZI膯 STAN W艁膭CZNIKA, NACI艢NIJ JEGO NUMER, ABY ROZ艁膭CZY膯, NACI艢NIJ GWIAZDK臉". Po oko艂o 30 sekundach po艂膮czenie zostanie przerwane, przy czym b臋dzie poprzedzone komunikatem: "CZAS MIN膭艁, ROZ艁膭CZAM PO艁膭CZENIE".
Je艣li jednak chcemy sprawdzi膰 stan w艂膮cznika, naciskamy jego numer - numery w艂膮cznik贸w odpowiadaj膮 numerom modu艂贸w wykonawczych wprowadzonych wcze艣niej w procesie rejestracji numer贸w seryjnych uk艂ad贸w DS2405. Tak wi臋c, je艣li dany w艂膮cznik by艂 zarejestrowany pod cyfr膮 "1", to po wybraniu klawisza "1" wszelkie zmiany b臋d膮 si臋 odnosi艂y do tego w艂a艣nie w艂膮cznika.
Dla przyk艂adu, je艣li chcemy sprawdzi膰 stan w艂膮cznika pierwszego, to naciskamy klawisz "1". W odpowiedzi us艂yszymy komunikat "W艁膭CZNIK PIERWSZY WY艁膭CZONY"- je艣li by艂 wy艂膮czony lub "W艁膭CZNIK PIERWSZY W艁膭CZONY"- je偶eli by艂 w艂膮czony. Nast臋pnie us艂yszymy "ABY W艁膭CZY膯, NACI艢NIJ JEDEN, ABY WY艁膭CZY膯, NACI艢NIJ DWA, ABY ZMIENI膯 STAN, NACI艢NIJ TRZY, ABY ANULOWA膯, NACI艢NIJ GWIAZDK臉" (na rys. 9 punkt "11").
W zale偶no艣ci od tego, czy chcemy w艂膮czy膰, wy艂膮czy膰 lub zmieni膰 stan na przeciwny, naciskamy odpowiedni klawisz. Po naci艣ni臋ciu klawisza zostaje zmieniony stan w艂膮cznika - diody D6...D13 na p艂ytce r贸wnie偶 sygnalizuj膮 jego stan. Nast臋pnie us艂yszymy komunikat: "ABY ZATWIERDZI膯, NACI艢NIJ KRZY呕YK, ABY ANULOWA膯, NACI艢NIJ GWIAZDK臉" (punkt "12"). Je艣li zostanie naci艣ni臋ty klawisz "#", to zmiany zostan膮 zapisane, nast膮pi powr贸t do wyboru w艂膮cznika i ponownie zostanie odtworzony komunikat: "ABY SPRAWDZI膯 STAN W艁膭CZNIKA, NACI艢NIJ JEGO NUMER, ABY ROZ艁膭CZY膯, NACI艢NIJ GWIAZDK臉". Mo偶emy przyst膮pi膰 do zmiany stanu kolejnego w艂膮cznika (punkt "8"). Do tego punktu powr贸cimy r贸wnie偶 po naci艣ni臋ciu gwiazdki, lecz wprowadzone zmiany nie zostan膮 zapisane.
A co si臋 stanie, je艣li wybierzemy numer w艂膮cznika, kt贸ry nie zosta艂 do艂膮czony do p艂ytki sterownika? Na przyk艂ad wybierzemy klawisz "8", a zarejestrowanych jest tylko pi臋膰 w艂膮cznik贸w. W贸wczas w s艂uchawce us艂yszymy komunikat: "W艁膭CZNIK 脫SMY NIEAKTYWNY", nast膮pi powr贸t do wyboru w艂膮cznika i nale偶y wybra膰 inny numer.
O tym, czy w艂膮cznik jest aktywny, czy te偶 nie, decyduje zapisany w pami臋ci EEPROM procesora numer seryjny i dlatego w procesie rejestracji do艂膮czonych uk艂ad贸w DS2405 nale偶a艂o tak偶e zapisa膰 numery seryjne w艂膮cznik贸w, kt贸re nie s膮 do艂膮czone do sterownika. Zapisanie numeru seryjnego uk艂adu, kt贸ry nie jest do艂膮czony do magistrali 1-Wire powoduje wpis "pustego" klucza. W procesie obs艂ugi prze艂膮cznika daje to informacje, czy dany
48
Elektronika Praktyczna 8/2002
Interaktywny, telefoniczny modu艂 zdalnego sterowania
w艂膮cznik jest fizycznie dost臋pny czy nie. Diody 艣wiec膮ce reprezentuj膮ce stany w艂膮cznik贸w nieaktywnych s膮 zawsze wy艂膮czone.
Podsumujmy. W czasie obs艂ugi prze艂膮cznika wszystkie czynno艣ci zatwierdzamy klawiszem "#", zmiany anulujemy klawiszem "*". Klawisz "*" pozwala tak偶e na powr贸t do wy偶szego poziomu menu, a偶 do roz艂膮czenia po艂膮czenia. Wszystkie mo偶liwe dzia艂ania s膮 przedstawiane w postaci komunikat贸w g艂osowych, kt贸re s膮 powtarzane co oko艂o 10 sekund w przypadku braku reakcji u偶ytkownika. Je偶eli w ci膮gu oko艂o 30 sekund nie s膮 podejmowane 偶adne dzia艂ania (nie ma ton贸w DTMF), nast臋puje automatyczne roz艂膮czenie po艂膮czenia.
Sterowanie prze艂膮cznikiem z klawiatury lokalnego telefonu
Oprogramowanie prze艂膮cznika pozwala na sterowanie do艂膮czonymi w艂膮cznikami r贸wnie偶 z klawia-
tury telefonu do艂膮czonego do z艂膮cza CON2 p艂ytki sterownika.
Aby uruchomi膰 obs艂ug臋 lokaln膮, nale偶y wprowadzi膰 prze艂膮cznik w tryb programowania, wybieraj膮c szybko sekwencj臋 znak贸w "*##**1*" (jeste艣my w punkcie "2"), nast臋pnie nacisn膮膰 klawisz "6" (za艣wieci si臋 sze艣膰 diod) i potwierdzi膰 klawiszem "#". Po tych czynno艣ciach mo偶emy rozpocz膮膰 obs艂ug臋 prze艂膮cznika, jak w przypadku obs艂ugi zdalnej po podaniu has艂a dost臋pu (na rys. 9 punkt "8"). W s艂uchawce us艂yszymy: "ABY SPRAWDZI膯 STAN W艁膭CZNIKA, NACI艢NIJ JEGO NUMER, ABY ROZ艁膭CZY膯, NACI艢NIJ GWIAZDK臉" i dalej mamy dost臋p do wszystkich funkcji, tak jak podczas obs艂ugi zdalnej.
Kasowanie has艂a dost臋pu
Nowo zaprogramowany procesor ma ustawione has艂o dost臋pu na "1234". Has艂o to mo偶na zmieni膰 w trybie programowania, jed-
nak do zmiany has艂a trzeba poda膰 stare has艂o. Je艣li jednak nie pami臋tamy starego has艂a, mo偶na przywr贸ci膰 has艂o "1234". Wymaga to jednak pewnych ingerencji na p艂ytce sterownika. Aby przywr贸ci膰 startowe has艂o dost臋pu, nale偶y wy艂膮czy膰 zasilanie p艂ytki sterownika, anod臋 diody D6 zewrze膰 do masy poprzez rezystor 100Q (zaznaczony na schemacie elektrycznym lini膮 przerywan膮) i ponownie w艂膮czy膰 zasilanie. Wszystkie diody b艂ysn膮 trzy razy i zostanie wpisane has艂o startowe "1234". Wy艂膮czamy zasilanie, od艂膮czamy rezystor - prze艂膮cznik jest gotowy do pracy z has艂em dost臋pu "1234".
Krzysztof P艂awsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/sierpienO2.htm oraz na p艂ycie CD-EP08/2002B w katalogu PCB.
Elektronika Praktyczna 8/2002
49
PODZESPO艁Y
Procesor sygna艂贸w audio
Technika DSP (cyfrowe/ obr贸bki sygna艂贸w) cieszy si臋 ogromn膮 i ci膮gle rosn膮c膮 popularno艣ci膮 w艣r贸d konstruktor贸w na ca艂ym 艣wiecie. Procesory DSP s膮 stosowane w bardzo wielu, cz臋sto zaskakuj膮cych aplikacjach (jak np. sterowanie silnik贸w elektrycznych), jednak do najbardziej spektakularnych s膮 zaliczane wszelkiego rodzaju aplikacje audio. W artykule przedstawiany niezwykle nowatorski uk艂ad DSP do obr贸bki sygna艂贸w audio, kt贸ry mo偶na samodzielnie programowa膰, uzyskuj膮c praktycznie dowolne efekty albo skorzysta膰 z 16 predefiniowanych program贸w opracowanych przez producenta uk艂adu - firm臋 Alesis.
dla ka偶dego
Ogromne mo偶liwo艣ci techniki DSP nie zawsze s膮 w pe艂ni wykorzystywane z powodu problem贸w, na jakie napotykaj膮 konstruktorzy pragn膮cy zaj膮膰 si臋 t膮 tematyk膮. Jest to przede wszystkim konieczno艣膰 samodzielnego zdobywania zaawansowanej wiedzy, trudno艣ci ze zdobyciem materia艂贸w ' szkoleniowych dotycz膮cych wsp贸艂czesnych uk艂ad贸w DSP, a tak偶e wysokie ceny nowoczesnych narz臋dzi CAD\EDA, kt贸re mog艂yby wspom贸c projektowanie aplikacji uk艂ad贸w DSP. Chc膮c u艂atwi膰 i przyspieszy膰 realizowanie takich projekt贸w, przy jednoczesnym obni偶eniu ich ceny, producenci uniwersalnych procesor贸w DSP zacz臋li udost臋pnia膰 (coraz cz臋艣ciej bezp艂atnie) wersje 藕r贸d艂a program贸w realizuj膮cych najbardziej typowe zadania, jak np. wytwarzanie echa (pog艂osu), kodowanie i dekodo-
wanie MPEG sygna艂贸w audio i wideo, kompresja i dekompresja obraz贸w JPEG, widmowe szyfrowanie/deszyfrowanie sygna艂贸w audio itp. Programy te s膮 cz臋sto nazywane "blokami IP" (IP Cores), podobnie do blok贸w funkcjonalnych udost臋pnianych przez producent贸w uk艂ad贸w PLD.
Dzi臋ki uk艂adom takim jak AL3201
stosowanie
z aa wans o w any ch
technik cyfrowej
obr贸bki d藕wi臋ku jest
mo偶liwe tak偶e
w konstrukcjach
amatorskich, bez
konieczno艣ci zg艂臋biania skomplikowanych zagadnie艅 teoretycznych i - co niezwykle wa偶ne -bez konieczno艣ci ponoszenia du偶ych nak艂ad贸w finansowych.
Inn膮 drog膮, znacznie bardziej przyjazn膮 dla projektant贸w, poszli projektanci firmy Alesis, znanej przede wszystkim na rynku sprz臋tu nag艂o艣nieniowego oraz efekt贸w audio przeznaczonych do zastosowa艅 profesjonalnych. Opraco-
Elektronika Praktyczna S/2002
51
PODZESPO艁Y
DigOut
Rys.
wali oni bowiem procesor efekt贸w audio (oznaczony jako AL3201), w pami臋ci kt贸rego znajduje si臋 16 gotowych program贸w (opracowanych przez producenta i zapisanych w pami臋ci typu ROM), kt贸re realizuj膮 mniej i bardziej zaawansowane efekty audio. Jako艣膰 tych program贸w jest bardzo wysoka, poniewa偶 projektowali je do艣wiadczeni elektro akustycy maj膮cy do dyspozycji doskonale wyposa偶one laborato-
Tab. 1.
Numer programu Nazwa programu
0 Delay 1
1 Chorus/Room 2
2 Hali 2
3 Vocal Cancel
4 Delay 2
5 Chorus/Room 1
6 HalM
7 Rotary speaker
8 Flange
9 Plate 2
10 Room 1
11 Plate 1
12 Chorus
13 Plate 3
14 Room 2
15 Room 3
ria. Dzi臋ki wbudowanemu w procesor interfejsowi szeregowemu, do dodatkowej pami臋ci programu typu SRAM mo偶na wpisa膰 dowolny w艂asny program realizuj膮cy indywidualnie zaprojektowane efekty audio. Pomimo du偶ych mo偶liwo艣ci i zaawansowanej budowy wewn臋trznej, uk艂ad AL3201 zamkni臋to w niepozornej obudowie SOIC16.
Budowa uk艂adu i narz臋dzia projektowe
Schemat blokowy uk艂adu AL3201 pokazano na rys. 1. W pami臋ci programu ROM przechowywane s膮 programy realizuj膮ce efekty audio przygotowane przez producenta. List臋 tych program贸w zamieszczono w tab. 1. Cyfrowe dane o sygnale audio do i z procesora s膮 przesy艂ane szeregowo, w zwi膮zku z czym aplikacj臋 uk艂adu AL3201 trzeba wzbogaci膰 o stereofoniczne przetworniki A/C i C/A, kt贸re odpowiadaj膮 za konwersj臋 sygna艂贸w do/z postaci cyfrowej na analogow膮.
Opr贸cz gotowych program贸w przechowywanych w pami臋ci ROM, uk艂ad mo偶e by膰 programowany przez u偶ytkownika, dzi臋ki czemu liczba efekt贸w mo偶liwych do uzyskania jest niemal nieograniczona Programy tworzone przez u偶ytkownik贸w, oczywi艣cie po
Projekt cyfrowego
"studia" DSP,
wykonanego na
bazie uk艂adu AL32 Ol, przedstawimy we wrze艣niowym wydaniu Elektroniki Praktycznej.
kompilacji, s膮 wpisywane do dodatkowej, wbudowanej w uk艂ad AL3201 pami臋ci SRAM o pojemno艣ci 130 bajt贸w, w kt贸rej s膮 przechowywane informacje konfiguracyjne dla wszystkich blok贸w tworz膮cych tor obr贸bki sygna艂u audio. Do programowania uk艂adu s艂u偶y niezbyt skomplikowany asembler, kt贸ry mo偶na kompliowa膰 do postaci wykonywalnej za pomoc膮 bezp艂atnego narz臋dzia udost臋pnianego przez producenta
w Internecie (adres podajemy na ko艅cu artyku艂u, oprogramowanie jest dost臋pne tak偶e na p艂ycie CD-EP8/ 2002B). Chc膮c u艂atwi膰 samodzielny start z realizacj膮 eksperyment贸w akustycznych, firma Alesis przygotowa艂a kilka przyk艂adowych efekt贸w, kt贸rych - niestety, do艣膰 pobie偶ne - opisy wraz z kodami 藕r贸d艂owymi zosta艂y udost臋pnione w Internecie (publikujemy je tak偶e na CD-EP8/2002B).
AL3201 w praktyce
Poniewa偶 mo偶liwo艣ci procesora AL3201 s膮 bardzo du偶e, a cena bardzo przyst臋pna (ok. 6GBP), w laboratorium EP powsta艂 modu艂 procesora efekt贸w audio, kt贸ry szczeg贸艂owo opiszemy we wrze艣niowym wydaniu EP.
W ofercie handlowej AVT b臋d膮 dost臋pne p艂ytki drukowane, nie b臋dziemy natomiast oferowa膰 w sprzeda偶y detalicznej samych uk艂ad贸w: znacznie ta艅sze, szybsze i zazwyczaj bez k艂opot贸w celnych jest samodzielne zam贸wienie tych uk艂ad贸w u dystrybutora, kt贸rym jest brytyjska firma ProFusion PLC (http:// www.profusionplc.com).
Zapraszamy zatem za miesi膮c! Andrzej Gawry luk, AVT
Dodatkowe informacje
Dodatkowe informacje o uk艂adzie
AL3201 mo偶na znale藕膰 naptycie CD-EP8/2002B oraz w Internecie pod adresami:
- http://www.alesis-semi.com/ datasheets/3201 Dev.zip - kompilator asemblera,
- http://www.alesis-semi.com/ Appnote3201.htm - link do dokumentacji i not aplikacyjnych uk艂adu AL3201.
52
Elektronika Praktyczna S/2002
SPRZ臉T
Firma Atmel
znana fest przede
wszystkim jako
producent
mikrokon troler贸w,
kt贸re bardzo szybko zdoby艂y
艣wiatowe rynki i uznanie
konstruktor贸w - od
amator贸w do
profesjonalist贸w. Popularne
sta艂o si臋 nawet
powiedzenie: "je艣li nie
wiesz, jak to zrobi膰,
zastosuj Atmelka i po
k艂opocie". Du偶膮 rol臋
w osi膮gni臋ciu sukcesu firma
ta zawdzi臋cza doskona艂emu
wsparciu technicznemu swoich
wyrob贸w.
JTAG-owy emulator
dla procesor贸w Hffi
Nie pojedzie si臋 samochodem, je艣li nie naleje si臋 do baku paliwa. Tak samo jest z komputerem - bez odpowiedniego programu jest on tylko kup膮 z艂omu.
T臋 pozornie oczywist膮 prawid艂owo艣膰 szybko zauwa偶y艂a ameryka艅ska firma Atmel, kt贸rej misj膮 jest wprawdzie opracowywanie i produkcja podzespo艂贸w mikroelektronicznych, ale r贸wnolegle z nimi powstaj膮 tu i -co najwa偶niejsze - s膮 udost臋pniane u偶ytkownikom tak偶e liczne narz臋dzia wspomagaj膮ce. Oferta w tym zakresie obejmuje oprogramowanie, sprz臋t oraz bogat膮 dokumentacj臋 techniczn膮 w postaci kart katalogowych, przyk艂adowych procedur dotycz膮cych najcz臋艣ciej wyst臋puj膮cych zagadnie艅, a tak偶e gotowych aplikacji. Oprogramowanie i dokumentacj臋 w formacie *.pdf mo偶na 艣ci膮gn膮膰 bezpo艣rednio ze stron internetowych Atmela, w wi臋kszo艣ci przypadk贸w bez 偶adnych op艂at. Produkty nale偶膮ce do wsparcia sprz臋towego (programatory, starter kity, emulatory) naj艂atwiej jest uzyska膰 od lokalnych dystrybutor贸w firmy. S膮 one r贸wnie偶 do zdobycia w sklepach internetowych. Trzeba pod-
kre艣li膰, 偶e ich cena jest wzgl臋dnie niska. Ma to zach臋ci膰 do si臋gania po podzespo艂y Atmela.
Co to jest JTAG?
Jednym z najnowszych opracowa艅 Atmela jest JTAG ICE (JTAG In-Circuii Emulaior). Tajemniczo brzmi膮cy akro-
Atmel jest kolejn膮 "ni ikro kont roi ero w a"
firm膮, kt贸ra doceni艂a zalety interfejsu
JTAG, dotychczas stosowanego g艂贸wnie
w uk艂adach PLD.
nim JTAG to opracowana w 1993 roku specyfikacja obejmuj膮ca metody przemys艂owego testowania uk艂ad贸w cyfrowych, rozszerzona p贸藕niej r贸wnie偶 o ich programowanie (dotyczy to oczywi艣cie uk艂ad贸w, kt贸re daj膮 si臋 zaprogramowa膰 w systemie np. pami臋ci Flash, uk艂ady PLD, mi kro kontrolery). Aktualnie w ramach komitetu IEEE funkcjonuj膮 dwie grupy, zajmuj膮ce si臋 rozwijaniem i dostosowywaniem interfejsu do wymaga艅 nowych technologi-i. Niezwykle aktywna jest grupa IEE-E1532, kt贸ra zajmuje si臋 rozwijaniem standardu IEEE1149.
W specyfikacji JTAG zwr贸cono uwag臋 na udost臋pnienie zasob贸w badanego uk艂adu fnp. rejestr贸w mikroprocesora) za pomoc膮 specjalnego interfejsu. Metoda taka jest okre艣lana terminem boundary-scan - informacje o stanie testowanego uk艂adu s膮 uzyskiwane poprzez szeregowe wpisywanie wektora testuj膮cego, a nast臋pnie jego odczytywanie z rejestru szeregowo-r贸wnoleg艂ego tworz膮cego ,,艣cie偶k臋 kraw臋dziow膮" umo偶liwiaj膮c膮 dost臋p do poddawanych testowaniu wewn臋trznych element贸w uk艂adu scalonego. Do tej pory by艂o to mo偶liwe tylko poprzez jego wyprowadzenia zewn臋-
Rys. 1. Okno programu AVR Studio
Elektronika Praktyczna S/2002
53
SPRZ臉T
system uruchamiany
Rys. 2. System uruchomieniowy z emulatorem JTAG ICE
trzne. Nowe rozwi膮zanie uwolni艂o projektanta od konieczno艣ci u偶ywania podstawek pod uk艂ady, co nie jest bez znaczenia wobec coraz powszechniejszego stosowania element贸w przeznaczonych do monta偶u powierzchniowego. U偶yteczno艣膰 tego interfejsu uwidacznia si臋 szczeg贸lnie w przypadku podzespo艂贸w wyst臋puj膮cych w obudowach BGA [Bali Grid Array), dla kt贸rych 偶adne inne rozwi膮zanie nie mo偶e by膰 zastosowane. Jak wida膰,
JTAG 艣wietnie si臋 nadaje do uruchamiania system贸w mikroprocesorowych, tym bardziej, 偶e nie wyklucza mo偶liwo艣ci pe艂nej emulacji w czasie rzeczywistym.
JTAG ICE
Emulator JTAG ICE, chocia偶 wygl膮da niepozornie, w rzeczywisto艣ci jest pot臋偶nym narz臋dziem do programowania i debugowania w uk艂adzie [On-Chip Debugging - OCD), przeznaczo-
Co to jest JTAG?
Najpopularniejszy obecnie interfejs wykorzystywany do testowania i programowania (konfigurowania) w systemie wszelkiego rodzaju uk艂ad贸w cyfrowych, znany pod akronimem JTAG, powsta艂 w ko艅cu lat '80. Prace prowadzone przez Jotnt Test Actton Group mia艂y pierwotnie na celu opracowanie systemu umo偶liwiaj膮cego testowanie z艂o偶onych modu艂贸w cyfrowych po ich zmontowaniu na p艂ytkach drukowanych. Do tego celu opracowano specjalizowane uk艂ady logiczne interfejs贸w magistralowych, umo偶liwiaj膮cych monitorowanie wi臋kszo艣ci sygna艂贸w w module (na przyk艂ad uk艂ady logiczne skanowania kraw臋dziowego - Boundary Scan Logic - firmy Texas Instruments). Dzi臋ki temu mo偶liwe sta艂o si臋 testowanie nie tylko pojedynczych struktur p贸艂przewodnikowych, lecz tak偶e wzajemnych po艂膮cze艅 pomi臋dzy uk艂adami oraz po艂膮cze艅 pomi臋dzy uk艂adami i elementami stanowi膮cymi ich otoczenie. Na rysunku powy偶ej przedstawiono przyk艂adowy
Kom贸rka l/O
Szeregowa 艢cie偶ka danych
Wyprowadzenie uk艂adu
Uk艂ad * lnterfe艂em JTAG
Testowane
po艂膮czenie
mi臋dzyuk艂adowe
Uk艂ad z Interfejaeni JTAG^
#2
system cyfrowy poddawatn^p^io^^uf^^^gYew^^at"1w^pstemie,
sk艂adaj膮cy si臋 z dw贸ch po艂膮czonych ze sob膮 uk艂ad贸w.
Tw贸rcy interfejsu JTAG za艂o偶yli, 偶e nie ma potrzeby szczeg贸艂owego
testowania wewn臋trznych fragment贸w uk艂ad贸w, o kt贸rych poprawn膮
prac臋 powinien zadba膰 projektant na etapie projektowania struktury
logicznej. Testowanie funkcjonalne, z ma艂ymi wyj膮tkami, ograniczono
do weryfikacji stan贸w logicznych w kom贸rkach wej艣ciowych
i wyj艣ciowych testowanych uk艂ad贸w. St膮d w艂a艣nie BST, skr贸towa
nazwa najwa偶niejszej cechy i funkcji interfejsu JTAG, kt贸ra jest
akronimem od Boundary Scan Testtngy co nale偶y rozumie膰 jako
testowanie metod膮 艣cie偶ki kraw臋dziowej.
nym dla 8-bitowych, RlSC-owych mik-rokontroler贸w z pami臋ci膮 Flash, nale偶膮cych do rodziny AVR. Do powy偶szych cel贸w wykorzystuje okre艣lony aktualnie obowi膮zuj膮c膮 norm膮 IEE-E 1149.1 interfejs JTAG. W przypadku JTAG ICE, nale偶y stosowa膰 10-ko艅c贸w-kowe z艂膮cze IDC. Tak pozornie proste rozwi膮zanie umo偶liwia emulacj臋 mik-rokontrolera zainstalowanego w systemie docelowym, przy czym mo偶na to robi膰 w czasie rzeczywistym z wykorzystaniem wszystkich jego blok贸w funkcjonalnych, zar贸wno cyfrowych, jak i analogowych (porty I/O, uk艂ady czasowe, przetwornik analogowo-cyfro-wy, UART itd.). Dost臋p do zasob贸w wewn臋trznych jest realizowany poprzez specjalnie opracowany protok贸艂: AVR On-Chip Debug (AVROCD). Jest on zaimplementowany w oferowanym przez Atmela programie s艂u偶膮cym do uruchamiania w艂asnych aplikacji -AVR Studio wersja 3.52 lub p贸藕niejsza (rys. 1). Najnowsze wersje tego programu mo偶na pobra膰 ze strony http://www.atmel.com/atmel/products/ prod203.htm, znajduj膮 si臋 one tak偶e na p艂ycie CD-EP8/2002B.
Tak przygotowany system uruchomieniowy umo偶liwia odczyt i zapis rejestr贸w wewn臋trznych, w tym licznika rozkaz贸w, pami臋ci Flash/EEPROM oraz SRAM. Trudno sobie wyobrazi膰, aby cz臋sto 偶mudny proces wyszukiwania b艂臋d贸w w urz膮dzeniu sk艂adaj膮cym si臋 z cz臋艣ci sprz臋towej i programowej by艂 w og贸le wykonalny bez mo偶liwo艣ci ustawiania pu艂apek sprz臋towych. Cho膰 specyfikacja JTAG przewiduje u偶ywanie czterech, to JTAG ICE zezwala na wykorzystywanie tylko trzech break-point贸w. Jeden jest na sta艂e zarezerwowany do realizacji pracy krokowej. Wyr贸偶nia si臋 pu艂apki, tzw. og贸lnego przeznaczenia, na dane, maskowane SRAM i maskowane Flash. Dopuszczalne s膮 r贸偶ne ich kombinacje przy zachowaniu powy偶szego ograniczenia. Zwi臋kszenie liczby zatrzyma艅 programu jest na szcz臋艣cie mo偶liwe dla tych odmian mikrokontroler贸w, kt贸re wykonuj膮 rozkaz break. M贸wimy w贸wczas o pu艂apkach programowych. W takim przypadku nie ma 偶adnych ogranicze艅 ilo艣ciowych, wyst臋puje natomiast pewne spowolnienie dzia艂ania mikrokontrolera. 呕ycie cz臋sto nas nie rozpieszcza. Tak jest i tym razem: pu艂apek programowych nie da si臋 ustawi膰 dla uk艂ad贸w ATmegal28 pracuj膮cych w trybie ATmegalO3. Przyzna膰 jednak trzeba, 偶e z tych procesor贸w korzysta si臋 stosunkowo rzadko.
Program AVR Studio, w po艂膮czeniu z emulatorem JTAG ICE, jest przystosowany do uruchamiania procedur napisanych zar贸wno w asemblerze, jak i w j臋zyku C. Oznacza to, 偶e w oknie aplikacji mo偶e by膰 widoczny program
54
Elektronika Praktyczna 8/2002
SPRZ臉T
w wersji 藕r贸d艂owej, np. w postaci instrukcji j臋zyka C. Je艣li jednej instrukcji wysokiego poziomu odpowiada kilka instrukcji asemblero-wych, to podczas pracy krokowej programista tego nie odczuwa. W sytuacjach budz膮cych w膮tpliwo艣膰, np. gdy nie mamy pewno艣ci czy kompilator przet艂umaczy艂 program tak, jak by艣my sobie tego 偶yczyli, mo偶na si臋 prze艂膮czy膰 na prac臋 w trybie asemblerowym. W jednym kroku jest wtedy wykonywany jeden rozkaz mikrokont-rolera, a nie instrukcja j臋zyka wysokiego poziomu, co niekiedy u艂atwia znalezienie b艂臋du. Dzia艂anie emulatora JTAG ICE jest nieco odmienne od dzia艂ania tradycyjnych emulator贸w sprz臋towych, do jakich jeste艣my przyzwyczajeni. W tych emulatorach uruchamiany program by艂 zapisywany w pami臋ci RAM, kt贸ra "udawa艂a" pami臋膰 programu. Dla wsp贸艂czesnych mikrokontroler贸w podej艣cie takie jest cz臋sto zupe艂nie niewykonalne, gdy偶 w og贸le nie przewiduj膮 one wykorzystywania zewn臋trznej pami臋ci programu. Trzeba wi臋c pami臋ta膰, aby przed rozpocz臋ciem emulacji za艂adowa膰 do Flasha/EEPROM-u mikro-kontrolera wszystkie wykorzystywane dane i program. Oczywi艣cie JTAG ICE jest do tego przystosowany, a czynno艣膰 t臋 mo偶na wykona膰 z poziomu AVR Studio. Odpowiednie dane przesy艂ane s膮 za po艣rednictwem portu szeregowego z komputera do emulatora, sk膮d poprzez interfejs JTAG trafiaj膮 do mik-rokontrolera. Po wystartowaniu emulacji wszystkie rozkazy s膮 wykonywane w docelowym uk艂adzie a偶 do napotkania pu艂apki. W tym momencie odczytywane s膮 stany wszystkich zasob贸w mikrokontrolera, a wyniki przekazywane do programu AVR Studio. Metoda ta niestety nie zezwala na 艣ledzenie programu pomi臋dzy pu艂apkami. To niedogodno艣膰, do kt贸rej trudno si臋 na pocz膮tku przyzwyczai膰, ale nie pozostaje nam nic innego. Emulator JTAG ICE mo偶e by膰 zasilany z uk艂adu uruchamianego lub z zasilacza zewn臋trznego 9...15 VDC,
kt贸rego - nawiasem m贸wi膮c - nie ma w standardowym wyposa偶eniu zestawu. Emulator prze艂膮cza si臋 automatycznie na zasilanie z uk艂adu, gdy wykryje brak zasilania zewn臋trznego. Trzeba jednak wtedy zagwarantowa膰 mo偶liwo艣膰 dodatkowego obci膮偶enia zasilacza uruchamianego uk艂adu pr膮dem 220 mA przy 3,3 V lub 120 mA przy 5,5 V. Wszystkie po艂膮czenia systemu uruchomieniowego (rys. 2) powinny by膰 wykonane przed uruchomieniem programu AVR Studio. Mo偶liwe w贸wczas b臋dzie automatyczne wykrywanie mikrokontrolera zastosowanego w uruchamianym urz膮dzeniu. Automatycznie te偶 jest wykrywany port szeregowy wsp贸艂pracuj膮cy z emulatorem.
Czy to ju偶 koniec?
Opisywany powy偶ej system, sk艂adaj膮cy si臋 z emulatora JTAG ICE i programu AVR Studio, sprawia wra偶enie bardzo nowoczesnego, zapewniaj膮cego du偶y komfort pracy z nadziej膮, 偶e wystarczy na kilka lat. Jednak uwzgl臋dniaj膮c szybko艣膰 wprowadzania innowacji przez firm臋 Atmel, by艂bym ostro偶ny w wydawaniu takich opinii. Godne pochwa艂y jest to, 偶e producent podzespo艂贸w, niemal r贸wnolegle z wprowadzaniem najnowszych produkt贸w, oddaje klientowi niezb臋dne do ich uruchamiania narz臋dzia. Jak si臋gn膮膰 pami臋ci膮, bywa艂y firmy o podobnym profilu, kt贸re maj膮c nie najgorszy produkt, nie sprosta艂y konkurencji na skutek braku przekonania do niego klient贸w. A przecie偶 naj艂atwiej to zrobi膰, zapewniaj膮c odpowiednie wsparcie techniczne. W naszej bran偶y jest to przecie偶 skuteczniejsze, ni偶 najbardziej wymy艣lne slogany reklamowe. Jaros艂aw Doli艅ski, AVT jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Prezentowany w artykule zestaw udost臋pni艂a redakcji firma JM Elektronik, tel. (32) 339-69-01, wwwjm.pl.
Na ptycie CD-EP8/2002B publikujemy dwie wersje programu AVR Studio: 3.54 i 4.0.
Elektronika Praktyczna 8/2002
55
TRENDY
Opracowuj膮c programy zadawa艂em sobie cz臋sto pytanie: na ile bezpieczny fest m贸j program wewn膮trz mi kro kontrolera? W jakim stopniu urz膮dzenie, na kt贸rego konstrukcj臋 i rozw贸j po艣wi臋ci艂em na przyk艂ad dwa lata, a kt贸rego (w wi臋kszo艣ci przypadk贸w) g艂贸wn膮 warto艣ci膮 jest program, jest trudne do skopiowania? Na ile pewne jest zabezpieczenie przez ustawienie bit贸w blokuj膮cych dost臋p do pami臋ci programu? Jak skuteczna jest blokada dost臋pu do pami臋ci typu Flash przy mo偶liwo艣ci jej wielokrotnego zapisu?
Od redakcji
Publikuj膮c ten artyku艂 zamierzamy sprowokowa膰 dyskusj臋 na temat zabezpieczenia w艂asno艣ci intelektualnej. Zach臋camy wi臋c do przysy艂ania w艂asnych pomys艂贸w "rozkuwania" zabezpiecze艅. Nie wszystkie sposoby opisane w artykule s膮 mo偶liwe do natychmiastowego odtworzenia w warunkach typowego laboratorium elektro niczne go, ale niekt贸re nie wymagaj膮 praktycznie 偶adnego wsparcia sprz臋towego.
Pewnego razu zada艂em tego rodzaju pytanie na li艣cie dyskusyjnej programist贸w, znajduj膮cej si臋 na stronie http;// www.3052.com. Odpowiedzi, kt贸re uzyska艂em lekko mnie zaskoczy艂y. By艂a mi臋dzy nimi na przyk艂ad sugestia, 偶e je偶e-li program do urz膮dzenia, kt贸re chc臋 skopiowa膰, wart jest dla mnie milion dolar贸w, to taka kwota przes艂ana do firmy X - notabene producenta mi臋dzy innymi mikrokontroler贸w - spowoduje, 艣e udost臋pni mi ona technologi臋 umo偶liwiaj膮c膮 odczyt pami臋ci programu, mimo jej blokady. Na poparcie tej tezy autor przys艂a艂 mi artyku艂 rosyjskiego stypendysty pracuj膮cego na Uniwersytecie Cambridge w Wielkiej Brytanii - Sergie-ja Skorobogatova. Pracuje on w laboratorium komputerowym w grupie pracownik贸w naukowych zajmuj膮cych si臋 zabezpieczeniami komputer贸w osobistych oraz mikrokontroler贸w. Grupa ta bada, na ile skuteczne s膮 wszelkiego rodzaju zabezpieczenia program贸w. Badania te s膮 najcz臋艣ciej wykonywane na zlecenie firm-producent贸w sprz臋tu i oprogramo-
Jak pisze Sergiej o swojej pracy, polega ona na zrozumieniu, jak zabezpieczenie mo偶e zosta膰 z艂amane i udzieleniu wskaz贸wek producentowi, jak ono powinno by膰 wzmocnione. Badania te, w zwi膮zku z rosn膮cym zastosowaniem mikrokontroler贸w - na przyk艂ad w kartach p艂atniczych - maj膮 ogromne znaczenie.
Wprowadzenie
Mi kro kontrolery znajduj膮 zastosowania praktycznie we wszystkich nowoczesnych urz膮dzeniach. Cz臋sto s膮 tak偶e u偶ywane przez amator贸w do budowania niewielkich uk艂ad贸w "rozrywkowych", inne u偶ywane s膮 przez firmy do budowania urz膮dze艅 s艂u偶膮cych do kontroli, pomiaru itp. Jeszcze inne stosowane s膮 w powa偶nych aplikacjach przez wojsko, s艂u偶by bezpiecze艅stwa, banki, s艂u偶by medyczne.
Ka偶dy mikrokontroler wykonuje program umieszczony w jego pami臋ci. Je艣li opracowujesz programy dla mikrokontroler贸w, jeste艣 zainteresowany zabezpieczeniem wynik贸w swojej pracy przed nieautoryzowanym dost臋pem czy kopiowaniem - chcesz mie膰 po prostu kontrol臋 na procesem dystrybucji swojego dzie艂a. Z tak膮 intencj膮 producenci mikrokontroler贸w tworz膮 specjalne zabezpieczenia, kt贸re je艣li s膮 w艂膮czone, pozwalaj膮 autorowi oprogramowania na zabezpieczenie wynik贸w swojej pracy. To jest tak zwana opcja copy lock.
Mikrokontroler trzeba zaprogramowa膰 przed jego dzia艂aniem w uk艂adzie. S膮 r贸偶ne sposoby programowania, zale偶ne od producenta i typu mikrokontrolera.
Dla przeprowadzania eksperyment贸w dost臋pne s膮 mikrokontrolery wielokrotnie programowalne. Do produkcji niewielkiej liczby urz膮dze艅 przeznaczone s膮 mikrokontrolery do jednokrotnego zaprogramowania fOTP), kt贸re s膮 znacznie ta艅sze od tych do wielokrotnego u偶ytku. Dla produkcji wielkonak艂adowej przeznaczone s膮 mikrokontrolery programowane przez producenta w procesie jego produkcji. Tak wytwarzane uk艂ady s膮 bardzo tanie, jednak ze wzgl臋du na koszt wdro偶enia tak zwanej maski, przy woluminie poni偶ej 1000 sztuk nie s膮 op艂acalne.
Wr贸膰my jednak do najcz臋艣ciej stosowanych mikrokontroler贸w, kt贸re wyposa偶one s膮 najcz臋艣ciej w pami臋膰 EPROM,
Elektronika Praktyczna 8/2002
57
TRENDY
EEPROM lub Flash. Po tym, jak program zosta艂 napisany i skompilowany, powinien by膰 zapisany w pami臋ci programu mikrokontrolera. Do tego celu s膮 przeznaczone specjalne przyrz膮dy, zwane programatorami. W przypadku wi臋kszo艣ci wsp贸艂czesnych mikrokontroler贸w s膮 to przyrz膮dy proste i tanie, zawieraj膮ce 藕r贸d艂o napi臋cia zasilania, kilka tranzystor贸w czy uk艂ad贸w scalonych i nieco innych element贸w elektronicznych. Dla niekt贸rych mikrokontroler贸w nale偶y u偶y膰 specjalnego programatora rozprowadzanego wy艂膮cznie przez producenta uk艂adu, ale te mikrokontrolery nie nale偶膮 do grupy cz臋sto stosowanych.
Techniki ataku
Zwi臋kszaj膮ca si臋 liczba urz膮dze艅 elektronicznych z mikrokontrolerami oraz wzrastaj膮ca ich powszechno艣膰 i znaczenie - od p艂atnej TV, poprzez telefony kom贸rkowe GSM, systemy zaliczkowych licznik贸w energii elektrycznej i gazu, do portfeli elektronicznych i kart p艂atniczych - wp艂ywa na wzrost zainteresowania zabezpieczeniem przed mo偶liwo艣ci膮 duplikacji funkcji mikrokontroler贸w w celu ochrony przed mo偶liwo艣ci膮 sfa艂szowania na przyk艂ad kart Smartcard i innych s艂u偶膮cych dokonywaniu rozlicze艅 finansowych czy te偶 bezpiecze艅stwu. Zabezpieczenia te nie s膮 pewne: specjalista z dost臋pem do urz膮dze艅 s艂u偶膮cych do testowania uk艂ad贸w scalonych mo偶e odtworzy膰 dane kluczowe poprzez bezpo艣redni膮 obserwacj臋 struktury i manipulacj臋 elementami mikrokontrolera. Faktem nie do podwa偶enia jest, 偶e przeznaczaj膮c na to odpowiednie 艣rodki finansowe, ka偶de urz膮dzenie s艂u偶膮ce zabezpieczeniu przed nieautoryzowanym dost臋pem do danych zawartych w strukturze mikrokontrolera mo偶e by膰 spenetrowane i rozpoznane. Tak wi臋c poziom zabezpieczenia oferowanego przez r贸偶norodne produkty mo偶e by膰 okre艣lony ilo艣ci膮 potrzebnego czasu i pieni臋dzy koniecznych na spenetrowanie mechanizm贸w uniemo偶liwiaj膮cych atak.
Mo偶na rozr贸偶ni膰 cztery zasadnicze metody ataku:
- Technika mikrosondowania mo偶e by膰 u偶yta do bezpo艣redniego dost臋pu do struktury uk艂adu. W ten spos贸b mo偶na obserwowa膰, manipulowa膰 i prowadzi膰 interakcj臋 z uk艂adami znajduj膮cymi si臋 w strukturze mikrokontrolera.
- Atak programowy - u偶ywa si臋 normalnego interfejsu do komunikacji z procesorem i wykorzystuje b艂臋dy zabezpiecze艅 odnalezione w protokole komunikacyjnym, algorytmach kryptograficznych lub ich zastosowaniach.
- Technika "pods艂uchiwania" polega na obserwacji charakterystyk analogowych procesora z bardzo du偶膮 rozdzielczo艣ci膮 czasow膮, wszystkich po艂膮cze艅 zasilaj膮cych i sygna艂贸w interfejsowych oraz promieniowania elektromagnetycznego podczas normalnej pracy mikrokontrolera.
- Generowanie stan贸w awaryjnych, to technika u偶ywaj膮ca r贸偶nego rodzaju stan贸w zabronionych fna przyk艂ad zbyt niskie lub zbyt wysokie napi臋cie
Przeznaczaj膮c odpowiednie -艣rodki
finansowe mo偶emy skopiowa膰
konfiguracj臋 ka偶dego uk艂adu PLD,
oprogramowanie mikrokontrolera czy
pami臋膰 nieulotn膮 oraz program w niej
pr z echo wy wany.
zasilania, bardzo wolne zmiany zboczy sygna艂贸w zegarowych itp.) do spowodowania b艂臋dnej pracy mikrokontrolera i w ten spos贸b uzyskanie dost臋pu do danych. Wszystkie techniki zwi膮zane z mikro-sondowaniem s膮 inwazyjne. Wymagaj膮 godzin lub tygodni ci臋偶kiej pracy w specjalistycznym laboratorium oraz zniszczenia obudowy mikrokontrolera. Pozosta艂e techniki s膮 nieinwazyjne. Atakowana karta czy mikrokontroler nie s膮 fizycznie niszczone, a oprzyrz膮dowanie u偶ywane w czasie ataku, to czasami zwyk艂y czytnik kart Smartcard, b膮d藕 te偶 nieco zmodyfikowany programator.
Atak nieinwazyjny jest dla u偶ytkownika bardzo niebezpieczny z dw贸ch powod贸w:
- po pierwsze, w艂a艣ciciel na przyk艂ad karty p艂atniczej, mo偶e nie zauwa偶y膰, 偶e zosta艂a ona skradziona, a jej zabezpieczenia z艂amane - od tego momentu w obiegu mo偶e si臋 znajdowa膰 na przyk艂ad jej duplikat.
- po drugie, urz膮dzenia potrzebne do tak przeprowadzonego z艂amania zabezpiecze艅 mog膮 by膰 tanio i 艂atwo skopiowane przez inne osoby - mo偶e zosta膰 rozwini臋ta ich funkcjonalno艣膰, na skutek czego przeprowadzenie podobnych atak贸w w przysz艂o艣ci b臋dzie 艂atwiejsze i szerzej dost臋pne.
G艂贸wnym problemem przy takiej metodzie ataku jest szczeg贸艂owa wiedza na temat procesora i oprogramowania. Z drugiej strony, wiedza potrzebna do przeprowadzenia ataku inwazyjnego nie jest a偶 tak szczeg贸艂owa, wymaga jednak orientacji w zastosowaniu r贸偶nych technik dla szerokiej gamy produkt贸w. Atak ten zazwyczaj zaczyna si臋 od odtworzenia struktury uk艂adu oraz schematu po艂膮cze艅 poszczeg贸lnych jego komponent贸w. Cz臋sto rezultatem tak przeprowadzonego szczeg贸艂owego rozpoznania jest rozwini臋cie metod ataku nieinwazyjnego.
Bezpiecze艅stwo mikrokontrolera lub karty Smartcard powinno by膰 zapewnione w taki spos贸b, 偶e tak ma艂a - jak to tylko mo偶liwe - ilo艣膰 informacji fna przyk艂ad poprzez kompresj臋 danych), powinna by膰 mo偶liwa do odtworzenia, gdy konieczne jest jej u偶ycie. Drugim celem jest utrzymanie tej informacji nietkni臋tej podczas operacji tak, aby potencjalny w艂amywacz nie mia艂 mo偶liwo艣ci zmiany sekretnego kodu - klucza operacji do znanej sobie warto艣ci lub w innym przypadku do interakcji oraz rozpoznania sekretnego algorytmu szyfrowania/deszyfrowania.
Obecnie wi臋kszo艣膰 atak贸w przeprowadzanych przez w艂amywaczy komputerowych, chc膮cych uzyska膰 dost臋p do danych zawartych w mikrokontrolerze czy Smartcard, mo偶na zaklasyfikowa膰 do dw贸ch kategorii - inwazyjne i nieinwazyjne.
Atak nieinwazyjny
Atak nieinwazyjny odbywa si臋 bez naruszenia struktury mikrokontrolera, czy karty Smart. Przeprowadzany jest najcz臋艣ciej poprzez rozpoznanie i wszelkiego rodzaju sztuczki zwi膮zane z napi臋ciem zasilania oraz sygna艂em zegarowym. Ataki w stanach, w kt贸re wprowadzany jest mikrokontroler obni偶eniem lub podwy偶szeniem napi臋cia zasilania, mog膮 zosta膰 u偶yte, aby wy艂膮czy膰 obwody zabezpiecze艅 lub zmusi膰 procesor do wykonania niew艂a艣ciwych operacji. Z tego powodu niekt贸re modele mikrokontroler贸w posiadaj膮 wbudowane w struktur臋 uk艂ady detekcji poziomu napi臋cia zasilania, ale w ich dzia艂aniu jest brak reakcji na bardzo szybkie zmiany napi臋cia. Dlatego te偶 szybko zmieniaj膮ce si臋 i w r贸偶ny spos贸b napi臋cie zasilania jest w stanie doprowadzi膰 do stanu wy艂膮czenia obwod贸w zabezpiecze艅, bez uszkodzenia chronionej informacji.
Zmiany napi臋cia zasilania i sygna艂u zegarowego mog膮 by膰 r贸wnie偶 u偶yte w niekt贸rych mikrokontrolerach do spowodowania przyj臋cia i wykonania niekt贸rych instrukcji. Ka偶dy bowiem tranzystor i jego po艂膮czenie pracuj膮 tak, jak element RC z okre艣lon膮 charakterystyk膮.
58
Elektronika Praktyczna S/2002
TRENDY
Maksymalna cz臋stotliwo艣膰 zegara sota okry艂o.-,.-, ;.-... _ .L - . &
przez opos-
i. Podobnie ka偶dy z element5W| ta. kich jak przerautniki, ma swoje .harak t-ystyczne "okienko syBna艂 W8" a~ zwyczaj kilka pikosekund], w * kt贸rego pr贸bkuje" on ^
ty. mo偶na usun膮膰 za pomoc膮 kwasu azotowego. Opary podgrzanego k7
aZOtOWAn,-, 檦;~ 4..' n ^ .
^nr Dla' Takwi^, je艣li zastosujemy syg-nt egarowy kr贸tS3ymz normalni," _ bo tez napi,cie zasilania zmisni sie w spos贸b bardzo ^a艂towny, to spow" duje zadzia艂anie tylko niekt贸rych tran zystorow wewn膮trz struktur/ k
yg艂y, kt贸re nie s膮 ptzesy poprzsz szyn, danych. SylZl nsrowans przez taki8 operacje7 akun" w-nie bitu przeniesienia, a LzeLl ne interesuj膮ce poniewa偶 s膮 one u偶t -ne przez wlele膮leorytm贸Jkn;toU^ ^znych. Chocia偶 zmiany warto艣ci bi
tow statusu nie mog膮 byJbezSl 偶arzone ra,sto powoduj膮 L zrr
zawarto艣ci licznika rozkaz贸w ub konana instrukcji tak zwanego rokodu, kt贸re z kolei pij L
astikowe obudowy. uk艂adu. Ca艂y proess nale偶y
napi,cia zasilania i syena艂u zegarowego, mo偶na doprowadzi膰 do sytuacji gdy procesor wykona szereg kom Potnie rosnych i b艂臋dnych instrukcji, za-mi r贸wnie偶 takich, kt贸re nie s膮 dozw . lon i obs艂ugiwane w danej strukturze L-fU. Chocia偶 nie wiemy, kt贸ra
cs-
jpos贸bwp^me/adaia艂an
rokontroler膮, to ca艂kiem 艂atwo mo偶na Poprowadzi膰 systematyczne poBUJ m w艂ascwej sekwencji sygna艂贸w
nna mo偶liwo艣膰 daje analiza poboru
* z napijem^!^ Wierzyc za pomoc膮 przetwornika 檌any pr膮du pobieranego przez zasila ny procesor. Wzmacniacze p^du ygn i
ow adresowych i szyny danych saTe-o budowane z wielu po艂膮czonych ze job.rownolegle mw.rter贸w dla^a,de go bitu danych czy adres贸w Ka偶da ana stanu takiego bitu poci膮g z znaczny pob贸r pradu^as ania Zmiana pojedynczego bitu z o na l i odwrotnie, poci膮ga C3,sto za Soba wzrost
p皐oduj膮
zasil Zmi3ny P^ywu pr膮du
zasilaj膮cego w r贸偶nym czasie, odCo w-dn,o do sygna艂u zegarowego i fch sUn mo偶e byc rozpoznany poV\zt pr贸bkowanie sygna艂u 2asilajjeL^z od powledn.o du偶膮 cz臋stotliwo艣ci膮
Inn膮 mo偶liwo艣膰 w艂amania stwarzaj膮 w艂a艣ciwo艣ci pami臋ci RAM - utrzymy^ ne danych przsz pewien czasu po wy. Uczeniu napij膮 zasilania. Sl
f" RAM t
-. . -- r^wni9艢 uszkodzenia nln
miniowych doprowadze艅 uk艂adu. Struk" tura krzemowa powinna by膰 p贸藕niej umyta w p艂uczce ultrad藕wi臋kowej z pomoc膮 aCetonu. Mycie to mo偶na'po
Przedzie kr贸tk膮 k膮piel膮 w wodzie de^o n 偶uj膮cej -az wisoprop膮nolu. Po t truktura mo偶e by膰 przyklejon膮 i podT 偶on膮 r,came d0 ^ ^ P f*
tatowego. Metoda t膮 umo偶liwia usunil 玡 izo acji epoksydowej bez uszkodze-
'L ' StrUktUt5' i:>e> zewn膮tK-
nych wyprowadze艅
mo^LtsfpT^epro^ze^^o^S:1 nia lub atak poprzez modyfikacj1,13 strlk" tury uk艂adu. Bardzo wa偶nym nS" do przeprowadzenia ataku inwa-
Ptrafl MWet I"S pojemno艣ci) praechowywac
j stan do momentu nast臋pneg T艂 api^a UJ ^
^a 3aSUaJ膮Cee ^^ odtworzenia stanu statycz-
pwierzchni膮 struktury uk艂adu stabilnej platformie dooko艂a z艂膮cz
-tu testow8go instaluje si, kl k t wpozycjoner贸w, kt贸re umo偶liwiaj膮 suwanie ramienia sondy z bardzo S
SV1 P^ struk"
Atak inwazyjny
i mA dia zboc3a 艂u
o rozd 7>膮- ^^^P^^ornik A/D
onuj膮cy ma艂ym bud偶et&m ? C2S yac z u偶ywanego sprz.tu spr.edaw -nego przez producent贸w uk艂ad贸w sca lonych do ich testowania. Dysponu 膮c odpowiednia wiedz膮 oraz uzbraja膰
w lerphwo艣膰me jest zbyt trudno zdo byc odpowlednie narz臋dzia za cen, po m^J 10 tysi,cy dolar贸w, kupuj cu偶v wany mikroskop i konstruuj^ w艂a./y mikropozycjoner. Laser nie je^t nieS ny do pierwszych pr贸b, poniewa偶 otwory w strukturze p贸艂prz8wodnikoWej mo-g4 byc r贸wniej wykonywane poprzez wib^cje ig艂y mikro pozy ej one t膮P P %
ciei >rtV'3Zy'ny
j bez ich uszkodzenia Oczywi艣cie, przed pod艂a偶eniem ta-lej !Md nal^y usun膮膰 warstw, Pa ywuj膮c膮. Jest to g贸rn膮 warstw膮 p^J. krywajac膮 aluminiowe doprowadzenia do struktury uk艂adu (zazwyczaj jest o bnek krzemu). Zabezpiecza ona st uk ur, uk艂adu przed wp艂ywem 艣rodowit f 皉az m'Srac^ Jon贸w. Czasami dodat o- jest ona pokryta warstw膮 poS: dow kt贸rej nie usuwa kwas azotowy, ! moSe ona by膰 ro

Ultrafioletowy lub zielony laser mo
J -U ubUd0Wy 3truktUI^' P1^ cz,sc obudowy mo偶e by膰 zdj臋t
a ^ Przyk艂ad I
IzoUcj, owa umieszczon膮 wok贸艂 struk u
60
Elektronika Praktyczna a/2002
TRENDY
dynczej linii danych lub tranzystora. Zabezpiecza to reszt臋 struktury przed przypadkowymi zwarciami do s膮siednich linii, a wykonany dodatkowo otw贸r stabilizuje pozycj臋 sondy i czyni kontakt mniej wra偶liwym na wibracje i zmiany temperatury. W ostateczno艣ci warstw臋 pasywuj膮c膮 mo偶na usun膮膰 miejscowo poprzez zarysowanie, wiercenie lub naci臋cie. Pami臋tajmy jednak, 偶e te operacje odbywaj膮 si臋 w mikroskali! Jednak dopiero usuni臋cie warstwy pasywuj膮cej gwarantuje, 偶e sonda b臋dzie mia艂a dobry kontakt ze struktur膮 uk艂adu.
Oczywi艣cie nie jest praktykowane odtwarzanie warto艣ci klucza kryptograficznego poprzez kontakt sondy do poszczeg贸lnych kom贸rek pami臋ci i odczyty stan贸w bitu. Zapami臋tane dane mog膮 zosta膰 odczytane poprzez szyn臋 danych pami臋ci w miejscu, w kt贸rym wszystkie dane s膮 dost臋pne w pojedynczej lokalizacji. Mikrosondowanie jest u偶ywane do obserwowania stan贸w szyn i ich rejestracji. Jest jednak bardzo trudno obserwowa膰 szyny danych i adresow膮 w ca艂o艣ci. Wymaga to wykonania zazwyczaj ponad 2 0 po艂膮cze艅 do male艅kiej struktury uk艂adu, co nie jest 艂atwe. Stosowane s膮 wi臋c r贸偶ne techniki obserwacji. Mo偶na na przyk艂ad wielokrotnie wykona膰 t臋 sam膮 transakcj臋 obserwuj膮c r贸偶ne kombinacje bit贸w na szynie danych i adresowej, wykorzystuj膮c na przyk艂ad cztery sondy. Tak d艂ugo, jak procesor wykonuje t臋 sam膮 sekwencj臋 dost臋pu do danych w pami臋ci, mamy mo偶liwo艣膰 po艂膮czenia obserwowanych przebieg贸w w kompletny diagram zale偶no艣ci czasowych oraz informacji pojawiaj膮cych si臋 na szynach.
W przypadku gdy chcemy odczyta膰 wszystkie kom贸rki pami臋ci bez uruchamiania oprogramowania mikrokont-rolera, musimy uzyska膰 dost臋p do komponent贸w procesora, takich jak licznik programu. Zawarto艣膰 licznika rozkaz贸w jest automatycznie zwi臋kszana podczas ka偶dego cyklu rozkazowego i jest on u偶ywany do odczytu nast臋pnego adresu, co powoduje, 偶e doskonale nadaje si臋 do wykorzystania jako generator sekwencyjny sygna艂贸w adresowych. Musimy tylko zabezpieczy膰 procesor przed wykonywaniem skok贸w, wywo艂a艅 podprogram贸w oraz instrukcji powrot贸w, kt贸re przeszkadzaj膮 w sekwencyjnej pracy licznika programu. Niewielkie modyfikacje dekodera instrukcji lub licznika programu, kt贸re mog膮 by膰 艂atwo wykonane przez rozwarcie odpowiedniego po艂膮czenia za pomoc膮 lasera zawsze przynosz膮 po偶膮dany efekt.
Inn膮 metod膮 poznania dzia艂ania danego uk艂adu jest tak zwany reverse en-gineering, to znaczy odtworzenie sche-
matu struktury uk艂adu na podstawie jego topografii i analizy budowy poszczeg贸lnych element贸w. Pierwszym krokiem jest w贸wczas stworzenie mapy element贸w procesora. Mo偶e to by膰 zrobione przy u偶yciu mikroskopu optycznego z pod艂膮czon膮 kamer膮 CCD umo偶liwiaj膮c膮 wykonywanie zdj臋膰 struktury procesora z du偶膮 rozdzielczo艣ci膮. Proste elementy architektury, takie j ak linie adresowe czy danych, mog膮 by膰 rozpoznane ca艂kiem szybko, bez studiowania mozaiki po艂膮cze艅, za pomoc膮 艣ledzenia przebiegu metalowych linii, kt贸re zakre艣laj膮 bardzo widocznie komponenty struktury uk艂adu (ROM, RAM, EEPROM, ALU, dekoder instrukcji itd.). Wszystkie wsp贸艂pracuj膮ce ze sob膮 modu艂y s膮 zazwyczaj pod艂膮czone do g艂贸wnych szyn za pomoc膮 艂atwo rozpoznawalnych przerzutnik贸w typu latch oraz wzmacniaczy pr膮dowych. W艂amywacz musi dobrze zna膰 technologi臋 wykonania uk艂ad贸w CMOS i architektury mikrokon-troler贸w, ale potrzebne do tego celu infromacje znajduj膮 si臋 w praktycznie ka偶dej bibliotece akademickiej.
Ataki inwazyjne s膮 skomplikowane.
Wymagaj膮 wielu godzin pracy,
specjalistycznego laboratorium, wysoko
kwalifikowanych specjalist贸w oraz du偶ych
nak艂ad贸w finansowych.
Fotografie uzyskane po pierwszym etapie obserwacji strawienia powierzchni struktury ukazuj膮 g贸rn膮 warstw臋 metalu, kt贸ra nie jest prze藕roczysta i dlatego te偶 zas艂ania widok wielu struktur znajduj膮cych si臋 pod ni膮. Struktur臋 uk艂adu mo偶na co prawda rozpozna膰 po jej wysoko艣ci, jednak nie jest to metoda zbyt dok艂adna. G艂臋bsze warstwy mog膮 by膰 rozpoznane tylko w drugiej serii fotografii, po zdj臋ciu g贸rnej warstwy metalu, co mo偶e by膰 wykonane na przyk艂ad przez jej wytrawienie - zanurzenie na kilka sekund w kwasie hydrofluorowym (HF) w p艂uczce ultrad藕wi臋kowej. HF bardzo szybko rozpuszcza tlenek krzemu dooko艂a metalowych po艂膮cze艅 i od艂膮cza je od powierzchni uk艂adu.
Wi臋kszo艣膰 z aktualnie dost臋pnych mikrokontroler贸w i procesor贸w Smart-card ma rozmiar pojedynczego elementu na poziomie 0,5 do 1 um i tylko dwie warstwy. Mog膮 one by膰 rozpoznane za pomoc膮 mikroskopu i poprzednio opisywanych technik. Do podgl膮dania uk艂ad贸w o wi臋kszej liczbie warstw, z elementami o rozmiarach mniejszych ni偶 d艂ugo艣膰 fali 艣wiat艂a widzialnego, trzeba stosowa膰 znacznie dro偶sze narz臋dzia.
Wi臋kszo艣膰 wyrafinowanych narz臋dzi u偶ywanych na przyk艂ad w laboratoriach fizyki, takich jak stacje FIB, mog膮 zo-
sta膰 u偶yte do wykonania nowych linii po艂膮cze艅, a nawet nowych tranzystor贸w w strukturze uk艂adu! Stacja FIB zawiera komor臋 pr贸偶niow膮 z rodzajem wyrzutni, por贸wnywalnej z u偶ywan膮 w mikroskopie elektronowym. Jony s膮 przyspieszane napi臋ciem oko艂o 30 kV i skupiane w wi膮zk臋 o 艣rednicy 5...10 nm i pr膮dzie strumienia od 1 pA do 10 nA. Poprzez zwi臋kszanie pr膮du strumienia jon贸w materia艂 krzemowy mo偶e zosta膰 usuni臋ty z rozdzielczo艣ci膮 5 nm. Lepsz膮 rozdzielczo艣膰 mo偶na uzyska膰 w otoczeniu gazu. Stosuj膮c gaz mo偶na wykonywa膰 otwory oko艂o 12 razy g艂臋bsze ni偶 szersze i w ten spos贸b uzyskiwa膰 dost臋p do znajduj膮cych si臋 pod spodem warstw metalu. Stosuj膮c gaz, tak zwany organometaliczny z zawarto艣ci膮 platyny, mo偶na tworzy膰 nowe pola kontaktowe, natomiast stosuj膮c inne dodatki mo偶na powsta艂y w ten spos贸b kontakt zabezpieczy膰 przed zwarciem z otaczaj膮cymi go warstwami. Wprawny operator FIB, pos艂uguj膮c si臋 dodatkowo przyrz膮dami laserowymi, mo偶e nawigowa膰 po powierzchni struktury z rozdzielczo艣ci膮 nawet 0,15 um. Jest to du偶o poni偶ej rozmiaru pojedynczego elementu struktury. Mo偶na r贸wnie偶 zdj膮膰 warstw臋 pod艂o偶a struktury przez jej zeszlifowanie. W贸wczas staje si臋 mo偶liwe nawet lokalizowanie pojedynczych tranzystor贸w i wykonywanie pomi臋dzy nimi po艂膮cze艅. Ta ,,odtylna" technika nie jest wprawdzie jeszcze stosowana przez w艂amywaczy, ale technologia i urz膮dzenia staj膮 si臋 coraz bardziej dost臋pne i kto wie, co przyniesie przysz艂o艣膰. Obecnie wi臋kszo艣膰 zastosowa艅 stacji FIB zmierza do wykonywania dost臋pu do interesuj膮cych po艂膮cze艅. Otw贸r wykonywany jest dla danej 艣cie偶ki sygna艂owej, nast臋pnie jest wype艂niany platyn膮 tak, aby wyprowadzi膰 sygna艂 na powierzchni臋 struktury, gdzie 艂atwy ju偶 jest dost臋p do niego za pomoc膮 sondy. Nowoczesne stacje FIB kosztuj膮 nieco mniej ni偶 p贸艂 miliona dolar贸w i s膮 dost臋pne w wi臋cej ni偶 setce organizacji. Mog膮 one by膰 wynaj臋te od niekt贸rych z nich za cen臋 kilkuset dolar贸w za godzin臋 pracy urz膮dzenia.
Wszystkie ataki inwazyjne s膮 skomplikowane. Wymagaj膮 wielu godzin pracy specjalistycznego laboratorium i nie mog膮 si臋 odby膰 bez wiedzy w艂a艣ciciela badanego urz膮dzenia - niszcz膮 bowiem jego obudow臋 oraz czasami struktur臋. Dodatkowo wymagaj膮 wysoko kwalifikowanych specjalist贸w oraz du偶ych nak艂ad贸w finansowych. Oczywi艣cie nie czyni to ich niemo偶liwymi do przeprowadzenia...
Sergiej Skorobogatov Opracowa艂 Jacek Bogusz, jacek.bogusz@ep.com.pl
Elektronika Praktyczna 8/2002
\
Samochodowy wzmacniacz w klasie T
Na s艂r. 35 przedstawiamy opis konstrukcji wzmacniacza samochodowego, kt贸ry opr贸cz du偶ej mocy wyj艣ciowej charakteryzuje si臋 tym, 偶e nie potrzebuje radiatora.
Sterownik > nap臋du CD-ROM
Sterownik nap臋du CD-ROM, kt贸rego budow臋 przedstawiamy w artykule na s艂r. 29, jest kolejnym przyk艂adem ogromnych mo偶liwo艣ci mikrokontroler贸w 8-bitowych. Dzi臋ki temu urzqdzeniu -jak wida膰 na zdj臋ciu 艂atwemu w wykonaniu - stary nap臋d komputerowy CD mo偶na przerobi膰 na odtwarzacz audio.
Miniprojekty
Naszq sierpniowq powinno艣ciq jest przygotowanie wyjqtkowo wielu Miniprojekt贸w. Ich rewi臋, w kt贸rej prym wiodq: konwerter VGA->TV oraz programator JDM, przedsta- ^ wiamy na s艂r. 38.
Bezprzewodowy sterownik w臋偶a 艣wietlnego
Prawdziwa rewolucja! Na s艂r. 23 przedstawiamy opis bezprzewodowej, programowanej rampy 艣wietlnej. Zastosowanie proponowanego rozwiqzania pozwala uniknq膰 skomplikowanego okablowywania wystawy sklepowej lub dyskoteki.
Uk艂ad prognozujqcy przymrozki
Konstrukcyjnie jest to opracowanie banalne. Jego niezwyk艂o艣膰 jest wynikiem zastosowania bardzo modnego w艣r贸d konstruktor贸w, zintegrowanego czujnika wilgotno艣ci i temperatury z rodziny SHT, kt贸re sq produkowane przez niemieckq firm臋 Sensirion. S艂r. 19.
Telefoniczny modu艂 > zdalnego sterowania
W interaktywnym module telefonicznego zdalnego sterowania znajdziecie wszystko co w elektronice najlepsze: krzemowq "gadaczk臋" ISD, RlSC-owego PIC-a, p贸艂przewodnikowy transceiver DTMF firmy Mitel. Na s艂r. 45 przedstawiamy drugq cz臋艣膰 opisu tego niebanalnego urzqdzenia.
DSP dla ka偶dego
Wbrew niepozornym wymiarom, uk艂ad pokazany na zdj臋ciu jest prawdziwym procesorem DSP. Jego mo偶liwo艣ci teoretycznie poznacie po przeczytaniu artyku艂u ze s艂r. 51, a ju偶 za miesiqc - dzi臋ki opisowi konstrukcji kompletnego procesora audio - b臋dzie mogli go pos艂ucha膰!
Multiplekser sygna艂贸w wideo Lampowy korektor graficzny
n , ., ., . , , Przyk艂ad projektu, kt贸rego opis
Prze艂膮cznik wideo opracowany przez jednego z naszych publikujemy na str. 14, dowodzi
Czytelnik贸w jest przyk艂adem projektu na wskro艣 teao 偶e
nowoczesnego. Opr贸cz dobrze dobranych podze- 膭 ^^^ nrawd7iwv
spo艂贸w, decyduje o tym tak偶e ^^^^b i *艣 nudiofil
oprogramowanie, kt贸re ^^^lli potrafi
autor... narysowa艂 ^^^B|^Kx) "zatrudni膰"
za pomocq _ ^P ^^T^M lamp臋
tak偶e w ko- rektorze graficz- nym. Polecamy!
Elektronika Praktyczna S/2002
ST贸-Realizera. S艂r. 89.
Sterowniki programowalne SimaticS7-200
Na s艂r. 127 omawiamy mo偶liwo艣ci komunikacyjne sterownik贸w z rodziny $7-200 firmy Siemens.
Programowanie i obs艂uga modu艂贸w GSM
Modu艂y GSM taniejq w bardzo szybkim tempie, dzi臋ki czemu ju偶 wkr贸tce trafiq "pod strzechy". O tym, w jaki spos贸b nale偶y je programowa膰 informujemy w artykule na s艂r. 63.
Atak na mikrokontrolery
Artyku艂, kt贸ry publikujemy na s艂r. 57 jest swoistq, wakacyjnq "prowokacjq\ Napiszcie do nas o swoich do艣wiadczeniach z "rozkuwaniem" mikro-kontroler贸w!
IKA
Nr 8(116)
_ _____________ _sierpie艅 2002
Projekty ^^^^^^^^~^^^^^^^^~
Lampowy korektor graficzny.....................................................14
Uk艂ad prognozujqcy przymrozki.................................................19
Bezprzewodowy sterownik w臋偶a 艣wietlnego ..........................23
Sterownik nap臋du CD-ROM, cze艣膰 1 .......................................29
Samochodowy wzmacniacz w klasie T....................................35
Interaktywny, telefoniczny modu艂 zdalnego sterowania, cze艣膰 2..........................................................................................45
Miniprojekt
Optyczno-akustyczny tester przewod贸w.................................38
Pr贸bnik tranzystor贸w...................................................................38
Konwerter sygna艂u VHS^>SVHS...................................................39
Przetwornik A/C z interfejsem RS232.........................................40
Konwerter VGA->TV....................................................................41
Zasilacz back-up..........................................................................42
Prze艂qcznik zbli偶eniowy...............................................................42
JDM PIC Programmer 2.............................,................................43
Kurs
Programowanie i obs艂uga modu艂贸w GSM...............................63
ATAPI - specyfikacja standardu. Sterowanie CD-ROM-贸w
i dysk贸w twardych w praktyce, cze艣膰 2..................................81
Je偶yk C dla mikrokontroler贸w 8051, cze艣膰 3...........................85
uTomaTyka
CIMPLICITY Plant Edition - oprogramowanie SCADA
firmy GE-Fanuc..........................................................................125
Sterowniki programowalne Simatic S7-200............................127
Podzespo艂y
DSP dla ka偶dego - cyfrowy procesor sygna艂owy audio
firmy Alesis....................................................................................51
Sprz臋l
JTAG-owy emulator dla procesor贸w AVR...............................53
Trendy
Atak na mikrokontrolery, cze艣膰 1..............................................57
Projekty Czytelnik贸w]
Multiplekser sygna艂贸w wideo.............................................
Z kraju i ze 艣wiata........................................................111
Kramik+Rynek................................................................91 艢
Listy...................................................................................97
Ekspresowy Informator Elektroniczny.....................107_艂
Wykaz reklamodawcow............................................110
^iXG>
Elektronika Praktyczna S/2002
7
SPRZ臉T
Programowanie i obs艂uga modu艂贸w
W artykule wyja艣ni臋, jak mo偶na u偶y膰 telefonu kom贸rkowego do przesy艂ania danych. Za jego po艣rednictwem informacja mo偶e by膰 dost臋pna wsz臋dzie tam, gdzie jest zasi臋g sieci GSM. Przyk艂ady komend AT i zakresu zastosowa艅 GSM b臋d膮 zilustrowane przyk艂adem u偶ycia modemu GSM - Siemens M20T. Opis obs艂ugi tego modemu jest odpowiedni dla wi臋kszo艣ci modu艂贸w tego rodzaju, dzi臋ki czemu b臋dzie przydatny tak偶e dla u偶ytkownik贸w korzystaj膮cych z modem贸w Motoroli, Sony-Ericsson czy innych firm.
U偶ywam okre艣lenia "modem" w odniesieniu do M2 0T, cho膰 w materia艂ach firmowych nazywany jest terminalem. Okre艣lenie "terminal" bardziej jednak pasuje do modu艂u bez obudowy, produkowanego jako M20 ni偶 do M20T. Podobne urz膮dzenia s膮 r贸wnie偶 produkowane przez inne firmy. Te najnowsze wykorzystuj膮 do przesy艂ania danych technologi臋 GPRS.
W prezentowanych przyk艂adach pos艂uguj臋 si臋 komputerem PC i jednym z wielu program贸w typu "terminal". Oczywi艣cie nic nie stoi na przeszkodzie, aby zbudowa膰 system z mikrokontrolerem steruj膮cym M2 0T. Sterowanie, jak przekonamy si臋 o tym dalej, jest stosunkowo 艂atwe i polega na wydawaniu komend przesy艂anych przez interfejs szeregowy RS232.
Na wst臋pie wa偶na uwaga: modem M20T jest bardzo zaawansowany technologicznie, z w艂asnym mikrokontrolerem i programem aplikacyjnym. Pewne funkcje daj膮 si臋 艂atwo modyfikowa膰 i mog膮 w niekt贸rych przypadkach dzia艂a膰 inaczej, ni偶 opisa艂em to w artykule. Na przyk艂ad, mo偶na wybra膰 spos贸b dzia艂ania interfejsu szeregowego i okre艣li膰 jego sygna艂y. Mo偶na dla przyk艂adu wy艂膮czy膰 tak zwane echo.
W artykule skoncentruj臋 si臋 na standardowych komendach AT, aby mo偶liwe by艂o ich ewentualne u偶ycie z innym modemem czy telefonem kom贸rkowym. B臋d臋 omija艂 w opisie pewne specyficzne dla M20T funk-
cje, poniewa偶 prawdopodobnie nie mog膮 by膰 one u偶yte z innym modelem telefonu GSM. Celem artyku艂u jest bowiem wyja艣nienie zasady funkcjonowania modemu GSM tak, aby mo偶na by艂o samodzielnie wykona膰 pewne aplikacje wykorzystuj膮ce t臋 technologi臋 przesy艂ania danych. To s膮 naprawd臋 podstawy podstaw. Rozszerze艅 nale偶y szuka膰 w dokumentacji konkretnego modemu czy telefonu GSM.
Komendy AT
Lista komend AT obs艂ugiwanych przez modemy jest bardzo obszerna. Do potrzeb prostej aplikacji do przesy艂ania danych u偶ywa si臋 typowo mo偶e 20 do 30% rozkaz贸w. Raczej nie b臋dziemy u偶ywa膰 po艂膮cze艅 konferencyjnych czy oczekuj膮cych. Nale偶y jednak bardzo uwa偶a膰. Czasami komendy r贸偶ni膮 si臋 mi臋dzy sob膮 tylko wyst臋powaniem lub brakiem pojedynczego znaku (cz臋sto u偶ywanym w ten spos贸b jest znak r贸wno艣ci), a funkcjonalnie s膮 to zupe艂nie inne komendy.
W艂膮czenie terminala, logowanie do sieci
Na pocz膮tku jedna uwaga. Przytaczaj膮c przyk艂ady komend AT przyj膮艂em, 偶e wpisywane r臋cznie, s膮 pisane ma艂ymi literami, natomiast komunikaty wysy艂ane przez modem GSM i odbierane przez program terminala s膮 pisane du偶ymi literami.
Wr贸膰my wi臋c do modemu. Je艣li zwarli艣my wcze艣niej wyprowadzenia 1 i 4 z艂膮cza zasilania, wystarczy po prostu poda膰 napi臋cie zasilaj膮ce. Gdy wyprowadzenia te s膮 rozwarte, musimy je po艂膮czy膰 na oko艂o 1 sekund臋. Za艂膮czenie terminala b臋dzie sygnalizowane migotaniem diody LED. Oznacza to, 偶e modem jest w艂膮czony, ale niezalogowany do sieci. To znaczy oczekuje na podanie numeru PIN (lub w innej sytuacji poszukuje dost臋pnego sygna艂u sieci). Teraz uruchamiamy program terminala dla komputera PC. Ustawiamy nast臋puj膮ce parametry po艂膮czenia: 19200, n, 8, 1 i wydajemy komend臋
Pami臋tam ksi膮偶k臋 "Droga ku przysz艂o艣ci".
Na pocz膮tku autor odpowiada na pytanie:
co b臋dzie, gdy komputer osobisty pojawi si臋 prawie w ka偶dym domu? P贸藕niej, w trakcie lektury, natkn膮艂em si臋
na pytanie: co si臋 stanie, gdy przesy艂anie
danych mi臋dzy komputerami nie b臋dzie
kosztowa膰 nic lub
bardzo ma艂o? Trudno
jest co prawda m贸wi膰
obecnie o znikomych
kosztach
komunikowania si臋 - te jeszcze s膮 wysokie, ale
obserwuje si臋 ju偶 pierwsze symptomy zmiany tej sytuacji.
In tern et, telefony
kom贸rkowe, systemy
艂膮czno艣ci satelitarnej -
zmieniaj膮 powoli
oblicze 艣wiata.
Powoduj膮, 偶e
informacja staje si臋
powszechnie i 艂atwo
dost臋pna.
Elektronika Praktyczna 8/2002
63
SPRZ臉T
Terminal SIEMENS M20 jest sprzedawany w dw贸ch wersjach. Jedn膮 z nich jest sam modu艂 telefonu bez 偶adnych dodatkowych element贸w interfejsu oraz uk艂ad贸w zasilania. Ma on oznaczenie M20. Sygna艂y wyprowadzone s膮 na z艂膮cze SO-kontaktowe. Modu艂 ten przeznaczony jest do zabudowy w urz膮dzeniu. W drugiej wersji jest sprzedawana pod oznaczeniem M20T. Jest to ten sam modu艂 umieszczony w plastykowej obudowie, zmontowany na p艂ytce drukowanej, kt贸r膮 dzieli z uk艂adami dopasowania poziom贸w napi臋膰 interfejsu szeregowego oraz stabilizatorem napi臋cia. Jego pod艂膮czenie do komputera PC polega tylko na doprowadzeniu zasilania, pod艂膮czeniu anteny oraz po艂膮czeniu z portem RS232 komputera PC za pomoc膮 kabla. Modem Siemens M20T mo偶e spe艂nia膰 r贸wnie偶 funkcj臋 zwyk艂ego telefonu kom贸rkowego. Mo偶na do niego pod艂膮czy膰 s艂uchawki oraz mikrofon, a ingeruj膮c do wn臋trza, r贸wnie偶 klawiatur臋 i wy艣wietlacz. Jednak wydaje si臋, 偶e przypadek, gdy zwyk艂ego telefonu kom贸rkowego u偶ywa si臋 do transmisji danych, jest bardziej naturalny. Oto lista koniecznych do spe艂nienia warunk贸w zasilania, niezb臋dnych do poprawnej pracy M20T:
- napi臋cie zasilania: od 8 do 24V,
- pr膮d zasilania: 250mA przy pracy ci膮g艂ej, 2A w impulsie 5ms,
- przyrost napi臋cia zasilania nie powinien by膰 wi臋kszy, ni偶 3V/ms,
- temperatura pracy: od -20癈 do +55癈
- interfejs: RS232/V.24,
- parametry po艂膮czenia: 19200, n, 8, 1.
Kupuj膮c M20T, warto zaopatrzy膰 si臋 w firmow膮 anten臋, aby dopasowanie impedancji nadajnika, kabla i anteny by艂o jak najlepsze. Te dodatkowe kilka z艂otych uchroni nas przed uszkodzeniem stopnia wyj艣ciowego modemu i oszcz臋dzi nam zwi膮zanych z tym k艂opot贸w.
at. M20T powinien odpowiedzie膰, wysy艂aj膮c tekst OK. Jest to najprostszy test po艂膮czenia modemu GSM z urz膮dzeniem steruj膮cym.
Tu jedna uwaga: wa偶n膮 opcj膮 interfejsu RS232 funkcjonuj膮cego w M20T jest mo偶liwo艣膰 w艂膮czenia echa. Nie jest to jaka艣 cecha szczeg贸lna akurat tego modelu. Wysy艂anie echa jest zgodne ze specyfikacj膮 standardu ANSI dla wi臋kszo艣ci terminali. Co oznacza to w praktyce? Ot贸偶 ka偶dy znak przesy艂any do M20T jest zwracany do urz膮dzenia nadaj膮cego. Umo偶liwia to zbudowanie bardzo prostego algorytmu kontroli odbieranych przez modem polece艅 i znak贸w.
Wprowadzenie numeru PIN i PUK
Po w艂膮czeniu modemu GSM, wymagane jest (jak w ka偶dym telefonie kom贸rkowym) podanie numeru PIN zwi膮zanego z konkretn膮 kart膮 SIM. Czterocyfrowy numer PIN jest has艂em zabezpieczaj膮cym kart臋 SIM przed nieautoryzowanym u偶yciem. Trzykrotne b艂臋dne podanie numeru PIN powoduje zablokowanie mo偶liwo艣ci jego wprowadzenia i 偶膮danie kodu PUK. Podobnie jak PIN, PUK jest r贸wnie偶 has艂em, jednak znacznie d艂u偶szym i trudniejszym do zapami臋tania. Sk艂ada si臋 bowiem a偶 z 11 cyfr. W praktyce podanie kodu PUK zmusza potencjalnego u偶ytkownika do u偶ycia dokumentacji karty SIM dostarczonej przez operatora. Sekwencja podawania PIN-u jest nast臋puj膮ca: at+cpin? to pytanie, czy numer PIN
jest konieczny +CPIN:SIM PIN odpowiada nam
M20T, je艣li tak OK
atAspic to zapytanie o liczb臋 pr贸b
wprowadzania numeru PIN
ASPIC:3 to odpowied藕 M20T, je艣li
s膮 trzy pr贸by OK
at+cpin="8882" wprowadzenie numeru PIN
OK/ERROR je艣li numer PIN jest poprawny, M20T odpowiada OK, je艣li nie - ERROR Gdy podali艣my w艂a艣ciwy numer PIN, po oko艂o 5..10 sekundach wbudowana w modem dioda LED powinna przesta膰 migota膰, sygnalizuj膮c tym samym za艂ogowanie do sieci. Ten sam zestaw komend pos艂u偶y膰 mo偶e do wprowadzenia numeru PUK:
at+cpin? pytanie o status numeru
PIN
+CPIN:SIM PUK M2 0T odpowiada 偶膮daniem wprowadzenia PUK; dzieje si臋 tak w przypadku braku mo偶liwo艣ci podania PIN (np. po trzech b艂臋dach) OK
atAspic jest to pytanie o liczb臋 pr贸b wprowadzania kodu PUK ASPIC:10 M20T informuje nas o 10
pr贸bach podania PUK OK
at+cpin= "8162656", "4321" podajemy kod PUK i nowy numer PIN OK at+cpin? to pytanie o status PIN
w celu weryfikacji + CPIN:READY odpowied藕 M20T, je艣li karta SIM jest gotowa do pracy OK
Oczywi艣cie, operacje dost臋pne w "normalnym" telefonie kom贸rkowym, takie jak zmiana numeru PIN, s膮 r贸wnie偶 mo偶liwe. Zmiana numeru (kodu) PIN na nowy wymaga podania dw贸ch numer贸w: starego i nowego: at+cpwd="SC","8882","4321"
"SC" to komenda zmiany numeru PIN, "8882" to stary numer PIN, "4321" nowy. W przypadku poprawnego wykonania komendy, M2 0T odpowiada komunikatem OK.
Odczyt statusu logowania do sieci
Po wpisaniu numeru PIN, M20T loguje si臋 do sieci. Je艣li operacja logowania przebieg艂a prawid艂owo i sie膰 umo偶liwia korzystanie ze swoich us艂ug, dioda sygnalizacyjna LED na obudowie przestaje migota膰 i zaczyna 艣wieci膰 艣wiat艂em ci膮g艂ym. Logowanie trwa typowo od 5 do 10 sekund. W sytuacjach awaryjnych - oraz wtedy, gdy wszystko przebiega prawid艂owo - mo偶na skorzysta膰 z polecenia at+creg, aby odczyta膰 status rejestracji: at+creg? odczyt statusu rejestracji
w sieci
+CREG: 0,5 przyk艂ad odpowiedzi M20T - 5 oznacza w艂膮czony roaming (kompletny zestaw kod贸w dost臋pny jest w dokumentacji danego modelu modemu) OK
64
Elektronika Praktyczna 8/2002
SPRZ臉T
W podobny spos贸b mo偶emy r贸wnie偶 uzyska膰 status operatora, w kt贸rego sieci nast膮pi艂a rejestracja: at+cops? pytanie o operatora +COPS: OTOT"ERA GSM" przyk艂ad odpowiedzi M20T o rejestracji w sieci ERA OK
Pomiar jako艣ci sygna艂u
U偶yteczn膮 komend膮 jest pomiar "jako艣ci" sygna艂u docieraj膮cego do anteny. Mo偶na tej komendy u偶y膰 do budowy graficznego wska藕nika poziomu sygna艂u, jednak znacznie wa偶niejsza jest informacja, czy w danych warunkach po艂膮czenie ze stacj膮 bazow膮 jest w og贸le mo偶liwe. Mo偶na r贸wnie偶 w ten spos贸b stwierdzi膰, czy antena jest od艂膮czona lub uszkodzona: at+csq to pytanie skierowane do
M20T o jako艣膰 sygna艂u +CSQ:23TO informacja o mocy sygna艂u i warto艣ci wsp贸艂czynnika b艂臋du OK
Pierwszy ze zwracanych parametr贸w okre艣la moc odbieranego sygna艂u stacji bazowej. Zakres zwracanych warto艣ci mie艣ci si臋 w granicach od 0 do 99, a w praktyce przewa偶nie od 0 do 27. Warto艣膰 0 oznacza -113 dBm, a dla ka偶dej kolejnej warto艣ci nale偶y doda膰 2 dBm (1 = -111 dBm, 2 = -109 dBm itd.). Warto艣膰 99 oznacza, 偶e jako艣膰 sygna艂u nie jest znana.
Wykonywanie po艂膮cze艅 Wybieranie numeru telefonu
Gdy ju偶 mamy za sob膮 logowanie do sieci i okre艣lili艣my jako艣膰 sygna艂u, mo偶emy przyst膮pi膰 do wykonywania po艂膮czenia. Komendy, kt贸re wydawane s膮 M20T, nie r贸偶ni膮 si臋 niczym od tych, kt贸re akceptowane s膮 przez zwyk艂y modem:
atd504436890;
Jest to wybranie numeru telefonu, z kt贸rym chcemy uzyska膰 po艂膮czenie g艂osowe.
Bardzo wa偶ne jest u偶ycie znaku 艣rednika na ko艅cu wybieranego numeru. Oznacza on dok艂adnie to, 偶e chcemy uzyska膰 po艂膮czenie g艂osowe. W przypadku po艂膮czenia do transmisji danych, format wybierania numeru jest nast臋puj膮cy:
atd 50443 6890
Mo偶liwe komunikaty w takiej sytuacji, to:
NO DIALTONE - gdy wybrany numer telefonu nie odpowiada (nie is-
tnieje, nie jest dost臋pny, jest b艂臋dny),
BUSY - gdy telefon jest zaj臋ty,
NO CARRIER - gdy brak jest sygna艂u no艣nej koniecznego w przypadku transmisji danych lub osoba, do kt贸rej dzwonili艣my, od艂o偶y艂a s艂uchawk臋,
CONNECT - gdy uzyskali艣my poprawne po艂膮czenie,
NO ANSWER - je艣li wybrany numer telefonu nie odpowiada i zosta艂 przekroczony czas przeznaczony na skompletowanie po艂膮czenia.
Podczas wybierania numer贸w u偶yteczne s膮 jeszcze komendy: atdl; (s艂u偶y do powt贸rzenia wybierania numeru) oraz atd>pozycja; (przywo艂uj膮ca numer z ksi膮偶ki telefonicznej).
Wydanie komendy atd bez 艣rednika na ko艅cu wybieranego numeru powoduje 偶膮danie nawi膮zania po艂膮czenia w celu przes艂ania danych. W贸wczas oczekiwany jest od telefonu wywo艂ywanego sygna艂 no艣nej. Po jego otrzymaniu zostanie zwr贸cony komunikat CONNECT z parametrem okre艣laj膮cym uzgodnion膮 szybko艣膰 transmisji nawi膮zanego po艂膮czenia. Typowo, w sieci GSM wi臋kszo艣膰 telefon贸w i modem贸w wykorzystuje do po艂膮czenia tylko jeden kana艂 transmisji, cho膰 nie jest to regu艂膮. Nawi膮zywane po艂膮czenie mo偶e wi臋c mie膰 maksymaln膮 szybko艣膰 do 14400 bd. St膮d te偶 typowym komunikatem o nawi膮zaniu po艂膮czenia, je艣li tylko sygna艂 ma wystarczaj膮c膮 moc, jest CONNECT 9600. Prosz臋 pami臋ta膰, 偶e po艂膮czenie mi臋dzy mo-
Z艂膮cze zasilania M20T:
1. +8...24V,
4. napi臋cie
za艂膮czenia
(IGN),
6- masa
B 5 4 3
TTT
GND IGN +e"24V
Zasilanie powinno by膰 doprowadzone pomi臋dzy wyprowadzenie 1 i 6 z艂膮cza. Zwieraj膮c wyprowadzenie 1 i 4 na oko艂o 1 sekund臋, z a艂 acz amy t e rminal - Mo 偶na r贸wnie偶 wyprowadzenie 4 na sta艂e zewrze膰 z 1, jednak w ten spos贸b tracimy mo偶liwo艣膰 wy艂膮czania telefonu za pomoc膮 komendy
Fot.
demem a komputerem wysy艂aj膮cym lub odbieraj膮cym dane mo偶e by膰 bardzo "szybkie" (na przyk艂ad 5 2 kbd), natomiast "szybko艣膰" (przep艂ywno艣膰) po艂膮czenia radiowego dla M20T nie przekroczy 14400 bd.
Terminal mo偶e r贸wnie偶 zmienia膰 stan linii interfejsu szeregowego o nazwie CD (Carrier Deieci). Mo偶e, poniewa偶 zachowanie si臋 interfejsu jest ustawiane w zale偶no艣ci od potrzeb za pomoc膮 zestawu komend AT. Gdy trwa transfer danych przez modem GSM, zachowuje si臋 on tak, jak zwyk艂e modemy po艂膮czone kablem. Oczywi艣cie jest to specyficzny rodzaj kabla ograniczaj膮cego szybko艣膰 po艂膮czenia. Z tego te偶 powodu tryb transmisji danych cz臋sto nazywany jest "prze藕roczystym". W trybie tym modem GSM przesy艂a dane, nie przyjmuj膮c 偶adnych komend. Je偶eli zachodzi konieczno艣膰 wydania komendy, transfer musi by膰 wstrzymany za pomoc膮 rozkazu +++. Po jego akceptacji przez M20T, mo偶liwe jest wysy艂anie komend AT. Powr贸t do transmisji danych nast臋puje po wydaniu polecenia ato.
W trakcie rozmowy czy transmisji danych mo偶na przerwa膰 po艂膮czenie, wysy艂aj膮c polecenie ath. Powoduje ono natychmiastowe roz艂膮czenie, przypominaj膮ce od艂o偶enie s艂uchawki w telefonie.
Odbieranie po艂膮cze艅 przychodz膮cych
Po艂膮czenia przychodz膮ce sygnalizowane s膮 poprzez wys艂anie do urz膮dzenia steruj膮cego komunikatu RING. Dodatkowo, tak jak w przypadku ka偶dego modemu, zmienia si臋 stan linii interfejsowej RI (Ring In-dicaior). T臋 zmian臋 stanu linii mo偶na wykorzysta膰 na przyk艂ad do wygenerowania sygna艂u przerwania, kt贸ry zainicjuje odebranie przychodz膮cego po艂膮czenia.
W przypadku odebrania takiego komunikatu mo偶liwe jest u偶ycie jednej z dw贸ch komend. Pierwsz膮 z nich jest ata inicjuj膮ca nawi膮zanie
66
Elektronika Praktyczna S/2002
SPRZ臉T
Skr贸cony wykaz komend AT akceptowa-
nych przezterminal Siemens M20T
i wi臋kszo艣膰 modu艂贸w GSM innych
producent贸w
1. Komendy do kontroli po艂膮cze艅
ATA Odbierz po艂膮czenie przychodz膮ce
mu S艂u偶y do wybierania numeru oraz
funkcji dodatkowych
ATD> Wybranie numeru telefonu z pami臋-
ci , pozycja
ATDxn>; Wybranie numeru telefonu z pami臋-
ci bie偶膮cej, pozycja
ATDxstr> Wybranie numeru telefonu podane-
go w
ATOI Wybranie numeru telefonu ISDN
ATDL Powt贸rzenie wybierania ostatnio
wywo艂ywanego numeru
ATH Roz艂膮czenie
AT+CHUP Rezygnacja z po艂膮czenia przycho-
dz膮cego
ATP Wybieranie impulsowe
ATSD Ustawia liczb臋 dzwonk贸w do
za艂膮czenia automatycznej sekretarki
ATS6 Ustawia czas przed wybraniem
numeru
ATS7 Ustawia czas na skompletowanie
po艂膮czenia dla danych
ATS8 Ustawia czas do odbioru po艂膮czenia
g艂osowego
ATT Wybieranie tonowe
AT+VTS W艂膮cza generowanie kod贸w DTMF
2. Komendy obsfugi us艂ug sieci oraz informacji
o jej statusie
AT+CCWA Kontrola po艂膮cze艅 oczekuj膮cych
AT+CREG Rejestracjaw sieci
AT+CLCK Za艂膮czanie i wy艂膮czanie funkcji
specjalnych sieci i karty SIM
AT+COPS Wyb贸r operatora
AT+CPWD Zmiana has艂a
AT+CLCC Lista bie偶膮cych po艂膮cze艅
ATASLCK Wyb贸r i za艂膮czanie opcji specjal-
nych
ATASPWD Zmiana has艂a dost臋pu do opcji
ATASPLM Odczyt listy PLMN
ATASPLW Zapis do listy preferowanych
operator贸w sieci
AT+CSQ Pomiar jako艣ci sygna艂u
ATAM0NI Za艂膮czenie funkcji monitorowania
w trybie IDLE
ATAM0NP Tryb monitora: raportowanie list
PLMN
3. Komendy dla dodatkowych us艂ug sieci
AT+CCFC Kontrola statusu wywo艂ywanego
numeru
AT+CCUG Zarz膮dzanie grup膮 zamkni臋t膮
AT+CHLD Podtrzymanie po艂膮czenia i po艂膮cze-
nia konferencyjnego
AT+CLIP Prezentacja numeru po艂膮czenia
przychodz膮cego
AT+CLIR Zastrze偶enie prezentacji numeru
AT+COLP Prezentacja po艂膮czenia bie偶膮cego
4. Komendy karty SIM
AT&Z, Zapami臋taj numer telefonu w pa-
mi臋ci nieulotnej
AT+CACM Zerowanie miernika ACM lub jego
odczyt
AT+CAMM Ustawienie maksimum miernika
ACM lub jego odczyt
AT+CIMI 呕膮danie identyfikacji w roamingu
AT+CPBF Odczyt ksi膮偶ki telefonicznej karty SIM
po艂膮czenia, a drug膮 jest komenda at+chup powoduj膮ca "od艂o偶enie s艂uchawki". Komendy tej u偶ywa si臋 w贸wczas, gdy z jakich艣 powod贸w nie chcemy odebra膰 po艂膮czenia. RING komunikat wysy艂any przez M20T - przychodz膮ce po艂膮czenie
at+chup od艂贸偶 s艂uchawk臋 OK odpowied藕 modemu
Komunikaty SMS
Kto z nas nie zna popularnych SMS-贸w? Jak z ka偶dego telefonu kom贸rkowego, r贸wnie偶 za pomoc膮 M20T mo偶na wysy艂a膰 i odbiera膰 kr贸tkie wiadomo艣ci tekstowe. Wysy艂anie ich przy korzystaniu z programu terminala nie jest zbyt wygodne, ale mo偶na przygotowa膰 oprogramowanie wysy艂aj膮ce i odbieraj膮ce dane w postaci SMS, na przyk艂ad z monitorowanych obiekt贸w czy te偶 system贸w pomiarowych.
Numer centrum serwisowego
Aby SMS m贸g艂 zosta膰 wys艂any czy odebrany, w pami臋ci telefonu musi by膰 zapisany numer centrum obs艂ugi SMS. Dla r贸偶nych sieci jest on r贸偶ny. Je艣li nie znasz numeru centrum swojej sieci, zapytaj w biurze obs艂ugi klienta. Numer ten wprowadzamy jednorazowo do pami臋ci M20T, aby wysy艂anie SMS by艂o w og贸le mo偶liwe. at+csca? pytanie o aktualny numer
centrum obs艂ugi SMS +CSCA: "+491710760000" odpowied藕 modemu (dla jednej z sieci niemieckich) - mo偶liwy jest r贸wnie偶 brak numeru centrum OK
at+csca="+491710760000" wprowadzamy nowy numer centrum serwisowego OK
W艂膮czenie trybu tekstowego dla SMS
SMS-y przesy艂ane s膮 jako kr贸tkie wiadomo艣ci w formacie tekstowym. Przewa偶nie jest on ustawiony jako domy艣lny. Warto jednak za pomoc膮 komend AT dokona膰 sprawdzenia tego ustawienia: at+cmgf? pytanie o wybrany tryb
przesy艂ania wiadomo艣ci
SMS +CMGF:1 "1" oznacza w艂膮czenie
trybu TEXT OK
Funkcja "echo" w modemie M2O i podobnych powoduje, 偶e ka偶dy znak przesy艂any do M20T jest zwracany do urz膮dzenia nadaj膮cego.
W przypadku innego formatu wiadomo艣ci (na przyk艂ad, gdy M20T odpowiada +CMGF:O), 艂atwo jest go zmieni膰 za pomoc膮 polecenia: at+cmgf=l zmieniamy tryb SMS na
TEXT
OK odpowied藕 M20T po ak-
ceptacji nastaw
Tryb tekstowy opr贸cz wysy艂ania i odbioru SMS-贸w, umo偶liwia r贸wnie偶 wysy艂anie faks贸w i wiadomo艣ci e-mail.
Komenda bardzo podobna do u偶ytej wy偶ej, umo偶liwia uzyskanie listy obs艂ugiwanych format贸w SMS. R贸偶ni si臋 od niej tylko symbolem znaku r贸wno艣ci:
at+cmgf=? pytanie o list臋 format贸w +CMGF: (0-1) odpowied藕 modemu
(format TEXT i PDU) OK
Wys艂anie SMS do innego telefonu GSM
Po ustawieniu numeru centrum obs艂ugi i formatu wiadomo艣ci, dalsze polecenia s膮 bardzo 艂atwe w u偶yciu. Oto przyk艂ad przes艂ania kr贸tkiej wiadomo艣ci tekstowej do u偶ytkownika innego telefonu GSM: at+cmgs="+48504436890" podajemy komend臋 i numer telefonu
>....... na ekranie PC pojawi si臋
znak zach臋ty - wprowadzamy tekst komunikatu i naciskamy klawisze Ctrl+Z (koniec zbioru tekstowego) +CMGS: 33 pojawia si臋 liczba komunikat贸w wys艂anych przy u偶yciu karty SIM OK
W innym przypadku, gdy chcemy przerwa膰 wys艂anie SMS, nale偶y w dowolnym momencie wprowadzania komunikatu wys艂a膰 kod ESC (lBh - w przypadku u偶ycia programu typu terminal jest to r贸wnowa偶ne naci艣ni臋ciu klawisza ESC).
W taki sam spos贸b wysy艂a si臋 SMS jako e-mail czy fax. R贸偶nica polega tylko na podaniu innego numeru odbiorcy. W przypadku wiadomo艣ci e-mail jest to specyficzny numer ustalony przez operatora sieci. R贸wnie偶 format (mam tu na my艣li g艂贸wnie spos贸b, w jaki podaje si臋 adres) wymagany dla wiado-
68
Elektronika Praktyczna 8/2002
SPRZ臉T
AT+CPBR Odczyt bie偶膮cych numer贸w
telefon贸w z karty SIM
ATtCPBS Wyb贸r pami臋ci do zapami臋tywania
numer贸w telefon贸w
AT+CPBW Zapis do ksi膮偶ki telefonicznej
AT+CPIN Wprowadzenie numeru PIN
AT+CPIN2 Wprowadzenie numeru PIN2
AT+CPUC Obs艂uga tabeli taryfikatora
AT+CRSM Ograniczenie dost臋pu do karty SIM
ATASCID Wy艣wietlenie numeru ident. karty
SIM
ATASCKS Ustawienie trybu po艂膮cze艅 SIM
i odczyt statusu po艂膮cze艅
ATASPBA Wy艣wietlenie ksi膮偶ki tel. w porz膮d-
ku alfabetycznym
ATASPBS Przegl膮danie ksi膮偶ki tel. w porz膮dku
alfabetycznym
ATASPIC Wy艣wietlenie licznika PIN
AT+CXXCID Wy艣wietlenie ident. karty (taka
samajakATASCID)
5. Komendy interfejsu terminala
A/ Powt贸rzenie poprzedniej komendy
ATE Za艂膮czenie echa komend
ATS3 Ustawienie znaku ko艅ca komendy
ATS4 Ustawienie znaku odpowiedzi
ATS5 Ustawienie znaku edycji linii
komend
ATQ Ustawienie trybu prezentacji
wynik贸w
A7V Ustawienie formatu prezentacji
wynik贸w
mx Ustawienie kodu CONNECT i trybu
monitorowania
AT&C Ustawienie sposobu f unkcjonowa-
nia DCD (Data Carrier Detect)
AT&D Ustawienie sposobu funkcjonowa-
nia DTR (Data Terminal Ready)
AT+ICF Ustawienie ramki znak贸w kontrol-
nych TE-TA
AT+IFC Ustawienie lokalnej kontroli danych
TE-TA
AT+ILRR Ustawienie sposobu raportowania
pr臋dko艣ci transmisji TE-TA
AT+IPR Ustawienie szybko艣ci pracy
interfejsu szeregowego
AT&S Ustawienie sposobu pracy sygna艂u
DSR (Data Set Ready)
JtTZ Ustawienie nastaw domy艣lnych dla
danego profilu u偶ytkownika
AT&T Ustawienie parametr贸w domy艣l-
nych producenta
AT&V Odczyt bie偶膮cej konfiguracji
AT&W Zapami臋tanie parametr贸w profilu
u偶ytkownika
AT+CEER Rozszerzony raport b艂臋du
AT%D Automatyczne wybieranie numeru
za pomoc膮 DTR
6. Komendy kontroli urz膮dzenia
ATL Ustawienie g艂o艣no艣ci s艂uchawki
ATM Ustawienie trybu s艂uchawki
AT+VGR Odbi贸r nastawy g艂o艣no艣ci s艂uchawki
AT+VGT Kl Transmisja wybranego wzmocnie-
niawzmacniacza mikrofonowego
AT+VIP Inicjalizacja parametr贸w dla g艂osu
ATASMS0 Wy艂膮czenie terminala
ATASNFA Ustawienie lub odczyt parametr贸w
mikrofonu
ATASNFE Ustawienie lub odczyt parametr贸w
echa
ATASNFI Ustawienie lub odczyt parametr贸w
wej艣cia audio
ATASNFM Wy艂膮czenie mikrofonu
mo艣ci jest ustalany przez operatora i mo偶e by膰 r贸偶ny w r贸偶nych sieciach. Nie odbiega jednak od tego, jaki jest stosowany przy wysy艂aniu e-maili za pomoc膮 telefonu kom贸rkowego GSM.
Zap ami臋tanie SMS w pami臋ci
Podobnie jak nieomal w ka偶dym telefonie kom贸rkowym, tak i w M20T mo偶liwe jest zapami臋tanie wiadomo艣ci SMS do ewentualnego przes艂ania pod inny numer:
at+cmgw="+48504436890" podajemy numer telefonu, na kt贸ry wys艂any b臋dzie SMS >.... podobnie jak poprzednio
pojawi si臋 znak zach臋ty, po kt贸rym wpisujemy tre艣膰 wiadomo艣ci tekstowej do zapami臋tania
> je艣li widzisz ten tekst, to ok, uda艂o sie
tak mo偶e wygl膮da膰 odpowied藕 M20T
+CMGW: 1 ten numer okre艣la pozycj臋 SMS w pami臋ci OK
Odczyt wiadomo艣ci SMS z pami臋ci
List臋 wszystkich SMS-贸w znajduj膮cych si臋 w pami臋ci wraz z ich statusem mo偶na uzyska膰 po wydaniu polecenia at+cmgl. at+cmgl pytanie o list臋 SMS-贸w
w pami臋ci +CMGL:1,"STO_UNSENT',"+48504436890"
odpowied藕 M20T je艣li widzisz ten tekst, to ok, uda艂o
sie OK
Wys艂anie komunikatu SMS zapisanego w pami臋ci
Komenda at+cmgl wy艣wietla list臋 komunikat贸w przechowywanych w pami臋ci. Przy znajomo艣ci pozycji komunikatu mo偶liwe s膮 inne operacje z nim zwi膮zane. at+cmss=l wys艂anie SMS zapami臋tanego na pozycji 1 +CMSS: 34 M20T odpowiada liczb膮 SMS-贸w wys艂anych za pomoc膮 tej karty SIM OK
Usuni臋cie SMS z pami臋ci at+cmgd=l usuni臋cie z pami臋ci telefonu SMS-a zapami臋tanego na pozycji 1 OK odpowied藕 M20T
Odbieranie wiadomo艣ci SMS
Dotychczas skupili艣my si臋 na wysy艂aniu wiadomo艣ci tekstowych. W jaki spos贸b M20T sygnalizuje wiadomo艣ci przychodz膮ce? Po otrzymaniu SMS-a z innego telefonu, wysy艂any jest poprzez interfejs szeregowy komunikat +CMTI:"SM",1. Oznacza on, 偶e przez telefon odebrana zosta艂a wiadomo艣膰 tekstowa i zapami臋tana na karcie SIM pod numerem 1. Oczywi艣cie numer ten mo偶e by膰 inny. Wi臋kszo艣膰 kart SIM zapewnia zapami臋tanie co najmniej 10 wiadomo艣ci tekstowych. Odczyt tak odebranego komunikatu jest mo偶liwy po wydaniu polecenia at+cmgr:
at+cmgr=l polecenie odczytu wiadomo艣ci z pozycji 1 +CMGR:"REC_UNREAD","+48504436890", "02/06/15,20:30:10+00" je艣li widzisz ten tekst, to ok, uda艂o si臋 OK
I
Post臋puj膮ca miniaturyzacja 1
urz膮dze艅 cyfrowych wyra藕nie
dotkn臋艂a tak偶e urz膮dzenia
GSM przeznaczone do
samodzielnej zabudowy.
Jednym z najbardziej
spektakularnych przyk艂ad贸w
nowoczesnych opracowa艅
tego typu s膮 modu艂y
produkowane przez
konsorcjum Sony Ericsson
oznaczone symbolami GM4 7
(pasma 900/1800MHz)
i GM48 (pasma 850/
1900MHz). Ich wymiary
s膮 niewiarygodnie ma艂e,
wynosz膮 bowiem
50x33x7,2 mm zw艂aszcza,
je艣li wzi膮膰 pod uwag臋 ich
ogromne mo偶liwo艣ci. Opr贸cz
standardowych us艂ug GSM
prezentowane modu艂y
obs艂uguj膮 GPRS (85,6 kbd)
i HSCSD (do 19,2 kbd),
a tak偶e wiele mniej
przydatnych funkcji.
Programowanie i obs艂uga
modu艂贸w odbywa si臋
poprzez z艂膮cze RS232.
Niebagateln膮 zalet膮 modu艂贸w
GM47/48 jest mo偶liwo艣膰 ich
zakupu w kraju.
Dystrybutorem jest firma
臉urodis (www.microdis.net).
ii
J
Elektronika Praktyczna 8/2002
SPRZ臉T
Podsumowanie
Ten bardzo skr贸cony opis funkcji modemu Siemens M20T nie wyczerpuje wszystkich akceptowanych przez niego polece艅. Szczeg贸艂贸w dotycz膮cych aplikacji oraz mo偶liwo艣ci technicznych nale偶y szuka膰 w dokumentacji dost臋pnej w sieci Internet na stronie producenta i jego partner贸w handlowych.
Inne terminale GSM
Opr贸cz opisywanego modelu Siemens M20T na rynku dost臋pne s膮 tak偶e modu艂y Siemensa MC35 (fot. 1) i TC35 a tak偶e Sony Ericsson GSM47/48 (fot. 2). Stosunkowo 艂atwo dost臋pne s膮 r贸wnie偶 wyroby innych producent贸w. Jednym z nich jest niemiecka firma Falcom specjalizuj膮ca si臋 w produkcji wszelkiego rodzaju terminali GSM do przesy艂ania danych. Jako reprezentatywny dla grupy produkt贸w tej firmy chcia艂bym przedstawi膰 terminal o nazwie Falcom-2D. Zbudowany jest podobnie jak M20T, podobnie pod艂膮czany do urz膮dze艅 zewn臋trznych i obs艂uguj膮cy te same komendy AT. Nie studiowa艂em zbyt dok艂adnie listy akceptowanych polece艅, jednak ju偶 z pobie偶nej lektury wynika, 偶e bez wi臋kszych problem贸w mo偶na tym modemem zast膮pi膰 M20T. Zmiany w programie obs艂ugi
transmisji danych b臋d膮 raczej kosmetyczne. Falcom A2 jest wykonany w technologii "p艂ug & play" w celu 艂atwego i szybkiego po艂膮czenia z ka偶dym urz膮dzeniem maj膮cym mo偶liwo艣膰 pracy z modemem. Sterowany komendami AT, wyposa偶ony w interfejs szeregowy (niekt贸re modele nawet w dwa), pracuj膮cy w pasmach 900 i 1800MHz - terminal jest przeznaczony g艂贸wnie do zastosowania w motoryzacji, przeno艣nych biurach, aplikacjach s艂u偶膮cych do bezprzewodowej kontroli i monitorowania obiekt贸w oraz urz膮dze艅.
Innym wyrobem tego rodzaju jest modem GSM w艂oskiej firmy Progea. Podobnie jak Falcom ma mo偶liwo艣膰 pracy na dw贸ch cz臋stotliwo艣ciach fali no艣nej (900 i 1800MHz) i ma podobne przeznaczenie.
Pewn膮 alternatyw膮 dla opisanych wy偶ej terminali s膮 telefony kom贸rkowe, kt贸re maj膮 ju偶 wbudowany modem. Przyk艂adami takich telefon贸w mog膮 by膰 Siemens S25, Nokia 7110, Motorola Timeport 7389, Ericsson R320 i wiele innych.
Inaczej ni偶 w przypadku gotowego do pod艂膮czenia do komputera PC modemu GSM, stosuj膮c zwyk艂y telefon kom贸rkowy konieczne jest (w wi臋kszo艣ci przypadk贸w) zbudowanie uk艂adu dopasowuj膮cego poziomy napi臋膰 interfejsu RS232 (w PC jest to +12V/-12V, a w telefonie kom贸rkowym bardzo cz臋sto 0V/2,7...3,3V).
Przyk艂adem takiego zastosowania telefonu GSM jest projekt z majowej Elektroniki Praktycznej, w kt贸rym wykorzystano zwyk艂y telefon do zdalnego sterowania urz膮dzeniami.
Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
ATASNFO Ustawienie lub odczyt Toru wyj艣cia
audio
ATASNFS Wyb贸r zestawu urz膮dze艅 audio
ATASNFV Ustawienie lub odczyt nastaw
s艂uchawki
ATASRTC Wyb贸r, Testowanie i ustawienie
dzwonka
7. Komendy informuj膮ce 0 urz膮dzeniu
ATI Odczyt informacji do identyfikacji
produktu
AT+CGMI Odczyt id producenta
AT+CGMM Odczyt id modelu
AT+CGMR Odczyt id wersji
AT+CGSN Odczytnumeru IMEI
AT+CMEE Odczyt kodu b艂臋du do艂膮czonego
wyposa偶enia
AT+GMI Odczyt id wytw贸rcy
AT+GMM Odczyt id modelu TA
AT+GMR Odczyt id wersji TA
AT+GOI Odczyt id globalnego produktu
AT+GSN Odczyt numeru seryjnego TA
AT+CBC 艁adowanie batem
AT+CPAS Odczyt statusu wyposa偶enia
AT+GCAP Odczyt kompletnej listy kompatybil-
no艣膰 i TA
AT+FMI Fax odczytnumeruwytw贸rcy
AT+FMM Fax odczyt id modelu
AT+FMR Fax odczyt id wersji
8.KomendydoSMSiCB(GSM07.05)
AT+CMGD Usuni臋cie wiadomo艣ci SMS
AT+CMGF Wyb贸r lormatu wiadomo艣ci SMS
AT+CMGL Lista komunikat贸w SMS zapisa-
nych w preferowanej pami臋ci
AT+CMGR Odczyt komunikatu SMS
AT+CMGS Wys艂anie komunikatu SMS
AT+CMGW Zapis komunikatu SMS do pami臋ci
AT+CMSS Wys艂anie komunikatu SMS z pa-
mi臋ci
AT+CNMI Wska藕nik odbioru SMS
AT+CPMS Ustawienie preferowanej pami臋ci
do przechowywania SMS
AT+CRES Przywr贸cenie nastaw SMS
AT+CSAS Zapami臋tanie nastaw SMS
AT+CSCA Numer centrum serwisowego SMS
AT+CSCB Wyb贸r rodzaju odbieranych
wiadomo艣ci SMS
AT+CSDH Odczyt parametr贸w Trybu Tekstowe-
go SMS
AT+CSMP Ustawienie parametr贸w Trybu
TeksTowegoSMS
AT+CSMS Wyb贸r us艂ug SMS
ATASMGO Ustawienie lub odczyt Trybu obs艂ugi
przepe艂nienia bufora SMS
ATASMGR Odczyt komunikat贸w SMS bez
ustawienia ich statusu na REC
READ
9. Komendy dla przysy艂ania danych i faks贸w
ATO Prze艂膮czenie z Trybu przyjmowania
polece艅 do przesy艂ania danych
ATS10 Ustawienie czasu do roz艂膮czenia po
zaniku no艣nej
AT+DR Raport kontroli kompresji V 42bis
AT+DS Ustawienie kontroli protoko艂u
V42bis
AT+CBST Pr臋dko艣ci lub odczyt parametr贸w
Transmisji radiowej
AT+CR Us艂uga raporTowania kontroli
AT+CRLP Ustawienie parametr贸w kontroli
po艂膮czenia radiowego
AT+FCLASS Fax wyb贸r, odczyt lub Test klas
przesy艂aniafaks贸w
Elektronika Praktyczna S/2002
71
REKLAMA
Stabilizatory impulsowe DC/DC
W ofercie szwajcarskiej firmy Traco Power pojawi艂a si臋 nowa rodzina hybrydowych przetwornic DC/DC, kt贸re zar贸wno swoj膮 wewn臋trzn膮 budow膮, jak i obszarem aplikacyjnym znacznie r贸偶ni膮 si臋 od dotychczasowych opracowa艅 tej firmy, kt贸re prezentowali艣my na 艂amach EP.
Przetwornice z rodziny TSI, w odr贸偶nieniu od dotychczas prezentowanych, s膮 pozbawione galwanicznej izolacji pomi臋dzy wej艣ciem i wyj-
Otrtptrt ON-Short OutputOFF-Opun
Rys. 1
艣ciem, dzi臋ki czemu koncepcyjnie i aplikacyjnie zbli偶aj膮 si臋 do klasycznych stabilizator贸w napi臋cia. Charakteryzuj膮 si臋 one du偶膮 moc膮 wyj艣ciow膮 (od 10 a偶 do 40W - tab. 1) i bardzo du偶膮 sprawno艣ci膮, kt贸ra osi膮ga warto艣膰 do 94%. Wszystkie przetwornice pracuj膮 w uk艂adzie obni偶ania napi臋cia wej艣ciowego, a napi臋cie wyj艣ciowe mo偶e mie膰 warto艣膰 ustalon膮 przez producenta, mo偶e by膰 tak偶e zmieniane w niewielkim zakresie za pomoc膮 zewn臋trznego potencjometru. Przetwornice s膮 wyposa偶one tak偶e w dwustanowe wej艣cie zdalnego
Tab. 1
Rodzina Napi臋cie wej艣ciowe [VDC] Napi臋cie wyj艣ciowe [VDC] Pr膮d wyj艣ciowy [A] Wymiary obudowy [mm] Inne
TSI-10N 10W 4,75 13,6 +3,3 regulowane 1,8 3,3 2 20x21,5x8,3 Przetwornica obni偶aj膮ca bez separacji galwanicznej Sprawno艣膰 energetyczna do 93% Wej艣cie zdalnego w艂膮czarna
6,0 16,5 +5,0 regulowane 3,3 5,0 2
16,0 28,0 +3,3 regulowane 1,8 3,3 +5,0 regulowane 3,3 5,0 2
TSI-15N 15W 3,3 5,5 +2,5 regulowane 1,5 3,3 3 38x24x7,2 Przetwornica obni偶aj膮ca bez separacji galwanicznej Sprawno艣膰 energetyczna do 94% Wej艣cie zdalnego w艂膮czarna
9 36 +3,3 regulowane 3,0 5,0 1,8/2,2
18 36 + 12 regulowane 9,0 12 0,75/1
TSI-20N 20W 3,0 5,5 +3,3 regulowane 0,8 3,6 6 33x21,5x6 Przetwornica obni偶aj膮ca bez separacji galwanicznej Sprawno艣膰 energetyczna do 93% Wej艣cie zdalnego w艂膮czarna
TSI-4040W 4,5 13,6 +3,3 regulowane 1,0 3,3 12 51x25x10,7 Przetwornica obni偶aj膮ca bez separacji galwanicznej Sprawno艣膰 energetyczna do 95% Wej艣cie zdalnego w艂膮czarna
8,0 13,6 +5,0 regulowane 5,0 6,0 8
wy艂膮czania, za pomoc膮 kt贸rego mo偶na prze艂膮czy膰 je w tryb u艣pienia. Wszystkie przetwornice z rodziny TSI maj膮 wbudowane zabezpieczenia przet臋偶eniowe, dzi臋ki czemu ryzyko ich uszkodzenia w wyniku zwarcia obwodu wyj艣ciowego jest minimalne.
Na rys. 1 pokazano przyk艂adow膮 aplikacj臋 15-watowej przetwornicy TSI-15, w kt贸rej napi臋cie wyj艣ciowe jest regulowane za pomoc膮 zewn臋trznych rezystor贸w.
Przetwornice o mocy IOW (seria TSI-10) s膮 dostarczane przez produ-
Fot. 2
centa w obudowach zbli偶onych do SIP-5 (fot. 2). Charakteryzuj膮 si臋 one wzgl臋dnie niewielkim poziomem t臋tnie艅 napi臋cia na wyj艣ciu (do 50mVpp) i brakiem konieczno艣ci stosowania filtr贸w wyj艣ciowych (wystarczy pojedynczy kondensator o pojemno艣ci ok. 2,2fiF). Niewielkie wymiary przetwornicy uzyskano dzi臋ki wysokiej cz臋stotliwo艣ci kluczowania (3OOkHz), kt贸ra pozwala ponadto zminimalizowa膰 z艂o偶ono艣膰 filtra wyj艣ciowego. Czas reakcji obwod贸w wyj艣ciowych przetwornicy na zmiany obci膮偶enia jest zbli偶ony do 艣rednich warto艣ci w tego typu konstrukcjach i wynosi ok. 100[is.
Fot. 3
Elektronika Praktyczna S/2002
73
REKLAMA
Fot. 4
Przetwornice o mocy 15W, oznaczone symbolem TSI-15, s膮 dostarczane w dw贸ch wersjach obud贸w: SIP-12 lub DIP-1S (fot. 3). Ze wzgl臋du na wi臋ksz膮 przetwarzan膮 moc, ich wymiary s膮 nieco wi臋ksze ni偶 w przypadku TSI-10. Przetwornice z tej grupy o nominalnym napi臋ciu wyj艣ciowym wynosz膮cym 12V charakteryzuj膮 si臋 niezwykle wysok膮 sprawno艣ci膮 energetyczn膮, kt贸ra si臋ga a偶 94% w warunkach nominalnych.
Kolejn膮 grup膮 s膮 przetwornice o mocy 20W (TSI-20), kt贸re s膮 dostarczane w trzech wersjach obud贸w: SIP-12, DIP24 (fot. 4) oraz DIP-24 z ko艅c贸wkami przystosowanymi do monta偶u powierzchniowego. Sprawno艣膰 tych przetwornic w warunkach
Fot. 5
Rys. 贸
nominalnych wynosi
do 93%, a napi臋cie
szum贸w i t臋tnie艅 na L
wyj艣ciu nie przekra- T1
cza 40mV-_. Intere- L
suj膮cy jest fakt, 偶e
minimalne napi臋cie
wyj艣ciowe przetwornic z tej serii mo偶e
wynosi膰 800mV. Najwi臋ksz膮 moc
przetwarzan膮 oferuj膮 przetwornice TSI-40, kt贸re pomimo bardzo du偶ych maksymalnych nat臋偶e艅 pr膮du wyj艣ciowego (do 12A) zapewniaj膮 niewielki poziom wypadkowego napi臋cia szum贸w i t臋tnie艅 na wyj艣ciu. Zastosowana obudowa ma 12 ko艅c贸wek, kt贸rych rozmieszczenie jest zbli偶one do standardowej obudowy DIP-32 (fot. 5). Aby zapewni膰 wysok膮 jako艣膰 stabilizacji napi臋cia wyj艣ciowego, z uwzgl臋dnieniem spadku napi臋cia na przewodach 艂膮cz膮cych obci膮偶enie z wyj艣ciem przetwornicy, producent zastosowa艂 niezale偶ne od linii wyj艣ciowych dwa wej艣cia s艂u偶膮ce o pomiaru napi臋cia bezpo艣rednio na obci膮偶eniu. Schemat aplikacyjny przetwornicy TSI-40 pokazano na rys. 6 (czerwonymi strza艂kami zaznaczono miejsce do艂膮czenia czujnika napi臋cia). Tak偶e w tej rodzinie przetwornic producentowi uda艂o si臋 pobi膰 rekord -sprawno艣膰 modelu TSI-40-1211 w warunkach nominalnych wynosi a偶 95%.
Przetwornice przedstawione w artykule s膮 elementem nowego trendu w艣r贸d producent贸w przetwornic impulsowych, dzi臋ki kt贸remu - by膰 mo-
+vin
TSI 40-1210
-Vsui
V.獼 V.獼 l.OHP t 1
VR1
偶e ju偶 w nieodleg艂ej przysz艂o艣ci - powstanie na rynku konkurencja dla klasycznych stabilizator贸w liniowych. Jeszcze do niedawna takie stwierdzenie mo偶na by艂o uzna膰 za mrzonk臋, ale ich malej膮ce ceny, wysoka sprawno艣膰, mo偶liwo艣膰 stosowania bez konieczno艣ci montowania radiatora i niewielkie wymiary powoduj膮, 偶e ju偶 wkr贸tce mo偶e ona si臋 sta膰 codzienno艣ci膮.
Aktualnie dost臋pne w sprzeda偶y s膮 przetwornice serii TSI-10, natomiast pozosta艂e przetwornice b臋d膮 osi膮galne pod koniec bie偶膮cego roku. Niekt贸re parametry prezentowanych przetwornic mog膮 ulec nieznacznym zmianom. Andrzej Gawryluk, AVT
Dodatkowe informacje
Dodatkowe informacje mo偶na znale藕膰 w Inter-necie pod adresem: http://www.tracopower.com.
Noty katalogowe przetwornic prezentowanych w artykule znajduj膮sie. na p艂ycie CD-EP08/2002B.
Materia艂y do atykutu udost臋pnitafirrna Amtek spol. s.r.o., Tel. (22) 874-02-34, amtek@amtek.pl.
74
Elektronika Praktyczna S/2002
KURS
specyfikacja standardu

/
Sterowanie CD-ROM-贸w i dysk贸w twardych w praktyce, cz臋艣膰 2
W drugiej cz臋艣ci artyku艂u pubiikujomy roszt臋 podstawowych informacji zwi膮zanych z programow膮 obs艂ug膮 urz膮dze艅 do艂膮czonych do interfejsu ATA, Dzi臋ki nim samodzieine przygotowanie oprogramowania dia mikrokontroiera wsp贸艂pracuj膮cego z dyskiem twardym b臋dzie znacznie 艂atwiejsze ni偶 dotychczas.
Tryby adresowania
Wyr贸偶niamy dwa, wcze艣niej ju偶 wspomniane, tryby adresowania:
1. CHS - adresowanie odbywa si臋 za pomoc膮 trzech p贸l:
- Cylinder (1...255),
- Head (1...15),
- Sector fO...65535).
2. LBA, w kt贸rym adres jest wyliczany ze wzoru: LBA = ((cylinder * heads_per_cylinder + heads} * sec-iors_per_irack} + secior - 1.
Gdy urz膮dzenie posiada mniej ni偶 16515072 sektor贸w, domy艣lnym trybem adresowania staje si臋 tryb CHS. W prze-
ciwnym przypadku - LBA. Sterownik wbudowany w nap臋d, bez wzgl臋du na pojemno艣膰 no艣nika danych, powinien obs艂ugiwa膰 oba tryby adresowania. Host wybiera tryb adresowanie poprzez ustawienie bitu LBA w rejestrze DevicefHe-ad. Po w艂膮czeniu zasilania urz膮dzenie IDE przechodzi automatycznie na tryb adresowania CHS.
Sterowanie CD-ROM-em
Sterowanie CD-ROM-em odbywa si臋 za pomoc膮 12-bajtowych ramek zwanych rozkazami. Pierwszy bajt w ramce jest jednocze艣nie kodem roz-
kazu. Aby przes艂a膰 12-bajtow膮 ramk臋 steruj膮c膮 nale偶y przedtem - ka偶dorazowo - ustawi膰 odpowiednie rejestry.
Zaczynamy od sprawdzenie rejestru Aliernaie Status i stanu bitu BSY. Odczytujemy cyklicznie w p臋tli rejestr dop贸ki bit BSY nie b臋dzie r贸wny ,,0". Odczytujemy rejestr Status -spowoduje to skasowanie ewentualnego przerwania. Do rejestru Cylinder Low wpisujemy warto艣膰 12 (dziesi臋tnie) - jest to liczba danych, jak膮 chcemy przes艂a膰 do urz膮dzenia. Zerujemy rejestry Cylinder High, Feaiu-res, Secior Couni, Secior Number. Do rejestr贸w Cylinder Low i Cylinder High wpisujemy liczb臋 bajt贸w, jak膮 jeste艣my w stanie odebra膰 od nap臋du. Sprawdzamy warto艣膰 bitu w rejestrze Aliernaie Siaius i czekamy dop贸ki bit BSY = 1. Odczytujemy rejestr Siaius - spowoduje to skasowanie zadania obs艂ugi przerwania.
Wpisujemy do rejestru Cornrnand tzw. Aiapi Packei Cornrnand - bajt o warto艣ci 0xA0. Bajt ten informuje urz膮dzenie, 艣e b臋dziemy przesy艂a膰 ramk臋 steruj膮c膮, a nast臋pnie:
- odczytujemy zawarto艣膰 rejestru Aliernaie Siaius;
- czekamy, a艣 bit BSY b臋dzie r贸wny "0";
- odczytujemy zawarto艣膰 rejestru Siaius;
- sprawdzamy warto艣膰 bitu ERR -powinna by膰 r贸wna ,,0";
- sprawdzamy warto艣膰 bitu DRQ w rejestrze Siaius - powinien by膰 teraz ustawiony.
- teraz mo偶emy wpisywa膰 12-bajtow膮 ramk臋 steruj膮c膮;
- dane wprowadzamy na magistral臋 danych DDO. ..15; bajty parzyste ramki (0, 2, 4, 6, 8, 10) wpisuje-
Elektronika Praktyczna S/2002
81
KURS
my na mniej znacz膮c膮 cz臋sc magistrali danych DD0...7 a bajty nieparzyste (1, 3, 5, 7, 9, 11) na bardziej znacz膮c膮 cz臋艣膰 magistrali DD8...15; ka偶dorazowo musimy wpisa膰 dwa bajty, czyli sumarycznie dokonujemy sze艣膰 cykli zapisu; obecnie tylko bardzo stare urz膮dzenia obs艂uguj膮 transmisj臋 danych w trybie o艣miobitowym.
Gdy porcja danych jest ju偶 gotowa na magistrali danych DD0...15, zerujemy lini臋 DIOW. Odczekujemy ok. 1 us i ustawiamy DIOW (poziom wysoki). Dane wpisywane s膮 do urz膮dzenia zboczem narastaj膮cym. Cykl zapisu po-
nych. Jak wida膰 kod komendy (najm艂odszy bajt) jest w tych trzech przypadkach taki sam. Zmienia si臋 tylko warto艣膰 czwartego bajtu. W bajcie pierwszym ustawiony jest bit zerowy - oznacza to, 偶e Status ma by膰 zwr贸cony natychmiast po tym, jak sprawdzona b臋dzie poprawno艣膰 przesianej ramki przez CD-ROM, stanu tacki (czy wysuni臋ta, czy nie) oraz status p艂yty. W przeciwnym przypadku Status jest zwracany po sko艅czeniu ca艂ej operacji.
0x01 Numer poczqtkowej 艣cie偶ki od kt贸rej CD-ROM ma
zwr贸ci膰 informacj臋 0x00 0x64 100 bajt贸w na dane z CD-ROM-u
Nap臋dy CD-ROM s膮 wyposa偶one w interfejs ATAPI, kt贸ry jest rozwini臋ciem klasycznego
wtarzamy sze艣膰 razy. Po wpi- . IDE - Charakteryzuje si臋 on
saniu 12 bajt贸w ramki urz膮- f zastosowaniem protoko艂u niemal identyczne-dzenie ustawia bit BSY. Od- S<> ze SCSI, przy zachowaniu mechanicznej
czytuj膮c stan rejestru Alterna-te Status czekamy, a偶 bit ^^^^ BSY b臋dzie r贸wny zero. Gdy tak si臋 stanie, odczytujemy rejestr Status. Sprawdzamy czy bit ERR = 0 oraz czy bit DRQ = 1. Nast臋pnie musimy odczyta膰 ile bajt贸w danych ma do przekazania CD-ROM. Warto艣膰 ta sk艂adana jest z m艂odszego bajtu pobieranego z rejestru Cylinder Low, oraz starszego bajtu z rejestru Cylinder High. Dane z CD-ROM-u do hosta s膮 transmitowane w trybie 16-bitowym. Ka偶de opadaj膮ce zbocze sygna艂u na linii DIOR powoduje wystawienie dw贸ch bajt贸w danych na magistral臋 DD0...15. Po odczytanej liczbie bajt贸w powinni艣my sprawdzi膰 czy bit ERR nie jest ustawiony w rejestrze Status. Gdy bit ERR=0 mo偶emy przyj膮膰, 偶e dane odebrano prawid艂owo.
Wy偶ej wymienione czynno艣ci powtarzamy ka偶dorazowo, gdy chcemy przes艂a膰 porcje danych do CD-ROM-u.
Formaty ramek steruj膮cych nap臋dem
Eject CD - wysuni臋cie p艂yty z nap臋du wymaga wys艂ania nast臋puj膮cej sekwencji bajt贸w: OxlB, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00.
Load CD - za艂adowanie kr膮偶ka do nap臋du wymaga wys艂ania nast臋puj膮cej sekwencji bajt贸w: 0xlB, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00.
Start CD - wystartowanie nap臋du i przeczytanie TOC wymaga wys艂ania nast臋puj膮cej sekwencji bajt贸w: 0xlB, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00.
Stop CD - zatrzymanie nap臋du wymaga wys艂ania nast臋puj膮cej sekwencji bajt贸w: 0xlB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00.
Po wykonaniu powy偶szych polece艅 CD-ROM nie zwraca 偶adnych da-
i elektrycznej kompatybilno艣ci z IDE.
TOC - Table of Contents - to bardzo wa偶na tablica. Zawiera adresy pocz膮tkowe poszczeg贸lnych 艣cie偶ek, sesji, itp. Jej odczyt przebiega nast臋puj膮co:
Zatrzymanie odtwarzania p艂yty CD audio [Stop) wymaga wys艂ania nast臋puj膮cej sekwencji bajt贸w: 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00.
Test gotowo艣ci urz膮dzenia wymaga wys艂ania nast臋puj膮cej sekwencji bajt贸w: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00.
Nast臋pnie wysy艂amy komend臋 Re-膮uest Sense Key, kt贸ra sk艂ada si臋 z nast臋puj膮cej sekwencji bajt贸w: 0 0x03 W wyniku odpowiedzi na t臋 ramk臋 otrzymamy z CD-ROM-u ASC i ASCQ.
Znajdujq si臋 one odpowiednio w bajcie 12 i 13. ASC = 0x00 oznacza p艂yt臋 CD w nap臋dzie. ASC = Ox3A brak p艂yty w nap臋dzie. ASC = 0x02 g艂owice nie ustawi艂y si臋 jeszcze -
musimy czeka膰.
ASC = 0x04 brak gotowo艣ci nap臋du - musimy czeka膰.
Odczyt TOC wymaga wys艂ania nast臋puj膮cej sekwencji bajt贸w:
0 0x43 1 0x00 CD zwr贸ci informacjewLBA (0x00)- niewMSF
Poni偶ej pokazano przyk艂adow膮 ramk臋 wys艂an膮 przez CD-ROM w odpowiedzi na zapytanie o TOC. Pierwsze dwa bajty okre艣laj膮 ilo艣膰 przes艂anej informacji w bajtach. Bajt czwarty okre艣la liczb臋 utwor贸w na p艂ycie. Bajty: 5, 13, 20 itd. s膮 znacznikami pocz膮tku adresu - maj膮 sta艂膮 warto艣膰 0x10. Maj膮 charakter czysto informacyjny. Wa偶n膮 艣cie偶k膮 jest 艣cie偶ka o numerze 0xAA (tzw. Lead Track) - adres tej 艣cie偶ki oznacza ostatni sektor na p艂ycie CD.
Numer utworu Adres utworu
1 0x00 0x00 0x20 0x00
2 0x00 0x20 0x38 OxlC
3 0x00 0x2C Ox3B 0x21
4 0x00 0x3/ 0x33 0x03
OxAA 0x00 0x4A 0x38 OxlC
Mamy, wi臋c odczytan膮 informacj臋
o adresach 艣cie偶ek. Teraz mo偶emy
przyst膮pi膰 do odtwarzania utwor贸w.
Przebieg, a to w nast臋puj膮cy spos贸b:
Nr bajtu Warto艣膰 Komentarz
0 0x00 MSB TOC Data Length
1 0x2A LSB 10C Data Length
2 0x01 First Track Number
3 0x04 Last Irack Number
4 0x00 Reserved
5 0x10 ADR(4bity)|C0N[R0L(4bity)
6 0x01 [rackNumber
/ 0x00 Reserved
8 0x00 MSB
9 0x00
10 0x02
11 0x00 LSB
12 0x00 Reserved
13 0x10 ADR(4bity)|C0NlR0L(4bity)
14 0x02 [rackNumber
B 0x00 Reserved
艢t贸 0x00
17 0x20
18 0x38
1? OxlC
20- 0x00 Reserved
21 0x10 ADR(4bity)|C0NlR0L(4bity)
22 0x03 Irack Number
23 0x00 Reserved
24 0x00
25 Ox2C
26 Ox3B
2/ 0x21
28 0x00 Reserved
2? 0x10 ADR(4bity)|C0N[R0L(4bity)
82
Elektronika Praktyczna 8/2002
KURS
30 0x04 track Number
31 37 0x00 Reserved
M 33 twoo 0x37
34 0x33
35 0x03
艢 woo 昋x-10
38 m Lead 0U1
3f OxO脫
40 di 0x00
42 0x38
4! Oxlt
Odtwarzanie p艂yty CD audio wymaga wys艂ania nast臋puj膮cej sekwencji bajt贸w:
0xA5
0x20
0x00-
0x38 Dx1C
Adres poczqtkowy utworu (tutaj fack 1)
Ilo艣膰 danych- nie adres
ko艅cowy!!!
Czyli do odtworzenia ca艂a p艂yta
Wstrzymanie lub wznowienie odtwarzania (PAUSE) nast臋puje po wysianiu nast臋puj膮cej sekwencji bajt贸w: 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, xxx = 0x01 (odtwarzanie lub wznowienie) xxx = 0x00 (odtwarzanie wstrzymane), 0x00, 0x00, 0x00.
Zatrzymanie odtwarzania p艂yty CD audio (STOP) nast臋puje po wysianiu nast臋puj膮cej sekwencji bajt贸w: 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00.
Odczyt danych z sektor贸w
Dysk twardy w trybie CHS
Sprawdzamy stan bitu Busy w rejestrze Alternate status. Gdy BSY = 1, czekamy na BSY=0 i odczytujemy rejestr Status. W rejestrze Device He-ad zerujemy bity LBA (odczyt b臋dzie w trybie CHS) oraz bit DEV (gdy chcemy odczyta膰 dane z Mastera -w przeciwnym wypadku ustawiamy ten bit). Bity 7 i 5 domy艣lnie ustawiamy. Na mniej znacz膮ce bity tego rejestru wpisujemy adres Head. W rejestrze Alternate Status sprawdzamy stan bit贸w DRDY i BSY. Pierwszy musi by膰 ustawiony, drugi wyzerowa-ny. Odczytujemy rejestr Status. Do rejestr贸w Cylinder High i Cylinder Low wpisujemy starszy bajt i m艂odszy bajt pocz膮tkowego adresu Cylinder. Do rejestru Sector Number wpisujemy liczb臋 sektor贸w do odczytu.
Write CMD
Read Status
Rd/WrData
BSY
CoD
ByteCount
DRQ
INTRQ
Rys. 4. Przebiegi czasowe charakterystyczne dla zapisu polecenia do sterownika
Do rejestru Command wpisujemy warto艣膰 0x20 - kod komendy ATA_READ_SECTS. Nast臋pnie czekamy ok. 10 us, odczytujemy rejestr Alternate Status i sprawdzamy bit BSY. Czekamy a偶 bit BSY b臋dzie wyzerowany. Odczytujemy rejestr Status, aby skasowa膰 przerwanie. Sprawdzamy stan bit贸w: ERR (powinien by膰 wyzerowany), DRQ (powinien by膰 ustawiony - urz膮dzenie chce przesia膰 dla nas dane).
Dane odczytujemy jak w poprzednim przyk艂adzie. Opadaj膮ce zbocze na linii DIOR powoduje wystawienie dw贸ch kolejnych bajt贸w na magistral臋 DD0...15. Ilo艣膰 danych, kt贸re musimy odebra膰 jest okre艣lona liczb膮 sektor贸w, jak膮 wcze艣niej wpisali艣my do rejestru Sector Number pomno偶on膮 przez zmienn膮, kt贸ra okre艣la liczb臋 bajt贸w w sektorze - tzw. BytesPer-Sector. Warto艣膰 ta mo偶e wynosi膰 4096 lub 8192 B.
Dysk twardy w trybie LBA
Dane odczytujemy bardzo podobnie jak w trybie CHS z t膮 r贸偶nic膮, 偶e adres pocz膮tkowy podajemy w LBA, nast臋pnie sprawdzamy stan bitu BSY. Gdy jest wyzerowany - ustawiamy bit LBA w rejestrze Device/Head. Do mniej znacz膮cej po艂owy rejestru wpisujemy bity 27...24 adresu pocz膮tkowego w trybie LBA. Do rejestru Cy-linder High wpisujemy bity 2 3... 16 adresu LBA, do rejestru Cylinder Low bity 15...8, a do rejestru Sector Number bity 0... 7. Do rejestru Sector
Count wpisujemy liczb臋 sektor贸w do odczytu.
Zale偶no艣ci czasowe
Na rys. 4 przedstawiono przyk艂adowe zale偶no艣ci czasowe przebiegu sygna艂贸w na magistrali danych i liniach steruj膮cych CD-ROM-u. Na rysunku pomini臋to dok艂adne specyfikacje czas贸w pomi臋dzy zmianami sygna艂贸w - ma to by膰 tylko ilustracja dzia艂ania interfejsu.
Aplikacja
Na podstawie przedstawionego opisu przygotowa艂em oprogramowanie steruj膮ce zaimplementowane w mikro-kontrolerze z rodziny AVR. Program dla niego jest napisany w C - wszystkie 藕r贸d艂a s膮 dost臋pne na stronie in-ternetowej http://www.pelos.pl/cd_free/ oraz na p艂ycie CD-EP8/2002B. Pawe艂 Dienwebel pelos@pelos.pl
Literatura
[1] INF-8020.pdf - 膭ATA Packet In-
terface for CDROM rev. 2.6 lub
wy偶sze"
[2] CD3610 - Command Specification [3] http://www.pelos.pl/cd_free/ [4] http://www.yampp.com [5] Standard ECMA -130 "Data inter-
change on read-only 120 mm
optical data disks (CD-ROM)" [6] SFF8090i v4 - Fuji Commands for
Multimedia Devices [7] http://www.republika.pl/romek_by/
index.html
Elektronika Praktyczna 8/2002
83
KURS
W trzeciej cz臋艣ci kursu autor pokazuje jak
w wygodny i przejrzysty spos贸b budowa膰 programy
sk艂adaj膮ce si臋 z wielu fragment贸w, kt贸re spe艂niaj膮 rol臋 biblioteki
najcz臋艣ciej stosowanych funkcji.
Budujemy program z klock贸w, czyli co to jest "project file
W poprzedniej cz臋艣ci artyku艂u wspomina艂em o zbiorach nag艂贸wkowych oraz tak zwanych project file. My艣l臋, 偶e zar贸wno jedne, jak i drugie b臋d膮 dla nas bardzo u偶yteczne i wymagaj膮 kilku s艂贸w wyja艣nienia. Co to jest zatem project file?
Pod t膮 tajemnicz膮 nazw膮 kryje si臋 po prostu lista zbior贸w sk艂adaj膮cych si臋 na nasz program. Wracaj膮c do przyk艂adu z poprzedniego odcinka -je艣li na podstawie programu do obs艂ugi wy艣wietlacza LCD utworzymy bibliotek臋, to musimy j膮 w jaki艣 spos贸b do艂膮czy膰 do programu g艂贸wnego. Ten zbi贸r zawieraj膮cy list臋 wsp贸艂pracuj膮cych ze sob膮 modu艂贸w, poddawanych dzia艂aniu kompilatora i linkera, stanowi tak zwany projekt (z angielskiego project). Czyli project file to po prostu lista zbior贸w uwzgl臋dnianych przez kompilator i linker przy translacji kodu 藕r贸d艂owego na kod wynikowy. Na tej li艣cie mog膮 si臋 znale藕膰 nie tylko programy w j臋zyku C, ale r贸wnie偶 w j臋zyku asemblera. Dla nas jest to bardzo u偶yteczna informacja. Jest to sygna艂, 偶e nasz program nie musi by膰 przygotowany wy艂膮cznie w j臋zyku C. Po utworzeniu nowego projektu warto jest zajrze膰 do zak艂adki menu Project Options. Mo偶na tam znale藕膰 szereg opcji kompilator贸w C i asemblera, kt贸re mog膮 wymaga膰 ustawienia. Na przyk艂ad, je偶eli stosujemy mikrokontroler AT89S8252, to mo偶na w艂膮czy膰 opcj臋 Dual DPTR. Pomaga ona przy pewnych operacjach 16-bitowych. Podobnie mo偶na post膮pi膰 z definicj膮 rejestr贸w 8051 dla modu艂贸w j臋zyka asem-bler tak, 偶e nie trzeba b臋dzie ich do艂膮cza膰.
Budujemy pierwsz膮 bibliotek臋 LCD4B.H
Stw贸rzmy na podstawie programu do obs艂ugi wy艣wietlacza nasz膮 pierwsz膮 bibliotek臋 funkcji dla j臋zyka C. Po pierwsze, musimy zdefiniowa膰 zbi贸r nag艂贸wka, kt贸ry b臋dzie zawiera艂 wszystkie istotne dla pracy modu艂u parametry tak, aby nie trzeba by艂o ich szuka膰 w kodzie 藕r贸d艂owym biblioteki. Ten zbi贸r b臋dzie te偶 swe-
go rodzaju 艂膮cznikiem pomi臋dzy programem g艂贸wnym a bibliotek膮. Nasz zbi贸r LCD4B.H mo偶e mie膰 posta膰, jak poni偶ej:
#include
// port, do kt贸rego pod艂膮czono
// wy艣wietlacz LCD
# de fine PORT P2
// bity steruj膮ce LCD
#define ENABLE PORT^O
#def ine READ P0RTA3
#define REGISTER PORT-^2
// op贸藕nienie wielokrotno艣ci oko艂o
// 1 milisekundy dla kwarcu
// 7,3728MHz
void Delay (unsigned int k);
// zapis bajtu do LCD
void WriteByteToLcdfchar X);
// zapis bajtu do rejestru
// kontrolnego LCD
void WriteToLcdCtrlRegister(char X) ;
// zapis baj tu do pami臋ci obrazu
void LcdWritefchar X);
// czyszczenie ekranu LCD
void LcdClrScr(void);
// inicjalizacja wy艣wietlacza LCD
// w trybie 4 bity
void Lcdlnitialize(void);
// ustawia kursor na wsp贸艂rz臋dnych
// x, y
void GotoXY(char x, char y);
// wy艣wietla tekst na wsp贸艂rz臋dnych
// x, y
void WriteTextXY(char x, char y,
char *S);
// wy艣wietla tekst od rozpoczynaj膮c
// od pozycji kursora
void WriteText(char *S);
// definiowanie znak贸w z tablicy
// wskazywanej przez ptr
void DefineSpecialCharacters(char
*ptr) ;
Jak 艂atwo zauwa偶y膰, jest to dok艂adne powt贸rzenie definicji nag艂贸wk贸w funkcji oraz sta艂ych i zmiennych, kt贸re maj膮 by膰 dost臋pne r贸wnie偶 w innych modu艂ach tego samego programu. Plik nag艂贸wkowy naj艂atwiej jest w tym przypadku utworzy膰, otwieraj膮c zbi贸r LCD4B.C i kasuj膮c wszystkie cia艂a funkcji, zostawiaj膮c tylko ich nag艂贸wki. Pozostawi膰 lub dopisa膰 mo偶emy r贸wnie偶 r贸偶ne zmienne i sta艂e, kt贸rych b臋dziemy u偶ywa膰. Zbi贸r po edycji zapisujemy
pod nazw膮 LCD4B.H. Bardziej w艂a艣ciwym wydaje si臋 jednak pozostawienie tylko tych funkcji i procedur, kt贸re b臋d膮 nam potrzebne.
Teraz kolej na w艂a艣ciw膮 implementacj臋 LCD4B.C. Na pocz膮tku modu艂u umieszczamy dyrektyw臋 #inclu-de LCD4B.H. W ten spos贸b wszystkie definicje z pliku nag艂贸wkowego dost臋pne b臋d膮 r贸wnie偶 w pliku 藕r贸d艂owym. W kolejnym kroku usuwamy segment main(). W zasadzie biblioteka jest ju偶 gotowa. Nale偶y jeszcze spr贸bowa膰 skompilowa膰 LCD4B.C, aby sprawdzi膰, czy kt贸re艣 z definicji nie powtarzaj膮 si臋 i czy nie ma w nich b艂臋d贸w.
艁膮czymy bibliotek臋
z programem g艂贸wnym
Program g艂贸wny to program w j臋zyku C. Stanowi on jeden ze sk艂adnik贸w projektu. Podobnie, sk艂adnikiem projektu musi by膰 posta膰 藕r贸d艂owa biblioteki funkcji wy艣wietlacza oraz plik nag艂贸wka. Pos艂u偶my si臋 przyk艂adem z poprzedniego odcinka i napiszmy ten sam program, ale korzystaj膮c z utworzonej biblioteki.
Po uruchomieniu RIDE, w pasku menu na g贸rze ekranu odnajdziemy Project. Wybierzmy t臋 opcj臋, a nast臋pnie New. Utw贸rzmy nowy zbi贸r projektu i nazwijmy go Pierwszy. Program sam nada mu domy艣lne rozszerzenie. PRJ, a na dole ekranu zostanie otwarte okienko projektu. Nast臋pnie wybierzmy File New i utw贸rzmy zbi贸r o rozszerzeniu.C - to b臋dzie nasz program g艂贸wny. Jego tre艣膰 powinna by膰 nast臋puj膮ca: #include "Icd4b.h" // program g艂贸wny void main(void)
char ix = 1, iy = 1, x, y, i = 0;
Lcdlnitializef);
DefineSpecialCharacters(&CGRom);
LcdClrScrf);
while (1)
Elektronika Praktyczna 8/2002
85
KURS
WriteTextXY(x, y, " "); if (ix == 1) X++; else X-; if (iy == 1) y++; else y-; if (X == 19) ix = 0; if (x == 0) ix = 1; if (y == 3) iy = 0; if (y == 0) iy = 1; WriteTextXY(x, y, 0x01); Delay(50);
Tabela 2. Lokalizacja parametr贸w przekazywanych do funkcji
Numer argumentu char lub wska藕nik 1-bajtowy int lub wska藕nik 2-bajt owy long lub float wska藕nik typu generic
1 R7 R6:R7 R4:R5:R6:R7 R1:R2:R3
2 R5 R4:R5 R4:R5:R6:R7 R1:R2:R3
3 R3 R2:R3 R1:R2:R3
}艢
Uwaga: wybranie File Open lub File New nie powoduje dodania otwartego lub nowego zbioru do projektu.
Po wpisaniu tych kilku linijek instrukcji, zapisujemy program g艂贸wny poprzez File Save As pod nazw膮 TEST.C. Zapami臋tali艣my program g艂贸wny, teraz musi si臋 on sta膰 cz臋艣ci膮 projektu. W tym celu naciskamy klawisze skr贸tu ALT + INSERT i w otwartym okienku wskazujemy zbi贸r TEST.C. Zbi贸r powinien si臋 pojawi膰 w okienku Project na dole ekranu. B臋dzie on widoczny po wskazaniu symbolu "+". W ten sam spos贸b musimy do艂膮czy膰 zbi贸r LCD4B. C, poniewa偶 musi on by膰 kompilowany r贸wnocze艣nie z programem g艂贸wnym. Zbioru LCD4B.H nie trzeba do艂膮cza膰. Zostanie on do艂膮czony automatycznie w czasie kompilacji, poniewa偶 jest wymieniony jak parametr dyrektywy ttinclude. Po naci艣ni臋ciu klawisza F9, co odpowiada wywo艂aniu Make Ali, nasz projekt powinien skompilowa膰 si臋 bezb艂臋dnie, a rezultat w postaci zbioru wynikowego "Pierwszy.hex" powinien zosta膰 zapisany na dysku.
艁膮czymy modu艂 j臋zyka C z asemblerem
Podobnir jak 艂膮czyli艣my modu艂y napisane w j臋zyku C, mo偶emy do艂膮czy膰 do programu g艂贸wnego w C modu艂y napisane w j臋zyku asembler. Kompilator RC-51 oferuje nam 3 sposoby do艂膮czania funkcji napisanych w j臋zyku asembler:
1. Za pomoc膮 instrukcji ASM.
Instrukcja asm pozwala na umieszczenie kodu j臋zyka asembler w posta-
Tabela 1. Lokalizacja warto艣ci zwracanych przez funkcje
Rozmiar (typ parametru) Lokalizacja
bit (1 bit) flaga Carry
char (1 byte) R7
int (2 bajty) R6:R7
generic pointer (3 bajty) R1:R2:R3
float (4 bajty) R4:R5:R6:R7
double (6 bajt贸w) R2:R3:R4:R5:R6:R7
long double (7 bajt贸w) R1:R2:R3:R4:R5:R6:R7
ci liczb szesnastkowych w pliku 藕r贸d艂owym programu. Znajdzie si臋 on pod adresem wynikaj膮cym z bie偶膮cego stanu kodu. Spodziewane s膮 warto艣ci jednobajtowe obiekt贸w, za wyj膮tkiem adres贸w zmiennych zewn臋trznych [co-de lub xdata), kt贸re wymagaj膮 2 bajt贸w. Nie jest to metoda zbyt wygodna. Sami musimy bowiem spe艂ni膰 rol臋 asemblera t艂umacz膮c mnemoniki na kody szesnastkowe.
2. Za pomoc膮 dyrektywy #pragma ASM.
Dyrektywa ta pozwala na umieszczenie kodu w postaci mnemonik贸w asemblera w pliku 藕r贸d艂owym programu. Blok ten powinien si臋 zaczyna膰 od ttpragma ASM i ko艅czy膰 ttpragma ENDASM. Metoda ta, podobnie jak powy偶sza, polecana jest jednak do niewielkich procedur.
3. Za pomoc膮 modu艂u w j臋zyku asmeblera.
Moim zdaniem jest to najlepsza i najbardziej efektywna metoda zar贸wno do ma艂ych, jak i du偶ych procedur w j臋zyku asembler. Pozbawiona jest wad poprzednik贸w - wymaga jednak opanowania kilku podstawowych regu艂 przekazywania parametr贸w. Metod臋 t臋 om贸wimy najszerzej. B臋dziemy te偶 stosowa膰 j膮 we wszystkich przyk艂adach 艂膮czenia modu艂贸w asemblera z modu艂ami w j臋zyku C.
Jak przekazywane s膮 parametry funkcji?
Parametry funkcji mo偶emy podzieli膰 na dwie grupy. Pierwsz膮 z nich b臋d膮 stanowi膰 parametry zwracane jako rezultat dzia艂ania funkcji, drug膮 pobierane przez ni膮 z zewn膮trz (argumenty). Oba rodzaje parametr贸w przekazywane s膮 przez bank rejestr贸w. Trzeba by膰 wi臋c ostro偶nym, wykorzystuj膮c go do innych cel贸w.
W przypadku warto艣ci zwracanych przez funkcj臋 sytuacja jest bardzo prosta, poniewa偶 funkcja mo偶e zwraca膰 tylko jedn膮 warto艣膰. Wystarczy wi臋c znajomo艣膰 tab. 1. Chyba 偶e warto艣膰 zwracana nie mie艣ci si臋 w banku rejestr贸w. W贸wczas jest ona umieszczana na stosie mikrokontrole-ra. Inaczej jest w przypadku, gdy zachodzi konieczno艣膰 przekazania argument贸w do funkcji.
Przez bank rejestr贸w mo偶e by膰 przekazane do trzech argument贸w. Je艣li jest ich wi臋cej, w贸wczas u偶ywany jest stos. Metoda przekazywania argu-
ment贸w przez bank rejestr贸w jest domy艣ln膮 dla kompilatora. Mo偶na j膮 jednak zmieni膰, stosuj膮c polecenie #prag-ma NOREGPARMS. W贸wczas argumenty funkcji przekazywane s膮 przez stos lub zapami臋tywane w segmencie zmiennych pseudostatycznych. Po艂o偶enie tego segmentu zale偶y od wybranego modelu pami臋ci (je艣li wybrany zosta艂 model SMALL, LARGE lub COMPACT, w贸wczas znajduje si臋 on odpowiednio w obszarze DATA, XDA-TA lub PDATA). Nie polecam jednak u偶ywania tego polecenia, poniewa偶 w贸wczas lokalizacja argument贸w mo偶e by膰 dosy膰 trudna.
Nazwy funkcji j臋zyka C a asembler
W celu u艂atwienia analizy programu w j臋zyku asembler oraz unikni臋cia b艂臋d贸w tak zwanych runtime, nazwy funkcji podczas kompilowania programu s膮 nieco modyfikowane.
- void funcl(void) wygeneruje symbol FUNCl. Nazwa funkcji bez parametr贸w lub z parametrami nieprze-kazywanymi przez rejestry jest przenoszona do zbioru. OBJ bez zmian. Ma艂e litery w nazwie funkcji zamieniane s膮 na du偶e.
- void func2(char) wygeneruje symbol _FUNC2. Dla funkcji z argumentami przekazywanymi w rejestrach, na pocz膮tku nazwy dodawany jest znak podkre艣lenia. Znak ten jest identyfikatorem funkcji pobieraj膮cych argumenty z rejestr贸w. Ma艂e litery w nazwie funkcji zamieniane s膮 na du偶e.
- void func3 (void) reentrant wygeneruje symbol ?FUNC3. Funkcje typu reentrant (to znaczy takie, kt贸re mog膮 by膰 wywo艂ywane jednocze艣nie przez wiele innych funkcji) maj膮 nazw臋 poprzedzon膮 znakiem zapytania. Okre艣la on funkcj臋 typu reentrant.
Na dysku powstaje co najmniej trzy rodzaje zbior贸w. Pierwszy z nich to przet艂umaczony na j臋zyk asemblera program 藕r贸d艂owy (.LST), drugi to mapa zmiennych i sta艂ych (adresy ich rozmieszczenia w pami臋ci 'M51), trzeci to zbi贸r wynikowy. HEX lub. B IN (albo oba te zbiory). Je艣li mamy w膮tpliwo艣ci co do sposobu, w jaki wykonany zostanie nasz program napisany w j臋zyku C, to w贸wczas analiza kodu wynikowego w j臋zyku asembler mo偶e je wyja艣ni膰.
86
Elektronika Praktyczna 8/2002
KURS
Nareszcie co艣 dla praktyk贸w
Spo偶ytkujmy nowo zdobyt膮 wiedz臋. Przyda nam si臋 zar贸wno ta o tworzeniu zbior贸w nag艂贸wkowych typu ,H, jak i o 艂膮czeniu modu艂贸w i przekazywaniu argument贸w do funkcji w j臋zyku C oraz pobieraniu rezultat贸w ich dzia艂ania. Za przyk艂ad niech pos艂u偶y nam program do odczytywania standardowej klawiatury PC. Jeszcze drobna uwaga. Bez wdawania si臋 w szczeg贸艂y funkcjonowania kompilatora j臋zyka asembler, modu艂 z tego przyk艂adu mo偶na potraktowa膰 jako pewnego rodzaju szablon. W skr贸cie struktura takiego pliku jest nast臋puj膮ca:
SEGMENT CODE EXTRN DATA () EXTRN CODE () PUBLIC RSEG
.....implementacja. .. .
END
Kiedy warto stosowa膰 modu艂y napisane w asemblerze? Po pierwsze wtedy, gdy zale偶y nam na szybko艣ci dzia艂ania. Drugi pow贸d mo偶e zaprzeczy膰 idei stosowania j臋zyk贸w wysokiego poziomu, do kt贸rych nale偶y r贸wnie偶 C, jednak niekt贸re funkcje jest znacznie 艂atwiej zaimplementowa膰 w asemblerze ni偶 w C. Tak jest na przyk艂ad z odczytywaniem klawiatury PC. Dane z niej wprowadzane s膮 szeregowo, wi臋c konieczne jest u偶ycie instrukcji przesuwania zawarto艣ci rejestru roboczego w prawo lub w lewo. Najpro艣ciej jest to zrobi膰, zapami臋tuj膮c warto艣膰 bitu portu, do kt贸rego pod艂膮czone jest wej艣cie/wyj艣cie danych klawiatury w fladze przeniesienia C (na przyk艂ad C = PlA0 lub w asemblerze MOV C,Pl.O). P贸藕niej wystarczy ju偶 tylko instrukcja przesuni臋cia w prawo lub w lewo danych w rejestrze A z uwzgl臋dnieniem flagi C - wykonana o艣miokrotnie - aby odczyta膰 ca艂y bajt danych. W j臋zyku C pojawia si臋 pewien problem. Ot贸偶 zmienne bez znaku (unsigned) i ze znakiem (signed) s膮 r贸偶nie przez kompilator przesuwane. R贸偶nica polega na uwzgl臋dnianiu flagi przeniesienia w przypadku zmiennych typu signed. Co innego w asemblerze, mamy pe艂n膮 kontrol臋 nad postaci膮 藕r贸d艂ow膮 programu i sposobem jego wykonywania, niezale偶nie od typu deklarowanych zmiennych.
艁膮cz膮c modu艂 napisany w j臋zyku C z modu艂em w asemblerze, staram si臋 zachowa膰 pewien styl programowania. Oczywi艣cie mo偶esz sobie wybra膰 w艂asny. Moja propozycja jest jednak nast臋puj膮ca:
1. Program g艂贸wny zawsze napisany jest w j臋zyku C i do niego do艂膮czane s膮 modu艂y w j臋zyku asembler.
2. Ka偶d膮 zmienn膮 (ka偶d膮 kom贸rk臋 pami臋ci u偶ywan膮 przez asembler)
deklaruj臋 w programie g艂贸wnym w j臋zyku C. Czasami zmiennych mo偶na u偶ywa膰 zamiennie albo w asemblerze, albo w C. Oszcz臋dzamy w ten spos贸b pami臋膰 mikrokontrolera, kt贸rej i tak nie ma zbyt wiele.
Aby poinformowa膰 kompilator j臋zyka C, 偶e dana funkcja jest zewn臋trzn膮, czyli pochodzi z innego modu艂u, u偶ywa si臋 s艂owa kluczowego ex-tern. Oto przyk艂adowe deklaracje funkcji zewn臋trznych: extern void TX_byte(char x); extern char RX_byte(void);
Ka偶da funkcja i zmienna w j臋zyku C, je偶eli nie jest poprzedzona s艂owem static, ma zasi臋g globalny, to znaczy mo偶e by膰 wykorzystywana przez inne modu艂y. Upraszcza to korzystanie z nich z poziomu modu艂u przygotowanego w j臋zyku asembler. Wystarczy bowiem tylko poinformowa膰 kompilator, 偶e dana funkcja czy zmienna jest zewn臋trzna. Inaczej jest w przypadku modu艂贸w w asemblerze. Ka偶da funkcja musi zosta膰 zadeklarowana jako dost臋pna z zewn臋trz. S艂u偶y do tego s艂owo PUBLIC. Do pobrania natomiast danych z modu艂贸w w j臋zyku C, s艂owo EXTRN. Oto przyk艂ady deklaracji dost臋pu na poziomie modu艂u napisanego w asmeblerze:
- zmienna pobierana z modu艂u napisanego w j臋zyku C:
EXTRN DATA (temp)
- deklaracja dost臋pu do funkcji zaim-plementowanej w module w j臋zyku C, niezb臋dne jest przekazanie parametr贸w do funkcji, st膮d te偶 kompilator j臋zyka C dodaje znak podkre艣lenia przed jej nazw膮 zgodnie z wcze艣niej opisywanymi regu艂ami:
EXTRN CODE (_Delay)
- deklaracje funkcji udost臋pnianych przez modu艂 w j臋zyku asembler -zwr贸膰my uwag臋 na zmian臋 nazw w stosunku do tych, u偶ytych w C (podobnie jak _Delay):
PUBLIC _TX_byte PUBLIC RX_byte
Deklaracja obiekt贸w zewn臋trznych sk艂ada si臋 z trzech cz艂on贸w: s艂owa kluczowego EXTRN, okre艣lenia miejsca w obszarze adresowym mikrokontrolera, gdzie umieszczony jest obiekt [CODE, DATA itp.) oraz nazwy obiektu w nawiasach. Deklaracja obiekt贸w udost臋pnianych na zewn膮trz zawiera tylko s艂owo kluczowe PUBLIC.
Na koniec bardzo wa偶na uwaga. Modu艂 napisany w j臋zyku C musi mie膰 inn膮 nazw臋 ni偶 napisany w j臋zyku asembler. Dlaczego? Podczas kompilowania tworzone s膮 r贸偶ne zbiory tymczasowe. Maj膮 one tak膮 sam膮 nazw臋 jak zbi贸r 藕r贸d艂owy, lecz inne rozszerzenie (na przyk艂ad .AOF). Gdy oba modu艂y, w C i asemblerze, b臋d膮 mia艂y t臋 sam膮 nazw臋, to kompilator
najpierw przetworzy zbi贸r PCKBD.C i utworzy z niego zbi贸r PCKBD.AOF, a nast臋pnie to samo zrobi ze zbiorem PCKBD.A51. Nietrudno zauwa偶y膰, 偶e ostatni kompilowany zbi贸r na艂o偶y si臋 na ju偶 istniej膮cy. Linker pr贸buj膮c zbudowa膰 z obiekt贸w zbi贸r wynikowy, nie znajdzie potrzebnych danych i wy艣wietli komunikat o brakuj膮cych funkcjach czy zmiennych, mimo i偶 teoretycznie wszystko jest w porz膮dku.
Program do odczytu klawiatury PC
Program sk艂ada si臋 z dw贸ch cz臋艣ci. G艂贸wny napisany jest w j臋zyku C, a funkcje do komunikacji z klawiatur膮 napisane s膮 w asemblerze. S膮 to dwa odr臋bne modu艂y. Pierwszy z nich nazywa si臋 PCKBD-CC, a drugi PCKBD-ASM.A51. Oba pliki sk艂adaj膮 si臋 na projekt o nazwie PCKBD {.PPiJ). Do projektu do艂膮czy艂em r贸wnie偶 wcze艣niej utworzon膮 przez nas bibliotek臋 zawieraj膮c膮 funkcje obs艂ugi wy艣wietlacza LCD. My艣l臋, 偶e przyda nam si臋 jeszcze niejednokrotnie.
Oczywi艣cie program g艂贸wny jest tylko przyk艂adowym. Wy艣wietla kody naci艣ni臋tych klawiszy, podczas gdy w praktyce mo偶na je wykorzysta膰 w zupe艂nie inny spos贸b do wprowadzania danych czy sterowania w艂asnym urz膮dzeniem. Funkcja main() zawiera dosy膰 rozbudowany warunek switch. Jest to po艂膮czenie tej instrukcji z konstrukcj膮 if....else.
Zwr贸膰my uwag臋 na wywo艂anie funkcji _Delay w module w j臋zyku asembler. Jako argument funkcji wymagana jest liczba typu unsigned int. Jest ona wpisywana do rejestr贸w R6:R7 tu偶 przed poleceniem ACALL _Delay. Funkcjami wymieniaj膮cymi dane z modu艂em w j臋zyku C s膮 r贸wnie偶 RX_byte i TX_byte. Poniewa偶 zar贸wno argument dla TX_byte, jak i liczba zwracana przez RX_byte s膮 typu char, przekazywane s膮 one przez rejestr R7 (patrz tab. 1 i 2).
Uk艂ad elektryczny jest bardzo prosty. Wystarczy w zasadzie dowolny p艂ytka testowa z mikroprocesorem z rodziny 8051. Klawiatura wymaga rezystor贸w pull-up o warto艣ci oko艂o 5,lkLl. W uk艂adzie modelowym u偶ywa艂em AVR Starter Kit firmy Atmel Corp. z mikrokontrolerem AT89S8252. Program po skompilowaniu zajmuje nieco wi臋cej ni偶 l,5kB. Z powodzeniem mo偶na go wi臋c zmie艣ci膰 r贸wnie偶 w malutkim AT89C2051. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Dodatkowe informacje
Ewaluacyjn膮 wersj臋 pakietu firmy Raisonance oraz posta膰 藕r贸d艂ow膮 programu prezentowanego w artykule zamie艣cili艣my na CD-EP8/2002B.
Elektronika Praktyczna 8/2002
87
PROJEKTY CZYTELNIK脫W
DzioS "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.
Multiplekser sygna艂贸w wideo
Cz臋sto do zdalnej
obserwacji terenu, plac贸w
zabaw, otoczenia dom贸w,
sklep贸w lub hurtowni s膮
stosowane kamery
telewizyjne. Je偶eli do
obserwacji wykorzystujemy
jedn膮 kamer臋, sprawa jest
do艣膰 prosta - pod艂膮czamy
j膮 po prostu do wej艣cia
monitorowego telewizora.
Je偶eli korzystamy
z wi臋kszej liczby kamer, to
sprawa si臋 komplikuje
i jedynym wyj艣ciem jest
zastosowanie prze艂膮cznika
kamer.
Proponuj臋 zatem wykonanie prostego prze艂膮cznika (zawiera tylko dwa uk艂ady scalone). Analogowym "sercem" prze艂膮cznika jest matryca wizyjna MAX458, a "m贸zgiem" mikrokontroler ST6265.
Na schemacie blokowym pokazanym na rys. 1 mo偶na
UWTE
D 1*1 HUK

7
Rys. 1
zauwa偶y膰, 艣e uk艂ad MAX458 jest matryc膮 8x4. Oznacza to, 艣e mo偶emy pod艂膮czy膰 osiem kamer flub innych 藕r贸de艂 sygna艂u wideo) do czterech niezale偶nych monitor贸w. Oznacza to, 艣e np. obraz z kamery 1 jest wy艣wietlany na monitorze 1, obraz z kamery 4 na monitorze 2 itd. Mo偶liwe s膮 a艣 32 kombinacje krosowania sygna艂贸w.
Sterowanie uk艂adem MAX458 mo艣e si臋 odbywa膰 przez port r贸wnoleg艂y b膮d藕 szeregowy. Wybrano sterowanie r贸wnoleg艂e jako bardziej czytelne. W uk艂adzie MAX458 znajduj膮 sie. dwa banki rejestr贸w - wej艣ciowy (inpui register) i prze艂膮cznikowy (swiich register). Rejestr jest zatrza艣ni臋ty, kiedy wej艣ciowy sygna艂 steruj膮cy ma warto艣膰 logiczn膮 "1", natomiast jest prze藕roczysty, gdy wej艣ciowy sygna艂 steruj膮cy ma warto艣膰 logiczn膮 "0". Rejestr wej艣ciowy jest kontrolowany przez impulsy na wej艣ciach WR i CE, gdy "wybierany jest adres Al i Ao. Je艣li WR i CE maj膮 niski poziom, to wej艣ciowy rejestr wyboru Al, AO jest prze藕roczysty i stan linii D0...D3 jest dost臋pny dla rejestru prze艂膮cznikowego. Je艣li dane na liniach
D0...D3 zmieni膮 si臋 przed zmian膮 sygna艂u UPDATE, to nowe dane (zmienione D0...D3) b臋d膮 zatrza艣ni臋te w rejestrze prze艂膮cznikowym. Je艣li jedno z wej艣膰 WR lub CE jest na poziomie wysokim, wszystkie wej艣cia rejestr贸w s膮 zatrza艣ni臋te i te dane s膮 obecne w rejestrach prze艂膮cznikowych. Kiedy na WR lub CE jest poziom wysoki, to zawarto艣膰 rejestru wej艣ciowego b臋dzie niezmieniona.
Rejestr prze艂膮cznikowy b臋dzie przepuszcza艂 nowe dane przy przej艣ciu sygna艂u UPDATE do poziomu niskiego. Kiedy UPDATE jest na poziomie niskim, rejestry prze艂膮cznikowe s膮 prze藕roczyste i 艂膮cze prze艂膮cznikowe jest kontrolowane przez rejestr wej艣ciowy. Analogicznie, je艣li na UPDATE jest poziom wysoki, to rejestr prze艂膮cznikowy jest zatrza艣ni臋ty i ka艣da zmiana danych wej艣ciowych rejestru nie b臋dzie zmienia膰 stanu wyj艣膰 wzmacniaczy. Drugi bank rejestr贸w jest u艣yty do 艂adowania danych do rejestru wej艣ciowego i mo艣e wp艂ywa膰 na wyb贸r prze艂膮czania wzmacniaczy. Bitem D3 nast臋puje wy艂膮czenie wzmacniaczy wybieranych przez Al, Ao (ich
Elektronika Praktyczna S/2002
PROJEKTY CZYTELNIK脫W
CM1S10SL WY艢WIETLACZ LCD ALFANUMERYCZNY
LED DBT DB6 DBS DB4 DB3 DB2 DB1 DBO E RIW RS VO VDD VSS
Rys. 2
wyj艣cia s膮 w stanie wysokiej impedancji). Kiedy pracujemy w trybie r贸wnoleg艂ym, wej艣cie CS musi by膰 pod艂膮czone do logicznej ,,1", a wej艣cia SCLK i DIN do "0".
Za sterowanie prac膮 uk艂adu MAX458 jest odpowiedzialny mikrokontroler ST62T65, dla kt贸rego program powsta艂 w oparciu o pakiet programowania graficznego -ST6-Realizer. Wszystkie funkcje (w tym obs艂uga klawiatury analogowej oraz wy艣wietlacza LCD) przygotowano za pomoc膮 schematu kompilowanego przez ST6-Realizer.
Klawiatur臋 analogow膮 wykonano w postaci rezystorowe-go dzielnika napi臋cia R14/ R15...R21 - jej zalet膮 jest wykorzystanie do rozr贸偶nienia 8 przycisk贸w tylko jednego wej艣cia mikrokontrolera. Przetwornik A/C zamienia napi臋-
PBO PB1 PB2 PB3 PB4 PB5 PB6 PB7 OSCInOSCoutNM VSSTEST
cie na odpowiedni膮 warto艣膰 binarn膮, a programowe komparatory rozr贸偶niaj膮, kt贸ry z przycisk贸w jest w danej chwili wci艣ni臋ty. Ich funkcje s膮 nast臋puj膮ce: bramka 1 -przycisk P2, brama 2 -przycisk P3, brama 3 - przycisk P4, brama 4 - przycisk P5, brama 5 -przycisk P6, brama 6 - przycisk P7, brama - przycisk P8. Potencjometr PRl s艂u偶y do regulacji kontrastu wy艣wietlacza. Jako rezystory w dzielniku napi臋ciowym klawiatury zastosowano rezystory o tolerancji 5% i dobrej jako艣ci przyciski. Zasilacz (jego schemat przedstawiono na rys. 3) wykonano w oparciu o uk艂ady scalone LM317 i LM337, ustalaj膮c wyj艣ciowe napi臋cia dzielnikami rezystorowymi. Pob贸r pr膮du jest ma艂y i stabilizatory nie wymagaj膮 radiator贸w. Do zasilania wystarczy transfor-
Vln +Vout ADJ
U
艢>
1 llf- LM317K V
22WACJ SOHz J 5 = C7 FIrM L = CB = = C12
TH1 1 = 06 []R25 L = 013 1
U4 JH24 LM337H = C10
Rys. 3 ADJ Vln -Vout
I

mator o mocy 6 W. Jako z艂膮cza wej艣cie/wyj艣cie zaleca stosowa膰 z艂ocone gniazda cinch (ze wzgl臋du na pewno艣膰 i trwa艂o艣膰 styku).
Uruchomienie prze艂膮cznika sprowadza si臋 do regulacji kontrastu wy艣wietlacza i zaprogramowania sposobu krosowania sygna艂贸w z kamer. Po w艂膮czeniu do sieci 220 V na LCD pojawia si臋 napis MULTIPLEKSER. Po wci艣ni臋ciu przycisku P2 wy艣wietla si臋 PROGRAM K... M.... Wybieramy w贸wczas numer monitora i kamery i wciskamy przycisk P4. Tak post臋pujemy dla wszystkich monitor贸w. Drugie wci艣ni臋cie przycisku P4 powoduje wy艣wietlenie napisu MULTIPLEKSER i od tej chwili urz膮dzenie jest gotowe do pracy. Wci艣ni臋cie przycisku P6 spowoduje cykliczn膮 zmian臋 kamer na danym monitorze. Szybko艣膰 zmian ustalamy przyciskami P7 i P8. Drugie wci艣ni臋cie P6 powoduje zako艅czenie trybu wy艣wietlania sekwencyjnego na wybranym monitorze. Prze艂膮cznikiem Pl ustalamy warto艣膰 logiczn膮 na wej艣ciu D3. Stan logiczny ,,1" powoduje wy艂膮czenie wzmacniaczy wyj艣ciowych, natomiast podanie stanu logicznego ,,0" umo偶liwia ich normaln膮 prac臋. Krzysztof Karlikowski karl@pnet.pl
WYKAZ ELEMENT脫W
Rezystory
R1...R12: 75Q
R13, R23, R24: 270Q
R14, R16: lkQ
R15: 3,9kQ
R17: 脫8OQ
R18: l,5kQ
R19: 2,2kQ
R20: 430Q
R21: 240Q
R22: 4,7kQ
PRl: 10kQ
Kondensatory
Cl: 4,7^F/16V
C2, C3: 27 pF/50V
C4, C5: 1000jiF/16V
C贸, C7, C12, C13: OJl艂F/
100V
C8, C9: 22^F/16V
CIO, Cli: 470^F/16V
P贸艂przewodniki
D1...D4: mostek Graetza lub
4 diody prostownicze
Ul: ST62T65
U2: MAX458
U3: LM317
U4: LM337
R贸偶ne
Pl: przelgcznik
dwupozycyjny dowolny
TRI: TEZ6/D/9-9V
transformator sieciowy
Wl: CM1610 (wy艣wietlacz
1x16 zgodny ZHD44780)
Xl: 8MHz kwarc
90
Elektronika Praktyczna 8/2002
NA CD KATALOGI
ICROCHIP
ORAZ
EPCOS
9/2002
wrzesie艅 15 z艂 50 gr
STEROWNIK WY艢WIETLACZA MULTIPLEKSOWANEGO W VHDL BEZPRZEWODOWY STEROWNIK W臉呕A 艢WIETLNEGO PRZYSTAWKA POMIAROWA AC DO MULTIMETRU TOR TRANSMISJI DANYCH NA PODCZERWIENI
PR脫BNIK WODY DESTYLOWANEJ CYFROWY PROCESOR D殴WI臉KU STEROWNIK NAP臉DU CD-ROM KONWERTER USB<->RS232
PRZYCISK "ANY" DO PC
PROPOZYCJA
DLA CZYTELNIK脫W EP:
XLAB
POLSKI SYMULATOR UK艁AD脫W ANALOGOWYCH
t C t C t C t t
tttittu
L t I C C t t
ttit itn
Q - '艂 ."
PODZESPO艁Y:
UNIWERSALNE INTERFEySV113SB"FfflvrY-
BITY BLOKUJ膭CE I BEZPIECZNIKI KONFIGURACT
W MIKROKONTROLERACH AVR 1
BIBLIOTEKA EP
IV ^Bibliotece LP" prezentujemy ksi膮偶ki dotycz膮ce zogodnie艅 zwi膮zanych z r贸偶nymi dziedzinami techniki, jednak zawsze przydatne w pracy elektronika iub 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 polki, 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,
Uwaga! Wi臋kszo艣膰 prezentowanych ksi膮偶ek mo偶na zam贸wi膰 w Dziale Handlowym AVT (patrz str, 131), Chcemy w ten spos贸b udost臋pni膰 je Czytelnikom EP,
Tomasz Jab艂o艅ski: "Mikrokontrolery PIC16F8x w praktyce -architektura, programowanie, przyk艂ady", BTC 2002
Elektroniki PraHyoBi珅
Jest to pierwsza na polskim rynku wydawniczym wysokonak艂a-dowa ksi膮偶ka po艣wi臋cona niezwykle popularnym mikrokontrolerom je dno uk艂ad owym z rodziny PIC16. Autor podszed艂 do prezentacji zagadnie艅 "picowych" z punktu widzenia praktyka, dzi臋ki czemu -opr贸cz uniwersalnej wiedzy podstawowej, niezb臋dnej do poznania budowy i mo偶liwo艣ci mikrokontrole-r贸w (opis budowy rdzenia, modu艂贸w peryferyjnych i listy rozkaz贸w) - w ksi膮偶ce znalaz艂o si臋 wiele przyk艂ad贸w praktycznych zastosowa艅 mikrokontroler贸w. W艣r贸d przyk艂ad贸w szczeg贸lnie interesuj膮ce s膮 m.in.: prezentacja sposobu do艂膮czenia alfanumerycznego wy艣wietlacza LCD, programowa realizacja interfejs贸w RS232 i 1-Wire,
a tak偶e spos贸b do艂膮czenia wy艣wietlaczy LED i klawiatury matrycowej. Wszystkie przyk艂ady autor popar艂 kompletnymi programami, dzi臋ki czemu analiza dzia艂ania mikrokon-trolera odnosi si臋 do sprawdzonych wzor贸w, a nie - jak to zazwyczaj bywa w publikacjach tego typu - do og贸lnych opis贸w, cz臋sto nie weryfikowanych w praktyce.
Autor skupi艂 si臋 na kilku wybranych mikrokont role rac h rodziny PICl6F8x, co jest jednak usprawiedliwione, poniewa偶 precyzyjny opis wszystkich dost臋pnych mikrokontroler贸w z rodziny PIC16 wymaga艂by co najmniej kilkukrotnie wi臋kszej obj臋to艣ci ksi膮偶ki, kt贸ra i tak nie jest zbyt cienka (240 stron). Pomimo tego, prezentowana ksi膮偶ka mo偶e by膰 przydatna tak偶e u偶ytkownikom innych wersji mikrokontroler贸w PIC16, poniewa偶 zar贸wno opis listy rozkaz贸w, jak i opis budowy i regu艂 dzia艂ania rdzenia, we wszystkich mikrokon-trolerach PIC16 s膮 takie same. Polecamy!
Mlkrokontr臋lery
cl I filf
Klaus Dembowski: "Warsztat komputerowy", zawiera CD-ROM, Robomatic 2000
Jest to ksi膮偶ka stosunkowo ma艂o znana, a szkoda, bo jest godnym konkurentem legendarnej "Anatomii PC", kt贸rej si贸dme wydanie pojawi si臋 wkr贸tce na rynku.
"Warsztat komputerowy" to kompendium wiedzy na temat wn臋trza komputer贸w PC (zar贸wno tych najnowszych, jak i tych, kt贸re stoj膮 w gara偶u lub piwnicy].
Wiele miejsca autor po艣wi臋ci! przybli偶eniu urz膮dze艅 mu lti medialnych (CD-ROM i pochodne, DVD, nagrywarki CD-R, bardzo dok艂adne opisy syntezer贸w FM stosowanych w kartach d藕wi臋kowych, poda! tak偶e do艣膰 dok艂adn膮 specyfikacj臋 standardu MIDI] oraz interfejs贸w i nap臋d贸w pami臋ci masowych, w tym Wide-SCSI, Differential-SCSI, Ultra2-SCSI. Nie-
co mniej przydatne w praktyce s膮 opisy systemu macierzowego RAID, niezbyt precyzyjne (z punktu widzenia sprz臋towca] s膮 opisy USB i FireWire, co jednak mo偶na usprawiedliwi膰. Nasz膮 uwag臋 zwr贸ci艂y obszerne opisy interfejs贸w: szeregowego (jest to jedyna znana nam polskoj臋zyczna pozycja, w kt贸rej opisano dok艂adnie spos贸b ustawienia na poziomie rejestr贸w szybko艣ci transmisji w RS232 powy偶ej 9600bd] i r贸wnoleg艂ego (wraz z trybami rozszerzonymi].
Osobne rozdzia艂y autor po艣wi臋ci艂 om贸wieniu budowy i cech charakterystycznych mikroprocesor贸w stosowanych w PC od zarania dziej贸w, modu艂om pami臋ci i sposobom ich wewn臋trznej organizacji i zarz膮dzania dost臋pem do danych, a tak偶e przybli偶eniu standardowych magistral stosowanych w PC. Rzadko艣ci膮 jest opis mechanizm贸w PnP, precyzyjny opis podstawowych funkcji BIOS-u, a tak偶e om贸wienie budowy i zada艅 poszczeg贸lnych uk艂ad贸w w popularnych chipsetach. Prak-
ARSZTAT
(KOMPUTEROWY
Elektronika Praktyczna 9/2002
129
BIBLIOTEKA EP
tycy znajd膮 dla siebie tak偶e wiele przydatnych informacji w rozdziale, w kt贸rym s膮 prezentowane urz膮dzenia peryferyjne (klawiatury, myszki, game-pady, joysticki, monitory itp.]. Na ko艅cu ksi膮偶ki autor zamie艣ci艂 opis konstrukcji karty testowej (do wykrywania kod贸w POST]. Konstrukcja karty nie wzbudzi艂a w nas "drgni臋cia" serca, poniewa偶 jest nieco "przeszacowana" (zastosowano w niej ponad 10 uk艂ad贸w scalonych!], ale wraz z opisem typowych kod贸w POST jest to zbi贸r bardzo warto艣ciowych informacji.
Tyle zachwyt贸w - teraz nieco dziegciu. Nieco ra偶膮ce - zw艂aszcza elektronik贸w - s膮 ma艂o precyzyjne t艂umaczenia opis贸w fragment贸w elektroniki, jak np......tzw. regulatory kontaktowe, kt贸re mo偶na pozna膰 po dw贸ch zwojach drutu miedzianego." (str. 461 - opis dotyczy oczywi艣cie stabilizatora impulsowego]. Niestety takich pomy艂ek jest sporo, ale czytelnicy znaj膮cy elektronik臋 poradz膮 sobie z nimi.
Reasumuj膮c: 973 strony przydatnych informacji, kt贸rych uzupe艂nieniem jest r贸wnie przydatne oprogramowanie zawarte na p艂ycie do艂膮czonej do ksi膮偶ki.
Bruce Schneier: "Kryptografia dla praktyk贸w", WNT 2002
"Dla praktyk贸w" w tytule cz臋sto wzbudza nasze w膮tpliwo艣ci poniewa偶 ksi膮偶ek pisanych przez praktyk贸w dla praktyk贸w jest na rynku bardzo niewiele. Prezentowana ksi膮偶ka mi艂o zaskakuje: jest to prawdziwy przewodnik po 艣wiecie algorytm贸w szyfruj膮cych, bogato ilustrowany barwnymi przyk艂adami wzi臋tymi z 偶ycia.
Opr贸cz wst臋pu historyczno-meryto-rycznego (znakomicie przygotowuje czytelnik贸w mniej zaznajomionych z tematyk膮 ksi膮偶ki do odbioru dalszych wywod贸w zamieszczonych w ksi膮偶ce], autor zamie艣ci艂 w ksi膮偶ce opisy algorytm贸w, protoko艂贸w i technik kryptograficznych,
Bn_'CL Sennei
^litografia dla praktyk贸w
I pnjnramjf jrnd艂nwu
pokusi艂 si臋 tak偶e o skr贸towe om贸wienie przyk艂adowych aplikacji szyfrator贸w w praktyce. Bior膮c pod uwag臋 rozpowszechnianie si臋 podpisu elektronicznego, interesuj膮ce s膮 zawarte w ksi膮偶ce informacje zwi膮zane z generacj膮 i dystrybucj膮 kluczy - warto wiedzie膰 w jaki spos贸b odbywa膰 si臋 b臋dzie autoryzacja transakcji zawieranych elektronicznie. Ju偶 wkr贸tce b臋dzie to nasza codzienno艣膰!
Niezwykle przydatnym (szczeg贸lnie dla praktyk贸w] uzupe艂nieniem zawarto艣ci ksi膮偶ki s膮 zapisane w C najbardziej popularne algorytmy szyfruj膮ce: DES, IDE-A, RC5, A5, Blowfish itd.
Ksi膮偶ka nie jest tania, ale bior膮c pod uwag臋 wa偶ko艣膰 poruszanych zagadnie艅 i jako艣膰 t艂umaczenia i korekty - nie znamy lepszej pozycji wydanej po polsku.
Neil MatthewT Richard Stones i inni: "Zaawansowane programowanie w systemie Linux"T 1288 str.T Helion 2002
Legenda:
Ksi膮偶ek o pisaniu program贸w dla systemu Linux nie ma jeszcze w Polsce zbyt wiele. Z tym wi臋ksz膮 przyjemno艣ci膮 i ciekawo艣ci膮 zapoznali艣my si臋 z jedn膮 z najnowszych ksi膮偶ek wydawnictwa Helion, tym bardziej, 偶e tytu艂 sugeruje poruszenie w ksi膮偶ce temat贸w zaawansowanych. Nie zawiedli艣my si臋 - prawie 1300 stron informacji opracowanych przez zesp贸艂 do艣wiadczonych programist贸w z pewno艣ci膮 zadowoli wi臋kszo艣膰 odbiorc贸w ksi膮偶ki. Informacje te s膮 tym cenniejsze, 偶e autorzy koncentruj膮 si臋 na praktycznym wykorzystaniu przekazywanej wiedzy, co znajduje potwierdzenie w licznych, interesuj膮cych przyk艂adach.
Nie spos贸b, w tak kr贸tkim opisie, przedstawi膰 ca艂ej zawarto艣ci ksi膮偶ki, gdy偶 autorzy starali si臋 dotkn膮膰 niemal wszystkich zagadnie艅 zwi膮zanych z programowaniem dla systemu L inux.
' ZAAWANSOWANE .RAMOWANIE W SYSTEMIE
Linux
ksi膮偶ka wybitna, polecamy!
ksi膮偶ka o du偶ych walorach praktycznych, polecamy!
mo偶e si臋 przyda膰
daleka od doskona艂o艣ci
nie warto kupowa膰
W ksi膮偶ce mo偶na znale藕膰, mi臋dzy innymi, informacje o programowaniu aplikacji bazodanowych opartych na najpopularniejszych darmowych serwerach SQL oraz o tworzeniu aplikacji sieciowych. Obecnie niemal ka偶da aplikacja wymaga stworzenia graficznego interfejsu u偶ytkownika (GUI] - tematowi temu po艣wi臋cono wiele miejsca w ksi膮偶ce. Dla Czytelnik贸w EP jednak najbardziej interesuj膮cy mo偶e byc rozdzia艂 dotycz膮cy pisania sterownik贸w urz膮dze艅 dla systemu Linux. Na przyk艂adzie karty PCI pokazano spos贸b pisania takiego sterownika.
Du偶膮 zalet膮 ksi膮偶ki jest przedstawienie metodyki budowania programu - informacje te maj膮 charakter uniwersalny, gdy偶 s膮 niemal niezale偶ne od systemu operacyjnego i j臋zyka programowania, a wyk艂ad jest prowadzony niezwykle przyst臋pnie. Warto r贸wnie偶 zwrocie uwag臋 na rozdzia艂 po艣wi臋cony tworzeniu dokumentacji do projekt贸w oraz rozdzia艂 dotycz膮cy dystrybuowania aplikacji.
Ksi膮偶ka jest przeznaczona dla programist贸w tworz膮cych (lub zamierzaj膮cych tworzy膰] programy dla systemu Linux. Opisywane zagadnienia s膮 ilustrowane programami 藕r贸d艂owymi, jednak dla pe艂nego zrozumienia przyk艂ad贸w jest wymagana dobra znajomo艣膰 j臋zyka C oraz przynajmniej podstawowa wiedza o architekturze systemu operacyjnego. Nale偶y sobie zdawa膰 spraw臋, 偶e niemal ka偶de zagadnienie poruszane w ksi膮偶ce mog艂oby byc tematem oddzielnej, por贸wnywalnej obj臋to艣ciowo, publikacji, wi臋c niekiedy informacje zawarte w ksi膮偶ce mog膮 byc niewystarczaj膮ce do pe艂nego zrozumienia tematu. Ksi膮偶ka jest wydana w twardej oprawie, co z pewno艣ci膮 zapewni jej d艂ugie "偶ycie" nawet przy intensywnym korzystaniu z niej. Recenzje przygotowa艂: Andrzej Gawryluk, ep@ep.com.pl
130
Elektronika Praktyczna 9/2002
Ministerownik logiczny
Evix PLC jest projektem miniaturowego sterownika logicznego opracowanym przez dostawce wirtualnych komponent贸w elektronicznych, firm臋 Evatronix S.A. z Bielska-Bia艂ej. Sterownik nale偶y do grupy urz膮dze艅 funkcjonalnie podobnych do legendarnego ju偶 LOGO. Pocz膮tkowo lekcewa偶one zar贸wno przez producent贸w jak i automatyk贸w, miniaturowe sterowniki logiczne podbi艂y 艣wiat "ma艂ych" sterowa艅. Dobrze, 偶e tak偶e nasi in偶ynierowie pr贸buj膮 si艂 na tym obiecuj膮cym rynku.
TOMATYKA
W ramach projektu EVIX PLC tw 贸r cy pr zygot owa 1 i:
- programowalny sterownik logiczny zamkni臋ty w obudowie dostosowanej do monta偶u w szynach DIN,
- aplikacj臋 dla komputera PC pozwalaj膮c膮 na tworzenie i symulowanie programu sterowania,
- interfejs pozwalaj膮cy zaprogramowa膰 sterownik z komputera poprzez 艂膮cze szeregowe.
Sterownik EVIX PLC
Pod t膮 robocz膮 nazw膮 kryje si臋 programowalny sterownik logiczny, wyposa偶ony w sze艣膰 wej艣膰 dwustanowych i cztery wyj艣cia przeka藕nikowe. Wej艣cia sterowane s膮 napi臋ciowo, gdzie poziom logiczny wysoki jest interpretowany jako napi臋cie o warto艣ci powy偶ej 2,5V. Poni偶ej tego progu sygna艂 interpretowany jest jako niski poziom logiczny. Przeka藕niki zastosowane na wyj艣ciach maj膮 styki normalnie otwarte o obci膮偶alno艣ci 10 A przy 220 VAC. Uk艂ady wej艣膰 i wyj艣膰 s膮 zabezpieczone przed skutkami nieprawid艂owego pod艂膮czenia urz膮dzenia lub zak艂贸ce艅 i przepi臋膰, tak aby zminimalizowa膰 ryzyko uszkodzenia sterownika. Sterownik wyposa偶ono w wewn臋trzny stabilizator napi臋cia zasilaj膮cego, kt贸ry umo偶liwia prac臋 sterownika z napi臋ciami 12V lub 24V.
Sterownik mo偶na zaprogramowa膰 na dwa sposoby:
- poprzez wbudowany interfejs u偶ytkownika zaopatrzony w klawiatur臋 i wy艣wietlacz LCD,
- poprzez 艂膮cze podczerwone z komputera PC akceptuj膮ce transmisj臋 danych we w艂asnym formacie, jak i standardzie IrDA.
FV|XPLC
Program wykonywalny mo偶e zawiera膰 do trzydziestu blok贸w funkcyjnych, przez kt贸re nale偶y rozumie膰 funkcje logiczne, takie jak suma, iloczyn, negacja oraz funkcje specjalne, m.in. sekwencyjne, w tym zegary czasu rzeczywistego. Jedyne ograniczenia programu jakie wyst臋puj膮 to maksymalna liczba funkcji specjalnych ograniczona do szesnastu, w tym tylko trzy zegary czasu rzeczywistego. Nie ma ogranicze艅 na艂o偶onych na liczb臋 blok贸w funkcyjnych opisuj膮cych dane wyra偶enie logiczne skojarzone z wyj艣ciem. Funkcje specjalne wbudowane w sterownik stanowi膮 zbi贸r typowych funkcji spotykanych w tej klasie urz膮dze艅; zaimplementowano nast臋puj膮ce funkcje:
- op贸藕nione za艂膮czanie,
- op贸藕nione wy艂膮czanie,
- przeka藕nik impulsowy,
- przeka藕nik SR,
- generator impuls贸w,
- op贸藕nione za艂膮czanie z podtrzymaniem,
- dwukierunkowy licznik zdarze艅,
- zegar czasu rzeczywistego,
- przeka藕nik samokasuj膮cy.
Stany wyj艣膰 opisane programem wykonywalnym wyliczane s膮 w cyklach powtarzaj膮cych si臋 co 50ms, z tym 偶e sterownik potrafi pobiera膰 stan wyj艣cia z poprzedniego wyliczenia do oblicze艅 w kolejnym cyklu.
Jest wi臋c mo偶liwe traktowanie sterownika jako urz膮dzenia sekwencyjnego wzgl臋dem swoich wyj艣膰.
Program wykonywalny umieszczony jest w pami臋ci nieulotnej i stamt膮d pobierany do pami臋ci operacyjnej. W momencie zaniku zasilania wszystkie ustawienia i stan pracy urz膮dzenia kopiowane s膮 z pami臋ci operacyjnej do pami臋ci nieulotnej, dzi臋ki czemu po przywr贸ceniu zasilania mo偶liwe jest ponowne wystartowanie programu z zachowaniem ci膮g艂o艣ci sterowania. O tym, czy sterownik ma wystartowa膰 po przywr贸ceniu zasilania, czy te偶 czeka膰 na interwencje obs艂ugi decyduj膮 odpowiednie ustawienia wprowadzane przez u偶ytkownika. W trakcie pracy sterownik wy艣wietla na wy艣wietlaczu
F irm a Eva tr onix S .A. poszukuje partnera do wdro偶enia projektu EVDL PLC do produkcji seryjnej. Wszelkie zapytania prosimy kierowa膰:
Evatronix S.A. 43-300 Bielsko-Bia艂a
ul. 1 Maja S Tel. (33) 812-25-96
Tomasz Jak贸biec tomjak@bielsko. evatronix.com. pl
Elektronika Praktyczna 9/2002
133
AUTOMATYKA
informacje o stanie wej艣膰 i wyj艣膰 oraz aktualny czas. Czas generowany jest przez sprz臋towy zegar czasu rzeczywistego, wyposa偶ony w podtrzymanie gwarantuj膮ce 3 6 godzin pracy w przypadku zaniku zasilania.
Edytor Schemat贸w Drabinkowych (ESD)
Edytor Schemat贸w Drabinkowych to aplikacja dzia艂aj膮ca w 艣rodowisku MS Windows pozwalaj膮ca za pomoc膮 graficznego interfejsu typu ci膮gnij i upu艣膰 tworzy膰 program steruj膮cy przy pomocy notacji schematu drabinkowego. Widok przyk艂adowego okna ESD pokazano na rys. 1.
Tworzenie schematu za pomoc膮 ESD jest czynno艣ci膮 nadzwyczaj prost膮, elementy schematu mo偶na przesuwa膰 mysz膮, pojedynczo lub w grupie po zaznaczeniu sekcji. Mo偶na usuwa膰 pojedyncze elementy lub ca艂e sekcje. Edycje parametr贸w funkcji specjalnych takich jak, przyk艂adowo, liczniki zdarze艅 czy zegary czasu rzeczywistego dokona膰 mo偶na przez podw贸jne klikni臋cie na wybran膮 funkcje. D艂u偶sze przytrzymanie myszy nad wybranym elementem schematu drabinkowego spowoduje
i 艂irnii rj
J.....
Rys. 2
Rys. 3
wy艣wietlenie dymku z informacjami (rys. 2).
Utworzony schemat drabinkowy po kompilacji mo偶na poda膰 symulacji w celu przetestowania poprawno艣ci. Program dostarcza do tego celu dwa r贸偶ne wzajemnie si臋 uzupe艂niaj膮ce narz臋dzia, jednym z nich jest symulator przebieg贸w czasowych, a drugim symulator czasu rzeczywistego.
Symulator przebieg贸w czasowych to bardzo wydajne i szybkie narz臋dzie pozwalaj膮ce na b艂yskawiczn膮 symulacj臋 wielu godzin pracy sterownika w czasie kilku sekund, wyniki symulacji prezentowane s膮 w postaci graficznych przebieg贸w sygna艂贸w wej艣膰 i wyj艣膰, jak i wszystkich funkcji wchodz膮cych w sk艂ad programu wykonywalnego. U偶ytkownik definiuje, jak d艂ugi interwa艂 czasu ma by膰 symulowany, wybiera jakie sygna艂y chce ogl膮da膰 i definiuje za pomoc膮 kreator贸w wymuszenia na wej艣ciach.
Symulator przebieg贸w czasowych przydaje si臋 szczeg贸lnie tam, gdzie symulowana jest bardzo d艂uga praca sterownika, przyk艂adowo program wykonywalny wykorzystuje zegary czasu rzeczywistego ustawione na odmierzanie d艂ugich odcink贸w czasu, a tak偶e w przypadkach, w kt贸rych wa偶ne jest zbadanie dok艂adnej dynamiki pracy sterownika, przyk艂adowo obserwowanie jak zmieniaj膮 si臋 poszczeg贸lne sygna艂y w kolejnych cyklach wyliczeniowych.
Drugim narz臋dziem s艂u偶膮cym do weryfikacji programu jest symulator
czasu rzeczywistego (rys. 3). Modu艂 ten wyposa偶ony jest w panel przypominaj膮cy obudow臋 sterownika, z zaznaczonymi wej艣ciami i wyj艣ciami. Stany wej艣膰 mog膮 by膰 dowolnie zmienianie przez u偶ytkownika przy u偶yciu myszy, co 50 ms program dokonuje ewaluacji programu wykonywalnego, wy艣wietlaj膮c wyniki na panelu symulatora.
Po skompilowaniu i przetestowaniu, program wykonywalny mo偶e zosta膰 przes艂any do sterownika poprzez 艂膮cze podczerwone. Dost臋pne s膮 dwa standardy IrDA dla system贸w operacyjnych MS Windows 2000/XP i Me poprzez wbudowany w komputer port podczerwony oraz standard bazuj膮cy na RS232 dla komputer贸w z innymi systemami operacyjnymi MS Windows, poprzez u偶ycie specjalnego adaptera konwertuj膮cego RS232 na transmisj臋 podczerwon膮. Przyczyna wprowadzenia dwu wariant贸w transmisji bierze si臋 st膮d, 偶e transmisja IrDA jest szczeg贸lnie przydatna w zastosowaniu na komputerach przeno艣nych, kt贸re nie s膮 wyposa偶ane w port szeregowy i przeciwnie - u偶ywanie adaptera RS232/pod-czerwie艅 jest wygodne dla komputer贸w typu deskiop, kt贸re mimo 偶e w wi臋kszo艣ci obs艂uguj膮 standard IrDA, to nie s膮 wyposa偶ane standardowo w odpowiednie urz膮dzenia transmisyjne.
Tomasz Jak贸biec, Evatronix wsp贸艂praca Wojciech Pietrasina
134
Elektronika Praktyczna 9/2002
W system a ch telewizji przemys艂owej, n a dzoru i monitoringu (CCTV) coraz popularniejsze staj膮 si臋 rozwi膮zania wykorzystuj膮ce cyfrow膮 transmisj臋 obrazu i d藕wi臋ku. Najlepszym rozwi膮zaniem takiego typu transmisji obraz贸w jest zastosowanie wideoserwera, kt贸ry analogowy obraz z kamery wideo
kompresowa艂by do standardu JPEG/MPEG, przez co obraz z kamery mo偶na
dystrybuowa膰 w lokalnej sieci komputerowej lub nawet w Internecie. Ponadto
wideoserwer wi膮偶e ze sob膮 funkcje systemu kontrolnego, przez po艂膮czenie
z urz膮dzeniami sterowania i system nadzoru, do obserwowania wprowadzanych
zmian w tym samym czasie.
Wideoserwer FMS-3154R
Serwer wideo FMS-3154R produkcji firmy Advantech jest gotowym rozwi膮zaniem dla tego typu aplikacji, obs艂uguj膮cym do 4 kamer wideo, wyposa偶onym w stosowne oprogramowanie do obs艂ugi w pe艂ni zautomatyzowanego systemu nadzoru. Urz膮dzenie to pomo偶e u偶ytkownikowi w spos贸b zdalny uzyska膰 dost臋p w dowolnej chwili z dowolnego miejsca do obrazu z kamer i monitorowanego obiektu. Wykorzystanie komputera PC pozwala dodatkowo na obs艂ug臋 urz膮dze艅 wej艣cia/wyj艣cia, a co za tym idzie, mo偶liwo艣膰 kontroli i sterowania, czyli stworzenie w pe艂ni zautomatyzowanego systemu dozoru obiektu.
FMS-3154 posiada wbudowane narz臋dzia nadzoru, takie jak: funkcje
wy艣wietlania w czasie rzeczywistym, nagrywania, odtwarzania i zdalnego poprzez sie膰 ci膮g艂ego monitorowania i odtwarzania. Pozwala w spos贸b 艂awy zbiera膰 obrazy i dystrybuowa膰 je wraz z d藕wi臋kiem w sieci komputerowej bez konieczno艣ci instalacji dodatkowego oprogramowania. Ponadto serwer wideo jest wyposa偶ony w inteligentne udogodnienia monitoringu, takie jak wykrywanie ruchu, system alarmowy i pozosta艂e funkcje, kt贸re mo偶na konfigurowa膰 lokalnie, jak i zdalnie poprzez Internet.
Serwer posiada cztery gniazda BNC umo偶liwiaj膮ce do艂膮czenie kamer czarno-bia艂ych lub kolorowych pracuj膮cych w standardzie PAL lub NTSC (automatyczna detekcja). Prze艂膮cznikiem na obudowie komputera
mo偶na ustawi膰 osobno ka偶de z wej艣膰 w stan wysokiej impedancji lub standardowej 75L1 Obraz z kamer jest na wej艣ciu pr贸bkowany i kompresowany w standardzie JPEG/ MPEG. Format JPEG przeznaczony jest do kodowania nieruchomych obraz贸w kolorowych, a MPEG umo偶liwia kompresj臋 ruchomych obraz贸w metod膮 klatka po klatce. W formacie NTSC szybko艣膰 nagrywania to 30 ramek na sekund臋 w rozdzielczo艣ci 352 x 240 pkt., w formacie PAL to 25 fps w rozdzielczo艣ci 352 x 288 pkt. Serwer FMS-3154 ma 4 tryby pracy: wy艣wietlanie obraz贸w "na 偶ywo" z kamer, nagrywania, odtwarzania i dystrybucji obrazu w sieci komputerowej. Wszystkie wymienione funkcje mog膮 by膰 wykonywane
Rud
Ufl Cud Cani
*' I I " I 艢 \ I------------ I------------ I------------ I------------
r EnsUe rjiTFWdY fiiD*mBknHferriE Snrvcr IP AiMtr.ua : . I -I . I
Dlal ki Ctotl^kirBdH
UDDFM tf>: lS?.1Gfl.0*艂flD1 SabnetUHh
[ BDN CUd *>;
LAH-i W r WDDEM'11
B Illn
r KISC r PftL ]
Rys. 1. Okno dialogowe do ustawienia parametr贸w wykrywania ruchu
Rys. 2. Konfiguracja FMS-3154R w sieci LAN/WAN
136
Elektronika Praktyczna 9/2002
AUTOMATYKA
Podstawowe parametry FMS-3154R:
Wymiary 256x178x88 mm
Pob贸r mocy 36 W
Napi臋cie zasilania 24VDC
Temperatura pracy 0 -45癈
We|艣ciawideo 4 we|艣ciaBNC,75n
Formatwideo NTSC/ElAlub PAL7CCIR
Kompres] a JPEG lub MPEG-1
Rozdzielczo艣膰 352x240 NTSC,
352x288 PAL
Wyj艣cie wideo VGAD-Sub15
Wyi艣ciaalarmowe 4 wyj艣cia przeka藕nikowe
We|艣ciaalarmowe 4 wej艣cia przeka藕nikowe
Szybko艣膰 odtw 30/25 Ips dla NTSC/PAL
RS-232 dwa porty RS-232
USB dwa porty USB
LAN dwa porty Ethernet 10/100
Protoko艂y HTTP SMTP, TCP/IP, ICMP.ARP
System operacyiny Embedded Lmux
jednocze艣nie. Serwer posiada standardowe wyj艣cie VGA, kt贸re umo偶liwia podgl膮d obrazu "na 偶ywo" w rozdzielczo艣ci 800 x 600 pkt. Program steruj膮cy umo偶liwia r贸wnoczesne lub indywidualne wy艣wietlanie obrazu z 16 kamer na jednym ekranie.
Zastosowanie serwera obrazu pozwala zredukowa膰 og贸ln膮 liczb臋 kabli i zwi臋ksza wydajno艣膰 ca艂ego systemu, umo偶liwia kaskadowe 艂膮czenie i obs艂ug臋 16 kamer. Dzi臋ki temu redukuje sumaryczn膮 d艂ugo艣膰 kabli i oferuje szybko艣膰 zapisu do 120 ramek na sekund臋. FMS-3154 do艂膮czony do sieci Ethernet pe艂ni rol臋 serwera zarz膮dzaj膮cego i kontroluj膮cego wszystkie funkcje systemu wraz z kaskadowo po艂膮czonymi serwerami. Odt膮d mo偶na konfigurowa膰, wy艣wietla膰 na 偶ywo i odtwarza膰 obraz z 16 kamer poprzez menad偶era systemu.
FMS-3154 dysponuje wieloma 艣rodkami ostrzegania: wej艣cia alarmowe, wykrywacz ruchu, utraty obrazu i zape艂nienia dysku. System wykrywania ruchu dzia艂a w ten spos贸b, 偶e obraz z kamer jest ci膮gle monitorowany poprzez specjalne filtry (programowe) podczas kodowania obrazu. Zainstalowane oprogramowanie umo偶liwia okre艣lenie obszaru (na obrazie z kamery) wykrywania ruchu oraz czu艂o艣膰 filtru indywidualnie dla ka偶dej z kamer. Wej艣cia i wyj艣cia alarmowe s膮 to dwustanowe wej艣cia/wyj艣cia o poziomach TTL, elektronicznie izolowane od ca艂ego systemu.
Ka偶dy alarm ma swe w艂asne akcje korespondencji, takie jak powiadamianie przez e-mail, aktywacja nagrywania kamery, aktywacja wyj艣cia alarmowego lub buzzera. Dzi臋ki te-
mu operator zostaje bezzw艂ocznie powiadomiony o zaistnia艂ych wydarzeniach i mo偶e szybciej poprzez zintegrowany system sterowania podj膮膰 akcj臋 ratunkow膮. Podczas odbierania sygna艂u alarmowego z FMS-3154 kamera jest ca艂y czas dost臋pna do dalszej analizy lub nawet do zbierania materia艂u dowodowego. Poniewa偶 serwer nie posiada mo偶liwo艣ci edytowania zapisanego obrazu, wykonane zdj臋cia mog膮 by膰 wykorzystane jako materia艂 dowodowy w s膮dzie.
Jak ju偶 wspomniano, FMS-3154 jest wideoserwerem z funkcj膮 nagrywania. Jako no艣niki danych mo偶na zastosowa膰 og贸lnie dost臋pne 3,5" dyski twarde (obs艂uguje funkcje hoi-swap). Zastosowano w nim zaawansowan膮 technologi臋 nagrywania i kodowania, dzi臋ki kt贸rej dost臋p do zapisanych danych ma tylko autoryzowany personel. Operator mo偶e ustawi膰 cz臋sto艣膰 zapisywania kodowanych obraz贸w dla ka偶dej kamery oddzielnie. Ka偶da z kamer w trybie alarmowym mo偶e mie膰 indywidualnie zwi臋kszon膮 cz臋sto艣膰 zapisywania obraz贸w. Oczywi艣cie obrazy nie mog膮 by膰 zapisywane cz臋艣ciej ni偶 3 0 ramek na sekund臋 (NTSC).
W celu u艂atwienia archiwizacji danych zapisanych na FMS-3154 wyposa偶ono go w dwa porty USB. Przeznaczone s膮 do pod艂膮czenia zewn臋trznych urz膮dze艅 archiwizuj膮cych (CD-RW, ZIP, USB-HDD) i drukarki (wbudowany sterownik HP/Ep-son).
Jak to ju偶 zosta艂o wcze艣niej wspomniane, wideoserwer posiada funkcje nadzoru poprzez Internet, kt贸re pozwalaj膮 monitorowa膰 i nagrywa膰 obraz z kamer zdalnie za pomoc膮 standardowej przegl膮darki interneto-wej. Ma wbudowane dwa porty Ethernet 10/100 Base-T i dwa porty RS-232. Obs艂uguje protoko艂y sieciowe, takie jak: HTTP, SMTP, TCP/IP, ICMP, ARP. Serwer posiada tak偶e funkcj臋 obs艂ugi modemu dial-up poprzez lini臋 telefoniczn膮. Jest to przydatne w aplikacjach po艂o偶onych na peryferiach lub miejscach bez istniej膮cej sieci lokalnej. Dost臋p do FMS-3154 chroniony jest wielopoziomowym systemem hase艂 i zabezpiecze艅.
Dodatkowo FMS-3154R dostarcza kontrolki ActiveX do integracji obraz贸w z kamer z dowolnym oprogramowaniem HMI/SCADA wyposa偶onym w funkcj臋 ActiveX. Kontrolki te mog膮 by膰 r贸wnie偶 wykorzystane
Rys. 3. Przyk艂adowy widok pulpitu serwera wideo z wy艣wietlonymi obrazami z czterech kamer
w wielu 艣rodowiskach programistycznych, w艂膮czaj膮c Visual Basic, Vi-sual C++, Delphi. ActiveX oferuje wy艣wietlanie obrazu live, wej艣cia alarmowe, wykrywanie ruchu oraz system ostrzegania o utracie sygna艂u z kamer.
W przysz艂o艣ci wraz z FMS-3154 dost臋pne b臋dzie oprogramowanie do obs艂ugi kamer PTZ (Pan, Tili, Zooin). Pozwoli ono na zaprogramowanie trasy "艣ledzenia" kamery oraz interaktywn膮 obs艂ug臋 kamery, dzi臋ki czemu mo偶na b臋dzie zatrzyma膰 kamer臋 na wybranym obiekcie i dokona膰 maksymalnego "zbli偶enia".
Na zako艅czenie warto podkre艣li膰 przewag臋 wideoserwera nad tradycyjnym systemem CCTV, w przeciwie艅stwie do kt贸rego FMS-3154 oferuje: otwarty system dost臋pu do kamer, r贸wnoczesne odtwarzanie, nagrywanie i wy艣wietlanie obrazu, dost臋p do sieci Ethernet, funkcj臋 wykrywania ruchu, uwierzytelnianie zapisanych obraz贸w, system ostrzegania poprzez e-mail, WAP i telefon. Dzi臋ki wbudowanemu mikrofonowi serwer dostarcza nie tylko obraz, ale i d藕wi臋k z nadzorowanego obiektu oraz umo偶liwia sterowanie dowolnym urz膮dzeniem poprzez interfejs I/O. Najwa偶niejsz膮 jednak zalet膮 wideoserwera jest stosunkowa niewielka cena w por贸wnaniu do jego mo偶liwo艣ci, oraz ze wzgl臋du na platform臋 PC kompatybilno艣膰 z wieloma dost臋pnymi na rynku urz膮dzeniami i prosta adaptacja do istniej膮cych system贸w. Antoni Warszawik Elmark Automatyka
Dodatkowe informacje
Dodatkowe informacje o serwerze wideo prezentowanym w artykule mo偶na znale藕膰 w Interneciepod adresem: http://www.advanTech.com/producTs/ FMS-3154R.asp oraz u dystrybutora - w lirmie Elmark Automatyka, tel. (22) 821-30-54, www.elmarkcom.pl.
Elektronika Praktyczna 9/2002
137
PROJEKTY
Yampp 3
Sprz臋towy odtwarzacz MP3, cz臋艣膰 1
PROJEKT Z OK艁ADKI
Coraz wi臋ksz膮 karier臋 robi膮
sprz臋towe odtwarzacze MP3.
Na rynku jest wiele urz膮dze艅
tego typu, lecz trudno jest
znale藕膰 takie, kt贸re spe艂nia
wszystkie nasze oczekiwania
w stosunku do tego rodzaju
sprz臋tu. Albo maj膮 ma艂o
pami臋ci na za艂adowanie
utwor贸w, albo bardzo
ograniczone mo偶liwo艣ci lub s膮
po prostu drogie. Najlepszym
wyj艣ciem z sytuacji jest
budowa swojego w艂asnego
odtwarzacza. Szczeg贸艂y
konstrukcji jednego
z najbardziej znanych
odtwarzaczy tego typu -
Yamppa 3 - przedstawiamy
w artykule.
Rekomendacje: sprz臋t dla
fan贸w "empetr贸jkl" lubi膮cych
zna膰 urz膮dzenia od 艣rodka.
Projekt贸w tego typu mo偶na znale藕膰 w Internecie mn贸stwo. Przegl膮daj膮c jaki艣 czas temu strony WWW, natkn膮艂em si臋 na rozwi膮zanie zaproponowane przez Jespera Hansena, kt贸re bardzo mi si臋 spodoba艂o. Najwa偶niejszymi czynnikami decyduj膮cymi o wyborze yamppa, bo tak Jesper nazwa艂 sw贸j odtwarzacz, by艂y: prostota konstrukcji, dost臋pno艣膰 element贸w potrzebnych do jego budowy oraz otwarto艣膰 projektu, czyli mo偶liwo艣膰 jego dowolnej modyfikacji. Niebagateln膮 zalet臋 stanowi艂a te偶 cena podzespo艂贸w -po prostu by艂y relatywnie tanie i by艂o ich niewiele.
Mo偶liwo艣ci yamppa
Jako 藕r贸d艂o plik贸w MP3 dla yamppa zastosowano 2,5-calowy twardy dysk - taki jak w komputerach typu laptop, co powoduje 偶e mo偶na do niego wgra膰 bardzo
du偶o plik贸w MP3 oraz to, 偶e ca艂o艣膰 ma niewielkie rozmiary. Oczywi艣cie nic nie stoi na przeszkodzie, aby zastosowa膰 zwyk艂y 3,5-calowy dysk ze standardowego PC-ta lub standardowy CD-ROM z interfejsem ATAPI - ale o tym napisz臋 p贸藕niej.
Yampp obs艂uguje standardowy format dysku, jakim jest FAT32. Poszczeg贸lne pliki mog膮 by膰 umieszczane w katalogach zawieraj膮cych na przyk艂ad materia艂 jednego wykonawcy lub pochodz膮cy z jednej p艂yty. W wersji przeznaczonej do wsp贸艂pracy z CD-ROM-em obs艂ugiwane s膮 formaty ISO9660 i Joliet, a pliki MP3 r贸wnie偶 mog膮 by膰 umieszczane w podkatalogach. Utwory mog膮 by膰 odtwarzane w kolejno艣ci ich wgrania do danego katalogu lub losowo wewn膮trz jednego katalogu albo z ca艂ej zawarto艣ci dysku czy p艂yty CD. Do wy艣wietlania nazw utwor贸w oraz innych informacji s艂u偶y alfanumeryczny wy艣wietlacz LCD. Do sterowania odtwarzaczem s艂u偶y 8-przycisko-wa lokalna klawiatura lub dowolny pilot na podczerwie艅 - na przyk艂ad z telewizora. Istnieje
14
Elektronika Praktyczna 9/2002
Yampp 3 - sprz臋towy odtwarzacz MP3
DREQ DCLK SDATA-BSYNC-
VS1001
pizetwomlk C/A
serial
data
interface
serial
control
interface
wzmacniacz s艂uchawkowy
SDT Bua
X Bub
VS DSP
SCI Bua
Y Bua
I Bufl
x-ROM
x-RAM
y-RAM
y-ROM
program RAM program ROM
Rys. I. Schemat blokowy scalonego dekodera MP3 - VSl00l
tak偶e mo偶liwo艣膰 sterowania go poprzez interfejs RS232, na przyk艂ad z komputera.
Yampp mo偶e by膰 wykonany w wersji stacjonarnej - i na tak膮 si臋 zdecydowa艂em, w wersji przeno艣nej lub zamontowany w samochodzie, co wydaje si臋 by膰 do艣膰 ciekaw膮 opcj膮.
Mo偶liwo艣ci sterowania yampp em s膮 du偶e. Z klawiatury lokalnej dost臋pne s膮 nast臋puj膮ce funkcje: Play, Stop, Pauza, Nast臋pny utw贸r, Poprzedni utw贸r, 10 utwor贸w do przodu, 10 utwor贸w do ty艂u, Nast臋pny katalog, Poprzedni katalog, Szybkie przewijanie do przodu i do ty艂u, W艂膮czenie lub wy艂膮czenie funkcji Loudness i Random oraz regulacja g艂o艣no艣ci. Za艂膮czenie funkcji Loudness powoduje podbicie niskich i wysokich cz臋stotliwo艣ci przy ma艂ych poziomach sygna艂u wyj艣ciowego. Funkcja Random powoduje odtwarzanie utwor贸w w losowej kolejno艣ci, przy czym mo偶na wybra膰 dwa r贸偶ne sposoby jej dzia艂ania. W pierwszym trybie (oznaczonym Rand-\-) losowany jest utw贸r spo艣r贸d wszystkich dost臋pnych na ca艂ym dysku czy p艂ycie CD. W drugim trybie (oznaczonym Rand*) zakres losowania jest ograniczony do zawarto艣ci aktualnie odtwarzanego katalogu, a po odegraniu wszystkich utwor贸w znajduj膮cych si臋 w jego wn臋trzu
yampp przechodzi do kolejnego katalogu i rozpoczyna cykl losowego odtwarzania jego zawarto艣ci. Tak du偶a liczba funkcji obs艂ugiwana za pomoc膮 jedynie 8 przycisk贸w jest mo偶liwa dzi臋ki po-
Autor artyku艂u - Romual Bia艂y (na zdj臋ciu) - jest jednym z g艂贸wnych tw贸rc贸w oprogramowania systemowego yatnppa. Zajmuje si臋 on jego ci膮g艂ym udoskonalaniem, jednocze艣nie prowadzi prace nad oprogramowaniem d艂a nowych wersji tego s艂ynnego odtwarzacza.
dw贸jnemu znaczeniu niekt贸rych spo艣r贸d nich. Funkcje s膮 rozr贸偶niane przez czas naciskania przycisku. Za pomoc膮 pilota zdalnego sterowania - opr贸cz wymienionych funkcji - dodatkowo mo偶na
bezpo艣rednio wybra膰 utw贸r do odtworzenia, wpisuj膮c jego numer za pomoc膮 klawiszy numerycznych. Na wy艣wietlaczu LCD wy艣wietlane s膮 informacje o bie偶膮cym katalogu, nazwie pliku MP3, linijka ukazuj膮ca post臋p w odtwarzaniu danego utworu, numer i czas utworu, wska藕nik g艂o艣no艣ci oraz informacja o w艂膮czeniu opcji Loudness i Random.
Jak zamieni膰 strumie艅 danych MP3 w sygna艂 audio?
Odpowied藕 na to pytanie jest prosta. Nale偶y wzi膮膰 wystarczaj膮co szybki procesor DSP, do艂膮czy膰 do niego przetworniki cyfrowo-analogowe, napisa膰 odpowiednie oprogramowanie i gotowe.
No tak, procesor DSP jest drogi i najcz臋艣ciej wymaga zewn臋trznej pami臋ci programu. Napisanie odpowiedniego oprogramowania te偶 nie jest prost膮 spraw膮. Na szcz臋艣cie kilka firm produkuj膮cych procesory DSP zauwa偶y艂o ten problem i stan臋艂o na wysoko艣ci zadania.
Jedno z ciekawszych rozwi膮za艅 zaproponowa艂a firma VLSI Solution Oy, wypuszczaj膮c na rynek uk艂ad zintegrowanego dekodera MPEG -VSl001. Uk艂ad ten zawiera w sobie wszystko, co jest potrzebne do przetworzenia strumienia danych MPEG w gotowy stereofoniczny sygna艂 audio, czyli procesor DSP, pami臋膰 programu wraz z odpowiednim programem, pami臋膰 danych, szeregowe interfejsy do ste-
Keys
MAX202
Sartal interfece
IR
Atmel
9088515
CPU
MPEG
Data Streom
DO-7
74HC573
Addren Latch
AO-7
A8-15
Control aignals
B525G
SRAM
74艁VC245
Lewi comrerter
VS1OO1 MPEG Dacodar and D/A canvorter
IDE Interfaca
2x16 LCD
Dioplay
Rys. 2. Schemat blokowy yamppa
Elektronika Praktyczna 9/2002
15
Yampp 3 - sprz臋towy odtwarzacz MP3
3 a. o O.
i s
L X
8 t i X 偶 8
Rys. 3. Schemat elektryczny yamppa
16
Elektronika Praktyczna 9/2002
Yampp 3 - sprz臋towy odtwarzacz MP3
rowania i do wprowadzania danych MPEG oraz wysokiej jako艣ci stereofoniczny przetwornik C/A typu delta-sigma uzupe艂niony filtrami i wzmacniaczem m.cz. mog膮cym bezpo艣rednio wy sterowa膰 s艂uchawki. Na dodatek ca艂o艣膰 przeznaczona jest do zasilania bateryjnego, wi臋c pobiera bardzo ma艂o pr膮du i zajmuje niewiele miejsca - struktur臋 uk艂adu zamkni臋to w ma艂ej 28-ko艅c贸wkowej obudowie SOIC-28 (SMD). 呕eby by艂o jeszcze ciekawiej, uk艂ad ten posiada 4 kB pami臋ci RAM przeznaczonej na dodatkowe oprogramowanie u偶ytkownika oraz 0,5 kB pami臋ci danych o tym samym przeznaczeniu. Umo偶liwia to napisanie swojej w艂asnej aplikacji s艂u偶膮cej na przyk艂ad do regulacji ton贸w, cyfrowego korektora graficznego czy innych efekt贸w DSP.
Oprogramowanie wewn臋trzne pozwala na dekodowanie strumienia MPEG 1 i 2, layer 1, 2 i 3, przy szybko艣ci pr贸bkowania od 8 do 48 kHz i r贸偶nym wsp贸艂czynniku kompresji. Nas najbardziej interesuje standard MPEGl layer 3 czyli popularne MP3. Obs艂ugiwany jest r贸wnie偶 do艣膰 popularny standard VBR, czyli MP3 o zmiennym wsp贸艂czynniku kompresji, kt贸ry pozwala na uzyskanie lepszej jako艣ci d藕wi臋ku przy zachowaniu ma艂ej d艂ugo艣ci plik贸w.
Schemat blokowy uk艂adu VSl001 pokazano na rys. 1. Do prawid艂owego funkcjonowania wymaga on niewielkiej liczby element贸w zewn臋trznych w postaci kwarcu, kilku kondensator贸w i dw贸ch rezystor贸w.
Do po艂膮czenia uk艂adu z mikro-kontrolerem wykorzystane s膮 dwa szeregowe interfejsy. Serial Data Interface (SDI) - s艂u偶膮cy do wprowadzania strumienia danych MPEG oraz Serial Control Interface (SCI) - s艂u偶膮cy do kontroli
Tab. 1. Najwa偶niejsze parametry uk艂adu VS1001
Parametr Min. Typ. Maks. Jedn.
Rozdzielczo艣膰 DAC 16 bit贸w
THD 0,1 0,2 %
Stosunek S/N 70 87 dB
Dynamika 90 dB
Sygna艂 wyj艣ciowy 1,4 1,8 2,0 Vp-p
Og贸lny pob贸r pr膮du 18 19.5 21 mA
Napi臋cie zasilania 2,5 3,0 3,6 V
Cz臋stotliwo艣膰 zegara 24,576 26 MHz
Diody -1N4148
K2
o-
play/paus e/sto prewf^rew
K6
o-
VOL DOWN
KLAWIATURA
KOMPUTER
_J3
1
2 3
YAMPP
9 偶e艅skie
KABEL RS232
Rys. 4. Schemat ilustruj膮cy spos贸b pod艂膮czenia wy艣wietlacza, klawiatury i kabla RS232
i sterowania procesem dekodowa-nia danych. Oba interfejsy s膮 kompatybilne z og贸lnie znanym protoko艂em transmisji danych -SPI. W przypadku yamppa jest to bardzo korzystne, poniewa偶 wykorzystany w nim procesor steruj膮cy ma wbudowany sprz臋towy interfejs SPI, co znacznie u艂atwia i przy艣piesza transfer danych do dekodera.
W oprogramowaniu wewn臋trznym VS1OO1 opr贸cz funkcji de-koduj膮cych zawarte s膮 procedury cyfrowej regulacji g艂o艣no艣ci, podbijania niskich i wysokich ton贸w
[loudness) oraz wiele funkcji pozwalaj膮cych na odczyt parametr贸w aktualnie dekodowanego sygna艂u. Dok艂adniejszy opis tego uk艂adu wykracza poza 艂amy niniejszego artyku艂u i osoby bardziej zainteresowane tym tematem odsy艂am do 藕r贸d艂a w postaci stron internetowych firmy VLSI znajduj膮cych si臋 pod adresem http:// www.vlsi.fi.
Opis konstrukcji
Schemat blokowy odtwarzacza zosta艂 pokazany na rys. 2, a schemat elektryczny na rys. 3. "Ser-
Tab. 2. Wykaz nap臋d贸w CD-ROM, kt贸re wsp贸艂praca zyamppem zosta艂a przetestowana
Producent Model Pr臋dko艣膰 maks. Status
AZTECH AZT-46802I (CDA 486-02I) 4x OK
CREATIVE 3630E 36x OK, ale pracuje tylko z pe艂n膮 pr臋dko艣ci膮
GoldStar GCD-R520B 5x OK
HITAHI CDR-7930 8x OK
HITAHI CDR-8335 24x OK
LG CRD-8520B ROM VER.1.00 52x OK, ale pracuje tylko z pe艂n膮 pr臋dko艣ci膮
MITSUMI CRMC-FX810T4 8x OK
NEC CDR-1300A 8x OK
PHILIPS ROD 1269 8x OK
SAMSUNG SCR-2431 24x OK
SAMSUNG A50T 50x OK
TOSHIBA XM-6602B 40x OK
Elektronika Praktyczna 9/2002
17
Yampp 3 - sprz臋towy odtwarzacz MP3
WYKAZ ELEMENT脫W
Rezystory
Rl, RS, R12: 10kn M0S05
R2, R4: lkn M0S05
R3: 47ft MCB05
R5: 5kn 21Z trim pot
R贸#
'W*
R9: 膭JVn M0S05
RIO, Rl 1: 15n M0S05
Kondensatory
Cl, C2: 22pF C0S05
C3: 33pF C0S05
C4#
C5...C7: 10^F/l贸V CT脫032
C9, CIO: 100^F/贸V CT7343
C11...C17: lOOnF CCB05
P贸艂przewodniki
Dl, D2: EL 17-21 LEDO305
IC1: AT90SS515J PLCC-44
IC2: 74HC573 SO20-3
IC3: 脫225脫 SO2S-3
IC4: MAX202CSE SO1脫
IC5: LP29S0-3.3 M5
IC脫: 74LVC245 SO2CK3
IC7: VS1001G SOIC-2S
ICS: 74HCCB SO14
R贸偶ne
LI, L2: 10^H L1210
Ql: 7,3728 MHz HC49U-V
Q2: 24,576 MHz HC49U-V
Jl: PR脫G 5#2 0,1" header
J2: DISPLAY S#2 0,1" header
J3: RS-232 3#1 0,1" header
J4: IR 3#1 0,1" header
J5: POWER 2#1 0,1" header
J贸: Headphones 3,5mm jack
J7: IDE CONNECTOR 44#2 2mm
angled header
Sl: RESET ALPS_45
* - patrz rys, 3
cem" uk艂adu jest mikiokontroler jednouk艂adowy ICl - AT90S8515J firmy AtmeL Nale偶y on do dobrze znanej i bardzo wydajnej rodziny mikrokontroler贸w AVR. Jest on odpowiedzialny za pobieranie i obr贸bk臋 danych z dysku, przekazywanie ich do sprz臋towego dekodera MPEG oraz za obs艂ug臋 klawiatury, wy艣wietlacza i dekodowanie rozkaz贸w zdalnego sterowania. Zosta艂 on dodatkowo wyposa偶ony w 32 kB zewn臋t-
rznej pami臋ci RAM (uk艂ad IC3), s艂u偶膮cej mi臋dzy innymi jako bufor danych. Do po艂膮czenia mikroprocesora z pami臋ci膮 konieczny jest zatrzask adres贸w IC2. Drugim najwa偶niejszym podzespo艂em jest uk艂ad IC7 - VSlOOl. Jako 偶e uk艂ad YSlOOl zasilany jest napi臋ciem w zakresie od 3 do 3,3V, uzyskiwanym przy pomocy stabilizatora IC5, pod艂膮czenie go do reszty uk艂adu zasilanego z 5V wymaga艂o zastosowania konwertera poziom贸w w postaci uk艂adu IC6 74LYC245. Jest to dwukierunkowy bufor zasilany napi臋ciem 3V, toleruj膮cy na swoich wej艣ciach sygna艂y o poziomie 5V. Na p艂ytce yamppa mo偶emy jeszcze znale藕膰 interfejs RS232 w postaci uk艂adu IC4 - MAX202. Sygna艂y RxD i TxD s艂u偶膮ce do komunikacji z komputerem zosta艂y wyprowadzone na z艂膮cze J3 . Nale偶y tu zaznaczy膰, 偶e komunikacja z komputerem nie s艂u偶y do przesy艂ania plik贸w MP3 do yamppa, a jedynie do cel贸w kontrolno-diagnostycznych oraz do ewentualnego sterowania prac膮 odtwarzacza. Z艂膮cze J4 s艂u偶y do pod艂膮czenia dowolnego zintegrowanego odbiornika podczerwieni (np. SFH-560) s艂u偶膮cego do odbioru sygna艂贸w zdalnego sterowania. Z艂膮cze J2 przeznaczone jest do pod艂膮czenia wy艣wietlacza oraz lokalnej
Rys. 5. Schemat sprz臋towego interfejsu umo偶liwiajqcego programowanie w systemie mikrokontroler贸w AVR (szczeg贸艂owy opis opublikowali艣my w EP7/02)
klawiatury. Mo偶na zastosowa膰 dowolny alfanumeryczny wy艣wietlacz LCD z interfejsem kompatybilnym z HD44780 o organizacji od 2x16 do 4x20 znak贸w. Aktualne oprogramowanie obs艂uguje wy艣wietlacze o organizacjach 2x16, 2x20, 2x24, 4x16 lub 4x20 znak贸w. Spos贸b pod艂膮czenia klawiatury, wy艣wietlacza oraz schemat kabla RS232 pokazano na rys. 4.
Zastosowany w uk艂adzie mikroprocesor jest taktowany z cz臋stotliwo艣ci膮 7,372 MHz stabilizowan膮 kwarcem Ql. Posiada te偶 jedn膮 wa偶n膮 cech臋 - mo偶liwo艣膰 programowania w uk艂adzie docelowym bez konieczno艣ci jego wy-montowywania i posiadania specjalnego programatora. Do zapro-
18
Elektronika Praktyczna 9/2002
Yampp 3 - sprz臋towy odtwarzacz MP3
Yampp w Internecie
W Internecie mo偶na znale藕膰 sporo stron zawieraj膮cych opisy,
porady i przer贸bki dotycz膮ce yamppa. Pozwol臋 sobie przytoczy膰
adresy najwa偶niejszych:
Strona g艂贸wna - http://www.yampp.com
Najnowsze wersje oprogramowania - http://www.yamppsoft.prv.pl
Strona firmowa VLSI Solutions Oy - http://www.vlsi.fi
Kompilator AVR-GCC - http://www.avrfreaks.net
Forum dyskusyjne po艣wi臋cone yamppowi - http://www.myplace.nu/
mp3/yabb/YaBB.cgi
gramowania wystarczy prosty interfejs pokazany na rys. 5, sk艂adaj膮cy si臋 z wtyczki DB25 do portu drukarkowego komputera, kilku rezystor贸w i 10-stykowej
Tab. 3. Wykaz dysk贸w twardych, kt贸rych wsp贸艂praca z yamppem zosta艂a przetestowana (za www.yampp.com zdn. 4.08.2002)
Producent i typ dysku Status
Conner CFA-850A 850 MB OK
Fujitsu MHK2048AT 4,8 GB (2,5") OK
Fujitsu MHN2200AT 20 GB (2,5") OK
Fujitsu MPA3043AT 4 GB FAIL
Fujitsu MPB3021AT OK
Hitachi DK2262-32U 3,2 GB OK
Hitachi DK237A-32 3,2 GB OK
Hitachi DK23CA-10 10 GB OK
Hitachi DK238A 4,3 GB OK
IBM DADA-24860 Travelstar 4,8 GB (2,5") OK
IBM DARA-206000 Travelstar 6,0 GB (2,5") OK
IBM DBCA-204860 Travelstar 4,8 GB (2,5") OK
IBM DJSA-205 Travelstar 5GB (2,5") OK
IBM DJSA-210 Travelstar 10 GB (2,5") OK
IBM DKLA-24320 Travelstar 4,2 GB (2,5") OK
IBM DTTA-351680 OK
IBM DVAA-2810 810 MB OK
IBM IC25N020ATDA04 20 GB (2,5") OK
IBM IC25N030ATCS04 20GB (2,5") OK
Maxtor 83201A6 OK
Ouantum Fireball 1GB FAIL
Ouantum Fireball ST21A011 2,2GB OK
Seagate Medalist ST32132A 2,1 GB OK
Seagate ST33210A OK
Seagate ST91350 1,3 GB OK
Seagate ST92130AG (2,5") FAIL
Seagate ST9816 816 MB OK
Toshiba MK1017GAP 10 GB (2,5") OK
Toshiba MK1403MAV (HDD2714) 1,4 GB OK
Toshiba MK1608MAT 1,6 GB (2,5") OK
Toshiba MK1926FCV 810 MB OK
Toshiba MK2016GAP 20 GB (2,5") OK
Toshiba MK2103GAP 2,16 GB (2,5") OK
Toshiba MK6412MAT OK
wtyczki pod艂膮czanej do z艂膮cza Jl na p艂ytce yamppa. Do programowania mo偶na te偶 wykorzysta膰 oryginalny atmelowski interfejs STK200.
Uk艂ad VSl001 wymaga do poprawnej pracy niezale偶nego sygna艂u zegarowego uzyskiwanego z kwarcu Q2. Zalecan膮 cz臋stotliwo艣ci膮 kwarcu jest 24,576 MHz lub 12,288 MHz - po programowym uaktywnieniu podwajacza cz臋stotliwo艣ci znajduj膮cego si臋 wewn膮trz uk艂adu. Istnieje r贸wnie偶 mo偶liwo艣膰 zastosowania kwarc贸w o innych cz臋stotliwo艣ciach w zakresie od 12 do 14 MHz lub od 24 do 28 MHz. Cz臋stotliwo艣膰 zastosowanego kwarcu musi zosta膰 wpisana do programu o czym napisz臋 p贸藕niej.
Ca艂y uk艂ad zosta艂 zmontowany na niewielkiej p艂ytce drukowanej o wymiarach 105 x 70mm - identycznej jak wielko艣膰 2,5-calowego dysku. Osi膮gni臋cie tak ma艂ych wymiar贸w by艂o mo偶liwe dzi臋ki zastosowaniu element贸w montowanych powierzchniowo, czyli SMD.
Ca艂o艣膰 jest zasilana pojedynczym napi臋ciem 5 V dostarczanym z zewn臋trznego zasilacza do z艂膮cza J5. Je偶eli do konstrukcji u偶yjemy 2,5-calowego dysku, to jest on r贸wnie偶 zasilany napi臋ciem 5 V dostarczonym z p艂ytki yamppa poprzez z艂膮cze IDE - }7. Pob贸r pr膮du przez ca艂o艣膰 jest uzale偶niona w g艂贸wnej mierze od poboru pr膮du przez zastosowany dysk twardy oraz przez pr膮d pobierany przez ewentualne pod艣wietlanie wy艣wietlacza LCD. Sama elektronika yamppa pobiera ok. 60 mA. Romuald Bia艂y
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdflwrzesienO2.htm.
Elektronika Praktyczna 9/2002
19
PROJEKTY
Cyfrowy procesor d藕wi臋ku
AVT-5082
jedn膮 z najwi臋kszych
przyjemno艣ci dla elektronik贸w
jest s艂uchanie muzyki przez
samodzielnie wykonany
wzmacniacz. Bardziej
zaanga偶owani buduj膮 sobie
tak偶e odtwarzacze CD (cz臋sto
z mo偶liwo艣ci膮 odtwarzania
plik贸w w formacie MP3),
tunery, a nawet magnetofony.
Najwi臋ksz膮 trudno艣膰 sprawia艂y
dotychczas procesory audio
umo偶liwiaj膮ce kszta艂towanie
przestrzeni d藕wi臋kowej oraz
prawdziwe dekodery surround.
Rozwi膮zanie pierwszego
problemu przedstawiamy
w a艅ykule. O prawdziwym
dekoderze surround napiszemy
ju偶 nied艂ugo!
Rekomendacje: przede
wszystkim dla DJ-贸w,
muzyk贸w, i audiofili nie
stroni膮cych od prowadzenia
z aa wan s o wan ych
eksperyment贸w z d藕wi臋kiem.
W sierpniowym wydaniu EP opisali艣my procesor sygna艂owy produkowany przez ameryka艅sk膮 firm臋 Alesis. Firma ta jest legendarnym producentem studyjnego sprz臋tu audio, w tym przede wszystkim r贸偶nego rodzaju procesor贸w wykorzystywanych do modyfikacji d藕wi臋ku. W bli偶ej niewyja艣nionych okoliczno艣ciach powsta艂a fiima-c贸rka Alesis Semi-conductors, kt贸ra opracowa艂a i produkuje kilka uk艂ad贸w scalo-
Firma Alesis Semiconductors otworzy艂a niezwykle wygodn膮 drog臋 dla projektant贸w cyfrowych urz膮dze艅 audio- Opracowali oni bowiem procesor efekt贸w audio (oznaczony jako AL3201), w pami臋ci kt贸rego znajduje si臋 16 gotowych program贸w (opracowanych przez producenta i zapisanych w pami臋ci typu ROM) realizuj膮cych mniej i bardziej zaawansowane efekty audio- Jako艣膰 tych program贸w jest bardzo wysoka, poniewa偶 projektowali je do艣wiadczeni elektro akustycy maj膮cy do dyspozycji doskonale wyposa偶one laboratoria- Dzi臋ki wbudowanemu w procesor interfejsowi szeregowemu, do dodatkowej pami臋ci programu typu SRAM mo偶na wpisa膰 dowolny w艂asny program, realizuj膮cy indywidualnie zaprojektowane efekty audio- Pomimo du偶ych mo偶liwo艣ci i zaawansowanej budowy wewn臋trznej, uk艂ad AL3201 zamkni臋to w niepozornej obudowie SO1C16.
nych przeznaczonych do stosowania w profesjonalnym sprz臋cie audio. Jednym z tych uk艂ad贸w jest AL3201, kt贸ry jest "m贸zgiem" prezentowanego urz膮dzenia.
Tak proste jak DSP
AL3201 to prawdziwy procesor DSP, kt贸rego architektura wewn臋trzna zosta艂a zoptymalizowana pod k膮tem aplikacji audio. Do poprawnej pracy procesor wymaga zastosowania zewn臋trznych, stereofonicznych przetwornik贸w: A/C i C/A. Specjalnie do tego celu firma opracowa艂a w艂asne uk艂ady (AL1201 i AL1101), ale mo偶na w ich miejsce stosowa膰 tak偶e przetworniki innych producent贸w.
Schemat blokowy uk艂adu AL3201 pokazano na rys. 1. Jak ka偶dy procesor jest on programowany. Producent udost臋pni艂 na swojej stronie intern臋towej bezp艂atny kompilator asemblera (opublikowali艣my go na CD-EP8/ 2002B), kt贸ry umo偶liwia tak偶e 艂adowanie przygotowanych program贸w do pami臋ci programu SRAM, w kt贸r膮 wyposa偶ono AL3201. Jej pojemno艣膰 wynosi 130 bajt贸w i jest wystarczaj膮ca do uzyskania bardzo zaawansowanych efekt贸w. Lista rozkaz贸w zawiera kilkana艣cie polece艅, za pomoc膮 kt贸rych mo偶na wp艂ywa膰 na
Elektronika Praktyczna 9/2002
21
Cyfrowy procesor d藕wi臋ku
LFOO

艢> LFO1 * Generator Pami臋膰
艢> LFO2 adresu DRAM
'-----^ LFO3


Digln
SData
SClk
Xtalln

XtalOut
Interfejs uC
Generator zegarowy
DigOut
SysClk BitClk
YdClk
Rys. 1. Schemat blokowy uk艂adu AL3201
modyfikacje (wprowadzane ca艂kowicie na drodze cyfrowej) kolejnych pr贸bek d藕wi臋ku, a tym samym na ko艅cowe brzmienie odtwarzanego utworu. Nale偶y pami臋ta膰 o tym, 偶e programy wprowadzone do pami臋ci SRAM procesora zanikaj膮 po wy艂膮czeniu zasilania, tak wi臋c ka偶dorazowo po w艂膮czeniu zasilania trzeba je ponownie 艂adowa膰. Wyboru pami臋ci programu dokonuje _____
si臋 za pomoc膮 wej艣cia INT7 !EXT (widoczne na rys. 1). Chc膮c u艂atwi膰 samodzielne eksperymenty akustyczne, firma Alesis przygotowa艂a kilka przyk艂adowych efekt贸w (z podanymi 藕r贸d艂ami program贸w), kt贸rych do艣膰 pobie偶ne opisy wraz z kodami 藕r贸d艂owymi zosta艂y udost臋pnione w Internecie
(opublikowali艣my je tak偶e ____
na CD-EP8/2002B).
Problem z 艂adowaniem program贸w mo偶e by膰 o tyle nieistotny, 偶e w wi臋kszo艣ci przypadk贸w programy przygotowane przez producenta s膮 wystarczaj膮ce do wi臋kszo艣ci typowych aplikacji. Szczerze m贸wi膮c, podj臋te przeze mnie pr贸by przygotowania w艂asnych efekt贸w nie da艂y zbyt dobrych rezultat贸w. Wynika to przede wszystkim z faktu, 偶e do ich projektowania niezb臋dna jest wiedza akustyka, a nie elektronika...
W pami臋ci programu ROM uk艂adu AL32 01 przechowywane s膮 programy realizuj膮ce efekty audio przygotowane przez firm臋 Alesis. Lista tych program贸w znajduje si臋 w tab. 1. Cyfrowe dane o sygnale audio do i z procesora s膮 przesy艂ane szeregowo, w zwi膮zku z czym aplikacj臋 uk艂adu AL3201 trzeba wzbogaci膰 o stereofoniczne przetworniki A/C i C/A,
kt贸re odpowiadaj膮 za konwersj臋 sygna艂贸w do/z postaci cyfrowej na analogow膮.
Opis uk艂adu
Schemat elektryczny procesora pokazano na rys. 2. Jest to redakcyjna adaptacja standardowej aplikacji uk艂adu AL3201, w kt贸rej zastosowano przetworniki A/C i C/A firmy Alesis.
Uk艂ady firmy Alesis wykorzystywane
w prezentowanym projekcie mo偶na kupi膰 za
ok. 16,49 EUR w sklepie internetowym
brytyjskiej firmy Profusion (www.profu-
stonplc.com). Mo偶liwe jest wiele sposob贸w
p艂acenia za zam贸wione podzespo艂y, w tym
np. za pomoc膮 kart lub przelewem.
Warto wiedzie膰, 偶e niekt贸re banki (m.in.
www.tnbank.cotn.pl) oferuj膮 specjalne karty
przeznaczone do realizacji p艂atno艣ci drog膮
elektroniczn膮.
Stereofoniczny sygna艂 audio jest podawany na wej艣cia JPl i JP2. Wt贸rniki napi臋ciowe wykonane na wzmacniaczach IC7A i IC7B zapewniaj膮 dopasowanie impedancji 藕r贸d艂a sygna艂u do im-pedancji wej艣ciowej kolejnego stopnia - wzmacniacza konwertuj膮cego sygna艂 asymetryczny na sygna艂 r贸偶nicowy. Rol臋 wzmacnia-czy-konwerter贸w spe艂niaj膮 uk艂ady IC5 i IC6. Sygna艂 z ich wyj艣膰 (o amplitudzie ok. 4V ) jest poddawany konwersji A/C przez uk艂ad IC3 (AL1101), na wyj艣ciu kt贸rego pojawia si臋 spr贸bkowany sygna艂 stereofoniczny. Pr贸bki maj膮 rozdzielczo艣膰 24 bit贸w, a dynamika zapewniana przez przetwornik jest nie mniejsza ni偶 107dB. Przetwornik wyposa偶ono w cyfrowy filtr g贸rnoprzepustowy o cz臋stotliwo艣ci granicznej 2,5 Hz, kt贸rego zadaniem jest likwidacja napi臋cia
offsetu wbudowanych wzmacniaczy operacyjnych, kt贸ry m贸g艂by ogranicza膰 rzeczywist膮 rozdzielczo艣膰 pr贸bek.
Przetworzone do postaci cyfrowej dane o sygnale audio s膮 nast臋pnie wprowadzane do procesora sygna艂owego ICl, kt贸ry wykonuje na nich operacje przewidziane programem. Jak wcze艣niej wspomniano, mo偶na korzysta膰 z program贸w predefiniowanych (wtedy ich wyb贸r umo偶liwia binarny nastawnik SWl), mo偶na tak偶e 艂adowa膰 do pami臋ci ICl w艂asne programy. W takiej sytuacji konieczne jest prze艂膮czenie wyprowadzenia 2 ICl do masy (trzeba to zrobi膰 przecinaj膮c 艣cie偶k臋 na p艂ytce drukowanej), konieczne jest tak偶e wyprowadzenie z艂膮cza do wyprowadze艅 5 i 6 ICl, kt贸re spe艂niaj膮 rol臋 interfejsu wej艣ciowego.
Po poddaniu pr贸bek sprz臋towej obr贸bce s膮 one przesy艂ane do ^^^^ 24-bitowego przetwornika C/A IC4 (AL1201), na wyj艣ciu kt贸rego wyst臋puje analogowy sygna艂 r贸偶nicowy. Zastosowanie takiego sposobu transmisji sygna艂u analogowego minimalizuje mo偶liwo艣膰 powstawania w nim zak艂贸ce艅. Sygna艂y te s膮 poddawane filtrowaniu dolnoprzepustowemu i konwertowane do postaci asy-__ metrycznej. Obydwa zadania s膮 realizowane przez wzmacniacz IC8. Na jego wyj艣ciach wyst臋puj膮 sygna艂y obydwu
Tab. 1. Predefiniowane programy procesora AL3201
Numer programu Nazwa programu
0 Delay 1
1 Chorus/Room 2
2 Hali 2
3 Vocal Cancel
4 Delay 2
5 Chorus/Room 1
6 Hali 1
7 Rotary speaker
8 Flange
9 Plate 2
10 Room 1
11 Plate 1
12 Chorus
13 Plate 3
14 Room 2
15 Room 3
Elektronika Praktyczna 9/2002
Cyfrowy procesor d藕wi臋ku
Rys. 2. Schemat elektryczny cyfrowego procesora d藕wi臋ku
przetworzonych kana艂贸w, kt贸re s膮 poddawane mieszaniu z sygna艂em oryginalnym. Do tego celu s艂u偶膮 liniowe potencjometry Pl i P2 -w zale偶no艣ci od po艂o偶enia suwaka zmieniaj膮 udzia艂y w sygnale wyj艣ciowym sygna艂贸w: oryginalnego i przetworzonego. Suwaki potencjometr贸w do艂膮czono do wej艣膰 nieodwracaj膮cych wt贸rnik贸w IC9A i IC9B, kt贸rych zadaniem jest odseparowanie potencjometr贸w od obwod贸w wej艣ciowych wzmacniacza do艂膮czonego do wyj艣膰 procesora d藕wi臋ku. Uk艂ad IC2 odpowiada za prawid艂owe wy zerowanie procesora ICl po w艂膮czeniu zasilania.
Jak 艂atwo zauwa偶y膰, ca艂a cz臋艣膰 analogowa procesora d藕wi臋ku jest zasilana napi臋ciem symetrycznym 膮12V. Standardowo do wytworzenia takiego napi臋cia s膮 stosowane transformatory z symetrycznym uzwojeniem. Poniewa偶 znacznie 艂atwiej jest zdoby膰 transformatory z pojedynczym uzwojeniem, zasilacz zosta艂 zaprojektowany w taki spos贸b, aby mo偶liwe by艂o uzyskanie napi臋cia symetrycznego 膮12V oraz +5V do zasilania cz臋艣ci cyfrowej. W tym celu zastosowano diodowy podwajacz napi臋cia sk艂adaj膮cy si臋 z element贸w: D2...D5 oraz C5...C8, z wyj艣cia kt贸rego s膮 zasilane klasyczne stabilizatory liniowe ICH i IC12. Napi臋cie +5V jest uzyskiwane z wyj艣cia stabilizatora IC10, na wej艣ciu kt贸rego napi臋cie zmienne jest prostowane jednopo艂贸wkowo (st膮d konieczno艣膰 zastosowania kondensatora filtruj膮cego Cl o relatywnie du偶ej pojemno艣ci).
Monta偶 i uruchomienie
Pomimo znacznego stopnia skomplikowania, uruchomienie procesora jest do艣膰 proste, w wi臋kszo艣ci przypadk贸w polega na w艂膮- czeniu zasilania. Nieco gorzej, lecz wcale nie藕le, wygl膮da monta偶 uk艂ad贸w ICl, IC3 i IC4. Alesis produkuje te uk艂ady wy艂膮cznie w obudowach SMD, ale szcz臋艣liwie odst臋py pomi臋dzy ich wyprowadzeniami s膮 do艣膰 du偶e. Monta偶 urz膮dzenia warto rozpocz膮膰 od tych w艂a艣nie uk艂ad贸w. Najprostszym sposobem ich przylutowania jest pozycjonowanie uk艂adu za pomoc膮 pensety i, po u艂o偶eniu uk艂adu w odpowiednim miejscu p艂ytki drukowanej, przygrzanie jego skraj-
S
Elektronika Praktyczna 9/2002
23
Cyfrowy procesor d藕wi臋ku
nych wyprowadze艅 do cyny znajduj膮cej si臋 na polu lutowniczym. Dopiero teraz mo偶na rozpocz膮膰 lutowanie wszystkich wyprowadze艅. Konieczne jest delikatne post臋powanie z uk艂adem tak, aby go zbyt mocno nie poruszy膰, nale偶y tak偶e zwr贸ci膰 uwag臋 na mo偶liwo艣膰 przegrzania struktury p贸艂przewodnikowej, w zwi膮zku z czym czas lutowania nale偶y ograniczy膰 do minimum.
Inn膮 mo偶liwo艣ci膮 jest przyklejenie obudowy uk艂adu do p艂ytki za pomoc膮 niewielkiej kropli kleju (jak np. butapren) i lutowanie wyprowadze艅 po jego zaschni臋ciu. Utrudnia to jednak ewentualny demonta偶 uk艂adu.
WYKAZ ELEMENT脫W
Rezystory
Rl, R2, R3: zwory
R4: 10n
R5: lkn
R6...R8, R14, R15: 220O
R9...R12, R16...R19: 2,2kQ
R13, R20...R22, R25, R26, R33, R34:
47kn
R23, R24, R27, R28: llkn
R29...R32: 10kO
Pl, P2: lkn/A
Kondensatory
Cl: 2200jiF/16V
C2, C4, C9...C12, C15...C18, C22,
C26...C28, C39...C48: lOOnF
C3, C19, C20, C23, C24, C30,
C31, C34, C35: 10jiF/10V
C5...C8: 1000jiF/25V
C13, C14: 10jiF/16V
C21, C25: 4,7nF
C29, C32, C33, C38: 220pF
C36, C37: 470pF
P贸艂przewodniki
IC1: AL3201
IC2: DS1813
IC3: ALI 101
IC4: AL1201
IC5...IC9: NE5532
IC10: 7805
ICH: 7812
IC12: 7912
R贸偶ne
Xl: 12,28MHz
JP1, JP2, JP3, JP5: pojedyncze
gniazda Cinch do druku
SW1: DIP-switch 4
Opcjonalnie: radiator(y) do
stabilizator贸w IC10...IC12,
podstawki DIP8 do uk艂ad贸w
IC5...IC9, transformator 220/9VAC
o mocy ok. 5W
Rys. 3. Rozmieszczenie element贸w na p艂ytce drukowanej
Po przylutowaniu uk艂ad贸w ICl, IC3 i IC4 mo偶na rozpocz膮膰 monta偶 pozosta艂ych element贸w, zgodnie ze schematem monta偶owym pokazanym na rys. 3.
Do zasilania procesora d藕wi臋ku konieczny b臋dzie transformator o napi臋ciu wyj艣ciowym 8...9 VAC i mocy co najmniej 5 W. Przy wy偶szych napi臋ciach na wt贸rnym uzwojeniu transformatora mo偶e okaza膰 si臋 konieczne przykr臋cenie do obud贸w stabilizator贸w IC10...IC12 radiatora (lub radiator贸w). W przypadku zamontowania pojedynczego radiatora trzeba odizolowa膰 elektrycznie od niego IC12!
Potencjometry Pl i P2 s膮 montowane poza p艂ytk膮. Po艂膮czenia mo偶na dokona膰 za pomoc膮 zwyk艂ego przewodu nieekranowanego pod warunkiem zminimalizowania d艂ugo艣ci po艂膮czenia i zmaksy-malizowania odleg艂o艣ci pomi臋dzy przewodami i transformatorem zasilaj膮cym.
Obs艂uga procesora...
...sprowadza si臋 do wyboru rodzaju efektu za pomoc膮 nastawnika SWl. W egzemplarzu modelowym zastosowano niewygodny DIP-Switch, ale w docelowych rozwi膮zaniach warto si臋
pokusi膰 o zastosowanie elektronicznego lub mechanicznego nastawnika binarnego. Konfiguracja stan贸w logicznych na wej艣ciach wyboru programu uk艂adu ICl jest taka, 偶e zwarcie styk贸w nastawnika powoduje podanie na jego odpowiednie wej艣cie logicznej "1".
Rol臋 styk贸w wej艣ciowych i wyj艣ciowych spe艂niaj膮 bardzo wygodne w praktyce, klasyczne Cinche montowane bezpo艣rednio na p艂ytce drukowanej. Na p艂yt臋 czo艂ow膮 obudowy nale偶y wyprowadzi膰 tak偶e obydwa potencjometry. Andrzej Gawryluk, AVT
Dodatkowe informacje o uk艂adzie AL3201 mo偶na znale藕膰 na p艂ycie CD-EP8/2002B oraz w In-ternecie pod adresami:
http://www.alesis-semi.com/da-tasheets/320lDev.zip - kompilator asmeblera,
http :lIwww. alesis-semi. com/Ap-pnote3201.htm - link do dokumentacji i not aplikacyjnych uk艂adu AL3201.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdflwrzesienO2.htm.
Elektronika Praktyczna 9/2002
PROJEKTY
Sterownik wy艣wietlacza multipleksowanego w VHDL
W artykule przedstawiamy
rozwi膮zanie sterownika
czterech wy艣wietlaczy LED
przeznaczonego do
aplikowania w uk艂adach
programowalnych. Nowo艣ci膮
jest zastosowany spos贸b jego
opisu - zastosowano bowiem
jeden z najbardziej
popularnych obecnie j臋zyk
opisu sprz臋tu - VHDL.
Wykorzystanie uniwersalnego
j臋zyka HDL pozwala
traktowa膰 prezentowany
projekt jak klasyczny blok IP
[Intellectual Property core).
Rekomendacje: jest to
projekt szczeg贸lnie
interesuj膮cy dla fan贸w
nowoczesnych sposob贸w
projektowania urz膮dze艅
elektronicznych. Niebywa艂a
szansa poznania od 艣rodka
IP-core'贸w dla uk艂ad贸w PLD.
Zaczn臋 od wyja艣nienia, dlaczego si臋gn膮艂em po tak "ci臋偶k膮" bro艅 jak VHDL. Uchodzi on do艣膰 powszechnie, cho膰 nies艂usznie, za jeden z bardziej skomplikowanych j臋zyk贸w opisu sprz臋tu (HDL -Hardware Description Language). Pomimo do艣膰 rygorystycznych regu艂 formalnych obowi膮zuj膮cych podczas pisania programu w VHDL j臋zyk ten charakteryzuje si臋 znaczn膮 uniwersalno艣ci膮, co
Wojsko nap臋dza rozw贸j technologii Opracowanie j臋zyka VHDL zosta艂o zainicjowane w 1981 roku
przez Departament Obrony USA w celu ujednolicenia opisu
element贸w system贸w elektronicznych. Przyj臋to, 偶e ma to by膰
j臋zyk z szerokim zakresem mo偶liwo艣ci opisowych, kt贸ry by艂by
akceptowalny przez dowolny symulator i by艂 niezale偶ny od
technologii i sposobu projektowania- Pierwotnie VHDL mia艂
s艂u偶y膰 jednoznacznemu i precyzyjnemu dokumentowaniu du偶ych system贸w cyfrowych. W 1987 roku VHDL uzyska艂 norm臋 IEEE (nowelizowan膮 w 1993 roku)- Dzi臋ki standaryzacji i r贸偶norodnemu zastosowaniu (do cel贸w dokumentacyjnych, symulacji, adaptacji do uk艂ad贸w programowalnych)
powsta艂y efektywne kompilatory tego j臋zyka, kt贸re
przyczyni艂y si臋 do jego spopularyzowania- Chocia偶 powsta艂
z my艣l膮 o opisywaniu du偶ych system贸w, to szybko zosta艂
zaadoptowany do opisywania uk艂ad贸w programowalnych
(szczeg贸lnie uk艂ad贸w AS1C i du偶ych system贸w tworzonych
w FPGA).
w praktyce oznacza, 藕e dobrze przygotowany opis bloku funkcjonalnego b臋dzie mo偶na "wbudowa膰" zar贸wno w uk艂ad PLD, jak i ASIC pochodz膮cych od r贸偶nych, producent贸w - w obydwu przypadkach b臋d膮 one dzia艂a艂y tak samo (za wyj膮tkiem parametr贸w czasowych, kt贸re s膮 silnie powi膮zane z technologi膮 i struktur膮 logiczn膮 uk艂adu). Niebagatelne znaczenie dla projektant贸w system贸w cyfrowych ma fakt, 偶e podzbi贸r j臋zyka VHDL, kt贸ry jest obs艂ugiwany przez programy do syntezy logicznej, jest niewielki i stosunkowo 艂atwy do nauczenia si臋.
Walor "uniwersalno艣ci" posiada tak偶e Yerilog, kt贸ry jakkolwiek bardziej przyjazny u偶ytkownikowi, nie cieszy si臋 a偶 tak du偶膮 popularno艣ci膮 w艣r贸d projektant贸w.
Drug膮, cz臋sto przytaczan膮 cech膮 VHDL-a jest mo偶liwo艣膰 opisywania projektowanego uk艂adu na wiele sposob贸w m.in.: przep艂ywowy (opis 艣cie偶ek przesy艂ania danych), behawioralny (opis zachowania si臋 bloku w zale偶no艣ci od sygna艂贸w zewn臋trznych i wewn臋trznych), czy te偶 strukturalny (najcz臋艣ciej spotykan膮 form膮 ta-
Elektronika Praktyczna 9/2002
27
Sterownik wy艣wietlacza multipleksowanego w VHDL
+5W
w chwili ti - dana dla pierwszej cyny w chwili t2 - dane dla drugiej cyfry
Rys. 1. Ilustracja zasady wy艣wietlania multipleksowanego
kiego opisu s膮 r贸wnania logiczne). Szczerze m贸wi膮c wi臋kszo艣膰 j臋zyk贸w HDL, tak偶e starszej generacji jak np. CUPL czy ABEL, oferuj膮 podobne mo偶liwo艣ci, ale poddajmy si臋 modzie...
Opis projektu
Ze wzgl臋du na mo偶liwo艣膰 ograniczenia liczby niezb臋dnych wyprowadze艅 uk艂adu, do sterowania wy艣wietlaczy LED
bardzo cz臋sto s膮 stosowane systemy z multiplek-sowaniem. Ciesz膮 si臋 one powodzeniem zar贸wno w艣r贸d projektant贸w system贸w mikroprocesorowych, jak w艣r贸d projektant贸w urz膮dze艅 budowanych z uk艂ad贸w dyskretnych (TTL lub CMOS), jak i w sterownikach wy艣wietlaczy wbudowywanych w uk艂ady PLD.
Zasada dzia艂ania wy艣wietlania multipleksowego jest do艣膰 prosta: segmenty wszystkich wy艣wietlaczy s膮 po艂膮czone ze sob膮 r贸wnolegle i sterowane z wyj艣膰 jednego transkodera kodu (przyk艂adowo) BCD na kod wy艣wietlacza 7-segmentowego (rys. l). Wsp贸lne elektrody wy艣wietlaczy (anody lub katody) s膮 sterowane niezale偶nie w taki spos贸b, 偶e w danej chwili zasilana jest tylko jedna z nich. Jednocze艣nie na wej艣cia dekodera jest podawany kod znaku, kt贸ry ma by膰 wy艣wietlony na wybranej pozycji. W ten spos贸b wy艣wietla-
Przed laty wielk膮 estym膮 w艣r贸d elektronik贸w cieszyli si臋 ci, kt贸rzy potrafili programowa膰 mikroprocesory w asemblerze. Dzi艣 taka umiej臋tno艣膰 jest r贸wnie偶 wa偶na, pozwala bowiem na najbardziej efektywne wykorzystanie mo偶liwo艣ci mikroprocesora (kr贸tki kod i wi臋ksza szybko艣膰 realizowania
procedur), ale nie jest ju偶 niezb臋dna. Z czasem pojawi艂y si臋 bowiem narz臋dzia programowe, kt贸re pozwalaj膮 na programowanie mikroprocesor贸w w j臋zykach wy偶szego poziomu, jak np. w C czy nawet w BASIC-u. D艂ugo艣膰 kodu wynikowego te偶 nie jest ju偶 parametrem tak krytycznym, gdy偶 pami臋ci
o du偶ej pojemno艣ci s膮 powszechnie
dost臋pne. Wydaje si臋, 偶e podobnie jest
z opisem uk艂ad贸w do realizacji w strukturach
programowalnych. Dobra znajomo艣膰 j臋zyk贸w
opisu sprz臋tu jest cenn膮 umiej臋tno艣ci膮
projektanta, szczeg贸lnie wtedy gdy
projektuje du偶e uk艂ady i chcia艂by efektywnie
wykorzysta膰 zasoby docelowego uk艂adu
programowalnego.
ne s膮 po kolei wszystkie znaki i ca艂y proces jest powtarzany z cz臋stotliwo艣ci膮 wi臋ksz膮 ni偶 50 Hz (licz膮c cz臋stotliwo艣膰 przypadaj膮c膮 na ka偶dy wy艣wietlany znak), dzi臋ki czemu osoba patrz膮ca na wy艣wietlacz widzi ci膮gle wy艣wietlane cyfry.
Schemat blokowy proponowanego rozwi膮zania sterownika 4-cyfrowego wy艣wietlacza pokazano na rys. 2. Do jego wej艣膰 zosta艂 do艂膮czony blok czterech licznik贸w BCD, dzi臋ki kt贸remu mo偶na przetestowa膰 dzia艂anie sterownika. Zaczniemy od om贸wienia zasadniczej cz臋艣ci projektu, kt贸rego opis w j臋zyku VHDL pokazano na list. 1. Ka偶dy z fragment贸w funkcjonalnych sterownika opisano osobno (艂atwo je zauwa偶y膰 dzi臋ki komentarzom umieszczonym na listingu), przy czym opisy fragment贸w synchronicznych (jak np. licznik wy艣wietlanej cyfry) umie艣ci艂em w niezale偶nych procesach.
Ponadstandardowym wyposa偶eniem sterownika jest 16-bitowy rejestr wej艣ciowy typu latch, kt贸ry mo偶e pracowa膰 w trybie prze藕roczystym (gdy LD = 1) lub jako standardowy przerzutnik zatrzaskowy (dane s膮 w nim zatrzaskiwane poprzez zmian臋 stanu wej艣cia LD z 1 na 0). W zale偶no艣ci od wymaga艅 aplikacji z rejestru tego mo偶na skorzysta膰 lub nie. W tym drugim przypadku mo偶na si臋 pokusi膰 o usuni臋cie z list. 1 fragmentu za-
test.vhd
clk_ref
clk dlep
Rys. 2. Schemat blokowy prezentowanego projektu w VHDL
Elektronika Praktyczna 9/2002
Sterownik wy艣wietlacza multipleksowanego w VHDL


艢*艢 P* u n d p3
SmJHH
Rys. 3. Widok okna edytora element贸w bibliotecznych w pakiecie Max+Plus II (bezp艂atna wersja Baseline)
Rys. 4. Widok okna programu do syntezy VHDL Leonardo Spectrum (tak偶e dost臋pny bezp艂atnie)
wieraj膮cego opis tego rejestru, dzi臋ki czemu zmniejszy si臋 liczba (o 16) makrokom贸rek niezb臋dnych do implementacji projektu.
Jak wspomniano wcze艣niej, do testowania sterownika zastosowano cztery liczniki BCD, kt贸rych opis pokazano na list. 2. S膮 to liczniki pracuj膮ce synchronicznie, kt贸rych opis podzieli艂em na cztery procesy niezale偶ne dla ka偶dej pozycji (cyfry). Liczniki s膮 zerowane a synchronicznie i wyposa偶one w wej艣cie zezwolenia na zliczanie [ena), kt贸re uaktywnia licznik gdy na to wej艣cie jest podana logiczna 1.
Tak przygotowane opisy blok贸w wymagaj膮 po艂膮czenia ze sob膮, dzi臋ki czemu powstanie urz膮dzenie, kt贸rego schemat blokowy pokazano na rys. 2. Mo偶na je po艂膮czy膰 ze sob膮 na wiele r贸偶nych sposob贸w, z kt贸rych niew膮tpliwie na j wygodniejszy jest spos贸b graficzny (za pomoc膮 specjalizowanego edytora schemat贸w). Ze wzgl臋du na walory dydaktyczne w artykule przedstawimy nieco mniej czytelny spos贸b, kt贸ry zilustruje zasad臋 tworzenia projekt贸w hierarchicznych w j臋zyku VHDL. Hierarchiczny opis zestawu: sterownik wy艣wietlaczy multipleksowanych (plik Iatch_dek.vhd - list. 1) z do艂膮czonym 4-cyfrowym licznikiem BCD (plik licznik.vhd -list. 2) pokazano na list. 3. Pomocny w analizie tego opisu b臋dzie rys. 2, na kt贸rym zosta艂y wyra藕nie zaznaczone nazwy wszystkich sygna艂贸w wykorzystanych w projekcie.
Implementacja
Dzi臋ki zastosowaniu opisu w j臋zyku VHDL uda艂o si臋 uzyska膰 艂atw膮 jego przeno艣no艣膰 pomi臋dzy syste-
mami projektowymi r贸偶nych producent贸w. Poniewa偶 prezentowany przyk艂ad jest stosunkowo prosty, zastosowane w nim mechanizmy
List. 1. Opis wjezyku VHDL bloku sterownika 4-cyfrowego wy艣wietlacza multipleksowanego (plik lafch_膰&k,vh膰)
llbrary IEEEr
Use IEEE.STD_L*0GIC_H64.?iLLr
Use IEEE.STD_L*OGIC_fiRITH.?LLLr
entlty latch_dek ls Port (
d: In std_loglc_Vector(15 doWnto 0); Id, clk, res: In std_loglcr dlg: oUt std_loglc_Vector(3 doWnto 0); segrn: oUt std_loglc_yector(S doWnto 0)
end latch_dekr
archltecture reg_dek of latch_dek ls
slgnal adr: std_loglc_Vector(1 doWnto 0);
slgnal bcd: std_loglc_Vector(3 doWnto 0);
slgnal d_latch: std_loglc_yector(15
begln
- dekoder wy艣wietlanych cyfr
Wlth adr select
dlg <= "1110" When "00",
"1101" When "01",
"1011" When "10",
"0111" When "11",
"1111" When other
- linie adresowe M(JX-a
- WD- MUK-a/WsJ. dekodera
- wyj艣cie rejestru latch
- cyfra 0 (Jedn.)
- cyfra 1 (dzies.)
- cyfra 2 (setki)
- cyfra 3 (tys.)
- wygaszenie cyfr
- M(JX danych do wy艣wietlania Wlth adr select
bcd <= d_latch(15 doWnto 12) when "11", d_latch(ll doWnto S) when "10", d_latch(7 doWnto 4) when "01", d_latch(3 doWnto 0) when "00", "1111" When othersr
- licznik adresu wy艣wietlane] cyfry llcZ_adr: process (clk, res) begln
lf (res='l') then adr <= "00"r
elslf (clk='l' and clk'eVent) then
adr <= adr + lr end lfr end process llcZ_adTr
- transkoder
Wlth bcd select
g f e d c b a
segm <= "1000000 When '0000" - 0
"1111001 When 艢0001" - 1
"0100100 When 艢0010" - 2
"0110000 When 艢0011" - i
"0011001 When 艢0100" - 4
"0010010 When 艢0101" - 5
"0000010 When 艢0110" - 6
"1111000 When 艢0111" - 7
"0000000 When 艢1000" - S
"0010000 When 艢1001" - 9
"1111111' When athers - wygaszenie
- rejestr latch
latch: process (Id, d, res)
jegln
lf res='1' then
d latch <= "0000000000000000";
elslf ld='l' then
d_latch <= dr
end lfr
end processr
end reg dekr
Elektronika Praktyczna 9/2002
Sterownik wy艣wietlacza multipleksowanego w VHDL
艂-nrirl
A4lp艂艂艂i k#
Rys. 5. Wyglqd okna systemu projektowego WebPack ISE (dost臋pny bezp艂atnie w Internecie)
Spectrum - rys. 4) i Qu-artus II fiimy Altera, WebPack ISE fiimy Xilinx (rys. 5) oiaz Waip fiimy Cypiess (weisja bezp艂atna tego systemu dost臋pna wy艂膮cznie z ksi膮偶k膮 "J臋zyk VHDL" Kevina Skahnla, kt贸ia ukaza艂a si臋 nak艂adem WNT). Warto tutaj pizypomnie膰, 藕e kurs pos艂ugiwania si臋 pakietem WebPack ISE publikowali艣my w EPo/oL 4...7/2002. Piojekt by艂 kompilowany na uk艂ady CPLD (z seiii MAX7000S,
opisu s膮 elementarne i mo偶liwe do XC9500 iFlash370i) i zajmuje pizyswojenia pizez zdecydowan膮 w nich 30 makiokom贸iek. wi臋kszo艣膰 system贸w projektowych. Ostateczn膮 weisj臋 piezentowanego piojektu poddano kompilacji pizez
Testowanie
Nic tak dobrze nie robi pro-
systemy (wszystkie dost臋pne bez- jektowi, jak piaktyczna weiyfi-p艂atnie): Max+Plus II (weisje: SE kacja jego dzia艂ania. Testy pize-oiaz Basehne - rys. 3 - z Leonaido piowadzi艂em na piostym zesta-
wie, kt贸rego schemat znajduje si臋 na rys. 6. Poniewa偶 zestaw by艂 projektowany do zupe艂nie innych zada艅, jego wyposa偶enie jest nieco nadmiarowe (zastosowano w nim m.in. 5 wy艣wietlaczy, z kt贸rych tylko 4 wykorzystujemy w przyk艂adzie). Zastosowany w nim uk艂ad XC95018 jest wyposa偶ony w interfejsach JTAG, za pomoc膮 kt贸rego mo偶na programowa膰 jego nieulotn膮 pami臋膰 konfiguracji. Opisy programator贸w ISP (odpowiednik DLC5, kt贸ry jest obs艂ugiwany przez system WebPack ISE) mo偶na znale藕膰 m.in. w EP4/2001 (AVT-13O3).
Tranzystory T1...T5 (w przyk艂adzie wykorzystane T2...T5) spe艂niaj膮 rol臋 wzmacniaczy pr膮dowych steruj膮cych wsp贸lne anody wy艣wietlaczy. Segmenty wy艣wietlaczy s膮 sterowane bezpo艣rednio z wyj艣膰 uk艂adu CPLD (ich
DB1
a Jg4
c _a_dQ3
fl JgP
_B_dg1
ft JflO
Rys. 贸. Schemat elektryczny modu艂u ewaluacyjnego
30
Elektronika Praktyczna 9/2002
Sterownik wy艣wietlacza multipleksowanego w VHDL
List. 2. Opis 4-cyfrowego licznika BCD (plik licznik.vhd)
library IEEE;
us e IEEE.STD LOGIC 1164.ALL;
us e IEEE.STD_LCGIC_UWSIGWED.ALL;
en tity licznik is
Port ( res, clk, ena: in std_log c;
ovf: out std_logic;
q: out std_logic_vector(15downto 0)
en d licznik;
ar chitecture a of licznik is
si gna艂 jedn: std_logic_vector(3 dow to 0);
si gna艂 dzie: std_logic_vector(3 dow to 0);
si gna艂 setk: std_logic_vector(3 dow to 0);
si gna艂 tysi: std_logic_vector(3 dow to 0);
be gin
je dn cnt: PROCESS (clk, res) BEGIN
if (res='l') then jedn <= "0000"
elsif (clk='l' and clk'event) 'then
if (ena = 'l') then
if (jedn="1001") then ] edn <= "0000";
else jedn <= jedn + 1;
end if;
end if;
end if;
end process jedn_cnt;
dz cnt: process (clk, res) begin
if (res='l') then dzie <= "0000"
elsif (clk='l' and clk'event) 'then
if (ena='l') then
if (dzie="1001" and edn="1001") then dzie< = "0000";
elsif (jedn = "1001") the n dzie <= dzie + 1;
end if;
end if;
end if;
en d process dz_cnt;
se t cnt: process (clk, res) begin
if (res='l') then setk <= "0000"
elsif (clk='l' and clk'event) 'then
if (ena = 'l') then
if (setk="1001" and dzi e="1001" and jedn="1001") then setk <= "0000";
elsif (dzie="1001" a d jedn = "1001") then setk <= setk + 1;
end if;
end if;
end if;
en d process set_cnt;
ty s cnt: process (clk, res) begin
if (res='l') then tysi <= "0000"
elsif (clk='l' and clk'event) 'then
if (ena = 'l'J then
if (tysi="1001" and setk="1001" and dzie = "1001" and jedn = "1001" ) then
ty si<="0000";
elsif (setk="1001" and dzie="1001" and jedn="1001") then tysi <= tysi + 1;
end if;
end if;
end if;
en d process tys_cnt;
q <= tysi & setk & dzie & jedn; -
d a;
te st.yhd
library IEEE;
us e IEEE.STD LOGIC 1164.ALL;
us e IEEE.STD_LOGIC_ARITH.ALL;
en tity test is Port (
clk_ref, res, clk_disp: in std_lo gic;
a, b, c, d, e, f, g, dig4: out std_logic;
dig: out std_logic_vector(3 downt o 0)
en d 'test;
ar chitecture cplx of test is
co mponent latch dek port (
d: in std logie vector(15 downto 0);
Id, clk, res: in std_logic;
dig: out std_logic_vector(3 downt o 0);
segm: out std_logic_vector(6 down to 0)
en d'component latch_dek;
co mponent licznik port (
res, clk, ena: in std_logic;
q: out std_logic_vector(15 downto 0)
en d component licznik;
si gna艂 q_int: std_logic_vector(15 d Wnto 0);
be gin
li cznik kpi: licznik port map (
clk=> clk_ref,
res => res,
q => q_int,
ena=> '1'
re g_dek_mux: latch_dek port map (
d => q_int,
clk=> clk_disp,
res => res
dig => dig ,
Id => '1',
segm(0) => a
segm(l) => b
segm(2) => c
segm(3) => d
segm(4) => e
segm(5) => f
segm(6) => g
di g4 <= '1'; - wynika z budowy zest WU eval - nie wp艂ywa na dzia艂anie bloku
en d cplx;
dopuszczalna obci膮偶alno艣膰 pr膮dowa "do masy" zasilania wynosi 24 mA), Taki spos贸b sterowania wymusi艂 konieczno艣膰 zakodowania tablicy prawdy transkodera (list. 1) w logice ujemnej (czyli 0 jest aktywne). Tak偶e tranzysto-ry-drivery (typu PNP) s膮 aktywowane przez 0 logiczne, w zwi膮zku z czym w opisie dekodera wy艣wietlanych cyfr (list. 1) sygna艂em aktywnym jest tak偶e 0.
Uk艂ad U3 spe艂nia rol臋 zewn臋trznego generatora taktuj膮cego sterownik wy艣wietlaczy. Warto艣ci element贸w Rl, R2 i C5 ustalaj膮 cz臋stotliwo艣膰 jego pracy na ok. 400 Hz, co w zupe艂no艣ci wystarcza do poprawnego wysterowania 4 wy艣wietlaczy.
Zastosowanie
Prezentowany w artykule modu艂 sterownika wy艣wietlaczy jest jednym z element贸w uniwersalnego projektu cz臋sto艣ciomierza z automatyczn膮 zmian膮 zakres贸w, kt贸ry w ca艂o艣ci opisano za pomoc膮 j臋zyka VHDL (szczeg贸艂owo opiszemy go w jednym z najbli偶szych wyda艅 EP). Nie jest to oczywi艣cie jego jedyne mo偶liwe zastosowanie. Poniewa偶 komplet plik贸w 藕r贸d艂owych udost臋pniamy w Internecie (na www.ep.com.pl w dziale Down-1oad>Dokumentacje), ka偶dy projektant b臋dzie m贸g艂 wykorzysta膰 sterownik w dowolnych w艂asnych opracowaniach. Pomimo niedoskona艂o艣ci wsp贸艂czesnych narz臋dzi do syntezy VHDL, dzi臋ki zastosowaniu tego j臋zyka opisu uda艂o si臋 uzyska膰 100% przeno艣no艣膰 pomi臋dzy wcze艣niej wymienionymi systemami projektowymi. Istnieje du偶a szansa na kompatybilno艣膰 opisu tak偶e w z innymi systemami projektowymi (po艣r贸d bezp艂atnych dost臋pne s膮 jeszcze m.in.: Quick-Works firmy QuickLogic oraz pakiety Libero i Designer firmy Actel), dzi臋ki czemu mo偶na 艂atwo wykorzysta膰 udost臋pnione opisy dla dowolnego uk艂adu PLD (tak偶e FPGA). Piotr Zbysi艅ski, AVT piotr.zbysinski@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdflwrze sie艅 O2.htm.
Elektronika Praktyczna 9/2002
31
PROJEKTY
Pr贸bnik wody destylowanej
Nie dajmy si臋 nabi膰 w butelk臋!
AVT-5075
Na 艂amach EP do艣膰
rzadko prezentujemy uk艂ady
eiektroniczn e w takim
zastosowaniu. Uk艂ad opisany
w artyku艂e pozwa艂a zbada膰
jako艣膰 wody desty艂owanej
stosowanej m.in.
w akumu艂atorach
samochodowych. Nie b臋dziemy
musie艂i du偶o p艂aci膰 za
zwyk艂膮 kran贸wk臋.
Rekomendacje: d艂a tych
u偶ytkownik贸w wody, kt贸rym
nie jest oboj臋tna jej jako艣膰.
Powszechnie dost臋pna woda demineralizowana (wytwarzana na zasadzie wymiany jonowej) wypar艂a w wi臋kszo艣ci zastosowa艅 wod臋 otrzymywan膮 w znacznie dro偶szym procesie destylacji. Zawarte w wodzie kwasy, zasady i sole ulegaj膮 dysocjacji na jony (kationy i aniony), nadaj膮c jej przewodno艣膰 elektryczn膮. Jednostk膮 przewodno艣ci elektrycznej jest Simens [S], Przewodno艣膰 jest odwrotno艣ci膮 oporno艣ci - 1S = 1CI'1. Przewodno艣膰 w艂a艣ciw膮 wody najcz臋艣ciej wyra偶a si臋 w |iS/cm2. Przewodno艣膰 w艂a艣ciwa w贸d naturalnych waha si臋 przeci臋tnie w granicach 50...1000 |iS/cm2, 艣ciek贸w przemys艂owych nawet do 10000 |iS/cm2. 艢wie偶a destylowana woda ma przewodno艣膰 w艂a艣ciw膮 0,5... 2,0 |iS/cm2. Niestety, z czasem jej jako艣膰 si臋 pogarsza. Ju偶 po kilkunastu dniach, wskutek poch艂aniania z powietrza dwutlenku w臋gla i amoniaku, przewodno艣膰 zwi臋ksza si臋 do 2...4 |iS/cm2.
W proponowanym do wykonania pr贸bniku wykorzystano pomiar przewodno艣ci (konduktancji) wody. S艂u偶y on do progowego zasygnalizowania (dioda LED) obni偶onych parametr贸w wody destylowanej w stosunku do parametr贸w ustalonych podczas kalibracji. Chocia偶 wyniki tego pr贸bnika nie mog膮 by膰 podstaw膮 reklamacji wody, to mog膮 ustrzec nas przed skutkami u偶ycia niew艂a艣ciwej wody i umo偶liwi膮 zweryfikowanie zaufania do dotychczasowego dostawcy.
Dzia艂anie pr贸bnika
Podstawowym elementem u偶ytym do budowy pr贸bnika jest uk艂ad scalony LM393P (patrz schemat elektryczny na rys. l). Zawiera on dwa komparatory
z wyj艣ciem typu otwarty kolektor. Jeden komparator wykorzystano do realizacji podstawowej funkcji pr贸bnika, drugi pe艂ni rol臋 pomocnicz膮 - kontroluje roz艂adowanie baterii zasilaj膮cej.
Dzia艂anie uk艂adu jest bardzo proste. Komparator por贸wnuje napi臋cia na wej艣ciach, z kt贸rych jedno ma ustalony potencja艂 (tzw. napi臋cie odniesienia) przez rezystory dzielnika R5, R7. Napi臋cie na drugim wej艣ciu jest ustalone przez dzielnik napi臋cia z艂o偶ony z konduktancji wody zawartej pomi臋dzy elektrodami sondy i rezyst贸w nastawnych R6 i R8. Obci膮偶eniem komparatora jest wska藕nik w postaci diody D4 (LED).
Napi臋cie odniesienia drugiego komparatora, uzyskane za pomoc膮 diody stabilizacyjnej D3, por贸wnywane jest z cz臋艣ci膮 napi臋cia baterii okre艣lon膮 przez dzielnik Rl i R2. Jego obci膮偶eniem jest r贸wnie偶 dioda D4. Opornik R4
Elektronika Praktyczna 9/2002
33
Pr贸bnik wody destylowanej
Elektrody Au
Bateria 6F22
SW1 TEST
Rys. I. Schemat elektryczny pr贸bnika wody
ogranicza pr膮d diody LED. Diody Dl i D2 separuj膮 od siebie wyj艣cia komparator贸w. USl dostarcza stabilizowanego napi臋cia zasilania +5V. Kondensator C3 minimalizuje zak艂贸cenia spowodowane do艂膮czeniem przewodu sondy do bardzo czu艂ego wej艣cia komparatora.
Monta偶 i uruchomienie
Jako艣膰 przyrz膮du w du偶ej mierze zale偶y od w艂a艣ciwej budowy sondy. Elektrody powinny by膰 pokryte czerni膮 platynow膮. Do ich wykonania mo偶na u偶y膰 z艂oconych, spr臋偶ystych styk贸w ze z艂膮cza kraw臋dziowego firmy Eltra. Os艂ona musi uniemo偶liwi膰 przypadkowe odkszta艂cenie elektrod i zapewni膰 odprowadzenie powietrza po zanurzeniu.
Na rys. 2 przedstawiono schemat monta偶owy p艂ytki drukowanej wykonanej na laminacie jednostronnym . Po przylutowaniu element贸w (Cl w pozycji poziomej), przytwierdzamy do niej sond臋 (rys. 3) za pomoc膮 odpowiednio wyprofilowanych blaszek i czterech 艣rub M3. Pod艂膮czamy do p艂ytki przewody sondy i zasilaj膮ce. Najpierw uruchomimy cz臋艣膰 uk艂adu odpowiedzialn膮 za sygnalizowanie zu偶ytej baterii. W tym celu przy艂膮czamy pr贸bnik do zasilacza o regulowanym napi臋ciu wyj艣ciowym. Ustawiamy napi臋cie ok. +9V. Po naci艣ni臋ciu przycisku TEST dioda LED nie powinna 艣wieci膰, a wol-
tomierz przy艂膮czony do wyj艣cia USl powinien wskazywa膰 +5V. Teraz powoli zmniejszamy napi臋cie zasilaj膮ce, obserwuj膮c wskazania woltomierza (wyj艣cie USl) i diod臋 LED. Za艣wiecenie LED powinno nast臋powa膰 nieznacznie wcze艣niej ni偶 spadek napi臋cia poni偶ej +5V na wyj艣ciu stabilizatora USl. Je艣li tak nie jest, trzeba dobra膰 (zmniejszy膰) warto艣膰 rezystora R2.
Nast臋pnie umieszczamy ca艂o艣膰 w obudowie i przy艂膮czamy bateri臋 9V 6F22. Suwak R6 ustawiamy w 艣rodkowe po艂o偶enie. Sond臋 zanurzamy w wodzie o parametrach jeszcze spe艂niaj膮cych nasze wymagania. Naciskamy przycisk TEST i reguluj膮c R8 powodujemy za艣wiecenie i ga艣niecie diody LED. Ko艅cowej kalibracji dokonujemy, ustawiaj膮c suwak R6 w po艂o偶eniu, w kt贸rym dioda LED jest wygaszona, tu偶 przed punktem jej 艣wiecenia si臋. W zale偶no艣ci od typu u偶ytych komparator贸w, powierzchni czynnej i wzajemnego po艂o偶enia elektrod, a tak偶e stopnia mineralizacji badanej wody, mo偶e si臋 okaza膰 konieczne zwi臋kszenie R8 do 470kQ.
Po zako艅czeniu kalibracji nie zmienia膰 wzajemnego po艂o偶enia elektrod!
Pos艂ugiwanie si臋 pr贸bnikiem
Energicznie zamiesza膰 sond膮 (umieszczon膮 w badanej wodzie, o temp. zbli偶onej do tej, w jakiej
przeprowadzano kalibracj臋) w celu pozbycia si臋 p臋cherzyk贸w powietrza z elektrod i nacisn膮膰 przycisk. Za艣wiecenie diody LED wskazuje nisk膮 jako艣膰 wody. Po wykonaniu pr贸by strz膮sn膮膰 wod臋 z sondy i j膮 wysuszy膰.
Dioda LED opr贸cz podstawowej pe艂ni jeszcze drug膮 funkcj臋 -wska藕nika baterii. Jej 艣wiecenie przy naci艣ni臋tym przycisku, gdy sonda nie jest umieszczona w wodzie, wskazuje roz艂adowanie baterii. Pob贸r pr膮du z baterii jest niewielki (ok. 4 mA), co zapewnia jej d艂ug膮 prac臋. Test baterii nale偶y
Rys. 2. Rozmieszczenie element贸w na p艂ytce drukowanej
34
Elektronika Praktyczna 9/2002
Pr贸bnik wody destylowanej
klej epoksydowy
Rys. 3. Proponowany spos贸b wykonania sondy pomiarowej
wykona膰 przed ka偶dym u偶yciem pr贸bnika.
Dodatkowe uwagi
Przy艂o偶enie napi臋cia sta艂ego do elektrod zanurzonych w wodzie powoduje zjawisko elektrolizy. Nie jest ono po偶膮dane w naszym przypadku i z pewno艣ci膮 nie pozostaje bez wp艂ywu na pomiar. Najlepszym rozwi膮zaniem jest zasilenie elektrod napi臋ciem zmiennym. Ale utraciliby艣my chyba najwi臋ksz膮 zalet臋 urz膮dzenia - jego prostot臋. Bardzo ma艂a powierzchnia elektrod, niskie napi臋cie zasilaj膮ce, kr贸tki czas wykonania testu, odpowied-
nia ilo艣膰 wody u偶yta do pr贸by (nie r贸bmy pr贸by w przys艂owiowym naparstku) powoduj膮, 偶e wp艂yw elektrolizy jest pomijal-nie ma艂y.
Dwa pr贸bniki wykonane wed艂ug tego opisu s膮 wykorzystywane w wytw贸rni wody deminerali-zowanej, gdzie potwierdzono ich przydatno艣膰.
Nale偶y wspomnie膰 o mo偶liwej modernizacji pr贸bnika. Stosuj膮c kilka komparator贸w i wska藕nik z艂o偶ony z linijki LED, uzyskamy pr贸bnik wskazuj膮cy stopie艅 mineralizacji wody w pewnych zakresach. Miros艂aw Sadlak
WYKAZ ELEMENT脫W
Rezystory
Rl: 24kQ
R2: 3kQ*
R3: 5,贸kQ
R4: 820O
R5, R7: 15kQ
R6: 47kO (pot. wieloobrotowy)
R8: 220kQ (pot. monta偶owy)
Kondensatory Cl: 100^F/16V C2: lOOnF C3: lnF P贸艂przewodniki DL D2: 1N4148 D3: BZP687 0V75 D4: LED (czerwona) US1: 78L05 US2: LM393P R贸偶ne SW1: mikrow艂膮cznik (switch)
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdflwrze sie艅 O2.htm.
Elektronika Praktyczna 9/2002
35
PROJEKTY
Konwerter USB< cz臋艣膰 1
AYT-5080
Przedstawiamy pierwsz膮
w polskiej prasie
elektronicznej aplikacj臋
uk艂adu, kt贸ry - jeste艣my tego
pewni - zrewolucjonizuje
wsp贸艂czesn膮 elektronik臋
popularn膮, jest to scalony,
dwukierunkowy konwe艅er
USB<->RS232, za pomoc膮
kt贸rego mo偶na do艂膮czy膰 do
PC-ta lub Mclntosha dowolne
urz膮dzenie zewn臋trzne i to
bez konieczno艣ci pisania
w艂asnych driver贸w....
Same zalety!
Ju藕 od d艂ugiego czasu dobiegaj膮 zewsz膮d g艂osy, 藕e najwy偶sza pora, aby w amatorskich projektach zago艣ci艂y interfejsy USB. Tym bardziej, i藕 w 艣wiecie akcesori贸w komputerowych sta艂y si臋 one ju藕 standardem. Producenci nie ustaj膮 w wysi艂kach, 偶eby wdra偶a膰 nowe, coraz szybsze wersje tego interfejsu, natomiast dotychczasowe porty szeregowe i r贸wnoleg艂e maj膮 wkr贸tce znikn膮膰 z "pok艂adu" PC, dziel膮c los nap臋d贸w 5 1/4" czy magistrali ISA.
Dotychczas jednak wysoka z艂o偶ono艣膰 systemu USB w po艂膮czeniu z niewielk膮 dost臋pno艣ci膮 potrzebnych podzespo艂贸w dla indywidualnego klienta oraz ca艂kowitym brakiem polskoj臋zycznej literatury stawia艂a przed elektronikami-amatorami barier臋 trudn膮 do pokonania.
Na rys. 1 pokazano struktur臋 po艂膮czenia USB. Pozwala ona oceni膰, ile wyspecjalizowanych mechanizm贸w kryje si臋 np. za najzwyklejszym zapaleniem LED-a na w艂asnej prototypowej p艂ytce za pomoc膮 samodzielnie napisanej aplikacji dla PC. Rysunek ten jest tylko orientacyjny - na jego podstawie bardzo og贸lnie opiszemy zasady dzia艂ania USB (pe艂ne specyfikacje to co najmniej kilkaset stron - s膮 dost臋pne na stronie www.ep.com.pl w dziale Down-load>Dokumentacje). Zaczniemy od strony sygna艂贸w przesy艂anych kablem.
Standardowy kabel po艂膮czeniowy USB ma 4 偶y\y: dwie z nich
przekazuj膮 zasilanie (masa oraz +5V), nast臋pne dwie to para przenosz膮ca r贸偶nicowy sygna艂 danych. Sygna艂 ten pe艂ni kilka jednoczesnych funkcji:
- przesy艂a dane w postaci strumienia bit贸w,
- synchronizuje oscylatory pod艂膮czonych urz膮dze艅 z oscylatorem g艂贸wnego kontrolera (PC),
- wyznacza pocz膮tek i koniec pakietu,
- przekazuje 偶膮danie programowego zerowania,
- detekcja do艂膮czenia urz膮dzenia do magistrali.
Strumie艅 bit贸w jest kodowany w systemie NRZI: poszczeg贸lnym sekwencjom bit贸w odpowiada zmiana lub brak zmiany poziomu (czyli w parze r贸偶nicowej zmiana polaryzacji lub jej pozostawienie
- rys- 2):
- ci膮g zer prze艂膮cza poziom przy ka偶dym bicie,
- ci膮g jedynek pozostawia poziom bez zmian,
- para 1 0 prze艂膮cza poziom,
- para 0 1 pozostawia poziom bez zmiany.
Magistrala nie posiada oddzielnego sygna艂u zegarowego. Ka偶de pod艂膮czone urz膮dzenie dysponuje w艂asnym oscylatorem do sprawdzania kolejnych bit贸w z 4-krot-nym oversamplingiem (nadpr贸b-kowaniem) - dla szybko艣ci przesy艂u danych wynosz膮cej 12 Mbd konieczny b臋dzie wi臋c zegar o cz臋stotliwo艣ci 48 MHz. Oscyla-tor jest synchronizowany (p臋tl膮 PLL) z przebiegiem sygna艂u w ma-
Elektronika Praktyczna 9/2002
37
Konwerter USB<->RS232
W艂asna aplikacja PC Program / klient steruj膮cy zewn臋trznym urz膮dzeniem
Ew. biblioteka dodatkowa
U艂atwia i wspomaga odwo艂ania do sterownika
user
kemel
Sterownik urz膮dzenia Zapewnia zale偶n膮 od urz膮dzenia komunikacj臋 z systemow膮 obs艂ug膮 USB
Sterownik USB
Sterownik kontrolera
Przetwarza dane aplikacji na pakietow膮 form臋 transmisji USB
Zapewnia po艂膮czenie z r贸偶nymi typami sprz臋towych kontroler贸w stos programowy
sprz臋t
Kontroler USB + g艂贸wny hub
kable
PC / WINDOWS 32
Koncentrator (hub) zewn臋trzny
kable
Do koncentratora mog膮 by膰 pod艂膮czone bezpo艣rednio urz膮dzenia lub kolejne huby. Standard dopuszcza 5 poziom贸w koncentrator贸w oraz pod艂膮czenie do 127 urz膮dze艅.
Ekranowany kabel USB zawiera 4 przewody: zasilanie +5V, masa oraz para D+ D- przekazuj膮ca sygna艂 r贸偶nicowy.
Konwerter poziom贸w
Modu艂 SIE - Serial Interface Engine
Interfejs SIE
Kontroler protoko艂u
Uk艂ady wej艣cia / wyj艣cia
URZ膭DZENIE l/O
Przetwarza sygna艂 r贸偶nicowy na przebieg odpowiedni dla dalszych uk艂ad贸w logicznych (i odwrotnie).
Dekoduje (i koduje) strumie艅 bit贸w przesy艂any kablem do postaci bajt贸w danych. Zapewnia synchronizacje w艂asnego oscylatora z cz臋stotliwo艣ci膮 strumienia bitowego.
Wst臋pnie zarz膮dza przesy艂anymi danymi - lokuje w buforach lub pami臋ci, zg艂asza odpowiednie przerwania, mo偶e te偶 obs艂ugiwa膰 b艂臋dy transmisji -zakres zale偶y od konkretnego rozwi膮zania.
Obs艂uguje pakiety transmisji USB. Zapewnia wymian臋 odpowiednio sformatowanych danych z otoczeniem poprzez obs艂ug臋 uk艂adu l/O.
Zapewnia komunikacj臋 z otoczeniem wg potrzeb funkcji wykonawczych urz膮dzenia.
Zestaw funkcji wykonawczych
Rys. 1. Budowa po艂膮czenia USB
gistrali. D艂u偶szy brak zmiany poziomu sygna艂u (wyst臋puj膮cy w kodzie NRZI przy ci膮gu kolejnych bit贸w "1") mo偶e spowodowa膰 zerwanie tej synchronizacji. Dlatego wprowadzono rozdzielanie ci膮gu jedynek dodatkowym bitem "0" (po ka偶dych 6 jedynkach) - tzw. bit stuffing - rys. 3.
Wszelkie informacje USB s膮 przesy艂ane w formie pakiet贸w. Pocz膮tek pakietu jest oznaczony jako pierwsza zmiana poziomu przy wyj艣ciu ze stanu spoczynkowego [idle) magistrali. Potem nast臋puje blok synchronizacji (ci膮g bit贸w 0 zako艅czony 1), nast臋pnie blok danych. Koniec pakietu jest sygnalizowany dwubitowym stanem SEO (skr贸t od single-ended 0 -obie linie pary r贸偶nicowej na
poziomie niskim). Przebieg sygna艂贸w dla pakietu jest pokazany na rys. 4.
Struktura pakietu zawsze zawiera blok synchronizacji oraz zaraz po nim bajt identyfikatora pakietu - PID (4 bity okre艣laj膮 PID, nast臋pne 4 s膮 negacj膮 PID, co pozwala na kontrol臋 poprawno艣ci). Dalsza zawarto艣膰 zale偶y od typu pakietu (mo偶e mie膰 d艂ugo艣膰 od 0 do 1025 bajt贸w). Stosowane pakiety przedstawiono w tab. 1. Z wymienionych pakiet贸w sk艂adane s膮 wszystkie, wyst臋puj膮ce w USB, elementarne transakcje. Mo偶e to by膰 np. transakcja wys艂ania danych z komputera:
- pakiet OUT - do urz膮dzenia (przygotuj si臋 do otrzymania
danych przeznaczonych dla EPx),
- pakiet DATAO - do urz膮dzenia (dane),
- pakiet ACK - z urz膮dzenia (pakiet danych przyj臋ty prawid艂owo),
albo odczytu danych przez komputer:
- pakiet IN - do urz膮dzenia (wy艣lij pakiet danych przez EPx),
- pakiet DATAO - z urz膮dzenia (urz膮dzenie wysy艂a dane),
- pakiet ACK - do urz膮dzenia (pakiet danych dotar艂 prawid艂owo).
Elementarna transakcja musi zawiera膰 si臋 w obr臋bie pojedynczej 1-ms ramki.
Z kolei odpowiednio zgrupowane zespo艂y transakcji tworz膮 cztery r贸偶ne typy transfer贸w. Transfery r贸偶ni膮 si臋 poza tym sposobem obs艂ugiwania przez komputer w zakresie kontroli b艂臋d贸w i przyznawania priorytet贸w w dost臋pie do magistrali:
1. Control - u偶ywany do rozpoznawania i konfigurowania urz膮dzenia.
2. Interrupt - u偶ywany do sprawdzania statusu urz膮dzenia i wykrywania jego ewentualnych 偶膮da艅 obs艂ugi. Termin "przerwanie" w nazwie jest nieco myl膮cy, zw艂aszcza dla elektronik贸w przyzwyczajonych do systemu przerwa艅 w mikrokontrolerach. Urz膮dzenie USB samo z siebie nie mo偶e rozpocz膮膰 偶adnego transferu, mo偶e jedynie przes艂a膰 na 偶yczenie hosta odpowiedni膮 informacj臋. Komputer sprawdza cyklicznie do艂膮czone urz膮dzenia [pol-ling) i w razie potrzeby podejmuje odpowiedni膮 akcj臋. Cz臋stotliwo艣膰 pollingu jest ustalana w trakcie pocz膮tkowej konfiguracji, ale nie mo偶e przekracza膰 cz臋stotliwo艣ci ramek (1 kHz). Wszelkie dzia艂ania wymagaj膮ce szybszej reakcji na sygna艂y zewn臋trzne powinny by膰 wi臋c realizowane samodzielnie przez urz膮dzenie.
3. Bulk - u偶ywany do przesy艂ania du偶ych blok贸w danych (ang. bulk - wielko艣膰, obj臋to艣膰, masa) z dok艂adn膮 kontrol膮 poprawno艣ci
- stosowany np. w drukarkach czy skanerach.
4. Isochronous - stosowany do przesy艂ania ci膮g艂ego strumienia danych w przypadkach gdzie poprawno艣膰 jest mniej istotna ni偶
Elektronika Praktyczna 9/2002
Konwerter USB<->RS232
Tab. 1. Zestawienie pakiet贸w stosowanych w USB
PID Typ Kategoria Zawarto艣膰 i funkcja
0101 SOF token (kontrolny) Start-of-frame: jest wysy艂any co 1 ms (zapewnia to dodatkow膮 synchronizacj臋 oraz pozwala na wykrywanie zawieszenia magistrali). Sk艂ada si臋 z 11-bitowego kolejnego numeru ramki (frame) oraz 5-bitowego kontrolnego CRC.
1101 SETUP token (kontrolny) Priorytetowy pakiet kontrolny s艂u偶膮cy do podstawowego nadzoru i konfiguracji - sk艂ada si臋 z 7-bitowego adresu urz膮dzenia, 4-bitowego adresu EPO i 5-bitowego CRC.
1001 IN token (kontrolny) Inicjalizuje przesy艂 danych z urz膮dzenia do PC - sk艂ad jw. z tym, 偶e mo偶e by膰 adresowany dowolny dost臋pny w urz膮dzeniu endpoint (EP x).
0001 OUT token (kontrolny) Inicjalizuje przesy艂 danych z PC do urz膮dzenia. Sk艂ad jw.
0011 DATA0 dane Pakiet sk艂ada si臋 z ci膮gu 0- 1023 bajt贸w danych oraz 16-bitowego kontrolnego CRC. Dwa typy pakietu s膮 wprowadzone dla dodatkowej kontroli: nadajnik wysy艂a przemiennie typ OM, co umo偶lliwia sprawdzanie, czy 偶aden pakiet nie zagin膮艂.
1011 DATA1 dane
0010 ACK handshake Potwierdzenie prawid艂owego odbioru - pakiet zawiera tylko identyfikator.
1010 NAK handshake Zg艂oszenie chwilowej zaj臋to艣ci urz膮dzenia - transakcja jest ponawiana w nast臋pnej ramce. Urz膮dzenie nie ma prawa odpowiedzie膰 NAK na pakiet SETUP - musi wtedy przerwa膰 wszelkie inne operacje i obs艂u偶y膰 transakcj臋 kontroln膮.
1110 STALL handshake Zg艂oszenie braku mo偶liwo艣ci obs艂ugi konkretnej komendy (np. wpisu danych do nieistniej膮cego w urz膮dzeniu endpointu).
1100 PRE specjalny U偶ywany przy konfigurowaniu po艂膮czenia ma艂ej pr臋dko艣ci (1,5 Mb/s).
INNE rezerwa rezerwa -
zachowanie sta艂ego w czasie [izo-chronicznego) przep艂ywu. W tym celu ju偶 na poziomie elementarnej transakcji pomini臋ta jest kontrola b艂臋d贸w i pakiety potwierdze艅 oraz u偶ywa si臋 maksymalnego rozmiaru pakiet贸w danych. Obszar wykorzystania to przede wszystkim urz膮dzenia audio i wideo. Przyk艂adem urz膮dzenia korzystaj膮cego z izochronicznego trybu przesy艂ania danych jest karta d藕wi臋kowa USB, kt贸r膮 opisali艣my w EP3/99. Aby dalej omawia膰 wykorzystanie tych transfer贸w, nale偶y si臋 zapozna膰 z logiczn膮 struktur膮 po艂膮czenia USB. Jest ona og贸lnie przedstawiona na rys. 5. Podstawowym poj臋ciem jest tutaj endpoint (ju偶 wspomniany w opisach pakiet贸w) - czyli punkt ko艅cowy. Endpoint jest zako艅czeniem logicznego kana艂u przesy艂ania danych w stron臋 komputera - hosta (EP IN) lub w stron臋 urz膮dzenia (EP OUT). Drugi koniec takiego kana艂u (nazywanego rurk膮 - pip臋) jest wej艣ciem lub wyj艣ciem danych dla oprogramowania uruchomionego na ko艣cie. Ka偶de - nawet najprostsze - urz膮dzenie musi posiada膰 co najmniej jeden endpoint: EPO (IN oraz OUT) o jednoznacznie okre艣lonej charakterystyce, kt贸ry obs艂uguje podsta-
wowe transfery kontrolne. Dalsze endpointy mog膮 ju偶 mie膰 charakterystyki dopasowane do potrzeb realizowanej funkcji (np. maksymalny rozmiar pakietu, typ transferu itd.). Zestaw endpoint贸w tworzy interfejs.
W bardziej z艂o偶onych urz膮dzeniach interfejs贸w mo偶e by膰 kilka (ka偶dy odpowiada za okre艣lony wycinek funkcjonalno艣ci urz膮dzenia - pozwala to na uzyskanie znacznego skomplikowania przy u偶yciu mniejszych, ju偶 sprawdzo-
DANE
NRZI
1 1
IDLE
Rys. 2. Kodowanie NRZI
nych i cz臋sto typowych element贸w sk艂adowych). Zbi贸r interfejs贸w tworzy z kolei konfiguracj臋, kt贸rych te偶 mo偶e by膰 kilka (ale tylko jedna mo偶e by膰 aktywna). Jak wida膰 na rys. 5, klient (czyli oprogramowanie korzystaj膮ce z obs艂ugi USB oferowanej przez system operacyjny), kt贸ry dostaje do dyspozycji logiczne kana艂y komunikacji z interfejsem urz膮dzenia USB, nie musi nic "wiedzie膰" o wcze艣niej opisywanych mechanizmach wykonawczych ni偶szego poziomu. W systemie Windows oprogramowanie klienta obejmuje sterownik [driver) konkretnego urz膮dzenia (lub klasy urz膮dze艅 zbli偶onych funkcjonalnie) oraz aplikacj臋 u偶ytkownika. Sterownik -przypisany do interfejsu urz膮dzenia USB - potrafi go skonfigurowa膰 wed艂ug konkretnych mo偶liwo艣ci i potrzeb oraz odpowiednio si臋 z nim komunikowa膰. Jednocze艣nie umo偶liwia stosowanie w aplikacji u偶ytkownika typowych dla systemu funkcji wej艣cia/wyj艣cia danych. Oprogramowanie mo偶e te偶 obejmowa膰 dodatkowe biblioteki udost臋pniaj膮ce rozmaite komendy obs艂ugi oraz konfiguracji urz膮dzenia w postaci zestawu czytelnych i prostych w korzystaniu funkcji. Natomiast uniwersalny sterownik systemowy USB potrafi si臋 skomunikowa膰 z endpointem
0 dowolnego urz膮dzenia. Jest to niezb臋dne w chwili pod艂膮czenia do magistrali, kiedy system operacyjny nie ma jeszcze 偶adnych danych o do艂膮czanym urz膮dzeniu
1 potrzebuje wsp贸lnego, dok艂adnie
1OOO1OO11O
SEKWENCJA KODOWANIA DANYCH
DANE POCZ膭TKOWE
DANE
Z DODATKOWYMI BITAMI O
DANE W KODZIE NRZI
1_TL
SYNCHRONIZACJA
PAKIET DANYCH
WSTAWIONY BIT O _________ ^
_J LJ
PAKIET DANYCH ^
SYNCHRONIZACJA
6 BIT脫W 1

SYNCHRONIZACJA ^ PAKIET DANYCH w
SOP
EOP
Rys. 3. Bit stuffing
Elektronika Praktyczna 9/2002
39
Konwerter USB<->RS232
SEO
Rys. 4. Przebieg sygna艂u podczas przesy艂u pakietu danych (SOP - start of packei EOP - end of packet)
okre艣lonego mechanizmu pobrania odpowiednich informacji oraz dokonania wst臋pnej konfiguracji. Magistrala ca艂y czas kontroluje do艂膮czanie i od艂膮czanie urz膮dze艅 -mo偶emy to robi膰 w dowolnym momencie.
W wolnym porcie downstream (dane p艂yn膮ce z hosta w kierunku urz膮dze艅) huba obie linie r贸偶nicowe D+ i D- s膮 po艂膮czone z mas膮 rezystorami 15 kQ i maj膮 poziom niski (stan urz膮dzenia: nieprzy艂膮-czone). Do艂膮czany uk艂ad podaje na lini臋 D+ napi臋cie zasilania przez rezystor 1,5 kQ. W ten prosty spos贸b hub dowiaduje si臋, 偶e konkretny port ma ju偶 "klienta" i wpisuje to do swojego rejestru stanu (stan urz膮dzenia: przy艂膮czone). Hub dostarcza te偶 dla urz膮dzenia zasilanie do 100 mA (stan urz膮dzenia: zasilone) - wi臋kszy pob贸r pr膮du powoduje b艂膮d i przerwanie konfigurowania.
Komputer - host kontroluje cyklicznie stan wszystkich pod艂膮czonych hubo w. Po stwierdzeniu pod艂膮czenia urz膮dzenia rozpoczyna proces tzw. enumeracji, czyli: - Wydaje hubowi polecenie wykonania zerowania linii, polegaj膮cego na ustawieniu przez co najmniej 10 ms stanu SEO w porcie obs艂uguj膮cym nowy przyrz膮d. Urz膮dzenie w odpowiedzi na zerowanie prze艂膮cza si臋 w stan domy艣lny [default) i przyjmuje adres 0, pod kt贸rym b臋dzie widoczne dla hosta w pocz膮tkowej fazie enumeracji (tyl-
ko jedno urz膮dzenie mo偶e by膰 w stanie domy艣lnym - ka偶de nast臋pne musi poczeka膰, nie grozi wi臋c przypadkowy konflikt adres贸w).
- Host wysy艂a pod adres 0 偶膮danie przes艂ania deskryptora urz膮dzenia (bloku danych o 艣ci艣le okre艣lonym formacie opisuj膮cych konkretny przyrz膮d).
- Przyznaje kolejny wolny adres i wysy艂a do urz膮dzenia - kt贸re go zapisuje i od tego momentu b臋dzie odbiera膰 tylko pakiety z w艂a艣nie takim polem adresu (stan urz膮dzenia: zaadresowane).
- Ponawia 偶膮danie przes艂ania deskryptora urz膮dzenia - ale ju偶 z nowym adresem. Zwr贸cony de-skryptor jest por贸wnany z otrzymanym poprzednio, co pozwala skontrolowa膰 prawid艂owo艣膰 zaadresowania.
- Pobiera wszystkie dalsze de-skryptory opisuj膮ce dost臋pne w urz膮dzeniu konfiguracje, interfejsy i endpointy.
Do tej pory wykonywane by艂y operacje wsp贸lne dla wszystkich urz膮dze艅 USB. Dlatego m贸g艂 je zrealizowa膰 uniwersalny sterownik systemowy. Nie jest jednak mo偶liwe, aby zakodowa膰 w nim pe艂n膮 obs艂ug臋 urozmaiconej gamy przyrz膮d贸w. W systemie Windows rol臋 tak膮 pe艂ni sterownik urz膮dzenia [device driver), napisany specjalnie dla potrzeb konkretnego rozwi膮zania technicznego. Przejmuje on dalszy proces konfiguracji oraz zapewnia p贸藕niej-
sz膮 komunikacj臋 z urz膮dzeniem zgodnie z konkretnymi, specyficznymi potrzebami. System na podstawie danych w deskryptorze urz膮dzenia wybiera i pod艂膮cza potrzebny sterownik, 艂aduj膮c go w razie potrzeby do pami臋ci. Je艣li sterownik jeszcze nie jest zainstalowany w systemie - u偶ytkownik jest proszony o jego dostarczenie.
- Nast臋puje wys艂anie serii ostatnich polece艅 konfiguracyjnych -po ich przyj臋ciu urz膮dzenie jest gotowe do normalnej pracy (stan: skonfigurowane).
Enumeracja opiera si臋 na szeregu transfer贸w typu control wymienianych zawsze z endpointem 0. Transfery te s膮 stosunkowo skomplikowane. Sk艂adaj膮 si臋 z trzech faz:
- Faza przygotowawcza [setup). Tworzy j膮 transakcja zbudowana z pakietu SETUP, 8-bajtowe-go pakietu danych DATAO oraz potwierdzenia ACK (jak ju偶 wspomniano, urz膮dzenie musi priorytetowo obs艂u偶y膰 t臋 transakcj臋 i nie mo偶e jej odk艂ada膰 na p贸藕niej odsy艂aj膮c brak gotowo艣ci NAK). W pakiecie danych zakodowany jest rodzaj operacji, jak膮 host chce przeprowadzi膰, m.in.:
- kierunek przesy艂u informacji,
- rodzaj 偶膮dania [standard -standardowe; class - dotycz膮ce klasy urz膮dze艅, np. hu-b贸w,
- vendor - zwi膮zane z konkretnym urz膮dzeniem),
- temat 偶膮dania - precyzuje, o jak膮 informacj臋 i jak膮 reakcj臋 chodzi (np. w艣r贸d standardowych wywo艂a艅 znajd膮 si臋 Get_Status - pobranie stanu urz膮dzenia czy GetDesc-riptor - pobranie odpowiedniego opisu),
- przeznaczenie 偶膮dania (mo偶e dotyczy膰 urz膮dzenia, interfejsu lub endpointu).
- Faza wymiany danych (opcjonalnie - o ile jest taka potrzeba): odpowiednia liczba transakcji wys艂ania lub pobrania danych okre艣lonych w fazie setup.
- Faza statusu - s艂u偶y do potwierdzenia poprawnego zako艅czenia transferu. Tworzy j膮 transakcja wys艂ania lub odczytania danych z u偶yciem pakietu danych o zerowej d艂ugo艣ci.
40
Elektronika Praktyczna 9/2002
Konwerter USB<->RS232
KOMPUTER/HOST
WARSTWY PO艁膭CZE艃 LOGICZNYCH I FIZYCZNYCH
URZ膭DZENIE USB
OPROGRAMOWANIE
KLIENTA
BUFORY DANYCH
SYSTEMOWY STEROWNIK
USB
INTERFEJS MAGISTRALI USB
TRANSAKCJE
*----------------H SIE K
FAKIET RUREK
PODSTAWOWA
RURKA KONTROLNA
i
RURKA- ABSTRAKCYJNY KANA艁 LOGICZNY
LOGICZNA STRUKTURA PO艁膭CZENIA USB
Rys. 5. Logiczna struktura po艂膮czenia USB
Opis budowy interfejsu-konwertera USB<->RS232
Powy偶sze - bardzo skr贸towe -om贸wienie zasady pracy magistrali USB pozwala oceni膰 nak艂ad pracy wymagany przy przygotowaniu w艂asnego uk艂adu. Dodatkowym utrudnieniem jest niewielka dost臋pno艣膰 na rynku detalicznym odpowiednich element贸w - dostawy s膮 ukierunkowane na wielko-seryjn膮 produkcj臋 akcesori贸w komputerowych. Do tej pory w opisywanych rozwi膮zaniach amatorskich najcz臋艣ciej wyst臋powa艂 EZ-USB - mikrokontroler zgodny z rodzin膮 '51, oraz PDIUSBD11 - interfejs SIE wyposa偶ony w magistral臋 PC.
EZ-USB ma wbudowany loa-der, kt贸ry po w艂膮czeniu urz膮dzenia sam przeprowadza pierwsz膮 enumeracj臋, a nast臋pnie 艂aduje do obszaru pami臋ci kodu program pracy mikrokontrolera przesy艂any przez wsp贸艂pracuj膮cy po stronie ho sta sterownik. Po zako艅czeniu tego procesu magistrala jest zerowana i wykonywana jest ponowna enumeracja (zwana w zwi膮zku z tym przez producenta renume-
racj膮) - teraz ju偶 konfiguruj膮ca uk艂ad jako docelowe, zgodne z napisanym przez nas programem urz膮dzenie, kt贸re wsp贸艂pracuje z odpowiednim, dedykowanym sterownikiem. Takie rozwi膮zanie czyni z EZ-USB znakomite narz臋dzie do wszelkich eksperyment贸w i uruchomie艅 oraz do tworzenia wielofunkcyjnych przyrz膮d贸w.
PDIUSBD11 nie posiada mo偶liwo艣ci samodzielnego dzia艂ania -musi wsp贸艂pracowa膰 z zewn臋trznym mikroprocesorem, kt贸rego program zapewnia obs艂ug臋 poszczeg贸lnych transakcji. Komunikacja z kostk膮 odbywa si臋 za po艣rednictwem interfejsu PC, kt贸ry ma wprawdzie wysok膮 maksymaln膮 cz臋stotliwo艣膰 (do 1 MHz), ale i tak znacznie ogranicza przepustowo艣膰 oferowan膮 przez magistral臋 USB.
Generalnie (oczywi艣cie z wieloma r贸偶nicami co do szczeg贸艂贸w) oba urz膮dzenia zapewniaj膮 obs艂ug臋 USB do poziomu interfejsu SIE (rys. 1). Funkcje kontrolera protoko艂u (czyli obs艂uga transfer贸w i transakcji, odpowiednia tre艣膰 de-skryptor贸w, przeprowadzenie enu-
meracji itd.) musz膮 by膰 zawarte w naszym programie. Nawet najprostszy demonstracyjny przyrz膮-dzik jest w zwi膮zku z tym wyposa偶ony w dosy膰 obszerny blok kodu realizuj膮cego komunikacj臋 USB, co bynajmniej nie u艂atwia uruchomienia w艂asnych projekt贸w. Jest to k艂opotem, zw艂aszcza gdy nie zale偶y nam specjalnie na zg艂臋bianiu tajnik贸w USB, a chcemy po prostu mie膰 port komunikacyjny do szybkiej wymiany danych z w艂asn膮 aplikacj膮 uruchomion膮 na PC.
Drug膮 g艂贸wn膮 barier膮 w takiej sytuacji jest konieczno艣膰 napisania w艂asnego sterownika WDM -przedsi臋wzi臋cie znacznie odbiegaj膮ce od zakresu dzia艂alno艣ci elek-tronika-amatora, a przy tym niemo偶liwe do wykonania za pomoc膮 popularnych 艣rodowisk RAD, jak np. Delphi. Oczywi艣cie na rynku obecne s膮 odpowiednie narz臋dzia, ale nie jest to oferta dla hobbyst贸w - wystarczy przejrze膰 cenniki. Uproszczonym wyj艣ciem jest ograniczenie si臋 do jednej z klas urz膮dze艅 obs艂ugiwanych samodzielnie przez system operacyjny, zazwyczaj jednak wyposa偶onych w dosy膰 skromne mo偶liwo艣ci. Jedn膮 z takich klas jest np. HID [human interface devices) - peryferie komputera obs艂ugiwane przez u偶ytkownika (mysz, klawiatura), kt贸rym wystarczaj膮 kr贸tkie transfery typu interrupt do przekazania od czasu do czasu niewielkich liczby danych.
Pojawienie si臋 oferty firmy FTDI, a zw艂aszcza uk艂ad贸w FT8U232 i FT8U245 przedstawianych ju偶 na 艂amach EP, radykalnie zredukowa艂o wymienione powy偶ej trudno艣ci. Dostajemy do dyspozycji zawarte w pojedynczych kostkach kompletne urz膮dzenia USB i mo偶emy w naszych projektach korzysta膰 bezpo艣rednio z ich interfejs贸w we/wy, wcale nie zajmuj膮c si臋 operacjami ni偶szego poziomu. FT8U232 zapewnia interfejs zgodny z protoko艂em RS232, natomiast FT8U245 udost臋pnia bufor FIFO przeznaczony do szybkiego 8-bitowego r贸wnoleg艂ego zapisu i odczytu. Na rys. 6 pokazano schemat blokowy FT8U232 - 艂atwo mo偶emy zidentyfikowa膰 zespo艂y og贸lnie opisane na rys. 1, wiedz膮c teraz dok艂adnie do czego s艂u偶膮.
Elektronika Praktyczna 9/2002
41
Konwerter USB<->RS232
RCCLK KWARC
D+ D-
3V3
OSCYLATOR 6MHz
DPLL
POWIELACZ 8x
TRANSCEIVER
SYGNA艁U -H R脫呕NICOWEGO
12MHZ 46MHZ
STABILIZATOR 3.3V
SIE
PODW脫JNY
BUFOR
WYJ艢CIOWY
384 B
EEDATA
EESK
EECS
KONTROLER PROTOKO艁U
USB
PODW脫JNY
BUFOR
WYJ艢CIOWY
128B
KONTROLER
BUFOR脫W
FIFO
> PWRCTL SLEEP
48MHz
UART
TXLED TXDEN RXLED USBEN
LINIE WE/WY RS232C
ii
uj m
UJ N <3
Rys. 6. Schemat blokowy uk艂adu FT8U232
Dodatkowego wyja艣nienia wymaga obecno艣膰 kontrolera pami臋ci EEPROM. FT8U232 ma wpisany na sta艂e domy艣lny, jednakowy w ka偶dej kostce deskryptor urz膮dzenia z danymi identyfikacyjnymi FTDI (VID, PID, nazwa). Je艣li chcemy u偶y膰 we w艂asnym urz膮dzeniu indywidualnych da-
nych - mo偶emy je za艂adowa膰 do zewn臋trznej pami臋ci 93C46. Gdy uk艂ad wykryje obecno艣膰 odpowiednio zapisanej pami臋ci, zast臋puje jej tre艣ci膮 odpowiednie pozycje deskryptora.
Wymiana danych pomi臋dzy aplikacj膮 PC a modu艂em UART odbywa si臋 za pomoc膮 transfer贸w
typu bulk. Du偶a pojemno艣膰 bufor贸w po艣rednicz膮cych zabezpiecza przed ewentualn膮 utrat膮 danych.
Modu艂 DPLL odpowiada za opisywan膮 wcze艣niej synchronizacj臋 w艂asnego oscylatora z przebiegiem sygna艂u w parze r贸偶nicowej D+ D-.
Zauwa偶my, 偶e - przynajmniej je艣li chodzi o FT8U232 - uk艂ady nie s膮 wielk膮 nowo艣ci膮. Podobne od dawna stosuje si臋 w popularnych akcesoriach komputerowych (np. kostki firmy Proli-fic u偶ywane w konwerterach USB-RS232C).
Natomiast rewelacyjn膮 zmian膮 jest szeroki zakres wsparcia otrzymywanego od FTDI nie tylko przez producent贸w sprz臋tu, ale tak偶e przez indywidualnego u偶ytkownika - amatora. Bezp艂atne sterowniki (dla wszystkich popularnych system贸w operacyjnych, w tym Linuxa), przyk艂adowe projekty i schematy, wzorcowe programy dla popularnych 艣rodowisk programistycznych (np. Delphi), uniwersalne, 艂atwe w monta偶u modu艂y, dost臋pno艣膰 kostek w sprzeda偶y detalicznej, obszerne opisy dost臋pne bezpo艣rednio na stronie WWW producenta - to wszystko pozwala na szybkie i sprawne wyposa偶enie w艂asnych urz膮dze艅 w port komunikacji USB. Jerzy Szczesiul, AVT jerzy.szczesiul@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdflwrzesienO2.htm.
42
Elektronika Praktyczna 9/2002
PROJEKTY
Sterownik nap臋du CD-ROM, cz臋艣膰 2
AVT-5078
W drugiej cz臋艣ci a艅ykuiu
przedstawiamy informacje,
kt贸re przydadz膮 si臋 tym
spo艣r贸d Czytelnik贸w, kt贸rzy
zamierzaj膮 dok艂adnie pozna膰
spos贸b sterowania nap臋dami
CD-ROM oraz dyskami
twardymi- Zawarte w artykule
informacje s膮 w znacznym
stopniu powt贸rzeniem tych
opublikowanych w EP6/02,
ale uwa偶amy, 偶e ich
"nadmiar" z pewno艣ci膮 nie
zaszkodzi.
Oprogramowanie interfejsu ATA
Jak wspomnia艂em w pierwszej cz臋艣ci artyku艂u, do sterowania dyskiem twardych wykorzystuje si臋 9 rejestr贸w, kt贸rych wykaz zawarto w tab. 2.
Rejestr danych
Jest to dwukierunkowy rejestr s艂u偶膮cy do wysy艂ania i odbierania danych. Jest uniwersalny, wi臋c jego zastosowanie 艣ci艣le zale偶y od operacji, jak膮 wykonujemy.
Rejestr b艂臋d贸w
7 6 5 4 3 2 10
Tab. 2.
!CS0 !CS1 Adres Odczyt Zapis
Rejestr kontrolny
0 1 6 Alternatywny rejestr statusu Rejestr kontroli nap臋du
Rejestry Immpnr艂 i 艅anyr.h
1 0 0 Rejestr danych Rejestr danych
1 0 1 Rejestr b艂臋d贸w Rejestr dodatkowych opcji
1 0 2 Licznik sektor贸w Licznik sektor贸w
1 0 3 Numer sektora/LBA (7 0) Numer sektora/LBA (7 0)
1 0 4 Numer cylindra (7 0)/LBA(15 8) Numer cylindra (7 0)/LBA(15 8)
1 0 5 Numer cylindra (15 8)/LBA(23 16) Numer cylindra (15 8)/LBA(23 16)
1 0 6 Numer glowicy/wyb贸r nap臋du/ LBA(27 24) Numer glowicy/wyb贸r nap臋du/ LBA(27 24)
1 0 7 Rejestr statusu Rejestr komend
Liczby w nawiasach oznaczaj膮 zakresy bit贸w.
Znaczenie bit贸w: UNC: {Uncorrectable Data Error) - nienaprawial-ny b艂膮d danych,
- IDNF [ID Not Found) - nie znaleziono sektora,
- ABRT (Aborted) - nie wykonano komendy.
Pozosta艂e bity tak偶e posiadaj膮 znaczenie, ale s膮 charakterystyczne dla nap臋d贸w z wymiennym no艣nikiem, w zwi膮zku z czym nie b臋d膮 tu omawiane.
Licznik sektor贸w
Domy艣lnie za jego pomoc膮 mo偶emy zdecydowa膰, ile sektor贸w nap臋d ma odczyta膰 lub zapisa膰. Niekt贸re komendy wykorzystuj膮 go tak偶e do innych cel贸w.
Numer sektora
Zale偶nie od trybu adresowania s艂u偶y do ustawienia numeru sektora, jaki chcemy odczyta膰 lub pierwszych 8 bajt贸w adresu LBA.
Numer cylindra Lo oraz Hi
To samo co przy sektorach, ale okre艣lamy numer cylindra lub nast臋pne 16 bit贸w adresu LBA.
Numer g艂owicy
7 6 5 4 3 2 10
1 LBA 1 Dff Num玶glowicy/IBA(2723)
Bity oznaczone "1" powinny by膰 zawsze ustawione na logiczn膮 "1". Za pomoc膮 bitu LBA wybieramy spos贸b adresowania, o kt贸rym p贸藕niej.
Bit DEV s艂u偶y do wyboru nap臋du:
O = MASTER
1= SLAVE
Po zapisie bitu urz膮dzenie wybrane reaguje na wszystkie komendy i operacje 10, a drugie staje si臋 "niewidzialne" dop贸ki go nie uaktywnimy.
M艂odsze 4 bity zawieraj膮 numer g艂owicy lub pozosta艂e 4 bity adresu LBA.
Elektronika Praktyczna 9/2002
43
Sterownik nap臋du CD-ROM

Sprawd藕 czy BSY = 0 oraz DRDY = 1


Zapisz wszystkie potrzebne informacje do rejestr贸w. Zapisz komend臋.


Czekaj a偶 BSY = 0 i DRQ = 1 J

J
Dokonaj serii zapis贸w lub odczyt贸w z rejestru danych Je艣li DRQ = 0 to nie ma wi臋cej danych do odczytu / zapisu.

Je偶eli dokonywali艣my zapisu musimy zaczeka膰 a偶 BSY = 0
Rys. 4. Algorytm dost臋pu do rejestr贸w kontrolera nap臋du
Rejestr polece艅
Jest to rejestr tylko do zapisu. Po wpisaniu do niego kodu komendy kontroler natychmiast przyst臋puje do jej wykonywania.
Rejestr statusu
7 6 5 4 3 2 10 BSy DRDY - DSC DRQ - - {RR
- BSY: jak sama nazwa wskazuje, sygnalizuje on zaj臋to艣膰 kontrolera. Nap臋d ustawia t臋 flag臋 gdy wykonuje komend臋 lub po zerowaniu, aby zasygnalizowa膰 brak gotowo艣ci.
- DRDY: wskazuje na gotowo艣膰 nap臋du.
- DSC: wskazuje, 偶e g艂owica znajduje si臋 nad 偶膮dan膮 艣cie偶k膮.
- DRQ: flaga informuje, 偶e nap臋d jest gotowy do rozpocz臋cia zapisu lub odczytu danych.
- ERR: wskazuje na b艂膮d i w takich wypadku wypada艂oby odczyta膰 rejestr b艂臋du, aby dowiedzie膰 si臋 o szczeg贸艂y.
Rejestr kontroli
7 6 5 4 3 2 10
- SRST: programowe zerowanie kontrolera.
- -INTEN: s艂u偶y do w艂膮czenia/ wy艂膮czenia generacji przerwania.
Przyk艂adowy algorytm wykonania komendy przedstawiono na rys. 4. Przesy艂anie danych w trybie PIO odbywa si臋 poprzez kolejne odczyty lub zapisy rejestru danych. Zawsze pierwszy bajt znajduje si臋 w m艂odszej cz臋艣ci odczytanego s艂owa.
Adresowanie
Obecnie stosuje si臋 dwa sposoby adresowania sektor贸w na dysku twardym. W obu przypadkach rozmiar sektora wynosi 512 bajt贸w.
CHS
System ten jest domy艣lny we wszystkich nap臋dach i kompatybilny wstecz. Skr贸t pochodzi od Cylinder Head Sector. Aby zaadresowa膰 sektor w tym systemie, musimy poda膰 numer sektora, numer cylindra oraz numer g艂owicy. Liczba sektor贸w na 艣cie偶k臋, liczba g艂owic (艣cie偶ek) na cylinder oraz liczba cylindr贸w s膮 r贸偶ne dla r贸偶nych nap臋d贸w. Dla sektor贸w zakres ten wynosi 1... 25 5, dla g艂owic 0...15, a dla cylindr贸w 0...65535. Za pomoc膮 nast臋puj膮cego wzoru mo偶emy obliczy膰 adres LBA:
LBA = (((cylinder * liczba g艂owic) + g艂owica) * liczba sektor贸w na g艂owic臋) + sektor - 1
Potrzebne do tego informacje mo偶na zdoby膰 za pomoc膮 polecenia Identify Device, kt贸r膮 om贸wimy p贸藕niej. Taki system jest raczej niewygodny, wi臋c powsta艂 nowy system adresowania:
LBA
Jest to akronim od Logical B艂ock Adressing. System jest niesamowicie prosty - do zaadresowania sektora u偶ywa si臋 jednej 28-bitowej liczby. Policzmy: 22B = 2 6843 545 6, 268435456 * 512 (bajt贸w w sektorze) = 137438953472, co daje: 137438953472/1024/1024 = 131072 MB, czyli mo偶emy zaadresowa膰 130GB danych - wydaje si臋 to du偶o, ale bior膮c pod uwag臋 to, 偶e dzi艣 produkuje si臋 ju偶 dyski o takiej pojemno艣ci, producenci b臋d膮 musieli nied艂ugo wymy艣li膰 co艣 nowego.
Polecenia
Kontrolery dysk贸w twardych maj膮 ich sporo, ale my zajmiemy si臋 tylko czterema najwa偶niejszymi. Reszta polece艅 to g艂贸wnie odmiany tych najwa偶niejszych, komendy do obs艂ugi hase艂 dost臋pu, tryb贸w zasilania itp.
Standby Rejestr 7 6 5 4 3 2 10
1 -
2 -
3 -
4 -
5 -
6 1 - 1 MV - - - -
7 94h lub 艁Oh
Polecenie to s艂u偶y do wprowadzenia nap臋du w tryb standby, czyli obni偶onego poboru mocy, kt贸ry jest uzyskiwany poprzez zatrzymanie talerzy i u艣pienie nap臋du a偶 do czasu pr贸by dost臋pu do danych.
Read sector Rejestr 7 6 5 4 3 2 10
1 -
2 liczba sektor贸w do odczytania
3 numer sektora lub LBA
4 numer cylindra lub LBA
5 numer cylindra lub LBA
6 1 LBA 1 MV numer g艂owicy lub LBA
7 21 h lub 20h (z powt贸rzeniami)
Jest to najbardziej interesuj膮ce dla nas polecenie. Pozwala na odczyt maksymalnie 256 sektor贸w. Je艣li warto艣膰 rejestru 2 wynosi zero, wtedy tak偶e dostaniemy 256 sektor贸w. Rejestry 3...6 zawieraj膮 adres pocz膮tkowego sektora. Je艣li bit LBA = 1, wtedy stosujemy adresowanie LBA. Gdy LBA = 0 - CHS. Po wydaniu komendy trzeba zaczeka膰 a偶 kontroler nap臋du wyzeruje flag臋 BSY i ustawi DRQ. Komenda posiada dwie odmiany - wersja z powt贸rzeniami nakazuje nap臋dowi w przypadku natrafienia na uszkodzony sektor pr贸bowa膰 odczyta膰 go ponownie. Liczba pr贸b jest nieokre艣lona i specyficzna dla r贸偶nych nap臋d贸w.
Write sector Rejestr 7 6 5 4 3 2 10
1 -
2 liczba sektor贸w do zapisania
3 numer sektora lub LBA
4 numer cylindra lub LBA
5 numer cylindra lub LBA
6 1 LBA 1 MV numer g艂owicy lub LBA
7 31 h lub 30h (z powt贸rzeniami)
Tab. 3.
Nr s艂owa Opis
0 bit 15 0 = ATA, 1 = ATAPI
1 Liczba cylindr贸w
3 Liczba g艂owic
6 Liczba sektor贸w na 艣cie偶k臋 (g艂owic臋)
10...19 Numer seryjny (20 znak贸w ASCII)
23...26 Wersja oprogramowania (8 znak贸w ASCII)
27...46 Nazwa urz膮dzenia (40 znak贸w ASCII)
57...58 Pojemno艣膰 wyra偶ona w sektorach
60...61 Ca艂kowita liczba mo偶liwych do zaadresowania sektor贸w (tryb LBA)
44
Elektronika Praktyczna 9/2002
Sterownik nap臋du CD-ROM
Zasada dzia艂ania jest identyczna jak w przypadku Read Sector, ale oczywi艣cie dane zapisujemy. Po przes艂aniu wszystkich danych do nap臋du musimy zaczeka膰 a偶 kontroler nap臋du wyzeruje flag臋 BSY.
Identify Device Rejestr 7 6 5 4 3 2 10
7 Device
Polecenie s艂u偶y do odczytu informacji o nap臋dzie. Po jej wydaniu otrzymujemy 256 s艂贸w, z kt贸rych wi臋kszo艣膰 nie jest wykorzystywana. W tab. 3 znajduje si臋 zestawienie najwa偶niejszych i najbardziej po偶ytecznych.
To s膮 w zasadzie wszystkie informacje, jakich potrzebujemy, aby operowa膰 na danych z dysku twardego. Za miesi膮c zajmiemy si臋 om贸wieniem interfejsu ATAPI. Micha艂 Wysocki mwsoft@satkabel.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdflwrze sie艅 O2.htm.
Elektronika Praktyczna 9/2002
45
PROJEKTY
Bezprzewodowy sterownik w臋偶a 艣wietlnego, cz臋艣膰 2
AVT-5077
Drug膮 cz臋艣膰 artyku艂u
po艣wi臋camy przybli偶eniu
obs艂ugi sterownika
bezprzewodowego w臋偶a
艣wietlnego, kt贸ra - mimo
z艂o偶ono艣ci menu
zaprojektowanego przez autora
(co jest konsekwencj膮 sporej
elastyczno艣ci i rozbudowanych
mo偶liwo艣ci konfiguracyjnych
sterownika) - nie sprawi zbyt
du偶ych trudno艣ci podczas
eksploatacji.
Rekomendacje: idealne
urz膮dzenie dla dekorator贸w
wystaw sklepowych,
organizator贸w dyskotek
(zw艂aszcza w wynajmowanych
pomieszczeniach), projektant贸w
reklam 艣wietlnych.
Programowanie i obs艂uga
Sterownik w臋偶a 艣wietlnego umo偶liwia zapisanie maksymalnie 100 program贸w 艣wietlnych, ka偶dy program mo偶e si臋 sk艂ada膰 z 80 krok贸w. Istnieje mo偶liwo艣膰 utworzenia o艣miu makioprogram贸w, ka偶dy makioprogram mo偶e zawiera膰 w sobie do o艣miu podstawowych program贸w. Pr臋dko艣膰 odtwarzania zapisanych sekwencji mo偶e by膰 zmieniana w zakresie od 0,1 s do 25 s z rozdzielczo艣ci膮 0,1 s. Algorytm pracy procesora jest przedstawiony na rys. 5.
Oprogramowanie sterownika sk艂ada si臋 z czterech g艂贸wnych pod-program贸w, poni偶ej jest przedstawiony opis oraz spos贸b programowania wybranych funkcji (numery odnosz膮 si臋 do miejsc pracy procesora przedstawionych na rys. 5):
1. Uruchomienie pracy demonstracyjnej umo偶liwiaj膮cej test dzia艂ania obydwu modu艂贸w oraz komunikacji mi臋dzy nimi.
Po w艂膮czeniu zasilania znajdujemy si臋 w miejscu oznaczonym jako "1" i zostaniemy poproszeni o wybranie programu. W tym miejscu mo偶emy wybra膰 jeden z o艣miu makioprogram贸w, lecz przy pierwszym uruchomieniu 偶aden program nie jest jeszcze zapisany w pami臋ci EEPROM, dlatego przechodzimy do trybu "DEMO". Tryb ten jest przyk艂adowym programem umo偶liwiaj膮cym testowanie sterownika i uk艂adu wykonawczego. Aby sprawdzi膰 komunikacj臋 pomi臋dzy obydwoma modu艂ami, do modu艂u wykonawczego do艂膮czamy napi臋cie zasilaj膮ce 220V, do z艂膮czy CON2...CON9 nie musimy
Elektronika Praktyczna 9/2002
47
Bezprzewodowy sterownik w臋偶a 艣wietlnego
jeszcze do艂膮cza膰 odbiornik贸w, gdy偶 wszystkie sekwencje 艣wietlne b臋d膮 widoczne na diodach 艣wiec膮cych D1...D8 umieszczonych zar贸wno na p艂ytce nadajnika, jak i odbiornika.
Sterownik wprowadzamy w tryb pracy "DEMO", w tym celu naciskamy przycisk "OK" i znajdujemy si臋 w opcjach wyboru (punkt "2"), klawiszami "UP" i "DOWN" poruszamy si臋 po menu.
Wybieramy opcje "DEMO" i zatwierdzamy klawiszem "OK" (numer "3" na schemacie algorytmu). Na wy艣wietlaczu pojawia si臋 napis "DEMO". Przyk艂adowa sekwencja powoduje kolejne przesuwanie si臋 jednej diody, poczynaj膮c od diody Dl (tzw. efekt biegaj膮cego 艣wiat艂a). Odpowiednie diody powinny by膰 zapalane w module nadajnika oraz module wykonawczym. Procedura ta pozwala na sprawdzenie 艂膮czno艣ci pomi臋dzy obydwoma modu艂ami, w celu otrzymania optymalnego zasi臋gu mo偶na zmienia膰 warto艣膰 kondensatora stanowi膮cego obw贸d generatora RC dla uk艂ad贸w UM3758-108A, odpowiednio w nadajniku C7 i w odbiorniku C5. Procedura "DEMO" b臋dzie wykonywana do momentu naci艣ni臋cia klawisza "ESC".
Je偶eli procedura uruchomienia modu艂贸w przebieg艂a pomy艣lnie, przechodzimy do programowania w艂asnych sekwencji 艣wietlnych naciskamy klawisz "ESC" i ponownie znajdujemy si臋 w miejscu, gdzie mo偶emy wybra膰 parametr, kt贸ry chcemy zmieni膰 (punkt "2").
2. Programowanie w艂asnych s ekwen ej i 艣 wie tlnych
Po przeprowadzeniu pr贸b z przyk艂adowym programem przechodzimy do programowania w艂asnych program贸w. W tym celu klawiszami "UP" lub "DOWN" wybieramy teraz opcje "Programowanie" i zatwierdzamy klawiszem "OK". Po tej czynno艣ci znajdujemy si臋 w punkcie "4". Na wy艣wietlaczu pojawi si臋 napis "Programowanie", a poni偶ej "Program nr 1". Klawiszami "UP" lub "DOWN" wybieramy numer programu, kt贸ry chcemy zapisa膰 w pami臋ci. W dowolnej chwili mo偶emy wyj艣膰 z trybu programowania, naciskaj膮c klawisz "ESC". Je偶eli jednak chcemy kontynuowa膰 programowanie, wybieramy
numer programu i zatwierdzamy klawiszem "OK". Przechodzimy do programowania poszczeg贸lnych krok贸w (sekwencji) naszego programu (punkt "5" na schemacie).
Na wy艣wietlaczu pojawi si臋 napis "Program= 1" (dla pierwszego programu), w drugiej linii wy艣wietlacza b臋dzie widoczny napis "Krok=l". Oznacza to, 偶e programujemy sekwencje 艣wietlne dla pierwszego programu oraz dla kroku pierwszego. Numer kroku mo偶e by膰 zmieniany klawiszami "UP" lub "DOWN", po wybraniu odpowiedniego kroku klawiszami S1...S8 ustawiamy warto艣膰 danego kroku. Naci艣ni臋cie klawisza z grupy S1...S8 powoduje zmian臋 stanu odpowiedniego wyprowadzenia portu RB, a co za tym idzie r贸wnie偶 zapalanie lub gaszenie diod do艂膮czonych do tego portu. Klawisz Sl zmienia stan diody Dl, a S8 diody D8. Kolejne naciskanie jednego klawisza powoduje naprzemienne zapalanie i gaszenie odpowiedniej diody. W czasie programowania stany poszczeg贸lnych diod s膮 zmieniane tylko w module sterownika, modu艂 wykonawczy jest w tym czasie nieaktywny.
Je艣li ustawimy wybrany przez nas stan, zatwierdzamy go przyciskiem "OK" - na wy艣wietlaczu pojawi si臋 komunikat "Zapisane". Nast臋pnie automatycznie powracamy do wyboru kroku zapisywanego programu (numer "5"), numer kroku zostaje automatycznie zwi臋kszony o jeden; je偶eli poprzedni krok mia艂 numer "1", to po zapisaniu klawiszem "OK", automatycznie przechodzimy do programowania kroku drugiego. Na wy艣wietlaczu mamy teraz napis "Program=l", "Krok=2". Po zapisie kolejnego kroku jego warto艣膰 jest automatycznie zwi臋kszana, ale my r贸wnie偶 mo偶emy r臋cznie wybra膰 numer kroku przy pomocy klawiszy "UP" i "DOWN". Maksymalna liczba krok贸w dla jednego programu wynosi 80.
Po zapisaniu osiemdziesi膮tego kroku na wy艣wietlaczu pojawi si臋 komunikat "Maksymalna ilo艣膰 krok贸w". I nast膮pi automatyczne przej艣cie do mo偶liwo艣ci zapisu kolejnego programu (numer "4"). Nie ma jednak konieczno艣ci zapisywania wszystkich osiemdziesi臋ciu krok贸w programu, w dowolnej chwili mo偶emy zako艅czy膰
wpisywany program. Je偶eli na przyk艂ad nasz program ma si臋 sk艂ada膰 z dziesi臋ciu krok贸w, to po zapisaniu tego kroku klawiszem "OK", naciskamy przycisk "ESC", w ten spos贸b liczba krok贸w zostanie zapisana w pami臋ci i w czasie odtwarzania b臋dzie odczytywanych tylko dziesi臋膰 krok贸w. Znajdujemy si臋 teraz w punkcie "4" i mo偶emy rozpocz膮膰 zapis kolejnego programu. Procedur臋 t臋 nale偶y powt贸rzy膰 tyle razy, ile chcemy posiada膰 program贸w. Po zapisaniu wybranej liczby program贸w przechodzimy do ich odtwarzania, w tym celu naciskamy "ESC" i znajdujemy si臋 ponownie w menu wyboru opcji (punkt "2").
3. Odtwarzanie zapisanych program贸w
W trybie wyboru opcji klawiszem "UP" lub "DOWN" wybieramy menu " Wyb贸r programu" i zatwierdzamy klawiszem "OK". Na wy艣wietlaczu pojawi si臋 napis w pierwszej linii "Wyb贸r programu", a w drugiej "Program=l" (punkt "6" na grafie). W dowolnej chwili mo偶emy wyj艣膰 z wyboru programu, naciskaj膮c klawisz "ESC" (nast臋puje powr贸t do punktu "2"). My jednak postanowili艣my wybra膰 program, dlatego klawiszami "UP" lub "DOWN" wybieramy numer programu i zatwierdzamy klawiszem "OK", po naci艣ni臋ciu klawisza "OK" nast膮pi natychmiastowe wykonywanie zaprogramowanego programu. R贸wnie偶 modu艂 wykonawczy zostaje uaktywniony, za艂膮czaj膮c napi臋cie 220V na wyj艣ciach CON2...CON9.
Aby zmieni膰 wykonywany program, ponownie ustawiamy jego numer za pomoc膮 klawiszy "UP" i "DOWN" i zatwierdzamy wyb贸r klawiszem "OK". Je艣li znale藕li艣my szukany program, wychodzimy do procedury g艂贸wnej, naciskaj膮c dwa razy klawisz "ESC" (numer "1"). Na wy艣wietlaczu zostanie przedstawiony numer wykonywanego programu oraz w drugiej linii pr臋dko艣膰 jego odtwarzania. Pr臋dko艣膰 odtwarzania sekwencji jest podawana w sekundach i mo偶e by膰 zmieniana w zakresie od 100 ms do 25 s, z krokiem 100 ms. Po w艂膮czeniu sterownika pr臋dko艣膰 zmian wynosi 1 s, czyli cz臋stotliwo艣膰 jest r贸wna 1 Hz. Pr臋dko艣膰 t臋 mo偶na zwi臋ksza膰 za pomoc膮 klawisza
48
Elektronika Praktyczna 9/2002
Bezprzewodowy sterownik w臋偶a 艣wietlnego
Rys. 5. Algorytm dzia艂ania mikrokontrolera
"DOWN" oraz zmniejsza膰 klawiszem "UP".
Odwrotne znaczenie klawiszy "UP" i "DOWN" jest podyktowane tym, 偶e zmieniaj膮c pr臋dko艣膰, tak na prawd臋 zmieniamy czas pomi臋dzy kolejnymi krokami programu.
Odtwarzanie mo偶na r贸wnie偶 w dowolnej chwili zatrzyma膰, na-
ciskaj膮c klawisz "ESC". Na drugiej linii wy艣wietlacza pojawi si臋 napis "STOP", ponowne naci艣ni臋cie tego klawisza spowoduje start wykonywanego wcze艣niej programu. Gdy odtwarzanie zostanie zatrzymane, zostaj膮 r贸wnie偶 wygaszone wszystkie diody w sterowniku i uk艂adzie wykonawczym. Ponowne uruchomienie odtwarza-
nia powoduje start od pierwszego kroku odtwarzanego programu.
4. Programowanie makropro-gram贸w
Opisana wcze艣niej procedura odtwarzania program贸w umo偶liwia wyb贸r dowolnego programu, lecz raz wybrany program b臋dzie odtwarzany bez przerwy. Aby wy艣wietli膰 inny program, nale偶y r臋cznie wybra膰 go w procedurze wyboru program贸w. Procedura tworzenia makroprogram 贸w umo偶liwia utworzenie o艣miu takich program贸w, w ka偶dym makroprogramie mo偶e zawiera膰 si臋 maksymalnie osiem program贸w podstawowych.
Umo偶liwia to 艂膮czenia kilku podstawowych program贸w w jeden du偶y program lub utworzenie ulubionych program贸w, do kt贸rych mamy bezpo艣redni dost臋p, bez wchodzenia w menu wyboru programu.
Po wyj艣ciu z procedury wyboru programu om贸wionej w punkcie wyboru zapisanych program贸w znajdujemy si臋 w punkcie "1" grafu pracy procesora. Aby przej艣膰 do tworzenia makroprogram贸w, naciskamy klawisz "OK", nast臋pnie klawiszem "UP" lub "DOWN" wybieramy menu "Makro" i zatwierdzamy klawiszem "OK". Na wy艣wietlaczu pojawi si臋 napis w pierwszej linii "Wybierz numer", a w drugiej " 2_3_4_5_6_7_8", puste miejsce na pierwszej pozycji drugiej linii wskazuje wybrany domy艣lnie pierwszy makroprogram (numer "7" na grafie). Chc膮c zmieni膰 numer makroprogramu, naciskamy jeden z klawiszy S1...S8. Numer wybranego makroprogramu zostanie wygaszony, na przyk艂ad, gdy naci艣niemy klawisz S3, to na drugiej linii wy艣wietlacza otrzymamy "1_2_ _4_5_6_7_8". My tworzymy pierwszy makropogram, dlatego naciskamy klawisz Sl i potwierdzamy wyb贸r klawiszem "OK" (numer "8" na grafie). Na wy艣wietlaczu pojawi si臋 napis "Makro nr 1", w drugiej linii "Poz 1 Pr贸g. 0".
Pierwsza linia wy艣wietlacza informuje, kt贸ry makroprogram jest aktualnie tworzony, w drugiej linii "Poz 1" oznacza pozycje podstawowego programu w tworzonym makroprogramie, napis "Pr贸g. 0" wskazuje numer programu, kt贸ry zostanie umieszczony na podanej wcze艣niej pozycji.
Elektronika Praktyczna 9/2002
49
Bezprzewodowy sterownik w臋偶a 艣wietlnego
Klawiszami S1...S8 wybieramy pozycje programu podstawowego, a klawiszami "UP" i "DOWN" numer tego programu. Przyk艂adowo chcemy wybra膰 program nr 3 dla pozycji pierwszej. W tym celu naciskamy klawisz Sl, a klawiszami "UP" lub "DOWN" wybieramy numer programu r贸wny 3. Klawiszem "OK" zatwierdzamy. Po tych operacjach na pierwszej pozycji makroprogramu zosta艂 umieszczony trzeci program podstawowy. Po zatwierdzeniu pojawi si臋 napis "Zapisane", a nast臋pnie poprzednie wskazanie, z t膮 r贸偶nic膮, 偶e pozycja "Poz" zostanie zwi臋kszona o jeden, sugeruj膮c zapis programu na drugiej pozycji; oczywi艣cie numer ten mo偶na zmieni膰 klawiszami S1...S8.
Je艣li nasz makroprogram b臋dzie si臋 sk艂ada艂 z o艣miu podstawowych program贸w, powy偶sz膮 czynno艣膰 nale偶y powt贸rzy膰 o艣miokrotnie. Jednak nic nie stoi na przeszkodzie, aby makroprogram sk艂ada艂 si臋 na przyk艂ad z czterech program贸w podstawowych. Aby zapro-
gramowa膰 tylko cztery programy podstawowe, na pozycjach od 1 do 4 zapisujemy wybrane programy podstawowe, a nast臋pnie ustawiamy pozycj臋 "Poz 5", a jako numer programu podstawowego wybieramy "0". Wpis ten informuje procedur臋 odtwarzaj膮c膮 makroprogra-my, 偶e dane makro sk艂ada si臋 tylko z czterech program贸w podstawowych. Je偶eli nie b臋dziemy programowa膰 wszystkich makro-program贸w, na przyk艂ad tylko pi臋膰, w pozosta艂ych na pozycji pierwszej nale偶y zapisa膰 program "0". Po utworzeniu makroprogram 贸w przechodzimy do ich odtwarzania, naciskaj膮c dwukrotnie klawisz "ESC". Znajdujemy si臋 ponownie w p臋tli g艂贸wnej programu (punkt "1"); teraz chc膮c wybra膰 makroprogram, naciskamy jeden z klawiszy S1...S8 (numer "9"). Po tym wyborze na wy艣wietlaczu b臋dzie widoczny nast臋puj膮cy napis: "Pro-gram=l M=l" (je艣li nacisn臋li艣my klawisz Sl), druga linia "Tempo= l.Os." i nast膮pi kolejne wykonywanie program贸w podstawowych za-
wartych w pierwszym makropro-gramie. Napis: "M= " w pierwszej linii wy艣wietlacza informuje, kt贸ry makroprogram jest wykonywany. Dla makroprogram贸w, w kt贸rych nie zosta艂y zapisane 偶adne programy podstawowe, warto艣膰 wy艣wietlanego programu b臋dzie r贸wna "0" i wszystkie diody b臋d膮 wygaszone, a procesor b臋dzie oczekiwa艂 na wybranie innego makroprogramu. 5. Obs艂uga w臋偶a 艣wietlnego Je偶eli znajdujemy si臋 w g艂贸wnej p臋tli programu, czyli po w艂膮czeniu zasilania, to klawiszami S1...S8 wybieramy makroprogram, klawiszami "UP" i "DOWN zmieniamy pr臋dko艣膰 odtwarzania, klawiszem "ESC" mo偶emy wstrzyma膰 odtwarzanie, a klawiszem "OK" przechodzimy do wyboru funkcji lub zmiany parametr贸w. Krzysztof P艂awsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w 艂nternecie pod adresem: http://www.ep.com.pl/ ?pdflwrzesienO2.htm.
50
Elektronika Praktyczna 9/2002
SPRZ臉T
Koniec k艂opot贸w z USB w popularnych aplikacjach
UMERSAL BEKA艁 BUS
Tematyka USB, poza rzadkimi przypadkami jak karta d藕wi臋kowa na uk艂adzie DS4201 (EP3/99), czy hub USB (EP10/99), praktycznie nie go艣ci艂a na naszych 艂amach.
Przyczyna naszego pos t臋p o w ani a w zaskakuj膮cy spos贸b zanik艂a i dlatego ju偶 od tego numeru rozp o czyn a my mikrokon troi ero wy "marsz na USB".
Uniwersalne interfejsy USB firmy Mlii
K艂opoty z implementacj膮 interfejs贸w USB w systemach mikroprocesorowych wynikaj膮 z dw贸ch zasadniczych powod贸w:
- konieczno艣ci zastosowania specjalnego interfejsu sprz臋towego przystosowanego do wymiany danych po magistrali USB, kt贸ry aazwyczaj wymaga silnego wsparcia programowego i - co gorsza - g艂臋bokiego wnikni臋cia w spos贸b interfejsu dzia艂ania USB,
- konieczno艣ci przygotowania odpowiednich sterownik贸w dla systemu operacyjnego, co w przypadku Windows wymaga ogromnej wiedzy i do艣wiadczenia lub r贸wnie du偶ych pieni臋dzy na zakup
narz臋dzi wspomagaj膮cych
ich pisanie.
Pierwszy z wymienionych problem贸w zosta艂 cz臋艣ciowo rozwi膮zany przez kilka firm p贸艂przewodnikowych, kt贸re uruchomi艂y produkcj臋 specjalizowanych uk艂ad贸w interfejsowych. Jednym z pierwszych producent贸w takich uk艂ad贸w by艂 Philips, kt贸ry ju偶 kilka lat temu wprowadzi艂 na rynek uk艂ady z serii PDIUSBx, wkr贸tce do艂膮czy艂 National Se-miconductors, Cypress, Texas Instruments itd. Obecnie praktycznie ka偶da wi臋ksza firma p贸艂przewodnikowa ma jaki艣 interfejs w swojej ofercie. Kilka lat temu pojawi艂y si臋 tak偶e mikrokontrolery z wbudowanym interfejsem USB. Promo-
n
1 UART
UMT *






Rys.
Elektronika Praktyczna 9/2002
51
SPRZ臉T
MV艂lI LDO
ItaguliMr
F1FOT
tafto SWBytai
FIFO
Controller
Rys. 2
torem tej grupy uk艂ad贸w by艂 Cypress (oferuje on m.in. wersje '51 z USB), obecnie mikro-kontrolery z USB znajduj膮 si臋 praktycznie w ka偶dej rodzinie dost臋pnej na rynku (m.in. HC08, ST7, '51, AVR itd.). Niebagateln膮 wad膮 uniwersalnych interfejs贸w USB, a tak偶e interfejs贸w wbudowywanyc艂i w mikrokontrolery jest konieczno艣膰 programowej obs艂ugi interfejsu, co przy raczej powszechnie s艂abej znajomo艣ci szczeg贸艂贸w protoko艂u USB i wysokim kosztom uzyskania tej wiedzy grozi nieprzewidywalnymi konsekwencjami.
Niestety, tak偶e drugi z wymienionych problem贸w nie zosta艂 (jeszcze do niedawna) rozwi膮zany, co zmusza艂o projektant贸w do zg艂臋biania tajnik贸w USB, kt贸re - jak pokazuje praktyka - s膮 trudne do solidnego opanowania bez dost臋pu do odpowiednich narz臋dzi programowych. Mi臋dzy innymi z tego powodu pojawi艂y si臋 na rynku firmy (jak na przyk艂ad Jungo), kt贸re zaj臋艂y si臋 opracowaniem specjalizowanych pakiet贸w programowych do ,,pisania" (w cudzys艂owie, poniewa偶 wi臋kszo艣膰 z tych program贸w jest wyposa偶ona w zaawansowane graficzne systemy kreacji) sterownik贸w.
Do艣膰 radykalne rozwi膮zanie wszystkich problem贸w zapro-
ponowa艂a brytyjska firma Futu-re Technology Devices International (FTDI), kt贸ra jest producentem zaledwie kilku typ贸w uk艂ad贸w scalonych. Dwa
panele wy艣wietlaj膮ce itp. Wszystkie urz膮dzenia standardowe dla USB s膮 w wi臋kszo艣ci przypadk贸w samoczynnie rozpoznawane przez mechanizmy wbudowane we wszystkie licz膮ce si臋 wsp贸艂czesne systemy operacyjne, dzi臋ki czemu po do艂膮czeniu standardowego urz膮dzenia USB do interfejsu wbudowanego
w komputer u偶ytkownik nie musi robi膰 nic poza uruchomieniem programu steruj膮cego prac膮 urz膮dzenia. Mechanizmy PnP {P艂ug And Play) dla USB dzia艂aj膮 ju偶 w Windows 98, ale tak偶e wersje Windows pochodne NT s膮 systemami zorientowanymi na obs艂ug臋 urz膮dze艅 wyposa偶onych w ten interfejs.
Poniewa偶 nie jest mo偶liwe przewidzenie i uj臋cie w standardzie (pomimo jego do艣膰 cz臋stego modyfikowania)
Dzi臋ki uk艂adom oferowanym przez FTDI komunikacja poprzez interfejs USB z punktu widzenia komputera odbywa si臋 w taki sam spos贸b jak poprzez standardowy port szeregowy COM.
z nich s膮 dla nas szczeg贸lnie interesuj膮ce: FT8U232AM oraz FT8U245AM. Oferta (opr贸cz tych dw贸ch, FTDI produkuje jeszcze jeden uk艂ad scalony) -jak wida膰 - niewielka, ale uk艂ady produkowane przez FTDI wzbudzi艂y kilka miesi臋cy temu prawdziw膮 furror臋 na 艣wiatowym rynku podzespo艂贸w. Pomog艂a im prostota aplikacji i dost臋pno艣膰 bezp艂atnych, doskonale udokumentowanych sterownik贸w, kt贸re pasuj膮 do ka偶dej (sic!) aplikacji.
Dlaczego tak dobrze?
W standardzie USB przewidziano kilkana艣cie klas urz膮dze艅, w ramach kt贸rych s膮 zawarte grupy urz膮dze艅 o identycznych lub zbli偶onych parametrach funkcjonalnych. Przyk艂adowo w klasie HID [Human Interface Devices) znajduj膮 si臋: klawiatury, karty d藕wi臋kowe, miksery i rejestratory audio,
Charakterystyka uk艂ad贸w FT232/245:
* FT232 jest dwukierunkowym konwerterem USB<->UART (RS232/485),
* FT245 spe艂nia rol臋 dwukierunkowej pami臋ci FIFO z interfejsem USB,
* obydwa s膮 kompatybilne ze standardem USB1.1,
* uk艂ady integruj膮 kompletny interfejs USB (艂膮cznie ze stabilizatorem napi臋cia zasilaj膮cego),
* szybko艣膰 transmisji danych wynosi maksymalnie: 960kbd (FT232) lub 1MB/s (FT245),
* uk艂ady mog膮 opcjonalnie wsp贸艂pracowa膰 z zewn臋trzn膮 pami臋ci膮 EEPROM
z deskryptorami charakteryzuj膮cymi urz膮dzenie (VID, PID, nazwa produktu, numer seryjny),
* napi臋cie zasilania: 4,4...5,25V,
* sterowniki dla wszystkich popularnych system贸w operacyjnych i pomocnicze programy narz臋dziowe producent udost臋pnia bezp艂atnie.
wszystkich mo偶liwych urz膮dze艅 jakie powstaj膮 na 艣wiecie, w nietypowych (czy raczej nie uj臋tych w standardzie) przypadkach konieczne jest zastosowanie specjalizowanego sterownika, kt贸ry umo偶liwi aplikacji dost臋p do specyficznych funkcji do艂膮czanego urz膮dzenia. Jest to skomplikowane na tyle, 偶e nawet powa偶ni producenci (jak Cypress, czy Philips) unikali tworzenia w艂asnych sterownik贸w do produkowanych zestaw贸w ewaluacyjnych USB - ,,udawa艂y" one jedno z urz膮dze艅 standardowych (jak np. termometr USB Cypress a, kt贸ry przez system by艂 widziany jako klawiatura), co jednak nie jest rozwi膮zaniem mo偶liwym do zastosowania we wszystkich aplikacjach, daleko mu tak偶e do in偶ynierskiej elegancji.
Pomys艂 FTDI jest znacznie prostszy: zamiast budowania w艂asnych sterownik贸w i procedur obs艂ugi USB dla mikro-kontrolera zastosowanego w projektowanych urz膮dzeniu, tworzony jest wirtualny port szeregowy (z punktu widze-
nia aplikacji jest to klasyczny COM) o numerze nast臋pnym po ostatnim dost臋pnym w danej chwili w systemie, poprzez kt贸ry mo偶na wysy艂a膰
1 odbiera膰 dane w taki sam spos贸b, jak w przypadku klasycznych COM 贸w. Prezentowane uk艂ady wymagaj膮 dedykowanych im sterownik贸w, ale producent udost臋pni艂 je bezp艂atnie na swojej stronie internetowej. Co wi臋cej, dost臋pne s膮 wersje sterownik贸w dla wszystkich licz膮cych si臋 system贸w operacyjnych: wszystkie wsp贸艂czesne warianty Windows (w typ NT/
2 000/XP - sterowniki dla nich s膮 podpisane przez Microsoft), Apple OS8/OS9 oraz Linuksa.
Takie podej艣cie pozwala wyposa偶y膰 w USB dowolne urz膮dzenie, kt贸re dotychczas komunikuje si臋 z otoczeniem poprzez kt贸rykolwiek z interfejs贸w wbudowanych w PC (praktycznie nie jest wa偶ne jakiego typu jest komputer).
USB w Twoim urz膮dzeniu
Powy偶ej wyja艣ni艂em sk膮d wynika 艂atwo艣膰 komunikacji z interfejsami USB oferowanymi przez FTDI z poziomu systemu operacyjnego. Jak natomiast wygl膮da implementacja USB w projektowanym urz膮dzeniu?
Nadzwyczaj prosto, bowiem:
- uk艂ad FT8U232AM wyposa偶ono ,,od strony" mikrokon-trolera w standardowy port RS232 (rys. 1), czyli spe艂nia on rol臋 dwukierunkowego konwertera USB<->RS232,
- uk艂ad FT8U245AM jest przeznaczony do wsp贸艂pracy z mikrokontrolerami pozbawionymi interfejsu UART - ,,od strony" mikro-kontrolera jest on wyposa偶ony w dwukierunkowy, 8-bitowy port r贸wnoleg艂y oraz 4 sygna艂y steruj膮ce (rys. 2), kt贸re razem tworz膮 interfejs podobny do portu pami臋ci FIFO. Obydwa uk艂ady wyposa偶ono w dwie niezale偶ne pami臋ci FIFO (bufory: odbioru i nadawania), kt贸re u艂atwiaj膮 przekazywanie danych w obydwie strony. Jak wida膰 na rysunkach, budowa wewn臋trzna obydwu
FTDI bezp艂atnie udost臋pni艂o uniwersalne sterowniki do swoich uk艂ad贸w dla wszystkich popularnych obecnie system贸w operacyjnych: Windows 98/Me/2 OOO/NT/XP, Apple OS8/OS9 oraz Linuksa. Sterowniki dla system贸w pochodnych Win NT s膮 cyfrowo podpisane przez Microsoft.
Elektronika Praktyczna 9/2002
SPRZ臉T
Fot. 3
uk艂ad贸w jest zbli偶ona, r贸偶ni膮 si臋 one tylko interfejsem s艂u偶膮cym do do艂膮czenia mikro-kontrolera. Liczba element贸w zewn臋trznych niezb臋dnych do prawid艂owej pracy uk艂adu nie jest zbyt du偶a (przyk艂ad aplikacji mo偶na znale藕膰 w artykule na str. 37 lub na stronie intern臋 to wej producenta), ale nieco zaskakuj膮cy jest brak wbudowanego we wn臋trze uk艂ad贸w bloku zerowania po w艂膮czeniu zasilania.
Nie musisz robi膰 wszystkiego sam
Stosowanie uk艂ad贸w oferowanych przez FTDI mo偶e by膰 z niekt贸rych przypadkach nieco utrudnione, poniewa偶 s膮 one dost臋pne wy艂膮cznie w 32-wyprowadzeniowych obudowach QFP. Jest to jeden z powod贸w, dla kt贸rego warto wsia膰 pod uwag臋 mo偶liwo艣膰 stosowania w swoich opracowaniach kompletne modu艂y interfejsowe, kt贸re wymiarami zewn臋trznymi s膮 zbli偶one do obud贸w DIP32 (fot. 3). Takie modu艂y produkuje i dostarcza za po艣rednictwem dystrybutor贸w firma FTDI. Zawieraj膮 one wszystkie elementy interfejsu 艂膮cznie z gniazdem USB. Jest to oferta skierowana prse-de wszystkim do firm, kt贸re chc膮 zmniejszy膰 liczb臋 kupowanych specyficznych podzespo艂贸w - kilkana艣cie element贸w zast臋puje 艂atwy w stosowaniu modu艂.
Zgodnie z informacjami uzyskanymi przez nasz膮 redakcj臋, w najbli偶szym czasie podobne modu艂y b臋d膮 oferowane tak偶e prsez gda艅sk膮 firm臋 Propox [www.propox.com).
Dost臋pno艣膰
Przyzwyczajeni jeste艣my do tego, 偶e wi臋kszo艣膰 nowo艣ci dociera do naszego kraju z du偶ym op贸藕nieniem. W prsypad-ku prezentowanych uk艂ad贸w
to op贸藕nienie praktycznie nie wyst臋puje, poniewa偶 od ju偶 czerwca 2002 firma FTDI ustanowi艂a krajowego dystrybutora swoich produkt贸w, kt贸ry - to bardzo wa偶ne - obs艂uguje tak偶e detalist贸w.
Aplikacje
Pierwsz膮 z przygotowanych prsez nas aplikacji prezentowanych uk艂ad贸w jest projekt konwertera USB<->RS232/485, kt贸rego pierwsz膮 cz臋艣膰 opisu przedstawiamy na str. 37. Szykujemy tak偶e kolejne prsy-k艂ady, m.in. termometr, prse-twornik A/C i C/A, programowane wej艣cia wyj艣cia - wszystko do艂膮czane do PC poprsez USB.
Piotr Zbysi艅ski, AVT piotr.zbysinski@ep.com.pl
Z ostatniej chwili; w po艂owie sierpnia FTDI wprowadzi艂 do sprzeda偶y nowe, usprawnione wersje prezentowanych uk艂ad贸w, oznaczone w ten sam spos贸b jak pierwowzory, za wyj膮tkiem sufiksu (zamiast AM wyst臋puje BM).
Dodatkowe informacje
Dodatkowe informacje s膮 dost臋pne u autoryzowanego dystrybutora: Soyter Cornponents, Tel. (22) 722-06-85, www.soyter.corn.pl.
Dodatkowe materia艂y o uk艂adach
prezentowanych w artykule mo偶na znale藕膰 w Internecie:
- www.lTdichip.com/FTDriver.hTrn-oprogramowanie narz臋dziowe i sterowniki,
- http://www. ft di c h ip. c orr/D oc u m ent 膮' ft232rO8.pdf - nota katalogowa uk艂adu FT232,
- http://www. ft di c h ip. c orr/D oc u m ent 膮' ft245rO9.pdf - nota katalogowa uk艂adu FT245,
- http://www.lTdichip.com/FTApp.htm -noty aplikacyjne uk艂ad贸w produkowanych przezFTDI.
Elektronika Praktyczna 9/2002
53
SPRZ臉T
^^
tvr
/esf cz臋sfo
wie/u elektronik贸w nadal uwa偶a, 藕e lutownica transformatorowa rozwi膮偶e wszystkie ich problemy. Nie myl膮 si臋 zbytnio g艂osz膮c taki pogl膮d Ci elektronicy, kt贸rzy wykorzystuj膮 w swoich opracowaniach klasyczne uk艂ady w rastrze 50 mils贸w i inne elementy przystosowane do monta偶u przewlekanego. Do wsp贸艂czesnego serwisu i profesjonalnej pracowni konstrukcyjnej taki sprz臋t si臋 nie nadaje - dlaczego, wyja艣nia poni偶ej autor artyku艂u.
utowanie
czyli nie ma fraka bez nici
Rozw贸j elektroniki ma istotny, a czasami nawet zasadniczy wp艂yw na post臋py czynione w wielu dziedzinach gospodarki i 偶ycia spo艂ecznego. Konsumenci i u偶ytkownicy postrzegaj膮 贸w rozw贸j poprzez nowe mo偶liwo艣ci i rosn膮c膮 jako艣膰 produkt贸w: tych systemowych (jak np. telefonia GSM) i tych konkretnych (jak telefon kom贸rkowy). Je艣li za艣 mieliby wskaza膰 obszar wyznaczaj膮cy tempo zmian, obszar kreacji nowych jako艣ci, z pewno艣ci膮 wielu bez wahania powiedzia艂oby: to technologia p贸艂przewodnikowych uk艂ad贸w scalonych. W艂a艣nie tutaj, poprzez zamykanie w coraz mniejszych obj臋to艣-ciach coraz wi臋kszych blok贸w funkcjonalnych, tworzy si臋 nowe mo偶liwo艣ci skomplikowanych i wyrafinowanych zastosowa艅, kt贸re s膮 b艂yskawicznie upowszechniane w masowych produktach.
Podziwiaj膮c spektakularne osi膮gni臋cia w dziedzinie upakowania element贸w aktywnych, nale偶y odda膰 sprawiedliwo艣膰 technologiom, pozwalaj膮cym na zbudowanie odpowiedniego otoczenia pracy dla "sca-laka", tak by urzeczywistni膰 zaprojektowan膮 aplikacj臋 w spos贸b uwzgl臋dniaj膮cy wymogi produkcji seryjnej i indywidualnego serwisu.
Wymagania
Lutowanie to w produkcji i serwisie urz膮dze艅 elektronicznych jedna z podstawowych operacji, maj膮ca ogromne znaczenie dla jako艣ci i niezawodno艣ci produktu. Bardzo istotny jest fakt, 偶e operacja ta musi przebiega膰 z uwzgl臋dnieniem wszystkich technicznych wymog贸w, bez wzgl臋du na skal臋 obs艂ugiwanego procesu, co oznacza, 偶e przyrz膮dy i narz臋dzia u偶ywane przez ma艂e firmy produkcyjne, a tak偶e jednoosobowe firmy serwisowe, musz膮 spe艂nia膰 ostre kryteria, przy stosunkowo niewielkich kosztach zakupu i eksploatacji.
Sprawny i poprawny monta偶 uk艂ad贸w elektronicznych wymaga:
- uwzgl臋dnienia budowy montowanych element贸w, tj. wymiar贸w i rodzaju wyprowadze艅, sposobu pozycjonowania, po to, by otrzyma膰 po艂膮czenia o w艂a艣ciwej geometrii i bez zwar膰,
- zapewnienia optymalnego przebiegu termicznego procesu, tak by w mo偶liwie kr贸tkim czasie uzyska膰 po艂膮czenie o jednorodnej strukturze, nie nara偶aj膮c przy tym montowanego elementu i pod艂o偶a na uszkodzenia zwi膮zane z przegrzaniem lub napr臋偶eniami, powstaj膮cymi wskutek du偶ych lokalnych r贸偶nic temperatur.
Spe艂nienie pierwszego warunku zapewnia si臋, u偶ywaj膮c ko艅c贸wek (grot贸w lub dysz) o odpowiedniej konstrukcji, cz臋sto dedykowanej konkretnym obudowom element贸w elektronicznych. Warunek drugi ka偶e - dodatkowo - wyposa偶a膰 lutownice w systemy regulacji i stabilizacji temperatury, pozwalaj膮ce na programowanie i pomiar rzeczywistej temperatury roboczej oraz efektywne sterowanie jej warto艣ci膮.
Ponadto nale偶y uwzgl臋dni膰 kwesti臋 zabezpieczenia przed szkodliwym dzia艂aniem p贸l elektrostatycznych, zapewni膰 艂atwo艣膰 precyzyjnego operowania r膮czk膮 lutownicy przez jej w艂a艣ciwe wywa偶enie oraz dob贸r proporcji (ma艂a odleg艂o艣膰 mi臋dzy r臋ko-je艣ci膮-korpusem a ko艅c贸wk膮 grota), umo偶liwi膰 szybk膮 i bezpieczn膮 wymian臋 ko艅c贸wki, bez konieczno艣ci studzenia grzejnika.
Istotny jest tak偶e aspekt ekonomiczny - wytwarzanie wysokiej temperatury i zwi膮zany z tym pob贸r energii powinny nast臋powa膰 tylko podczas operacji lutowania. W czasie, gdy pracownik wykonuje inne czynno艣ci, po偶膮dane by艂oby obni偶enie temperatury, skutkuj膮ce zmniejszeniem strat energii, a tak偶e wyd艂u偶eniem 偶ywotno艣ci grota; warto艣ci tego obni偶enia nie mo偶na jednak przyjmo-
Elektronika Praktyczna 9/2002
55
SPRZ臉T
Fot.
wa膰 dowolnie, gdy偶 lutownica musi pozostawa膰 w ci膮g艂ej gotowo艣ci do natychmiastowego podj臋cia pracy.
Oczywi艣cie nie wolno zapomnie膰 o wymaganiach dotycz膮cych niezawodno艣ci i trwa艂o艣ci - te stawiane s膮 wszystkim, a zw艂aszcza profesjonalnym, urz膮dzeniom.
Wielo艣膰 i charakter wymaga艅 sprawiaj膮, 偶e prosta, zasilana bezpo艣rednio z sieci lutownica przesta艂a by膰 wystarczaj膮ca w wi臋kszo艣ci zaawansowanych zastosowa艅. Przyrz膮d, kt贸rym bezpo艣rednio wykonuje si臋 operacje monta偶u (r膮czka lutownicza), jest jednym z element贸w, czasami bardzo z艂o偶onego systemu zawieraj膮cego uk艂ady zasilania, programowania i sterowania, a tak偶e uk艂ady pomocnicze (kompresor, dozowniki topnik贸w i past, ssawki do przytrzymywania element贸w i inne).
W trakcie napraw urz膮dze艅 elektronicznych, na etapie demonta偶u, czyli usuwania z p艂yt PCB wadliwych element贸w, u偶ywa si臋 specjalnych ko艅c贸wek, a nawet specjalnych r膮czek, np. termop臋sety.
Rozwi膮zania
Znakomit膮 ilustracj膮 nowoczesnych rozwi膮za艅 i trend贸w rozwojowych w interesuj膮cej nas tutaj dziedzinie jest oferta jednego z lider贸w na rynku profesjonalnych urz膮dze艅 do monta偶u i demonta偶u uk艂ad贸w elektronicznych - ameryka艅skiej firmy PACE.
Ju偶 najprostsze, analogowe stacje lutownicze oferuj膮 regulacj臋 i stabilizacj臋 temperatury oraz zapewniaj膮 du偶膮 uniwersalno艣膰, dzi臋ki mo偶liwo艣ci u偶ycia a偶 dziewi臋膰dziesi臋ciu
wymiennych ko艅c贸wek do monta偶u i demonta偶u. Warto podkre艣li膰, 偶e wymiany mo偶na dokonywa膰 bez wy艂膮czania lutownicy.
Pochodz膮ce z tej samej linii (ST -fot. 1), ale wyposa偶one w sterowanie mikroprocesorowe stacje pozwalaj膮 na dok艂adniejsze, kontrolowane na wy艣wietlaczu, programowanie warto艣ci temperatur, pomiar i odczyt rzeczywistej temperatury, programowalne obni偶enie temperatury (siand-by) do 178癈, automatyczne wy艂膮czanie po zadanym czasie, ochron臋 dokonanych nastaw has艂em.
Jedna z tych stacji (ST45N) jest przystosowana do lutowania w os艂onie azotowej, udost臋pniaj膮c korzy艣ci zwi膮zane z t膮 technologi膮: umo偶liwienie wst臋pnego podgrzania punktu na p艂ytce przed lutowaniem, lutowanie w ni偶szej temperaturze i zmniejszenie ryzyka uszkodzenia p艂yt lub element贸w, skuteczniejsze zapobieganie powstawaniu zwar膰, poprawienie jako艣ci po艂膮cze艅, przed艂u偶enie 偶ywotno艣ci grot贸w, zmniejszenie zapotrzebowania na topnik, mo偶liwo艣膰 u偶ycia spoiwa bezo艂owiowego. Do lutowania w os艂onie azotowej u偶ywa si臋 specjalnej ko艅c贸wki.
W艣r贸d licznych grot贸w o r贸偶nych wymiarach i geometrii, mog膮cych wsp贸艂pracowa膰 ze stacjami linii ST, mo偶emy znale藕膰 groty typu minifa-la, zaprojektowane specjalnie do szybkiego, precyzyjnego i bezpiecznego monta偶u uk艂ad贸w SMD (PLCC i PQFP).
Grot minifala ma na ko艅cu zasobnik wype艂niany stopem lutowniczym. W czasie przesuwania po wy-
prowadzeniach uk艂adu, cyna jest dozowana w odpowiedniej ilo艣ci na poszczeg贸lne punkty lutownicze tak, 偶e nie powstaj膮 zwarcia nawet przy rastrze 0,3 mm. Zasada dzia艂ania jest tu oparta o zjawisko napi臋cia powierzchniowego. Operacja wymaga oczywi艣cie odrobiny wprawy, jednak efekty s膮 rewelacyjne.
Zwie艅czeniem mo偶liwo艣ci sprz臋tu lutowniczego z serii ST s膮 modele: 75 i 115, odpowiednio - analogowy i cyfrowy. S膮 to tak偶e stacje jedno-kana艂owe, tzn. umo偶liwiaj膮 w danym czasie prac臋 z jednym typem r膮czki, jednak t臋 mo偶emy ju偶 wybra膰 spo艣r贸d wszystkich dost臋pnych modeli o r贸偶nym przeznaczeniu.
Tym, co przede wszystkim odr贸偶nia stacje 75 i 115 od ich prostszych "si贸str", jest wbudowany kompresor o prze艂膮czanych trybach pracy (zasysanie/nadmuch), znacz膮co zwi臋kszaj膮cy mo偶liwo艣ci demonta偶u, ale tak偶e rozszerzaj膮cy mo偶liwo艣ci monta偶u
0 lutowanie rozp艂ywowe, w kt贸rym rol臋 grota pe艂ni strumie艅 gor膮cego powietrza, kierowany odpowiednio wyprofilowan膮 dysz膮 na punkt lutowniczy, gdzie uprzednio na艂o偶ony zosta艂 stop lutowniczy w postaci pasty (w przypadku uk艂ad贸w EGA -w postaci cynowych kulek).
Oczywi艣cie stacja cyfrowa ma wzbogacone funkcje programowania i kontroli, z kt贸rych najwa偶niejsz膮 jest mo偶liwo艣膰 nastawiania korekcji temperatury (offset). Przydatno艣膰 tego rozwi膮zania sprawdza si臋 szczeg贸lnie w przypadku du偶ych g艂owic, dla kt贸rych odleg艂o艣膰 od cz臋艣ci roboczej do czujnika temperatury jest na tyle znacz膮ca, 偶e mo偶e wprowadza膰 istotne zafa艂szowania pomiaru, a dalej - prowadzi膰 do ustalenia nieoptymalnej temperatury pracy. Warto艣ci sta艂ego odchylenia, kt贸re nale偶y uwzgl臋dni膰 dla poszczeg贸lnych ko艅c贸wek, s膮 podane przez producenta.
W wielu zastosowaniach opisane tutaj stacje 艣wietnie si臋 sprawdz膮, daj膮c znakomite rezultaty jako艣ciowe oraz zapewniaj膮c komfortowe warunki pracy. Jednak gdy trzeba w kr贸tszym czasie wykona膰 szereg nast臋puj膮cych po sobie r贸偶nych czynno艣ci, zwi膮zanych z monta偶em
1 demonta偶em uk艂ad贸w elektronicznych, mo偶e okaza膰 si臋 konieczne si臋gni臋cie na wy偶sz膮 p贸艂k臋, gdzie czekaj膮 modele o jeszcze wi臋kszych mo偶liwo艣ciach.
Marek Kalasi艅ski
D o dat ko we i nf o rma ej e
Wi臋cej informacji mo偶na uzyska膰 w lirmie Renex, Tel. (54)411-25-55, www.renexcom.pl.
Elektronika Praktyczna 9/2002
PROPOZYCJE
Polski symulator uk艂ad贸w analogowych
Zaproszenie do wsp贸艂pracy dla wszystkich Czytelnik贸w EP!
Inicjatywo, kt贸r膮 przedstawiamy w artykule,
jest zjawiskiem
niespotykanym na naszym
rynku elektronicznym:
tw贸rca najlepszego polskiego programu do
symulacji uk艂ad贸w
nieliniowych, znanego ju偶
z 艂am贸w EP - XLAB -
proponuje za naszym
po艣rednictwem wszystkim
polskim elektronikom
i programistom mo偶liwo艣膰
wsp贸艂pracy na zasadach
zbli偶onych do OpenSource.
si臋 mi, kiedy pisa艂em "programik" do rozwi膮zywania r贸wna艅.
Mia艂 on by膰 z za艂o偶enia bardzo prosty - podawa艂 rozwi膮zania r贸wnania wprowadzonego bezpo艣rednio w kodzie, wi臋c jego przydatno艣膰 do innych zastosowa艅 by艂a znikoma. Ka偶da modyfikacja r贸wnania powodowa艂a konieczno艣膰 rekompilacji ca艂ego kodu (ok. 50 linijek w Pascalu). Jednak zagadnienie by艂o na tyle interesuj膮ce, 偶e szybko doda艂em now膮 funkcj臋: rozwi膮zywanie ca艂ych uk艂ad贸w.
I wtedy zacz膮艂em si臋 zastanawia膰 nad mo偶liwymi zastosowa-
XLAB jest jedynym zaawansowanym programem do symulacji uk艂ad贸w nieliniowych opracowanym w Polsce. Niezwykle istotny jest fakt, 偶e jest to oprogramowanie freeware, a "zesp贸艂" tw贸rc贸w sk艂ada艂 si臋 zazwyczaj z... jednej osoby. To w艂a艣nie jest przyczyn膮 naszego wsp贸lnego apelu - dalszy rozw贸j tego oprogramowania nie jest mo偶liwy bez powi臋kszenia zespo艂u tw贸rc贸w. Poniewa偶 przedsi臋wzi臋cie jest z za艂o偶enia niekomer-cyjne, autor postanowi艂 z艂o偶y膰 za naszym po艣rednictwem propozycj臋 wszystkim programistom i elektronikom, kt贸rzy czuj膮 si臋 na si艂ach podj膮膰 wysi艂ek dalszego rozwijania XLAB-a na zasadach OpenSource (przedstawiamy je w dalszej cz臋艣ci artyku艂u).
Naturalnymi adresatami naszej propozycji s膮 przede wszystkim studenci uczelni technicznych, dla kt贸rych praca nad XLAB-em mo偶e by膰 wielk膮 przygod膮 przygotowuj膮c膮 do profesjonalnego 偶ycia po studiach, zapewniaj膮c膮 przy okazji
kontakt z nowoczesnymi technikami symulacji uk艂ad贸w analogowych.
EP obejmuje patronat medialny nad przedsi臋zwi臋ciem. Je偶eli znajd膮 si臋 ch臋tni do wsp贸艂pracy, rozwa偶ymy mo偶liwo艣膰 udzielania tak偶e innych form wsparcia os贸b pracuj膮cych nad projektem.
Zaczynamy od przedstawienia historii XLAB-a. Oddajemy g艂os autorowi programu.
XLAB - historia
Bardzo cz臋sto dzieje si臋 tak, 偶e zabieraj膮c si臋 za tworzenie "czego艣", po miesi膮cach pracy otrzymujemy "co艣" zupe艂nie innego ni偶 zamierzali艣my. Czasem pope艂niamy b艂膮d, a czasem ci臋偶ko jest co艣 sko艅czy膰. Na przyk艂ad chcemy zbudowa膰 sobie wzmacniacz. Przesadzamy nieco ze wzmocnieniem i otrzymujemy... bardzo dobry generator. Albo montujemy generator i okazuje si臋, 偶e wystarczy doda膰 niewiele element贸w, aby zrobi膰 syren臋 alarmow膮. Podobna historia przytrafi艂a
Rys. 2
Elektronika Praktyczna 9/2002
59
PROPOZYCJE
niami tego "wynalazku". Co mo偶na zrobi膰 z kodem, kt贸ry jest w stanie rozwi膮za膰 numerycznie uk艂ad ok. 500 r贸wna艅 nieliniowych w mniej ni偶 sekund臋? Okaza艂o si臋, 偶e mo偶na i to nawet sporo. Tak powsta艂...
XLAB 1.00 (listopad 1998)
Wystarczy艂o dopisa膰 modu艂 z gotowymi r贸wnaniami prostych element贸w elektronicznych, 偶eby powsta艂 symulator uk艂ad贸w XLAB 1.0. Pracowa艂 w DOS-ie (rys. l), nie posiada艂 interfejsu wej艣ciowego (definicja uk艂adu by艂a "ukryta" w kodzie), rysowa艂 wykresy w trybie VGA i rozwija艂 "zawrotn膮" pr臋dko艣膰 35 pr贸bek/s przy symulacji multiwibratora astabilnego z艂o偶onego z dw贸ch tranzystor贸w i kilku element贸w dodatkowych. Dla por贸wnania, ten sam uk艂ad z dok艂adniejszymi modelami tranzystor贸w programy PSPICE i XLAB 2.4 licz膮 z szybko艣ci膮 ok. 200 pr贸bek/s (testy by艂y wykonywane na Pentium 150MHz).
By艂y dwie przyczyny tego stanu rzeczy: brak optymalizacji kodu i s艂aby algorytm. Po przeniesieniu programu na platform臋 Win32 i rekompilacji w Delphi 2 uda艂o si臋 wyeliminowa膰 t臋 pierwsz膮 i pr臋dko艣膰 wzros艂a a偶 4 razy! A po wprowadzeniu pewnych ulepsze艅 do algorytmu uda艂o si臋 jego efektywno艣膰 jeszcze troch臋 poprawi膰. Niestety, brak jakiegokolwiek interfejsu u偶ytkownika uniemo偶liwia艂 publikacj臋 programu.
XLAB 1.04
(lipiec, sierpie艅 1999)
Konieczne by艂o stworzenie jakiego艣 sposobu definiowania uk艂ad贸w elektronicznych bez konieczno艣ci ka偶dorazowego kompilowania programu. Najprostszy do realizacji okaza艂 si臋 spos贸b wykorzystany w symulatorach SPICE, czyli definiowanie uk艂ad贸w za pomoc膮 opis贸w w odpowiednim j臋zyku. J臋zyk opisu uk艂ad贸w symulatora XLAB 1.04 r贸偶ni艂 si臋 gramatyk膮 od SPICE, ale idea by艂a ta sama. Podawa艂o si臋 list臋 element贸w, okre艣la艂o do jakich w臋z艂贸w s膮 do艂膮czone oraz jakie s膮 ich parametry. Teraz program nadawa艂 si臋 do analizy niewielkich uk艂ad贸w. Niestety, mo偶liwo艣ci obliczeniowe symulatora nadal pozostawia艂y wiele do 偶yczenia. Brakowa艂o przede
wszystkim analiz cz臋stotliwo艣ciowej i parametrycznej, dobrego algorytmu analizy czasowej i modeli element贸w p贸艂przewodnikowych.
XLAB 1.05...1.08 (wrzesie艅...grudzie艅 1999)
W tym okresie doda艂em brakuj膮ce analizy, poprawi艂em nieco algorytm analizy czasowej (jak si臋 p贸藕niej okaza艂o - nadal nie dzia艂a艂 najlepiej), usprawni艂em spos贸b prezentacji wynik贸w i powi臋kszy艂em bibliotek臋 element贸w m.in.
0 tranzystory JFET oraz w艂膮czniki sterowane. Dorzuci艂em te偶 gotowy edytor tekstowy z kolorowaniem s艂贸w kluczowych, kt贸ry 艣ci膮gn膮艂em z sieci jako darmowy komponent do Delphi. Nie mia艂em zbyt wiele czasu na prac臋 nad pakietem, gdy偶 musia艂em r贸wnocze艣nie przygotowa膰 si臋 do matury. Dlatego XLAB 1.08 (rys. 2) nie by艂 zbyt udanym programem - niezbyt szybki, ma艂o stabilny i niewygodny w obs艂udze. Jego opis znalaz艂 si臋 w EP5/2000.
Do najwi臋kszych wad nale偶a艂 z pewno艣ci膮 brak edytora graficznego. Niewielkie uk艂ady do艣膰 艂atwo definiowa艂o si臋 r臋cznie, czasem nawet szybciej ni偶 za pomoc膮 niekt贸rych edytor贸w graficznych, jednak gdy liczba element贸w by艂a zbyt wielka, kod stawa艂 si臋 nieczytelny
1 bardzo podatny na b艂臋dy.
XLAB 1.10 i XLab
Schematics
(stycze艅...lipiec 2000)
Dlatego szybko powsta艂 program wspomagaj膮cy: XLab Schematics (rys. 3), kt贸rego autorem jest Stanis艂aw Skowronek. Z narysowanego schematu generowa艂 listy po艂膮cze艅 wczytywane przez symulator. Mimo swojej prostoty, by艂 bardzo u偶yteczny. XLAB w tym czasie nie zyska艂 zbyt wielu nowych funkcji, poprawi艂em natomiast kilka drobnych b艂臋d贸w. Wersja 1.10 jest ostatni膮 z serii XLAB 1.
XLAB 2.0 (stycze艅 2001)
W drugiej po艂owie 2000 r. zacz膮艂em prace nad w艂asnym wektorowym edytorem graficznym. Dostosowa艂em j臋zyk opisu uk艂ad贸w, aby nadawa艂 si臋 do zapisu grafiki. W ten spos贸b XLAB zyska艂 wbudowany, przyjazny u偶ytkownikowi interfejs (rys. 4).
Rys. 3
Jest to najbardziej udana i zarazem najbardziej z艂o偶ona cz臋艣膰 pakietu. Edytor posiada m.in. nast臋puj膮ce w艂a艣ciwo艣ci:
- Automatycznie dostosowuje tryb pracy do po艂o偶enia kursora myszki. Je艣li kursor znajduje si臋 nad ko艅c贸wk膮 symbolu, to program jest w stanie gotowo艣ci do rysowania po艂膮cze艅. Je艣li nad 艣rodkiem symbolu - klikni臋cie domy艣lnie powoduje jego zaznaczenie i ewentualne rozpocz臋cie procesu przesuwania. Tryb pracy jest sygnalizowany przez kszta艂t kursora.
- Mo偶na zaznaczy膰 wiele element贸w naraz i za jednym zamachem zmodyfikowa膰 jak膮艣 wsp贸ln膮 w艂a艣ciwo艣膰 np. rezystancj臋. To si臋 na og贸艂 przydaje, gdy w schemacie mamy kilka takich samych element贸w.
- Je艣li stwierdzili艣my, 偶e ka偶dy z 30 jednakowych tranzystor贸w projektowanego uk艂adu trzeba wymieni膰 na inny, to wystarczy je wszystkie zaznaczy膰 i wykona膰 odpowiednie polecenie (jedno a nie 30!). Poda艂em przyk艂ad ekstremalny, ale funkcja ta jest u偶yteczna, nawet gdy mamy do czynienia tylko z par膮 element贸w.
- Przy przesuwaniu symboli po艂膮czenia s膮 zachowywane. Napisanie tej procedury to by艂a katorga, ale o dziwo dzia艂a nad wyraz dobrze.
- Nie trzeba si臋 martwi膰 o kropki na skrzy偶owaniu po艂膮cze艅. Program sam je wstawia i usuwa. Spotka艂em edytor, w kt贸rym musia艂 to robi膰 u偶ytkownik!
- Dla tych, co lubi膮 projektowa膰 metod膮 pr贸b i b艂臋d贸w, istnieje wielopoziomowe polecenie "Cofnij/Pon贸w".
- Nie ma spotykanej w niekt贸rych edytorach "kartki papieru". Prze-
60
Elektronika Praktyczna 9/2002
PROPOZYCJE
strze艅 rysunkowa jest praktycznie nieograniczona. Dlatego nie czeka Ci臋 przesuwanie ca艂ego schematu tylko dlatego, 偶e chcesz dostawi膰 element, kt贸ry wychodzi za margines.
- Wyniki analizy punktu pracy mog膮 by膰 przedstawiane na schemacie.
- Symbole nie s膮 na sta艂e zintegrowane z programem, a umieszczone w oddzielnej bibliotece. Mo偶esz tworzy膰 w艂asne i modyfikowa膰 istniej膮ce.
G艂贸wnie z tych wzgl臋d贸w pakiet by艂 przez pewien okres rozpowszechniany przez firm臋 DGN jako shareware (czyli wypr贸buj i ewentualnie kup).
Na pocz膮tku 2001 r. praca pt. "XLAB - the non-linear circuit si-mulator" zdoby艂a III miejsce w Krajowych Eliminacjach Konkursu Prac M艂odych Naukowc贸w Unii Europejskiej. Przy okazji tego konkursu kod zosta艂 wnikliwie oceniony przez Jury i zosta艂y wychwycone pewne merytoryczne usterki:
- Zbyt uproszczony i nieskuteczny algorytm doboru kroku analizy czasowej.
- Niedok艂adne modele element贸w p贸艂przewodnikowych.
- Niewykorzystane wszystkie mo偶liwo艣ci przyspieszenia programu.
XLAB 2.2.-2.4
(lipiec...wrzesie艅 2001)
To tylko troch臋 wzmocniona wersja XLAB-a 2.0. Nie wyeliminowa艂em wszystkich b艂臋d贸w, doda艂em natomiast udogodnienia przydatne na laboratorium z ELIU (Elementy i Uk艂ady Elektroniczne).
W mi臋dzyczasie zauwa偶y艂em r贸wnie偶 inne wady pakietu:
- Zbyt zawi艂y spos贸b definiowania modeli skutecznie spowalnia tworzenie bibliotek. Program nie potrafi sam zlinearyzowa膰 modelu (musi mie膰 gotowe wzory) ani zredukowa膰 liczby r贸wna艅, eliminuj膮c r贸wnania liniowe.
- Brak mo偶liwo艣ci wczytywania plik贸w *.cir (w formacie PSPICE).
- Program 藕le radzi sobie z b艂臋dami nadmiaru maszynowego, generowanymi przez modele w trakcie symulacji. Og贸lnie mechanizmy ochrony przed b艂臋dami dosy膰 cz臋sto zawodz膮, co mo偶e by膰 irytuj膮ce.
- Istnieje zbyt wiele niejasnych zale偶no艣ci mi臋dzy modu艂ami pakie-
Rys. 4
tu. Brak planowania i spontaniczne wprowadzanie zmian spowodowa艂o, 偶e ca艂y projekt sta艂 si臋 bardzo nieczytelny. Utrudnia to wykrywanie b艂臋d贸w i rozbudow臋. - Programu nie da si臋 艂atwo przystosowa膰 do pracy w systemie Li-nux, poniewa偶 zosta艂 napisany w Pascalu, a dodatkowo wyst臋puje w nim du偶o wywo艂a艅 funkcji systemu MS Windows. Z tych powod贸w kontynuowanie rozwoju wersji 2 straci艂o sens, a ca艂o艣膰 wraz z kodem 藕r贸d艂owym udost臋pni艂em w Internecie.
XLAB 4.0
To m贸g艂by by膰 koniec historii XLAB-a. Tyle, 偶e licznik 艣ci膮gni臋膰 na mojej stronie nadal intensywnie "cyka", a dotychczasowi u偶ytkownicy wysy艂aj膮 e-maile z pytaniami, kiedy b臋dzie nast臋pna wersja. Do tego w trakcie 2 lat studi贸w informatyki naby艂em umiej臋tno艣ci wystarczaj膮ce do napisania du偶o lepszego programu. Dlaczego by ich nie wykorzysta膰? Z drugiej strony tworzenie takiego oprogramowania poch艂ania sporo czasu. To nie jest ju偶 prosty pro-gramik do rozwi膮zywania zwyk艂ych r贸wna艅.
Dlatego chcia艂bym, aby XLAB 4.0 powstawa艂 na podobnych zasadach, na jakich obecnie tworzone jest darmowe oprogramowanie dla systemu Linux (GNU). Po pierwsze, kod b臋dzie pisany r贸wnolegle
przez kilka os贸b. Wiele modu艂贸w ma艂o zale偶y od siebie, wi臋c nic nie powinno kolidowa膰. Zesp贸艂 nie jest ustalony na "sztywno" - ka偶dy mo偶e do艂膮czy膰 w dowolnym momencie. Po drugie, j臋zykiem b臋dzie C++, a nie Pascal. Ten j臋zyk jest bardziej elastyczny, lepiej wspiera zespo艂owe programowanie i istniej膮 dobre darmowe kompilatory na wszystkie platformy systemowe. XLAB 4.0 b臋dzie dzia艂a艂 zar贸wno w systemie Windows, jak i Linux, zw艂aszcza 偶e na ten drugi bardzo brakuje aplikacji tego typu. Po trzecie, przedsi臋wzi臋cie jest niekomercyjne, wi臋c przyszli u偶ytkownicy nie b臋d膮 musieli p艂aci膰 za licencj臋.
Istnieje wst臋pny projekt architektury nowego pakietu. Ca艂a cz臋艣膰 symulacyjna zostanie ca艂kowicie przebudowana i wyposa偶ona w nowe, niestosowane dot膮d algorytmy. Przede wszystkim ulegnie zmianie spos贸b definiowania modeli, tak by wszystkie da艂o si臋 umie艣ci膰 poza kodem 藕r贸d艂owym. Wymusza to wprowadzenie zmian do j臋zyka opisu modeli. B臋dzie akceptowa膰 r贸wnania r贸偶niczkowo-ca艂kowe dowolnego rz臋du i dowolne uzale偶nianie zmiennych od siebie - np. b臋dzie mo偶na uzale偶ni膰 op贸r rezystora od dowolnej funkcji napi臋cia wyst臋puj膮cego w innym miejscu uk艂adu. To rozszerzy zastosowania symulatora na inne dziedziny ni偶 elektronika.
62
Elektronika Praktyczna 9/2002
PROPOZYCJE
Algorytmy numeryczne b臋d膮 wspomagane algorytmami symbolicznego upraszczania uk艂adu, co powinno zdecydowanie przyspieszy膰 obliczenia. Wst臋pne testy z prostym uk艂adem LC sugeruj膮 bardzo du偶e zyski efektywno艣ci (MicroSim PSPICE: 800 pr贸bek/s, XLAB 2.4: 5000 pr贸bek/s, algorytm optymalny: 250000 pr贸bek/s).
Program ma tak偶e lepiej wspiera膰 projektowanie uk艂ad贸w cyfrowych i analogowo-cyfrowych. W tym celu zastosowane b臋d膮 techniki symulacji sterowanej zdarzeniowo.
Do symulatora b臋dzie do艂膮czony optymalizator wielowymiarowy -narz臋dzie bardzo u偶yteczne, bo pozwala na automatyczne dobieranie parametr贸w uk艂adu metod膮 pr贸b i b艂臋d贸w w celu spe艂nienia odpowiednich ogranicze艅. Proces ten trwa niestety do艣膰 d艂ugo, ale cho膰 komputer nie dysponuje intuicj膮 niejednego in偶yniera, to zwykle znajduje lepsze rozwi膮zania. A in偶ynier mo偶e w tym czasie wyj艣膰 na kaw臋...
Je艣li chodzi o grafik臋, to rewolucji nie b臋dzie. Obecny edytor jest bardzo dobry i wszystkie zmiany ogranicz膮 si臋 do poprawek kosmetycznych. Trzeba b臋dzie jedynie dopisa膰 konwertery znanych format贸w rysunkowych oraz umo偶liwi膰 wsp贸艂prac臋 z edytorami p艂ytek drukowanych. Mo偶liwe, 偶e uda si臋 te偶
napisa膰 w艂asny autorouter. Spore zmiany natomiast pojawi膮 si臋 w cz臋艣ci prezentacji wynik贸w. XLAB 2.4 wypada pod tym wzgl臋dem bardzo s艂abo na tle np. popularnego PROBE-a.
To jest z艂o偶ony projekt i obejmuje wiele dziedzin naraz, ale mam nadziej臋, 偶e znajd膮 si臋 ch臋tni do podj臋cia tego wyzwania. Nie jest
potrzebna nie wiadomo jaka znajomo艣膰 C + + i matematyki wy偶szej (cho膰 to na pewno by pomog艂o). Liczy si臋 zapa艂, kreatywno艣膰 i ch臋膰 poznawania rzeczy nowych.
Wszelkie szczeg贸艂y znajduj膮 si臋 na stronie iviviv.xiab.prf.pi, a zg艂oszenia nale偶y przesy艂a膰 na adres pko!aczk@e!ka.pw. edu ,pl. Piotr Kotaczkowski
Definicja oprogramowania open source
(za www.opensource.org)
Wprowadzenie
Open source nie znaczy tylko dost臋pu do kodu 藕r贸d艂owego. Warunki dystrybucji oprogramowania open source musz膮 by膰 zgodne z nast臋puj膮cymi kryteriami:
1. Swoboda redystrybucji
Licencja nie mo偶e ogranicza膰 swobody kt贸rejkolwiek ze stron do sprzedawania lub rozdawania oprogramowania jako elementu szerszej dystrybucji zawieraj膮cej programy z r贸偶nych 藕r贸de艂. Licencja nie mo偶e wymaga膰 pobierania honorari贸w lub innych op艂at od takiej sprzeda偶y.
2. Kod 藕r贸d艂owy
Do programu musi by膰 do艂膮czony kod 藕r贸d艂owy, a licencja musi zezwala膰 na dystrybucj臋 zar贸wno w postaci kodu 藕r贸d艂owego, jak i skompilowanej. Je艣li kt贸ry艣 produkt nie jest rozprowadzany wraz z kodem 藕r贸d艂owym, musi istnie膰 dobrze udokumentowany spos贸b uzyskania tego kodu 藕r贸d艂owego za cen臋 nieprzekraczaj膮c膮 rozs膮dnych koszt贸w wykonania kopii - najlepiej poprzez darmowe pobranie z Internetu. Kod 藕r贸d艂owy musi by膰 dost臋pny w zalecanej postaci, pozwalaj膮cej na prost膮 modyfikacj臋. Nie jest dozwolone celowe gmatwanie kodu 藕r贸d艂owego. Formaty po艣rednie, takie jak wynik dzia艂ania preprocesora lub translatora, nie s膮 dozwolone.
3. Dzie艂a pochodne
Licencja musi zezwala膰 na dokonywanie zmian oraz tworzenie dzie艂 pochodnych. Musi r贸wnie偶 umo偶liwia膰 dystrybucj臋 takich dzie艂 na tych samych warunkach, jakie opisuje licencja oryginalnego oprogramowania.
4. Sp贸jno艣膰 kodu 藕r贸d艂owego autora
Licencja mo偶e ogranicza膰 dystrybucj臋 kodu 藕r贸d艂owego w zmodyfikowanej postaci tylko wtedy, je艣li dozwolona jest przy tym dystrybucja "poprawek" (ang. patch) wraz z kodem 藕r贸d艂owym, za pomoc膮 kt贸rych program jest potem modyfikowany w trakcie kompilacji. Licencja musi jawnie zezwala膰 na dystrybucj臋 oprogramowania skompilowanego ze zmodyfikowanego kodu 藕r贸d艂owego. Licencja mo偶e wymaga膰, aby dzie艂a pochodne nosi艂y inn膮 nazw臋 lub numer wersji ni偶 oprogramowanie oryginalne.
5. Niedozwolona dyskryminacja os贸b i grup
Licencja nie mo偶e dyskryminowa膰 jakichkolwiek os贸b czy grup.
6. Niedozwolona dyskryminacja obszar贸w zastosowa艅.
Licencja nie mo偶e zabrania膰 wykorzystywania programu w jakim艣 konkretnym obszarze zastosowa艅. Na przyk艂ad, nie mo偶e zabrania膰 wykorzystania programu w spos贸b komercyjny lub u偶ywania go do bada艅 genetycznych.
7. Dystrybucja licencji
Okre艣lenie praw do艂膮czone do programu musi obowi膮zywa膰 wszystkich, kt贸rzy otrzymuj膮 oprogramowanie bez konieczno艣ci przestrzegania przez te osoby dodatkowych licencji.
8. Licencja nie mo偶e obejmowa膰 konkretnego produktu
Okre艣lenie praw do艂膮czone do programu nie mo偶e zale偶e膰 od tego, 偶e dany program stanowi cz臋艣膰 okre艣lonej dystrybucji oprogramowania. Je艣li program zosta艂 pobrany z takiej dystrybucji i wykorzystywany lub rozprowadzany jest zgodnie z warunkami licencji, wszystkie osoby, do kt贸rych program trafia, powinny posiada膰 te same prawa, kt贸re okre艣lone s膮 dla oryginalnej dystrybucji oprogramowania.
9. Licencja nie mo偶e ogranicza膰 stosowania innego oprogramowania
Licencja nie mo偶e nak艂ada膰 ogranicze艅 na inne oprogramowanie rozprowadzane wraz z oprogramowaniem obj臋tym licencj膮. Na przyk艂ad, nie mo偶e wymaga膰, aby wszystkie inne programy rozprowadzane na tym samym no艣niku by艂y programami open source.
64
Elektronika Praktyczna 9/2002
T Cyfrowy procesor d藕wi臋ku
Zgodnie z zapowiedziq sprzed miesiqca przedstawiamy kon-^ strukcj臋 cyfrowego procesora t sygna艂贸w audio, kt贸ry zosta艂 wykonany na specjalizowanych uk艂adach DSP ameryka艅skiej firmy Alesis. S艂r. 21.
Sterownik nap臋du CD-ROM *
Jest to druga cz臋艣膰 artyku艂u przeznaczona raczej dla wnikliwych konstruktor贸w. Skupiamy si臋 w niej na prezentacji sposobu obs艂ugi sterownika nap臋du HDD za pomocq 8-bitowego mikro-kontrolera. S艂r. 43.
Miniprojekty
W tym miesiqcu przedstawiamy dwa miniprojekty:
tor transmisji '^F
danych na podczerwieni oraz przystawk臋 pomiarowq AC do multimetr贸w. S艂r. 83.
XLAB - polski symulator uk艂ad贸w analogowych
Tw贸rca znanego Czytelnikom EP symulatora uk艂ad贸w nieliniowych - XLAB - ma pewnq, bardzo interesujqcq, propozycj臋 dla programist贸w. Szczeg贸艂y na s艂r. 59.
Bezprzewodowy sterownik w臋偶a 艣wietlnego
Doko艅czenie pierwszej cz臋艣ci artyku艂u, w kt贸rej przedstawiamy tajniki programowania sterownika. S艂r. 47.
Bity blokujqce i bezpieczniki konfiguracji w mi kro-kontrolerach AVR
Czyli s艂贸w kilka o bezpiecznikach i bitach konfiguracji, z kt贸rymi nie zawsze sobie radzq poczqtkujqcy projektanci. S艂r. 89. -y
Projekty Czytelnik贸w
Na s艂r. 97 przedstawiamy prostq przystawk臋 do klawiatury PC, kt贸ra pomo偶e zautomatyzowa膰 jej obs艂ug臋...
Pr贸bnik wody destylowanej
Prosty sygnalizator stopnia zanieczyszczenia wody, kt贸ry przyda si臋 w ka偶dym domu! S艂r. 33.
Uniwersalne interfejsy USB firmy FTDI
W artykule na s艂r. 51 przedstawiamy tajniki uk艂ad贸w interfejsowych USB firmy FTDI.
Programowa obs艂uga telefon贸w GSM firmy Nokia
W artykule na s艂r. 73 przedstawiamy protok贸艂 i spos贸b przygotowywania ramek danych do programowania telefon贸w GSM firmy Nokia.
Elektronika Praktyczna 9/2002
Wideoserwer FMS-3154R
Na s艂r. 136 przedstawiamy urzqdzenie szczeg贸lnie interesu-)qce dla tw贸rc贸w system贸w nadzoru wideo.
Lutowanie, czyli nie ma fraka bez nici
Co nieco o nowoczesnym lutowaniu piszemy na s艂r. 55.
Ministerownik logiczny EVIX PLC
Na s艂r. 93 przedstawiamy opis najnowszego opracowania firmy Evatronix. kt贸re - by膰 mo偶e -zagrozi panowaniu LOGO! na rynku... ^
IKA
Nr 9(117)
wrzesie艅 2002
14 21 27 33 33 43 47
.83
............93
............59
Projekly
Yampp 3 - sprz臋towy odtwarzacz MP3, cz臋艣膰
Cyfrowy procesor d藕wi臋ku................................................
Sterownik wy艣wietlacza multipleksowanego w VHDL.
Pr贸bnik wody destylowanej............................................
Konwerter USB<->RS232, cz臋艣膰 1....................................
Sterownik nap臋du CD-ROM, cz臋艣膰 2............................
Bezprzewodowy sterownik w臋偶a 艣wietlnego, cz臋艣膰 2
Miniprojekty
Tor transmisji danych na podczerwieni.........................
Przystawka pomiarowa AC do multimetr贸w................
JCur^^^^^^^^^^^^^^^^^^|
J臋zyk C dla mikrokontroler贸w 8051, cz臋艣膰 4...............
Propozycje
XI_AB- polski symulator uk艂ad贸w analogowych..........
Automaty
Ministerownik logiczny EVIX PLC................................................93
Wideoserwer FMS-3154R...........................................................136
Uniwersalne intertejsy USB firmy FTDI.........................................51
Bity blokujqce i bezpieczniki konfiguracji
w mikrokontrolerach AVR...........................................................89
Lutowanie, czyli niema fraka bez nici.....................................55
RozlutownicaDICDen-On SC7000Z.........................................65
Programowa obs艂uga telefon贸w GSM firmy Nokia................73
Trendy
na mikrokontrolery, cz臋艣膰 2..............................................69
Projekty Czytelnik贸w
Przycisk ANVdo PC, cz臋艣膰 T ......................................................97
Z kraju i ze 艣wiata........................................................119
Biblioteka
Kramik+Rynek.....................".........................................99]
-%- ^Listy.................................................................................TO5"
Ekspresowy Informator Elektroniczny.....................115
Wykaz reklamodawcow............................................118
Elektronika Praktyczna 9/2002
7
SPRZ臉T
Gdyby z z臋bami mog艂o i艣膰 tak g艂adko,
Diagnostyko, wymiona wodhwych element贸w, uruchomienie, regulacje i testy po dokonanej naprawie, to typowy zestaw czynno艣ci przeprowadzanych podczas naprawy serwisowej. Wszystkie one wymagaj膮 odpowiednich, specjalizowanych narz臋dzi, kt贸re powinny charakteryzowa膰 si臋 wysok膮 trwa艂o艣ci膮 i niewielkimi wymiarami.
Z uwagi na r贸偶norodno艣膰 stosowanych technologii monta偶u uk艂ad贸w elektronicznych - od prostego monta偶u element贸w przewlekanych na p艂ytach jednostronnych, przez technologi臋 p艂yt wielowarstwowych z metalizacj膮 otwor贸w, a偶 do monta偶u powierzchniowego - sprawne i bezpieczne usuni臋cie wadliwych element贸w wymaga u偶ycia specjalizowanego oprzyrz膮dowania. Przede
Rozlutownica DIC DEH-OH SC 7000Z - dane techniczne:
/zasilanie 220V, 50Hz,
/ pob贸r mocy 120W,
/ kornpresor pompka membranowa,
/ moc silnika 15W,
/ wytwarzane podci艣nienie GOOrnrnHg,
/ czas osi膮gni臋cia maksymalnego podci艣nienia 0,2s,
/ wydajno艣膰 kornpresora 151/min,
/ moc grzejnika 100W,
/ system stabilizacji Temperatury pomiar rezystancji grzejnika,
/ zakres Temperatur 350 500癈,
/ masa kompletnego urz膮dzenia 420g,
/ przew贸d zasilaj膮cy Trzyzylowy, silikonowy, odporny na wysokie Tempera Tury
wszystkim trzeba wykluczy膰 ryzyko uszkodzenia pod艂o偶a i s膮siaduj膮cych element贸w. Do niedawna mo偶na by艂o pr贸bowa膰 demonta偶u podzespo艂贸w za pomoc膮 standardowych lutownic, ale ze wzgl臋du na coraz mniejsze odst臋py pomi臋dzy wyprowadzeniami i coraz mniejsze wymiary obud贸w tego typu dzia艂ania coraz cz臋艣ciej s膮 skazane na niepowodzenie.
Rozlutownica DIC DEN-ON SC 7OOOZ jest narz臋dziem do demonta偶u element贸w elektronicznych, oferuj膮cym du偶膮 uniwersalno艣膰. Jej najwa偶niejsz膮 cech膮, decyduj膮c膮 o wyj膮tkowych walorach u偶ytkowych, jest unikatowa konstrukcja, polegaj膮ca na zastosowaniu zintegrowanego kompresora przy zachowaniu wzorcowej ergonomii. W艂a艣nie lekko艣膰 i por臋cz-no艣膰 pozwalaj膮 szczeg贸lnie poleci膰 j膮 do prac w warunkach "terenowych", tj. w miejscu u偶ytkowania naprawianego sprz臋tu. Wbudowany kompresor oraz mo偶liwo艣膰 przezbrajania rozlu-townicy tak, aby proces podgrzewania punktu lutowniczego i usuwania
cyny przebiega艂 optymalnie dla danego rodzaju elementu, pod艂o偶a i zastosowanej technologii monta偶u, to podstawy nieprzeci臋tnej funkcjonalno艣ci tego urz膮dzenia. Rozlutownica mo偶e wsp贸艂pracowa膰 z kilkoma rodzajami dysz do zasysania - umo偶liwiaj膮 one szybki i czysty demonta偶 element贸w przewlekanych z p艂yt zawieraj膮cych do dwunastu warstw z metalizacj膮 otwor贸w. Wyposa偶aj膮c rozlutownic臋 w dysz臋 do nadmuchu i prze艂膮czaj膮c
Rys.
Elektronika Praktyczna 9/2002
65
SPRZ臉T
tryb pracy kompresora, mo偶na - metod膮 wydmuchu gor膮cego powietrza -demontowa膰 wszystkie uk艂ady wykonane w technologii SMT. Odpowiedni zestaw zawieraj膮cy dysz臋, drut i ta艣m臋 stalow膮 z chwytakami, a tak偶e filtr nadmuchu, oferuje producent jako wyposa偶enie opcjonalne (rys. 1). Demonta偶 element贸w w obudowach PLCC i PQFP u艂atwiaj膮 opcjonalne, specjalizowane g艂owice rozlutownicze (rys. 2). Dzi臋ki nim podgrzewanie i uwalnianie ko艅c贸wek uk艂ad贸w nast臋puje r贸wnocze艣nie, a kompresor obs艂uguje przyssawk臋, podnosz膮c膮 usuwany element w chwili, gdy cyna osi膮ga stan p艂ynny (nie dzieje si臋 to jednak automatycznie - dzia艂anie przyssawki inicjuje operator).
Podczas pracy w trybie "klasycznym", tj. z dysz膮 zasysaj膮c膮, usuwane spoiwo gromadzi si臋 w zbiorniku zaopatrzonym w filtr. Zbiornik trzeba sukcesywnie opr贸偶nia膰, filtr wymienia si臋, gdy jego zanieczyszczenie powoduje zmniejszenie si艂y ssania.
U偶ywanie rozlutownicy jest proste i wygodne. 呕膮dan膮 temperatur臋 z przedzia艂u 350...500癈 nastawia si臋 za pomoc膮 pokr臋t艂a. W celu usuni臋cia lutu otaczaj膮cego ko艅c贸wk臋 demontowanego elementu, wprowadza si臋 j膮 w otw贸r dyszy roboczej, delikatnie dociskaj膮c dysz臋 do powierzchni p艂ytki w miar臋 topnienia spoiwa. W艂膮czenie w odpowiednim momencie kompresora skutkuje odess膮 -niem lutowia z powierzchni p艂ytki i z otworu - n贸偶ka elementu zostaje uwolniona. Demonta偶 element贸w SMD metod膮 wydmuchu gor膮cego powietrza przebiega nast臋puj膮co: po zamontowaniu odpowiedniej dyszy, ustawieniu trybu pracy kompresora oraz nastawieniu temperatury (zwykle 450...500癈), zbli偶a si臋 wylot dyszy na odleg艂o艣膰 1...2 cm od usuwanego elementu, uruchamia kompresor i kolistymi ruchami podgrzewa element i p艂ytk臋 wok贸艂 niego, po czym przysuwaj膮c dysz臋 do wyprowadze艅, doprowadza si臋 do roztopienia spoiwa, a element przytrzymuje i podnosi p臋set膮. Demonta偶 uk艂ad贸w scalonych wymaga zastosowania drutu lub ta艣my stalowej zainstalowanej w specjalnym chwytaku. Proces polega na rozgrzewaniu punkt贸w lutowniczych i uwalnianiu kolejnych n贸偶ek, poprzez przesuwanie ta艣my mi臋dzy nimi a pod艂o偶em.
Jak wspomniano, demonta偶 uk艂ad贸w PLCC i PQFP jest bardziej efektywny dzi臋ki u偶yciu specjalnych g艂owic, dzia艂aj膮cych na wyprowadzenia
Rys. 2
na ca艂ym obwodzie elementu. Do pracy w tym trybie kompresor ustawia si臋 na ssanie, ale nie b臋dzie on tym razem s艂u偶y艂 do usuwania spoiwa, lecz do podniesienia demontowanego komponentu za pomoc膮 przyssawki umieszczonej centralnie w g艂owicy.
Temperatur臋 ustawia si臋 w tym przypadku nieco wy偶sz膮
(o 5O...12O癈 w zale偶no艣ci od wymiar贸w g艂owicy) ni偶 oczekiwana temperatura robocza kraw臋dzi g艂owicy. Po rozgrzaniu, kraw臋dzie g艂owicy pokrywa si臋 cyn膮, aby zapewni膰 efektywne i r贸wnomierne przekazywanie ciep艂a. Nast臋pnie, nale偶y pewnym ruchem przy艂o偶y膰 g艂owic臋 do wyprowadze艅 uk艂adu, lekko dociskaj膮c w miar臋 topnienia lutowia, by w ko艅cu w艂膮czy膰 kompresor i unie艣膰 rozlutownic臋 wraz z odlutowanym elementem. Zainstalowana wewn膮trz g艂owicy spr臋偶yna odsuwa element od gor膮cych kraw臋dzi, eliminuj膮c mo偶liwo艣膰 jego przegrzania - mo偶e si臋 przecie偶 zdarzy膰, 偶e wylutowany element jest jednak sprawny, nale偶y wi臋c zadba膰 o zmniejszenie ryzyka uszkodze艅 uniemo偶liwiaj膮cych jego ponowne u偶ycie.
Wszystkie podejmowane profesjonalnie czynno艣ci powinny by膰 przede wszystkim efektywne i bezpieczne. Jako艣膰 i mo偶liwo艣ci techniczne u偶ywanych w pracy narz臋dzi s膮 jednymi z wa偶niejszych czynnik贸w, maj膮cych na to wp艂yw. Niekt贸re narz臋dzia maj膮 jeszcze w艂a艣ciwo艣膰 czynienia pracy przyjemn膮 - do takich w艂a艣nie mo偶na zaliczy膰 rozlutownic臋 SC 7000Z. Marek Kalasi艅ski
Dodatkowe informacje
Wi臋cej informacji mo偶na uzyska膰 w lirmie Renex, Tel. (54)231-10-05, www.renexcom.pl.
66
Elektronika Praktyczna 9/2002
TRENDY
W drugiej cz臋艣ci artyku艂u przedstawiamy dwa kolejne rodzaje atak贸w na zabezpieczenia stosowane w mikrokontrolerach - semi-inwazyjny oraz nieinwazyjny. Za miesi膮c, w ostatniej cz臋艣ci artyku艂u, poka偶emy, w jaki spos贸b autor artyku艂u poradzi艂 sobie z mikrokontrolerem z rodziny PIC12.
Atak semi-inwazyjny
Istnieje jeszcze trzeci, mo偶liwy do przeprowadzenia atak. nazywany w艂arna-ni9m serni-inwazyjnyrn. Na czym ono pol9ga? Tak. jak atak inwazyjny, wymaga zdj臋cia obudowy struktury mikrokon-trol9ra, poniewa偶 konieczny jest dost臋p do struktury uk艂adu. Warstwa pasywa-cyjna struktury pozostawiana jest nie-tkni臋t膮, poniewa偶 m9toda serni-inwazyj-na ni9 wymaga d9pasywacji lub tworze-nia kontakt贸w do wewn臋trznych linii po艂膮czeniowych. Dzieje si臋 tak dlat9go,
偶e do przeprowadzenia t9go rodzaju ataku ni9 s膮 konieczne mikrosondy. Atak s 9 rn i-inwazyjny mo艢9 by膰 przeprowadzony za pomoc膮 takich 艣rodk贸w jak 艣wiat艂o UV, promi9niowani9 X i innych rodzaj贸w promi9niowania jonizuj膮cego, Ias9r贸w i p贸l elektromagnetycznych. Mog膮 on9 by膰 u艣ywan9 indywidualni9 lub w po艂膮czeniu, wsp贸艂pracuj膮c ze sob膮 i wzmacniaj膮c efekt.
W por贸wnaniu do w艂amania nieinwazyjnego, atak S9m i-inwazyjny jest trudniejszy do przeprowadzenia, poni9wa艣
Tab. 1. R贸偶nice pomi臋dzy r贸偶nymi rodzajami pami臋ci i ich wp艂yw na bezpiecze艅stwo
Typ pami臋ci programu Metoda programowania Mo偶liwo艣膰 zmiany kodu programu Czas dost臋pu do pami臋ci (szybko艣膰 rdzenia CPU) Szybko艣膰 programowania/czas do skasowania Czas przechowywania danych
MaskROM przez producenta brak 10ns (100MHz) 2 4 Tygodnie/ brakmozhwo艣ci nieograniczony
OTPROM(do jednokrotnego programowania programator brak 100ns (10MHz) 50 s艂贸w na s/ brakmozhwo艣ci 10 lat
EPROM programator lub programowanie sn-csrcust do 100 razy 100ns (10MHz) 50 s艂贸w na s/ 10 30 minut 10 lat
EEPROM programator lub programowanie sn-csrcust do 10000 raz 200ns (5MHz) 100 s艂贸w nas/ 10ms 40 lat
FLASH EPROM programator programowanie sn-csrcust do 100000 razy 100ns (10MHz) 500 s艂贸w na s/ 5ms 100 lat
Ferroelectnc RAM programator lub programowanie sn-csrcust do 1013 razy 200ns (5MHz) 2MBnas/ nie jest konieczne 40 lat
Static RAM programowanie sn-csrcust nieograniczone 20ns (50MHz) 20MBnas/ nie jest konieczne 5 lat(czas zasilania bateryinego)
wymaga zdj臋cia obudowy uk艂adu. Nie jest jednak, wymagany tak drogi osprz臋t, jak do przeprowadzenia metody inwazyjnej. Dodatkowym atutem jest to, 偶e mo偶e on by膰 przeprowadzony w odpowiednio kr贸tkim czasie.
Przegl膮d mikrokontroler贸w
Podzielmy mikrokontrolery na dwie grupy: zwyczajn膮 i "bezpieczn膮". Mikrokontrolery "bezpieczne" przeznaczone s膮 do aplikacji militarnych, bankowo艣ci, zastosowa艅 medycznych itp. i u偶ywane przewa偶nie w formie smaricard lub modu艂ach bezpiecznych. Zapewniaj膮 r贸艣ne tryby pracy, r贸艣ne poziomy dost臋pu, szyfrowanie danych nie tylko tych u偶ywanych do komunikacji z otoczeniem, ale r贸wnie偶 do komunikacji wewn膮trz struktury samego uk艂adu. Rozpoznanie takiego uk艂adu wymaga specjalistycznego i bardzo drogiego osprz臋tu, wysokiego poziomu umiej臋tno艣ci i powinno by膰 dyskutowane na osobno艣ci.
Popularne mikrokontrolery jako zasad臋 r贸wnie偶 maj膮 zabezpieczenie przed odczytem programu i/lub danych, ale programi艣ci powinni by膰 ostro偶ni, poniewa偶 czasami te zabezpieczenia s膮
Elektronika Praktyczna 9/2002
69
TRENDY
bardzo s艂abe. Przed dyskusj膮 na temat mo偶liwo艣ci w艂ama艅 do popularnego mikrokontrolera lepiej b臋dzie podzieli膰 je na r贸偶ne klasy w zale偶no艣ci od typu pami臋ci programu. W 艂ab. 1 pok膮sano r贸偶nice pomi臋dzy r贸偶nymi rodzajami pami臋ci, jak r贸wnie偶 zalety i s艂abo艣ci ka偶dego z nich.
Jak ju偶 poprzednio wspomniano, s膮 dwie g艂贸wne metody w艂ama艅: inwazyjna i nieinwazyjna. Pierwsza z nich polega na wyj臋ciu struktury z obudowy, wystawieniu jej cz臋艣ci na dzia艂ania promieni lasera lub wi膮zki jon贸w. Wymaga r贸wnie偶 zastosowania specjalnych sond oraz mikroskopu. Atak nieinwazyjny to najcz臋艣ciej manipulowanie sygna艂ami zegarowymi oraz napi臋ciem zasilania w celu pozyskania okre艣lonej informacji.
Je艣li mikrokontroler ma pami臋膰 typu Mask ROM, w贸wczas z zasady jakikolwiek dost臋p do pami臋ci programu jest zabroniony ju偶 na etapie wytwarzania uk艂adu. Jednak istnieje pewna metoda dost臋pu do pami臋ci, poniewa偶 do kodu programu cz臋sto do艂膮czany jest program monitora, umo偶liwiaj膮cy dost臋p do pami臋ci programu tak, aby by艂a mo偶liwa weryfikacja poprawno艣ci jej zapisu. Generalnie bardzo trudno jest znale藕膰 ten program i metod臋 jego uruchomienia, tote偶 najszybsz膮 drog膮 okazuje si臋 otwarcie uk艂adu i odczyt pami臋ci programu optycznie. Czasami, aby zwi臋kszy膰 bezpiecze艅stwo, producenci u偶ywaj膮 w obr臋bie tej samej struktury tranzystor贸w o r贸偶nym progu za艂膮czenia zamiast obecno艣ci lub nieobecno艣ci tranzystora "w kom贸rce pami臋ci, w celu utworzenia bitu ostanie "0" lub "1". Taki rodzaj pami臋ci ROM nie mo偶e by膰 odczytany optycznie. W tym przypadku zawarto艣膰 pami臋ci mo偶e by膰 odtworzona przy pomocy techniki mikrosondowania lub przy u偶yciu selektywnych rozpuszczalnik贸w chemicznych.
Je艣li mikrokontroler wyposa偶ony jest w pami臋膰 OTP ROM, u偶ytkownik ko艅cowy mo偶e wybra膰 ustawienie zabezpieczenia programu podczas procesu pro-
gramowania. Jednak nawet pomimo w艂膮czenia zabezpiecze艅, nadal mo偶liwe jest u偶ycie zar贸wno techniki inwazyjnej, jak i nieinwazyjnej. Przy ataku inwazyjnym z zasady stosuje si臋 艣wiat艂o UV, wystawiaj膮c niekt贸re obszary struktury uk艂adu na jego dzia艂anie. Inn膮 metod膮 jest odci臋cie linii zabezpieczaj膮cych przy pomocy lasera albo te偶 odtworzenie stanu bezpiecznik贸w (securiiy fuses) na stacji do testowania struktur mikrokontroler贸w, b膮d藕 te偶 proste doprowadzenie sygna艂贸w poza bezpiecznikiem. Atak nieinwazyjny przebiega w klasyczny spos贸b (manipulowanie napi臋ciem zasilaj膮cym i sygna艂ami zegarowymi) do momentu a偶 wewn臋trzne obwody zabezpiecze艅 "zapomn膮" o zabezpieczeniu. Podobnie jest w przypadku mikrokontroler贸w z pami臋ci膮 EPROM, poniewa偶 ma ona t臋 sam膮 budow臋 - r贸偶nica polega tylko i wy艂膮cznie na umieszczeniu okienka przepuszczaj膮cego 艣wiat艂o UV w obudowie uk艂adu scalonego, bezpo艣rednio nad struktur膮 p贸艂przewodnikow膮.
Pami臋膰 EEPROM jest bardziej odporna na atak inwazyjny. Znacznie trudniej jest post臋powa膰 z 艂adunkami elektrycznymi ni偶 z tranzystorami. Jednak te same rodzaje ataku, co dla mikrokontrolera z pami臋ci膮 OTP, nadal mog膮 by膰 zastosowane. Nadal jest mo偶liwe pr贸bkowanie linii danych i adresowych wewn膮trz uk艂adu, chocia偶 wymaga to bardzo wysokich umiej臋tno艣ci. Niestety - do tego samego rodzaju pami臋ci atak nieinwazyjny mo偶e by膰 zastosowany bardzo 艂atwo. Dzieje si臋 tak dlatego, poniewa偶 kom贸rki pami臋ci EEPROM zachowuj膮 si臋 w bardzo specyficzny spos贸b i s膮 bardzo czu艂e na sygna艂y steruj膮ce oraz zale偶no艣ci czasowe pomi臋dzy tymi sygna艂ami. To pozwala w艂amywaczowi 艂atwo znale藕膰 spos贸b obej艣cia systemu zabezpiecze艅 na przyk艂ad przez wyzerowanie bit贸w blokuj膮cych dost臋p lub spowodowanie, 偶e obw贸d kontroli zabezpiecze艅 otrzyma b艂臋dne dane na temat stanu bezpiecznik贸w. Sytuacja ta powtarza si臋 r贸wnie偶 w przypadku u偶ycia pami臋ci typu Flash. Czasami zabezpieczenia tego typu mikrokontroler贸w mog膮 by膰 bardzo 艂atwo z艂amane, czasami jest to trudniejsze, ale sytuacja jest nadal z艂a. Tak wi臋c s膮 sposoby na z艂amanie zabezpieczenia uk艂adu mikrokontrolera u偶ywaj膮cego pami臋ci EEPROM lub Flash.
W przypadku mikrokontrolera z pami臋ci膮 FRAM wydaje si臋 by膰 nieco lepiej, jednak nadal mo偶na u偶y膰 metody inwazyjnej i mikrosond, aby odczyta膰 zawarto艣膰 pami臋ci.
Najbardziej odporne na ataki s膮 rnik-rokontrolery u偶ywaj膮ce pami臋ci RAM jako pami臋ci programu. Dzieje si臋 tak dlatego, poniewa偶 jakakolwiek pr贸ba w艂amania ko艅czy si臋 od艂膮czeniem na-
pi臋cia zasilania i utrat膮 danych. Podobnie jest w przypadku stosowania typowych metod nieinwazyjnych - zawarto艣膰 pami臋ci programu ulega najcz臋艣ciej uszkodzeniu. Ale z powodu b艂臋d贸w w konstrukcji mikrokontroler贸w oraz ich oprogramowaniu, r贸wnie偶 i tu mo偶liwy jest odczyt danych. Jako przyk艂ad pos艂u偶y膰 mo偶e obej艣cie zabezpieczenia produkowanego przez firm臋 Dallas Serni-conductor mikrokontrolera z grupy "bezpiecznej" DS5002FP.
Najwa偶niejsze jednak jest zabezpieczenie danych przed metod膮 nieinwazyjn膮, poniewa偶 generalnie jest ona ta艅sza i 艂atwiejsza do wykonania ni偶 inwazyjna. Je艣li mo偶esz napisa膰 program lub kupi膰 legalnie zaprogramowany mikrokontroler, b臋dzie to ta艅sze ni偶 wszelkie metody inwazyjne. Jednak niekt贸re metody ataku inwazyjnego mog膮 by膰 bardzo tanie. Dzieje si臋 tak dla przyk艂adu w贸wczas, gdy bity bezpiecze艅stwa mog膮 by膰 skasowane za pomoc膮 艣wiat艂a UV. Tak wi臋c konstruuj膮c urz膮dzenie z zastosowaniem mikrokontrolera, powiniene艣 wybra膰 ten, kt贸ry we w艂a艣ciwy spos贸b zabezpieczy twoj膮 prac臋. Nie jest mo偶liwe wytworzenie idealnego zabezpieczenia, ale mo偶esz uczyni膰 odczyt programu w twoim urz膮dzeniu na tyle trudny, 偶e nieop艂acalny finansowo.
Nieinwazyjne metody ataku dla mikrokontroler贸w popularnych
Kilka s艂贸w o sprz臋cie u偶ywanym do testowania zabezpiecze艅 mikrokontroler贸w. Najwa偶niejsz膮 jego cz臋艣ci膮 jest specjalny programator, kt贸rego konstrukcja i elementy umo偶liwiaj膮 gwa艂towne zmiany napi臋cia zasilania oraz napi臋膰 sygna艂贸w wej艣ciowych w szerokim zakresie. Blok sygna艂owy programatora generuje 32 sygna艂y cyfrowe o zmiennych poziomach logicznych - niekt贸re z nich s膮 typu open drain. Blok wej艣ciowy posiada 16 wej艣膰 cyfrowych o w艂a艣ciwych, sta艂ych poziomach logicznych. To jest ca艂kowicie wystarczaj膮ce dla wi臋kszo艣ci mikrokontroler贸w. Innymi elementami s膮 p艂ytki adapter贸w z gniazdami dla r贸偶nych typ贸w mikrokontroler贸w.
Przyk艂ad budowy takiego programatora przedstawiony jest na fot. 1. Osobn膮 kwesti膮 jest program s艂u偶膮cy do kontrolowania jego funkcji. Dla przedstawionego na fotografii urz膮dzenia by艂 to program napisany w j臋zyku C dla komputera PC.
W tab. 2 zestawiono wyniki pr贸b przeprowadzone dla r贸偶nych modeli mikrokontroler贸w. Nazwa mikrokontrolera umieszczona w nawiasie oznacza, 偶e nie by艂 on testowany, jednak spodziewane jest podobne zachowanie, jak w przypadku pozosta艂ych modeli z tej
70
Elektronika Praktyczna 9/2002
TRENDY
Tab. 2.
Ml kro kontroler Wyposa偶enie Metoda ataku Uwagi
Motorola HC05 MC68HC05B6 MC68HC05B8 MC68HC05B16 (MC68HC05B32) (MC68HC05X4) MC68HC05X16 MC68HC05X32 Mask ROM, EEPROM, ustawiany bit bezpiecze艅stwa typu EEPROM Zmiany napi臋cia zasilania lub zmiany sygna艂u zegarowego Ma zabezpieczenie przed zapisem przeciwko przypadkowemu skasowaniu pami臋ci danych
Motorola HC11 MC68HC11A8 MC68HC11E9 (MC68HC11E20) MC68HC11L6 (MC68HC11KA2) (MC68HC11KA4) (MC68HC11KG2) (MC68HC11KG4) Mask ROM, EEPROM, ustawiany bit bezpiecze艅stwa typu EEPROM Zmiana napi臋cia zasilania Bootloader z autokasowaniem pami臋ci danych, je艣li bit bezpiecze艅stwa jest ustawiony
MicrochipPIC PIC16C84 Pami臋膰 programu w EEPROM, EEPROM do zapisu danych, bit bezpiecze艅stwa typu EEPROM Przekroczenie napi臋cia zasilania lub jego zmiany Tryb Chip Erase kasuje jednocze艣nie bit zabezpieczenia wraz z programem i pami臋ci膮 danych
MicrochipPIC PIC16F83 PIC16F84 HCS512 Pami臋膰 programu w FLASH EPROM, EEPROM do zapisu danych, bit bezpiecze艅stwa typu EEPROM Zmiany napi臋cia zasilania Tryb Chip Erase kasuje jednocze艣nie bit zabezpieczenia wraz z programem i pami臋ci膮 danych
MicrochipPIC PIC16F84A PIC16F627 PIC16F628 (PIC16F870) (PIC16F871) (PIC16F872) PIC16F873 PIC16F874 PIC16F876 PIC16F877 Pami臋膰 programu w FLASH EPROM, EEPROM do zapisu danych, bit bezpiecze艅stwa typu EEPROM Zmiany napi臋cia zasilania Tryb Chip Erase kasuje jednocze艣nie bit zabezpieczenia wraz z programem i pami臋ci膮 danych. Ma wzmocniony mechanizm ochrony
Atmel 8051 AT89C51 AT89C52 AT89C55 AT89C1051 AT89C2051 (AT89C4051) Pami臋膰 programu w FLASH EPROM, bit bezpiecze艅stwa typu EEPROM Zmiany napi臋cia zasilania Tryb Chip Erase kasuje jednocze艣nie bit zabezpieczenia wraz z programem
Atmel AVR AT90S1200 AT90S2313 AT90S2323 (AT90S2343) AT90S8515 Pami臋膰 programu w FLASH EPROM, EEPROM do zapisu danych, bit bezpiecze艅stwa typu EEPROM Zmiany napi臋cia zasilania Tryb Chip Erase kasuje jednocze艣nie bit zabezpieczenia wraz z programem i pami臋ci膮 danych
NEC 78K/0S (uPD78F9026) (uPD78F9046) uPD78F9116 (uPD78F9136) Pami臋膰 programu typu FLASH EPROM, brak funkcji odczytu pami臋ci Zmiany napi臋cia zasilania Tryb Chip Erase kasuje pami臋膰 programu
Texas Instruments MSP430 MSP430F110 MSP430F112 MSP430F1101 MSP430F1121 MSP430F122 MSP430F123 MSP430F133 MSP430F135 MSP430F147 MSP430F148 MSP430F149 MSP430F412 MSP430F413 Pami臋膰 programu w FLASH EPROM, EEPROM do zapisu danych, programowalne has艂o dost臋pu do pami臋ci (typu EEPROM) Zmiany sygna艂u zegarowego Tryb Mass Erase kasuje has艂o wraz z pami臋ci膮 programu i danych
Nazwa mikrokontroiera umieszczona w nawiasie oznacza, 偶e nie by艂 on testowany, jednak spodziewane jest podobne zachowanie, jak w przypadku pozosta艂ych modeii z tej grupy.
grupy. Oczywi艣cie obecno艣膰 mikrokontrolera w tabeli nie oznacza, 偶e nowe wersje tego produktu nie maj膮 usuni臋tej wady systemu zabezpiecze艅.
Dla niekt贸rych z modeli mikrokont-roler贸w mo偶liwe jest u偶ycie kilku me-
tod omini臋cia zabezpiecze艅. Dla niekt贸rych z nich wyniki s膮 powtarzalne, dla innych mniej ni偶 20% test贸w zako艅czy艂o si臋 powodzeniem. U偶ycie wi臋kszo艣ci z metod publikowanych w Internecie ko艅czy艂o si臋 zazwyczaj
spaleniem nie tylko samego uk艂adu mikrokontrolera, ale r贸wnie偶 uszkodzeniem programatora. Sergiej Skorobogatov Opracowa艂 Jacek Bogusz, jacek.bogusz@ep.com.pl
Elektronika Praktyczna 9/2002
71
SPRZ臉T
Programowa obs艂uga telefon贸w GSM firmy Nokia
W EP 8/2002 szczeg贸艂owo opisali艣my polecenia
AT oraz spos贸b programowania modu艂贸w GSM,
Teraz skupiamy si臋 na ekspresowym przybli偶eniu
sposobu nawi膮zywania komunikacji z telefonami GSM
firmy Nokia, kt贸ra - nie tylko w naszym kraju -oferuje niezwykle wiele popularnych modeli telefon贸w.
Nokia wyprodukowa艂a ogromn膮 liczb臋 modeli telefon贸w kom贸rkowych. Niekt贸re z nich s膮 bardzo udane i ciesz膮 si臋 ogromn膮 popularno艣ci膮 r贸wnie偶 i dzisiaj. Takimi przyk艂adami s膮 np. nie艣miertelne modele: 5110, 3210, 6110. Na rynku ci膮gle pojawiaj膮 si臋 nowe modele tej firmy. Wa艣n膮 zalet膮 jest mo偶liwo艣膰 sterowania tych telefon贸w tym samym protoko艂em. Cz臋sto pojawiaj膮ce si臋 zapytania na grupie dyskusyjnej pl.misc.elektronika sk艂oni艂y mnie do opisania protoko艂u steruj膮cego tymi telefonami. Pytania cz臋sto dotyczy艂y mo偶liwo艣ci wysy艂ania, odbierania SMS (kr贸tkich wiadomo艣ci tekstowych) za pomoc膮 uk艂ad贸w mikroprocesorowych, czy sterownik贸w. Wielu z nas chcia艂oby wykorzysta膰 do swoich amatorskich uk艂ad贸w telefon kom贸rkowy, by m贸c zdalnie nim sterowa膰 lub by膰 informowanym o zdarzeniach ze swojego uk艂adu mikroprocesorowego. Do niedawna pod艂膮czanie i komunikacja z telefonem kom贸rkowym za pomoc膮 kabelka by艂a domen膮 tylko dla nielicznych wtajemniczonych guru. Natomiast proste w sterowaniu za pomoc膮 komend AT modu艂y GSM by艂y fi s膮) drogie i praktycznie niedost臋pne dla przeci臋tnego elektronika - amatora.
Obecnie firmy produkuj膮ce telefony kom贸rkowe coraz cz臋艣ciej implementuj膮 w swoich aparatach "kawa艂ek" oprogramowania pozwalaj膮cy sterowa膰 nimi za pomoc膮 komend AT. Opisane wcze艣niej nie艣miertelne 5110 fi podobne) maj膮 jedn膮 wa艣n膮 zalet臋 - mo艣na wej艣膰 w ich posiadanie za przys艂owiowe piwo lub po prostu wyci膮gn膮膰 z szuflady, gdzie le艣膮 niewykorzystane. W Internecie mo艣na znale藕膰 mn贸stwo schemat贸w in-
terfejs贸w s艂u艣膮cych do pod艂膮czenia telefonu kom贸rkowego do PC, czy mikro-kontrolera. Zajmijmy si臋 zatem opisem protoko艂u.
Ramki protoko艂u Nokia 5110, 3210, 6110
Transmisja danych z telefonami Nokia odbywa si臋 za pomoc膮 specjalnego protoko艂u sk艂adaj膮cych si臋 z ramek binarnych. Protok贸艂 ten nazywa si臋 w skr贸cie FEUS.
Opisany przeze mnie protok贸艂 pozwala na komunikacj臋 i dost臋p do wi臋kszo艣ci funkcji nast臋puj膮cych telefon贸w firmy Nokia: 3210, 3310, 8210/8850,
Modu艂 GSM firmy Ericsson typ GM47/48. Jest to przemys艂owa wersja te艂efonu kom贸rkowego, pozbawiona klawiatury i wy艣wietlacza, sterowanie odbywa si臋 za pomoc膮 komend AT poprzez z艂膮cze RS232.
61xx/51xx, 62xx, 7110, 3330, 3110/8110. Domy艣lne parametry transmisji protoko艂u s膮 nast臋puj膮ce: 115200 bps, 8 bit贸w danych, 1 bit stopu, bez parzysto艣ci. Niestety pr臋dko艣膰 transmisji jest do艣膰 wysoka i wiele popularnych mikrokont-roler贸w jednouk艂adowych z rodziny '51 nie potrafi sobie z ni膮 poradzi膰. Komunikacja z telefonem odbywa si臋 wed艂ug poni偶szego schematu: - Wysy艂amy ramk臋 z zapytaniem do telefonu kom贸rkowego.
- Telefon kom贸rkowy odpowiada ramk膮 potwierdzaj膮c膮 fpole okre艣laj膮ce typ ramki 7Fh).
- Telefon odpowiada ramk膮 z porcj膮 danych.
Przed pierwsz膮 transmisj膮 musimy przes艂a膰 ci膮g o warto艣ci 55h i d艂ugo艣ci oko艂o 230 bajt贸w (Typowe warto艣ci to 231, 233, 246, 250, 253). Transmisja ta ma na celu zsynchronizowanie uk艂adu odbiorczego telefonu. Pole odpowiedzialne za typ ramki w ramce danych jest identyczne jak w ramce 偶膮daj膮cej tych danych. Otrzyman膮 ramk臋 musimy potwierdzi膰 w okre艣lonym czasie, w przeciwnym wypadku telefon kom贸rkowy powt贸rzy ramk臋 jeszcze trzy razy i zako艅czy transmisj臋. Ka偶da ramka przesy艂ana pomi臋dzy mikrokontrolerem a tele- fonem kom贸rkowym NOKIA rozpoczyna si臋 preambu艂膮 -polu o warto艣ci lEh. Po preambule nast臋puj膮 dwa bajty okre艣laj膮ce kierunek transmisji:
OOh oCh do telefonu
OCh OOh z telefonu
Nast臋pny jest bajt okre艣laj膮cy typ ramki danych. Bajt 7Fh m贸wi nam, 艣e ramka jest ramk膮 potwierdzaj膮c膮. Nast臋pnym w kolej-
Rys. 1
Elektronika Praktyczna 9/2002
73
SPRZ臉T
Rys. 2
no艣ci jest bajt serowy. Po bajcie serowym nast臋puje pole okre艣laj膮ce d艂ugo艣膰 danych w ramce, tsw. payload length - gdy d艂ugo艣膰 jest nieparsysta na koniec danych dodajemy jeden bajt serowy. Po bajcie d艂ugo艣ci, je偶eli nie jest to ramka po-twierdsaj膮ca, umiesscsamy bajt serowy. Ramka ko艅csy si臋 licsnikiem ramek oras dwoma bajtami sumy kontrolnej. Gdy d艂ugo艣膰 ramki jest nieparsysta prsed dwoma bajtami sumy kontrolnej pojawia sie. bajt o warto艣ci OOh. Pierwssy s bajt贸w sumy kontrolnej utworsony jest sa pomoc膮 funkcji XOR s wssystkich nieparsys-tych bajt贸w. Drugi bajt sumy kontrolnej jest utworsony sa pomoc膮 funkcji XOR s wssystkich parsystych bajt贸w. Poniewa偶 XOR odbywa sie. dla tej samej ilo艣ci bajt贸w (parsystych i nieparsystych) - st膮d pow贸d istnienia dodatkowego pola w prsypadku nieparsystej d艂ugo艣ci. Lics-nik ramek to bajt sk艂adaj膮cy sie. z warto艣ci 40h fstarssy p贸艂bajt), oras cyklicsnie smieniaj膮cej sie. licsby od 0 do 7 (m艂odszy p贸艂bajt). Pole to jest swi臋kssane o jeden po wys艂aniu ramki, nie jest natomiast swi臋kssane po retransmisji ramek na skutek b艂臋d贸w. W ramkach potwier-dsaj膮cych bajt - licsnik ramek sk艂ada si臋 tylko s numeru (odpowiada on numerowi s potwierdsanej ramki). Eardsiej snacs膮-cy p贸艂bajt jest serem.
Wysy艂anie SMS-贸w
Aby srosumie膰 struktur臋 ramki i spos贸b wysy艂ania SMS sa pomoc膮 telefonu NOKIA najlepiej skorsysta膰 s napisanego prsese mnie programu. Jego g艂贸wne okno pok膮sano na rys. 1. Dla podanego centrum SMS, numeru telefonu odbiorcy, oras tre艣ci SMS-a (pok膮sane na rys. 2) program generuje poni艣ss膮 ramk臋:
[Oxle]--------------Preambu艂a
[0x00] [0x0c]-----Ramka 膰o telefonu
[0x02]----------------Typ ramki
[0x00]
[0x61]---------------D艂ugo艣膰 ramki
[0x00] [0x01] [0x00] -Nag艂贸wek ramki [0x01][0x02] [0x00]
-------------------Centrum SilS---------------------
[0x07]--------------D艂ugo艣膰 numeru
[0x91]--------------Typ $frj.meru flujraru
--------------Spakowany numer
[0x84 ] [0x06 ] [0x04 ] [0x01] [0x01] [0xfl] [0x00] [0x00] [0x00] [0x00]
[0x11]--------------Format pola wa偶no艣ci SKlSa
[0x00]---------------Message Reference
[0x00]--------------Identyfikator protoko艂u
TwiliHH ll艂ln 艁llfl
lUKlB OtDD DMJD
MB |OjdH (Mfc bdlZ
DkOI 0x00 DkOCI 0x00 DkDD 0x02 0x01 [1x41 DxOD lbL1
Wyiytonymi ttlB UflO rnktokniloi DXDC 膮 Jako maBa_3: LMJE &0D 5(07 5tt 0 DMJ1 UDO dxzd LHtZ udo ^HO
Nolda potwfada aaba
DK1S DROO LADO te/T MB h flJZ |CMS |D C1C 0X73 -
OdbifirpawyJigj mmfciimHii
Mfl
IlUO
?f EbiDD
Nok艅 potwionia odebran膮 mnkq:
e JDDC DUD
Nu^jHnDodaowiBdaiBmk膮:
BOE onm DKS4 tom OKU Ofll DKDB OOO DK11

lAflfl 0X4T UX4艂l Ux4艂艂 UX41 UX34 UX38 IKB Uttt OO4

BOB 0O1 0X90 UW 艁K94 0X94 0X30 0X90 007 O35

UDO OPifl Itt46 UZd Dtil OOO tttW DK3& 0X30
DOZ DK30 0X35 DE3S DKOa QO4 0^ 003 0X30 ooa

0*30 CJK35 ttn2B oaz 0x30 0x00 b9d tott om 0*40
WUD
W o^nwia艁d na TB艅k膮_camneet_A lebim ot^ta icm. 1MET, modd i
74
Elektronika Praktyczna 9/2002
SPRZ臉T
IOI1I0IOI0I0I0I1I IOI1IOIOIOIOI1IOI IOI1IOIOIOIOI1I1I
W A' B' C ^
IOI1IOIOIOIOIOI1I I1I1I1IOIOIOIOI1I IOIOIOI1IOIOIOIOI
II Rys. 4
etapl
101110101010101 li A
OIOOOOIO B

01000011 C = lolololilolololol
ShHI 2x w prawo etap 3
iimiioioioioiii
Rys. 3
[OxfO]-------------Schemt kodowania SiiSa i?, & bit)
[0x3c]-------------Liczba znak贸w w
-----------------Telefon adresata--------------
[0x01)]-------------D艂ugo艣膰 numeru
[0x91]--------------Typ IfaJTiSru nv.N8tv.
--------------Spakowany numer
[0x84 ] [0x06 ] [0x20 ] [0x00 ] [0x03 ] [OxfO ] [0x00] [0x00] [0x00] [0x00]
[0x32]--------------Wa偶no艣膰 SMS-a
-----------------Sze艣膰 bajt贸w zerowych
[0x00] [0x00] [0x00] [0x00] [0x00] [0x00]
----------Spakowana, tresc SKlSa-----------------
[0x^4] [0X37] [0x48] [0x51] [0x9e] [0xO3] [0x41] [0xO3] [0xe6] [0x14] [044] [O艂flf] [O艂cf] [0xL] [0xtf] [0x71)] [0xOe][0x05][0xfe] [0xc2] [ttcb] [0(63] [0X75] [0>98] [OM] [0x4e] [0x97] [0x41] [0x64] [0x76] [0x18] [0x54] [0^4] [0X97] [0x17] [0x74] [0x0] [0xOh] [0x&][0x5e][0xa7] [0x41] [0x50] [0x79] [0x78] [0x4O] [Oxcf] [0x8f] [0xf5] [Oxee] [0x1)2] [0xOa] [0x05]
[0x01]
[0x43]----------------flfajttsr sekwencji
[0x00]--------------Bajt dodatkowy
[0x77] [0x11]---------Dwa bajty CRC
Obja艣nienia dotycz膮ce p贸l ramki znajduj膮 si臋 w tab. 1.
Kodowanie snak贸w w SMS odbywa si臋 w trybie siedmiobitowym. Ka偶dy snak tekstu wykorzystuj膮cego standardowe snaki alfabetu 艂aci艅skiego, csyli tsw. plain text, daje si臋 opisa膰 sa pomoc膮 7 bit贸w. Przed "w艂o偶eniem" tekstu do 8-bitowej ramki odbywa si臋 proces pakowania wed艂ug schematu pok膮sanego na rys. 3, dsi臋ki kt贸remu uzyskujemy kompresj臋 li es by przesy艂anych danych o warto艣ci nieco ponad 14%.
Ka艣d膮 liter臋 alfabetu 艂aci艅skiego fplus niekt贸re snaki) mo偶emy zapisa膰 wykorzystuj膮c do tego celu siedem bit贸w. Bit 贸smy pozostaje niewykorzystany - w jego
Tab. 1. Obja艣nienia dotycz膮ce poi ramki
D艂ugo艣膰 ramki Obliczana | est od po la za polem d艂ugo艣ci az do dw贸ch bajt贸w CRC (CRC me s膮 wliczane do d艂ugo艣ci ramki)
Pole okre艣la] 膮ce numer SMS D艂ugo艣膰 w znakach (liczba cytr)
Typ numeru 0x91 - mi臋dzynarodowy (wtormacie +486 ) 0x81 - nieznany
Pole wa偶no艣ci 1 godzina 0x0b 6 godzin G^7-24 godziny GraTC 3 dni 0x33 tydzie艅 0xad rnaksyrnalnyczas Oxtt
Message Reference SMS tekstowy 0x00 Faks 玿L2 Wiadomo艣膰 g艂osowa I)x24" Wiadomo艣膰 w tormacie ERMES 0x25 Pager 0x26 Email w tormacie NOKIA 8110(UCI) 0x2d Email 0x32 Wiadomo艣膰 w tormacie X400 0x31
Schemat kodowania SMS W SMS dane s膮 siedmiobitowe Ten tryb jest u偶ywany do przesy艂ania wiadomo艣ci tekstowych Pole Message Reference ma wtedy wart o艣膰 0x00 Kodowanie 8 bit dla pozosta艂ych warto艣ci Message Rsfsrsncs
Numer sekwencji Sk艂ada si臋 z 0x40 (starszy p贸艂bajt), oraz liczby 0 7 (m艂odszy p贸艂bajt) M艂odszy p贸艂bajtjest ka偶dorazowo inkrementowany po przes艂aniu ramki W przypadku retransmisji warto艣膰ta nie jest zwi臋kszana
mie]sce umieszczamy na]mnie] znacz膮cy bit z drugiego znaku [etap 1). Drugi znak przesuwamy o jeden bit w lewo. Mamy teraz dwa bity wolne na najbardziej znacz膮cej pozycji znaku drugiego. Umieszczamy tam dwa bity z najmniej znacz膮cej pozycji znaku trzeciego [etap 2).
Trzeci znak przesuwamy o dwa bity wprawo fo dwa, poniewa偶 dwa bity przenie艣li艣my do znaku drugiego). W ten spos贸b mamy trzy bity wolne na najbardziej znacz膮cej pozycji [etap 3). I tak dalej. Zakodowane dane pokazano na rys. 4.
Dzwonienie
Za pomoc膮 prezentowanego wcze艣niej programu mo偶na tak偶e przygotowa膰 ramk臋 danych umo偶liwiaj膮c膮 wybranie numeru telefonu abonenta i ustali膰 po艂膮czenie foniczne. W tym celu w g艂贸wnym oknie programu frys. 1) nale偶y wybra膰 Zadzwo艅 i w wy艣wietlonym oknie frys. 5) poda膰 numer abonenta. Program generuje ramk臋 jak poni偶ej:
[ 0xle ]-------------Preambu艂a
[0x00] [0x0c]---Ramka do telefonu
[0x01]--------------Typ ramki
[0x00]
[0x15]--------------D艂ugo艣膰 ramki
[0x00] [0x01] [0x00]- Nag艂贸wek ramki
[0x01]
[0x06]--------------D艂ugo艣膰 numeru telefonu
-----------Numer telefonu------------------------
[0x31][0x32][0x31][0x32][0x31][0x32]
[0x05] [0x01][0x01][0x05][0x81][0x01][0x00][0x00][0x01]
[0x40]-------------Numer sekwencji
[0x00]-------------Bajt dodatkowy
[0x63][0xal]--Dwa bajty CRC
D艂ugo艣膰 numeru telefonu - licsba snak贸w (cyfr) numeru telefonu abonenta do kt贸rego chcemy si臋 dodzwoni膰
Telefon - numer telefonu jest inaczej kodowany ni偶 w przypadku SMS-a. Tutaj ka偶dy bajt ramki, to kolejny kod ASCII cyfry s numeru telefonu. Pawe艂 Dienwebel
Literatura
[1]. Strona Marcina Wi膮cka - http://mar-
cin-wiacek.fkn.pl [2]. http://www.gnokii.org
Rys. 5
Dodatkowe iiformacje
Oprogramowanie prezentowane w artykule wraz z kodami 偶r贸dtowymi opublikujemy na CD-EP10/2002B, jest ono dost臋pne Tak偶e na naszej stronie w dziale Downbatf>Dokumentacje.
76
Elektronika Praktyczna 9/2002
MINIPROJEKTY
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.
Tor transmisji danych na podczerwieni
Prezentujemy proste
uk艂ady pozwalaj膮ce
zestawi膰 tor
transmisyjny
z zastosowaniem
podczerwieni, do
przesy艂ania danych
cyfrowych na odleg艂o艣膰
kilku., .kilkunastu
metr贸w, przede
wszystkim
w pomieszczeniach
zamkni臋tych.
Rekomendacje:
uniwersalne urz膮dzenie
umo偶liwiaj膮ce
bezprzewodowe
przesy艂anie danych
cyfrowych na niewielkie
odleg艂o艣ci.
Z uk艂ad贸w mo偶na tak偶e korzysta膰 na otwartej przestrzeni, ale uzyskamy wtedy mniejszy zasi臋g. Spowodowane to jest brakiem odbi膰 sygna艂u od 艣cian czy sufitu, kt贸re zwi臋kszaj膮 zasi臋g dzia艂ania w pomieszczeniach zamkni臋tych i zmniejszaj膮 kierunko-wo艣膰 emitowanej przez nadajnik wi膮zki podczerwieni.
Schemat elektryczny proponowanych uk艂ad贸w toru zamieszczono na rys. 1. S膮 to: nadajnik i odbiornik, pracuj膮ce z modulowan膮 fal膮 no艣n膮 w postaci promieniowania podczerwonego. Nadajnik, kt贸rego schemat jest w g贸rnej cz臋艣ci rysunku, zbudowano w oparciu o scalony multiwibrator NE555. Cz臋stotliwo艣膰 pracy generatora okre艣lona jest warto艣ciami pojemno艣ci Cl i rezystancji Rl, R2 i PRl. Sygna艂em z wyj艣cia Q generatora sterowana jest bramka tranzystora MOSFET - Tl, kt贸ry zasila cztery po艂膮czone szeregowo diody IRED D1...D4. U偶ycie tranzystora MOSFET pozwala na zastosowanie relatywnie du偶ego pr膮du p艂yn膮cego przez diody nadawcze, co z kolei powoduje zwi臋kszenie zasi臋gu nadajnika.
Sygna艂 kluczuj膮cy prac臋 nadajnika podawany jest z uk艂adu steruj膮cego na wej艣cie INPUT, a nast臋pnie do-
prowadzany do wej艣cia zezwolenia generatora. Poziomem aktywnym wej艣cia jest poziom wysoki (przy poziomie niskim wystrzymywana jest praca generatora). Nadajnik musi by膰 zasilany napi臋ciem sta艂ym z przedzia艂u 5...15 VDC.
Odbiornik toru transmisyjnego zbudowano z zastosowaniem jednego, dobrze nam znanego uk艂adu scalonego, kt贸rym jest popularny odbiornik podczerwieni typu TFMS5360. Uk艂ad zawiera w swojej strukturze fotodiod臋 odbiorcz膮, wzmacniacz wst臋pny, uk艂ad ARW (Automatycznej Regulacji Wzmocnienia), filtr o bardzo stromej charakterystyce przepuszczaj膮cy jedynie sygna艂 o w艂a艣ciwej cz臋stotliwo艣ci oraz uk艂ad detekcyjny.
Na rys. 2 przedstawiono mozaik臋 艣cie偶ek dw贸ch p艂ytek obwod贸w drukowanych oraz rozmieszczenie na nich element贸w. P艂ytki zosta艂y zaprojektowane na laminacie jednostronnym, a ich zmontowanie nie wymaga szczeg贸艂owego komentarza. Zmontowany z dobrych element贸w uk艂ad nie wymaga 偶adnego uruchamiania, ale jedynie regulacji polegaj膮cej na ustawieniu za pomoc膮 potencjometru monta偶owego PRl cz臋stotliwo艣ci fali no艣nej generowanej przez IC2. Je偶eli
CON1
Input
IC1 TFMS5360

Rys. 1
C6 lOOnF
100uF
IC3 78L05
R4 2,2k
TZ BC548
GND
Rys. 2
posiadamy miernik cz臋stotliwo艣ci, to regulacja b臋dzie polega艂a wy艂膮cznie na ustawieniu za pomoc膮 potencjometru monta偶owego PRl cz臋stotliwo艣ci pracy generatora sygna艂u no艣nego. Cz臋stotliwo艣膰 ta zale偶y od typu zastosowa-
WYKAZ ELEMENT脫W
Rezystory
PRl: 22kQ
Rl, R2: lOOka
R3, R5: 22Q
R4: 2,2kQ
Kondensatory
Cl: lOOpF
C2: lOnF
C3: 1000^F/16V
C4, C贸: lOOnF
C5: 100^F/10V
P贸艂przewodniki
D1...D4: LED IRED
IC1: TFMS5360
IC2: NE555
IC3: 78L05
Tl: BUZ10
T2: BC548 lub odpowiednik
R贸偶ne
CON1, CON2: ARK3
(3,5mm)
P艂ytka drukowana jest dost臋pna w AVT - oznaczenie AVT-1350.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: h ttp ://www. ep.com.pl/?p dfl wrzesienO2.htm.
Elektronika Praktyczna 9/2002
83
MINIPROJEKTY
nego uk艂adu TFMS (najcz臋艣ciej stosowany jest uk艂ad TFMS5360 o cz臋stotliwo艣ci roboczej 36kHz). W przypadku braku miernika cz臋stotliwo艣ci mo偶emy poradzi膰 sobie nast臋puj膮co:
1. W艂膮czamy nadajnik i doprowadzamy na jego wej艣cie sygna艂 steruj膮cy. Mo偶e
to by膰 sygna艂 o cz臋stotliwo艣ci ok. lkHz pobierany z wyj艣cia generatora TTL (przy napi臋ciu zasilania 5V). Nast臋pnie pokr臋caj膮c potencjometrem monta偶owym PRl staramy si臋 uzyska膰 poprawny odbi贸r sygna艂u w odbiorniku, stwierdzony na kolektorze tranzystora TS (np.
oscyloskopem) albo sygnalizowany 艣wieceniem si臋 diody LED w艂膮czonej prowizorycznie pomi臋dzy kolektor tranzystora T2 i napi臋cie zasilania (oczywi艣cie, z rezystorem ograniczaj膮cym jej pr膮d).
2. Nast臋pnie odsuwamy odbiornik od nadajnika a偶 do
zaniku transmisji. Po ponownej regulacji cz臋stotliwo艣ci fali no艣nej powinni艣my znowu uzyska膰 poprawny odbi贸r.
3. Om贸wione wy偶ej czynno艣ci powtarzamy kilkukrotnie, a偶 do uzyskania optymalnego dostrojenia cz臋stotli-wo艣ci no艣nej nadajnika.
Zbigniew Raabe
84
Elektronika Praktyczna 9/2002
MINIPROJEKTY
Przystawka pomiarowa AC do muItimetr贸w
Prosta przystawka
umo偶liwia rozszerzenie
zakresu pomiarowego
elektronicznego miernika
cyfrowego. Mo偶liwy jest
pomiar napi臋膰 AC
w zakresie 0...1000mV
oraz cz臋stotliwo艣ci od
400Hz do 40kRz.
R ekom en da cje:
przystawka do tanich
multimetr贸w cz臋sto
pozba wio nych
mo偶liwo艣ci wykonywania
pomiar贸w napi臋膰 i
pr膮d贸w zmiennych o
niewielkich warto艣ciach.
Przystawk臋 opracowali艣my z my艣l膮 o stosowaniu do wsp贸艂pracy z tanimi miernikami uniwersalnymi, kt贸re do艣膰 cz臋sto s膮 pozbawione mo偶liwo艣ci pomiaru napi臋膰 i pr膮d贸w zmiennych. Na rys. 1 przedstawiono schemat elektryczny uk艂adu. Budowa przystawki zosta艂a oparta na uk艂adzie scalonym TL074C, w kt贸rym zintegrowano cztery wzmacniacze operacyjne. Trzy z nich wykorzystano w torze pomiarowym, a jeden w zasilaczu dostarczaj膮cym napi臋膰 symetrycznych nie-zb臋dny ch do praw id艂ow ego dzia艂ania przystawki.
偶e uruchomienie uk艂adu ogranicza si臋 do pod艂膮czenia go do miernika oraz w艂膮czenia zasilania. Jedyn膮 czynno艣ci膮 regulacyjn膮 jest wyzerowanie przystawki, czyli ustawienie wskazania miernika na 0 (zakres pomiarowy 2V), za pomoc膮 potencjometru POT1. Aby wskazania by艂y mo偶liwie jak najdok艂adniejsze, nale偶y przy monta偶u przystawki u偶y膰 rezystor贸w o jak naj-
Schemat monta偶owy p艂ytki drukowanej pokazano na rys. 2. Monta偶 uk艂adu to kilka mi艂ych chwil sp臋dzonych z lutownic膮, zw艂aszcza
POT1
Wijfali
mniejszej tolerancji (np. 1%). Aby korzystanie z przystawki nie stanowi艂o problemu, mo偶emy bezpo艣rednio do wej艣cia i wyj艣cia dolutowa膰 przeci臋te na p贸艂 oryginalne przewody pomiarowe.
Krzysztof G贸rski, AVT krzysztof.gorski@ep.com.pl
WYKAZ ELEMENT脫W
Rezystory
Rl, R4, R5, R12: 1 kQ
R2, R8: 10MD
R3, R7: lkG/1%
R贸: 12,lkG/17o
R?, RIO: lOOkO
Rll: 100D
P0T1: lOOkO
Kondensatory
Cl: 1 OO|aF
C2, C4: lOOnF
C3: 47 pF
CS: l^F
P贸艂przewodniki
Dl: 1N4148
D2, D3: BATS5
US1: TLC274 lub TL074C
P艂ytka drukowana jest dost臋pna w AVT - oznaczenie AYT-1349.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl wrzesienQ2.htm.
Rys. 1
Rys. 2
84
Elektronika Praktyczna 9/2002
PODZESPO艁Y
Bity blokuj膮ce i bezpieczniki konfiguracji w mikrokontrolerach AVR
Wprowadzenie
Nowoczesne mikrokontrolery oferuj膮 wiele opcji, kt贸re usta-
Tab. 1. Mo偶liwe nastawy bit贸w blokuj膮cych oraz konsekwencje ich ustawienia
Stan bit贸w blokuj膮cych Rodzaj w艂膮czonego zabezpieczenia
Tryb (Mod臋) LB1 LB2
1 1 1 Niezaprograrnowane, zabezpieczenie wy艂膮czone
2 0 1 Zapis programu zabroniony, odczyt )est dozwolony
3 0 0 Zapis i odczyt programu s膮zabronione
wiane s膮 w zale偶no艣ci od potrzeb konkretnej aplikacji. Umo偶liwia to producentom wytwarzanie jednego mikrokontrolera o nazwie np. ATMe-galO3 maj膮cego mo偶liwo艣膰 pracy zar贸wno z generatorem zegarowym w postaci zewn臋trznych element贸w RC ustalaj膮cych cz臋stotliwo艣膰 jego pracy, jak i wewn臋trznych, nie wykluczaj膮c r贸wnie偶 mo偶liwo艣ci zastosowania oscylatora kwarcowego. Jest to sytuacja diametralnie inna od tej spotykanej w przesz艂o艣ci, gdy dla przyk艂adu niekt贸re mikrokontrolery wyposa偶one by艂y w uk艂ad watchdog ustawiany albo programowo, albo dzia艂aj膮cy bez wzgl臋du na to, czy by艂 potrzebny, czy te偶 nie i wr臋cz przeszkadza艂 w poprawnym funkcjonowaniu aplikacji. Czasami takie mikrokontrolery r贸偶ni艂y si臋 tylko obecno艣ci膮 lub brakiem pewnej literki w nazwie wyrobu i nie maj膮c 艣wiadomo艣ci tego, co si臋 kupuje, mo偶na by艂o zap艂aci膰 za rzecz, kt贸rej zupe艂nie
Jaka jest r贸偶nica pomi臋dzy
tzw. lock bit (bit zamykaj膮cy,
blokuj膮cy dost臋p) a fuse
(bezpiecznikiem)? Jakie s膮
konsekwencje ich ustawiania
czy te偶 kasowania? Czym
r贸偶ni膮 si臋 mi臋dzy sob膮 i czy
ich ustawienia s膮 odwracalne?
W artykule postaram si臋
odpowiedzie膰 na takie pytania.
My艣l臋, 偶e ta wiedza bardzo
przyda si臋 zw艂aszcza
stawiaj膮cym pierwsze kroki
w dziedzinie mikrokontroler贸w
i pos艂u偶y lepszemu
zrozumieniu podstawowych
zasad korzystania z dost臋pnych
za b ezpi e cze艅.
nie dawa艂o si臋 u偶y膰. Mo偶liwo艣膰 konfiguracji mikrokontrolera jest wi臋c wygodna zar贸wno dla producenta, jak i dla konstruktor贸w. W niekt贸rych modelach mikrokontroler贸w zasadnicza r贸偶nica pomi臋dzy lock bit a fuse cz臋sto
Tab. 2. Dost臋pno艣膰 bezpiecznik贸w w trybach programowania
Mikrokontroler RCEN SPIEN RSTDISBL FSTRT BODEN BODLEVEL CKSEL n..O EESAVE SUT n..O BOOTRST BOOTSZ n..O INTCAP
AT90S1200 R R - - - - - - - - - -
AT90S2313 - R - R - - - - - - - -
AT90S/LS2323 - R - R/S - - - - - - - -
AT90S/LS2343 - R - - - - - - - - - -
AT90S/LS2333 R/S R - - R/S R/S R/S - - - - -
AT90S/LS4433 - R - - R/S R/S R/S - - - - -
AT90S8515 - R - R - - - - - - - -
AT90S/LS8535 - R - R/S - - - - - - - -
ATtiny11 - - H/S H/S - - - - - - - -
ATtmy12 - H/S1 H/S3 - H/S H/S H/S - - - - -
ATtmy15 - H/S1 H/S3 - H/S H/S H/S - - - - -
ATtmy28 - - - - - - - - - - - R
ATmega103 - R - - - - - R/S R/S - - -
ATmega161 - R - - P/S P/S P/S - - R/S - -
ATmega163 - R - - P/S P/S P/S - - R/S R/S -
R -programator r贸wnoleg艂y, S -programator szeregowy (r贸wnie偶 programowanie insystem),
H -programowanie w Trybie HighVoitage SerialProgramming(HVSP)
1 Bezpiecznikiest dost臋pny w Trybie programowania przez SPI, |ednak|ego wyzerowanie spowoduie, ze dost臋p w Trybie programowania przez SPI nie b臋dzie
mo偶liwy
3 Bezpiecznik jest dost臋pny w Trybie programowania przez SP I, jednak jego ustawienie spowoduje, ze dost臋p w Trybie programowania przez SPI nie b臋dzie
mo偶liwy
Elektronika Praktyczna 9/2002
89
PODZESPO艁Y
Tab. 3. Funkcje bezpiecznik贸w
polega na zupe艂nie odmiennym wykonaniu. Na przyk艂ad bezpieczniki ifuse) s膮 wykonywane jako mikropo艂膮czenia w strukturze uk艂adu scalonego (fot. 1) albo te藕 do struktury uk艂adu scalonego i fizycznie uszkadzane przy pomocy pr膮du elektrycznego w czasie programowania. Takie przepalone po艂膮czenie ju藕 nie daje si臋 odtworzy膰 - uk艂ad nie nadaje si臋 do ponownej zmiany danej nastawy czy te藕 zmiany zawarto艣ci pami臋ci programu.
Inaczej jest z bitami blokuj膮cymi (lock bits). Ich ustawianie czy te藕 kasowanie przypomina w艂膮czanie i wy艂膮czanie opcji w programie -aplikacji. Wykonane s膮 one najcz臋艣ciej w technologii EEPROM, mo偶liwa jest wi臋c modyfikacja ich stanu. A jak to jest w przypadku mikiokontioler贸w z rodziny AVR?
Mikro kontrolery AVR
Ka偶dy miki oko艅 troi er z tej rodziny posiada dwie grupy ustawianych bit贸w. S膮 to bity blokuj膮ce i bezpieczniki. Nazwa bezpiecznik jest w przypadku AVR bardzo myl膮ca, poniewa偶 ustawienie bezpiecznika jest odwracalne. Daje si臋 nim manipulowa膰 podobnie jak nastawami bit贸w blokuj膮cych.
W momencie zakupu uk艂adu od producenta zar贸wno bezpieczniki, jak i bity blokuj膮ce znajduj膮 si臋 w stanie logicznym wysokim (1). Programowanie ich polega na zmianie stanu z wysokiego na niski (0). Zar贸wno jedna, jak i druga grupa opcji nie jest umieszczona w normalnie dost臋pnym obszarze pami臋ci EEPROM czy te偶 Flash. Mog膮 one by膰 jednak ustawiane z poziomu aplikacji, za wyj膮tkiem bit贸w odpowia-
Nazwa bezpiecznika Opis funkcji
RCEN RC Oscillator Enable Poprzez ustawienie tego bezpiecznika wewn臋trzny oscylator RC rnoze by膰 w艂膮czony jako g艂贸wny zegar mikrokontrolera Niekt贸re AVR s膮 dostarczane z tym bezpiecznikiem ustawionym, inne nie Dlatego Tez nale偶y zawsze sprawdza膰 domy艣lny stan Tego bezpiecznika w odpowiednie] karcie katalogowe] albo tez ustawia膰 go tuz po zakupie
SPIEN Serial Proarammina Interlace Enable
Ustawienie bezpiecznika umo偶liwia programowanie uk艂adu poprzez interfejs SPI Je艣li bezpiecznik jest skasowany, interfejs SPI nie funkcjonuje i nie jest mo偶liwe programowanie uk艂adu "m-system"
RSTDISBL Reset Disable Ustawienie powoduje zmian臋 lunkcji wyprowadzenia RESET W niekt贸rych AVR wyprowadzenie RESET zmieniane jest w Typow膮 lini臋 wej艣cia/wyj艣cia odpowiedniego portu, w innych w lini臋 Tylko wyj艣ciow膮 Szczeg贸艂yzawszepodanes膮w odpowiedniej karcie katalogowej
FSTRT Fast Start Bezpiecznik kontroluje czas, po jakim startuje CPU mikrokontroleraod momentu startu oscylatora Je艣li u偶ywany jest rezonator ceramiczny lub szybko uruchamiany zewn臋trzny generator zegarowy, rnozna ustawi膰 Ten bit Umo偶liwi To CPU szybsze uruchomienie programu
BODEN Brown-OuT DeTecTion Enable Poprzez ustawienie zezwala si臋 na prac臋 wewn臋trznego uk艂adu kontroli napi臋cia zasilania Je艣li napi臋cie nie mie艣ci si臋 w granicach okre艣lonych jako w艂a艣ciwe dla poprawnej pracy uk艂adu, generowany jest wewn臋trzny sygna艂 reset
BODLEVEL Brown-OuT DeTecTion Level Bezpiecznik Ten zmienia napi臋cie zadzia艂ania uk艂adu kontroli napi臋cia zasilania oraz czas startu CPU Obate parametrys膮zalezneodtypu uk艂adu - szczeg贸艂贸w dotycz膮cych dzia艂ania nale偶y szuka膰 w danych katalogowych konkretnego mikrokontrolera
CKSELn 0 ClockSelect Stan bezpiecznik贸w CKSEL kontroluje ustawienia rodzaju oscylatora, a w niekt贸rych AVR r贸wnie偶 czas startu CPU Rol臋 Tych bezpiecznik贸w dla danego modelu mikrokont-rolera opisuje jego kartakatalogowa
EESAVE EEorom Save Ustawienie bezpiecznika powoduje, ze zawarto艣膰 pami臋ci EEPROM nie jest kasowana w momencie programowania uk艂adu W przypadku ustawieniatego bezpiecznika, aby skasowa膰 EEPROM, konieczne jest jego wyzerowanie
SUTn 0 Start-Uo Tirne Stan bezpiecznika umo偶liwia nastaw臋 op贸藕nienia pomi臋dzy zanikiem zewn臋trznego sygna艂u reset a za艂膮czeniem CPU mikrokontrolera Ten czas mo偶e by膰 wybrany w zale偶no艣ci np od rodzaju u偶ytego generatora zegarowego Je艣li dla przyk艂adu u偶ywany jest zewn臋trzny generator zegarowy, kt贸ry uruchamia si臋 bardzo szybko-czas Ten mo偶e by膰 bardzo kr贸tki Gdy natomiast stosuje si臋 rezonator kwarcowy-wymagany jest d艂u偶szy czas na stabilizacj臋 generowanej cz臋stotliwo艣ci
BOOTRST Boot Reset Ustawienie bezpiecznika decyduje, pod kt贸ry adres wykona skok CPU mikrokontrolera po sygnale reset- czy wykona skok do fragmentu kodu umieszczonego w Tablicy wekTor贸w przerwa艅 jako wekTor 0, czy Tez do umieszczonego w obszarze Tak zwanego BooT Loadera Stan logiczny wysoki powoduje umieszczenie wektora przerwania po resetw obszarze sekcji BooT Loadera b臋dzie on wskazywa艂 adres zale偶ny od sTanu BOOTSZ Niekt贸re z mikrokontroler 贸w AVR maj膮 mo偶liwo艣膰 umieszczenia we kt贸ra przerwania po reset zar贸wno w obszarze BooT Loadera, jak r贸wnie偶 pami臋ci aplikacji Lokalizacja Tego we ktor a zale偶na jest od stanu bitu IVSEL w rejestrze GICR
BOOTSZn 0 BooT Si ze STan bezpiecznik贸w okre艣la rozmiar i adres sTarTowy bloku BooT Loadera Sekcja BooT jesT dosT臋pnaTylkoi wy艂膮cznie w rnikrokontrolerach AVR, kT贸remaj膮w swojej li艣cie rozkaz贸w instrukcj臋 SPM
INTCAP Internal Caoacitors Gdy INTCAP jest ustawiony, nie jest konieczne stosowanie zewn臋trznych kondensator贸w do艂膮czanych do rezonatora kwarcowego Obni偶a To koszt sysTemui upraszcza p艂ytk臋 drukowan膮
daj膮cych za w艂膮czenie opcji tzw. Boot Loader w mikroprocesorach, gdzie jest mo偶liwe "samoprogra-mowanie". Jednak dla praktycznych zastosowa艅 najwi臋ksze znaczenie b臋dzie mia艂o to, 藕e nastawy bit贸w blokuj膮cych i bezpiecznik贸w mog膮 by膰 zmieniane w czasie programowania, przy
pomocy programatora szeregowego albo r贸wnoleg艂ego. Ten drugi oferuje jednak dost臋p do wi臋kszej liczby nastaw.
Bity blokuj膮ce lock bits
Wszystkie mikr oko艅 trolery AVR posiadaj膮 dwa bity blokuj膮ce o nazwie LBl i LB2. Zmia-
90
Elektronika Praktyczna 9/2002
PODZESPO艁Y
na stanu tych bit贸w powoduje zabezpieczenie zawarto艣ci pami臋ci EEPROM i Flash. Zabezpieczenie podzielone jest na trzy poziomy (Mod臋 1...3), gdzie poziom 1 wy艂膮cza zabezpieczenia, natomiast poziom 3 oferuje maksymalny jego stopie艅 dla danego modelu. Mo偶liwa jest zmiana poziomu zabezpieczenia poprzez zmian臋 stan贸w lock bits. I tu jedna bardzo wa偶na uwaga: w obr臋bie rodziny mikrokontrole-r贸w AVR mo偶liwa jest wy艂膮cznie zmiana stanu bitu zabezpieczenia z wysokiego na niski, nigdy za艣 odwrotnie. Przej艣cie na ni偶szy poziom zabezpieczenia zawsze wi膮偶e si臋 ze skasowaniem pami臋ci programu (Flash) uk艂adu. W ten prosty spos贸b mo偶liwe jest zwi臋kszanie poziomu zabezpiecze艅, nigdy za艣 zmniejszanie - wi膮偶e si臋 to bowiem z utrat膮 danych.
Dodatkowo mikrokontrolery AVR, maj膮ce mo偶liwo艣膰 samopro-gramowania, posiadaj膮 jeszcze
cztery dodatkowe bity zabezpiecze艅 BLB01, BLB02, BLBll i BLB12. Ich ustawienie/kasowanie wi膮偶e si臋 z pewnymi restrykcjami dla instrukcji LPM [Load Program Memory) i SPM [Stor臋 Program Memory), jednak w przypadku specyficznych nastaw tych bit贸w prosz臋 odnie艣膰 si臋 do konkretnych kart katalogowych danego modelu mikrokontrolera.
Bezpieczniki fuses
Bity blokuj膮ce dost臋pne s膮 we wszystkich trybach programowania. W przypadku bezpiecznik贸w jest inaczej. Wi臋kszo艣膰 z nich jest dost臋pna we wszystkich trybach programowania, natomiast niekt贸re z nich tylko w wybranych. R贸wnie偶 inaczej ni偶 w przypadku lock bits, stan bezpiecznik贸w nie ulega zmianie po instrukcji kasowania uk艂adu. Aby zmieni膰 stan bezpiecznika, wymagane jest zaprogramowanie logicznego stanu wysokiego we w艂a艣ciwej lokalizacji pami臋ci. Taka zmiana stanu
bezpiecznika b臋dzie odczuwalna dopiero po wykonaniu przez mik-rokontroler wewn臋trznej procedury obs艂ugi sygna艂u reset generowanego po w艂膮czeniu zasilania [power on reset). Bardzo wa偶n膮 informacj膮 jest, 偶e po ustawieniu bit贸w LB w trybie 2 lub 3 nie jest mo偶liwa zmiana stanu 偶adnego z bezpiecznik贸w, zabroniony jest bowiem zapis do pami臋ci mikrokontrolera.
W tab. 2 zawarto informacje o tym, jakie bezpieczniki i bity blokuj膮ce dost臋pne s膮 w r贸偶nych mikrokontrolerach z rodziny AVR. Informuje r贸wnie偶, w jakim trybie programowania mo偶liwa jest zmiana ich nastaw. Tab. 3 podaje natomiast, jaka jest rola ustawie艅 poszczeg贸lnych bezpiecznik贸w. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Dodatkowe informacje
- http://www.avrfreaks.neV
- http://www.atmel.corn/
Elektronika Praktyczna 9/2002
91
O sposobie, w jaki przerwania s膮 obs艂ugiwane CZ^^SC *W
w j臋zyku C, pisa艂em ju偶 przy okazji omawiania podstaw -------i--------------
programowania. Dzi艣 wykorzystamy programowanie przerwa艅 do budowy prostego licznika. Wykorzystamy w nim przerwanie generowane przez Timer 1 do obs艂ugi wy艣wietlacza LED oraz przerwanie generowane przez opadaj膮ce zbocze sygna艂u na wej艣ciu INTO do zliczania impuls贸w zegarowych. W programie wykorzystamy te偶 wska藕niki i ich arytmetyk臋 -b臋dzie okazja co nieco si臋 nauczy膰.
Budujemy licznik, czyli j臋zyk C i przerwania
Licznik prezentowany w artykule jako przyk艂ad zbudowa艂em, korzystaj膮c z p艂ytki AVR Starter Kit oraz kawa艂ka p艂ytki uniwersalnej. Oczywi艣cie, je艣li u偶ywasz innego zestawu eksperymentalnego - nie jest to 偶adn膮 przeszkod膮. Prawdopodobnie b臋dziesz tylko musia艂 zbudowa膰 sobie wy艣wietlacz LED.
P艂ytka wy艣wietlacza LED
Schemat po艂膮cze艅 wy艣wietlacza LED pokazano na rys. 1. Niestety -je偶eli chcesz eksperymentowa膰 z tym przyk艂adem programowania, musisz sobie taki uk艂ad zbudowa膰. Moim zdaniem przyda on ci si臋 nie tylko do eksperyment贸w, ale r贸wnie偶 mo偶na go u偶y膰 w dowolnym innym uk艂adzie wykorzystuj膮cym wy艣wietlacze LED. Trzeba jednak uwa偶a膰 -obs艂uga wy艣wietlacza oparta jest o przerwanie generowane przez Timer 1, dlatego te偶 nie polecam takiego uk艂adu na przyk艂ad do cz臋sto艣膰 iomierza. Chyba 偶e zgodzisz si臋 na wy艂膮czenie wy艣wietlania w czasie pomiaru cz臋stotliwo艣ci. Zaowocuje to migotaniem przy pomiarze przebieg贸w o niskiej cz臋stotliwo艣ci. Jednak tam, gdzie mikrokontroler nie jest zbyt mocno obci膮偶ony i gdzie nie ma 艣cis艂ych zale偶no艣ci czasowych -艣mia艂o mo偶esz tego uk艂adu u偶y膰. Z powodzeniem na przyk艂ad stosuj臋 go w uk艂adzie termometru cyfrowego, mimo r贸偶nic pogl膮d贸w na temat zawieszania transmisji z DS182O na czas obs艂ugi przerwa艅 - nie mam z tym k艂opotu w mojej aplikacji.
Do konstrukcji wy艣wietlacza u偶y艂em rejestr贸w przesuwaj膮cych 74HCT595. Zrobi艂em tak z dw贸ch powod贸w. Po pierwsze, cena tych uk艂ad贸w jest bardzo niska, a obci膮偶alno艣膰 ich wyj艣膰 w stanie niskim jest wystarczaj膮ca do zasilania typowego wy艣wietlacza LED. Po drugie za艣, uk艂ad nie wyprowadza informacji na wyj艣cia do momentu pojawienia si臋 osobnego impulsu zegarowego, kt贸ry j膮 tam przepisze. Nie ma
wi臋c efektu migotania cyfr w czasie wpisywania danych do rejestr贸w. Po艂膮czy艂em szeregowo dwa uk艂ady 74HCT595, tworz膮c w ten spos贸b rejestr 16-bitowy. Jako pierwszy w szeregu znajduje si臋 rejestr segment贸w cyfr, jako drugi rejestr za艂膮czaj膮cy poszczeg贸lne cyfry. Wej艣cie szeregowe danych taktowane jest sygna艂em
0 cz臋stotliwo艣ci 4,8 kHz, natomiast cyfry prze艂膮czane s膮 z cz臋stotliwo艣ci膮 oko艂o 300 Hz.
U偶y艂em wy艣wietlaczy LED ze wsp贸ln膮 anod膮. Zasilanie anod za艂膮czane jest przez tranzystory MOS z kana艂em typu P (BS250). Ich stosowanie jest bardzo wygodne, poniewa偶 nie wymagaj膮 偶adnych dodatkowych element贸w, takich jak na przyk艂ad rezystory. Warto艣ci rezystor贸w pod艂膮czonych do poszczeg贸lnych segment贸w wy艣wietlacza musisz dobra膰 sobie do posiadanych cyfr. Numery wyprowadze艅 wy艣wietlacza LED potraktuj jako orientacyjne. Istotne s膮 literowe oznaczenia segment贸w. Na wej艣ciach rejestr贸w szeregowych znajduj膮 si臋 rezystory pull-up, tak aby mo偶na by艂o wy艣wietlacz pod艂膮czy膰 do dowolnego z port贸w mikrokontroler a.
Wy艣wietlacz do sterowania wymaga trzech linii - jednej danych
1 dw贸ch zegarowych. Ja wykorzysta艂em Pl.l, Pl.2 i Pl.3 Oczywi艣cie, zmieniaj膮c program, mo偶esz u偶y膰 dowolnych innych. R贸wnie偶 wykonuj膮c drobne modyfikacje w programie, mo偶na pod艂膮czy膰 do 8 wy艣wietlaczy LED o wsp贸lnej anodzie. W skr贸cie funkcjonowanie wy艣wietlacza wygl膮da nast臋puj膮co: dane za pomoc膮 opadaj膮cego zbocza sygna艂u zegarowego podawanego na wyprowadzenie 11 (SRCLK) wpisywane s膮 z wej艣cia szeregowego na wyprowadzeniu 14 (SER) do wewn臋trznego rejestru. Mikrokontroler przesy艂a pe艂ne s艂owo 16-bitowe tak, aby dzia艂a艂y oba uk艂ady rejestr贸w. Nast臋pnie, po wpisaniu 16 bit贸w, na wyprowadzenie 12 (RCLK) podawany jest impuls zega-
rowy, kt贸rego opadaj膮ce zbocze powoduje przepisanie danych z wewn臋trznego szeregowo-r贸wnoleg艂ego rejestru do wyj艣ciowego rejestru typu zatrzask.
Program napisany zosta艂 tak, 偶e w danym momencie 艣wieci tylko jedna cyfra. Je艣li prze艂膮czanie cyfr b臋dzie wystarczaj膮co szybkie, ludzkie oko tego nie zauwa偶y. Jest to typ wy艣wietlania zwany multipleksowa-nym (wy艣wietlanie dynamiczne). Charakteryzuje si臋 on ma艂ym poborem pr膮du - w danym momencie zasilana jest tylko jedna cyfra. Tyle na temat zasady dzia艂ania, zajmijmy si臋 teraz programem.
Mikrokontroler jako licznik
Program pokazano na list. 1. Licznik wykorzystuje dwa przerwania. Pierwsze, zewn臋trzne, powodowane przez opadaj膮ce zbocze napi臋cia na wej艣ciu INTO, u偶ywane jest do zwi臋kszania warto艣ci licznika. Drugie - wewn臋trzne, generowane cyklicznie - pochodz膮ce od Timera 1, przepisuje stan bufora display do rejestr贸w wy艣wietlacza.
Program rozpoczyna si臋 od deklaracji. Linia danych wy艣wietlacza zadeklarowana zostaje jako PlA0, linia zegara szeregowego jako PlAl, linia zegara wyj艣ciowego rejestru latch jako PlA2. Opr贸cz tego inicjujemy zmienn膮 typu unsigned int zawieraj膮c膮 zliczane impulsy oraz sta艂膮 typu char z zawarto艣ci膮 inicjuj膮c膮 rejestr THl Timera 1. Sta艂a ta to po艣rednio cz臋stotliwo艣膰, z jak膮 wywo艂ywane jest przerwanie obs艂uguj膮ce wy艣wietlacz LED. Dalej znajduje si臋 uporz膮dkowana w kolejno艣ci rosn膮cej (od 0 do 9) tablica okre艣laj膮ca wygl膮d wy艣wietlanego znaku (patterns), tablica z kodami kolejno艣ci za艂膮czania cyfr (digits) oraz tablica - bufor
Elektronika Praktyczna 9/2002
93
KURS
W1
SA10-21 EWA
we
SA10-21EWA
Rys. 1
wy艣wietlacza w RAM (display). Jak 艂atwo zauwa偶y膰, dwie pierwsze umieszczone s膮 w obszarze pami臋ci ROM mikrokontrolera (s艂owo kluczowe code) i maj膮 przypisane warto艣ci. Trzecia znajduje si臋 w obszarze RAM. Jest ona odwzorowaniem stanu wy艣wietlacza, abstrahuj膮c od numeru wy艣wietlanej aktualnie cyfry. Ka偶da z tablic ma przypisany w艂a艣ciwy jej wska藕nik, czyli zmienn膮, kt贸ra b臋dzie wskazywa膰 na element tablicy. W momencie zadeklarowania, ka偶dy wska藕nik ustawiany jest na pierwszy element tablicy. Wyra偶enie Wska藕nik = &Tablica powoduje przypisanie zmiennej Wska藕nik adresu, pod kt贸rym umieszczona jest Tablica. Wska藕niki to fantastyczne narz臋dzie j臋zyka C!
Funkcja Translate zamienia argument x, kt贸rym jest dwubajtowa liczba ca艂kowita bez znaku, na odpowiadaj膮c膮 tej liczbie zawarto艣膰 bufora display. Jednym s艂owem, zamienia liczb臋 na odpowiadaj膮cy jej wygl膮d wy艣wietlacza LED. Metoda jest bardzo prosta, chocia偶 zapis pocz膮tkowo mo偶e si臋 wyda膰 niezrozumia艂y. Po wywo艂aniu funkcji wy艂膮czane s膮 przerwania Timera 1. Zosta艂o to
zrobione w celu unikni臋cia migotania wy艣wietlacza. P贸藕niej, wska藕nikowi TDisplay przypisywane jest wskazanie na ostatni element bufora wy艣wietlacza. Od niego to rozpocznie si臋 translacja na kody LED. Przebiega ona wed艂ug nast臋puj膮cego schematu: do warto艣ci wska藕nika TPat-terns dodaj reszt臋 z dzielenia argumentu przez 10, a nast臋pnie skopiuj wskazywan膮 w wyniku dzia艂ania sta艂膮 typu char z tablicy patterns pod adres wskazywany przez TDisplay. Podziel liczb臋 przez 10, przesu艅 wskazanie na nast臋pn膮 pozycj臋 w buforze wy艣wietlacza i powt贸rz operacj臋 dla nast臋pnej cyfry. I tak 6 razy - dla ka偶dej z cyfr LED.
Jako swego rodzaju rozszerzenie funkcjonalno艣ci, umieszczono wygaszanie zer nieznacz膮cych na pocz膮tku cyfry. P臋tla - rozpoczynaj膮c od pocz膮tku bufora - sprawdza znak znajduj膮cy si臋 pod wskazanym przez wska藕nik bufora wy艣wietlacza adresem (TDisplay) i por贸wnuje go ze znakiem na pocz膮tku tablicy digits, to znaczy wzorcem "0". Je艣li s膮 to te same znaki, kod "0" w buforze wy艣wietlacza zostaje zamieniony na 0xFF, co odpowiada ca艂kowitemu
wygaszeniu cyfry. Tak dzieje si臋 a偶 do momentu napotkania wzorca r贸偶nego od wzorca "0". W贸wczas to instrukcja break (spotkali艣my j膮 w konstrukcjach warunku switch) przerywa dzia艂anie p臋tli for. Po zako艅czeniu p臋tli za艂膮czane jest wy艣wietlanie -odpowiada mu zezwolenie na przyjmowanie przerwa艅 Timera 1.
Dalej napotkamy procedury obs艂ugi przerwa艅. Wyr贸偶nia je s艂owo kluczowe interrupt umieszczone w nag艂贸wku funkcji. Funkcja Incre-mentCounter obs艂uguje przerwanie zewn臋trzne INT0. W zasadzie nie robi nic za wyj膮tkiem zwi臋kszenia stanu zmiennej counter i wywo艂ania funkcji Translate. Druga z nich to procedura obs艂ugi przerwania Timera 1 - Display Send, zajmuj膮ca si臋 konstrukcj膮 i przes艂aniem s艂owa do wy艣wietlacza LED. Przyjrzyjmy si臋 dok艂adniej stosowanym w niej metodom.
Timer 1 pracuje w trybie 16-bito-wym. Przerwanie zg艂aszane jest przez timer w momencie przepe艂nienia, to znaczy zmiany stanu z OxFFFF na 0x0000. W贸wczas to wywo艂ywana jest procedura obs艂ugi przerwania. Cykl odliczania rozpoczyna si臋 na
94
Elektronika Praktyczna 9/2002
KURS
nowo od warto艣ci 0 do OxFFFF. Je艣li nie zdecydujemy inaczej, to od tego momentu do nast臋pnego przerwania up艂ynie czas 65536 cykli maszynowych (to jest 1/12 cz臋stotliwo艣ci oscylatora). W przypadku mojego modelu by艂by to czas oko艂o 100 milisekund - z ca艂膮 pewno艣ci膮 by艂by on powodem migotania cyfr, poniewa偶 jest zbyt d艂ugi. Mo偶na czas do wywo艂ania przerwania skr贸ci膰, ustawiaj膮c na po偶膮dan膮 warto艣膰 najpierw m艂odszy a p贸藕niej starszy bajt time-ra. Poniewa偶 nie zale偶y mi na bardzo dok艂adnym odmierzaniu czasu, zdecydowa艂em si臋 na ustawienie (od艣wie偶enie) tylko starszego bajtu.
Dalej zwi臋kszane s膮 warto艣ci wska藕nik贸w TDisplay (wskazanie na cyfr臋 w buforze wy艣wietlacza) oraz TDigits, to znaczy wska藕nik do tablicy z kodami za艂膮czenia cyfr. Oba te wska藕niki zmieniane s膮 synchronicznie co oznacza, 偶e przesuni臋cie si臋 na nast臋pn膮 cyfr臋 musi powodowa膰 r贸wnie偶 zmian臋 kodu za艂膮czenia wy艣wietlacza.
Warunek if (TDisplay == 0) s艂u偶y do zbadania, czy napotkano znak ko艅ca bufora w RAM. Je艣li tak, to wska藕niki s膮 ustawiane ponownie na pocz膮tek wskazywanych tablic.
Jako 偶e kod za艂膮czenia musimy wys艂a膰 jako pierwszy, na pocz膮tek zmiennej x przypisywana jest warto艣膰 kodu za艂膮czenia cyfry. P贸藕niej przesuwana jest ona w lewo o 8 pozycji, a nast臋pnie sumowany jest z ni膮 wzorzec znaku do wy艣wietlenia z bufora display. To s膮 wszystkie operacje, kt贸re musz膮 by膰 wykonane w celu poprawnej budowy s艂owa do sterowania wy艣wietlaczem. Teraz docieramy do p臋tli for, kt贸ra ma za zadanie wys艂anie wszystkich 16 bit贸w s艂owa do wy艣wietlacza.
Znajduj膮ca si臋 wewn膮trz p臋tli operacja przesuwania w lewo zmiennej x ma na celu przeniesienie pojedynczego bitu s艂owa do flagi C, kt贸ra to w nast臋pnym poleceniu (da-taline = CY) wp艂ywa na stan bitu portu - wyj艣cia danych. Impuls zegarowy, zmiana stanu shiftline z wysokiego na niski, ko艅czy proces wys艂ania bitu. P臋tla for powtarza operacj臋 16 razy, dla wszystkich bit贸w zmiennej. Transmisj臋 ko艅czy przepisanie danych z wewn臋trznego rejestru do rejestru wyj艣ciowego poprzez zmian臋 stanu linii latchline. I to jest koniec obs艂ugi przerwania Timera 1.
Program g艂贸wny main() zawiera tylko proste ustawienia mikrokontro-lera oraz, na samym pocz膮tku, zapisanie znaku ko艅ca bufora wy艣wietlacza. Ustawiane s膮:
List. 1.
// (C) Easy Soft 01/2002
// Raisonance RC-51, yersion 6.4.16
//===============================================
// rezonator 7,3728MHz #include
//definicje linii steruj膮cych wy艣wietaniem sbit dataline = PlA0; sbit shiftline = P1A1; sbit latchline = P1A2;
//licznik impuls贸w int counter = 0;
//warto艣膰 rejestru timera TH1, TLI nie jest modyfikowane liczy zawsze o膰 const char interyal = 0xF8;
/* tutaj wzorce cyfr d5
d2 */
char code patterns[10] = { 0x09,OxAF,OxlA,0x8A,OxAC,0xC8,0x48,0x8F,0x08,0x88 //przecinek = d3, wy艂膮czenie cyfry = 0xFF char *TPatterns = Spatterns;
//tutaj kolejno艣膰 za艂膮czania
char code digits[6] = { 0xFE,0xFD,0xFB,0xF7,0xEF, 0xDF
char *TDigits = Sdigits;
//bufor wy艣wietlacza w RAM
char data display[7];
char data *TDisplay = Sdisplay;
//zamiana zmiennej X na zawarto艣膰 bufora do wy艣wietlenia
Void Translate(unsigned int X)
{
char temp;
ETl = 0; //wy艂膮czenie na czas translacj i wy艣wietlania
//(migotanie LED)
TDisplay = Sdisplay + 5; //zaczynamy translacj臋 od najm艂odszej cyfry for (temp=0; temp<6; temp++) {
*TDisplay = * (TPatterns + x % 10) ; //adres wzorca + (reszta z dzielenia
//przez 10) TDisplay-; X /= 10; }
TDisplay += 1; //po poprzedniej p臋tli TDisplay jest o 1 za ma艂e
for (temp=0; temp<5; temp++) //wygaszenie zer nieznacz膮cych od pozycji 1..5 {
if (*TDisplay == *TPatterns) *TDisplay = 0xFF; else break;
//je艣li napotkamy znak r贸偶ny od 0,to koniec TDisplay++;
ET1 = 1;
Ii za艂膮czenie wy艣wietlania
//procedura obs艂ugi przerwania INT0
//zwi臋kszanie licznika impuls贸w
void IncrementCounter(void) interrupt 0
counter++;
Translate(counter);
//zwi臋kszenie licznika impuls贸w
//zamiana counter na liczby do wy艣wietlenia
Elektronika Praktyczna 9/2002
95
KURS
List. 1. (ciqg dalszy)
//procedura obs艂ugi przerwania o膰 timer'a 1
//wys艂anie zmiennej 2-bajtowej do wy艣wietlacza - 1 znak z bufora display
void DisplaySend(void) interrupt 3
char temp;
unsigned int X;
TH1 = interyal; //od艣wie偶enie zawarto艣ci timera 1
TDisplay++; //nast臋pna pozycja do wy艣wietlenia
TDigits++;
if (*TDisplay == 0) //je艣li osi膮gni臋to koniec bufora,
{ //to wr贸膰 do pocz膮tku
TDisplay = Sdisplay;
TDigits = Sdigits;
X = *TDigits; //x przyjmuje warto艣膰 liczby do wys艂ania
X <<= 8; //sk艂ada si臋 ona z bajtu wzorca cyfry
//i bajtu kolejno艣ci za艂膮czenia
X = *TDisplay;
for (temp = 0; temp<16; temp++ ) //wys艂anie cyfry poprzez przypisanie flagi C
//do wyj艣cia danych
X <<= 1;
dataline = CY;
shiftline = 1; //impuls na wyj艣ciu zegara przesuwaj膮cego
shiftline = 0;
latchline = 1; //przepisanie danych do wyj 艣膰 rejestr贸w
latchline = 0; }
//program g艂贸wny
Void main(void)
*(TDisplay 4- 6) = 0x00; //tutaj kod ko艅ca danych
Translate(counter) ; //wy艣wietlenia 0.
TMOD = 0x11; //oba timery jako 16 bitowe, kontrolowane
//wewn臋trznie
TH1 = interyal; //przerwanie wywo艂ywane z cz臋stotliw.oko艂o 75Hz
ET1 = 1; //zezwolenie na przerwanie od timer'a 1
TRI = 1; //uruchomienie timer'a 1
IT0 = 1; 1/opadaj膮ce zbocze na INT0 wyzwala przerwanie
EX0 = 1; //za艂膮czenie przerwania INT0
EA = 1; //zezwolenie na przyjmowanie przerwa艅
While (1); } //oczekiwanie na przerwania
- rejestr TMOD na warto艣膰 0x11, to znaczy oba Timery jako 16-bitowe, a impulsy pobierane s膮 z wewn臋trznego zegara,
- ustawiany jest starszy bajt licznika Timera 1,
- w艂膮czane s膮 przerwania.
Program g艂贸wny ko艅czy p臋tla while(l), w kt贸rej mikrokontroler oczekuje na impulsy przychodz膮ce na INTO oraz zajmuje si臋 obs艂ug膮 wy艣wietlania.
Pewnym zaskoczeniem by艂 dla mnie drobny fakt napotkany podczas testowania programu. Jego pierwowzorem by艂 identycznie funkcjonuj膮cy program w j臋zyku asembler. Faktycznie nie przejmowa艂em si臋 mocno jego optymalizacj膮, ale gdy napisa艂em program w C, mina mi zrzed艂a. Programy - mniej wi臋cej r贸wnowa偶ne w funkcjach - ten napisany w asemb-lerze zajmowa艂 169 bajt贸w, a ten napisany w C - 119 bajt贸w. Sta艂o si臋 tak chyba z jednego powodu. Po pierwsze, w asemblerze dosy膰 trudno pisze si臋 programy operuj膮ce na adresach. Takie programy s膮 po prostu ma艂o czytelne. W C nie ma z tym
wi臋kszego problemu. Mo偶na u偶ywa膰 pewnych dr贸g na skr贸ty. I co na to wszyscy twierdz膮cy, 偶e programy napisane w j臋zykach wysokiego poziomu zajmuj膮 du偶o pami臋ci? Oczywi艣cie, mo偶esz te偶 powiedzie膰, 偶e jestem kiepskim programist膮...
Na koniec mam jeszcze ma艂膮 sugesti臋. A mo偶e by tak do艂o偶y膰 prost膮 procedur臋 komunikacji, chocia偶by przez port RS232, i nawet bez translacji poziom贸w napi臋膰 zbudowa膰 alternatyw臋 dla uk艂ad贸w sterownik贸w wy艣wietlaczy LED, kt贸rych cena detaliczna jest - lekko m贸wi膮c - przera偶aj膮ca? Mo偶na by by艂o wykorzysta膰 tani mikrokontroler, na przyk艂ad AT89C2051. A mo偶e AVR? W贸wczas nie potrzeba rezonatora kwarcowego. My艣l臋, 偶e wraz z cyframi b臋dzie on ta艅szy ni偶 jeden uk艂ad sterownika LED. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Ewaluacyjn膮 wersj臋 pakietu firmy Raisonance prezentowanego w artykule zamie艣cili艣my na CD-EP8/2002B.
96
Elektronika Praktyczna 9/2002
PROJEKTY CZYTELNIK脫W
DzioS "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.
Przycisk ANY do PC, cz臋艣膰 1
Pizedstawiamy projekt
naszego Czytelnika, kt贸ry
niesie pizede wszystkim
walory edukacyjne - sta艂
si臋 on bowiem pretekstem
do pokazania sposobu
wymiany danych pomi臋dzy
PC i do艂膮czan膮 do niego
klawiatur膮. Program
steruj膮cy prac膮
mikrokonirolera powsta艂
w Pascomie.
Klawiatura PC... Kto s nas ni9 spotka艂 si臋 s tym urs膮-ds9ni9m? Z wygl膮du p艂aska "deska" s ogromn膮 licsb膮 przycisk贸w. J9dnak mimo tak wi9lki9] ich licsby sauwa偶y-艂em tutaj karygodny wr臋cs brak dogadania si臋 produc9n-
t贸w sprz臋tu s programistami! Podczas uruchamiania na przyk艂ad powss9chni9 lubia-n9go EasyTraxa pojawia si臋 napis "PRESS ANY KEY TO START". Jak na s艂o艣膰 w g膮ss-csu 101 przycisk贸w ni9 ma 艣adn9go s napis9m ANY. I co
Projekt
103
pocs膮膰? S艂yssa艂9m naw9t, 偶e ni9kt贸rsy u偶ytkownicy maj膮 sw贸j ulubiony przycisk ANY, na przyk艂ad spacj臋. Dla mni9 J9dnak jest to roswi膮sani9 tylko po艂owicsn9. Cs臋sto J9ss-cs9, sscs9g贸lni9 gdy J9st9m sm臋csony, ssukam prs9s dobr膮 chwil臋 t9go ni9istni9J膮c9go przycisku, sanim sdam sobi9 spraw臋 s b9sc9lowo艣ci t9go dzia艂ania. W J9sscs9 gorss9J sytuacji s膮 tutaj osoby s prob-l9mami d9cysyjnymi - "kt贸ry przycisk nacisn膮膰 tym razem...?"
Postanowi艂9m roswi膮sa膰 ten probl9m ras na sawss9. Zbudowa艂9m uk艂ad wpinany pomi臋dzy klawiatur臋 a korn-put9r, kt贸ry po naci艣ni臋ciu odpowi9dni9go przycisku wy-
vcco
I
ANY
ALT-tCTTIL+DEL
Elektronika Praktyczna 9/2002
97
PROJEKTY CZYTELNIK脫W
ESC 76
F1 05 nfi h3 04 h4 OC hb 03 hB OB \-l ha OA 1-9 01 1-10 nn F11 78 F12 07
OE
11 16
Z@ 1E
3# 26
4$ 25
5% 2E
6* 36
7& 3D
8*
3E
9( 46
0) 45
4E
+ = 55
W 5D
66
p 14DJ l{ 54 U 15BJ
5A
Rys. 2
syla do komputera kod losowo wybranego przycisku. Nie jest to mo偶e rozwi膮zanie ostateczne, poniewa偶 dla komputera nadal nie istnieje 偶aden przycisk o kodzie ANY... jednak jak wykaza艂y eksperymenty, jest ono ca艂kiem wygodne i skuteczne.
Skoro ju偶 "co艣" wsadzi艂em mi臋dzy klawiatur臋 a komputer, postanowi艂em niejako za jednym zamachem rozwi膮za膰 inny dr臋cz膮cy mnie "guzikowy" problem. Ot贸偶 w pewnych systemach operacyjnych zachodzi cz臋sta potrzeba u偶ycia jednocze艣nie przycisk贸w ALT, CTRL i DE-LETE... Przyciski te s膮 do艣膰 od siebie oddalone i ich naciskanie nie wp艂ywa zbyt dobrze na um臋czone ci膮g艂ym stukaniem palce. Widzia艂em ju偶 rozwi膮zania do naciskania tych klawiszy skonstruowane z odpowiednio wykrzywionego wieszaka na ubrania. S膮 one wszystkie zale偶ne jednak od konkretnego typu klawiatury (rozmieszczenia przycisk贸w). Opisywany uk艂ad nie posiada tej wady.
Opis dzia艂ania
Schemat ideowy proponowanego uk艂adu mo偶na zobaczy膰 na rys. 1. Jego sercem jest mikrokontroler typu 89C2051. Za po艣rednictwem
Clock
Idle
linii P3.0 i P3.1 steruje on kluczami analogowymi U2a i U2b, kt贸rych zadaniem jest od艂膮czanie klawiatury w momencie, gdy procesor chce "co艣" przes艂a膰 do komputera oraz jej pod艂膮czanie w stanie oczekiwania. Ko艅c贸wka P3.3 pe艂ni rol臋 linii zegara, a P3.5 linii danych interfejsu, przez kt贸ry "oszukujemy" PC-ta. Interfejs ten postaram si臋 troszk臋 przybli偶y膰 za chwil臋. Wa偶ne jest tak偶e bezpo艣rednie po艂膮czenie wej艣cia przerwania IntO (P3.2) do wyprowadzenia zegara w klawiaturze. O jego roli napisz臋 przy opisie programu.
W cz臋艣ci sprz臋towej pozostaj膮 nam jeszcze: dioda LED, kt贸ra swoim 艣wieceniem informuje o fakcie od艂膮czenia klawiatury, dwa przyciski - jeden ANY i drugi ALT+CTRL+DELETE, oraz dwie zworki, dzi臋ki kt贸rym uk艂ad mo偶na dostosowa膰 do swoich indywidualnych potrzeb.
Rozwarcie zworki Zwl spowoduje, 偶e przycisk ANY przestanie by膰 aktywny. Jego naciskanie nic nie da opr贸cz b艂yskania diody LED. Zosta艂o to pomy艣lane dla os贸b, kt贸re nie maj膮 problem贸w z przyciskiem ANY, a wr臋cz przeciwnie, potrzebuj膮 sobie czasami co艣 ponaciska膰, ot tak
Data Start 0 1 2 3 4 5 6 7 P Stop
Idle 9rzesy艂anla danych z klawiatury do sterownika (hosta)
Clock ' F I I I I I I I lit 艂
Idle
Data 艢 0 1 2 3 4 5 6 7 i P ACK
Przesy艂anie danych do klawiatury
Rys. 3
sobie. Wiadomo, jaki wp艂yw mo偶e mie膰 takie dzia艂anie przy, na przyk艂ad, otwartym dokumencie...
Pozostawienie zworki Zw2 rozwartej zmienia troch臋 dzia艂anie przycisku ALT+CTRL+DELETE. Mianowicie odpowiednia sekwencja jest wysy艂ana dwukrotnie. Jest to udogodnienie dla os贸b szczeg贸lnie ceni膮cych sw贸j czas. Dzi臋ki temu po naci艣ni臋ciu guzika i pojawieniu si臋 okienka ,,Zamknij program" nie musimy naciska膰 go drugi raz... System ju偶 si臋 restartuje!
Interfejs klawiatury... a偶 mi ciarki przechodz膮 po plecach jak pomy艣l臋, ile to razy m贸j PC-et zaszczyci艂 mnie komunikatem "KB interface er-ror". Jednak dzi臋ki temu zdo艂a艂em niej ako na w艂asnym komputerze przekona膰 si臋, jak to dzia艂a. Ca艂y problem wi膮za艂 si臋 z tym, 偶e 艂atwo jest znale藕膰 opis protoko艂u wymiany danych z klawiatur膮, RySi 4 a du偶o trudniej jest wykorzysta膰 go w praktyce.
Poniewa偶 opis贸w samego dzia艂ania naszej bohaterki jest sporo, ja zwr贸c臋 tylko uwag臋 na kilka istotnych z naszego punktu widzenia szczeg贸艂贸w:
1. Klawiatura ,,nie proszona" wysy艂a do komputera tylko tak zwane kody naci艣ni臋膰 i zwolnie艅 klawiszy, przy czym:
a- kod naci艣ni臋cia jest 8-bitow膮 liczb膮 reprezentuj膮c膮 dany klawisz, kody te przedstawia rys. 2,
b - kod zwolnienia polega na wys艂aniu sekwencji FOh i zaraz potem kodu klawisza.
2. Samo przesy艂anie danych odbywa si臋 przez synchroniczny interfejs szeregowy. Wyst臋puj膮 w nim linie zegara i danych. Jakkolwiek to klawiatura
WYKAZ ELEMENT脫W
Rezystory
R1...R4: nie lutowa膰, ew.
patrz tekst
R5: 470Q
Kondensatory
Cl, C2: 20...40pF
C3: 0,1."ljiF
C4: lOOnF
C5: 100^F/16V
P贸艂przewodniki
Ul: AT89C2051
(zaprog ra m owa ny)
U2: 4066
Dl: dowolna dioda LED
R贸偶ne
Xl: rezonator kwarcowy
4MHz
Zwl, Zw2: podw贸jne
goldpiny + jumpery
taktuje transmisj臋, to komputer mo偶e j膮 spowolni膰 przez przytrzymanie linii zegarowej w stanie niskim. Cz臋stotliwo艣膰 przebiegu zegarowego powinna si臋 zawiera膰 w granicach 20...30kHz. Ramk臋 danych pokazano na rys. 3.
3. Komputer mo偶e przesy艂a膰 do klawiatury komendy steruj膮ce oraz weryfikuj膮ce poprawno艣膰 transmisji. W prezentowanym projekcie zak艂adam, 偶e nie zrobi tego podczas aktywno艣ci uk艂adu. Jak dot膮d si臋 nie zawiod艂em. Rados艂aw Koppel
98
Elektronika Praktyczna 9/2002
ELEKTRONIKA PRAKTYCZNA
Mi臋dzynarodowy magazyn elektronik贸w konstruktor贸w
10/2002 pa藕dziernik
KURS
W tej cz臋艣ci om贸wimy zagadnienia zwi膮zane
z komunikacj膮 pomi臋dzy mikrokontrolerem
i otoczeniem, za pomoc膮 interfejsu RS232. Spos贸b obs艂ugi
interfejs贸w SPI i PC przedstawimy za miesi膮c.
Obs艂uga RS232
Rzadko zdarza si臋, aby mikro-kontroler, kt贸rego zamierzamy u偶y膰, oferowa艂 wszystkie potrzebne nam uk艂ady peryferyjne. Je偶eli jednak ju偶 tak jest, to albo ma r贸wnie偶 inne, zupe艂nie niepotrzebne, albo te偶 przera偶a jego cena.
W贸wczas mo偶na u偶y膰 taniego mi kr o kontroler a i do艂膮czy膰 do niego mo偶liwie jak najtaniej jak najta艅sze uk艂ady peryferyjne. Tu jednak pojawia si臋 pewien problem - jak do艂膮czy膰 uk艂ady zewn臋trzne.
Jego rozwi膮zanie jest mo偶liwe za pomoc膮 r贸偶nych j臋zyk贸w programowania. Absolutnie najprostszy w u偶yciu jest pod tym wzgl臋dem Bascom, kt贸ry oferuje biblioteki gotowych procedur komunikacyjnych. Inaczej jest w przypadku C. Tu musimy o wszystko zadba膰 sami. No, mo偶e o prawie wszystko, poniewa偶 w wi臋kszo艣ci kompilator贸w obs艂uga sprz臋towego portu UART (RS23 2) jest dost臋pna. Jest to zgodne ze specyfikacj膮 ANSI dla j臋zyka C, w kt贸-
rej przyj臋to, 偶e instrukcje printf, get-char, putchar wysy艂aj膮 znak do (lub pobieraj膮 z) standardowego urz膮dzenia wyj艣ciowego (wej艣ciowego). W przypadku komputera PC jest to monitor (i klawiatura).
Trudno jednak wyobrazi膰 sobie prosty sterownik zbudowany z u偶yciem mikrokontrolera pod艂膮czony do monitora. Oczywi艣cie jest to mo偶liwe, ale nieop艂acalne. W zwi膮zku z tym standardowym urz膮dzeniem wej艣cia/wyj艣cia dla mikrokontrolera jest port UART. Od niego te偶 zaczniemy opis implementacji interfejs贸w.
UART - funkcje stdio.h
W zwi膮zku ze specyfik膮 podawanych w tym opisie informacji, b臋d膮 one dotyczy膰 pakietu Raisonance. Instrukcje printf, getchar i putchar b臋d膮 zapewne dzia艂a膰 identycznie w programach skompilowanych za pomoc膮 kompilator贸w pochodz膮cych od r贸偶nych producent贸w, ale nastawy dotycz膮ce szybko艣ci przesy艂a-
List. 1. Tak mo偶na wysy艂a膰 znaki, u偶ywaj膮c funkcji putcharC).
wysy艂anie kod贸w ASCII przez UART mikrokontroler AT89S8252, kwarc 11,0592 MHz Raisonance RC-51
#include //definicje rejestr贸w
#include //do艂膮czenie funkcj i wej 艣cia - wyj 艣cia
#pragma DEFJ(TIMl_INIT=0xFD) //ustalenie szybko艣ci transmisji
//funkcja realizuje op贸藕nienie oko艂o k*lms dla rezonatora f=11.0592 MHz
~Void delay (unsigned int k)
{
unsigned int i,j;
for ( j = 0; j < k; j++)
for (i = 0; i <= 84;) i++;
//program g艂贸wny, znaki o kodach od 0x20 do 0xFF wysy艂ane s膮 kolejno przez UART //co oko艂o 300 milisekund ~Void main (void) {
char i;
for (i = 0x20; i <= 0xFF; i++) //p臋tla wykonywana, gdy i<=2 55
putchar(i); delay (300);
//przes艂anie bajtu //op贸藕nienie 0,3 sekundy
nych danych mog膮 by膰 przeprowadzone inaczej i je艣li kto艣 u偶ywa na przyk艂ad Keil, to musi si臋gn膮膰 do dokumentacji tego pakietu.
W asynchroniczny port UART, spe艂niaj膮cy wymogi standardu RS232, wyposa偶ony jest prawie ka偶dy mikrokontroler. Oczywi艣cie pod艂膮czenie UART do linii transmisyjnej wymaga uk艂adu dopasowuj膮cego zbudowanego z element贸w dyskretnych lub uk艂ad贸w scalonych, np. typu MAX232. Zgodnie z norm膮 tego interfejsu poziomy napi臋膰 powinny zawiera膰 si臋 w przedzia艂ach:
- -12...-5 V dla logicznej jedynki,
- 5...12 V dla logicznego zera.
Wymaga to zasilania uk艂ad贸w dopasowuj膮cych z symetrycznego 藕r贸d艂a napi臋cia, czyli najcz臋艣ciej zastosowania przetwornicy. Wspomniany uk艂ad MAX232 zawiera wbudowane pompy 艂adunkowe wytwarzaj膮ce z jednego napi臋cia zasilaj膮cego wymagane napi臋cia dodatnie i ujemne. Uwalnia nas tym samym od konieczno艣ci stosowania symetrycznego zasilacza.
Podobnie jak w przypadku rozwi膮za艅 innych problem贸w, mamy co najmniej dwie mo偶liwo艣ci poprawnego wykorzystania uk艂adu UART. Mo偶emy na przyk艂ad skorzysta膰 z systemu przerwa艅 oferowanego przez mikrokontroler. W贸wczas UART pracuje w tle i dopiero skompletowanie s艂owa danych spowoduje, 偶e zg艂oszone zostanie przerwanie - podczas jego obs艂ugi mo偶emy opr贸偶ni膰 bufor, odebra膰 dane itp.
Mo偶emy tak偶e oczekiwa膰 na odbi贸r bajtu w p臋tli z instrukcj膮 get-char(). W贸wczas przypisanie znak= getcharf) rozwi膮zuje problem odbioru bajtu. Wykorzystanie procesora nie jest jednak w tym przypadku
Elektronika Praktyczna 10/2002
101
KURS

Zdj臋cie 1. Korzystajqc z okienka Options, mo偶emy wpisa膰 warto艣膰 bajtu THl
optymalne. Mo偶e on spor膮 cz臋艣膰 czasu traci膰 bezproduktywnie na oczekiwanie znaku. Wykorzystanie przerwa艅 pozwala mu zaj膮膰 si臋 w przerwach mi臋dzy odbieranymi danymi innymi zadaniami.
Zacznijmy opis obs艂ugi UART-u od prostszej metody, tej, w kt贸rej nie wykorzystuje si臋 przerwa艅. Funkcje wysy艂ania i odbioru znak贸w zdefiniowane s膮 w bibliotece sidio.h. Aby ich u偶y膰, musimy t臋 bibliotek臋 do艂膮czy膰 dyrektyw膮 #in-clu de. UART wykorzystuje Timer 1 do ustalenia szybko艣ci transmisji. Timer pracuje w trybie 2, czyli jako o艣miobitowy z automatycznym od艣wie偶aniem zawarto艣ci przy przepe艂nieniu. Szybko艣膰 pracy UART mo偶na wi臋c ustali膰 warto艣ci膮 bajtu 艂adowanego do rejestru THl. Poni偶ej przytaczam wz贸r zaczerpni臋ty z instrukcji programowania mikro-kontrolera 80C51 pozwalaj膮cy wyliczy膰 warto艣膰 THl odpowiedni膮 do danej szybko艣ci transmisji: THl = 256 - (k x cz臋stotliwo艣膰 kwarcu/
/(3B4 x szybko艣膰 transmisji]], gdzie "k" to mno偶nik pr臋dko艣ci transmisji - dla bitu SMOD r贸wnego 0 wynosi on 1, natomiast dla SMOD ustawionego na 1 wynosi on 2.
Przyk艂adowo obliczymy warto艣膰 THl dla kwarcu 11,0592 MHz, bitu SMOD = 0 oraz pr臋dko艣ci transmisji 9600 bod贸w:
THl = 256 - (1x11059200/ /(334x9600)) = 253 (0xFD)
Kolejne pytanie. Jak przekaza膰 warto艣膰 bajtu THl do procedur transmisji danych tak, aby funkcje zawarte w sidio.h mog艂y poprawnie j膮 odczytywa膰 i interpretowa膰?
Mo偶na to zrobi膰 kilkoma sposobami. Mo偶na samodzielnie napisa膰 procedur臋 inicjalizacji. Mo偶na r贸wnie偶 w parametrach kompilatora wstawi膰 potrzebn膮 warto艣膰. Mo偶na te偶 zmieni膰 j膮 za pomoc膮 dyrekty-
wy defj umo偶 liwiaj膮cej modyfikacj臋 sta艂ych systemowych. Je艣li zdecydowali艣my si臋 na zmian臋 ustawienia sta艂ej systemowej bez przygotowywania w艂asnej procedury inicjalizacji,
~^mn[ ." fciT||艃 zdecydowanie nie zalecam
korzystania z okienka Op-tions (rys. 1). Mo偶e si臋 bowiem zdarzy膰, 偶e warto艣膰 ustawiona dla jednego programu nie b臋dzie odpowiedni膮 dla innego, natomiast system zapami臋ta j膮 jako domy艣ln膮. Je艣li zapomnimy o okienku opcji, nowy program po skompilowaniu nie b臋dzie dzia艂a艂 prawid艂owo. B臋dziemy szuka膰 b艂臋du, kt贸ry jest tym trudniejszy do lokalizacji, 偶e nie znajduje si臋 w kodzie 藕r贸d艂owym programu.
Ten sam efekt, jak przez zmian臋 opcji kompilatora, mo偶na uzyska膰 u偶ywaj膮c dyrektywy defj. Jej u偶ycie jest nast臋puj膮ce: #pragma DEFj!77Ml_H^IT=wc!r-to艣膰), czyli dla przyk艂adu: #pragina DEFJ(TIMl_INIT=0xFD). Zdecydowanie zalecam ten w艂a艣nie spos贸b, je艣li nie chce si臋 pisa膰 procedur do inicjalizacji UART.
Na list. 1 zamieszczono fragment programu powoduj膮cego wysy艂anie znak贸w do urz膮dzenia do艂膮czonego do UART. Na pocz膮tku do艂膮czane s膮 zbiory biblioteczne oraz ustalana jest warto艣膰 THl za pomoc膮 defj. Znaki (bajty) wysy艂ane s膮 przez funkcj臋 putchar(). Domy艣lnie bit SMOD ma warto艣膰 "0".
Podobnie jest z odbiorem. Jednak zanim przedstawi臋 przyk艂ad programu odbioru danych, kilka s艂贸w wyja艣nienia. Typowo, do odbioru danych ze standardowego
List. 2. Fragment programu do obs艂ugi programatora szeregowego.
ttpragma DEFJ(TIM1_INIT=OKFEJ
#pragn膮 3MALL #mclude #mclude
//program g艂贸wny yoid min () 1
char temp, templ,
set_reset () ;
PCON I = 0 X8 0; El 1= 0X81;
clr_reset() ;
//timer 1 ustala pr臋dko艣膰 transmisji //tutaj 19200 bod贸w C3M0D b臋dzie r贸wny "1") //wyb贸r modelu pami臋ci programu //funkcje Wej艣cia - wyj艣cia //definicje rejestr贸w
cmdl, cmd2, cmd3;
//wystawienie sygna艂u reset dla programowanego UK
//faza reset jest zale偶na od stanu linii resettype
f fl=AT9Q, 0=AT89
//ustawienie bitu SMOD na "I"
//W艂膮czenie przerwa艅 i zezwolenie na mtO
//zwolnienie reset z uwagami jak dla set_reset
While (1) 1
While ((temp = _getkey()) ==
switch (temp)
1
case "I"; //"I" typ urz膮dzenia deyice = _getkeyU; put_ret() ; break;
rodzaj pod艂膮czonego programatora //wys艂anie napisu "AVR ISP"
case 艢&艢 -. tt'S' putchar('A') putchar ('V| putchar('R putchar(' putchar('I') putchar('B') putchar('P')
i* lub inaczej - znacznie pro艣ciej; printf("AVR ISP"> ; instrukcja prmtf wykorzystuje funkcje putchar()r DodatkoW膮 Korzy艣ci膮 jest mo偶liwo艣膰 wyprowadzania sformatowanych wydruk贸w np . prmtf ( "%#bx" , 165) ; spowoduje wy艣wietlenie liczby
165 W Zapisie sZesnastkowym break;
case 'V ;
putchar('1') ; putchar('0'); break;
putchar('1') ; putchar('0') break;
*/
//艢V wersja programu //wys艂anie napisu "10"
//'V' Wersja urz膮dzenia //wys艂anie napisu "10"
102
Elektronika Praktyczna 10/2002
KURS
List. 3. Przyk艂ad obs艂ugi transmisji szeregowej w oparciu o przerwanie generowane przez UART.
Obs艂uga transmisj i szeregowej przez UART z wykorzystaniem przerwa艅.
#include
#define ROZM_BUFORA_TX 32 #define ROZM_BUFORA_RX 32 #define OSCYLATOR 11059200
unsigned char buf_wysylki[R0ZM_BUF0RA_TX] ;
unsigned char buf_odbioru[R0ZM_BUF0RA_RX] ;
unsigned char do_wysylki, wysiano;
unsigned char wysylka_wy艂膮czona;
unsigned char do_odbioru, odebrano;
//funkcja obs艂uguj膮ca przerwanie UART; using 2 oznacza, 呕e u偶ywany jest
//bank rejestr贸w R0..R7 numer 2
void UART_irq (void) interrupt 4 using 2
if (RI != 0) //fragment wykonywany, gdy do_odbioru znak
RI = 0; //zerowanie flagi "do_odbioru"
if ((do_odbioru+l) != odebrano) buf_odbioru[do_odbioru++] = SBUF;
//pobranie znaku do bufora odbioru, gdy jego } //rozmiar jest wystarczaj膮cy
if (TI ! = 0) //fragment wykonywany, gdy znak do wys艂ania
TI = 0; //zerowanie flagi "do wysy艂ki"
if (do_wysylki != wysiano)
SBUF = buf_wysylki[wyslano + + ] ; //je艣li indeksy ilo艣ci znak贸w
//i ilo艣ci znak贸w do wys艂ania
else wysylka_wy艂膮czona = 1; //s膮 r贸偶ne, pobierz i wy艣lij
//znak
//obliczenie rozmiaru wolnego miejsca w buforze odbioru unsigned char rozm_bufora_odbioru (void)
return (do_odbioru - odebrano);
//obliczenie ilo艣ci znak贸w pozostaj膮cych do wysy艂ki unsigned char rozm_bufora_wysylki (void)
return (do_wysylki - wysiano)
//ustawienie pr臋dko艣ci transmisj i, inicjacja Timera 1 void UART_baudrate (unsigned char baudrate)
//wy艂膮czenie przerwa艅
//kasowanie flagi przerwania od UART //nie wys艂ano i nie odebrano danych //wy艂膮czenie funkcj i nadawania //zatrzymanie timera 1 //wy艂膮czenie przerwa艅 timera 1 //SMOD = 1, mno偶nik dla kwarcu x2 //ustawienie trybu pracy timera 1
EA = 0; TI = 0;
do_wysylki = wysiano =
wysylka_wy艂膮czona = 1;
TRI = 0;
ET1 = 0;
PCOH 1= 0x80;
TMOD &= ~0xF0;
TMOD 1= 0x2 0;
//wyliczenie warto艣ci dla TH1
TH1 = (unsigned char) ( 256-(OSCYLATOR/(16L*12L*baudrate))); TRI = 1; //uruchomienie timera 1
EA = 1; //zezwolenie na przerwania
urz膮dzenia wej艣cia - wyj艣cia (w naszym przypadku jest to UART) s艂u偶y funkcja getchar(). Tkwi w niej pewna "pu艂apka". Zgodnie ze specyfikacj膮 ANS I funkcja ta odsy艂a odebrany bajt. Mo偶na powiedzie膰, 偶e wyst臋puje efekt echa. Mimo i偶 jest to zgodne z norm膮 j臋zyka, to najcz臋艣ciej zupe艂nie niepotrzebne. S膮 oczywi艣cie sytuacje, w kt贸rych jest to bardzo wygodna
metoda kontroli tego, co zosta艂o wys艂ane. Cz臋艣ciej trzeba po prostu odebra膰 bajt i echo odsy艂ane do urz膮dzenia nadaj膮cego bardzo w tym przeszkadza. Z moich do艣wiadcze艅 wynika, 偶e dla wi臋kszo艣ci kompilator贸w obok funkcji getchar() definiowana jest funkcja getkey(), kt贸ra odbiera znak i nie wysy艂a echa. Tak jest np. w przypadku kompilatora RC-51. W艣r贸d
funkcji biblioteki stdio.h znajdziemy r贸wnie偶 _getkey(). Na list. 2 pokazano fragment programu programatora sterowanego przez port szeregowy.
S艂owo kluczowe while ((temp = _getkey()) == OxlB) inicjuje p臋tl臋, w kt贸rej wykonywane s膮 dwie instrukcje. Jedna to przypisanie zmiennej temp warto艣ci bajtu odebranego przez UART. Druga to por贸wnanie tego bajtu z kodem ESC (OxlB) i zako艅czenia dzia艂ania p臋tli, je艣li odebrany znak b臋dzie r贸偶ny od ESC. Zwr贸膰my uwag臋 na r贸偶nice w sk艂adni instrukcji przypisania [zmienna = warto艣膰) i por贸wnania [zmienna == warto艣膰).
Opisane przyk艂ady s膮 bardzo proste. W programie obs艂ugi transmisji nale偶y do艂膮czy膰 biblioteki stdio.h, ustawi膰 odpowiedni膮 pr臋dko艣ci transmisji i wywo艂a膰 odpowiedni膮 do potrzeb funkcji.
Inaczej (i trudniej) jest w przypadku wykorzystania przerwania. Na list. 3 pokazano przyk艂ad programu do obs艂ugi UART wykorzystuj膮cego przerwania.
Wr贸膰my jeszcze do biblioteki stdio.h. Jej opis nie by艂by kompletny bez wyja艣nie艅 dotycz膮cych funkcji ungetchar(), printf() i scanf().
Jak wspomnia艂em, zgodnie ze specyfikacj膮 ANSI dla j臋zyka C funkcja getchar() przesy艂a艂a do nadajnika echo odebranego znaku. Funkcja _getkey() dzia艂a prawie identycznie jak getchar() ale nie wysy艂a echa. Do zestawu tych funkcji do艂膮czona jest jeszcze ungetchar(), kt贸ra umieszcza znak odebrany przez getchar() lub _getkey() z powrotem w buforze odbiornika tak, 偶e nast臋pne wywo艂anie getchar() spowoduje odebranie tego samego znaku. Jest ona u偶yteczna w贸wczas, gdy kilka r贸偶nych procedur korzysta w programie, niezale偶nie od siebie, ze znak贸w odebranych przez UART. Mo偶na na przyk艂ad wyobrazi膰 sobie sytuacj臋, gdy odebrany znak jest kodem steruj膮cym przeznaczonym dla innej procedury ni偶 ta, kt贸ra go odebra艂a. Odebranie znaku zeruje flag臋 RI oznaczaj膮c膮 gotowo艣膰 bajtu do odbioru - ponowne u偶ycie getchar() nie jest mo偶liwe. W贸wczas ungetchar() przywraca stan taki, jakby znak by艂 w艂a艣nie przed chwil膮 odebrany. Mo偶na wtedy przekaza膰 sterowanie do innego fragmentu programu, kt贸ry odbierze bajt i w艂a艣ciwie go zinterpretuje.
Elektronika Praktyczna 10/2002
103
KURS
List. 3. - cd.
//inicjalizacja trybu transmisj i szeregowej Void UART_inicjalizacja (void)
UART_baudrate (19200) ; EA = 0;
do_wysylki = wysiano = wysylka_wy艂膮czona = 1; do odbioru = odebrano
//ustawienie pr臋dko艣ci transmisj i
//wy艂膮czenie przerwa艅
//zerowanie indeks贸w nadawania i odbioru
//ustawienie trybu pracy UART na "mod臋 1'
//zezwolenie na prac臋 odbiornika UART //kasowanie flag przerwania UART //zezwolenie na przerwania od UART //ustawienie niskiego priorytetu //za艂膮czenie przerwa艅
//przyk艂ad w艂asnej implementacj i funkcj i wysy艂aj膮cej znak przez UART
signed char _putchar(unsigned char c)
{
//bufor zbyt ma艂y, b艂膮d
if ( (ROZM_BUFORA_TX-rozm_bufora_wysylki())< = 2) return (-1) ;
EA = 0; //wy艂膮czenie przerwa艅
SMO = 0; SM1 = 1;
SM2 = 0;
REN = li
TI = RI = 0;
ES = 1;
PS = 0;
EA = 1;
buf_wysylki[do_wysylki++] if (wysylka_wy艂膮czona)
wysylka_wy艂膮czona TI = 1;
EA = 1; return (0);
= c; //wstawienie znaku do bufora nadawania //je艣li nadawanie jest wy艂膮czone
//za艂膮cz je
//za艂膮czenie przerwa艅
//je艣li operacja poprawna, zwr贸膰 0
//przyk艂ad wykonania funkcj i odbieraj膮cej znak z UART signed int _getchar (void)
unsigned char c;
if (rozm_bufora_odbioru() == 0)
return (-1); EA = 0;//wy艂膮czenie przerwa艅 c = buf_odbioru[odebrano + + ] ; EA = 1;//za艂膮czenie przerwa艅 return (c) ;
//brak odebranych znak贸w, b艂膮d
//pobranie znaku z bufora
Funkcja obs艂uguj膮ca standardowe wyj艣cie danych printff) t艂umaczy warto艣ci odebranych bajt贸w na znaki. Spos贸b jej wywo艂ania jest nast臋puj膮cy: i Ji t p艅n tf(ch ar * for mat, argl [, arg2,,,,,, arg-n]). Funkcja printff) wykorzystuje polecenie putcharf) do wysy艂ania 艂a艅cucha znak贸w powsta艂ego na skutek przekszta艂cenia do wymaganego formatu. Przekszta艂cenie odbywa si臋 zgodnie z wzorcem zawartym w argumencie format. Zawiera on r贸偶nego rodzaju obiekty - zwyk艂e znaki, kt贸re s膮 kopiowane wprost do 艂a艅cucha wyj艣ciowego oraz specyfikacje r贸偶nych przekszta艂ce艅, z kt贸rych ka偶da wskazuje na spos贸b przekszta艂cenia i wys艂ania kolejnego argumentu printf(). Ka偶d膮 specyfikacj臋 formatu rozpoczyna znak %, a ko艅czy znak charakterystyczny dla danego przekszta艂cenia. Pomi臋dzy znakiem % a znakiem przekszta艂cenia mog膮 wyst膮pi膰 dodatkowe symbole steruj膮ce w kolejno艣ci takiej, jak poni偶ej:
- "-" przesuwaj膮cy przekszta艂cony argument do lewej strony,
- liczba okre艣laj膮ca minimalny rozmiar pola,
- "." oddzielaj膮ca rozmiar pola od jego precyzji (cz臋艣ci u艂amkowej),
- liczba okre艣laj膮ca precyzj臋, to jest maksymaln膮 liczb臋 znak贸w dla tekstu, liczb臋 cyfr po kropce dziesi臋tnej dla warto艣ci zmienno pozycyjnej lub minimaln膮 liczb臋 znak贸w dla warto艣ci sta艂opozycyjnej,
- "h" lub "1" (litera ma艂e L), je艣li argument ca艂kowity nale偶y wy-
艣wietli膰 odpowiednio - w postaci short lub w postaci long.
W tab. 1. zestawiono najwa偶niejsze znaki kontroluj膮ce przekszta艂cenia danych.
Funkcja scanff) jest odpowiednikiem printff), lecz dzia艂aj膮cym w przeciwn膮 stron臋. To znaczy wprowadza ona znaki ze standardowego wej艣cia, interpretuje je zgodnie z informacjami zawartymi w formacie oraz zapami臋tuje w miejscach okre艣lonych przez pozosta艂e argumenty. Jej wywo艂anie ma posta膰: int scanffchar *format, *argl[, *arg2,....]). Odczyt danych ze standardowego wej艣cia zako艅czy si臋, gdy scanff) zinterpretuje wszystkie znaki lub dane nie pasuj膮 do specyfikacji przekszta艂cenia. Ka偶dy z argument贸w funkcji scanff) musi by膰 wska藕nikiem. Do interpretacji wprowadzanego ci膮gu znak贸w u偶ywane s膮 te same symbole przekszta艂ce艅 co dla p艅ntf().
Funkcjami printff) i scanff), a zw艂aszcza pierwsz膮 z nich, zajmiemy si臋 jeszcze w nast臋pnym odcinku kursu. Jak wspomnia艂em, funkcja p艅ntfO u偶ywa do wysy艂ania znak贸w putcharf), dlatego zmieniaj膮c put-char() tak aby znaki by艂y kierowane do wy艣wietlacza LCD zamiast do portu UART, mo偶na wykorzysta膰 j膮 do formatowania wy艣wietlanego tekstu. Przyda si臋 to zw艂aszcza przy wy艣wietlaniu liczb zmiennopozycyj-nych. Jednak temat zwi膮zany z u偶yciem printff), scanff) i formatowaniem tekstu jest tak obszerny, 偶e zas艂uguje na oddzielny artyku艂. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Dodatkowe informacje
Ewaluacyjn膮 wersj臋 pakietu firmy Raisonance prezentowanego w artykule zamie艣cili艣my na CD-EP8/2002B.
Tab. 1. Podstawowe przekszta艂cenia funkcji printff)
Znak Typ argumentu Przeksztafcenie do postaci
d,i int liczba dziesi臋tna ze znakiem
0 int liczba 贸semkowa bez znaku i wiod膮cego zera
x,X int liczba szesnastkowa bez znaku i wiod膮cego 0x u偶ycie ma艂ej litery x w konsekwencji powoduje przy przekszta艂caniu stosowanie znak贸w abcdef, natomiast du偶ego X - ABCDEF
u int liczba dziesi臋tna bez znaku
c int pojedynczy znak
s char" tekst, wypisywany do momentu napotkania znaku ko艅ca tekstu \0 lub osi膮gni臋cia rozmiaru (precyzji) pola
f double liczba dziesi臋tna zmiennopozycyjna, gdzie liczb臋 cyfr po kropce dziesi臋tnej okre艣la precyzja
e, E double liczba dziesi臋tna w postaci wyk艂adniczej
P void* wska藕nik, reprezentacja zale偶y od implementacji w konkretnej bibliotece stdio.h
% brak przekszta艂cenia, wypisywany jest znak %
104
Elektronika Praktyczna 10/2002
PROJEKTY CZYTELNIK脫W
DzioS "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.
Przycisk ANY do PC, cz臋艣膰 2
W drugiej cz臋艣ci
artyku艂u przedstawiono
tajniki oprogramowania
steruj膮cego prac膮
mikrokontrolera, kt贸ry
em uluje sterownik
klawiatury PC.
Projekt mo偶e by膰
interesuj膮cy dla
projektant贸w urz膮dze艅
elektronicznych
wsp贸艂pracuj膮cych z PC
poprzez szeregowe 艂膮cze
klawia tury. W artyk ule
zawarto wszystkie
informacje niezb臋dne dla
poznania mechanizm贸w
wymiany danych mi臋dzy
PC i do艂膮czon膮 klawiatur膮.
List. 1
On_lntO:
Set Bit_linia_zajeta
CaUnterO = Const_opoznienie_ zajetosci
Start Tuner0 Return
On_tlmerO:
Stop Tlmer0
Reset Eit_linia_zaj臋ta Return
List 2
艢 Od艂膮czR klRU呕Rtur臋
Sub Oaiacz_k.la>iiatiiEe ()
艢Oc 3?fciwsni? na zw3lnz2nz$ iznzz
Jh Blt_llnla_Za]eta, *+0
艢p.c z艂膮czenze feiawiac^ry ca PC-ta
Reset Clk_con
Reset Dat_con
End Sub
艢 Do艂膮czR klRU呕Rtur臋
Sub 3olacz_klaHiatuEe()
艢Oc 3?fciwsni? na zw3lnz2nz$ iznzz
Jh Blt_llnla_Za]eta, *+0
Set Dat_con
Set Clk._ccai
End Sub
Podczas w艂膮czania jakiego艣 urz膮dzenia mi臋dzy klawiatur臋 a PC musimy si臋 liczy膰 z tym, 艣e w interfejsie nie zosta艂a przewidziana mo偶liwo艣膰 od艂膮czenia klawiatury w czasie pracy systemu. Dlatego trzeba uwa偶a膰, aby 艣adne z komunikuj膮cych si臋 urz膮dze艅 nie odczu艂o zaistnienia tego zdarzenia. Gdyby tak si臋 sta艂o, mo艣e to spowodowa膰 zawieszenie pracy klawiatury, a wtedy pozostaje ju艣 tylko wy艂膮czenie komputera.
Aby temu zapobiec, opracowa艂em do艣膰 skomplikowany program. Pomy艣lmy, kiedy klawiatura mo艣e si臋 zawiesi膰? Ja wymy艣li艂em nast臋puj膮ce sytuacje:
1. Podczas wymiany informacji pomi臋dzy PC-tem i klawiatur膮 uk艂ad wtr膮ci si臋 "w p贸艂 zdania".
2. Uk艂ad po艂膮czy klawiatur臋 z komputerem w momencie, gdy ta zacz臋艂a ju艣 wcze艣niej co艣 wysy艂a膰.
3. Komputer zechce wys艂a膰 jak膮艣 komend臋 do klawiatury w czasie, gdy b臋dzie ona od艂膮czona.
Sytuacji pierwszej i drugiej zaradzi艂em w prosty spos贸b. Linia P3.2 procesora, b臋d膮ca jednocze艣nie wej艣ciem przerwania iniO, jest na sta艂e
po艂膮czona z lini膮 zegara klawiatury. Uk艂ad 艂膮czy i roz艂膮cza klawiatur臋 tylko wtedy, gdy na linii zegara nie ma sygna艂u przez przynajmniej 100 ms. W programie zosta艂o to spe艂nione dzi臋ki przerwaniom IniO oraz TimerO. Ich dzia艂anie jest banalne. Odpowiednie procedury przedstawiono na list. 1.
Zmienna Pii_linia_zajeial kt贸ra jest odpowiednio ustawiana i zerowana, jest nast臋pnie wykorzystywana w pod-programach Odlacz_klawiatu-re() i Dolacz_klawiatureQ. Robi膮 one dok艂adnie to, na co nazwa wskazuje, a ich dzia艂anie przedstawiono na list. 2.
Pomimo wielu pr贸b nie uda艂o mi si臋 rozwi膮za膰 problemu wyst臋puj膮cego w sytuacji trzeciej. Jednak podczas eksperyment贸w z gotowym uk艂adem nie zdarzy艂o si臋, aby komputer wys艂a艂 jak膮艣 komend臋 przy od艂膮czonej klawiaturze.
Testy wykazuj膮, 艣e w pewnych sytuacjach, zaraz po wys艂aniu do komputera kod贸w ALT+CTPL+DELETE, linia zegara jest przez komputer zwierana a艣 do restartu. Poniewa艣 program czeka z transmisj膮 na jej zwolnienie, mo艣e to spowodowa膰, 艣e klawiatura zostanie do艂膮czo-
Projekt
103
na do komputera ju艣 po przeprowadzeniu przez niego test贸w tego podzespo艂u. Spowoduje to b艂膮d klawiatury. W sumie problem ten nie jest bardzo dotkliwy. B艂臋dne zadzia艂anie uk艂adu uda艂o mi si臋 wykry膰 tylko na poczciwym 386 podczas gry "Prince of Persia" vl.O. Jednak klawiatura dzia艂a! Jest to ciekawy przypadek, kiedy przy komunikacie "Keyboard error press Fl to continue" przycisk Fl zdaje egzamin!
Uda艂o mi si臋 troch臋 z艂agodzi膰 ten problem w nast臋puj膮cy spos贸b: Timerl odlicza czas przez jaki linia zegara znajduje si臋 na poziomie niskim. Je艣li nast膮pi jego przepe艂nienie, procedura On_ii-merl ustawi zmienn膮 Pii_iime_up. Pierwotnie program w tym momencie przerywa艂 natychmiast transmisj臋, jednak okaza艂o si臋, 艣e powodowa艂o to b艂膮d interfejsu klawiatury, a przez to permanentne zawieszanie komputera. Ostatecznie, je艣li zmienna ta jest ustawiona, program ko艅czy wysy艂anie aktualnego baj-tu i zaraz potem 艂膮czy klawiatur臋.
Najwa艣niejszym blokiem programu jest procedura Wyslij_do_pc. Wysy艂a ona do komputera dan膮 z akumulatora. Dzia艂anie ka艣dego z podprogram贸w, maj膮cych przes艂a膰 kody przycisk贸w, polega na od艂膮czeniu klawiatury, a potem kilkukrotnym wywo艂aniu w艂a艣nie tej procedury z odpowiednim parametrem. Dla przyk艂adu, na list. 3 zamieszczono procedur臋 wysy艂ania kodu przycisku ANY.
Pii_error jest ustawiany podczas wysy艂ania danej, je艣li nast膮pi艂o przepe艂nienie Ti-meral fpatrz wy艣ej). Przy
Elektronika Praktyczna 10/2002
105
PROJEKTY CZYTELNIK脫W
List. 3
Wysylaj_ a ny!
Rese t Le d _busy
If Z wl = OIThen
B_ any = Rnd(4S)
B any = Lookup(b_any,Data_kody)
Odlacz klawiatur臋
Re set B it_error
Wy sli] do_pc B_any
]b Bit error, ,error_any
Wa itms 5
Wy sli] do_pc &HF0
]b Bit error, ,error_any
Wy sli] do_pc B_any
Erro r_an y
Do lacz klawiatur臋
Else
Wa itms 6
End If
Set Led_ b u sy
okazji nale偶y zauwa偶y膰, 偶e kod danego przycisku jest pobierany z odpowiedniej tablicy. Mo偶liwych kod贸w jest 48, a przyciski, kt贸re mog膮 by膰 "ANY", zosta艂y na rys. 2 (EP9/2002) oznaczone na szaro.
Zrozumienie kodu 藕r贸d艂owego (dost臋pny na stronie WWW EP) nie powinno by膰 trudne, je偶eli wie si臋, 偶e dzia艂anie programu jest zale偶ne od zmiennych, kt贸re s膮 przestawiane w odpowiednich przerwaniach. Zach臋cam do "pomajstrowania" przy kodzie.
Monta偶 i uruchomienie
Na rys. 6 zosta艂 przedstawiony schemat monta偶owy, a wz贸r mozaiki 艣cie偶ek opublikowali艣my w EP9/2002. P艂ytka zosta艂a przygotowana jako jednostronna, dlatego nie uda艂o mi si臋 unikn膮膰 dw贸ch zworek (opr贸cz zworek konfiguracji).
Zanim rozpoczniemy monta偶 warto przygotowa膰 sobie obudow臋. Jej zastosowanie jest wskazane ze wzgl臋du na ryzyko zwarcia zasilania podawanego przecie偶 bezpo艣rednio z p艂yty
g艂贸wnej naszego komputera. Uk艂ad (p艂ytka) nie jest przewidziany do 偶adnej konkretnej obudowy. Model zosta艂 umieszczony w obudowie typu KM33B.
Przy projektowaniu p艂ytki szczeg贸lny nacisk po艂o偶y艂em na wzmocnienie cz臋艣ci, na kt贸rej znajduj膮 si臋 przyciski. W zwi膮zku z tym 艣ruby s膮 rozstawione w nietypowych miejscach.
Przy przygotowywaniu obudowy mo偶na si臋 pos艂u偶y膰 p艂ytk膮 jako szablonem do wiercenia otwor贸w. Trzeba na tym etapie wiedzie膰, 偶e przyciski b臋d膮 montowane od strony druku! P艂ytk臋 przyk艂adamy od wewn臋trznej strony obudowy drukiem do do艂u. Otwory pod 艣ruby mo偶emy od razu wierci膰 wiert艂em 3 mm. Miejsca pod przyciski nale偶y najpierw zaznaczy膰 za pomoc膮 cieniutkiego wierte艂ka 0,8 mm. Obok diody LED nie zosta艂 co prawda umieszczony 偶aden punkt "pilota偶owy", lecz otw贸r na ten element nie musi by膰 umieszczony precyzyjnie.
Odk艂adamy teraz p艂ytk臋 na bok i wyka艅czamy obudow臋. Najpierw rozwiercamy otwory pod przyciski. Ich 艣rednica b臋dzie zale偶na od wybranych przez nas element贸w. Mog膮 to by膰 zar贸wno standardowe mikroprze艂膮czniki, jak r贸wnie偶 ich du偶e odpowiedniki. My艣l臋, 偶e dobrym pomys艂em jest umieszczenie du偶ego przycisku ANY i ma艂ego ALT+CTRL+DELETE. Ale to tylko moja sugestia. Otwory pod 艣ruby dobrze jest rozwier-ci膰 od strony zewn臋trznej grubym wiert艂em do pewnej g艂臋boko艣ci tak, aby 艂ebki 艣rub nie wystawa艂y. Nie polecam tutaj u偶ywania wiertarki, bo
Rys. 6
wiert艂o "przejdzie" na wylot. Du偶o bezpieczniej jest obraca膰 je palcami.
Teraz mo偶emy ju偶 wr贸ci膰 do p艂ytki. Monta偶 musimy rozpocz膮膰 niestety od dw贸ch zworek zaznaczonych na p艂ytce kreskami. Dalej montujemy wszystkie elementy opr贸cz przycisk贸w i diody. W miejsce z艂膮czy PC i KBD stosujemy goldpiny. Rezystory R1...R4 nie s膮 konieczne. Egzemplarz modelowy dobrze spisywa艂 si臋 bez nich. Jednak gdyby wyst臋powa艂y b艂臋dy w dzia艂aniu uk艂adu, mo偶na wlutowa膰 w to miejsce rezystory o warto艣ci oko艂o 10 kn.
Przyciski i diody montujemy od strony druku. Najpierw "na sucho" uk艂adamy przyciski i sprawdzamy, czy dobrze pasuj膮 do obudowy. W razie konieczno艣ci na tym etapie mo偶emy wlutowa膰 je pod lekkim skosem. Nast臋pnie, ju偶 po ich przylutowa-niu, wpasowujemy diod臋 odpowiednio przycinaj膮c jej wyprowadzenia. Lutujemy tylko jej jedn膮 ko艅c贸wk臋. Dzi臋ki temu przed ostatnim lutem mo偶emy ustawi膰 j膮 w odpowiedniej pozycji.
Przed zamkni臋ciem obudowy pozostaje nam wykona-
nie gniazdka i wtyczki mini DIN lub du偶ej DIN zako艅czonych listwami nak艂adanymi na goldpiny oraz wybranie odpowiadaj膮cej nam konfiguracji za pomoc膮 zworek. Z艂膮cze PC zosta艂o odpowiednio opisane na p艂ytce. Z艂膮cze KBD posiada identyczne rozmieszczenie wyprowadze艅 jak PC.
Uwaga! Przed pierwszym pod艂膮czeniem uk艂adu do komputera zalecam wypr贸bowanie najpierw jego dzia艂ania. W tym celu do odpowiednich ko艅c贸wek portu PC lub KBD nale偶y pod艂膮czy膰 stabilizowane 藕r贸d艂o napi臋cia
0 warto艣ci 5V. Je偶eli dioda mignie jednokrotnie i z 偶adnego miejsca nie wydobywa si臋 dym, mo偶emy uzna膰 uk艂ad za sprawny.
Uwagi ko艅cowe
Po pod艂膮czeniu uk艂adu
1 w艂膮czeniu komputera zauwa偶ymy popraw臋 komfortu obs艂ugi. Nie powoduje ju偶 zmieszania pro艣ba o naci艣ni臋cie przycisku ANY. Zawieszenie systemu te偶 ju偶 tak nie irytuje - po co si臋 z艂o艣ci膰, skoro problem mo偶na rozwi膮za膰 jednym przyciskiem. Rados艂aw Koppel
106
Elektronika Praktyczna 10/2002
BIBLIOTEKA EP
IV ^Bibliotece LP" 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 polki, 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,
Uwaga! Wi臋kszo艣膰 prezentowanych ksi膮偶ek mo偶na zam贸wi膰 w Dziale Handlowym AVT (patrz str, 139), Chcemy w ten spos贸b udost臋pni膰 je Czytelnikom EP,
Piotr G贸recki: "Wzmacniacze operacyjne", BTC2002, 250 str.
EloMronlH PraKtyozneJ
Ze wst臋pu do ksi膮偶ki: "zapomnij na chwil臋 o wszystkim, co wiesz o uk艂adach scalonych i wzmacniaczach. Oddaj si臋 marzeniom. Je艣li by艂by艣 cudotw贸rc膮, to jaki wzmacniacz chcia艂by艣 mie膰 do dyspozycji? Czy chcia艂by艣 mie膰 uniwersalny wzmacniacz, nadaj膮cy si臋 do wszystkiego?".
Jak dowodzi autor w dalszej cz臋艣ci ksi膮偶ki, te "marzenia" s膮 mo偶liwe do zrealizowania, a to dzi臋ki r贸偶norodno艣ci wzmacniaczy dost臋pnych na rynku. Aby si臋 nimi wprawnie pos艂ugiwa膰 trzeba mie膰 jednak spor膮 wiedz臋, kt贸rej przekazanie czytelnikom sta艂o si臋 wiod膮cym przes艂aniem autora ksi膮偶ki.
Wyk艂ad (w najlepszym tego s艂owa znaczeniu) zosta艂 podzielony na sze艣膰 cz臋艣ci, kt贸re razem tworz膮 kompendium 艂atwo przyswajalnej wiedzy praktycznej, podbudowanej w nie bolesny spos贸b odrobin膮 teorii.
W pierwszej cz臋艣ci ksi膮偶ki autor zamie艣ci艂 podstawowe informacje o wzmacniaczach operacyjnych, ich
parametrach, mo偶liwo艣ciach, podstawowych aplikacjach, skr贸towo om贸wi艂 tak偶e histori臋 ich powstania i rozwoju. Druga cz臋艣膰 jest przeznaczona dla projektant贸w tworz膮cych wysublimowane aplikacje, w kt贸rych konieczne jest stosowanie wzmacniaczy o bardzo wy艣rubowanych parametrach. Autor precyzyjnie wyja艣nia ich znaczenie i wzajemne powi膮zania pomi臋dzy nimi. Cz臋艣膰 trzecia zawiera przyk艂ady wykorzystania wzmacniaczy operacyjnych. W cz臋艣ci czwartej zamieszczono podstawowe informacje o projektowaniu aktywnych filtr贸w na wzmacniaczach operacyjnych, z silnym nastawieniem na zastosowania praktyczne. W pi膮tej cz臋艣ci autor skupia si臋 na niezmiernie wa偶nym, a s艂abo znanym temacie - szumach. Om贸wiono rodzaje wyst臋puj膮cych szum贸w, ich 藕r贸d艂a i parametry szumowe wzmacniaczy operacyjnych. Ostatnia, sz贸sta cz臋艣膰 jest po艣wi臋cona nietypowym wzmacniaczom operacyjnym, o kt贸rych - ze wzgl臋du na ich stosunkowo w膮skie obszary aplikacyjne - wi臋kszo艣膰 elektronik贸w nie wie zbyt wiele.
W ten spos贸b na krajowym rynku wydawniczym pojawi艂a si臋 pierwsza od kilkunastu lat ksi膮偶ka o wzmacniaczach operacyjnych, z kt贸rej mo偶na dowiedzie膰 si臋 praktycznie wszystkiego, co jest is-
III Pum Goreck
Wzmacruacze
operacyjne
totne dla konstruktor 贸w-praktyko w korzystaj膮cych z tych uniwersalnych uk艂ad贸w. Samoistnie nasuwa si臋 por贸wnanie z niegdysiejsz膮 "bibli膮" wzmacniaczy operacyjnych autorstwa pp. Zbigniewa Kulki i Micha艂a Nada chowski ego, ale ostateczn膮 ocen臋 pozostawiamy Czytelnikom.
Alfred V. AhoT Ravi Sethi, Jeffrey D. Ullman: "Kompilatory. Regu艂y t metody i narz臋dzia "T
WNT 2OO2T 750 str.
Kolejna, prezentowana w dziale Biblioteka EP, ksi膮偶ka z serii "Klasyka Informatyki" wydana przez Wydawnictwa Naukowo-Tech-niczne. Tym razem ksi膮偶ka dotycz膮ca podstaw teoretycznych budowania kompilator贸w. Co to ma wsp贸lnego z elektronik膮? Pozornie niewiele, ale niemal ka偶dy elektronik wykorzystuje w swojej pracy jaki艣 translator i wiedza o ich dzia艂aniu i budowie mo偶e czasami okaza膰 si臋 cenna. Ponadto, niekt贸re zagadnienia opisane w ksi膮偶ce maj膮 charakter uniwersalny, np. stosowane w analizatorach sk艂adni techniki wyszukiwania tekstu
z powodzeniem mo偶na wykorzystywa膰 w edytorach tekstu. Dlatego zdecydowali艣my sie. zaprezentowa膰 ksi膮偶k臋. "Kompilatory..." na lamach EP - by膰 mo偶e kt贸ry艣 z Czytelnik贸w spr贸buje samodzielne napisa膰 kompilator dla mi kro kontrole r贸w AVR?
Ksi膮偶ka stanowi kompletny wyk艂ad o podstawach budowania tran siato r贸w, pocz膮wszy od wprowadzenia podstawowych poj臋膰, poprzez om贸wienie analizy leksykalnej i sk艂adniowej, metody generowania i optymalizacji kodu, a偶 do przyk艂adu projektu kompilatora. Z ka偶dym zagadnieniem zwi膮zane s膮 膰wiczenia, dzi臋ki kt贸rym mo偶na zweryfikowa膰 stopie艅 opanowania materia艂u. Na szczeg贸ln膮 uwag臋, zas艂uguj膮 rozdzia艂y po艣wi臋cone narz臋dziom stosowanym do budowy kompilator贸w, kt贸re w spos贸b niemal automatyczny mog膮 wygenerowa膰 translator prostego j臋zyka.
Ksi膮偶ka "Kompilatory..." jest jedn膮 z najbardziej znanych ksi膮偶ek o budowie kompi-
ATred V. Ajiu Rsvi Sethi
Kompilatory Reguk maody maiz臋dzia
Elektronika Praktyczna 10/2002
137
BIBLIOTEKA EP
lator贸w. Dla prawie ka偶dego studenta informatyki na kierunku In偶ynieria oprogramowania jest to podstawowy podr臋cznik do wyk艂adu o budowie kompilator贸w. Nale偶y podkre艣li膰, 偶e ksi膮偶ka jest podr臋cznikiem akademickim, zawiera materia! teoretyczny niezb臋dny do zrozumienia zasad dzia艂ania translator贸w, praktykom mo偶e brakowa膰 przyk艂adowych kompilator贸w w wersji 藕r贸d艂owej, jednak te mo偶na znale藕膰 w Interne-cie. Do przyswojenia informacji zawartych w ksi膮偶ce niezb臋dna jest przynajmniej podstawowa wiedza informatyczna, szczeg贸lnie z zakresu struktur danych (grafy].
Zesp贸艂 autor贸w: "Biblia TCP/IP"T Hehon 2002
Kolejna w ofercie Helionu ksi膮偶ka po艣wi臋cona protok贸艂owi TCP/IP, kt贸ra jest praktycznie podr臋cznikiem zawieraj膮cym zar贸wno wiedz臋 podstawow膮 jak i elementy niezb臋dne do praktycznego stosowania sieci zTCP/IP w praktyce. Pomimo skupienia si臋 autor贸w na "okolicach" PC-t贸w (m.in. poprzez szereg praktycznych porad zwi膮zanych z instalacj膮 i konfiguracj膮 sieci TCP/IP], w ksi膮偶ce mo偶na znale藕膰 tak偶e wiele informacji przydatnych projektantom urz膮dze艅 mikroprocesorowych do艂膮czanych do sieci tego typu. Szczeg贸lnie przejrzy艣cie autorzy przedstawili zagadnienia zwi膮zane z warstwowym modelem budowy sieci informa-
Legenda:
tycznych (s艂ynny stos ISO, czy wywodz膮cy si臋 z niego stos TCP/IP], kt贸ry wielu studentom, a nawet in偶ynierom sprawia powa偶ny problem poj臋ciowo-interpretacyjny.
Wysoki poziom merytoryczny prezentowanej ksi膮偶ki to niew膮tpliwa zas艂uga autor贸w, kt贸rzy - wyra藕nie to czu膰 w tre艣ci
ksi膮偶ka wybitna, polecamy!
ksi膮偶ka o du偶ych walorach praktycznych, polecamy!
mo偶e si臋 przyda膰
daleka od doskona艂o艣ci
nie warto kupowa膰
ksi膮偶ki - doskonale opanowali praktyczne aspekty TCP/IP. Jest to drugi pow贸d (pierwszym, mniej istotnym jest tytu艂 ksi膮偶ki], dla kt贸rego podczas czytania ksi膮偶ki opanowa艂 mnie nastr贸j niemal religijnego uniesienia...
138
Elektronika Praktyczna 10/2002
PROJEKTY
Audiofilski przetwornik
C/A audio, cz臋sc 1 Q
AVT-5084
PROJEKT OK艁ADKI
W kilku wcze艣niejszych
numerach EP przedstawione
zosta艂y r贸偶ne projekty
urz膮dze艅 audio
przeznaczonych dla
audiofil贸w, dla kt贸rych wa偶ne
jest jak najbardziej naturalne
brzmienie nagra艅 m uzycznych.
Prezentowany w tym a艅ykule
przetwornik cyfrowo-analogowy
audio nale偶y w艂a艣nie do tej
kategorii urz膮dze艅.
Osi膮gni臋cie dobrego
brzmienia wymaga
zastosowania dobrej jako艣ci
element贸w i niestety drogich
wzmacniaczy operacyjnych, ale
uzyskany efekt wart jest
poniesionych wydatk贸w.
Rekomendacje: jest to
uk艂ad dla "rasowych"
audiofil贸w, ceni膮cych
naturalne brzmienie
i dbaj膮cych o najdrobniejsze
szczeg贸艂y reprodukowanego
d藕wi臋ku. Doskona艂e
uzupe艂nienie klasycznego
zestawu audio lub zestawu
kina domowego.
Podczas odtwarzania nagrania instrumenty brzmi膮 czysto i naturalnie, znika "ha艂as" i bez trudu mo偶na 艣ledzi膰 gr臋 dowolnego instrumentu. W dobrze znanych nagraniach pojawia si臋 mn贸stwo szczeg贸艂贸w, kt贸re dotychczas umyka艂y uwadze. Przetwornik jest bezlitosny dla kiepsko zrealizowanych nagra艅 - ubocznym efektem jego stosowania b臋dzie weryfikacja w艂asnej p艂ytoteki zako艅czona wyrzuceniem kiepsko nagranych p艂yt (szczeg贸lnie tych z napisami: "nagrania pochodz膮 z oryginalnych p艂yt analogowych").
Przetwornik zosta艂 sprawdzony praktycznie i ods艂uchany przez kilka os贸b posiadaj膮cych r贸偶ne odtwarzacze CD, wzmacniacze i zestawy g艂o艣nikowe oraz z odtwarzaczem MiniDisc i tunerem satelitarnym - opinie o jego brzmieniu s膮 bardzo pozytywne. Budowa przetwornika jest tak prosta, 偶e jego wykonanie nie sprawi nikomu wi臋kszych trudno艣ci.
Opis og贸lny przetw贸rika
Przetwornik jest autonomicznym urz膮dzeniem z w艂asnym zasilaczem i we w艂asnej obudowie. Jednak model zosta艂 wykonany bez obudowy - wielko艣膰 p艂ytki drukowanej wraz z pozosta艂ymi elementami umo偶liwia zamontowanie jej w obudowie typu "du偶a wie偶a", przy czym wygl膮d obudowy nale偶y indywidualnie dostosowa膰 do posiadanego zestawu audio.
Przetwornik odbiera sygna艂 cyfrowy audio w formacie SPDIF przesy艂any np. z odtwarzaczy CD, MD lub magnetofonu DAT przewodem koncentrycznym o impe-dancji 75 O, ze z艂膮czami cinch lub 艣wiat艂owodem ze z艂膮czami TOSLINK. Przetwornik jest wyposa偶ony w trzy grupy wej艣膰 cyfrowych, wybierane 3-pozycyjnym prze艂膮cznikiem. W ka偶dej grupie mo偶na wybra膰 sygna艂 z wej艣cia koncentrycznego lub 艣wiat艂owodowego (wybieranego drugim, 2-pozycyjnym prze艂膮cznikiem), co
14
Elektronika Praktyczna 10/2002
Audiofilski przetwornik C/A audio
GN101
opto
Rys. 1. Schemat bloku wej艣膰
w sumie umo偶liwia pod艂膮czenia do 6 r贸偶nych urz膮dze艅 wej艣ciowych.
Odtworzony sygna艂 analogowy obu kana艂贸w stereofonicznych jest podawany, po odfiltrowaniu niepo偶膮danych pozosta艂o艣ci procesu przetwarzania, na wyj艣ciowe gniazda cinch. Poziom sygna艂u wyj艣ciowego (2VRMS) wystarczy do wysterowania ka偶dego wzmacniacza mocy.
Opis uk艂adu
Wej艣cia sygna艂u SPDIF Schemat bloku wej艣膰 cyfrowych przedstawiono na rys. 1. Przetwornik posiada 3 wej艣cia cyfrowe dla sygna艂u SPDIF - do ka偶dego z nich mo偶na poda膰 sygna艂 SPDIF ze 藕r贸d艂a przewodem
koncentrycznym 75 O, z wtykami CINCH (gniazda GN101, GN102, GN103) lub 艣wiat艂owodem plastikowym typu TOSLINK (odbiorniki typu TORX173 - US101, US102, US103). Wyb贸r aktywnego wej艣cia dokonywany jest prze艂膮cznikiem Sl, kt贸ry za艂膮cza odpowiedni przeka藕nik (P101, P102 lub P103), a wyb贸r rodzaju przewodu transmisyjnego dla danego wej艣cia (przew贸d koncentryczny lub 艣wiat艂ow贸d) - prze艂膮cznikiem S2 (prze艂膮cza przeka藕nik P104). Podanie napi臋cia +5V na jeden z przeka藕nik贸w powoduje r贸wnocze艣nie za艣wiecenie odpowiedniej diody (LED101, LED102 lub LED103) wskazuj膮cej numer wybranego wej艣cia. Dioda LED104 wskazuje, 偶e wybrane jest wej艣cie
koncentryczne, a dioda LED105 -艣wiat艂owodowe.
Odbiornik sygna艂u SPDIF Schemat bloku odbiornika SPDIF przedstawiono na rys. 2. Sygna艂 SPDIF jest podawany z wybranego gniazda na wej艣cie uk艂adu scalonego US201 (CS8412 firmy Crystal Semiconductor) b臋d膮cego odbiornikiem i dekoderem sygna艂u SPDIF. Uk艂ad CS8412 by艂 ju偶 opisany w EP (artyku艂 "Wzmacniacz audio z wej艣ciem cyfrowym" - EP7, 8 i 9/2001). Jest przystosowany do odbioru danych pr贸bkowanych z cz臋stotliwo艣ci膮 32, 44,1 i 48 kHz i zawieraj膮cych od 16 do 24 bit贸w w ka偶dej pr贸bce. Synchronizacj臋 uk艂adu CS8412 do cz臋stotliwo艣ci
Elektronika Praktyczna 10/2002
15
Audiofilski przetwornik C/A audio
T201
R205 LED201_K
c
CD/F1
CC/FO
CB/E2
CA/E1
CO/EO
VD+
DGND
RXP
RXN
FSYNC
SCK
CS/FCK
U
Rys. 2. Schemat bloku odbiornika SPDIF
danych wej艣ciowych zapewnia wbudowana p臋tla PLL. W zalecanej przez producenta aplikacji CS8412 zmienione zosta艂y warto艣ci element贸w filtru PLL -R201 (470 a zamiast 1 kQ) i C201 (68 nF zamiast 47 nF). Zmiana ta powoduje zaw臋偶enie zakresu pracy p臋tli PLL (ale i tak jest on wystarczaj膮cy do synchronizacji), zmniejszaj膮c ewentualne zak艂贸cenia typu jitter. Dodatkowo, takie warto艣ci R201 i C201 umo偶liwiaj膮 zastosowanie uk艂adu CS8414 zamiast CS8412 w razie trudno艣ci z jego zakupem. Oba elementy (kondensator i rezystor) musz膮 by膰 elementami o dobrych parametrach i du偶ej stabilno艣ci. Na wyj艣ciach uk艂adu CS8412 dost臋pne s膮 zdekodowane sygna艂y danych oraz sygna艂y taktuj膮ce konieczne do sterowania uk艂adem scalonym przetwornika cyfro wo-analogowego - SD AT A, SCLK, LRCK, MCLK. Dodatkowo wykorzystano niekt贸re bity kontrolne odczytywane przez CS8412 z odebranych danych:
bit C3 (wyprowadzenie 3) wskazuje na obecno艣膰 lub brak pre-emfazy w transmitowanym sygnale audio. Preemfaza stosowana jest cz臋sto w transmisjach sygna艂贸w radiowych i TV-NI-CAM (cz臋stotliwo艣膰 pr贸bkowania 32 kHz), a bardzo sporadycznie w zapisie na p艂ytach CD lub ta艣mach DAT, wi臋c bit
ten zosta艂 wykorzystany do za艂膮czenia deemfazy w przetworniku CS4390 tylko dla cz臋stotliwo艣ci pr贸bkowania 3 2 kHz (oczywi艣cie tylko wtedy, gdy sygna艂 wej艣ciowy ma wprowadzon膮 preemfaz臋), bit Cl (wyprowadzenie 5) sygnalizuje typ otrzymywanych danych - audio (Cl=l) lub nie-
DIFO DIF1 DIF2 DEMO DEM1 VA VD
i 20 r i 19 r 艢" 12 r_ i 1 r i 2 3 r i 6 r
LRCK SCLK SDATA 7 ^ Wej艣ciowy interfejs szeregowy Cyfrowa daemfaza Napi臋cie odniesienia
9 ^
10 fc r 16

T
Interpolator -> Modulator delta-slgma DAC Analogowy FDP
18
17
T
11 Interpolator -> Modulator delta-aigma 艢> DAC -> Analogowy FDP
AUTO_MUTE 14
13
5 t8 4. t1*
AOJTL+ AOJTL-
>AOLJTR+
AOLJm-
DGND MCLK AGND
Rys. 3. Schemat blokowy uk艂adu CS4390
MUTE R
16
Elektronika Praktyczna 10/2002
Audiofilski przetwornik C/A audio
H
C304
)L302
L301
C302
L303
DEEM
C303
C301
US301
LRCK
MCLK_
SCLK
SDATA
10
DEMO DIFO
DEM1 DIF1
VA+ AOUTL+
AGND AOUTL-
DGND MUTEJ.
VD+ MUTE R
LRCK AOUTR+
MCLK AOUTR-
SCLK DIF2
SDATA AUTMUT
20 19 18 17
$
14 13 12
MUTE
L_PLUS
L_MINUS
P_PLUS
P MINUS
Rys. 4. Schemat bloku przetwornika C/A
audio (Cl=0). Stan tego bitu pozwala za艂膮czy膰 wyciszanie przetwornika przy pr贸bie odtworzenia np. p艂yty CD-ROM (wi臋kszo艣膰 tanich odtwarzaczy odtwarza takie p艂yty - wynik niesprawdzania stanu bitu Cl przez procesor steruj膮cy odtwarzaczem CD),
- bit ERF (wyprowadzenie 25) wskazuj膮cy b艂膮d w transmisji danych,
- bit VERF (wyprowadzenie 28) wskazuj膮cy b艂膮d w transmisji danych lub b艂臋dne dane w odebranej ramce.
Bity Cl, ERF i VERF dekodo-wane s膮 przez bramki NOR -US202 (CD4025). W wypadku wyst膮pienia b艂臋d贸w w odbieranych danych, lub gdy dane te nie zawieraj膮 pr贸bek audio, nast臋puje wyciszenie wyj艣膰 przetwornika CS4390. Je偶eli odbierane s膮 dane bez b艂臋d贸w, to 艣wieci si臋 dioda LED201 (r贸wnie偶 w przypadku gdy dane nie s膮 audio).
Przetwornik C/A
Uproszczony schemat blokowy uk艂adu CS4390 przedstawiono na rys. 3. Jako przetwornik cyfrowo-analogowy zastosowano bardzo dobry uk艂ad CS4390 firmy Crystal Serniconductor. Jest to wysokiej klasy przetwornik audio typu del-ta-sigma o rozdzielczo艣ci 24 bit贸w, z wbudowanym filtrem cyfrowym,
przetwarzaj膮cy dane 16-, 18-, 20-i 24-bitowe o cz臋stotliwo艣ci pr贸bkowania 32, 44,1 lub 48 kHz. Uk艂ad CS43 90 odtwarza sygna艂 analogowy d藕wi臋ku ze znakomit膮 jako艣ci膮 i stosowany jest w sprz臋cie wysokiej klasy - np. odtwarzacze CD Meridian 508-24, Creek CD 43 lub przetwornik C/A Lehman Audio DAC+.
Wej艣cia DIFO, DIFl i DIF2 s艂u偶膮 do ustawiania formatu danych wej艣ciowych zgodnie z opisem zawartym w tab. 1.
Schemat elektryczny bloku przetwornika C/A przedstawiono na rys. 4. W prezentowanym urz膮dzeniu przetwornik odbiera dane w formacie 6 - standard PS, ramka zwieraj膮ca 16, 18, 20 lub 24 bity danych. Taki sam format zosta艂 ustawiony za pomoc膮 wej艣膰 M0, Ml, M2 i M3 w uk艂adzie CS8412 dla jego danych wyj艣ciowych. Umo偶liwia to elastyczn膮 prac臋 przetwornika z danymi od 16 do 24 bit贸w. Sygna艂 AUTO_MUTE zapewnia wyciszenie wyj艣膰 przetwornika przy braku sygna艂u wej艣ciowego. Wyj艣cie sygna艂u analogowego z przetwornika jest symetryczne (2 sygna艂y ka偶dego kana艂u o amplitudzie ok. IV i przeciwnych fazach dost臋pne na wyprowadzeniach 13 i 14 oraz 17 i 18 uk艂adu CS4390), zatem pierwszym stopniem analogowym powinien by膰 wzmac-
niacz r贸偶nicowy sumuj膮cy oba sygna艂y ka偶dego kana艂u (US401 i US403). Pozwala to dodatkowo usun膮膰 szumy, zniekszta艂cenia i sta艂e napi臋cie podk艂adu wyst臋puj膮ce w pojedynczym sygnale. Dzi臋ki temu, 偶e nie trzeba separowa膰 napi臋cia sta艂ego od wyj艣cia, ca艂y tor wyj艣ciowy wykonano jako sta艂opr膮dowy bez separuj膮cych kondensator贸w, kt贸rymi s膮 najcz臋艣ciej kondensatory elektrolityczne, a te maj膮 bardzo wiele wad - np. zale偶no艣膰 pojemno艣ci od napi臋cia polaryzuj膮cego (czyli od przenoszonego sygna艂u), od temperatury itd.
Filtr wyj艣ciowy
Odtworzony sygna艂 analogowy "oczyszczany" jest z wy偶szych harmonicznych pozosta艂o艣ci przetwarzania przez filtr aktywny drugiego rz臋du o charakterystyce Bessela i cz臋stotliwo艣ci granicznej 52,32 kHz, zbudowany ze znakomitych wzmacniaczach operacyjnych OPA62 7 firmy Burr-Brown. Filtr Bessela wybrany zosta艂 ze wzgl臋du na lepsze w艂a艣ciwo艣ci ni偶 popularny i najcz臋艣ciej stosowany filtr Butter-wortha: mniejsze zniekszta艂cenie odpowiedzi na sygna艂y impulsowe oraz mniejsze zmiany fazy sygna艂u w pa艣mie przenoszenia. Ponadto, pr贸by ods艂uchowe wykaza艂y zdecydowanie lepsz膮 jako艣膰 d藕wi臋ku przy zastosowaniu filtru Bessela ni偶 Butterwortha. Warto艣ci element贸w filtru zosta艂y dobrane za pomoc膮 programu "Filterlab" firmy Microchip - program dost臋pny pod adresem: http://www.microchip.com/1010/ pline/tools/analog/software/flab/ index.htm, publikujemy go tak偶e na p艂ycie CD-EP10/2002B.
Elementy kszta艂tuj膮ce charakterystyk臋 filtru to R4 0 5 (5,49 kfl), R406 (17,4 kQ), C409 (150 pF) + C417 (22 pF) i C410
Tab. 1
DIFO DIF1 DIF2 FORMAT
0 0 0 0
1 0 0 1
0 1 0 2
1 1 0 3
0 0 1 4
1 0 1 5
0 1 1 6
1 1 1 kalibracja
Elektronika Praktyczna 10/2002
17
Audiofilski przetwornik C/A audio
Rys. 5. Schemat filtr贸w wyj艣ciowych
R501
US501
C502:
T 1
M501
D 0
TftU TR1_2
C503 L501
IN OUT
GND
C504
i------------L
+5V-2
CS8412dlglta
:C506 __________GND
US502
R502 IN GND OUT +5V-3
i CS4390 digita
C507" ^ L502 \^ C50B ^C509 -, _C510 M-3
R503
US504
C511
IN OUT
GND
C512
C513
+5V-5
LED i przeka藕niki
IC514
M-5
R506
Rys. 6. Schemat zasilaczy cz臋艣ci cyfrowej
+5V-1
18
Elektronika Praktyczna 10/2002
Audiofilski przetwornik C/A audio
+vs
CS4390 - masa analog
Rys. 7. Schemat zasilaczy cz臋艣ci analogowej
(330 pF) - odpowiednio w drugim kanale R413, R414, C415+C418 i C316. Zastosowanie 2 r贸wnolegle po艂膮czonych kondensato-
WYKAZ ELEMENT脫W
Rezystory
R101...R103: 75O
R104...R106: 330O
R107, R108: 270O
R201: 4700/1%
R205: lkO
R20脫: 22kO
R401...R404, R409...R412: 10,0kQ/l%
R405, R413: 5,49kQ/l%
R40脫, R414: 17/4kn/l%
R408, R416: 3脫Q/1%
R501, R502: 20O/1/4W
R503: 10O/1/4W
R50脫: 33O/1/4W
R507: 68O
R508: 2,00kQ/l%
R509: 4,70kQ/l%
R510: l,50kQ/l%
R511, R513: 2,20kO/l%
R512, R514: 249Q/1%
Kondensatory
C101...C103, C202, C204, C301,
C302, C403...C408, C411...C414,
C502, C504, C50脫, C508, C510,
C512, C514, C516, C518, C520,
C521, C523, C525, C52脫, C528,
C530, C532: lOOnF ceramiczny
Cl04, C203: lOnF polipropylenowy
C201: 68nF/l% polipropylenowy
r贸w (C409+C417 i C415+C418) o 艂膮cznej pojemno艣ci 172 pF wynika z trudno艣ci w nabyciu kondensatora o takiej pojemno艣-
C205, C20脫, C303, C304, C505, C509, C513, C517, C522, C527, C531: 4700jiF/16V C401, C402: 6800 F/16V C409, C415: 150pF/l% polipropylenowy C410, C416: 330pF/l% polipropylenowy
C417, C418: 22pF/l% polipropylenowy
C501, C503, C507, C529: 4700^F/ 16V
C511: 2200|iF/16V C515: 2200jiF/10V C519, C524: 4700jiF/25V C533: lOnF ceramiczny C534: lOOpF ceramiczny P贸艂przewodniki
US101, US102, US103: TORX173 US201: CS8412 US202: CD4025 US301: CS4390 US401...US404: OPA627 US501, US502, US504, US505, US515: LM340T-5 US503: nA723 US50脫: LM317 US507: LM337
T201: BC546 lub podobny npn T501: BD140 lub podobny pnp M501, M502: GBLO脫 lub podobny
ci. Pojemno艣膰 wyliczona wynosi 180 pF, ale nale偶y uwzgl臋dni膰 pojemno艣膰 wej艣ciow膮 wzmacniaczy OPA627 - 7 do 8pF. Zastosowane zosta艂y kondensatory polipropylenowe o dobrej stabilno艣ci parametr贸w i r贸wnie偶 stabilne rezystory. Tolerancja pojemno艣ci i rezystancji wynosi 1% - jak stwierdzono przy od s艂uchach dobranie warto艣ci jak najmniej odbiegaj膮cych od obliczonych ma bardzo du偶e znaczenie dla "przejrzysto艣ci" otrzymanego obrazu d藕wi臋kowego. Cz臋stotliwo艣膰 graniczna filtru wynosi 5 2320 Hz i dobrana zosta艂a tak, aby uzupe艂ni膰 dzia艂anie filtru wbudowanego w struktur臋 CS4390.
Wzmacniacz OPA627 wybrany zosta艂 po pr贸bach ods艂uchowych kilku typ贸w wzmacniaczy (np. TL071, NE5532, NE5535, OPA134) i daje najlepsze efekty - najbardziej naturalne i zr贸wnowa偶one brzmienie, precyzyjn膮 lokalizacj臋 藕r贸de艂 w obrazie stereofonicznym, wra偶enie g艂臋bi i wspania艂膮 analityczno艣膰. Uzyskane brzmienie w pe艂ni rekompensuje znaczn膮 cen臋 tego wzmacniacza.
D101...D104, D501: BW26A lub
podobne
LED101...LED103: zielone
LED 104: 偶贸艂ta
LED 105: czerwona
LED201: niebieska
R贸偶ne
D艂awiki typ HM50 firmy
Bi-Technologies
L101...L103, L503: IOOjiH
L202, L401, L402: 4,7mH
L203, L301: 2,2mH
L302: 3,3mH
L303, L501, L502: IOjiH
p艂askownik Al lub Cu 145x20
grubo艣膰 minimum 3 mm
podk艂adki silikonowe TO220 (7 szt.)
tulejki izolacyjne M3 (7 szt.)
艣ruby M3xlO (7 szt.)
nakr臋tki M3 (7 szt.)
Sl: 3-po艂o偶eniowy
S2: 2-po艂o偶e艅 i owy
GN101...GN103: CINCH
pojedyncze do druku
GN401: CINCH podw贸jne do druku
TRI: TS 4/22
TR2: TS 6/27
P101...P104: TQ2-2M-5V
(Matsushita) lub TQ2-5-5V (NAIS)
lub G6H-2-100-5 (Omron) lub
AZ850-5 (Zettler)
Elektronika Praktyczna 10/2002
19
Audiofilski przetwornik C/A audio
Po filtrze sygna艂 audio podawany jest na standardowe gniazda CINCH tylko przez rezystory 36 O, (R408, R416) ograniczaj膮ce obci膮偶enie wzmacniaczy w wypadku zwarcia wyj艣cia do masy. Poziom sygna艂u umo偶liwia wy sterowanie dowolnego wzmacniacza mocy m.cz. Schemat bloku filtr贸w wyj艣ciowych przedstawiono na rys. 5.
Blok zasilania
Schematy zasilaczy poszczeg贸lnych stopni pokazano na rys. 6 i 7. Du偶o uwagi po艣wi臋cono zapobie偶eniu przedostawaniu si臋 do wyj艣ciowego sygna艂u analogowego
zak艂贸ce艅 obecnych w sygnale SPDIF i zak艂贸ce艅 powstaj膮cych w poszczeg贸lnych stopniach cyfrowych urz膮dzenia. Zastosowane s膮 2 transformatory sieciowe jeden (TR2) zasila stopnie analogowe (OPA627 i cz臋艣膰 analogow膮 CS4390), drugi (TRI) pozosta艂e stopnie cyfrowe przetwornika. Napi臋cie zasilania ka偶dego ze stopni stabilizowane jest przez oddzielny stabilizator scalony i filtrowane przez filtry LC z du偶ymi pojemno艣ciami i indukcyjno艣ciami.
Napi臋cie zasilania p臋tli PLL w CS8412 stabilizowane jest przez precyzyjny stabilizator |iA723 z sze-
regowym tranzystorem mocy PNP zmniejszaj膮cym obci膮偶enie termiczne uk艂adu |iA723. Obwody masowe poszczeg贸lnych stopni odseparowane s膮 od siebie d艂awikami 10 |iH. Stabilizatory scalone oraz tranzystor mocy PNP s膮 dla lepszego odprowadzenia ciep艂a i wyr贸wnania ich temperatury zamocowane na p艂askowniku aluminiowym. Andrzej Stelmach
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziernikO2.htm oraz na p艂ycie CD-EP10/2002B w katalogu PCB.
Elektronika Praktyczna 10/2002
AUTOMATYKA
Falowniki Sysdrive firmy Omron
Mo偶liwo艣ci wsp贸艂czesnych falownik贸w zaspokajaj膮
praktycznie wszystkie, tak偶e te mniej typowe, potrzeby
u偶ytkownik贸w nap臋d贸w elektrycznych, W ofercie firmy
Omron znajduj膮 si臋 m.in. dwie rodziny falownik贸w
ma艂ych mocy, kt贸re dzi臋ki zastosowanym w nich
nowoczesnym rozwi膮zaniom charakteryzuj膮 si臋
niewielkimi wymiarami, wysok膮 sprawno艣ci膮
energetyczn膮 i doskona艂ymi parametrami wyj艣ciowymi.
Do czego s艂u偶膮 falowniki?
Podstawowym zadaniem falownik贸w (zwanych z angielska inwertera-mi) jest regulacja szybko艣ci obrotowej oraz momentu obrotowego w silnikach elektrycznych stosowanych w nap臋dach urz膮dze艅 r贸偶nego typu. Falowniki przekszta艂caj膮 napi臋cie zasilaj膮ce (najcz臋艣ciej 220 VAC) na napi臋cie sta艂e, kt贸re jest nast臋pnie konwertowane w jedno- lub wielofazowe (w zale偶no艣ci od wymaga艅 silnika nap臋du) napi臋cie zmienne o zmieniaj膮cej si臋 amplitudzie i cz臋stotliwo艣ci. Dzi臋ki takiemu, stosunkowo z艂o偶onemu, sterowaniu skuteczno艣膰 i zakresy regulacji pr臋dko艣ci obrotowej i momentu s膮 skuteczne, co wi臋cej umo偶liwiaj膮 w pewnym zakresie kompensowanie zmian obci膮偶enia silnika nap臋du.
Ze wzgl臋du na skomplikowan膮 dynamik臋 wsp贸艂pracy silnika elektrycznego ze 藕r贸d艂em dostarczaj膮cym na-
pi臋cie zasilania, wsp贸艂czesne falowniki s膮 wyposa偶one w zaawansowane sterowniki cyfrowe, bardzo cz臋sto wykonane na bazie procesor贸w DSP. Zastosowanie tak skomplikowanych rozwi膮za艅 wi膮偶e si臋 oczywi艣cie ze wzrostem kosztu wykonania falowni-
Wielka potrzeba
Do niedawna tani, gdzie konieczna by艂a regulacja pr臋dko艣ci obrotowej stosowano wy艂膮cznie silniki pr膮du sta艂ego, kt贸rych
pr臋dko艣膰 regulowano poprzez zmian臋
warto艣ci napi臋cia zasilaj膮cego- Obecnie
sterowanie pr臋dko艣ci膮 obrotow膮 i momentem
silnik贸w pr膮du zmiennego (AC) jest r贸wnie
proste i tanie jak w przypadku nap臋d贸w DC.
ka, ale ich niew膮tpliwe zalety eksploatacyjne, w tym mo偶liwo艣膰 automatycznego korygowania parametr贸w silnika, spowodowa艂y, 偶e falowniki o klasycznej konstrukcji (zbli偶onej do przetwornic AC/DC/AC) nie s膮 ju偶 praktycznie oferowane.
Co to jest falownik?
220VAC
Obwody wfljfekWrt (filtr wojAciowy) + Prostownic IflltrttfnWI Filtr wyjfetowy
Falownik jest zaawansowan膮 konstrukcyjnie przetwornic膮 AC/ DC/AC, kt贸ra przetwarza wej艣ciowe napi臋cie zasilaj膮ce na napi臋cie o modyfikowanej amplitudzie i cz臋stotliwo艣ci- S艂u偶y do zasilania silnik贸w elektrycznych, umo偶liwiaj膮c regulacj臋 ich szybko艣ci obrotowej oraz momentu.
Dla ka偶dego co艣 dobrego
Poniewa偶 wymagania stawiane falownikom s膮 bardzo r贸偶ne w zale偶no艣ci od docelowej aplikacji, producenci oferuj膮 po kilka rodzin urz膮dze艅 o mo偶liwo艣ciach dopasowanych do potencjalnych wymaga艅. Omron podzieli艂 produkowane przez siebie falowniki na dwie grupy:
- ekonomiczn膮, dla mniej wymagaj膮cych aplikacji, takich jak sterowanie prac膮 pomp, podajnik贸w rolkowych, mieszalnik贸w, bram, rolet, wentylator贸w itp. Falowniki z tej grupy oznaczono symbolem 3G3JV.
- falowniki o wi臋kszych mo偶liwo艣ciach, wyposa偶onych w szereg dodatkowych funkcji i algorytm sterowania wektorowego, dzi臋ki kt贸remu zasilany silnik zachowuje sw贸j moment obrotowy tak偶e przy bardzo ma艂ych obrotach. Ta rodzina zosta艂a oznaczona symbolem 3G3MV.
Ekonomicznie - 3G3jV
W ramach tej rodziny s膮 dost臋pne falowniki z zasilaniem 1- lub 3-fazo-wym, przystosowane do zasilania napi臋ciami 230 VAC lub 460 VAC. Mog膮 one (w zale偶no艣ci od wersji) sterowa膰 prac膮 silnik贸w o mocy od
Elektronika Praktyczna 10/2002
141
AUTOMATYKA
Momanty obrotowa przy ragulufl: Starowinie^ Wf
Sterowanie wektorowe
Filozofia sterowania L6n5or|Se; V<=ctOP Control
wektorowego polega na oddzielnym sterowaniu momentem i strumieniem uzwojenia w silniku. Dzi臋ki temu dok艂adno艣膰 regulacji pr臋dko艣ci wynosi 0,01%. Szybko艣膰 reakcji przemiennika na zmian臋 obci膮偶enia lub warto艣ci zadanej jest mniejsza od 5 ms. Warto艣膰 momentu rozruchowego i chwilowego - odpowiedzialnego za dynamik臋 uk艂adu
nap臋dowego si臋ga nawet 200% momentu znamionowego. Szerzej o sterowaniu wektorowym pisali艣my w EP9/2000.
0,2 kW a偶 do 5,5 kW, przy czym wersje zasilane napi臋ciem 230 VAC maj膮 gradacj臋: 0,1/0,2/0,4/0,75/1,5/2,2 kW, natomiast wersje zasilane napi臋ciem 460 VAC s膮 dost臋pne w wariantach 0,2/0,4/0,75/1,5/2,2/3/4/5,5 kW. Wszystkie falowniki wyposa偶 ono w panel operatorski z 3-cyfrowym wy艣wietlaczem LED, 6-przyciskow膮 klawiatur膮 foliow膮 i pokr臋t艂em s艂u偶膮cym do regulacji obrot贸w. Na panelu znajduj膮 si臋 tak偶e lampki kontrolne, sygnalizuj膮ce aktualny stan pracy (lub tryb konfiguracji) urz膮dzenia. Pomimo zaawansowanych mo偶liwo艣ci sterownika zintegrowanego w falowniku (u偶ytkownik mo偶e skonfigurowa膰 79 r贸偶nych parametr贸w!), przyj臋ty przez producenta spos贸b obs艂ugi powoduje, 偶e bez trudu mo偶e go opanowa膰 tak偶e mniej wprawny operator.
Falowniki 3G3JV wyposa偶ono w 4 wej艣cia cyfrowe o programowanych funkcjach i polaryzacji, jedno wyj艣cie przeka藕nikowe (styki prze艂膮czane) i wyj艣cie analogowe o programowanych
funkcjach, mo偶na tak偶e do艂膮czy膰 do falownika zewn臋trzny potencjometr (lub 藕r贸d艂o sygna艂u 4-20 mA] za pomoc膮 kt贸rego s膮 regulowane obroty silnika. Falownik posiada tak偶e 艂atwo dost臋pny z zewn膮trz interfejs komunikacyjny (zgodny z MEMOBUS 19200 bd).
Zastosowanie cyfrowego systemu sterowania pozwoli艂o wyposa偶y膰 falowniki w wiele funkcji przydatnych w sterowaniu nap臋dami, s膮 to m.in.: kompensacja po艣lizgu, wspomaganie hamowania, czy p艂ynny start silnika (w ustalonym przez operatora czasie).
Obudowa falownika jest przystosowana do monta偶u na p艂ycie lub na szynie DIN, co wymaga zastosowania dodatkowych zatrzask贸w. Przewody i kable s膮 do艂膮czane do zacisk贸w 艣rubowych ulokowanych w g贸rnej i dolnej cz臋艣ci obudowy. Falowniki wi臋kszej mocy s膮 wyposa偶one w wentylator wspomagaj膮cy ch艂odzenie, kt贸ry mo偶na
艂atwo zdemontowa膰 i oczy艣ci膰, co znacznie zwi臋ksza trwa艂o艣膰 urz膮dzenia.
Dla wymagaj膮cych - 3G3MV
S膮 to falowniki o znacznie wi臋kszych mo偶liwo艣ciach, w艣r贸d kt贸rych szczeg贸lnie warto zwr贸ci膰 uwag臋 na mo偶liwo艣膰 regulacji pr臋dko艣ci obrotowej i momentu w nowoczesnej technologii wektorowej. Podobnie do 3G3JV, wyposa偶ono je w prosty panel operatorski, za pomoc膮 kt贸rego u偶ytkownik mo偶e modyfikowa膰 parametry sterowania, kt贸rych 艂膮cznie jest a偶 179.
Falowniki z tej rodziny wyposa偶ono tak偶e w kilka klasycznych algorytm贸w sterowania silnikami (PID, czy skokowa 16-stopniowa zmiana szybko艣ci obrotowej), funkcj臋 oszcz臋dzania energii, zabezpieczenie przed zablokowaniem silnika, a tak偶e interfejs komunikacyjny RS422/485, za pomoc膮 kt贸rego mo偶na je w艂膮cza膰 w sieciowe systemy sterowania i regulacji.
Falowniki 3G3MV maj膮 7 wej艣膰 cyfrowych o programowanych funkcjach, dwa pojedyncze wej艣cia: pr膮dowe i napi臋ciowe o programowanych funkcjach, dwa cyfrowe wyj艣cia tranzystorowe - tak偶e o programowanych funkcjach, jedno programowane wyj艣cie przeka藕nikowe i dwa wyj艣cia analogowe. Do prezentowanych falownik贸w mo偶na do艂膮czy膰 specjalny rezystor wspomagaj膮cy hamowanie nap臋du. Nowo艣ci膮 nie oferowan膮 przez innych producent贸w jest dodatkowe wej艣cie impulsowe, kt贸re mo偶e by膰 wykorzystywane do zadawania pr臋dko艣ci silnika sygna艂em prostok膮tnym o zmiennej cz臋stotliwo艣ci.
Wi臋kszo艣膰 pozosta艂ych funkcji jest zbli偶ona do prezentowanych przy okazji opisu 3G3JV. Andrzej Gawryluk, AVT
Metody sterowania pr臋dko艣ci膮 i momentem
Uk艂ad steruj膮cy przemiennika cz臋stotliwo艣ci mo偶e realizowa膰 r贸偶ne algorytmy- Ka偶dy z nich zapewnia inn膮 funkcjonalno艣膰
i w艂asno艣ci zespo艂u nap臋dowego.
Najprostszym i najcz臋艣ciej stosowanym jest algorytm skalarny U/f. Pr臋dko艣膰 obrotowa sterowana jest tu poprzez zmian臋 cz臋stotliwo艣ci zasilania uzwoje艅 silnika. W celu zachowania wzgl臋dnie sta艂ego momentu obrotowego, proporcjonalnie do zmian cz臋stotliwo艣ci zmieniana jest r贸wnie偶 warto艣膰 napi臋cia podawanego na zaciski silnika. Dzia艂anie skalarnego przemiennika cz臋stotliwo艣ci ogranicza si臋 zatem do zadawania na zaciski silnika napi臋cia o okre艣lonej cz臋stotliwo艣ci. Przemiennik cz臋stotliwo艣ci U/f reguluje zatem pr臋dko艣膰 obrotow膮 poprzez
zmian臋 cz臋stotliwo艣ci napi臋cia zasilania silnika.
W ostatnich latach opracowano tzw. falowniki ze sterowaniem
wektorowym, kt贸re umo偶liwiaj膮 precyzyjn膮 regulacj臋 pr臋dko艣ci
oraz pe艂n膮 kontrol臋 momentu rozwijanego przez silnik.
Dost臋pne na rynku rozwi膮zania r贸偶ni膮 si臋 od siebie
sposobem pomiaru stanu silnika oraz metod膮 wp艂ywania na
jego pr臋dko艣膰 i moment obrotowy.
142
Elektronika Praktyczna 10/2002
AUTOMATYKA
W EP2 i 3/02 opisali艣my radiomodemy firmy Satel,
kt贸re charakteryzuj膮 si臋 mo偶liwo艣ci膮 bezprzewodowego
zwi臋kszania zasi臋gu dzia艂ania po艂膮cze艅 za pomoc膮
RS232. Pomimo dobrych parametr贸w dotychczas
produkowanych radiomodem贸w, firma Satel
nie pr贸偶nuje, dzi臋ki temu mamy mo偶liwo艣膰
przedstawienia najnowszych radiomodem贸w
z podw贸jnym torem odbiorczym.
Radiomodem
Satelline-3AS
Firma Satel wprowadzi艂a ostatnio na rynek kolejne radiomodemy z rodziny Satelline - Satelline-3AS EPIC. Przeznaczone s膮 do transmisji danych w trybie half-duplex (przesy艂anie danych z szybkim prze艂膮czaniem kierunku). Najnowszy typ radiomodemu firmy Satel wyposa偶ony jest w nadajnik o mocy do 10 W oraz w dwa odbiorniki radiowe. Jego nowatorska konstrukcja zapewnia niezwykle wysokie bezpiecze艅stwo i pewno艣膰 transmisji danych, przy czym umo偶liwia komunikacj臋 na odleg艂o艣膰 do 80 kilometr贸w. Podobnie jak radiomodemy 2ASxE oraz 3AS(d), Satelline-3AS EPIC jest w pe艂ni przezroczysty dla protoko艂u transmisji, dzi臋ki czemu mo偶e by膰 stosowany do 艂膮czenia wszelkich urz膮dze艅 komunikuj膮cych si臋 za po艣rednictwem 艂膮czy szeregowych. Radiomodem ten jest w pe艂ni kompatybilny z modelem 3AS(d), jednak posiada wiele dodatkowych cech, kt贸re pozwalaj膮 na zastosowanie go w aplikacjach,
w kt贸rych nie mo偶na by艂o stosowa膰 modelu 3AS(d).
Budowa radiomodemu
Satelline-3AS EPIC sk艂ada si臋 z modemu, nadajnika i dw贸ch odbiornik贸w radiowych, umieszczonych w aluminiowej obudowie. Na zewn膮trz obudowy wyprowadzone jest gniazdo portu szeregowego oraz dwa z艂膮cza antenowe typu TNC. Na obudowie umieszczony jest zestaw diod sygnalizuj膮cych o stanie linii sygna艂owych portu szeregowego. Urz膮dzenie zasilane jest napi臋ciem sta艂ym o warto艣ci od 10 do 30 V. Napi臋cie zasilaj膮ce doprowadzane jest (identycznie jak w poprzednich modelach) do dw贸ch linii gniazda portu szeregowego.
Podobnie jak w przypadku radiomodem贸w 2ASxE oraz 3AS(d), Satelline-3AS EPIC mo偶e pracowa膰 w trzech trybach: trybie przesy艂ania danych (normalny tryb pracy urz膮dzenia), trybie testowym oraz trybie programowania. W trybie testo-
ANTENA
Rx
RSSI
RSSI
ANTENA
Por贸wnanie
Rx
Rys. 1. Por贸wnywanie sygna艂贸w odbieranych przez dwie anteny
wym mo偶liwe jest sprawdzenie transmisji radiowej poprzez przesy艂anie pr贸bnych blok贸w danych, co daje u偶ytkownikowi mo偶liwo艣膰 zbadania jako艣ci po艂膮czenia i oszacowania warunk贸w propagacji fal radiowych. Tryb programowania wykorzystywany jest do konfigurowa-nia radiomodemu, kt贸re wykonuje si臋 identycznie jak w przypadku wspomnianych wcze艣niej modeli, tzn. za pomoc膮 komputera PC z u偶yciem standardowego programu terminalowego (np. windowsowy Hyp erTerm in oi).
Satelline-3AS EPIC pracuje na cz臋stotliwo艣ciach z przedzia艂u od 400 do 470 MHz. Mo偶liwe jest zastosowanie odst臋pu s膮siedniokana-艂owego 12,5 kHz lub 2 5 kHz. W pierwszym przypadku maksymalna szybko艣膰 transmisji wynosi 9600 b/s, a do dyspozycji jest 160 programowo zmienianych kana艂贸w. Przy zachowaniu odst臋pu s膮sied-niokana艂owego 25 kHz maksymalna pr臋dko艣膰 transmisji wynosi 19200 b/s, a dost臋pnych jest 80 kana艂贸w.
Najnowszy radiomodem firmy Satel jest zgodny - tak偶e pod innymi wzgl臋dami - ze swoim poprzednikiem, tj. radiomodemem 3AS(d). Podobnie jak 3AS(d), jest wyposa偶ony w port szeregowy, kt贸ry mo偶e pracowa膰 w jednym z trzech standard贸w: RS-232, RS-485 lub RS-422. Podobne ma r贸wnie偶 pozosta艂e cechy radiomodemu 3AS(d), takie jak zastosowany mechanizm korekcji b艂臋d贸w, mechanizm sprawdzania sumy kontrolnej czy mo偶li-
144
Elektronika Praktyczna 10/2002
AUTOMATYKA
Rys. 2. Por贸wnanie zasi臋gu transmisji radiomodem贸w 3AS(d) i3AS EPIC
wosc programowej zmiany mocy nadajnika oraz czu艂o艣ci odbiornika. 3AS EPIC mo偶e te偶 pracowa膰 w charakterze repeatera w dwojaki spos贸b:
- Pierwszy z nich to wy艂膮cznie odbieranie i natychmiastowe przesy艂anie dalej pakiet贸w danych (o maksymalnej d艂ugo艣ci pojedynczego bloku 1 kB).
- Drugi, gdy radiomodem skonfigurowany jako repeater, mo偶e tak偶e by膰 pod艂膮czony do innego urz膮dzenia (np. sterownika PLC). W贸wczas dane s膮 przekazywane do portu (je偶eli dotycz膮 tego urz膮dzenia) lub te偶 retransmitowane
dalej. Istnieje mo偶liwo艣膰 stosowania wi臋cej ni偶 jednego repeatera, dzi臋ki czemu odleg艂o艣膰, na jak膮 przesy艂ane s膮 informacje, mo偶na wydatnie zwi臋kszy膰. Ponadto mo偶liwe jest budowanie rozleg艂ych sieci o architekturze master-s!ave. Wspomniane na pocz膮tku dwa odbiorniki radiowe oraz dwa z艂膮cza antenowe to elementy odr贸偶niaj膮ce radiomodem Satelline-3AS EPIC od podstawowego modelu 3AS(d). Najnowszy z produkt贸w firmy Satel zosta艂 wyposa偶ono w nie nie bez powodu. Dwa odbiorniki mog膮 r贸wnocze艣nie odbiera膰 przychodz膮ce sygna艂y, a specjalny mechanizm por贸wnawczy powoduje wyb贸r silniejszego sygna艂u w danym momencie (rys. 1). Dzi臋ki temu istnieje pewno艣膰, 偶e w trudnych warunkach pracy transmitowane dane nie zostan膮 utracone. Przyk艂adem ilustruj膮cym tak膮 sytuacj膮 niech b臋dzie dobrze znane ka偶demu u偶ytkownikowi samochod贸w zjawisko czasowej utraty sygna艂u z radioodbiornika samochodowego, np. podczas postoju na 艣wiat艂ach (tzw. zjawisko fadingu). Dzi臋ki rozwi膮zaniu zastosowanemu w ra-diomodemie 3AS EPIC mo偶emy unikn膮膰 takich sytuacji. Odleg艂o艣膰 pomi臋dzy antenami na ka偶dym z odbiornik贸w powinna wynosi膰 3/ 4 d艂ugo艣ci fali, czyli w przypadku pasma 400 MHz oko艂o 75 cm.
Drug膮 r贸偶nic膮 pomi臋dzy radio-modemem Satelline-3 AS EPIC a modelem 3AS(d) jest moc nadajnika. Satelline-3AS EPIC ma maksymaln膮 moc 10 W. Pozwala to na komunikacj臋 w terenie p艂askim na odleg艂o艣膰, w zale偶no艣ci od zastosowanych anten, nawet do 80 km! Moc nadajnika mo偶na programowo ustali膰 tak, 偶e mo偶e wynosi膰: 1 W, 2 W, 5 W lub 10 W.
Dost臋pne s膮 cztery modele radiomodem贸w Satelline-3AS EPIC:
- Wersja podstawowa, opisana powy偶ej.
- Radiomodem wyposa偶ony dodatkowo w pod艣wietlany wy艣wietlacz ciek艂okrystaliczny oraz czte-roprzyciskow膮 mini klawiatur臋. Dzi臋ki temu mo偶liwa jest zmiana wszystkich ustawie艅 urz膮dzenia bez pod艂膮czania komputera i wykorzystywania programu terminalowego (analogicznie jak w przypadku radiomodem贸w 3ASd).
- Radiomodem bez wy艣wietlacza LCD i miniklawiatury, za to wyposa偶ony w dodatkowy radiator. Zastosowanie dodatkowego elementu ch艂odz膮cego jest wymagane w przypadku u偶ywania maksymalnej mocy nadajnika (10 W) do transmisji ci膮g艂ej przez d艂u偶ej ni偶 1 minut臋.
- Model wyposa偶ony zar贸wno w wy艣wietlacz ciek艂okrystaliczny z miniklawiatur膮, jak i w dodatkowy element ch艂odz膮cy.
Najnowsze radiomodemy firmy Satel posiadaj膮 wszystkie zalety swoich poprzednik贸w. Charakteryzuj膮 je: niezale偶no艣膰 od stosowanego protoko艂u komunikacyjnego (przezroczysto艣膰), bardzo du偶a niezawodno艣膰, 艂atwo艣膰 monta偶u i obs艂ugi oraz wiele funkcji dodatkowych. Nowe mo偶liwo艣ci, o kt贸re zosta艂y wzbogacone radiomodemy Satelline-3AS EPIC sprawiaj膮, 偶e urz膮dzenia te s膮 zdecydowanie najnowocze艣niejszymi radiomodemami na polskim rynku, bezkonkurencyjnymi w swojej klasie. Tomasz Michatek, ASTOR Krak贸w
Dodatkowe informacje
Artyku艂 opracowano na bazie materia艂贸w udost臋pnionych przez firm臋 Astor.tel. (12) 428-63-00, www.astor.com.pl.
Elektronika Praktyczna 10/2002
145
PROJEKTY
Domowy aparat
telefoniczny
z kart膮 chipow膮,
cz臋sc 1
AVT-5081
Jedynym sku tecznym
sposobem ograniczenia
koszt贸w rozm贸w
telefonicznych jest
ograniczenie czasu ich
trwania. Ale w jaki spos贸b
zdyscyplinowa膰 domownik贸w?
Mo偶na oczywi艣cie ca艂kowicie
ograniczy膰 czas rozm贸w
wychodz膮cych, lecz przecie偶
telefon jest do prowadzenia
rozm贸w, a nie dla ozdoby.
Przedstawione w artykule
urz膮dzenie u艂atwia rozs膮dne
korzystanie z telefon u - jego
dzia艂anie jest podobne do
dzia艂ania publicznych
aparat贸w wrzutowych.
Rekomendacje: urz膮dzenie
niezb臋dne dla wszystkich
u偶ytkownik贸w telefon贸w
stacjonarnych maj膮cych
problemy z ograniczeniem
liczby po艂膮cze艅 wychodz膮cych
i zwi膮zanych z nimi koszt贸w.
Nie starali艣my si臋 o jego
homologacj臋, w zwi膮zku
z czym nie nale偶y do艂膮cza膰
go do sieci
telekom unikacyjnych
dostawc贸w wymagaj膮cych
urz膮dze艅 hom ologowanych.
Prezentowane urz膮dzenie spe艂nia rol臋 ogranicznika czasu rozm贸w (dyskryminatora). Poniewa偶 zamiast 偶eton贸w zastosowano kart臋 chipow膮 z pami臋ci膮 EEPROM, konieczne by艂o wyposa偶enie go w programator umo偶liwiaj膮cy dowolne przydzielanie przez uprawnionego u偶ytkownika limit贸w impuls贸w dla ka偶dej karty. Do przechowywania informacji o liczbie impuls贸w zastosowano karty chipowe firmy Xicor X24026, zawieraj膮ce 25 6-bajtow膮 pami臋膰 EEPROM sterowan膮 poprzez magistral臋 PC. Ka偶dy z u偶ytkownik贸w otrzymuje kart臋 z zapisanymi impulsami do wykorzystania. Mo偶liwe jest wi臋c prowadzenie dowolnych rozm贸w, pod warunkiem posiadania impuls贸w na karcie. Bez karty mo偶liwe jest odbieranie wszystkich po艂膮cze艅 przychodz膮cych oraz wybieranie numer贸w alarmowych, zaczynaj膮cych si臋 cyframi "99".
Programowanie parametr贸w oraz przyznawanie limitu impuls贸w dokonywane jest za pomoc膮 standardowej klawiatury aparatu z wybieraniem tonowym. Dost臋p do ustawiania parametr贸w jest zabezpieczony kodem dost臋pu.
Dopiero po podaniu tego kodu dyskryminator reaguje na tony DTMF. Stanowi to zabezpieczenie, aby w trakcie wybierania numeru przypadkowo nie zosta艂y zmienione parametry dyskryminatora. Poniewa偶 kod ten jest kodem sta艂ym i nie mo偶e by膰 zmieniony, do programowania na przyk艂ad limitu impuls贸w nale偶y poda膰 jeszcze jeden czterocyfrowy kod. Cztero-cyfrowy kod mo偶e by膰 dowolnie zmieniany, uniemo偶liwiaj膮c zmian臋 parametr贸w przez osoby nieupowa偶nione. Przyznany limit mo偶e wynosi膰 maksymalnie 999 impuls贸w. W czasie rozmowy liczba impuls贸w jest zmniejszana wed艂ug faktycznych koszt贸w. Do ich obliczenia niezb臋dne jest posiadanie dodatkowej us艂ugi uruchomionej na naszej linii telefonicznej wysy艂aj膮cej informacje o koszcie rozmowy w postaci impuls贸w teletaxy. Impulsy te s膮 odbierane w czasie rozmowy przez dyskryminator i na ich podstawie zmniejszana jest liczba impuls贸w dost臋pnych na karcie. Zmniejszony limit zapisywany jest na karcie za ka偶dym razem, gdy zostanie odebrany impuls zaliczaj膮cy. 呕ywotno艣膰 karty jest okre艣lona na 100 tys. cykli programowania, wi臋c jedna karta wystarczy na zu偶ycie 100 tys. im-
Elektronika Praktyczna 10/2002
21
Domowy aparat telefoniczny z karta chipowa
i * e
JjL
8RS
Rfi
hr^
Rys. 1. Schemat elektryczny uk艂adu dyskryminatora
puls贸w. Jest to liczba w zupe艂no艣ci wystarczaj膮ca.
Budowa i dzia艂anie
Na rys. 1 przedstawiono schemat elektryczny ogranicznika telefonicznego . Jego g艂贸wnym elementem jest procesor PIC16F873, zawieraj膮cy w swojej strukturze 4 ks艂贸w pami臋ci programu, 192 bajty pami臋ci RAM oraz 128 bajt贸w pami臋ci EEPROM. Dzi臋ki wewn臋trznej elektrycznie kasowalnej pami臋ci EEPROM nie trzeba stosowa膰 dodatkowego uk艂adu zewn臋trznego do zapisywania zmiennych parametr贸w ogranicznika. Wej艣cie zeruj膮ce MCLR do艂膮czono poprzez rezystor do plusa zasilania, gdy偶 za generowanie sygna艂u zeruj膮cego odpowiada wewn臋trzny uk艂ad, kt贸ry wraz z licznikiem wyd艂u偶aj膮cym wewn臋trzny impuls zerowania zapewnia prawid艂owy start procesora. W obw贸d generatora "nap臋dzaj膮cego" procesor w艂膮czono rezonator kwarcowy Xl oraz kondensatory Cli i C12.
Sterowanie oraz ustawianie parametr贸w ogranicznika odbywa si臋 za pomoc膮 ton贸w DTMF pochodz膮cych z do艂膮czonego aparatu telefonicznego, dzi臋ki czemu nie trzeba stosowa膰 dodatkowych przycisk贸w. W roli odbiornika ton贸w DTMF zastosowano uk艂ad US3 - sygna艂 z linii telefonicznej, poprzez elementy dopasowuj膮ce C3, C4, R2...R5, R15 jest doprowadzony na wej艣cie wzmacniacza odbiornika DTMF. Uk艂ad ten wymaga do pracy przebiegu zegarowego o cz臋stotliwo艣ci 3,579 MHz. Sygna艂 ten mo偶na uzyska膰, do艂膮czaj膮c rezonator kwarcowy do wyprowadze艅 7 i 8 lub stosuj膮c zewn臋trzny generator. W przedstawionym urz膮dzeniu zastosowano generator zawarty w uk艂adzie US2. Opis pracy tego generatora zostanie zamieszczony w dalszej cz臋艣ci artyku艂u.
Wszystkie sygna艂y tonowe wyst臋puj膮ce w linii telefonicznej s膮 analizowane przez ten uk艂ad. Je艣li pojawi si臋 sygna艂 o parametrach zgodnych ze standardem DTMF (cz臋stotliwo艣膰, poziom, czas trwania) , to nast臋puje jego detekcja i wystawienie odpowiadaj膮cego mu s艂owa czterobitowego na wyj艣cia Ql...Q4. Nast臋pnie na wyj艣ciu STD pojawia si臋 wysoki poziom napi臋cia, informuj膮cy procesor, 偶e zosta艂 odebrany nowy sygna艂 DTMF.
Elektronika Praktyczna 10/2002
Domowy aparat telefoniczny z kartg chipowg
List. 1. Proceduro odbioru kod贸w DTMF
Wie sn get_dtmf()
dtn IF f ok = Or (lnput (std) ) //jesll std=l
{ Delay ms(20) ; IF ('lnput(std) ) dtmf=dtmf PORT i dtnif_ok = lr //to czekaj 20ms returnr //ponownie sprawd藕 std, ?XOfr //je艣li czas DTMF>20ms, //4 starsze bity bufora Je艣li std=O to powr贸t odczytaj kod i wyzeruj dtmf, Ustaw flag臋 dtrnf_ok
Whlle (lnput (std) ) r Z/cZekaJ na koniec tonu
i i Delay_ms(10); return(dtmf_ok) ; =0; //je艣li dtmf=10, Zamie艅 //czekaj IOiis //powr贸t na 0
Procedura odbioru kod贸w sygna艂u DTMF jest przedstawiona na list. 1. W podprogramie tym sprawdzany jest poziom na wyj艣ciu STD. Je艣li jest r贸wny zero, to nast臋puje powr贸t. Je偶eli jednak wyst膮pi sygna艂 DTMF, to procesor odczekuje 20 ms i ponownie sprawdza, czy nadal jest sygna艂 - ma to na celu wyeliminowanie kr贸tko trwa艂ych zak艂贸ce艅, kt贸re mog膮 wyst膮pi膰 w linii telefonicznej, i odbieranie tylko prawid艂owych ton贸w DTMF.
Je艣li czas trwania sygna艂u tonowego jest wystarczaj膮co d艂ugi, to nast臋puje odczyt stan贸w wyj艣膰 Ql...Q4 uk艂adu US3. Jednocze艣nie zostaj膮 wyzerowane cztery starsze bity bufora dtmf. W ten spos贸b odebrany kod sygna艂u DTMF zostaje zapisany w formie dziesi臋tnej. Nast臋pnie procesor oczekuje na koniec sygna艂u tonu. Jest to niezb臋dne, poniewa偶 opuszczenie procedury odczytu DTMF przed zako艅czeniem bie偶膮cego sygna艂u spowodowa艂oby jego kilkakrotne odczytywanie, tzn. raz naci艣ni臋ty klawisz zosta艂by odczytany jako naci艣ni臋ty na przyk艂ad trzy razy.
Po prawid艂owym odbiorze sygna艂u tonu nast臋puje jeszcze konwersja odebranych cyfr. Konwersja zostaje wykonana tylko dla cyfry "0", gdy偶 w kodzie DTMF cyfra ta jest przedstawiana binarnie jako "00001010", czyli dziesi臋tnie "10". W przypadku odebrania takiej kombinacji bit贸w nast臋puje ich zamiana na "00000000" i wpisanie do bufora dtmf. Procedura zwraca warto艣膰 bitu dtmf_ok, je艣li sygna艂 DTMF zosta艂 prawid艂owo odebrany, to b臋dzie to "1", w przeciwnym przypadku b臋dzie to "0" -jest to informacja, czy zosta艂 odebrany sygna艂 tonu.
Praca dyskryminatora opiera si臋 na detekcji impuls贸w taryfi-kacyjnych generowanych przez
central臋 telefoniczn膮, impulsy te umo偶liwiaj膮 obliczenie kosztu prowadzonej rozmowy. Do odbioru impuls贸w zastosowano specjalizowany uk艂ad firmy CML - FX631.
Wewn臋trzn膮 budow臋 tego uk艂adu przedstawiono na rys. 2. Uk艂ad ten zawiera w swojej strukturze wszystkie niezb臋dne bloki umo偶liwiaj膮ce poprawny odbi贸r nawet silnie zak艂贸conych sygna艂贸w. Sygna艂 z oscylatora zostaje poprzez wewn臋trzny bufor wyprowadzony na zewn膮trz i mo偶e s艂u偶y膰 jako 藕r贸d艂o sygna艂u zegarowego dla innych uk艂ad贸w. Ta mo偶liwo艣膰 zosta艂a wykorzystana do dostarczenia sygna艂u zegarowego dla uk艂adu odbiornika DTMF, kt贸ry do pracy r贸wnie偶 wymaga sygna艂u o cz臋stotliwo艣ci 3,579 MHz. W ten spos贸b zaoszcz臋dzono jeden rezonator kwarcowy. Informacja o pojawieniu si臋 w linii telefonicznej sygna艂u teletaxy pojawia si臋 na dw贸ch wyj艣ciach uk艂adu US3.
Obydwa wyj艣cia wykazuj膮 obecno艣膰 sygna艂u, lecz ka偶de w inny spos贸b. Na rys. 3 przedstawiono przebiegi wyj艣ciowe w zale偶no艣ci od sygna艂u wej艣ciowego. Jak wynika z rys. 3, wyj艣cie Ton臋 Follo-wer zmienia sw贸j poziom na niski natychmiast po pojawieniu si臋
sygna艂u o odpowiedniej cz臋stotliwo艣ci i powraca do poziomu wysokiego bezpo艣rednio po zako艅czeniu sygna艂u. Pobieranie informacji
0 impulsach taryfikacyjnych z tego wyj艣cia mo偶e prowadzi膰 do b艂臋d贸w w przypadku silnie zaszumio-nych linii telefonicznych.
Aby wyeliminowa膰 wp艂yw zak艂贸ce艅 na detekcj臋 impuls贸w tele-taxy, uk艂ad FX631 posiada wyj艣cie Packet Mod臋, na kt贸rym poziom napi臋cia zmienia si臋 na niski tylko w przypadku, gdy prawid艂owy sygna艂 wej艣ciowy trwa przez minimum 40 ms i powraca do poziomu wysokiego po zanikni臋ciu sygna艂u na wej艣ciu tak偶e po 40 ms. To wyj艣cie zosta艂o wykorzystane w dy skry mina torze telefonicznym. W贸wczas procesor jest uwolniony od jakichkolwiek dzia艂a艅 maj膮cych na celu weryfikacj臋 poprawno艣ci odbieranych impuls贸w. Je艣li na wyj艣ciu Packet mod臋 wyst膮pi zero logiczne, oznacza to, 偶e sygna艂 teletaxy zosta艂 odebrany prawid艂owo. Obw贸d z element贸w R6...R9
1 C5, C6 dopasowuje poziom sygna艂u z linii telefonicznej do wymaganego przez uk艂ad FX631.
Uk艂ad detekcji ton贸w teletaxy umo偶liwia wykrywanie impuls贸w o cz臋stotliwo艣ciach 12 kHz oraz 16 kHz. Wyboru odpowiedniej warto艣ci dokonuje si臋 za pomoc膮 zworki JPl - dla cz臋stotliwo艣ci 16 kHz powinna znajdowa膰 si臋 w pozycji 2-3, czyli wej艣cie SYSTEM powinno by膰 zwarte do masy. Takie ustawienie zworki nale偶y zastosowa膰, gdy偶 standardem obowi膮zuj膮cym w Polsce jest sygna艂 o cz臋stotliwo艣ci 16 kHz.
Do odczytu danych z karty chi-powej zastosowano z艂膮cze CON3. Po w艂o偶eniu karty odpowiednie
1T1UO.0CK
nuron
>

WEJ艢CIE ZEURH
15*^r艁
,32

Rys. 2. Budowa uk艂adu FX631
Elektronika Praktyczna 10/2002
23
Domowy aparat telefoniczny z kartg chipowg
SY0MA艁WEJ3CKWT
WVJ9C TOHE FOL I, CTIKR
WYJSCIF PACKFT WQDE
Rys. 3. Przebiegi wyj艣ciowe w uk艂adzie FX631
styki czytnika 艂膮cz膮 si臋 ze stykami karty. Dodatkowo, w momencie w艂o偶enia karty zostaje zwarty styk prze艂膮cznika zawartego w czytniku. Zwarcie tego styku informuje pro-cesoT, ze karta zosta艂a umieszczona w czytniku i mo偶e on odczytywa膰 lub zapisywa膰 dane w pami臋ci zawartej wewn膮trz karty.
Poniewa偶 prezentowany uk艂ad ma stanowi膰 niezawodne zabezpieczenie przed nadmiernym korzystaniem z telefonu, do jego zasilania niezb臋dne jest niezawodne 藕r贸d艂o napi臋cia. Zastosowanie zewn臋trznego zasilacza uniemo偶liwia艂oby dzia艂anie urz膮dzenia w przypadku braku napi臋cia sieciowego, a ingerencja os贸b niepowo艂anych w uk艂ad zasilania umo偶liwi艂aby "obej艣cie" zabezpieczenia.
W celu zapewnienia nieprzerwanego zasilania uk艂adu mo偶na zastosowa膰 zasilacz wraz z akumulatorem, kt贸ry podtrzymywa艂by zasilanie w przypadku braku napi臋cia sieciowego. W przedstawionym uk艂adzie zdecydowano si臋 zastosowa膰 inny spos贸b zasilania z ap e wnia j 膮 cy napi 臋ci e z a sil a j 膮 ce w momencie podniesienia s艂uchawki. Napi臋cie zasilania jest pobierane z linii telefonicznej -w czasie rozmowy w linii telefonicznej p艂ynie pr膮d o warto艣ci oko艂o 40 mA. W przypadku wyst膮pienia pomi臋dzy central膮 telefoniczn膮 a naszym aparatem tele-
WaWy
WeAVy
Rys. 4. Budowa przeka藕nika LCB110
fonicznym urz膮dzenia zwielokrotniaj膮cego, pr膮d ten mo偶e mie膰 warto艣膰 oko艂o 20 mA. Dla ogranicznika obydwie warto艣ci s膮 wystarczaj膮ce, gdy偶 w czasie pracy uk艂ad pobiera pr膮d o warto艣ci oko艂o 10 mA. Pr膮d p艂yn膮cy w linii telefonicznej przep艂ywa przez w艂膮czone szeregowo styki przeka藕nika PK, mostek prostowniczy G oraz diod臋 Zenera Dl.
Pr膮d p艂yn膮cy przez ten obw贸d powoduje spadek napi臋cia na diodzie Dl r贸wny oko艂o 5,1 V, kt贸re poprzez diod臋 D2 zasila uk艂ady scalone dy skry mina tora. Dioda D2 wprowadza spadek napi臋cia wynosz膮cy oko艂o 0,2 V, tak wi臋c na kondensatorze utrzymuje si臋 napi臋cie oko艂o 4,9 V. Jest to warto艣膰 wystarczaj膮ca do zasilania wszystkich element贸w ogranicznika.
Zastosowanie diody D2 oraz kondensatora Cl o du偶ej pojemno艣ci ma na celu podtrzymanie napi臋cia w momencie rozwarcia linii po od艂o偶eniu s艂uchawki lub przerwaniu po艂膮czenia przez dys-kryminator. W momencie rozwarcia linii dioda D2 uniemo偶liwia roz艂adowanie kondensatora Cl, gdy偶 potencja艂 na anodzie jest ni偶szy ni偶 na katodzie, wi臋c dioda jest spolaryzowana zaporowo. Pojemno艣膰 kondensatora umo偶liwia prac臋 procesora jeszcze przez kilka sekund po od艂o偶eniu s艂uchawki.
Podtrzymanie to jest bardzo wa偶ne, gdy偶 w przypadku celowego przerwania obwodu przez procesor, musi on ponownie zamkn膮膰 obw贸d po oko艂o 1,5 sekundy. Taki czas jest w zupe艂no艣ci wystarczaj膮cy do roz艂膮czenia rozmowy. W czasie przerwy na linii telefonicznej nie jest podawane
napi臋cie zasilania dyskryminatora i procesor jest zasilany wy艂膮cznie z na艂adowanego kondensatora Cl. Po up艂ywie okre艣lonego czasu przerwy nast臋puje zwarcie styku przeka藕nika PK i w s艂uchawce pojawi si臋 nowy sygna艂 zg艂oszenia centrali, a wcze艣niejsza pr贸ba rozpocz臋cia rozmowy zostanie przerwana. Dioda D3 wraz z rezystorem Rl7 do艂膮czona do portu procesora informuje go, czy w obwodzie aparatu telefonicznego p艂ynie pr膮d. Je艣li s艂uchawka jest podniesiona, to na wej艣ciu procesora wyst臋puje wysoki poziom napi臋cia podawanego przez t臋 diod臋. Je艣li nast膮pi przerwa, to wyst膮pi poziom niski spowodowany rezystorem Rl7 podci膮gaj膮cym w d贸艂.
WYKAZ ELEMENT脫W
Rezystory
Rl: 330ft
R2, R4, R5, RS, R9, R15: R3: 47kft R贸, R7: RIO:
R11...R14, R17: Rl贸: 4,7kft
P: potencjometr 10kn miniaturowy Kondensatory Cl: 47C膮iF/l贸V C2, C9, C12: lOOnF C3, C4: 10nF/100V C5, C贸: 100pF/lkV C7, CS: l[iF, sta艂y (polipropylenowy)
CIO, Cli: 30pF P贸艂przewodniki Dl: dioda Zenera 5,IV D2: 1N5S17 D3: 1N414S
G: mostek prostowniczy 1A/4OOV US1: PIC16FS73 zaprogramowany US2: FX脫31 US3: HT9170 PK: Przeka藕nik LCB110 R贸偶ne Xl: 4MHz X2: 3.579MHZ CON1, CON2: ARK2(5mm) CON3; podstawka do kart np. LMOS
V: warystor SIOV-S10K140 CG: ochronnik CG2 230L JP1: goldpin 1x3 + jumper JP2: goldpin 1x2 + jumper Wy艣wietlacz LCD l贸xl Karta X2402贸
24
Elektronika Praktyczna 10/2002
Domowy aparat telefoniczny z karta chipowa
Rys. 5. Rozmieszczenie element贸w na p艂ytce drukowanej dyskryminatora
Wykrywanie przerw w linii telefonicznej pozwala reagowa膰 na odpowiednie stany. Szczeg贸艂owy opis sytuacji, w kt贸rych procesor spowoduje roz艂膮czenie, zostanie przedstawiony w dalszej cz臋艣ci artyku艂u.
Do roz艂膮czania obwodu linii telefonicznej sterowanej przez procesor zastosowano przeka藕nik p贸艂przewodnikowy firmy CP Clare typu LCB110. Jego budow臋 przedstawiono na rys. 4. Zastosowano w nim fototranzystory MOS. Umo偶liwia za艂膮czanie pr膮d贸w o nat臋偶eniu do 120 mA, przy maksymalnym napi臋ciu 3 50 V. Przeka藕nik ten jest typu "B", co oznacza, 偶e w stanie nieaktywnym jego styki s膮 zwarte, a po przy艂o偶eniu napi臋cia do diody 艣wiec膮cej nast臋puje rozwarcie styku. Do rozwarcia styku wyj艣ciowego
wystarczy pr膮d diody o warto艣ci 5 mA. Przeka藕nik ten znakomicie nadaje si臋 do zastosowa艅, gdzie pob贸r pr膮du musi by膰 ograniczony do minimum.
Zastosowanie przeka藕nika ze stykami normalnie zwartymi jest konieczne, gdy偶 w stanie od艂o偶onej s艂uchawki dyskryminator nie jest zasilany i nie mo偶e wystero-wa膰 przeka藕nika. Jednocze艣nie w tym stanie sygna艂 z centrali musi dociera膰 do aparatu telefonicznego, poniewa偶 przez ca艂y czas musz膮 by膰 aktywne wywo艂ania przychodz膮ce. Zastosowanie takiego przeka藕nika umo偶liwia prowadzenie rozm贸w przychodz膮cych bez potrzeby dostarczania jakiegokolwiek napi臋cia do uk艂ad贸w steruj膮cych, jak r贸wnie偶 do samego przeka藕nika.
Do zabezpieczenia dyskryminatora oraz do艂膮czonego aparatu telefonicznego przed przepi臋ciami mog膮cymi pojawi膰 si臋 w linii telefonicznej zastosowano ochronnik "CG" oraz warystor "V". Elementy te powoduj膮 zwarcie w przypadku pojawienia si臋 zbyt wysokiego napi臋cia w linii, zabezpieczaj膮c tym samym do艂膮czone do niej urz膮dzenia.
Monta偶 i uruchomienie
Schemat monta偶owy p艂ytki przedstawiono na rys. 5. Monta偶 rozpoczynamy od wlutowania rezystor贸w, nast臋pnie podstawek pod uk艂ady scalone i kondensator贸w. Ze wzgl臋du na du偶e gabaryty, kondensator Cl montujemy na le偶膮co. Na ko艅cu montujemy z艂膮cza CON1...CON3. Z艂膮cze wy艣wietlacza LCD jest umieszczone tu偶 nad czytnikiem CON3, dzi臋ki temu jest on nak艂adany na ten czytnik, co pozwoli艂o na zmniejszenie powierzchni potrzebnej na zamontowanie tych element贸w. Po sprawdzeniu poprawno艣ci monta偶u do z艂膮cza CONl nale偶y pod艂膮czy膰 lini臋 telefoniczn膮, a do CON2 aparat telefoniczny. Podniesienie s艂uchawki spowoduje, 偶e na wy艣wietlaczu pojawi si臋 napis "W艂贸偶 kart臋". Na tym proces uruchomienia zosta艂 zako艅czony i mo偶emy przej艣膰 do programowania parametr贸w dyskryminatora. O tym napiszemy za miesi膮c. Krzysztof P艂awsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziernikO2.htm oraz na p艂ycie CD-EP10/2002B w katalogu PCB.
Elektronika Praktyczna 10/2002
25
PROJEKTY
Grupowy regulator mocy
AVT-5067
Z problemem regulacji
mocy dostarczanej do
odbiornik贸w energii
elektrycznej spotykamy si臋
bardzo cz臋sto, je偶eli
urz膮dzenie zasilane jest
pr膮dem sta艂ym, to
rozwi膮zania uk艂adowe
regulator贸w mocy s膮 do艣膰
proste i powszechnie znane.
Nieco trudniej jest regulowa膰
dostarczan膮 moc do urz膮dze艅
zasilanych napi臋ciem
zmiennym, jeden z prostszych
sposob贸w przedstawiamy
w a艅ykule.
Rekomendacje: urz膮dzenie
umo偶liwiaj膮ce skuteczn膮,
w pe艂ni cyfrow膮 regulacj臋
mocy dostarczanej do
偶ar贸wek, grzejnik贸w
elektrycznych, grza艂ek
bojlerowych, a tak偶e
wi臋kszo艣ci elektrycznych
piec贸w CO.
Najprostszymi sposobami regulacji mocy w obwodach DC s膮: zmiana napi臋cia zasilaj膮cego odbiornik, ograniczanie pr膮du pobieranego przez niego lub zasilanie impulsowe przebiegiem o zmiennym wype艂nieniu. Kiedy jednak mamy do czynienia z pr膮dem przemiennym, a najcz臋艣ciej jest to pr膮d pobierany z sieci energetycznej , to zadanie komplikuje si臋.
W epoce "przed-p贸艂przewodniko-wej" stosowano do takiej regulacji autotransformatory o p艂ynnie regulowanym prze艂o偶eniu, tiansduktory i inne elementy elektromechaniczne. U偶ywane by艂y tak偶e monstrualne rezystory o mocy setek i tysi臋cy wat贸w. Wraz z wynalezieniem tyrystor贸w, a nast臋pnie tiiak贸w
Jako element prze艂膮czaj膮cy zastosujemy
tak偶e triak, ale b臋dzie on pracowa艂 w takiej konfiguracji, 偶e o jakichkolwiek zak艂贸ceniach radioelektrycznych nie mo偶e ______ by膰 mowy.
sposoby regulacji uleg艂y zmianie. Od samego pocz膮tku ich istnienia tyrystory znalaz艂y zastosowanie w obwodach regulacji pr膮du przemiennego. Tyrystor jest jednak elementem przeznaczonym do pracy w obwodzie pr膮du sta艂ego. Jego stosowanie w uk艂adach zasilanych pr膮dem przemiennym by艂o nieco k艂opotliwe i wi膮za艂o si臋 z konieczno艣ci膮 stosowania dodatkowego prostownika lub dw贸ch tyrystor贸w pracuj膮cych w uk艂adzie przeciwsob-nym. Wraz z wynalezieniem i wprowadzeniem do masowej produkcji tiiak贸w - tyrystor贸w dwukierunkowych, przeznaczonych do obwod贸w
zmiennopr膮dowych budowa regulator贸w mocy dla urz膮dze艅 zasilanych z sieci energetycznej upro艣ci艂a si臋. Obecnie nie ma chyba elektronika, kt贸ry nie zbudowa艂by takiego regulatora - popularnego "艣ciem-niacza". Do jego realizacji potrzebne jest zaledwie kilka element贸w: triak, diak, kondensator odpowiedniej pojemno艣ci, rezystor, potencjometr i elementy s艂u偶膮ce likwidowaniu generowanych przez uk艂ad zak艂贸ce艅 ra dio elektry c zny ch.
No w艂a艣nie, doszli艣my do sedna sprawy! Zbudowanie regulatora mocy dla pr膮du przemiennego o dopuszczalnym pr膮dzie nawet setek amper贸w jest spraw膮 prost膮. "Schody" zaczynaj膮 si臋 dopiero przy usuwaniu zak艂贸ce艅 generowanych przez taki sterownik. Je偶eli w dodatku sterowane urz膮dzenie charakteryzuje si臋 du偶膮 indukcyjno艣ci膮, to zadanie staje si臋 naprawd臋 trudne. Przypominam sobie d艂ugie godziny sp臋dzone przy dobieraniu element贸w przeciw zak艂贸ceniowych do sterownika grza艂ek w piekarniku elektrycznym, zako艅czone jedynie po艂owicznym sukcesem.
Tymczasem okazuje si臋, 偶e problem regulacji mocy odbiornik贸w energii elektrycznej AC mo偶na rozwi膮za膰 inaczej. Jako element prze艂膮czaj膮cy zastosujemy tak偶e triak, ale b臋dzie on pracowa艂 w takiej konfiguracji, 偶e o jakichkolwiek zak艂贸ceniach radioelektrycznych nie mo偶e by膰 mowy. Uk艂adem, w kt贸rym generowanie zak艂贸ce艅 nie wyst膮pi jest uk艂ad sterowania grupowego. Nazwa pochodzi st膮d, 偶e uk艂ad zasila odbiornik energii elektrycznej grup膮 przebieg贸w sinusoidalnych, w艂膮czanych zawsze przy
Elektronika Praktyczna S/2002
27
Grupowy regulator mocy
220VAC
Odbiornik energii
22(V0,5W
Rys. 1. Schemat elektryczny regulatora mocy
napi臋ciu bliskim zeru (tylko pe艂ne okresy przebiegu).
Zanim przyst膮pimy do opisu budowy proponowanego uk艂adu, musimy zda膰 sobie spraw臋 z ogranicze艅 w jego stosowaniu. Nasz regulator w 偶adnym wypadku nie nadaje si臋 do regulacji mocy 偶ar贸wek zasilanych z sieci energetycznej, chyba 偶e zmieniliby艣my jego nazw臋 na "Generator impuls贸w 艣wietlnych o cz臋stotliwo艣ci 5Hz i zmiennym wype艂nieniu". To by艂 tylko w po艂owie 偶art, takie zastosowanie opisanego regulatora jest tak偶e mo偶liwe! Jednak w zasadzie uk艂ad przeznaczony jest do sterowania odbiornikami, takimi jak grza艂ki i piecyki elektryczne o mocy zale偶nej jedynie od typu zastosowanego triaka (w wi臋c do dziesi膮tk贸w kilowat贸w).
Wykonanie proponowanego regulatora jest bardzo proste, a koszt u偶ytych materia艂贸w jest znikomy. Pami臋tajmy jednak o jednym: budujemy urz膮dzenie zasilane wprost z sieci energetycznej, kt贸rego ka偶dy element znajduje si臋 pod niebezpiecznym dla zdrowia i 偶ycia napi臋ciem 220VAC! Dlatego te偶 Koledzy nie maj膮cy do艣wiadczenia w budowie takich uk艂ad贸w proszeni s膮 o zachowanie szczeg贸lnej ostro偶no艣ci podczas uruchamiania i testowania regulatora!
Opis dzia艂ania uk艂adu
Na rys. 1 przedstawiono schemat elektryczny regulatora mocy i ka偶dy chyba si臋 zgodzi, 偶e to
co napisa艂em o jego prostocie nie mija si臋 z prawd膮. Uk艂ad zasilany jest bezpo艣rednio z sieci 220VAC za po艣rednictwem prostownika zbudowanego z diod D1...D5. Rezystor R3 ogranicza pr膮d pobierany przez uk艂ad, a dioda Zenera D6 stabilizuje napi臋cie zasilaj膮ce na poziomie ok. 11V. Tranzystor Tl pe艂ni w uk艂adzie wa偶n膮 rol臋 generatora impuls贸w zegarowych steruj膮cych prac膮 licznika Johnso-na I膯1. Je偶eli napi臋cie w punkcie A uk艂adu ma wi臋ksz膮 warto艣膰 ni偶 ok. 1,2V, to tranzystor ten przewodzi i na wej艣ciu licznika ICl wyst臋puje niski poziom napi臋cia.
Na rys. 2 pokazano przebiegi napi臋ciowe na wej艣ciu uk艂adu i na wyj艣ciu prostownika. Analiz臋 uk艂adu rozpoczniemy w chwili, kiedy napi臋cie na wyj艣ciu prostownika wynosi - powiedzmy -kilkadziesi膮t wolt贸w i maleje. W momencie, kiedy napi臋cie w punkcie A spadnie poni偶ej 1,2V tranzystor Tl przestanie przewodzi膰, na wej艣cie zegarowe CLK licznika Johnsona przekazane zostanie dodatnie zbocze sygna艂u zegarowego i licznik zmieni sw贸j stan. Po w艂膮czeniu zasilania licznik znajdowa艂 si臋 w stanie przypadkowym, a wi臋c mo偶e by膰 potrzebnych kilka impuls贸w zegarowych, aby poziom wysoki wyst膮pi艂 na wyj艣ciu Q0. Konsekwencje tego faktu mog膮 by膰 nast臋puj膮ce:
1. W przypadku ustawienia prze艂膮cznika SWl na pozycj臋 1 nic
szczeg贸lnego si臋 nie stanie. Na wej艣ciu zeruj膮cym (pin 5) przerzut-nika R-S, zrealizowanego na bramkach IC2A i IC2B, wyst臋puje permanentnie poziom wysoki i prze-rzutnik ten pozostaje wyzerowany. Na jego wyj艣ciu 3 wyst臋puje poziom wysoki i dioda transoptora nie jest w艂膮czona, triak Q2 pozostaje stale wy艂膮czony. W tej pozycji SWl do odbiornika nie p艂ynie 偶aden pr膮d. 2. W przypadku ustawienia prze艂膮cznika SWl na jedn膮 z pozycji 2...9, wyst膮pienie poziomu wysokiego na wyj艣ciu Q0 licznika ICl spowoduje natychmiastowe w艂膮czenie przerzutnika R-S. Poziom niski z jego wyj艣cia zostanie doprowadzony do wej艣cia inwertera zrealizowanego na bramce IC2C, co spowoduje za艣wiecenie si臋 diody wewn膮trz struktury optotriaka. Na razie, nic poza tym si臋 nie stanie,
1,2V
Rys. 2. Przebiegi napi臋ciowe na wej艣ciu i wyj艣ciu uk艂adu prostownika
Elektronika Praktyczna 8/2002
Grupowy regulator mocy
.11111 MMIII MMI III MMII 1 M
n n
n J"L n_ r~
n _T~L_ J~~L IM
JIIM IMMII MII! inni 1 nr
B_______ n _!"[_ n
* n n n
.MMI .....i \ MIT IM iei ni \ M
n _n T"
r- n
D I
A-Cl (14}
U
Rys. 3. Przebiegi czasowe napi臋cia w wybranych punktach uk艂adu dla trzech po艂o偶e艅 prze艂qcznika
pami臋tajmy bowiem, 藕e napi臋cie w sieci jest w tym momencie bliskie 0 i triak Q2 nie mo偶e si臋 w艂膮czy膰. Dopiero po "przej艣ciu" napi臋cia sieci przez zero i osi膮gni臋ciu przez nie warto艣ci kilku wol-t贸w triak w艂膮cza si臋 i pr膮d zaczyna p艂yn膮膰 do odbiornika. Czas przewodzenia triaka zale偶y 艣ci艣le od po艂o偶enia prze艂膮cznika SWl. Je偶eli zosta艂 on ustawiony w pozycji 1, to tu偶 przed kolejnym przej艣ciem napi臋cia sieci przez zero przerzut-nik R-S zostanie wy艂膮czony. Tak wi臋c triak b臋dzie pozostawa艂 otwarty jedynie przez 1/10 czasu i do odbiornika b臋dzie przekazywana jedynie 1/10 energii, kt贸ra mog艂aby zosta膰 przekazana w przypadku sta艂ego otwarcia triaka. Ustawienie prze艂膮cznika np. w pozycji 5 spowoduje, 偶e odbiornik b臋dzie otrzymywa艂 1/5, a w pozycji 9 -9/10 maksymalnej energii.
Szczeg贸lnym przypadkiem jest ustawienie prze艂膮cznika w pozycji 10. W贸wczas przerzutnik R-S nie b臋dzie w og贸le si臋 wy艂膮cza艂, a triak b臋dzie pozostawa艂 stale otwarty. Wszystkie w艂膮czenia triaka nast臋powa膰 b臋d膮 tu偶 po przej艣ciu napi臋cia sieci przez zero, przy napi臋ciu rz臋du kilku wolt贸w. Z kolei, triak mo偶e zosta膰 wy艂膮czony (a w艂a艣ciwie sam si臋 wy艂膮czy) tak偶e jedynie przy napi臋ciu bliskim zeru. Tak wi臋c, nie ma mo偶liwo艣ci powstawania jakichkolwiek zak艂贸ce艅, nawet w przypadku obci膮偶enia o sporej indukcyjno艣ci.
Dla 艂atwiejszego zrozumienia zasady dzia艂ania uk艂adu, na iys. 3 pokazano przebiegi napi臋ciowe w wa偶niejszych punktach uk艂adu dla trzech po艂o偶e艅 prze艂膮cznika SWl.
Wszystkie opisane zjawiska b臋d膮 zachodzi膰 w uk艂adzie cyklicz-
nie, powtarzaj膮c si臋 z cz臋stotliwo艣ci膮 5Hz. Widzimy wi臋c, dlaczego nasz regulator w zasadzie nie nadaje si臋 do sterownia 偶ar贸wkami, nawet tymi o du偶ej mocy i sporej bezw艂adno艣ci w艂贸kna. Natomiast zastosowanie go w uk艂adzie sygnalizatora optycznego, w kt贸rym 偶ar贸wki s膮 zasilane z sieci energetycznej mo偶e by膰 interesuj膮cym eksperymentem.
Monta偶 i uruchomienie
Na rys. 4 przedstawiono rozmieszczenie element贸w na p艂ytce drukowanej regulatora. P艂ytka zosta艂a wykonana na laminacie jednowarstwowym, co spowodowa艂o konieczno艣膰 zastosowania kilku zworek, od kt贸rych wykonania rozpoczniemy monta偶 urz膮dzenia. Monta偶 wykonujemy typowo, lutuj膮c najpierw elementy o najmniejszych gabarytach, a ko艅cz膮c na zamontowaniu prze艂膮cznika obrotowego SW1. Pod uk艂ady scalone warto zastosowa膰 podstawki. Regulator zmontowany ze sprawdzonych element贸w nie wymaga 偶adnego uruchamiania ani regulacji. Zawsze jednak mo偶e si臋 zdarzy膰, 偶e na skutek np. b艂臋du w monta偶u uk艂ad nie dzia艂a lub dzia艂a 藕le. Stanowczo odradzam jakichkolwiek manipulacji w uk艂adzie do艂膮czonym do sieci, nawet je偶eli b臋dziemy przestrzega膰 znanej powszechnie zasady pracy jedn膮 r臋k膮. W przypadku konieczno艣ci dokonania jakich艣 poprawek w uk艂adzie lub wykonania eksperyment贸w zalecam do艂膮czy膰 go do zast臋pczego 藕r贸d艂a zasilania, o napi臋ciu np. 24V. Nale偶y wtedy zbocznikowa膰 rezystor R3 za pomoc膮 rezystancji 1...2kLi, a jako obci膮偶enie zastosowa膰 偶ar贸wk臋 ma艂ej mocy dostosowan膮 do u偶ywanego napi臋cia. W taki spos贸b by艂 wst臋pnie testowany prototyp regulatora, a jako obci膮偶enie zastosowa艂em dwie szeregowo po艂膮czone 偶ar贸wki od o艣wietlenia kabiny kierowcy w samochodzie.
Zmontowany i sprawdzony uk艂ad musimy koniecznie umie艣ci膰 w obudowie, najlepiej z tworzywa sztucznego. P艂ytka obwodu drukowanego nie zosta艂a wprawdzie zwymiarowana pod 偶adn膮 konkretn膮 obudow臋, ale w ofercie AVT znajdzie si臋 z pewno艣ci膮 nawet kilka obud贸w nadaj膮cych si臋 do naszych cel贸w.
WYKAZ ELEMENT脫W
Rezystory
Rl, R2: 120kft
R3: 27kn/2W
R4: 10kn
R5, R贸: 220n/0,5W
R7: 510ft
Kondensatory
Cl: 220^/16V
C2: lOOnF
P贸艂przewodniki
D1...D5; 1N4007 lub odpowiednik
D贸: dioda Zenera 1IV
IC1: 4017
IC2: 4001
Ql: MOC3040
G2: BT13脫
Tl: BC54S lub odpowiednik
R贸偶ne
CON1, CON2: ARK2
SWl: prze艂qcznik obrotowy
lutowany w p艂ytk臋
Dopuszczalny pr膮d wyj艣ciowy uk艂adu zale偶y wy艂膮cznie od rodzaju zastosowanego triaka. W uk艂adzie prototypowym, przeznaczonym g艂贸wnie do bada艅 laboratoryjnych zastosowa艂em najta艅szy triak typu BT136 o dopuszczalnym pr膮dzie 6A i taki triak b臋dzie dostarczany w kicie.
Zbigniew Raabe, AVT
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http:iiwww.ep.coni.pli 7pdpsierpien02Jttm oraz na p艂ycie CD-EP08/2002B w katalogu PCB.
O
o o o o o o o
O
TNDD
Rys. 4. Rozmieszczenie element贸w na p艂ytce drukowanej
Elektronika Praktyczna S/2002
PROJEKTY
Mikroprocesorowy zasilacz laboratoryjny
AYT-5083
Ka偶dy elektronik dobrze
wie, jak bardzo jest
potrzebny w pracowni
zasilacz z du偶ym zakresem
regulacji napi臋cia
i ograniczeniem pr膮du.
Rekomendacje: dla
wszystkich konstruktor贸w
elektronik贸w posiadaj膮cych
w艂asn膮 pracowni臋 lub
laboratorium.
Schemat elektryczny zasilacza przedstawiono na rys. 1 (sterownik) i rys. 2 (modu艂 wykonawczy). W sterowniku zastosowano mikio-kontroler PIC16F628 i dwa wzmacniacze operacyjne zintegrowane w uk艂adzie LM358. W stopniu wyj艣ciowym zastosowano tranzystory BC338 i BDP391 po艂膮czone w uk艂ad Darlingtona. Wa偶ne jest, aby beta pierwszego tranzystora by艂a mniejsza od 160, a drugiego mniejsza od 300. Je偶eli ten warunek nie b臋dzie spe艂niony, to nie b臋dzie mo偶na uzyska膰 napi臋cia wyj艣ciowego poni偶ej 6V.
Warto艣膰 napi臋cia wyj艣ciowego mo偶na ustawia膰 w przedziale od 0,0 V do 25 V ze skokiem 0,1 V. Maksymalny pr膮d obci膮偶enia zale偶y od warunk贸w ch艂odzenia tranzystora mocy. W modelowym uk艂adzie wynosi on 1 A, z mo偶liwo艣ci膮 ograniczenia do 10 mA ze skokiem 70 mA. W momencie wykrycia zwarcia zasilacz wy艂膮cza si臋, ga艣nie wy艣wietlacz i zaczyna 艣wieci膰 czerwona dioda LED. Stan ten trwa do czasu usuni臋cia zwarcia. Ustawiona warto艣膰 napi臋cia lub ograniczenia pr膮dowego jest wy艣wietlana na trzycyfrowym wy艣wietlaczu siedmio-segmentowym, kt贸rego jasno艣膰 powinna wynosi膰 3 mcd przy 10 mA.
Dioda zielona informuje o wyst臋powaniu ustawionego napi臋cia na wyj艣ciu zasilacza (ON/ OFF), a czerwona o zadzia艂aniu ograniczenia pr膮dowego. Ustawianie warto艣ci napi臋cia i pr膮du dokonuje si臋 za pomoc膮 czterech przycisk贸w o nast臋puj膮cych funkcjach:
- zwi臋kszenie napi臋cia o 0,lV lub ograniczenia pr膮du o 70 mA -przycisk plus,
- zmniejszenie napi臋cia o 0,lV lub ograniczenia pr膮du o 70 mA -przycisk minus,
- podanie (od艂膮czenie) ustawionego napi臋cia na wyj艣cie zasilacza - przycisk On/Off,
- prze艂膮czanie mi臋dzy ustawianiem napi臋cia lub ograniczenia pr膮dowego - przycisk mod臋.
Po ustawieniu napi臋cia i naci艣ni臋ciu przycisku On/Off warto艣膰 napi臋cia zostaje zapami臋tana i po ponownym w艂膮czeniu zasilacza automatycznie jest ona wy艣wietlana na wy艣wietlaczu. Uk艂ad zasilacza posiada jeszcze jedn膮 dodatkow膮 cech臋 spotykan膮 w profesjonalnych przyrz膮dach - soft start. Po naci艣ni臋ciu przycisku On/Off napi臋cie na zaciskach wyj艣ciowych nie zmienia si臋 skokowo, lecz ro艣nie liniowo do ustalonego poziomu.
Do regulacji napi臋cia wyj艣ciowego zastosowano uk艂ad modulacji szeroko艣ci im puls 贸w PWM (zintegrowany w mikiokontrolerze)
Elektronika Praktyczna 10/2002
31
Mikroprocesorowy zasilacz laboratoryjny
Rys. 1. Schemat uk艂adu sterowania
i filtr dolnoprzepustowy drugiego rz臋du (R2, Rl, C2, Cl - rys. 2). Napi臋cie na wyj艣ciu filtru jest proporcjonalne do wsp贸艂czynnika wype艂nienia przebiegu prostok膮tnego. Nast臋pnie jest ono wzmacniane w uk艂adzie wzmacniacza nieodwracaj膮cego UlA i podawa-
ne na stopie艅 wyj艣ciowy (Tl i T2). P臋tla sprz臋偶enia zwrotnego obejmuje stopie艅 wyj艣ciowy, co zapewnia sta艂e napi臋cie na wyj艣ciu przy zmianie obci膮偶enia.
Pomiar pr膮du jest dokonywany na rezystorze R5 o rezystancji 0,1 O, w艂膮czonym szeregowo z obci膮偶e-
niem. Tak uzyskane napi臋cie jest wzmacniane i podawane na wej艣cie komparatora napi臋cia w mikrokon-trolerze. Na drugie wej艣cie komparatora podawane jest napi臋cie odniesienia ustawiane programowo na jedn膮 z 16 warto艣ci.
Ze wzgl臋du na ma艂膮 liczb臋 dost臋pnych linii I/O w mikrokon-trolerze w stosunku do liczby obs艂ugiwanych uk艂ad贸w niekt贸re linie s膮 multipleksowane. Klawiatura i dekoder BCD->7 segment贸w (steruj膮cy wy艣wietlaczami) s膮 pod艂膮czone do tego samego portu. Wy艣wietlanie jest dynamiczne. Ka偶dy wy艣wietlacz jest w艂膮czany na 4 ms co 8 ms. Powoduje to, i偶 oko ludzkie nie dostrzega migotania. Na czas odczytu klawiatury (5 |is) odpowiednie linie portu B s膮 ustawiane jako wej艣cia, a wpis do dekodera zablokowany. Linia RA4 jest ustawiana na poziomie niskim i nast臋puje odczyt klawiatury. Poniewa偶 linia RA4 jest typu open drain, to ustawienie jej w czasie wy艣wietlania na poziomie wysokim (n贸偶ka "wisi" w powietrzu) powoduje, i偶 naciskanie przycisk贸w nie wp艂ywa na wy艣wietlane informacje. Klawiatura posiada dynamiczn膮 repetycj臋 - im d艂u偶ej trzymamy wci艣ni臋ty klawisz, tym szybciej jest on odczytywany.
Monta偶 zasilacza
Zasilacz zosta艂 zmontowany na dw贸ch dwustronnych p艂ytkach drukowanych, kt贸rych schematy monta偶owe przedstawiono na rys. 3 i 4. Monta偶 zasilacza nie wymaga szczeg贸艂owego opisu, ale warto go przeprowadzi膰 w klasyczny spos贸b, zaczynaj膮c od element贸w o najmniejszych wymiarach. Tranzystor T2 powinien by膰 zamontowany na radiatorze o powierzchni czynnej co najmniej 40 cm2. Po艂膮czenie p艂ytek mo偶na wykona膰 za pomoc膮 4-przewodowej ta艣my, kt贸rej ko艅c贸wki s膮 lutowane do punkt贸w J3 i J4. Wygodniej jest jednak zastosowa膰 4-stykowe z艂膮cza (przynajmniej z jednej strony kabla), kt贸re u艂atwi膮 serwisowanie zasilacza.
Kalibracja
W celu ustawienie maksymalnego napi臋cia wyj艣ciowego zasilacza nale偶y wej艣膰 w tryb konfiguracji. Aby to zrobi膰, nale偶y
32
Elektronika Praktyczna 10/2002
Mikroprocesorowy zasilacz laboratoryjny
J4 CON4
PWM
GND
GND2
Rys. 2. Schemat zasilacza
przytrzyma膰 wci艣ni臋te klawisze: plus, minus i w艂膮czy膰 zasilacz. Potwierdzeniem tego, 偶e jeste艣my w trybie konfiguracji, b臋dzie migotanie na przemian diod zielonej
1 czerwonej. Nast臋pnie ustawiamy na wy艣wietlaczu maksymaln膮 warto艣膰 napi臋cia, kt贸re chcemy uzyska膰 na wyj艣ciu zasilacza (o
2 V ni偶sze ni偶 napi臋cie z transfor-
id l贸d o-IbihI-o 艢 o Oto
e-e
?
?
Rys. 3. Rozmieszczenie element贸w na p艂ytce sterownika
matora) i potwierdzamy klawiszem mod臋. Wy艂膮czamy zasilacz.
Teraz musimy skalibrowa膰 zasilacz. W tym celu ustawiamy na wy艣wietlaczu po艂ow臋 maksymalnego napi臋cia, pod艂膮czamy woltomierz na wyj艣cie i tak regulujemy potencjometrem Pl, aby osi膮gn膮膰 to napi臋cie. Kalibracja ograniczenia pr膮dowego wymaga obci膮偶enia zasilacza rezystorem du偶ej mocy i pomiaru pr膮du obci膮偶enia za pomoc膮 amperomierza. Ustawiamy takie napi臋cie wyj艣ciowe, aby pr膮d
?
D _
o- (
o-
-i D 0
W-
u m o.
ca *O
O Om m 艢O
o-
o- *o
Ul Q
-> 5
i

CBU O-O
Rys. 4. Rozmieszczenie element贸w na p艂ytce wykonawczej
I
GND2
-OVCC
'A70\i
Pl 100k
J1 OUT
GND2
WYKAZ ELEMENT脫W
Rezystory
Rl, R2: 3,5kQ
R3: 500O
R4: lOOkO
R5: OJ O
R6...R11: lkn
R12, R13: 10kO
Kondensatory
Cl, C2: 470nF
C3, C5: 470^F/35V
C4: 10jiF/25V
C6: lOOnF
C7: 4700jiF/35V
C8, C9: lOOnF
P贸艂przewodniki
Bl: mostek prostowniczy 175A
(okr膮g艂y)
B2: mostek prostowniczy KBU6G
Dl: LED 3mm zielona
D2: LED 3mm czerwona
DS1...DS3: wy艣wietlacz 7-segmen-
towy, wsp贸lna katoda
Tl: BC338
T2: BDP391 (BDP393, BDP395)
T3...T5: BC548
T贸, T7: BC558
Ul: LM358
U2: PIC16F628 (zaprogramowany)
U3: stabilizator 5V - 7805
U4: 4543
Zl: dioda Zenera 4v7
R贸偶ne
S1...S4: mikroprze艂膮czniki
Pl: potencjometr lOOka
P2: potencjometr 10ka
Radiator dla tranzystora T2
Elektronika Praktyczna 10/2002
33
Mikroprocesorowy zasilacz laboratoryjny
obci膮偶enia wynosi艂 ponad 500 mA. Nast臋pnie nale偶y ustawi膰 ograniczenie pr膮dowe na 500 i tak regulowa膰 potencjometrem P2, aby zapali艂a si臋 czerwona dioda informuj膮ca o zadzia艂aniu ograniczenia, a pr膮d wskazywany przez amperomierz wynosi艂 500mA.
Do zasilania uk艂adu nale偶y zastosowa膰 transformator o napi臋ciu wyj艣ciowym wi臋kszym o 2 V od maksy-
malnego napi臋cia jakie chcemy uzyska膰 na wyj艣ciu zasilacza. Drugi transformator, s艂u偶膮cy do zasilania cz臋艣ci steruj膮cej, powinien mie膰 napi臋cie wyj艣ciowe r贸wne 6 V. Waldemar Borek waldo@poczta.onet.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/
?pdf/pazdziernikO2.htm oraz na p艂ycie CD-EP10/2002B w katalogu PCB.
Oprogramowanie dla mikrokon-trolera zastosowanego w zasilaczu jest dost臋pne na stronie WWW autora projektu pod adresem http://waldo.republika.pl, a tak偶e na stronie EP (Download>Doku-mentacje) i na p艂ycie CD-EP10/ 2002B.
34
Elektronika Praktyczna 10/2002
PROJEKTY
Sterownik nap臋du CD-ROM, cz臋艣膰 3
AVT-5078
W trzeciej - przedostatniej
- cz臋艣ci a艅ykuiu
przedstawiamy zagadnienia
zwi膮zane z protoko艂em
sterowania prac膮 kontrolera
w nap臋dach
CD-ROM.
Rekomendacje: prezentacja
o niebagatelnych walorach
praktycznych - na podstawie
tego a艅ykuiu mo偶na
zaprojektowa膰 w艂asny
sterownik HDD/CD-ROM na
mikrokon trolerze A VR.
Zazwyczaj m贸wi si臋, 2LT sterownik lub nap臋d wyposa偶ono w interfejs ATAPL Jest to jednak uproszczenie. ATAPI jest bowiem protoko艂em wymiany danych pomi臋dzy sterownikiem zintegrowanym na p艂ycie komputera a sterownikiem wbudowanym w nap臋d. Z elektrycznego punktu widzenia, sterowniki ATAPI i ATA s膮 identyczne.
Co to jest ATAPI?
Wymiana danych nast臋puje tak, 藕e po wydaniu specjalnej komendy PACKET musimy wpisa膰 do rejestru danych 12 bajt贸w plecenia ATAPL W tab. 4 przedstawiono funkcje rejestr贸w w urz膮dzeniu z ATAPL
Jak wida膰 cz臋艣膰 rejestr贸w nie zmieni艂a swoich funkcji, ale ca艂kowicie identyczne z ATA s膮 tylko: rejestr kontroli nap臋du, rejestr danych oraz rejestr wyboru nap臋du (bity wyboru g艂owicy i LBA s膮 zastrze偶one).
Tab. 4. Funkcje rejestr贸w ATAPI
Rejestr b艂臋d贸w
7 6 5 4 3 Serue key
2 1
!CS0 !CS1 Adres Odczyt Zapis
Rejestr kontrolny
0 1 6 Alternatywny rejestr statusu Rejestr kontroli nap臋du
Rejestry komend i danych
1 0 0 Rejestr danych Rejestr danych
1 0 1 Rejestr b艂臋d贸w -
1 0 2 Rejestr kontroli przesy艂u danych -
1 0 3 - -
1 0 4 Licznik bajt贸w (7 0) Licznik bajt贸w (7 0)
1 0 5 Licznik bajt贸w (15 8) Licznik bajt贸w (15 8)
1 0 6 Wyb贸r aktywnego nap臋du Wyb贸r aktywnego nap臋du
1 0 7 Rejestr statusu Rejestr komend
W standardzie ATAPI jest bardzo rozbudowany system obs艂ugi b艂臋d贸w. Kody b艂臋d贸w pogrupowano w 3 zestawy - Sense Key, Additional Sense Code oraz Ad-ditional Sense Code Qualifier. Dwa ostatnie s膮 dost臋pne poprzez komend臋 Re膮uest Sense. Kod b艂臋du Sense Key znajduje si臋 w 4 starszych bitach rejestru b艂臋d贸w. W tab. 5 zawarto opis kod贸w Sense Key.
Elektronika Praktyczna 10/2002
35
Sterownik nap臋du CD-ROM
Sprawd藕 czy BSY = 0 oraz DRDY = 1
Zapisz komend臋 Packet (AOh) do rejestru komend
Czekaj a偶 BSY = 0 i DRQ = 1
U
Zapisz 12 bajt贸w komendy PACKET. Po 12 bajcie nap臋d zresetuje DRQ i ustawi BSY.
Czekaj na wykonanie komendy
(wyzerowanie BSY). Je艣li s膮
dane do odczytu/zapisu nap臋d
ustawi DRQ.
Zapisz/odczytaj kolejne bajty.
Je艣li DRQ = 0 to nie ma wi臋cej danych do transferu.
Je艣li dokonywali艣my
zapisu zaczekaj a偶
BSY = 0
Rys. 5. Przyk艂adowy algorytm wykonywania komendy
Ka偶da komenda ma sw贸j zestaw rekomendowanych kod贸w b艂臋d贸w: SK, ASC oraz ASCQ. W przypadku ostrze偶enia (6h) komenda tak偶e nie zostaje wykonana:
- ABRT: znaczenie identyczne jak w ATA - komenda nie wykonana,
- EOM: wykryto koniec no艣nika.
Rejestr kontroli przesy艂ania danych
7 6 5 4 3 2 10
10 CoD
S艂u偶y do programowej kontroli wymiany danych. Istotne s膮 w nim dwa najm艂odsze bity:
- 10 - wskazuje czy transfer danych ma odby膰 si臋 do nap臋du (0) czy z nap臋du (1)
- CoD - CommandorData wskazuje czy nap臋d oczekuje na bajty komendy (1), czy na przes艂anie danych (0).
W rzeczywisto艣ci nie korzysta si臋 z tego rejestru - do poprawnej komunikacji wystarczy kontrola flag DRQ oraz BSY.
Licznik bajt贸w
Rejestr ten zawiera informacje o liczbie bajt贸w przekazanych z/do nap臋du. Je艣li nie chcemy okre艣li膰 limitu danych, MUSIMY wpisa膰 do rejestru warto艣膰 0. W innym przypadku nap臋d mo偶e wykorzysta膰 do nast臋pnej komendy warto艣膰, jak膮 sam zapisa艂 przy wykonywaniu poprzedniej (w specyfikacji nie ma informacji na ten temat -sprawdzono to praktycznie).
Rejestr statusu
7 6 5 4 3 2 10 BSy DRDY - - DRQ CORR - FRR
Znaczenie poszczeg贸lnych bit贸w:
- BSY - znaczenie identyczne jak w przypadku ATA,
- DRDY - jw. ale po uruchomieniu urz膮dzenia flaga ta ma warto艣膰 0 - s艂u偶y to odr贸偶nieniu nap臋du ATA od ATAPI,
- DRQ - 偶膮danie transferu danych,
- CORR - wykryto naprawialny b艂膮d danych,
- ERR - b艂膮d podczas wykonywania komendy.
Komendy ATAPI
Interfejs ATAPI dopuszcza tylko kilka komend wykonywanych w klasycznym trybie ATA. S膮 to:
ATAPI Soft reset
Komenda jest odpowiednikiem bitu SRST w rejestrze kontrolnym. Nap臋d CD posiada ten bit w rejestrze kontrolnym, ale nie zaleca si臋 u偶ywania go.
Kod komendy: 08h
Identify ATAPI device
Odpowiednik komendy ECh. Wi臋kszo艣膰 s艂贸w nie jest wykorzystywana. Zwraca informacje o typie urz膮dzenia, mo偶liwych trybach pracy (PIO, DMA itp.) oraz nazw臋 i wersj臋 firmware'u (informacje te maj膮 taki sam uk艂ad jak w ATA). Szerszych informacji mo偶e dostarczy膰 komenda ATAPI In膮uiry.
Kod komendy: Alh
Standby
Dzia艂anie identyczne jak w ATA.
Kod komendy: EOh
Packet Command
Jest to ta komenda, dzi臋ki kt贸rej mo偶emy wys艂a膰 do nap臋du
Tab. 5. Kody Sense Key
Kod Opis
Oh Brak dodatkowych informacji o b艂臋dzie/brak b艂臋du
1h Podczas wykonywania komendy wyst膮pi艂y naprawialne b艂臋dy danych
2h Nie gotowy do wykonania tej operacji
3h B艂膮d no艣nika
4h B艂膮d sprz臋tu
5h B艂膮d w komendzie
6h Ostrze偶enie o zmianie no艣nika lub zerowaniu urz膮dzenia
7h Pr贸ba dost臋pu do danych chronionych
Bh Komenda anulowana przez nap臋d
komend臋 ATAPI. Po jej wydaniu zapisujemy do rejestru danych 12 bajt贸w (6 s艂贸w 2-bajtowych). Oto przyk艂ad komendy Play: Bajt 7 6 5 4 3 2 1 0 0 47h
10
poczgtkowe M poczgtkowe S poczgtkowe F ko艅cowe M ko艅cowe S ko艅cowe F
Jak wida膰 w standardzie ATAPI nie ma ograniczenia liczby parametr贸w komendy. Zawsze pierwszy bajt zawiera kod komendy. Dalej panuje znaczenie bajt贸w jest zale偶ne od konkretnej komendy. Zanim jednak przejd臋 do ich opisu, om贸wi臋 spos贸b sk艂adowania danych na p艂ytach CD-ROM. Na rys. 5 przedstawiono przyk艂adowy algorytm wykonania komendy. Wa偶ne jest, aby nie wyda膰 kolejnej komendy zanim nie odczytamy/zapiszemy wszystkich bajt贸w, kt贸re wymaga艂a poprzednia.
Organizacja danych na p艂ytach CD
Organizacja danych na p艂ytach nie jest taka sama, jak w przypadku dysk贸w twardych. Standard dopuszcza kilka mo偶liwych typ贸w sektor贸w. W CD u偶ywa si臋 dw贸ch sposob贸w adresowania sektor贸w -LBA oraz MSF. LBA jest jedn膮 32-bitow膮 liczb膮 (w rzeczywisto艣-
36
Elektronika Praktyczna 10/2002
Sterownik nap臋du CD-ROM
A
LBA:40000
艢cie偶ka 0, TOC
LeadOut
Obszar danych
Leadln
Pauza 75 sekt.
艢cie偶ka 3 Data
艢cie偶ka 2 Data
Pauza 75 sekt.
Pauza 75 sekt.
艢cie偶ka 1 Audio
LBA:0 MSF: 00:02:00
Pauza 150 sekt.
Rys. 6. Schemat organizacji zapisu na p艂ycie
ci w CDROM-ach wykorzystuje si臋 tylko 24 bity), kt贸ra okre艣la numer sektora. Adres MSF sk艂ada si臋 z 3 liczb: Minut, Sekund i Ramek [Frames). Na jedn膮 sekund臋 przypada 75 ramek, a na minut臋 oczywi艣cie 60 sekund. Standard ten pochodzi z czas贸w, gdy p艂yty u偶ywa艂o si臋 wy艂膮cznie do przechowywania d藕wi臋ku. Adres fizycznie zapisany w nag艂贸wku ka偶dego sektora ma format MSF, a nie LBA. Dopiero nap臋d przelicza t臋 warto艣膰. Wi臋kszo艣膰 komend operuj膮cych na adresie sektora posiada znacznik, dzi臋ki kt贸remu mo偶emy wybra膰 jakiego rodzaju adresowania chcemy u偶ywa膰. Na rys. 6 przedstawiono blokow膮 budow臋 przyk艂adowej p艂yty.
Wszystkie dane s膮 zawarte pomi臋dzy znacznikami pocz膮tku i ko艅ca p艂yty, tzn. Leadln oraz LeadOut. Ca艂a p艂yta jest podzielona na 艣cie偶ki. Numer 艣cie偶ki musi si臋 zawiera膰 mi臋dzy 1 a 99. Minimalna d艂ugo艣膰 艣cie偶ki to 300 sektor贸w. Leadln jest 艣cie偶k膮
0 i zawiera tzw. TOC [Table of Contents) - tabel臋 zawarto艣ci. Nie jest ona dost臋pna z poziomu adresowania sektor贸w. TOC mo偶emy odczyta膰 za pomoc膮 komendy Read TOC. Zawsze pierwsze 150 sektor贸w jest pauz膮. W adresie LBA pozycj臋 0 ma pierwszy sektor po obowi膮zkowej pauzie. W MSF jest ona uwzgl臋dniona, wi臋c adres pocz膮tkowy to 00:02:00. Zawsze przed zmian膮 typu 艣cie偶ki musi wyst膮pi膰 pauza. W przypadku 艣cie偶ek tego samego typu pauza jest nieobowi膮zkowa
1 zazwyczaj jest zawarta w ko艅c贸wce lub pocz膮tku 艣cie偶ki. W tabeli zawarto艣ci nie ma informacji
o pauzach. Ka偶dy sektor posiada kilka subkana艂贸w. Na 24 bajty przypada 1 bajt informacji subka-na艂owych, Najwa偶niejszy jest kana艂 Q zawieraj膮cy informacje o aktualnej pozycji oraz pozycji relatywnej do pocz膮tku 艣cie偶ki. W subkanale P jest flaga informuj膮c膮 o pauzie. Inne raczej nie s膮 bezpo艣rednio przydatne u偶ytkownikowi.
Najwa偶niejsze formaty sektor贸w to: Audio, Mod臋 1 oraz Mod臋 2. Ten ostatni jest rzadko u偶ywany. W trybie 1 sektor sk艂ada si臋 z:
- 12-bajtowej ramki synchronizacji,
- 4-bajtowego nag艂贸wka zawieraj膮cego informacje o typie sektora i pozycji (MSF),
- 2048 bajt贸w danych,
- oraz 288 bajt贸w zawieraj膮cych informacje do korekcji b艂臋d贸w oraz subkana艂y.
Tryb drugi jest podobny, ale nie zawiera ostatnich 288 bajt贸w
- do dyspozycji mamy teoretycznie 2336 bajt贸w danych.
Istniej膮 jeszcze tryby: Mod臋 2 Form 1 oraz Mode 2 Form 2, o kt贸rych dost臋pna dokumentacja milczy. Pierwszy posiada 2048 bajt贸w, drugi 2324 + 4 wolne. Oba tryby posiadaj膮 tak偶e 8-bajtowy dodatkowy nag艂贸wek, kt贸rego zastosowania nie potrafi艂em rozszyfrowa膰. W trybie audio sektor ma 23 52 bajty. Kolejno艣膰 bajt贸w jest nast臋puj膮ca:
- lewy kana艂 - m艂odszy bajt,
- lewy kana艂 - starszy bajt,
- prawy kana艂 - m艂odszy bajt,
- prawy kana艂 - starszy bajt.
W tab. 6 zawarto zestawienie wszystkich komend - zar贸wno tych narzuconych przez standard jak i opcjonalnych. Nie b臋d臋 opisywa艂 wszystkich, poniewa偶 cz臋艣膰
Tab. 6. Zestawienie polece艅 ATAPI wraz z kodami
Komendy statusu i informacji
1 TEST UNIT READY 00 h
2 REO.EST SENSE 03 h
3 INOUIRY 12h
4 MECHANISM STATUS BDh
5 READ CDROM CAPACITY 25 h
6 READ TOC 43 h
7 MOD臉 SENSE 5Ah
Komendy Audio
8 PLAY AUDIO 45 h
9 PLAY AUDIO MSF 47 h
10 PLAY CD BCh
11 STOP PLAY 4Eh
12 PAUSE/RESUME 4Bh
Komendy steruj膮ce
13 MOD臉 SELECT 55 h
14 PREVENT/ALLOW MEDIUM REMOVAL 1Eh
15 SEEK 2Bh
16 START/STOP UNIT/EJECT 1Bh
Komendy danych
17 READ 28 h
18 READ CD BEh
19 READ CD MSF B9h
READ HEADER 44 h
20 READ SUB-CHANNEL 42 h
Komendy opcjonalne
LOAD/UNLOAD CD A6h
SCAN BAh
SET CD SPEED BBh
z nich jest ma艂o przydatna. Opis p贸l zarezerwowanych w komendach tak偶e zostanie pomini臋ty -powinny zawsze mie膰 warto艣膰 0. Nale偶y pami臋ta膰, 偶e bez wzgl臋du na liczb臋 bajt贸w nios膮cych informacj臋, polecenie musi zawsze mie膰 12 bajt贸w. Ustawiony na "1" bit MSF oznacza, 偶e b臋dziemy dokonywa膰 adresowania w systemie MSF. Adres zapisuje si臋 w miejsce adresu LBA z tym, 偶e najstarszy bajt jest w tym wypadku nieu偶ywany. R贸wnie偶 zwracane dane b臋d膮 mia艂y posta膰 MSF. Nie wszystkie komendy podporz膮dkowuj膮 si臋 tej regule -niekt贸re, jak np. Play MSF, maj膮 w艂asny uk艂ad bajt贸w. Ich znaczenie i realizowane funkcje przedstawimy w artykule za miesi膮c. Micha艂 Wysocki mwsoft@satkabel.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziernikO2.htm oraz na p艂ycie CD-EP10/2002B w katalogu PCB.
Elektronika Praktyczna 10/2002
37
PROJEKTY
Yampp 3
Sprz臋towy odtwarzacz MP3, cz臋艣膰 2
W drugiej cz臋艣ci a艅ykuiu
opisujemy monta偶
i uruchomienie odtwarzacza
yampp- Dzi臋ki specjalnemu
oprogramowani u te sto wem u
nie jest to zadanie bardzo
trudne, wymaga jednak
pewnej wiedzy.
Skorzystamy zatem z porad
i opisu przygotowanego przez
tw贸rc臋 oprogramowania
yamppa - Romualda Bia艂ego.
Rekomendacje: sprz臋t dla
fan贸w "empetr贸jkl" lubi膮cych
zna膰 urz膮dzenia od 艣rodka.
Monta偶 i uruchomienie
Ze wzgl臋du na zastosowanie element贸w montowanych powierzchniowo, monta偶 uk艂adu nale偶y przeprowadzi膰 szczeg贸lnie starannie. Najlepiej jest zastosowa膰 podan膮 poni偶ej kolejno艣膰 monta偶u, co u艂atwi uruchomienie odtwarzacza oraz usuni臋cie ewentualnych b艂臋d贸w. Spos贸b ten nieco odbiega od tego, kt贸ry zosta艂 zaproponowany przez Jespera Hansena, ale jest prostszy i zosta艂 sprawdzony w praktyce.
Niestety, Jesper Hansen nie ustrzeg艂 si臋 kilku drobnych b艂臋d贸w. Po pierwsze, powsta艂o ma艂e nieporozumienie dotycz膮ce sygna艂u zeruj膮cego mikroprocesor. Na schemacie i p艂ytce drukowanej w wersji "B" by艂o miejsce na kondensator C8 w艂膮czony pomi臋dzy mas臋 uk艂adu a wej艣cie zeruj膮ce. W wersji "C" zamiast kondensatora C8 zastosowano rezystor Rl2 w艂膮czony pomi臋dzy VCC a wej艣cie sygna艂u zeruj膮cego. Praktyka dowodzi, i偶 najlepiej jest zastosowa膰 oba wspomniane elementy, wi臋c na p艂ytce w wersji "B" nale偶y zamontowa膰 kondensator C8 na swoim miejscu i zaraz
obok, pomi臋dzy plusem C8 i punktem lutowniczym dla rezystora Rl, nale偶y zamontowa膰 wspomniany Rl2. Natomiast na p艂ytce w wersji "C" nale偶y wlutowa膰 kondensator C8 o warto艣ci pojemno艣ci ok. 2,2 fiF pomi臋dzy mas臋 i wej艣cie sygna艂u zeruj膮cego (minus do masy). Prawd臋 m贸wi膮c, najlepszym wyj艣ciem jest jednak zastosowanie specjalizowanego uk艂adu scalonego (np. tr贸j ko艅c贸wkowy DS1813 lub DS1233) zamiast wspomnianych element贸w C8 i Rl2, ale nie jest to konieczne.
Kolejnym b艂臋dem jest brak kondensator贸w blokuj膮cych zasilanie +5 V, kt贸re autor projektu po prostu zapomnia艂 umie艣ci膰 na p艂ytce. Przy zasilaniu yamppa z nie zaszumi oneg o zasilacza nie stwarza to problem贸w, lecz przy zasilaniu z zasilacza impulsowego mo偶e by膰 przyczyn膮 zak艂贸ce艅 d藕wi臋ku lub samoistnego zerowania si臋 yamppa. Dobrze jest wi臋c zamontowa膰 przynajmniej dwa kondensatory ceramiczne 100 nF i jeden tantalowy 22 uF/10V pomi臋dzy VCC i mas臋. Jeden z nich najlepiej przylutowa膰 bezpo艣rednio do wyprowadze艅 mik-rokontrolera.
Pozostawienie "w powietrzu" nieu偶ywanych wej艣膰 bramek uk艂adu IC8 nie powinno mie膰 miejsca w przypadku zastosowania uk艂ad贸w wykonanych w technologii CMOS. Najprostszym rozwi膮za-
Elektronika Praktyczna 10/2002
Yampp 3 - sprz臋towy odtwarzacz MP3
O 55 U *
3 S 3 59
3
Rys. 6. Rozmieszczenie element贸w na p艂ytce drukowanej
niem tego problemu jest po艂膮czenie kroplami cyny odpowiednich n贸偶ek IC8. 艁膮czymy wi臋c ze sob膮 n贸偶ki 12, 13 i 14, a nast臋pnie 9, 10 i 11 oraz 4 i 5, po czym kr贸tkim odcinkiem przewodu 艂膮czymy je do masy, czyli do wyprowadzenia 7 IC8.
Rozmieszczenie element贸w na p艂ytce drukowanej yamppa pokazano na rys. 6. Na pocz膮tku nale偶y zamontowa膰 procesor ICl, stabilizator IC5, diody LED Dl i D2, d艂awiki Li i L2, kondensatory Cl, C2, C5, C6, C8, rezystory Rl, R2, R4, R12, przycisk resetu Sl, kwarc Ql oraz z艂膮cza Jl i J5. Mo偶na te偶 zamontowa膰 pami臋膰 IC3 oraz zatrzask IC2. Po zamontowaniu element贸w pod艂膮czamy zasilanie 5 V do z艂膮cza J5. Nale偶y u偶y膰 zasilacza z ograniczeniem pr膮dowym ustawionym na ok. 100 mA, Powinna si臋 za艣wieci膰 dioda Dl. Je艣li si臋 nie 艣wieci, to oznacza, 偶e zosta艂a zamontowana odwrotnie lub jest jakie艣 zwarcie w uk艂adzie. Nast臋pnie nale偶y zmierzy膰 napi臋cie za stabilizatorem IC5 (na dodatnich ko艅c贸wkach kondensator贸w C5 lub C6). Powinno ono wynosi膰 3 lub 3,3 V, w zale偶no艣ci od wersji zastosowanego stabilizatora. Nast臋pnie nale偶y zaprogramowa膰 mikrokontroler programem testowym. W tym celu pod艂膮czamy interfejs programuj膮cy do portu drukarkowego komputera, 10-sty-kow膮 wtyczk臋 interfejsu wk艂adamy do z艂膮cza Jl, w艂膮czamy zasilanie yamppa i uruchamiamy program 艂aduj膮cy na komputerze. Je偶eli korzystamy z programu Yapp napisanego przez autora projektu
(opisali艣my go w EP7/2002), nale偶y nacisn膮膰 klawisz identyfikacji procesora. W okienku obok powinna pojawi膰 si臋 informacja o wykryciu procesora AT90S8515. Je艣li wszystko przebiega poprawnie, to otwieramy nowy projekt, zaznaczamy okno z zawarto艣ci膮 pami臋ci Flash i wczytujemy program testowy [File>Load Fi-le>yampp_3_test.rom), kt贸ry jest dost臋pny zar贸wno w Internecie (adresy podajemy na ko艅cu artyku艂u), jak i na p艂ycie CD-EP10/ 2002B. Teraz wystarczy klikn膮膰 na ikon臋 z wykrzyknikiem, czyli Au-toprogram, i po chwili program testowy b臋dzie za艂adowany do procesora. W przypadku korzystania z innego programu 艂aduj膮cego, procedur臋 艂adowania pliku yampp_3_test.rom przeprowadzamy zgodnie z jego instrukcj膮 obs艂ugi.
Je偶eli programator nie wykryje procesora, nale偶y sprawdzi膰 poprawno艣膰 monta偶u yamppa i interfejsu programuj膮cego oraz prac臋 generatora z kwarcem Ql.
Po poprawnym zaprogramowaniu procesora od艂膮czamy wtyczk臋 programatora od z艂膮cza Jl i naciskamy przycisk reset. Powinni艣my zauwa偶y膰 trzy wolne b艂yski diody 艣wiec膮cej D2, co 艣wiadczy o poprawnej pracy procesora. Je偶eli zosta艂a zmontowana pami臋膰 RAM wraz z zatrzaskiem, to po sekundzie powinny si臋 pojawi膰 trzy szybkie b艂yski, a po nast臋pnej p贸艂-sekundowej przerwie kolejne 3 szybkie mrugni臋cia diody D2. Je偶eli te dwie serie kr贸tkich b艂ysk贸w b臋d膮 rozdzielone jednym, dwoma lub trzema wolnymi b艂ys-
kami, to oznacza, 偶e wyst臋puje jaki艣 problem z pami臋ci膮 RAM lub zatrzaskiem adres贸w IC2. Jeden d艂ugi b艂ysk oznacza, 偶e jest b艂膮d na magistrali danych, dwa b艂yski - b艂膮d na magistrali adresowej, a trzy b艂yski 艣wiadcz膮 o uszkodzeniu kt贸rego艣 z uk艂ad贸w IC2 lub IC3. W takim przypadku nale偶y ponownie sprawdzi膰 poprawno艣膰 zamontowania ICl, IC2 i IC3.
Je偶eli wst臋pne testy przebieg艂y pomy艣lnie, mo偶emy przej艣膰 do kolejnego etapu, w kt贸rym wlutowu-jemy IC4, kondensatory C14...C17, z艂膮cza J2 i J3 oraz potencjometr do regulacji kontrastu wy艣wietlacza R5. Aby przetestowa膰 dzia艂anie wy艣wietlacza LCD, nale偶y go pod艂膮czy膰 do z艂膮cza J2. Do z艂膮cza J3 pod艂膮czamy kabel 艂膮cz膮cy yamppa z portem RS232 w komputerze, na kt贸rym uruchamiamy dowolny program terminalowy (np. Hyper Terminal) z ustawionymi parametrami transmisji na 19200 bod贸w, 8 bit贸w i brak parzysto艣ci, po czym w艂膮czamy zasilanie yamppa. Po zako艅czeniu sekwencji b艂ysk贸w diody D2 powinni艣my zobaczy膰 tekst powitalny zar贸wno w oknie terminala, jak i na wy艣wietlaczu LCD. Je艣li w oknie terminala nic si臋 nie pojawi, to nale偶y sprawdzi膰 poprawno艣膰 pod艂膮czenia kabla oraz poprawno艣膰 monta偶u. Mo偶na te偶 spr贸bowa膰 odwr贸ci膰 wtyczk臋 z艂膮cza J3 i ponownie wyzero-wa膰 yamppa. Aby wiadomo艣膰 powitalna ukaza艂a si臋 na wy艣wietlaczu LCD, nale偶y za pomoc膮 potencjometru R5 odpowiednio ustawi膰 jego kontrast.
Je艣li nadal wszystko przebiega pomy艣lnie, nadszed艂 czas na zamontowanie pozosta艂ych element贸w. Tak wi臋c montujemy uk艂ady IC6, IC7, IC8 oraz wszystkie pozosta艂e elementy bierne. W tym miejscu mam wa偶n膮 uwag臋 dotycz膮c膮 element贸w generatora kwarcowego dla uk艂adu IC7.
Pocz膮wszy od produkcyjnej wersji "K" uk艂adu VS1OO1, firma VLSI zmieni艂a spos贸b pod艂膮czenia element贸w wsp贸艂pracuj膮cych z kwarcem Q2. Ze wzgl臋du na to, 偶e obecnie s膮 dost臋pne ju偶 tylko wersje "K" tego uk艂adu, modyfikacja staje si臋 niezb臋dna. Polega ona na zmianie warto艣ci kondensatora C4 na 33 pF, rezystora R7 na 1 MQ oraz na niemontowaniu rezystora R6. W miejsce J4 mo偶e-
40
Elektronika Praktyczna 10/2002
Yampp 3 - sprz臋towy odtwarzacz MP3
my bezpo艣rednio wlutowa膰 odbiornik podczerwieni lub z艂膮cze do jego pod艂膮czenia. Gdy wszystko jest ju偶 na swoim miejscu, do gniazda minijack pod艂膮czamy s艂uchawki, do z艂膮cza J3 kabel terminala, a do z艂膮cza J4 odbiornik podczerwieni. Je偶eli go nie pod艂膮czymy, nale偶y tymczasowo zewrze膰 skrajne styki z艂膮cza J4, aby zapobiec wnikaniu zak艂贸ce艅 interpretowanych przez procesor jako przypadkowe komendy zdalnego sterowania. Po w艂膮czeniu zasilania powinni艣my us艂ysze膰 cichy trzask w s艂uchawkach oznajmiaj膮cy pojawienie si臋 zasilania uk艂adu IC7. Po pojawieniu si臋 w oknie terminala tekstu powitalnego powinien si臋 pojawi膰 te偶 znak zach臋ty do pisania. Wciskaj膮c na klawiaturze PC znak zapytania "?", powinni艣my otrzyma膰 spis mo偶liwych do przeprowadzenia test贸w dekodera VS1OO1. Wciskaj膮c klawisz 4, powinni艣my us艂ysze膰 w s艂uchawkach trzy d藕wi臋ki. Je偶eli mamy pod艂膮czony odbiornik podczerwieni, mo偶emy go r贸wnie偶 przetestowa膰, wysy艂aj膮c w jego kierunku sygna艂 z dowolnego pilota pracuj膮cego w standardzie REC80 (np. Panasonic). Na terminalu powinny si臋 pojawi膰 kody odpowiadaj膮ce poszczeg贸lnym klawiszom pilota.
Nast臋pnie do z艂膮cza }7 podpinamy sformatowany dysk twardy z systemem plik贸w FAT32 i klas-trem o wielko艣ci 4kB, a do z艂膮cza J5 pod艂膮czamy zasilacz, kt贸ry powinien mie膰 wydajno艣膰 pr膮dow膮 oko艂o 1A i mo偶emy wykona膰 sprawdzenie interfejsu ATA, uruchamiaj膮c test numer 8. Je偶eli jako 藕r贸d艂o plik贸w MP3 chcemy zastosowa膰 CD-ROM, to wykonanie powy偶szego testu jest bezcelowe, poniewa偶 program testowy obs艂uguje jedynie dyski twarde.
Pod艂膮czenie 3,5-calowego dysku lub CD-ROM-a
Je艣li nie dysponujemy dyskiem z notebooka, to mo偶emy z powodzeniem zastosowa膰 w yamppie standardowy dysk 3,5-calowy. Do tego celu mo偶na wykorzysta膰 standardow膮 przej艣ci贸wk臋 IDE pozwalaj膮c膮 na pod艂膮czenie 2,5-calowe-go dysku w zwyk艂ym PC. W tym przypadku wykorzystujemy j膮 "na odwr贸t". Mo偶na te偶 zrobi膰 specjaln膮 ta艣m臋, kt贸ra po jednej
stronie b臋dzie mia艂a 40-stykowe z艂膮cze do 3,5" dysku, a po drugiej stronie z艂膮cze 44-stykowe do yam-ppa. Styki o numerach od 1 do 40 z 44-stykowego z艂膮cza 艂膮czymy z odpowiadaj膮cymi im stykami z艂膮cza 40-stykowego. Pozosta艂e 4 pozostawiamy wolne. W ten sam spos贸b mo偶na do yamppa pod艂膮czy膰 CD-ROM z interfejsem ATA-PI, przy czym nale偶y pami臋ta膰, 偶e yampp wymaga urz膮dzenia IDE skonfigurowanego jako MASTER, i trzeba odpowiednio prze艂膮czy膰 zwork臋 w CD-ROM-ie lub dysku. Gdy stosowany dysk jest 3,5" lub CD-ROM, b臋dzie potrzebne dodatkowe 藕r贸d艂o zasilania tych dysk贸w o napi臋ciu 12 V. W wykonaniu stacjonarnym - takim jak w modelu pokazanym na zdj臋ciu - mo偶na wykorzysta膰 np. zasilacz pochodz膮cy z obudowy od PC typu slim. Posiada on mi臋dzy innymi odpowiednie napi臋cia +5 V i +12 V oraz ma niewielkie wymiary. Przy tak niewielkim obci膮偶eniu jakie powoduje yampp i twardy dysk lub CD-ROM mo偶e on bez problemu pracowa膰 bez wymuszonego ch艂odzenia wentylatorem.
Oprogramowanie
Oprogramowanie do yamppa tworzone jest na licencji GPL, co oznacza, 偶e ka偶dy mo偶e do woli zmienia膰 i publikowa膰 swoj膮 wersj臋 pod warunkiem publikacji kodu 藕r贸d艂owego oraz zachowania oryginalnych wpis贸w dotycz膮cych autor贸w projektu i wersji bazowej. W ten spos贸b powsta艂o kilka wersji oprogramowania r贸偶ni膮cych si臋 oferowanymi funkcjami. Opisz臋 tutaj najnowsze wersje dost臋pne
w momencie tworzenia artyku艂u. Pisz臋 w liczbie mnogiej, bo istniej膮 oddzielne programy obs艂uguj膮ce dyski twarde i CD-ROM-y.
Na wst臋pie trzeba zaznaczy膰, 偶e odpowiednie skonfigurowanie programu do w艂asnych potrzeb, czyli do posiadanego przez nas pilota zdalnego sterowania, odpowiedniego u艂o偶enia klawiszy, zastosowanego w uk艂adzie kwarcu, czy cho膰by zmiany wielko艣ci klas-tra na dysku wymaga posiadania kompilatora j臋zyka C na procesory AVR. Oprogramowanie zosta艂o napisane przy wykorzystaniu darmowego kompilatora AVR-GCC, kt贸rego najnowsz膮 wersj臋 mo偶na pobra膰 ze strony www.avrfreaks.net. Do poprawnej kompilacji wymagana jest wersja 3.0 (lub o wy偶szym numerze) wspomnianego kompilatora. Mo偶na oczywi艣cie za艂adowa膰 do procesora gotowy skompilowany program, lecz wtedy jeste艣my skazani na takie ustawienia, jakie zosta艂y zaproponowane przez jego autora, w zwi膮zku z czym prawdopodobie艅stwo posiadania pilota wysy艂aj膮cego odpowiednie kody jest niewielkie. W wi臋kszo艣ci przypadk贸w nie jest konieczna umiej臋tno艣膰 programowania w j臋zyku C, poniewa偶 program zosta艂 napisany tak, aby odpowiedni膮 konfiguracj臋 mo偶na by艂o dostosowa膰 poprzez wstawienie lub usuni臋cie znak贸w komentarza przy odpowiednich definicjach w pliku constants.h lub poprzez zmian臋 warto艣ci odpowiednich sta艂ych (r贸wnie偶 w tym pliku). Znakiem komentarza w j臋zyku C jest podw贸jny slash (//) wstawiony na pocz膮tku linii. Niestety, z powodu ograni-
Onlazdo
s艂uchawkowe
Z艂膮cze wy艣wietlacza I klawiatury
Z艂膮cze programowania \. > mlkrokontrolera
Odbiornik zdalnego sterowania
Rys. 7. Rozmieszczenie najwa偶niejszych element贸w i z艂膮cz na p艂ytce yamppa
Elektronika Praktyczna 10/2002
41
Yampp 3 - sprz臋towy odtwarzacz MP3
czonej pojemno艣ci pami臋ci na kod programu trzeba wybiera膰, kt贸re z dost臋pnych funkcji oprogramowania chcemy w艂膮czy膰, a kt贸re s膮 nam zb臋dne, 偶eby program po kompilacji zmie艣ci艂 si臋 w pami臋ci procesora.
Pierwsz膮 wa偶n膮 modyfikacj膮 jest ustawienie odpowiedniej cz臋stotliwo艣ci kwarcu zastosowanego w generatorze taktuj膮cym uk艂ad VS1OO1 - tidefine F_VSl001. Nale偶y pozostawi膰 bez znak贸w komentarza tylko jedn膮 z mo偶liwych warto艣ci lub dopisa膰 swoj膮. Je艣li przez przypadek posiadamy starsz膮 ni偶 "K" wersj臋 uk艂adu VSl001, to nale偶y usun膮膰 komentarz z linii tidefine OLD_VSl001.
Nast臋pnie poprzez wyb贸r jednej z pi臋ciu dost臋pnych definicji LCD_TYPE wybieramy rodzaj posiadanego wy艣wietlacza LCD. Nast臋pnie nale偶y zdefiniowa膰 wielko艣膰 klastia dysku twardego. Okre艣lamy go, wpisuj膮c w linii #de-fine CLUSTER_SIZE jego wielko艣膰 w bajtach, tak wi臋c 4096 to klas-ter 4kB, 8192 to 8 kB, 16384 to 16 kB itd. Je偶eli chcemy korzysta膰 z dysku sformatowanego w systemie FAT16, to musimy usun膮膰 komentarz z linii ttdefine FAT16. Je偶eli nie chcemy, 偶eby dysk zatrzymywa艂 si臋 po naci艣ni臋ciu klawisza Stop, to musimy wstawi膰 komentarz w linii ttdefine HDD_SPINDOWN. Oczywi艣cie te definicje wyst臋puj膮 tylko w wersji przeznaczonej do HDD. W wersji CD zamiast sekcji ATA B* FAT mamy CD-ROM and ATAPI op-tions, w kt贸rej nale偶y ustawi膰 preferowan膮 pr臋dko艣膰 odczytu p艂yt CD (definicja itdefine READ_SPE-
ED x, gdzie x to pr臋dko艣膰 w kB/ s). Zalecana jest pr臋dko艣膰 x4 lub x8, czyli 706 lub 1430 kB/s. Mniejsza pr臋dko艣膰 mo偶e powodowa膰 przerwy w trakcie odtwarzania, a wi臋ksza sprawia, 偶e nap臋d CD-ROM zaczyna pracowa膰 zbyt g艂o艣no, zmniejszaj膮c komfort od-s艂uchu.
Sekcja SONG NAYIGATION umo偶liwia dokonanie wyboru interesuj膮cych nas funkcji steruj膮cych. Wyb贸r ten mo偶e si臋 okaza膰 konieczny, je艣li b臋dziemy chcieli w艂膮czy膰 jak膮艣 inn膮 funkcj臋 programu, kt贸ra nie zmie艣ci si臋 w pami臋ci procesora.
AVR-GCC i yampp
Pozostaje jeszcze tylko zdefiniowanie kod贸w pilota zdalnego sterowania i klawiatury lokalnej. To zadanie zostawmy na p贸藕niej.
Teraz nale偶y zapisa膰 wprowadzone zmiany w pliku constants.h i skompilowa膰 program do postaci "strawnej" przez programator. Do tego wykorzystamy wspomniany wy偶ej kompilator AVR-GCC. Po jego zainstalowaniu w systemie powinni艣my dopisa膰 do pliku startowego Autoexec.bat 艣cie偶k臋 dost臋pu do plik贸w wykonywalnych GCC, czyli w linii PATH dopisa膰 na ko艅cu np.;C:\GCC\bin - je艣li kompilator zosta艂 zainstalowany w katalogu C:\GCC. Nast臋pnie otwieramy katalog, w kt贸rym mamy gotow膮 do kompilacji wersj臋 藕r贸d艂ow膮 oprogramowania i piszemy make lub make all. Po skompilowaniu zobaczymy komunikat o tym, ile zajmuje miejsca wygenerowany kod. Je艣li warto艣膰 HEX jest wi臋ksza ni偶 lEFFh lub je艣li
dostaniemy komunikat Region TEKT is fuli, to oznacza, 偶e program nie zmie艣ci si臋 w procesorze i nale偶y wy艂膮czy膰 jak膮艣 funkcj臋 (w pliku constants.h). Zdarzy膰 si臋 to mo偶e tylko w贸wczas, je艣li pr贸bowali艣my w艂膮czy膰 co艣 wi臋cej ni偶 to, co by艂o w艂膮czone w oryginalnym pliku. Po skompilowaniu dostajemy plik Yampp3.hex (lub Yampp3GD.hex) gotowy do wprowadzenia do procesora. Spos贸b programowania procesora jest identyczny z opisanym przy okazji uruchamiania yamppa. Po prawid艂owym zaprogramowaniu procesora otrzymujemy w pe艂ni funkcjonalny odtwarzacz.
Zdefiniowanie kod贸w pilota
Aby przystosowa膰 jeden z posiadanych pilot贸w zdalnego sterowania do wsp贸艂pracy z yamppem, musimy nauczy膰 go odpowiednich kod贸w klawiszy tego pilota. W tym celu mo偶emy wykorzysta膰 jeden ze zdefiniowanych ju偶 zestaw贸w kod贸w lub, je艣li 偶aden nie dzia艂a prawid艂owo, okre艣li膰 sw贸j w艂asny. Obecnie yampp obs艂uguje pi臋膰 protoko艂贸w wysy艂ania kod贸w zdalnego sterowania: REC80, NEC80, SONY15, SONY12 i RC5. Pocz膮wszy od jednej z ostatnich wersji oprogramowania, w do艣膰 drastyczny spos贸b zosta艂 zmieniony spos贸b konfigu-rowania pilota, a mia艂o to na celu uproszczenie tej procedury. W poprzednich wersjach definicje kod贸w pilota by艂y umieszczone w jednym du偶ym pliku recSO.h, co powodowa艂o troch臋 zamieszania przy pr贸bie utworzenia w艂asnego zestawu kod贸w. Obecnie ka偶dy model pilota posiada sw贸j w艂asny plik definiuj膮cy go, czyli protok贸艂 komunikacji oraz wymagany zestaw kod贸w odpowiadaj膮cych naciskanym klawiszom. Pliki te (o rozszerzeiiiu.de/) znajduj膮 si臋 wewn膮trz katalogu REMOTES, w kt贸rym mo偶na te偶 znale藕膰 plik !_SAMPLE_BASE.def. Mo偶e on pos艂u偶y膰 jako szablon do utworzenia pliku definiuj膮cego nasz konkretny model pilota.
呕eby skorzysta膰 z jednego z gotowych plik贸w, wystarczy go skopiowa膰 do katalogu z plikami 藕r贸d艂owymi oraz zmieni膰 jego nazw臋 na remote.def (zast臋puj膮c poprzedni plik o takiej nazwie)
42
Elektronika Praktyczna 10/2002
Yampp 3 - sprz臋towy odtwarzacz MP3
i ponownie skompilowa膰 kod. Je艣li nasz pilot jest zgodny z wybranym modelem, to po za艂adowaniu kodu do yamppa powinni艣my uzyska膰 pe艂n膮 mo偶liwo艣膰 sterowania jego prac膮.
Je艣li nie posiadamy pilota zgodnego z predefiniowanymi modelami lub posiadamy nadajnik pracuj膮cy w nieznanym standardzie, musimy sami stworzy膰 dla niego odpowiedni plik definiuj膮cy. W tym celu nale偶y odszuka膰 w pliku constants.h linie ftdefine SE-TUP_REMOTE_CODES i usun膮膰 z niej znaki komentarza. Nast臋pnie nale偶y skompilowa膰 kod i za艂adowa膰 do yamppa. Po jego wy-zerowaniu na wy艣wietlaczu LCD oraz na ekranie terminala R2232 powinni艣my zobaczy膰 komunikat
0 tym, 偶e yampp pr贸buje rozpozna膰 protok贸艂 naszego pilota. 呕eby mu to umo偶liwi膰, nale偶y kilkakrotnie nacisn膮膰 dowolny klawisz naszego pilota. Je艣li pilot nadaje w jednym z obs艂ugiwanych protoko艂贸w, to na wy艣wietlaczu pojawi si臋 numer i nazwa rozpoznanego protoko艂u. Je艣li na wy艣wietlaczu b臋d膮 si臋 jedynie zmienia膰 numery
1 nie poka偶e si臋 nazwa protoko艂u, to niestety nasz pilot nie nadaje si臋 do sterowania yamppem i musimy poszuka膰 innego.
Za艂贸偶my jednak, 偶e yampp rozpozna艂 protok贸艂 i jeste艣my gotowi do stworzenia pliku zawieraj膮cego definicje kod贸w. W tym celu naj艂atwiej jest skorzysta膰 ze wspomnianego ju偶 pliku wzorcowego (szablonu) !_S AMPLE_BASE.def. Najpierw tworzymy jego kopi臋, zmieniaj膮c przy okazji jego nazw臋 na tak膮, 偶eby umo偶liwi膰 艂atw膮 identyfikacj臋 pilota, kt贸rego b臋dziemy opisywa膰. Nast臋pn膮 czynno艣ci膮 b臋dzie wpisanie w linii ftdefine REM_STD numeru protoko艂u naszego pilota, kt贸ry b臋dzie wy艣wietlony w pierwszej linii wy-
Yampp w In ter necie
W Internecie mo偶na znale藕膰 sporo stron zawieraj膮cych opisy,
porady i przer贸bki dotycz膮ce yamppa. Pozwol臋 sobie przytoczy膰
adresy najwa偶niejszych:
Strona g艂贸wna - http://www.yampp.com
Najnowsze wersje oprogramowania - http://www.yamppsoft.prv.pl
Strona firmowa VLSI Solutions Oy - http://www.vlsi.fi
Kompilator AVR-GCC - http://www.avrfreaks.net
Forum dyskusyjne po艣wi臋cone yamppowi - http://www.myplace.nu/
mp3/yabb/YaBB.cgi
艣wietlacza yamppa (lub na ekranie terminala).
Teraz mo偶emy przyst膮pi膰 do definiowania kod贸w poszczeg贸lnych funkcji. Naciskaj膮c poszczeg贸lne klawisze pilota, otrzymujemy na wy艣wietlaczu (i terminalu) odpowiadaj膮ce im kody w postaci dwubajtowej liczby zapisanej w kodzie heksadecymalnym, kt贸re nale偶y wpisywa膰 w kolejnych liniach opisuj膮cych ka偶d膮 z dost臋pnych funkcji odtwarzacza, zast臋puj膮c dotychczasowe wpisy Oxffff. Pami臋tajmy, 偶e w j臋zyku C liczby szesnastkowe poprzedzone s膮 pre-fiksem Ox, wi臋c odczytan膮 z wy艣wietlacza liczb臋 7cfl zapisujemy jako Ox7cfl. Je艣li nie chcemy zdefiniowa膰 jakiej艣 funkcji, pozostawiamy przy niej kod Oxffff.
Po zako艅czeniu definiowania kod贸w zapisujemy nasz plik i kopiujemy do katalogu z plikami 藕r贸d艂owymi, zmieniaj膮c mu nazw臋 na robocz膮, czyli remote.def. Pozosta艂o jeszcze przywr贸cenie znak贸w komentarza w linii #c?e-fine SETUP_REMOTE_CODES pliku constants.h, skompilowanie kodu i ponowne za艂adowanie do yamppa.
W ten oto spos贸b dostosowali艣my yamppa do wsp贸艂pracy z naszym pilotem oraz otrzymali艣my plik opisuj膮cy owego pilota, kt贸ry mo偶e by膰 wykorzystany w kolejnej wersji oprogramowania lub
Uk艂ady VS1001 nie b臋d膮 oferowane przez AVT, mo偶na je b臋dzie natomiast zakupi膰 w polecanym przez Jespera Hansena sklepie internetowym Jelu (http://www.jeiu.se/shop.php). P艂atno艣ci mo偶na dokona膰 za pomoc膮 karty kredytowej lub przelewem na konto - wszystkie informacje znajduj膮 si臋 na stronie sklepowej.
Wa偶ne jest, 偶eby nie zamawia膰 na raz podzespo艂贸w na kwot臋 wi臋ksz膮 ni偶 70 EUR, poniewa偶 grozi to odpraw膮 celn膮, kt贸ra potrwa膰 mo偶e (z do艣wiadcze艅 redakcyjnych) nawet do 3 tygodni. Wi膮偶e si臋 ona tak偶e ze sporymi kosztami dodatkowymi. Przyk艂adowe ceny podzespo艂贸w (z po艂owy wrze艣nia 2002):
- VS1001 -20 USD,
- 74LVC245- 1,50 USD,
- kwarc 7,3728 MHz-2,30 USD,
- kwarc 12,288 MHz-2,70 USD.
przes艂any autorowi celem powi臋kszenia istniej膮cej bazy gotowych definicji pilot贸w.
Zdefiniowanie klawiatury lokalnej
Je偶eli nie odpowiada nam zaproponowane rozmieszczenie klawiszy na klawiaturze lokalnej, mo偶emy to zmieni膰. Jak ju偶 wcze艣niej wspomnia艂em, ka偶dy klawisz ma dwa znaczenia. Znaczenie kr贸tkiego naci艣ni臋cia definiujemy w linii ttdefine KBD_SHORT, a d艂ugiego w linii ftdefine KBD_LONG wewn膮trz pliku constants.h. Pierwsz膮 definicj膮 musi pozosta膰 EV_IDLE - oznacza brak akcji, je艣li nie jest naci艣ni臋ty 偶aden klawisz. Kolejne definicje oznaczaj膮 funkcje klawiszy oznaczonych od Kl do K8. Je偶eli w obu liniach dany klawisz ma przypisan膮 t臋 sam膮 funkcj臋, to b臋dzie on posiada艂 tylko jedno znaczenie niezale偶nie od czasu jego naci艣ni臋cia (tak powinno by膰 dla klawiszy regulacji g艂o艣no艣ci). Nale偶y w tym miejscu zaznaczy膰, 偶e d艂u偶sze przytrzymanie klawisza powoduje wysy艂anie kodu LONG co oko艂o 0,8 sekundy, czyli samopowtarzanie klawisza. Jest to przydatne szczeg贸lnie przy regulacji g艂o艣no艣ci i szybkim przewijaniu w prz贸d i w ty艂. Samopowtarzanie tych funkcji zosta艂o specjalnie przyspieszone w stosunku do pozosta艂ych. Po ustaleniu znaczenia wszystkich o艣miu klawiszy wystarczy zapisa膰 zmodyfikowany plik, ponownie skompilowa膰 kod i wgra膰 do procesora.
Mi艂ej zabawy! Romuald Bia艂y
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/pazdziemikO2.htm oraz na p艂ycie CD-EP10/2002B w katalogu PCB.
Elektronika Praktyczna 10/2002
43
PROJEKTY
Konwerter USB<-cz臋艣膰 2
AVT-5080
Drug膮 cz臋艣膰 artyku艂u
po艣wi臋camy przedstawieniu
bu dowy kon wertera
USB<->RS232.
Zawarte w niej informacje
wystarcz膮 do samodzielnego
wykonania i uruchomienia
konwertera.
Czytelnik贸w
zainteresowanych tym tematem
zach臋camy do si臋gni臋cia po
wrze艣niowy numer EP.
Rekomendacje: jest to
wzorcowe opracowanie dla
wszystkich konstruktor贸w
zamierzaj膮cych stosowa膰 we
w艂asnych konstrukcjach
interfejs USB.
W celu nabrania wprawy w korzystaniu z uk艂ad贸w firmy FTDI oraz unikni臋cia ewentualnych niespodzianek, najpierw wykonano podstawow膮, dok艂adnie opisan膮 aplikacj臋 konwertera USB -RS 232.
Schemat elektryczny konwertera pokazano na rys. 7. Jest on prawie identyczny ze schematem konwertera zalecanym przez producenta. R贸偶ni si臋 od niego tylko typem interfejsu RS232, co wynik艂o z posiadanych akurat zapas贸w.
Sygna艂 r贸偶nicowy oraz zasilanie doprowadzone s膮 przez gniazdo USB typu B. Zasilanie jest filtrowane za pomoc膮 obwodu zbudowanego z element贸w Cl, Li, C9 oraz kilku rozmieszczonych na p艂ytce kondensator贸w 100 nF. Zasilanie cz臋艣ci analogowej uk艂adu FT8U232 jest dodatkowo filtrowane przez filtr dolnoprzepus-towy zbudowany z element贸w R5, CIO (filtr s艂u偶y do zasilenia analogowego uk艂adu powielacza cz臋stotliwo艣ci 8x).
Rezystory Rl, R2 zapewniaj膮 dopasowanie do impedancji wej艣ciowej transceivera. Podanie napi臋cia 3,3 V (z wewn臋trznego stabilizatora) poprzez rezystor R3 na lini臋 D+ informuje hub o do艂膮czeniu konwertera do magistrali.
Linie EECS, EESK, EEDATA s艂u偶膮 do obs艂ugi opcjonalnej pami臋ci EEPROM 93C46. Dodatkowo EECS, jako linia wej艣ciowa, pozwala na wyb贸r zastosowanego kwarcu. Podci膮gni臋cie do za-
silania (R7) odpowiada pracy z oscylatorem o cz臋stotliwo艣ci 6 MHz i z 8-krotnym powielaniem. Do艂膮czanie linii do masy prze艂膮cza oscylator na docelowe 48 MHz.
Na uwag臋 zas艂uguje dosy膰 rozbudowany uk艂ad zerowania. Po w艂膮czeniu zasilania na wyprowadzeniu RESET utrzymuje si臋 niski poziom napi臋cia. Tranzystor Ql jest w艂膮czany (dzi臋ki dzielnikowi Rll, R12) dopiero po osi膮gni臋ciu napi臋cia Vcc=3,6 V (U4). Kondensator Cl3 wprowadza niewielkie op贸藕nienie ok. 2 ms (zauwa偶my, 偶e czas zerowania uk艂adu powinien by膰 kr贸tszy ni偶 10 ms - po tym czasie wystawiany jest sygna艂 zerowania magistrali przez hub - aby uk艂ad by艂 od razu got贸w do obs艂ugi transferu kontrolnego).
Oddzielnego zerowania wymaga powielacz cz臋stotliwo艣ci. Powinien on by膰 zablokowany przez kilka milisekund zanim oscylator nie zacznie stabilnie pracowa膰. Uzyskuje si臋 to poprzez podanie poziomu niskiego na wyprowadzenie RCCLK. Jednocze艣nie uk艂ad wymaga, aby dla stabilnego uruchomienia powielacza jego odblokowanie nast臋powa艂o przy wysokim poziomie na wej艣ciu RESET. W konwerterze osi膮ga si臋 to przez dob贸r odpowiedniej sta艂ej czasowej obwodu R6, Cl2.
Na wyj艣ciach RXLED i TXLED wyst臋puj膮 przebiegi impulsowe podczas nap艂ywu danych do bufora odbiorczego oraz ich wysy-
Elektronika Praktyczna 10/2002
45
Konwerter USB<->RS232
35 ""X
sL
L H fel-Z nor
^< t-Uj l_nQ Ci jrtijilj fij WWIUUJ
Rys. 7. Schemat elektryczny konwertera USB<->RS 232C
艂ania z bufora nadawczego. Diody LED do艂膮czone przez R4 i R6 pozwalaj膮 na optyczn膮 kontrol臋 transmisji. Nie b臋dziemy ich montowa膰 na p艂ytce schowanej w obudowie, jednak na etapie testowania s膮 bardzo przydatne.
Wyj艣cie USBEN s艂u偶y do sygnalizacji do艂膮czenia do magistrali - mo偶e by膰 wykorzystane np. do prze艂膮czenia kana艂u transmisyjnego w urz膮dzeniach wyposa偶onych zar贸wno w USB, jak i zamienny RS232C.
Wyj艣cie TXDEN jest aktywne przy wysy艂aniu danych a偶 do chwili ca艂kowitego opr贸偶nienia bufora nadajnika. S艂u偶y do p贸艂-dupleks owych po艂膮cze艅 RS485 i eliminuje programowe prze艂膮czanie kierunku transmisji, konieczne przy korzystaniu ze zwyk艂ego portu.
Wyj艣cie SLEEP informuje o trybie suspend (zawieszenia) magistrali. Tryb ten (o czym nie wspomniano wcze艣niej) dotyczy zachowania si臋 konwertera podczas prze艂膮czenia hosta w u艣pienie [stand-by). W贸wczas host przestaje wysy艂a膰 pakiety SOF. Brak 3 pakiet贸w (czyli przerwa 3 ms) jest wykrywany przez uk艂ad FT8U232, kt贸ry tak偶e przechodzi w stan u艣pienia z maksymalnie zmniejszonym poborem mocy. W trybie suspend hub mo偶e dostarczy膰 do konwertera co najwy偶ej 0,5 mA, Sam FT8U232 ma oczywi艣cie wbudowane odpowiednie mechanizmy redukcji mocy, jednak pozosta艂a cz臋艣膰 uk艂adu musi by膰 sprz臋towo wy艂膮czona. Jest to zapewnione poprzez pod艂膮czenie wyj艣cia SLEEP do wej艣cia shutdown interfejsu RS2 3 2C. Oczywi艣cie, najlepiej jest, je艣li aktywne poziomy napi臋膰 s膮 ca艂kowicie zgodne. Poniewa偶 jednak zamiast MAX213 zastosowano posiadany MAX241, konieczne by艂o dopasowanie poziom贸w za pomoc膮 jednobramko-wego inwertera U2. Uk艂ad MAX241 ogranicza te偶 szybko艣膰 transmisji do tradycyjnych dla portu szeregowego 115 kbd, podczas gdy FT8U232 oferuje transfer do 920 kbd - w razie potrzeby mo偶na wlutowa膰 nowocze艣niejszy interfejs - jest zachowana zgodno艣膰 wyprowadze艅.
Poniewa偶 FT8U2 3 2 wyst臋puje tylko i wy艂膮cznie w obudowie
46
Elektronika Praktyczna 10/2002
Konwerter USB<->RS232
TQFP, w pozosta艂ej cz臋艣ci p艂ytki tak偶e u偶yto g艂贸wnie element贸w SMD.
Nie ma raczej odwrotu od upowszechniania si臋 tej technologii r贸wnie偶 w r臋cznie lutowanych urz膮dzeniach amatorskich. Po zdobyciu pewnej wprawy stwierdzimy, 偶e monta偶 jest cz臋stokro膰 szybszy i 艂atwiejszy ni偶 przy sposobach tradycyjnych. Tak偶e kompletacja takich element贸w sprawia coraz mniej k艂opotu.
Elementy s膮 w lutowane na p艂ytk臋 drukowan膮 zgodnie z rys. 8. Kolejno艣膰 lutowania ustalamy tak, aby zachowa膰 jak najlepszy dost臋p do element贸w (rezystory i kondensatory, p贸艂przewodniki, kwarc, na ko艅cu elementy przewlekane i gniazda). Kondensatory Cl, C2, Rl, R2 s膮 montowane na spodzie p艂ytki. Podczas pocz膮tkowych test贸w mo偶na pomin膮膰 pami臋膰 EEPROM.
Uk艂ad prototypowy zosta艂 z艂o偶ony bez pomocy specjalnych akcesori贸w (jak np. grot wave i odpowiednie topniki) - wystarczy艂 cienki grot i tinol 0,5 mm oraz ta艣ma rozlutownicza Wiek. Nale偶y jednak zwraca膰 uwag臋 na kolejno艣膰 wyprowadze艅 wylutowanie np. obr贸conego o 180 uk艂adu b臋dzie ju偶 wymaga艂o bardziej wyrafinowanego spTz臋tu.
Z tego te偶 wzgl臋du warto sprawdzi膰 przed monta偶em prawid艂owo艣膰 wykonania metalizacji na p艂ytce - zajmie to chwil臋, a mo偶e oszcz臋dzi膰 powa偶nych k艂o-
Rys. S. Rozmieszczenie element贸w na p艂ytce konwertera
pot贸w. Po usuni臋ciu resztek topnika preparatem Kontakt PCC i wysuszeniu p艂ytka jest gotowa do uruchomienia.
Przygotowanie sterownik贸w
Przed pierwszym pod艂膮czeniem konwertera do komputera musimy si臋 wyposa偶y膰 w odpowiedni sterownik. Na stronie producenta mamy do dyspozycji sterowniki dla r贸偶nych system贸w operacyjnych (prototyp by艂 sprawdzany pod Windows 98 oraz ME). Wybieramy odpowiedni i zapisujemy go na dysk. Nale偶y te偶 zwr贸ci膰 uwag臋, 偶e FT8U232 mo偶e by膰 obs艂ugiwany (pod Windows) za pomoc膮 kilku sterownik贸w:
- podstawowy sterownik portu szeregowego, kt贸ry przechwytu-je wywo艂ania funkcji API i prze-kierowuje je do stosu,
- USB (w komunikacji korzystamy wtedy z typowych funkcji Windows obs艂ugi portu, w Delphi bez problemu mo偶na u偶y膰 dotychczasowe komponenty RS, np. TComPort lub TRsPort ze strony EP),
- rozszerzony sterownik portu -posiada mo偶liwo艣ci jak wy偶ej, ale dodatkowo obs艂uguje mechanizm P艂ug & Play (wykrywanie przy starcie Windows nowych urz膮dze艅 - je艣li nie budujemy urz膮dzenia, kt贸re zareaguje na wywo艂anie PnP, lepiej tego sterownika nie stosowa膰, gdy偶 system b臋dzie dosy膰 d艂ugo czeka膰 na odpowied藕, co spowolni uruchamianie komputera),
- sterownik bezpo艣redni (direct), kt贸ry wymaga oddzielnych funkcji do obs艂ugi portu (funkcje te s膮 udost臋pniane w do艂膮czonej bibliotece dli) - nie mo偶na zatem korzysta膰 z gotowych komponent贸w, ale za to mamy dost臋p do rozszerzonego zestawu operacji (ustawianie nietypowych szybko艣ci transmisji, dost臋p do zawarto艣ci EEPROM).
Dla potrzeb naszego projektu b臋d膮 nam potrzebne dwa sterowniki: podstawowy oraz direct. Po 艣ci膮gni臋ciu ze strony FTDI (www.ftdichip.com, publikujemy je tak偶e na naszej p艂ycie CD-EPlO/ 2002B) potrzebnych plik贸w (dla
Rys. 9. Wykrycie przez Windows p艂ytki konwertera

. 10. Podanie lokalizacji potrzebnego sterownika
Rys. 11. Potwierdzenie odszukania sterownika
Rys. 12. Zako艅czenie instalacji konwertera jako wirtualnego portu COM
Windows 98/ME s膮 to - w chwili pisania artyku艂u - N8002101.zip oraz D2XXI 0401, zip) rozpakowujemy je do oddzielnych folder贸w (o dowolnych nazwach) utworzonych na twardym dysku.
Elektronika Praktyczna 10/2002
47
Konwerter USB<->RS232
Ji\Xl
Rys. 13. Kontroler USB w oknie mened偶era sprz臋tu Windows
Uruchomienie uk艂adu
Teraz nadchodzi chwila prawdy. Pod艂膮czamy kablem nasz膮 p艂ytk臋 do gniazda downstream komputera (lub huba). Poprawnie zmontowane urz膮dzenie jest od razu wykryte przez system, kt贸ry prosi o wskazanie lokalizacji sterownika (rys. 9) - zaznaczamy opcj臋 Podaj lokalizacj臋 sterownika.
Po potwierdzeniu otwiera si臋 okienko lokalizacji (rys. 10) zaznaczamy opcj臋 Okre艣lona lokalizacja i wybieramy folder, do kt贸rego rozpakowali艣my pliki podstawowego drivera wirtualnego portu COM.
Windows potwierdza znalezienie prawid艂owego sterownika (rys. 11), a nast臋pnie informuje o poprawnym zako艅czeniu instalacji nowego sprz臋tu (rys. 12).
Rys. 14. Wirtualny port COM w oknie mened偶era sprz臋tu Windows
Po za艂adowaniu sterownika Windows umieszcza konwerter na swojej li艣cie sprz臋tu i przydziela mu numer portu szeregowego - jest to widoczne w oknie mened偶era urz膮dze艅 pod pozycjami kontroler uniwersalnej magistrali szeregowej oraz porty -rys. 13 i 14. Zwr贸膰my uwag臋, 藕e zapis na li艣cie mened偶era jest ka偶dorazowo aktualizowany przy od艂膮czaniu i do艂膮czaniu p艂ytki -mo偶emy si臋 naocznie przekona膰, jak dzia艂a mechanizm wykrywania urz膮dze艅 przez magistral臋 USB. Numer portu jest wybrany jako pierwszy wolny, ale mo偶emy go dowolnie zmieni膰, korzystaj膮c z okna dialogowego Port>W艂a艣ciwo艣ci>Zaawansowa-ne - rys. 15.
W tej chwili konwerter jest ju偶 praktycznie gotowy do dzia艂ania. Jedyny problem to pod艂膮czanie dw贸ch p艂ytek (bez ustawionych numer贸w seryjnych) do jednego komputera - wyst膮pi膮 k艂opoty z identyfikacj膮 (mankament ten jest usuni臋ty w wersji uk艂adu FT8U232BM).
Programowanie pami臋ci EEPROM
Dla zaprogramowania pami臋ci 93C46 na p艂ytce s艂u偶y bezp艂atny program ftd2xxst.exe (pobrany ze strony FTDI wraz z opisem w formacie pdf). Wymaga on jednak zainstalowania wspomnianego wcze艣niej sterownika direct. Aby nie usuwa膰 u偶ytego do tej pory sterownika portu wirtualnego, wykorzystamy standardowy mecha-ni zm aktuali z a ej i ster o w nik贸 w w Windows. W oknie mened偶era sprz臋tu wybieramy nasz kontroler USB (rys. 16) i otwieramy jego w艂a艣ciwo艣ci, w kt贸rych uruchamiamy opcj臋 Aktualizuj sterownik (rys. 17).
Przejdziemy wtedy przez szereg okien podobny do pierwszej instalacji - ale jako lokalizacj臋 podajemy folder z rozpakowanymi plikami sterownika direct. Po zako艅czeniu przeinstalowania w mened偶erze sprz臋tu zmienia si臋 opis konwertera a tak偶e znika wirtualny port szeregowy (rys. 18) - od tej chwili do obs艂ugi UART-u musimy u偶ywa膰 oddzielnych funkcji z do艂膮czonej biblioteki dli (na stronie znajdziemy szereg przyk艂ad贸w dla popularnych 艣rodowisk
fdw 3
. 15. Ustawienie numeru portu szeregowego
programistycznych, oczywi艣cie tak偶e dla Delphi).
Teraz mo偶emy uruchomi膰 program serwisowy. Po jego uruchomieniu (rys. 19) nale偶y wype艂ni膰 wszystkie pola edycyjne podstawowego opisu urz膮dzenia (dalsze opcje uaktywniaj膮 si臋 dopiero po ponownym przej艣ciu do pola Ma-nufacturer klawiszem Tab). Tutaj jedna bardzo istotna uwaga - dla w艂asnych warsztatowych (a nie produkcyjno-komercyjnych) potrzeb nie warto zmienia膰 偶adnych identyfikator贸w poza opisem. Dotyczy to zw艂aszcza numer贸w VID i PID, na podstawie kt贸rych Windows identyfikuje potrzebny sterownik. Przy zmianie YID/PID nale偶y wyszuka膰 i zmieni膰 r贸wnie偶 wpisy w odpowiednich plikach *.inf - w przeciwnym razie system nie odnajdzie sterownika i konwerter pozostanie nieznanym urz膮dzeniem.
Po zapami臋taniu nastaw w艂膮czamy uaktywnione wtedy ustawienia zaawansowane (advanced setup) - rys. 20. Umo偶liwiaj膮 one:
- Wyb贸r opcji P艂ug and Play -pozostawiamy niezaznaczon膮,
- Wyb贸r r臋cznego lub automatycz-
*J艂d玭 | Prnlfc K-TC-* | t
Rys. 16. Rozpocz臋cie wymiany sterownika
48
Elektronika Praktyczna 10/2002
Konwerter USB<->RS232
I *+ I
Rys. 17. Okno umo偶liwiajqce aktualizacj臋 (wymian臋 sterownika)
nego przyznania numeru seryjnego (automatyczny jest wygodny, gdy偶 zapobiega - przy programowaniu konwerter贸w na danym komputerze - powt贸rzeniu si臋 numeru. Dla potrzeb naszego projektu obejmuj膮cego tylko kilka p艂ytek zosta艂 jednak wybrany tryb r臋czny),
- Wyb贸r sposobu zasilania: z magistrali albo samodzielne - pozostawiamy zasilanie z magistrali (nie jest to zbyt istotne, gdy偶 nadrz臋dny dla okre艣lenia sposobu zasilania jest poziom na wej艣ciu PWRCTL kostki, co pozwala na sprz臋tow膮 kontrol臋 aktualnie u偶ywanego 藕r贸d艂a zasilania w bardziej rozbudowanych uk艂adach),
- Udost臋pnienie funkcji zdalnego budzenia hosta z trybu stand-by. Uk艂ad wykonuje to ustawiaj膮c par臋 r贸偶nicow膮 w stan K (odwr贸cona polaryzacja) - dalszym przekazaniem tego sygna-
Rys. 18. Mened偶er urzqdze艅 po prze instalowaniu sterownika
艂u zajmuje si臋 ju偶 hub. W naszym przyk艂adzie opcja pozostaje nieczynna (MAX241 nie posiada funkcji zachowania aktywno艣ci wybranych linii wej艣ciowych w trybie shutdown, a tylko to pozwala fizycznie dostarczy膰 do konwertera sygna艂 budz膮cy),
- Okre艣lenie maksymalnego poboru pr膮du: konwerter (jak wynika z not katalogowych u偶ytych uk艂ad贸w) pobiera zawsze poni偶ej 100 mA. Umo偶liwia to bezproblemowe zasilenie z magistrali USB, gdy偶 ka偶dy hub gwarantuje 100 mA w portach down-stream (nawet w trakcie enume-racji). W polu edycyjnym zosta艂a wpisana przyk艂adowo warto艣膰 nieco mniejsza.
Po wprowadzeniu danych wykonujemy programowanie i kontrolny odczyt EEPROM - wynik tej operacji widzimy na rys. 21.
Sprz臋towy test konwertera
Program serwisowy umo偶liwia te偶 przeprowadzenie kompletnego testu sprz臋towego. Wymagane jest jednak do tego posiadanie w komputerze wolnych port贸w szeregowych COMl i C0M2 oraz przygotowanie odpowiedniego kabla po艂膮czeniowego:
Pin 3 (TXD) - C0M2 Pm 2 (RXD) Pm 2 (RXD) - C0M2 Pm 3 (IKD) Pm 7(RTS) - C0M2 Pm 8 (CTS) Pm 8 (CTS) - C0M2 Pm 7 (RTS) Pm 6 (DSR) - C0M2 Pm 4 (DTR) Pin 5 (GND) - C0M2 Pm 5 (GND) Pin 4 (DTR) - C0M2 Pm 6 (DSR) Pin 1 (CD) - COMt Pm 4 (DTR) Pm 9 (Rl) - C0M1 Pm 7 (RTS)
-dla z艂膮cz DB9
Uwaga! Test uruchamiamy dopiero po wykonaniu wszystkich pod艂膮cze艅 - w przeciwnym przypadku program si臋 zawiesza (w przypadku Windows 98 razem z systemem). Wynik poprawnie przeprowadzonego testu jest pokazany na rys. 22.
Teraz mo偶emy - o ile zachodzi taka potrzeba - powr贸ci膰 do sterownika wirtualnego portu COM. Poniewa偶 w systemie s膮 ju偶 zainstalowane oba sterowniki, procedura znacznie si臋 upraszcza: przy nast臋pnej aktualizacji wybierzemy w oknie lokalizacji opcj臋 Wy艣wietl list臋 wszystkich sterownik贸w i zaznaczymy potrzebny.
JBTETtUUlUlHD
Rys. 19. Okno g艂贸wne programu serwisowego
Zazwyczaj do wst臋pnego sprawdzenia najbardziej odpowiedni b臋dzie pierwszy z wymienionych sterownik贸w.
Teraz nadchodzi "chwila prawdy". Pod艂膮czamy kablem nasz膮 p艂ytk臋 do gniazda downstream komputera (lub huba). Poprawnie zmontowany konwerter jest od razu wykryty przez system, kt贸ry prosi o wskazanie lokalizacji sterownika. Podajemy 艣cie偶k臋 do folderu, w kt贸rym ulokowali艣my odpowiedni sterownik FTDI. Po za艂adowaniu sterownika Windows umieszcza konwerter na swojej li艣cie sprz臋tu i przydziela mu nu-
WYKAZ ELEMENT脫W
Rezystory
Rl, R2: 10n 805
R3: l,5kn 1206
R4, R贸: 22CO 1206
R5: 470ft 1206
R7, RS, Rll, R13: 100kn 1206
R9: 10kn 1206
RIO: 2,2kn 1206
R12: 470kft 1206
Kondensatory
Cl, C13: lOnF 805 ceramiczny
C2...C4: lOOnF 1206 ceramiczny
C5...CS: l^F/20V 321脫 tantalowy
C9: 10^F/l贸V 6032 tantalowy
C10, C12: lOOnF 1206 ceramiczny
Cli: 33nF 1206 ceramiczny
P贸艂przewodniki
Dl, D2: LED 3mm
Ql: BCS57 SOT23
Ul: FTSU232AM
U2: NC7S04 SOT23-5
U3: MAK241 SO2S
U4: 93C4脫 SOS
R贸偶ne
Yl: oscylator ceramiczny 贸MHz
Jl: gniazdo USB typu B
J2: gniazdo kqtowe DB-9M
LI: koralik ferrytowy przewlekany
Elektronika Praktyczna 10/2002
Konwerter USB<->RS232
Eu
FTDI rrrm Addnana jififni dfft cen艅g^Fd ag fcdn
Oplnra
P艂jgantfPtay r SelPotwed f-
F玣ldS玼ltJuml r
|OO30O0O2 ^11^^ iT
i W |

J H !艢Y>'艢
Rys. 20. Okno zaawansowanych ustawie艅 uk艂adu FTSU2xxAM
mer portu szeregowego (obejrzymy to w oknie mened偶era urz膮dze艅 pod pozycjami "porty") oraz kontroler uniwersalnej magistrali szeregowej. Pierwszy szybki test mo偶emy wykona膰 wysy艂aj膮c cokolwiek z dowolnego programu terminala na port powi膮zany z konwerterem - dioda TxLed mruga potwierdzaj膮c wysy艂anie, a na wyprowadzeniu 3 gniazda pojawia si臋 przebieg impulsowy. Aby w pe艂ni sprawdzi膰 poprawno艣膰 dzia艂ania konwertera, musimy zestawi膰 kompletny tor transmisyjny i skontrolowa膰 obustronne nadawanie/odbi贸r oraz ustawianie i odczyt linii kontrolnych. Mo偶na te偶 przeprowadzi膰 firmowy test, ale wymaga to posiadania wolnych port贸w COMl i COM2, przygotowania kabla testowego oraz prze艂adowania sterownika (wymagany direct). Test jest wykonywany za pomoc膮 programu dost臋pnego na stronie www.ftdichip.com.
Rys. 21. Odczyt kontrolny zaprogramowanej pami臋ci
Znajduje si臋 tam te偶 PDF z dok艂adnym opisem obs艂ugi, kt贸rego tutaj nie b臋dziemy przytacza膰. Ten sam program s艂u偶y do zapisywania wsp贸艂pracuj膮cej pami臋ci EEPROM - jest to 艂atwe dzi臋ki za艂膮czonym szczeg贸艂owym instrukcjom. Nale偶y jedynie pami臋ta膰
0 korekcie w plikach *.inf sterownik贸w w razie zmiany numer贸w VID lub PID (system przeszukuje pliki inf i szuka zgodnych numer贸w - je艣li nie znajdzie, to urz膮dzenie pozostanie nieznane).
Co zrobi膰, gdy uk艂ad nie daje znaku 偶ycia? C贸偶 - nie ma zbyt wielkiego pola manewru. Sprawd藕my dok艂adnie p艂ytk臋: przej艣cia, z w ar ci a, koi ej no 艣膰 w y pro w a dze艅, zimne luty, warto艣ci pomocniczych element贸w. Spr贸bujmy uruchomi膰 na innym komputerze
1 kablu. O ile to wszystko nie pomo偶e - pozostaje niestety wymiana FT8U232 lub z艂o偶enie nast臋pnego egzemplarza konwertera.
Materia艂y pomocnicze FTDI zawieraj膮 wiele dodatkowych informacji na temat zastosowanego

ii i i i tJT


艢艢TH BTH ITW Ul id J
r
Rys. 22. Wynik poprawnego testu sprz臋towego konwertera
uk艂adu oraz zalecenia do programowania transmisji wynikaj膮ce ze specyfiki transfer贸w bulk u偶ywanych od strony magistrali USB. Warto przynajmniej cz臋艣ciowo zapozna膰 si臋 z nimi przed pisaniem w艂asnych procedur obs艂ugi komunikacji z u偶yciem konwertera oraz budow膮 innych urz膮dze艅 korzystaj膮cych z FT8U232. Jerzy Szczesiul, AVT jerzy.szczesiul@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Jnternecie pod adresem: http://www.ep.cont.pl/ ?pdflpazdziernikQ2litm oraz na p艂ycie CD-EP10/2002B w katalogu PCB.
W przygotowaniu artyku艂u wykorzysta艂em:
0 (m in
- specyfikacj臋 standardu USB rev na stronie http //www ep corn pl),
- USB Design by Example, John Hyde, Wiley Computer Pubhshmg 1999,
- materia艂y ze strony FTDI http // www Itdichip corn/,
- materia艂y ze strony http //www beyondlo-gicorg/,
- katalogi podzespo艂贸w Maxim oraz Elfa
50
Elektronika Praktyczna 10/2002
PODZESPO艁Y
Mikrokontrolery
XEMICS
radz膮 sobie niemal bez pr膮du
RISC-owe kontrolery firmy XEMICS to wymarzone podzespo艂y dla konstruktor贸w zajmuj膮cych si臋 projektowaniem system贸w
akwizycji danych. Maj膮c do dyspozycji uk艂ady XE88LCO1...O6 reprezentuj膮ce rodzin臋
XE8000 mo偶na stawa膰 wobec
najtrudniejszych - energetycznie
i wydajno艣ciowo - wyzwa艅. Okazuje si臋, 偶e
na problemy, z kt贸rymi nie mo偶na sobie
poradzi膰 od d艂u偶szego czasu jest bardzo
prosta metoda. Niemal gotowe rozwi膮zania
le偶膮 w zasi臋gu r臋ki! Wystarczy si臋gn膮膰!
W muzyce od pewnego czasu zapanowa艂a moda na koncerty unplugged, czyli w wolnym t艂umaczeniu bez pr膮du. S艂yszymy prawdziwe brzmienia instrument贸w akustycznych. Prawdziwa rozkosz dla ucha. Ciekawe, czy kiedy艣 nadejd膮 czasy, 偶e elektronika b臋dzie potrafi艂a r贸wnie偶 oby膰 si臋 bez pr膮du? To do艣膰 przewrotne pytanie, bo przecie偶 opiera si臋 ona w艂a艣nie na zjawisku przep艂ywu pr膮du. Faktem jest jednak, 偶e od czas贸w pierwszych konstrukcji elektronicznych istnieje ci膮g艂a tendencja do systematycznego obni偶ania napi臋膰 zasilaj膮cych, a co za tym idzie i ograniczaniu poboru pr膮du. Bezsporn膮 zalet膮 tych d膮偶e艅 jest obni偶anie mocy pobieranej z zasilania, a w konsekwencji obni偶anie koszt贸w eksploatacji urz膮dze艅 oraz minimalizacj臋 emisji zak艂贸ce艅.
Firma XEMICS wzi臋艂a sobie za punkt honoru, by jej wyroby osi膮ga艂y pod tym wzgl臋dem parametry bliskie granic mo偶liwo艣ci. Faktycznie, gdy si臋 im przyjrze膰 mog膮 zapiera膰 dech w piersi nawet osobom maj膮cym na co dzie艅 do czynienia z najnowocze艣niejszymi produktami. Popatrzmy zatem na tab. 1 - zestawiono w niej wa偶niejsze dane mikrokontro-ler贸w rodziny XE8000. S膮 to uk艂ady wykonane w technologii CMOS, posiadaj膮 8-bitowe rejestry wewn臋trzne i magistral臋 danych oraz 22-bitowe s艂owo rozkazu. Stanowi膮 w艂asne opracowanie Xe-mics a. Uk艂ady te nie s膮 kompatybilne z 偶adn膮 z po-
pularnych rodzin mikro-kontroler贸w jak np. MCS-51, AVR, PIC, czy HC05/ 08. Charakteryzuj膮 si臋 one mo偶liwo艣ci膮 pracy przy ul-traniskim napi臋ciu zasilaj膮cym. Nadaj膮 si臋 wi臋c idealnie do urz膮dze艅 zasilanych bateryjnie. Wszystkie rozkazy spo艣r贸d 35 dost臋pnych, w艂膮cznie z mno偶eniem 8*8 bit贸w i skokami warunkowymi s膮 wykonywane w jednym cyklu zegara. Mamy wi臋c do czynienia z klasycznym procesorem RISC. Jego moc obliczeniowa osi膮ga warto艣膰 4 MIPS przy cz臋stotliwo艣ci zegara 4 MHz. Wykonywanie programu odbywa si臋 w trybie 3-poziomowego przetwarzania potokowego. Schemat blokowy rdzenia jest przedstawiony na rys. 1. Na uwag臋 zas艂uguje umieszczenie akumulatora a bezpo艣rednio na wyj艣ciu jednostki arytmetycz-no-logicznej (Arithmetic Logic Unit). Jest to rozwi膮zanie nietypowe dla klasycznych procesor贸w 8-bi-towych oraz innych procesor贸w RISC. Dzi臋ki temu ostatni wynik obliczony przez ALU mo偶e by膰 bezpo艣rednio u偶yty w nast臋pnej operacji. Akumulator a jest przy tym dla programisty widoczny w banku rejestr贸w. Wska藕nik przepe艂nienia V oraz wydzielone instrukcje arytmetyczne znacznie wspomagaj膮 obliczenia na liczbach w reprezentacji U2 (uzupe艂nienie do dw贸ch). Na li艣cie rozkaz贸w mikro kontroler贸w XE8000 figuruj膮 dwa do艣膰 nietypowe polecenia: CMVD i CMVS. S膮 to rozkazy warunkowego przesuni臋cia. Ich przydatno艣膰
Elektronika Praktyczna 10/2002
51
PODZESPO艁Y
Tab. 1. Zestawienie parametr贸w mi kro kontro I ero w rodziny XE8000
Napi臋cie zasilaj膮ce Pami臋膰 Urz膮dzenia peryferyjne
Programu (kB) Programu (ks艂贸w) Danych (B) LPRAM (B) Programowany oscy-latorRC Rezonator 32kHz Moc obliczeniowa (MIPS) Porty we/wy Detekcja poziomu napi臋cia Watch-dog Preska-ler Port szeregowy
XE88LC01 2,4...5,5 22 8 512 8 + + 2 24 + + + UA
XE88LC02* 1,2/2,4...5,5 22 8 1024 8 + + 7/3 32... 60 + + + UAS
XE88LC03 2,4...5,5 22 8 512 8 + + 2 12...24 + + + UA
XE88LC05 2,4...5,5 22 8 512 8 + + 2 24 + + + UA
XE88LC06* 1,2/2,4.-5,5 22 8 512 8 + + 7/3 12...24 + + + UA
Obja艣nienia:
LP - Low power
UA - Universal Asynchronous Receiver Transmitter (UART)
UAS - Universal Asynchronous Receiver Transmitter (UART) + interfejs SPI
CC - licznik z funkcjami Capture/Compare
+ -funkcja dost臋pna
* - planowane wdro偶enie
- funkcja dost臋pna tylko w wersji z ROM
uwidacznia si臋 podczas operacji wyszukiwania ek-strem贸w w tablicach danych.
Cech膮 wyr贸偶niaj膮c膮 omawiane mikrokontrolery jest znikomy pob贸r pr膮du zasilaj膮cego, wynosz膮cy 300 uA przy cz臋stotliwo艣ci zegara 1 MHz (w wersji z pami臋ci膮 MTP - Multiple Time Pro-grammable) i 10 jjA przy 32 kHz (minimalna cz臋stotliwo艣膰 oscylatora). W trybie u艣pienia mikrokontro-ler czerpie ze 藕r贸d艂a zasilania pr膮d o nat臋偶eniu zaledwie 100\fflA. Jak wida膰 cz臋stotliwo艣膰 taktowania procesora ma silny
wp艂yw na pob贸r pr膮du, co jest zjawiskiem normalnym. Do synchronizacji pracy mikrokontrolera przewidziano wewn臋trzny oscylator RC, nie wymagaj膮cy 偶adnych element贸w zewn臋trznych. Jest to jednak okupione stosunkowo ma艂膮 jego dok艂adno艣ci膮 (ok. 2%). Mo偶na wprawdzie do艂膮czy膰 zewn臋trzny rezonator kwarcowy o cz臋stotliwo艣ci 32 kHz, ale takie rozwi膮zanie nie zadowoli z pewno艣ci膮 wielu u偶ytkownik贸w. W aplikacjach wymagaj膮cych dok艂adniejszych pomiar贸w czasu jest konieczne stoso-
Rdze艅CoolRISC816
Pami臋膰 programu
max 64 k st贸w
(Instrukcji)
Wyj艣cia danych
Wej艣cie dBnych
danych
irejmln/
urz膮dze艅
payfsiyjnych
max64kS
Rys. 1
wanie zewn臋trznych rezonator贸w kwarcowych.
Bogate wn臋trze
Bogactwo interfejs贸w (i ich parametry), w jakie wyposa偶ono mikrokontrolery XE8000 umo偶liwiaj膮 realizacj臋 nawet najbardziej z艂o偶onych aplikacji. Szczeg贸lnie zainteresowani tymi wyrobami powinni wi臋c by膰 projektanci r贸偶norodnych system贸w pomiarowych, system贸w akwizycji danych, rejestrator贸w itp. Przed przyst膮pieniem do prac konstrukcyjnych warto dok艂adnie zapozna膰 si臋 z danymi technicznymi poszczeg贸lnych modeli mik-rokontroler贸w, gdy偶 r贸偶ni膮 si臋 one pomi臋dzy sob膮 wybranymi cechami (tab. 1). W niniejszym artykule zostan膮 opisane bez podzia艂u na typy.
Dla mikrokontrolera pocz膮tek pracy to pewne zerowanie. Uk艂ad zerowania wbudowany w prezentowane mikrokontrolery zaprojektowano do艣膰 nietypowo. Przewidziano mianowicie mo偶liwo艣膰 kombinacji sygna艂u zeruj膮cego z sygna艂ami wyst臋puj膮cymi na portach I/O. W pierwszej chwili nawet trudno znale藕膰 praktyczne zastosowanie takiego rozwi膮zania, ale widocznie istnieje skoro zosta艂o uwzgl臋dnione w konstrukcji. Gdy ju偶 mikrokontroler szcz臋艣liwie rozpocznie prac臋, z pewno艣ci膮 b臋dzie wykorzystywany do przetwarzania analogowo-cyfrowego b膮d藕 cyfrowo-analogowego. 8-i 16-bitowe przetworniki C/ A mog膮 by膰 skonfigurowane dzi臋ki wbudowanemu specjalnemu buforowi do pracy z wyj艣ciem pr膮do-
wym lub napi臋ciowym. Dzia艂aj膮 w pe艂nym zakresie napi臋cia zasilaj膮cego [rail-to-rail). Przetwornik A/C (16 + 10 bit贸w) wyposa偶ono we wzmacniacz o programowanym wzmocnieniu w zakresie od 0,5 do 1000 V/V i programowanym offsecie. Nadaje si臋 wi臋c idealnie do wsp贸艂pracy z r贸偶norodnymi czujnikami wymagaj膮cymi zar贸wno wej艣cia symetrycznego (np. popularne bipolarne czujniki ci艣nienia, przyspieszenia itp.), jak i niesymetrycznego (np. czujniki tensometryczne pracuj膮ce w uk艂adzie mostkowym). Dob贸r zakresu przetwarzania jest u艂atwiony dzi臋ki mo偶liwo艣ci wyboru jednego z dw贸ch napi臋膰 referencyjnych. Przetworniki mog膮 by膰 obs艂ugiwane poprzez przerwania i zdarzenia, poprzez systematyczne odczytywanie bitu gotowo艣ci (pooling). Konwersja mo偶e by膰 r贸wnie偶 inicjowana na 偶yczenie. Proces zbierania danych mo偶e by膰 prowadzony sprawnie dzi臋ki wyposa偶eniu mikrokontrolera w cztery 8-bitowe liczniki/timery. Mog膮 by膰 one 艂膮czone kaskadowo, pracowa膰 w trybie capture/ compare, obs艂ugiwa膰 16-bi-towy PWM. Zapanowanie nad wszystkimi blokami funkcjonalnymi mikrokontrolera, szczeg贸lnie w przypadku rozbudowanych aplikacji niejednokrotnie stwarza spore k艂opoty programistom. Pami臋tajmy, 偶e wi臋kszo艣膰 zjawisk nast臋puje asynchronicznie, cz臋sto z r贸偶nymi cz臋stotliwo艣ciami, nie zawsze w regularnych odst臋pach czasu. Trudno wi臋c by艂oby je oprogramowa膰 bez przemy艣l膮-
Elektronika Praktyczna 10/2002
PODZESPO艁Y
Tab. 1. cd.
Urz膮dzenia peryferyjne
Liczniki-timery PWM Podw贸jnie buforowany DAC Komparator LP Zoo-ming ADC Rozdzielczo艣膰 ADC Sterownik LCD
XE88LC01 4 CC 2 + 16+10
XE88LC02* 4 CC CSI 4 + 16+10 120 seg
XE88LC03 4 CC CSI
XE88LC05 4 CC CSI + + 16+10
XE88LC06* 4 CC 2 4
nego systemu przerwa艅. W mikrokontrolerach XE8000 przewidziano 19-poziomowe przerwania od wi臋kszo艣ci wewn臋trznych peryferi贸w oraz od 8 wej艣膰 zewn臋trznych.
Ale przerwania to nie wszystko, chocia偶 wydaje si臋, 偶e wszystko ju偶 w tej dziedzinie wymy艣lono. Mamy wi臋c do dyspozycji jeszcze tzw. zdarzenia (events), b臋d膮ce mechanizmem w pewnym stopniu nawet lepszym od przerwa艅. Nie wymagaj膮 odk艂adania rejestr贸w na stos, nie wymagaj膮 specjalnych procedur obs艂ugi (tak jak w przypadku przerwa艅), s膮 bardzo energooszcz臋dne. Zdarzenia s艂u偶膮 najcz臋艣ciej do wyprowadzania procesora ze stanu Halt, ale mog膮 r贸wnie偶 by膰 przydatne do wykonywania rozkazu skoku warunkowego - skocz, je艣li wyst膮pi艂o zdarzenie. Pomiar dla samego pomiaru by艂by oczywi艣cie pozbawiony sensu. Z wynikami trzeba co艣 dalej zrobi膰. Mo偶na je na przyk艂ad przedstawi膰 na wy艣wietlaczu. Si臋gaj膮c po uk艂ad XE88LC02 (na razie pozostaj膮cy w planach produkcyjnych) nie powinno by膰 z tym problem贸w. Mikrokontroler ten b臋dzie wyposa偶ony w interfejs 12 0-segmentowego, multi-pleksowanego wy艣wietlacza LCD, jednak偶e gdy z niego zrezygnujemy mamy do dyspozycji 3 2 dodatkowe linie I/O og贸lnego przeznaczenia. Inn膮 metod膮 zrobienia u偶ytku z uzyskanych danych pomiarowych jest na przyk艂ad przes艂anie ich do komputera, gdzie zostan膮 p贸藕niej obrobione przez
specjalizowane oprogramowanie. Do transmisji przewidziano port szeregowy -UART, pozwalaj膮cy na transfer danych z szybko艣ci膮 od 300 do 115000 bd.
Na zewn膮trz te偶 nie jest biednie
Mikrokontroler bez programu, to jak samoch贸d bez benzyny. Mo偶na zaryzykowa膰 twierdzenie, 偶e pisanie i uruchomienie programu zajmuje wi臋ksz膮 cz臋艣膰 czasu przeznaczonego na opracowanie aplikacji. Bez sprawnych narz臋dzi proces ten mo偶e by膰 wyj膮tkowo nieprzyjemny i vice versa - dobre 艣rodowisko uruchomieniowe, to po艂owa sukcesu programisty. Maj膮c to na uwadze, producent mikro kontroler贸w rodziny XE8000 zapewni艂 u偶ytkownikom podstawowe narz臋dzia takie jak asembler, kompilator j臋zyka C, linker, librarian, debugger symboliczny obs艂uguj膮cy wersj臋 藕r贸d艂ow膮 programu. Dost臋pna jest te偶 dokumentacja techniczna oraz programator i star-ter kit. Bardziej wymagaj膮cy u偶ytkownicy mog膮 r贸wnie偶 zakupi膰 emulator In-Circuit firmy Phyton. Powy偶sze narz臋dzia b臋d膮 om贸wione w odr臋bnym artykule dotycz膮cym zestawu ewaluacyjnego dla mikro-kontroler贸w XE8000. Jaros艂aw Doli艅ski jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Artyku艂 powstatw oparciu o dokumentacj臋 techniczn膮 firmy Xemics dostarczan膮 przez krajowego dystrybutora (JM elektronik, tel. (32) 339-69-01, www.jm.pl) wraz ze starter kitem, a tak偶e udost臋pniane na stronach http://www.xemics.com.
Elektronika Praktyczna 10/2002
53
INTERNET DLA ELEKTRONIK脫W
Nowe narz臋dzie EDA
艁atwe jak 1-2-3...
Zawsze twierdz i艂em, 偶e Internet zmieni 艣wiat. Zapewnia bowiem 艂atwo艣膰 komunikowania si臋 ludzi, wymiany pogl膮d贸w esy wymiany danych. Rodz膮 si臋 nowe kompanie internetowe oferuj膮ce r贸偶ne, niespotykane dot膮d us艂ugi, odmienne od tych, do kt贸rych jeste艣my przyzwyczajeni.
Ka偶dy, kto kiedykolwiek wykonywa艂 p艂ytk臋 drukowan膮 do w艂asnego urs膮dze-nia elektronicznego, wie, 偶e na drodze do finalnego produktu trzeba wykona膰 wiele czynno艣ci. Pierwsz膮 s nich jest zaprojektowanie p艂ytki. Pami臋tam jeszcze czasy, gdy p艂ytki do skomplikowanych urz膮dze艅 projektowali艣my na pa-pierse milimetrowym. P贸藕niej na podstawie takiego rysunku robi艂o si臋 r臋cznie wyklejki do sitodruku.
Potem pojawi艂y si臋 komputery klasy PC i odpowiednie oprogramowanie, niemniej jednak zd膮偶y艂em wykona膰 w ten spos贸b kilka czy kilkana艣cie p艂ytek. Horror!
Dzi艣 wi臋kszo艣膰 elektronik贸w, r贸wni e艣 hobbyst贸w , u 偶yw a komputera PC jako swojego podstawowego narz臋dzia pracy. Niezb臋dne jest wi臋c odpowiednie oprogramowanie. To nowe jest jednak bardzo drogie, a stare, udost臋pniane darmowo, troszk臋 nie na czasie i raczej trudne w u偶yciu. Cz臋sto brak jest tak偶e odpowiednich program贸w - driver贸w, umo偶liwiaj膮cych wsp贸艂prac臋 ze wsp贸艂cze艣nie u偶ywanymi urz膮dzeniami peryferyjnymi. Problemem staje si臋 r贸wnie偶 wykonanie doku-
O ile zdobycie dobrego programu do projektowania urz膮dze艅
elektronicznych nie stanowi obecnie du偶ego problemu, to wielu
projektant贸w napotyka na du偶e trudno艣ci w wykonaniu obwod贸w
drukowanych. Wi臋kszo艣膰 krajowych firm produkuj膮cych p艂ytki
drukowane niech臋tnie przyjmuje zam贸wienia jednostkowe lub
wycenia je bardzo drogo.
W artykule przedstawiamy zupe艂nie nowy spos贸b: bezp艂atny
system projektowy z mo偶liwo艣ci膮 zamawiania przez Internet
dowolnej liczby p艂ytek drukowanych.
dukcji p艂ytki o odpowiedniej jako艣ci i w odpowiednim formacie. Oczywi艣cie, mo偶na w Internecie znale藕膰 r贸偶ne "wynalazki" udost臋pniane za darmo, jednak czasami korzystaj膮c z takich
program贸w, mam wra偶enie, 偶e kto艣 moim kosztem urz膮dza sobie ich testowanie. U偶ywanie ich jest wi臋c nieco ryzykowne.
Pomys艂 firmy PCB123 jest unikalny, rozdaje ona bowiem pe艂nowarto艣ciowe oprogramowanie EDA, za pomoc膮 kt贸rego mo偶na zaprojektowa膰 praktycznie dowolne urz膮dzenie elektroniczne. Program projektowy PCB jest jednak pozbawiony mo偶liwo艣ci zapisu projektu w pliku o jakimkolwiek standardowym formacie stosowanym przy produkcji p艂ytek (Gerber, PostScript, DXF) - wykonaniem pytek zajmuje si臋 bowiem odpowiedni dzia艂 firmy PCB123, Dostarczanie danych do wykonania PCB oraz op艂ata za p艂ytki odbywa si臋 drog膮 internetow膮. Ceny tak wykonywanych p艂ytek (z uwzgl臋dnieniem koszt贸w przesy艂ki) mog膮 by膰 konkurencyjne dla wielu krajowych firm
mentacji przeznaczonej do pro- zajmuj膮cych si臋 produkcj膮 jednostkow膮.
Krok 1:
bezp艂atne oprogramowanie
A co by by艂o gdyby? No w艂a艣nie, a gdyby tak zmieni膰 podej艣cie do sposobu zarabiania pieni臋dzy? Gdyby tak zainwestowa膰 w oprogramowanie i udost臋pni膰 je za darmo na stronie WWW, a zarabia膰 na czym艣 zupe艂nie innym, na przyk艂ad na finalnym produkcie, czyli p艂ytkach? Jest przecie偶 wielu elektronik贸w amator贸w borykaj膮cych si臋 z wykonaniem p艂ytki drukowanej. Jest te偶 wiele firm, kt贸re zajmuj膮 si臋 wykonaniem jednostkowych urz膮dze艅. Buduj膮 na przyk艂ad sterowniki przeznaczone tylko i wy艂膮cznie do unikatowej maszyny czy unikatowego systemu sterowania.

__ i_ : __ j__\ __i__i___j__i__] __n__i i __!__" "
Rys. 1
I -**
J
i p "^f- -J.T ..... -~ 1 i i f L'T'
,. 1 1 1 .
H 1
! ti [_h 1 i i *
i i T
1 "I i 艢 i i 1 : *
Rys. 2
Elektronika Praktyczna 10/2002
55
INTERNET DLA ELEKTRONIK脫W
! I 1
1 i i
i i tr
_LL.
nrr
1------1-
Rys. 3
Na pomys艂 takiego w艂a艣nie biznesu opartego o nowoczesne technologie wpad艂a jedna z ameryka艅skich firm. Jej stron臋, internetow膮, a tym samym ofert臋., mo偶na znale藕膰 pod adresem http;// www.pcbl23.com. Od razu wzbudzi艂a moje zainteresowanie. Zgodnie z instrukcj膮 pobra艂em i zainstalowa艂em dost臋pne na niej darmowe oprogramowanie s艂u偶膮ce do projektowania p艂ytek. Jego obs艂uga jest bardzo zbli偶ona do obs艂ugi popularnego Protela, a momentami prsypomina tak偶e Eagle.
Prac臋 nad projektem rozpoczyna si臋 od narysowania schematu uk艂adu (rys. 1). Program posiada bibliotek臋 gotowych element贸w. W prsypadku braku kt贸rego艣 z nich, mo偶na skorzysta膰 z wbudowanego "generatora" symboli element贸w. Za jego pomoc膮 mo偶na szybko uzupe艂ni膰 brakuj膮ce symbole element贸w, chocia偶 wi臋kszo艣膰 z tych cz臋sto u偶ywanych jest dost臋pna.
Po zako艅czeniu rysowania schematu nale偶y wygenerowa膰 list臋 po艂膮cze艅 i nast臋pnie prsenie艣膰 j膮 do modu艂u s艂u偶膮cego do projektowania p艂ytek. Mo偶na to zrobi膰 prsez proste wybranie opcji z Design - Converi to Layoui. Je艣li schemat zosta艂 narysowany poprawnie, nie ma problemu z przeniesieniem zar贸wno listy po艂膮cze艅, jak te偶 element贸w wraz z podstawkami (rys. 2).
Modu艂 s艂u偶膮cy do wykonania projektu p艂ytki nie jest rozbudowany funkcjonalnie. Umo偶liwia wykonanie projektu na jednej do czterech warstw Irys. 3). Program zosta艂 r贸wnie偶 wyposa偶ony w funkcj臋 automatycznego trasowania 艣cie偶ek (autorouter), z mo偶liwo艣ci膮 wykonania mozaiki po艂膮cze艅 zar贸wno na jednej, dw贸ch, jak te偶 na czterech warstwach. Jest to prosty au-torouter, bez skomplikowanych procedur optymalizacji po艂膮cze艅, jednak zupe艂nie wystarczaj膮cy. Opcja 艂膮czenia 艣cie偶ek na pojedynczej warstwie jest nieco myl膮ca, poniewa偶, jak przeczyta艂em na stronie internetowej, firma wykonuje wy艂膮cznie p艂ytki dwu- i cztero-warstwowe.
Rys. 4
W menu programu znajdziemy r贸wnie偶 opcj臋 Design Rule Check, dzi臋ki kt贸rej mo偶na si臋 upewni膰, 偶e projekt naszej p艂ytki spe艂nia wymagania procesu technologicznego, to znaczy, i偶 艣cie偶ki nie s膮 zbyt w膮skie, a odleg艂o艣ci pomi臋dzy nimi w艂a艣ciwe. Prsy znajomo艣ci innych podobnych program贸w oraz po lekturze informacji zapisanych w plikach pomocy, nauczenie si臋 pod-
Wedlug zapewnie艅 przedstawicieli firmy PCB123, je偶eli pomys艂 znajdzie uznanie projektant贸w, to otworzy ona swoj膮 fili臋 w Europie, co obni偶y stosunkowo wysoki kos zt przes y艂ki,
stawowych operacji wystarczaj膮cych do wykonania p艂ytki drukowanej zajmuje niewiele czasu.
Krok 2:
zr 贸b p ly t k臋 dr u ko w an 膮
Na razie nie przedstawili艣my nic nadzwyczajnego. Jest przecie偶 wiele darmowych program贸w, kt贸re mo偶na pobra膰 i u偶ywa膰 do projektowania p艂ytek, rysowania schemat贸w i wykonywania wielu innych czynno艣ci projektowych. To prawda, lecz w艂a艣nie dochodzimy do opisania czynno艣ci najwa偶niejszej, to jest wykonania p艂ytki. Wystarczy w menu programu wybra膰 PCBl-2-3, a nast臋pnie Place an Order (z艂贸偶 zam贸wienie - rys. 4), aby dokumentacja s艂u偶膮ca do wykonania p艂ytki zosta艂a przes艂ana (oczywi艣cie prsez Internet) do producenta. 呕adnych klisz, 偶adnych wydruk贸w, 偶adnych skomplikowanych procedur i test贸w. Wystarczy rejestracja na witrynie internetowej producenta jako klienta i p艂atno艣膰 kart膮 p艂atnicz膮, na prsyk艂ad Visa. To wszystko.
Mottem dzia艂ania firmy jest: As ea-sy as 1-2-3 (tak 艂atwe jak raz - dwa - trzy): 1 - narysuj schemat, 2 - wykonaj projekt p艂ytki, 3 - prze艣lij go do producenta.
Nale偶y jeszcze wspomnie膰, 偶e gdy rozpoczynamy projekt p艂ytki, program
zapyta nas ojej w艂a艣ciwo艣ci: liczb臋 warstw, wykonanie nadruk贸w informacyjnych czy na艂o偶enie maski lutowniczej, grubo艣膰 laminatu, kt贸rego chcemy u偶y膰. Wszystkie te informacje s艂u偶膮 do wykonania kalkulacji cenowej gotowej p艂ytki. Ostateczna cena zale偶y od r贸偶nych czynnik贸w, na prsyk艂ad liczby otwor贸w. Podczas projektowania jej przybli偶ona warto艣膰 jest widoczna w prawym, g贸rnym rogu ekranu. Dok艂adnie, wraz z kosztami dostawy, jest wyliczana w momencie sk艂adania zam贸wienia. W贸wczas mo偶emy r贸wnie偶 zobaczy膰, jak liczba wykonanych p艂ytek wp艂ywa na koszt pojedynczego egzem-plarsa: im mniej, tym wy偶sza cena jednostkowa. Dzieje si臋 tak zapewne dlatego, 偶e do ceny p艂ytki doliczany jest koszt dokumentacji prsy-gotowanej prsez producenta.
Firma nastawiona jest na produkcj臋 niewielkich partii p艂ytek. Praktycznie w standardowym formularzu zam贸wienia mo偶na wybra膰 do 20 sztuk p艂ytek drukowanych. Wi臋ksze ilo艣ci wymagaj膮 zupe艂nie odr臋bnych ustale艅. Jest to wi臋c oferta skierowana do niedu偶ych firm oraz hobbyst贸w elektronik贸w. Wydaje si臋 r贸wnie偶 by膰 adresowana do klient贸w na ca艂ym 艣wiecie. "Na pr贸b臋" sk艂ada艂em zam贸wienie. Nie by艂o problemu z wyborem adresu w Polsce jako miejsca dostawy, jednak koszt przesy艂ki wynosi oko艂o 120 USD.
Szkoda, 偶e program nie odczytuje zbior贸w w popularnie u偶ywanych formatach pochodz膮cych z innych program贸w. Mo偶e opcja ta pojawi si臋 w momencie upowszechnienia si臋 idei. Tak czy inaczej, moim zdaniem jest to genialny pomys艂! Nie mog臋 si臋 doczeka膰, kiedy kt贸ra艣 z firm w Polsce zostanie jego na艣ladowc膮. A mo偶e ju偶 takie istniej膮, a ja nic o nich nie wiem? Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Dodatkowe informacje
Dodatkowe informacje mo偶na znale藕膰 w Interneciepodadresemwww.pcb123.com.
Elektronika Praktyczna 10/2002
SPRZ臉T
W artykule przedstawiamy rodzin臋 miernik贸w uniwersalnych japo艅skiej firmy Sanwa. Mamy
nadziej臋, 偶e lektura artyku艂u u艂atwi zainteresowanym wyb贸r najbardziej odpowiadaj膮cego im
modelu. Ponadto, zawsze warto zapozna膰 si臋 z parametrami kupowanego przyrz膮du, tym
bardzie/, 偶e na og贸艂 b臋dzie on s艂u偶y艂 przez wiele lat
Sanwa jest japo艅sk膮 firm膮, kt贸rej trzy produkty - mierniki uniwersalne RD701, PC520M i PC5000 -przedstawiamy w artykule. Cechuj膮 si臋 one jednakow膮 lini膮 wzornicz膮 i podobnymi warto艣ciami parametr贸w elektrycznych. R贸偶nice wynikaj膮 z mo偶liwo艣ci funkcjonalnych poszczeg贸lnych modeli. To w艂a艣nie one, w po艂膮czeniu z cen膮, b臋d膮 najprawdopodobniej decydowa艂y o wyborze modelu przy zakupie.
Charakterystyka miernik贸w
Wszystkie trzy przyrz膮dy na pierwszy rzut oka wygl膮daj膮 identycznie. JSJa szarym kolorze obudowy nie wida膰 zabrudze艅, a gumowy holster chroni przed ewentualnymi uszkodzeniami mechanicznymi. B臋d膮 si臋 wi臋c one 艣wietnie nadawa艂y do wykorzystania zar贸wno w czystych pracowniach, jak i w warsztatach oraz w terenie. Wa偶niejsze parametry funkcjonalne miernik贸w zestawiono w tab. 1.
W standardowym wyposa偶eniu wyst臋puje para przewod贸w pomiarowych z poz艂acanymi ko艅c贸wkami, na kt贸r膮 w razie potrzeby mo偶na na艂o偶y膰 "krokodylki". Mierniki z opcj膮 pomiaru temperatury (RD701, PC520M) maj膮 odpowiedni czujnik temperatury, do艂膮czany do gniazd zwyk艂ych kabli. Jest to sonda termoparo-wa typu K, umo偶liwiaj膮ca pomiar w zakresie od -50 do +250癈. We wszystkich miernikach zastosowano wy艣wietlacze ciek艂okrystaliczne, przy czym r贸偶ni膮 si臋 one liczb膮 i wielko艣ci膮 cyfr. 52-segmentowe bargrafy u艂atwiaj膮 obserwacj臋 wielko艣ci wolnozmiennych. W modelu RD701 zrezygnowano z bargrafu na korzy艣膰 cyfr o imponuj膮cej wysoko艣ci 23 mm. Konstrukto-
rzy przyrz膮d贸w dobrali sta艂膮 czasow膮 tak, aby reakcja wska藕nika odpowiada艂a ruchom wskaz贸wki w dawnych miernikach magnetoelektrycznych (czy kto艣 je jeszcze pami臋ta)? Wszystkie mul-timetry "potrafi膮" mierzy膰 warto艣ci True RMS, co jest o tyle istotne, 偶e obecnie porz膮dne mierniki bez tej funkcji w艂a艣ciwie nie licz膮 si臋 na rynku. W modelu PC5000 wyr贸偶niono dodatkowo zakres pomiarowy przebieg贸w zmiennych ze sk艂adow膮 sta艂膮 (AC+DC).
Ka偶dy z miernik贸w "radzi" sobie lepiej lub gorzej z obliczaniem warto艣ci True RMS (patrz tab. 1). Zale偶y to od wsp贸艂czynnika szczytu (amplitudy) badanego sygna艂u (CF -cresi factor). Przypomn臋, 偶e jest to stosunek warto艣ci szczytowej (amplitudy) do warto艣ci skutecznej.
Wsp贸艂czynniki kszta艂tu CF maj膮 warto艣ci
zale偶ne od kszta艂tu mierzonego sygna艂u
i wynosz膮:
Sygna艂 mierzony
Sinus
Prosto-
Tr贸jk膮t
Impuls
OtoPEAK
1.414
1.000
1.732
2.000
VimG
1.000
1.000
1.000
2/5
Vavg
0.800
1.000
0.666
2*D
P/Vrms
1-414
1.732
1.111
1.000
1.155

We wszystkich modelach wydzielono gniazdo do do艂膮czenia przewodu podczas pomiaru pr膮du, a tak偶e specjalne gniazdo wysokopr膮dowe do ci膮g艂ego pomiaru pr膮du o nat臋偶eniu do 10 A. Mo偶liwe jest r贸wnie偶 do艂膮czenie specjalnej sondy c臋gowej umo偶liwiaj膮cej pomiary pr膮du do
RD701
250 A. Sondy takie (jest ich kilka typ贸w) s膮 jednak wyposa偶eniem dodatkowym. Roz艂o偶enie element贸w regulacyjnych we wszystkich modelach jest podobne. Modele RD701 i PC5000 wyposa偶ono w uk艂ad ostrzegaj膮cy sygna艂em d藕wi臋kowym o b艂臋dnie wybranym trybie pomiarowym miernika, gdy przewody pomiarowe do艂膮czone s膮 do gniazd pr膮dowych, a ustawiony rodzaj pracy nie odpowiada pomiarowi pr膮du. W centralnym miejscu znajduje si臋 obrotowy prze艂膮cznik rodzaju pracy, a nad nim 8 przycisk贸w dodatkowych (4 w modelu RD701). Prze艂膮cznik obrotowy jest dodatkowo wy艂膮cznikiem. Wy艂膮czenie miernika nast臋puje w dw贸ch jego skrajnych po艂o偶eniach, co w pewnym stopniu powinno wyd艂u偶y膰 czas bezawaryjnej pracy prze艂膮cznika, gdy偶 wybieraj膮c najbli偶sz膮 pozycj臋 Off, ograniczamy liczb臋 prze艂膮cze艅. Interesuj膮ce jest, dlaczego producenci multimetr贸w odeszli od pewnego czasu od stosowania wydzielonych wy艂膮cznik贸w zasilania? Zwa偶ywszy, 偶e aparatura obecnie starzeje si臋 szybciej moralnie ni偶 fizycznie, uwa偶aj膮 by膰 mo偶e, 偶e stosowane elementy mechaniczne i tak prze偶yj膮 przyrz膮d.
58
Elektronika Praktyczna 10/2002
SPRZ臉T
Omawiane przyrz膮dy pobieraj膮 z zasilania pr膮d o warto艣ci ok. 3 mA. Jest to warto艣膰, kt贸ra gwarantuje d艂ugi czas pracy miernika bez wymiany baterii. Aby ten czas wyd艂u偶y膰 - co jest powszechn膮 dzi艣 tendencj膮 - zastosowano automatyczny wy艂膮cznik zasilania po up艂ywie 17 minut bezczynno艣ci.
mierzy膰
Co miernik powinien
Kiedy艣 wystarczy艂o, aby multimetr potrafi艂 zmierzy膰 napi臋cie, pr膮d i rezystancj臋. Dzisiaj wymagania s膮 nieco wi臋ksze, cho膰 pomiary powy偶szych wielko艣ci s膮 nadal podstawowymi. Aktualnie dochodz膮 do tego pomiary cz臋stotliwo艣ci (dobrze, jak da si臋 przy okazji zmierzy膰 wsp贸艂czynnik wype艂nienia przebiegu prostok膮tnego), pojemno艣ci i temperatury. Ponadto niezb臋dny jest tester ci膮g艂o艣ci po艂膮cze艅 i tester z艂膮cza p贸艂przewodnikowego. Mierniki San-wa spe艂niaj膮 z pewnymi wyj膮tkami (patrz tab. 1) powy偶sze wymagania.
Zajmijmy si臋 wi臋c opcjami dodatkowymi miernik贸w.
W wielu sytuacjach niew膮tpliwym u艂atwieniem pracy jest automatyczny dob贸r zakresu pomiarowego. Nie zawsze jednak zaproponowane ustawienie odpowiada u偶ytkownikowi. Mo偶e wi臋c on narzuci膰 sw贸j wyb贸r, naciskaj膮c wielokrotnie przycisk Rang臋. Ka偶de naci艣ni臋cie powoduje cykliczn膮 zmian臋 zakresu. Przytrzymanie na d艂u偶ej tego przycisku ustawia ponownie tryb automatyczny. Przycisk Arel powoduje ustalenie bie偶膮cego wskaza-
Tab. 1. Parametry funkcjonalne miernik贸w RD701, PC520M i PC5OOO
Funkcja RD701 PC520M PC5000
Pami臋膰 danych 43000 pr贸bek
Interfejs RS232 (PC-Link) X X
Pomiar TrueRMSAC X X X
Pomiar True RMS AC+DC X
CFpMxdlapomiar贸wAC 1,75 -pe艂ny zakres, 3,5 -po艂owa zakresu 3 5
Pomiar pojemno艣ci X X X
Pomiar cz臋stotliwo艣ci 50Hz-1MHz 5Hz-125kHz 5Hz-200kHz
Pomiar cz臋stotliwo艣ci sygna艂贸w cyfrowych 5Hz-2MHz
Pomiar wsp贸艂czynnika wype艂nienia X
Kompensacja rezystancji przewod贸w pomiarowych X X
Pomiar poziomu [dBrn] X
Pomiar p臋tli pr膮dowej (%4-20 mA) X
Test diod X X X
Akustyczny Test ci膮g艂o艣ci X X X
Pami臋膰 warto艣ci rnax/rnin X
Pomiar warto艣ci szczytowych X
Pami臋膰 warto艣ci bie偶膮cej odczytu (DataHold) X X
Pomiary wzgl臋dne X X X
Automatyczne ustawianie zakresu X X X
R臋czne ustawianie zakresu X X X
Automatyczny wy艂膮cznik zasilania X X X
Sygnalizacja akustyczna X X X
Holster X X X
Wska藕nik przepe艂nienia X X X
Maksymalne wskazanie wy艣wietlacza 4000 5000 50000, 500000-DCV, 999999-Hz
PC520M
60
nia, jako warto艣ci odniesienia. Dzi臋ki temu 艂atwo mo偶na wykonywa膰 pomiary warto艣ci wzgl臋dnych dowolnych wielko艣ci. W modelu RD701 wyst臋puje jednak pewna, do艣膰 przykra niedogodno艣膰. Uaktywnienie pomiaru wzgl臋dnego wy艂膮cza automatyczny dob贸r zakresu. Je艣li si臋 zdarzy, 偶e nast臋pny pomiar przekroczy maksymaln膮 warto艣膰 dla zakresu obowi膮zuj膮cego w chwili w艂膮czania trybu wzgl臋dnego, to miernik wska偶e przepe艂nienie. Pomiary s膮 od艣wie偶ane ok. 5 razy na sekund臋. Bywa, 偶e po uchwyceniu okre艣lonej sytuacji pomiarowej chcemy, by zmierzona n warto艣膰 zosta艂a zatrza艣ni臋ta na wy艣wietlaczu. S艂u偶y do tego prze艂膮cznik Ho艂d. Po jego naci艣ni臋ciu wynik pozostaje bez zmian, a偶 do odwo艂ania tego trybu. Przytrzymanie na
d艂u偶ej przycisku Ho艂d w mierniku RD701 powoduje w艂膮czenie pomiaru kr贸tkich impuls贸w o czasie trwania do 30 ms. Om贸wione powy偶ej opcje dodatkowe charakteryzuj膮 mo偶liwo艣ci miernika RD7O1, kt贸ry jest najprostszym przedstawicielem omawianej rodziny. Kolejne b臋d膮 dost臋pne tylko w modelach PC520M i PC5OOO.
W metrologii spotykamy si臋 z pomiarami wzgl臋dnymi, dla kt贸rych wynik jest wyra偶any w jednostkach dBm. M贸wi si臋 w tym przypadku o pomiarze poziomu, a chodzi o okre艣lenie stosunku sygna艂u mierzonego do sygna艂u o mocy 1 mW na okre艣lonym obci膮偶eniu. Przyk艂adowo mo偶e to by膰 rezystancja 600 n. W mierniku PC5OOO dost臋pny jest wydzielony tryb umo偶liwiaj膮cy taki pomiar. Okre艣lenie rezystancji obci膮偶enia jest w贸wczas mo偶liwe za pomoc膮 przycisku Rang臋. W modelach PC520M i PC5OOO przewidziano pomiar cz臋stotliwo艣ci. Bardzo przydatna mo偶e si臋 okaza膰 w tym przypadku mo偶liwo艣膰 zwi臋kszenia rozdzielczo艣ci wskaza艅 do 6 cyfr. S艂u偶y do tego przycisk 50 0000 (tylko w PC5OOO, w PC520M wynik jest
Elektronika Praktyczna 10/2002
SPRZ臉T
dzy pr贸bkami co najmniej 20 sekund, miernik samoczynnie ustawia si臋 w tryb siandby podczas oczekiwania na kolejne pomiary. Pracuje wtedy jedynie bargraf. Po zatrzymaniu pomiaru, mo偶na
PC5000
wy艣wietlany zawsze na czterech cyfrach). Czu艂o艣膰 cz臋sto艣ciomierza ustawiana jest automatycznie, lecz mo偶e by膰 zmieniana r臋cznie. Miernik PC5000 umo偶liwia dodatkowo pomiar wsp贸艂czynnika wype艂nienia mierzonego sygna艂u.
Jedn膮 z wa偶nych mo偶liwo艣ci przyrz膮d贸w PC5000 i PC5 20M jest wyszukiwanie warto艣ci maksymalnych i minimalnych w serii pomiar贸w oraz rejestracji wynik贸w. PC5 000 mo偶e pracowa膰 w trybie Max/min recor-ding lub Mayjmin capiure. W tym pierwszym podczas pomiaru na wy艣wietlaczu wy艣wietlane s膮 aktualne wyniki, a warto艣ci ekstremalne s膮 jedynie zapami臋tywane. Mo偶na je p贸藕niej wy艣wietli膰, wprowadzaj膮c miernik w stan Ho艂d. Klawiszem Record zmienia si臋 w贸wczas kolejno warto艣膰 minimaln膮, maksymaln膮 i r贸偶nic臋 pomi臋dzy nimi.
Tryb Max/win capiure pozwala zatrzaskiwa膰 偶膮dan膮 warto艣膰 ekstremaln膮 na wy艣wietlaczu w trakcie pomiaru. Pozostaje ona widoczna do momentu wyst膮pienia nast臋pnej. Fakt ten jest sygnalizowany kr贸tkim sygna艂em d藕wi臋kowym.
Miernik PC520M mo偶e pracowa膰 jako rejestrator danych (Data Jogging). Przed rozpocz臋ciem pomiaru nale偶y w tym przypadku ustawi膰 odpowiedni膮 szybko艣膰 pr贸bkowania (czas pomi臋dzy poszczeg贸lnymi pr贸bkami). Do tego celu jest przeznaczony specjalny klawisz Memory inierval. Minimalny odst臋p mi臋dzy pr贸bkami to 0,05 sekundy, maksymalny za艣 480 sekund. Ciekawostk膮 jest to, 偶e gdy wybrano czas pomi臋-
obejrze膰 wszystkie wyniki w postaci numeru pr贸bki lub jej warto艣ci. Jednoczesne naci艣ni臋cie klawiszy "<<" i ">>" powoduje szybki skok kolejno do zarejestrowanej warto艣ci maksymalnej lub minimalnej.
Nale偶y jeszcze wspomnie膰, 偶e w modelu PC5000 przewidziano tryb pomiaru pr膮du polegaj膮cy na procentowym okre艣leniu bie偶膮cej warto艣ci, w stosunku do warto艣ci dla p臋tli pr膮dowej 4-20 mA.
PC-link
Mierniki PC5000 i PC52 0M mog膮 pracowa膰 w systemie PC-link, o czym wyra藕nie informuje specjalne logo umieszczone pod wy艣wietlaczem. Oznacza to, 偶e mog膮 by膰 one do艂膮czone do komputera za pomoc膮 optycznie izolowanego 艂膮cza RS23 2. Specjalne gniazdo znajduje si臋 w spodniej cz臋艣ci przyrz膮du, pod ruchomym wspornikiem umo偶liwiaj膮cym prac臋 w po艂o偶eniu uko艣nym. Mo偶liwo艣膰 wsp贸艂pracy z komputerem oczywi艣cie nikogo dzi艣 nie dziwi. Na czym wi臋c polega nowo艣膰?
Pomiar warto艣ci True RMS polega na
wykonaniu przez miernik nast臋puj膮cego
dzia艂ania na warto艣ciach W mierzonych
parametr贸w:
Vwdc2+wac
rmi
Po pierwsze: mierniki przesy艂aj膮 wyniki pomiar贸w on-line, umo偶liwiaj膮c obserwowanie ich w postaci graficznej na ekranie komputera w czasie rzeczywistym.
Po drugie: wykorzystuj膮c modele z opcj膮 PC-link (rys. 1) i software PC-link Plus, mo偶na stosunkowo 艂atwo zbudowa膰 system pomiarowy sk艂adaj膮cy si臋 z maksymalnie czterech przyrz膮d贸w. Tworz膮 one wtedy swego rodzaju sie膰, poprzez kt贸r膮 mo偶na przesy艂a膰 komendy Start i Stop. Wszystkie wyniki s膮 zapisywane w pliku dyskowym. Nie jest to w pe艂ni automatyczny system pomiarowy, jaki cz臋sto si臋 buduje w oparciu o interfejs GPIB (General Purpo-
se Inierface Bus), w kt贸rym mo偶na automatycznie wybiera膰 funkcje przyrz膮du i zmienia膰 jego zakres pomiarowy itp. Jednak w wielu przypadkach oferowany rodzaj sieci mo偶e znacznie usprawni膰 pomiary. Dodatkow膮 zalet膮 do艂膮czanego oprogramowania jest mo偶liwo艣膰 zapisywania wynik贸w w formatach CSV i BMP, co umo偶liwia ich p贸藕niejsz膮 obr贸bk臋 i analiz臋 w dowolnym programie np. arkuszu kalkulacyjnym. Cena takiej sieci nie jest zbyt wyg贸rowana, ale trzeba pami臋ta膰, 偶e wsp贸艂praca multimetru z komputerem (nawet bez sieci) jest opcj膮, za kt贸r膮 trzeba dodatkowo zap艂aci膰.
Pozostaje odpowied藕 na pytanie, w jaki spos贸b po艂膮czy膰 cztery urz膮dzenia za pomoc膮 RS232 do komputera wyposa偶onego standardowo w dwa takie porty? Przewidziano tu do艣膰 karko艂omne rozwi膮zanie polegaj膮ce na zaj臋ciu obu port贸w szeregowych komputera. Dwa pozosta艂e mierniki do艂膮cza si臋 poprzez interfejs USB, ale do tego niezb臋dny jest dodatkowo konwerter RS232 na USB. Troch臋 to niewygodne.
Mierniki Sanwy, jak wi臋kszo艣膰 wyrob贸w japo艅skich, s膮 wykonane bardzo starannie i solidnie. Po przeprowadzonych testach doszed艂em do wniosku, 偶e przyda艂by si臋 jeszcze jeden model, w kt贸rym zawarte by by艂y mo偶liwo艣ci wszystkich tu omawianych. Jaros艂aw Doli艅ski, AVT jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Dodatkowe informacje mo偶na uzyska膰 na stronie producenta: hTTp://www.sanwa-rneter.-co.jp oraz u krajowego dystrybutora: NDN, Tel. (22)641-15-47, http://www.ndn.corn.pl.
CGny przyrz膮d贸w prGZGntowanych w artykule (nGtto):
PC701.......................................................255zt
PC5000.....................................................520zt
PC520M....................................................720z艂
RD700(jesttoPC710M.............................210 z艂
bez pomiaru True RMS)
Elektronika Praktyczna 10/2002
61
Miniprojekty
W Miniprojektach przedstawiamy dwa urzqdzenia opracowane na 偶yczenie Czytelnik贸w, sq to: bezpieczne wyj艣cie z linii telefonicznej (s艂r. 91) oraz wska藕nik nat臋偶enia pola w.cz. (s艂r. 92).
IP Cores -nowoczesna technologia projektowania uk艂ad贸w | cyfrowych
Nowoczesna elektronika stopniowo wymusza zmian臋 podej艣cia do jej projektowania. Piszemy o tym na s艂r. 79.
Yampp 3 - sprz臋towy odtwarzacz MP3
Na s艂r. 39 przedstawiamy drugq, ostatniq ju偶 cz臋艣膰 artyku艂u o najs艂ynniejszym obecnie odtwarzaczu MP3 - Yamppie 3. To jednak nie koniec empetr贸jko-wych niespodzianek w EP...
Domowy aparat telefoniczny z kartq chipowq
Problem ograniczenia koszt贸w rozm贸w telefonicznych pr贸bowali艣my rozwiqza膰 ju偶 na kilka sposob贸w, ale propozycja ze s艂r. 21 idzie w swoim radykalizmie jeszcze dalej... \
Grupowy regulator mocy
Podstawowymi zaletami regulatora mocy, kt贸rego opis przedstawiamy na s艂r. 27, sq: prostota budowy i du偶a sprawno艣膰 energetyczna.
Mikroprocesorowy zasilacz laboratoryjny
Zastosowanie mikrokontrolera w zasila czu, kt贸rego budow臋 przedstawiamy na s艂r. 31, spowodowa艂o, 偶e zawiera on niewiele element贸w, a jego parametry i mo偶liwo艣ci sq naprawd臋 dobre
XE8000 ProStart - zestaw | narz臋dzi dla u偶ytkownik贸w mikrokontroler贸w XE8000
Na s艂r. 71 przedstawiamy opis zestawu startowego dla mikrokontroler贸w z rodziny XE8000 firmy Xemics. O samych mikro-kontrolerach piszemy na s艂r. 51.
V 艁atwe jak 1-2-3... - nowe narz臋dzie EDA
Jest to z pewno艣ciq prze艂om w my艣leniu o wykonawstwie p艂ytek drukowanych. Producent p艂ytek drukowanych rozdaje opracowany przez siebie, niez艂y pakiet program贸w do projektowania PCB, ale u偶ytkownik mo偶e wykona膰 p艂ytki tylko w firmie 1-2-3!
Czy si臋 przyjmie w naszym kraju? Jak powstanie fabryka p艂ytek drukowanych w Europie - z pewno艣ciq tak! S艂r. 55.
Konwerter USB<->RS232
W drugiej cz臋艣ci artyku艂u (s艂r. 45) przedstawiamy budow臋 sprz臋towego konwertera USB<->RS232, kt贸rego "sercem" jest specjalizowany uk艂ad opracowany przez firm臋 FTDI.
Integracja GCC z AVR Studio
Fani mikrokontroler贸w AVR z pewno艣ciq znajq bezp艂atny kompilator GCC. O sposobie jego integracji z windowsowym interfejsem programu AVR Studio piszemy na s艂r. 97. T
Elektronika Praktyczna 10/2002
Radiomodem Satelline-3AS EPIC
Na s艂r. 144 przedstawiamy nowe radiomodemy firmy Satel, za pomocq kt贸rych mo偶na tworzy膰 bezprzewodowy RS232,
Multimetry Sanwa a
Niby zwyk艂e multimetry, ale ze wzgl臋du na wysokq jako艣膰 wykonania postanowili艣my je bli偶ej przedstawi膰 Czytelnikom, s艂r. 58.
Falowniki Sysdrive firmy Omron
O nowoczesnych urzqdzeniach do regulacji obrot贸w silnik贸w zasilanych prqdem zmiennym piszemy na s艂r. 141.
IKA
Nr 10(118)
pa藕dziernik 2002
Audiofilski przetwornik C/A audio, cze艣膰
Domowy aparat telefoniczny z kartq chipowq, cze艣膰 1
Grupowy regulator mocy...........................................................
Mikroprocesorowy zasilacz laboratoryjny................................
Sterownik nap臋du CD-ROM, cze艣膰 3.......................................
Yampp 3 - sprz臋towy odtwarzacz MP3, cze艣膰 2.....................
Konwerter USB<->RS232, cze艣膰 2...............................................
MiniprojeKTy^^^^^^^^^^^^^^^^^^^
Bezpieczne wyj艣cie z linii telefonicznej.....................................
Wska藕nik nat臋偶enia polaw.cz...................................................
Kura |
Integracja GCC z AVR Studio - Bezp艂atny kompilator C
dla mikrokontroler贸w AVR..........................................................
Je偶yk C dla mikrokontroler贸w 8051, cze艣膰 5.........................
14 21 27 31 35 39 45
91 92
97 101
Elektronika Praktyczna 10/2002
Falowniki Sysdrive firmy Omron................................................141
Radiomodem Satelline-3AS EPIC............................................144
L-Rodzespo艂y
MikrokontroleryXE8000...............................................................51
Telekomunikacyjny '51 - nowy mikrokontroler
firmy Winbond..............................................................................76
IP Cores - nowoczesna technologia projektowania
uk艂ad贸w cyfrowych.....................................................................79
Sprz臋t]
Multimetry Sanwa........................................................................58
Lutowanie, czyli niema fraka bez nici.....................................67
XE8000 ProStart - zestaw narz臋dzi dla u偶ytkownik贸w mikrokontroler贸w XE8000............................................................71
Powi臋kszenie - narz臋dzia dla nowoczesnej elektroniki..........87
Internet dla
艁atwe jak 1-2-3...- nowe narz臋dzie EDA..................................55
trendy
Atak na mikrokontrolery. cze艣膰 3..................^^,,_...................62
橮rbjek艂y Czytelnilcow!
Przycisk ANVdo PC, cze艣膰 2....................................................105
Z kraju i ze 艣wiata........................................................127
Kramik+Rynek..............................................................107
Listy.................................................................................113 ^
Ekspresowy Informator Elektroniczny.....................1231
Wykaz reklamodawc贸w............................................
7
TRENDY
Panuje powszechne przekonanie, 偶e atak inwazyjny jest bardzo skomplikowany i wymaga specjalistycznych przyrz膮d贸w. Oczywi艣cie - w艂amanie metod膮 inwazyjn膮 jest kosztowne, wymaga wyposa偶enia na przyk艂ad w r贸偶nego rodzaju odczynniki chemiczne, jednak czasami mo偶e by膰 zrobione stosunkowo 艂atwo.
12C50B*
Niekt贸re z modeli mikrokontro-ler贸w s膮 bardzo odporne na pr贸by w艂amania nieinwazyjnego, jednak zupe艂nie bezbronne wobec metod inwazyjnych. Podany przyk艂ad zrywa z mitem, 偶e w艂amanie metod膮 inwazyjn膮 musi kosztowa膰 tysi膮ce dolar贸w. Przytaczam go w celu ostrze偶enia konstruktor贸w urz膮dze艅 elektronicznych i pokazania, co mo偶e si臋 zdarzy膰. Oto przyk艂ad z艂amania zabezpiecze艅 mikrokontrolera PIC12C508 w艂a艣nie metod膮 inwazyjn膮, po lekturze kt贸rego ka偶dy sam b臋dzie m贸g艂 wyliczy膰 sobie spodziewany koszt przeprowadzenia w艂amania i wysnu膰 wnioski.
Po pierwsze trzeba zdj膮膰 obudow臋 struktury. Mo偶e to by膰 zrobione dwoma metodami: rozpuszczenie wszystkiego woko艂o struktury fnp. w oparach kwasu azotowego), albo poprzez usuni臋cie plastyku tylko znad struktury przy pomocy narz臋dzi mechanicznych (fot. l). W tym drugim przypadku trzeba to zrobi膰 bardzo ostro偶nie. Drugi spos贸b ma te偶 t臋 zalet臋, 偶e struktura uk艂adu pozostaje zamocowana i przytwierdzona do pod艂o偶a - nie wymaga przeniesienia na p艂ytk臋 adaptera i wykonania po艂膮cze艅 struktury do doprowadze艅.
Jednak prawdopodobnie 艂atwiejsze do wykonania, b臋dzie rozpuszczenie plastyku woko艂o struktury. Przyjrzyjmy si臋 wi臋c temu sposobowi.
Jak ju偶 wcze艣niej wspomniano, mo偶na to zrobi膰 przy pomocy opar贸w podgrzanego kwasu azotowego. Opary te rozpuszcz膮 plastyk obudowy, nie naruszaj膮c po艂膮cze艅 struktury i wyprowa-
dze艅. Nalot powsta艂y w czasie rozpuszczania obudowy, jak r贸wnie偶 resztki opar贸w, mo偶na usun膮膰 zanurzaj膮c struktur臋 np. w acetonie. Czyst膮 struktur臋 przemywamy wod膮 i suszymy.
Je艣li z jaki艣 powod贸w nie jeste艣my wstanie tego zrobi膰, mo偶na t臋 czynno艣膰 pomin膮膰. Co prawda na strukturze pozostanie nalot, jednak przepuszcza on promieniowanie UV, kt贸re u偶yte b臋dzie w tym przyk艂adzie.
Nast臋pnie ostro偶nie przenosimy struktur臋 na p艂ytk臋 adaptera (fot. 2), mocujemy j膮 za pomoc膮 np. kropelki kleju, odcinamy oryginalne doprowadzenia i 艂膮czymy struktur臋 z nasz膮 p艂ytk膮 testow膮.
Kolejnym krokiem b臋dzie wystawienie tak zwanych bezpiecznik贸w na dzia艂anie 艣wiat艂a UV. Aby to zrobi膰, nale偶y odnale藕膰 miejsce w strukturze, gdzie s膮 one umieszczone. Je艣li dysponujemy mikroskopem o powi臋kszeniu 100x lub wi臋cej, nie b臋dzie z tym wi臋kszego problemu. Trzeba po prostu prze艣ledzi膰 drog臋 艣cie偶ki, od wyprowadzenia uk艂adu, na kt贸re podawane jest napi臋cie programuj膮ce. Po ich odnalezieniu, os艂aniamy pami臋膰 programu, na przyk艂ad za pomoc膮 kawa艂ka papieru pakowego, a reszt臋 struktury o艣wietlamy 艣wiat艂em UV przez okres oko艂o 5 minut. Pez-pieczniki zostaj膮 ..naprawione", pami臋膰 programu mo偶na odczyta膰 przy pomocy zwyk艂ego programatora...
Je艣li nie mamy mikroskopu, mo偶emy r贸wnie偶 os艂ania膰 cz臋艣膰 struktury,
o艣wietla膰 艣wiat艂em UV i obserwowa膰 rezultat. Oczywi艣cie w ten spos贸b, mo偶na doprowadzi膰 do utraty zawarto艣ci pami臋ci programu.
Gro藕by ataku i metody obrony
Teraz, maj膮c informacje na temat r贸偶nych metod ataku, mo偶emy domniemywa膰 jakie s膮 potencjalne zagro偶enia dla urz膮dze艅 budowanych przy u偶yciu mikrokontrolera:
- Atak nieinwazyjny jest bardzo du偶ym zagro偶eniem i je艣li mikrokontro-ler podatny jest na takie metody ataku ma on minimalny poziom zabezpiecze艅. Jedynym wyposa偶eniem, kt贸re b臋dzie potrzebne potencjalnemu piratowi, jest specjalny programator. Mo偶na go kupi膰 na przyk艂ad za po艣rednictwem Internetu.
- Tanie ataki inwazyjne to naprawd臋 du偶y problem dla konstruktor贸w. Taki atak mo偶e by膰 przeprowadzony praktycznie przez ka偶d膮 osob臋
Fot.
Przyk艂ad ataku inwazyjnego na mikrokontroler PIC12C508
62
Elektronika Praktyczna 10/2002
TRENDY
z podstawow膮 wiedz膮 z zakresu chemii. Ca艂y potrzebny osprz臋t mo偶na kupi膰 sa 100 do 300 dolar贸w. Mikrokontrolery podatne na ten rodzaj ataku nie s膮 wystarczaj膮co bezpieczne.
- Atak inwazyjny za pomoc膮 mikro-sond, mo偶e by膰 przeprowadzony tylko przez bardzo zasobnego finansowo fachowca. Powoduje to, 偶e mikrokontrolery podatne tylko na tego typu ataki, s膮 bezpieczne. Zawsze jednak powiniene艣 skalkulowa膰 pieni膮dze potrzebne na wynaj臋cie, czy te偶 zakup sprz臋tu, doda膰 do tego czas potrzebny na rozpoznanie zagadnienia i z艂amanie zabezpiecze艅. Z ca艂膮 pewno艣ci膮 nie otrzymasz w ten spos贸b kwoty tysi膮ca dolar贸w, jednak musisz bra膰 to pod uwag臋 i nie mo偶esz u偶ywa膰 mikro-kontroler贸w podatnych na tego rodzaju atak w bardzo drogich projektach, gdy bezpiecze艅stwo danych jest niezb臋dne.
- Odtwarzanie mapy po艂膮cze艅 struktury uk艂adu scalonego freyerse engine-eringijest najdro偶sz膮 z mo偶liwych metod ataku. Daje ono jednak wszystkie potrzebne informacje na temat schematu uk艂adu scalonego oraz struktury i metod zabezpiecze艅. Zajmuje jednak bardzo du偶o czasu i wymaga du偶ych nak艂ad贸w finansowych. 艁atwo sta膰 si臋 jednak mo偶e przyczynkiem do opracowania metod ataku nieinwazyjnego.
Tak wi臋c je艣li zabezpiecze艅 mikro-kontrolera nie da si臋 obej艣膰 w 偶aden z powy偶szych sposob贸w, jest on dobrze zabezpieczony. Aczkolwiek mo偶e to by膰 tylko b艂膮d jednego z w艂amywaczy, z kt贸ry dostrze偶e kto艣 nast臋pny i poradzi sobie ze z艂amaniem zabezpiecze艅 bez wi臋kszego problemu.
Teraz mamy ju偶 chyba 艣wiadomo艣膰, 偶e praktycznie ka偶dy z popularnie u偶ywanych mikrokontroler贸w mo偶na odbezpieczy膰 u偶ywaj膮c kt贸rej艣 z powy偶szych metod. Zazwyczaj nie jest mo偶liwe ponowne zaprojektowanie struktury uk艂adu mikrokontrolera z powodu tylko jego zabezpiecze艅. Wi膮偶e si臋 to bowiem z bardzo du偶ymi kosztami wdro偶enia nowego uk艂adu do produkcji oraz z tym, 偶e nie b臋dzie zachowana kompatybilno艣膰 z wcze艣niejszymi jego wersjami.
Zazwyczaj mikrokontrolery ,,bezpieczne" konstruowane s膮 dla potrzeb kart Smaricard, gdzie dost臋pne s膮 tylko dwa wyprowadzenia interfejsu szeregowego. Oczywi艣cie, mo偶esz u偶y膰 ,,bezpiecznego" mikrokontrolera aby chroni膰 sw贸j projekt, jednak je艣li w艂amywacz zainteresowany b臋dzie tylko t膮 cz臋艣ci膮 algorytmu zaimplementowa-nego w typowym mikro kontrolerze, mo偶e go zdoby膰 bez k艂opotu.
Fot. 2
Innym rozwi膮zaniem jest u偶ywanie zabezpiecze艅 sprz臋towych zbudowanych na bazie programowanych uk艂ad贸w logicznych (PAL, CPLD, EPLD itp.)i kt贸re zazwyczaj oferuj膮 lepszy stopie艅 ochrony ni偶 standardowe mikrokontrolery. Nawet je艣li uda si臋 w艂ama膰 i odtworzy膰 ich kod, sporo czasu sp臋dzi potencjalny w艂amywacz, zanim zrozumie jak to zabezpieczenie dzia艂a. Mo偶na r贸wnie偶 u偶y膰 pewnych nieudo-kumentowanych cech mikrokontroler贸w. Je艣li u偶ywasz mikrokontroler贸w z pami臋ci膮 OTP, EPROM, EEPROM czy Flash, mo偶liwe jest u偶ycie szeregu kom贸rek pami臋ci dla zabezpieczenia. Na czym polega idea? Wszystkie te rodzaje pami臋ci s膮 pami臋ciami analogowymi, to oznacza, 偶e ka偶da kom贸rka wewn膮trz obszaru przechowuje 艂adunek zamiast stanu logicznego. Gdy dokonywany jest odczyt pami臋ci, 艂adunek elektryczny z odpowiedniej kom贸rki zamieniany jest na warto艣膰 0 lub 1 poprzez komparator. Je艣li zmienisz warto艣膰 艂adunku kom贸rki pami臋ci do poziomu b臋d膮cego na progu zadzia艂ania komparatora, ze wzgl臋du na obecno艣膰 zak艂贸ce艅 wewn膮trz struktury mikrokontrolera, za ka偶dym razem otrzymasz inn膮 warto艣膰 odczytuj膮c dan膮 kom贸rk臋 pami臋ci. Ta w艂a艣ciwo艣膰 mo偶e zosta膰 u偶yta jako dodatkowe zabezpieczenie wraz z normalnymi mechanizmami zabezpieczenia mikrokontrolera.
Inn膮 mo偶liwym sposobem zwi臋kszenia poziomu bezpiecze艅stwa danych jest zniszczenie mo偶liwo艣ci ponownego programowania. Mo偶e to by膰 zrobione poprzez mechaniczne odci臋cie okre艣lonych wyprowadze艅 albo te偶 poprzez przy艂o偶enie do jednego z nich wysokiego napi臋cia tak, aby wewn臋trzne po艂膮czenie uleg艂o przepaleniu. Jednak takie dzia艂anie nie zapewnia ochrony przed atakiem inwazyjnym. Znacznie m膮drzejsz膮 i skuteczniejsz膮 metod膮 jest uszkodzenie cz臋艣ci struktury mikrokontrolera odpowiedzialnej za programowanie pami臋ci. Jednak w takim przypadku wymagana jest bardzo dobra znajomo艣膰 struktury uk艂adu - konieczny wr臋cz staje si臋 reverse en-gineering , co jednak czasami jest znacznie bardziej kosztowne ani偶eli ca艂y projekt. Sergiej Skorobogatov Opracowa艂 Jacek Bogusz, jacek.bogusz@ep.com.pl
64
Elektronika Praktyczna 10/2002
SPRZ臉T
Urz膮dzenie zbudowane
z najlepszych podzespo艂贸w
nie b臋dzie dzia艂a膰 poprawnie
i bezawaryjnie, je艣li podczas
produkcji nie zachowano
nale偶ytej dba艂o艣ci o jako艣膰
po艂膮cze艅. W sprz臋cie
elektronicznym kluczow膮 rol臋
pe艂ni膮 po艂膮czenia lutowane.
Z uwagi na wysoki stopie艅
miniaturyzacji element贸w,
wymagania techniczne dla
procesu lutowania s膮 obecnie
szczeg贸lnie ostre.
utowanie
czyli nie ma fraka bez nici
Przedstawiona miesi膮c temu rodzina stacji lutowniczych firmy PACE z linii ST zosta艂a niedawno uzupe艂niona o dwie nowe stacje: HWlOO i TW100 (fot. 1). Ich 艣wiatowa premiera mia艂a miejsce na mi臋dzynarodowych targach SMT, kt贸re odby艂y si臋 w Norymberdze w czerwcu tego roku. Wyr贸偶niaj膮 si臋 one oryginalnym, atrakcyjnym wzornictwem, jednak przede wszystkim oferuj膮 wi臋ksze mo偶liwo艣ci, g艂贸wnie w zakresie efektywno艣ci i ergonomii, osi膮gni臋te dzi臋ki zastosowaniu ko艅c贸wki o nowej konstrukcji. Grzejnik i grot zosta艂y zintegrowane w jednym, wymiennym elemencie r膮czki, co pozwoli艂o zmniejszy膰 odleg艂o艣膰 mi臋dzy nimi i znacznie poprawi膰 przep艂yw ciep艂a. Wskutek tego mo偶liwa jest bardzo szybka zmiana warto艣ci energii dostarczanej do punktu lutowniczego: temperatura grota niemal b艂yskawicznie dostosowuje si臋 do aktualnych potrzeb, zale偶nie m.in. od temperatury otoczenia, powierzchni punktu lutowniczego, rodzaju i obj臋to艣ci spoiwa. Proces lutowania mo偶e wi臋c przebiega膰 w ni偶szej -bezpieczniejszej temperaturze, a mimo to w kr贸tszym czasie.
Ko艅c贸wki mo偶na wymienia膰 nie wy艂膮czaj膮c zasilania. Ich budowa zapewnia niezawodne ustalenie pra-
wid艂owego po艂o偶enia i stabilne zamocowanie w korpusie. Wysok膮 jako艣膰 po艂膮cze艅 elektrycznych gwarantuj膮 z艂ocone styki i pier艣cie艅 uszczelniaj膮cy, chroni膮cy je przed szkodliwym oddzia艂ywaniem agre-
sywnych opar贸w. R膮czka zosta艂a zaprojektowana z uwzgl臋dnieniem wymog贸w ergonomii - w pracach brali udzia艂 in偶ynierowie specjalizuj膮cy si臋 w projektowaniu narz臋dzi chirurgicznych.
Obydwie stacje s膮 sterowane mikroprocesorem. R贸偶nice mi臋dzy innymi dotycz膮 sposobu nastawiania roboczych temperatur oraz mo偶liwo艣ci pro-
Fot.
Elektronika Praktyczna 10/2002
67
SPRZ臉T
przecie偶 obni偶a膰 jego koncentracja uwagi, pogarsza膰 dok艂adno艣膰 dzia艂ania i spada膰 wydajno艣膰 pracy.
Wyprowadzenia uk艂ad贸w PLCC i PQFP zajmuj膮 relatywnie du偶膮 przestrze艅 w stosunku do rastra, co stwarza problemy z dok艂adnym pozycjonowaniem, a tak偶e utrudnia za-
Fot. 2
gramowania. Wyboru parametr贸w pracy stacji HWlOO dokonuje si臋 przez umieszczenie w gnie藕dzie, znajduj膮cym si臋 na p艂ycie czo艂owej, odpowiedniego modu艂u (Power Module) o rozmiarach wtyku mini-jack. 艁atw膮 identyfikacj臋 modu艂贸w umo偶liwia barwny kod.
W stacji TWlOO mo偶na wprowadzi膰 偶膮dan膮 warto艣膰 temperatury roboczej, warto艣ci graniczne dopuszczalnego zakresu pracy, zaprogramowa膰 przej艣cie w stan czuwania i automatyczne wy艂膮czenie. Dokonane nastawy mo偶na zabezpieczy膰 has艂em. Wbudowany autokalibrator gwarantuje zwi臋kszenie dok艂adno艣ci i powtarzalno艣ci parametr贸w dla r贸偶nych ko艅c贸wek roboczych.
Producent podkre艣la, 偶e techniczne zalety nowych stacji lutowniczych znajduj膮 odzwierciedlenie w oszcz臋dno艣ci energii elektrycznej, trwa艂o艣ci ko艅c贸wek oraz tempie i jako艣ci pracy operator贸w.
Szybciej i dok艂adniej
W miar臋 zwi臋kszania stopnia z艂o偶ono艣ci czynno艣ci wykonywanych na stanowisku produkcyjnym czy serwisowym, a tak偶e d膮偶enia do skr贸cenia czasu przeznaczonego na przeprowadzenie sekwencji operacji, nieodzowne staje si臋 zwi臋kszenie uniwersalno艣ci urz膮dze艅 tak, by demonta偶 i monta偶 element贸w nie wymaga艂y dodatkowych czynno艣ci zwi膮zanych z wymian膮 r膮czek (np. odsysaj膮cej na lutownicz膮). Oznacza to, 偶e stacja lutownicza powinna mie膰 mo偶liwo艣膰 zasilania i sterowania wi臋ksz膮 liczb膮 r膮czek, a tak偶e narz臋dzi pomocniczych.
W ofercie PACE wymagania spe艂niaj膮 stacje MBT201 (dwukana艂o-wa), MBT250/MBT220 (trzykana艂o-we) oraz PRC2000 (wielokana艂owa -fot. 2). Ta ostatnia umo偶liwia niezale偶ne zasilanie, programowanie i kontrol臋 parametr贸w termicznych trzech r膮czek. Wyposa偶ona w trzy kompresory z regulacj膮 ci艣nienia pozwala np. na jednoczesne przy艂膮czenie zestawu narz臋dzi do monta偶u uk艂ad贸w SMD metod膮 nadmuchu gor膮cym powietrzem (lutowanie rozp艂ywowe, tzn. za pomoc膮 r膮czki z dysz膮 do nadmuchu), dozownika pasty lutowniczej oraz pneumatycznej pesety, u艂atwiaj膮cej przenoszenie elementu i pozycjonowanie go na p艂ytce.
Zwi臋kszenie szybko艣ci monta偶u, szczeg贸lnie uk艂ad贸w SMD i element贸w typu EGA, nie powinno powodowa膰 uzale偶nienia jako艣ci procesu lutowania od sprawno艣ci operatora. W warunkach przemys艂owych, po kilku godzinach pracy, mo偶e si臋
pewnienie prawid艂owego przebiegu procesu termicznego w ka偶dym punkcie lutowniczym. W przypadku element贸w EGA sytuacj臋 pogarsza fakt, 偶e ich wyprowadzenia s膮 umieszczone pod obudow膮: niemo偶liwa jest bezpo艣rednia kontrola wzrokowa przebiegu procesu rozgrzewania i roztapiania spoiwa. Gor膮ce powietrze musi jednak by膰 wdmuchiwane pod element tak, by w ka偶dym z punkt贸w (w zadanym przedziale czasu) osi膮gn膮膰 偶膮dan膮 temperatur臋, bez przemieszczenia si臋 elementu, przekraczania dopuszczalnych napr臋偶e艅 w materia艂ach p艂ytki i obudowy uk艂adu i wreszcie bez przegrzania.
Potrzebne jest zatem zachowanie du偶ej precyzji, tak w u艂o偶eniu przestrzennym elementu, jak i w odniesieniu do przebiegu procesu termicznego. Dok艂adne pozycjonowanie wi膮偶e si臋 z zastosowaniem statywu i systemu kontroli po艂o偶enia elementu na p艂ytce, a tak偶e kontroli po艂o偶enia ko艅c贸wki roboczej (g艂owicy)
Fot. 3
68
Elektronika Praktyczna 10/2002
SPRZ臉T
Fot. 4
wzgl臋dem montowanego uk艂adu. Samo lutowanie powinno przebiega膰 automatycznie i uwzgl臋dnia膰 cechy konkretnego elementu. Cztery fazy wyr贸偶nione w tym procesie: podgrzewanie, nagrzewanie, grzanie w艂a艣ciwe oraz wystudzanie r贸偶ni膮 si臋 czasem trwania, zakresem zmian temperatury i ilo艣ci膮 wydmuchiwanego powietrza. Parametry te musz膮 by膰 w艂a艣ciwie dobrane i wprowadzone do pami臋ci urz膮dzenia, jako tzw. profil. Opisanym wymaganiom odpowiadaj膮 systemy PACE ThermoFlo:
- TF200, sk艂adaj膮cy si臋 z jednostki zasilaj膮co-steruj膮cej oraz r膮czki, pozwalaj膮cej na u偶ycie jednej z 72 g艂owic do monta偶u albo demonta偶u. Szybka wymiana gor膮cych g艂owic w czasie pracy to typowa mo偶liwo艣膰 w stacjach PACE.
- TF700, uzupe艂niony o zestaw do wst臋pnego podgrzewania p艂ytki przed monta偶em oraz statyw z uchwytem do mocowania p艂ytek o wymiarach do 46 x 51 cm.
- TF2000 (fot. 3), najbardziej zaawansowany, sterowany komputerowo system zapewniaj膮cy m.in. pozycjonowanie z dok艂adno艣ci膮 do 2 5 urn, a tak偶e zobrazowanie przebiegu procesu w postaci wykresu na ekranie monitora.
Otoczenie
Chocia偶 o wydajno艣ci i jako艣ci monta偶u uk艂ad贸w elektronicznych decyduj膮 g艂贸wnie parametry u偶ytych stacji czy system贸w lutowniczych oraz kwalifikacje obs艂uguj膮cych je operator贸w, nie wolno zapomina膰, 偶e wa偶n膮 rol臋 pe艂ni膮 tak偶e: rodzaj i jako艣膰 spoiwa oraz topnik贸w, spos贸b kontroli pozycjonowania, organizacja stanowiska pracy i jego ergonomia (o艣wietlenie, w艂a艣ciwa pozycja operatora, komfort termiczny), jako艣膰 narz臋dzi pomocniczych (jak pesety, szczypce, obcinaczki, podajniki drutu cynowego), preparat贸w i narz臋dzi czyszcz膮cych.
Niezale偶nie od wymaga艅 dotycz膮cych efektywno艣ci, stanowisko pracy powinno by膰 zabezpieczone an-tystatycznie. Odpowiednich akcesori贸w ochronnych (obuwie, fartuchy, opaski do odprowadzania 艂adunk贸w) musi tak偶e u偶ywa膰 obs艂uga.
Wa偶ne jest r贸wnie偶 zapewnienie ochrony pracownikom przed szkodliwym oddzia艂ywaniem substancji znajduj膮cych si臋 w dymach i oparach powstaj膮cych w trakcie lutowania. Jest ona zapewniana przez urz膮dzenia poch艂aniaj膮co-filtruj膮ce.
PACE oferuje szeroki wyb贸r system贸w poch艂aniaj膮cych ARM-EVAC, obs艂uguj膮cych od jednego do szesnastu stanowisk. S膮 to zar贸wno urz膮dzenia stosunkowo proste i lekkie (mo偶liwo艣膰 przenoszenia), jak i rozbudowane i zaawansowane technicznie (sterowanie mikroprocesorowe z ci膮g艂ym monitoringiem parametr贸w). Du偶a liczba dost臋pnych wysi臋gnik贸w i g艂owic pozwala na osi膮gni臋cie maksymalnej skuteczno艣ci dzia艂ania na dowolnie zestawionym i skonfigurowanym przestrzennie stanowisku.
Opisane dot膮d urz膮dzenia i systemy charakteryzuj膮 si臋 uniwersalno艣ci膮 (mog膮 s艂u偶y膰 do monta偶u i demonta偶u) i elastyczno艣ci膮 (szybkie "przezbrajanie") dzia艂ania. Mog膮 by膰 stosowane w ma艂ych i wielkich serwisach, o艣rodkach badawczo-rozwojowych czy zak艂adach produkcyjnych. Kiedy jednak wymagane wydajno艣ci osi膮gaj膮 poziom kilku tysi臋cy montowanych element贸w na godzin臋, zachodzi konieczno艣膰 zastosowania technologii monta偶u, w kt贸rej wszystkie stanowiska s艂u偶膮ce do przygotowania element贸w i p艂ytek, u艂o偶enia element贸w na p艂ytkach i do samego lutowania s膮 specjalizowanymi, sterowanymi numerycznie automatami.
Bez pr膮du
Planuj膮c przedsi臋wzi臋cie zwi膮zane z produkcj膮 czy serwisem urz膮dze艅 elektronicznych, zwykle jako oczywiste przyjmuje si臋 korzystanie z energii elektrycznej, a jej brak jest traktowany jako powa偶na awaria.
S膮 jednak sytuacje, gdy z g贸ry wiadomo, 偶e trzeba b臋dzie dzia艂a膰 bez mo偶liwo艣ci zasilania przyrz膮d贸w i narz臋dzi z sieci elektroenergetycznej. W przypadku lutowania dobrym rozwi膮zaniem tego szczeg贸lnego problemu jest u偶ycie lutownicy gazowej, zapewniaj膮cej uzyskanie wystarczaj膮cych mocy przez dostatecznie d艂ugi czas. Ma艂a masa i brak przewodu zasilaj膮cego pozwalaj膮 na wygodne pos艂ugiwanie si臋 ni膮 w trudnych warunkach przestrzennych (s艂aby dost臋p do element贸w, wymuszona, niewygodna pozycja pracy).
Przyk艂adem takiego przyrz膮du jest lutownica Super-Pro (fot. 4) firmy Portasol, przeznaczona do standardowych i precyzyjnych prac. Jedena艣cie roboczych ko艅c贸wek (groty o r贸偶nych kszta艂tach i wymiarach, dysza do wydmuchu gor膮cego powietrza, gor膮cy n贸偶, os艂ona do ob-kurczania koszulek termokurczliwych) umo偶liwia lutowanie, a tak偶e obr贸bk臋 izolacji przewod贸w i kabli. Super-Pro mo偶e te偶 pe艂ni膰 funkcj臋 palnika. Jej moc maksymalna wynosi 125W. Temperatura jest regulowana - jej warto艣膰 dochodzi do 580癈 dla grota i 650癈 dla wydmuchiwanego powietrza. Temperatur臋 350癈 grot osi膮ga w 20 sekund. Zbiornik gazu (stosowany jest tu gaz do zapalniczek) znajduje si臋 w r臋koje艣ci. Mo偶e on by膰 wielokrotnie nape艂niany - jego pojemno艣膰 zapewnia 艣rednio 2 godziny pracy. Kompletna lutownica ma 2 3 cm d艂ugo艣ci i wa偶y zaledwie 165g.
Dost臋pna jest te偶 lutownica Posta-sol Hobby o skromniejszych mo偶liwo艣ciach, jednak nieoceniona jako "polowe" narz臋dzie serwisowe, np. dla modelarzy lotniczych lub szkutniczych RC.
Rozpi臋to艣膰 oferty rynkowej w dziedzinie urz膮dze艅 do monta偶u uk艂ad贸w elektronicznych jest dostosowana do potrzeb i wymaga艅 r贸偶nych u偶ytkownik贸w i pozwala na dokonanie optymalnego doboru wyposa偶enia ka偶dego konkretnego stanowiska pracy. Marek Kalasi艅ski
Dodatkowe informacje
Wi臋cej informacji mo偶na uzyska膰 w firmie Renex, tel. (54) 411 -25-55, www.renex.com.pl.
70
Elektronika Praktyczna 10/2002
SPRZ臉T
Zestaw narz臋dzi dla u偶ytkownik贸w mikrokontrolerow XE8000
W artykule na str. 51 przedstawili艣my rodzin臋 nowych mikrokontrolerow produkowanych przez szwajcarsk膮 firm臋 Xemics. Ich parametry eksploatacyjne - przede wszystkim bardzo ma艂y pob贸r pr膮du i mo偶liwo艣膰 zasilania z pojedynczej baterii litowej -powinny zainteresowa膰 wielu konstruktor贸w. Opisy mikrokontrolerow jakie mo偶na znale藕膰 w pedeefowych dokumentach nie zawsze w pe艂ni je ch arakteryzuj 膮. Lepiej jest je po prostu " dotkn膮膰".
Prezentujemy starter kit, jaki firma Xemics opracowa艂a w celu promocji swoich nowych produkt贸w. N asy w a si臋 on XESOOO ProsSiari i s艂u偶y do uruchamiania prostych aplikacji dla mikrokontrolerow XE88LC011vf,
XE88LC031vI i XE88LC05lvf. Jak pami臋tamy, w sk艂ad rodziny XE8000 wchodz膮 ponadto uk艂ady XE88LC02, XE88LC04, XE88LC06 i XE88LC08. ProsStart zawiera p艂ytk臋 pr贸bn膮 z podstawk膮 dla mikro kontrolera, p艂ytk臋 programatora umo偶liwiaj膮cego programowanie wewn臋trznej pami臋ci Flash mikrokontrolera poprzez interfejs RS232 oraz dwa CD-ROM-y s dokumentacj膮 techniczn膮 mikrokontrolerow oras z oprogramowaniem CoolRIDE.
P艂ytka ewaluacyjna
Na p艂ytce ewaluacyjnej nie widzimy zbyt wielu element贸w. Wszystkie mik-rokontrolery Xemicsa s膮 wykonywane wy艂膮cznie w wersjach do monta偶u powierzchniowego. G艂贸wnym elementem jest wi臋c, niezbyt cz臋sto spotykana,
specjalna podstawka pod uk艂ady wykonane w obudowie LQFP64. Podstawka to nie jest w艂a艣ciwe okre艣lenie. W plastikowym korpusie zamontowano precyzyjnie u艂o偶one, poz艂acane, lekko spr臋偶ynuj膮ce styki, na kt贸rych umieszczany jest uk艂ad scalony. O dok艂adno艣ci wykonania 艣wiadczy przyj臋ty dla wyprowadze艅 raster 0,5 mm. Uk艂ad jest dociskany do styk贸w przykrywk膮 z zatrzaskami gwarantuj膮cymi pewno艣膰 kontaktu. Niestety, mimo powszechnie stosowanego 艣ci臋cia kraw臋dzi obud贸w takich jak TQFP czy LQFP, nie przewidziano 偶adnej blokady mechanicznej zabezpieczaj膮cej przed nieprawid艂owym zorientowaniem uk艂adu w podstawce. Jedynie w miejscu, w kt贸rym powinien znale藕膰 si臋 艣ci臋ty r贸g obudowy uk艂adu, umieszczono czerwony punkt. Wk艂adanie mikrokontrolera do podstawki musi wi臋c by膰 wykonywane bardzo uwa偶nie. Jego nieprawid艂o-
we zorientowanie mo偶e zako艅czy膰 si臋 zniszczeniem uk艂adu. Jak ju偶 wiemy, mikrokontrolery XE8000 nie s膮 zbyt wymagaj膮ce pod wzgl臋dem napi臋cia zasilaj膮cego. Cecha ta mo偶e by膰 w 艂atwy spos贸b zweryfikowana za pomoc膮 p艂ytki ewaluacyjnej. Znajduje si臋 na niej gniazdo do umieszczenia baterii litowej w obudowie pastylkowej o 艣rednicy do 15 mm. Pateria mo偶e by膰 od艂膮czona za pomoc膮 specjalnego prze艂膮cznika. W贸wczas zasilanie jest pobierane z p艂ytki programatora. Je艣li jednak tego nie zrobimy, to w przypadku wyst臋powania napi臋cia na 艂膮cz贸wce p艂ytki pr贸bnej z p艂ytk膮 programatora, bateria zostanie od艂膮czona automatycznie. Mi kro kontroler mo偶e by膰 zerowany r臋cznie przyciskiem, chocia偶 odpowiednie elementy zapewniaj膮 poprawny start procesora po w艂膮czeniu zasilania. Do komunikacji z operatorem s艂u偶膮 diody 艣wiec膮ce sterowane z por-
Elektronika Praktyczna 10/2002
71
SPRZ臉T
H r* e-h 艢**- i-w 1*1
xJEJiJ
data ; AT 旿
_adat* * . E
> data_r

" tka tjnl _ah艂* = - r I
* 1 -^

Rys. 1
tu PB oras rnikroprsyciski do艂膮czone do portu PA. Je艣li nie przewidujemy ich wykorzystania, mog膮 by膰 od艂膮czone poprzez wyj臋cie jumper贸w. Wszystkie wyprowadzenia mikrokontrolera s膮 do艂膮czone do z艂膮cza szpilkowego umieszczonego na kraw臋dzi p艂ytki. Tu艣 przy podstawce znajduje si臋 rezonator kwarcowy 32768 Hz, kt贸ry mo艣e by膰 od艂膮czany za pomoc膮 jumpera. Mi kro kontroler , .przechodzi" w贸wczas na prac臋 z wewn臋trznym oscylatorem RC. W sk艂ad zestawu uruchomieniowego wchodz膮 3 mikrokontrolery XE8SLC05M. Wszystkie maj膮 zapisany w pami臋ci program zapalaj膮cy kolejno diody 艣wiec膮ce umieszczone na p艂ytce pr贸bnej. Wykorzystanie samej p艂ytki do innych cel贸w ni艣 demonstracja wspomnianych efekt贸w jest do艣膰 uci膮偶liwe, gdy艣 nie przewidziano na niej nawet centymetra kwadratowego uniwersalnego pola monta偶owego. Uk艂ady w艂asne, kt贸rych dzia艂anie chcieliby艣my sprawdzi膰, musz膮 by膰 wi臋c zmontowane na zewn膮trz. Po艂膮czenia z mikrokontrolerem na p艂ytce starter kitu trzeba wykona膰 dodatkowym kablem, kt贸rego nie ma w zestawie. Mo艣na te艣 umie艣ci膰 w swoim uk艂adzie tak膮 podstawk臋, jaka jest na p艂ytce pr贸bnej zestawu uruchomieniowego. Tylko sk膮d j膮 wzi膮膰? Ca艂y zestaw ewaluacyjny s艂u偶y艂by w takim przypadku jedynie jako programator, a mikrokontroler by艂by przenoszony z p艂ytki na p艂ytk臋 - to do艣膰 m臋cz膮ce. Inne rozwi膮zanie to umieszczenie na w艂asnej p艂ytce specjalnej 艂膮cz贸wki, kt贸ra s艂u偶y艂aby do 艂膮czenia jej z p艂ytk膮 programatora ze starter kitu.
P艂ytka programatora
Typowa konfiguracja zestawu uruchomieniowego, przewidziana przez producenta, to p艂ytka pr贸bna po艂膮czona z p艂ytk膮 programatora ffot. 1). Prze-
Rys. 2
widziano do tego celu gniazda DSUB 25. Na p艂ytce programatora umieszczono zasilacz zapewniaj膮cy napi臋cia wymagane podczas programowania mikrokontrolera, a tak偶e podczas pracy w trybie z zasilaniem zewn臋trznym fnie z baterii). Aby m贸g艂 on prawid艂owo dzia艂a膰, niezb臋dne jest doprowadzenie do specjalnego gniazda napi臋cia 13...15 V (mo偶e by膰 niestabi-lizowane). Programowanie uk艂adu odbywa si臋 z komputera PC poprzez interfejs RS232. Na p艂ytce programatora znajduj膮 si臋 dwa gniazda umo偶liwiaj膮ce do艂膮czenie komputera. Jedno z nich jest wykorzystywane wy艂膮cznie przez programator, drugie za艣 s艂u偶y do transmisji mi臋dzy mikrokontrolerem a komputerem z uruchamianym programem. W instrukcji zwraca si臋 uwag臋 na to, 偶e kabel po艂膮czeniowy nie mo偶e by膰 typu null modem.
Wr贸膰my do mo偶liwych konfiguracji uruchamianego uk艂adu. Wspomina艂em o mo偶liwo艣ci 艂膮czenia w艂asnej p艂ytki z p艂ytk膮 programatora w celu zaprogramowania mikrokontrolera we w艂asnym uk艂adzie. Do tego celu nie jest stosowany typowy interfejs ISP. Uk艂ady rodziny XE8000 wymagaj膮 na wybranych wyprowadzeniach odpowiednich sygna艂贸w i napi臋膰, a tak偶e do艂膮czenia rezystor贸w podci膮gaj膮cych i kondensator贸w blokuj膮cych. To wszystko jest do艣膰 znacznym utrudnieniem dla operatora, o tyle niezrozumia艂ym, 偶e przecie偶 znane s膮 rozwi膮zania, w kt贸rych wystarczy np. chwilowe zaj臋cie portu szeregowego podczas programowania.
CoolRIDE
CoolRIDE to pakiet narz臋dzi programowych zawieraj膮cy: profiler i mened偶er projektu, asembler, kompilator j臋zyka C, linker, symulator, pomoc on-line oraz debuger mog膮cy wy艣wietla膰 instrukcje j臋zyka C. Wszystkie progra-
my s膮 zintegrowane w jednym pakiecie, z typowym dla Windows interfejsem graficznym. G艂贸wne okno programu przedstawiono na rys. 1.
CoolRIDE umo偶liwia utworzenie w艂asnego projektu, w sk艂ad kt贸rego b臋d膮 wchodzi膰 wszystkie niezb臋dne pliki przygotowanego oprogramowania. Zastosowane rozwi膮zania s膮 podobne do stosowanych w wielu innych programach tego rodzaju. Dzi臋ki CoolRIDE programista mo偶e w spos贸b uporz膮dkowany tworzy膰 i archiwizowa膰 swoje ,,dzie艂o". Prac臋 trzeba rozpocz膮膰 od skonfigurowania 艣rodowiska. Najwa偶niejsze to podanie w menu Tools, z kt贸rym portem szeregowym b臋dzie wsp贸艂pracowa膰 zestaw uruchomieniowy i jakie b臋dzie napi臋cie zasilaj膮ce mikrokontroler. Tworzenie nowego projektu jest u艂atwione dzi臋ki wbudowanemu wizardowi, prowadz膮cemu u偶ytkownika ,,za r臋k臋".
Na wst臋pie nale偶y poda膰, na jak膮 wersj臋 mikrokontrolera b臋dzie pisany program. Po pod艣wietleniu odpowiedniej pozycji na li艣cie rozwijanej, w okienku poni偶ej jest przedstawiana kr贸tka charakterystyka wybranego typu (rys. 2). Po przebrni臋ciu przez wszystkie podpowiedzi kreatora projektu mo偶na rozpocz膮膰 pisanie programu. Mamy do wyboru tworzenie plik贸w cia艂a programu w j臋zyku C, plik贸w nag艂贸wkowych C (C header files), program贸w 藕r贸d艂owych w asemblerze (ich domy艣lne rozszerzenie to.s) i plik贸w do艂膮czanych (include files). Mo偶na te偶 dokumentowa膰 projekt w plikach tekstowych. Dobrym zwyczajem, pozwalaj膮cym na 艂atwiejsze panowanie nad projektem, jest dzielenie programu na modu艂y. Modu艂y mog膮 by膰 ponadto wykorzystywane wielokrotnie w innych projektach. Zako艅czenie przygotowania programu polega na skompletowaniu poszczeg贸lnych jego sk艂adnik贸w i po-
72
Elektronika Praktyczna 10/2002
SPRZ臉T
Rys. 3
艂膮czeniu w ca艂o艣膰. Wszystkie modu艂y przed linkowaniem musz膮 by膰 wyczyszczone z b艂臋d贸w. Ewentualne nieprawid艂owo艣ci s膮 wykrywane na etapie kompilacji. Kompilacja wszystkich modu艂贸w, szczeg贸lnie w przypadku rozbudowanych projekt贸w, mo偶e zajmowa膰 sporo czasu. Aby niepotrzebnie go nie wyd艂u偶a膰, usuwanie b艂臋d贸w najlepiej jest przeprowadza膰 na kolejnych modu艂ach programu, wykorzystuj膮c komend臋 Build Single File. Dopiero na ko艅cu wykonujemy polecenie Incre-rnental Build, powoduj膮ce zlinkowanie wszystkich modu艂贸w w jeden pakiet. Kompilator bezlito艣nie wskazuje nam miejsca programu, w kt贸rych wyst臋puj膮 b艂臋dy formalne, a kt贸rych wcze艣niej nie zauwa偶yli艣my. Wprawny programista du偶膮 ich cz臋艣膰 mo偶e dostrzec ju偶 podczas pisania programu, ale zamienienie np. 艣rednika z dwukropkiem nie zawsze jest 艂atwe do wychwycenia. Znacznie gorzej jest z wykryciem b艂臋d贸w logicznych. Tych niestety nie wida膰, a ujawniaj膮 si臋 dopiero podczas dzia艂ania programu. To powszechnie nazywane ,,pluskwy" (bugs). Program trzeba wi臋c oczy艣ci膰 z tych nieprzyjemnych, a czasami wr臋cz wrednych robaczk贸w. S艂u偶y do tego, jak sama nazwa wskazuje, debuger. Uruchamiamy go, naciskaj膮c na przycisk Sta艅 Debug-ger lub klawisz F5. Jednak wcze艣niej program musi by膰 prawid艂owo zlinko-wany. Okno debugera jest podzielone na pi臋膰 cz臋艣ci (rys. 3). Widzimy struktur臋 projektu (w艂a艣ciwie w tym momencie informacja ta jest ma艂o przydatna, mo偶na wi臋c okno to zamkn膮膰), okno z fragmentem uruchamianego programu, okno wynik贸w programu i okno komunikat贸w debugera. Z menu View mo偶na ponadto doda膰 szereg innych informacji, przy czym czytelne ich rozmieszczenie na ekranie jest nie lada sztuk膮. CoolRIDE ma pod tym wzgl臋dem pewn膮 niedogodno艣膰. Komunikaty w oknie debugera i oknach zasob贸w procesora s膮 wy艣wietlane tak ma艂膮 czcionk膮, 偶e
nawet na monitorze 17-calowym pracuj膮cym z rozdzielczo艣ci膮 800x600 by艂y bardzo nieczytelne i nie uda艂o mi si臋 tego zmieni膰.
Rozmiary artyku艂u nie pozwalaj膮 na om贸wienie szczeg贸艂贸w programu CoolRIDE. Jest to o tyle ma艂o istotne, 艣e dzia艂a on jak wiele mu podobnych. Istotne jest to, 艣e mo艣na w nim wykonywa膰 pojedyncze instruk-橪 "-~ cje procesora zar贸wno na poziomie j臋zyka C, jak i rozkaz贸w asemblero-wych. Mo偶emy podgl膮da膰 i zmienia膰 zawarto艣膰 rejestr贸w, pami臋ci, 艣ledzi膰 wykonywanie programu w trybie ci膮g艂ym, ewentualnie z ustawionymi pu艂apkami. Wszystkie lub wybrane zmienne programu s膮 uwidocznione w oknie Waiches, w kt贸rym mo艣na r贸wnie艣 zmienia膰 ich warto艣膰.
No co艣, program mo艣na debugowa膰 w niesko艅czono艣膰. Jak wiadomo, nie ma programu bez b艂臋d贸w. W kt贸rym艣 momencie trzeba jednak podj膮膰 m臋sk膮 decyzj臋 i uzna膰, 艣e pozosta艂e uchybienia s膮 do zaakceptowania. Prac臋 nad projektem ko艅czymy zapisuj膮c ostateczn膮 wersj臋 programu do pami臋ci mikrokontrolera. Odpowiednie polecenie znajduje si臋 w menu Tools->Siar-ier KU. Trzeba jeszcze okre艣li膰 typ mikrokontrolera, warto艣膰 napi臋cia zasilaj膮cego, wskaza膰 plik binarny, kt贸ry b臋dzie zapisany w pami臋ci Flash i nacisn膮膰 klawisz Upload software. Programowanie uk艂adu trwa zaskakuj膮co d艂ugo. Warto wi臋c ,,przy艂o艣y膰 si臋" do uruchamiania programu "na sucho", podczas symulacji.
Mikrokontrolery XE8000 to nowo艣膰 na rynku zdominowanym przez innych ,,wielkich" producent贸w. W tej dziedzinie jest niezwykle trudno przej膮膰 klient贸w. Maj膮 oni swoje narz臋dzia, przyzwyczajenia, w艂asne biblioteki tworzone cz臋sto latami.
Zach臋t膮 do zainteresowania si臋 艣wie-艣ymi produktami jest zaproponowanie nowej jako艣ci. Rodzina XE8000 z pewno艣ci膮 mo艣e zwr贸ci膰 na siebie uwag臋. Ma szans臋 wype艂nienia pewnych nisz rynku elektronicznego. Jaros艂aw Doli艅ski, AVT jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Zestaw prezentowany w artykule udost臋pni艂a redakcji firrna JM elektronik, Tel. (32) 339-69-01, www.jrn.pl.
Dodatkowe informacje mo偶na znale藕膰 na stronie producenta: http://www.xemics.com.
74
Elektronika Praktyczna 10/2002
PODZESPO艁Y
Telekomuni
Firma Winbond, rozwijaj膮c intensywnie mikrokontrolery z rodziny '51 z pami臋ci膮 Flash, wprowadza na rynek nowe uk艂ady specjalizowane wyposa偶one w jednostk臋 steruj膮c膮 8051. Kolejnym przedstawicielem tej licznej rodziny uk艂ad贸w jest mikrokontroler CID (Calling Identity Delivery) W925EI C240, w kt贸rym opr贸cz mikroprocesora 8051 u偶ytkownik znajdzie dodatkowe peryferie u艂atwiaj膮ce wykorzystanie tego produktu w aplikacjach identyfikacji numeru dzwoni膮cego telefonu oraz serwis贸w tekstowych zwi膮zanych z telefoni膮 stacjonarn膮.
Nowy mikrokontroler firmy Winbond
Pami臋膰 programu mikrokontrolera W925E/C240 o pojemno艣ci 256 kB sk艂ada si臋 z czterech bank贸w po 64 kB ka偶dy (rys. 1). Pierwsze dwa banki pami臋ci mog膮 zawiera膰 kod programu lub tablice danych. Ostatnie dwa banki pami臋ci mog膮 zawiera膰 tylko tablice z danymi. Poniewa偶 mikroprocesor 8051 mo偶e adresowa膰 maksymalnie 64 kB (16-bitowa magistrala adresowa), zmiana aktywnego bloku pami臋ci programu (bank 0 lub bank 1) nast臋puje poprzez ustawienie lub zerowanie bitu PG znajduj膮cego si臋 w obszarze rejestr贸w specjalnych. Instrukcja MOVC, powoduj膮ca odczytywanie danych z tablic zapisanych w pami臋ci kodu, jest kierowana do jednego z czterech bank贸w pami臋ci ROM poprzez odpowiednie ustawienie bit贸w kontrolnych LT1 i LTO. Uk艂ad W925E/ C240 posiada 8 kB pami臋ci RAM adresowanej instrukcj膮 MOVX (XDATA). Dodatkowo dost臋pny jest r贸wnie偶 blok 256 B adresowany bezpo艣rednio lub po艣rednio (DA-TA/IDATA), tak jak w standardowym mikrokontrolerze 8052.
OFFFFH 10000H
1FFFFH 20000H
2FFFFH JOOOOH
64 kB PogeO
00H 1FFFH
I DATA RAM 3FWS
DMMEHm RAM

ahBMMTA RAM
Do kontroli i monitorowania stanu wszystkich wbudowanych uk艂ad贸w peryferyjnych (CID), mikrokontroler
wykorzystuje zestaw rejestr贸w specjalnych (SFR) adresowanych bezpo艣rednio w obszarze 80h...FFh.
Rys. I
Podstawowe cechy mi kro kontrole r贸w W925E/C240:
W92SE/C240, QFP 100
Rdze艅 8051
64 kB
ROM FLASH
64 kB
ROM FLASH
64 kB
ROM FLASH
64 kB
ROM FLASH
BkR 256B
a 艢" DATA
XDATA /IDATA
RAM RAM
WATCHDOG
SERIAL
PORT
40I/O
DTMF FSK CAS DUAL
RECEIVER RECEIVER TON臉
TRANSMITTER TRANSMITTER DETECTOR
- rdze艅 8-bitowy 8051 z rodziny TURBO-51 z czterotaktowym cyklem maszynowym,
- napi臋cie zasilaj膮ce: 2,2...5,5 V,
- oscylator g艂贸wny: 3,58 MHz oraz wbudowany oscylatorRC (2...4 MHz),
- oscylator pomocniczy: 32768 Hz,
- pami臋膰 ROM: 256 kB Flash/Mask, w tym dwa bloki po 64 kB przeznaczone na kod programu oraz dwa bloki po 64 kB przeznaczone na przechowywanie tablic danych,
- pami臋膰 RAM: 256 B jak w standardowym mikrokontrolerze 8052 oraz 8 kB wbudowanej pami臋ci umieszczonej w przestrzeni adresowej XDATA, aktywowanej programowo,
- porty we/wy: 40 linii we/wy w pi臋ciu portach: PO, P1, P2, P3, P4,
- dwa16-bitowetimery,
- programowalny watchdog,
- dzielnik sygna艂u oscylatora pomocniczego 13- lub 14-bitowy,
- analogowy komparator napi臋cia,
- programowany generator ton贸w wsp贸艂pracuj膮cy z oscylatorem pomocniczym (np. 440 Hz),
- 8-bitowy uproszczony synchroniczny port szeregowy (SCLK, SDATA).
Charakterystyka bloku CID:
- spe艂nione wymagania norm: Bellcore TR-NWT-000030, SR-TSV-002476, British Telecom (BT) SIN227, U.K. Cable Communication Association (CCA),
- modulator oraz demodulator FSK 1200 bod贸w, Bell 202, ITU-T V.23,
- detektor sygna艂贸w CAS {CPEAiertSignal),
- odbiornik oraz generator sygna艂贸w DTMF, w kt贸rym odbiornik mo偶e by膰 r贸wnie偶 pr贸g ramowany jako detektor pojedynczych ton贸w,
- detektor sygna艂u dzwonienia {Ring detector), BT, CCA, Bellcore,
- wbudowane dwa niezale偶ne wzmacniacze operacyjne z regulowanym wzmocnieniem przeznaczone dla uk艂adu sprz臋gaj膮cego mikrokontroler z lini膮 telefoniczn膮 (uk艂ad antylokalny).
76
Elektronika Praktyczna 10/2002
PODZESPO艁Y
Rys. 2
Ograniczenie energii zu偶ywanej przez uk艂ad umo偶liwiaj膮 dwa tryby oszcz臋dzania: Idle - u艣pienia oraz Power Down - zatrzymania. Wyj艣cie z obydwu tryb贸w mo偶liwe jest poprzez przerwanie, zerowanie lub detekcj臋 sygna艂u dzwonienia.
Mikrokontroler W925E/C240 jest wyposa偶ony w programowany timer watchdog, kt贸ry mo偶e s艂u偶y膰 jako generator podstawy czasu ze zg艂aszaniem przerwa艅, licznik d艂ugo-czasowy lub monitor nadzoruj膮cy system.
Uk艂ad komparatora analogowego przedstawiono na rys. 2. Wej艣cie odwracaj膮ce VNEG dost臋pne jest na ko艅c贸wce portu P4.2. Wej艣cie nie-odwracaj膮ce komparatora VPOS mo偶e by膰 programowo prze艂膮czane mi臋dzy ko艅c贸wk膮 P4.4 lub wewn臋trznym programowanym 藕r贸d艂em napi臋cia odniesienia. Zakres regulacji napi臋cia odniesienia mie艣ci si臋 w przedziale od 0,72 V do 1,48 V i jest ustawiany czterobitowym s艂owem umieszczonym w rejestrze specjalnym REGVC.
Wbudowany generator sygna艂贸w DTMF wymaga (do poprawnej pracy) stosowania w oscylatorze g艂贸wnym rezonatora kwarcowego o cz臋stotliwo艣ci 3,58 MHz. Sygna艂y wybierania tonowego wyprowadzone s膮 na wyprowadzenie DTMF. Gdy generator DTMF jest nieaktywny, wyprowadzenie to przechodzi w stan wysokiej impedancji. Poszczeg贸lne pary warto艣ci cz臋stotliwo艣ci s膮 wybierane poprzez wpisy do rejestru DTMFG.
Nadawanie i odbi贸r wiadomo艣ci tekstowych umo偶liwia wbudowany transceiver FSK. Generowany sygna艂 FSK [Fre膮uency Shift Keying) umo偶liwia przesy艂anie danych z pr臋dko艣ci膮 1200 bod贸w i spe艂nia wymagania specyfikacji ITU-T V.23 oraz Bellcore 2 02. Odbi贸r sygna艂贸w FSK realizowany jest w module CID.
Mikrokontroler W925E/C240 wyposa偶ony jest w modu艂 CID wspomagaj膮cy funkcje identyfikacji sygna艂u dzwoni膮cego typ I i II. W trybie on-hook (gdy s艂uchawka jest
Rys. 3
od艂o偶ona) mo偶liwy jest odbi贸r komunikatu tekstowego z informacj膮 o numerze dzwoni膮cego telefonu oraz ton贸w alarmowych CAS. W trybie off-hook (w trakcie trwania rozmowy telefonicznej) mo偶liwy jest odbi贸r komunikat贸w tekstowych z informacj膮 o po艂膮czeniach oczekuj膮cych oraz detekcja ton贸w alarmowych CAS. Modu艂 CID mik-rokontrolera W925E/C240 wsp贸艂tworz膮 nast臋puj膮ce bloki uk艂adowe:
- dekoder FSK - detekcja z pary sygna艂贸w Tip/Ring,
- odbiornik DTMF - detekcja z pary Tip/Ring sygna艂贸w DTMF lub CAS,
- detektor sygna艂u dzwonienia - detekcja z pary sygna艂贸w Tip/Ring,
- dodatkowy detektor ton贸w sygna艂贸w CAS - Customer Premises E膮uipment Alerting Signals (2130Hz/2750Hz) - detekcja ton贸w z wyj艣cia uk艂adu antylokal-nego telefonu.
Winbond
Electronics Corp.
Schemat blokowy modu艂u CID przedstawiono na rys. 3. Odbiornik DTMF mo偶e by膰 konfigurowany do odbioru sygna艂贸w 16 kod贸w DTMF lub do odbioru dwutonowych sygna艂贸w alarmowych CAS (213 0 Hz/ 2750 Hz). Odbiornik wyposa偶ony jest w uk艂ady czasowe ustalaj膮ce minimalny czas trwania sygna艂贸w uwa偶anych za poprawne.
W trybie off-hook (s艂uchawka podniesiona - typ II) detekcja sygna艂贸w CAS mo偶e by膰 zak艂贸cona przez interferencj臋 sygna艂u g艂osu osoby prowadz膮cej rozmow臋 z aparatu telefonicznego. W takim przypadku wi臋ksz膮 pewno艣膰 detekcji ton贸w CAS daje odbi贸r nie bezpo艣rednio z linii telefonicznej Tip! Ring, ale z wyj艣cia uk艂adu antylo-kalnego. Do tego celu przeznaczony jest dodatkowy detektor ton贸w CAS z oddzielnym wzmacniaczem wej艣ciowym o architekturze podobnej do odbiornika DTMF, ale pod艂膮czany do wyj艣cia g艂o艣nikowego uk艂adu antylokalnego. Wej艣cia analogowe uk艂adu CID wyposa偶one s膮 w uk艂ady cyfrowej regulacji czu艂o艣ci i histerezy.
Sze艣膰 rejestr贸w mikrokontrolera pozwala na ustawianie czu艂o艣ci i histerezy tor贸w analogowych odbiornika DTMF, odbiornika FSK oraz detektora ton贸w alarmowych.
Ostatnim elementem bloku CID jest detektor sygna艂u dzwonienia z prostym filtrowaniem RC, pozwalaj膮cym na wytworzenie sygna艂u prostok膮tnego o wsp贸艂czynniku wype艂nienia pokrywaj膮cym sygna艂 dzwonienia. Mariusz 艁acina, Marthel
Dodatkowe informacje
Dodatkowe informacje o mikrokontrolerach prezentowanych w artykule mo偶na znale藕膰 m.in. na stronie producenta pod adresem: www.-winbond.com/e-winbondhtm/partner/PDFResult.-asp?Pname=858.
Dystrybutorem firmy Winbond jest: PDW "MARTHEL", tel. (71) 311-07-11, 311-07-12, marthelinfo@marthel.pl, www.marthel.pl.
78
Elektronika Praktyczna 10/2002
PODZESPO艁Y
nowoczesna technologia projektowania uk艂ad贸w cyfrowych
Sukcesy krajowych firm
zajmuj膮cych si臋 nowoczesnymi
technologiami w elektronice
(jak cho膰by autoryzacje od
Altery i Xilinxa uzyskane
przez firm臋 Evatronix -
o czym informowali艣my
w EP8/02 i 9/02) wywo艂a艂y
spore zainteresowanie t膮
tematyk膮.
Na podstawie trend贸w
w rozwoju technologii mo偶na
stwierdzi膰, 偶e przysz艂o艣ciowe
dla elektroniki s膮 uk艂ady
typu SoC. Jednak do
implementacji w艂asnych
system贸w w takich
strukturach nale偶y stosowa膰
inne ni偶 dotychczas metody
projektowania. Jedn膮
z najbardziej popularnych
przedstawiamy w artykule.
Wraz z post臋puj膮c膮 "elektroniza-cj膮" naszego 偶ycia rosn膮 wymagania stawiane urz膮dzeniom elektronicznym. Zwi臋kszanie wydajno艣ci przetwarzania informacji, wymuszone szczeg贸lnie przez coraz bardziej popularne aplikacje multimedialne i telekomunikacyjne, musi by膰 coraz cz臋艣ciej godzone z wymaganym d艂ugim czasem pracy urz膮dze艅 przeno艣nych zasilanych z akumulator贸w. Poprawianiu tych cech powinno towarzyszy膰 zwi臋kszenie niezawodno艣ci oraz - co szczeg贸lnie istotne -zmniejszenie koszt贸w urz膮dze艅, tak
Pogodzenie sprzecznych ze
sob膮 d膮偶e艅 stawianych wsp贸艂czesnym urz膮dzeniom elektronicznym (ma艂y pob贸r mocy i wysoka wydajno艣膰 jednostek obliczeniowych) jest mo偶liwe w systemach opartych na uk艂adach SoC
(System-on-a-Ch ip)t w kt贸rych w pojedynczej strukturze krzemowej s膮
zintegrowane bloki funkcjonalne tworz膮ce kompletne urz膮dzenie.
aby uczyni膰 je w jak najwy偶szym stopniu konkurencyjnymi na rynku. Pogodzenie tych sprzecznych ze sob膮 d膮偶e艅 jest mo偶liwe w systemach opartych na uk艂adach SoC (Sysiem-on-a-Chip), w kt贸rych w pojedynczej strukturze krzemowej s膮 zintegrowane bloki funkcjonalne tworz膮ce kompletny system cyfrowy. Przyk艂adem takiego uk艂adu mo偶e by膰 procesor zintegrowany w jednej obudowie z pami臋ci膮 i uk艂adami peryferyjnymi, takimi jak sprz臋gi komunikacyjne pozwalaj膮ce pod艂膮czy膰 system do sieci LAN lub kontrolery transmisji szeregowych. Dodatkowym i cennym rozszerzeniem uk艂adu mog膮 by膰 sprz臋towe modu艂y wspomagaj膮ce realizacj臋 krytycznych czasowo fragment贸w algorytmu przetwarzanego przez docelowe urz膮dzenie.
Obecnie praktycznie wszyscy licz膮cy si臋 producenci uk艂ad贸w programowalnych maj膮 w swoich ofertach uk艂ady PLD (Programmable Logic De-vice) o skali integracji umo偶liwiaj膮cej implementowanie bardzo z艂o偶onych projekt贸w w pojedynczych uk艂adach scalonych. Przyk艂adowo, mog膮 to by膰 uk艂ady rodzin APEX i Mercury (www.aliera.coin) oraz Virtex II Pro (www.xilinx.coin). Jednak偶e uk艂ady PLD ze wzgl臋du na swoj膮 stosunkowo wysok膮 cen臋 u偶ywane s膮 na dzie艅 dzisiejszy zazwyczaj do tworzenia pojedynczych urz膮dze艅 i niedu偶ych serii rz臋du kilku tysi臋cy sztuk rocznie, przy czym same urz膮dzenia budowane w oparciu o t臋 technologi臋 charakteryzowa膰 si臋 musz膮 znaczn膮 warto艣ci膮 dodan膮 w stosunku do ceny p贸艂przewodnik贸w. Natomiast mo偶liwo艣膰 dowolnego przeprogramowywania uk艂ad贸w PLD, czyni z nich doskona艂e i tanie narz臋dzie umo偶liwiaj膮ce uruchomienie i testowanie system贸w na chipie
przed ich implementacj膮 w krzemowej wielkoseryjnej technologii ASIC.
Wirtualne komponenty u艂atwiaj膮 偶ycie projektantom
Tworzenie uk艂ad贸w w strukturach typu SoC lub PSoC (Programmable SoC) jest obarczone powa偶n膮 wad膮 w stosunku do tradycyjnego projektowania systemu elektronicznego, kt贸ra polega na "sk艂adaniu" uk艂adu z oddzielnych standardowych element贸w. Okazuje si臋, 偶e rozmiar zada艅 (liczba i rozmiary opis贸w projektowanego sprz臋tu w j臋zyku HDL) stoj膮cych przed projektantem lub zespo艂em projektant贸w podczas realizacji uk艂ad贸w SoC jest tak du偶y, 偶e nieuniknione na etapie projektowania b艂臋dy powoduj膮 znaczne wyd艂u偶enie czasu realizacji projektu i zwi膮zany z tym wzrost koszt贸w.
W zwi膮zku z tym do艣膰 szybko w sukurs projektantom przysz艂y firmy
Fot.
Elektronika Praktyczna 10/2002
79
PODZESPO艁Y
Fot. 2
zajmuj膮ce si臋 tworzeniem wirtualnych komponent贸w (IP Cores), kt贸re spe艂niaj膮 rol臋 klasycznych podzespo艂贸w. Pod poj臋ciem wirtualnego komponentu nale偶y rozumie膰 projekt dowolnego uk艂adu elektronicznego, takiego jak procesor, sterownik pami臋ci, kontroler I/O lub inny blok funkcjonalny opisany za pomoc膮 j臋zyka opisu sprz臋tu (HDL - Hardware Des-cripiion Language). Dzi臋ki zastosowaniu odpowiednich narz臋dzi, projekt wirtualnego komponentu mo偶e by膰 zaimplementowany b膮d藕 to w uk艂adzie programowalnym FPGA lub CPLD, lub te偶 (przy produkcji wielo-seryjnej) jako uk艂ad ASIC typu FC. Jednym z krajowych tw贸rc贸w wirtualnych komponent贸w jest firma Evatronix S.A. z siedzib膮 w Bielsku-Bia艂ej. Od pi臋ciu lat zajmuje si臋 ona projektowaniem (oferuje je na 艣wiatowe rynki wirtualnych komponent贸w elektronicznych, w tym mikro-kontroler贸w, procesor贸w oraz uk艂ad贸w transmisji danych).
Jak powstaje wirtualny komponent
Wirtualny komponent, niezale偶nie czy jest to procesor, czy te偶 inny blok funkcjonalny (cho膰by multipleksowy sterownik wy艣wietlacza LED, jaki opisali艣my w EP9/02), "rodzi si臋" najpierw w g艂owach projektant贸w blok贸w IP i jest to jeden z wa偶niejszych etap贸w realizacji projektu. Od tego jak zostanie zaprojektowany w znacznym stopniu zale偶膮 jego w艂a艣ciwo艣ci funkcjonalne i parametry eksploatacyjne. Ta oczywista prawda nabiera szczeg贸lnego znaczenia w przypadku wirtualnych komponent贸w projektowanych tak, aby by艂y odpowiednikami rzeczywistych element贸w elektronicznych. Cech膮 takiego wirtualnego odpowiednika jest zachowanie funkcjonalnej zgodno艣ci z pierwowzorem. Oznacza to, 偶e wirtualny komponent musi zachowywa膰 si臋 z pun-
ktu widzenia otaczaj膮cych go element贸w identycznie jak pierwotny element fizyczny. Natomiast budowa wewn臋trzna wirtualnego komponentu zale偶y ca艂kowicie od projektanta, kt贸ry korzystaj膮c ze swojego do艣wiadczenia i wiedzy, mo偶e dokona膰 ulepsze艅 i poprawek w stosunku do orygina艂u.
Podczas projektowania bloku IP spe艂niaj膮cego rol臋 mikrokontrolera 8051, in偶ynierowie z firmy Evatronix wykorzystali wszystkie nowoczesne techniki przyspieszania pracy klasycznych (w sensie "krzemowych") procesor贸w, w tym: przetwarzanie potokowe (pipelining), sprz臋tow膮 realizacj臋 niekt贸rych funkcji arytmetycznych oraz dostosowanie uk艂adu zarz膮dzania pami臋ci膮 do wsp贸艂pracy zar贸wno z pami臋ciami synchronicznymi, jak i asynchronicznymi. Zachowano list臋 rozkaz贸w identyczn膮 z in-telowskim pierwowzorem, ale zmniejszono liczb臋 cykli maszynowych potrzebnych na wykonanie ka偶dego rozkazu. Eliminacja nadmiarowych cykli magistralowych oraz redukcja czasu wykonywania rozkaz贸w pozwoli艂y osi膮gn膮膰 wypadkow膮 wydajno艣膰 rdzenia mikrokontrolera znacznie przekraczaj膮c膮 mo偶liwo艣ci standardowego kontrolera '51.
Hardware modeller
Poniewa偶, jak wspomniano powy偶ej, wirtualny komponent - odpowiednik rzeczywistego uk艂adu - musi by膰 zewn臋trznie w stu procentach zgodny z orygina艂em, wa偶ne jest, aby
Co to jest wirtualny komponent (IP core)?
Wirtualne komponenty s膮 to bloki
funkcjonalne o r贸偶nym stopniu z艂o偶ono艣ci
(pocz膮wszy od odpowiednik贸w uk艂ad贸w
TTL a偶 po kompletne mikrokontrolery
lub mikroprocesory, porty UART, USB
itp.), opisane w j臋zyku HDL.
Jako j臋zyki opisu najcz臋艣ciej stosuje si臋
VHDL iVerilog.
na wczesnym etapie projektowania zna膰 szczeg贸艂y zachowania orygina艂u. Wielu informacji nie mo偶na znale藕膰 w og贸lnodost臋pnej dokumentacji, gdy偶 ta tworzona jest pod potrzeby typowego u偶ytkownika, a nie projektanta wirtualnych komponent贸w. Dlatego te偶 firma Evatronix stosuje metod臋 badania egzemplarza referencyjnego. Egzemplarz referencyjny umieszcza si臋 w urz膮dzeniu zwanym
hardware inodeller (fot. 1), kt贸re emuluje docelowe 艣rodowisko pracy projektowanego komponentu. Za pomoc膮 odpowiednich test贸w stymuluje si臋 testowany uk艂ad, a wyniki testu s膮 rejestrowane i tworz膮 szczeg贸艂ow膮 specyfikacj臋 fizycznego zachowania orygina艂u.
W kolejnym kroku nast臋puje przeniesienie opracowanej koncepcji elementu na opis w j臋zyku HDL. 艢wiatowy standard wyznaczaj膮 dwa j臋zyki: VHDL oraz Verilog. R贸wnolegle z projektowaniem samego komponentu wirtualnego tworzone jest 艣rodowisko programowe do weryfikacji zgodno艣ci komponentu wirtualnego ze specyfikacj膮. W miar臋, jak post臋puje implementacja, ka偶dy fragment komponentu weryfikowany jest na drodze symulacji komputerowej w programowych symulatorach HDL, takich jak AcitveHDL (www.al-dec.coin) lub ModelSim (www.mentor.coin), a wyniki symulacji s膮 por贸wnywane na bie偶膮co z danymi referencyjnymi otrzymanymi z badania orygina艂u w hardware iriodellerze.
Faza programowego testowania powstaj膮cego komponentu jest bardzo d艂uga i pracoch艂onna. Aby zapobiec nadmiernemu anga偶owaniu projektant贸w w proces testowania komponent贸w, w firmie Evatronix zosta艂 on w pe艂ni zautomatyzowany. Wszystkie testy s膮 powtarzane po ka偶dej modyfikacji projektu, a ich liczba si臋ga膰 mo偶e kilku tysi臋cy. Przy opracowywaniu test贸w korzysta si臋 ze specjalnego oprogramowania firmy Trans-EDA (www.iranseda.coin) pozwalaj膮cego na sporz膮dzenie kompletnego zestawu test贸w tak, aby mo偶na by艂o zagwarantowa膰, 偶e ka偶de zachowanie komponentu wirtualnego posiada swoje pokrycie w testach. Znaczenie prowadzonych test贸w jest tak du偶e, 偶e klient nabywaj膮c komponent dostaje razem z nim opracowany zestaw test贸w. Jest to konieczne, je艣li we藕mie si臋 pod uwag臋 fakt, 偶e w ka偶dej chwili u偶ytkownik mo偶e dokona膰 zmian w dostarczonym projekcie i musi mie膰 mo偶liwo艣膰 ponownej weryfikacji jego dzia艂ania.
Po zako艅czeniu testowania nast臋puje faza implementacji utworzonego komponentu w uk艂ady PLD. Przy u偶yciu narz臋dzi do syntezy tworzone s膮 listy po艂膮cze艅 (netlisty) s艂u偶膮ce do zaprogramowania docelowych uk艂ad贸w. W trakcie syntezy otrzymuje si臋 wst臋pne wyniki pozwalaj膮ce oceni膰 kompo-
80
Elektronika Praktyczna 10/2002
PODZESPO艁Y
Systemy uruchomieniowe dla blok贸w IP firmy Evatronix
EvixBoard3
O艣mio- lub szesnastobitowy system mikroprocesorowy wyposa偶ony w 64 kB ROM, 128 kB RAM, wy艣wietlacz LCD 2x16, klawiatur臋 oraz diody LED Maksymalny zegar 40 MHz Program wykonywalny 艂adowany z ROM-u lub z komputera za pomoc膮 RS232 Widoczny na zdj臋ci u z adapterem zawieraj膮cym uk!adXihnxVirtex400Ez za-implementowanym komponentem R80515
EvixBoard4
8/16/24/32-bitowy system mikrokomputerowy, wyposa偶ony w 256 kB ROM, 256 kB RAM, wy艣wietlacz LCD 2x16 (tu zdemontowany), uproszczon膮 klawiatur臋, pojedynczy wy艣wietlacz LED oraz kontrolerVGA pracuj膮cy w trybie tekstowymi graficznym,kontrolerrnyszy (PS2)i klawiatury (PS2) Prograrnwykonywalny艂adowany z ROM-u lub z komputera PC za pomoc膮 RS232 Podobnie偶 komputera PC dokonywane s膮 ustawienia pracy systemu w tym wbudowanego generatora zegarowego skalowanego od 100 MHz do1 kHz
nent pod wzgl臋dem liczby wykorzystywanych bramek oraz maksymalnej szybko艣ci taktowania. Aby umo偶liwi膰 por贸wnywanie produkt贸w pochodz膮cych od r贸偶nych firm, opracowano standardowe kryteria oceny wirtualnych komponent贸w nazwane klasyfikacj膮 OpenMORE, wprowadzon膮 przez
firmy Synopsys i Mentor Graphics. Wszystkie komponenty dostarczane przez firm臋 Evatronix s膮 klasyfikowane zgodnie z tym kryterium.
Co dalej z wirtualnym prototypem?
Gotowy prototyp przekazywany jest do kolejnej kom贸rki weryfikacyjnej, tzw. klienta wewn臋trznego. Jest to grupa in偶ynier贸w odizolowana od zespo艂u projektowego, kt贸rych zadaniem jest weryfikacja prototypu poprzez u偶ycie go w konkretnych aplikacjach. Komponent, zazwyczaj w takim przypadku procesor, umieszczany jest w specjalnie do tego celu przygotowanych uruchomieniowych systemach mikroprocesorowych Evix Board (fot. 2). Nast臋pnie jest tworzony odpowiedni program wykonywalny dla danego typu procesora, maj膮cy za zadanie wszechstronne sprawdzenie jego dzia艂ania. Na tym etapie
jest dokonywane r贸wnie偶 sprawdzenie czy przyj臋te w fazie projektowej za艂o偶enia co do wydajno艣ci przetwarzania zosta艂y osi膮gni臋te.
Standardowymi testami wydajno艣ci mikroprocesor贸w s膮 testy Dhrystone i Whetstone, kt贸re wykonywane s膮 przez orygina艂 i przez komponent, dzi臋ki czemu uzyskuje si臋 wyniki do por贸wna艅. Przyk艂adowo, z por贸wnania seini-RISC R8O515 opracowanego w firmie Evatronix z oryginalnym mikrokontrolerem 8051 firmy Atmel wynika, 偶e ten pierwszy jest o艣miokrotnie szybszy, przy takiej samej cz臋stotliwo艣ci taktowania. Uwzgl臋dniaj膮c, 偶e technologie submikronowe stosowane przy produkcji uk艂ad贸w FPGA lub ASIC pozwalaj膮 na stosowanie cz臋stotliwo艣ci taktowania rz臋du setek MHz, procesor R8051 wykonany w technologii 0,18 [im mo偶e pracowa膰 z cz臋stotliwo艣ci膮 250 MHz. Uwzgl臋dniaj膮c te dwa wsp贸艂czynniki: przyspieszenie dzia艂ania komponentu wirtualnego wzgl臋dem orygina艂u (b臋d膮ce wynikiem optymalizacji wykonywania rozkaz贸w) i przyspieszenie wynikaj膮cego ze stosowania najnowszych technologii krzemowych, otrzymujemy do dyspozycji procesor 100-krotnie wydajniejszy ni偶 jego pierwowz贸r pracuj膮cy z zegarem 20 MHz.
Ostatecznie, po przej艣ciu d艂ugiej drogi projektowej i jeszcze d艂u偶szej drogi test贸w, komponent zostaje przekazany do sprzeda偶y. Odbiorca 艂膮czy komponent z innymi wirtualnymi elementami, dokonuje wst臋pnego prototypowania ca艂o艣ci w uk艂adzie FPGA, tworzy docelowy kod, testuje cz臋艣膰 sprz臋tow膮 i oprogramowanie, a po zako艅czonej sukcesem weryfikacji przekazuje plik z opisem konfiguracji docelowego uk艂adu wyspecjalizowanej firmie wytwarzaj膮cej uk艂ady ASIC FC, w celu wykonania patii prototypowej, a nast臋pnie produkcji seryjnej. Tomasz Jak贸biec, Evatronix
Dodatkowe informacje
Wi臋cej informacji mo偶na uzyska膰 w lirmie Eva-tronix S.A., tel. (33) 815 92 24, www. evatronix.-com.pl.
Jak korzysta膰 z wirtualnych komponent贸w?
Korzystanie z wirtualnych komponent贸w przypomina
stosowanie uk艂ad贸w standardowych, przy czym zamiast
obudowanego kryszta艂ka krzemu kupujemy odpowiednio list臋
po艂膮cze艅 uk艂adu w odpowiednim formacie (w postaci pliku)
odpowiadaj膮c膮 funkcjonalnie 偶膮danemu komponentowi.
Implementacja w fizyczny uk艂ad wymaga zastosowania
kt贸rego艣 ze standardowych (dost臋pne s膮 tak偶e bezp艂atne ich
wersje) narz臋dzi do syntezy logicznej.
82
Elektronika Praktyczna 10/2002
SPRZ臉T
呕eby wyrazi膰 podziw dla perfekcji wykonania miniaturowego, precyzyjnego urz膮dzenia, m贸wimy nada!
"zegarmistrzowska robota", chocia偶 ju偶 od dawna
w wielu dziedzinach techniki stosuje si臋 technologie
wymagaj膮ce niepor贸wnywalnie wi臋kszej precyzji. Co nieco
informacji na ich temat podajemy w artykule.
Narz臋dzia dla nowoczesnej elektroniki
We wsp贸艂czesnej elektronice owej zegarmistrzowskiej precyzji wymaga m.in. monta偶, zw艂aszcza element贸w SMD (Sarface Moanied Device), w obudowach EGA (Bali Grid Ar-ray). Zegarmistrz kojarzy si臋 z cz艂owiekiem z charakterystyczn膮 lup膮 przy oku. Zobaczmy zatem, jakie przyrz膮dy do obserwacji element贸w podczas monta偶u/demonta偶u oraz sprawdzania (inspekcji) oferuj膮 specjalistyczne firmy elektronikom.
Szeroki zakres zastosowa艅 - zar贸wno je艣li chodzi o wype艂niane zadania, jak i cechy obs艂ugiwanych uk艂ad贸w - wymusza du偶膮 r贸偶norodno艣膰 dost臋pnych urz膮dze艅: od stosunkowo prostych przyrz膮d贸w optycznych, jakimi s膮 lupy, do stoso-
Fot.
wanych w produkcji wielkoseryjnej system贸w AOI (Automated Opiical Inspeciion) czy system贸w wykorzystuj膮cych promieniowanie rentgenowskie.
Wyb贸r urz膮dzenia, z my艣l膮 o konkretnym zastosowaniu, musi uwzgl臋dnia膰 wiele parametr贸w i czynnik贸w, g艂贸wnie technicznych, ale tak偶e ergonomicznych i ekonomicznych.
Decyduj膮ce znaczenie maj膮 cechy procesu oraz samych uk艂ad贸w -z nich wyp艂ywaj膮 oczekiwania m.in. dotycz膮ce 偶膮danej warto艣ci powi臋kszenia i dok艂adno艣ci, a tak偶e dodatkowych mo偶liwo艣ci jak np.:
- widzenie stereoskopowe,
- obserwacja z r贸偶nych kierunk贸w,
- du偶y zakres manipulacji uk艂adem, bez pogarszania warunk贸w obserwacji,
- dokonywanie pomiar贸w,
- obserwacja przeprowadzanych czynno艣ci monta偶u/demonta偶u w czasie rzeczywistym,
- wsp贸艂praca z urz膮dzeniami rejestruj膮cymi (kamery, aparaty fotograficzne),
- przetwarzanie danych i archiwizacja,
- automatyzacja procesu, w tym przekazywanie opracowanej informacji zwrotnej, np. do urz膮dze艅 pozycjonuj膮cych.
Wa偶ne jest, aby dany przyrz膮d charakteryzowa艂 si臋 niezb臋dn膮 elastyczno艣ci膮 w ramach swego przeznaczenia, zwi臋kszaj膮c膮 mo偶liwo艣ci przystosowania do konkretnych wymaga艅 technologicznych. Zatem po kolei.
Lupy
Mo偶liwo艣ci, jakie wynikaj膮 z zastosowania lupy, ilustruje oferta firmy Luxo. Trzy podstawowe modele wyposa偶ono w soczewki 3...6 dioptrii oraz - opcjonalnie - w soczewki dodatkowe pozwalaj膮ce na uzyskanie 艂膮cznej warto艣ci powi臋kszenia od
Fot. 2
Elektronika Praktyczna 10/2002
87
SPRZ臉T
Fot. 3
175 do 450%. S膮 to przyrz膮dy wyposa偶one we w艂asne 藕r贸d艂a 艣wiat艂a. Model Wave (fot. 1) z prostok膮tn膮 szklan膮 soczewk膮 o wymiarach 175x108 mm ma dwie symetrycznie rozmieszczone 艣wietl贸wki. Gdy w艂膮czona jest jedna z nich, uzyskuje si臋 wra偶enie obrazu tr贸jwymiarowego, natomiast w艂膮czenie obu daje o艣wietlenie bezcieniowe. 艁atwe operowanie lup膮 zapewnia jeden z dw贸ch dost臋pnych wysi臋gnik贸w o d艂ugo艣ci 700 lub 940 mm.
Podobne mo偶liwo艣ci funkcjonalne oferuj膮 lupy modeli LFM-101 z okr膮g艂膮 soczewk膮 szklan膮 o 艣rednicy 127 mm oraz Magnifi膮ue, z prostok膮tn膮 soczewk膮 akrylow膮. Maj膮 one pojedyncze, energooszcz臋dne 藕r贸d艂a 艣wiat艂a. Lupa Magnifi膮ue umo偶liwia regulacj臋 kierunku strumienia 艣wiat艂a. Wszystkie lupy firmy Luxo s膮 wyposa偶one w os艂ony chroni膮ce przed kurzem i zabezpieczenie przed przypadkowymi skutkami dzia艂ania soczewki skupiaj膮cej.
Systemy wizyjne
Przyk艂adami zaawansowanych rozwi膮za艅 urz膮dze艅 optoelektronicznych, 艂膮cz膮cych cechy i zalety mikroskop贸w i monitor贸w, s膮 systemy wizyjne firmy Vision. Monta偶/demonta偶 PCB, naprawy i inspekcja, to przyk艂ady zastosowania w elektronice systemu Mantis (fot. 2). Umo偶liwia on obserwacj臋 przedmiotu na stosunkowo du偶ym ekranie. Ma to niebagatelne znaczenie dla komfortu pracy operatora:
- po pierwsze - pozwala na wybranie optymalnej pozycji, umo偶liwiaj膮cej r贸wnoczesne prowadzenie obserwacji i manipulowanie obiektem lub narz臋dziami,
- po drugie - nie wymaga m臋cz膮cej adaptacji wzroku przy wielokrotnie powtarzaj膮cych si臋 przej艣ciach od obserwacji obiektu i pola roboczego np. do wyboru i przygotowania narz臋dzia. Du偶a odleg艂o艣膰 obiektywu od obserwowanego
przedmiotu zapewnia swobodny dost臋p do niego i u艂atwia przeprowadzenie czynno艣ci np. lutowania. W wersji FX dost臋pna jest podstawa z ruchom膮 platform膮 i dodatkowym pod艣wietleniem. Mantis zapewnia wysok膮 rozdzielczo艣膰 obrazu, a osi膮galne powi臋kszenia wynosz膮 standardowo 2x i 4x, a opcjonalnie - 6x, 8x, i 10x. Rzeczywisty obraz stereo, znacznie wy偶sze warto艣ci powi臋ksze艅 (nawet do 160x) oraz szerszy zakres mo偶liwo艣ci obserwacji zapewnia stereody-naskopowy system LYNX. Mo偶na tu korzysta膰 z r贸偶nych obiektyw贸w i przystawek zwielokrotniaj膮cych powi臋kszenie. Obiekt mo偶e by膰 widziany pod k膮tem 34 z dowolnie wybranego kierunku. System posiada silne 藕r贸d艂o 艣wiat艂a, charakteryzuje si臋 bardzo dobr膮 rozdzielczo艣ci膮 i doskona艂ym odwzorowaniem barw. Zintegrowana kamera cyfrowa umo偶liwia rejestracj臋 obraz贸w w celu ich p贸藕niejszej analizy, przetwarzania lub archiwizowania.
Powsta艂y na bazie LYNX system VS8 (fot. 3) wyposa偶ono w du偶膮 platform臋 (st贸艂 indeksowy z uchwytem do szybkiego mocowania) do precyzyjnej inspekcji monta偶u powierzchniowego (SMT). Opcjonalnie jest oferowany st贸艂 z odci膮gaczem dym贸w i opar贸w powstaj膮cych podczas monta偶u/demonta偶u.
Zalety techniczne i u偶ytkowe system贸w LYNX/VS8 s膮 doceniane przez renomowanych producent贸w sprz臋tu elektronicznego. Mi臋dzy innymi u偶ywa ich Motorola przy produkcji telefon贸w GSM.
Z urz膮dze艅 Vision, oferuj膮cych du偶e powi臋kszenia przy zachowaniu wysokiej rozdzielczo艣ci, zapewniaj膮cych du偶y komfort pracy, umo偶liwiaj膮cych tak偶e wsp贸艂prac臋 z aparatami fotograficznymi i kamerami, nale偶y jeszcze wymieni膰: stereoskop ALPHA oraz przystawk臋 do mikroskop贸w okularowych - ISIS. Ta ostatnia zwi臋ksza komfort u偶ytkowania, dzi臋ki poszerzeniu pola obserwacji i umo偶liwia prac臋 w okularach korekcyjnych. Ponadto pozwala na zwielokrotnienie powi臋kszenia podstawowego w zakresie od 8x do 20x.
Pomiary bezkontaktowe
Zakres kontroli przebiegu procesu, a zw艂aszcza zakres inspekcji, mo偶e by膰 r贸偶ny, w zale偶no艣ci od etapu (badania prototypu, produkcja, serwis lub inne), na kt贸rym operacja jest przeprowadzana, wymaganych
dok艂adno艣ci czy rodzaju sprawdzanych cech lub parametr贸w. Tam, gdzie najdok艂adniejsze nawet ogl臋dziny okazuj膮 si臋 niewystarczaj膮ce, trzeba dokonywa膰 pomiar贸w. Do przeprowadzania bezkontaktowych pomiar贸w o du偶ej dok艂adno艣ci Vi-sion opracowa艂 4 dynaskopy, a w艂a艣ciwie kompletne stanowiska pomiarowe zbudowane w oparciu o te przyrz膮dy.
Workshop Dynascope (pomiary dwuwymiarowe XY) oferuje maksymalne powi臋kszenie do 100x i dok艂adno艣膰 do 15 [im. Bezcieniowe o艣wietlenie, ruchoma platforma 150x150 mm i mo偶liwo艣膰 wsp贸艂pracy z aparatem cyfrowym lub kamer膮, to kolejne wa偶ne cechy tego urz膮dzenia.
Ultra, 5D (fot. 4) i 5E, to systemy pozwalaj膮ce na dokonywanie pomiar贸w przestrzennych (XYZ) z maksymalnymi powi臋kszeniami odpowiednio: xlOO, x200 i xl000. Osi膮gane dok艂adno艣ci wynosz膮 5 [im dla Ultra i 2 [im dla pozosta艂ych. Platformy s膮 sterowane r臋cznie lub za pomoc膮 silnika. Dost臋pne s膮 platformy w r贸偶nych wymiarach: od 150x150 mm do 400x400 mm.
Przeprowadzanie pomiar贸w i przetwarzanie danych odbywa si臋 z wykorzystaniem mikroprocesora. Uzyskane dane mog膮 by膰 archiwizowane, a obrazy rejestrowane aparatem cyfrowym lub za pomoc膮 kamery.
X-ray
Osi膮gni臋cie du偶ych powi臋ksze艅 o wysokiej rozdzielczo艣ci nie zawsze wystarcza do pozyskania koniecznych danych - bywa, 偶e badany obiekt jest zas艂oni臋ty i po prostu niewidoczny. Tak jest z punktami lutowniczymi uk艂ad贸w EGA, kt贸rych wyprowadzenia, w liczbie
Fot. 4
Elektronika Praktyczna 10/2002
SPRZ臉T
Fot. 5
do kilku tysi臋cy, znajduj膮 si臋 pod obudow膮 uk艂adu. W膮ska szczelina, jaka pozostaje po monta偶u mi臋dzy doln膮 powierzchni膮 elementu EGA a powierzchni膮 p艂yty, pozwala na ogl膮danie po艂膮cze艅 lutowniczych jedynie przy u偶yciu endoskop贸w. Aby m贸c zebra膰 w polu widzenia wszystkie punkty, trzeba zastosowa膰 powszechnie stosowan膮 i efektywn膮 metod臋 wizualizacji opart膮 na wykorzystaniu promieniowania rentgenowskiego (X-ray).
Po艂膮czenia obserwuje si臋 na ekranie monitora jako r贸wnomiernie roz艂o偶one czarne kropki. Mo偶na obserwowa膰 ca艂o艣膰, a mo偶na te偶 skoncentrowa膰 uwag臋 na poszczeg贸lnych obszarach czy punktach. Stopie艅 zaczernienia zale偶y od grubo艣ci materia艂u (tutaj - spoiwa), kt贸r膮 pokonuj膮 promienie - dlatego z gradacji szaro艣ci mo偶na czerpa膰 informacj臋 zar贸wno o jako艣ci poszczeg贸lnych punkt贸w lutowniczych, jak i o obecno艣ci mostk贸w (zwar膰) czy odkszta艂ce艅 obudowy EGA lub powierzchni p艂ytki. Na przyk艂ad brak po艂膮czenia jest widoczny jako wyra藕nie ja艣niejszy punkt otoczony jednakowymi, niemal czarnymi punktami. Nato-
miast stopniowe rozja艣nianie punkt贸w od kraw臋dzi uk艂adu w kierunku 艣rodka jego obudowy, przy zwi臋kszaj膮cej si臋 ich 艣rednicy, 艣wiadczy
0 nier贸wnoleg艂o艣ci powierzchni EGA
1 p艂ytki, wskazuj膮cej na odkszta艂cenia (w tym wypadku - obni偶enie 艣rodka obudowy).
Przyk艂adowym urz膮dzeniem pozwalaj膮cym na pomiary w czasie rzeczywistym z dok艂adno艣ci膮 do 25 [im jest aparat rentgenowski PACE XR-2000 (fot. 5). Jego cenn膮 zalet膮 s膮 stosunkowo niewielkie gabaryty, pozwalaj膮ce na zastosowanie w systemach takich jak TF-2000 (patrz EP9/02). Dane zwi膮zane ze zobrazowaniem badanego obszaru mo偶na oczywi艣cie rejestrowa膰, przetwarza膰 i archiwizowa膰 do cel贸w dokumentacyjnych, por贸wnawczych itd.
To ju偶 jednak pole dzia艂ania innych urz膮dze艅 i specjalistycznego oprogramowa nia. Marek Kalasi艅ski
D o dat ko we i nf o rma ej e
Wi臋cej informacji mo偶na uzyska膰 w lirmie Renex, Tel. (54)231-10-05, www.renexcom.pl.
Elektronika Praktyczna 10/2002
MINIPROJEKTY
Wsp贸ln膮 cech膮 uk艂ad贸w opisywanych w dziale "Miniprojekty" jest 艂atwo艣膰 Ich praktyczne] 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 scaionych, 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,
Bezpieczne wyj艣cie z linii telefonicznej
Je偶eli zamierzasz w bezpieczny spos贸b nagrywa膰 rozmowy telefoniczne, polecamy Ci wykonanie uk艂adu opisanego w artykule. Dzi臋ki niemu nagrywanie rozm贸w na zwyk艂y magnetofon kasetowy lub dysk twardy komputera nie b臋dzie trudne. R ekom en da cje: urz膮dzenie niezb臋dne dla wszystkich u偶ytkownik贸w telefon贸w stacjonarnych, kt贸rzy z r贸偶nych przyczyn chc膮 rejestrowa膰 w bezpieczny spos贸b prowadzone rozmowy.
Do艂膮czanie jakichkolwiek urz膮dze艅 do linii telefonicznej niesie ze sob膮 niebezpiecze艅stwo ich uszkodzenia. Uszkodzenie mo偶e by膰 spowodowane przepi臋ciami wyst臋puj膮cymi w liniach telefonicznych. Aby mo偶na by艂o bezpiecznie odbiera膰 sygna艂 o cz臋stotliwo艣ci akustycznej wyst臋puj膮cy w linii telefonicznej, niezb臋dne jest odseparowanie galwanicznie uk艂adu odbiorczego (np. wzmacniacza) od linii. Na rys. 1 przedstawiono schemat elektryczny uk艂adu realizuj膮cego takie zadanie. Dodatkowo, uk艂ad posiada wyj艣cie sygnalizuj膮ce, czy w danej chwili prowadzona jest rozmowa. Sygna艂 na tym wyj艣ciu mo偶na zastosowa膰 do za艂膮czania zasilania wzmacniacza w przypadku wykorzystania uk艂adu do zestawu g艂o艣nom贸wi膮cego. Wzmacniacz taki mo偶e by膰 zasilany bateryjnie, gdy偶 pobiera pr膮d tylko wtedy, gdy prowadzona jest rozmowa i jest od艂膮czany po od艂o偶eniu s艂uchawki. Je艣li uk艂ad mia艂by by膰 wykorzystany do nagrywania
rozm贸w, to sygna艂em na tym wyj艣ciu mo偶na uruchamia膰 uk艂ad nagrywaj膮cy.
Separacj臋 galwaniczn膮 uzyskano za pomoc膮 transformatora. Linia telefoniczna jest pod艂膮czona do z艂膮cza CONl. Poprzez kondensatory Cl iC2, oddzielaj膮ce sk艂adow膮 sta艂膮, sygna艂 jest podawany na uzwojenie pierwotne transformatora TRI. Pomi臋dzy kondensatorami a transformatorem znajduje si臋 mostek prostowniczy, zabezpieczaj膮cy obw贸d pierwotny przed przepi臋ciami. Schemat zast臋pczy mostka prostowniczego przedstawiono na schemacie za pomoc膮 diod prostowniczych. Przy takim pod艂膮czeniu mostek prostowniczy stanowi uk艂ad dw贸ch par diod po艂膮czonych prze-ciwsobnie. Takie po艂膮czenie powoduje, 偶e wszystkie sygna艂y o warto艣ci wi臋kszej ni偶 1,4V (taki spadek napi臋cia uzyskuje si臋 przy szeregowym po艂膮czeniu diod) b臋d膮 zwierane. U偶yteczny sygna艂 ma mniejsz膮 amplitud臋, wi臋c nie
i-,
PC8L7
Rys. 1
Rys. 2
Zut臋pczy uk艂ad po^czeri mostk贸w prostowniczych
jest "odcinany". Jest to dobre zabezpieczenie przed wysokonapi臋ciowymi sygna艂ami pojawiaj膮cymi si臋 w linii telefonicznej. Po stronie wt贸rnej zastosowano taki sam uk艂ad zabezpieczenia, co powoduje, 偶e w przypadku uszkodzenia strony pierwotnej pod艂膮czone urz膮dzenie jest dodatkowo zabezpieczone. Kondensatory C3 i C4 oddzielaj膮 transformator od obwodu wej艣ciowego do艂膮czonego urz膮dzenia. Taki uk艂ad zabezpiecze艅 ogranicza
r贸wnie偶 poziom sygna艂u w przypadku wyst膮pienia sygna艂u dzwonienia, kt贸rego amplituda jest znacznie wy偶sza ni偶 nominalne napi臋cie linii telefonicznej. W czasie dzwonienia s艂yszalny jest tylko "stukot", nie spowoduje on jednak uszkodzenia do艂膮czonego urz膮dzenia, gdy偶 mostki prostownicze ograniczaj膮 jego amplitud臋.
Do wykrywania podniesionej s艂uchawki zastosowano dwa transoptory, kt贸rych diody steruj膮ce s膮 po艂膮czone przeciwnie i w艂膮czone szeregowo z aparatem telefonicznym. Takie w艂膮czenie diod transopto-r贸w zapewnia wykrywanie pr膮du p艂yn膮cego w linii niezale偶nie od jego kierunku. Rezystor Rl w艂膮czony r贸wnolegle do tych diod bocznikuje cz臋艣ciowo pr膮d p艂yn膮cy w linii po podniesieniu s艂uchawki. W takim czujniku pr膮du spa-
Wykaz element贸w Rezystory
Rl: 220O Kondensatory
C1...C4: l^F P贸艂przewodniki
MG1, MG2: mostek prostowniczy 1A/4OOV TRI: TR13脫-2 (TELZAM) R贸偶ne
CON1...CON3: ARK2(5mm) CON4: gniazdo CHINCH k膮towe do druku TS1: PC827
P艂ytka drukowana jest dost臋pna w A VT - oznaczenie AYT-1353.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl pazdziemikQ2.htm oraz na p艂ycie CD-EP10/2002 w katalogu PCB.
Elektronika Praktyczna 10/2002
91
MINIPROJEKTY
dek napi臋cia wynosi oko艂o nale偶y po艂膮czy膰 z mas膮 do艂膮- Monta偶 nie powinien spra- wszystkie sygna艂y wyst臋puj膮ce
1,2V. Po stronie wyj艣ciowej czonego uk艂adu. Po zasileniu wi膰 trudno艣ci, gdy偶 ca艂y uk艂ad w linii telefonicznej, a na z艂膮-
transoptor贸w s膮 fototranzysto- obwodu kolektor贸w (rezystor zawiera niewiele element贸w. czu CON3 mo偶na obserwo-
ry NPN. W celu wykorzystania obci膮偶aj膮cy do plusa zasilania) Po zmontowaniu uk艂adu do wa膰 zmiany rezystancji przy
tego wyj艣cia do sygnalizacji wyst膮pi na nich (ko艅c贸wka nr z艂膮cza CONl pod艂膮czamy li- od艂o偶onej i podniesionej s艂u-
podniesienia s艂uchawki "1" z艂膮cza CON3) niskie napi臋- ni臋 telefoniczn膮, a do z艂膮cza chawce.
emitery tych tranzystor贸w cie w przypadku podniesienia CON2 aparat telefoniczny. Na Krzysztof P艂awsiuk, AVT
(ko艅c贸wka nr "2" z艂膮cza CON3) s艂uchawki. z艂膮czu CON4 mamy dost臋pne krzysztof.plawsiuk@ep.com.pl
Elektronika Praktyczna 10/2002
MINIPROJEKTY
Wska藕nik nat臋偶enia pola w.cz.
Wska藕nik s艂u偶y do
zgrubnego pomiaru
nat臋偶enia pola
elektrom agn etyczn ego
wytwarzanego przez
wszelkiego rodzaju
nadajniki i urz膮dzenia
radiowe.
R ekom en da ej e:
przeznaczony jest dla
u偶ytkownik贸w radiowego
sprz臋tu nadawczego,
serwisant贸w
i poszukiwaczy
elektro nicznych
"pluskiew".
Wska藕nik nat臋偶enia pola w.cz zbudowano w oparciu o znany wielu czytelnikom uk艂ad typu LM3915, przeznaczony do sterowania linijk膮 dziesi臋ciu diod LED.
Wska藕nik mo偶e by膰 przydatny przy uruchamianiu i naprawie nadajnik贸w, jak r贸wnie偶 do przeprowadzenia wielu do艣wiadcze艅 w pracowni szkolnej.
Na rys. 1 przedstawiono schemat elektryczny wska藕nika, w kt贸rym mo偶emy wyodr臋bni膰 dwa zasadnicze bloki: blok odbiorczy i blok wska藕nika.
Blok odbiorczy stanowi obw贸d LC z detektorem na diodzie Dl oraz prostym wzmacniaczem na tranzysto-
rach Tl i T2. Cz臋stotliwo艣膰 odbioru zale偶y od warto艣ci parametr贸w cewki L i kondensatora C. Od dostrojenia do odpowiedniej cz臋stotliwo艣ci zale偶y r贸wnie偶 poprawno艣膰 wskaza艅 wska藕nika.
Zworami ZW1-3 przeprowadza si臋 skokowo regulacj臋 czu艂o艣ci wska藕nika: ZWl- wysoki poziom, ZW2 - 艣redni poziom, ZW3 - niski poziom.
Wyj艣cie bloku odbiorczego jest do艂膮czone do wej艣cia SIG wska藕nika (wyprowadzenie 5 Ul).
Blok wska藕nika, jak wcze艣niej wspominano, jest standar-
Rys. 1
o 贸d
o
o OC
0
o oo
o 00
o QQ
o OC
0 00
DOO 000
ANTENA ZW1-ZW3
DIODOWY W3KAZMK NAT臉呕ENIA POLA1*14
R16 4*-
-w-
Rys. 2
dow膮 aplikacj膮 uk艂adu LM3915. W celu zwi臋kszenia czytelno艣ci wskaza艅 poziomu nat臋偶enia pola, diody LED zosta艂y dobrane w trzech r贸偶nych kolorach. Liczba zapalonych diod LED na wska藕niku zale偶y od poziomu sygna艂u w.cz. obieranego przez cz臋艣膰 odbiorcz膮. Bezpo艣rednio do wej艣cia antenowego wska藕nika nie powinni艣my doprowadza膰 sygna艂u o mocy wi臋kszej ni偶 500 mW. Na rys. 2 przedstawiono schemat monta偶owy p艂ytki drukowanej, na kt贸rej umieszczono wszystkie elementy uk艂adu 艂膮cznie z zasilaniem, wy艂膮cznikiem oraz
specjalnym gniazdem antenowym BNC do druku. Po starannym zmontowaniu uk艂ad powinien pracowa膰 poprawnie. Wymaga jedynie regulacji potencjometrem Pl oraz dostrojenia obwodu rezonansowego LC do 偶膮danej cz臋stotliwo艣ci. Model zosta艂 dostrojony do pasma 2 metry (144...146MHz).
Opr贸cz wymienionych ju偶 zastosowa艅, uk艂adu mo偶na tak偶e u偶y膰 do lokalizacji ukrytych nadajnik贸w - "pluskiew" elektronicznych. Krzysztof G贸rski, AVT
WYKAZ ELEMENT脫W
Rezystory
Rl: lkG
R2: 270kO
R3: 1.5MO
R15: 820D
Kondensatory
Cl: lOOpF
C2: trymer 3...25pF
C3: 22^F/25V
C4: lOOnF
CS: 10^F/25V
P贸艂przewodniki
Dl: BATS5
D2: D3 1N4148
D4...D14: diody LED
Tl: BC547
T2: BC237
Ul: LM3915
R贸偶ne
LI: 4zwoje drutem 0,8 mm
P艂ytka drukowana jest dost臋pna w AVT - oznaczenie AYT-1357.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl pazdziemikQ2.htm oiaz na p艂ycie CD-EP10/2002 w katalogu PCB.
92
Elektronika Praktyczna 10/2002
KURS
Bezp艂atny kompilator C dla mikrokontroler贸w AVR
Integracja GCC z AVR Studio
Popularno艣膰 kompilatora j臋zyka C, kt贸ry jest dost臋pny na stronie internetowej AVR Freaks, ci膮gle ro艣nie. Dzieje si臋 tak z dw贸ch powod贸w. Po pierwsze, mikrokontrolery AVR coraz cz臋艣ciej pojawiaj膮 si臋 w r贸偶nych aplikacjach. Po drugie, niecz臋sto zdarza si臋 taka gratka, 偶e tak warto艣ciowe narz臋dzie udost臋pniane jest za darmo.
Kompilator j臋zyka C dla AVR jest wynikiem jednego z tak zwanych projekt贸w open souTce. Jest to po prostu program przygotowany przez nieformalny zesp贸艂 programist贸w. Posta膰 藕r贸d艂ow膮 programu kompilatora mo偶na pobra膰 z ]nternetu i przyst膮pi膰 do zespo艂u, je艣li tylko ma si臋 co艣 warto艣ciowego do dodania. GCC zosta艂 napisany jako kompilator mog膮cy pracowa膰 zar贸wno w 艣rodowisku DOS, jak i Windows. Jego najnowsza wersja wykorzystuje 32-bitowe biblioteki funkcji i przeznaczona jest do pracy w systemie Windows. Mo艣na j膮 znale藕膰 na stronie AVR Freaks pod adresem hiip;//www.a vTfTeaks.net/A VRGGGf index.php.
Do czego jest potrzebne AVR Studio?
Inaczej ni偶 w przypadku kompletnego 艣rodowiska s艂u偶膮cego do przygotowania program贸w, GCC jest tylko kompilatorem. Nie ma wbudowanego edytora i symulatora. Edycje, mo艣na przeprowadzi膰 za pomoc膮 dowolnego edytora tekstowego. Najlepiej jest, je偶eli do tego celu u偶ywa sie. AVR Studio firmy At-mel. Obecnie dost臋pna jest ju偶 wersja 4.05 tego doskona艂ego narz臋dzia, jednak nie jest ona najlepsza do przygotowywania program贸w w j臋zyku C. Nie rozr贸偶nia bowiem sk艂adni tego j臋zyka. Do wsp贸艂pracy z GCC najlepiej jest u偶y膰 wersji 3.55 dost臋pnej na wielu stronach internetowych, mi臋dzy innymi na AVR Freaks pod adresem http;ffwww.avrffe-aks. n et/To ols/sho wio ols ? To olld=104.
Z w艂asnej praktyki wiem, 偶e po艂膮czone ze sob膮 GCC i AVR Studio tworz膮 bardzo warto艣ciowe narz臋dzie, za kt贸re normalnie trzeba by by艂o s艂ono zap艂aci膰. Mo偶emy je mie膰 za darmo.
Edytor tekstowy, w kt贸ry wyposa偶one jest AVR Studio, przystosowano do sk艂adni j臋zyka C oraz asemblera. Rozr贸偶nia on s艂owa kluczowe, zmienne i komentarze, oznaczaj膮c je innym kolorem lub przez zmian臋 czcionki. Dodatkowo, do najnowszej wersji GCC do艂膮czony zosta艂 program fby艂 r贸wnie偶 we wcze艣niejszych wersjach, ale jako odr臋bny, zewn臋trzny) tworz膮cy zbi贸r przeznaczony dla programowego symulatora wbudowanego w AVR Studio, Dzi臋ki temu mo偶liwa jest symulacja dzia艂ania programu i jego uruchomienie, zanim zostanie zapisany w pami臋ci mi kro kontrolera.
Pami臋tam swoje wra偶enie, gdy rok temu po raz pierwszy skorzysta艂em z kompilatora GCC. Wydawa艂 mi si臋 on wtedy czym艣 zupe艂nie nie do u偶ytku. Obecnie jestem zdumiony jego mo偶liwo艣ciami i ca艂kowicie zmieni艂em swoj膮 opini臋 o nim.
Instalacja
Po pobraniu z witryny AVR Freaks (GCC ma rozmiar oko艂o llME, AVR Studio oko艂o 4MB) lub skorzystania z p艂yty CD-EP10/2002E, nale偶y zainstalowa膰 obydwa programy. Instalacja nie nastr臋cza 偶adnych problem贸w. AVR Studio to typowy program systemu Windows - jego wpis pojawi si臋 w menu Sta艅 jako ATMEL AVR Tools.
Inaczej jest z GCC. Jak wcze艣niej wspomnia艂em, jest to tak zwany kompilator zewn臋trzny i chocia偶 jego wpisy pojawi膮 si臋 w menu Start, to trudno b臋dzie go wywo艂a膰 z tego menu.
Konfiguracja
Po zainstalowaniu nale偶y skonfigurowa膰 AVR Studio tak, aby mo偶na by艂o pisa膰 i uruchamia膰 programy w j臋zyku C. Po pierwsze, musimy na dysku komputera za艂o偶y膰 katalog (folder), w kt贸rym przechowywane b臋d膮 programy napisane w GCC. Ja u偶ywam katalogu C:\SRC, w kt贸rym umieszczam wszystkie programy 藕r贸d艂owe w podka-talogach dla danego kompilatora, aby przy tworzeniu kopii zapasowej na dysku archiwalnym 艂atwo by艂o wszystkie te zbiory skopiowa膰, kopiuj膮c tylko jeden katalog. Programy 藕r贸d艂owe napisane w GCC zapisuj膮 w katalogu C:\SRC\AVR-GCC, ale ka偶dy u偶ytkownik mo偶e utworzy膰 w艂asny o dowolnej
Rys. 2
Rys. 3
Elektronika Praktyczna 10/2002
97
KURS
艢*艢 *.*.,rfm艂#-*N
Rys. 4
nazwie. Dobrze jest dla ka偶dego projektu utworzy膰 oddzielny podkatalog.
W celu wyja艣nienia przebiegu kompilacji skorzystajmy z przyk艂adowego programu dostarczanego wraz z GCC. Znajdziemy go na dysku twardym w katalogu C:\AVRGCC\GCCTEST\GCCTESTl pod nazw膮 gcctestl.c.
Tworzenie nowego zbioru projektu
Aby przeprowadzi膰 kompilacje., nale偶y uruchomi膰 AVR Studio. Z menu Project wybra膰 opcje. New (rys* l), wpisa膰 nazw臋, projektu oraz wskaza膰 katalog, w kt贸rym znajd膮 si臋 pliki 藕r贸d艂owe oraz wynikowe utworzone przez kompilator. Nast臋pnie nale偶y zaznaczy膰 Gene-ric 3id party G compiler i nacisn膮膰 OK, po czym zapisa膰 projekt na dysku wybieraj膮c Project - Save.
Dodawanie zbior贸w do projektu
Nale偶y ustawi膰 kursor myszy na Source Eiles w okienku Projeci, nacisn膮膰 prawy klawisz myszy i wybra膰 Add Eile (rys* 2), po czym wskaza膰
Rys. 5
zbi贸r gcctestl.c. Po dodaniu mo偶na otworzy膰 ten zbi贸r, klikaj膮c dwukrotnie na jego nazwie lub wybieraj膮c polecenie Open.
Nowy projekt wymaga dodania zbioru konfiguracyjnego programu Ma-ke. Zbi贸r o nazwie makefile znajdziesz w tym samym katalogu. Nale偶y post臋powa膰 z nim podobnie jak poprzednio: za pomoc膮 kursora wskaza膰 w okienku Projeci lini臋 Oiher Eiles (rys* 3) i nacisn膮膰 prawy klawisz myszy. Nast臋pnie z okienka menu nale偶y wybra膰 Add Eile i wskaza膰 zbi贸r o nazwie makefile. Wymaga on kilku s艂贸w wyja艣nienia.
Na list* 1 zamieszczono przyk艂ad prostego zbioru konfiguracyjnego, kt贸ry jest na tyle uniwersalny, 艣e prawdopodobnie jedynymi liniami, kt贸re b臋dzie trzeba czasami zmieni膰 s膮:
- Typ mikrokontrolera, czyli linia MCU = ai90s3515. Oczywi艣cie nale偶y tu wpisa膰 typ u偶ywanego w projekcie mikrokontrolera.
- Linia TRG = gcciesil, Nale偶y wpisa膰 nazw臋 zbioru 藕r贸d艂owego zawieraj膮cego program w j臋zyku C (bez rozszerzenia). W po艂膮czeniu z nast臋pn膮 li-
List. 1.
# Snopie Makefile Volker Oth {c) 1999
# edlted by AVRfreaks,net noyr2""l
########### change these lmes accordmg to your pro]ect ##################
#tll Wstaw naZWe mikro kontrolera (at9"s8515, at9"s8535, attmy22, atmega6"3 etc.) MCU = at90s8515
#tu Wpisz nazw臋 zbioru wynikowego kompilacji (bez rozszerzenia i) TRG = gcctestl
#tu poda] nazw臋 zbioru 藕r贸d艂owego, tekstu programu w Je偶yku C SRC= $(TRG) -c
ttdodatkowe zbiory 藕r贸d艂owe w Je偶yku aseinbler A3RC
ttdodatkowe zbiory bibliotek
LIE =
ttdodatkowe zbiory do艂膮czane do zbioru 藕r贸d艂owego do kompilacji
INC =
ttparainetry dla kompilatora asembler ASFLAGS = -Wa, -gstabs
ttparametry dla kompilatora GCC
CPFLAGS= -g -Os -Wall -Wstrict-prototypes -Wa,-ahlms=$(<;,c=.lstj
ttparametry lmkera
LDFLAGS = -Wl,-Map=$(TRGJ rmap,-cref
########### te] linii przypuszczalnie nigdy nie b臋dziesz zmienia艂 ############# lnclude $(AVRJ/ayrfreaks/ayr_make
###### tu dodawane s膮 zale偶no艣ci pomi臋dzy plikami ###################
Rys. 贸
ni膮 SRG=$(TRG}.c oznacza, 艣e zar贸wno zbi贸r 藕r贸d艂owy, jak i wynikowe b臋d膮 si臋 r贸偶ni艂y pomi臋dzy sob膮 tylko typem (rozszerzeniem nazwy).
Kompilowanie programu 藕r贸d艂owego projektu
Jak wcze艣niej wspomniano, kompilator GCC jest kompilatorem zewn臋trznym. Uruchamia si臋 go z poziomu linii komend, podaj膮c jako parametr wywo艂ania nazw臋 pliku tekstowego zawieraj膮cego program 藕r贸d艂owy. W taki w艂a艣nie spos贸b kompilator zostanie uruchomiony przez AVR Studio. AVR Studio umo偶liwia uruchomienie tylko jednego programu. Niestety, GCC wymaga wydania wielu komend przed jego uruchomieniem. Nasuwa si臋 bardzo proste rozwi膮zanie tego problemu - nale偶y utworzy膰 zbi贸r wsadowy komend, tak zwany baich file {*.hai).
W tym celu w dowolnym edytorze tekstowym, na przyk艂ad Notepadzie, nale偶y wpisa膰 nast臋puj膮c膮 list臋 komend:
@echo 艢**艢* start kompilacji *** @set AVR=c;\AVRGCC @set CC=ayr-gcc @set PATH=c;\AVRGCC\bin make %1 @echo 艢**艢* koniec kompilacji ***
Rys. 7
Rys. 8
98
Elektronika Praktyczna 10/2002
KURS
Rys. 9
Nast臋pnie nale偶y zapisa膰 ten zbi贸r w dowolnej lokalizacji, ale znajduj膮cej si臋 na li艣cie 艣cie偶ek, przeszukiwanych przez system Windows (komenda PATH w auioexec.bai). Ja umie艣ci艂em go w katalogu c:\WINDOWS. Nale偶y nazwa膰 go na przyk艂ad gcc_cmp.bai. i powr贸ci膰 do AVR Studio i otwartego okna projektu, po czym wskaza膰 Target; Debug, nacisn膮膰 prawy klawisz myszy i z menu wybra膰 polecenie Settings.
Najpierw w wy艣wietlonym oknie (rys. 4) nale偶y ustawi膰 warto艣ci p贸l otoczonych ramk膮 LinkerfRuild Siage Settings. Nale偶y wy艂膮czy膰 opcje. Run compile on each i zaznaczy膰 Run linker/bulid. W okienku Command lin臋 wpisz gcc_cmp.bat. W polach otoczonych ramk膮 Run Siage Settings nale偶y pozostawi膰 wpis Fttots; none oraz obj, zaznaczy膰 opcje. Run code i. wybra膰 OK.
Teraz kompilator jest gotowy do skompilowania projektu. Wskazuj膮c kursorem na Target; debug nale偶y nacisn膮膰 prawy klawisz myszy, a nast臋pnie wybra膰 Ruild (rys. 5).
Uwagi na temat kompilacji
Plik o nazwie makefile zawiera szereg polece艅 kompilatora. Mi臋dzy innymi jest w nim linia: #compiler fLags
CPFLAGS = -g -Os -Wall -Wstrict-prototypes -Wa,-ahlms=S(<:-c=-lst)
Rys. 10
Opcja -O okre艣la, jak b臋dzie optymalizowany kod wynikowy. Domy艣lnie ustawiona jest na -Os, co oznacza, 偶e kod b臋dzie optymalny pod wzgl臋dem rozmiaru. Zazwyczaj jest to nastawa zadowalaj膮ca przeci臋tnego programist臋. Jednak mo偶na w艂膮czy膰 r贸wnie偶 inne sposoby oraz poziomy optymalizacji. Szczeg贸艂owe informacje na ten temat mo偶na znale藕膰 na stronie interneto-wej AVR Freaks. Nie chc臋 ich tutaj przytacza膰, poniewa偶 parametry te mog膮 si臋 zmieni膰 wraz z wersj膮 kompilatora.
Kompilator tworzy na dysku kilka plik贸w wynikowych. Nie s膮 one usuwane po utworzeniu zbioru HEX. Doprowadza to do sytuacji, w kt贸rej podczas nast臋pnego wywo艂ania kompilatora, program Make mo偶e stwierdzi膰, 偶e nie jest konieczna ponowna kompilacja pliku 藕r贸d艂owego. Autorzy zalecaj膮 wi臋c przed ponownym uruchomieniem kompilatora usun膮膰 z dysku wszystkie zbiory wynikowe. Mo偶na to zrobi膰 w bardzo prosty spos贸b: jako parametr wywo艂ania gcc_cmp.bat poda膰 polecenie clean. W tym celu r贸wnie偶 mo偶emy pos艂u偶y膰 si臋 opcj膮 Target.
Nale偶y ustawi膰 kursor myszy na Target; Debug. Z menu wybra膰 Tai-geis, a nast臋pnie Add... (rys. 6). Pojawi si臋 okienko Add New Target (rys. 7). W polu nazwy nale偶y wpisa膰 na przyk艂ad clean, a w polu Copy sei-iings from wybra膰 Debug. To spowoduje, 偶e nowo utworzony zbi贸r nastaw odziedziczy je po Debug. Pierwsza linia w okienku Projeci to lista nastaw. Nale偶y wybra膰 z niej Target; clean. Nast臋pnie wskaza膰 poni偶ej Target; clean kursorem i nacisn膮膰 prawy klawisz myszy - z menu wybra膰 Settings. Mo偶na zauwa偶y膰, 偶e wszystkie w艂a艣ciwo艣ci poprzednio wpisywane w Target; Debug zosta艂y skopiowane. Jedyne, co nale偶y zrobi膰, to w okienku komend za wywo艂aniem gcc_cmp.bat dopisa膰 plecenie clean (rys. 8), nast臋pnie wybra膰 OK, aby zapami臋ta膰 nastawy.
Uruchomienie polecenia Ruild dla Target; clean (po naci艣ni臋ciu prawego klawisza) usunie wszystkie zbiory pochodz膮ce z poprzedniej kompilacji (rys. 9).
Symulacja pracy programu
Wcze艣niejsze wersje kompilatora GCC i AVR Studio wymaga艂y wykonania dosy膰 skomplikowanej procedury przy uruchamianiu symulacji programu. Osobno otwiera艂o si臋 zbiory wynikowe, osobno zbi贸r 藕r贸d艂owy w j臋zyku C. Teraz trzeba tylko wybra膰 z menu AVR Studio File oraz Open i otworzy膰 zbi贸r o nazwie gcctestl.cof. Jest on tworzony w trakcie kompilacji.
Rys. 11
Po tej operacji pojawi si臋 okienko, w kt贸rym konieczne b臋dzie wybranie typu mi kro kontrolera oraz wpisanie parametr贸w 艣rodowiska (rys. 10). Po naci艣ni臋ciu OK, symulator jest got贸w do pracy.
Symulator AVR Studio oferuje nam wiele r贸偶nych mo偶liwo艣ci. Ich opis z nadmiarem przekracza艂by ramy niniejszego artyku艂u. Wspomn臋 wi臋c mo偶e w skr贸cie tylko o tych najwa偶niejszych.
Kombinacja klawiszy SH1FT+ F5 dzia艂a tak jak zerowanie. Po nim mamy do wyboru r贸偶ne tryby wykonywania programu, 艂膮cznie z prac膮 w trybie automatycznym (tak zwanym animowanym). Naci艣ni臋cie klawisza Fll powoduje wykonanie pojedynczej linii programu, FlO pomini臋cie na przyk艂ad wywo艂ania procedury, a F5 uruchomienie programu tak, jak gdyby by艂 uruchamiany w mikrokontrolerze. Program b臋dzie wykonywany do napotkania pu艂apki oznaczonej przez F9 lub jego zako艅czenia w normalny spos贸b. Okienko o nazwie Waiches (rys. 11) umo偶liwia podgl膮d i modyfikacj臋 zmiennych. Mo偶na zobaczy膰 w jakim rejestrze dana zmienna si臋 znajduje i jak膮 ma warto艣膰. Mo偶na r贸wnie偶 j膮 zmodyfikowa膰 (w zale偶no艣ci od potrzeb uruchamianej aplikacji), po prostu wskazuj膮c w okienku Waiches warto艣膰 zmiennej i po pojawieniu si臋 kursora wpisuj膮c now膮.
Podsumowanie
Mam nadziej臋, 偶e ten artyku艂 u艂atwi zainteresowanym pierwsze kroki z kompilatorem GCC oraz umo偶liwi im tworzenie w艂asnych aplikacji. Reszta to ju偶 tylko kwestia praktyki i do艣wiadczenia. Polecam r贸wnie偶 lektur臋 materia艂贸w dost臋pnych na stronie internetowej AVR Freaks (hiip;// www.avrfreaks.net/) oraz grupy dyskusyjne zwi膮zane z GCC (r贸wnie偶 mo偶na je znale藕膰 na AVR Freaks). Jest to kopalnia wiedzy na tematy zwi膮zane z programowaniem mikrokontrole-r贸w AVR. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Dodatkowe informacje
Oprogramowanie opisane w artykule (tzn. kompilator GCC i AVR Studio 3.55) s膮 dost臋pne w Internecie na stronie www.avrlreaks.com, atak偶e naptycie CD-EP10/2002B.
Elektronika Praktyczna 10/2002
99
NA CD KATALOGI: CMOS4000, MIKROKONTROLERY STM
g Mi臋dzynarodowy magazyn elektronik贸w konstruktor贸w
11/2002 listopad 15 z艂 50 gr (wtym7%vAT)
NIE-MIKROPROCESOROWY PROGRAMOWANY TIMER-GENERATOR PROGRAMOWANY 4-KANA艁OWY KOMPARATOR/WOLTOMIERZ DOMOWY APARAT TELEFONICZNY Z KART膭 CHIPOW膭 OBS艁UGA ENKODER脫W OBROTOWYCH W VHDL
i\snra\ d.
PODZESPO艁Y:
cz臋艣膰 6
Program owa obs艂uga synchronicznych
interfejs贸w szeregowych: SPI, PC i 1-Wire z pewno艣ci膮
zainteresuje wielu projektant贸w system贸w mikroprocesorowych.
Jak przygotowa膰 procedury obs艂ugi dla tych interfejs贸w
w j臋zyku C, dowiecie si臋 z artyku艂u.
Programowa obs艂uga SPI w j臋zyku C
Popularno艣膰 synchronicznego interfejsu szeregowego SPI [Serial Peripherial Interface) ro艣nie. Pozwala on na szybk膮 komunikacj臋 pomi臋dzy uk艂adami bez anga偶owania du偶ej liczby wyprowadze艅, co jest bardzo istotne w nowoczesnych aplikacjach mik-rokontroler贸w.
W tym interfejsie dane s膮 wysy艂ane szeregowo przez wyj艣cie MOSI i r贸wnocze艣nie odbierane przez wej艣cie MISO (r贸wnie偶 szeregowo) . Sygna艂 SCK synchronizu-je transmisj臋, ustawianie stanu wyj艣cia i pr贸bkowanie stanu wej艣cia. Sygna艂 selekcyjny slave SS umo偶liwia wyb贸r uk艂adu, z kt贸rym nast臋puje wymiana danych. Linie MISO i MOSI s膮 jednokierunkowe. Inaczej jest z lini膮 SCK. Jej stan powinien by膰 badany przed wys艂aniem danych. W momencie tego "badania" musi by膰 ona ustawiona jako wej艣ciowa. Nast臋pnie jest
ustawiana jako wyj艣ciowa, poniewa偶 uk艂ad master musi wysy艂a膰 sygna艂 zegarowy synchronizuj膮cy transmisj臋. Stosuj膮c konfiguracj臋 z pojedynczym uk艂adem master, tak偶e wyprowadzenie SCK mo偶e by膰 zwyk艂ym wyj艣ciem.
Programowanie interfejsu SPI zaprezentujemy na przyk艂adzie uk艂adu procesora AT89S8252 z rodziny MCS51. Maksymalna szybko艣膰 transmisji jego interfejsu wynosi 1,5 Mbd. Istnieje mo偶liwo艣膰 jej zmiany przez ustawienie odpowiednich bit贸w rejestr贸w kontrolnych okre艣laj膮cych nastawy wewn臋trznego preskalera. Do ustawiania tryb贸w pracy oraz kontroli statusu interfejsu SPI s艂u偶膮 trzy o艣miobitowe rejestry. Funkcje i znaczenie poszczeg贸lnych bit贸w s膮 identyczne jak w mikrokontrolerach z rodziny AVR. S膮 to rejestry: - rejestr kontrolny SPCR (dost臋pny w obszarze rejestru funkcji specjalnych pod adresem D5H),
List. 4. Wys艂anie bajtu danych, SPI w trybie master. Flaga kolizji nie jest badana
#include unsigned char spistatus; sbit SS = P1A4;
//zmienna pomocnicza //linia portu sygna艂u SS
//obs艂uga przerwania interfej su SPI (2 3H) void SPI_Irq(void) interrupt 5
spistatus = 0;
//inicjowanie trybu master interfej su void SPI_Master(void)
While (SS != 1); SPCR = 0xF8;
//oczekiwanie na zwolnienie linii SS //ustalenie trybu pracy SPI
//wys艂anie bajtu przez interfejs SPI Void SPI_Send(unsigned char X)
SPIE = SPE = 0; SPI_Master() ; SS = 0;
spistatus = 1; SPIE = SPE = 1; SPDR = X; While (spistatus
= = 1)
//wy艂膮czenie przyjmowania przerwa艅
//ustalenie trybu master dla SPI
//zerowanie linii wyboru slave SS
//znak nie zosta艂 wys艂any, spistatus=l
//zezwolenie na przyjmowanie przerwa艅
//zapis bajtu do rejestru danych SPI
//oczekiwanie na zako艅czenie wysy艂ania bajtu danych
- rejestr statusu SPSR (jak wy偶ej, pod adresem AAH),
- rejestr danych SPDR (jak wy偶ej, pod adresem 86H).
Po ustawieniu bitu SPE [SPI Enable) w rejestrze SPCR, wyprowadzenia portu Pl mikrokontro-lera pe艂ni膮 rol臋 linii interfejsu SPI i pod艂膮czane s膮 odpowiednio: P1.4 jako SS, P1.5 - MOSI, P1.6 - MISO, P1.7 - SCK.
Znaczenie poszczeg贸lnych bit贸w w rejestrze kontrolnym SPCR jest nast臋puj膮ce: SPIE SPE DORD MSTR CPOL CPHA SPR1 SPRO
SPIE - ustawienie tego bitu oraz bitu ES w rejestrze IE powoduje zezwolenie na generowanie przerwa艅 przez interfejs SP. Generowany jest wektor przerwania o numerze 5 (23H).
SPE - ustawienie bitu SPE powoduje za艂膮czenie interfejsu SPI oraz skonfigurowanie odpowiednich wyprowadze艅 portu Pl jako linii interfejsu.
DORD - ustawienie bitu DORD powoduje, 偶e jako pierwszy wys艂any (przyj臋ty) zostanie najmniej znacz膮cy bit s艂owa, natomiast wyzerowanie - najbardziej znacz膮cy.
MSTR - ustawienie bitu powoduje, 偶e interfejs SPI pracuje w trybie master. Jego wyzerowanie powoduje przej艣cie do trybu slave.
CPOL - polaryzacja sygna艂u zegarowego. Warto艣膰 tego bitu okre艣la, czy aktywne (rozpoczynaj膮ce transmisj臋) zbocze sygna艂u zegarowego SCK jest narastaj膮ce (zmiana SCK z "0" na "1" - SCK jest "0", gdy SPI nie pracuje), czy opadaj膮ce (zmiana SCK z "1" na "0" -
Elektronika Praktyczna 11/2002
101
KURS
List. 5. Przyk艂ad procedury odbierania znak贸w przez interfejs SPI w trybie slave
#include
sbit SS = P1A4; //deklaracja linii SS
unsigned char counter; //licznik odebranych bajt贸w
unsigned char buferror; //b艂膮d przepe艂nienia bufora SPI
unsigned char idata bufor[20]; //bufor odebranych znak贸w (20 bajt贸w)
unsigned char ptr = *bufor; //wska藕nik do bufora
//procedura obs艂ugi przerwania interfej su SPI (23H) napisana tylko jako //przyk艂ad programowania! void SPI_Irq(void) interrupt 5 {
ptr* = SPDR; //zapis odebranego znaku do bufora
ptr++; //nast臋pna pozycja
//b艂膮d, gdy odebrano zbyt du偶o znak贸w
if (counter++ >2 0) buferror = 1;
//ustawienie trybu slave dla SPI Void SPI_Slave(void);
SPCR = 0xE8;
//odbi贸r znak贸w
Void SPI_Receive(void)
{
SPIE = SPE = 0;
buferror = counter =
ptr = &bufor;
SS = 1; SPI_Slave() ; SPIE = SPE = 1;
//bit MSTR = 0
//wy艂膮czenie przyjmowania przerwa艅 //zerowanie licznika oraz flagi b艂臋du //przypisanie wskaza艅 na pocz膮tek //bufora odbioru znak贸w //zwolnienie SS (na wszelki wypadek) //za艂膮czenie trybu slave //zezwolenie na przerwania SPI
SCK jest "1", gdy SPI nie pracuje), jak zestawiono poni偶ej.
Stan Zbocze Zbocze
bitu sygna艂u SCK sygna艂u SCK
CPOL inicjuj膮ce ko艅cz膮ce
transmisj臋 transmisj臋
CPOL = 0 narastaj膮ce opadaj膮ce
CPOL = 1 opadaj膮ce narastaj膮ce
CPHA - faza sygna艂u zegarowego. Warto艣膰 tego bitu okre艣la moment pr贸bkowania i wyprowadzania informacji poprzez interfejs SPI, jak pokazano poni偶ej. Warto艣膰 Pierwsze Drugie bitu zbocze SCK zbocze SCK CPHA (odpowiednio (odpowiednio
do CPOL) do CPOL)
CPHA = O pr贸bkowanie ustawianie
MISO MOSI
CPHA = 1 ustawianie pr贸bkowanie MOSI MISO
SPRl, SPRO - bity preskalera sygna艂u zegarowego s艂u偶膮ce do ustawiania pr臋dko艣ci transmisji interfejsu SPI. Nastawy bit贸w dotycz膮 tylko pracy interfejsu w trybie master. Cz臋stotliwo艣膰 sygna艂u SCK = FOsc/n> PrzY czym ma warto艣ci podane poni偶ej. SPR1 SPRO Wsp贸艂czynnik podzia艂u n 0 0 4
0 1 16
1 0 .64 1 1 128
Uwaga: maksymalna cz臋stotliwo艣膰 sygna艂u SCK dla AT89S8252 wynosi 1,5 MHz.
Znaczenie poszczeg贸lnych bit贸w rejestru statusu SPSR (AAh) jest nast臋puj膮ce:
SPIF WCOL......
SPIF - ustawienie SPIF oznacza skompletowanie s艂owa odbieranego/nadawanego poprzez interfejs SPI i wygenerowanie przerwania. Bit ten jest zerowany podczas odczytu rejestru statusu oraz dost臋pu do rejestru danych SPI.
WCOL - bit jest ustawiany, je艣li nast膮pi艂a pr贸ba zapisu danych podczas trwaj膮cej transmisji SPI. Bit jest zerowany wraz z bitem SPIF.
Obs艂uga sprz臋towego interfejsu SPI jest bardzo 艂atwa. Mo偶na j膮 zrealizowa膰 co najmniej dwoma sposobami: wykorzystuj膮c przerwanie generowane przez interfejs SPI lub testuj膮c bit SPIF podczas transmisji.
Prezentowane poni偶ej przyk艂ady program贸w napisanych w j臋zyku C wykorzystuj膮 mechanizm przerwa艅. Jest to bardzo korzystne, poniewa偶 wygenerowanie przerwania upewnia nas, 偶e dane zosta艂y wys艂ane lub odebrane. Nie ma wi臋c potrzeby wykonywania dodatkowych test贸w.
Programowa obs艂uga PC w j臋zyku C
Interfejs I2C pozwala na komunikacj臋 wielu r贸偶nych uk艂ad贸w poprzez dwuprzewodow膮 magistral臋. Dwie dwukierunkowe linie, SDA i SCL, s艂u偶膮 do transmisji danych pomi臋dzy uk艂adami. Linia SDA nazywana jest lini膮 danych, natomiast linia SCL lini膮 zegara. Wszystkie uk艂ady do艂膮czane s膮 do nich bezpo艣rednio - nie s膮 wymagane 偶adne obwody sprz臋gaj 膮ce (ewentualnie wyprowadzenia odpowiednich linii mog膮 by膰 do艂膮czone przez rezystor). Uk艂ady wyposa偶one w interfejs I2C mog膮 pracowa膰 w jednym z dw贸ch tryb贸w:
- master, w kt贸rym uk艂ad przejmuje kontrol臋 nad magistral膮 i przebiegiem transmisji danych, wysy艂a sygna艂y start (ujemne zbocze na SDA przy wysokim poziomie na SCI) i stop (dodatnie zbocze na SDA przy wysokim poziomie na SCI), generuje tak偶e sygna艂 zegarowy,
- slave, w kt贸rym funkcje uk艂adu s膮 kontrolowane przez urz膮dzenie master.
System zbudowany z wykorzystaniem magistrali I2C posiada jeden mikrokontroler pracuj膮cy w trybie master oraz wiele uk艂ad贸w slave. Ka偶dy z uk艂ad贸w sla-ve musi mie膰 w艂asny unikatowy adres. Mikrokontroler odczytuj膮c lub zapisuj膮c dane, inicjuje transmisj臋, pos艂uguj膮c si臋 adresem konkretnego uk艂adu.
Niekt贸re z uk艂ad贸w do艂膮czonych do magistrali I2C mog膮 nie tylko odczytywa膰, lecz r贸wnie偶
Tab. 2. Zestawienie tryb贸w pracy interfejsu SPI i przyporz膮dkowanie im warto艣ci bit贸w CPOL i CPHA
Stan bit贸w CPOL i CPHA Pierwsze zbocze SCK Drugie zbocze SCK Tryb pracy SPI
CPOL = 0, CPHA = 0 pr贸bkowanie MISO ustawianie MOSI 0
CPOL = 0, CPHA = 1 ustawianie MOSI pr贸bkowanie MISO 1
CPOL=1,CPHA = 0 pr贸bkowanie MISO ustawianie MOSI 2
CP0L=1,CPHA = 1 ustawianie MOSI ustawianie MOSI 3
102
Elektronika Praktyczna 11/2002
KURS
wysy艂a膰 dane. Pracuj膮 wi臋c jako nadajniki albo jako odbiorniki danych. Nale偶膮 do nich na przyk艂ad uk艂ady pami臋ci lub przetwornik贸w analog owo-cyfrowych. Mo偶liwo艣膰 wysy艂ania danych nie oznacza, 偶e dany uk艂ad pracuje jako master. Uk艂ad przesy艂aj膮cy nie musi bowiem przejmowa膰 kontroli nad transmisj膮 - korzysta z sygna艂贸w steruj膮cych wyst臋puj膮cych na magistrali I2C. Uk艂adem master jest ka偶dorazowo ten, kt贸ry inicjuje transmisj臋, wysy艂aj膮c sygna艂 start, a przerywa j膮, wysy艂aj膮c sygna艂 stop oraz generuje sygna艂 zegara.
Transmisja jest synchronizo-wana sygna艂em SCK, kt贸ry mo偶e mie膰 cz臋stotliwo艣膰 z zakresu 0... 10 0/400/3400 kHz. Nie s膮 okre艣lone minimalne warto艣ci szybko艣ci transmisji, a wi臋c i cz臋stotliwo艣ci sygna艂u zegarowego. Inaczej jest dla warto艣ci maksymalnej. Ta jest okre艣lona jako 100 kbd w trybie standard, 400 kbd w trybie szybkim oraz 3,4 Mbd w trybie high speed.
Chocia偶 typow膮 jest konfiguracja z jednym uk艂adem master, to mo偶liwe jest r贸wnie偶 do艂膮czenie wielu uk艂ad贸w pracuj膮cych w tym trybie do jednej magistrali. Stosowana jest w贸wczas odpowiednia procedura arbitra偶u w celu rozstrzygni臋cia, kt贸ry z uk艂ad贸w master przejmie w danej chwili kontrol臋 nad magistral膮, a kt贸ry musi czeka膰. Zwykle arbitra偶 nie jest potrzebny, poniewa偶 transmisja danych mo偶e by膰 zainicjowana tylko wtedy, gdy magistrala jest wolna. Jednak mo偶e zdarzy膰 si臋 tak, 偶e dwa uk艂ady master do艂膮czone do tych samych linii interfejsu nieomal jednocze艣nie wygeneruj膮 sygna艂 startu. W贸wczas arbitra偶 staje si臋 niezb臋dny.
Na list. 6 pokazano, jak mo偶na napisa膰 procedur臋 w j臋zyku C obs艂ugi pojedynczego uk艂adu master. Jest to przyk艂ad procedury, kt贸ra mo偶e przyda膰 si臋 w贸wczas, gdy do magistrali I2C pod艂膮czone s膮 na przyk艂ad uk艂ady: pami臋膰 EEPROM, przetwornik analog owo-cyfrowy, uk艂ad zegara czasu rzeczywistego i pojedynczy mikrokontroler korzystaj膮cy z ich danych.
Funkcja DelayO wyst臋puj膮ca w r贸偶nych miejscach procedury
List. 6. Przyk艂ad realizacji interfejsu I2C dla pojedynczego uk艂adu master
pojedynczy uk艂ad master I2C RC-51
#include sbit SDA PlA0; sbit SCL P1A1;
//definiowanie po艂膮cze艅 I2C
//wys艂anie sekwencj i START, bez badania stanu zaj臋to艣ci I2C
void I2C_Start(void)
{
SDA = SCL = 1; DelayO i
SDA = 0; DelayO i
SCL = 0;
/* wys艂anie sekwencj i STOP, funkcja zwraca stan linii SDA po zako艅czeniu;
je艣li uk艂ad slave wymusza stan niski SDA - b艂膮d transmisji */ bit I2C_Stop(void) {
SDA = 0; DelayO i
SCL = 1; DelayO i
SDA = 1; DelayO i
return (~SDA);
/* odczyt bajtu z magistrali I2C; jako parametr wywo艂ania podawany jest bit ACK,
poniewa偶 niekt贸re bajty odczytywane s膮 z NACK */ unsigned char I2C_Read(bit ack) {
unsigned char bitCount = 8, temp;
SDA = 1; do
DelayO ; SCL = 1; DelayO ; t emp < < = 1; if (SDA) temp++; SCL = 0; } while(--bitCount);
//wprowadzenie 0
//ustawienie bitu, gdy SDA jest wysoki
//wys艂anie bitu ACK
SDA = ack; DelayO ; SCL = 1; DelayO ; SCL = 0; return (temp);
/* wys艂anie s艂owa na magistral臋 I2C, funkcja zwraca stan bitu ACK */
bit I2C_Send(unsigned char byte)
{
unsigned char bitCount = 9;
bit t emp;
do {
SCL = 0;
SDA = byte & 0x80; // stan SDA jako wynik iloczynu bitowego
byte = (byte << 1) + 1;
DelayO ;
SCL = 1;
DelayO ; } while(--bitCount);
temp = SDA; SCL = 0; return (temp);
// ACK = 0, NACK = 1
wstrzymuje prac臋 mikrokontrolera na oko艂o 5..6 |is. W przypadku mikrokontrolera z rodziny 8051 pracuj膮cego z zegarem 10...12 MHz, wystarczy 6 instrukcji NOP.
Programowa obs艂uga interfejsu 1-Wire w j臋zyku C
Interfejs 1-Wire (pami臋tam swoj膮 reakcj臋 na pierwsze artyku艂y w EP na ten temat) zyskuje coraz wi臋cej zwolennik贸w.
Transmisja danych z jego u偶yciem nie jest mo偶e osza艂amiaj膮co szybka, lecz mo偶liwo艣膰 do艂膮czenia czujnik贸w temperatury czy uk艂ad贸w sterowania 艣wiat艂em, za pomoc膮 tylko jednego przewodu dostarczaj膮cego sygna艂 i zasilanie (oczywi艣cie konieczna jest r贸wnie偶 masa, ale mo偶e by膰 zrealizowana na wiele r贸偶nych sposob贸w), mo偶e by膰 bardzo atrakcyjna w wielu zastosowaniach.
Elektronika Praktyczna 11/2002
103
KURS
#deflne MATCH_ROM 0x55
#define SKIP_ROM 0xCC
#define SEARCH ROM 0xF0
#define SEARCH_FIRST 0xFF
#define PRESENCE ERR 0xFF
#define DATA_ERR 0xFF
#define LAST_DEVICE 0x00
#define XTAL 110592
#define nop() ACC++
List. 7. Przyk艂ad programowej realizacji interfejsu 1-Wire
/* Biblioteka procedur obs艂ugi magistrali 1W Raisonance RC-51 */ #inelud臋
//definicje komend 1W
//0x00: znaleziono urz膮dzenie //0x01. . .0x4 0: kontynuacja poszukiwania //definicja rezonatora (8..2 5MHZ!) //op贸藕nienie, 1 cykl maszynowy
sbit one_wire_I0 = PlA0; //definicja pod艂膮czenia linii portu 1W
//wys艂anie polecenia "1W Reset" bit one_wire_reset(void)
unsigned char delay; bit err;
//p臋tla op贸藕nienia 480 < t < 960 cykli delay = (unsigned char)(XTAL/12e6*480/4);
do //p臋tle op贸藕niaj膮ce s艂u偶膮 do wytworzenia
{ //tzw. timeslots, kt贸rych dok艂adny opis
one_wire_I0 = 0; //mo偶na znale藕膰 w opisie standardu 1W
nop(); } while(--delay);
//p臋tla op贸藕nienia 60one_wire_I0 = 1; } while(--delay) ; err = one_wire_I0; //stan niski oznacza, 呕e urz膮dzenie(a)
//1W jest(s膮) pod艂膮czone
//op贸藕nienie 480 < t
delay = (unsigned char)(XTAL/12e6*(480-66)/4); do
nop(); nop(); } while(--delay); err = one_wire_I0; return !err;
//stan niski linii portu 1W oznacza b艂膮d
//przes艂anie lub odczyt bitu przez lini臋 1W
bit one_wire_bit_io(bit b)
{
unsigned char delay;
delay = (unsigned char) (XTAL/12e6*15/2-2 ) ; //15 > t
one_wire_I0 =0; //I
one_wire_I0 = b; //3
while(--delay); //3 + delay * 2
b = one_wire_I0;
delay = (unsigned char)(XTAL/12e6*45/2); //60 < t
while(--delay);
one_wire_I0 = 1;
return b;
//przes艂anie bajtu przez lini臋 1W
unsigned char one_wire_byte_write(unsigned char b)
unsigned char bit_counter = 8; do
b = b 1 I (one_wire_bit_io( b & 1 ) ? 0x80: 0); } while(--bit_counter) ; return b;
//odczyt bajtu z linii 1W
unsigned char one_wire_byte_read( voi
return one_wire_byte_write(0xFF);
//wys艂anie komendy (komend) do urz膮dzenia 1W; lista 8 bajt贸w do wys艂ania
1/wskazywana przez ptr wype艂nienie tablicy wskazywanej przez ptr oznacza,
7/呕e komendy dotycz膮 konkretnego urz膮dzenia pod艂膮czonego do 1W; w贸wczas to
//tablica powinna zawiera膰 jego identyfikator
Void one_wire_send_command(unsigned char command, unsigned char *ptr)
{
unsigned char byte_count = 8;
one_wire_reset();
if(ptr)
{
one_wire_byte_write(MATCH_R0M); //komendy przesy艂ane do urz膮dzenia
do
{
one_wire_byte_write (*ptr) ,-ptr++;
} while(--byte_count) ; } else
one_wire_byte_write(SKIP_R0M); //ptr = null, komenda dla wszystkich
//urz膮dze艅 one_wire_byte_write(command);
Pierwotnie interfejs by艂 przeznaczony do komunikacji na bardzo ma艂e odleg艂o艣ci. S艂u偶y艂 do pod艂膮czenia na przyk艂ad uk艂adu zewn臋trznej pami臋ci do mikrokontrolera z u偶yciem tylko jednego wyprowadzenia. Wkr贸tce jednak projektanci zacz臋li domaga膰 si臋 rozwi膮za艅 umo偶liwiaj膮cych pod艂膮czenie uk艂ad贸w znajduj膮cych si臋 w znacznie wi臋kszej odleg艂o艣ci. W贸wczas to opracowano zupe艂nie nowe protoko艂y transmisji danych uwzgl臋dniaj膮ce wi臋ksze d艂ugo艣ci po艂膮cze艅, prac臋 w sieci i mechanizmy kontroli przesy艂anych danych.
Podobnie jak dla wi臋kszo艣ci interfejs贸w szeregowych, r贸wnie偶 i dla 1-Wire transmisja przebiega w konfiguracji master-slave. Uk艂ad master wyszukuje i adresuje uk艂ad slave oraz steruje przesy艂aniem danych. Dane przesy艂ane s膮 synchronicznie z pr臋dko艣ci膮 do 16,3 kb d (w tryb i e o verdrive d o 115 kbd). W du偶ym uproszczeniu mo偶na powiedzie膰, 偶e ka偶de opadaj膮ce zbocze sygna艂u inicjuje i synchronizuje przesy艂anie bitu. Podobnie jak przy transmisji I2C, nie s膮 okre艣lone dolne granice warto艣ci cz臋stotliwo艣ci sygna艂u synchronizuj膮cego. Pozwala to na 艂atw膮 implementacj臋 program贸w obs艂ugi transmisji w standardzie 1-Wire. Nie jest bowiem wymagany dok艂adny pomiar czasu impuls贸w, jak przy programowej obs艂udze interfejsu UART.
Na list. 7 zastosowano nast臋puj膮c膮 instrukcj臋:
i
(one_wi re_bi t_io(
1 ) ? 0x8 0: 0);
U偶yto w niej operatora warunkowego. Dzia艂a on w ten spos贸b, 偶e najpierw wyznaczana jest warto艣膰 pierwszego wyra偶enia one_wire_bit_io(b & 1). Je艣li warto艣膰 tego wyra偶enia jest r贸偶na od 0, to wynikiem jest warto艣膰 wyra偶enia drugiego - 0x80, w przeciwnym wypadku trzeciego - 0. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Dodatkowe informacje
Wszystkie programy prezentowane w artykule kompilowano za pomoc膮 ewaluacyjnej wersji pakietu RIDE firmy Raisonance (www.raisonance.com).
Krajowym dystrybutorem tej firmy jest Eurodis Microdis, www.microdis.net,tel. (71)301-04-00.
Ewaluacyjn膮 wersj臋 pakietu firmy Raisonance dla mikrokontroler贸w '51 zamie艣cili艣my na CD-
EP8/2002B.
104
Elektronika Praktyczna 11/2002
PROJEKTY CZYTELNIK脫W
DzioS "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.
Nie-mi kroprocesoro wy programowany timer-generator
"Programowany iimer" wi臋kszo艣ci Czytelnik贸w kojarzy si臋 z pewno艣ci膮 z urz膮dzeniem mikroprocesorowym. Prezentowany w artykule projekt taki jednak nie jest, chocia偶 nadal jest to urz膮dzenia cyfrowe. Czy kto艣 jeszcze pami臋ta, 偶e mo偶na sobie poradzi膰 bez 39C2051 i Pascoma?
WYKAZ ELEMENT脫W
Rezystory
Pl: potencjometr
monta偶owy 1MO
Rl: l,5kG
R2: 300kO
R3...R5: lOkO
R贸: lkG
R7: 91 OD
R8...R23: 脫20D
Kondensatory
Cl: 47pF
C2: 39pF
C3: 470nF
C4: 560pF
C5: lOnF
C贸: 47|JF/1脫V
C7, C3: 47nF
C9: 10|jF/1脫V
Trl, Tr2: trymer 5...30pF
P贸艂przewodniki
D1...D1脫: LED 2.5x5 mm
D17: LED okrgg艂o
Tl: BC149
U1...U3: 4093
U4: 4029
U5: 4536
U贸: 4515
U7: 4027
R贸偶ne
Sl: prze艂膮cznik przyciskowy
miniaturowy
S2: prze艂膮cznik suwakowy
S3: prze艂膮cznik przechylny
Xl: kwarc 4,194304 MHz
X2: kwarc 32,708 kHz
Gniazdo BNC
Z艂膮cze do baterii 9V
Obudowa Z-4
Projekt
104
Schemat elektryczny ti-rnera pok膮sano na rys. 1. Urz膮dzenie mo偶e s艂u偶y膰 do generowania przebi eg 贸w prostok膮tnych w szerokim za-kresie cz臋stotliwo艣ci (od u艂amk贸w Hz do kilku MHz). Cz臋sto w tego typu urz膮dzeniach wykorzystywane s膮 wielostopniowe dzielniki cz臋stotliwo艣ci. Tak jest te偶 i w tym przypadku. Jednak w proponowanym rozwi膮zaniu uda艂o si臋 wyeliminowa膰 prze艂膮czniki steruj膮ce stopniem podzia艂u. By艂o to mo偶liwe dzi臋ki wykorzystaniu uk艂adu 453 6, kt贸rego wewn臋trzny 2 4-s to pni o wy dzielnik sterowany jest w kodzie dw贸jkowym (wej艣cia AECD oraz wej艣cie Pypass). Do zmiany stopnia podzia艂u s艂u偶y tylko jeden przycisk - Sl.
Generator sk艂ada si臋 z nast臋puj膮cych blok贸w:
- generator贸w cz臋stotliwo艣ci "u偶ytkowej" (Ul, Cl, Rl,Xl, Trl, U2, C2, R2, X2, Tr2),
- uk艂adu steruj膮cego stopniem podzia艂u dzielnika
4536 (U3, Pl, C3, R3, C5, Sl, U4, R4),
- programowanego dzielnika 4536 (U5),
- wska藕nika stopnia podzia艂u dzielnika (U7, C4, R5, R6, Tl, D17, R7, U6, D1...D16, R8...R23).
Dzia艂anie urz膮dzenia przebiega nast臋puj膮co: w bloku generator贸w zastosowano dwa generatory kwarcowe. Cz臋stotliwo艣ci kwarc贸w wynosz膮: 32,768 kHz i 4,194304 MHz. Dzi臋ki temu na wyj艣ciu uk艂adu mo偶emy uzyska膰 cz臋stotliwo艣膰 od ok. 0,002 Hz do ok. 2 MHz. Oczywi艣cie, w zale偶no艣ci od potrzeb, mo偶na zastosowa膰 inny kwarc lub tylko jeden generator. Wyboru generatora dokonuje si臋 za pomoc膮 prze艂膮cznika S2. S膮 to typowe generatory kwarcowe zbudowane z u偶yciem bramek NAND (Ul i U2). Sygna艂 z wybranego generatora podawany jest na wej艣cie dzielnika 4536 (U5).
Kolejny blok to uk艂ad steruj膮cy dzielnikiem 4536. Sk艂ada si臋 on z generatora pomoc-
2n (sr. dziel) Wsp贸艂czynnik podzia艂u Cz臋stotllv kwarc 32,768 kHz o&wyl&la kwarc 4,194304 MHz
1 2 16384 2097152
2 4 8192 1048576
3 8 4096 524288
4 16 2048 262144
5 32 1024 131072
6 64 512 65536
7 128 256 32768
8 256 128 16384
9 512 64 8190
10 1024 32 4096
11 2048 16 2048
12 im 8 1024
13 8192 4 512
14 16384 2 256
1S 32768 1 128
16 65536 1/2 64
17 131072 1/4 32
18 262144 1/8 16
19 524288 1/16 8
20 1048576 1/32 4
21 2097152 1/64 2
22 4194304 1/128 1
23 8388608 1/256 1/2
24 16777216 1/512 1/4
Elektronika Praktyczna 11/2002
105
PROJEKTY CZYTELNIK脫W
Rys. 1
niczego, uk艂adu r贸偶niczkuj膮cego, licznika 4029 (U4), prze-rzutnika J-K (U7) oraz przycisku Sl. Generator pomocniczy jest typowym generatorem RC na bramce NAND (3A). Potencjometr monta偶owy Pl s艂u偶y do regulacji cz臋stotliwo艣ci (zalecana cz臋stotliwo艣膰 ok. 2 Hz). Uk艂ad r贸偶niczkuj膮cy formuje kr贸tkie impulsy dodatnie na wej艣ciu bramki 3B, wi臋c na wyj艣ciu otrzymujemy kr贸tkie impulsy ujemne. Wej艣cie CLK licznika 4029 (U4) jest ,,podci膮gni臋te" do plusa przez rezystor R4. Dzi臋ki temu wyeliminowany zosta艂 efekt wielokrotnych odbi膰 styk贸w przycisku Sl. Po zwarciu przycisku Sl nic si臋 nie dzieje, dop贸ki na wyj艣ciu bramki 3B nie pojawi si臋 impuls ujemny. Zak艂adamy, 偶e w sytuacji pocz膮tkowej na
I
wyj艣ciach QA...QD licznika 4029 mamy stan 0000. Dioda D17 艣wieci si臋 tzn. stopnie 1...8 s膮 od艂膮czone. Dla takiego stanu uk艂ad 45 36 dzieli wchodz膮ce impulsy przez 2. Przy zwartym przycisku S1 kolejny impuls na wej艣ciu licznika powoduje ustawienie na wyj艣ciu stanu 0001. Powoduje to zmian臋 stopnia podzia艂u uk艂adu 45 3 6, kt贸ry dzieli teraz przez 4. Kolejne impulsy powoduj膮 zwi臋kszenie stopnia podzia艂u o 1. Kiedy licznik U4 zliczy 16 impuls贸w, na jego wyj艣ciu CA pojawia si臋 sygna艂 przepe艂nienia. Zostaje on zr贸偶niczkowany (R5, C4) i podany na wej艣cie CLK przerzutnika J-K (U7). Zak艂adaj膮c, 偶e w sytuacji pocz膮tkowej na wyj艣ciu / Q przerzutnika J-K panowa艂 stan wysoki, po zr贸偶niczko-
waniu sygna艂u CA nast臋puje zmiana stanu na wyj艣ciach przerzutnika. Stan niski z wyj艣cia /Q powoduje wygaszenie diody LED (D17) oraz zablokowanie obwodu Bypass w dzielniku 4536. Na wyj艣ciu licznika U4 mamy ponownie stan 0000, ale teraz stopie艅 podzia艂u uk艂adu U5 wynosi 1+8, czyli 9. Na wyj艣ciu U5 otrzymujemy wi臋c sygna艂 podzielony przez 29, czyli 512. Gdy licznik U4 zape艂ni si臋 ponownie, kolejny impuls na wyj艣ciu CA spowoduje zmian臋 stanu wyj艣膰 przerzutnika J-K, odblokowanie obwodu Bypass i zapalenie diody D17. Kolejny blok to uk艂ad steruj膮cy wska藕nikiem stopnia podzia艂u. Sk艂ada si臋 on z de-multipleksera (U6) oraz 16 diod LED. Demultiplekser sterowany jest z wyj艣cia licznika
T1 ,BC149B
(U4). W ka偶dej chwili tylko 1 z 16 wyj艣膰 jest aktywne. Dzi臋ki temu wiemy, jaki jest stopie艅 podzia艂u uk艂adu U5, czyli znamy cz臋stotliwo艣膰 na wyj艣ciu. Rozwi膮zanie to zastosowano ze wzgl臋du na ba-teryjne zasilanie urz膮dzenia. Mo偶na r贸wnie偶 zastosowa膰 zasilanie z zewn臋trznego zasilacza. Napi臋cie zasilaj膮ce powinno si臋 zawiera膰 w przedziale od 7 V do 15 V.
Korzystanie z powy偶szego urz膮dzenia bez wykorzystania cz臋sto艣ciomierza mo偶e u艂atwi膰 tab. 1.
Dla u艂atwienia nale偶y doda膰, 偶e je艣li dioda D17 艣wieci si臋, to cz臋stotliwo艣膰 wyj艣ciow膮 odczytujemy z wierszy od 1 do 16. Natomiast je艣li jest wygaszona, to cz臋stotliwo艣膰 odczytujemy z wierszy od 9 do 24.
106
Elektronika Praktyczna 11/2002
AUTOMATYKA
Wysy艂anie komunikat贸w SMS ze sterownik贸w PLC
Gdy operatorzy telefonii kom贸rkowej udost臋pnili us艂ugi SMS, nie by艂o jasne, jakie b臋d膮 jej dalsze losy. Okaza艂o si臋 jednak, 偶e us艂uga nie tylko przyj臋艂a si臋, ale sta艂a si臋 ulubion膮 form膮 komunikowania si臋. Zalety komunikacji SMS w zakresie porozumiewania si臋 to: szybko艣膰, pewno艣膰, zwi臋z艂o艣膰 i relatywnie niska cena. Czy jednak system SMS daje si臋 wykorzysta膰 do komunikacji mi臋dzy cz艂owiekiem a maszyn膮 i - id膮c dalej - mi臋dzy dwiema (lub wi臋cej) maszynami?
Sterowanie przez SMS -blaski i cienie
Proces sterowania, szczeg贸lnie w przemy艣le, wymaga bardzo pewnie dzia艂aj膮cych procedur. Sterowanie wymaga bowiem wielu potwierdze艅, zabezpiecze艅 i blokad. Zdarza
si臋, 偶e obiekt, kt贸rym sterujemy, jest oddalony, a mimo to chcemy go kontrolowa膰. Chcemy na niego wp艂ywa膰 i mie膰 dost臋p do informacji o jego stanie. Typowym przyk艂adem takiego obiektu jest stacja pomp ulokowana w terenie. Z za艂o偶enia jest to obiekt bezobs艂ugowy, ale jest konieczne nadzorowanie go, w szczeg贸lno艣ci po to, aby m贸c szybko zareagowa膰 w sytuacjach awaryjnych. Teletechnika oferuje wiele sposob贸w 艂膮czno艣ci z takim obiektem, np. dzier偶awion膮 lini膮 telefoniczn膮 czy radiolini膮. Zalet膮 tych medi贸w jest mo偶liwo艣膰 zestawienia sta艂ego po艂膮czenia, co pozwala na ci膮g艂膮 wymian臋 danych. Rozwi膮zania takie s膮 jednak drogie w eksploatacji, a nie zawsze jest potrzebne ci膮g艂e monitorowanie obiektu. Je艣li wystarcza zawiado-
Nikogo nie trzeba
przekonywa膰, a ju偶 na
pewno nie Czytelnik贸w EP,
偶e telefonia kom贸rkowa
podbi艂a 艣wiat. Obecnie
system GSM jest tani
i powszechnie dost臋pny. Nic
dziwnego, 偶e wkracza
w ka偶d膮 dziedzin臋 偶ycia.
Szuka swojego miejsca
nawet w tak
odpowiedzialnej (i dlatego
nieco konserwatywnej)
dziedzinie jak膮 jest
automatyka przemys艂owa.
W artykule opisano system
SmartSMS pozwalaj膮cy na
zdaln膮 komunikacj臋 ze
sterownikami PLC
MicroSmart japo艅skiej firmy
IDEC.
mienie serwisu o nieprawid艂owo艣ciach pracy lub jest potrzebna zmiana pewnych wybranych ustawie艅 w sterowanym urz膮dzeniu, to idealnym rozwi膮zaniem wydaje si臋 zastosowanie do komunikacji wiadomo艣ci SMS. Mo偶emy je stosowa膰 wsz臋dzie tam, gdzie jest potrzebne nadzorowanie urz膮dzenia, ale nie ma potrzeby sta艂ej i szybkiej komunikacji. Nale偶y przecie偶 pami臋ta膰, 偶e czas dor臋czenia SMS, nie jest okre艣lony i zale偶y od wielu czynnik贸w: sposobu 艣wiadczenia us艂ugi przez operatora, chwilowego stanu sieci (np. zaniki zasi臋gu) itp. Z za艂o偶enia SMS w technice sterowania jest narz臋dziem pomocniczym i cho膰 ma wiele zalet, nale偶y zdawa膰 sobie spraw臋 z jego ogranicze艅.
Co to jest modem GSM?
M贸zgiem nowoczesnego uk艂adu sterowania (np. dla wspomnianej pompowni) jest sterownik PLC. Posiada on zazwyczaj porty komunikacyjne umo偶liwiaj膮ce wsp贸艂prac臋 z ro偶nymi urz膮dzeniami zewn臋trznymi. W szczeg贸lno艣ci, do sterownika mo偶na pod艂膮czy膰 modem GSM. M贸wi膮c w uproszczeniu, jest to telefon kom贸rkowy z wbudowa-
138
Elektronika Praktyczna 11/2002
AUTOMATYKA
n膮 funkcj膮 modemu. Jak ka偶dy telefon GSM, posiada gniazdo dla karty SIM, kt贸ra umo偶liwia zidentyfikowanie telefonu w sieci, i zazwyczaj tak偶e zewn臋trzn膮 anten臋. Modem GSM posiada port szeregowy RS232, s艂u偶膮cy do komunikacji z nadrz臋dnym urz膮dzeniem, takim jak komputer czy w艂a艣nie sterownik PLC. Przez ten port mo偶na wysy艂a膰 rozkazy AT tak, jak w zwyk艂ym modemie oraz specjalne rozkazy AT zdefiniowane dla potrzeb telefonii GSM.
Koncepcja systemu SmartSMS
System SmartSMS powsta艂 w firmie CompArt Automation, jako uniwersalna aplikacja pozwalaj膮ca na komunikacj臋 ze sterownikami PLC serii MicroSmart firmy IDEC poprzez komunikaty SMS. Sterownik steruj膮cy obiektem jest pod艂膮czony do modemu GSM TC35 (Siemens). Sterownik PLC odpowiada za realizacj臋 procesu sterowania i jednocze艣nie obs艂uguje komunikacj臋 SMS. Komunikacja SMS jest niezale偶n膮 cz臋艣ci膮 programu sterownika i mo偶e by膰 do艂膮czona do dowolnego programu niezale偶nie od typu obiektu (pompownia, oczyszczalnia, sterowanie o艣wietleniem, grzaniem itp.). Program sterownika sk艂ada si臋 z dw贸ch niezale偶nych cz臋艣ci: systemu SmartSMS oraz programu u偶ytkownika. Oba te programy komunikuj膮 si臋 ze sob膮 poprzez rejestry i flagi sterownika. Ograniczeniem s膮 oczywi艣cie zasoby sterownika, tj. pami臋膰 programu i pami臋膰 danych. Do komunikacji sterownika z modemem GSM wykorzystano protok贸艂 AT dla GSM.
SmartSMS pozwala na wysy艂anie komunikat贸w SMS o dowolnej sta艂ej tre艣ci oraz komunikat贸w o tre艣ci zmiennej w standardowym formacie SmartMessage zaproponowanym przez autor贸w rozwi膮zania. Komunikaty sta艂e s膮 zapami臋tane na karcie SIM. System pozwala te偶 na odbieranie SMS-贸w w formacie standardowym SmartMessage. Wysy艂ane SMS-y mog膮 trafia膰 do zwyk艂ych telefon贸w (np. do serwisanta) albo do innego sterownika wyposa偶onego w modem GSM. Sterownik dysponuje baz膮 numer贸w, pod kt贸re s膮 wysy艂ane komunikaty oraz baz膮 numer贸w uprawnionych nadawc贸w. Tylko wiadomo艣膰 nadana z uprawnionego numeru b臋dzie zaakceptowana (o ile spe艂ni kryteria formatu SmartMessage).
Format SmartMessage
Format SmartMessage zosta艂 wprowadzony przez tw贸rc贸w systemu SmartSMS jako format kompromisowy umo偶liwiaj膮cy zar贸wno standardow膮 wymian臋 danych przez SMS ze sterownikiem MicroSmart firmy IDEC, jak r贸wnie偶 czyteln膮 ich prezentacj臋 na ekranie telefonu kom贸rkowego. Komunikat SMS w formacie SmartMessage zawiera nag艂贸wek (klucz dost臋pu odbiorcy, identyfikator nadawcy) oraz dane numeryczne (parametry). Dla u艂atwienia odczytywania wiadomo艣ci na zwyk艂ym telefonie, dane numeryczne poprzedzane s膮 opisem tekstowym oraz prezentowane w odpowiednim formacie: heksadecymal-nym lub dziesi臋tnym. Poni偶ej zamieszczono przyk艂adow膮 wiadomo艣膰 SMS w formacie SmartMessage: !FFFF000A# SC> D431h RC> 3039h CW= OOOOh SW= 0900h Pl= 00010 P2 = 00123 P3= 12234 P4=-49987 4F
Do komunikatu do艂膮czana jest suma kontrolna BCC (automatycznie sprawdzana przez sterownik), kt贸ra zwi臋ksza odporno艣膰 systemu na przek艂amania. Poniewa偶 obliczanie sumy kontrolnej mo偶e by膰 czasem k艂opotliwe, zw艂aszcza przy wysy艂aniu SMS-a z telefonu kom贸rkowego, sprawdzanie jej mo偶na dezaktywowa膰.
Wysy艂anie SMS ze sterownika
System SmartSMS pozwala na wysy艂anie do numer贸w umieszczonych w ksi膮偶ce telefonicznej przechowywanej w sterowniku 14 r贸偶nych komunikat贸w o sta艂ej tre艣ci, zapami臋tanych w procesie formatowania karty SIM. Ponadto mo偶e by膰 wysy艂any komunikat dynamiczny w formacie SmartMessage. Poszczeg贸lne dane tworz膮ce komunikat SmartMessage (parametry) s膮 pobierane z rejestr贸w sterownika w chwili nadawania SMS. U偶ytkownik sam okre艣la, w jakich sytuacjach wysy艂ane s膮 wiadomo艣ci. Mo偶e jednocze艣nie za偶膮da膰 wys艂ania kilku r贸偶nych wiadomo艣ci do r贸偶nych numer贸w.
Odbieranie SMS, automat steruj膮cy
Sterownik przyjmuje tylko wiadomo艣ci w formacie SmartMessage. Wiadomo艣ci odbierane musz膮 by膰 wys艂ane z uprawnionego numeru i posiada膰 "zgodny" klucz dost臋pu. Chodzi oczywi艣cie o wyeliminowanie ryzyka dost臋pu do sterownika os贸b niepowo艂anych. Wszystkie wiadomo艣ci o nieprawid艂owym for-
macie lub wys艂ane od niepowo艂anych os贸b s膮 ignorowane.
Po otrzymaniu prawid艂owo zredagowanej wiadomo艣ci system SmartSMS zg艂asza to programowi u偶ytkowemu, podaj膮c m. in. nadawc臋 wiadomo艣ci i udost臋pniaj膮c odebrane dane w wyznaczonych do tego rejestrach. Po obs艂u偶eniu wiadomo艣ci, program u偶ytkowy zg艂asza zako艅czenie obs艂ugi wiadomo艣ci pozwalaj膮c na przyj臋cie nast臋pnej. Je艣li jednocze艣nie nadejdzie wiele wiadomo艣ci i program u偶ytkownika nie by艂by w stanie ich odczytywa膰, zostan膮 one wstrzymane u operatora sieci do czasu obs艂u偶enia ju偶 odebranych wiadomo艣ci. Nie istnieje wi臋c ryzyko zgubienia takich wiadomo艣ci.
Jedn膮 z opcji przewidzian膮 przy odbieraniu wiadomo艣ci jest automat steruj膮cy. Je艣li jest on aktywny, odebrany SMS automatycznie wy-steruje 16 wyznaczonych bit贸w sterownika, stanowi膮cych Control Word (CW), na podstawie s艂贸w steruj膮cych Set command (SC) i Reset command (RC) zawartych w tre艣ci komunikatu SmartMessage. Automatycznie zostanie te偶 przekazane 16 bit贸w statusowych nadawcy [Status Word, SW). Automat steruj膮cy mo偶na wi臋c wyobrazi膰 sobie jako panel zdalnego sterowania zawieraj膮cy 16 lampek sygnalizuj膮cych stan obiektu i 16 prze艂膮cznik贸w umo偶liwiaj膮cych oddzia艂ywanie na obiekt. Sterowanie mo偶e by膰 艂atwo potwierdzone wys艂aniem do nadawcy komunikatu steruj膮cego SMS w formacie SmartMessage, kt贸ry b臋dzie przedstawia艂 stan w艂asnego rejestru steruj膮cego i rejestru stanu.
Wysy艂anie SMS na skrzynk臋 e-mail
System SmartSMS przewiduje mo偶liwo艣膰 wzbogacenia wysy艂anych wiadomo艣ci o nag艂贸wek niezb臋dny do przyj臋cia wiadomo艣ci przez bramk臋 typu SMStoMail. Us艂uga ta 艣wiadczona jest przez operator贸w sieci i pozwala na przes艂anie tre艣ci komunikatu SMS na adres e-mail. Korzystanie z tej opcji pozwala na 艂atwe archiwizowanie informacji o zdarzeniach.
Wymagania sprz臋towe
System SmartSMS nie ma zbyt du偶ych wymaga艅, je艣li chodzi o sterownik, na kt贸rym pracuje. Mo偶e by膰 zainstalowany ju偶 na sterowniku IDEC MicroSmart FC4A-C16R2. Sterownik ten posiada 9 wej艣膰 i 7 wyj艣膰,
Elektronika Praktyczna 11/2002
139
AUTOMATYKA
nadaje si臋 wi臋c do sterowania niedu偶ym obiektem. W miar臋 potrzeb mo偶na oczywi艣cie stosowa膰 wi臋ksze sterowniki rodziny MicroSmart.
Przyk艂adowe zastosowania
Typowym zastosowaniem systemu SmartSMS jest zdalny nadz贸r nad stacjami pomp. Podczas normalnej pracy sterowniki pomp przesy艂aj膮 okresowo raporty zawieraj膮ce informacje o poziomie w zbiornikach, ci艣nieniu, ilo艣ci przepompowanego medium itd. W stanach awaryjnych sterownik natychmiast wysy艂a komunikat na telefony obs艂ugi technicznej, umo偶liwiaj膮c szybkie usuni臋cie usterki. Je艣li przepompownie pracuj膮 w linii, a wi臋c woda pompowana przez jedn膮 zasila nast臋pn膮 itd., mo偶liwa jest koordynacja pracy pompowni. Pompownia, w kt贸rej nast膮pi艂a awaria, mo偶e wys艂a膰 do pompowni zasilaj膮cej j膮 rozkaz wy艂膮czenia pomp.
Zdalne sterownie GSM mo偶e znale藕膰 zastosowanie nie tylko w powa偶nych systemach przemys艂owych. Innym przyk艂adem zastoso-
wania systemu SmartSMS jest zdalne sterowanie instalacjami w domku jednorodzinnym. Mo偶na za pomoc膮 SMS zgasi膰 niepotrzebnie zapalone 艣wiat艂o lub zasymulowa膰 obecno艣膰 gospodarzy w domu. Mo偶na te偶 przed wyjazdem na weekend w艂膮czy膰 zdalnie ogrzewanie w domku letniskowym.
Podsumowanie
Du偶膮 zalet膮 opisywanego systemu jest to, 偶e jest w 100% oparty na sprz臋cie fabrycznym. Wykorzystuje gotowy sterownik PLC oraz modem GSM. Dzi臋ki temu jest to rozwi膮zanie pewne, kt贸re mo偶na zastosowa膰 w obiektach przemys艂owych, w 艣rodowisku silnie zak艂贸conym. Zastosowane urz膮dzenia s膮 przystosowane do pracy bezobs艂ugowej, w odr贸偶nieniu od innych rozwi膮za艅, np. wykorzystuj膮cych do komunikacji zwyk艂e telefony kom贸rkowe.
Zastosowanie techniki SMS w nadzorowaniu obiektu, zamiast na przyk艂ad 艂膮cza radiowego, pozwala znacznie zmniejszy膰 koszt eksploatacji systemu, kt贸ry jest r贸wny mie-
si臋cznemu abonamentowi plus koszty wys艂anych wiadomo艣ci. W przypadku radiomodemu nale偶y liczy膰 si臋 z wysokimi kosztami przydzielonego pasma. Cho膰 koszt modemu GSM jest jeszcze stosunkowo wysoki (ok. 950 z艂 + VAT), nale偶y mie膰 nadziej臋, 偶e sprz臋t GSM b臋dzie tania艂. Nale偶y podkre艣li膰, 偶e koszt tego modemu jest ni偶szy ni偶 koszt radiomodemu. Nie mo偶na te偶 zapomina膰, 偶e telefonia kom贸rkowa zapewnia du偶o wi臋ksz膮 mobilno艣膰 i zasi臋g ni偶 艂膮cze radiowe.
Z ca艂膮 pewno艣ci膮 technika SMS ma szans臋 znale藕膰 powszechne zastosowanie r贸wnie偶 w automatyce. Rozwi膮zania oparte o GSM, takie jak prezentowane w niniejszym artykule, oferowane przez firmy zajmuj膮ce si臋 sterownikami PLC, otwieraj膮 popularnym "esemesom" drog臋 do kariery w przemy艣le. Krzysztof Zajdel CompArt Automation
Dodatkowe informacje s膮 dost臋pne w firmie CompArt Automation,tel. 22/610-85-49, http://compart.zaidel.pl.
140
Elektronika Praktyczna 11/2002
PROJEKTY
Modem do sieci energetycznej
AVT-5085
Sporym zainteresowaniem
elektronik贸w cieszy si臋
ostatnio transmisja danych
cyfrowych poprzez sie膰
energetyczn膮 220 VAC.
W opisywanym modemie
zastosowano specjalizowany
uk艂ad ST7537 firmy ST
Microelectronics, dzi臋ki
kt贸remu jest on niezawodny,
odporny na zak艂贸cenia
i zgodny z normami EMC.
Rekomendacje: polecamy
go konstruktorom
zamierzaj膮cym przesy艂a膰 dane
cyfrowe na du偶e odleg艂o艣ci
bez instalowania
przeznaczonej do tego celu
sieci kablowej.
PROJEKT Z OK艁ADKI
G艂贸wne cechy modemu ST7537:
p贸ldupleksowy spos贸b transrms|i danych (transrnis)a mo偶e si臋 odbywa膰 w obu kierunkach, ale nie jednocze艣nie, lecz na przemian),
艢f asynchromczny spos贸b transmisji danych (brak oddzielnego sygna艂u taktuj膮cego strumie艅 przesy艂anych danych),
艢f zastosowano modulacj臋 FSK - dane s膮 kodowane jako dwie r贸偶ne cz臋stotliwo艣ci dla logicznego zera i jedynki (strumie艅 bit贸w powoduje prze艂膮czanie pomi臋dzy Tymi cz臋stotliwo艣ciami i w艂a艣nie st膮d nazwa frequency-shift keying, czyli kluczowanie przesuni臋cia cz臋stotliwo艣ci),
艢f maksymalna szybko艣膰 przesy艂u danych 2400 bd,
艢f 艂atwo艣膰 bezpo艣redniej wsp贸艂pracy z mikrokontrolerami rodziny '51
Zanim zajmiemy si臋 konkretami, musimy zamie艣ci膰 ostrze偶enie. Opisywany modem jest do艂膮czany bezpo艣rednio do sieci energetycznej 220 VAC. Wszelkie czynno艣ci uruchomieniowe czy pomiary wykonywane na pod艂膮czonym do sieci uk艂adzie stanowi膮 zagro偶enie dla zdrowia i 偶ycia. Mog膮 by膰 wykonywane jedynie przez osoby posiadaj膮ce odpowiednie kwalifikacje, z zachowaniem 艣rodk贸w ostro偶no艣ci obowi膮zuj 膮cych przy pracach z urz膮dzeniami pod napi臋ciem do 1 kV.
Na szcz臋艣cie wst臋pne uruchomienie modemu i kontrola jego dzia艂ania nie wymaga pod艂膮czania go do sieci - powy偶sze ostrze偶enie dotyczy wi臋c jedynie etapu ostatecznego uruchomienia i kontroli toru przesy艂owego. Poza tym, w wielu zastosowaniach, modem mo偶na do艂膮czy膰 do instalacji napi臋cia bezpiecznego (przemiennego lub sta艂ego) - wtedy w og贸le nie b臋dzie zagro偶enia.
Scalony modem ST7537
Schemat blokowy scalonego modemu przedstawiono na rys. 1. Mo偶na w nim wyr贸偶ni膰 trzy g艂贸wne bloki: nadajnika, odbioru oraz "logiki" kontrolnej wspomagaj膮cej
wsp贸艂prac臋 z mikiokontio-lerem. Wszystkie sygna艂y w uk艂adzie s膮 synchronizowane przez wewn臋trzny oscylator pracuj膮cy z kwarcem o cz臋stotliwo艣ci rezonansowej 11,059 MHz. Na wyprowadzeniu MCLK jest dost臋pny sygna艂 oscylatora - mo偶na go wykorzysta膰 jako sygna艂 zegarowy dla mikiokontrolera. Wybrana cz臋stotliwo艣膰 zapewnia dla mikiokontrolera rodziny '51 najlepsz膮 dok艂adno艣膰 ustawienia szybko艣ci transmisji asynchronicz-nej sprz臋towego uk艂adu UART. Dla uproszczenia budowy zespo艂u ST7537-mikiokontroler, w modemie zastosowano tak偶e uk艂ady pomocnicze:
- POR [power on reset) - zerowanie po w艂膮czeniu zasilania z aktywnym stanem wysokim (wyprowadzenie RSTO),
- watchdog - brak zbocza opadaj膮cego na wej艣ciu WD przez czas przekraczaj膮cy 1,5 s (co wskazuje na zawieszenie si臋 programu) powoduje na wyj艣ciu RSTO generacj臋 impulsu zeruj膮ce o d艂ugo艣ci 50 ms.
Tor nadawania jest uruchamiany poziomem niskim na wej艣ciu steruj膮cym Rx/Tx. W oparciu o sygna艂 wewn臋trznego oscylatora modulator FSK syntetyzuje sygna艂y (przy kwarcu 11,059 MHz):
- 131,85 kHz dla zera logicznego (TxD = 1),
- 133,05 kHz dla jedynki logicznej (TxD = 0).
14
Elektronika Praktyczna 11/2002
Modem do sieci energetycznej
RAM
CDIM-
ATOI PAFBi-> PABCIH-PABCIM-
RxD
FILTR PASMOWO -PRZEPUSTOWY
WZM. 20dB
DETEKCJA NO艢NEJ
VREF
FILTR
FILTR PASMOWO -PRZEPUSTOWY
MODULATOR FSK
OSCYLATOR
BLOK WSP脫艁PRACY Z MIKROKONTROLEREM
DEMODULATOR FSK
Rys. 1. Uproszczony schemat blokowy uk艂adu ST7537
Przesuni臋cie cz臋stotliwo艣ci dla modulacji FSK wynosi wi臋c 1200 Hz. Sygna艂 zmodulowany przebiegiem cyfrowym dostarczanym na wej艣cie TxD jest podawany poprzez filtr pasmowo-przepustowy (redukuj膮cy sk艂adowe harmoniczne) do wyj艣ciowego wzmacniacza wsp贸艂pracuj膮cego z zewn臋trznym stopniem mocy.
Czas w艂膮czenia nadajnika jest ograniczony do 1 s, co zabezpiecza przed zablokowaniem linii transmisyjnej np. przez modu艂 z wadliwym programem steruj膮cym (po przekroczeniu czasu nale偶y dla wznowienia nadawania poda膰 na wej艣cie Rx/Tx przez co najmniej 2 Lis poziom wysoki).
Przy poziomie wysokim na wej艣ciu Rx/Tx uk艂ad znajduje si臋 w trybie odbioru. Sygna艂 no艣nej 132,5 kHz (wej艣cie RAI) po przej艣ciu przez filtr pasmowo-przepustowy (o szeroko艣ci pasma 12 kHz) jest podawany do wzmacniacza (20 dB), kt贸ry jednocze艣nie zapewnia symetryczne ograniczanie amplitudy. Nast臋pnie zostaje zmieszany z sygna艂em wewn臋trznego oscylatora, wskutek czego otrzymujemy przebieg po艣redniej cz臋stotliwo艣ci 5,4 kHz wyprowadzony poprzez filtr pasmowo-przepustowy p.cz. na wyprowadzenie IFO. Zwi臋ksza to odst臋p sygna艂u od szumu przed obr贸bk膮 w demodulatorze FSK. Wyj艣cie IFO jest 艂膮czone z wej艣ciem DEMI zewn臋trznym kondensatorem lOOnF, co pozwala na eliminacj臋 sk艂adowej sta艂ej. Po demodulacji gotowy sygna艂 cyfrowy jest przekazywany na wyj艣cie RxD.
Zesp贸艂 detekcji no艣nej s艂u偶y do kontroli poziomu sygna艂u wyst臋puj膮cego w linii transmisyjnej.
Wyj艣cie CD osi膮ga stan aktywny (niski poziom), gdy odbierana no艣na ma poziom wy偶szy od 5 mVrms, Stan ten steruje te偶 demodulatorem przy ustawionym trybie odbioru z odcinaniem s艂abego sygna艂u. Tryb odbioru jest prze艂膮czany poziomem na - pe艂ni膮cym w tym momencie drug膮 funkcj臋 - wej艣ciu TxD. Poziom wysoki oznacza tryb z odcinaniem: sygna艂 jest demo-dulowany i przekazywany na wyj艣cie RxD tylko wtedy, gdy CD jest aktywny. Poziom niski wy艂膮cza odcinanie i umo偶liwia demodula-cj臋 s艂abych sygna艂贸w (poni偶ej 5 mVrms, praktycznie do ok. 1 mVrms). Tryb odcinania pozwala na lepsz膮 eliminacj臋 zak艂贸ce艅 i b艂臋d贸w przesy艂ania, ale te偶 mo偶e uniemo偶liwi膰 transmisj臋 w instalacjach o du偶ym t艂umieniu.
Budowa uk艂adu transmisyjnego
Schemat uk艂adu z modemem ST7537 przedstawiono na rys. 2. Otoczenie "wykonawcze" tego uk艂adu obejmuje: 1. Wyj艣ciowy stopie艅 mocy
Jest to klasyczny tranzystorowy uk艂ad komplementarny. Wyj艣cie ATO steruje przedwzmacniaczem z elementami RIO, Q2, Q6, R4...R7. Symetryczne przebiegi napi臋ciowe wytworzone na rezystorach R4 i R6 wysterowuj膮 z kolei wyj艣ciowe tranzystory Q3 i Q4. Rezystor R9 przekazuje wzmocniony sygna艂 na wej艣cie ujemnego sprz臋偶enia zwrotnego PAFB, co zapewnia sta艂y i pozbawiony zniekszta艂ce艅 poziom przebiegu na wyj艣ciu. Tranzystory Ql i Q5 sterowane z komplementarnych wyj艣膰 PABC w艂膮czaj膮 wzmacniacz tylko na czas nadawania. Podczas odbioru s膮
zatkane i stopie艅 wyj艣ciowy pozostaje w stanie wysokiej impedan-cji, nie wp艂ywaj膮c na odbierany sygna艂, kt贸ry jest przekazywany przez R9 na wej艣cie RAI.
W uk艂adzie wzmacniacza nale偶y zwr贸ci膰 uwag臋 na sposoby (nieco ju偶 zapomniane w dobie uk艂ad贸w scalonych) poprawy stabilno艣ci ich pracy. Pierwszy z nich polega na zastosowaniu rezystor贸w ujemnego pr膮dowego sprz臋偶enia zwrotnego w obwodach emiter贸w (R5, R7, R2, R3). Wzrost pr膮du przewodzenia tranzystor贸w powoduje zwi臋kszenie spadku napi臋cia na tych rezystorach przez co ogranicza napi臋cie polaryzacji bazy. Pozwala to na kompensacj臋 nier贸wnomierno艣ci charakterystyk oraz zmniejsza wp艂yw nagrzewania si臋 element贸w.
Dla tranzystora bipolarnego nagrzewanie jest przyczyn膮 niestabilno艣ci jego pracy. Wzrost temperatury (wywo艂any przep艂ywem pr膮du kolektora) powoduje zwi臋kszenie wy sterowania tranzystora, co z kolei powoduje dalszy wzrost pr膮du kolektora.
W uk艂adzie wzmacniacza zastosowano sprz臋gni臋cie termiczne par tranzystor贸w Q4.. ,Q6 oraz Q3...Q2. Dzi臋ki temu przy zmianach temperatury sumy napi臋膰 przewodzenia z艂膮cz B-E w parach komplementarnych Q2+Q6 oraz Q3+Q4 zmieniaj膮 si臋 jednakowo, co zapewnia niezb臋dn膮 stabilno艣膰 pracy wzmacniacza.
Kondensator C3 separuje sk艂adow膮 sta艂膮. D艂awik L3 t艂umi paso偶ytnicze przebiegi wysokiej cz臋stotliwo艣ci i zapobiega wzbudzaniu si臋 stopnia mocy. 2. Interfejs linii transmisyjnej
Interfejs ma do spe艂nienia dwa zadania: przekazanie sygna艂u pomi臋dzy uk艂adem a sieci膮 energetyczn膮 przy zapewnieniu bezpiecznej separacji oraz wyeliminowanie przebieg贸w niepo偶膮danych - g艂贸wnie 50 Hz/220 V. Od strony sieciowej obw贸d jest zabezpieczony szybkim bezpiecznikiem Fl. Wary-stor Rll chroni przed szpilkowymi przepi臋ciami w sieci. Cz臋stotliwo艣膰 rezonansowa szeregowego obwodu L1+C13 jest dobrana do 艣redniej cz臋stotliwo艣ci no艣nej, czyli 132,5 kHz. Transformator Tl zapewnia izolowanie uk艂adu modemu od napi臋cia sieci. R12 roz艂adowuje pojemno艣膰 Cl 3 po wy艂膮czeniu
Elektronika Praktyczna 11/2002
15
Modem do sieci energetycznej
Z1
Obszar nlabezpleczny 220V
F1 630mA
Z2
R1 100
C14 "68n
(min. 100V)
Q3.
STA1
78XX +10V 1A
STA2
-C2 100n
I
C7 S2\i 16V
7BXX +5V 1A
Rys. 2. Schemat elektryczny uk艂adu transmisyjnego z modemem ST7537
_C4
f W1 HEAD10
\D601 1 艢? D603
\D603 3 4 D604x
\D605 fi 6 D606x
\D607 7 fl D608x
\D609 0 -o o 10 D610v

C6 100n
modemu. Elementy te nie mog膮 by膰 dowolne - musz膮 spe艂nia膰 kilka istotnych warunk贸w:
- Kondensator C13 ze wzgl臋d贸w bezpiecze艅stwa powinien by膰 klasy X2.
- D艂awik Li powinien mie膰 jak najmniejsz膮 rezystancj臋 (poni偶ej 1 Q) - dotyczy to r贸wnie偶 L3. Chodzi o uzyskanie jak najni偶szej impedancji wyj艣ciowej wzmacniacza, kt贸rego obci膮偶eniem jest niskoimpedancyjna sie膰 energetyczna.
- Tl musi mie膰 wystarczaj膮co szerokie pasmo przenoszenia, a zarazem odpowiedni膮 wytrzyma艂o艣膰 izolacji. Ten element sprawia艂 przez d艂ugi czas najwi臋cej k艂opot贸w - producent przewidzia艂 stosowanie transformatora firmy TOKO T1002 -trudno dost臋pnego, a co gorsza, niespe艂niaj膮cego warunk贸w bezpiecze艅stwa przy w艂膮czeniu do sieci 220V. Zastosowane rozwi膮zanie - z popularnym transfor-matorkiem C&D (dawniej New-port Components) 7825 0 - zaproponowane na stronie http:/
/ www.michat.com odpowiada potrzebnym wymogom. - R12 o mocy minimum 0,5 W. Moc tracona w nim jest niewielka, ale istotne jest wykonanie zapewniaj膮ce wytrzyma艂o艣膰 na mi臋-dzyszczytowe napi臋cie sieci (311V). Po stronie niskonapi臋ciowej Tl jest w艂膮czony kolejny obw贸d rezonansowy L2+C4 zwieraj膮cy cz臋stotliwo艣ci r贸偶ne od no艣nej. T艂umi膮cy rezystor Rl jest przewidziany dla sieci o du偶ym poziomie zak艂贸ce艅 -na wst臋pie mo偶na go nie montowa膰. Transil Z4 blokuje wszelkie przepi臋cia, kt贸re przedostan膮 si臋 przez wcze艣niejsze zabezpieczenia i mog艂yby uszkodzi膰 uk艂ad. 3. Zasilacz
Uk艂ad ST7537 wymaga dw贸ch napi臋膰 zasilaj膮cych: +10V i +5V. W modemie rozwi膮zano ten problem w spos贸b tradycyjny z u偶yciem scalonych stabilizator贸w serii 78xx, kt贸re z naddatkiem pokrywaj膮 potrzeby moc owe bez stosowania dodatkowych radiato-r贸w. Mostek Dl umo偶liwia zasilanie bezpo艣rednio z transformatora sieciowego pod艂膮czonego do
zacisku Z2, co eliminuje konieczno艣膰 stosowania dodatkowych element贸w.
Monta偶 i uruchomienie
P艂ytka drukowana zo sta艂a zaprojektowana bez minimalizacji powierzchni, jako bazowa do rozmaitych test贸w oraz zastosowa艅. Jej schemat monta偶owy przedstawiono na rys. 3. Monta偶 jest typowy i nie wymaga specjalnych wskaz贸wek. Nale偶y jedynie zwr贸ci膰 uwag臋 na mo偶liw膮 usterk臋 p艂ytki - seria pr贸bna zosta艂a wykonana bez trzech przelotek, co jest proste do skorygowania przed wlutowaniem element贸w, ale p贸藕niej mo偶e sprawi膰 nieco k艂opot贸w. Mo偶na te偶 - o ile nie b臋d膮 potrzebne otwory mocuj膮ce - p艂ytk臋 nieco zw臋zi膰. Wspomniane wcze艣niej sprz臋偶enie termiczne tranzystor贸w uzyskano poprzez odpowiednie dogi臋cie wyprowadze艅 (przed ostatecznym wlutowaniem) tak, aby doprowadzi膰 do zetkni臋cia posmarowanych past膮 silikonow膮 p艂askich stron obud贸w. Mo偶na te偶 na艂o偶y膰 opaski
16
Elektronika Praktyczna 11/2002
Modem do sieci energetycznej
T1
MODEM ST7537 AVT J.S. 2002
Rys. 3. Rozmieszczenie element贸w na p艂ytce drukowanej
zaciskowe - w prototypie u偶yto odcink贸w rurki termokurczliwej ostro偶nie doci艣ni臋tej za pomoc膮 ma艂ej gazowej dmuchawki. Nie montujemy rezystora Rl - do艂o偶ymy go tylko w razie potrzeby.
Po z艂o偶eniu p艂ytki sprawd藕my - przed w艂o偶eniem ST7537 do podstawki - napi臋cia stabilizowane. Do uruchomienia oraz test贸w najlepiej u偶y膰 warsztatowego zasilacza +15V do艂膮czonego do zacisku Z3. Gdy napi臋cia s膮 prawid艂owe, mo偶na umie艣ci膰 uk艂ad scalony w podstawce. Nast臋pnie do z艂膮cza szpilkowego Hl do艂膮czamy ma艂膮 przystawk臋: rezystorami 4,7 kQ ustalamy wysoki poziom na wej艣ciach Rx/Tx, TxD oraz WD, a pomi臋dzy Rx/Tx a mas臋 w艂膮czamy przycisk do r臋cznego uruchomienia nadajnika. Pomocny b臋dzie w tym rys. 4, na kt贸rym opisano styki z艂膮cza szpilkowego.
Po w艂膮czeniu pob贸r pr膮du powinien wynosi膰 ok. 3 0 mA. Na wyprowadzeniu MCLK oscyloskop powinien pokaza膰 przebieg zegarowy 11,059 MHz, natomiast na RSTO b臋d膮 wyst臋powa艂y co ok. 1,5 s impulsy zeruj膮ce. Po wci艣ni臋ciu przycisku (przez sekund臋) pob贸r pr膮du wzrasta do ok. 100 mA, za艣 na wyj艣ciu wzmacniacza (wyprowadzenie 1 transformatora Tl) obserwujemy sinusoidalny przebieg 131,85 kHz.
Testowanie p艂ytki ko艅czymy sprawdzeniem separacji od sieci. Od艂膮czamy wszystko od p艂ytki i pod艂膮czamy j膮 przez zacisk Zl do sieci 220 V. Pr贸bnikiem napi臋cia kontrolujemy obecno艣膰 wysokiego napi臋cia (fazy). Pr贸bnik nie mo偶e wskazywa膰 "fazy" w 偶adnym punkcie niskonapi臋ciowej cz臋艣ci p艂ytki! W przeciwnym razie konieczna jest wymiana transformatora Tl.
Aby przeprowadzi膰 pr贸by po艂膮czenia, musimy przygotowa膰 dwie takie same p艂ytki. Na razie nie w艂膮czamy ich do sieci - wystarczy po艂膮czenie zacisk贸w Zl odcinkiem dwu偶y艂owego przewodu. Jako terminale mo偶emy u偶y膰 dowolne dost臋pne urz膮dzenia z wyj艣ciem TTL - musi mie膰 mo偶liwo艣膰 samodzielnego sterowania lini膮 Rx/Tx. Prototypowa linia transmisyjna zosta艂a zestawiona z dw贸ch komputer贸w PC z uruchomionym programem testowym. Porty szeregowe komputer贸w zosta艂y do艂膮czone do p艂ytek za po艣rednictwem opisanego w miniprojektach optoizolowanego adaptera (co jednocze艣nie pozwala na dopasowanie poziom贸w oraz stanowi dodatkow膮 barier臋 zabezpieczaj膮c膮 komputer i u偶ytkownika przed napi臋ciem sieci).
Program testowy (dla Windows), kt贸rego okienko jest pokazane na rys. 5, pozwala na:
- wybranie numeru portu oraz szybko艣ci transmisji,
- wys艂anie komunikatu kontrolnego;
- automatyczn膮 odpowied藕 na komunikat kontrolny;
- odczyt modu艂u pomiaru temperatury (kt贸rego opis b臋dzie przedstawiony w nast臋pnym numerze EP).
W programie zastosowano tryb transmisji z odcinaniem s艂abego sygna艂u. W tej wersji programu nie ma mo偶liwo艣ci prze艂膮czenia na pe艂n膮 czu艂o艣膰, jednak w materia艂ach pomocniczych udost臋pnione s膮 wszystkie kody 藕r贸d艂owe, wi臋c mo偶na samodzielnie wprowadzi膰 odpowiednie modyfikacje (za艂膮czony projekt powsta艂 w Delphi 5, ale nie ma 偶adnych problem贸w z jego transferem do Delphi 6 PE).
Po uruchomieniu transmisji z u偶yciem prowizorycznej linii
wykonujemy ostateczny test - 艂膮czymy p艂ytki z sieci膮 220 V i kontrolujemy poprawno艣膰 komunikacji. Je艣li wszystko wypad艂o pomy艣lnie, mo偶emy przetestowane modu艂y montowa膰 w docelowych urz膮dzeniach.
W prototypowym zestawie cz臋艣膰 oddalona zosta艂a wmontowana do istniej膮cej rozdzielni elektrycznej bez oddzielnej obudowy. Zasilanie zapewni艂 stabilizator 7815 do艂膮czony przez mostek prostowniczy do pracuj膮cego w rozdzielni transformatora bezpiecze艅stwa 24V. Od strony komputera p艂ytka modemu zosta艂a umieszczona w posiadanej obudowie plastykowej razem z adapterem optoizolowanym oraz trans-formatorkiem sieciowym (ok. 14V napi臋cia wyj艣ciowego). Je艣li pod艂膮czamy modem na sta艂e, wskazane jest do艂膮czenie fazy od strony bezpiecznika Fl.
Kilka uwag praktycznych
Sie膰 energetyczna, kt贸ra s艂u偶y jako medium przesy艂owe, jest 艣rodowiskiem bardzo "za艣mieconym". Wyst臋puje tu wiele r贸偶nego rodzaju zak艂贸ce艅 i przepi臋膰. Do艂膮czamy do niej rozmaite odbiorniki
- sprz臋t AGD, impulsowe zasilacze komputerowe, wysokopr膮do-we obci膮偶enia typu pralka automatyczna czy grzejnik, regulatory fazowe itp. Cz臋sto odbiorniki -zw艂aszcza starszej generacji - nie spe艂niaj膮 偶adnych wsp贸艂czesnych norm dotycz膮cych emisji zak艂贸ce艅. Negatywny wp艂yw element贸w instalacji na przebieg transmisji jest dwojaki:
- Wymienione powy偶ej zak艂贸cenia wszelkiego rodzaju i o r贸偶nych cz臋stotliwo艣ciach, kt贸re mog膮 si臋 nak艂ada膰 na sygna艂 u偶yteczny, powoduj膮c utrat臋 danych.
ST7537
Widok od goiy
Rys. 4. Wyprowadzenia z艂膮cza szpilkowego
Elektronika Praktyczna 11/2002
17
Modem do sieci energetycznej
r oni] r mu*
r uoo
Rys. 5. Okienko programu do testowania modemu
- Obni偶anie 艅npedancji sieci. Im ni偶sza impedancja, tym silniej t艂umiony jest sygna艂 no艣nej, cz臋sto w stopniu uniemo偶liwiaj膮cym dotarcie sygna艂u do odbiornika. Szczeg贸lnie szkodliwe s膮 pojemno艣ci filtruj膮ce w艂膮czane r贸wnolegle na wej艣ciu urz膮dze艅 oraz diody prostownicze w tanich modelach zasilaczy komputerowych. Nie nale偶y wi臋c spodziewa膰 si臋 rozwi膮zania "艂atwego, lekkiego i przyjemnego". Oprogramowanie komunikacyjne musi by膰 wyposa偶one w dobr膮 kontrol臋 i eliminacj臋 b艂臋d贸w, mechanizmy powt贸rze艅, timeout贸w, samoczynnego wznawiania przerwanej transmisji itp. W skrajnych przypadkach mo偶e by膰 konieczna ingerencja w instalacj臋 lub osprz臋t elektryczny (blokowanie d艂awikami lub filtrami podejrzanych odbiornik贸w lub ca艂ych ga艂臋zi domowej sieci). Wykracza to znacznie poza dzia艂alno艣膰 elektronika-amator a i - jeszcze raz podkre艣lamy - mo偶e by膰 wykonywane jedynie przez osoby posiadaj膮ce odpowiednie kwalifikacje i uprawnienia!
Omawiane problemy wyst膮pi艂y r贸wnie偶 w testowanych uk艂adach.
Opisany na wst臋pie tor transmisji, wsp贸艂pracuj膮cy z instalacj膮 o wielu za艂膮czanych w r贸偶nym czasie odbiornikach o charakterze zar贸wno dom owo-biurowym (czajniki, wentylatory, komputery), jak i warsztatowo-technicz-nym (elektronarz臋dzia, spawarka itp.) na og贸艂 dzia艂a dobrze, ale mo偶e si臋 zawiesza膰 na d艂u偶sze okresy - konkretna przyczyna nie zosta艂a jeszcze wykryta. Z kolei w dosy膰 starej instalacji domowej (dom wolno stoj膮cy, piwnice, gara偶) transmisja pomi臋dzy niekt贸rymi punktami jest uniemo偶liwiona przez niskoimpedancyjny wej艣ciowy filtr przeciwzak艂贸ceniowy elektroniki kot艂a co., co wymaga zabieg贸w elektrotechnicznych opisanych powy偶ej.
P艂ytki modemu mog膮 by膰 z powodzeniem zastosowane w innych rodzajach instalacji - np. napi臋cia przemiennego lub sta艂ego 24 V. Tutaj tak偶e nale偶y zwr贸ci膰 uwag臋 na impedancj臋 sieci. Dotyczy to zw艂aszcza napi臋cia sta艂ego, przy kt贸rym mamy do czynienia z filtruj膮cymi kondensatorami elektrolitycznymi o du偶ej pojemno艣ci. Aby umo偶liwi膰 transmisj臋, nale偶y koniecznie odseparowa膰 d艂awikami wykorzystywany odcinek okablowania od odbiornik贸w oraz zasilaczy. Jerzy Szczesiul, AVT jerzy.szczesiul@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdpiistopad02Jttm oraz na p艂ycie CD-EP11/2002B w katalogu PCB.
WYKAZ ELEMENT脫W
Rezystory
Rl: lOOft: opcjonalny
R2, R3, R5, R7: 2,2ft
R4, R贸:
R8, R13:
R9: lkn/5%
RIO: lkn
Rll: warystor 275VAC 14 mm
R12: lMft/0,5W
Kondensatory
Cl, C2, C4...C脫, C15, Cl贸:
monolityczny 100nF/50V
C3: poliestrowy MKS2 1^F/脫3V
C7: elektrolityczny 22^F/1脫V
C8: elektrolityczny 10^F/10V
C9: elektrolityczny 2,2^F/25V
CIO: elektrolityczny 100^F/l贸V
Cli, C12: ceramiczny 22pF
C13: 33nF/275VAC klasa X2
C14: poliestrowy MKS2 68nF/63V
P贸艂przewodniki
Ul: modem ST7537PLCC 28
Dl: mostek prostowniczy 1A/25OV
lub podobny
Z4: transil 1500W lub 脫OOW 6,8 V
G1...G3: tranzystor npn BC337
G4...G6: tranzystor pnp BC327
STA1: stabilizator 7810
STA2: stabilizator 7805
R贸偶ne
Fl: bezpiecznik WTA F贸30mA/
250 V w podstawce do druku
Hl: z艂qcze szpilkowe dwurz臋dowe
10 pin
LI: d艂awik Sd75 Neosid 47^H R=l,2n
L2: d艂awik 22^H
L3: d艂awik Sd75 Neosid IOjiH
R= 0,55^
Tl: transformator 78250 C&D
w wersji l,5kV lub 4kV
Xl: kwarc 11,059 MHz
Zl-Z: zaciski 艣rubowe ARK2
podstawka PLCC 28
18
Elektronika Praktyczna 11/2002
AUTOMATYKA
Nowa generacja wielofunkcyjnych timer贸w i licznik贸w firmy Omron
Tempo
rozwoju wsp贸艂czesnej techniki zmusza producent贸w do cz臋stej zmiany modeli produkowanych urz膮dze艅. Jest to post臋powanie charakterystyczne tak偶e dla najwi臋kszych producent贸w dzia艂aj膮cych w pozornie tradycyjnych
dziedzinach, jak na przyk艂ad w automatyce, W artykule przedstawiamy dwie nowe rodziny modu艂贸w wielofunkcyjnych produkowane przez firm臋 Omron,
i czerwonym. W zale偶no艣ci od wymaga艅 u偶ytkownika, obydwa wy艣wietlacze mog膮 艣wieci膰 w jednym z tych kolor贸w, g贸rny wy艣wietlacz mo偶e tak偶e 艣wieci膰 si臋 na zielono (czerwono), a dolny na czerwono (zielono). Kolory pod艣wietlenia mog膮 si臋 tak偶e zmienia膰 w zale偶no艣ci od stanu licznika, co wymaga odpowiedniego zaprogramowania licznika (za pomoc膮 wielopoziomowego menu). Liczniki s膮 montowane w obudowach o wymiarze 1/16 modu艂u DIN i s膮 przystosowane do monta偶u na p艂ytach czo艂owych urz膮dze艅 lub na szynach DIN.
Pomiary dokonywane za pomoc膮 H7CX mo偶na skalowa膰 w szerokim zakresie, dzi臋ki czemu wy艣wietlany wynik informu-
H7CX - rodzina wielofunkcyjnych, programowanych licznik贸w przemys艂owych
W ramach rodziny H7CX jest dost臋pne a偶 25 rodzaj贸w licznik贸w. R贸偶ni膮 si臋 one maksymaln膮 liczb膮 zliczanych impuls贸w (do 9999 w wersji 4-cyfrowej lub 999999 w wersji 6-cyfrowej), rodzajem zacisk贸w przy艂膮czeniowych (11-stykowe gniazdo przystosowane do nasuwanej wtyczki lub zaciski 艣rubowe) i rodzajem element贸w wykonawczych na wyj艣ciach (tranzystory i/lub przeka藕niki). W niekt贸rych modelach zastosowano tak偶e dodatkowy zasilacz o napi臋ciu wyj艣ciowym 12
VDC, kt贸ry mo偶e s艂u偶y膰 do zasilania czujnik贸w wsp贸艂pracuj膮cych z licznikami.
Niezale偶nie od wersji, liczniki wyposa偶ono w 艂atwy w obs艂udze in terfej s u偶y tkown ika sk艂 a d aj 膮 cy si臋 z 6- lub 8-przyciskowej klawiatury, podw贸jnego wy艣wietlacza (g贸rny wskazuje aktualny wynik pomiaru, dolny s艂u偶y do wy艣wietlenia warto艣ci nastaw). Istotna dla typowych zastosowa艅 jest du偶a wysoko艣膰 cyfr wy艣wietlacza, kt贸ra w licznikach 4-pozycyjnych wynosi 11,5 mm, natomiast w licznikach 6-pozycyjnych 9 mm. Wy艣wietlacz LCD jest pod艣wietlany za pomoc膮 diod LED w dw贸ch kolorach: zielonym
Ul IIKUII
Elektronika Praktyczna 11/2002
143
AUTOMATYKA
je wprost o warto艣ci zmierzonej wielko艣ci. Liczniki mo偶na skonfigurowa膰 do pracy w wielu trybach, kt贸re zapewniaj膮 ogromn膮 ich uniwersalno艣膰. W po艂膮czeniu z mo偶liwo艣ci膮 uzale偶niania stanu wyj艣膰 od stan贸w licznika, u偶ytkownik mo偶e zastosowa膰 licznik jako samodzielny modu艂 steruj膮cy prac膮 nadzorowanego urz膮dzenia.
Cz臋stotliwo艣膰 sygna艂贸w podawanych na wej艣cia zliczania modu艂贸w H7CX (w trybie zliczania impuls贸w) nie powinna przekracza膰 5 kHz. Producent wyposa偶y艂 wej艣cia w filtr zak艂贸ce艅, kt贸ry co prawda ogranicza maksymaln膮 cz臋stotliwo艣膰 zliczania do 30 Hz, ale eliminuje drgania styk贸w np. przeka藕nika lub dowolnego im-pulsatora mechanicznego. W trybie tachometrycznym (pomiaru pr臋dko艣ci obrotowej) maksymalna cz臋stotliwo艣膰 sygna艂u wej艣ciowego nie powinna by膰 wi臋ksza ni偶 10 kHz.
H5CX - rodzina wielofunkcyjnych, programowanych timer贸w przemys艂owych
Rodzina timer贸w H5CX sk艂ada si臋 z 12 modeli, z kt贸rych 4 nale偶膮 do grupy tzw. timer贸w ekonomicznych, maj膮cych nieco mniejsze mo偶liwo艣ci od mo偶liwo艣ci modeli standardowych (pozbawiono je m.in. wej艣cia bramkuj膮cego).
Wszystkie timery s膮 wyposa偶one w podw贸jny, dwukolorowy wy艣wietlacz LCD, kt贸rego cyfry maj膮 wysoko艣膰 11,5 mm (wskazania g艂贸wne) i 6 mm (wskazania po-
mocnicze). Obydwa wy艣wietlacze s膮 4-cyfrowe. W sk艂ad panelu operatorskiego wchodzi tak偶e 6-przy-ciskowa klawiatura, kt贸ra s艂u偶y zar贸wno do ustawiania warto艣ci parametr贸w, jak i konfiguracji tryb贸w zliczania.
Wbudowany w timery precyzyjny generator pozwala na odmierzanie czasu z rozdzielczo艣ci膮 0,001 s (na zakresach sekundowych). Maksymalna d艂ugo艣膰 odmierzanego czasu wynosi 99 godzin i 99 minut. Kierunek odmierzania czasu mo偶na zaprogramowa膰, a do jego uruchomienia konieczne jest podanie sygna艂u steruj膮cego na wej艣cie wyzwalaj膮ce. Producent przewidzia艂 wiele mo偶liwych tryb贸w pracy, w tym rzadko spotykany w podobnych urz膮dzeniach tryb podw贸jnego timera, za pomoc膮 kt贸rego mo偶na tworzy膰 sterowniki zbli偶one zasad膮 dzia艂ania do modulacji PWM.
Timery wyposa偶ono tak偶e w wyj艣cie o programowanej przez u偶ytkownika funkcji, kt贸rego elementem wykonawczym mo偶e by膰 przeka藕nik ze stykami SPDT lub tranzystor NPN trans-optora. W standardowych wersjach timer贸w, w obwodzie kolektora tego tranzystora znajduje si臋 dioda impulsowa zabezpieczaj膮ca przed przepi臋ciami powstaj膮cymi podczas prze艂膮czania obci膮偶enia indukcyjnego. W licznikach w wersji ekonomicznej nie ma tej diody, w zwi膮zku z czym u偶ytkownik musi sam zadba膰 (w razie takiej konieczno艣ci) o zabezpieczenia tranzystora wyj艣ciowego.
Timery H5CX, podobnie do wcze艣niej przedstawionych licznik贸w, s膮 montowane w obudowach o wymiarze 1/16 modu艂u DIN i s膮 przystosowane do monta偶u na p艂ytach czo艂owych urz膮dze艅 lub na szynach DIN.
Podsumowanie
Przedstawione w artykule nowe modu艂y firmy Omron dobrze ilustruj膮 zgodne wsp贸艂偶ycie klasycznej automatyki z elektronik膮, dzi臋ki czemu ich mo偶liwo艣ci, elastyczno艣膰 i 艂atwo艣膰 stosowania s膮 niepor贸wnywalnie wi臋ksze od rozwi膮za艅 nazywanych umownie klasycznymi. 艁atwo艣膰 stosowania zapewniaj膮 m.in. wbudowane w modu艂y zasilacze przystosowane do napi臋cia 24 VAC/VDC lub 100...240 VAC.
Bezpiecze艅stwo stosowania modu艂贸w zwi臋ksza mo偶liwo艣膰 zablokowania klawiatury, co zapobiega nieuprawnionym modyfikacjom ich nastaw.
Do wszystkich modu艂贸w HxCX producent oferuje du偶膮 liczb臋 akcesori贸w, w tym specjalnych zestaw贸w monta偶owych zwi臋kszaj膮cych odporno艣膰 obud贸w na zapylenie i wilgo膰, a tak偶e zestawy z艂膮cz r贸偶nego rodzaju, w tym specjalne o zwi臋kszonej odporno艣ci na zabrudzenia. Andrzej Gawryluk, AVT
Dodatkowe informacje
Artyku艂 powslat na bazie materia艂贸w udost臋pnionych przez firm臋 Omron, lei. (22) 645-78-60,www. omron .com.pl.
Elektronika Praktyczna 11/2002
145
PROJEKTY
Tester kabli UTP
AVT-5087
Obecnie obserwuje si臋
bardzo dynamiczny rozw贸j
osiedlowych sieci
komputerowych. Zapewniaj膮
najta艅szy dost臋p do Internetu,
kt贸rego popularno艣膰 ci膮gle
ro艣nie. Przy budowie takiej
sieci g艂贸wnymi problemami
s膮: brak do艣wiadczonych
instalator贸w i niewielkie
艣rodki fin an so we. Brak
艣rodk贸w uniemo偶liwia zakup
profesjonalnego testera kabli,
a brak do艣wiadczenia jest
przyczyn膮 wielu pomy艂ek.
Rekomendacje: tani
i 艂atwy w wykonaniu
przyrz膮d dla wszystkich
"zsieciowanych" u偶ytkownik贸w
komputer贸w, za pomoc膮
kt贸rego ustalenie przyczyny
nieprawid艂owego dzia艂ania
sieci b臋dzie stosunkowo 艂atwe.
Prezentowany przyrz膮d u艂atwia ustalenie przyczyny nieprawid艂owego dzia艂ania danego po艂膮czenia, zaraz po zaci艣ni臋ciu ko艅c贸wek. P贸藕niej mo偶e pom贸c w szybkim lokalizowaniu przyczyn awarii. Powstanie tego testera by艂o inspirowane do艣wiadczeniami zdobytymi przy budowie amatorskiej sieci komputerowej, a tak偶e wyk艂adami o mikiokontiolerach z rodziny PIC, prowadzonymi przez dr Stanis艂awa Pietiaszka na P oli techni c e Sl 膮ski ej .
Troch臋 teorii
Wi臋kszo艣膰 amatorskich sieci bazuje na kablach UTP (Unshiel-ded Twisted Fair), czyli na nie-ekianowanej "skr臋tce". Kabel UTP zawiera osiem przewod贸w skr臋conych parami, ale do przesy艂ania informacji wykorzystywane s膮 tylko dwie pary. Do艣膰 cz臋stym b艂臋dem monta偶owym jest zaci艣ni臋cie wtyku na kablu bez uwzgl臋dnienia skr臋ce艅 par przewod贸w. Taki kabel na kr贸tkich odcinkach b臋dzie dzia艂a膰 poprawnie, jednak dla d艂u偶szych po艂膮cze艅 mo偶e sprawia膰 wiele k艂opot贸w.
Standard lOBase-T i lOOBase-TX okre艣la maksymaln膮 d艂ugo艣膰 kabla po艂膮czeniowego do 100 m. W praktyce do艣膰 cz臋sto dystans ten jest przekraczany, i w takich przypadkach pewne zaci艣ni臋cie wtyczki jest szczeg贸lnie istotne.
Jak mo偶na zauwa偶y膰 na rys. 1, przewody o numerach 1 (TX+) i 2 (TX-) wyprowadzaj膮 sygna艂 z karty sieciowej, a przewody z numerami 3 (RX+) i 6 (RX-) wprowadzaj膮 go do karty. Wydawa膰 by
si臋 mog艂o, i偶 druga para przewod贸w (licz膮c od lewej) jest pod艂膮czona troch臋 nienaturalnie, ale tylko w ten spos贸b zapewnimy skuteczne t艂umienie zak艂贸ce艅.
Obowi膮zuj膮 praktycznie dwa standardy kolejno艣ci do艂膮czania przewod贸w. Jest umowne, kt贸ry z nich zastosujemy (mo偶emy nawet wymy艣li膰 w艂asny, uwzgl臋dniaj膮c oczywi艣cie pary przewod贸w). Wa偶ne jest konsekwentne stosowanie konkretnego standardu, aby zawsze by艂o wiadomo, jak jest zaci艣ni臋ta wtyczka po drugiej stronie (nie zawsze mamy do niej dost臋p, 偶eby to sprawdzi膰). Najcz臋艣ciej obie wtyczki s膮 zaci艣ni臋te w ten sam spos贸b, co pozwala na 艂膮czenie karty sieciowej z hubem lub switchem. W przypadku 艂膮czenia bezpo艣rednio dw贸ch kart sieciowych (dw贸ch komputer贸w) lub innych urz膮dze艅 sieciowych (huby, switche) ni ep o siadaj膮cych tzw. uplinka, nale偶y w kablu skrzy偶owa膰 pary TX z RX. W takim przypadku z jednej strony zaciskamy wtyczk臋 wed艂ug standardu A, a z drugiej strony wed艂ug standardu B. Kabel ze skrzy偶owanymi parami nosi nazw臋 kabla kiosowa-nego. Wa偶ne jest, by pary 艂膮czy艂y wyj艣cia (TX) jednego urz膮dzenia z wej艣ciami (RX) drugiego.
Opis budowy
Schemat elektryczny testera przedstawiono na rys. 2. Tester sk艂ada si臋 z dw贸ch cz臋艣ci: p艂ytki g艂贸wnej i p艂ytki terminatora. "Sercem" testera jest mikiokontroler PIC16F62 7, kt贸ry wyposa偶ono w peryferie, dzi臋ki kt贸rym by艂o
Elektronika Praktyczna 11/2002
21
Tester kabli UTP
Gniazdo RJ45 na karcie sieciowej
Kole|no艣膰 przewod贸w, standard A:
1 - bia艂o-zielony,
2 - zielony.
3 - bla艂o-pomara艅czowy,
4 - niebieski,
5 - bia艂o-niebieski,
6 - pomara艅czowy,
7 - bia艂o-br膮zowy, 8-br膮zowy.
Kolejno艣膰 przewod贸w, standard B:
1 - bla艂o-pomara艅czowy,
2 - pomara艅czowy,
3 - bla艂o-zlelony,
4 - niebieski,
5 - bia艂o-niebieski,
6 - zielony,
7 - bia艂o-br膮zowy, 8-br膮zowy.
WtykRJ45
Rys. 1. Opis kolejno艣ci do艂膮czenia przewod贸w w z艂膮czu RJ45
mo偶liwe uproszczenie sprz臋towej cz臋艣ci testera. Bardzo u偶ytecznym blokiem jest wewn臋trzny generator RG, kt贸ry w prezentowanym testerze, w kt贸rym dok艂adne odmierzanie czasu nie jest istotne, eliminuje zastosowanie rezonatora kwarcowego i zwi臋ksza liczb臋 dost臋pnych wyprowadze艅. Kolejnym udogodnieniem jest wewn臋trzny uk艂ad zeruj膮cy, kt贸ry po w艂膮czeniu zasilania generuje wewn臋trzny sygna艂 zeruj膮cy o czasie trwania oko艂o 72 ms. Wewn臋trzna pami臋膰 EEP-ROM mikrokontrolera pozwala za zapami臋tanie ustawie艅 szybko艣ci testowania, co oznacza, 偶e wymiana baterii nie wi膮偶e si臋 z konieczno艣ci膮 ponownego ustawiania tej szybko艣ci. Wbudowany komparator ze 藕r贸d艂em referencyjnym umo偶liwia kontrolowanie stanu baterii. Wewn臋trzne podci膮gni臋cie do napi臋cia zasilania eliminuje zewn臋trzny rezystor umo偶liwiaj膮cy odczyt stanu przycisku s艂u偶膮cego do zmiany trybu pracy.
Tester mo偶e pracowa膰 w kilku trybach. W艂膮czenie, wy艂膮czenie i zmian臋 trybu pracy umo偶liwia jeden przycisk. Takie rozwi膮zanie mo偶e wydawa膰 si臋 uci膮偶liwe, jednak w praktyce do艣膰 szybko mo偶na si臋 do tego przyzwyczai膰. Informacja o aktualnym trybie pracy prezentowana jest na trzech diodach LED D1...D3. Na rys. 3 przedstawiono graf przej艣膰 pomi臋dzy poszczeg贸lnymi trybami pracy.
Uk艂ad zasilany jest z trzech baterii R6, kt贸re zapewniaj膮 do艣膰 d艂ug膮 jego prac臋. Tester posiada funkcje automatycznego wy艂膮czenia, je偶eli nie zostanie przyci艣ni臋ty przycisk przez czas d艂u偶szy ni偶 30 min. Stan roz艂adowania baterii sygnalizowany jest miganiem diod LED D1...D3. W stanie u艣pienia uk艂ad pobiera pr膮d poni偶ej 1 |iA, co pozwala na rezygnacj臋 z od艂膮czania napi臋cia zasilania i pe艂n膮 kontrol臋 testera tylko jednym przyciskiem. Rezystor Rl ogranicza pr膮d diod LED D1...D3. Jest to tylko jeden rezystor, poniewa偶 w normalnej pracy mo偶e 艣wieci膰 tylko jedna z diod. Wyj膮tkowym przypadkiem jest roz艂adowanie baterii. Warto艣膰 rezystancji R2 dobrano tak, 偶eby ograniczy膰 pr膮d, kt贸ry m贸g艂by pop艂yn膮膰 przez kt贸r膮艣 z diod D1...D3 (do masy uk艂adu) i zniszczy膰 j膮.
Wyprowadzenie 18 (RAI) uk艂adu USl jest w tym testerze wej艣ciem komparatora, kt贸ry por贸wnuje spadek napi臋cia na 艣wiec膮cej si臋 diodzie LED (gdy 艣wieci tylko jedna) z napi臋ciem ustawionym w wewn臋trznym 藕r贸dle referencyjnym. 殴r贸d艂o referencyjne jest w istocie programowalnym dzielnikiem rezystorowym. Napi臋cie z tego dzielnika jest wprost proporcjonalne do napi臋cia baterii. Napi臋cie na w艂膮czonej diodzie LED jest w przybli偶eniu niezale偶ne od napi臋cia zasilania. Takie por贸wnanie pozwala do艣膰 艂atwo kontrolowa膰
stan baterii. W cz臋艣ci pomiarowej diody D4...D11 informuj膮, kt贸ra z linii jest aktualnie testowana, z wyj膮tkiem trybu 3, w kt贸rym diody 艣wiec膮ce informuj膮 o zwarciu w danych parach (test jest przeprowadzany tylko na parach TX i RX).
Jasno艣膰 艣wiecenia diod D4...D11 jest dobierana rezystorem R3. Rezystory R4...R11 ograniczaj膮 pr膮d 艣wiecenia diod LED D12...D19. Diody D20...D35 zamykaj膮 obw贸d do masy, kt贸ra jest dost臋pna na wszystkich liniach nietestowanych w danej chwili. Oznacza to, i偶 uszkodzenie kilku linii i tak pozwoli zamkn膮膰 obw贸d przez pozosta艂e nietestowane i nieuszkodzone linie.
Prze艣led藕my kilka mo偶liwych przypadk贸w z u偶yciem terminatora, tzn. z jednej strony przewodu "wpi臋ty" jest uk艂ad g艂贸wny testera, a z drugiej terminator:
- kabel jest sprawny - mikrokon-troler podaje na kolejne linie testowanego kabla poziom wysoki, w efekcie czego diody na terminatorze zapalaj膮 si臋 kolejno,
- zamiana kolejno艣ci przewod贸w -diody LED na terminatorze zapalaj膮 si臋 nie po kolei,
- przerwa linii - dioda LED odpowiadaj膮ca uszkodzonej linii nie zostaje zapalona,
- zwarcie pomi臋dzy liniami - diody LED odpowiadaj膮ce zwartym liniom nie 艣wiec膮; zwarcie linii powoduje zwarcie poziomu wysokiego do poziomu niskiego, kt贸ry jest w tym wypadku "silniejszy".
Monta偶 testera
Schemat monta偶owy obydwu p艂ytek testera pokazano na rys. 4. Monta偶 nie wymaga specjalnych umiej臋tno艣ci, a zastosowanie mikrokontrolera pozwoli艂o na zminimalizowanie liczby stosowanych element贸w. Warto zadba膰 o zamkni臋cie obydwu p艂ytek testera w obudowach, kt贸re zapobiegn膮 jego uszkodzeniu podczas prac monta偶owych.
Obs艂uga
Podstawowe tryby pracy wi膮偶膮 si臋 z wykorzystaniem terminatora. Testowanie kabla polega na zapi臋ciu po jednej stronie cz臋艣ci g艂贸wnej testera, wybraniu trybu pracy i za艂o偶eniu terminatora po drugiej stronie. Obserwacja kolejno艣ci zapalaj膮cych si臋 (lub nie) diod pozwala stwierdzi膰 poprawno艣膰 monta偶u.
Elektronika Praktyczna 11/2002
Tester - cz臋艣膰 g艂贸wna
R1 720
3x1.5V
C1
T
R2 10k
=C2 100n
SW1 Przycisk
D1
D2
VSS
BBO
US1 PIC16F627-04
D3
RB1 RB2 RB3
RB4
RAO
RA3
Tester kabli UTP
Tester - terminator
___.*,*
1
2 3
Testowany kabel
RJ45lp
_G2 1
2
RJ45lp
1N4148 D28 D13LJ
1N414B D29 D14kJ
1N4148 D33
1N414B D34
1N4148 D35
Rys. 2. Schemat elektryczny testera
Trybl - automatyczne sprawdzanie normalnego (prostego) kabla - w tym trybie diody terminatora D12...D19 powinny si臋 zapala膰 po kolei. Zmiana kolejno艣ci 艣wiecenia 艣wiadczy o b艂臋dnej kolejno艣ci w jednej z wtyczek. Brak 艣wiecenia sygnalizuje zwarcie lub rozwarcie testowanej linii.
Tryb2 - testowanie automatyczne kabla krosowanego - cz臋艣膰 g艂贸wna testera wypracowuje tak膮 kolejno艣膰 zapalania diod, by diody terminatora D12...D19 zapala艂y si臋 po kolei. Brak 艣wiecenia sygnalizuje zwarcie lub rozwarcie testowanej linii.
Tryb3 - testowanie pod艂膮czenia kabla do urz膮dzenia sieciowego -tylko w tym trybie testowym nie wykorzystujemy terminatora sprawdzane jest oddzielnie zwarcie pomi臋dzy parami przewod贸w TX i RX. Je偶eli drugi koniec kabla jest w艂o偶ony do urz膮dzenia sieciowego (karta sieciowa, hub, switch), to diody odpowiadaj膮ce tym parom powinny 艣wieci膰. Dla pary TX 艣wiec膮 si臋 diody D4 i D5, a dla pary RX 艣wiec膮 si臋 diody D6 i D9. Pozwala to sprawdzi膰 obecno艣膰 tak偶e niew艂膮czonego urz膮dzenia sieciowego znajduj膮cego si臋 po drugiej stronie kabla. Test ten opiera si臋 na za艂o偶eniu, i偶 obwo-
dem wej艣ciowym ka偶dego urz膮dzenia sieciowego jest transformator impulsowy, kt贸ry dla sk艂adowej sta艂ej jest zwarciem.
Tryb4 - r臋czne testowanie poszczeg贸lnych przewod贸w - podobnie Trybl, jednak przej艣cie do testowania kolejnej linii realizowane jest przez kr贸tkie naci艣ni臋cie przycisku.
Tryb5 - testowanie jednoczesne wszystkich przewod贸w - tryb ten
Tryb 1: automatyczne testowanie przewodu normalnego
sygnalizacja: 艣wiecenie D1
Tryb 3: testowanie pod艂膮czenia kabla do urz膮dzenia sieciowego
sygnalizacja: 艣wiecenie D2
umo偶liwia jednoczesn膮 obserwacj臋 wszystkich przewod贸w. Poziom wysoki pojawia si臋 na kolejnych liniach odpowiednio szybko, co daje z艂udzenie 艣wiecenia wszystkich diod jednocze艣nie.
Tryb6 - ustawianie pr臋dko艣ci dla tryb贸w automatycznych - mo偶emy dostosowa膰 pr臋dko艣膰 testowania kolejnych linii dla tryb贸w automatycznych. Czas pomi臋dzy
- kr贸tkie naci艣ni臋cie przycisku . - d艂ugie naci艣ni臋cie przycisku
Tryb 2: automatyczne testowanie przewodu krosowanego
sygnalizacja: miganie D1
J-------L
Tryb 4: r臋czne testowanie poszczeg贸lnych przewod贸w
sygnalizacja: miganie D2
Tryb 5: testowanie jednoczesne wszystkich przewod贸w
sygnalizacja: 艣wiecenie D3
J-------L
Tryb 6: ustawianie pr臋dko艣ci dla tryb贸w automatycznych
sygnalizacja: pulsowanie D3
Rys. 3. Sekwencja wyboru trybu pracy
Elektronika Praktyczna 11/2002
23
Tester kabli UTP
^S I
Rys. 4. Schemat monta偶owy testera
kr贸tkimi naci艣ni臋ciami przycisku jest czasem, po kt贸rym nast臋puje przej艣cie do testowania kolejnej linii. Po wyj艣ciu z tego trybu czas zostaje zapisany w wewn臋trznej pami臋ci EEPROM. Pomiar czasu, czyli okres po pierwszym naci艣ni臋ciu przycisku, sygnalizowany jest ci膮g艂ym 艣wieceniem diody D3. Drugie przyci艣ni臋cie powoduje zgaszenie diody D3 i uk艂ad
z zaprogramowanym czasem zapala kolejno diody D4...D12. Dioda D3 艣wieci pulsuj膮c o po ka偶dej zmianie diod D4...D12. Je偶eli drugie naci艣ni臋cie nie wyst膮pi w czasie kr贸tszym ni偶 oko艂o 15 sekund, uk艂ad ko艅czy pomiar czasu i zapami臋tuje jego poprzedni膮 warto艣膰.
Andrzej Michnik andnet@wp.pl
WYKAZ ELEMENT脫W
P艂ytka g艂贸wna Rezystory
Rl, R3: 720O R2: 10kO R4...R11: 510O Kondensatory Cl: 100^F/16V C2: lOOnF P贸艂przewodniki
US1: PIC16F627-04 zaprogramowany Dl...Dli: dowolne diody LED D20...D27: 1N4148 R贸偶ne
SW1: mikroprze艂膮cznik Gl: gniazdo RJ45 do druku P艂ytka terminatora P贸艂przewodniki
D12...D19: dowolne diody LED D28...D35: 1N4148 R贸偶ne G2: gniazdo RJ45 do druku
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/listopad02.htm oraz na p艂ycie CD-EP11/2002B w katalogu PCB.
Elektronika Praktyczna 11/2002
PROJEKTY
Programowany 4-kana艂owy komparator/woltomierz
AVT-5086
Podczas uruchamiania
uk艂ad贸w analogowych cz臋sto
trzeba 艣ledzi膰 w kilku
punktach zmieniaj膮ce si臋
n api臋cia. W贸wczas m o偶n a
prze艂膮cza膰 multimetr mi臋dzy
tymi punktami lub do艂膮czy膰
kilka woltomierzy.
Prze艂膮czanie miernika jest
uci膮偶liwe i nie jest mo偶liwe
do zastosowania, je艣li
napi臋cia w kilku punktach
m usz膮 by膰 mierzone
jednocze艣nie, a zastosowanie
kilku miernik贸w jest
kosztowne.
Rekomendacje: pomiar
napi臋cia w wielu punktach
(a po艣rednio: temperatury,
ci艣nienia, wilgotno艣ci,
masy itp.), na przyk艂ad
w systemach ci膮g艂ej kontroli
warto艣ci parametr贸w
艣ledzonego procesu.
Prezentowany w artykule woltomierz umo偶liwia jednoczesny pomiar czterech napi臋膰. Ma jeden zakres pomiarowy 0...50 V. Wynik pomiaru napi臋cia jest wy艣wietlany z rozdzielczo艣ci膮 0,1 V, ale w wi臋kszo艣ci przypadk贸w jest ona wystarczaj膮ca.
Woltomierz zosta艂 wykonany do艣膰 nietypowo, gdy偶 nie posiada 偶adnego specjalizowanego uk艂adu pomiaru napi臋cia. Jedynym uk艂adem scalonym jest mikrokontroler PIC16F872 z wbudowanym przetwornikiem A/C. Wewn臋trzny multiplekser umo偶liwia do艂膮czenie do przetwornika ka偶dego z wej艣膰 analogowych b臋d膮cych wyprowadzeniami portu RA i pomiar napi臋cia na tych wej艣ciach. Takie wyposa偶enie pozwala na wykonanie wielokana艂owego woltomierza bez wyspecjalizowanych uk艂ad贸w multimetr贸w. Oprogramowanie steruj膮ce mikrokontrolerem umo偶liwia 艣ledzenie zmian warto艣ci napi臋cia na ka偶dym z wej艣膰 i w艂膮czenie sygnalizacji akustycznej w przypadku przekroczenia przez napi臋cie mierzone zadanej (zaprogramowanej) warto艣ci. Sygna艂 akustyczny jest odmienny dla ka偶dego z kana艂贸w pomiarowych, co jednoznacznie okre艣la, w kt贸rym kanale
warto艣膰 napi臋cia zosta艂a przekroczona, bez spogl膮dania na wy艣wietlacz.
Ze wzgl臋du na modu艂ow膮 budow臋, woltomierz mo偶e by膰 tak偶e stosowany jako miernik napi臋cia wej艣ciowego na przyk艂ad w zasilaczu regulowanym.
Opis uk艂adu i zasada dzia艂ania
Schemat elektryczny woltomierza przedstawiono na rys. 1. G艂贸wnym elementem przyrz膮du jest mikrokontroler firmy Microchip PIC16F872. Zawiera on w swojej strukturze pami臋膰 programu Flash
0 pojemno艣ci 2 kbajt贸w, pami臋ci RAM o pojemno艣ci 128 bajt贸w oraz 128 bajt贸w pami臋ci EEPROM. Jak wspomniano, mikrokontroler ma wbudowany tak偶e 10-bitowy przetwornik analogowo-cyfrowy. Do艂膮czanie napi臋膰 mierzonych
1 odniesienia do przetwornika zawartego w uk艂adzie USl przedstawiono na rys. 2. Wewn臋trzny multiplekser umo偶liwia pomiar napi臋cia na jednym z pi臋ciu wej艣膰. Wej艣ciami przetwornika s膮 wyprowadzenia portu RA, kt贸re w zale偶no艣ci od konfiguracji mog膮 by膰 normalnymi liniami portu cyfrowego lub wej艣ciami analogowymi przetwornika A/C. W trybie analogowym wej艣cia RA2 i RA3 mog膮 pe艂ni膰 rol臋 wej艣膰 napi臋cia odnie-
Elektronika Praktyczna 11/2002
25
Programowany 4-kanalowy komparator/woltomierz
9V VCC
CON1
OSC1/CLKIN OSC2/CLKOJT
MCLIWPP RCfflTIOSO/nCKI
RAO/ANO RC1/T1OSI
RA1/ANI
RA2/AN2/VREF- RC3SCK/3CL.
RA3/AN3/VREF+ RCWSDI/SDA
Rys. 1. Schemat elektryczny woltomierza
sieni膮 dla przetwornika, odpowiednio napi臋cia ujemnego i dodatniego. Warto艣膰 napi臋膰 wej艣ciowych, zar贸wno odniesienia, jak i mierzonych musz膮 zawiera膰 si臋 w przedziale O...5V (przy napi臋ciu zasilania mikrokontrolera r贸wnym 5V). Zatem "ujemne" napi臋cie odniesienia oznacza napi臋cie o mniejszej warto艣ci (okre艣la doln膮 warto艣膰 zakresu pomiarowego -zwykle 0 V), a "dodatnie" oznacza napi臋cie o wi臋kszej warto艣ci (okre艣la g贸rn膮 warto艣膰 zakresu pomiarowego - zwykle 5 V).
Aby wykorzysta膰 wszystkie wej艣cia analogowe, mo偶na tak skonfigurowa膰 przetwornik, 偶e wej艣cie dodatniego napi臋cia odniesienia b臋dzie wewn臋trznie zwarte do plusa zasilania, a wej艣cie ujemnego do masy. W ten spos贸b uzyskamy pi臋ciowej艣ciowy przetwornik o zakresie napi臋膰 wej艣ciowych 0...5 V. Dok艂adno艣膰 pomiaru takiego przetwornika b臋dzie zale偶a艂a g艂贸wnie od warto艣ci i stabilno艣ci napi臋cia zasilaj膮cego mikrokontroler.
Je偶eli wymagana jest du偶a dok艂adno艣膰 pomiaru napi臋cia, to jako napi臋cie odniesienia mo偶na zastosowa膰 zewn臋trzne 藕r贸d艂o, niestety kosztem jednego lub dw贸ch kana艂贸w pomiarowych przetwornika. Dzi臋ki temu uzyska si臋 du偶o wi臋ksz膮 stabilno艣膰 ni偶 w przypadku korzystania z napi臋cia zasilaj膮cego mikrokontroler. W przedstawionym uk艂adzie zastosowano zewn臋trzne 藕r贸d艂o na-
pi臋cia odniesienia w postaci diody typu LM385-5, kt贸ra wraz z rezystorem R5 i kondensatorem C5 dostarcza napi臋cia o warto艣ci 5 V dla dodatniego wej艣cia odniesienia przetwornika analog owo-cyfrowego. Ujemne wej艣cie napi臋cia odniesienia zosta艂o wewn臋trznie zwarte do masy. W takiej konfiguracji uzyskano cztero wej艣ciowy przetwornik o stabilnym napi臋ciu odniesienia zapewniaj膮cym wykonywanie pomiar贸w napi臋膰 w zakresie 0...5 V z rozdzielczo艣ci膮 oko艂o 5 mV.
Obs艂uga przetwornika zawartego w mikrokontrolerze jest bardzo 艂atwa. Na list. 1 przedstawiono najprostsz膮 procedur臋 odczytuj膮c膮 napi臋cie na wej艣ciu przetwornika analogowo-cyfrowego.
W procedurze tej linia RA.O jest wej艣ciem analogowym, wej艣膰 napi臋膰 odniesienia dla przetwornika A/C zosta艂y wewn臋trznie odpowiednio do艂膮czone do masy i plusa zasilania.
Na pocz膮tku programu ustawiane s膮 ustawiane wst臋pne parametry przetwornika A/C i port贸w. Przetwornik A/C zosta艂 skonfigurowany do pomiar贸w w o艣miu taktach zegara, czyli wynik pomiaru otrzymujemy po oko艂o 8 |is. Wynik pomiaru jest dost臋pny w postaci binarnej na porcie RC, dlatego port ten zosta艂 skonfigurowany jako wyj艣ciowy. Do tego portu mo偶na do艂膮czy膰 osiem diod 艣wiec膮cych -poprzez rezystory szeregowe o war-
to艣ci 470 O, z katod膮 do艂膮czon膮 do masy. W ten spos贸b b臋dzie mo偶na wy艣wietli膰 wynik pomiaru widoczny na do艂膮czonych diodach.
Po skonfigurowaniu przetwornika pomiar rozpoczyna si臋 od ustawienia bitu GO w rejestrze ADCON0. Nast臋pnie nale偶y czeka膰 na wyzerowanie tego bitu. Zerowanie odbywa si臋 automatycznie po zako艅czeniu pomiaru. Wynik przetwarzania jest zawarty w rejestrach ADRESH - osiem bit贸w bardziej znacz膮cych ("starszych") i w ADRESL - dwa bity mniej znacz膮ce ("m艂odsze"). W naszym przyk艂adzie odczytywane s膮 tylko
List. 1. Przyk艂adowa procedura
odczytu napi臋cie z wej艣cia
przetwornika A/C
list p=16f872
include Mpl6f872.inc
org0x000
__config
b'0010 01001110011;konfl guracja(fuses)
Start
banksel PORTC ustaw bank na p ortc
clrf PORTC zeruj portc
movlw E'010000011 Fosc/8, A/D w艂膮 czony
movwf ADCOWO
banksel OPTIOW_REG ustaw bank na
OPTIOW_REG
clrf TRISC PORTC jako wyj艣 cia
movlw E'000011101 port PAO analog owy,
pozosta艂e cyfro We
movwf ADCOW1 napi臋cie odnie艣 ienia
VCC i GND
banksel PORTC ustaw bank na p ortc
Main bsfADCOWO,GO start przetwarza nia A/C
Wait
btfsc ADCONO.GO czekaj na konie c
przetwarzania
goto Wait
movf ADRESH,W wy艣lij wynik
przetwarzania
movwf PORTC do portu RC
goto Main ponowny pomiar
end
26
Elektronika Praktyczna 11/2002
Programowany 4-kana艂owy komparator/woltomierz
WIN
V V
=v
V ,V
VW>
DateM biegun napi臋cia atotaienta | ]
PCF03PCFBO
Ujsrmy bisgin
| RA5/AN4
I RM/AN3/VREFf
I RA2fAN2/VREP-
RA1/AN1 I RAWANO
PCFOWCFOO
Rys. 2. Do艂qczanie napi臋膰 (mierzonych i referencyjnych) do przetwornika A/C zawartego w mikrokontrolerze
"starsze" bity i wysy艂ane do portu RC Zmieniaj膮c napi臋cie na wej艣ciu RAO, mo偶emy obserwowa膰 na diodach warto艣膰 mierzonego napi臋cia w postaci binarnej. Odczyt tylko rejestru "ADRESH" powoduje, 偶e wynik pomiaru jest reprezentowany tylko o艣mioma bitami, czyli przetwornik staje si臋 8-bito-wym. Gdy nie jest konieczna du偶a dok艂adno艣膰 pomiar贸w, znacznie upraszczaj膮 si臋 procedury obliczeniowe, gdy偶 operacje wykonywane s膮 na danych jednobajtowych.
W woltomierzu przetwornik zosta艂 skonfigurowany do pomiaru napi臋膰 w zakresie 0...5 V. Cyfrowy wynik przetwarzania jest 10-bito-wy, czyli mo偶liwe jest uzyskanie 1024 poziom 贸w warto艣ci
0 rozdzielczo艣ci 5 V/1023. W celu wyra偶enia w woltach warto艣ci wskazywanej przez przetwornik, nale偶y cyfrowy (dw贸jkowy) wynik pomiaru przekszta艂ci膰 do postaci dziesi臋tnej i skorzysta膰 ze wzoru:
UK= D*(5V/1024) [V] Aby rozszerzy膰 zakres pomiarowy, na wej艣ciach przetwornika zastosowano dzielniki napi臋cia zbudowane z rezystor贸w R1...R4
1 R8....R11 (kondensatory C1...C4 filtruj膮 napi臋cie wej艣ciowe). Tak wykonany dzielnik powoduje podzia艂 napi臋cia wej艣ciowego przez jedena艣cie, w konsekwencji mierzone napi臋cie wyliczane jest ze
wzoru:
U = D*(ll*5V/1024)
Woltomierz umo偶liwia wi臋c pomiar napi臋cia w zakresie 0...55 V (maksymalne napi臋cie mo偶e wynosi膰 55 V), przy rezystancji wej艣ciowej r贸wnej oko艂o 110 kLi. Wyniki pomiar贸w z rozdzielczo艣ci膮 0,lV s膮 przedstawiane na wy艣wietlaczu alfanumerycznym o organizacji 2*16 znak贸w. Przyk艂adowo, wyniki wy艣wietlania mog膮 by膰 takie, jak na rys. 3.
Ze wzgl臋du na ograniczon膮 liczb臋 znak贸w mo偶liwych do wy艣wietlenia, na wy艣wietlaczu jest podawany numer kana艂u mierzonego napi臋cia oraz jego warto艣膰 bez jednostki. Nie stanowi to istotnego ograniczenia, gdy偶 woltomierz jest jednozakiesowy, wi臋c mierzone napi臋cie zawsze b臋dzie podawane w woltach.
Poniewa偶 mikiokontioler nie wykonuje operacji 艣ci艣le zale偶nych od czasu, wi臋c wewn臋trzny uk艂ad oscylatora zosta艂 skonfigurowany do pracy z elementami RC (s膮 to rezystor R6 i kondensator C6). Do zerowania mikiokontrolera zastosowano zewn臋trzny uk艂ad zerowania w postaci specjalizowanego uk艂adu US2. Jako sygnalizator zastosowano brz臋czyk, kt贸ry sterowany jest z czterech, r贸wnolegle po艂膮czonych wyprowadze艅 portu RB, dodatkowy rezystor R7 ogranicza pr膮d p艂yn膮cy przez brz臋czyk.
Napi臋cie zasilania 5V jest dostarczane przez stabilizator typu LM78L05. Kondensatory C7...C10
wyg艂adzaj膮 napi臋cie zar贸wno na wej艣ciu, jak i na wyj艣ciu stabilizatora. Dioda Dl zabezpiecza uk艂ad przy odwrotnej polaryzacji napi臋cia zasilania.
Monta偶 i uruchomienie
Schemat monta偶owy p艂ytki woltomierza zamieszczono na rys. 4. Monta偶 rozpoczynamy od wlu-towania rezystor贸w, podstawki pod mikiokontioler, a nast臋pnie montujemy kondensatory i z艂膮cza CON1...CON5. Na ko艅cu, od strony element贸w, montujemy potencjometr i brz臋czyk. Przyciski SW1... SW4 oraz wy艣wietlacz montujemy od strony lutowania. Przed wlutowaniem wy艣wietlacza nale偶y dokona膰 ma艂ej modyfikacji po艂膮cze艅 na jego p艂ytce. Zastosowany w modelu wy艣wietlacz GDM1602A posiada pod艣wietlanie, kt贸re jest w艂膮czone na sta艂e. Pr膮d pobierany przez diody pod艣wietlania wynosi oko艂o 100 mA. Zastosowany stabilizator napi臋cia mo偶e by膰 obci膮偶ony pr膮dem do 100 mA. Sumaiyczny pr膮d pobierany przez woltomierz znacznie przekracza t臋 warto艣膰, dlatego nale偶y wy艂膮czy膰 pod艣wietlanie wy艣wietlacza, aby stabilizator nie zosta艂 uszkodzony. Wykonuje si臋 to przez wy lutowanie jednego z dw贸ch rezystor贸w SMD na p艂ytce wy艣wietlacza oznaczonych symbolami R6 i R7. Rezystor R6 jest rezystorem o warto艣ci "zerowej" (rezystancja wynosi 0Li) i s艂u偶y jedynie jako po艂膮czenie katod diod pod艣wietlaj膮cych z mas膮 zasilania, natomiast rezystor R7, o warto艣ci 6,8 Li; jest do艂膮czony do anod diod pod艣wietlaj膮cych oraz plusa zasilania i zapewnia ograniczenie p艂yn膮cego przez nie pr膮du do warto艣ci oko艂o 100 mA. Przerwanie obwodu w kt贸rymkolwiek miejscu spowoduje wy艂膮czenie pod艣wietlania. Po tej czynno艣ci uk艂ad pobiera zaledwie kilka miliamper贸w pr膮du i zastosowany stabilizator nie jest przeci膮偶ony. W przypadku zastosowania innego typu wy艣wietlacza (bez pod艣wietlania) czynno艣ci te s膮 zb臋dne.
Po przygotowaniu wy艣wietlacza nale偶y go wmontowa膰 w p艂yt-
Rys. 3. Przyk艂adowe wskazania podczas pomiaru napi臋膰
Elektronika Praktyczna 11/2002
27
Programowany 4-kana艂owy komparator/woltomierz
usSdooooooooooooo
?ooaoooooooaoo
-O y- D2 -O1脫 O O O O ---------
Rys. 4. Rozmieszczenie element贸w na p艂ytce drukowanej
k臋, tak jak przyciski SW1...SW4, od strony lutowania. Prawid艂owo zmontowany woltomierz nale偶y wst臋pnie uruchomi膰. W tym celu do z艂膮cza CON5 nale偶y do艂膮czy膰 napi臋cie zasilania o warto艣ci oko艂o 9V. Potencjometrem PRl ustalamy najlepszy kontrast wy艣wietlacza. W贸wczas na wy艣wietlaczu pojawi si臋 napis jak na rys. 5. Do z艂膮czy CON1...CON4 nale偶y do艂膮czy膰 regulowane 藕r贸d艂a napi臋cia, zmierzone warto艣ci napi臋膰 b臋d膮 wy艣wietlane na wy艣wietlaczu. Symbole U1...U4 odnosz膮 si臋 do napi臋膰 podawanych na z艂膮cza odpowiednio CON1...CON4.
Obs艂uga
Jak wspomniano, opisywany przyrz膮d opr贸cz funkcji typowego woltomierza wyposa偶ono tak偶e w funkcj臋 programowanego, 4-ka-na艂owego komparatora napi臋cia. Oznacza to, 偶e dla ka偶dego kana艂u pomiarowego mo偶na okre艣li膰 warto艣ci napi臋膰, kt贸rych przekroczenie b臋dzie sygnalizowane akustycznie. Po w艂膮czeniu zasilania komparatory dla wszystkich kana艂贸w s膮 wy艂膮czone. Aby w艂膮czy膰 ustawienia okienka komparatora dla dowolnego kana艂u pomiarowego, wystarczy nacisn膮膰 odpowiedni przycisk SW1...SW4. W贸wczas na wy艣wietlaczu zostan膮 wy艣wietlone warto艣ci napi臋cia, przy kt贸rych b臋dzie w艂膮czona sygnalizacja akustyczna (dla kana艂u Ul przycisk SWl, dla U2 przycisk SW2 itd.). Przyk艂adowo naci艣ni臋cie przycisku SWl spowoduje wy艣wietlanie warto艣ci pokazanych na rys. 6.
Warto艣ci pocz膮tkowe napi臋膰 okienka komparatora zosta艂y tak ustawione, 偶e nigdy nie zostanie
spe艂niony warunek przekroczenia napi臋cia alarmu komparatora, gdy偶 sygnalizacja akustyczna zostanie w艂膮czona, je艣li napi臋cie mierzone b臋dzie mniejsze ni偶 0V lub wi臋ksze ni偶 50V, a s膮 to warto艣ci napi臋cia wykraczaj膮ce poza zakres pomiarowy woltomierza i nie powinny wyst膮pi膰 na 偶adnym z wej艣膰 pomiarowych.
Aby zmieni膰 warto艣ci napi臋膰 okienkowy komparatora, nale偶y naciskaj膮c klawisze UP (SWl) lub DOWN (SW3) ustawi膰 odpowiedni膮 warto艣膰 napi臋cia. W pierwszej kolejno艣ci ustawiana jest warto艣膰 napi臋cia, powy偶ej kt贸rej nast膮pi alarm - g贸rna warto艣膰 okienka, co sygnalizowane, podkre艣leniem warto艣ci napi臋cia w pierwszej linii wy艣wietlacza. Po ustawieniu odpowiedniej warto艣ci, naciskamy klawisz OK (SW2), zatwierdzaj膮c jego warto艣膰, a nast臋pnie podkre艣lona zostanie warto艣膰 napi臋cia w drugiej linii wy艣wietlacza, czyli ustawiana b臋dzie warto艣膰 napi臋cia, poni偶ej kt贸rego nast膮pi alarm - dolna warto艣膰 okienka. Tak jak w pierwszym przypadku, klawiszami UP (SWl) lub DOWN (SW3) ustawiamy odpowiedni膮 warto艣膰 i zatwierdzamy klawiszem OK (SW2). Warto艣ci obydwu napi臋膰 zostan膮 zapisane w pami臋ci mik-rokontiolera. Na wy艣wietlaczu pojawi si臋 napis ZAPISANE i nast膮pi powr贸t do wskazywania warto艣ci mierzonych napi臋膰.
Ustawianie warto艣ci napi臋膰 komparatora okienkowego mo偶na w dowolnej chwili przerwa膰 naciskaj膮c klawisz ESC (SW4). W贸wczas 偶adna z wprowadzonych ju偶 warto艣ci nie zostanie zapisana i nast膮pi powr贸t do wskazywania zmierzonych napi臋膰.
Je艣li U1>5LU0U Je艣li U
Rys. 5. Wskazania wy艣wietlacza bez do艂qczonych napi臋膰 na wej艣ciach
Rys. 贸. Przyk艂adowe nastawy napi臋膰 referencyjnych komparatora
WYKAZ ELEMENT脫W
Rezystory
R1...R4: 100kn/l%
R5: lkn
R贸: 4,7
R7:
RS...R11: 10kn/l%
PRl: potencjometr monta偶owy
lOkn
Kondensatory
C1...C5: lOOnF
C贸: 33pF
C7: 220^/16V
CS, C9: lOOnF
CIO: lC膮iF/16V
P贸艂przewodniki
Dl: 1N5S17
D2: LM3S5-5V
US1: PIC16FS72 zaprogramowany
US2: DS1S13, DS1S11
US3: LM7SL05
R贸偶ne
CON1...CON5: ARK2(3,5mm)
SW1...SW4: mikroprze艂qcznik
h= 1 Omm
Wy艣wietlacz LCD l贸#2 bez
pod艣wietlania
BUZZER 5V - HCM12O3X
Warto艣ci napi臋膰 dla komparatora zapisywane s膮 w wewn臋trznej pami臋ci RAM, dlatego s膮 pami臋tane tylko do chwili wy艂膮czenia zasilania. Po ponownym zasileniu uk艂adu, warto艣ci napi臋膰 okienkowych komparatora b臋d膮 r贸wne 50V i 0V, czyli komparator b臋dzie wy艂膮czony.
Na rys. 7 przedstawiono sygnalizacj臋 alarmu komparatora w zale偶no艣ci od ustawionych warto艣ci napi臋膰. Jak wida膰, sygnalizacja d藕wi臋kowa mo偶e zosta膰 uruchomiona dla dowolnego zakresu napi臋膰, jak r贸wnie偶 dla jednej konkretnej warto艣ci. Aby sprawdzi膰 wcze艣niej ustawione warto艣ci komparatora, nale偶y nacisn膮膰 klawisz odpowiadaj膮cy danemu kana艂owi. Na wy艣wietlaczu zostan膮 wy 艣 wi e tlone z apro g am o w ane (us -talone) warto艣ci napi臋膰, tak jak w przypadku wpisywania warto艣ci napi臋膰 okienkowych. Nast臋pnie nale偶y nacisn膮膰 klawisz ESC(SW4) i powr贸ci膰 do wy艣wietlania wszystkich napi臋膰, bez wprowadzania zmian w "podgl膮danym" napi 臋 ciu komp ar a tora.
W zale偶no艣ci od tego, kt贸re napi臋cie nie spe艂ni kryterium komparatora zostanie uruchomi o-
28
Elektronika Praktyczna 11/2002
Programowany 4-kanalowy komparator/woltomierz
ny sygna艂 d藕wi臋kowy. B臋d膮 to kr贸tkie "pikni臋cia". Ich liczba b臋dzie r贸wna numerowi kana艂u, w kt贸rym napi臋cie zosta艂o przekroczone. Je偶eli zostanie przekroczona zadana warto艣膰 napi臋cia w wi臋cej ni偶 jednym kanale, "pikni臋cia" b臋d膮 pojawia艂y si臋 cyklicznie, z przerw膮 oko艂o dw贸ch sekund.
Przyk艂adowo, je艣li zostanie przekroczone napi臋cie dla komparatora w pierwszym i trzecim kanale, to sygnalizacja b臋dzie nast臋puj膮ca: pik-przerwa 2 s, pik, pik,pik-przerwa 2 s, pik-przerwa 2 s, pik,pik,pik... Jak wida膰, nawet w przypadku przekroczenia warto艣ci napi臋膰 w kilku kana艂ach, 艂atwo mo偶na je zidentyfikowa膰. Krzysztof P艂awsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/listopad02Jitm oraz na p艂ycie CD-EP11/2002B w katalogu PCB.
Je贸ll Ux>25,0V Je艣li Ux<00,OV
Je艣li Ux>50,0V Je艣li Ux<10,0V
Je艣li Ux>25,0V Je艣li Ux<10,0V
Je艣li Ux>10.0V Je艣li Ux<25,0V
Je艣li Ux>25V Je艣li Ux<25V
Je艣li Ux>24,9V Je艣li Ux<25,1V
Rys. 7. Reakcja komparatora na zmierzone napi臋cie w zale偶no艣ci od jego nastaw
Alarm
ov 25.1V 50V
Alarm
ov 9,9V 50V
Alarm Alarm
ov 9,9V Alarm 25,1 V 50V

ov 10,1V 24,9V 50V
Alarm Alarm
ov 24,9V 25,1 V .-Alaim r 50V
ov 25,0V 50V
Elektronika Praktyczna 11/2002
29
PROJEKTY
Karta d藕wi臋kowa z interfejsem USB
AVT-5088
W interfejs USB s膮
wyposa偶one wszystkie
wsp贸艂czesne komputery.
W艂a艣nie ten interfejs
zastosowali艣my w nowoczesnej
karcie d藕wi臋kowej do PC-ta.
Po raz pierwszy projekt
podobnej ka艅y opisali艣my
w EP3/99, ale niestety
zastosowany w nim
fantastyczny uk艂ad firmy
Dallas nie jest ju偶
produkowany.
Rekomendacje: ka艅臋
polecamy wszystkim, kt贸rzy
chc膮 mie膰 w swoim
komputerze z interfejsem USB
odtwarzacz CD por贸wnywalny,
pod wzgl臋dem jako艣ci
d藕wi臋ku, z "klasycznymi",
dobrymi odtwarzaczami.
Uk艂ad PCM2702 jest stereofonicznym, 16-bitowym przetwornikiem C/A wyposa偶onym w interfejs USB zgodny ze specyfikacj膮 1.0. W uk艂adzie zintegrowano tak偶e filtr cyfrowy z 8-krotnym nad-pr贸bkowaniem, cyfrowy regulator poziomu sygna艂u wyj艣ciowego, a tak偶e system synchronizacji i stabilizacji sygna艂u zegarowego SpAct (Sampling Period Adaptive Controlled Tracking), kt贸ry eliminuje jitter w sygnale generowanym przez p臋tl臋 PLL. SpAct, podobnie do kilku innych blok贸w wewn臋trznych uk艂adu PCM2702 (m.in. wielopoziomowy modulator Delta-Sigma - rys. 1), jest opatentowanym rozwi膮zaniem firmy Burr-Brown, nale偶膮cej obecnie do Texas Instruments. Uk艂ad PMC2702 akceptuje pr贸bkowanie z cz臋stotliwo艣ci膮 48kHz, 44,lkHz oraz 38kHz dla 16-bitowego cyfrowego sygna艂u audio - stereo i mono. Cyfrowym regulatorem poziomu sygna艂u wyj艣ciowego i wyciszaniem sygna艂u wyj艣ciowego mo偶na sterowa膰 poprzez interfejs USB.
Skr贸cony opis dzia艂ania uk艂adu PCM2702
Transmisja danych steruj膮cych oraz danych zawieraj膮cych pr贸bki sygna艂u audio odbywa si臋 poprzez wej艣cia interfejsu analogowego
uk艂adu PCM2702: D+ i D-. Dane audio s膮 przekazywane do uk艂adu PCM2702 w trybie izochronicz-nym, kt贸ry zapewnia wysok膮 pr臋dko艣膰 transmisji. Wyprowadzenia Whis oraz GNDU s膮 r贸wnie偶 do艂膮czone do magistrali USB. Wej艣cie Vbus nie s艂u偶y do pobierania energii z magistrali, tylko do detekcji po艂膮czenia z hostem USB. Dzia艂anie "silnika" USB w tym uk艂adzie jest do艣膰 skomplikowane i nie w pe艂ni wyja艣nione w doku-
Podstawowe dane uk艂adu PCM2702:
^ zintegrowany interfejs USB,
fr- pe艂na pr臋dko艣膰 transmis|i danych 12Mbps,
> kompatybilny z USB 1 O(HID),
fr- akceptuje 16-bitowy strumie艅 USB audio
stereo lub mono,
fr- parametry analogowe (przy zasilaniu +5V) / zakres dynamiki 10OdB (przy pr贸bkach
16-bitowych), /SRN 105dB, /THD+N 0,002% (przy pr贸bkach
16-bitowych), / maksymalna amplituda napi臋cia
wyj艣ciowego 3,1Vpp,
fr- parametry cyfrowego liltru dolnoprzepusto-wego
/ pasmo przenoszenia 0.454U, / cz臋stotliwo艣膰 odci臋cia 0,548fs, / T艂umienie w pa艣mie zaporowym -82dB, fr- cz臋stotliwo艣膰 pr贸bkowania (I) 48 kHz,
44,1 kHz, 38 kHz,
fr- funkcje dodatkowe cylrowy T艂umik 0 -64dB z krokiem 1dB, p艂ynne wyciszanie, wska藕nik pracy audio USB,
fr- napi臋cie zasilania cz臋艣ci analogowej +5V, fr- napi臋cie zasilania cz臋艣ci cylrowej +3,3V
Elektronika Praktyczna 11/2002
31
Karta d藕wi臋kowa z interfejsem USB
i
i i ii
VmC
DGNDC-
UBB I/F
DANE USB
wrclk .
mclk
ZEGAH USB
OSCYLATOR KWARCOWY
osc
FIFO
DANE AUDIO
Owraamplhg Cyfrowy Filtr
Multi-Lwel Delta-S^pna Modulator
SpAct71
ZEGAR
ZEGAR AUDIO
ZASILANIE
DAC
LPF
DAC
LPF
XTI
VddP DGNDP
Rys. 1. Schemat blokowy uk艂adu PCM2702
Vcc AQND Vm DGND
mentacji, w zwi膮zku z czym zrezygnujemy ze snucia przypuszcze艅 - wa偶ne jest to, 藕e uk艂ad po pod艂膮czeniu do PC jest wykrywany jako klasyczne urz膮dzenie klasy HID (Human Interface Device), w zwi膮zku z czym w systemach operacyjnych obs艂uguj膮cych USB PnP nie jest konieczne instalowanie specjalnych sterownik贸w.
Do prawid艂owej pracy uk艂adu PCM2702 jest potrzebny oscylator o cz臋stotliwo艣ci rezonansowej 12
MHz, do艂膮czony do wewn臋trznego generatora przebiegu zegarowego. Rezonator ten do艂膮czony jest do wyprowadze艅 XTI i XTO. R贸wnolegle z nim w艂膮czono rezystor o rezystancji lMLi, a pomi臋dzy mas臋 i wyprowadzenia XTI i XTO w艂膮czono kondensatory o ma艂ej pojemno艣ci (schemat elektryczny pokazany na rys. 2). Uk艂ad PCM2702 ma w swej strukturze blok zerowania, wytwarzaj膮cy sygna艂 zerowania przy napi臋ciu VDD
mieszcz膮cym si臋 w przedziale od 1,6V do 2,4V.
Po po艂膮czeniu z magistral膮 uk艂ad gotowy jest do przyj臋cia danych. W oczekiwaniu na dane audio (stan bezczynno艣ci), na wyj艣ciach analogowych wyst臋puje zero, a na wyj艣ciu ZERO poziom wysoki. Podczas odbioru cyfrowych danych audio, PCM2 702 pierwszy pakiet danych zapisuje w swej wewn臋trznej pami臋ci (buforze) zawieraj膮cej 1 ms d藕wi臋ku audio. Odtwarzanie da-
Bezp艂atne pr贸bki z Texas Instruments
Zach臋camy wszystkich Czytelnik贸w EP zainteresowanych wykonaniem urz膮dzenia prezentowanego w artykule do zam贸wienia bezp艂atnych pr贸bek uk艂ad贸w PCM2702 w firmie Texas Instruments. Wymaga to uprzedniego zarejestrowania si臋, ale -wed艂ug naszych, tak偶e prywatnych eksperyment贸w -firma jest niezawodna i dostarcza pr贸bki w ci膮gu kilku dni- Aby zam贸wi膰 pr贸bki, nale偶y wej艣膰 na stron臋 o adresie: http://focus.ti.com/docs/prod/ productfolder.jhtml?genericPartNumber=PCM2702 (lub - zamiast przepisywa膰 ten przyd艂ugi adres, wystarczy wpisa膰 w okienko wyszukiwania "PCM2702", wcisn膮膰 "Go" i w wy艣wietlonym oknie wybra膰: Product Folder: PCM2702, 16-Bit Stereo Digital-To-Analog Converter with USB Interface.
Na wy艣wietlonej stronie, w lewej cz臋艣ci okna wybieramy Samptes (na rysunku poni偶ej) i przechodzimy kolejne kroki zam贸wienia.
32
Elektronika Praktyczna 11/2002
Karta d藕wi臋kowa z interfejsem USB
+5V
Rys. 2. Schemat elektryczny karty d藕wi臋kowej
,10ms
2.0V(1.6do2.4V)
Vbus
D+/D-
PLYBCK
SSPND
ZERO
23ms (1024/fs)
VoutL VoutR
350|J5
Wewn臋trzne zerowanie
pierwszy pakiet SOF
piBrwsze dane audio
drugie dane audio
SOF
1ms
Autokonfiguracja uk艂adu.
SOF
SOF
Ims
SOF
Gotowy - Do艂膮czenie do magistrali USB
Rys. 3. Przebiegi ilustruj膮ce dzia艂anie uk艂adu po do艂膮czeniu do hosta
Gotowy do odtwarzania
Elektronika Praktyczna 11/2002
33
Karta d藕wi臋kowa z interfejsem USB
Rys. 4. Rozmieszczenie element贸w na p艂ytce drukowanej
nych audio rozpocznie si臋 po wykryciu ramki SOF [Start of Frame). Przebiegi ilustruj膮ce dzia艂anie uk艂adu po do艂膮czeniu do hosta przedstawiono na rys. 3.
Opis dzia艂ania karty d藕wi臋kowej
Uk艂ad PCM2702 jest "sercem" karty d藕wi臋kowej, odpowiadaj膮cym za przetwarzanie nap艂ywaj膮cych danych audio oraz za poprawn膮 komunikacj臋 z komputerem poprzez interfejs USB. Gniazdo oznaczone jako USB zapewnia fizyczne po艂膮czenie pomi臋dzy komputerem a uk艂adem PCM2702. Dolnoprze-pustowy filtr wyj艣ciowy zbudowano w oparciu o popularny wzmacniacz operacyjny typu TLC272CP (US2). Zadaniem tego filtru jest wyeliminowanie zak艂贸ce艅 mog膮cych powsta膰 przy przetwarzaniu C/A. W bloku sygnalizacji zastosowano dwie diody LED sygnalizuj膮ce pod艂膮czenie do magistrali USB oraz odtwarzanie sygna艂u audio. Zasilacz dostarcza napi臋膰: +5V i +3,3V, kt贸re s膮 niezb臋dne do prawid艂owej pracy uk艂ad贸w PCM2702, TLC272CP i magistrali USB.
Monta偶 uk艂adu
Jakkolwiek uk艂ad jest 艂atwy w wykonaniu, to mog膮 wyst膮pi膰 pewne k艂opoty zwi膮zane z obudo-
w膮, w jakiej s膮 oferowane uk艂ady PCM2702 - przystosowana do monta偶u powierzchniowego SSOP28. Dlatego p艂ytka drukowana zosta艂a zaprojektowana jako dwustronna. Schemat monta偶owy p艂ytki zamieszczono na rys. 4. Przy wymaganiach jako艣ciowych stawianych p艂ytkom pod uk艂ady o tak niewielkim rastrze wyprowadze艅, jak w przypadku obud贸w SSOP28, samodzielne wykonanie dobrej p艂ytki jest raczej niemo偶liwe.
Monta偶 element贸w musimy rozpocz膮膰 od wlutowania uk艂adu przetwornika USl, a to ze wzgl臋du na jego powierzchniowy spos贸b monta偶u. Zdaj臋 sobie spraw臋 z tego, 偶e dla wielu Czytelnik贸w monta偶 tak niewielkiego elementu mo偶e by膰 trudny do wykonania, ale nie jest niemo偶liwy. Przed lutowaniem warto uk艂ad przyklei膰 do p艂ytki za pomoc膮 niewielkiej ilo艣ci kleju po艂o偶onego na spodni膮 cz臋艣膰 obudowy. Nast臋pnie, u偶ywaj膮c kalafonii i dobrze rozgrzanej lutownicy o suchym grocie (bez kropli cyny), przygrzewamy wyprowadzenia uk艂adu do punkt贸w lutowniczych. Cyna, kt贸ra znajduje si臋 na punktach lutowniczych, wystarcza na po艂膮czenie wyprowadze艅 ze 艣cie偶kami, a jest jej na tyle ma艂o, 偶e ryzyko powstania zwar膰 pomi臋dzy punktami jest minimalne.
Po zamontowaniu uk艂adu USl mo偶emy przyst膮pi膰 do montowania kolejnych element贸w, z kt贸rymi nie powinni艣my mie膰 ju偶 偶adnych problem贸w.
Uruchamianie uk艂adu
Uruchomienie uk艂adu sprowadza si臋 do do艂膮czenia karty do gniazda USB komputera i -w przypadku Windows 98 - zainstalowania sterownik贸w. Systemy Win2K/XP/Me maj膮 te sterowniki zainstalowane domy艣lnie.
Po pod艂膮czeniu karty do wolnego gniazda USB w komputerze, system samoczynnie rozpoczyna procedur臋 instalacyjn膮 urz膮dzenia. Powoduje to wy艣wietlenie okna sygnalizuj膮cego wykrycie urz膮dzenia USB, z poziomu kt贸-
WYKAZ ELEMENT脫W
Rezystory
Rl: l,5kQ
R2, R3, R4: 22Q
R5: 1MO
R贸, R7: 820O
R8, R9, R13, R14: 10kO
RIO, R15: 8,5kQ
Rl 1, R16: 100O
R12, R17: 220kQ
R18, R19: 3,9kQ
Kondensatory
Cl, C贸, CIO, C20: 10^F/16V
C2, C5, C7...C9, Cli, C18, C19,
C21: O,ln.F
C3, C4: 18pF
C12, C15: l,5nF
C13, C16: 27OpF
C14, C17: 680nF
C22: 470|iF/16V
C23...C26: 22nF
P贸艂przewodniki
DL D2: 1N4148
D3, D4: LED dowolne
Ml: mostek 1,5A
Tl, T2: BC557
USl: PCM2702
US2: TLC272CP
US3: 78L05
R贸偶ne
Xl: 12MHz
USB: gniazdo USB-B do druku
rego mo偶na uruchomi膰 kreator dodawania nowego sprz臋tu. Nast臋pnie system za偶膮da w艂o偶enia do nap臋du CD-ROM p艂yty instalacyjnej Windows 98 i samoczynnie skopiuje odpowiednie sterowniki. Na tym ko艅czy si臋 instalacja i mo偶na zacz膮膰 zabaw臋 z PC-to-wym d藕wi臋kiem.
Dodajmy, 偶e instalacja karty na komputerach z nowszymi systemami operacyjnymi jest jeszcze prostsza i praktycznie niezauwa偶alna dla u偶ytkownika. Krzysztof G贸rski, AVT krzysztof.gorski@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/listopad02.htm oraz na p艂ycie CD-EP11/2002B w katalogu PCB.
34
Elektronika Praktyczna 11/2002
PROJEKTY
Konwerter sygna艂贸w wyj艣ciowych obrotowych enkoder贸w opisany w VHDL
Przedstawiamy kolejny
minimodu艂, kt贸rego opis
przygotowano w j臋zyku opisu
sprz臋tu - VHDL. W a艅ykule
prezentujemy projekt uk艂adu
przekszta艂caj膮cego sygna艂y
impulsowe z wyj艣膰
dwukierunkowych obrotowych
enkoder贸w do postaci
pozwalaj膮cej na zastosowanie
do ich zliczania popularnych
licznik贸w z rodziny
TTL lub CMOS.
Rekomendacje: uk艂ad mo偶e
by膰 stosowany we wszelkiego
rodzaju aplikacjach,
w kt贸rych jako elementy
regulacyjne s膮 wykorzystywane
en kod ery obrotowe.
Artyku艂 opublikowany we wrze艣niowej EP, po艣wi臋cony sterownikowi wy艣wietlacza multi-pleksowanego LED opisanemu w VHDL, wzbudzi艂 w艣r贸d Czytelnik贸w spore zainteresowanie. Dosta艂em tak偶e propozycje kilku uk艂ad贸w, kt贸rymi warto si臋 zaj膮膰. B臋d臋 je kolejno opracowywa艂. Opisy jozwi膮za艅 przedstawimy w EP, a kody 藕r贸d艂owe udost臋pnimy na p艂ytach CD-EP do艂膮czanych do EPo/oL oraz na naszej stronie internetowej. Jako pierwszy "pod
n贸偶" trafi艂 problem konwersji sygna艂贸w enkoder贸w obrotowych.
Jak dzia艂a enkoder obrotowy?
Enkodery obrotowe stosowali艣my kilkukrotnie w projektach publikowanych w EP (m.in. w zasilaczu programowanym cyfrowo -AVT-366 i tunerze FM - AVT-900). Enkodery mog膮 zast臋powa膰
- oczywi艣cie po pewnym rozbudowaniu ich cz臋艣ci elektronicznej
- klasyczne potencjometry stosowane do regulacji, kt贸rych "obs艂uga" jest znacznie bli偶sza ludz-
Wyjt贸sA
Wyj艣cia B
Styfc uapOlny C
1/4 cyklu na zapadk臋
Zgodni* z UarunUam -------------------------*-Wyj艣cie A
Palny cykl na zapadka
StyM zwarte Sty艂d rozwarte
StyM zwarta Styki rozwarte
DDDDDDDDDDDDDDDDD WyffideB
Rys. I. Zasada dzia艂ania enkodera obrotowego
Zgodni* z UwunU艂m mchu w*fc*z6w*k
Styki zwarte Sty艂d rozwarte
Styki zwarto Styttirozwart*
Elektronika Praktyczna 11/2002
35
Konwerter sygna艂贸w wyj艣ciowych obrotowych enkoderow opisany w VHDL
Przebiegi z zak艂贸ceniami wynikaj膮cymi z drga艅 styk贸w
Przebiegi odk艂贸cone
Tt a臋U mMM rat* wtan i
Rys. 2. Schemat blokowy dekodera-enkodera
kim przyzwyczajeniom ni偶 korzystanie z klawiatur do艣膰 cz臋sto stosowanych w r贸偶nych urz膮dzeniach.
Zasad臋 dzia艂ania enkodera obrotowego zilustrowano na rys. 1. Na jego wyj艣ciach A i B pojawiaj膮 si臋 impulsy (w wyniku zwarcia ze wsp贸lnym wyprowadzeniem C), kt贸rych faza niesie informacj臋
0 kierunku obracania osi enkodera, natomiast ich cz臋stotliwo艣膰 niesie informacj臋 o szybko艣ci jej obracania. Wzi膮wszy pod uwag臋 nieuniknione zak艂贸cenia impulsowe powstaj膮ce podczas zwierania
1 rozwierania styk贸w, taka para sygna艂贸w nie nadaje si臋 do wykorzystania bezpo艣rednio w innych uk艂adach cyfrowych.
Rozwi膮zanie tego problemu zalecane przez firm臋 Bourns (jednego z wi臋kszych producent贸w enkoderow obrotowych) pokazano na rys. 2. Pierwszym wa偶nym etapem obr贸bki sygna艂贸w z wyj艣膰 enkodera jest usuni臋cie zak艂贸ce艅 wynikaj膮cych z drga艅 styk贸w (mo偶na np. zastosowa膰 specjalizowany uk艂ad scalony jak np. MC14490 lub MAX6816/17/18). Nast臋pnie nale偶y:
- ustali膰 na podstawie fazy sygna艂贸w na wyj艣ciach enkodera kierunek obrotu osi i ustali膰 odpowiedni poziom na wyj艣ciu Kierunek,
- generowa膰 na wyj艣ciu Szybko艣膰 sygna艂 o cz臋stotliwo艣ci wynikaj膮cej z szybko艣ci obracania osi enkodera.
Zadanie nie jest zbyt 艂atwe do zrealizowania w oparciu o uk艂ady cyfrowe TTL lub CMOS. Znacznie 艂atwiej mo偶na je rozwi膮za膰 pos艂uguj膮c si臋 mikrokontrolerem (dobry przyk艂ad mo偶na znale藕膰 w opisie zasilacza AVT-366 w EPl/98).
Jak to opisa膰 w VHDL-u?
Postawili艣my sobie za cel wykonanie kompletnego "dekodera" wsp贸艂pracuj膮cego z enkoderem
w uk艂adzie programowalnym. Ze wzgl臋du na 艂atw膮 przeno艣no艣膰 pomi臋dzy systemami narz臋dziowymi r贸偶nych producent贸w i wynikaj膮c膮 z niej uniwersalno艣膰 projekt贸w opisanych w VHDL, ten w艂a艣nie j臋zyk pos艂u偶y艂 do przygotowania opisu modu艂u funkcjonalnego, kt贸rego uproszczony schemat blokowy zaznaczono grub膮 lini膮 przerywan膮 na rys. 2. Tak zaprojektowany "dekoder" nadaje si臋 do bezpo艣redniej wsp贸艂pracy z licznikami wyposa偶onymi w wej艣cia: steruj膮ce kierunkiem zliczania UP/DOWN i zegarowe (mog膮 to by膰 np. CMOS - 4029, TTL - 74190 lub 74191).
Poniewa偶 do likwidacji drga艅 styk贸w potrzebne s膮 uk艂ady odmierzaj膮ce czas, to konieczne by艂o wbudowanie w struktur臋 PLD ti-
mera. Najprostszym sposobem wykonania go w uk艂adzie PLD jest zbudowanie automatu taktowanego zewn臋trznym sygna艂em zegarowym i ustalenie mu takiego cyklu pracy, kt贸ry zminimalizuje wp艂yw drga艅 styk贸w na jako艣膰 dekodo-wania.
Na rys. 3 przedstawiono graf prostego automatu, kt贸rego opis w VHDL zamieszczono na list. 1. Jak mo偶na zauwa偶y膰, zaprojektowany automat jest pe艂nym odpowiednikiem bloku zakre艣lonego na rys. 2 przerywan膮 grub膮 lini膮, czyli odpowiada za dekodowanie stanu wyj艣膰 enkodera, ich obr贸bk臋 i generacj臋 sygna艂贸w steruj膮cych zewn臋trznym licznikiem. Jak w ka偶dym automacie synchronicznym, tak偶e praca tego jest syn-chronizowana przebiegiem zegarowym, kt贸ry jest podawany na wej艣cie clk.
We wsp贸艂czesnych j臋zykach HDL, tak偶e w VHDL, opisanie pracy automatu jest mo偶liwe na wiele sposob贸w. Aby zapewni膰 przejrzysto艣膰 opisu dzia艂ania, wybra艂em opis za pomoc膮 grafu, kt贸rego poszczeg贸lne stany s膮 jawnie predefiniowane za pomoc膮 deklaracji constant Sx, gdzie x
if !艢 'O' and B -
alalf A -and B -
clltout alaif A 艢 ' 1' ( * and B '0
f A = '0' and B = '0'
clk oirt <= '1'
S50
Rys. 3. Uproszczony graf ilustruj膮cy zasad臋 dzia艂ania uk艂adu opisanego na list. 1
36
Elektronika Praktyczna 11/2002
Konwerter sygna艂贸w wyj艣ciowych obrotowych enkoderow opisany w VHDL
List. 1 Opis w j臋zyku VHDL dzia艂ania "dekodera" enkoderow obrotowych
library IEEE
use IEEE .STD LOGIC 1164.ALL;
use IEEE .STD LOGIC ARITH.ALL
use IEEE .STD _LCGIC_UWSIGWED. ALL;
entity e nkod er is
Port ( A i n std logie; - w ej 艣 cie ka nalu A enkodera
E i n std logie; - w ej 艣 cie ka nalu E enkodera
u_ d_o ut: out std_l ogic - vlJ3 cie kierunku
re s : in std logie; - W ej s cie ze rujace
clk o ut: out std 1 ogic - viY3 cie sygna艂u taktuj膮cego licznik
clk: in std_logic - w ejs cie sygna艂u zegarowego taktuj膮cego automat
end enko der
architec tur ar ch of enkoder is
= -Lyna-L = tan std_logic_vecto r(3 3ow nto 0)
SO std_logic_vecto r(3 iovi nto 0) = "0 00 0"
constant Sl std_logic_vecto r(3 3ow nto 0) = "0 001"
constant S2 std_logic_vecto r(3 iovi nto 0) = "0 010"
constant S3 std_logic_vecto r(3 iovi nto 0) = "0 011"
constant S4 std_logic_vecto r(3 iovi nto 0) = "010 0"
constant S5 std_logic_vecto r(3 iovi nto 0) = "0101"
constant SIO s td_logic_vect or(3 do vint o 0 := "1001 ;
constant S2 0 s td_logic_vect or(3 do rint o 0 := "1010";
constant S3 0 s td_logic_vect or(3 do rint o 0 := "1011";
constant S4 0 s td_logic_vect or(3 do rint o 0 := "1100";
constant S50 td_logic_vect or(3 do vint o 0 := "1101";
begin
proce s (c lk res)
begin
if res = '1' then
sta n <= "0000";
els if clk'event ano clk = '1 th en
ca e stan is
Wh n SO =>
clk_out <= ' 0';
u d out <= ' 0';
if A = '1' and = ' 0' th n
st n <= Sl;
el if A = '0' a d E = 1' the n
stan <= SIO;
el e stan <= S0
en i if;
- sciezk a autom atu dla d臋tek cji nic hu W kierunku "zwi臋ksz"
Wh n Sl =>
if A = '1' and = ' 1' th n
stan <= S2;
el if A = '1' a d E = 0' the n
stan <= Sl;
el e stan <= S0
i if;
Wh n S2 =>
if A = '0' and = ' 1' th n
stan <= S3;
el if A = '1' a d E = 1' the n
stan <= S2;
el e stan <= S0
i if;
Wh n S3 =>
if A = '0' and = ' 0' th n
stan <= S4r
el if A = '0' 'a d E = 1' the n
stan <= S3;
el e stan <= S0
i if;
Wh n S4 =>
u d out <= ' 1';
stan <= S5;
Wh n S5 =>
clk out <= ' 1';
stan <= S0;
- sciezk a autom atu dla d臋tek cji nic hu W kierunku "zmniejsz"
Wh n SIO =>
if A = '1' and E = '1' the n
stan <= S20;
el if A = '0' a d E = 1' the n
stan <= SIO;
el e stan <= S0
i if;
Wh n S2 0 =>
if A = '1' and = ' 0' th n
stan <= S30;
el if A = '1' a d E = 1' the n
stan <= S20;
el e stan <= S0
i if;
Wh n S3 0 =>
if A = '0' and = ' 0' th n
stan <= S40;
el if A = '1' a d E = 0' the n
stan <= S30;
el e stan <= S0
i if;
Wh n S4 0 =>
u d out <= ' 0';
stan <= S50;
Wh n S50 =>
clk out <= ' 1';
stan <= S0;
Wh n others =>
stan <= S0;
end eni if; ca se;
end p 'oces s;
end arch
identyfikuje stan. Jakkolwiek jawne przypisywanie warto艣ci poszczeg贸lnym stanom wymaga nieco pracy, to 艂atwiejsze jest sprawdzenie poprawno艣ci opisu logicznego (weryfikacja opisu), poniewa偶 na podstawie warto艣ci wektora stan 艂atwo okre艣li膰, w kt贸rym stanie (w jakim miejscu grafu) znajduje si臋 w danej chwili automat. Ze wzgl臋du na zasad臋 dzia艂ania, projektowany automat wyposa偶ono w wej艣cie zerowania (a-synchroniczne) res - ka偶dorazowo po w艂膮czeniu zasilania nale偶y poda膰 na nie kr贸tki impuls o poziomie wysokim. Sprz臋towe zerowanie wymusza przej艣cie automatu do stanu S0, kt贸ry jest stanem pocz膮tkowym - automat pozostaje w nim do czasu zmiany poziomu na jednym z wej艣膰: A lub B. W zale偶no艣ci od tego, na kt贸rym z nich poziom wysoki wyst膮pi jako pierwszy (co okre艣la kierunek obracania osi enkodera) automat przechodzi do stanu Sl (kierunek zliczania "w g贸r臋") lub SIO (kierunek zliczania "w d贸艂"). Pocz膮wszy od tych stan贸w rozpoczyna si臋 kontrola drga艅 styk贸w (stany inne od oczekiwanych powoduj膮 przej艣cie automatu do stanu pocz膮tkowego S0), a tak偶e generacj臋 sygna艂贸w u_d_out (stany S4 lub S40) i clk_out (stany S5 lub S50). Przyj臋ty spos贸b opisu dzia艂ania wyj艣膰 udout i clkout wymusza na syntezerze logicznym przypisanie im rejestr贸w - s膮 one bowiem generowane synchronicznie z sygna艂em zegarowym clk. Jest to rozwi膮zanie pozornie nadmiarowe, bo przecie偶 obydwa sygna艂y mo偶na wytwarza膰 kombina-cyjnie na podstawie warto艣ci wektora stan, a co gorsza zajmowane s膮 dwa do艣膰 cenne przerzutniki. Jak pokaza艂y do艣wiadczenia, w tym przypadku oszcz臋dno艣膰 si臋 zupe艂nie nie op艂aca, poniewa偶 przy rozwi膮zaniu kombinacyjnym trudno jest zlikwidowa膰 efekty hazard贸w, z powodu kt贸rych na wyj艣ciach mog膮 pojawia膰 si臋 trudne do zlikwidowania zak艂贸cenia szpilkowe. Wybra艂em wi臋c rozwi膮zanie nieco dro偶sze, ale gwarantuj膮ce stabiln膮 prac臋 uk艂adu.
Implementacja
Dzi臋ki zastosowaniu jako j臋zyka opisu sprz臋tu VHDL-a, z prezentowanego projektu mog膮 sko-
Elektronika Praktyczna 11/2002
37
Konwerter sygna艂贸w wyj艣ciowych obrotowych enkoderow opisany w VHDL
a I
b ----------------' |------------1
u_d aut r~ 1 r
ras ------1
clk out |------1 |------1
clk 0 1UB 1500 ns
Rys. 4. Wyniki symulacji opisu z list. 1 uzyskane w programie ModelSim
rzysta膰 fani dowolnej rodziny uk艂ad贸w PLD. Do poprawnego zaimplementowania automatu niezb臋dne jest 6 przerzutnik贸w D lub JK, co w przypadku uk艂ad贸w CPLD (jak np. MAX7000, czy XC9500) przek艂ada si臋 "wprost" na liczb臋 zaj臋tych makrokom贸rek.
Plik z opisem projektu (list. 1) by艂 kompilowany za pomoc膮 bezp艂atnych pakiet贸w: Max+Plus II Student Edition (obs艂uguje VHDL), Quartus II 2.1 Web Edition -obydwa firmy Altera i WebPack ISE 4.2 firmy Xilinx (zamieszczamy go tak偶e na p艂ycie CD-EP11/2002B).
Na rys. 4 pokazano wyniki symulacji funkcjonalnej projektu, wykonanej za pomoc膮 programu
Rys. 5. Zalecany spos贸b do艂膮czenia enkodera do uk艂adu XC95108
ModelSim firmy Mentor Graphics. Skala czasu zaznaczona na tym rysunku jest umowna i nie odzwierciedla szybko艣ci dzia艂ania, w zwi膮zku z czym nie nale偶y si臋 ni膮 sugerowa膰.
Weryfikacj臋 poprawno艣ci dzia艂ania projektu przeprowadzi艂em na uk艂adzie CPLD XC95108 firmy Xilinx, kt贸ry wchodzi w sk艂ad minizestawu ewaluacyjnego, kt贸ry opisali艣my w EP9/2002 (przy okazji opisu bloku IP - sterownika wy艣wietlacza multipleksowanego). Spos贸b do艂膮czenia enkodera do wyprowadze艅 uk艂adu U2 (zgodnie ze schematem z rys. 6, str. 30, EP9/2002) pokazano na rys. 5. 殴r贸d艂em sygna艂u zegarowego dla automatu jest generator z uk艂adem U3 (j.w.), kt贸ry jednocze艣nie spe艂nia rol臋 wzorca czasu dla wy艣wietlacza multipleksowanego. Spos贸b zrealizowania "dekodera" zapewnia ma艂膮 zale偶no艣膰 jako艣ci jego pracy od warto艣ci cz臋stotliwo艣ci taktuj膮cej.
Dzia艂anie egzemplarza prototypowego sprawdzi艂em, wykorzystuj膮c dwa enkodery (ECW1J-B24-BE0012 - bez zapadek, ECW1J-B24-BC0006 - z za-
padkami, obydwa firmy Bourns oraz CI-11CT-V1N31-HFACF firmy Piher) o r贸偶nej rozdzielczo艣ci. Dekoder dzia艂a艂 bez zarzutu dla cz臋stotliwo艣ci zegarowych z przedzia艂u 400 Hz.,.1 kHz. Aby u艂atwi膰 przeprowadzenie test贸w, w uk艂ad PLD wbudowany zosta艂 tak偶e 16-bitowy licznik g贸ra-d贸艂 oraz sterownik wy艣wietlacza multipleksowanego, kt贸ry zosta艂 szczeg贸艂owo opisany we wrze艣niowym wydaniu EP.
Opisy w postaci 藕r贸d艂owej wszystkich niezb臋dnych modu艂贸w, pliki z testami funkcjonalnymi dla automatu oraz modu艂u licznika, a tak偶e kompletny system projektowy WebPack ISE 4.2 udost臋pniamy na p艂ycie CD-EP11/2002B, a na naszej stronie WWW [Dow-nload>Dokumentacje) znajd膮 si臋 pliki 藕r贸d艂owe, w tym tak偶e komplet plik贸w tworz膮cych projekt hierarchiczny w systemie WebPack ISE - gor膮co polecam to narz臋dzie do nauki j臋zyka VHDL. Piotr Zbysi艅ski, AVT piotr.zbysinski@ep.com.pl
Uwaga! System WebPack ISE, znajduj膮cy si臋 na p艂ycie CD-EPll/ 200 2B, przed instalacj膮 trzeba zarejestrowa膰 na stronie http:// www.btc.pl/cd.htm.
Elektronika Praktyczna 11/2002
PROJEKTY
Audiofilski przetwornik C/A audio, cz臋艣膰 2
AVT-5084
Drug膮 cz臋艣膰 artyku艂u
po艣wi臋camy om贸wieniu
monta偶u i uruchomienia
przetwornika. Przedstawiamy
tak偶e wyniki testu
ods艂uchowego
przeprowadzonego przez
specjalist臋 z miesi臋cznika
Audio. Jak z niego wynika,
w warunkach amatorskich
mo偶na zbudowa膰 ca艂kiem
niez艂y przetwornik!
Rekomendacje: jest to
uk艂ad dla "rasowych"
audiofil贸w, ceni膮cych
naturalne brzmienie
i dbaj膮cych o najdrobniejsze
szczeg贸艂y reprodukowanego
d藕wi臋ku. Doskona艂e
uzupe艂nienie klasycznego
zestawu audio lub zestawu
kina domowego.
Monta偶 i uruchomienie
Stabilizatory scalone i tranzystor mocy nale偶y przykr臋ci膰 z podk艂adkami izolacyjnymi z silikonu (lub z miki z past膮 silikonow膮) i tulejkami izoluj膮cymi 艣ruby do p艂askownika Al lub Cu wykonanego wed艂ug rys. 8. Schemat monta偶owy p艂ytki przetwornika przedstawiono na rys. 9. Jego monta偶 nie wymaga specjalnych zabieg贸w.
Najlepiej zacz膮膰 monta偶 od wlutowania element贸w o niewielkich rozmiarach (kondensatory ce-
ramiczne i polipropylenowe, rezystory) , nast臋pnie wlutowa膰 gniazda, stabilizatory przykr臋cone do p艂askownika, uk艂ady scalone i przeka藕niki, a jako ostatnie wlutowa膰 kondensatory elektrolityczne (s膮 dosy膰 wysokie i mog膮 utrudni膰 umieszczanie mniejszych element贸w).
Prze艂膮cznik Sl jest prze艂膮cznikiem 1-biegunowym 3-po艂o偶enio-wym, a S2 - 1-biegunowym 2-po艂o偶eniowym . Rodzaj prze艂膮cznik贸w jest dowolny - nale偶y tylko dobra膰 pasuj膮ce do planowanej
mhJ
-7.5 ___15_
37.5
15
20
20
145 mitimun
wszyctMe otwory o totfilcy 3J5 mm
Rys. S. Piaskowni k-ra cl i ator do zamocowania stabilizator贸w napi臋cia.
Elektronika Praktyczna 11/2002
Audiofilski przetwornik C/A audio
Wyniku testu ods艂uchowego
Idea
Przyznam, 偶e do test贸w odstuchowych przyst膮pi艂em zmieszanymi uczuciami. Przyczyn膮 tego nie byt jednak wygl膮d urz膮dzenia, bo widzia艂em znacznie bardziej ekstrawaganckie konstrukcje. Chodzi艂o raczej
0 zasadno艣膰 jego u偶ycia w przeci臋tnym systemie audio.
Dlaczego? Ano dlatego, 偶e obecnie producenci urz膮dze艅 dekoduj膮cych korzystaj膮 z coraz lepszych przetwornik贸w, odbiornik贸w i filtr贸w cyfrowych opracowywanych przez firmy elektroniczne dla potrzeb techniki DVD. W efekcie, wsp贸艂czesne odtwarzacze DVD lub CD dysponuj膮 znakomitymi procesorami, kt贸re jeszcze dwa lata temu mo偶na by艂o znale藕膰 jedynie w modelach z bardzo "wysokich" p贸艂ek. Dzi臋ki temu parametry tanich produkt贸w zosta艂y bardzo wy艣rubowane, a stosowanie zewn臋trznych konwerter贸w C/A sta艂o si臋 anachroniczne. Oczywi艣cie mowa o urz膮dzeniach ni偶szej i 艣redniej klasy, bo w艣r贸d produkt贸w klasy hi-end rozdzielenie transportu
1 przetwornika jest stosowane bardzo cz臋sto.
Zmierzam do tego, 偶e je艣li testowanego urz膮dzenia nie mo偶na sklasyfikowa膰 wklasie hi-end, to jego zastosowanie w domowym systemie staje si臋 bardzo dyskusyjne. Nie spodziewam si臋 bowiem, 偶e audiofil posiadaj膮cy CD za 1500 z艂lubDVDza2000...2500z艂zdecyduje si臋 na pr贸b臋 poprawy jako艣ci za pomoc膮 zewn臋trznego konwertera. Bardziej prawdopodobny jest scenariusz, w kt贸rym testowane urz膮dzenie s艂u偶y膰 b臋dzie jako interfejs w systemie z du偶膮 liczb膮 藕r贸de艂 sygna艂贸w cyfrowych. Takie urz膮dzenia jak tuner satelitarny, serwer HDD czy magnetowid VCR/HDD posiadaj膮 zazwyczaj konwertery C/A o 偶enuj膮co niskiej jako艣ci, ale maj膮 r贸wnie偶 wyj艣cia cyfrowe.
Pozostaje jeszcze jedno popularne urz膮dzenie "d藕wi臋kotw贸rcze", kt贸rego praktycznie nie da si臋 s艂ucha膰. M贸wi臋 o pececie. Komputerowcy gromadz膮 niezliczone ilo艣ci nagra艅 na swoich maszynach, a naj艂atwiejszym sposobem ich odtworzenia na kolumnach jest przepuszczenie analogowego sygna艂u przez zwyczajny wzmacniacz akustyczny. Co zrobi膰, by nasz konwerter C/A przemieni膰 w domowy interfejs C/A? Na przyk艂ad doda膰 z艂膮cze USB. Kilku producent贸w ju偶oferuje systemy stereofoniczne ze wspomnianym interfejsem. Z pewno艣ci膮 zastosuj膮 go lada moment giganci AV, kt贸rych urz膮dzenia posiadaj膮 przecie偶 procesory kilkukrotnie szybsze ni偶 w najnowszych komputerach osobistych. P贸ki jednak to nie nast膮pi艂o, warto zastanowi膰 si臋, czy nie jest to okazja zaistnienia na rynku dla wielofunkcyjnego konwertera C/A.
Pr贸by praktyczne
Urz膮dzenie przetwarza sygna艂y PCM podawane z wyj艣膰 cyfrowych CD lub DVD na gniazda 艣wiat艂owodowe albo koncentryczne (chc膮c uzyska膰 mo偶liwie najlepsze efekty, wykorzysta艂em to drugie) na stereofoniczny sygna艂 audio. Poniewa偶 nie znam warto艣ci rynkowej testowanego urz膮dzenia, wi臋c do por贸wnania (i transportu) u偶y艂em 藕r贸de艂 o zr贸偶nicowanych mo偶liwo艣ciach sonicznych. Za typowy, ale solidny, Iow-end pos艂u偶y艂 NAD-C521, w kt贸rym producent u偶y艂 konwertera Burr-Browna PCM1710 (przetwornik delta-sigma) i wzmacniaczy operacyjnych Philipsa NEE5532. Nieco wy偶ej znalaz艂 si臋 multistandardowy Pioneer DV-747 z przetwornikiem CS4392. Dla spokoju sumienia pos艂u偶y艂em si臋 r贸wnie偶 nowym CD procesorem Madrigal Audio Labs - Mark Levinson No 390S, w kt贸rym u偶yto uk艂ad贸w Analog Devices AD1853 nale偶膮cych do nowej generacji przetwornik贸w delta-sigma. Dla porz膮dku: NAD C521 kosztuje 1400 z艂, Pioneer DV-747 6000 z艂, a ML 390S ok. 40000 z艂. Ze 藕r贸d艂ami wsp贸艂pracowa艂 wzmacniacz zintegrowany ML No 383 i kolumny B&W N803. Po艂膮czenia wykonano przewodami Kimber Kable Silver Link (kabel dla sygna艂u cyfrowego), 8TC (g艂o艣nikowe) oraz Madrigal Audio Labs CZ Gel (kabel dla sygna艂u analogowego).
D藕wi臋k z testowanego konwertera mia艂 lepsz膮 jako艣膰 od brzmienia z NAD-C521. R贸偶nica nie by艂a jednak przygniataj膮ca. NAD-C521 charakteryzuje si臋 lekko niespokojnym 艣rodkiem, odzywaj膮cym si臋 mocniejszymi akcentami w miejscu, gdzie ko艅cz膮 si臋 podstawowe informacje, a zaczynaj膮 wysokotonowe szczeg贸艂y. Nasz konwerter uspokaja scen臋, oscyluj膮c w stron臋 podwy偶szenia agresywno艣ci 艣rodka, zamiast obni偶enia ekspresji g贸ry. Ca艂o艣ci wychodzi to na dobre, scena staje si臋 bardziej realistyczna, instrumenty dostaj膮 ostrych barw, a akcenty nabieraj膮 dynamiki i mocy. Uwypukla si臋 r贸wnie偶 g艂臋boki i dobrze kontrolowany bas. Za po艣rednictwem testowanego urz膮dzenia uderzenia s膮 znacznie twardsze i bardziej spr臋偶yste, co pobudza rytm i zdaje si臋 nieco przyspiesza膰 ka偶d膮 akcj臋. Poniewa偶 jestem przekonany, 偶e naturalne brzmienie jest raczej szorstkie, mog臋 wi臋c stwierdzi膰, 偶e konwerter dysponuje bardziej neutralnym d藕wi臋kiem ni偶 - przecie偶 nie byle jakie - przetworniki PCM1710 zastosowane w NAD. W tym miejscu niezb臋dne jest wyja艣nienie, 偶e us艂yszane r贸偶nice by艂y istotne przy zastosowaniu zestawu wzmacniacz/kolumny No 383/N803. Natomiast w konfiguracji z PM-7000 marki Marantz i zespo艂ami g艂o艣nikowymi ESA Conti-nuum 2, r贸偶nica by艂a trudna do uchwycenia.
Z pokonaniem Pioneera DV-747 nie posz艂o konwerterowi ju偶 tak dobrze. Przede wszystkim nale偶y stwierdzi膰, 偶e SACD i DVD-A dysponuj膮 potencja艂em jako艣ciowym, do kt贸rego przeci臋tnym konwerterom PCM jest bardzo daleko. Przetwornik nie potrafi wi臋c zaoferowa膰 dynamiki, przestrzenno艣ci i naturalno艣ci, kt贸ra charakteryzuje DVD-A i SACD z DV-747. Sprawdzenie konwertera z DVD-A PCM 24/192 nie by艂o mo偶liwe, bo taki sygna艂 cyfrowy nie jest dost臋pny na standardowych wyj艣ciach cyfrowych koncentrycznych i 艣wiat艂owodowych.
Pioneer gra zimno i dynamicznie na CD 16/44,1. Wydawa艂o si臋 wi臋c, 偶e b臋dzie dla naszego konwertera dobrym urz膮dzeniem odniesienia. Okaza艂o si臋, 偶e przetwornik gra zdecydowanie bardziej masywnie i koherentnie ni偶 DV-747. Przy dobrej ekspozycji szczeg贸艂贸w, 艣rednie tony byty bardzo pot臋偶ne, zarysowane grubymi konturami i dysponowa艂y w艂a艣ciwym wype艂nieniem. Podczas ods艂uchu Pioneera jasno艣膰 d藕wi臋kowa nie pozwala艂a do ko艅ca cieszy膰 si臋 mo偶liwo艣ciami dynamicznymi. Testowany konwerter wykazuje, 偶e ma-sywniejsza dawka informacji - przy dobrej dynamice - daje bardziej spektakularne efekty. Podczas gdy DV-747 generowa艂zaledwie poprawne stereofoniczne efekty przestrzenne, to konwerter dawa艂 sobie du偶o lepiej rad臋 z tym wyzwaniem. Z kolei Pioneer pokonywa艂 wyra藕nie testowany przetwornik pod wzgl臋dem analityczno艣ci - d藕wi臋ki z DV-747 by艂y du偶o bardziej uporz膮dkowane w ka偶dym podzakre-sie pasma.
Zastosowanie CD procesora No 390S pokaza艂o niestety, 偶e konwerter nie b臋dzie zaliczany do najwy偶szej grupy produkt贸w cyfrowych. Mark Levinson w ka偶dym aspekcie d藕wi臋kowym okaza艂 si臋 urz膮dzeniem o d藕wi臋ku znacznie bardziej zbli偶onym do naturalnego.
Podsumowanie
Testowany przetwornik na pewno nie mo偶e zast膮pi膰 cz臋艣ci dekoduj膮cej hi-endo-wych odtwarzaczy. Jego zastosowanie jest r贸wnie偶 mocno dyskusyjne w przypadku 艣redniej klasy CD (Pioneer DV-747), o DVD-A i SACD nie wspominaj膮c. Z tego wynika, 偶e najlepszym pomys艂em by艂oby dostosowanie urz膮dzenia do potrzeb popularnych domowych urz膮dze艅 po to, by korzystaj膮c z ich wyj艣膰 cyfrowych (o ile takie maj膮), zagra膰 d藕wi臋kiem znacznie bardziej precyzyjnym ni偶 przy u偶yciu urz膮dze艅 analogowych. Grzegorz Rog贸偶, Audio
AUDIO AUDIO AUDIO
AUDIO AUDIO AUDIO AUDIO
40
Elektronika Praktyczna 11/2002
Audiofilski przetwornik C/A audio
O O O O
Rys. 9. Rozmieszczenie element贸w na p艂ytce drukowanej (widok zmniejszony do 65%)
obudowy. Prze艂膮cznik wej艣膰 Sl nale偶y pod艂膮czy膰 przewodami -punkt lutowniczy Sl_0 na p艂ytce drukowanej do 艣lizgacza, a Sl_l, Sl_2 i Sl_3 do styk贸w wybieraj膮cych odpowiednie wej艣cia. Podobnie nale偶y do艂膮czy膰 prze艂膮cznik S2 - S2_0 do 艣lizgacza, a S2_l
i S2_2 do styk贸w wyboru kabel koncentryczny/艣wiat艂ow贸d.
Rozmieszczenie transformator贸w sieciowych TRI i TR2 w obudowie jest dowolne (w miar臋 wolnego miejsca). Uzwojenia pierwotne transformator贸w TRI i TR2 nale偶y pod艂膮czy膰 r贸wnolegle do
wy艂膮cznika sieciowego (typ wy艂膮cznika r贸wnie偶 nale偶y dobra膰 do zastosowanej obudowy - wa偶ne jest tylko, by by艂 przystosowany do za艂膮czania napi臋cia zmiennego 220V i spe艂nia艂 wymogi bezpiecze艅stwa). Uzwojenie wt贸rne transformatora TRI nale偶y do艂膮czy膰 przewodami do punkt贸w TR1_1 i TR1_2. Transformator TR2 (TS6/27) posiada 3 uzwojenia wt贸rne z jednym wsp贸lnym ko艅cem (wyprowadzenie 6). Na dw贸ch uzwojeniach jest napi臋cie skuteczne ok. 14V (wyprowadzenia 7 i 8), a na trzecim - ok. 7V (wyprowadzenie 5). Wyprowadzenie 6 (wsp贸lne) do艂膮czy膰 do punktu TR2_3, wyprowadzenie 5 (7V) do punktu TR2_4, a wyprowadzenia 7 i 8 (14V) odpowiednio do punkt贸w TR2_1 i TR2_2. Pod艂膮czenie diod 艣wiec膮cych nale偶y wykona膰 zgodnie ze schematem elektrycznym.
Po prawid艂owym wykonaniu monta偶u element贸w na p艂ytce drukowanej i prawid艂owym pod艂膮czeniu transformator贸w, prze艂膮cznik贸w i diod 艣wiec膮cych przetwornik nie wymaga 偶adnej regulacji i jest gotowy do pracy. Andrzej Stelmach
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/listopad02.htm oraz na p艂ycie CD-EP11/2002B w katalogu PCB.
Elektronika Praktyczna 11/2002
41
PROJEKTY
Domowy aparat telefoniczny z kart膮 chipow膮, cz臋艣膰 2
AVT-5081 &*艢
W drugiej cz臋艣ci artyku艂u
om贸wiono spos贸b
programowania kart i obs艂ugi
dyskryminatora po艂膮cze艅
teiefon icznych.
Rekomendacje: urz膮dzenie
niezb臋dne d艂a wszystkich
u偶ytkownik贸w te艂efon贸w
stacjonarnych maj膮cych
prob艂emy z ograniczeniem
艂iczby po艂膮cze艅 wychodz膮cych
i zwi膮zanych z nimi koszt贸w.
Nie stara艂i艣my si臋 o jego
homo艂ogacj臋, w zwi膮zku
z czym nie na艂e偶y do艂膮cza膰
go do sieci
teiekom unikacyjnych
dostawc贸w wymagaj膮cych
urz膮dze艅 hom oiogowanych.
Programowanie karty
Po zmontowaniu dyskryminatora nale偶y zaprogramowa膰 jego parametry, kt贸re zale偶膮 od typu centrali telefonicznej i u偶ywanego aparatu telefonicznego.
Struktur臋 menu dyskryminatora przedstawiono na rys. 6. Poni偶ej zamieszczamy opis sposobu pos艂ugiwania si臋 nim.
1. Wprowadzenie w tryb programowania
Po podniesieniu s艂uchawki na wy艣wietlaczu pojawi si臋 napis "W艂贸偶 kart臋". Przy pierwszym uruchomieniu w艂o偶enie jakiejkolwiek karty spowoduje wy艣wietlenie napisu "B艂膮d karty", a rozmowy nie b臋d膮 mo偶liwe, gdy偶 dys-kryminator akceptuje tylko karty, kt贸re sam zaprogramowa艂.
Wszystkie parametry programowane s膮 za pomoc膮 klawiatury aparatu telefonicznego wyposa偶onego w klawiatur臋 z wybieraniem tonowym. Aby wybierane w czasie programowania cyfry nie powodowa艂y przypadkowego wybierania numeru, z kt贸rym centrala telefoniczna zestawia艂aby po艂膮czenie, dost臋p do funkcji programowania zabezpieczony jest kodem dost臋pu. Kod ten zabezpiecza jednocze艣nie, aby wybieranie nume-
ru nie zmienia艂o parametr贸w dyskryminatora.
Aby wej艣膰 w tryb programowania, nale偶y nacisn膮膰 kolejno klawisze "*##**2*". Dodatkowe zabezpieczenie polega na tym, 偶e ca艂a sekwencja musi by膰 wprowadzona z przerwami mi臋dzy kolejnymi znakami nie wi臋kszymi ni偶 jedna sekunda. Sekwencj臋 tych znak贸w nale偶y wprowadzi膰 po podniesieniu s艂uchawki, ale bez karty w czytniku. Tak膮 sekwencj臋 znak贸w centrala zinterpretuje jako b艂臋dny numer i zakomunikuje, 偶e "nie ma takiego numeru". Je偶eli jednak nie jeste艣my pewni, 偶e nie zostanie wybrany numer, to po podniesieniu s艂uchawki mo偶na odczeka膰, a偶 centrala wystawi sygna艂 zaj臋to艣ci.
Procedura odbioru i sprawdzenia kodu dost臋pu jest przedstawiona na list. 2. Odwo艂anie do tej procedury nast臋puje z p臋tli g艂贸wnej programu po naci艣ni臋ciu klawisza gwiazdki "*". Nast臋pnie w p臋tli while s膮 odbierane tony DTMF i jednocze艣nie jest odliczany czas jednej sekundy. Je艣li odebrano kod DTMF, to jest on zapisywany do bufora oraz zerowany jest licznik czasu odmierzaj膮cy sekund臋 na wpisanie nast臋pnego kodu znaku. Po wpisaniu prawid艂owo wszystkich znak贸w, procedura zwraca warto艣膰 r贸wn膮 "1". Je偶eli
Elektronika Praktyczna 11/2002
43
Domowy aparat telefoniczny z karta chipowa
List. 2. Procedura odbioru i weryfikacji kodu dost臋pu do opcji
programowania
boole= n Programowanie!)
boo _ean prog_ok;
byt e prog_time, prog_licznik;
byt e prog_buf [ 6] ;
pro g_time=0; //zeruj licznik zasu
pro g_licznik=O; //zeruj licznik yfr
Hhile (prog_time<250) //w ci膮gu ls odbieraj dtmf
1 prog_time++; //zwi臋ksz czas o zekiwania na podanie kodu
delay_ms(4); //czekaj 4ms
get dtmf(); //sprawd藕 czy je t kod DTMF
IF (dtmf_ok) //je艣li byl dtmf
prog_time=0; //zeruj liczn lk czasu
prog_buf [prog_licznik] = dtmf; //z apisuj odebrar e dtmf do bufora
prog_licznik++; //zwi臋ksz lic znik zapisu dc bufora
) IF (prog_licznik>5) //je艣li odebr ano 6 cyfr
pr贸g ok=l; //to sprawd藕 czy by艂y w艂a艣c iwe
IF (prog_buf[0]!=12) prog_ok=0; / /ko d= "* ft ft * * " "
IF (prog_buf[1]!=12) prog_ok=0; //je艣li kod prawid艂owy,
IF (pr贸g buf [2] !=11) pr贸g ok=0; //to procedur s zwraca "1"
IF (progjouf [3] 1=11) prog_ok=0 ; //je艣li kod n Leprawid艂owy, to
IF (prog_buf [4] !=2) prog_ok=0; // zwraca "0"
IF (prog_buf[5][=11) prog_ok=0;
) ) Retum (prog_ok) ;
wprowadzony kod znak贸w jest nieprawid艂owy lub przerwa mi臋dzy kolejnymi znakami by艂a d艂u偶sza od jednej sekundy, nast臋puje powr贸t z tej procedury z warto艣ci膮 r贸wn膮 "0". W obydwu przypadkach program g艂贸wny otrzymuje jednoznaczn膮 informacj臋 o wprowadzonej sekwencji znak贸w i na tej podstawie podejmuje dalsze dzia艂ania.
Przy braku aktywnej karty dys-kryminator umo偶liwia tylko wybieranie po艂膮cze艅 alarmowych zaczynaj膮cych si臋 od "99" oraz wybranie kodu dost臋pu, zaczynaj膮cego si臋 gwiazdk膮 "*". Pr贸ba wybrania innego numeru ni偶 dozwolonego ko艅czy si臋 roz艂膮czeniem po艂膮czenia. R贸wnie偶 wybieranie w systemie impulsowym powoduje przerwanie po艂膮czenia.
Po podaniu prawid艂owego kodu dost臋pu dyskryminator znajduje si臋 w trybie programowania, jednak aby mo偶na by艂o zmienia膰 jakiekolwiek parametry dyskryminatora, to nale偶y jeszcze wprowadzi膰 has艂o. Dodatkowe zabezpieczenie has艂em jest podyktowane tym, 偶e kod wprowadzenia w tryb programowania jest kodem sta艂ym, przypisanym do tego uk艂adu dyskryminatora i nie mo偶e by膰 zmieniony. Umo偶liwia艂oby to zmian臋 jego parametr贸w przez wszystkie osoby, kt贸re zapozna艂y si臋 z tym opisem. Aby temu zapobiec, drugi kod sk艂ada si臋 z czterech cyfr i mo偶e by膰 dowolnie zmieniany przez osoby upowa偶nione.
2. Wprowadzenie has艂a dost臋pu
Je艣li dyskryminator znajduje si臋 w trybie programowania, to na
wy艣wietlaczu znajduje si臋 napis "Podaj has艂o". W tym momencie nale偶y poda膰 czterocyfrowy kod, a jego wprowadzanie ko艅czymy klawiszem "#".
Na rys. 7 przedstawiono algorytm odbioru i weryfikacji has艂a dost臋pu. Procedura weryfikacji has艂a zorganizowana jest tak, 偶e przy wprowadzaniu has艂a mo偶na wybra膰 dowoln膮 liczb臋 cyfr, ale do por贸wnania brane s膮 tylko cztery ostatnie. W przypadku b艂臋dnie wpisanej cyfry kodu nie trzeba si臋 roz艂膮cza膰, wystarczy tylko poda膰 ponownie prawid艂owe cztery cyfry kodu i zatwierdzi膰 klawiszem "#". Poprawno艣膰 podanego has艂a jest sprawdzana w momencie naci艣ni臋cia tego klawisza. Mo偶na dwa razy pomyli膰 si臋 i pr贸bowa膰 zatwierdzi膰 b艂臋dne has艂o - za trzecim razem po艂膮czenie zostanie przerwane.
3. Zmiana parametr贸w
Po pokonaniu wszystkich zabezpiecze艅 mo偶emy przyst膮pi膰 do okre艣lania wybranych parametr贸w. Zmieniane mog膮 by膰 nast臋puj膮ce parametry: has艂o dost臋pu, limit impuls贸w, czas przerwy w linii telefonicznej, po kt贸rym dyskryminator uzna, 偶e s艂uchawka zosta艂a od艂o偶ona.
Wyb贸r odpowiednich parametr贸w jest dokonywany za pomoc膮 klawiszy z cyframi od 1 do 3. Wybran膮 opcj臋 nale偶y zatwierdzi膰 klawiszem "#". Przez ca艂y czas na wy艣wietlaczu wy艣wietlana jest informacja, pod kt贸rym klawiszem jest dost臋pna dana opcja. Na wy艣wietlaczu pojawia膰 si臋 wiec b臋d膮 napisy: "1.Zmiana has艂a", "2.Zapis impuls贸w",
"3.Zmiana czasu". Napisy s膮 wy艣wietlane kolejno w odst臋pach dwu sekund owych. Po naci艣ni臋ciu jednego z trzech klawiszy na wy艣wietlaczu pojawi si臋 odpowiedni napis. Je艣li chcemy potwierdzi膰 t臋 opcj臋, to naciskamy klawisz "#". Mo偶emy r贸wnie偶 powr贸ci膰 do poprzedniego trybu (informacyjnego), naciskaj膮c gwiazdk臋 "*".
4. Zmiana has艂a dost臋pu Aby zmieni膰 has艂o dost臋pu, nale偶y w trybie zmiany parametr贸w nacisn膮膰 klawisz "1", w wyniku czego na wy艣wietlaczu pojawi si臋 napis "Zmiana has艂a ?". Zatwierdzamy wyb贸r, naciskaj膮c klawisz "#".
Przed wprowadzeniem nowego has艂a zostaniemy poproszeni o ponowne wprowadzenie starego. Procedura wprowadzania has艂a jest identyczna, jak wprowadzanie kodu dost臋pu. Je艣li wprowadzone has艂o jest prawid艂owe, to zostanie wy艣wietlony napis "Wpisz nowe". W贸wczas nale偶y poda膰 nowe has艂o i potwierdzi膰 klawiszem "#". Przy wprowadzaniu has艂a mo偶na r贸wnie偶 wybra膰 dowoln膮 liczb臋 cyfr, lecz jako nowe has艂o zostan膮 zapisane cztery ostatnio wybrane. Potwierdzenie nowego has艂a nast臋puje przez naci艣ni臋cie klawisza "#". Na wy艣wietlaczu pojawi si臋 napis "Has艂o zapisane", a nast臋pnie dyskryminator roz艂膮czy po艂膮czenie i po chwili nast膮pi ponowne zwarcie styk贸w przeka藕nika PK, a w s艂uchawce b臋dzie s艂ycha膰 sygna艂 zg艂oszenia centrali. Wtedy mo偶emy przyst膮pi膰 do ustawiania kolejnych parametr贸w lub nawi膮za膰 rozmow臋, pod warunkiem, 偶e mamy kart臋 z limitem impuls贸w. Przy pierwszym ustawianiu parametr贸w nie mamy jeszcze takiej karty, wi臋c rozmowy wyj艣ciowe nadal s膮 zablokowane.
------W START M-------
i t T>18| Kofc 1 1 #r*2艂 1
i * HASLO=
i t ZMIANA 1 fc HAS艁A r^ L
i -^ 1l ZAPIS 1 k MPULS脫WP^ L
^l Z \>\ ZMIANA 1 CZASU 1
Rys. hora 6. __________1 Struktura menu dyskrymina-
44
Elektronika Praktyczna 11/2002
Domowy aparat telefoniczny z karta chipowa
Je艣li zapomnimy has艂o, mo偶liwe jest skasowanie zapisanego, lecz wymaga to ingerencji w uk艂adzie dyskryminatora. Je偶eli chcemy przywr贸ci膰 pocz膮tkowe has艂o, nale偶y zewrze膰 zwork臋 JP2 i podnie艣膰 s艂uchawk臋. W贸wczas na wy艣wietlaczu pojawi si臋 napis: "Kasowanie has艂a", a nast臋pnie: "Nowe has艂o=1234". Po tej czynno艣ci has艂em dost臋pu b臋dzie sekwencja cyfr "1234".
5. Zapis limitu impuls贸w na karcie
Je偶eli chcemy zapisa膰 na karcie limit impuls贸w, to w trybie zmiany parametr贸w naciskamy klawisz "2" i potwierdzamy klawiszem "#". Na wy艣wietlaczu pojawi si臋 napis: "W艂贸偶 kart臋" i program czeka na w艂o偶enie karty. Po w艂o偶eniu pojawi si臋 napis: "Podaj limit". Z klawiatury wprowadzamy 偶膮dany limit impuls贸w. Maksymalna warto艣膰 wynosi 999 impuls贸w. R贸wnie偶 warto艣膰 limitu mo偶na wpisywa膰 kilkakrotnie, do momentu naci艣ni臋cia klawisza "#", kt贸ry spowoduje zapisanie liczby impuls贸w na kart臋. Wraz zapisaniem limitu impuls贸w, na karcie zostaje zapisany czterocyfrowy kod dost臋pu. Zapis ten jest konieczny, gdy偶 na tej podstawie dyskryminator sprawdza, czy odczytany limit impuls贸w jest prawid艂owy. Przy odczycie karty najpierw por贸wnywany jest kod zapisany na tej karcie z kodem zawartym w pami臋ci EEPROM procesora. Je艣li kody s膮 identyczne, to odczytany limit impuls贸w uznany zostaje za prawid艂owy.
Je偶eli zapiszemy limity na kilku kartach, a nast臋pnie zmienimy kod dost臋pu do menu dyskryminatora, to te karty b臋d膮 ignorowane i aby mog艂y by膰 u偶ywane, nale偶y wpisa膰 do nich nowe limity.
6. Zmiana czasu od艂o偶enia s艂uchawki
Ustawienie odpowiedniego czasu przerwy w linii, po kt贸rym dyskryminator uzna, 偶e po艂膮czenie zosta艂o zako艅czone, jest bardzo wa偶ne ze wzgl臋du na niezawodne zabezpieczenie przed "darmowymi" rozmowami. Dyskryminator musi zerowa膰 si臋 po wykryciu przerwy w linii telefonicznej, ale jednocze艣nie musi umo偶liwia膰 korzystanie z dodatkowych funkcji centrali, kt贸re dost臋pne s膮 po naci艣ni臋ciu przycisku "Flash". Naci艣ni臋cie go
Rys. 7. Algorytm odczytu has艂a dost臋pu
powoduje, 偶e linia telefoniczna zostaje rozwarta na kr贸tko, a nast臋pnie centrala oczekuje na tony kodu DTMF okre艣laj膮ce funkcje dodatkowe. Przerwa ta, w zale偶no艣ci od centrali oraz aparatu telefonicznego, mo偶e trwa膰 od 80 ms do 800 ms. Je艣li aparat generowa艂by czas przerwy r贸wny 200 ms, a dyskryminator by艂by ustawiony tak, 偶e wykrywa od艂o偶enie s艂uchawki po 100 ms, to ka偶de naci艣ni臋cie klawisza "Flash" powodowa艂oby roz艂膮czenie po艂膮czenia. Aby temu za-pobiec, czas wykrywania przerwy musi by膰 d艂u偶szy od przerwy generowanej przez aparat. Dyskryminator umo偶liwia regulacj臋 wykrywanej przerwy w zakresie 10...990 ms z krokiem 10 ms. Czas ten nie mo偶e by膰 jednak zbyt d艂ugi, gdy偶 mo偶e to umo偶liwi膰 swobodne dzwonienie bez posiadania karty. Je偶eli ustawimy czas przerwy na 900 ms, a centrala telefoniczna ponownie wystawia sygna艂 zg艂oszenia po czasie przerwy na przyk艂ad 600 ms, to bardzo 艂atwo mo偶na wykona膰 rozmow臋 bez karty.
Nie opiszemy, jak to jest mo偶liwe, aby nie u艂atwia膰 osobom postronnym z艂amania tego zabezpieczenia.
呕eby obej艣cie dyskryminatora by艂o niemo偶liwe, nale偶y ustawi膰 taki czas przerwy, po kt贸rym centrala ko艅czy po艂膮czenie i wy-
stawia nowy sygna艂 zg艂oszenia. Nominalna warto艣膰 jest ustawiona na 160 ms. Je偶eli chcemy ustawi膰 inn膮 warto艣膰, to w trybie zmiany parametr贸w nale偶y wybra膰 przycisk 3 i potwierdzi膰 klawiszem "#". Na wy艣wietlaczu pojawi si臋 napis: "Czas pauzy=160ms". Klawiszami cyfrowymi wprowadzamy now膮 warto艣膰 czasu, z tym, 偶e mo偶emy zmienia膰 tylko dziesi臋tne i setne cz臋艣ci ustawianego czasu, gdy偶 regulacja jest dokonywana z krokiem 10 ms. Po wpisaniu odpowiedniej warto艣ci zatwierdzamy klawiszem "#". Je偶eli zrezygnujemy ze zmiany czasu, to naciskamy klawisz "*" i zmiana nie zostanie zapisana w pami臋ci procesora.
Czy wprowadzony czas ma warto艣膰 zbli偶on膮 do czasu zerwania po艂膮czenia przez central臋, mo偶na sprawdzi膰 nast臋puj膮co: podnosimy s艂uchawk臋 i na wy艣wietlaczu b臋dzie napis "W艂贸偶 kart臋". Nie wk艂adamy jej, tylko wybieramy cyfr臋 "9". Dyskryminator pozwoli na to, gdy偶 jest to pierwsza cyfra dozwolonego numeru alarmowego. W s艂uchawce zapanuje cisza, a po pewnym czasie - sygna艂 zaj臋to艣ci. Wprowadzenie centrali w taki stan pozwoli nam sprawdzi膰, czy po okre艣lonej przerwie na linii centrala roz艂膮czy艂a po艂膮czenie i wystawi艂a nowy sygna艂 zg艂oszenia, czy te偶 wprowadzona
Elektronika Praktyczna 11/2002
45
Domowy aparat telefoniczny z karta chipowa
przerwa jest zbyt kr贸tka, 偶eby nawi膮za膰 nowe po艂膮czenie.
Sprawdzanie czasu reakcji centrali na d艂ugo艣膰 przerwy tu偶 po podniesieniu s艂uchawki nie pozwala odr贸偶ni膰, czy generowany sygna艂 pochodzi z trwaj膮cego po艂膮czenia, czy centrala zako艅czy艂a poprzednie i wystawi艂a nowy sygna艂, gdy偶 obydwa s膮 jednakowe.
Je偶eli wybrali艣my cyfr臋 "9", to na wy艣wietlaczu zostaje wy艣wietlona ta cyfra. W贸wczas naciskamy przycisk "Flash" i obserwujemy, czy na wy艣wietlaczu zajdzie jaka艣 zmiana. Je偶eli na wy艣wietlaczu nic si臋 nie zmieni艂o, oznacza to, 偶e ustawiony czas reakcji dyskryminatora nie jest za kr贸tki. Je艣li za艣 na wy艣wietlaczu pojawi si臋 ponownie napis "W艂贸偶 kart臋", oznacza to, 偶e ustawiony czas jest zbyt kr贸tki i nale偶y go wyd艂u偶y膰, gdy偶 tak ustawiony dyskryminator b臋dzie roz艂膮cza艂 po艂膮czenie przy pr贸bie wprowadzenia opcji dodatkowej, na przyk艂ad konferencji z dwoma osobami.
W przypadku braku reakcji dyskryminatora na przycisk "Flash", nale偶y jeszcze sprawdzi膰, czy zaprogramowany czas nie jest zbyt d艂ugi. W tym celu nale偶y wprowadzi膰 przerw臋 d艂u偶sz膮 od tej, kt贸r膮 spowodowa艂 klawisz "Flash". Mo偶na to zrobi膰, naciskaj膮c na kr贸tko przycisk roz艂膮czenia rozmowy w aparacie telefonicznym. Do tego celu najlepiej jest zastosowa膰 aparat z mechanicznym przyciskiem roz艂膮czaj膮cym rozmow臋. Pozwoli
to na precyzyjne zajmowanie i zwalnianie linii telefonicznej. Pr贸by nale偶y wykona膰 kilkakrotnie, sprawdzaj膮c, czy po przerwie powoduj膮cej wystawienie przez central臋 nowego sygna艂u dyskryminator r贸wnie偶 wykry艂 ten stan, sygnalizuj膮c go napisem: "W艂贸偶 kart臋". Je偶eli po us艂yszeniu nowego sygna艂u zg艂oszenia centrali na wy艣wietlaczu nadal jest wy艣wietlana cyfra "9", to nale偶y zmniejszy膰 czas wykrywania od艂o偶enia s艂uchawki w menu "Zmiana czasu".
Powy偶sz膮 procedur臋 doboru czasu przerwy na linii dla centrali telefonicznej oraz wykrywanego przez dyskryminator nale偶y wykona膰 kilkakrotnie, a偶 do uzyskania jednakowej reakcji centrali i dyskryminatora, gdy偶 tylko wtedy jest absolutna pewno艣膰, 偶e 偶adna rozmowa wyj艣ciowa nie zostanie przeprowadzona bez u偶ycia karty z dost臋pnym limitem impuls贸w.
R贸wnie wa偶ne jak od艂o偶enie s艂uchawki, jest wykrycie wybierania numeru w trybie impulsowym, gdy偶 prze艂膮czenie aparatu w tryb wybierania impulsowego umo偶liwia艂by dowolne wybieranie numer贸w. Czasy przerwy na linii telefonicznej spowodowane wybieraniem impulsowym s膮 znacznie kr贸tsze od przerwy spowodowanej naci艣ni臋ciem klawisza "Flash" i dyskryminator nie reagowa艂by na nie. Aby temu zapobiec, procesor nieustannie kontroluje, czy w linii p艂ynie pr膮d.
List. 3. Procedura obs艂ugi przerwania od timera Tl
//................................ .........................................
// Obs艂uga przerwania od Tl
//******************************** *****************************************
#IWT_TIMER1
Void wave_timer()
byte i;
disable interrupts(global); //wy艂膮cz przerwania
bit clear(pirl,tmrlif) ; //zeruj flag臋 przerwania od tl
set_timerl(timerl_set); // 艂aduj Tl na lOms
menu i+ + ;
if(menu_i>200) //potrzebne do animacji napis贸w przy obs艂udze menu
{ //powoduje, 偶e w trybie wyboru wy艣wietlana pomoc
menu i=0; //zmienia si臋 co 2 sekundy
menu_ok=l;
menu_time++;
if(menu_time>2) menu_time=O;
if (!input (linia)) przerwa++; //je艣li przerwa w linii, to zwi臋kszaj
//licznik czasu przerwy
if(input(linia))
linia_time=O; //po zwarciu linii sprawd藕, czy czas przerwy
if ((przerwa>1)&&(przerwa<=5) //wynosi艂 od 20...50ms, je艣li tak, to
bit_set(portb,0); / / 8 S70 w tryb pwrdown
bit clear(trisc,2);
bit set(portc,2); //roz艂膮cz linie
delay_ms(1500) ; //czekaj 1500ms
reset_cpu (); //reset procesora
else przerwa=0; //je艣li przerwa by艂a inna, to zeruj licznik przerwy
linia_time++; //zwi臋kszaj licznik
if(linia_time>linia_time_buf) //je艣li linia rozwarta >niz dozwolony czas,
reset cpu () ; // to reset procesora
enable interrupts(global); ]
Kontrola jest wykonywana w obs艂udze przerwania od Timera Tl. Jej procedur臋 zamieszczono na list. 3. Przerwanie jest generowane co 10 ms. W przypadku wykrycia rozwartej linii zwi臋kszana jest warto艣膰 licznika "przerwa". Po ponownym zwarciu linii sprawdzane jest, czy powsta艂a przerwa zawiera si臋 w przedziale 20...50 ms. Je艣li tak jest, to oznacza, 偶e przerwa spowodowana by艂a wybieraniem impulsowym i nast臋puje przerwanie po艂膮czenia, a nast臋pnie zerowanie procesora.
Wykrywanie od艂o偶enia s艂uchawki jest przeprowadzane inaczej: przy ka偶dym przerwaniu zwi臋kszana jest warto艣膰 kom贸rki "linia_time". Je艣li przekroczy warto艣膰 zapisan膮 w kom贸rce liniati-me_buf, procesor zostanie wyzero-wany, gdy偶 uzna, 偶e s艂uchawka zosta艂a od艂o偶ona. Zawarto艣膰 kom贸rki linia_time_buf jest r贸wna zaprogramowanej warto 艣c i, po kt贸rej procesor wykrywa od艂o偶enie s艂uchawki. Warto艣膰 ta jest programowana po wybraniu opcji "Zmiana czasu". Warto艣膰 kom贸rki liniatime jest zwi臋kszana przy ka偶dym przerwaniu, ale przed poleceniem dodawania znajduje si臋 polecenie sprawdzaj膮ce, czy w linii telefonicznej p艂ynie pr膮d. Je艣li tak jest, nast臋puje jej zerowanie, wi臋c je艣li s艂uchawka jest podniesiona, warto艣膰 tej kom贸rki nie przekroczy jedynki. Je偶eli za艣 s艂uchawka jest od艂o偶ona, to warto艣膰 tej kom贸rki jest zwi臋kszana przy ka偶dym przerwaniu. Gdy zostanie osi膮gni臋ta warto艣膰 wi臋ksza od zaprogramowanej, to nast膮pi zerowanie procesora. Polega ono na wymuszeniu startu programu od adresu 0x000.
Z przerwaniem pracuje jeszcze jeden licznik. Pod jego wp艂ywem, w trybie zmiany parametr贸w, na wy艣wietlaczu zmieniaj膮 si臋 cyklicznie napisy dotycz膮ce funkcji realizowanych w zale偶no艣ci od naci艣ni臋tego klawisza.
Obs艂uga
Dyskryminator bez wa偶nej karty (z limitem impuls贸w) pozwala na realizowanie wszystkich po艂膮cze艅 przychodz膮cych oraz wyj艣ciowych z numerami alarmowymi zaczynaj膮cych si臋 cyframi "99". Do wszystkich innych po艂膮cze艅 wymagana jest w czytniku karta z niezerowym stanem konta.
46
Elektronika Praktyczna 11/2002
Domowy aparat telefoniczny z karta chipowa
Po podniesieniu s艂uchawki jeste艣my proszeni o w艂o偶enie karty do czytnika. Je艣li w艂o偶ona karta jest nieprawid艂owa (niezaprogramowana przez dyskryminator), to zostaniemy o tym poinformowani komunikatem "B艂膮d karty" i rozmowy wychodz膮ce nie b臋d膮 mo偶liwe. Je艣li posiadamy kart臋 zaprogramowan膮 w dyskrymi-natorze, lecz z zerowym stanem impuls贸w, to po podniesieniu s艂uchawki i w艂o偶eniu karty zostanie wy艣wietlony limit impuls贸w w formacie "Limit= Oimp." i tak jak w przypadku niew艂a艣ciwej karty rozmowy wychodz膮ce nie s膮 mo偶liwe. Je艣li jednak posiadamy prawid艂ow膮 kart臋 z dost臋pnym limitem impuls贸w, to po w艂o偶eniu jej do czytnika zostanie limit ten wy艣wietlony i b臋dzie mo偶liwe wybranie dowolnego numeru.
Wybierane cyfry b臋d膮 si臋 pojawia艂y na wy艣wietlaczu od jego prawej strony i po wybraniu kolejnej b臋d膮 przesuwane o jedn膮 pozycj臋 w lewo. Je艣li liczba wybranych cyfr przekroczy szesna艣cie, czyli maksymaln膮 pojemno艣膰 wy艣wietlacza, to cyfry wybierane w pierwszej kolejno艣ci zostan膮 przesuni臋te poza obszar wy艣wietlania wy艣wietlacza.
Wybrany numer b臋dzie widoczny do czasu nawi膮zania po艂膮czenia. Po podniesieniu s艂uchawki przez wywo艂ywan膮 osob臋 centrala telefoniczna wy艣le do nas impuls zaliczaj膮cy. Impuls ten zostanie odebrany przez uk艂ad FX631, a informacja o tym zostanie przekazana do procesora. Po odebraniu pierwszego impulsu na wy艣wietlaczu pojawi si臋 limit dost臋pnych impuls贸w pomniejszony o jeden. Ta informacja b臋dzie wy艣wietlana przez ca艂y czas rozmowy, lecz niestety z coraz mniejszym limitem impuls贸w. Gdy limit impuls贸w osi膮gnie warto艣膰 "0", rozmowa b臋dzie jeszcze mo偶liwa do czasu odebrania kolejnego impulsu telefaksy. Po tym impulsie rozmowa zostanie przerwana. Jak mo偶na zauwa偶y膰, przy takim zliczaniu impuls贸w jeden impuls zostanie "zmarnowany", poniewa偶 po rozpocz臋ciu kolejnego okresu rozmowy zostania ona przerwana. Jest to jednak jedyny spos贸b umo偶liwienia rozmowy z zerowym kontem. Je艣li w chwili wybierania numeru mieli艣my jeden impuls, to po nawi膮zaniu po艂膮czenia limit zmniejszy si臋 do zera i rozmowa zosta艂aby przerwana, a przecie偶 mieli艣my jeszcze jeden impuls, wi臋c musi by膰 mo偶liwe
jego wykorzystanie. Jednocze艣nie nie mo偶e by膰 dozwolona rozmowa, gdy limit impuls贸w przed rozpocz臋ciem rozmowy jest r贸wny zero. W takim przypadku nie mo偶na wykona膰 偶adnej rozmowy. Je偶eli w trakcie prowadzonej rozmowy karta zostanie wyci膮gni臋ta z czytnika, to rozmowa zostanie przerwana.
W czasie trwania po艂膮czenia przychodz膮cego nale偶y unika膰 naciskania klawiszy, gdy偶 dyskryminator nie rozr贸偶nia rozmowy przychodz膮cej i wychodz膮cej. W trakcie takiego po艂膮czenia na wy艣wietlaczu jest napis: "W艂贸偶 kart臋", tak jak przy po艂膮czeniu wy-
chodz膮cym. Dlatego naci艣ni臋cie dowolnego klawisza spowoduje kr贸tk膮 przerw臋 w obwodzie aparatu. Nie spowoduje to jednak przerwania po艂膮czenia, gdy偶 przy po艂膮czeniu przychodz膮cym centrala roz艂膮cza po艂膮czenie po 90 sekundach po od艂o偶eniu s艂uchawki przez abonenta wywo艂ywanego. Krzysztof P艂awsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/listopad02.htm oraz na p艂ycie CD-EP11/2002B w katalogu PCB.
Elektronika Praktyczna 11/2002
47
PROJEKTY
Sterownik nap臋du CD-ROM, cz臋艣膰 4
AVT-5078
W ostatniej cz臋艣ci artyku艂u
przedstawiamy dok艂adny opis
po艂ece艅 ATAPI, za pomoc膮
kt贸rych mo偶na sterowa膰
nap臋dami CD-ROM.
Rekomendacje: prezentacja
o niebagate艂nych wa艂orach
praktycznych - na podstawie
tego artyku艂u mo偶na
zaprojektowa膰 w艂asny
sterownik HDD/CD-ROM na
mikrokontro艂erze A VR.
Tab. 7. Najcz臋艣ciej spotykane kody ASC i ASCQ
ASC ASCO Opis
04 01 Przygotowywanie do gotowo艣ci mechaniki
05 01 B艂膮d przy 艂adowaniu/usuwaniu p艂yty
1A 00 B艂臋dna d艂ugo艣膰 listy parametr贸w
20 00 B艂臋dny kod komendy
21 00 Adres poza zakresem
24 00 B艂膮d w kt贸rym艣 z bajt贸w komendy
26 02 B艂臋dna warto艣膰 parametru
28 00 Zmieniono no艣nik
29 00 Wykonano zerowanie
30 00 Niekompatybilny no艣nik
30 01 Nieznany format no艣nika
30 02 B艂臋dny format no艣nika
3A 00 Brak no艣nika w nap臋dzie
44 00 Wewn臋trzny b艂膮d urz膮dzenia
53 02 Dozwolono usuni臋cie no艣nika
57 00 Nie mo偶na odczyta膰 TOC
64 00 B艂臋dna komenda dla te) 艣cie偶ki
Opis polece艅 ATAPI
Przedstawiamy opis polece艅 ATAPI. Nale偶y pami臋ta膰 o tym, 偶e s膮 one zawsze 12-bajtowe, a ze wzgl臋du na oszcz臋dno艣膰 miejsca niewykorzystane bajty zosta艂y w tablicach pomini臋te (powinny mie膰 zawsze warto艣膰 OOh).
1. TEST UNIT READY Komenda bardzo przydatna.
Nie wykonuje ona 偶adnego dzia艂ania, ale po jej wydaniu SK, ASC
1 ASCQ przyjmuj膮 warto艣ci adekwatne do aktualnego stanu urz膮dzenia.
2. REQUEST SENSE
Komenda zwraca dane dotycz膮ce aktualnego statusu/b艂臋du. Baj艂 Opis
0 03h
4 Maksymalna d艂ugof膰 transferu (16)
Ze zwr贸conych danych nas interesuj膮 tylko pola ASC oraz ASCQ. Nap臋d zwraca nieokre艣lon膮 ilo艣膰 bajt贸w wi臋c dobrze jest okre艣li膰 limit. Baj艂 Opis
2 - Sense Key
12 艅dditional Sense Code
13 艅ddi艂ional Sense Code Qualifier
W tab. 7 przedstawiono najbardziej u偶yteczne i najcz臋艣ciej spotykane kody ASC i ASCQ.
3. INQUIRY
Zwraca informacje o urz膮dzeniu. Nie s膮 to zbyt po偶yteczne dane wi臋c zainteresowanych odsy艂am do dokumentacji.
4. MECHANICAL STATUS Zwraca informacje o aktualnej
pozycji mechanizmu, oraz statusu zmieniarki (rzadko wyst臋puj膮 CDROM-y obs艂uguj膮ce wi臋cej ni偶
1 p艂yt臋).
Baj艂 7 6 5 4 3 2 1 0
7
Maksymalna d艂ugof膰 艂ransferu LSB
Zwracane dane: Baj艂 7 6 5 4 3 2 1 0 2 MB Aktualna pozycja LB艅 LSB
3 4
Pozosta艂e bajty zawieraj膮 informacje o liczbie slot贸w oraz statusie mechanizmu nie s膮 wykorzys-
tywane w normalnym nap臋dzie. Komenda zwraca 8 bajt贸w.
5. READ CDROM CAPACITY Pozwala na odczytanie obj臋to艣ci p艂yty w sektorach. Ten sam efekt mo偶na uzyska膰 za pomoc膮 komendy Read TOC. Jest wywo艂ywana bez parametr贸w.
Baj艂 7 6 5 4 3 2 10
0 MSB Ca艂kowita liczba sektor贸w LSB
4 MSB Rozmiar jednego bloku w bajtach LSB
Obecnie nie u偶ywane - war艂ofc powinna
zawsze mie膰 2048
6. READ TOC
Pozwala na odczyt tabeli adres贸w 艣cie偶ek. Nadaje si臋 tak偶e do odczytu informacji o p艂ytach wie-losesyjnych. Bior膮c pod uwag臋 rzadko艣膰 wyst臋powania takich p艂yt om贸wi臋 tylko tradycyjny spos贸b. Bajt 7 6 5 4 3 2 10
0 43h
1 - MSF
2 Iryb (0!)
6 Pocz膮tkowy nr fcie偶ki
7 MSB Maksymalna liczba bajt贸w do wys艂ania LSB 9 Iryb (0!)
Numer 艣cie偶ki okre艣la od kt贸rej 艣cie偶ki chcemy rozpocz膮膰 odczyt tabeli. Zwr贸cone dane sk艂adaj膮 si臋 z nag艂贸wka: Baj艂 7 6 5 4 3 2 10
0 MSB Ca艂kowita d艂ugofc danych LSB
liczona od 3 baj艂u
2 Numer pierwszej fcie偶ki
3 Numer ostatniej fcie偶ki
oraz 8 bajtowych blok贸w zawieraj膮cych dane kolejnych 艣cie偶ek: Bajt 7 6 5 4 3 2 10 0
1 ADR - 艅/D Copy -
2 Numer fcie偶ki
4 MSB Adres pierwszego sektora fcie偶ki LSB Bit A/D wskazuje czy jest to
艣cie偶ka audio (0) czy z danymi (1). Bit Copy wskazuje na zabronienie kopiowania (0) lub pozwolenie (1). ADR wskazuje na dane zakodowane w subkanale Q n w tym przypadku ma艂o u偶yteczne. Ka偶da p艂yta posiada specjaln膮 艣cie偶k臋 oznaczon膮 numerem AAh. Jej adres jest pocz膮tkiem Lead-Outu, czyli jednocze艣nie okre艣la przestrze艅 adresow膮 na jakiej mo偶emy operowa膰.
48
Elektronika Praktyczna 11/2002
Sterownik nap臋du CD-ROM
7. MOD臉 SENSE
Bardzo rozbudowana komenda. W po艂膮czeniu z Mod臋 Select s艂u偶y do odczytu parametr贸w urz膮dzenia oraz jego konfiguracji. Posiada 4 strony ustawie艅, my zajmiemy si臋 tylko jedn膮: Capabilities and Mechanical Status. Jest to strona tylko do odczytu wi臋c nie mo偶emy w niej nic modyfikowa膰 za pomoc膮 Mod臋 Select. Interesuj膮ca mo偶e by膰 jeszcze strona Audio Status, ale s艂u偶y ona tylko do wyb oru wyj 艣cia sygna艂u (ma艂o kt贸ry nap臋d posiada wi臋cej ni偶 jedno wyj艣cie). Bajt 7 6 5 4 3 2 10
0 5Ah
2 0 Kod strony
7 MSB Maksymalna ilof膰 danych LSB
jakie komenda mo偶e wyda膰 Kod strony Opis
01 ri Obs艂uga b艂臋d贸w odczytu ODfi Parametry CDROM-u 艢06b Parametry Audio CDROM-u 2Ah Mo偶liwo艣ci + aktualny status
CDROM-u
Bajty strony wysy艂anej przez komend臋 zawsze s膮 poprzedzone 8-bajtowym nag艂贸wkiem: Bajt 7 6 5 4 3 2 10 0 MB Calkowi艂a dlugofc LSB
danych (bez nag艂贸wka)
2 Rodzaj nocnika
Baj艂 7 6 5 4 3 2 10
0 - Kod strony (2Ah)
1 D艂ugof膰 strony (12h)
2 -
Zapis Zapis
4 - Mi Mod臋 2 k艅 2CyfroweCyfrowWyjScie CD
sesja Foim form wyjecie wyjecie analo- AUDIO
2 12 1 gowe 6 Typ mahanizmu - femenda
艂adbwaiia Fject
8 MSB Maksymalna pr臋dkof膰 w kb/s LSB 12 MSB Wielko艣膰 buforu urzqdzcnia w kB LSB 14 MSB Aktualna pr臋dkof膰 w kb/s LSB
W bajtach 2...4 ustawienie danego bitu r贸wna si臋 obs艂udze danej w艂a艣ciwo艣ci. Bit CD Audio wskazuje na mo偶liwo艣膰 odtwarzania audio. W bajcie 6 bity O i 3 wskazuj膮 na obs艂ug臋 komend. Trzy najstarsze bity zawieraj膮 typ mechanizmu 艂adowania no艣nika: Kod (bin) Typ
000 Szczelina do wsuwania p艂yty
001 Wysuwana tacka (najpopularniejsze) 010 Otwierane wieko (mechanizm
stosowany powszechnie w Discmanach)
101 Mechanizm 艂adowania kartrid偶y
(ju偶 nie spotykany)
Pr臋dko艣膰 jest wyra偶ona w kilo-bitach na sekund臋. Aby przeliczy膰 t膮 warto艣膰 na pr臋dko艣膰 w "razach" nale偶y skorzysta膰 z prostego wzoru: pr臋dko艣膰 = x/8/175. Wynika z tego 偶e pr臋dko艣膰 lx jest r贸wna 175 kB/s.
8. PLAY AUDIO
Rozpoczyna odtwarzanie audio. Dzia艂a bezproblemowo w wi臋kszo艣ci urz膮dze艅. Dziwactwem ze strony konstruktor贸w jest umo偶liwienie odtworzenia tylko 65536 sektor贸w (ok. 14 minut). Eliminuje to j膮 w niemal wszystkich zastosowaniach.
Bajt 7 6 5 4 3 2 1 0 0 45h
2 MSB Adres bloku od kt贸rego LSB
rozpoczniemy odtwarzanie 7 MSB Liczba sektor贸w do odtworzenia LSB
9. PLAY AUDIO MSF Zasada dzia艂ania jest identyczna jak w poprzedniej, lecz komenda wymaga podania adresu pocz膮tku i ko艅ca odtwarzania w formacie MSF.
Bajt 7 6 5 4 3 2 1 0 0 47h
3 pocz膮tkowe M
4 pocz膮tkowe S
5 poczqtkowe F
6 ko艅cowe M
7 ko艅cowe S
8 ko艅cowe F
10. PLAY CD
Komenda ta jest bardzo rozbudowana i posiada sporo opcji, takich jak mo偶liwo艣膰 wyboru wyj艣cia audio itp. Niestety 偶aden z testowanych nap臋d贸w nie obs艂ugiwa艂 tej komendy. Bajt 7 6 5 4 3 2 1 0
0 BCh
1 - Oczekiwany typ MSF -
sektora
2 MSB Adres bloku od kt贸rego LSB
rozpoczniemy odtwarzanie 7 MSB Liczba sektor贸w do odtworzenia LSB 11 SPFFD - Por艂 2Por艂 1 - Audio
SPEED: O odtwarzanie z pr臋dko艣ci膮 lx, 1 - z najwi臋ksz膮 mo偶liw膮.
Po艅 1/2: w艂膮cz wyj艣cia cyfrowe.
Audio: w艂膮cz wyj艣cia analogowe.
Typ sektom: patrz komenda Read CD.
11. STOP PLAY Zatrzymuje odtwarzanie. Nie
ma 偶adnych parametr贸w.
12. PAUSE
Pozwala zawiesi膰 odtwarzanie: Bajt 7 6 5 4 3 2 1 0
Tab. 8. Kody rodzaju no艣nika
Kod rodzaju no艣nika Opis i
00h Nieznany typ no艣nika
01 h 120mm DANE
02h 120mm AUDIO
03h 120mm DANE + AUDIO
05h 80mm DANE
06h 80mm AUDIO
07h 80mm DANE + AUDIO
10h CDR nieznany rozmiar
11h 120mm CDR DANE
12h 120mm CDR AUDIO
13h 120mm CDR DANE + AUDIO
15h 80mm CDR DANE
16h 80mm CDR AUDIO
17h 80mm CDR DANE + AUDIO
20h CDRW nieznany rozmiar
21 h 120mm CDRW DANE
22h 120mm CDRW AUDIO
23h 120mm CDRW DANE + AUDIO
25h 80mm CDRW DANE
26h 80mm CDRW AUDIO
27h 80mm CDRW DANE + AUDIO
30h Nieznany typ no艣nika
70h Tacka wsuni臋ta, brak no艣nika
71 h Tacka wysuni臋ta
72h B艂臋dny format no艣nika
Gdy Resume = 1, odtwarzanie jest kontynuowane, gdy = On wstrzymane.
14. PREVENT/ALLOW MEDIUM REMOVAL
Pozwala zabezpieczy膰 no艣nik przed usuni臋ciem: Bajt 7 6 5 4 3 2 1 0 0 IFh
4 - LOCK
Gdy LOCK = 1 zap臋d blokuje no艣nik.
15. SEEK
Ustawia mechanik臋 nad okre艣lon膮 pozycj膮. Komenda umo偶liwia np. odczytanie danych subkana艂o-wych okre艣lonego sektora. Bajt 7 6 5 4 3 2 1 0 0 2Bh
2 MSB Numer LBA sektora LSB
16. START/STOP/EJECT Pozwala na zatrzymanie/rozp臋dzenie p艂yty oraz na operowanie tray'em.
Bajt 7 6 5 4 3 2 1 0
0 lBh
1 - Tryb 4 Fject Start
Mo偶liwe operacje do wykonania:
Eject Start Wykonana operacja 0 0 Zatrzymaj dysk
0 1 Rozp臋d藕 dysk, odczytaj TOC
1 0 Wysu艅 tack臋
1 1 Za艂aduj p艂yt臋 (wsu艅 tack臋)
Elektronika Praktyczna 11/2002
49
Sterownik nap臋du CD-ROM
17. READ
Pozwala na odczyt dowolnej liczby sektor贸w: Bajt 7 6 5 4 3 2 1 0 0 A8h
2 MSB Adres bloku od kt贸rego LSB
rozpoczniemy odczyt 6 MSB Liczba sektor贸w do odczytania LSB
Je艣li liczba sektor贸w = O wtedy nie zostan膮 odczytane 偶adne dane. Ilo艣膰 bajt贸w w sektorze jest zawsze r贸wna 2048. Gdy zechcemy odczyta膰 sektor o innej d艂ugo艣ci komenda wygeneruje b艂膮d. Dane s膮 wysy艂ane w postaci ci膮gu, nie s膮 niczym rozdzielone.
18. READ CD Rozbudowana wersja komendy
READ. Pozwala odczyta膰 nie tylko dane u偶ytkowe ale i pozosta艂e informacje takie jak nag艂贸wki czy pola synchronizacji. Bajt 7 6 5 4 3 2 1 0
0 BFh
1 - Oczekiwany typ
sektora
2 MSB Adres bloku od kt贸rego LSB
rozpoczniemy odczyt 6 MSB Liczba sektor贸w do odczytania LSB
9 Synh H4 Dae flK -
10 - Sub kana艂y Dla nas takie dane jak nag艂贸wki, synchronizacja oraz pola korekcji b艂臋d贸w s膮 bezu偶yteczne wi臋c nie b臋d臋 ich omawia艂. Podobnie偶 nie ma sensu odczytywanie danych subkana艂 owych w czystej formie, skoro mamy do tego celu specjalne komendy. Przydatne natomiast mo偶e by膰 pole typu sektora. Je艣li kt贸ry艣 z odczytanych sektor贸w nie jest zgodny z podanym przez nas typem to zostanie wygenerowany b艂膮d. Poni偶ej przedstawiam warto艣ci dla okre艣lonych typ贸w: Warto艣膰 (bin) Typ
0.00 Wszystkie sektory s膮 w艂a艣ciwe
001 CD AUDIO
010 Model
011 Mod臋 2
100 Mod臋 2 Form 1
101 Mod臋 2 Form 2
19. READ CD MSF Dzia艂anie identyczne jak
w przypadku poprzedniej komendy z tym 偶e do adresowania u偶ywamy MSF i okre艣lamy zakres sektor贸w do odczytu, a ich nie liczb臋.
Bajt 7 6 5 4 3 2 1 0 0 47h
2
3 poczqtkowe M
4 poczqtkowe S
5 poczqtkowe F
6 ko艅cowe M
7 ko艅cowe S
8 ko艅cowe F
Pozosta艂e pola maj膮 identyczne znaczenie.
20. READ SUBCHANNEL Odczytuje informacje subkana-艂owe aktualnego sektora. Dostarcza informacji o aktualnej pozycji, pozycji relatywnej do pocz膮tku 艣cie偶ki, numerze 艣cie偶ki, indeksie, statusie odtwarzania audio oraz dane o 艣cie偶ce (rok nagrania, kraj, numer seryjny). Bajt 7 6 5 4 3 2 1 0 0 42h
2 SubQ
3 艂yp subkanalu d> o odczytania
6 Numer fcie偶ki
7 MSB Ilofc danych d o odebrania
SubQ wskazuje czy komenda ma wys艂a膰 dane subkana艂owe czy tylko nag艂贸wek. Typy danych sub-kana艂owych przedstawiono poni偶ej:
Kod Opis 01 h Aktualna pozycja 02h Numer katalogowy 03h Informacje o 艣cie偶ce
Numer 艣cie偶ki jest brany pod uwag臋 tylko gdy typ danych =03h. Komenda zawsze zwraca nag艂贸wek przed w艂a艣ciwymi danymi: Bajt 7 6 5 4 3 2 1 0
1 Status Audio
2 MSB D艂ugof膰 danych LSB
(nie uwzgl臋dnia nag艂贸wka) 3
W tablicy poni偶ej pokazano znaczenie kod贸w Status Audio: Kod statusu audio Opis
OOh Status audio nie obs艂ugiwany
11 h Trwa odtwarzanie
12h Odtwarzanie wstrzymane (pauza)
13h Odtwarzanie pomy艣lnie zako艅czone
14h Odtwarzanie zako艅czone
z powodu b艂臋du 15h Brak operacji audio
Je艣li pole d艂ugo艣ci danych jest r贸wne 0 oznacza to brak dalszych danych do wys艂ania (bit SubQ = 0).
Tryb p o zycji (Olh) Bajt 7 6 5 4 3 2 1 0
4 Olh
5 ADR 4/2 A/D Copy -
6 Numer fcie偶ki
7 lndex
8 MSB Aktualna pozycja relatywna LSB
do poczqtku p艂yty
12 MSB Aktualna pozycja relatywna LSB do poczqtku fcie偶ki
4/2: d藕wi臋k czterokana艂owy (1)/ dwukana艂owy (0)
A/D: audio (0)/dane (1)
Copy: zabronione kopiowanie (0)/ dozwolone (1)
艢cie偶ka: numer 艣cie偶ki aktualnie odtwarzanej
Indeks: 艢cie偶ka mo偶e by膰 podzielona na indeksy. Pauza rozdzielaj膮ca umieszczona na pocz膮tku 艣cie偶ki zawsze posiada indeks
0. Domy艣lny numer indeksu to
1. Zakres wynosi od 1 do 99. Rzadko spotyka si臋 艣cie偶ki nagrane z u偶yciem indeks贸w. Tablica zawarto艣ci w og贸le ich nie uwzgl臋dnia.
Aktualna pozycja: Nie wymaga komentarza. Gdy aktualny sektor jest pauz膮 warto艣膰 ta jest ujemna. Jak zapisuje si臋 tak膮 liczb臋? Przyk艂ad liczby 8 bitowej (-128 do 127). Liczby od 0 do 127 s膮 warto艣ciami dodatnimi a od 255 do 128 warto艣ciami ujemnymi. Tak wi臋c ni = 255, -2 = 254 itd. Warto艣膰 ujemna naszego adresu nie jest okre艣lona. Je艣li MSF = 1 to warto艣ci zawsze s膮 dodatnie.
Pozycja relatywna do pocz膮tku 艣cie偶ki: jak wy偶ej z tym, 偶e pozycja 0 jest pocz膮tkiem aktualnej 艣cie偶ki a nie p艂yty.
Z do艣wiadcze艅 wynika, 偶e ta druga warto艣膰 potrafi by膰 bardzo r贸偶nie wyliczana przez r贸偶ne nap臋dy co powoduje k艂opoty sterownika z kompatybilno艣ci膮. Natomiast obie liczby potrafi膮 tak偶e przybra膰 na moment w zupe艂nie losowym czasie bardzo dziwne warto艣ci (np. 11017340). W dokumentacji nic nie ma na ten temat, a przysporzy艂o to mi wielu problem贸w.
Tryb informacji o 艣cie偶ce (03h) Bajt 7 6 5 4 3 2 10
4 03h
5 - 4/2 A/D Copy -
8 OK
9 Kod kraju
11 Kod w艂a艣ciciela
14 Rok nagrania
1艣 Numer seryjny
Bit OK sygnalizuje 偶e dane s膮 poprawne. OK = 0 oznacza 偶e nap臋d nie potrafi odczyta膰 danych lub subkana艂 ich nie zawiera.
Micha艂 Wysocki mwsoft@satkabel.com.pl
50
Elektronika Praktyczna 11/2002
PODZESPO艁Y
I Uk艂ady PSoC firmy Cypress MicroSystems I
Wybieraj膮c mikrokontroler do konkretnej aplikacji, musimy zazwyczaj pogodzi膰 si臋 z wieloma kompromisami wynikaj膮cymi z przyj臋tego przez producent贸w uk艂ad贸w stopnia wyposa偶enia mikrokontroler 贸w. Radykalne i niezwykle skuteczne rozwi膮zanie praktycznie wszystkich problem贸w tego rodzaju zapewniaj膮 mikrokontro艂ery PSoC firmy CypressMicro.
System w jednym uk艂adzie
W wyniku przyj臋tych kompromis贸w albo musimy zap艂aci膰 za peryferie, z kt贸rych nie b臋dziemy korzysta膰, lub "lata膰" braki w wyposa偶eniu mikrokont-rolera za pomoc膮 zewn臋t-
^CYPRESS
rznych uk艂ad贸w. Niezwykle rzadkie s膮 przypadki, w kt贸rych peryferie zintegrowane w mi kro kontrolerze dok艂adnie pasuj膮 do wymog贸w aplikacji, zw艂aszcza je偶eli we藕miemy pod uwag臋 tak偶e "jako艣膰" wszystkich parametr贸w mi kro kontrolera. Do takich, obok m.in. pojemno艣ci pami臋ci i blok贸w peryferyj-
nych, trzeba zaliczy膰 dost臋pne rodzaje obud贸w czy te偶 mo偶liwo艣膰 zmiany funkcji wyprowadze艅 mikro-kontrolera.
Niestety, w wi臋kszo艣ci nieco bardziej wyrafinowanych przypadk贸w, projektanci musz膮 godzi膰 si臋 na wyb贸r kompromisowy.
A w艂a艣ciwie do tej pory musieli.
Nowe spojrzenie
Na pocz膮tku 2000 roku pojawi艂y si臋 bowiem pierwsze informacje o nowym produkcie firmy Cypress -mikrokontrolerze ze swobodnie rekonfigurowanymi peryferiami. Rzecz niebywa艂a, bowiem ka偶dy projektant wykorzystuj膮c wbudowane w taki mikrokontroler konfigurowalne
Elektronika Praktyczna 11/2002
51
PODZESPO艁Y
sr ne
Porty wej艣ciowo-wyj艣ciowe
MUX wej艣膰 analogowych Drivery analogowe
Globalna matryca po艂膮czeniowa dla kom贸rek wej艣clowc-wyj艣clowych
Matryca konfigurowalnych li________tam艅rak cyfrowych
SRAM
Pami臋膰 programu Flash
PLL
Rdze艅 M8C
MAC
Decymator Watchdog/ Sleep timer LVD/POR Kontroler przerwa艅
Rys. 1
zasoby, mo偶e zbudowa膰 sobie dok艂adnie takie peryferie, jakie s膮 niezb臋dne w jego aplikacji.
Mikro kontrolery nowej rodziny opracowa艂a firma Cypress MicroSystems, kt贸ra nale偶y do do艣膰 dobrze znanego na naszym rynku Cypressa. Rodzina sk艂ada si臋 zaledwie z czterech mikrokontroler贸w (tab. 1) dost臋pnych w kilku rodzajach obud贸w, ale dzi臋ki praktycznie nieograniczonym (w rozs膮dnym zakresie) mo偶liwo艣ciom konfiguracji peryferii jest mo偶liwe "wbudowa-
nie" na drodze programowej, praktycznie dowolnych peryferyjnych modu艂贸w analogowych i cyfrowych. Schemat blokowy mikrokontroler贸w PSoC pokazano na rys. 1.
Rdze艅 uk艂ad贸w PSoC [Programmable System-on-a-Chip) jest minimalnie zmodyfikowany w stosunku do znanego z wcze艣niejszych opracowa艅 rdzenia M8, na bazie kt贸rego Cypress produkuje mikro-kontrolery (niegdy艣 pierwsze na rynku!) zintegrowane z interfejsem USB. Budow臋 8-bitowego rdzenia
M8 oparto na architekturze Harvard. Jego lista instrukcji - niezgodnie ze wsp贸艂czesn膮 mod膮 na RlSC-i - jest bardzo obszerna i przez to 艂atwa w stosowaniu. Rdze艅 obs艂uguje 9 tryb贸w adresowania, przy czym korzystanie z nich - dzi臋ki przejrzystym mnemonikom i uporz膮dkowanej li艣cie instrukcji - jest bardzo 艂atwe. Mikrokontrolery wyposa偶ono w blok sprz臋towego mno偶enia 8x8 z 16-bitowym wyj艣ciem, kt贸ry wsp贸艂pracuje z 32-bito-
ducent nie ujawni艂 specyfikacji programowania, co powoduje konieczno艣膰 korzystania z oryginalnych narz臋dzi.
Mikrokontrolery PSoC wyposa偶ono tak偶e w system priorytetowej obs艂ugi przerwa艅, przy czym przerwania mog膮 by膰 generowane tak偶e przez cyfrowe bloki konfiguro walne, dzi臋ki czemu dost臋p do przerwa艅 maj膮 tak偶e bloki funkcjonalne implementowane przez projektanta.
Wszystkie bloki mikro-kontrolera s膮 taktowane
Idea PSoC
Tw贸rcy uk艂ad贸w prezentowanych w artykule po艂膮czyli w jednej obudowie szybki 8-bitowy mikrokontroler ze swobodnie konfiguro walnymi blokami analogowymi i cyfrowymi spe艂niaj膮cymi rol臋 modyfikowalnych peryferii mikrokontrolera.
wym akumulatorem. Dodatkowym wyposa偶eniem wszystkich mikrokontroler贸w PSoC jest sprz臋towy decymator, kt贸ry s艂u偶y do konwersji sygna艂u z 1-bi-towego przetwornika A/C E-A na posta膰 r贸wnoleg艂膮. Decymator jest automatycznie konfigurowany jako konwerter danych przez oprogramowanie narz臋dziowe PSoC Designer. Pami臋膰 programu we wszystkich mikrokontrole-rach PSoC jest typu Flash i mo偶na j膮 wielokrotnie programowa膰, tak偶e ju偶 po zamontowaniu uk艂ad贸w w systemie. Niestety, pro-
Tab. 1. Zestawienie najwa偶niejszych parametr贸w mikrokontroler贸w PSoC firmy Cypress
Parametr CY8C25122 CY8C26233 CY8C26443 CY8C26643
Cz臋stotliwo艣膰 taktowania 93,7kHz...24MHz 93,7kHz...24MHz 93,7kHz...24MHz 93,7kHz...24MHz
Napi臋cie zasilania 3...5,5V 3...5,5V 3...5,5V 3...5,5V
Pojemno艣膰 pami臋ci danych RAM 256 B 256 B 256 B 256 B
Pojemno艣膰 pami臋ci programu Flash 4kB 8kB 16 kB 16kB
Liczba analogowych blok贸w konfigurowalnych 12 12 12 12
Liczba cyfrowych blok贸w konfigurowalnych 8 8 8 8
Liczba wyprowadze艅 l/O 6 16 24 40/44
Wbudowana przetwornica napi臋cia zasilaj膮cego Nie Tak Tak Tak
Dost臋pne obudowy DIP8 DIP/SOIC/ SSOP20 DIP/SOIC/ SSOP28 DIP/SSOP48, TOFP44
sygna艂em zegarowym wytwarzanym przez generator wbudowany w mikrokontroler. Cz臋stotliwo艣膰 jego pracy mo偶na ustali膰 za pomoc膮 zewn臋trznego rezonatora kwarcowego, a w przypadku mniejszych wymaga艅 co do dok艂adno艣ci i stabilno艣ci cz臋stotliwo艣ci, mo偶na wykorzysta膰 wewn臋trzny generator o programowo ustalanej cz臋stotliwo艣ci sygna艂u.
Cyfrowe bloki konfiguro walne
Peryferie cyfrowe mo偶na implementowa膰 w zespole o艣miu 8-bitowych cyfrowych blok贸w konfigurowalnych, z kt贸rych 4 s膮 blokami zoptymalizowanymi pod k膮tem transmisji danych. Ich konfiguracj臋 naj艂atwiej jest przeprowadzi膰 za pomoc膮 specjalizowanego programu narz臋dziowego PSoC Designer, kt贸ry ten do艣膰 z艂o偶ony proces sprowadza do kilku klikni臋膰, w tym przede wszystkim wyboru rodzaju implementowanego bloku (lewa cz臋艣膰 okna z rys. 2). Podobnie 艂atwe jest do艂膮czanie wej艣膰
Elektronika Praktyczna 11/2002
PODZESPO艁Y
Tab. 2. Mo偶liwe konfiguracje cyfrowych modu艂贸w peryferyjnych
Nazwa bloku Wykorzystywane zasoby
Licznik 8-bitowy 1 modu艂 cyfrowy
Licznik 16-bitowy 2 modu艂y cyfrowe
Licznik 24-bitowy 3 modu艂y cyfrowe
Licznik 32-bitowy 4 modu艂y cyfrowe
8-bitowy generator sekwencji pseudolosowych 1 modu艂 cyfrowy
16-bitowy generator sekwencji pseudolosowych 2 modu艂y cyfrowe
24-bitowy generator sekwencji pseudolosowych 3 modu艂y cyfrowe
32-bitowy generator sekwencji pseudolosowych 4 modu艂y cyfrowe
PWM 8-bitowy 1 modu艂 cyfrowy
PWM 16-bitowy 2 modu艂y cyfrowe
8-bitowy PWM z czasem martwym 2 modu艂y cyfrowe
16-bitowy PWM z czasem martwym 3 modu艂y cyfrowe
Ti mer 8-bitowy 1 modu艂 cyfrowy
Timer 16-bitowy 2 modu艂y cyfrowe
Ti mer 24-bitowy 3 modu艂y cyfrowe
Timer 32-bitowy 4 modu艂y cyfrowe
Generator CRC16 2 modu艂y cyfrowe
Inwerter 1 modu艂 cyfrowy
EEPROM -
UART 2 modu艂y komunikacyjne
Odbiornik IrDA 3 modu艂y cyfrowe
Nadajnik IrDA 2 modu艂y cyfrowe
Obs艂uga LCD -
Odbiornik szeregowy 1 modu艂 komunikacyjny
Nadajnik szeregowy 1 modu艂 komunikacyjny
Programowy interfejs I2C Master -
Programowy interfejs I2C Slave -
SPI Master 1 modu艂 komunikacyjny
SPI Slave 1 modu艂 komunikacyjny
i wyj艣膰 implementowanych peryferii do wyprowadze艅 mikrokontrolera.
W tab. 2 zestawiono peryferie mo偶liwe do zaim-plementowania w cyfrowych blokach konfiguro-walnych za pomoc膮 ostatnio udost臋pnionych wersji oprogramowania (3.x).
Analogowe bloki konfiguro walne
Podobnie przebiega kon-figurowanie blok贸w analogowych, kt贸rych w mikro-kontrolerach PSoC zawar-
to a偶 12. Budowa czterech z nich jest oparta na klasycznych wzmacniaczach operacyjnych. W pozosta艂ych o艣miu zastosowano prze艂膮czane kondensatory. Bloki te s膮 tak偶e podzielone na dwie grupy po cztery bloki, r贸偶ni膮ce si臋 nieco budow膮 wewn臋trzn膮, ale zasada ich dzia艂ania jest identyczna. W tab. 3 zamieszczono zestawienie obecnie dost臋pnych (w wersji PSoC Designera 3.x) konfiguracji blok贸w analogowych.
艁atwe w stosowaniu
Wszystkie mi kro kontrolery PSoC maj膮
identyczn膮 budow臋 wewn臋trzn膮 (艂膮cznie
z rozmieszczeniem rejestr贸w), r贸偶ni膮 si臋
jedynie rozmiarem pami臋ci programu i liczb膮
port贸w do艂膮czonych do wyprowadze艅
obudowy.
Elektronika Praktyczna 11/2002
53
PODZESPO艁Y
PSoC a PLD
Korzystanie z uk艂ad贸w PSoC firmy Cypress
MicroSystems przypomina korzystanie
z systemu zbudowanego z mikrokontrolera
z do艂膮czonymi programowalnymi uk艂adami
analogowymi (jak np. ispPAC firmy Lattice),
w kt贸rych mo偶na umie艣ci膰 w艂asne peryferie
analogowe, i uk艂adami CPLD, w kt贸rych mo偶na umie艣ci膰 w艂asne peryferie cyfrowe.
Tab. 3. Mo偶liwe konfiguracje analogowych modu艂贸w peryferyjnych --------------------
艂i;w rm t
l2C_FdT 艢 Lt* Odi *W nrt艂 ta lin p-
. "Tft#n j*
Rys. 2
Narz臋dzia
Ze wzgl臋du na relatywnie ma艂膮 popularno艣膰 rdzenia M8C i zwi膮zany z tym brak narz臋dzi na rynku, Cypress MicroSystems opracowa艂 w艂asny system projektowy dla uk艂ad贸w PSoC - nosi on nazw臋 PSoC Designer. Program ten jest kompletnym, zintegrowany 艣rodowiskiem programisty (IDE), kt贸re w wersji bezp艂atnej udost臋pnia wszystkie mo偶liwo艣ci pakietu poza kompilatorem C (kt贸rego cena nie jest osza艂amiaj膮ca -
wynosi bowiem ok. 145 USD). Za pomoc膮 PSoC Designera mo偶na 艂atwo konfigurowa膰 modu艂y peryferyjne, do艂膮cza膰 ich wej艣cia i wyj艣cia do wyprowadze艅 uk艂adu, debu-gowa膰 program, programowa膰 uk艂ady itp. U偶ytkownicy niech臋tnie wydaj膮cy pieni膮dze na narz臋dzia otrzymuj膮 pe艂nowarto艣ciowy pakiet narz臋dziowy praktycznie za darmo, co nadal nie jest powszechne. Producent przygotowa艂 tak偶e jeden zestaw ewalu-acyjny (CY3205DK - fot.
Nazwa bloku Wykoizystywane zasoby
Multiplekser analogowy 4->1 -
2-biegunowy filtr dolnoprzepustowy 2 modu艂y z kluczowanymi pojemno艣ciami
2-biegunowy filtr pasrnowo-przepustowy 2 modu艂y z kluczowanymi pojemno艣ciami
6-bitowy przetwornik C/A 1 modu艂 z kluczowanymi pojemno艣ciami
8-bitowy przetwornik C/A 2 modu艂y z kluczowanymi pojemno艣ciami
8-bitowy przetwornik A/C A-S 1 modu艂 z kluczowanymi pojemno艣ciami/1 modu艂 cyfrowy
11 -bitowy przetwornik A/C A-2 1 modu艂 z kluczowanymi pojemno艣ciami/1 modu艂 cyfrowy
6-bitowy przetwornik A/C SAR 1 modu艂 z kluczowanymi pojemno艣ciami
8-bitowy przetwornik A/C SAR 2 modu艂y z kluczowanymi pojemno艣ciami/1 modu艂 liniowy
Przetwornik A/Co modyfikowane) rozdzielczo艣ci 7 .13 bit贸w 1 modu艂 z kluczowanymi pojem no艣 ci ami/3 modu艂y cyfrowe
12-bitowy inkrernentacyiny przetwornik A/C 1 modu艂 z kluczowanymi pojemno艣ciami/2 modu艂y cyfrowe
2-biegunowy filtr g贸rno-przepustowy 2 modu艂y z kluczowanymi pojemno艣ciami
2- biegunowy filtr pasrnowo-zaporowy 2 modu艂y z kluczowanymi pojemno艣ciami
Komparator analogowy 2 modu艂y z kluczowanymi pojemno艣ciami
Generator DTMF 1 modu艂 z kluczowanymi pojemno艣ciami/1 modu艂 cyfrowy
Pomiar Temperatury 1 modu艂 z kluczowanymi pojemno艣ciami
Wzmacniacz pomiarowy 2 modu艂y liniowe
Wzmacniacz odwracai膮cy 1 modu艂 liniowy
Wzmacniacz o programowanym wzmocnieniu 1 modu艂 liniowy
Multiplekser napi臋膰 referencyjnych 1 modu艂 liniowy
Komparator z programowanym progiem 1 modu艂 liniowy
Fot. 3
3), w ramach kt贸rego otrzymujemy emulator ICE i programator (standardowo dla mikrokontro-ler贸w w obudowach DIP do 28 wyprowadze艅), dwie pr贸bki mikrokontro-ler贸w CY8C26443, zasilacz sieciowy, CD-ROM z oprogramowaniem narz臋dziowym i dokumentacj膮, a tak偶e niewielk膮 p艂ytk臋 ewaluacyjn膮, na kt贸rej mo偶na testowa膰 proste aplikacje.
Podsumowanie
Kiedy po raz pierwszy pisali艣my o uk艂adach PSoC firmy Cypress MicroSystems, trudno by艂o wyrokowa膰, czy przyjm膮 si臋 one na rynku, chocia偶
bardzo wiele na to wskazywa艂o. Teraz, po prawie trzech latach od chwili ich premiery, wiadomo ju偶, 偶e PSoC-e zdobywaj膮 艣wiat. Tak偶e my przedstawimy wkr贸tce na 艂amach EP projekty realizowane na tych nowoczesnych uk艂adach, kt贸re 艂膮cz膮 w sobie wszystkie nowoczesne trendy projektowe. Piotr Zbysi艅ski, AVT piotr.zbysinski@ep.com.pl
Dodatkowe informacje
Artykut powsta艂 n a podst awie materia艂贸w udost臋pnionych przez lirrn臋 FutureElectronics (tel. (22)618-92-02, www.lutureelectronics.com), kt贸rajesT autoryzowanym dystrybutorem lirmy Cypress MicroSyserns, w Tym zestawu CY3205DK.
54
Elektronika Praktyczna 11/2002
PODZESPO艁Y
Szale艅stwo mini atu ryza ej i
wymusza na producentach
uk艂ad贸w scalonych coraz
wi臋ksz膮 integracj臋 funkcjonaln膮
i coraz wi臋ksz膮 g臋sto艣膰 upakowania produkowanych
uk艂ad贸w. Jednym
z najnowszych sposob贸w
zaspokojenia tych wymaga艅
jest budowanie uk艂ad贸w
sca艂onych jako
wielowarstwowych "kanapek".
Jeden z takich nowatorskich
pomys艂贸w przedstawiamy
w artykule.
Technologia przestrzennego
pojemno艣ci pami臋ci
Fot. 1. Pami臋ci warstwowe opracowane przez firm臋 Infineon
Kilka miesi臋cy temu pisali艣my o wdro偶eniu do produkcji przez firm臋 Infineon nowej technologii produkcji pami臋ci p贸艂przewodnikowych, kt贸ra polega na 艂膮czeniu w jednej obudowie kilku struktur (u艂o偶onych jedna na drugiej - fot. 1), dzi臋ki czemu mo偶na uzyska膰 bardzo du偶膮 g臋sto艣膰 upakowania informacji na jed-
Fot. 2. Spos贸b rozbudowy pami臋ci metodq Chip-on-Chip za po-mocq technologii opracowanej w firmie SimpleTech IC Tower
nostk臋 obj臋to艣ci. Podobn膮 technologi臋 dla kompletnych (obudowanych) uk艂ad贸w scalonych wdro偶y艂a niedawno firma SimpleTech Inc., kt贸rej pomys艂ow膮 propozycj臋 monta偶u Chip-on-Chip przedstawiamy w artykule.
Na czym polega technologia Chip-on-Chip?
Jest to technologia warstwowego monta偶u uk艂ad贸w scalonych, umo偶liwiaj膮ca osi膮gni臋cie du偶ej g臋sto艣ci upakowania informacji przechowywanych w pami臋ci na jednostk臋 obj臋to艣ci. Jest to jedna z najprostszych metod zwi臋kszenia g臋sto艣ci upakowania pami臋ci, pozwalaj膮ca na stosunkowo tanie powi臋kszanie pojemno艣ci modu艂贸w pami臋ciowych i - co bardzo wa偶ne - mo偶na do tego celu wykorzysta膰 uk艂ady scalone w standardowych obudowach.
W aplikacjach najcz臋艣ciej s膮 stosowane techniki podw贸jnego (fot. 2) lub potr贸jnego warstwowania Chip-on-Chip. Taka technika monta偶u jest stosowana w modu艂ach pami臋ci typu DRAM, Flash oraz SRAM, przy czym zalecan膮 obudow膮 uk艂ad贸w scalonych jest TSSOP. Charakteryzuj膮 si臋 one niewielk膮 grubo艣ci膮, dzi臋ki czemu monta偶 warstwowy trzech uk艂ad贸w - jeden na drugim - nie powoduje naruszenia norm JEDEC dotycz膮cych maksymalnych wymiar贸w.
Pomimo prostoty, pomys艂 nie jest wolny od wad, do kt贸rych trzeba zaliczy膰:
- nieunikonione problemy z odprowadzaniem ciep艂a. Zanikaj膮 one, je偶eli komputer lub inne urz膮dzenie, w kt贸rym modu艂 pami臋ci b臋dzie instalowany, ma poprawnie (zgodnie z normami) zaprojektowany system ch艂odzenia.
- potencjalnie wi臋ksza podatno艣膰 na uszkodzenia nietypowo montowanych uk艂ad贸w. Producent w cyklu technologicznym przewidzia艂 procedur臋 weryfikacyjn膮, praktycznie likwiduj膮c膮 ten problem. W wi臋kszo艣ci dost臋pnych obecnie modu艂贸w montowanych w technologii Chip-on-Chip stosuje si臋 warstwowanie podw贸jne, przy kt贸rym prawdopodobie艅stwo wyst膮pienia uszkodze艅 jest minimalne. Poniewa偶 w przypadku stosowania
uk艂ad贸w zamkni臋tych w standardowych obudowach ich wyprowadzenia s膮 zbyt kr贸tkie, aby mo偶na by艂o je dolutowa膰 do wyprowadze艅 uk艂adu ulokowanego poni偶ej, zastosowano specjalne p艂ytki drukowane (widoczne na fot. 2) tworz膮ce po艂膮czenie mi臋dzy wyprowadzeniami uk艂ad贸w. Niebagateln膮 zalet膮 metody warstwowego wytwarzania modu艂贸w pami臋ci, opracowanej przez Simple-
Elektronika Praktyczna 11/2002
PODZESPO艁Y
Tech, jest to, 偶e nie jest potrzebny 偶aden specjalizowany sprz臋t - wystarczaj膮 typowe narz臋dzia do monta偶u powierzchniowego.
Zastosowania Chip-on-Chip IC Tower
Aby wykorzysta膰 wszystkie mo偶liwo艣ci wsp贸艂czesnych, bardzo szybkich procesor贸w, niezb臋dne s膮 szybkie pami臋ci o du偶ej pojemno艣ci. Im wi臋ksza pojemno艣膰 pami臋ci systemowej, tym lepsze warunki pracy ma system operacyjny, poniewa偶 korzystanie z dysku twardego jest w贸wczas ograniczone do minimum. Zysk na szybko艣ci dzia艂ania komputera jest do艣膰 du偶y, poniewa偶 czas dost臋pu do danych przechowywanych w pami臋ci DRAM wynosi kilka...kilkana艣cie nanosekund, podczas gdy w przypadku dysk贸w s膮 to zazwyczaj mikrosekundy. W odpowiedzi na gwa艂towny wzrost wymaga艅 dotycz膮cych wielko艣ci i szybko艣ci pami臋ci, firma SimpleTech oferuje "warstwowe" pami臋ci DDR w postaci nis kop rofi Iowy ch modu艂贸w DIMM, a tak偶e w postaci modu艂贸w SO-DIMM - ka偶dy o maksymalnej pojemno艣ci do 1 GB.
Prezentowana w artykule technologia SimpleTech IC Tower jest tak偶e stosowana przy masowym wytwarzaniu modu艂贸w pami臋ci DRAM (typowe aplikacje komputerowe), Flash (przeno艣ne pami臋ci nieulotne) oraz SRAM (g艂贸wnie jako cache). Szczeg贸lnie uzasadnione ekonomicznie jest stosowanie technologii SimpleTech IC Tower w r贸偶nego rodzaju modu艂ach Flash, jak np. CompactFlash, MMC czy ATA-PC, poniewa偶 w aplikacjach mobilnych szczeg贸lnie istotne jest zachowanie niewielkich wymiar贸w (w tym zw艂aszcza grubo艣ci) obudowy. Na fot. 3 przedstawiono przyk艂adowe karty CoinpaciFlash Digital Media dost臋pne w wariantach o pojemno艣-
Fot. 3. Karty SimpleTech Compact Flash o pojemno艣ci do 1 GB wykonane w technologii Chip-on-Chip
ci do 1 GB. Obecnie s膮 dost臋pne pami臋ci o maksymalnej pojemno艣ci: Compaci Flash - karta 1 GB, ATA PC Card - karta 4 GB, Flash Disk Module - modu艂 512 MB, Flash Dri-ves - dyski Flash o pojemno艣ci ponad 8 GB w obudowach 2,5" i 3,5".
Innymi aplikacjami, czerpi膮cymi korzy艣ci z prezentowanej technologii, s膮 systemy sieciowe i telekomunikacyjne, potrzebuj膮ce pami臋ci DRAM o du偶ych pojemno艣ciach, a przy tym o mo偶liwie niewielkich wymiarach.
Jak wida膰, obszar贸w stosowania pami臋ci o du偶ych pojemno艣ciach jest bardzo wiele, a rosn膮ce wymagania dotycz膮ce ograniczania wymiar贸w urz膮dze艅 wprowadzanych na rynek wr贸偶膮 opracowaniu firmy SimpleTech dobr膮 przysz艂o艣膰. RK
Dodatkowe informacje
Artykutpowstat na podstawie materia艂贸w udost臋pnionych przezlirm臋 GUANTUM Korporacja Transferu Technologii Sp. z o.o., www.quantum.-com.pl, Tel. (71) 362-63-56.
Zalety technologii Chip-on-Chipi
艢 Mo偶liwo艣膰 stosowania jednej p臋tli PLL dla ca艂ego bloku pami臋ci, co zmniejsza poziom zak艂贸ce艅 EM, zapewnia tak偶e 艂atw膮 synchronizacj臋 pracy wszystkich modu艂贸w pami臋ciowych (zw艂aszcza R1MM).
艢 Brak konieczno艣ci modyfikowania stosowanych p艂ytek d ru ko w any ch.
艢 Procedury testowe nie wymagaj膮 偶adnego specjalnego o pr zy r z 膮d o wania.
^ Zapewnienie kr贸tkiej drogi sygna艂u, dzi臋ki montowaniu uk艂ad贸w jeden na drugim (wyprowadzenia ka偶dego uk艂adu maj膮 bezpo艣redni kontakt z wyprowadzeniami uk艂adu znajduj膮cego si臋 pod spodem lub na g贸rze). Wp艂ywa to na poziom zak艂贸ce艅 EM i stabilno艣膰 pracy modu艂u pami臋ciowego.
Elektronika Praktyczna 11/2002
57
Projekty akademickie
Autonomiczny Bobot
jjJobilny
O zbudowaniu robota na pewno marzy艂o lub nadal marzy wielu naszych Czytelnik贸w. Najtrudniejsze jest z pewno艣ci膮 wykonanie podwozia, kt贸re umo偶liwi mu sprawne poruszanie si臋. Nie mniej istotny jest tak偶e sterownik robota, kt贸ry spe艂nia rol臋 jego "m贸zgu".
Szczeg贸艂y konstrukcyjne jednego z opracowa艅 robota mobilnego prze dsta wiamy w artykule. Niech ten artyku艂 zach臋ci innych konstruktor贸w do opisania urz膮dze艅 tego rodzaju.
Autonomiczne Roboty Mobilne (A RM) znalaz艂y zastosowanie w pracach zwi膮zanych z automatyzacj膮 pewnych powtarzalnych czynno艣ci, kt贸re wymagaj膮 przemieszczenia narz臋dzia, czujnika, platformy transportowej po zaplanowanej trajektorii (kontrola pomieszcze艅, transport wewn膮tizzak艂adowy, sprz膮tanie, koszenie, malowanie, szlifowanie).
Inne zastosowania ARM s膮 zwi膮zane z prac膮 w 艣rodowisku niebezpiecznym lub w miejscu trudno dost臋pnym dla cz艂owieka (kontrola i nadz贸r elektrowni atomowych, usuwanie toksycznych odpad贸w, inspekcje i konserwacje ruroci膮g贸w, rozbrajanie materia艂贸w wybuchowych). Roboty mobilne znalaz艂y te偶 zastosowanie w pracach badawczych (badania wulkan贸w, penetracja dna morskiego, eksploracja kosmosu). Od dawna istniej膮 aplikacje wojskowe (bezza艂ogowe obiekty lataj膮ce, p艂ywaj膮ce, je偶d偶膮ce) oraz maszyny chroni膮ce ludzi przed bezpo艣rednim zagro偶eniem (oczyszczanie p贸l minowych, usuwanie 艂adunk贸w wybuchowych). Rozwi膮zania stosowane w robotach mobilnych zosta艂y z powodzeniem wykorzystane w sprz臋cie rehabilitacyjnym dla os贸b niepe艂nosprawnych, znacznie rozszerzaj膮cym mo偶liwo艣ci ich samodzielnego poruszania si臋 (samobie偶ne w贸zki, nawigator dla os贸b niewidomych).
ARM s膮 tak偶e stosowane jako roboty - zabawki lub w aplikacjach reklamowych.
Autonomiczny Robot Mobilny
Prezentowany w artykule Autonomiczny Robot Mobilny zosta艂 opracowany w Instytucie Automatyki Politechniki 艁贸dzkiej. Projekt podzielono na dwie cz臋艣ci:
- Robot mobilny tr贸jko艂owy - dob贸r czujnik贸w umo偶liwiaj膮cych poruszanie w nieznanym otoczeniu.
- Sterownik mobilnego robota ko艂owego.
Zaprojektowano konstrukcj臋 mechaniczn膮 wraz z systemem sensory cznym oraz opracowano sterownik i oprogramowanie. Powsta艂 stosunkowo prosty robot mobilny, kt贸ry ma zdolno艣膰 samodzielnego poruszania si臋. Mo偶na go udoskonala膰 i wzbogaca膰 w elementy zale偶ne od przewidywanych zastosowa艅 oraz wykorzysta膰 w pracy dydaktycznej lub w celach badawczych.
r r
/ i

J prnldulnii
p obnttnn-
mosnnnto tatys艂a
Rys.
53
Elektronika Praktyczna 11/2002
Projekty akademickie
Czu|nlk ultrad藕wi臋kowy
Rys. 2
Budowa ARM
Korpus g艂贸wny robota stanowi p艂yta z pleksiglasu o wymiarach 350x300x10 mm. Zastosowany materia艂 przy ma艂ej wadze zapewnia dobr膮 wytrzyma艂o艣膰 mechaniczn膮 i 艂atwo艣膰 monta偶u potrzebnego wyposa偶enia. Robot jest nap臋dzany przez dwa przednie, niezale偶ne, nieskr臋tne ko艂a. Z ty艂u znajduje si臋 trzecie, swobodne ko艂o podporowe (rys. 1). Przednie ko艂a s膮 z zewn臋trznej strony 艂o偶yskowane za pomoc膮 艂o偶ysk kulkowych, a od strony wewn臋trznej osie k贸艂 oparte s膮 na 艂o偶yskach przek艂adni silnika. Do nap臋du zastosowano dwa silniki pr膮du sta艂ego typu RHE158 firmy Micro Motors (12 V/680 mA/0,5 Nm) wyposa偶one przez producenta w przek艂adnie mechaniczne 75:1 i przetworniki obrotowo-impulsowe wytwarzaj膮ce trzy impulsy na jeden obr贸t silnika. Akumulator zasilaj膮cy robota (12 V/l,5 Ah o wadze 1,3 kg) zosta艂 umieszczony nad osi膮 k贸艂. Dzi臋ki temu ko艂a s膮 doci膮偶one i lepiej przylegaj膮 do pod艂o偶a. Na akumulatorze zamontowano g艂owic臋 pomiarow膮 czujnika ultrad藕wi臋kowego obracan膮 za pomoc膮 modelarskiego serwomechanizmu HS300 (Hitech). Dzi臋ki temu robot mo偶e skanowa膰 swoje otoczenie w poszukiwaniu przeszk贸d (mierzy膰 odleg艂o艣膰 od nich).
Uk艂ad sterowania
Stopie艅 mocy do sterowania silnik贸w zosta艂 zbudowany na uk艂adzie scalonym L2 98 firmy STMic-roelectronics (rys. 2). Uk艂ad ten umo偶liwia sterowanie prac膮 dw贸ch silnik贸w. Kierunek obrot贸w usta-
wiany jest za pomoc膮 dw贸ch bit贸w, a pr臋dko艣膰 obrotow膮 reguluje si臋 poprzez zmian臋 wsp贸艂czynnika wype艂nienia impuls贸w zasilaj膮cych (sterowanie PWM). Istnieje mo偶liwo艣膰 szybkiego hamowania silnika poprzez zwarcie uzwojenia wirnika. Do sterowania robota mobilnego zaadaptowano sterownik oparty na procesorze 80C535, taktowanym sygna艂em o cz臋stotliwo艣ci 12 MHz (generator kwarcowy). Procesor ma wbudowane uk艂ady CCU wykorzystywane do generacji przebieg贸w impulsowych o zmiennej szeroko艣ci (PWM), kt贸re zasilaj膮 silnik. Dzi臋ki tym peryferiom procesor jest zaj臋ty tylko podczas zmiany wsp贸艂czynnika wype艂nienia fali PWM. Sterownik ma 8 wej艣膰 zabezpieczonych transoptorami LTV829, 4 programowalne liczniki 24-bitowe LS7166, programowany uk艂ad we/wy (8255), kt贸ry umo偶liwia rozszerzenie port贸w procesora. Sterownik zawiera r贸wnie偶 艂膮cze szeregowe RS232 i wyj艣cie na wy艣wietlacz LCD. Uk艂ady elektroniczne zasilane s膮 z impulsowego zasilacza stabilizowanego, opartego na uk艂adzie L4960 przekszta艂caj膮cego napi臋cie 12V z akumulatora na 5V.
System czujnik贸w
W uk艂adzie jezdnym robota zastosowano czujniki, kt贸re mo偶na pogrupowa膰 w trzech grupach:
a) niskopoziomowe sensory zbli偶eniowe: czujniki zderzakowe (8 szt.), czujnik wykrywaj膮cy kraw臋d藕 pod艂o偶a (1 szt.);
b) aktywny sensor wysokiego poziomu (jednotorowy czujnik ultrad藕wi臋kowy),
c) sensory mierz膮ce przebieg: przetworniki obrotowo-impulsowe. W robocie u偶yto osiem mikrowy-艂膮cznik贸w typu kontaktronowego z klawiatury numerycznej. Zdecydowano si臋 na takie umiejscowienie czujnik贸w, aby na ka偶dym boku pojazdu by艂y po dwa maksymalnie oddalone od siebie i po艂膮czone aluminiowym zderzakiem. Poza tym, poszczeg贸lne zderzaki s膮 po艂膮czone gumow膮 ta艣m膮 gwarantuj膮c膮, 偶e robot nie zahaczy s膮siaduj膮cym (prostopad艂ym) zderzakiem o przeszkod臋 i nie zaklinuje si臋. Zderzak tworzy wi臋c zamkni臋t膮 p臋tl臋 wok贸艂 p艂yty no艣nej robota. Takie rozmieszczenie czujnik贸w gwarantuje wykrycie przez robota przeszkody z ka偶dej strony na ca艂ym jego obwodzie. Opr贸cz tego sta艂o si臋 mo偶liwe zidentyfikowanie miejsca kontaktu, tzn. okre艣lenie, w kt贸r膮 cz臋艣膰 zderzaka uderzy艂a przeszkoda: lewa strona, 艣rodek, prawa strona (ka偶dego z bok贸w). Zilustrowano to na rys. 3.
W robocie zamontowano tak偶e jeden czujnik wykrywaj膮cy kraw臋d藕 pod艂o偶a. Jest to mikrowy艂膮cz-nik mechaniczny z odpowiednio przymocowanym i wyprofilowanym spr臋偶ystym drutem, kt贸rego zadaniem jest wykrywanie wszelkiego rodzaju uskok贸w, np.: kraw臋d藕 sto艂u, schod贸w lub wi臋kszych poprzecznych row贸w (rys. 4). Czujnik ten odpowiada za bezpiecze艅stwo robota, chroni膮c go przed spadkiem i uszkodzeniem. W przypadku wykrycia przez czujnik przeszkody, program robota wchodzi w tzw. p臋tl臋 awaryjn膮. Jej zadaniem jest wycofanie pojazdu z zagro偶onego rejonu, skr臋t w prawo o k膮t 90 i w ten spos贸b omini臋cie niewidocznej dla innych czujnik贸w przeszkody.
-czujnik
cziynik aktywny
Rys. 3
60
Elektronika Praktyczna 11/2002
Projekty akademickie
mikrowy艂膮cznik
w膮s wykrywaj膮cy
kraw臋d藕
-pod艂o偶e
mlkrawy艂膮cznlk
w膮s wykrywaj膮cy
kraw臋d藕
pod艂o偶e
Rys. 4
W wykonanym modelu robota zastosowano jeden jednotorowy czujnik ultrad藕wi臋kowy, kt贸rego g艂owica pomiarowa zosta艂a umieszczona na ruchomej, obrotowej wie偶yczce (fot. 5). Rozwi膮zanie takie ma wiele zalet, m.in.: pozwala dokonywa膰 pomiar贸w pod r贸偶nymi k膮tami ustawienia g艂owicy wzgl臋dem przeszkody, bez zb臋dnych ruch贸w pojazdem. Pozwala tak偶e wyznaczy膰 k膮t, pod jakim znajduje si臋 ARM wzgl臋dem przeszkody. Mo偶liwe jest skanowanie otoczenia i poszukiwanie potencjalnych przeszk贸d. Nie jest to rozwi膮zanie drogie, gdy偶 zamiast kilku czujnik贸w ultrad藕wi臋kowych rozmieszczonych doko艂a pojazdu mamy jeden ruchomy. Sonar wykrywa przeszkody o szeroko艣ci minimalnej ok. 5 cm w zasi臋gu 1 metra z rozdzielczo艣ci膮 1 centymetra. Ma trudno艣ci z wykryciem
Fot. 5
np. w膮skiej nogi od krzes艂a, ale nog臋 od sto艂u ju偶 zauwa偶a. Nale偶y pami臋ta膰, 偶e w przypadku niewykrycia przeszkody, niezawodne s膮 sensory niskiego poziomu - zderzakowe.
W ARM zastosowano dwa przetworniki obrotowo-impulsowe, kt贸re wraz z licznikami zliczaj膮cymi impulsy i systemem mikroprocesorowym (80C535) umo偶liwiaj膮 ci膮g艂膮 kontrol臋 pr臋dko艣ci k贸艂 (k膮tow膮 i liniow膮), ich przy艣piesze艅 oraz obliczenie przebytej drogi. Pozwala to mi臋dzy innymi na: lokalizacj臋 robota na p艂aszczy藕nie, jazd臋 po zaplanowanej i zaprogramowanej trajektorii, utrzymywanie sta艂ej pr臋dko艣ci obu k贸艂 w je藕dzie do przodu, skr臋ty o dowolny k膮t, nawroty, jazd臋 po 艂uku.
Program steruj膮cy prac膮 robota zosta艂 napisany w j臋zyku C i w asemblerze. Przygotowany program realizuje bardzo prosty algorytm: jed藕 prosto dop贸ki nie napotkasz przeszkody, je艣li znajdziesz przeszkod臋, omi艅 j膮. Mimo tak prostego algorytmu (poruszanie si臋 robota ma charakter "chaotyczny" - bez okre艣lonego celu ko艅cowego), robot zr臋cznie omija wszelkie przeszkody, sporadycznie wykorzystuj膮c czujniki zderzakowe. W przypadku, gdy robot jest osaczony z trzech stron przez przeszkody, najpierw mierzona jest odleg艂o艣膰 do przeszkody na wprost, potem z prawej strony i na koniec z lewej. Nast臋pnie robot kieruje si臋 w stron臋, gdzie ma najdalej do przeszkody. Adam Pongowski Krzysztof Stawski
Dodatkowe materia艂y zwi膮zane z robotem (w tym filmy z prezentacj膮 mo偶liwo艣ci) mo偶na znale藕膰 na stronie internetowej: http://www.re-p ubl ika .pl/ap on go wski.
62
Elektronika Praktyczna 11/2002
Audiofilski przetwornik C/A
W drugiej cz臋艣ci artyku艂u przedstawiamy tajniki konstrukcji urzqdzenia oraz wra偶enia ods艂uchowe, kt贸re dla EP zebra艂 zesp贸艂 miesi臋cznika Audio. S艂r. 39
Karta d藕wi臋kowa z interfejsem USB
Wracamy do modnego tematu "audio na USB" przedstawiajqc na s艂r. 31 opis nowoczesnej "karty" wsp贸艂pracujqcej z PC poprzez interfejs USB.
Zasilacz USB
Pomys艂 r贸wnie prosty co realizacja, a pozwala na tanie przekszta艂cenie interfejsu USB dowolnego PC w stabilizowany zasilacz napi臋cia +5V. S艂r. 92.
Domowy aparat telefoniczny z kartq chipowq
Na s艂r. 43
przedstawiamy drugq cz臋艣膰 artyku艂u, w kt贸rej
Optoizolator > dla interfejsu szeregowego
Miniprojekt, kt贸rego opis przedstawiamy na s艂r. 91, powsta艂 jako cz臋艣膰 projektu modemu sieciowego, kt贸ry w tym miesiq-cu zdobi naszq ok艂adk臋. Jego walory
Tester kabli UTP A
Niezwykle u偶yteczna aplikacja mikrokontrolera PIC: tester kabli sieciowych, z rozbudowanq diag-nostykq stanu poszczeg贸lnych 偶y艂 w kablu. S艂r. 21.
autor skupi艂 si臋 na om贸wieniu
sposobu obs艂ugi przystawki. Jak si臋 praktyczne zach臋ci艂y nas do przygoto-przekonajq Czytelnicy artyku艂u, jej wanie osobnego projektu, czego skutki
"inteligencja" jest naprawd臋 ogromna. wida膰 w bie偶qcym wydaniu EP.
Konwerter sygna艂贸w wyj艣ciowych obrotowych enkoder贸w opisany w VHDL
Kolejny przyk艂ad "偶yciowej" aplikacji uk艂adu PLD, kt贸rego dzia艂anie opisano w VHDL. S艂r. 35.
Programowany 4-kana艂owy komparator/woltomierz
Czterokana艂owy miernik napi臋cia, wyposa偶ony w programowane komparatory mo偶e si臋 przyda膰 zar贸wno w laboratorium elektronicznym, jak i w uk艂adach nadzoru i sterowania. S艂r. 25.
Uk艂ady PSoC firmy Cypress MicroSystems
Na s艂r. 51 przedstawiamy mikrokon-trolery, kt贸re sq poczqtkiem rewolucyjnych przemian na rynku -sq bowiem wyposa偶one w konfiguro-walne peryferia, dzi臋ki kt贸rym mogq zaspokoi膰 wi臋kszo艣膰 wymaga艅 wszystkich projektant贸w system贸w mikroprocesorowych,
Autonomiczny Robot Mobilny
W artykule na s艂r. 58 przedstawiamy konstrukcj臋 samobie偶nego robota, kt贸ry powsta艂 na Politechnice 艁贸dzkiej.
SuperChip firmy Chipcon
O nie艣miertelno艣ci '51 mo偶na si臋 przekona膰 czytajqc artyku艂 na s艂r. 63.
Wysy艂anie komunikat贸w SMS ze sterownik贸w PLC >
Nowoczesna automatyka wymaga integrowania sterownik贸w PLC z infrastrukturq GSM. Jeden z przyk艂ad贸w takiej aplikacji przedstawiamy na s艂r. 138.
Elektronika Praktyczna 11/2002
Oscyloskopy serii TDS1000 i TDS2OOO
Nowq rodzin臋 tanich oscyloskop贸w firmy Tektronix przedstawiamy w artykule na s艂r. 66.
Multimetr Finest 707 ^
W artykule na s艂r. 78 przedstawiamy jeden z najnowocze艣niejszych multimetr贸w dost臋pnych w naszym kraju.
Nowa generacja wielofunkcyjnych timer贸w i licznik贸w firmy Omron
W ofercie firmy Omron pojawi艂y si臋 dwie nowe rodziny modu艂贸w liczqcych, kt贸rych mo偶liwo艣ci pozwalajq sqdzi膰, 偶e wkr贸tce zastqpiq one dziesiqtki "klasycznych" modu艂贸w timer贸w, licznik贸w, komparator贸w, miernik贸w pr臋dko艣ci itp.__ w
IKA
Nr 11 (119)
listopad 2002
Elektronika Praktyczna 11/2002
Projekly
Modem do sieci energetycznej................................................14
Tester kabli UTP.............................................................................21
Programowany 4-kana艂owy komparator/woltomierz............25
Karta d藕wi臋kowa z interfejsem USB...........................................31
Konwerter sygna艂贸w wyj艣ciowych obrotowych
enkoder贸w opisany w VHDL......................................................35
Audiofilski przetwornik C/A audio, cze艣膰 2..............................39
Domowy aparat telefoniczny z kartq chipowq, cze艣膰 2.......43
Sterownik nap臋du CD-ROM, cze艣膰 4.......................................48
Optoizolator dla interfejsu szeregowego.................................91
Zasilacz USB..................................................................................92
Je偶yk C dla mikrokontroler贸w 6051. cz臋艣膰 贸..............................fOl
Automatyka
SMS-y I PLC - wysy艂anie komunikat贸w SMS
ze sterownik贸w PLC...................................................................138
Po nowemu - nowa generacja wielofunkcyjnych timer贸w i licznik贸w firmy Omron..............................................^-r........143
Podzespo艂y
System w jednym uk艂adzie - uk艂ady PSoC
firmy Cypress MicroSystems .......................................................51
Technologia przestrzennego rozszerzania
pojemno艣ci pami臋ci...................................................................56
SuperChip firmy Chipcon - mikrokontroler '51 zintegrowany z transceiverem radiowym
na pasma: 315, 433, 868 i 915 MHz...........................................63
MSP430- mikrokontroler na ka偶dq potrzeb臋...........................73
Flash to nie zawsze znaczy to samo, czyli co
we Flashach piszczy?..................................................................97
>prz臋i
Oscyloskopy serii TDSl 000 i TDS2000.........................................66
Multimetr Finest 707.....................................................................78
艢wiat mikroelektroniki oczami "rysia" - system wizyjny
Yision Lynx....................................................................................82
Zestaw ewaluacyjnyPICDEM MSC1.........................................84
^Projekty akademickie ^^^^^^^^^^^^^^^1
Autonomiczny Robot Mobilny...................................................58
Projekty Czytelnik贸w]
Nie-mikroprocesorowy programowany timer-generator .... 105
Z kraju i ze 艣wiata........................................................127
Biblioteka EP.
Kramik+Rynek..............................................................107
Listy....................................................橳"T"橳!櫃橳!^1H
Ekspresowy Informator Elektroniczny.....................1231
Wykaz reklamodawc贸w............................................1261
7
PODZESPO艁Y
juper hip firmy CMpcon
Fani mikrokontroler贸w '51 otrzymali w ostatnich dniach wrze艣nia niezwyk艂y prezent: opracowany przez in偶ynier贸w z firmy Chipcon szybki, bardzo bogato wyposa偶ony w peryferie mikrokontroler Flash zintegrowany z nowoczesnym transceiverem radiowym na wszystkie popularne pasma ISM (Industrial, Scientific, Medical)!SB.D (Short Rang臋 Device). Tego jeszcze nie by艂o!
ikrokontroler '51 zintegrowany z transceiverem radiowym na pasma: 315, 433, 868 i 915 MHz
przystosowane do pracy w pas- t贸w zewn臋trznych i wysok膮 szyb-
mach: 315, 433, 868 i 915 MHz ko艣ci膮 transmisji danych (nawet
(ISM/SRD), kt贸re charakteryzuj膮 do 76,8 kbd).
si臋 nowoczesn膮 budow膮 umo偶li- Najnowszy produkt Chipcona,
wiaj膮c膮 u偶ycie niewielu elemen- nosz膮cy nazw臋 CC1010, to uk艂ad,
Chipcon do艂膮czy艂 do grona firm oferuj膮cych awangardowe uk艂ady typu SoC (System-on-a-Chip). Dotychczas typowymi produktami tej firmy by艂y transceivery radiowe
Podstawowe parametry uk艂adu CC1O1O
Ca艂ego uk艂adu
/ zakres Temperatur pracy -40 +85癈, v^ napi臋cie zasilania 2,7 3,6V, /obudowa TOFP64 Tor radiowy
/ zakres cz臋stotliwo艣ci pracy 300MHz 1GHz,
/ rnoc wyj艣ciowa -20 +10dBm,
/ czu艂o艣膰 -107dBm,
/ maksymalna szybko艣膰 transmisji danych 76,8 kbd
Mikrokontroler
/ udoskonalony rdze艅 8051 (szybszy ok 2,5 razaod uk艂adu standardowego),
/ maksymalna cz臋stotliwo艣膰 Taktowania 24 MHz,
/ 32 kB pami臋ci programu Typu Flash z mo偶liwo艣ci膮 programowaniaw sysTemie,
/pami臋膰 RAM o pojemno艣ci 2 kB + 128 B pami臋ci SFR,
/ wbudowane peryferie 3-kanalowy przetwor-mkA/C o rozdzielczo艣ci 10 biT贸wi cz臋sToTh-wo艣ci pr贸bkowania do 23 kHz, 4 programowane Timeryz mozhwo艣ci膮skonligurowama ich jako dwa bloki PWM, 2 interfejsy UART, sprz臋towy SPI (Master), watchdog, zegar czasu rzeczywistego,
/ wbudowany blok kryptograficzny DES oraz 1-bitowy generator liczb losowych,
/ 26 programowanych linii wej艣cia-wyj艣cia
mpimnufala I/D (Gmanl purpua ar altamita nndnu
Elektronika Praktyczna 11/2002
63
PODZESPO艁Y
Rys. 2
w kt贸rym w jednej strukturze p贸艂przewodnikowej zintegrowano kompletny, "elementooszcz臋dny" transceiver radiowy oraz szybki mikrokontroler z rodziny '51 z wieloma peryferiami (m.in. 3-kana艂owy przetwornik A/C o rozdzielczo艣ci 10 bit贸w, interfejs SPI, dwa UART-y, zegar czasu rzeczywistego i -niespotykany w podobnych systemach - blok kryptograficzny DES). Schemat blokowy uk艂adu CC1010 przedstawiono na rys. 1.
Tor radiowy w CC1010 jest podobny do toru stosowanego w znanym wcze艣niej uk艂adzie CC1000 (prezentowali艣my go m.in. w EP 1/2002 i 5/2002), natomiast rdze艅 mikrokontrolera '51 zosta艂 przez firm臋 Chipcon znacznie zmodyfikowany w stosunku do standardowego. Dzi臋ki zmniejszeniu liczby takt贸w niezb臋dnych do wykonania rozkaz贸w, szybko艣膰 wykonywania programu przez mikrokontroler jest o ok. 2,5 raza wi臋ksza ni偶 w przypadku klasycznych 13-taktowych rdzeni. Zapewnia to relatywnie
Chipcon
du偶膮 wydajno艣膰 obliczeniow膮, poniewa偶 maksymalna cz臋stotliwo艣膰 taktowania wynosi a偶 24 MHz. Rdze艅 mikrokontrolera wyposa偶ono tak偶e w podw贸jny wska藕nik danych, o kt贸ry s膮 wzbogacane wszystkie wsp贸艂czesne mikrokon-trolery '51.
W stosunku do realizacji "dyskretnej" (tzn. z oddzielnych uk艂ad贸w 8051 i CC1000), znacznie zmniejszy艂a si臋 liczba element贸w zewn臋trznych niezb臋dnych do prawid艂owej pracy uk艂adu. Dotyczy to szczeg贸lnie toru radiowego, kt贸rego zewn臋trzne "otoczenie"
Do grupy uk艂ad贸w SoC zaliczane s膮
obecnie wszystkie uk艂ady, w kt贸rych
zintegrowano w jednej strukturze bloki
funkcjonalne dost臋pne dotychczas w postaci
oddzielnych uk艂ad贸w.
wCClOlO ograniczono do minimum. Mo偶na to zauwa偶y膰 na schemacie aplikacyjnym tego uk艂adu (rys. 2).
CC1010 - tor radiowy
Jak wspomniano, zar贸wno tor radiowy w uk艂adzie CC1010, jak i spos贸b jego programowania s膮 praktycznie identyczne jak w CC1000, przy czym interfejs szeregowy s艂u偶膮cy do zapisu i odczy-
tu danych konfiguracyjnych zast膮piono zespo艂em rejestr贸w ulokowanych w pami臋ci SFR mikrokontrolera. Dzi臋ki temu konfiguracja toru radiowego sprowadza si臋 do prostych operacji i nie wymaga stosowania do tego celu specjalnie wydzielonego interfejsu. Niestety, producentowi nie uda艂o si臋 unikn膮膰 drobnej, ale jednak wady (charakterystyczne tak偶e dla rynkowych konkurent贸w), polegaj膮cej na konieczno艣ci zastosowania co najmniej trzech element贸w precyzyjnych: kwarcu stabilizuj膮cego cz臋stotliwo艣膰 taktowania rdzenia mikrokontrolera (o dok艂adno艣ci lepszej ni偶 膮50 ppm), cewki ustalaj膮cej cz臋stotliwo艣膰 drga艅 wewn臋trznego VCO (Vo!tage Controlled OsciUator) - maksymalna tolerancja 膮2%, precyzyjny (膮1%) musi by膰 tak偶e rezystor ustalaj膮cy punkty pracy niekt贸rych fragment贸w toru radiowego.
Konfigurowanie transceivera u艂atwia bezp艂atne oprogramowanie SmartRF Studio udost臋pnione przez firm臋 Chipcon, kt贸rego mo偶liwo艣ci opisali艣my w EPl/02.
CC1010 - blaski mikrokontrolera
O ile rdze艅 mikrokontrolera i wi臋kszo艣膰 modu艂贸w peryferyjnych trudno zaliczy膰 do nowatorskich, to trzy modu艂y bardzo rzadko spotykane w rynkowych opracowaniach (tzn. blok kryptograficzny DES, generator liczb losowych i interfejs debugera in-sys-tem) powoduj膮, 偶e CC1010 jest niezwykle atrakcyjny w aplikacjach, w kt贸rych istotne jest bezpiecze艅stwo przesy艂anych danych i 艂atwo艣膰 diagnozowania stanu systemu podczas uruchamiania programu. Generator liczb losowych (w rzeczywisto艣ci jest to generator bit贸w losowych, kt贸re mog膮 by膰 sk艂adane w wielobitowe liczby) s艂u偶y do generowania kluczy stosowanych do szyfrowania/deszyfrowania (o d艂ugo艣ci 56 bit贸w). Poniewa偶 jako艣膰 szyfrowania jest zale偶na od losowo艣ci kluczy, producent zbudowa艂 generator liczb losowych w oparciu o wzmocnione szumy z toru radiowego. Zgodnie z informacjami zawartymi w dokumentacji uk艂adu CC1010, minimalny czas akwizycji pojedynczego bitu
64
Elektronika Praktyczna 11/2002
PODZESPO艁Y
nie powinien by膰 kr贸tszy ni偶 10 jis i nie d艂u偶szy ni偶 1 s. Poza tym zakresem zmienia si臋 niekorzystnie rozk艂ad uzyskiwanych liczb, co zmniejsza skuteczno艣膰 szyfrowania. Za pomoc膮 DES-a zastosowanego w CC1010 mo偶na szyfrowa膰/deszyfrowa膰 bloki danych o d艂ugo艣ci 1...256 bajt贸w. W przypadku konieczno艣ci zwi臋kszenia stopnia bezpiecze艅stwa przesy艂anych danych mo偶na zastosowa膰 algorytm kryptograficzny 3-DES, kt贸ry wymaga zastosowania trzech r贸偶nych kluczy o d艂ugo艣ci 56 bit贸w ka偶dy i trzykrotnego szyfrowania/ deszyfrowania ka偶dego bloku danych.
Bardzo przydatnym wyposa偶eniem podczas uruchamiania systemu z uk艂adem CC1010 jest wbudowany w niego interfejs ICD (In-Cir-cuit-Debugging) przystosowany do bezpo艣redniej wsp贸艂pracy z pakietem IDE firmy Keil (|iVision 2).
Wymaga艂o to rozszerzenia listy instrukcji obs艂ugiwanych przez rdze艅 mikrokontrolera o polecenie TRAP, kt贸rego kod jest interpretowany przez klasyczne mikrokontrolery '51 jako NOP.
Uk艂ad CCI 010 jest przyk艂adem nowoczesnego uk艂adu SoC (System-on-a-Chtp): w pojedynczej strukturze krzemowej zintegrowano szybki mikrokontroler '51 z kompletnym transceiverem radiowym.
Podsumowanie
Wi臋kszo艣膰 Czytelnik贸w, zw艂aszcza tych, kt贸rzy stosuj膮 w swoich opracowaniach mikrokontrolery '51, z pewno艣ci膮 zgodzi si臋 z moj膮 opini膮: CC1010 jest niezwykle atrakcyjn膮 propozycj膮 dla wszystkich konstruktor贸w projektuj膮cych systemy transmisji danych w pasmach ISM/SRD. Po艂膮czenie w jednej, niewielkiej obudowie bogato wyposa偶onego mikrokontrolera z transceiverem ra-
diowym jest pomys艂em zgodnym z nowoczesnymi trendami w elektronice i zapewnia ograniczenie poboru mocy (w skrajnym przypadku pob贸r pr膮du przez uk艂ad wynosi maks. 40 mA), co ma ogromne znaczenie w aplikacjach zasilanych bateryj-nie. Po raz pierwszy te偶 konstruktorzy maj膮 dost臋p do sprz臋towego modu艂u kryptograficznego DES z generatorem liczb losowych, a wszystko w cenie bardzo zbli偶onej do ceny standardowego mikrokontrolera.
Gor膮co polecam! Andrzej Gawryluk, AVT
Dodatkowe informacje
Dystrybutorem firmy Chipcon w Polsce jest SoyterComponents,tel. (22) 722-06-85, fax: (22) 722-05-50, www.soyter.com.pl.
Dodatkowe informacje oraz programy narz臋dziowe dla uktadu CC1010 publikujemy na ptycie CD-EP11/2002B w katalogu \chipcon_soc.
Elektronika Praktyczna 11/2002
65
SPRZ臉T
Co mo偶na obecnie kupi膰 za 5000 z艂? Jak wierny z przemy艣le艅 doktora Judyrna, to co dla jednych jest sufitem, dla innych zaledwie pod艂og膮. Mo偶e wi臋c na niekt贸rych Czytelnikach moje przemy艣lenia nie zrobi膮 wi臋kszego wra偶enia, innych za艣 sk艂oni膮 do wniosk贸w czy aby nie mierz臋 za wysoko. Pokusz臋 si臋 jednak o wymienienie kilku rzeczy osi膮galnych przy portfelu o "grubo艣ci" 5000 z艂. Entuzja艣ci sportu, do jakich si臋 zaliczam, pomy艣leliby z pewno艣ci膮 o rowerze, o kt贸rym fachowcy powiedz膮 - "dobry", czy o sprz臋cie do nurkowania lub desce win-dsurfingowej. Za t臋 kwot臋 mo偶na wykupi膰 tak偶e kilkudniow膮 wycieczk臋 na safari, np. do Kenii. Poniewa偶 obecnie urz膮dzam mieszkanie, wymieni臋 r贸wnie偶 wyposa偶enia pokoju wypoczynkowego, skromnej kuchni, 艂azienki, ca艂kiem przyzwoity system audio lub wideo. Samochodem - "wyzwaniem" za nieca艂e 5000 z艂 - ju偶 je藕dzi艂em, wyciskaj膮c z niego po remontach ok. 23 KM. T臋 przygod臋 mam ju偶 za sob膮 i bardzo si臋 z tego ciesz臋. To prawdopodobnie wszystkie og贸lnie dost臋pne dobra za t臋 kwot臋.
Za艂贸偶my wi臋c, 偶e 贸w przeci臋tny 艣miertelnik jest elektronikiem projektuj膮cym uk艂ady lub pracuj膮cym w serwisie i marzy o nowoczesnej aparaturze,
GO Q Q ccc
y serii
Tektronix
Kiedy za oknem temperatura si臋ga 35癈, a s艂o艅ce zach臋ca do popracowania nad opalenizn膮, to ta wakacyjna atmosfera wp艂ywa r贸wnie偶 na bran偶臋 pomiarow膮. W tym wakacyjnym nastroju pozwo艂臋 sobie opowiedzie膰 nieco bardziej swobodnie o nowo艣ciach wprowadzonych ostatnio przez firm臋 Toktronix.
takiej jak dobrej klasy oscyloskop czy analizator widma, dzi臋ki kt贸rej m贸g艂by poprawi膰 efektywno艣膰 swoich dzia艂a艅. Nieraz s艂yszeli艣my, 偶e koszty takiej aparatury s膮 na tyle wysokie, i偶 nie pozostaje nic innego, jak pracowa膰 dalej, szukaj膮c po omacku.
Rewolucjne zmiany w elektronice cyfrowej lat 90. przybli偶y艂y nieznacznie bardziej zaawansowan膮 aparatur臋 zar贸wno konstruktorom, jak i serwisom. A偶 dziw, 偶e osi膮gni臋cia lat 80. i 90. owocuj膮ce cechami u偶ytkowymi i funkcjami w klasycznych oscyloskopach cyfrowych s膮 niejednokrotnie doceniane dopiero teraz. Tak jest, o zgrozo, nawet w specjalistycznej prasie fachowej. Post臋p wymusza korzystanie z narz臋dzi o znacznie wi臋kszych mo偶liwo艣ciach. Szybko艣膰 dzia艂ania uk艂ad贸w elektronicznych stale wzrasta, zwykle wymaga si臋
jednocze艣nie analizy czasowej, przebieg贸w widmowych oraz obr贸bki matematycznej wynik贸w pomiar贸w i pracy w systemach pomiarowych sterowanych komputerowo. Kompromisy, si艂膮 rzeczy, s膮 wi臋c konieczne. Rozpatruj膮c tak podstawowy dla ka偶dego elektronika przyrz膮d, jakim jest oscyloskop, kompromisowym i tanim rozwi膮zaniem jest stosowanie kart przetwornikowych. Jednak dla przyrz膮d贸w autonomicznych najni偶szego sektora cenowego zauwa偶amy "balansowanie" pomi臋dzy poszczeg贸lnymi kluczowymi parametrami, tj. szybsze pr贸bkowanie, ale kosztem d艂ugo艣ci rekordu, mnogo艣膰 funkcji matematycznych kosztem parametr贸w maj膮cych wp艂yw na jako艣膰 odtworzenia sygna艂u, czy rezygnacja z rozbudowanych funkcji pomiarowych lub wyzwalaj膮cych kosztem 艂atwo艣ci i wygody obs艂ugi. Wymieniaj膮c
Elektronika Praktyczna 11/2002
SPRZ臉T
Zestawienie dost臋pnych obecnie modeli oscyloskop贸w z serii TDS1OOO i TDS2000.
TDS1002 TDS1012 TDS2002 TDS2012 TDS2014 TDS2022 TDS2024
Wy艣wietlacz Mono Mono Kolor Kolor Kolor Kolor Kolor
Liczbakanal贸w 2 2 2 2 4 2 4
Pasrno GOMHz 100 MHz GOMHz 100 MHz 100 MHz 200 MHz 200 MHz
Pr贸bkowanie 1 GS/s 2 GS/s
D艂ugo艣膰 pami臋ci 2500 punkt贸w
Zakres podstawy czasu 5 ns do 50 s/dz 2,5 ns do 50 s/dz
Autoset Standardowo we wszystkich modelach
Zewn wyzwalanie Standardowo we wszystkich modelach
FFT Standardowo we wszystkich modelach
Wyzwalanie wype艂nieniem impulsu Standardowo we wszystkich modelach
Pomiary automatyczne 11 -standardowo we wszystkich modelach
ProbeCheck Wizard Standardowo we wszystkich modelach
Odczyt cz臋stotliwo艣膰 i sygna艂u wyzwalaj膮cego Standardowo we wszystkich modelach
Modu艂 komunikacyjny Opc|a(RS232C/GPIB/Centronics)
wi臋c cechy, jakie powinien mie膰 prosty oscyloskop serwisowy, przede wszystkim stawiamy na nisk膮 cen臋., 艂atwo艣膰 u偶ytkowania, dok艂adno艣膰 odtwarzania sygna艂u, pami臋膰 (mo偶liwie jak najd艂u偶sz膮), eksport danych, automatyczne pomiary, jak najwi臋cej funkcji pomiarowych ze wskazaniem na FFT oraz rozbudowane wyzwalanie, pozwalaj膮ce na rozs膮dne gospodarowanie pami臋ci膮 danych pomiarowych. Je艣li do艂o偶y膰 do tego wygod臋 korzystania z kolorowego "wy艣wietlacza LCD, otrzymamy przyrz膮d idealny, Gdzie jednak go szuka膰?
Ci膮g艂a pogo艅 za redukcj膮 koszt贸w, przy zachowaniu wysokiej jako艣ci i bardzo dobrych parametr贸w, da艂a nieoczekiwane rezultaty. Mam tu na my艣li nowe oscyloskopy serii TDSlOOO i TDS2OOO firmy Tektronix.
Podczas opracowywania nowych oscyloskop贸w Tektronix "postawi艂" na parametry decyduj膮ce o jako艣ci pomiaru, czyli cech臋 nazwan膮 po angielsku sig-nal iniegriiy. Opisowo t艂umacz膮c, chodzi o maksymalnie wiarygodne odwzorowanie sygna艂u w przyrz膮dzie pomiaro-
wym, przy jednoczesnym zadbaniu o to, by sam pomiar fa w艂a艣ciwie parametry przyrz膮du) nie wp艂ywa艂 na kszta艂t sygna艂u i dzia艂anie badanych uk艂ad贸w. St膮d bardzo szybkie uk艂ady pr贸bkuj膮ce, interpolatory wysokich rz臋d贸w oraz stabilne uk艂ady podstawy czasu minimalizuj膮ce b艂臋dy cz臋stotliwo艣ciowe, p艂askie charakterystyki w pa艣mie u偶ytecznym i w ko艅cu szereg akcesori贸w s艂u偶膮cych do pobierania sygna艂贸w z uk艂adu, przy minimalnym zak艂贸caniu pomiaru (wysokie impedancje i ma艂e pojemno艣ci na ko艅cu grota sondy, sondy aktywne, r贸偶nicowe, wysokonapi臋ciowe wzmacniacze pomiarowe).
W maju tego roku, za spraw膮 najnowszych oscyloskop贸w, osi膮gni臋to niewiarygodny (jak dot膮d), stosunek jako艣ci do ceny. Powsta艂 przyrz膮d, kt贸ry przy bardzo wyrafinowanych parametrach metrologicznych i bogatym wyposa偶eniu funkcjonalnym w minimalnej konfiguracji (2 kana艂y, pasmo analogowe 60 MHz, szybko艣膰 pr贸bkowania 1 Gpr贸bek/ s), zosta艂 wyceniony na mniej ni偶 5000 z艂 netto! Przyjrzyjmy si臋 bli偶ej nowym produktom.
Nowe oscyloskopy
Nowe oscyloskopy firmy Tektronix podzielono, jak ju偶 wspomnia艂em, na dwie serie: TDSlOOO i TDS2OOO. Seria TDSlOOO to propozycja najta艅szych oscyloskop贸w, z艂o偶ona z 2 modeli dwukana艂owych (TDS1OO2 i TDS1O12) z pasmami - odpowiednio - 60MHz i lOOMHz, odr贸偶niaj膮ca si臋 od TDS2OOO zastosowaniem monochromatycznego wy艣wietlacza. S膮 to odpowiedniki oscyloskop贸w znanej i uznanej serii TDS2OO, lecz, co godne podkre艣lenia, modele "nast臋pcy" s膮 od swych poprzednik贸w ta艅sze o ok. 1000 z艂 i standardowo lepiej wyposa偶one.
Funkcjonalnie, bior膮c pod uwag臋 oprogramowanie firmowe i wyposa偶enie, przyrz膮dy mi臋dzy sob膮 nie r贸偶ni膮 si臋 niczym. Uk艂on w kierunku zastosowa艅 serwisowych i projektowych to 11 pre-definiowanych pomiar贸w automatycznych, analiza FFT, wyzwalanie zmian膮 wype艂nienia impulsu lub sygna艂em TV, a tak偶e automatyczny odczyt cz臋stotliwo艣ci sygna艂u wyzwalaj膮cego. Sprz臋towo wszystkie modele, zar贸wno 2-, jak i 4-kana艂owe, wyposa偶ono w kana艂 zewn臋trznego wyzwalania. Ca艂o艣膰 zamkni臋to w lekkiej obudowie zajmuj膮cej bardzo ma艂o miejsca.
Oscyloskopy TDSlOOO i TDS2OOO wyposa偶ono w zaawansowane systemy wyzwalania, kt贸re podzielono na trzy grupy:
- wyzwalanie zboczem (narastaj膮cym lub opadaj膮cym),
- wyzwalanie sygna艂em TV,
- wyzwalanie zale偶ne od wype艂nienia impulsu mierzonego sygna艂u. System wyzwalania sygna艂em TV jest
zgodny z systemami NTSC oraz PAL/SE-CAM, a jego 藕r贸d艂em mo偶e by膰 jeden z kana艂贸w lub kana艂 zewn臋trznego wyzwalania. Synchronizacja nast臋puje przy polaryzacji normalnej b膮d藕 odwr贸conej, wszystkimi p贸艂obrazami lub liniami: p贸艂obrazem parzystym i nieparzystym lub konkretn膮 lini膮, wybieran膮 przez selektor linii. System menu nastaw automatycznych przyrz膮du (menu AUTOSET) wykrywa r贸wnie偶 sygna艂 TV, na-kierowuj膮c obs艂ug臋 menu pod k膮tem tego typu sygna艂贸w. Interesuj膮c膮 funkcj膮 jest r贸wnie偶 wyzwalanie zmienno艣ci膮 wype艂nienia impulsu, programowana jako warto艣膰 "R脫呕NA", " = ", "<", ">" z przedzia艂u 33 ns do 10 s.
艁atwo艣膰 obs艂ugi jest jedn膮 z podstawowych zalet przyrz膮d贸w serii TDSlOOO i TDS2OOO. Wszystkie wyposa偶ono w funkcj臋 AUTOSET, dopasowuj膮c膮 automatycznie nastawy do optymalnych parametr贸w wy艣wietlania. Najcz臋艣ciej u偶ywane funkcje wyprowadzono na panel czo艂owy. Tradycyjnie, jak dla aparatury Tektroniksa, klawisze menu pogrupowano w bloki: odchylania pionowego i podstawy czasu, wyzwalania i automatyki, czyni膮c przyrz膮dy bardziej przyjaznymi dla u偶ytkownik贸w oscyloskop贸w analogowych. Dodatkowo, oprogramowanie firmowe zawiera pomoc kontekstow膮, ukryt膮 w przyrz膮dzie, r贸wnie偶 aktywowan膮 naci艣ni臋ciem jednego przycisku. Ciekawostk膮, u艂atwiaj膮c膮 pomiary z zastosowaniem niestandardowych akcesori贸w, jest system Piohe Gheck Wizard, weryfikuj膮cy sprawno艣膰 dzia艂ania do艂膮czanej do oscyloskopu sondy, poprawno艣膰 nastaw i jej kompensacj臋.
W oscyloskopach serii TDS2OOO, opr贸cz ju偶 wspomnianego kolorowego wy艣wietlacza, producent zdecydowa艂 si臋 poszerzy膰 pasmo sygna艂u analogowego do 200MHz (w modelach TDS2O22
1 TDS2O24) i co za tym idzie - podniesienie cz臋stotliwo艣ci pr贸bkowania do
2 Gpr贸bek/s. Nie zmieni艂a si臋 wielko艣膰
68
Elektronika Praktyczna 11/2002
SPRZ臉T
pami臋ci, wynosz膮ca we wszystkich modelach 2500 punkt贸w pomiarowych na ka偶dy z kana艂贸w. Zachowano mo偶liwo艣膰 komunikacji z komputerem interfejsami RS232C oraz GPIE, jak r贸wnie偶 bezpo艣redniego pod艂膮czenia drukarki poprzez interfejs Centronics. Funkcje te realizuje modu艂 TDS2CMA stanowi膮cy wyposa偶enie dodatkowe nowych oscyloskop贸w.
TDS200 znakomicie sprawdzi艂 si臋 jako prosty przyrz膮d do zastosowa艅 serwisowych. Bardzo dobre parametry za przyst臋pn膮 cen臋, niezawodno艣膰, "偶ywotno艣膰" i prostota obs艂ugi przynios艂y mu uznanie r贸wnie偶 w 艣rodowiskach akademickich. Sta艂 si臋 niezb臋dnym przyrz膮dem w laboratoriach podstaw metrologii i elektroniki oraz znalaz艂 zastosowanie w bardziej zaawansowanych pomiar贸w. Obecnie Tektronix adresuje swoje najta艅sze produkty do bardziej wymagaj膮cych. Poszerzenie pasma i zwi臋kszenie cz臋stotliwo艣ci pr贸bkowania pozwalaj膮 na u偶ycie przyrz膮du do cel贸w nie tylko serwisowych, lecz r贸wnie偶 prostych zastosowa艅 projektowych elektroniki analogowej i cyfrowej. Rozszerzone wyzwalanie zwi臋ksza mo偶liwo艣ci wykrywania w uk艂adach b艂臋d贸w i anomalii dzia艂ania, podobnie jak i standardowe FFT umo偶liwiaj膮ce analiz臋 widmow膮 mierzonych sygna艂贸w.
Dla potrzeb oscyloskop贸w o pa艣mie 200MHz opracowano nowe sondy z prze艂膮czanym t艂umieniem lX/10X (P2 200) dodawane jako standardowe wyposa偶enie do wszystkich modeli z serii TDSlOOO i TDS2000. Opcjonalnie nowe przyrz膮dy mo偶na wyposa偶y膰 w wiele sond wysokonapi臋ciowych, pozwalaj膮cych zwi臋kszy膰 mo偶liwo艣ci pomiar贸w napi臋膰 ze standar-
dowych 300Vrms do nawet 20kVnns lub dokonywa膰 pomiar贸w r贸偶nicowych do l,3kV i 25MHz.
Pomimo niew膮tpliwych zalet, decyduj膮c si臋 na zakup oscyloskopu z serii TDSlOOO lub TDS2000, nale偶y pami臋ta膰, 偶e: dysponuj膮 one stosunkowo ma艂膮 pami臋ci膮 pr贸bek, maks. 4 kana艂ami pomiarowymi, rozdzielczo艣膰 pionowa wynosi 8 bit贸w, a dok艂adno艣膰 pomiaru 膮3%. Jest to przyrz膮d pracuj膮cy w czasie rzeczywistym, pr贸bkuj膮cy sygna艂 przy pojedynczym wyzwoleniu to nawet do 2 Gpr贸bek/s. Niebagatelnym atutem jest mo偶liwo艣膰 korzystania z pomiar贸w automatycznych, pomiar贸w kursorami, mo偶liwo艣ci zapisu i archiwizacji danych, integracja w systemy pomiarowe. S膮 to cechy, kt贸re sta艂y si臋 obecnie standardowymi, a kt贸rych nie znajdziemy w oscyloskopach analogowych.
Nie obni偶aj膮c jako艣ci i presti偶u marki, Tektronix zszed艂 z niezwykle wysokiego pu艂apu cenowego do poziomu zupe艂nie realnego. Krzysztof Mazur Tespol Sp.z 0.0.
Dodatkowe informacje
Artyku艂 powstat na podstawie materiat贸w dostarczonych przezfirrn臋 TESPOL Sp. z o.o., Tel. (71) 783-63-60, www.tespol.com.pl
70
Elektronika Praktyczna 11/2002
REKLAMA
^f Texas Instruments
Mikrokontrolery MSP430 s膮 oferowane od wielu
lat. Tak偶e na 艂amach EP przedstawiamy je po
raz kolejny, a pretekstem jest wdro偶enie do
produkcji mikrokontrolera w uproszczonej
wersji, kt贸ry w d艂u偶szych seriach kosztuje
mniej ni偶 0,5 USD.Opr贸cz ceny, najwi臋kszymi
atutami MSP430 s膮: bardzo ma艂y pob贸r mocy,
bogate wyposa偶enie w modu艂y peryferyjne
i wiele rodzaj贸w obud贸w.
Mikrokontroler na ka偶d膮 potrzeb臋
Rodzina procesor贸w MSP430 stale powi臋ksza si臋 i dzi艣 ju偶 liczy 50 uk艂ad贸w. Ich g艂贸wn膮, wsp贸ln膮 cech膮 jest ultraniski pob贸r mocy, wynosz膮cy w stanach u艣pienia poni偶ej 1 U.A. W wielu aplikacjach przydatna jest relatywnie du偶a wydajno艣膰 obliczeniowa, kt贸ra wynika z zastosowania 16-bitowego s艂owa danych, RlSC-owej listy instrukcji sk艂adaj膮cej si臋 z 27 polece艅 i wielu dogodnych tryb贸w adresowania. Niew膮tpliwym walorem mikrokontroler贸w MSP430 jest 艂atwo艣膰 dobrania zestawu modu艂贸w peryferyjnych do wymaga艅 aplikacji. Wraz z szybkim rdzeniem zintegrowano m.in.: wielokana艂owe przetworniki A/C o r贸偶nych sposobach przetwarzania i rozdzielczo艣ci, wewn臋trzne 藕r贸d艂o pr膮dowe dla
sensor贸w rezystancyjnych, uk艂ady UART (do dw贸ch). Dost臋pne s膮 tak偶e mikrokontrolery z wbudowanym 160-segmentowym sterownikiem LCD.
W sk艂ad rodziny MSP430 wchodz膮 zar贸wno mikrokontrolery
0 prostej budowie i zarazem najta艅sze (nawet poni偶ej 0,5$ dla du偶ych ilo艣ci), jak np. procesory MSP430xllxl (schemat blokowy zamieszczono na rys. 1), jak
1 znacznie bardziej skomplikowane
0 znacznie wi臋kszej liczbie blok贸w
1 mo偶liwo艣ci (jak np. MSP430x44x - schemat blokowy na rys. 2).
Jak wida膰, producent zastosowa艂 w MSP43 0 typowy spos贸b rozbudowy rodziny: standardowy rdze艅 jest obudowywany przez r贸偶nego rodzaju bloki peryferyjne, dzi臋ki czemu
XIN XOU
n
Bywam Clock ^ gHCLK
ST/N
t
iflMKBROW FlM艂H-128SG6B FlMh INFO 'CF:ROH 艢F: Flnh 12OSS68 RAM Powsr-or-Rust
MSP430x11x1
Rys. 1
Rj/Roac I-P24/CA1/TA2 NJ/CAO/rAI
u偶ytkownik mo偶e dobra膰 sobie dowolny ich zestaw, przystosowany do jego w艂asnych, konkretnych potrzeb.
W tab. 1 zestawiono skr贸towo informacje o wyposa偶eniu mikrokontroler贸w MSP430. Bli偶sze dane dla poszczeg贸lnych typ贸w mo偶na znale藕膰 w dokumentach dost臋pnych na stronach internetowych, kt贸rych adresy zamieszczono na ko艅cu artyku艂u.
Przygotowanie nowych projekt贸w - narz臋dzia uruchomieniowe
Jak wszystkie wsp贸艂czesne mikrokontrolery, tak偶e dla mikrokontroler贸w rodziny MSP43 0 jest dost臋pny efektywny zestaw narz臋dzi uruchomieniowych z kompilatorami j臋zyka C oraz ekonomicznymi modu艂ami uruchomieniowo-testowymi MSP-FET430xxx (xxx zale偶y od typu procesora, do kt贸rego jest przeznaczony modu艂). Gama narz臋dzi uruchomieniowych oraz ich dostawc贸w stale wzrasta. Konstruktorzy procesor贸w przyj臋li, 偶e ca艂e zasoby pami臋ci b臋d膮 umieszczone we wn臋trzu uk艂adu. Dzi臋ki takiemu podej艣ciu, uk艂ady w zale偶no艣ci od typu obudowy dysponuj膮 znaczn膮 liczb膮 wyprowadze艅 dla uk艂ad贸w peryferyjnych.
Pami臋膰 Flash, w kt贸r膮 wyposa偶ane s膮 wszystkie wsp贸艂czesne mikrokontrolery, mo偶e by膰 programowana na kilka sposob贸w z u偶yciem wymienionych powy偶ej narz臋dzi oraz bardzo prostego i taniego zestawu 艂aduj膮cego. Dzi臋ki takiej koncepcji, u偶ytkownik dostaje do dyspozycji -przy minimalnych nak艂adach (kilkuset z艂otych) - bardzo rozs膮dny zestaw narz臋dzi pozwalaj膮cy na
Elektronika Praktyczna 10/2002
73
REKLAMA
Tab. 1. Por贸wnanie parametr贸w mikrokontroler贸w z rodziny MSP430
Ukfad OTP Flash ROM RAM Vcc [V] Segm. LCD Watch-dog INT Inp. Timer 16 li CC -reg. USART MPY B.zab. pr贸g. L. port贸w Comp An. ADC [bit] Anal. MPX Obudowy
MSP430C111 2kB 128B 2,5-5,5 - + 15 1 3 - - - 14 + - - 20SOWB
MSP430F1101 1kB" 128B 1,8-3,6 - + 15 1 3 - - + 14 + - - 20SOWB, TSSOP
MSP430F1111 2kB" 128B 1,8-3,6 - + 15 1 3 - - + 14 + - - 20SOWB, TSSOP
MSP430C1111 2kB 128B 1,8-3,6 - + 15 1 3 - - - 14 + - - 20SOWB, TSSOP
MSP430P112" 4kB 256B 2,5-5,5 - + 15 1 3 - - + 14 + - - 20SOWB
MSP430C112 4kB 256B 2,5-5,5 - + 15 1 3 - - - 14 + - - 20SOWB
MSP430C1121 4kB 256B 1,8-3,6 - + 15 1 3 - - - 14 + - - 20SOWB, TSSOP
MSP430F1121 4kB" 256B 1,8-3,6 - + 15 1 3 - - + 14 + - - 20SOWB, TSSOP
MSP430F1122 4kB" 256B 1,8-3,6 - + 15 1 3 - - + 14 + 10 8 20SOWB
MSP430F1132 8kB" 256B 1,8-3,6 - + 15 1 3 - - + 14 + 10 8 20SOWB
MSP430F122 4kB" 256B 1,8-3,6 - + 15 1 3 1 - + 22 + - - 28SOWB
MSP430F1222 4kB" 256B 1,8-3,6 - + 15 1 3 1 - + 22 + 10 8 28SOWB
MSP430F123 8kB" 256B 1,8-3,6 - + 15 1 3 1 - + 22 + - - 28SOWB
MSP430F1232 8kB" 256B 1,8-3,6 - + 15 1 3 1 - + 22 + 10 8 28SOWB
MSP430F133 8kB" 256B 1,8-3,6 - + 17 2 6 1 - + 48 + 12 8 64OFP
MSP430F1331 8kB" 256B 1,8-3,6 - + 17 2 6 1 - + 48 + - - 64OFP
MSP430F135 16kB" 512B 1,8-3,6 - + 17 2 6 1 - + 48 + 12 8 64OFP
MSP430F1351 16kB" 512B 1,8-3,6 - + 17 2 6 1 - + 48 + - - 64OFP
MSP430F147 32kB" 1kB 1,8-3,6 - + 17 2 10 2 + + 48 + 12 8 64OFP
MSP430F148 48kB" 2kB 1,8-3,6 - + 17 2 10 2 + + 48 + 12 8 64OFP
MSP430F149 60kB" 2kB 1,8-3,6 - + 17 2 10 2 + + 48 + 12 8 64OFP
MSP430C311S 2kB 128B 2,5-5,5 64 + 7 - S/W - - 11 + - - 48SSOP
MSP430C312 4kB 256B 2,5-5,5 92 + 9 - S/W - - 14 + - - 56SSOP
MSP430C313 8kB 256B 2,5-5,5 92 + 9 - S/W - - 14 + - - 56SSOP
MSP430C314 12kB 512B 2,5-5,5 92 + 9 - S/W - - 14 + - - 56SSOP
MSP430C315 16kB 512B 2,5-5,5 92 + 9 - s/w - - 14 + - - 56SSOP
MSP430P315S"" 16kB 512B 22,5-5,5 64 + 9 - s/w - + 11 + - - 48SSOP
MSP430P315"" 16kB 512B 2,5-5,5 92 + 9 - s/w - + 14 + - - 56SSOP
MSP430C323 8kB 256B 2,7-5,5 84 + 9 - s/w - - 14 + 14 6 64OFP, PLCC
MSP430C325 16kB 512B 2,7-5.5 84 + 9 - s/w - - 14 + 14 6 64OFP, PLCC
MSP430P325A"" 16kB 512B 2,7-5,5 84 + 9 - s/w - + 14 + 14 6 64OFP, PLCC
MSP430C336 24kB 1kB 2,5-5,5 120 + 25 1 5 1 + - 46 + - - 100 QFP
MSP430C337 32kB 1kB 2,5-5,5 120 + 25 1 5 1 + - 46 + - - 100 QFP
MSP430P337A"" 32kB 1kB 2,5-5,5 120 + 25 1 5 1 + + 46 + - - 100 QFP
MSP430F412 4kB" 256B 1,8-3,6 96 + 17 1 3 s/w - + 48 + - - 64OFP
MSP430F413 8kB" 256B 1,8-3,6 96 + 17 1 3 s/w - + 48 + - - 64OFP
MSP430F435 16kB" 512B 1,8-3,6 <160 + 17 2" 6 1 - + 48 + 12 8 80OFP, 100OFP
MSP430F436 24kB" 1kB 1,8-3,6 <160 + 17 2" 6 1 - + 48 + 12 8 80OFP, 100OFP
MSP430F437 32kB" 1kB 1,8-3,6 <160 + 17 2" 6 1 - + 48 + 12 8 80OFP, 100OFP
MSP430F447 32kB" 1kB 1,8-3,6 <160 + 17 2" 10 2 - + 48 + 12 8 100OFP
MSP430F448 48kB" 2kB 1,8-3,6 <160 + 17 2" 10 2 - + 48 + 12 8 100OFP
MSP430F449 60kB" 2kB 1,8-3,6 <160 + 17 2" 10 2 - + 48 + 12 8 100OFP
"+dodatkowe 128B pami臋ci Flash i BootROM " + dodatkowe 256B pami臋ci Flash i BootROM "" istniej膮 wersje EPROM kasowane UV dla uk艂ad贸w prototypowych PMS430E112, PMS430E315, PMS430E325A, PMS430E337A
74
Elektronika Praktyczna 10/2002
REKLAMA
XIN X0UT7TCLK
__I__L_______L__J___I___i___L____L-膮--L__i__
rtt
DVCC DVSS AVCC AV3S RSTrt*ll
Rys. 2
1HSP430x44lT
przygotowanie w艂asnego projektu nawet z zastosowaniem j臋zyka C. Dla przeprowadzenia pr贸b mo偶na si臋 zaopatrzy膰 w pojedyncze egzemplarze mniejszych procesor贸w za po艣rednictwem internetowego programu dostawy bezp艂atnych pr贸bek.
Drobny przyk艂ad zastosowania
U偶yteczno艣膰 omawianych procesor贸w mo偶e zaprezentowa膰 najprostsze jego zastosowanie, np. w mierniku temperatury wyposa偶onym we wska藕nik LCD albo przekazuj膮cym wyniki pomiar贸w poprzez UART do nadrz臋dnego komputera (np. PC). Jak wida膰 na uproszczonym schemacie (rys. 3), uk艂ad do pomiaru temperatury z wykorzystaniem mikrokontrolera z rodziny MSP430 wymaga minimalnej liczby zewn臋trznych element贸w: rezystan-cyjnego przetwornika temperatury t0, rezystora i kondensatora. Do przetwarzania wykorzystany jest dost臋pny we wszystkich procesorach rodziny komparator pozwalaj膮cy na u偶ycie wewn臋trznego timera
do pomiaru czasu roz艂adowania kondensatora. Pozosta艂e elementy uk艂adu s膮 zale偶ne od przyj臋tej koncepcji realizacji miernika, sposobu ekspozycji wynik贸w, komunikacji i dodatkowych zada艅. Tak skonstruowany przyrz膮d mo偶e pracowa膰 przy zasilaniu z typowej trzywolto-wej baterii nawet kilka lat.
Ze wzgl臋du na znikom膮 liczb臋 zewn臋trznych element贸w pr贸bny uk艂ad mo偶na sprawdza膰, pos艂uguj膮c si臋 pakietami FET proponowanymi przez producenta albo dost臋pnymi na rynku modu艂ami zawieraj膮cymi procesor z minimaln膮 liczb膮 element贸w uzupe艂niaj膮cych i z mo偶liwo艣ci膮 pod艂膮czenia do komputera PC. Dzi臋ki temu mo偶liwe jest zaprogramowanie wewn臋trznej pami臋ci i sprawdzanie dzia艂ania programu. Dok艂adniejszemu opisowi uk艂adu termometru i sposobowi jego sprawdzania za pomoc膮 testowego modu艂u po艣wi臋cony zostanie artyku艂 w jednym z kolejnych numer贸w EP. Krzysztof Kardach, Contrans Tl
Dodatkowe informacje
Dodatkowe informacje mo偶na znale藕膰 w Inter-necie pod adresami:
- o mikrokontrolerach MSP430: http://focus.ti.-com/docs/browse/productnavigation.jhtml?-familyld=342&tfsection=products&templateld=1,
- o narz臋dziach: http://www.iar.com/Products?-name=EW430,
- bezp艂atne narz臋dzia programowe: http:// mspgcc.sourceforge.net,
- inne narz臋dzia i programatory: http://www.-softbaugh.com/OuterBootLoad.shtml.
76
Elektronika Praktyczna 10/2002
SPRZ臉T
Kiedy艣 popularne by艂y mu艂timetry "Lavo",
p贸藕niej nie艣miertelne UM-kL Nieliczni
szcz臋艣liwcy byli posiadaczami V-640,
ale to by艂y ju偶 mierniki z innego 艣wiata
i nie ka偶dy m贸g艂 sobie na nie pozwoli膰.
P贸藕niej Metex zdominowa艂
i "ucyfrowi艂" krajowy 艣wiat
pomiarowy. Dzisiaj trudno jest
wyliczy膰 producent贸w i typy
dost臋pnych w handlu multimetr贸w.
Przed zakupem warto
wi臋c dobrze
przejrze膰 oferty,
aby nie
przep艂a caj膮c,
zaspokoi膰 swoje
potrzeby-
Multimetr
Sam mam wys艂u偶onego Metexa i ju偶 od d艂u偶szego czasu zastanawiam si臋 nad jego wymian膮, bo brakuje mu kilku istotnych "wynalazk贸w", jakie stosuje si臋 w aktualnie produkowanych przyrz膮dach. Ale dop贸ki nie spadnie ze sto艂u, dot膮d chyba b臋dzie mi s艂u偶y艂.
Hmm... musz臋 to gruntownie przemy艣le膰. By膰 mo偶e decyzj臋 u艂atwi mi wynik test贸w kolejnego przyrz膮du, kt贸ry dotar艂 do redakcji w celu przetestowania. Miernik ten wyprodukowa艂a fabryka Fine Instru-
ments Corporation, kt贸ra w za艂膮czonej instrukcji, po znaku obok logo zamie艣ci艂a dopisek, 偶e jest 艣wiatowym
True RMS niegdy艣
Dawniej mierniki mierzy艂y warto艣膰 szczytow膮 sygna艂u (prostowanie i filtrowanie dol no przepustowe), a nast臋pnie przy za艂o偶eniu, 偶e jest to sygna艂 sinusoidalny, "przelicza艂y" warto艣膰 szczytow膮 na skuteczn膮- Je艣li kszta艂t mierzonego sygna艂u by艂 inny ni偶 sinusoidalny, to wy艣wietlany wynik r贸偶ni艂 si臋 od prawid艂owej warto艣ci.
liderem w testach i pomiarach. Niech i tak b臋dzie, chocia偶 wol臋, gdy tego typu opinie wypowiadaj膮 klienci.
W przyrz膮dzie uwag臋 przykuwa du偶y wy艣wietlacz LCD, kt贸ry przez sekund臋 po w艂膮czeniu przypomina, 偶e wyposa偶ony jest w pod艣wietlanie. Na ekranie o wymiarach 64x46 mm rozmieszczono szereg p贸l wska藕nikowych, wy艣wietlaj膮cych istotne informacje zale偶ne od ustawionych funkcji przyrz膮du.
Wynik pomiaru jest wy艣wietlany na pi臋ciu cyfrach. Maksymalne wskazanie to 50000. Cyfry maj膮 wysoko艣膰 15 mm. Nad nimi widoczne jest mniejsze, 4-cyfrowe pole, w kt贸rym
78
Elektronika Praktyczna 11/2002
SPRZ臉T
wy艣wietlana jest warto艣膰 dodatkowego parametru zwi膮zanego z aktualnie mierzon膮 wielko艣ci膮 (maksymalnie do 5000). Na przyk艂ad, podczas pomiaru warto艣ci skutecznej napi臋cia zmiennego wy艣wietlana jest cz臋stotliwo艣膰 mierzonego sygna艂u. Pod wy艣wietlaczem cyfrowym umieszczono bargraf, kt贸ry w tym modelu ma 25 segment贸w. Wy艣wietlacz, mimo 偶e na pierwszy rzut oka robi dobre wra偶enie, ma jednak jedn膮 wad臋. Wed艂ug mojej oceny, zastosowano w nim zbyt ciemne t艂o, co znacznie zmniejsza kontrast. Mo偶liwo艣膰 w艂膮czenia pod艣wietlenia nie rozwi膮zuje problemu, gdy偶 znacz膮co wp艂ywa na zu偶ycie baterii (4-krotnie skraca ich 偶ywotno艣膰).
Funkcje pomiarowe w modelu 707 wybierane s膮 prze艂膮cznikiem obrotowym. Miernikiem mo偶na mierzy膰: napi臋cia i pr膮dy sta艂e i zmienne, cz臋stotliwo艣膰, rezystancj臋, pojemno艣膰, temperatur臋 oraz testowa膰 ci膮g艂o艣膰 po艂膮cze艅 i sprawdza膰 diody.
W wi臋kszo艣ci przypadk贸w wst臋pnie ustawiona funkcja wymaga jeszcze bardziej szczeg贸艂owego okre艣lenia. Do tego celu s艂u偶膮 cztery klawisze funkcyjne umieszczone tu偶 pod wy艣wietlaczem. Ich funkcje zmieniaj膮 si臋 w zale偶no艣ci od sytuacji pomiarowej i dlatego u do艂u ekranu pojawiaj膮 si臋 odpowiednie, kontekstowe opisy. Miernik mierzy prawdziw膮 warto艣膰 skuteczn膮 (tnie RMS), co dzisiaj mo偶e ju偶 nie dziwi, ale kiedy艣 by艂y z tym spore problemy. Przypomn臋 wi臋c, 偶e dawniej mierniki tak naprawd臋 mierzy艂y warto艣膰 szczytow膮 sygna艂u (prostowanie i filtrowanie dolnoprzepusto-we), a nast臋pnie przy za艂o偶eniu, 偶e jest to sygna艂 sinusoidalny, "przelicza艂y" warto艣膰 szczytow膮 na skuteczn膮. Je艣li kszta艂t mierzonego sygna艂u by艂 inny ni偶 sinusoidalny, to wy艣wietlany wynik r贸偶ni艂 si臋 od prawdziwej warto艣ci. Znaj膮c wsp贸艂czynnik kszta艂tu badanego przebiegu, mo偶na by艂o prawdziw膮 warto艣膰 skuteczn膮 obliczy膰 r臋cznie. Problemy zaczyna艂y si臋, gdy kszta艂t przebiegu mierzonego napi臋cia by艂 nietypowy lub nieznany. Wtedy pomiar by艂 tylko orientacyjny. Opisywany miernik radzi sobie z tym problemem niezale偶nie od kszta艂tu i sk艂adowej sta艂ej mierzonego napi臋cia lub pr膮du. Wynik jest zawsze prawid艂owy.
Mierz膮c napi臋cia zmienne mo偶na na dodatkowym wy艣wietlaczu wy艣wietli膰 stosunek bie偶膮cej warto艣ci napi臋cia do warto艣ci napi臋cia odniesienia. Wynik jest wtedy podawany
w jednostkach dB lub dBm. Wybieraj膮c dB, domy艣ln膮 warto艣ci膮 napi臋cia referencyjnego jest 1 V. W przypadku dBm, jest to takie napi臋cie, kt贸re powoduje wydzielenie 1 mW mocy na rezystancji odniesienia r贸wnej 600 L1 W obydwu przypadkach warto艣ci referencyjne mog膮 by膰 zmieniane przez u偶ytkownika. Podczas pomiaru cz臋stotliwo艣ci istnieje mo偶liwo艣膰 ustawienia na dodatkowym wy艣wietlaczu warto艣ci wsp贸艂czynnika wype艂nienia lub czasu trwania impulsu, kt贸rego pocz膮tek okre艣la si臋 od narastaj膮cego lub opadaj膮cego zbocza. Czasami, podczas prac warsztatowych, trzeba okre艣li膰 temperatur臋 w badanym urz膮dzeniu.
dB a dBm
Skala logarytmiczna (decybelowa) s艂u偶y do okre艣lania wzgl臋dnych warto艣ci r贸偶nych wielko艣ci (napi臋cia, nat臋偶enia pr膮du itp.). Cz臋sto jest wykorzystywana do okre艣lania wzgl臋dnej warto艣ci mocy zgodnie ze wzorem:
x[db] = l(Mog10^
gdzie:
P1 - to moc wyj艣ciowa,
P2 - to moc wej艣ciowa.
W systemach w.cz. cz臋艣ciej
jest stosowana skala dBm
x[dbm] = l(Mog
10
lmW
lub
x[dbW] = 10-log
10
1W
gdzie moc 1 mW lub
1 W jest moc膮 referencyjn膮
wydzielan膮 na typowej
im pe danej i (najcz臋艣ciej
50/75/600 Q) obci膮偶enia.
W Internecie s膮 dost臋pne
kalkulatory umo偶liwiaj膮ce
przeliczanie r贸偶nych
jednostek w dB, jeden
z lepszych znajduje si臋 pod
adresem: http-.ffho-
me.att.net/~wittenberg/
ra da r/ca leu ta to rs/
dbcatc.htm.
Miernik Finest 707 umo偶liwia wykonanie odpowiedniego pomiaru, dzi臋ki wyposa偶eniu go w czujnik temperatury. Dok艂adno艣膰 w tym przypadku nie jest zbyt du偶a, bo wynosi 膮 3癈, ale najcz臋艣ciej i tak w zupe艂no艣ci wystarczy. Wynik mo偶e by膰 wy艣wietlany w stopniach Celsjusza lub Fahrenheita.
Nad prze艂膮cznikiem zakres贸w znajduje si臋 zesp贸艂 sze艣ciu klawiszy, za pomoc膮 kt贸rych uaktywnia si臋 dodatkowe funkcje miernika. Jedn膮 z nich jest wyszukiwanie minimum, maksimum lub obliczanie warto艣ci 艣redniej w serii pomiar贸w. Funkcja ta dzia艂a dla wszystkich mierzonych wielko艣ci.
Domy艣lnym trybem pracy miernika po w艂膮czeniu zasilania jest pomiar z automatycznym doborem zakres贸w. Zakres mo偶na jednak ustawi膰 wed艂ug w艂asnych potrzeb klawiszem RANG臉. Podczas pomiar贸w por贸wnawczych jest to cz臋sto bardziej praktyczne. D艂u偶sze przytrzymanie klawisza ponownie prze艂膮cza miernik w tryb automatyczny.
Interesuj膮c膮 funkcj膮 miernika jest wykrywanie kr贸tkich zak艂贸ce艅 impulsowych. W艂膮cza si臋 j膮 po naci艣ni臋ciu klawisza 1 ins PEAK. Miernik sygnalizuje "wychwycenie" szpilki napi臋ciowej lub pr膮dowej kr贸tkim sygna艂em d藕wi臋kowym, a na wy艣wietlaczu mo偶na odczyta膰 zatrza艣ni臋t膮 warto艣膰 maksymaln膮 lub minimaln膮 - zale偶nie od polaryzacji zak艂贸cenia.
Podczas wyznaczania np. charakterystyk przej艣ciowych wzmacniaczy lub filtr贸w, cz臋sto korzysta si臋 z pomiar贸w r贸偶nicowych (odchylenia warto艣ci bie偶膮cej od warto艣ci odniesienia). W mierniku Finest 707 mo偶na taki pomiar przeprowadzi膰 do艣膰 艂atwo po naci艣ni臋ciu klawisza REL D. Spowoduje to przepisanie aktualnie wskazywanej warto艣ci na dodatkowy wy艣wietlacz i jednoczesne wyzerowanie wy艣wietlacza g艂贸wnego. Wskazanie zarejestrowane podczas naciskania klawisza staje si臋 od
Elektronika Praktyczna 11/2002
79
SPRZ臉T
tego momentu warto艣ci膮 referencyjn膮, a wy艣wietlany wynik jest odchyleniem warto艣ci bie偶膮cej od przyj臋tej jako odniesienie. Pewn膮 niedogodno艣ci膮 jest to, 偶e wskazania s膮 bezwzgl臋dne, tzn. podawane w jednostkach wielko艣ci mierzonej. W podobnych pomiarach najcz臋艣ciej pos艂ugujemy si臋 logarytmiczn膮 skal膮 wzgl臋dn膮, czyli decybelami. Pomiar t膮 metod膮 jest mo偶liwy, chocia偶 mniej dogodny. Odpowiednie czynno艣ci by艂y opisane wcze艣niej. Niedogodno艣膰 polega na tym, 偶e nie da si臋 jednym klawiszem ustali膰 napi臋cia referencyjnego, trzeba wystukiwa膰 ka偶d膮 cyferk臋 oddzielnie. Gdy wynik pomiaru zachowuje si臋 nie-stabilnie, mo偶na go zamrozi膰 na wy艣wietlaczu klawiszem Ho艂d. W贸wczas, niezale偶nie od zmian mierzonej wielko艣ci, wy艣wietlacz pokazuje zatrza艣ni臋t膮 w chwili naciskania klawisza warto艣膰. Kolejne naci艣ni臋cie tego klawisza wprowadza miernik w tryb Auto Ho艂d, w kt贸rym wy艣wietlacz b臋dzie "pod膮偶a艂" za zmieniaj膮c膮 si臋 warto艣ci膮 mierzonej wielko艣ci, a ka偶dorazowe wykrycie ustabilizowania si臋 warunk贸w zostanie zasygnalizowane kr贸tkim sygna艂em d藕wi臋kowym i jednocze艣nie nowa warto艣膰 b臋dzie wpisana do wy艣wietlacza pomocniczego. Je艣li u偶ytkownik uzna, 偶e bie偶膮cy wynik pomiaru jest z jakich艣 powod贸w szczeg贸lnie wa偶ny, mo偶e go zachowa膰 w pami臋ci miernika. Kr贸tkie naci艣ni臋cie klawisza MEM spowoduje wy艣wietlenie menu z pozycjami: Stor臋, Recall i Clear. Ich znaczenia s膮 oczywiste. Aby unikn膮膰 przypadkowego skasowania pami臋ci, po wybraniu opcji Clear trzeba jeszcze potwierdzi膰 sw贸j zamiar dodatkowym naci艣ni臋ciem klawisza. D艂u偶sze przytrzymanie klawisza MEM powoduje w艂膮czenie pod艣wietlania wy艣wietlacza na czas okre艣lony w menu konfiguracyj-nym miernika. Menu to wywo艂uje si臋, gdy w chwil臋 po w艂膮czeniu przyrz膮du zostanie naci艣ni臋ty odpowiedni klawisz funkcyjny. Mo偶na w menu uaktywni膰 opcj臋 automatycznego wy艂膮czania przyrz膮du po zadanym przez u偶ytkownika czasie, ustali膰 czas pod艣wietlania lub zdecydowa膰 o u偶ywaniu sygna艂u d藕wi臋kowego. W czasie prowadzonych przeze mnie pr贸b zauwa偶y艂em, 偶e ustawiony czas pod艣wietlania obowi膮zywa艂 jednak tylko do momentu wy艂膮czenia miernika. Je艣li to nast膮pi艂o, pod艣wietlanie zawsze trwa艂o ok. 25 s. W codziennej pracy bardzo irytuj膮c膮 cech膮 miernika mo偶e by膰
Tab. 1. Dane techniczne miernika Finest 707
Wy艣wietlacz LCD podstawowy: maks. wskazanie 50000 pomocniczy: maks. wskazanie 5000 bargraf: 25-segmentowy, 40 pomiar贸w/s
Zasilanie bateria 9V, 150 godzin pracy bez pod艣wietlania
Wymiary 208x103x54 mm
Waga ok. 655 g
Pami臋膰 pomiar贸w Zakresy pomiarowe Napi臋cia DC 20 rekord贸w danych 50 mV, 500 mV, 5 V, 50 V, 500 V, 1000 V b艂膮d 0,05%+2 na wi臋kszo艣ci zakres贸w
Napi臋cia AC 500mV,5V,50V,500V, 1000V b艂膮d zale偶ny od cz臋stotliwo艣ci dla f<1 kHz 0,3%+10 na wi臋kszo艣ci zakres贸w
I mpedancja wej艣ciowa 10MLl/30pF
Pr膮dy DC 500 mA, 5 mA, 50 mA, 500 mA, 5 A, 10 A b艂膮d 0,1 %+5 na wi臋kszo艣ci zakres贸w
Pr膮dy AC 500 mA, 5 mA, 50 mA, 500 mA, 5 A, 10 A b艂膮d zale偶ny od cz臋stotliwo艣ci dla f<1 kHz 0,3%+5 na wi臋kszo艣ci zakres贸w
Rezystancja 50 n, 500 n, 5 ki艂, 50 ki艂, 500 ki艂, 5 Ma, 50 Ma b艂膮d 0,1 %+2 na wi臋kszo艣ci zakres贸w
Pojemno艣膰 5 nF, 50 nF, 500 nF, 5 nF, 50 nF, 500 nF, 5000 jaF b艂膮d od 1,0%+5 do 3,5%+5
Cz臋stotliwo艣膰 50 Hz, 500 Hz, 5 kHz, 50 kHz, 500 kHz, 5 MHz b艂膮d 0,002%+3 fmin=0,5Hz czu艂o艣膰 250mV
Wsp贸艂czynnik wype艂nienia 0,1% do 99,9% (0,5 Hz do 300 kHz) szeroko艣膰 impulsu >3ms
Temperatura -50癈 do 1300癈 (-58癋do 2372癋) dok艂adno艣膰 膮3癈 z termopar膮 typu K
to, 偶e nie zapami臋tuje on aktualnych ustawie艅 opcji.
Finest 707 wyposa偶ono w izolowany optycznie interfejs RS232C oraz okienkowy program dla komputer贸w PC (rys. 1). Za jego pomoc膮 mo偶na obserwowa膰 wyniki pomiar贸w na ekranie komputera, a tak偶e w pewnym zakresie sterowa膰 miernikiem. Dost臋pne s膮 wszystkie klawisze funkcyjne, jednak rodzaj pracy musi by膰 ustawiony r臋cznie. Obs艂uga programu jest bardzo 艂atwa. Producent uzna艂 nawet, 偶e wszystko odbywa si臋 na tyle intuicyjnie, 偶e w do艂膮czonej do miernika instrukcji nie znalaz艂o si臋 nawet s艂owo o programie. Nie jest on te偶 wyposa偶ony w system pomocy. Okno programu nie mie艣ci si臋 na ekranie przy rozdzielczo艣ci 600x800 pikseli. Trzeba wi臋c przyzwyczai膰 si臋 do u偶ywania pask贸w przewijania lub ustawi膰 rozdzielczo艣膰 karty na minimum 1024x768. Z lewej strony okna dzia艂aj膮cego programu jest widoczny wirtualny miernik, oczywi艣cie do z艂udzenia przypominaj膮cy Finesta 707, na kt贸rego wy艣wietlaczu wskazywany jest aktualny wynik pomiaru. Cz臋stotliwo艣膰 transmitowania danych do komputera mo偶e by膰 ustawiana przez u偶ytkownika. Prawa cz臋艣膰 ekranu jest przeznaczona na tabelaryczne lub graficzne zobrazowa-
nie pomiar贸w. Wyboru dokonuje si臋, "naciskaj膮c" odpowiedni膮 zak艂adk臋. Ka偶d膮 z powy偶szych form raportu mo偶na 艂atwo wydrukowa膰, gorzej jest z wyeksportowaniem danych w celu ewentualnej obr贸bki w innych programach. Mo偶na jedynie zapisa膰 je we w艂asnym firmowym formacie *.qrp.
Gdy pierwszy raz uruchomi艂em program, mia艂em wra偶enie, 偶e niemal nic w nim nie dzia艂a. Autorzy zastosowali bowiem "rze藕biony" wygl膮d napis贸w, jakiego u偶ywa si臋 najcz臋艣ciej do zasygnalizowania, 偶e dana opcja programu jest wy艂膮czona. Nie ukrywam, 偶e d艂ugo musia艂em si臋 do takiego wygl膮du ekranu przyzwyczaja膰.
No c贸偶, testy zosta艂y zako艅czone. Refleksje przedstawi艂em powy偶ej. Czy pomog艂y mi podj膮膰 decyzj臋 o zakupie nowego multimetru? Z pewno艣ci膮 tak, ale ka偶dy z Czytelnik贸w musi tak膮 decyzj臋 podj膮膰 samodzielnie. Jaros艂aw Doli艅ski, AVT jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Cena:..................................................650 zt
Przyrz膮d do test贸w udost臋pni艂a firma NDN,
www.ndn.com.pl, tel./fax: (22) 641-15-47, tel.
(22)641-61-96.
80
Elektronika Praktyczna 11/2002
SPRZ臉T
艢wiat mikroelektroniki oczami "rysia
Kocie oczy fascynuj膮, bo "艣wiec膮" w ciemno艣ciach, a zmieniaj膮ca si臋 barwa t臋cz贸wek sygnalizuje emocje drapie偶nika. No i te 藕renice - raz
w膮ziutkie szczeliny, to zn贸w przepastne studnie.
Wydaje si臋, 偶e kocie oko ma ponadprzeci臋tne zdolno艣ci adaptacyjne
pozwalaj膮ce na sprawne, skuteczne, a przy tym efektowne dzia艂anie
w ka偶dych niemal warunkach. Mo偶e w艂a艣nie dlatego firma
Vision Enginee艅ng nada艂a jednemu ze swych wiod膮cych
produkt贸w nazw臋 Lynx, czyli ry艣.
System wizyjny Yiston
Lynx jest urz膮dzeniem optoelektronicznym, stosowanym podczas monta偶u i diagnostyki monta偶u bardzo ma艂ych podzespo艂贸w elektronicznych. 艁膮czy cechy ste-reo-rnikroskopu i monitora. Dzi臋ki zaawansowanym uk艂adom optycznym uzyskano du艣e powi臋kszenia obrazu fdo xl60), kt贸ry mo艣na obserwowa膰 na ekranie o powierzchni sze艣膰dziesi膮t cztery razy wi臋kszej ni艣 ta, jak膮 oferuje standardowy okular.
Najwa偶niejsze korzy艣ci wynikaj膮ce z takiego rozwi膮zania dotycz膮 ergonomii. Operator dynaskopu Lynx ma relatywnie du艣膮 swobod臋 zmian pozycji pracy oraz spory zakres ruch贸w g艂ow膮, bez uszczerbku dla jako艣ci obserwacji. Co wi臋cej, dla prawid艂owej obs艂ugi urz膮dzenia nie jest istotne, czy nosi on okulary lub soczewki kontaktowe.
Stabilny, jasny, kontrastowy obraz o wysokiej rozdzielczo艣ci i znakomitym odwzorowaniu barw mo艣e by膰 obserwowany natychmiast po przeniesieniu wzroku z innego obszaru, bez konieczno艣ci adaptacji do odmiennych warunk贸w widzenia. Ma to ogromne znaczenie podczas kilkugodzinnej pracy.
Tw贸rcy przyrz膮du zadbali o u艂atwienia podczas przeprowadzania wszelkich czynno艣ci w obserwowanym polu roboczym. Zar贸wno odleg艂o艣膰 obiektywu od obserwowanego przedmiotu, jak i warto艣膰 po-wi臋kssenia oraz wielko艣膰 pola widzenia mog膮 by膰 dobierane i regulowane w szerokim zakresie. Spos贸b obserwacji
pozwala naturalnie zintegrowa膰 powi臋kszony obraz obiektu oraz ,,normalne" otoczenie obserwatora w jednej przestrzeni, znacz膮co poprawiaj膮c koordynacj臋 wzroko-wo-ruchow膮, tak wa艣n膮 przy przeprowadzaniu precyzyjnych operacji.
Do mierzalnych efekt贸w zwi膮zanych z cechami systemu wizyjnego Lynx mo艣na zaliczy膰: zwi臋kszenie efektywno艣ci pracy (dok艂adniejsza obserwacja i bardziej precyzyjna manipulacja w kr贸tszym czasie), poprawa komfortu pracy (mniejsze zm臋czenie, a zatem mniejszy spadek sprawno艣ci i dok艂adno艣ci), zwi臋kszenie wykrywalno艣ci usterek i wad, zwi臋kszenie niezawodno艣ci przeprowadzanych czynno艣ci (np. lutowania).
W przedstawianym urz膮dzeniu zastosowano zaawansowane rozwi膮zania techniczne. Mi臋dzy innymi pomi臋dzy obiektywem skupiaj膮cym a soczewk膮 obserwacyjn膮 znajduje si臋 rozbudowany system optyczny z bezognis-kowym uk艂adem zoorn. Sercem, ale zarazem ,,wyrafinowan膮" osobliwo艣ci膮 systemu Lynx jest tarcza wielosoczew-kowa wiruj膮ca z pr臋dko艣ci膮 3400 obrot贸w na minut臋. Ma ona 艣rednic臋 148 mm, a jej powierzchni臋 tworzy ponad 3,5 miliona dyskretnych mik-rosoczewek. To dzi臋ki niej obserwowany obraz mo艣e zajmowa膰 tak du艣膮 powierzchni臋, przy zachowaniu doskona艂ych parametr贸w: jasno艣ci, rozdzielczo艣ci, g艂臋bi ostro艣ci, jednorodno艣ci i braku zniekszta艂ce艅.
Studiuj膮c dane techniczne systemu Lynx, nabieramy przekonania o jego du艣ej elastyczno艣ci, pozwalaj膮cej na optymalne skonfigurowanie, z uwzgl臋dnieniem zar贸wno bardzo szczeg贸lnych, jak i bardzo r贸艣nych potrzeb. Przez wymian臋 soczewek obiektywu oraz tzw. mul tiplika tor贸w mo艣na uzyska膰 zmiany powi臋ksze艅 w zakresie od xl ,8 do xl60, zmiany odleg艂o艣ci roboczej mi臋dzy obiektywem a obserwowanym przedmiotem odpowiednio: od ponad 300 mm do 25 mm oraz zmiany pola widzenia w zakresie od 77 mm do 1,75 mm.
K膮t widzenia wynosi 26,4. Obiekt mo艣e by膰 obserwowany z dowolnego kierunku w poziomie, a k膮t obserwacji w odniesieniu do pionu mo艣e dochodzi膰 do 34. W艂a艣ciwe o艣wietlenie zapewnia g艂贸wne 藕r贸d艂o o mocy 150 W lub 250 W (opcja) oraz dodatkowe pod艣wietlenie platformy roboczej o mocy 20 W. Platforma, o wymiarach 100 x lOOmm, umo艣liwia p艂ynne zmiany po艂o艣enia obiektu.
Ca艂o艣膰 jest umieszczona na solidnym, stabilnym statywie gwarantuj膮cym dok艂adne ustalanie oraz sta艂o艣膰 wzajemnego po艂o艣enia powierzchni roboczej i g艂owicy. Uznanie budzi jako艣膰 materia艂贸w obudowy i estetyka wykonania.
System Lynx mo艣na wypo-sa艣y膰 w akcesoria umo艣li-wiaj膮ce dokonywanie pomiar贸w. Przewidziano tak艣e mo艣liwo艣膰 wsp贸艂pracy z aparatami fotograficznymi lub
kamerami do rejestracji obraz贸w w celu przeprowadzania analiz i oblicze艅 oraz dokumentowania i archiwizowania wykonywanych czynno艣ci b膮d藕 proces贸w.
Doskona艂e w艂a艣ciwo艣ci optyczne, wzorcowa ergonomia i du艣y zakres uzyskiwanych powi臋ksze艅 sprawiaj膮, 艣e Lynx znajduje szerokie zastosowanie w wielu dziedzinach przemys艂u (od metalurgicznego, przez elektroniczny po celulozowo-papierniczy), w o艣rodkach naukowych i ba-dawczo-rozwojowych, w medycynie, a tak艣e w serwisach. W elektronice mo艣e pomaga膰 w pracach wymagaj膮cych du艣ej precyzji wykonania lub s艂u艣y膰 do inspekcji monta艣u. Na bazie systemu Lynx mo艣na budowa膰 modu艂owe, specjalistyczne stanowiska. Przyk艂adem takiego systemu jest VS8 wyposa艣ony w du艣y st贸艂 umo艣liwiaj膮cy szybkie mocowanie p艂yt PCP oraz ich precyzyjne pozycjonowanie; mo艣na w nim zainstalowa膰 specjalny odsysacz opar贸w.
System Lynx firmy Vision Engineering, jest przeznaczony do bardzo odpowiedzialnych zastosowa艅, w dziedzinach wymagaj膮cych spe艂nienia ostrych rygor贸w jako艣ciowych.
Jego imiennik, prawdziwy ry艣, mo艣e by膰 tylko dumny. Marek Kalasi艅ski
Dodatkowe informacje
Wi臋cej informacji mo偶na uzyska膰 u przedstawiciela na Polsk臋 -wfirmie Renex, tel. (54) 231-10-05, www.renex.com.pl.
82
Elektronika Praktyczna 11/2002
SPRZ臉T
MCS-51, AVR, Z8IZ8PLUS, STG2I72, PIC1G - taka fest kolejno艣膰 najpopularniejszych
mikrokontroler贸w w艣r贸d Czytelnik贸w bior膮cych udzia艂 w naszej
ankiecie opublikowane/ w numerze EP4/2002. Przewaga
dw贸ch pierwszych wydaje si臋 by膰
niekwestionowana. Mi艂o艣nicy PIC-
贸w stanowi膮 nieco
poni偶ej 5%
on ki eto wanych,
a przecie偶 s膮 to
mikrokon trolery
naprawd臋 atrakcyjne.
Tym, kt贸rzy ich
jeszcze nie znaj膮,
proponujemy
wykonanie stosunkowo
prostego pierwszego
kroku.
PICD
ewaluacyjny
SCI
Z mikro kontrolerami, to chyba jest troch臋 tak jak ze 艣ledziami. Ja na przyk艂ad nie lubi臋 艣ledzi. Zdecydowanie wol臋 pieczony schab. Jestem ca艂kowicie o tym przekonany, tyle tylko, 偶e... jeszcze nigdy w 偶yciu nie mia艂em 艣ledzia w ustach. Gdy si臋gamy pierwszy raz po mikrokontroler, cz臋sto wybieramy go w spos贸b do艣膰 przypadkowy, w ka偶dym razie nie zawsze kierujemy si臋 parametrami, jakimi dysponuje dany typ. Wydaje mi si臋, 偶e w pewnym stopniu decyduje o tym po prostu moda. Do z艂o偶enia kuchennego minutnika si臋gamy wi臋c po RlSC-owy procesor wykonuj膮cy rozkaz w jednym cyklu zegara, osi膮gaj膮cy wydajno艣膰 1 MTPS-a, maj膮cy 22-bito-we s艂owo programu itd. tylko dlatego, 偶e w tym sezonie ca艂y 艣wiat tak w艂a艣nie robi. Je艣li ju偶 upieramy si臋 przy zastosowaniu mikrokontrolera -a przecie偶 urz膮dzenie takie mo偶na r贸wnie prosto wykona膰 np. na nie艣miertelnych "trzech pi膮tkach" - to czym jeszcze si臋 kierujemy? Powiedzmy sobie szczerze - podobne zadania mo偶na faktycznie zrealizowa膰 stosuj膮c prawie dowolny mikro-
kontroler. Wyb贸r zale偶y cz臋sto od tego, kt贸ry z nich le偶y w艂a艣nie na p贸艂ce sklepowej, najlepiej w sklepie za rogiem? Czy 艂atwo jest 艣ci膮gn膮膰 do niego niezb臋dne, najlepiej darmowe oprogramowanie? Wreszcie, czy nie b臋dzie problemu z zaprogramowaniem "ko艣ci", najlepiej programatorem mieszcz膮cym si臋 we wtyczce kabla komputerowego, kt贸ry mo偶na samemu zmontowa膰 w pi臋膰 minut?
Gdy -si臋gamy pierwszy raz po mikrokontroler, cz臋sto wybieramy go w spos贸b do艣膰 przypadkowy, w ka偶dym razie nie zawsze kierujemy si臋 parametrami, jakimi dysponuje dany typ- Cz臋sto decyduje o tym po prostu moda.
Ja jednak proponuj臋 bardziej 艣wiadome podej艣cie do zagadnienia, czyli bliskie spotkanie 3. stopnia z pewnym mikrokontrolerem. B臋dzie to zgodne z zasad膮: "Je艣li nie spr贸bujesz, nie b臋dziesz wiedzia艂, jak smakuje". Spr贸bujmy zatem wsp贸lnie.
Regu艂膮 jest, 偶e wi臋kszo艣膰 licz膮cych si臋 producent贸w podzespo艂贸w elektronicznych oferuje zestawy ewalua-cyjne, dzi臋ki kt贸rym nie wydaj膮c zbyt du偶o pieni臋dzy u偶ytkownik mo偶e zmierzy膰 si臋 "oko w oko"
z produktem. Tak te偶 jest w przypadku Microchipa, znanego m.in. z mikrokontroler贸w PIC. Otwieramy wi臋c do艣膰 poka藕ne na pierwszy rzut oka pude艂ko z napisem Microchip Development Tools.
Z czym si臋 zapoznajemy?
W wielkim pude艂ku znajdujemy m.in. niewielk膮 p艂ytk臋, przy u偶yciu kt贸rej za chwil臋 b臋dziemy mogli zapozna膰 si臋 z mikrokontrolerem PIC16C781/782. Spe艂nia on kryteria obowi膮zuj膮cej mody - w pe艂ni statyczny procesor RISC-owy, dysponuj膮cy 35 rozkazami z mo偶liwo艣ci膮 programowania w systemie. Jego najsilniejsz膮 stron膮 jest do艣膰 du偶e bogactwo wbudowanych peryferi贸w: dwa timery/liczniki, 8-wej艣ciowy, 8-bitowy przetwornik analog贸w o-cyfrowy z wewn臋trznym 藕r贸d艂em napi臋cia referencyjnego, 8-bitowy przetwornik cyfrowo-analogo-wy (kt贸ry mo偶na skonfigurowa膰 jako typowy uk艂ad z wyj艣ciem napi臋ciowym lub wykorzysta膰 jako programowane), wewn臋trzny wzmacniacz operacyjny o programowanym wzmocnieniu, przydatny w wielu
84
Elektronika Praktyczna 11/2002
SPRZ臉T
RA0/AN0/OPA+
RA1/AN1/0PA-
RA2/AM2/VREF2
RA3/AN3/VREF1
RBQ/IWT7AN4/VR
RB1/AN5/VDAC
RB2/AN6
RB3/AN7/OPA
AN4
VDAC
DAON
Rys. 1. Multipleksowanie sygna艂贸w analogowych w mikrokontrolerach PIC16C781/782
"analogowych" zastosowaniach, podw贸jny komparator analogowy generuj膮cy przerwanie, 藕r贸d艂o referencyjne, kt贸re mo偶e by膰 wykorzystywane przez przetworniki A/C i C/A oraz jako 藕r贸d艂o zewn臋trzne o dopuszczalnej obci膮偶alno艣ci do 5 mA, modu艂 PSMC (Programmable Switch Mod臋 Controler) wykorzystywany do generacji przebieg贸w impulsowych na podstawie sprz臋偶enia ana-
logowego. Typowym zastosowaniem PSMC mo偶e by膰 uk艂ad PWM {Pulse Width Modulation) lub PSM {Pulse Skip Modulation). Jedyn膮, ale do艣膰 bolesn膮 niedogodno艣ci膮 jest brak wbudowanego portu szeregowego. Je艣li w aplikacji u偶ytkownika istnieje potrzeba zastosowania takiej transmisji, to musi by膰 ona obs艂ugiwana ca艂kowicie programowo z wykorzystaniem port贸w og贸lnego
przeznaczenia. Z tego wzgl臋du porty RB4 i RB5 na p艂ytce ewaluacyj-nej s膮 zarezerwowane dla programu PICDEM MSC1.
Po i tak skr贸towym opisie s艂ownym mog艂o si臋 zakr臋ci膰 w g艂owie, wi臋c warto jeszcze spojrze膰 na rys. 1. Przedstawiono na nim budow臋 wewn臋trzn膮 analogowej cz臋艣ci mik-rokontroler贸w PIC16C781/782. Rysunek daje ponadto wizualne wyobra偶enie o mo偶liwo艣ciach konfigurowa-nia uk艂adu. Nie jestem wi臋c pewien, czy zawr贸t g艂owy jeszcze bardziej si臋 nie powi臋kszy艂. Wszystko co widzimy zamkni臋to w 20-n贸偶kowej obudowie. Uk艂ady PIC16C781 i PIC16C782 mog膮 by膰 tymi wymarzonymi do wielu prostych, "analogowych" aplikacji. Zach臋cam do dok艂adniejszego zapoznania si臋 z notami katalogowymi. S膮 one dost臋pne pod adresem http://www.micro-chip.com/download/lit/pline/pic-micro/families/16c78x/41171a.pdf, a tak偶e na CDROM-ie zawartym w zestawie ewaluacyjnym. W艂a艣ciwie po ich lekturze wszystko powinno by膰 jasne, nie cz臋sto bowiem podobne dokumenty s膮 opracowywane tak przejrzy艣cie, jak czyni to Microchip. Wiem, wiem, Czytelnicy oczekuj膮 mimo wszystko dzia艂a艅 praktycznych, a wi臋c do dzie艂a.
Zaczynamy
Przed rozpocz臋ciem pr贸b trzeba zainstalowa膰 do艂膮czony na CDROM-ie program PICDEM MSCl. Jest to w istocie graficzny interfejs umo偶liwiaj膮cy konfiguracj臋 mikrokontrolera zamontowanego na p艂ytce (rys. 2). Instalacja jest bardzo prosta, nie powinna wi臋c stwarza膰 偶adnego k艂opotu. P艂ytka ewaluacyjna zosta艂a pomy艣lana tak, 偶eby u偶ytkownik m贸g艂 jak najlepiej zapozna膰 si臋 ze wszystkimi blokami funkcjonalnymi mikrokontrolera. W tym celu jedn膮 po艂ow臋 p艂ytki przeznaczono dla mikrokontrolera wraz z niezb臋dnym otoczeniem, druga za艣 to uniwersalne pole monta偶owe, na kt贸rym mo偶na szybko przygotowa膰 w艂asny fragment uk艂adu testowego. Po 艣rodku, na z艂膮czu szpilkowym udost臋pniono wszystkie wyprowadzenia mikrokontrolera. Mo偶na je 艂膮czy膰 ze sob膮 przy pomocy do艂膮czonych do zestawu specjalnych kabelk贸w. S膮 te偶 dwie szpilki wyprowadzaj膮ce suwaki potencjometr贸w monta偶owych umieszczonych na p艂ytce. Przydadz膮 si臋 na pewno do pr贸b z przetwornikami analogowo-cyfrowymi i cyfro-wo-analogowymi.
Elektronika Praktyczna 11/2002
85
SPRZ臉T
fen*

艂^TB
Rys. 2. Okno konfiguracji wej艣膰 i wyj艣膰 mikrokontrolera
Trzeba jednak w tym miejscu skrytykowa膰 projektanta p艂ytki, kt贸ry umie艣ci艂 potencjometry zbyt blisko siebie, przez co jeden z suwak贸w zosta艂 zablokowany mechanicznie. Rozwi膮zaniem by艂o dopiero do艣膰 brutalne odgi臋cie jednego z nich.
Do pr贸b mo偶na wykorzystywa膰 ponadto cztery diody 艣wiec膮ce. Aby mog艂y za艣wieci膰, trzeba je wcze艣niej po艂膮czy膰 z odpowiednimi wyprowadzeniami procesora lub napi臋cia dodatniego. Do testowania uk艂ad贸w czasowych mo偶na wykorzystywa膰 wewn臋trzny oscylator RC mikrokontrolera, zewn臋trzny oscylator scalony pod kt贸ry przewidziano specjaln膮 podstawk臋 lub do艂膮czy膰 zewn臋trzny rezonator kwarcowy. Rezonator musi by膰 przylutowany razem
z dwoma kondensatorami, tak jak w klasycznych rozwi膮zaniach. Teraz, gdy wszystko ju偶 wiemy o p艂ytce, mo偶emy po艂膮czy膰 nasz starter kit z komputerem oraz w艂膮czy膰 zasilanie. Szkoda tylko, 偶e w du偶ym pude艂ku zabrak艂o odpowiedniego zasilacza. Dla praktyk贸w nie powinno to jednak stanowi膰 problemu.
Pr贸by
Je艣li po za艂膮czeniu zasilania zapali艂y si臋 dwie lampki Dl i D2, oznacza to, 偶e wszystko jak na razie dzia艂a prawid艂owo. Po pierwszym uruchomieniu programu PICDEM MSCl trzeba wskaza膰 port szeregowy, poprzez kt贸ry b臋dzie si臋 odby-
Mikrokontroler PIC16C781/782 spe艂nia kryteria obowi膮zuj膮cej mody - w pe艂ni statyczny procesor RlSC-owy, dysponuj膮cy 35 rozkazami z mo偶liwo艣ci膮 programowania w systemie- Jego najsilniejsz膮 stron膮 jest du偶a liczba wbudowanych peryferi贸w.
wa艂a komunikacja z PC-tem. Czynimy to, wybieraj膮c z menu opcje Op-iions>Coininunicaiions Setup..., a nast臋pnie zaznaczaj膮c odpowiedni膮 pozycj臋. Transmisja jest inicjowana po wybraniu Opiions>Enable Eval Board. Najcz臋艣ciej towarzyszy temu zauwa偶alna regeneracja widocznych ustawie艅. Koncepcja pracy z progra-

Rys. 4. Przyk艂adowo konfiguracja ADC
'ih.
F
kowih rwo** "MW
"艢Ml
[i 11 ro艅*
tu*
A OK
n^rf I Mta li^pui
|
NHIIL |?T iOCHt [fT
l
TlCJH f艂7
Rys. 3. Przyk艂adowa konfiguracja DAC
mem PICDEM MSCl polega na zmienianiu konfiguracji mikrokontrolera za pomoc膮 list rozwijanych, p贸l dialogowych oraz tzw. radioprzycisk贸w i jednoczesnym obserwowaniu wp艂ywu ustawie艅 na dzia艂anie uk艂adu. Jakakolwiek zmiana dowolnego parametru powoduje natychmiastow膮 zmian臋 warto艣ci odpowiedniego rejestru lub rejestr贸w SFR. Aby u艂atwi膰 u偶ytkownikowi wychwycenie, zmian, nowe warto艣ci rejestr贸w zostaj膮 wy艣wietlona kolorem czerwonym. Przyk艂adowo skonfigurowanie portu RBl jako wyj艣cie przetwornika C/A powoduje ustawienie bitu numer 6 w rejestrze DA-CONO. Sytuacj臋 t臋 przedstawiono na rys. 2. Niestety nie da si臋 tego zrobi膰 w drug膮 stron臋. Program nie przyjmuje bezpo艣redniej zmiany warto艣ci rejestr贸w SFR. Warto艣膰 rejestr贸w mo偶e by膰 wy艣wietlana w formacie binarnym lub szesnastkowym, natomiast stan przetwornika C/A mo偶na odczytywa膰 dziesi臋tnie, szes-nastkowo lub bezpo艣rednio w woltach. Warto zauwa偶y膰, 偶e warto艣膰 napi臋cia na wyj艣ciu przetwornika C/A zmienia si臋 po zmianie 藕r贸d艂a referencyjnego przy niezmienionym po艂o偶eniu suwaka (rys. 3). Pami臋taj膮c, 偶e wej艣cie RA3 mo偶e by膰 skonfigurowane jako wej艣cie zewn臋trznego napi臋cia referencyjnego, uzyskujemy przetwornik C/A o praktycznie dowolnym zakresie pracy (ograniczonym jedynie warto艣ciami dopuszczalnymi).
艁atwo艣膰 obs艂ugi przetwornika ana-logowo-cyfrowego jest urzekaj膮ca. Spektakularnym tego przyk艂adem jest propozycja wykonania generatora arbitrarnego. Przypomnijmy, 偶e jest to generator wytwarzaj膮cy przebieg prawie dowolnego kszta艂tu, zale偶nego jedynie od inwencji i pracowito艣ci cz艂owieka. 呕膮dany przebieg nale偶y rozpisa膰 na 8-bitowe pr贸bki (liczby ca艂kowite z przedzia艂u 0...255
86
Elektronika Praktyczna 11/2002
SPRZ臉T
Rys. 5. Przyk艂adowa konfiguracja komparator贸w i wzmacniacza operacyjnego
oddzielane znakiem nowej linii, maksymalnie mo偶na u偶y膰 80 pr贸bek), a nast臋pnie zapisa膰 je w zwyk艂ym pliku tekstowym. Po ich wczytaniu do mikrokontrolera i odpowiednim skonfigurowaniu przetwornik贸w i timer贸w uzyskujemy mo偶liwo艣膰 generacji tak zaprojektowanego przebiegu. W programie PICDEM MSCl uwzgl臋dniono predefiniowany kszta艂t sinusoidy i tr贸jk膮ta. Na dysku umieszczono r贸wnie偶 plik z przyk艂adowym kszta艂tem sinusoidy z du偶膮 zawarto艣ci膮 harmonicznych. Czasami doj艣cie do ostatecznych wynik贸w bywa poprzedzone wielokrotnymi pr贸bami oraz poprawnym skonfigurowaniem wielu uk艂ad贸w peryferyjnych. Aby nie powtarza膰 wszystkich krok贸w w innej sesji, umo偶liwiono zachowywanie ustawie艅 w pliku dyskowym i oczywi艣cie p贸藕niejsze ich odczytywanie.
Elementy regulacyjne poszczeg贸lnych blok贸w funkcjonalnych mi kro kontrole-
r -'1


P DH
**艢 a
i* uiniRt r ncm
f mm Ou^aita艂t-------1

fMHBU P1KIB *"^
F


Rys. 贸. Przyk艂adowa konfiguracja PSMC
ia zgrupowano w programie PICDEM MSCl w oddzielnych zak艂adkach (iys. 2). S膮 to: InputfOutpi艁t, ABC, DAC, Coiriparaiors/OpAinp, PSMC, Timeis i Menioiy. Ich znaczenie jest oczywiste, a metody "strojenia" bardzo intuicyjne. Ewentualne w膮tpliwo艣ci dotycz膮ce dzia艂ania poszczeg贸lnych komponent贸w lub rejestr贸w SFR mikrokontrolera nale偶y wyja艣nia膰 w nocie katalogowej. Mo偶na powiedzie膰, 偶e opanowanie mo偶liwych kombinacji ustawie艅 ka偶dej z zak艂adek jest r贸wnoznaczne z poznaniem - i to dok艂adnym - budowy uk艂ad贸w PIC16C781 i PIC16C782. Jak wida膰, opisywany starter kit posiada du偶e walory edukacyjne. Trudno w ramach artyku艂u om贸wi膰 wszystkie mo偶liwo艣ci zestawu. Przyk艂ady konfiguracji poszczeg贸lnych blok贸w mikrokontroleia przedstawiono na rys. 4 do 8.
Czy by艂a to tylko zabawa?
Program PICDEM MSCl wraz z p艂ytk膮 ewaluacyjn膮 powinien spodoba膰 si臋 wszystkim tym, kt贸rzy lubi膮 kr臋ci膰 ga艂kami i naciska膰 przyciski. Zestaw wed艂ug mojej oceny 艣wietnie prezentuje mikrokontrolery PIC16C781/782, tym samym spe艂nia powierzone mu zadanie. Opr贸cz zabawy jest te偶 pewna bardzo praktyczna korzy艣膰. Jest to generator kodu inicjuj膮cego, kt贸ry mo偶na p贸藕niej wykorzysta膰 we w艂asnym programie. Kod ten jest zapisywany w plikach *Anc i zawiera rozkazy niezb臋dne do skonfigurowania mikrokontrolera we w艂asnej aplikacji, zgodnie z ustawieniami w programie PICDEM MSCl. Zapis nast臋puje po wybraniu opcji EUe->Ceneiuie Code..., po wcze艣niejszym odpowiednim skonfigurowaniu mikrokontrolera zestawu ewaluacyj-nego i wybraniu stosownych opcji w zak艂adce Menioiy. Czy jest to dobra metoda, czy nie, to kwestia w艂asnej oceny. Ja na przyk艂ad nie lubi臋, gdy komputer robi za mnie co艣, co z powodzeniem m贸g艂bym zrobi膰 sam.
Mikrokontrolery PIC16C781/782 to uk艂ady przeznaczone raczej do sprz臋tu powszechnego u偶ytku. Raczej trudno by艂o by zbudowa膰 na nich precyzyjny sprz臋t pomiarowy.
Rys. 7. Przyk艂adowa konfiguracja timer贸w
Rys. 8. Przyk艂adowa konfiguracja pami臋ci
Nie zapomnijmy jednak, 偶e s膮 to uk艂ady coraz powszechniej stosowane w najrozmaitszych urz膮dzeniach, nawet takich, w kt贸rych procesor wydawa艂by si臋 do niedawna armat膮 na wr贸ble. Pozycja wspomnianych wcze艣niej "555" wydaje mi si臋 nieco zagro偶ona. Ciekawe, czy uk艂ad ten wytrzyma d艂u偶sz膮 konkurencj臋 z mikrokontrolerami. Maj膮c za przeciwnika PIC-e mo偶e nie by膰 weso艂o. Na zako艅czenie musz臋 si臋 przyzna膰 do jeszcze jednej swojej s艂abo艣ci. Do niedawna nie lubi艂em nie tylko 艣ledzi. Ale do nie dawna. W zwi膮zku z tym poprosi艂em w艂a艣nie 偶on臋, 偶eby zakupi艂a rolmopsy. Jaros艂aw Doli艅ski, AVT jaroslaw.dolinski@ep.com.pl
D o dat ko we i nf o rma ej e
Dystybutorzyfirmy Microchipw Polsce:
- Future Electronics, tel, (22) 618-92-02,
- Gamma, Tel. (22) 862-75-00, www.gamma.pl,
- Unique Memec Polska, tel. (32) 238-03-41, www.aTest.com.pl.
88
Elektronika Praktyczna 11/2002
MINIPROJEKTY
Wsp贸ln膮 cech膮 uk艂ad贸w opisywanych w dziale "Miniprojekty" jest 艂atwo艣膰 Ich praktyczne] 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 scaionych, 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 v*/yodr臋bnionej serii ,Miniprojekty" o numeracji zaczynaj膮cej si臋 od 1000,
Optoizolator dla interfejsu szeregowego
Uk艂ad prezentowany
w artykule
zaprojektowano do
modemu 220V, kt贸ry
opisujemy na str. 14. Ze
wzgl臋du na jego
uniwersalno艣膰
postanowili艣my opisa膰
go oddzielnie jako
miniprojekt, dost臋pny
w ofercie AVT.
Rekomendacje: dla
u偶ytko wnik贸 w
komputer贸w,
sterownik贸w PLC
i sterownik贸w
mikroprocesor o wych
wsp 贸艂pra c uj膮 cych
z urz膮dzeniami,
w kt贸rych mog膮
wyst膮pi膰 udary
napi臋ciowe, wywo艂ane
na przyk艂ad
niepra wid艂o wym
uziemieniem.
Schemat elektryczny op-toizolatora przedstawiono na rys. 1. W interfejsie RS232 s膮 3 linie wyj艣ciowe (DTR, RTS, TxD) oraz 4 wej艣ciowe (DSR, DCD, CTS, RI - windowsowe funkcje API nie daj膮 mo偶liwo艣ci bezpo艣redniego wykorzystania RxD jako wej艣cia). W optoizolatorze wykorzystano wszystkie wyj艣cia oraz jedno wej艣cie do odczytu ISP.
W uk艂adzie zastosowano szybkie, niskopr膮dowe trans-optory typu 6N139. Pracuj膮 one poprawnie ju偶 przy pr膮dzie diody LED zgodnym ze standardem TTL (poni偶ej 2 mA). St膮d mo偶liwo艣膰 zastosowania rezystor贸w R1...R3 o du偶ej warto艣ci, minimalnie obci膮偶aj膮cych linie wyj艣ciowe portu. Natomiast linia wej艣ciowa z transoptorem US4 mo偶e by膰 sterowana bezpo艣rednio z wyprowadzenia obs艂ugiwanego uk艂adu (ak-
tywny poziom niski).
Diody Dl, D4, D9 zabezpieczaj膮 LED-y transoptor贸w przed zbyt du偶ym napi臋ciem wstecznym (o warto艣ci ok. -10V)w nieaktywnym stanie wyj艣膰. Pary diod D2/ D3, D5/D6, D7/D3 wraz z pojemno艣ciami Cl i C2 zapewniaj膮 symetryczne zasilanie 膮10V przy r贸偶nych polaryzacjach napi臋cia na wyj艣ciach. Rzecz jasna samo si臋 to nie zrobi - program steruj膮cy musi zadba膰 o to, 偶eby w ka偶dej chwili przynajmniej dwie linie wyj艣ciowe znajdowa艂y si臋 na poziomach przeciwnych dla zapewnienia obu biegun贸w zasilania.
Po programowym w艂膮czeniu zasilania wzmacniacz operacyjny ICl, poprzez odpowiedni膮 polaryzacj臋 wej艣膰 dzielnikami: sta艂ym (R13, R14) oraz aktywnym (Rll, US4) podaje na lini臋 wej艣ciow膮 DSR
~'WT Portu "10V
~ (poziom nie-
aktywny) przy braku pr膮du w US4 (poziom H na zacisku 3) oraz +10V (poziom aktywny) przy przep艂ywie pr膮du w US4 (poziom L na zacisku 3).
P艂ytk臋 pod艂膮czamy do portu w PC kablem null-mo-deui (ze skrzy偶owanymi liniami we/wy). Zauwa偶my, 偶e gniazdo DB9-M ma niepod艂膮-czon膮 lini臋 TxD. Dla potrzeb transmisji nale偶y wi臋c prze艂膮czy膰 DTR na TxD (lub po艂膮czy膰 na sta艂e, co jednak mo偶e wprowadza膰 w b艂膮d pro-
OX2-6
Rys. 1
Elektronika Praktyczna 11/2002
91
MINIPROJEKTY
O o o o o" o
zz IZ
oo,
oooo,
n-i gfl in O-QP^) n-i gjj in OOOO OOOO OOOO
aooo aooo aooo ooooooooooooo
olo贸贸贸贸贸贸贸贸贸贸贸贸
Of
o
TO 2
ooooo
j,OOOO
32 AVT
O
js.oh
Rys. 2
gram odbiorczy). Pomimo prostoty uk艂adu zosta艂 on dla zachowania zwarto艣ci zmontowany na p艂ytce dwuwarstwowej - rozmieszczenie element贸w pokazano na rys. 2. Sprawdzenie pracy
urz膮dzenia najwygodniej przeprowadzi膰 za pomoc膮 oscyloskopu dwukana艂owego. Do zacisk贸w 1-2 pod艂膮czamy zasila-
nie 5 V (zauwa偶my, 偶e trans-optory nie wymagaj膮 konkretnego napi臋cia zasilania, wi臋c adapter mo偶e wsp贸艂pracowa膰 z urz膮dzeniami o r贸偶nych napi臋ciach roboczych - aczkolwiek przy du偶ych odst臋pstwach od przyj臋tego 5V, mo偶e trzeba zmieni膰 warto艣ci rezystor贸w R6, R8, RIO i R25). Na wsp贸艂pracuj膮cym komputerze uruchamiamy testowy program, kt贸ry zapewnia zasilanie symetryczne p艂ytki oraz generuje fal臋 prostok膮tn膮 na wybranym wyj艣ciu (wz贸r odpowiedniego projektu w Delphi publikujemy na CD-EPll/ 2OO2B oraz w Internecie na stronie www.ep.com.pl w dziale Download>Dokumentacje). Po stronie 5 V wybrane wyj艣cie 艂膮czymy bezpo艣rednio z wej艣ciem 3. W jednym kanale obserwujemy przebieg wyj艣ciowy 0/5V, drugi kana艂 pod艂膮czamy do linii DTR z艂膮cza DB9.
Na koniec mo偶emy sprawdzi膰 adapter w dzia艂aniu. Pos艂u偶y do tego uk艂ad scalony PCF8574 z do艂膮czonymi czterema LED-ami i poczw贸rnym DIP-switchem. Program steruj膮cy implementuje protok贸艂
WYKAZ ELEMENT脫W
Rezystory
R1...R3: 2,2kQ
R4: 100Q
R5...R10, R12: 4,7kQ
R12: 8,2kQ
R13, R14: 10kQ
R25: l,2kQ
R21: 22kQ*
Kondensatory
C1...C3: kondensator
monolityczny lOOnF
P贸艂przewodniki
D1...D9: dioda krzemowa
1N4148
IC1: wzmacniacz operacyjny
TL081 (DIL8)
T1...T4: transoptor 6N139
(DIL8)
R贸偶ne
Jl: gniazdo kgtowe DB9M
Zl, Z2: zaciski 艢rubowe
' mo偶na pomin膮膰 - s艂u偶y
wy艂膮cznie do uzyskania na
zacisku 3 poziomu wysokiego
dla potrzeb pomiar贸w
kontrolnych przy sterowaniu
US4 z wyj艣cia typu otwarty
kolektor
P艂ytka drukowana jest dost臋pna w AVT - oznaczenie AVT-1358.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/7pdf/Iistopad02.htm oraz na p艂ycie CD-EP11/2002 w katalogu PCB.
PC, korzystaj膮c z opisanego powy偶ej komponentu TRsPin. W kodzie programu znajdziemy te偶 linie steruj膮ce SDA i SCL oraz adres slave uk艂adu - mog膮 by膰 konieczne w艂asne modyfikacje. Nale偶y te偶 pami臋ta膰 o pod艂膮czeniu wyj艣cia SDA adaptera do wej艣cia 3. Uwaga o modyfikacjach kodu program贸w narz臋dziowych -dotyczy ich wszystkich -
urz膮dzenia by艂y testowane na r贸偶nych stanowiskach przy u偶yciu r贸偶nych linii we/wy -wi臋c je艣li zastosujemy gotowy. exe do w艂asnego uk艂adu, istnieje spore prawdopodobie艅stwo niezgodno艣ci. Zalecane jest wi臋c skompilowanie program贸w wed艂ug swoich konkretnych ustawie艅 i pod艂膮cze艅. Jerzy Szczesiul,AVT
Elektronika Praktyczna 11/2002
MINIPROJEKTY
Zasilacz USB
Przy stosowaniu
uk艂ad贸w wsp贸艂pracuj膮cych
z komputerem cz臋sto
napotyka si臋 na problemy
z ich zasilaniem.
Stosowanie zewn臋trznego
zasilacza dla uk艂adu
pobieraj膮cego kilka czy
kilkadziesi膮t miliamper贸w
pr膮du jest zb臋dne
i k艂opotliwe.
R ekom endacje:
projekt szczeg贸lnie
przydatny pocz膮tkuj膮cym
elektronikom, kt贸rzy
mog膮 wykorzysta膰
swojego PC-ta jako
bezpieczny zasilacz
laboratoryjny dla
system贸w
mikroprocesorowych.
Przedstawiony w artykule uk艂ad pozwala na wykorzystanie napi臋cia dost臋pnego na z艂膮czu USB komputera. Na z艂膮czu tym, opr贸cz dw贸ch linii s艂u偶膮cych do wymiany danych, dost臋pne jest tak偶e napi臋cie 5V, kt贸re mo偶e s艂u偶y膰 do zasilania urz膮dze艅 peryferyjnych. Maksymalny pr膮d pobierany przez do艂膮czone urz膮dzenia nie mo偶e przekracza膰 500mA.
Na rys.l przedstawiono schemat elektryczny uk艂adu umo偶liwiaj膮cego bezpieczne wykorzystanie tego napi臋cia. Z艂膮cze CONl jest z艂膮czem wej艣ciowym - do niego nale偶y pod艂膮czy膰 kabel USB typu A-B z komputera. Drugie z艂膮cze CON2 jest gniazdem USB typu A i stanowi wyj艣cie dla uk艂ad贸w peryferyjnych. Pozwala ono na wykorzystanie
CON1 C0N2
VBUS D-Dt GND
VBU8 D-Dt GND 1 1
9
A fl
A A

USK
LJSB-A C0N3
Rys. 1 ' ' 4^.1=1 i
portu USB do zasilania zewn臋trznych uk艂ad贸w i jednocze艣nie do komunikacji z dowolnym urz膮dzeniem USB. Napi臋cie zasilania z komputera jest pobierane z gniazda CONl, nast臋pnie poprzez bezpiecznik jest podawane na z艂膮cze CON3. Zastosowanie bezpiecznika zabezpiecza obwody wyj艣ciowe komputera przed zwarciem mog膮cym powsta膰 przy pod艂膮czaniu zewn臋trznych urz膮dze艅 do z艂膮cza CON3, a kondensator Cl filtruje uzyskane napi臋cie. Pomimo i偶 porty USB oferuj膮 pr膮d 500mA, to nie nale偶y ich zbytnio obci膮偶a膰. W przeprowadzonych testach, przy obci膮偶eniu lOOmA powsta-
Rys. 2
wa艂 znaczny spadek napi臋cia i wynosi艂o ono 4,6V. Zasilacz mo偶e s艂u偶y膰 wi臋c do zasilania niezbyt rozbudowanych uk艂ad贸w. KP
WYKAZ ELEMENT脫W
Kondensatory
Cl: lOOnF R贸偶ne
Bl: bezpiecznik 0,315A CONl: gniazdo USB typ"B" CON2: gniazdo USB typ"A" CON3: ARK2 (5mm)
P艂ytka drukowana jest dost臋pna w AVT - oznaczenie AYT-1352.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl Iistopad02.htm oraz na p艂ycie CD-EP11/2002 w katalogu PCB.
92
Elektronika Praktyczna 11/2002
PODZESPO艁Y
nie zawsze znaczy to samo...
^^^ Me ma chyba przesady w stwierdzeniu, 偶e pami臋膰 typu Flash jest "wyczekana" przez elektronik贸w. Stosunkowo szybki zapis danych, na og贸艂 wystarczaj膮cy czas odczytu, a przede wszystkim nieulotno艣膰, to cechy kt贸re decyduj膮
o jej atrakcyjno艣ci, kt贸ra pomimo pojawienia si臋
ferroelektrycznych pami臋ci nieulotnych, ci膮gle nie maleje.
Korzystamy z nich na co dzie艅, ale czy wiemy jak dzia艂aj膮?
co we Flashach piszczy?
Wydawa膰 by si臋 mog艂o, 偶e wynalezienie czego艣, czego 艣wiat jeszcze na oczy nie widzia艂, wymaga po prostu niestandardowego my艣lenia. Wiele wynalazk贸w powsta艂o w艂a艣nie dzi臋ki temu, 偶e kto艣 nie sugeruj膮c si臋 aktualn膮 wiedz膮, po prostu pomy艣la艂 odmiennie. Tymczasem, je艣li przyjrzymy si臋 obudowie najnowocze艣niejszych pami臋ci p贸艂przewodnikowych, to oka偶e si臋, 偶e maj膮 one wsp贸ln膮 cech臋 z pami臋ciami magnetycznymi, kt贸re "rodzi艂y si臋" razem z pierwszymi komputerami, gdzie艣 na pocz膮tku lat 50. ubieg艂ego stulecia. T膮 cech膮 jest matrycowa budowa zastosowana w obu rozwi膮zaniach. W pami臋ciach magnetycznych informacja by艂a pami臋tana dzi臋ki koralikom z materia艂u ferromagnetycznego, nawlekanych na specjaln膮 siatk臋 wykonan膮 z cienkich drucik贸w. St膮d nazwa takich pami臋ci -pami臋ci ferrytowe (rys. 1). Krawiec to okre艣lenie, kt贸re najbardziej pasowa艂oby do osoby zatrudnionej przy produkcji takich element贸w, jako 偶e jej praca polega艂a na "szyciu" matryc za pomoc膮 najzwyklejszej ig艂y. Mo偶na powiedzie膰, 偶e najwa偶niejszym blokiem wsp贸艂czesnych pami臋ci Flash jest matryca, tyle 偶e do jej r臋cznego wykonania byliby zdolni chyba tylko dwaj wielcy mis-
Rys.
trzowie-konstru kt贸rzy, jakim s膮 Trurl i Klapaucjusz z lemowskiej Cyberiady.
Przyjrzyjmy si臋 zatem, jak jest zbudowana wsp贸艂czesna pami臋膰 Flash? Jej pojedyncz膮 kom贸rk臋 przedstawiono na rys. 2. Widzimy tu przekr贸j poprzeczny tranzystora MOS, nieznacznie zmodyfikowanego w stosunku do typowego elementu. Aby tranzystor taki by艂 zdolny do przechowywania informacji, zastosowano w nim tzw. p艂ywaj膮c膮 bramk臋 umieszczon膮 pomi臋dzy bramk膮 steruj膮c膮 a pod艂o偶em typu p. To w艂a艣nie w p艂ywaj膮cej bramce gromadzony jest 艂adunek (elektrony), okre艣laj膮cy, czy zapami臋tano warto艣膰 0 czy 1. Odczytanie zawarto艣ci takiej kom贸rki polega na przy艂o偶eniu napi臋cia pomi臋dzy elektrody G i S, a nast臋pnie zmierzeniu pr膮du p艂yn膮cego mi臋dzy elektrodami D i S. 艁adunek zgromadzony w p艂ywaj膮cej bramce b臋dzie ekranowa艂 p贸艂przewodnik pod bramk膮 tak, 偶e nie zostanie za-indukowany w tranzystorze kana艂 po podaniu napi臋cia odczytuj膮cego na elektrod臋 G. Tym samym ze 藕r贸d艂a do drenu nie b臋dzie m贸g艂 przep艂ywa膰 pr膮d IDS.
To, czego zazwyczaj nie wiemy: NOR czy NAND?
Kupuj膮c pami臋ci Flash, ma艂o kto zadaje sobie pytanie, czy s膮 wykonane w technice NOR, czy NAND. Wielu kupuj膮cych zapewne nawet nie wie, 偶e s膮 takie rodzaje pami臋ci. Tymczasem okazuje si臋, 偶e ka偶de z tych rozwi膮za艅 charakteryzuje si臋 parametrami, kt贸re w pewnych zastosowaniach mog膮 by膰 korzystne, w innych za艣 mog膮 wr臋cz dyskwalifikowa膰 uk艂ad pami臋ci. O co wi臋c chodzi?
Aby wyja艣ni膰 r贸偶nice, musimy odwo艂a膰 si臋 do cechy, o kt贸rej m贸wili艣my na wst臋pie, czyli do matrycowej struktury pami臋ci. Pojedyncze tranzystory MOS, stanowi膮ce elementarne kom贸rki pami臋ci, 艂膮czy si臋 w specjaln膮 sie膰. Dzi臋ki temu, mo偶liwe staje si臋 sensowne zorganizowanie zapami臋tywanych danych. Jak si臋 jednak okazuje, matryc臋 mo偶na zbudowa膰 na dwa sposoby. Ilustruje to rys. 3. W pami臋ci typu NOR wiele tranzystor贸w tworz膮cych kolumn臋 matrycy ma do艂膮czone dreny do wsp贸lnej linii bitu, natomiast 藕r贸d艂a s膮 odpowiednio do艂膮czone do linii Source Lin臋 (rys. 3a). Pozostaje jeszcze po艂膮czenie elektrod G, kt贸re tworz膮 wyprowadzenie Word Lin臋. Odczyt pami臋ci jest realizowany poprzez ustawienie wysokiego poziomu napi臋cia na linii Word Lin臋 oraz do艂膮czenie odpowiedniej linii Bit Lin臋 do specjalnego wzmacniacza pomiarowego. Je艣li tak zaadresowana kom贸rka jest zaprogramowana, wzmacniacz nie wykryje przep艂ywu pr膮du przez t臋 lini臋. W praktyce odczytuje si臋 8, 16, 32 lub wi臋cej bit贸w jednocze艣nie, zale偶nie od organizacji pami臋ci. Wpisanie zerowej warto艣ci do kom贸rki jest realizowane poprzez symultaniczne podanie impuls贸w napi臋ciowych na lini臋 Bit Lin臋 - impuls 5V, oraz Word Lin臋 - impuls 10 V. Powoduje to "wstrzelenie" niezb臋dnej
5 Br krzemowa D
殴rtido 1 Br p艂ywa|膮ca JDren
Rys. 2
Elektronika Praktyczna 11/2002
PODZESPO艁Y
Pami臋膰 Flash typu NOR
Rys. 3
dawki elektron贸w do obszaru p艂ywaj膮cej bramki. Tak zgromadzony 艂adunek pozostaje p贸藕niej w pu艂apce (odizolowana bramka p艂ywaj膮ca), nawet po od艂膮czeniu wszelkich napi臋膰 od uk艂adu. Wewn臋trzny sterownik pami臋ci dba o to, aby operacja zako艅czy艂a si臋 sukcesem, kilkukrotnie powtarzaj膮c powy偶sz膮 procedur臋. Kasowanie, czyli wpisanie logicznej jedynki, jest realizowane poprzez podanie dodatniego napi臋cia (+5 V) na lini臋 Source Lin臋 r贸wnocze艣nie z ujemnymi impulsami (-8 V) podawanymi na lini臋 Word Lin臋. Nast臋puje w贸wczas uwolnienie elektron贸w z pu艂apki i ich odp艂yw z p艂ywaj膮cej bramki. Ta operacja mo偶e by膰 dla pewno艣ci r贸wnie偶 powtarzana kilkakrotnie.
W przypadku pami臋ci o strukturze NAND, matryca jest zbudowana jak to pokazano na rys. 3b. Odczyt nast臋puje w wyniku po艂膮czenia linii Source Lin臋 do potencja艂u zerowego i podaniu na lini臋 Word Lin臋 napi臋cia odczytu. W艂膮czenie odpowiedniej grupy kom贸rek jest realizowane poprzez wyprowadzenia Bit Lin臋 Se-!ect. Wyprowadzenia Bit Lin臋 s膮 do艂膮czone do wzmacniaczy pomiarowych, lecz o tym, kt贸re b臋d膮 czytane, decyduje Source Lin臋. Trzeba zauwa偶y膰, 偶e przez ca艂y czas pozostaj膮 w stanie w艂膮czenia nawet te tranzystory, kt贸re nie b臋d膮 w danym cyklu odczytywane. Do detekcji pr膮du p艂yn膮cego przez wszystkie linie nale偶膮ce do jednego s艂owa pami臋ci konieczne jest kilkukrotne prze艂膮czenie tranzystor贸w. Odbija si臋 to niestety na czasie dost臋pu, jakim charakteryzuj膮 si臋 uk艂ady tego rodzaju. Jest on typowo r贸wny ok. 25 jis. W celu zaprogramowania pojedynczej kom贸rki linia Word Lin臋 jest do艂膮czona do bardzo wysokiego napi臋cia (15 do 20 V), natomiast Bit Lin臋 znajduje si臋 na potencjale zero. Niewybrane kom贸rki przepuszczaj膮 pr膮d programuj膮cy bez 偶adnego wp艂ywu na ich p贸藕niejszy stan.
Ground LJne Select
Source Source Pami臋膰 Flash typu NAND
Kasowanie sektora odbywa si臋 po po艂膮czeniu z zerowym potencja艂em wszystkich linii Word Lin臋 nale偶膮cych do tego sektora oraz doprowadzeniu wysokiego napi臋cia (15 do 20 V) do pod艂o偶a wszystkich kasowanych tranzystor贸w. Wstrzykiwanie elektron贸w do odpowiednich obszar贸w zar贸wno podczas kasowania, jak i programowania kom贸rek pami臋ci typu NAND odbywa si臋 na zasadzie tunelowania Fowlera-Nord-heima (rys. 4). Konieczno艣膰 stosowania wy偶szych napi臋膰 programuj膮cych w por贸wnaniu z pami臋ciami NOR (rys. 5) powoduje, 偶e w pami臋ciach NAND niezb臋dne staje si臋 wbudowywanie w struktur臋 uk艂adu bardziej wydajnych pomp 艂adunkowych. Stanowi to dodatkow膮 trudno艣膰 dla konstruktor贸w, kt贸rzy musz膮 ten problem rozwi膮zywa膰, nikt bowiem obecnie nie zainteresuje si臋 uk艂adami, kt贸re wymaga艂yby doprowadzania dodatkowych napi臋膰 podczas programowania lub kasowania. Wy偶sze napi臋cia stanowi膮 r贸wnie偶 przeszkod臋 w realizacji wewn臋trznych kluczy prze艂膮czaj膮cych napi臋cia programuj膮ce. Powy偶sze prob-
lemy s膮 wprawdzie do pokonania w technologii 0,25 urn, jednak pojawiaj膮 si臋 przy tym inne k艂opoty, zwi膮zane chocia偶by z nieuniknionym wzrostem zak艂贸ce艅. Zaoszcz臋dzona powierzchnia struktury p贸艂przewodnikowej, jak膮 udaje si臋 uzyska膰 w matrycach typu NAND w por贸wnaniu z NOR, jest niestety zajmowana przez wi臋ksze powierzchniowo pompy 艂adunkowe i inne niezb臋dne bloki elektroniczne pami臋ci.
Wymiary i wynikaj膮ce z nich koszty
Rozmiary kom贸rek pami臋ci podawane s膮 w umownych jednostkach, zale偶nych od zastosowanej technologii, np. 0,18 urn lub 0,15 urn. Jednostki te s膮 oznaczane du偶膮 liter膮 F. Podstawowa kom贸rka pami臋ci Flash wykonana w konfiguracji NOR zajmuje powierzchni臋 10 F2. Jej topografi臋 przedstawiono na rys. 6a. Konfiguracja NAND jest bardziej oszcz臋dna pod tym wzgl臋dem (rys. 6b). Podstawowa kom贸rka zajmuje w tym przypadku powierzchni臋 jedynie 6 F2, co stwarza mo偶liwo艣膰 - przynajmniej teoretycznie - uzyskania wi臋kszej g臋sto艣ci upakowania kom贸rek. Na ko艅cow膮 wielko艣膰 powierzchni, jak ju偶 wspomniano wcze艣niej, wp艂ywaj膮 dodatkowo pozosta艂e elementy pami臋ci. Trudno jest wi臋c jednoznacznie odpowiedzie膰, kt贸ra konfiguracja b臋dzie wymaga艂a mniejszej powierzchni struktury p贸艂przewodnikowej.
Zanim co艣 zrobisz, dwa razy si臋 zastan贸w
Zapewne niestandardowe my艣lenie konstruktor贸w doprowadzi艂o do tego, 偶e wykonywane s膮 r贸wnie偶
Tab. 1. Zestawienie podstawowych w艂a艣ciwo艣ci pami臋ci Flash typu NOR i NAND
Operacja NOR NAND Komentarz
Odczyt swobodny 35...150 ns 25 tis NOR - prawdziwy dost臋p swobodny NAND - wolny dost臋p stronicowy
Odczyt sekwencyjny 20...150ns 50 ns NOR - prawdziwy dost臋p swobodny NAND - odczyt strony z bufora
Czas programowania 5 jj.s/bajt swobodny 0,5 jj.s/bajt swobodny NOR - prawdziwe programowanie swobodne NAND - programowanie stronicowane lub sekwencyjne stronicowane
Czas kasowania 0,7 s/128 kB 2ms/16kB NOR-wst臋pne programowanie wszystkich kom贸rek NAND - szybkie kasowanie
Bezb艂臋dno艣膰 100% 98% NOR - wszystkie adresy maj膮 gwarantowany poprawny odczyt NAND - B艂臋dne bloki niewykorzystywane do przechowywania danych
Wytrzyma艂o艣膰 100000 bez uszkodzenia kom贸rek 250000 z b艂臋dami odczytu NOR-100% pewno艣膰 odczytu ka偶dej kom贸rki w 100000 cykli NAND - spodziewane b艂臋dy odczytu niekt贸rych kom贸rek
Elektronika Praktyczna 11/2002
PODZESPO艁Y
trat
15...20V
Br. slarul膮ea Br. p艂ywaj膮ca
10V
GND
GND
float
Br. steruj膮ca Br. p艂ywaj膮ta
float
0V
5V
Br. steruj膮ca Br. p艂ywaj膮ca
foating
Tunelowanie Fowlera-Nordheima
Tunelowanie
Fowlera-
Nordheima
GND Wstrzykiwanie gor膮cych elektron贸w
Prag ramowanie pami臋ci Flash typu NOR
1-------Tunel owanle
Fowere-Nordhelma
Kasowanie pami臋ci Flash typu NOR
Programowanie pami臋ci Flash typu NAND
Rys. 4
Kasowanie pami臋ci Flash typu NAND
uk艂ady potrafi膮ce zapami臋ta膰 wi臋cej ni偶 jeden bit informacji w pojedynczej kom贸rce. Przecie偶 to niemo偶liwe! A jednak. Jak pami臋tamy, stan logiczny pojedynczej kom贸rki pami臋ci jest zdefiniowany poprzez ustalenie pewnej warto艣ci 艂adunku zgromadzonego w p艂ywaj膮cej bramce. W klasycznym wariancie jest to po艂owa 艂adunku jaki mo偶e by膰 wstrzykni臋ty do bramki. Je艣li wi臋c 艂adunku jest mniej ni偶 po艂owa, przyjmujemy, 偶e kom贸rka reprezentuje stan 1, w przeciwnym razie stan 0 (rys. 7a). Nietrudno zauwa偶y膰, 偶e dok艂adniejszy pomiar pr膮du IDS oraz bardziej precyzyjne kontrolowanie wstrzykiwanego 艂adunku pozwoli艂oby przyjmowa膰, 偶e dana kom贸rka mo偶e si臋 znajdowa膰 w stanach np. 00, 01, 10 i 11 (rys. 7b). Powy偶sze rozwa偶ania nie s膮 bynajmniej tylko hipotetyczne. Zgodnie z tym pomys艂em wytwarza si臋 pami臋ci Flash z tak zwanymi kom贸rkami Multi Bit. Nasuwa si臋 pytanie: kt贸ra konfiguracja lepiej nadaje si臋 do realizacji kom贸rek Multi Bit? Okazuje si臋, 偶e wi臋ksz膮 liczb臋 bit贸w przypadaj膮c膮 na jedn膮 kom贸rk臋 udaje si臋 uzyska膰 w pami臋ciach NOR. Ponadto zasada pomiaru pr膮du IDS stosowana w konfiguracji NAND praktycznie wyklucza uzyskanie nawet czterech bit贸w na kom贸rk臋. Wyj膮tkowo korzystny wsp贸艂czynnik S/MB, jakim cechuj膮 si臋 pami臋ci Multi Bit, powoduje, 偶e wszystkie laboratoria pracuj膮 intensywnie nad unowocze艣nianiem tej technologii. Powinni艣my si臋 wi臋c spodziewa膰 nowych typ贸w pami臋ci oraz obni偶ania ich cen. Na rys. 8 przedstawione s膮 zale偶no艣ci powierzchni r贸wnowa偶nych kom贸rek w funkcji zastosowanej technologii i konfiguracji.
R贸偶nice nie tylko w budowie W tab. 1 zestawiono wa偶niejsze r贸偶nice zwi膮zane z dzia艂aniem obu rodzaj贸w pami臋ci. Jak wida膰, ka偶dy typ ma swoje zalety i wady. Jedn膮 z wi臋kszych niedogodno艣ci wszystkich pami臋ci Flash jest niemo偶no艣膰
Rys. 5
skasowania pojedynczego bajtu. Operacja ta zawsze dotyczy ca艂ego bloku (lub sektora - nazewnictwo zale偶y od producenta). Je艣li zachodzi potrzeba wymazania fragmentu bloku, to niestety musi by膰 on wcze艣niej przeniesiony w inne miejsce. Je艣li si臋 tego nie zrobi, to dane, kt贸re powinny pozosta膰 w pami臋ci, zostan膮 skasowane. Wynika z tego, 偶e im mniejszy b臋dzie blok, tym sprawniej b臋dzie mo偶na kasowa膰 dane. W pami臋ciach NOR blok ma wielko艣膰 od 16 do 128 kB. W NAND-ach bloki maj膮 pojemno艣膰 od 8 do 16 kB.
Organizowanie danych w pami臋ciach Flash zwi膮zane jest z technik膮 stronicowania. Koncepcje stronicowania, jak mo偶na si臋 spodziewa膰, s膮 odmienne dla pami臋ci z matrycami NOR i NAND. Pami臋膰 NOR w trybie stronicowym grupuje do czterech adres贸w nale偶膮cych do jednej strony. Pierwszy dost臋p do nich trwa znacznie d艂u偶ej w por贸wnaniu z kolejnymi. W pami臋ciach NAND ka偶dy sektor jest podzielony na strony zazwyczaj o pojemno艣ci 512 bajt贸w. Czas dost臋pu do danych w obszarze jednej strony podczas odczytu jest kr贸tki, niestety jest to okupione d艂ugim czasem przeskoku do innych stron.
Stosunkowo du偶a 艂atwo艣膰 kasowania i programowania Flashy powoduje, 偶e s膮 one ch臋tnie wykorzystywane jako pami臋ci programu w sys-
WordUne SourceLJne
Basic Cel! Bit LJne Contact
Floatlng Gate
NOR
temach mikroprocesorowych. Warunkiem koniecznym do takich zastosowa艅 jest zapewnienie ca艂kowicie swobodnego dost臋pu do danych podczas operacji odczytu, bez wzgl臋du na ich umieszczenie w pami臋ci. Trudno przecie偶 sobie wyobrazi膰, 偶e procesor, np. po pobraniu rozkazu skoku, b臋dzie czeka艂 a偶 pami臋膰 prze艂膮czy si臋 na pobranie danej z odleg艂ego adresu. Warunek ten spe艂niaj膮 na pewno pami臋ci NOR. Mo偶na w nich uzyska膰 czas dost臋pu nawet poni偶ej 35 ns. W pami臋ciach pracuj膮cych w trybie stronicowym czas dost臋pu do pierwszej strony wynosi ok. 150 ns, do nast臋pnych za艣 2 0 ns. A jak jest z pami臋ciami NAND? Zapewniaj膮 one wprawdzie do艣膰 szybki dost臋p do danych zawartych w jednej stronie -ok. 50 ns, lecz prze艂膮czenie strony trwa a偶 2 5 jis.
R贸偶nice pomi臋dzy omawianymi rodzajami pami臋ci ujawniaj膮 si臋 r贸wnie偶 w przypadku operacji programowania i kasowania. NOR Flash daje si臋 programowa膰 w zupe艂nie dowolnej kolejno艣ci, potrzebuj膮c do tego ok. 10 u.s na bajt lub s艂owo. W przypadku kom贸rek typu Multi Bit czas ten wyd艂u偶a si臋, lecz w takich pami臋ciach stosuje si臋 specjalny bufor zezwalaj膮cy na r贸wnoleg艂e programowanie wielu bajt贸w lub s艂贸w. Dzi臋ki temu zabiegowi uzyskuje si臋 czas programowania r贸wny ok. 10 u.s na bajt lub s艂owo, kt贸ry -
b)
Bit Lin臋 Contact Bit Lin臋 Select CZ Word Lin臋 I Basic Celi i I
Floating Gate
Ground LJne Select Source
NAND
Rys. 6
Elektronika Praktyczna 11/2002
99
PODZESPO艁Y
1 Pami臋ci FlMh starszych generacji
- - Stan 0' Steni1 Z - : - : ;
Stan 00' Stan 'OT Stan 10' Stan 11
Rys. 7
jak si臋 przewiduje - ju偶 wkr贸tce powinien zmale膰 do warto艣ci poni偶ej 2 u.s. Pami臋ci NAND mog膮 by膰 programowane tylko ca艂ymi stronami, zapis jednego bajtu nie jest mo偶liwy. Programowanie strony trwa ok. 200 u.s, co przy typowej pojemno艣ci strony r贸wnej 512 bajt贸w oraz uwzgl臋dnieniu niezb臋dnych operacji po艣rednich daje ok. 0,5 u.s na bajt. W przypadku kom贸rek Multi Bit programowanie strony zajmuje 900 u.s, a bajtu 2 u.s.
Jak pami臋tamy, blok danych w pami臋ci NOR ma rozmiar od 16 do 128 kB. Do wykasowania typowego bloku 64 kB potrzeba a偶 0,7 s. Wynika to z faktu, 偶e przed wykasowa-niem ka偶dej kom贸rki bloku musi by膰 ona wcze艣niej zapisana warto艣ci膮 0. Operacja ta jest niezb臋dna w celu zagwarantowania jednakowego 艂adunku we wszystkich p艂ywaj膮cych bramkach przed rozpocz臋ciem kasowania. W nowoczesnych pami臋ciach stosuje si臋 odpowiednie we-
10
lii
wR% 0.1 a.
0.01
Rys. 8
* -----2 bity/kom贸rk臋 NAND ------4 bity/kom贸rk臋 NOH
艢i i
0.4 0.35 0.25 0.18 0.15 0.13 Technologia (\im)
wn臋trzne kontrolery programowania i kasowania odci膮偶aj膮ce mikroprocesor. Pami臋ci NAND posiadaj膮 blok o rozmiarze 16 kB. Jego kasowanie trwa ok. 2 ms. W tym przypadku nie trzeba wst臋pnie wyr贸wnywa膰 艂adunku w p艂ywaj膮cych bramkach.
Konfiguracja NOR gwarantuje, 偶e 100% kom贸rek pami臋ci wytrzyma 100000 cykli programowania/kasowania. Nie oznacza to oczywi艣cie, 偶e 100001-sze kasowanie/programowanie zniszczy nam ca艂kowicie pami臋膰. Od tego momentu musimy by膰 jednak przygotowani na zwi臋kszone prawdopodobie艅stwo pojawiania si臋 b艂臋dnych odczyt贸w.
Znacznie gorzej jest z pami臋ciami NAND. Te z za艂o偶enia gwarantuj膮 wykorzystywanie typowo 98% kom贸rek pami臋ci. Co gorsza, pojawienie si臋 b艂臋dnych blok贸w mo偶e si臋 ujawni膰 dopiero podczas normalnej pracy uk艂adu. Konieczne staje si臋 wi臋c markowanie zepsutych blok贸w jako "bad" i p贸藕niejsze ich pomijanie. Jak na ironi臋, producenci gwarantuj膮 d艂u偶sz膮 偶ywotno艣膰 tych pami臋ci w por贸wnaniu z NOR-ami, oceniaj膮c j膮 na 250000 cykli zapisu/kasowania.
Trendy
Jak ziliustrowano to na rys. 9, w przypadku pami臋ci NAND i NOR, w kt贸rych zastosowano rozwi膮zanie Multi Bit - 2 bity na kom贸rk臋, przeliczniki S/MB s膮 do siebie zbli偶one z nieznaczn膮 przewag膮 NAND. Wyra藕nie konkurencyjne mog膮 by膰 4-bitowe pami臋ci NOR. Dla zwyk艂ych u偶ytkownik贸w pocieszaj膮cy jest na pewno silnie malej膮cy przebieg prezentowanych funkcji. Wykres ten nie oddaje jednak rzeczywistych koszt贸w ponoszonych podczas budowy urz膮dze艅 wykorzystuj膮cych
&
n
l
2 bity/kom贸rk臋 NOR
2 bity/kom贸rk臋 nand
0.1
2000 2001 2002 2003 2004 2005
Rys. 9
pami臋ci Flash. Wiele aplikacji wykorzystuj膮cych pami臋ci NAND wymaga stosowania w nich dodatkowych kontroler贸w, podczas gdy NOR-y mo偶na bezpo艣rednio do艂膮cza膰 do wi臋kszo艣ci mikroprocesor贸w. Po艂o偶enie nacisku na rozw贸j 4-bitowych pami臋ci NOR spowoduje, 偶e stan膮 si臋 one uk艂adami nadaj膮cymi si臋 do wi臋kszo艣ci zastosowa艅. Przysz艂o艣膰 nale偶y wi臋c raczej do pami臋ci NOR, chyba 偶e pojawi si臋 jaka艣 kolejna odmiana. Wszystko wskazuje na to, 偶e stanie si臋 to faktem. Znany producent - STMicroe-lectronics opracowa艂 i wprowadza do produkcji pami臋ci tzw. Ligh-tFlash, o kt贸rych z pewno艣ci膮 b臋dziemy jeszcze pisa膰.
Podsumowanie
Wierz臋, 偶e doczekam czas贸w, w kt贸rych b臋d膮 dost臋pne odmiany pami臋ci nieulotnych (mo偶e b臋dzie to jaki艣 zupe艂nie nowy typ) b臋d膮ce dok艂adnymi odpowiednikami statycznych pami臋ci RAM. Warto w tym miejscu przypomnie膰, 偶e w艂a艣ciwie uk艂ady takie ju偶 istniej膮, cho膰 nie s膮 bardzo powszechne. Przyk艂adem mog膮 by膰 pami臋ci RAM z podtrzymaniem danych za pomoc膮 umieszczonej w obudowie pami臋ci baterii litowej (opracowane przez dawnego Dallasa). Interesuj膮ce s膮 r贸wnie偶 pami臋ci FRAM, b臋d膮ce bardzo pomys艂owym po艂膮czeniem pami臋ci SRAM i Flash, oferowane przez firm臋 Ramtron. Jaros艂aw Doli艅ski, AVT jaroslaw.dolinski@ep.com.pl
Dodatkowe informacje
Artykut powtat w oparciu o materia艂y firmy STMicroelectronics.
Wi臋cej informacji mo偶na znale藕膰 na stronach: http://developer.intel.com/design/flcomp/
isfbgrnd.htm http://www.howstuffworks.com/flash-
memoryi .htm httpy/www.commsdesign.com/main/2000/05/
0005feat2.htm http://www.st.com/stonline/prodpres/memory/
flash/fljight.htm
100
Elektronika Praktyczna 11/2002
NA CD KATALOGI MIKROKONTROLEROW Z PAMI臉CI膭 FLASH
g Mi臋dzynarodowy magazyn elektronik贸w konstruktor贸w
grudzie艅
15 z艂 50 gr (wtym 7% vat)
t
PROC
AKUMULATOR脫W
miTlERFEJS GRAFICZNYCH WY艢WIETLACZY LCD
BtaNiii iffl
DZESPO艁Y:
II1ISROKONTROLERY
SPRZ臉T:
BLUETOOTH \ MIKROPROCESk
lf0-795
9771640 769022
12>
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 260,- z艂 (brutto) za 1 stron臋 w EP. Przysy艂anych tekst贸w nie zwracamy. Redakcja zastrzega sobie prawo do dokonywania skr贸t贸w.
PC-clock
W artykule
przedstawiamy niezwykle
pomys艂owy projekt zegara
wsp贸艂pracuj膮cego
z komputerem PC, kt贸ry
wy艣wietla w czasie
dzia艂ania komputera
bie偶膮cy czas systemowy
ustawiony w jego zegarze
pok艂adowym.
Projekt
105
Schemat elektryczny zegara pokazano na rys. 1. Przed om贸wieniem jego budowy, kr贸tko przedstawimy interfejs LPT. Interfejs LPT, czyli r贸wnoleg艂y port drukarkowy, w starszych modelach komputer贸w PC byl montowany jako dodatkowa karta i konfigurowany zworkami. We wsp贸艂czesnych komputerach jest zintegrowany z p艂yt膮 i konfigurowany z poziomu
BlOS-a. BIOS ma standardowo okre艣lone trzy porty r贸wnoleg艂e: LPTl, LPT2 i LPT3. W czasie startu systemu (POST - Power On Self Test) program umieszczony BlOS-ie testuje je w kolejno艣ci adres贸w: 3BCh, 378h, 278h. Adresy poszczeg贸lnych port贸w znajduj膮 si臋 w czterech kolejnych dwubaj-towych zmiennych pocz膮wszy od adresu 0:0408H.
Standardowo komputer PC posiada jeden port LPT o adresie 378h i przerwaniu IRQ7. Dodaj膮c kolejny standardowy port LPT2 powinien by膰 ustawiony adres 278h i przerwa-
nie IRQ5, kolejny port LPT3 powinien mie膰 adres 3BCh i dowolny wolny numer przerwania IRQ. Aby zainstalowa膰 port LPT4 i m贸c np. korzysta膰 z przerwa艅 obs艂ugiwanych przez BIOS, trzeba najpierw za pomoc膮 odpowiedniego programu umie艣ci膰 jego adres w zmiennej o adresie 0:0410H.
Sygna艂y LPT s膮 wyprowadzone na 25-stykowe z艂膮cze szufladowe. Zakres napi臋膰 od 0V do ok. 3,5 V, czyli zgodny ze standardowymi poziomami TTL. Maksymalna obci膮偶alno艣膰 pr膮dowa wyj艣膰 mie艣ci si臋 w przedziale 10...30 mA, a dzi臋ki
Rys. 1
List. 1. Program SWG_V1.CPP
艂include
艂include
extern u nsigned _heaplen=600;//1024;
extern u nsigned _stklen=300 ; / / 512 ;
Void int errupt _lc( . . .);void interrupt (*old_lc) (...);
char t[] ={63,6,91,79,102,109,125,39,127 ,111);//kszta艂t cyfer
char q,w ,s,z,j=l,i=31;
艂define LPT 0x37 8 //Adres portu LPT
Void mai n()
old_lc=g etvect(0xlc);setvect(0xlc,_lc);
keep(O, ( _SS+((_SP)/16)-_psp)-30);
Void int errupt _lc(...) //funkcja zegar
if (]==D {outport(LPT+2,4);outport(LPT, t[s]) ;
outport(LPT+2,1+4);
if (i>30)
{asm { mov ah,2;int lah;mov q,ch;mov W , cl) s=q4 ; Z=W4 ;
i=0;q= q- (s4) ;W=W- (Z<<4) ;) ) //odczyt godziny
if (j==2) {outport(LPT+2,4);outport(LPT, t[q]) ;
outport (LPT+2,2+4);)
if (j==3) {outport(LPT+2,4);outport(LPT, t[Z]) ;i++;
outport (LPT+2, 0) ;)
if (j==4) {outport(LPT+2,4);outport(LPT, t[W]); j=0;
outport(LPT+2,8+4) ;)
Elektronika Praktyczna 12/2002
103
PROJEKTY CZYTELNIK脫W
Tab. 1. Przypisanie numer贸w styk贸w gniazda DB25 poszczeg贸lnym bitom rejestr贸w LPT1
Bit Rejestr
378h 379h 37Ah
0 2 - (1)
1 3 - (14)
2 4 - 16
3 5 15 (17)
4 6 13 IRQ
5 7 12 -
6 8 10 IRQ -
7 9 (11) -
wbudowanym zabezpieczeniom przypadkowe zwarcie nie powinno ich uszkodzi膰.
Bezpo艣rednie sterowanie portu LPT odbywa si臋 za pomoc膮 instrukcji Out (zapisz -ustaw stany logiczne na stykach) i In (odczytaj - sprawd藕 stany logiczne na stykach).
Standardowy pory LPTl (3 78h) ,,widziany" jest od strony programowej jako trzy rejestry umieszczone pod kolejnymi adresami: 378h - dane do drukarki (zapis), 379h - rejestr statusu drukarki (odczyt), 37Ah - sterowanie drukarki (odczyt/zapis)- tab. 1. Styki 18...25 z艂膮cza DB25 s膮 do艂膮czone do masy, a sygna艂y uj臋te w nawiasy s膮 zanegowane. Wyja艣nienia wymaga bit 4 rejestru 37Ah - ustawienie
List. 2. Program SWG_V2.CPP
艂include
艂include
extern unsigned _heaplen=600;//1024;
extern unsigned _stklen=300;//512;
Void interrupt _7 (...);
char
t[]={63+128,6+128,91+128,79+128,102+128,109+12 8,125+128,39+12 8,127+128,111+128);
// kszta艂t cyfer
char q,W,s,z,j=l,i;
艂define LPT 0x378 //adres portu LPT
艂define IRQ 7 //numer przerwania IRQ
Void main()
{
outport(LPT,128);//napiecie zasilania dla WE555
outport(LPT+2,16);//LPT mo偶e przyjmowa膰 przerwania
_dos_setvect(8+IRQ,_7);
outportb(0x21,inportb(0x21) & (2 55-(1<keep(0, (_SS+((_SP)/16)-_psp)-30);
Void interrupt _7 (.
if (j = = l) {outport(LPT+2,4+ 16);outport(LPT,t[s]); outport(LPT+2,1+4+16); if (li)
{asm {mov ah,2;int lah;mov q,ch;mov W,cl) s=q>>4;z=w>>4;
q=q- (s4) ;W=W- (z<<4) ;))//odczytaj zegar if (j = = 2) {outport(LPT+2,4+ 16);outport(LPT,t[q]); outport(LPT+2,2+4+16);)
if (j = = 3) {outport(LPT+2,4+16);outport(LPT,t[z]) ;i+ + ; outport(LPT+2,0+16);)
if (j = = 4) {outport(LPT+2,4+ 16);outport(LPT,t[w]); j=0; outport(LPT+2,8+4+16);) ]++; outportb(0x20,0x20) ;
tego bitu na ,,1" uaktywnia przyjmowanie przerwa艅 przez port LPT.
Program steruj膮cy prac膮 zegara zosta艂 napisany w j臋zyku C++. Jego zadaniem jest takie sterowanie portem LPT, aby na do艂膮czonym do niego cztero pozycyjnym wy艣wietlaczu LED by艂 w spos贸b ci膮g艂y wy艣wietlany bie偶膮cy czas odczytany z RTC [Real Time Clock) komputera. Poza tym program powinien tylko w minimalnym stopniu utrudnia膰 korzystanie z komputera. Zapewnia to prosty program rezydentny (zajmuje w pami臋ci ok. 5 kB).
Program przygotowano w dw贸ch wersjach. Cykliczne wywo艂ywanie programu w pierwszej wersji realizowane jest przez przerwanie zegara lCh (program SWG_V1.CPP - list. 1). Przerwanie to wywo艂ywane jest 18
WYKAZ ELEMENT脫W
Rezystory
7x200Q 2x47kQ Kondensatory
2xl00nF
P贸艂przewodniki
4xma艂y czterocyfrowy wy艣wietlacz multipleksowany LED ze wsp贸lng katodg lub cztery pojedyncze wy艣wietlacze NE555 (ULY7855N) R贸偶ne Wtyk DB25
razy na sekund臋. Takie rozwi膮zanie dzia艂a poprawnie, ale powoduje wyra藕ne migotanie cyfr na wy艣wietlaczu, ze wzgl臋du na jego multiplek-sowe sterowanie. Zwi臋kszenie cz臋stotliwo艣ci wyst臋powania tych przerwa艅 mo偶e zaburzy膰 prac臋 RTC komputera. Lepszym rozwi膮zaniem jest do艂膮czenie do wej艣cia IRQ styku Centronics generatora przebiegu prostok膮tnego, kt贸ry cyklicznie b臋dzie wywo艂ywa艂 przerwanie IRQ7 (IRQ7 jest standardowo zwi膮zane z LPTl) z cz臋stotliwo艣ci膮 oko艂o 100 Hz. Ka偶de przerwanie powoduje uruchomienie programu obs艂uguj膮cego wy艣wietlacz. Taki spos贸b dzia艂ania realizuje program SWG_V2.CPP, kt贸ry pokazano na list. 2.
Do zasilania generatora wykorzystano lini臋 danych D7 (styk 9). Wersj臋 藕r贸d艂ow膮 i w postaci skompilowanej (w modelu Tiny) obydwu program贸w (dla DOS!) publikujemy na CD-EP12/2002B.
Prezentowane programy stanowi膮 tylko przyk艂ad korzystania z LPT do cel贸w innych ni偶 drukowanie i nie za-implementowano w nich takich funkcji jak automatyczne wykrywanie portu LPT, automatyczne odinstalowanie itp. Na testowanych komputerach porty by艂y ustawione w tryb pracy standard i nie ma konieczno艣ci stosowania bardziej zaawansowanych tryb贸w wymiany informacji, jak np. EPP/ECP. S艂awomir Zimo艅czyk
104
Elektronika Praktyczna 12/2002
BIBLIOTEKA EP
IV ^Bibliotece LP" prezentujemy ksi膮偶ki dotycz膮ce zogodnie艅 zwi膮zanych z r贸偶nymi dziedzinami techniki, jednak zawsze przydatne w pracy elektronika iub 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 polki, 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,
Uwaga! Wi臋kszo艣膰 prezentowanych ksi膮偶ek mo偶na zam贸wi膰 w Dziale Handlowym AVT (patrz str, 139), Chcemy w ten spos贸b udost臋pni膰 je Czytelnikom EP,
Mark Zwoli艅ski: "Projektowanie uk艂ad贸w cyfrowych z wykorzystaniem j臋zyka VHDL", WK艁 2002
艢Mctronlld PraMyoznoj
Zwolennicy VHDL-a mog膮 czu膰 si臋 dopieszczeni przez Wydawnictwa Komunikacji i 艁膮czno艣ci, poniewa偶 jego nak艂adem ukaza艂a si臋 druga w tym roku ksi膮偶ka po艣wi臋cona temu w艂a艣nie j臋zykowi. Uk艂ad ksi膮偶ki przypomina -w najlepszym tego s艂owa znaczeniu - podr臋cznik, w kt贸rym opr贸cz wiedzy bezpo艣rednio zwi膮zanej z VHDL, autor po艣wi臋ca nieco miejsca przedstawieniu podstaw metodologii projektowania, technologii produkcji i architekturom wsp贸艂czesnych uk艂ad贸w PLD i ich parametrom elektrycznym. Przyst臋pnie wy艂o偶ono tak偶e podstawy algebry Boole'a oraz najpopularniejsze metody r臋cznej syntezy uk艂ad贸w kombinacyjnych, dzi臋ki czemu mniej wprawni w technice cyfrowej czytelnicy ksi膮偶ki mog膮 "na miejscu" zdoby膰 podstawow膮 wiedz臋, bardzo przydatn膮 we wprawnym pos艂ugiwaniu si臋 uk艂adami cyfrowymi.
Autor opieraj膮c si臋 na swoim do艣wiadczeniu dydaktycznym, szczeg贸lnie wiele miejsca po艣wi臋ci艂 opisom w VHDL kombinacyjnych, synchronicznych i asynchro-nicznych, sekwencyjnych blok贸w funkcjonalnych, czyli blokom
uk艂ad贸w cyfrowych, z kt贸rymi najcz臋艣ciej spotykaj膮 si臋 projektanci w praktyce. Ilustracj膮 mo偶liwo艣ci VHDL-a jest projekt prostego mikroprocesora, kt贸rego opis zajmuje 450 linii - na tyle ma艂o, 偶e mo偶na go przy odrobinie wprawy do艣膰 szybko przeanalizowa膰.
Osobne rozdzia艂y autor po艣wi臋ci艂 problematyce symulacji modeli VHDL, a tak偶e testowaniu system贸w cyfrowych i metodom projektowania ich w taki spos贸b, 偶eby 艂atwo poddawa艂y si臋 testowaniu. Czytelnik贸w zainteresowanych symulacj膮 opisu w VHDL zainteresuje z pewno艣ci膮 rozdzia艂 po艣wi臋cony rozr贸偶nieniu sposob贸w opisu dzia艂ania sprz臋tu na potrzeby symulacji i syntezy logicznej, kt贸ry - jak pokazuje praktyka - nie jest jednakowy.
Zamieszczone na ko艅cu ksi膮偶ki dodatki tak偶e zawieraj膮 wiele informacji niedost臋pnych dotychczas w krajowej literaturze. S膮 to m.in.: przedstawienie standard贸w "naros艂ych" wok贸艂 norm VHDL, r贸偶nice pomi臋dzy r贸偶nymi (kalen-darzowo) wersjami bazowych standard贸w j臋zyka VHDL, om贸wienie regu艂 korzystania ze zmiennych wsp贸艂dzielonych. Autor por贸wnuje tak偶e pewne konstrukcje zapisane w VHDL z odpowiednikami w Verilogu.
Na ko艅cu rozdzia艂贸w autor zamieszcza przyk艂adowe zadania do samodzielnego rozwi膮zania, zamieszczaj膮c jednocze艣nie (na ko艅cu ksi膮偶ki) odpowiedzi do niekt贸rych z nich.
Projektowanie uk艂ad贸w cyfrowych / wykorzystaniem
VHDL
u i OIOOam
Na zako艅czenie chcemy podkre艣li膰 wysok膮 jako艣膰 pracy wykonanej przez t艂umaczy: znaczna cz臋艣膰 sukcesu, jaki ta ksi膮偶ka niew膮tpliwie osi膮gnie, jest ich zas艂ug膮.
Reasumuj膮c: ksi膮偶k臋 gor膮co polecamy i to nie tylko pocz膮tkuj膮cym u偶ytkownikom j臋zyka VHDL - liczba zawartych w niej praktycznych informacji jest bardzo du偶a, w zwi膮zku z czym praktycznie ka偶dy projektant znajdzie w艣r贸d nich rozwi膮zanie lub cho膰by wskaz贸wk臋 dla siebie.
Elektronika Praktyczna 12/2002
137
BIBLIOTEKA EP
Praca zbiorowa: "Mechatronika11, REA 2002
Mechatronika to stosunkowo nowa dziedzina techniki, kt贸ra powsta艂a w wyniku coraz silniejszej integracji elektronicznych system贸w steruj膮cych z elementami mechanicznymi. Dzi臋ki takiemu po艂膮czeniu powstaj膮 coras bardziej precyzyjne systemy regulacyjne stosowane praktycznie w ka偶dej ga艂臋zi wsp贸艂czesnego przemys艂u.
Prezentowana ksi膮偶ka zawiera komplet informacji o wsp贸艂czesnych systemach automatyki (elektrycznych, a tak偶e pneumatycznych i hydraulicznych) i stosowanych w nich sensorach. Autorzy przedstawiaj膮 teoretyczne podstawy system贸w i technik regulacji, nieco miejsca po艣wi臋caj膮 tak偶e robotyce, systemom CAD i technice sterowania numerycznego.
Autorzy przedstawiaj膮 tak偶e szereg "pobocznych" zagadnie艅, kt贸re s膮 coraz bardziej istotne tak偶e dla wsp贸艂czesnych projektant贸w system贸w automatyki i sterowania. Chodzi o systemy zapewnienia jako艣ci, bezpiecze艅stwo i higien臋 pracy, podstawy zarz膮dzania (m.in. projektami), a tak偶e techniki prezentacji.
Poniewa偶 tak ogromn膮 ilo艣膰 wiedzy i informacji autorzy zmie艣cili na 384 stronach, nie wszystkie zagadnienia potraktowano tak g艂臋boko, jak na to zas艂uguj膮, chocia偶 trudno uzna膰 to za wad臋 ksi膮偶ki. Ksi膮偶k臋 charakteryzuje doskona艂a szata graficzna (zosta艂a wydana na papierze kredowanym, zamieszczone rysunki i zdj臋cia s膮 w pe艂nym kolorze), staranna edycja, warto te偶 zwr贸ci膰 uwag臋 na wysok膮 jako艣膰 t艂umaczenia.
Karl Heinz-Seidel: "S艂ownik techniczny niemiecko-polski i polsko-niemiecki11, REA 2002
Legenda:
Jako艣膰 i przydatno艣膰 s艂ownika technicznego zale偶y od liczby zwartych w nim hase艂, ale tak偶e od kompetencji autora, kt贸ry przygotowuje ich opisy. Trudno jest by膰 erudyt膮 we wsp贸艂czesnej technice, jeszcze trudniej by膰 erudyt膮 dwuj臋zycznym. Dlatego z pewnymi obawami podeszli艣my do prezentowanego s艂ownika, ale zgodnie z zapowiedziami zawartymi w przedmowie, autor - Karl Seidel - skutecznie si臋 broni. Wybieraj膮c losowo kilkana艣cie hase艂 zwi膮zanych z elektronik膮, sprawdzali艣my poprawno艣膰 ich t艂umacze艅 i praca autora okaza艂a si臋 bez zarzutu.
WORTERBUCH
TECHNIK
DeutGC h-Pol n 1 seh
S艁OWNIK TECHNICZNY
polsko-nie m艂ocki
riram
Liczymy na podobnej jako艣ci s艂ownik polsko-angielski i angielsko-polski, bo w uprawianej przez nas dziedzinie j臋zyk angielski wzi膮艂 zdecydowanie g贸r臋 nad niemieckim.
Russ Haines, "Cyfrowe przetwarzanie d藕w臋ku", Mikom 2002T zawiera CD-ROM
Ksi膮偶ka jest kompendium wiedzy, 艂agodnie wprowadzaj膮cym we wsp贸艂czesne (czytaj cyfrowe) techniki rejestracji, przechowywania i odtwarzania d藕wi臋k贸w. W szesnastu rozdzia艂ach autor przedstawia istot臋 d藕wi臋ku, sposoby konwersji sygna艂贸w analogowych do postaci cyfrowej, przybli偶a budow臋 i zasad臋 dzia艂ania przetwornik贸w d藕wi臋kowych, a tak偶e standardy wej艣膰 sygna艂贸w audio.
ksi膮偶ka wybitna, polecamy!
ksi膮偶ka o du偶ych walorach praktycznych, polecamy!
mo偶e si臋 przyda膰
daleka od doskona艂o艣ci
nie warto kupowa膰
Z punktu widzenia elektronika ksi膮偶ka ma zbyt silny "przechy艂" w stron臋 aplikacji komputerowych, co cz臋sto sprowadza si臋 do umiej臋tnego pos艂ugiwania si臋 programami narz臋dziowymi i standardowymi urz膮dzeniami wchodz膮cymi w sk艂ad wyposa偶enia PC (jak np. CD-ROM czy karta d藕wi臋kowa). Obni偶a to nieco [z naszego punktu widzenia) walory praktyczne ksi膮偶ki, ale nie rzetelno艣膰 zawartych opis贸w. Interesuj膮cym dla fan贸w PC dodatkiem do ksi膮偶ki jest p艂yta CD-ROM, na kt贸rej znajduj膮 si臋 pr贸bki muzyczne, w tym opracowane na potrzeby ksi膮偶ki, a tak偶e oprogramowanie narz臋dziowe do edycji i przetwarzania d藕wi臋ku.
mm
PRZETWAKHMEDZWP
prosto - pogl膮dowo - wnikliwie
138
Elektronika Praktyczna 12/2002
PROJEKTY
Punch
Programator cz臋艣膰 1
AVT-5092
uniwersalny,
Dla nas opublikowanie
w EP10/96 opisu
programatora A VT-320 by艂o
z pewno艣ci膮 historycznym
wydarzeniem. By艂 to jeden
z pierwszych programator贸w
urno 偶h wi aj膮cych
program o wan ie
mikrokontroler贸w '51
z pami臋ci膮 Flash.
Teraz przedstawiamy jego
godnego nast臋pc臋 -
programator, kt贸ry nazwali艣my
Punch, co w j臋zyku
angielskim oznacza perforator
do ka艅 papierowych -
niegdy艣 no艣nik贸w program贸w
i danych dla komputer贸w.
Rekomendacje: programator
jest podstawowym przyrz膮dem
w pracowni elektronika, a
wi臋c ten opis mo偶e
zainteresowa膰 wi臋kszo艣膰
naszych Czytelnik贸w.
PROJEKT OK艁ADKI
W artykule przedstawiono projekt uniwersalnego programatora element贸w p贸艂przewodnikowych dzia艂aj膮cego w oparciu o skryptowy j臋zyk polece艅 FEMTO. Programator umo偶liwia programowanie element贸w, kt贸re zawiera jego biblioteka, a tak偶e wprowadzenia w艂asnych procedur. Obecnie dost臋pne s膮 skrypty dla takich element贸w jak mikrokontrolery Atmela: AT89C1051/2051/4051, AT89C51/ 52/5 5, AVR-贸w AT90S2313, AT90S8515, AT90S8535 i pokrewnych, a tak偶e szeregowych pami臋ci EEPROM z interfejsem PC.
Ka偶dy, kto powa偶nie my艣li o konstruowaniu w艂asnych urz膮dze艅 wykorzystuj膮cych mikroprocesory oraz chcia艂by samodzielnie pisa膰 dla nich oprogramowanie, musi przygotowa膰 si臋 do tego przedsi臋wzi臋cia.
Musi przede wszystkim "zdoby膰" dane techniczne i informacje
zwi膮zane z budow膮 i funkcjono-w ani em m ikr okonti o le r a, kt贸ry chce zastosowa膰. Nast臋pnie nale偶y postara膰 si臋 o narz臋dzia programistyczne (kompilatory) oraz programator.
Karty katalogowe mikrokontroler贸w oraz oprogramowanie narz臋dziowe mo偶na znale藕膰 w Interne-cie - chocia偶by na stronach producent贸w danego podzespo艂u.
Programator trzeba niestety kupi膰, ale mo偶na go tak偶e wykona膰 samemu. Wiele mikrokontroler贸w mo偶na programowa膰 po zamontowaniu w systemie za po艣rednictwem interfejsu ISP. Programatory, w kt贸rych wykorzystuje si臋 ten spos贸b programowania, s膮 bardzo proste w wykonaniu. Kilka z nich opisali艣my na 艂amach EP.
Je偶eli jednak trzeba b臋dzie zaprogramowa膰 element, kt贸ry nie ma takiej magistrali, albo w urz膮dzeniu znajdzie si臋 inny programowalny element, np. pami臋膰 EPROM, konieczne jest posiadanie standardowego programatora.
14
Elektronika Praktyczna 12/2002
Punch - programator uniwersalny
To w艂a艣nie zainspirowa艂o mnie do opracowania w艂asnego programatora.
Dobry programator, czyli jaki?
Moim zdaniem dobry programator powinien charakteryzowa膰 si臋 nast臋puj膮cymi cechami:
- niezawodno艣ci膮,
- du偶膮 liczb膮 programowanych typ贸w element贸w,
- nisk膮 cen膮,
a tak偶e por臋czno艣ci膮, 艂atwo艣ci膮 obs艂ugi, dost臋pno艣ci膮 serwisu i pomocy ze strony producenta oraz estetycznym wygl膮dem. Niestety, niekt贸re z tych wymaga艅 trudno ze sob膮 pogodzi膰. Rozbudowane programatory, bogate w zaawansowane opcje, s膮 bardzo drogie, a ze wsparciem producent贸w - szczeg贸lnie zagranicznych - r贸偶nie bywa. Maj膮c to na uwadze, mo偶e warto pokusi膰 si臋 o skonstruowanie w艂asnego programatora, kt贸ry nie b臋dzie konkurencyjny z produktami renomowanych firm, b臋dzie jednak prosty, uniwersalny i w miar臋 niedrogi?
Opis uk艂adu
Efektem dw贸ch lat pr贸b i nieustaj膮cego dopingu ze strony zespo艂u Elektroniki Praktycznej jest programator, kt贸rego schemat pokazano na rys. 1. Jego najwa偶niejsze parametry s膮 nast臋puj膮ce:
- napi臋cie programuj膮ce ustawiane programowo w przedziale od 3 do 13 V,
- napi臋cie zasilania programowanego elementu ustawiane programowo w przedziale od 2 do 7 V,
- najkr贸tszy mo偶liwy czas trwania impulsu potrzebnego do programowania elementu wynosi 100 ns,
- zewn臋trzne napi臋cie zasilania programatora powinno mie膰 warto艣ci: +16 VDC lub 12 VAC,
- mo偶liwo艣膰 samodzielnego wykonania prostych adapter贸w przeznaczonych dla r贸偶nego typu obud贸w programowanych element贸w,
- mo偶liwo艣膰 samodzielnego pisania skrypt贸w w j臋zyku polece艅 FEMTO dla nowych element贸w (skrypty s膮 "czystymi" plikami tekstowymi) - ograniczenia w przystosowaniu programatora do obs艂ugi nowych element贸w wi膮偶膮 si臋 jedynie z jego
mo偶liwo艣ciami technicznymi (patrz wy偶ej),
- wsp贸艂praca programatora z komputerem PC steruj膮cym jego prac膮.
Programator s艂u偶y do programowania element贸w z r贸wnoleg艂膮, 8-bitow膮 magistral膮 danych lub z magistral膮 szeregow膮, np. PC. Pojemno艣膰 pami臋ci programowanych element贸w mo偶e mie膰 64 kB lub wi臋cej. Sygna艂y wyj艣ciowe programatora przypisane s膮 na sta艂e do wyprowadze艅 jego zewn臋trznych gniazd JPl i JP2, tote偶 do programowania konkretnego elementu nale偶y przygotowa膰 adapter s艂u偶膮cy do po艂膮czenia wyprowadze艅 odpowiednich gniazd z wyprowadzeniami poszczeg贸lnych n贸偶ek elementu. Samodzielne przygotowanie adapter贸w nie jest trudne ani specjalnie kosztowne.
Dla om贸wienia budowy urz膮dzenia i istoty j臋zyka FEMTO nale偶y przypomnie膰 schemat w czasie programowania typowego elementu. Najlepiej zrobi膰 to na stosunkowo prostym przyk艂adzie, np. r贸wnoleg艂ej pami臋ci EPROM 2764.
W procesie programowania jest szereg p臋tli sk艂adaj膮cych si臋 z kilku prostych czynno艣ci. Najpierw nale偶y poda膰 napi臋cie zasilaj膮ce (np. +5V) na odpowiednie wyprowadzenia EPROM-u. Nast臋pnie na wyprowadzenia adresowe podawany jest adres kom贸rek w matrycy pami臋ci, kt贸re b臋d膮 programowane, a na magistral臋 danych jest przes艂any bajt, kt贸ry ma by膰 wpisany do kom贸rek. Nast臋pnie na wyprowadzeniu napi臋cia programuj膮cego powinno pojawi膰 si臋 napi臋cie o warto艣ci np. 12,75 V. Impuls na odpowiednim wej艣ciu steruj膮cym wymusi otwarcie bufor贸w magistrali danych EPROM-u i przyj臋cie zapisywanej danej. Wreszcie fina艂, czyli wygenerowanie impulsu zapisuj膮cego, np. na wej艣ciu CS EPROM-u, o czasie trwania 50 |is i polaryzacji ujemnej, przepisze bajt danych z magistrali EPROM-u do jego kom贸rek pami臋taj膮cych. Powtarzaj膮c te elementarne czynno艣ci odpowiedni膮 liczb臋 razy, mo偶na zapisa膰 ca艂膮 wewn臋trzn膮 matryc臋 pami臋taj膮c膮 elementu. Oczywi艣cie, w rzeczywisto艣ci wszystko jest troch臋 bardziej skomplikowane. Dane techniczne
elementu okre艣laj膮 parametry poszczeg贸lnych przebieg贸w na wyprowadzeniach elementu w czasie programowania i zale偶no艣ci czasowe mi臋dzy nimi. Nale偶y tak偶e pami臋ta膰 o procedurze sprawdzenia, czy wszystkie dane zosta艂y prawid艂owo zapisane w matrycy elementu. Jednak og贸lna zasada pozostaje taka jak opisana wy偶ej.
Je偶eli programator mo偶e wytworzy膰 odpowiednie przebiegi elektryczne i poda膰 je na w艂a艣ciwe n贸偶ki programowanego elementu, ca艂a operacja zako艅czy si臋 sukcesem. Zadaniem cz臋艣ci sprz臋towej programatora, o schemacie z rys. 1, jest w艂a艣nie generowanie odpowiednich impuls贸w i przesy艂anie ich na odpowiednie wyprowadzenia programowanego elementu. Jednak do sterowania programatorem niezb臋dny jest tak偶e program, kt贸ry nadzoruje dzia艂anie cz臋艣ci sprz臋towej programatora. Oprogramowanie steruj膮ce zainstalowane w komputerze zajmuje si臋 tak偶e magazynowaniem i przesy艂aniem danych, kt贸re maj膮 by膰 zapisane w programowanym elemencie oraz komunikuje si臋 z u偶ytkownikiem.
Opr贸cz cz臋艣ci sprz臋towej i programu steruj膮cego jest niezb臋dny jeszcze trzeci element tego systemu, czyli skrypt zapisany w j臋zyku FEMTO. W pliku skryptu zawarte s膮 zar贸wno polecenia dla programu steruj膮cego, np.: prze艣lij dane do programatora, zainicjuj programowanie, sprawd藕 poprawno艣膰 programowania, jak i szczeg贸艂owe rozkazy dla cz臋艣ci sprz臋towej, np. w艂膮cz zasilanie, wygeneruj na odpowiednim wyprowadzeniu impuls, ustaw kolejny adres, a tak偶e informacje dla u偶ytkownika w postaci komunikat贸w. Relacje pomi臋dzy tymi trzema cz臋艣ciami sk艂adaj膮cymi si臋 na programator mo偶na przedstawi膰 nast臋puj膮co:
skrypt
program steruj膮cy
t艂 cz臋艣膰 sprz臋towa
Wsp贸艂dzia艂anie tych trzech cz臋艣ci systemu pozwala zaprogramowa膰 uk艂ad, a tak偶e przystosowa膰 programator do obs艂ugi nowych typ贸w uk艂ad贸w.
Elektronika Praktyczna 12/2002
15
Punch - programator uniwersalny
Rys. 1. Schemat elektryczny programatora
16
Elektronika Praktyczna 12/2002
Punch - programator uniwersalny
Schemat przedstawiony na rys. 1 sprawia by膰 mo偶e wra偶enie skomplikowanego, lecz w istocie -za pomoc膮 prostych uk艂ad贸w, jakimi s膮 rejestry zatrzaskowe czy wzmacniacze operacyjne - realizuje podstawowe zadania cz臋艣ci sprz臋towej: podawanie na programowany element w艂a艣ciwych kombinacji stan贸w logicznych, generacj臋 odpowiednich napi臋膰 (programuj膮cego i zasilania), a tak偶e komunikacj臋 z programem steruj膮cym, kt贸ry rezyduje w PC-cie.
Uk艂ady U4, U8, Uli sterowane przez mikrokontroler s艂u偶膮 do podawania sygna艂贸w na element programowany. Uk艂ady Ul, U2 zwi膮zane s膮 z pami臋ci膮 RAM U3, w kt贸rej m.in. przechowywane s膮 dane zapisywane i odczytywane. Do generowania napi臋膰: programuj膮cego i zasilania s艂u偶膮 uk艂ady U7 i U9, tak偶e sterowane przez procesor. Komunikacja z komputerem steruj膮cym jest mo偶liwa dzi臋ki interfejsowi RS232 zbudowanemu na U5.
Wszystkie sygna艂y i napi臋cia wyprowadzone s膮 na z艂膮cza JPl i JP2. S膮 to m.in.: 8 linii portu danych I/O0...I/O7, 16 linii adresowych A0...A15, 10 linii port贸w oznaczonych symbolami F1...F10. Zsumowanie liczby potrzebnych linii wskazuje, 偶e zastosowany procesor AT89C52 nie jest w stanie ich obs艂u偶y膰 w艂asnymi portami i musi "podeprze膰 si臋" dodatkowymi uk艂adami. Wszystkie s膮 pod艂膮czone do wsp贸lnej magistrali danych obs艂ugiwanej przez port PO procesora Ul 7. Ka偶dy z tych uk艂ad贸w ma swoje wej艣cie aktywuj膮ce po艂膮czone z wyprowadzeniami multipleksera U12. Dzi臋ki temu procesor, wybieraj膮c po kolei ka偶dy z uk艂ad贸w, mo偶e do niego zapisa膰 dane lub je odczyta膰, wykorzystuj膮c w tym celu jeden port PO i cztery linie portu Pl steruj膮ce multiplekserem. W ten spos贸b wystawianych jest 16 bit贸w adresu potrzebnych np. w czasie programowania EPROM-u. Tak samo realizowany jest dost臋p do wewn臋trznej pami臋ci RAM programatora (U3), w kt贸rej przechowywane s膮 dane.
Niekt贸rych Czytelnik贸w mo偶e dziwi膰 obecno艣膰 w uk艂adzie drugiego procesora oznaczonego jako Uli. Element ten odpowiada za realizacj臋 kilku zada艅. Pe艂ni m.in.
rol臋 bramy wej艣cia-wyj艣cia magistrali danych, obs艂uguje port F10, na kt贸ry mo偶na wys艂a膰 precyzyjnie odmierzone impulsy o czasie od 100 ns do 6,5 ms, przechowuje tak偶e w swojej wewn臋trznej pami臋ci EEPROM dane konfiguracyj-ne programatora. Ka偶d膮 z tych funkcji mo偶na powierzy膰 osobnemu uk艂adowi scalonemu, jednak jest korzystniej, gdy wykonuje je tylko jedna kostka zajmuj膮ca du偶o mniej miejsca.
Zazwyczaj do zaprogramowania wielu typ贸w element贸w potrzebne jest napi臋cie programuj膮ce
0 warto艣ci znacznie przekraczaj膮cej +5 V. S膮 tak偶e elementy wymagaj膮ce w czasie programowania podwy偶szenia napi臋cia zasilania np. do +6,5 V. Z tego powodu warto艣膰 obu tych napi臋膰 mo偶e by膰 zmieniana i ustawiana programowo.
Do realizacji tego zadania wykorzystano w programatorze podw贸jny potencjometr elektroniczny typu DS1267 oznaczony na schemacie symbolem U9. Procesor, wysy艂aj膮c dane do potencjometru liniami port贸w P1.5...P1.7, mo偶e wymusi膰 na wyprowadzeniu potencjometru pe艂ni膮cego rol臋 suwaka napi臋cie z przedzia艂u 0...5 V. To jednak nie wystarcza, poniewa偶 do programowania potrzebne s膮 znacznie wy偶sze napi臋cia. W celu obej艣cia tego ograniczenia zastosowano wzmacniacze napi臋cia sta艂ego. Sp贸jrzmy na schemat: napi臋cie z wyj艣cia suwaka W0 U9...12 jest podawane poprzez opornik R15 na wej艣cie odwracaj膮ce wzmacniacza U7B. Po wzmocnieniu napi臋cie trafia do wt贸rnika emi terowego T6, natomiast poziom wzmocnienia uk艂adu wzmacniacz - tranzystor okre艣la p臋tla sprz臋偶enia zwrotnego R16, PRl
1 rezystor R15. Z emitera tranzystora napi臋cie programuj膮ce jest podawane poprzez tranzystor odcinaj膮cy T2 na z艂膮cze JPl. Tranzystor odcinaj膮cy jest potrzebny, aby w czasie wk艂adania lub wyjmowania z podstawki programowanego elementu na jego wyprowadzeniach nie pojawia艂y si臋 potencja艂y mog膮ce doprowadzi膰 do uszkodzenia. W podobny spos贸b wytwarzane jest napi臋cie zasilaj膮ce. Tym razem elementem odcinaj膮cym nie jest tranzystor, a przeka藕nik PKl, do kt贸rego dru-
giej pary styk贸w do艂膮czona jest dioda LED D2 sygnalizuj膮ca stan programowania.
Uk艂ad U5 jest zwyk艂ym konwerterem poziom贸w sygna艂贸w RS232 na poziom TTL. Program steruj膮cy komunikuje si臋 z cz臋艣ci膮 sprz臋tow膮, korzystaj膮c z portu COM komputera, kt贸rym s膮 przesy艂ane rozkazy steruj膮ce i dane. Po konwersji poziom贸w sygna艂y s膮 przekazywane do wyprowadze艅 RxD i TxD procesora.
Oprogramowanie procesora steruj膮cego cz臋艣ci膮 sprz臋tow膮 programatora
Uk艂ad stanowi膮cy cz臋艣膰 sprz臋tow膮 programatora nie jest jedynie biernym wykonawc膮 polece艅 programu steruj膮cego, ale posiada pewn膮 autonomi臋. Przede wszystkim jest wyposa偶ony w programowy interpreter j臋zyka FEMTO. Kody polece艅 dotycz膮 elementarnych dzia艂a艅 na wyprowadzeniach, np. zmiany poziomu z niskiego na wysoki na wyprowadzeniu Fl, operacji logicznych, np. por贸wna艅 stan贸w na wyprowadzeniach 1/ O0... I/O7 z ostatnio programowanym bajtem danych oraz dost臋pem do wewn臋trznych rejestr贸w niezb臋dnych do pracy cz臋艣ci programuj膮cej, do kt贸rych ma tak偶e dost臋p program steruj膮cy w PC-cie. Takim rejestrem jest licznik adresu, kt贸rego 16 bit贸w wyprowadzonych jest na z艂膮cze JP2 i oznaczonych symbolami A0...A15. W rzeczywisto艣ci licznik ten sk艂ada si臋 z 4 bajt贸w, a warto艣膰 bit贸w pozosta艂ych bajt贸w mo偶na za pomoc膮 polece艅 przepisywa膰 np. do wyprowadze艅 F1...F10.
Kolejn膮 grup膮 dost臋pnych z zewn膮trz rejestr贸w s膮 rejestry wska藕nik贸w dost臋pu do bufor贸w pami臋ci RAM cz臋艣ci sprz臋towej. Wska藕nik okre艣la po prostu adres, do kt贸rego mo偶na si臋 odwo艂a膰.
Jakie to s膮 rejestry (bufory)? Programator dzieli wewn臋trzn膮 pami臋膰 RAM (U3) na trzy obszary. W pierwszym lokowane s膮 kody rozkaz贸w j臋zyka FEMTO interpretowane w czasie pracy programatora. Jak to zosta艂o opisane w cz臋艣ci dotycz膮cej opisu dzia艂ania, kody okre艣laj膮 elementarne czynno艣ci, jakie cz臋艣膰 sprz臋towa musi wykona膰 np. w czasie zapisu danych do pami臋ci EPROM lub
Elektronika Praktyczna 12/2002
17
Punch - programator uniwersalny
w czasie weryfikacji itd. Drugi obszar pami臋ci jest przeznaczony na dane wej艣ciowe. Jest to po prostu wydzielona cz臋艣膰 pami臋ci RAM, w kt贸rej gromadzone s膮 dane przes艂ane z komputera do cz臋艣ci sprz臋towej i przeznaczone do zapisu w programowanym elemencie. W trzecim obszarze zorganizowano bufor danych wyj艣ciowych. Jest to obszar gromadzenia odczytanych danych z programowanego elementu przed przes艂aniem ich do komputera PC.
Ka偶dy z tych obszar贸w ma w艂asne wska藕niki okre艣laj膮ce jego po艂o偶enie i bie偶膮cy adres. Obszar kodu posiada jeden wska藕nik. Najpierw b臋dzie z niego korzysta艂 program steruj膮cy, kt贸ry prze艣le z PC-ta kody rozkaz贸w ze skryptu. Nast臋pnie wska藕nik zostanie wy-zerowany. Gdy rozpocznie si臋 programowanie, kontrol臋 nad nim przejmie procesor cz臋艣ci sprz臋towej, realizuj膮c kolejne rozkazy p臋tli programowania. Bufory danych maj膮 po dwie pary wska藕nik贸w. Jednym zarz膮dza wy艂膮cznie program steruj膮cy, natomiast drugim procesor cz臋艣ci sprz臋towej. Dzi臋ki temu mo偶liwe jest przesy艂anie danych, gdy tocz膮 si臋 jeszcze operacje programowania. Czytelnik tego opisu mo偶e zapyta膰: co si臋 stanie, gdy wska藕niki dotr膮 do ko艅ca obszaru bufor贸w? W贸wczas przestawiane s膮 od nowa na pocz膮tek swojego bufora. Dzi臋ki temu mo偶liwe jest programowanie element贸w o pojemno艣ci pami臋ci przekraczaj膮cej pojemno艣膰 zastosowanej pami臋ci RAM, czyli 32 k. Po prostu, gdy zapisana zostanie do programowanego elementu cz臋艣膰 danych z bufora, na zwolnione miejsce wpisywane s膮 nowe dane przesy艂ane z komputera.
Osobom, kt贸re zechc膮 skonstruowa膰 w艂asny programator, opieraj膮c si臋 na tym projekcie, nale偶y opisa膰 wsp贸艂prac臋 procesora g艂贸wnego cz臋艣ci sprz臋towej z procesorem Uli. Ze wzgl臋du na brak odpowiedniej liczby wyprowadze艅 Uli, komunikacja z nim odbywa si臋 z wykorzystaniem jedynie 5 linii magistrali danych D0...D4. Czterema m艂odszymi przesy艂ane s膮 po艂贸wki bajt贸w danych, natomiast linia D4 (zale偶nie od sytuacji) s艂u偶y do sygnalizacji gotowo艣ci do transmisji lub okre艣la, kt贸ra cz臋艣膰 bajtu jest aktualnie
transmitowana. Tak jak w przypadku innych uk艂ad贸w, procesor sygnalizuje ch臋膰 nawi膮zania kontaktu poprzez ustawienie poziomu niskiego na wyprowadzeniu multipleksera U12, do艂膮czonego do linii portu PD5 uk艂adu Uli.
Zastosowanie jako uk艂adu Uli szybkiego procesora AT90S2313 z rodziny AVR pozwoli艂o na programowe generowanie kr贸tkich, ale precyzyjnie odmierzonych impuls贸w, kt贸re mog膮 pojawia膰 si臋 na wyj艣ciu F10. Wytworzenie takich impuls贸w przez procesor rodziny '51 jest niemo偶liwe, poniewa偶 jak wynika z zasady jego pracy, impulsy taktuj膮ce wytwarzane s膮 na podstawie sygna艂u generatora kwarcowego przez podzia艂 jego cz臋stotliwo艣ci przez 12. Nawet wykonuj膮c nast臋puj膮ce bezpo艣rednio po sobie rozkazy, ustawienia kt贸rego艣 z port贸w naprzemian: na poziomie wysokim i nast臋pnie niskim, jeste艣my w stanie wygenerowa膰 impuls o czasie trwania nie kr贸tszym ni偶 1,09 |is, co wynika z cz臋stotliwo艣ci w艂asnej zastosowanego kwarcu Xl. Takie impulsy lub ich wielokrotno艣膰 mo偶na uzyska膰 na wyprowadzeniach F1...F9. Najcz臋艣ciej s膮 one wystarczaj膮ce.
Tam jednak, gdzie potrzebne s膮 kr贸tkie impulsy o ma艂ym b艂臋dzie czasu trwania, nale偶y u偶y膰 wyprowadzenia F10 obs艂ugiwanego przez AT90S2313. Zalet膮 procesor贸w AVR jest ich szybko艣膰 dzia艂ania wynikaj膮ca z tego, 偶e cykl rozkazowy w wi臋kszo艣ci przypadk贸w jest r贸wny jednemu okresowi sygna艂u generatora kwarcowego. Procesory te s膮 co najmniej 12 razy szybsze od ich odpowiednik贸w z rodziny '51. Dodatkowo, dzi臋ki wykorzystaniu skoku po艣redniego, adresowanego rejestrem Z, mo偶na wytworzy膰 dok艂adnie impuls o czasie trwania 100 ns lub jego wielokrotno艣ci.
Realizacja programowa generatora impuls贸w dodatnich o kr贸tkim czasie trwania jest nast臋puj膮ca: w pami臋ci programu procesora AVR wpisana jest tablica zawieraj膮ca np. 256 razy powt贸rzony rozkaz ustawienia portu PD6 (w programatorze obs艂uguje wyj艣cie F10) na poziom wysoki. Bezpo艣rednio za tablic膮 powinien by膰 rozkaz ustawiaj膮cy PD6 na poziom niski. Poniewa偶 oba roz-
WYKAZ ELEMENT脫W
Rezystory
Rl, R3, R4, R12: 2,2kQ R2, R5...R10: 10kO Rl 1: lkO R13, R14: 20kQ R15...R18: lOOkO
RPACK1: drabinka rezystor贸w 10kQ PR1: potencjometr wieloobrotowy 470kO
PR2: potencjometr wieloobrotowy 220kO
Kondensatory C1...C4: 47^F/16V C5, C7, C8, CIO, Cli, C15, Cl贸, C19, C20: lOOnF C贸, C9: 470|iF/25V C12, C13, C17, C18: 27pF C14: 470|iF/16V C21, C22: lOOpF P贸艂przewodniki
Dl, D2: diody LED: czerwona i zielona (|)3 lub 5mm z oprawkami D3: mostek prostowniczy 1A/5OV Tl: BC557 T2: BC327 T3, T4: BC547 T5, T6: BD135
UL U2, U4, U8: 74LS574SMD U3: pami臋膰 RAM 62256 SMD U5: MAX232 U贸: 7805 U7: TL082 U9: DS1267
U10: MCP101 (lub podobny) Uli: AT90S2313 SMD zaprogramowany
U12: 74LS42SMD
U17: AT89C52 zaprogramowany PLCC R贸偶ne
JP1, JP2: szpilki do z艂膮cz zaciskanych na ta艣mie HEADER20 JP3: CON3 gniazdo zasilania wlutowywane do p艂ytki Pl: DB9 gniazdo k膮towe 偶e艅skie wlutowywane do p艂ytki PK1: przeka藕nik 5V miniaturowy X2: lOMHz Xl: ll,059MHz
Dwustronna p艂ytka drukowana programatora
Jednostronna p艂ytka drukowana "connect board" z艂膮cza dla wymiennych adapter贸w Obudowa typu Z50 Podstawka PLCC44 Podstawka DIPl贸 Styki precyzyjne fO,8mm Ta艣ma 20-偶y艂owa 20cm Wkr臋ty sto偶kowe M3 Z艂膮cza zaciskane na ta艣m臋 20-偶y艂ow膮
Uwaga! Wszystkie oporniki
i kondensatory nie-elektrolityczne
typu SMD 1206
18
Elektronika Praktyczna 12/2002
Punch - programator uniwersalny
kazy potrzebuj膮 do realizacji tylko generowa膰 impulsy o czasie trwa- Opis j臋zyka i ewentualnych
jednego okresu oscylatora, organi- nia dok艂adnie 0,1 |is...25,6 |is. zmian jest dost臋pny na stronie
偶uj膮c skok do tablicy bli偶ej lub Oczywi艣cie, spos贸b ten zajmuje http://www.aries-rs.com.pl/femto.
dalej jej ko艅ca, mo偶na wytworzy膰 sporo miejsca w pami臋ci progra-
impuls b臋d膮cy wielokrotno艣ci膮 mu (256 razy powt贸rzony ten sam Wzory p艂ytek drukowanych w for-
100 ns. Adres skoku nale偶y wy- rozkaz), ale jest prosty i skutecz- macie PDF s膮 dost臋pne w Internecie
liczy膰 przed jego realizacj膮 i za- ny. Do generacji d艂u偶szych impul- pod adresem: http:llwww.ep.com.pll
pisa膰 w rejestrze Z. Sam skok s贸w wykorzystywane s膮 progra- ?pdf/grudzienO2.htm oraz na p艂ycie
wykonywany jest poleceniem IJMP mow臋 p臋tle op贸藕niaj膮ce. CD-EP12/2002B w katalogu PCB.
{indirect jump). W ten spos贸b sto- Ryszard Szymaniak, AVT
suj膮c kwarc 10 MHz mo偶na wy- ryszard.szymaniak@ep.com.pl
Elektronika Praktyczna 12/2002 19
AUTOMATYKA
Nowa generacja czujnik贸w optycznych
Czujniki do system贸w detekcji i kontroli po艂o偶enia obiekt贸w
W po艂owie pa藕dziernika Omron wprowadzi艂 do sprzeda偶y optyczne czujniki odleg艂o艣ci - rodzin臋 E3NT, kt贸rych mo偶liwo艣ci i parametry pozwalaj膮 zakwalifikowa膰 je do 艣cis艂ej 艣wiatowej czo艂贸wki. Pomiar odleg艂o艣ci czujnika od monitorowanego obiektu odbywa si臋 na drodze optycznej, przy czym w celu zwi臋kszenia dok艂adno艣ci pomiaru zastosowano system z podw贸jn膮 triangulacj膮. Pozwoli艂o to osi膮gn膮膰 zasi臋g pomiarowy w przedziale 20...2000 mm, a tak偶e niezale偶no艣膰 wyniku pomiaru od po艂o偶enia 艣ledzonego obiektu w jego osi obrotowej (rys. 1). U偶ytkownik mo偶e w prosty spos贸b "przyuczy膰" czujnik do koloru i faktury powierzchni nadzorowanego obiektu, w czym jest pomocny wbudowany prosty interfejs
u偶ytkownika. Interfejs ten sk艂ada si臋 z ti贸jprzyciskowej klawiatury i 4-pozycyjnego cyfrowego wy艣wietlacza LED (rys. 2). Wy艣wietlacz ten jest wykorzystywany ponadto do wy艣wietlania menu kon-figuiacyjnego, a tak偶e jako wska藕nik odleg艂o艣ci.
Producent po艂o偶y艂 du偶y nacisk na zapewnienie du偶ej odporno艣ci obudowy czujnik贸w na warunki zewn臋trzne (IP6 7), co pozwala stosowa膰 je w ci臋偶kich warunkach otoczenia (wilgo膰, zanieczyszczenia powietrza). W zwi膮zku z tym czujniki E3NT idealnie nadaj膮 si臋 do stosowania min. w przemy艣le spo偶ywczym, ci臋偶kim, zautomatyzowanych magazynach, na zewn膮trz i wewn膮trz budynk贸w. Dodatkowym wyposa偶eniem, przydatnym szczeg贸lnie podczas pracy w 艣rodowisku o du偶ej wilgotno艣ci i niskiej temperaturze otoczenia, s膮 podgrzewacze soczewek, dzi臋ki kt贸rym nie ulegaj膮 one zaparowaniu.
Standardowo czujnik jest wyposa偶ony w dwa wyj艣cia tranzystorowe o programowanych funkcjach i dzia艂aj膮ce niezale偶nie. Mog膮 one by膰 konfigurowane jako wyj艣cia PNP, NPN lub komplementarne [push-pull). Wyj艣cia mo偶na skonfigurowa膰 w jednym z trzech tryb贸w wykrywania obiekt贸w: z eliminacj膮 t艂a (BGS), z ustawian膮 stref膮 nieczu艂o艣ci z przodu czujnika (FGS) i funkcj膮 okna wykrywania (FGS+BGS). Daje to szerokie mo偶liwo艣ci kontroli po艂o偶enia obiekt贸w na podajni-
Zmiany na rynku
urz膮dze艅 dla system贸w
automatyki zachodz膮 coraz
szybciej, co nietrudno
powi膮za膰 z coraz
szybszym rozwojem
technologii stosowanych
w elektronice, W artykule
przedstawiamy jedno
z najbardziej
spektakularnych wdro偶e艅
"czujnikowych" z ostatnich
miesi臋cy, kt贸rego autorem
jest firma Omron,
kach, paletyzerach, rolach nawojowych itp. Czujniki s膮 wyposa偶one w hermetyczne, 5-stykowe gniazdo s艂u偶膮ce do doprowadzenia zasilania i sygna艂贸w wej艣ciowych (ich funkcje s膮 wybierane programowo) oraz wyprowadzenia na zewn膮trz sygna艂贸w z wyj艣膰 czujnika.
Konfigurowanie i uczenie czujnika jest mo偶liwe tak偶e z poziomu komputera PC wyposa偶onego w oprogramowanie Sensor Support
omRon
Elektronika Praktyczna 12/2002
141
AUTOMATYKA
Wy艣wietlacz LED Dioda statusu Optyczne 艂膮cze
komunikacyjne
Czerwona dioda LED (wyj艣cie 2)
呕贸艂ta dioda LED (wyj艣cie 1)
Rys. 2
Przycisk Zmniejsz
Przycisk Zwi臋ksz
Przycisk Enter
Software. Ponadto, pozwala ono na ci膮g艂e monitorowanie po艂o偶enia obiekt贸w na czytelnym wykresie czasowym, a tak偶e zapisywanie i kopiowanie ustawie艅 mi臋dzy czujnikami. Aby zapewni膰 bezpiecze艅stwo transmisji danych i separacj臋 galwaniczn膮 pomi臋dzy komputerem i czujnikiem, transfer danych odbywa si臋 na drodze optycznej. Do tego celu niezb臋dny jest specjalizowany adapter (fot. 3), kt贸ry jest montowany na tej kraw臋dzi czujnika, na kt贸rej znajduj膮 si臋 klawiatura i wy艣wietlacz.
Adapter optyczny jest mocowany do obudowy czujnika za pomoc膮 zatrzasku, dzi臋ki czemu mo偶na go montowa膰 i demontowa膰 podczas pracy czujnika.
Podsumowanie
Opisane czujniki odleg艂o艣ci s膮 nietrywialnym przyk艂adem aplikacji mikrokontroler贸w. To w艂a艣nie dzi臋ki zastosowaniu cyfrowego przetwarzania sygna艂贸w optycznych przekszta艂conych do postaci sygna艂贸w elektrycznych, by艂o mo偶liwe osi膮gni臋cie du偶ej dok艂ad-
Podstawowe parametry czujnik贸w E3NT:
4 zasi臋g 20...2000 mm,
艢 zasilanie 10...30 VDC,
艢 minimalny wykrywalny obiekt > 40 mm,
艢 tr贸jstanowe wyj艣cie analogowe 4...20 mA,
4 wyj艣cia binarne: PNP/NPN (ustalane podczas
konfiguracji),
4 konfiguracja wyj艣膰: Light-ON/Dark-On, 4 2 konfigurowane wyj艣cia, 4 wej艣cie ustawiane opcjonalnie jako - TEACH,
TRIGER,TEST,
4 stopie艅 szczelno艣ci obudowy IP67, 4 kompensacja wp艂ywu t艂a - funkcja BGS, 4 mo偶liwo艣膰 konfigurowania czujnika przez
Sensor Support Software.
no艣ci pomiaru odleg艂o艣ci, a tak偶e ich uniezale偶nienia (w znacznym stopniu) od po艂o偶enia 艣ledzonego obiektu. Mamy kolejny dow贸d na to, 偶e niegdy艣 bardzo wyra藕ny rozdzia艂 elektroniki i automatyki coraz bardziej si臋 zaciera. Andrzej Gawry luk, AVT
Dodatkowe informacje
Artyku艂 powstat na podstawie materia艂贸w udost臋pnionych przez firm臋 Omron, tel. (22) 645-78-60, www.omron.com.pl.
142
Elektronika Praktyczna 12/2002
AUTOMATYKA
Kody IP w urz膮dzeniach dla automatyki
Bardzo cz臋sto w naszych publikacjach o urz膮dzeniach stosowanych w automatyce pojawiaj膮 si臋 informacje o tym, jak szczelne i odporne na zewn臋trzne zabrudzenia i ingerencje mechaniczne s膮 ich obudowy. U偶ywamy przy tym kod贸w IP, kt贸re - jak wynika z list贸w Czytelnik贸w - nie zawsze s膮 w艂a艣ciwie interpretowane.
W tablicach poni偶ej zestawiono znaczenie cyfr w kodzie IP-xy, kt贸ry jest opisany norm膮 IEC60529.
Znaczenie cyfry x w kodzie IP-xy, kt贸ra okre艣la wsp贸艂czynnik zabezpieczenia przed mo偶liwo艣ci膮 penetracji wn臋trza obudowy przez elementy sta艂e: Cyfra Opis
\0 Niezabezpieczona
1 Zabezpieczenie przed elementa-
mi o 艣rednicy 50 mm (np. r臋ka) .2 Zabezpieczenie przed elemen-
tami o 艣rednicy 12,5 mm (np. palec)
.3 Zabezpieczenie przed elemen-
tami o 艣rednicy 2,5 mm (np. wkr臋tak)
4 Zabezpieczenie przed elemen-
tami o 艣rednicy 1,0 mm (np. przew贸d)
.5 Zabezpieczenie przed kurzem
zewn臋trznym, kt贸ry mo偶e zmniejsza膰 bezpiecze艅stwo pracy urz膮dzenia
6 Zabezpieczenie przed kurzem
przenikaj膮cym do wn臋trza obudowy, kt贸ry mo偶e zmniejsza膰 bezpiecze艅stwo pracy urz膮dze-
Znaczenie cyfry y w kodzie IP-xy, kt贸ra okre艣la wsp贸艂czynnik zabezpieczenia przed mo偶liwo艣ci膮 penetracji wn臋trza obudowy przez wod臋 i inne ciecze: Cyfra Opis
0 Niezabezpieczona
1 Spadaj膮ce pionowo krople nie wywo艂uj膮 zaburze艅 w pracy urz膮dzenia
.2 Krople, kt贸re spadaj膮 pionowo
nie zaburzaj膮 pracy urz膮dzenia odchylonego od po艂o偶enia roboczego o 膮15
3 Ciecz napylona pod dowolnym
k膮tem (mniejszym ni偶 60 w stosunku do pionu) na obu-
dow臋 nie wywo艂uje zaburze艅 w pracy urz膮dzenia
4 Ciecz nachlapywana na obudow臋 z dowolnej strony nie wywo艂uje zaburze艅 w pracy urz膮dzenia
5 Ciecz natryskiwana na obudow臋 z dowolnej strony nie wywo艂uje zaburze艅 w pracy urz膮dzenia
6 Ciecz nachlapywana pod znacznym ci艣nieniem na obudow臋 z dowolnej strony nie wywo艂uje zaburze艅 w pracy urz膮dzenia
7 Kr贸tkotrwa艂e zanurzenie urz膮dzenia w cieczy (czas i ci艣nienie jest zestandardyzowane) nie powoduje zaburze艅 w jego pracy
8 Kr贸tkotrwa艂e zanurzenie urz膮dzenia w cieczy (czas zanurzenia i ci艣nienie podlega negocjacji pomi臋dzy producentem i odbiorc膮, ale warunki musz膮 by膰 znacznie trudniejsze ni偶 w punkcie 7) nie powoduje zaburze艅 w jego pracy
Innym do艣膰 cz臋sto spotykanym standardem okre艣laj膮cym odporno艣膰 obud贸w urz膮dze艅 na zanieczyszczenia zewn臋trzne i pr贸by ingerencji jest NE-MA250. W tablicy poni偶ej znajduje si臋 por贸wnanie odporno艣ci obu-
d贸w w normach NEMA250
i IEC60529.
NEMA250 IEC60529
1 IP10
2 IP11
3 IP54
'艢R IP14
3S IP54
4,4X- IP56
5 IP52
6,6P IP67
12.12K IP52
13 IP54
144
Elektronika Praktyczna 12/2002
PROJEKTY
Lampowy odbiornik bateryjny z detektorem kryszta艂kowym
Nie tak
dawno, bo
w pa藕dziernikowym
s艂owie wst臋pnym Redaktora
Naczelnego pojawi艂a si臋
zapowied藕 opublikowania
w EP opisu budowy radia
"kryszta艂kowego". Proponujemy
wykonanie w艂a艣nie takiego
odbiornika na zakres fal
d艂ugich, jest tak uroczo
archaiczny, 偶e wielu
z Czytelnik贸w mo偶e nie
uwierzy, 偶e tak kiedy艣 by艂y
bu do wan e odbiorniki
komercyjne, instalowane
w salonach co bogatszych
rodzin.
Rekomendacje: jedyna
okazja poznania budowy
odbiornika detektorowego
z prawdziwym kryszta艂kiem.
Czyli co艣 zar贸wno dla
elektronik贸w "by艂ych,
"obecnych", jak
i "przysz艂ych".
WEP3/2002 pojawi艂 si臋 opis lampowego odbiornika reakcyjnego na fale 艣rednie, opracowany przez konstruktora wsp贸艂pracuj膮cego z Elektorem. Detekcja sygna艂贸w radiowych odbywa艂a si臋 tam na lampie elektronowej. W odbiorniku prezentowanym w artykule detekcja przebiega inaczej, bowiem detektorem b臋dzie kryszta艂.
Nasi dziadkowie pami臋taj膮 zapewne aparaty kryszta艂kowe. W latach trzydziestych i czterdziestych ubieg艂ego stulecia by艂y one bardzo popularne. By艂y to bardzo tanie odbiorniki, pracuj膮ce bez baterii -zasilane tylko energi膮 z anteny, kt贸re ka偶dy m贸g艂 samodzielnie skleci膰.
Zasada dzia艂ania
Jeden z najprostszych schemat贸w odbiornika kryszta艂kowego pokazano na rys. 1. Fale radiowe docieraj膮ce do anteny indukuj膮 w niej napi臋cie wielkiej cz臋stotliwo艣ci. Oznaczmy je przez Uind> Anten臋 z odbiornikiem sprz臋ga kon-
densator antenowy Ca. Obw贸d rezonansowy LC nale偶y dostroi膰 do 偶膮danej d艂ugo艣ci fali. W przypadku dostrojenia do 偶膮danej stacji, napi臋cie na zaciskach obwodu rezonansowego Ur jest Q razy wi臋ksze od napi臋cia indukowanego w antenie (Ur=Q*Umd). Q jest dobroci膮 obwodu rezonansowego. Dobro膰 zale偶y od oporno艣ci czynnej R cewki L i strat w dielektryku kondensatora C, reprezentowanych przez tan-gens k膮ta stratno艣ci kondensatora tg8. Cz臋sto pomija si臋 wp艂yw tg8 (wtedy Q=G)L/R), ale tym razem zapiszemy 艣cis艂y wz贸r na dobro膰: fflL
raL 1
R tgS
Elektronika Praktyczna 12/2002
21
Lampowy odbiornik bateryjny z detektorem kryszta艂kowym
Rys. 1. Najprostszy odbiornik detektorowy
Detektor prostuje napi臋cie w.cz. z obwodu rezonansowego, przez co s艂uchawk臋 zasila pr膮d
0 warto艣ci zmieniaj膮cej si臋 w takt sygna艂u moduluj膮cego no艣n膮. Pozosta艂o艣ci pr膮du w.cz. zwiera do masy kondensator Cd. S艂uchawka (impedancja jej wynosi艂a oko艂o 2...4 kLi) obci膮偶a silnie obw贸d LC, przez co dobro膰 spada (i w zwi膮zku z tym selektywno艣膰 odbiornika). Dlatego detektor w艂膮cza艂o si臋 cz臋sto przez odczep. To z kolei wi膮za艂o si臋 z obni偶eniem napi臋cia dostarczanego na detektor. Po艂o偶enie odczepu by艂o nieraz regulowane, aby umo偶liwi膰 uzyskanie optymalnego nat臋偶enia d藕wi臋ku lub selektywno艣ci. Zreszt膮 selektywno艣膰 cz臋sto okazywa艂a si臋 zbyt ma艂a (bo przy optimum g艂o艣no艣ci dobro膰 spada do 0,5 dobroci obwodu nieobci膮偶onego)
1 w szereg z anten膮 w艂膮cza艂o si臋 dodatkowy obw贸d LC (tzw. elimina to r), kt贸r ego z a da -niem by艂o usuni臋cie "przebijania" silnych stacji, pracuj膮cych na zbli偶onej d艂ugo艣ci fali.
A sam detektor? Najcz臋艣ciej by艂 to kryszta艂 ga-leny (PbS), cynkitu (ZnS), pirytu (FeS2) czy chalkopi-rytu (CuFeS2) umieszczony w specjalnej oprawce. Do powierzchni kryszta艂u dotyka艂a srebrna ig艂a, kt贸rej po艂o偶enie regulowa艂o si臋 na maksimum czu艂o艣ci detektora. Opr贸cz takich detektor贸w znane by艂y detektory rt臋ciowe i wykonane fabrycznie, bez konieczno艣-
ci regulacji, tzw. perikony, wes-tectory czy sirutory. W literaturze pojawia艂y si臋 opisy samodzielnego wytwarzania detektor贸w z kryszta艂ami w艂膮cznie, ale nie by艂o to 艂atwe. Mia艂em mo偶liwo艣膰 to stwierdzi膰. Lepiej u偶y膰 kryszta艂u utworzonego przez sam膮 natur臋. Dzia艂a o wiele lepiej, ni偶 wytwarzany samodzielnie. W latach 50.-70. ubieg艂ego wieku od-b i orniki de tekt or o w e ko ns ti uo -wali m艂odzi radioamatorzy, jednak zamiast kryszta艂ka stosowano znacznie czulsze diody germanowe.
W miejscu odbioru istnieje pewne nat臋偶enie pola E wytwarzanego przez radiostacj臋:
^ /
E =
E w [mV/m]
P - moc nadajnika w [kW] r - odleg艂o艣膰 od nadajnika w [km] Wielko艣膰 Uind w antenie jest iloczynem E i wysoko艣ci skutecznej anteny. Zwyk艂a antena pr臋towa (o ile jej d艂ugo艣膰 jest mniejsza od 1/8^) ma wysoko艣膰 skuteczn膮 r贸wn膮 po艂owie d艂ugo艣ci. W przypadku anteny ferrytowej jest nieco trudniej:
- 0,0628-S-z h
"Kryszta艂ek" to p贸艂przewodnikowy element detekcyjny
wykonany z kryszta艂贸w pirytu, galeny, chalko pirytu
艂ub cynkitu i ig艂y, za pomoc膮 kt贸rej kryszta艂 jest
"nak艂uwany". Zosta艂 on
wynaleziony w 1905 roku
przez Kar艂a Brauna.
W 艂atach 艣wietno艣ci
odbiornik贸w kryszta艂kowych
w sprzeda偶y by艂y dost臋pne
kompletne detektory sk艂adaj膮ce si臋 z obudowanego kryszta艂u ze specjaln膮
ig艂膮 przymocowan膮 do pokr臋t艂a (kilka przyk艂adowych kryszta艂k贸w fabrycznych pokazano na fotografiach).
t
h - wysoko艣膰 skuteczna w m S - przekr贸j poprzeczny rdzenia
w [cm2].
k - d艂ugo艣膰 odbieranej fali w [m]. Za艂贸偶my teraz, 偶e chcemy zbudowa膰 odbiornik detektorowy wed艂ug rys. 1 znajduj膮cy si臋 w Warszawie, odbieraj膮cy pierwszy program Polskiego Radia (f=225 kHz, k=1333 m). Program ten nadawa-
Odbiorniki kryszta艂kowe s膮 bardzo proste w wykonaniu, nie wymagaj膮 zasilania, ale maj膮 ma艂膮 czu艂o艣膰 i selektywno艣膰. Odbiornik taki sk艂ada艂 si臋 z d艂ugiej, zewn臋trznej anteny, cewki, zmiennego (strojeniowego) kondensatora, detektora w postaci kryszta艂u blendy cynkowej (st膮d ich nazwa) i czu艂ych s艂uchawek.
ny jest z Solca Kujawskiego z nadajnika o mocy P=1000 kW. Odleg艂o艣膰 od nadajnika wynosi 210 km. Nat臋偶enie pola w miejscu odbioru wynosi E=33 mV/m. Obw贸d rezonansowy sk艂ada si臋 z 220 zwoj贸w na pr臋cie ferrytowym t(艂=l cm (S=3,14 cm2). Wobec tego
h=0,032 m. Napi臋cie indukowane w antenie ma warto艣膰 Umd=l mV. Ze wzgl臋d贸w konstrukcyjnych nie uzyskamy dobroci cewki lepszej od ok. 150. Tangens k膮ta stratno艣ci kondensatora powietrznego wynosi l^lO"4, mikowego 1,5*1O'2. St膮d dobro膰 pocz膮tkowa obwodu rezonansowego Q=146 dla kondensatora powietrznego lub 46 dla mikowego.
Napi臋cie Ur jest Q-krotnie wi臋ksze od Uind, st膮d: Ur=146mV lub 46 mV. Ale przy w艂a艣ciwie dobranym obci膮偶eniu (s艂uchawka o du偶ej impedancji) i tak b臋dzie jeszcze o po艂ow臋 mniejsze (dobro膰 pod obci膮偶eniem 73 lub 23).
Wymaga si臋 dla w艂a艣-ci w ej pr a cy de tektor a, aby napi臋cie w.cz. na detektorze osi膮ga艂o oko艂o 600...700 mV. Nawet z anten膮 pr臋tow膮 przy艂膮czon膮 do naszego odbiornika mo偶e to by膰 trudne do osi膮gni臋cia, a to z racji niekorzystnego stosunku sygna艂/szum w miejscu odbioru. Dlatego widzimy, 偶e korzystanie z odbiornika detektorowego wykonanego wed艂ug schematu pokazanego na rys. 1 w odleg艂o艣ci
22
Elektronika Praktyczna 12/2002
Lampowy odbiornik bateryjny z detektorem kryszta艂kowym
Rys. 2. Schemat elektryczny odbiornika kryszta艂kowego
wi臋kszej od kilkudziesi臋ciu km od nadajnika jest niemo偶liwe. Sytuacj臋 odmieni zastosowanie dodatkowego wzmacniacza w.cz. przed detektorem, co zrealizowano w odbiorniku radiowym opisanym w dalszej cz臋艣ci artyku艂u. Jego schemat elektryczny pokazano na rys. 2.
Dzi臋ki zastosowaniu tego wzmacniacza uzyskamy kilkunasto krotne wzmocnienie sygna艂u w.cz. Ponadto, obw贸d rezonansowy w zasadzie nie jest obci膮偶ony, przez co dobro膰 pod obci膮偶eniem jest r贸wna dobroci nieobci膮偶o-nego obwodu rezonansowego.
Jako lampa wzmacniacza pracuje 1S4T w uk艂adzie triodowym. Jest to lampa ko艅cowa, jednak jej u偶ycie w tym punkcie uk艂adu jest uzasadnione du偶ym nachyleniem charakterystyki, kt贸re wynosi oko艂o 1,4 mA/V. Wzmocnienie wzmacniacza w.cz. wynosi oko艂o 14 V/ V. Wida膰 z powy偶szych danych, 偶e poprawn膮 prac臋 uk艂adu powinni艣my uzyska膰 przy nat臋偶eniu pola rz臋du 17 mV/m.
W obwodzie anodowym zastosowano cewk臋 reakcyjn膮 Lr. Cz臋艣膰 wzmocnionego przez lamp臋 napi臋cia w.cz. kierowana jest z powrotem do obwodu LC, dzi臋ki temu jest on odt艂umiany. R贸wnowa偶ne jest to zwi臋kszeniu jego dobroci, przez co czu艂o艣膰 jeszcze si臋 zwi臋ksza. Mimo to,
jest wskazane, aby ka偶dy obliczy艂, na jakie nat臋偶enie pola i napi臋cie na obwodzie LC mo偶e liczy膰 w miejscu odbioru (wskazane jest, aby na obwodzie rezonansowym powstawa艂o napi臋cie chocia偶 20...30 mV, inaczej si艂a g艂osu b臋dzie ju偶 naprawd臋
Odkrycie Hertza 艢
Teori臋 pola elektromagnetycznego zweryfikowa艂 do艣wiadczalnie Heinrich Hertz w 1888
roku- 殴r贸d艂em drga艅 elektrycznych byl zbudowany przez niego oscylator, a odbiornikiem - rezonator (te偶 jego konstrukcji). Ustawiaj膮c rezonator w r贸偶nych po艂o偶eniach, Hertz zmierzy艂 d艂ugo艣膰 fal elektromagnetycznych (wynosi艂a ona od 10 m do 60 cm). Wyznaczy艂 tak偶e ich pr臋dko艣膰. Okaza艂o si臋, 偶e jest ona bliska tej, kt贸r膮 teoretycznie obliczy艂 Maxwell, i wynosi 300000 km/s.
bardzo nieznaczna). Regulacj臋 wielko艣ci tego dodatniego sprz臋偶enia zwrotnego (reakcji) uzyskuje si臋 przez przesuwanie cewki Lr na pr臋cie anteny ferrytowej. Detekcja siatkowa na pierwszej lampie nie mo偶e nast膮pi膰, poniewa偶 siatka steruj膮ca znajduje si臋 na potencjale wst臋pnym -0,4 V i w tych warunkach pr膮d siatki nie mo偶e p艂yn膮膰. W razie potrzeby mo偶na do艂膮czy膰 anten臋 zewn臋trzn膮, aby nieco zwi臋kszy膰 czu艂o艣膰. Pr贸by w mie艣cie da艂y jednak z艂y wynik - si艂a g艂osu cokolwiek si臋 zwi臋kszy艂a, ale zak艂贸cenia r贸wnie偶.
Wzmocniony sygna艂 w.cz. dociera przez kondensator 470 pF
na detektor. Sprawno艣膰 detekcji nie przekracza zazwyczaj 30...40%. Tym samym amplituda u偶ytecznego napi臋cia m.cz. na potencjometrze mo偶e nie przekroczy膰 100 mV.
W tym miejscu ma艂a dygresja: projektuj膮c ten uk艂ad, przeliczy-
___ 艂em si臋, przyjmuj膮c zbyt
^^^ optymistyczne warto艣ci sygna艂u za detektorem. Pocz膮tkowo uk艂ad planowa艂em jako 2-lampowy. Po uruchomieniu okaza艂o si臋 jednak, 偶e si艂a g艂osu jest niewystarczaj膮ca. To zmusi艂o mnie do dodania wzmacniacza napi臋ciowego m.cz. na miniaturowej lampie DF669 (Ku=20). Zamiast niej mo偶na zastosowa膰 o wiele 艂atwiej dost臋pn膮 1T4T z coko艂em heptalowym. Nadawa膰 si臋 tu b臋dzie w zasadzie ka偶da tiioda lub pentoda bateryjna (napi臋cie 偶arzenia 1,4V) z nachyleniem charak-
Rys. 3. Widok okna programu wspomagajqcego obliczenia
Elektronika Praktyczna 12/2002
23
Lampowy odbiornik bateryjny z detektorem kryszta艂kowym
Fot. 4. Budowa detektora kryszta艂kowego zastosowanego w odbiorniku
terystyki 0,7."1,4 mA/V. Mo偶e si臋 jednak okaza膰, 藕e nale偶y nieco zmieni膰 ujemne napi臋cie siatki tej lampy i opornik anodowy. W takich wypadkach ch臋tnie s艂u偶臋 rad膮.
Wzmacniacz ko艅cowy pracuje z lamp膮 1S4T w klasie A. Potencja艂 wst臋pny siatki tej lampy wynosi -4,8 V. Z racji tego, 偶e obecnie s艂uchawki posiadaj膮 oporno艣膰 32 Li, konieczne jest u偶ycie transformatora dopasowuj膮cego w obwodzie anodowym tej lampy (s艂uchawki po艂膮czone s膮 szeregowo, st膮d ich wypadkowa impedancja wynosi 64 O,). Potrzebne ujemne potencja艂y siatek uzyskano z dzielnika oporowego.
Zamiast lamp 1S4T mo偶na zastosowa膰 lampy 3 S4T. Jedyn膮 zmian膮, jak膮 nale偶y zrobi膰, jest po艂膮czenie ze sob膮 obu po艂贸wek grzejnika. Pob贸r pr膮du z baterii anodowej wynosi oko艂o 4,5 mA, z baterii 偶arzenia oko艂o 140 mA.
Par臋 s艂贸w o monta偶u uk艂adu
Kondensator C powinien by膰 powietrzny o pojemno艣ci ca艂kowitej 450...500 pF. Podejrzewam jednak, 偶e wi臋kszo艣膰 Czytelnik贸w b臋dzie dysponowa膰 kondensatorami z odbiornik贸w tranzystorowych z dielektrykiem np. mikowym. To niestety pogorszy dobro膰 obwodu rezonansowego. Dlatego jeszcze raz przypominam o przeprowadzeniu oblicze艅! Aby u艂atwi膰 obliczenia, przygotowa艂em prosty program dla Windows, kt贸ry zosta艂 zamieszczony
na p艂ycie CD-EP12/2002B. Zrzut okna tego programu pokazano na rys. 3.
Wszystkie cewki zosta艂y nawini臋te jednowarstwowo na pr臋cie anteny ferrytowej. Cewka L posiada 220 zwoj贸w drutu w emalii 0,15 mm. Cewka antenowa ma 55 zwoj贸w, a cewka reakcyjna 100 zwoj贸w z tego samego drutu. Cewka reakcyjna musi si臋 przesuwa膰 po rdzeniu. Rdze艅 powinien by膰 d艂ugi (w modelu a偶 20 cm). Transformator g艂o艣nikowy powinien posiada膰 3200 zwoj贸w drutem 0,05 mm i 400 zwoj贸w drutem 0,1 mm.
Mo偶e by膰 nawini臋ty np. na rdzeniu kubkowym Al=63. Nadawa膰 si臋 tu b臋dzie taki transformator, kt贸rego przek艂adnia wynosi 1:6...1:10, przy czym na uzwojeniu pierwotnym powinno si臋 znajdowa膰 2000...3500 zwoj贸w. Przekr贸j rdzenia nie musi by膰 du偶y, wystarczy np. 1...4 cm2. Wszak audycje nadawane na falach d艂ugich nie odznaczaj膮 si臋 wysok膮 jako艣ci膮. Wystarczy, 偶e pasmo przenoszenia zawiera膰 si臋 b臋dzie w przedziale 100...6000 Hz.
Sk膮d wzi膮膰 kryszta艂ek?
Po艣wi臋膰my chwil臋 detektorowi. Przede wszystkim postarajmy si臋 o ma艂y kryszta艂ek pirytu, ga-leny, chalkopirytu lub cynkitu. Kryszta艂y takie mo偶na naby膰 na gie艂dach minera艂贸w. Warto mo偶e jeszcze zaznaczy膰, 偶e niekt贸re z tych kryszta艂贸w wyst臋puj膮 w Polsce. W uk艂adzie modelowym pracuje piryt.
Kryszta艂 mo偶e mie膰 naprawd臋 ma艂e wymiary, np. 3x3x3 mm, ale na nieco wi臋kszym krysztale b臋dzie 艂atwiej znale藕膰 najczulszy punkt detekcji. W rozwi膮zaniu prototypowym kryszta艂 naklejono
Historia lamp elektronowych
W 1884 roku Thomas Alva
Edison zaobserwowa艂
przep艂yw pr膮du mi臋dzy
偶arnikiem lampy (偶ar贸wki)
a dodatkow膮 elektrod膮 wtopion膮 w ba艅k臋 lampy. ^^m W艂a艣nie to zjawisko (nazwane zjawiskiem Edisona) zosta艂o wykorzystane w lampach elektronowych- W kilka lat p贸藕niej, tj. w 1889 roku Julius Elster i Hans Friedrich Geitel stwierdzili, 偶e w ba艅ce pr贸偶niowej -o jednej elektrodzie 偶arzonej
a drugiej zimnej - pr膮d p艂ynie tylko w jedn膮 stron臋. 艢 Za dat臋 wynalezienia lampy elektronowej przyjmuje si臋 艢 rok 1904, w kt贸rym Johnfl Ambrose Fleming skonstruowa艂 dwu elekt rod ow膮 lamp臋, nazywan膮 wtedy zaworem elektronowym, a obecnie [diod膮. W 1906 roku Lee de Forest zbudowa艂 triod臋.
Doskonalsze lampy wieloelektrodowe zosta艂y
zbudowane w 1927
(tetroda), 1930 (pentoda)
i 1933 (pentagrid nazwany
_____p贸藕niej heptod膮)._____
i
na kawa艂ek szklanej p艂ytki. P艂ytka stabilnie trzyma si臋 dzi臋ki blaszkom, kt贸re przytrzymuj膮 j膮, podobnie jak szkie艂ko podstawowe w mikroskopie.
Do kryszta艂u dotyka kawa艂ek srebrzanki i drutu cynowanego (fot. 4). Druty te mo偶na dowolnie dotyka膰 do kryszta艂u. Warto wy-
G1
-FMG3 DF 80, DF 69
Rys. 5. Wyprowadzenia lamp zastosowanych w odbiorniku
24
Elektronika Praktyczna 12/2002
Lampowy odbiornik bateryjny z detektorem kryszta艂kowym
Radio w Polsce
Pocz膮tki radiofonii w Polsce przypadaj膮 na 1922 rok. Wtedy
to Stefan Manczarski skonstruowa艂 pierwszy polski odbiornik
radiowy oraz nowego typu anteny radiowe. W lutym 1925
roku zainstalowano pierwsz膮 stacj臋 nadawcz膮 (500 W)
Polskiego Towarzystwa Radiotechnicznego w Warszawie przy
ul. Narbutta 29 na Mokotowie.
pr贸bowa膰 r贸偶ne druty, np. miedziany czy stalowy zamiast cynowanego. W rozwi膮zaniu modelowym druty przylutowane s膮 do wtyczek chinch, a dok艂adn膮 regulacj臋 detektora mo偶na uzyska膰 przez delikatne obracanie ich w gniazdkach.
Monta偶 i uruchomienie
Odbiornik mo偶na zmontowa膰 na podstawie z blachy ocynkowanej o wymiarach 250 x 150 x 50 mm. Podczas monta偶u pomocny b臋dzie rys. 5, na kt贸rym pokazano rozmieszczenie ko艅c贸wek lamp zastosowanych w radioodbiorniku.
Uruchomienie najlepiej rozpocz膮膰 przy pod艂膮czonej zamiast kryszta艂ka diodzie germanowej (je艣li kto艣 nie chce budowa膰 detektora na bazie kryszta艂u, mo偶e zostawi膰 diod臋 zamiast kryszta艂ka, ale to ju偶 nie to samo...) i zdj臋tej z pr臋ta ferrytowego cewce reakcyjnej. Potencjometr si艂y g艂osu ustawiamy na maksimum.
Kr臋c膮c kondensatorem C, pr贸bujemy "z艂apa膰" stacj臋. Je艣li si臋 to nie udaje, zak艂adamy cewk臋
reakcyjn膮. W pewnym jej po艂o偶eniu ze s艂uchawek powinien by膰 s艂yszalny gwizd lub szum. Je艣li go nie ma, nale偶y zamieni膰 ko艅c贸wki cewki Lr miejscami. Ustawiamy cewk臋 tak, by gwizd znikn膮艂, ale w okolicy jego powstawania. Teraz pr贸ba odebrania stacji powinna odby膰 si臋 pomy艣lnie. Reguluj膮c po艂o偶enie kondensatora C i cewki reakcyjnej Lr, ustawiamy odbiornik na maksimum g艂o艣no艣ci i czysto艣ci d藕wi臋ku.
Mo偶emy teraz od艂膮czy膰 diod臋 (nie rozstrajamy obwodu LC!) i w jej miejsce w艂膮czy膰 kryszta艂ek. Dotykaj膮c drutami kryszta艂ka, pr贸bujemy uzyska膰 maksymaln膮 si艂臋 g艂osu.
Zabieg ten wymaga niestety du偶o cierpliwo艣ci. Nie pozostaje mi ju偶 nic innego jak 偶yczy膰 udanego odbioru. Aleksander Zawada a leksan de r_zawada@ poczta.o net.pl
W artkule wykorzystano materia艂y pochodz膮ce ze strony Maurycego Bryxa (h ttp ://www.rep ub -lika.pl/jannaj/), po艣wi臋conej historii radia w Polsce.
WYKAZ ELEMENT脫W
Rezystory
Rl, R3: 1MQ/O,脫W
R2: 20kQ/0,脫W
R4: 5贸kQ/0,脫W
R5: CUMO/C脫W
R6: lkQ/0,脫W
R7: 100Q/0,6W
Pl: 1MO potencjometr
logarytmiczny
Kondensatory
C: kondensator strojeniowy wg
opisu
Cl: 43pF/63V ceramiczny
C2: 68pF/63V ceramiczny
C3: 130pF/63V ceramiczny
C4: 470pF/63V ceramiczny
C5, C贸, C8: lnF/63V
C7: 3,3nF
C9: 10jiF/63V-elektrolityczny
Lampy
VI, V3: 1S4T
V2: DF669
R贸偶ne
D: detektor wg opisu w tek艣cie
W: w艂膮cznik dwusekcyjny
Batl: bateria anodowa
0 napi臋ciu 45V, z艂o偶ona z 5 baterii 6F22
Bat2: bateria 偶arzenia 1 ,5V, np.
R6, R14, R20 mo偶e te偶 by膰
akumulator NiCd
Tr: transformator wg opisu
w tek艣cie
S艂: s艂uchawki 32
2 podstawki pod lampy typu
heptal
pr臋t ferrytowy, cewki Lr, La, L
wykonane wg opisu w tek艣cie
2 gniazdka chinch
1 gniazdo "jack"
Elektronika Praktyczna 12/2002
25
PROJEKTY
Programowane echo cyfrowe
AVT-5090
Niekt贸rzy z Czytelnik贸w EP
zapewne pami臋taj膮, jakim
wydarzeniem by艂o
opublikowanie w EP w 1994
roku opisu uk艂adu
wytwarzaj膮cego echo
w spos贸b cyfrowy - cyfrowego
echa. Dzi臋ki post臋powi, jaki
n ast膮pi艂 w techn ologii
uk艂ad贸w cyfrowych, obecnie
mo偶na budowa膰 takie uk艂ady
艂atwiej i o lepszych
parametrach.
Rekomendacje: uk艂ad
polecamy mi艂o艣nikom efekt贸w
audio, a tak偶e u偶ytkownikom
ta艅szych zestaw贸w kina
domowego, w kt贸rych
prezentowany uk艂ad mo偶e
emulowa膰 efekt surround.
Jeszcze nie tak dawno wykonanie uk艂adu op贸藕niaj膮cego do generowania efektu echa by艂o w warunkach amatorskich bardzo trudne. Takie urz膮dzenia przybiera艂y ogromne rozmiary, a uzyskiwane czasy op贸藕nie艅 by艂y niewielkie.
Uk艂ad scalony wykorzystany w prezentowanym uk艂adzie cyfrowym echa (T62M0001A) jest produkowany przez tajwa艅sk膮 firm臋 TMtech (Taiwan Memory Technology, Inc.), specjalizuj膮c膮 si臋 w produkcji r贸偶nego rodzaju pami臋ci. Dzi臋ki tej specjalizacji, w uk艂adzie opr贸cz toru audio z przetwornikami A/C i C/A oraz zestawu filtr贸w, zintegrowano tak偶e pami臋膰 SRAM o pojemno艣ci 64 kb, kt贸ra spe艂nia rol臋 cyfrowej linii op贸藕niaj膮cej.
REQ
SCK
DATA
H -Mute
IDcoda
H Delayttna
= SlMpMttfe
Rys. 1. Przebiegi charakterystyczne dla wprowadzania danych do uk艂adu T62M0001A
Chocia偶 uk艂ad T62M0001A wykonano w technologu. CMOS, to wbudowany w niego tor audio spe艂nia wymagania stawiane ta艅-s zy m urz膮d藕 eni om pr of e s j onal -nym: zniekszta艂cenia przy cz臋stotliwo艣ci pr贸bkowania 666 kHz nie przekraczaj膮 0,17%, a poziom szum贸w na wyj艣ciu nie przekracza -90 dBV.
W uk艂adzie echa zastosowano uk艂ad scalony w obudowie DIP24, dla kt贸rej opis funkcji wyprowadze艅 zamieszczono w tab. 1.
Czas op贸藕nienia wprowadzany przez uk艂ad T62M0001A jest ustawiany cyfrowo. Mo偶na tego dokona膰 na dwa sposoby:
- za pomoc膮 wpisu r贸wnoleg艂ego,
- za pomoc膮 3-liniowego interfejsu szeregowego.
Wyb贸r sposobu sterowania odbywa si臋 poprzez ustawienie odpowiedniego poziomu na wyprowadzeniu 9. uk艂adu T62M0001A (EASY/u-COM). Sterowanie r贸wnoleg艂e jest wybierane przez podanie wysokiego poziomu na wej艣cie EASY/u-COM. Na wej艣ciach danych D1...D4 ustawiamy odpowiedni膮 kombinacj臋 stan贸w logicznych w celu uzyskania zadanego op贸藕nienia sygna艂u akustycznego (efektu echa). Mo偶emy tego dokona膰 pod艂膮czaj膮c uk艂ad do mikiokontrolera lub stosuj膮c
Elektronika Praktyczna 12/2002
27
Programowane echo cyfrowe
Tab. 1. Funkcje wyprowadze艅 uk艂adu T62M0001A
Symbol l/O Opis Numer
Vdd P Zasilanie cz臋艣ci cyfrowej 1
XIN I Wej艣cie oscylatora 2
XOUT 0 Wyj艣cie oscylatora 3
D1/REQ I Wej艣cie danych D1/dla interfejsu u-COM wej艣cie 偶膮dania nadawania 4
D2/SCK I Wej艣cie danych D2/dla interfejsu u-COM wej艣cie zegarowe 5
D3/DATA I Wej艣cie danych D3/dla interfejsu u-COM wej艣cie danych 6
D4/IDSW I Wej艣cie danych D4/dla interfejsu u-COM wej艣cie kontrolne 7
TEST I Wej艣cie testowe L= normalna praca 8
EASY/ u-COM I Wej艣cie wyboru sposobu sterowania uk艂adem H= sterowanie r贸wnoleg艂e L= sterowanie u-COM szeregowe 9
SLEEP I Funkcja wyciszania uk艂adu L= normalna praca H = u艣pienie uk艂adu 10
D-GND G Masa cyfrowa 11
A-GND G Masa analogowa 12
LPF2-OUT 0 Wyj艣cie filtru dolnoprzepustowego 13
LPF2-IN I Wej艣cie filtru dolnoprzepustowego 14
0P2 OUT 0 Wyj艣cie wzmacniacza 15
0P2 IN I Wej艣cie wzmacniacza 16
CC2 - Wyprowadzenie kontrolne 17
CC1 - Wyprowadzenie kontrolne 18
REF - Napi臋cie odniesienia = 1/2Vcc 19
OP1-IN Wej艣cie wzmacniacza 20
OP2-OUT Wyj艣cie wzmacniacza 21
LPF1 OUT 0 Wej艣cie filtru dolnoprzepustowego 22
LPF1 IN I Wej艣cie filtru dolnoprzepustowego 23
Vcc P Zasilanie cz臋艣ci analogowej 24
szesnastopozycyjny prze艂膮cznik kodu BCD.
W tab. 2 zestawiono stany na wej艣ciach steruj膮cych oraz odpowiadaj膮ce im czasy op贸藕nie艅 sygna艂u akustycznego. Tabela ta ma r贸wnie偶 zastosowanie przy sterowaniu szeregowym.
Sterowanie szeregowe jest mo偶liwe przy niskim poziomie podanym na wej艣ciu EASY/u-COM. Jest ono stosowane najcz臋艣ciej podczas wsp贸艂pracy uk艂adu z mikrokontro-lerami. Spos贸b wprowadzania danych do uk艂adu T62M0001A zosta艂 pokazany na rys. 1.
Wpisywana ramka sk艂ada si臋 z 10 bit贸w. Pierwszy bit w艂膮cza/
Sygna艂 przed zmian膮
wy艂膮cza funkcj臋 SLEEP (u艣pienia uk艂adu), kolejne cztery nios膮 informacj臋 o czasie op贸藕nienia (zgodnie z tab. 1), sz贸sty bit w艂膮cza/wy艂膮cza funkcj臋 wyciszania MUTE (p艂ynne wyciszenie sygna艂u audio na wyj艣ciu). Ostatnie cztery bity odpowiadaj膮 za identyfikacj臋 uk艂adu: IDl=0, ID3=0, ID2=1, ID4 - stan taki sam jak na wej艣ciu IDSW (wyprowadzenie 7.). Wyciszanie sygna艂u wyj艣ciowego w trybie pracy r贸wnoleg艂ej nast臋puje przy ka偶dej zmianie czasu op贸藕nienia lub po wyj艣ciu z funkcji SLEEP, a tak偶e zaraz po w艂膮czeniu zasilania uk艂adu. Przy sterowaniu szeregowym funkcja wy-
Sygna艂 po zmianie
Rys. 3. Ilustracja dzia艂ania modu艂u wyciszania po wyj艣ciu ze stanu sleep
120ma I Wyciszenie
Rys. 2 Ilustracja dzia艂ania modu艂u wyciszania po zmianie czasu op贸藕nienia
W艂膮czenie
zasilania
Rys. 4. Ilustracja dzia艂ania modu艂u wyciszania po w艂膮czeniu zasilania
ciszania jest w艂膮czana sz贸stym bitem: poziom wysoki - w艂膮czone wyciszanie, poziom niski - w艂膮czone wyciszanie automatyczne. Na rys. 2, 3 i 4 przedstawiono przebiegi ilustruj膮ce dzia艂anie funkcji automatycznego wyciszania (odpowiednio): po zmianie czasu op贸藕nienia, po wyj艣ciu z funkcji SLEEP, po w艂膮czeniu zasilania.
Po w艂膮czeniu funkcji SLEEP moc pobierana przez uk艂ad radykalnie si臋 zmniejsza, co jest uzyskiwane m.in. poprzez zatrzymanie wewn臋trznego zegara i wy艂膮czenie zasilania wbudowanej pami臋ci RAM.
Zerowanie uk艂adu nast臋puje automatycznie po w艂膮czeniu zasilania i trwa przez oko艂o 120 ms. Czas op贸藕nienia po zerowaniu wynosi 147,5 ms.
Opis uk艂adu
Schemat elektryczny uk艂adu cyfrowego echa pokazano na rys. 5. Mo偶na w nim wyr贸偶ni膰 nast臋puj膮ce bloki funkcjonalne:
- tor audio dla sygna艂u echa (elementy wok贸艂 T62M0001A),
- uk艂ad sterowania sk艂adaj膮cy si臋 z mikrokontrolera ST62T20C obs艂uguj膮cego dwa przyciski oraz wy艣wietlacza LCD,
- zasilacz stabilizowany zapewniaj膮cy na wyj艣ciu napi臋cie +5 V.
Uk艂ad T62M0001A w艂膮czono w typowej konfiguracji ze sterowaniem r贸wnoleg艂ym.
Dzi臋ki zastosowaniu sterowania r贸wnoleg艂ego, uk艂ad T62M0001A mo偶e pracowa膰 autonomicznie, bez konieczno艣ci stosowania dodatkowego bloku sterowania. Ma to podstawowe znaczenie przy jego uruchamianiu i testowaniu.
Elektronika Praktyczna 12/2002
Programowane echo cyfrowe
Program dla mikrokontrolera ST62 zosta艂 napisany za pomoc膮 znanego Czytelnikom pakietu programowego ST6 Realizer. Plik 藕r贸d艂owy programu znajduje si臋 na p艂ycie do艂膮czonej do bie偶膮cego numeru EPo/oL. Jest tak偶e dost臋pne na naszej stronie WWW.
Obs艂uga uk艂adu jest dosy膰 艂atwa: po w艂膮czeniu zasilania na wy艣wietlaczu LCD pojawia si臋 napis "ECHO 0". Porty PB4...PB7 (steruj膮ce prac膮 T62M0001A) s膮 ustawione na poziomie niskim, w zwi膮zku z czym op贸藕nienie sygna艂u akustycznego wynosi 12,3 ms. Ka偶de naci艣ni臋cie przycisk贸w g贸ra/d贸艂 powoduje zmian臋 stan贸w na wyj艣ciach steruj膮cych procesora. Zmiana na wy艣wietlaczu LCD napisu w zakresie od 0 do 8 nast臋puje po co drugim naci艣ni臋ciu przycisku. Sygna艂 akustyczny zostaje op贸藕niony o warto艣膰 czasu zale偶n膮 od ustawienia stan贸w logicznych na wej艣ciach steruj膮cych uk艂adu T62M0001A (patrz tab. 2).
Jak wiemy, samo op贸藕nienie sygna艂u akustycznego na wyj艣ciu uk艂adu echa nie daje 偶adnych efekt贸w, dop贸ki nie jest on zmiksowany z sygna艂em wej艣ciowym.
Aby efekt echa by艂 odczuwalny podczas ods艂uchu, wej艣cie uk艂adu zosta艂o po艂膮czone z wyj艣ciem poprzez prosty pasywny sumator sygna艂贸w (sk艂ada si臋 m.in. z element贸w: R4, R5, R8, R9 i C9).
Tab. 2. Czasy op贸藕nie艅 sygna艂u analogowego w zale偶no艣ci od stan贸w logicznych na wej艣ciach D1...D4
Rys. 5. Schemat elektryczny uk艂adu echa
D4 D3 D2 D1 fs Td [ms]
L L L L Fck/3 12,3
L L L H Fck/3 24,6
L L H L Fck/3 36,9
L L H H Fck/3 49,2
L H L L Fck/3 61,4
L H L H Fck/3 73,7
L H H L Fck/3 86,0
L H H H Fck/3 98,3
H L L L Fck/6 110,6
H L L H Fck/6 122,9
H L H L Fck/6 135,2
H L H H Fck/6 147,5
H H L L Fck/6 159,7
H H L H Fck/6 172,0
H H H L Fck/6 184,3
H H H H Fck/6 196,6
fs - cz臋stotliwo艣膰 pr贸bkowania, Fck - cz臋stotliwo艣膰 wzorcowa - typowo 2MHz, Td - czas op贸藕nienia (w milisekundach)
Elektronika Praktyczna 12/2002
29
Programowane echo cyfrowe
ooao
O Ol ODDOODOO
IN
OUT
WYJ艢CIE
ECHO CYITOWE
ipoooooooooooooog g贸rski
Rys. 6. Rozmieszczenie element贸w na p艂ytkach drukowanych
Jego zadaniem jest zsumowanie sygna艂u akustycznego op贸藕nionego z wej艣ciowym oraz ustalenie odpowiedniego poziomu (regulowanego R5).
Ka偶da zmiana czasu op贸藕nienia powoduje kr贸tkotrwa艂e wyciszenie op贸藕nionego sygna艂u. W celu uzyskania pods艂uchu samego sygna艂u wej艣ciowego (bez sumowania z op贸藕nionym) nale偶y nacisn膮膰 przycisk SLEEP na panelu sterowania.
Monta偶 i uruchomienie
Uk艂ad echa zosta艂 zmontowany na dw贸ch p艂ytkach drukowanych, kt贸rych schematy monta偶owe pokazano na rys. 6. Po zgromadzeniu wszystkich niezb臋dnych element贸w mo偶emy przyst膮pi膰 do monta偶u, kt贸ry nie powinien zaj膮膰 du偶o czasu. Nale偶y zwr贸ci膰 szczeg贸ln膮 uwag臋 na prawid艂owe po艂膮czenie ze sob膮 obydwu p艂ytek drukowanych.
Uruchomienie uk艂adu nale偶y przeprowadzi膰 dwuetapowo: najpierw uruchamiamy panel stero-
wania, nast臋pnie zasadnicz膮 cz臋艣膰 uk艂adu. W bloku sterowania nale偶y ustawi膰 potencjometrem P0T2 odpowiedni kontrast wy艣wietlacza LCD. Po zaprogramowaniu mikro-kontrolera, osadzeniu go w podstawce i w艂膮czeniu zasilania blok zaczyna dzia艂a膰. Mo偶na dodatkowo sprawdzi膰 miernikiem lub pr贸bnikiem stan贸w logicznych stany logiczne na wyj艣ciach steruj膮cych.
W kolejnym kroku uruchomiany jest uk艂ad echa. W tym celu nale偶y na wej艣cie poda膰 sygna艂 akustyczny pochodz膮cy np. z odtwarzacza p艂yt CD i reguluj膮c potencjometrem R5 ustawi膰 odpowiedni poziom miksowanego sygna艂u wej艣ciowego z wyj艣ciowym. T臋 czynno艣膰 wykonujemy na s艂uch. Nale偶y przy tym pami臋ta膰, 偶e sygna艂 akustyczny na wej艣ciu nie mo偶e by膰 zbyt du偶y, ze wzgl臋du na mo偶liwo艣膰 wyst膮pienia zniekszta艂ce艅.
Za pomoc膮 tego uk艂adu mo偶na op贸藕nia膰 sygna艂 monofoniczny. Dla op贸藕nienia sygna艂u stereofo-
WYKAZ ELEMENT脫W
Rezystory
Rl, R6: 10kO
R2, R4, R9: 20 kO
R3: 18 kO
R5: 47 kO potencjometr
R7: 1 kO
R8: 3kQ
RIO: 2,7 kO
Rl 1, R12: 3,9 kO
R13: 10 kO potencjometr
Kondensatory
Cl: 100^F/16V
C2, C8, C13, C20, C23: lOOnF
C3, C贸: lOOpF
C4, C16: 4,7nF
C5, C9, C18, C22: 1jiF/16V
C7, C15: 560pF
CIO: 47^F/1脫V
Cli, C12: 330nF
C14, C17: lOnF
Cl 9: 1000^F/25V
C21: 470|iF/15V
C24, C25: 30pF
P贸艂przewodniki
US1: T脫2M0001A
US2: ST62T20C - zaprogramowany
US3: 7805
R贸偶ne
Xl: 8MHz
P1...P3: przyciski do druku
Gniazdo Cinch do druku (2 szt.)
ARK2
Wy艣wietlacz LCD 1x16
nicznego potrzebne s膮 dwa uk艂ady T62M0001A. Aby otrzyma膰 sygna艂 stereofonicznego echa, nale偶y u偶y膰 dw贸ch p艂ytek drukowanych bloku g艂贸wnego, kt贸rych wej艣cia steruj膮ce nale偶y po艂膮czy膰 ze sob膮 i do艂膮czy膰 do wyj艣膰 bloku steruj膮cego. Elementy zasilacza montujemy tylko na jednej z p艂ytek bloku g艂贸wnego, z kt贸rej zasilane s膮 pozosta艂e cz臋艣ci uk艂adu. Krzysztof G贸rski, AVT
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/grudzienO2Jitm oraz na p艂ycie CD-EP12/2002B w katalogu PCB.
30
Elektronika Praktyczna 12/2002
PROJEKTY
"M贸wi膮ca" kostka do gry
AYT-5089
Zim膮 wi臋cej czasu
sp臋dzamy w domu. W tym
okresie "do 艂ask" dochodz膮
zarzucone niegdy艣 gry.
W wi臋kszo艣ci gier
planszowych niezb臋dna jest
kostka. A sama kostka mo偶e
mie膰 r贸偶n膮 budow臋: zwyk艂ego
sze艣cianu z namalowanymi
"oczkami" lub
zaawansowanego uk艂adu
elektronicznego zawieraj膮cego
mi kro pro ce sor.
Rekomendacje: dla
"zaci臋tych" graczy, kt贸rzy
chc膮 urozmaici膰
i uatrakcyjni膰 przebieg
losowa艅, stanowi膮cych
podstaw臋 wi臋kszo艣ci gier
planszowych.
Niezale偶nie od budowy, kostka s艂u偶y jednemu celowi: wylosowaniu liczby z przedzia艂u 1...6. Nasuwa si臋 pytanie: po co do tak prostej czynno艣ci "w艂膮cza膰" elektronik臋? Jednak uk艂ad elektroniczny zwyk艂ej kostki mo偶e przynie艣膰 wiele rado艣ci, zar贸wno na etapie uruchamiania, jak i p贸藕niejszego u偶ytkowania.
W artykule opisano budow臋 elektronicznej kostki, informuj膮cej g艂osem o liczbie "wyrzuconych" oczek. Opiera si臋 ona na specjalizowanym uk艂adzie nagrywaj膮cym i odtwarzaj膮cym d藕wi臋ki oraz dw贸ch uk艂adach cyfrowych. Zastosowanie uk艂ad贸w wykonanych w technologii CMOS pozwala na zasilanie bateryjne. W stanie "spoczynku" kostka do gry pobiera zaledwie 70 fiA pr膮du, a w stanie aktywnym oko艂o 40 mA. Zwi臋kszony pob贸r pr膮du wyst臋puje tylko w momencie losowania (wypowiadania wylosowanej liczby), wi臋c baterie wystarczaj膮 na bardzo wiele spotka艅.
Budowa i dzia艂anie
Schemat elektryczny "m贸wi膮cej" kostki do gry przedstawiono na rys. 1. G艂贸wnym elementem jest uk艂ad scalony US2. Umo偶liwia on zapisywanie i odtwarzanie komunikat贸w g艂osowych o czasie trwania r贸wnym 20 sekund. Zawiera on obwody wej艣ciowe i wyj艣ciowe niezb臋dne do zapisu i odtwarzania sygna艂u analogowego,
dzi臋ki czemu do budowy uk艂adu potrzebna jest niewielka liczba element贸w zewn臋trznych. Sygna艂 wej艣ciowy z mikrofonu MK jest podawany do wewn臋trznego wzmacniacza poprzez kondensatory ClO i Cli. W obwodzie zasilania mikrofonu pracuj膮 rezystory R9...R11. Rezystor R9 wraz z kondensatorem Cl2 tworzy filtr dol-noprzepustowy, dzi臋ki czemu do nagrywanych komunikat贸w nie przedostaj膮 si臋 zak艂贸cenia wyst臋puj膮ce w obwodzie zasilania. W uk艂ad ISD1420 wbudowano r贸wnie偶 wzmacniacz wyj艣ciowy umo偶liwiaj膮cy bezpo艣rednie do艂膮czenie g艂o艣nika.
Nagrywanie komunikat贸w rozpoczyna si臋 od podania niskiego poziomu na wej艣cie REC - przez ca艂y czas trwania tego poziomu wykonywana jest rejestracja (zapis) d藕wi臋ku. Ustawienie "1" na wej艣ciu REC ko艅czy zapis komunikatu. W czasie zapisu dioda D3 sygnalizuje stan nagrywania 艣wieceniem. Je艣li w czasie nagrywania zostanie przekroczony czas zapisu (zostanie przepe艂niony wewn臋trzny licznik adresuj膮cy), to zapis zostanie przerwany pomimo nis-
Elektronika Praktyczna 12/2002
33
"M贸wiqca" kostka do gry
vcc
4,5-6,5V
Rys. 1. Schemat elektryczny elektronicznej kostki do gry
kiego poziomu na wej艣ciu REC, a dioda D3 zostanie zgaszona, sygnalizuj膮c przepe艂nienie licznika. Do zainicjowania odtwarzania nagranych komunikat贸w uk艂ad ISD1420 posiada dwa niezale偶ne wej艣cia steruj膮ce: PLAYL i PLAYE. Wej艣cia te r贸偶ni膮 si臋 tym, 偶e podanie na wej艣cie PLAYE ujemnego impulsu spowoduje start odtwarzania komunikatu i komunikat ten zostanie odtworzony automatycznie do ko艅ca. Natomiast wej艣cie PLAYL inicjuje odtwarzanie, kt贸re trwa dop贸ty, dop贸ki na wej艣ciu tym jest poziom niski. Po zmianie na tym wej艣ciu poziomu na wysoki nast臋puje zatrzymanie odtwarzania, niezale偶nie od tego, czy komunikat zosta艂 odtworzony w ca艂o艣ci, czy te偶 nie. W przedstawionym uk艂adzie wykorzystano wej艣cie PLAYE, dzi臋ki czemu wystarczy poda膰 na to wej艣cie ujemny impuls, a komunikat zostanie odtworzony i po jego zako艅czeniu uk艂ad przejdzie w stan u艣pienia. Ten spos贸b inicjowania odtwarzania komunikat贸w jest 艂atwiejszy, gdy偶 nie trzeba kontrolowa膰 d艂ugo艣ci komunikatu. Po wykryciu znacznika ko艅ca komunikatu uk艂ad ISD1420 sam wy艂膮cza tryb odtwarzania.
W zale偶no艣ci od stan贸w wyst臋puj膮cych na wej艣ciach adresowych A0...A7, uk艂ad ISD1420 mo偶e pracowa膰 w r贸偶nych trybach. Poszczeg贸lne tryby pozwalaj膮 na r贸偶ne sposoby odtwarzania komunikat贸w, na przyk艂ad 艂膮czenie kilku komunikat贸w w jedn膮 ca艂o艣膰 lub nieprzerwane odtwarzanie jednego komunikatu.
W kostce wykorzystano adresowany tryb odtwarzania. Oznacza to, 偶e poszczeg贸lne komunikaty zapisywane s膮 od konkretnego adresu podanego na wej艣cia A0...A7 w procesie nagrywania, a nast臋pnie ka偶dy komunikat jest odtwarzany po podaniu jego adresu. Linie adresowe umo偶liwiaj膮 wybranie maksymalnie 160 komunikat贸w, ka偶dy o d艂ugo艣ci 0,125 s, co w efekcie daje czas nagrania 20 s. Do adresowania pami臋ci uk艂adu ISD1420, a tym samym wyboru odpowiedniego komunikatu zastosowano uk艂ad USl. Jest to pier艣cieniowy licznik dziesi臋tny, kt贸ry w zale偶no艣ci od liczby zliczonych impuls贸w "wystawia" jedynk臋 na jednym z wyj艣膰 Q0...Q9. Podanie impulsu dodatniego na wej艣cie CLK powoduje "przesuni臋cie" jedynki na wyj艣ciach licznika. Jedynka wyst臋puje tylko na
jednym z wyj艣膰 Q0...Q6, a na pozosta艂ych s膮 zawsze zera. Wej艣cie zeruj膮ce licznika jest do艂膮czone do wyj艣cia Q6, wskutek czego licznik liczy tylko do sze艣ciu, gdy偶 po si贸dmym impulsie na wej艣ciu zegarowym wyj艣cie Q6 przyjmuje stan "1", co z kolei powoduje zerowanie licznika. W ten spos贸b otrzymano licznik licz膮cy do sze艣ciu, co umo偶liwia wypowiedzenie tylko sze艣ciu komunikat贸w.
Przy takim uk艂adzie adresowania kolejne komunikaty zaczynaj膮 si臋 dla nast臋puj膮cych warto艣ci czasu: Os, 1 s, 2 s, 4 s, 8 s, 16 s. Z tego powodu czasy przypadaj膮ce na poszczeg贸lne komunikaty s膮 r贸偶ne: na pierwszy i drugi komunikat przypada 1 sekunda, na trzeci ju偶 dwie sekundy, na czwarty 4 sekundy, na pi膮ty a偶 8 sekund, na sz贸sty zn贸w 4 s. Nieproporcjonalne roz艂o偶enie czas贸w nie ma znaczenia dla funkcjonowania kostki, a znacznie upraszcza adresowanie poszczeg贸lnych komunikat贸w.
Przekroczenie czasu przypadaj膮cego na dany komunikat spowoduje nadpisanie kolejnego komunikatu. Czasy trwania komunikat贸w wymaganych do pracy kostki
34
Elektronika Praktyczna 12/2002
"M贸wiqca" kostka do gry
Ol OOOOOOOOOOOOOO
Rys. 2. Schemat monta偶owy p艂ytki drukowanej
nie przekraczaj膮 jednej sekundy, nie ma wi臋c mo偶liwo艣ci nadpisa-nia nagrywanych komunikat贸w.
Do generowania sygna艂u taktuj膮cego o du偶ej cz臋stotliwo艣ci, niezb臋dnego do 膮uasi-losowego odtwarzania komunikat贸w, wykorzystano dwie bramki uk艂adu US3, kt贸re wraz z rezystorami Rl, R2 i kondensatorem Cl tworz膮 generator przebiegu prostok膮tnego. Sygna艂 jest generowany tylko wtedy, gdy jest naci艣ni臋ty przycisk SWl. Je艣li zworka JP2 jest w pozycji 1-2, to sygna艂 ten jest podawany na wej艣cie zegarowe licznika USl, co powoduje zmiany adresu na wej艣ciach adresowych uk艂adu ISD1420. Nie nast臋puje jednak odtwarzanie komunikat贸w, gdy偶 na wej艣ciu wyzwalaj膮cym PLAYE wyst臋puje stan jedynki logicznej, wymuszony przez rezystor podci膮gaj膮cy R7. Po zwolnieniu przycisku nast臋puje zatrzymanie licznika i poprzez bramk臋 U3D zostanie wygenerowany ujemny impuls powoduj膮cy odtworzenie komunikatu o adresie czasowym ustawionym przez licznik. Po odtworzeniu komunikatu (liczby "wyrzuconych" oczek) uk艂ad przechodzi w stan u艣pienia. Ponowne naciskanie przycisku SWl spowoduje wylosowanie kolejnej liczby. Liczby b臋d膮 niemal偶e losowe i to pomimo, i偶 generator pracuje ze sta艂膮 cz臋stotliwo艣ci膮. Wynika to z faktu, 偶e czas naci艣ni臋cia przycisku b臋dzie za ka偶dym razem losowo r贸偶ny, a co za tym idzie liczba zliczona przez licznik przypadkowa.
Monta偶 i uruchomienie
Schemat monta偶owy zamieszczono na rys. 2. Monta偶 wykonujemy, poczynaj膮c od element贸w
0 najmniejszych wymiarach, czyli rezystor贸w i kondensator贸w, a nast臋pnie montujemy podstawki pod uk艂ady scalone. W nast臋pnym etapie montujemy kondensatory i diod臋 艣wiec膮c膮 D3. Na ko艅cu montujemy zworki JPl, JP2 i JP3 oraz z艂膮cza CON1, CON2. Przed wluto-waniem mikrofonu nale偶y do jego punkt贸w lutowniczych przylutowa膰 odcinki srebrzanki o d艂ugo艣ci oko艂o 5 mm. Tak przygotowany mikrofon nale偶y wlutowa膰 w p艂ytk臋.
Je艣li monta偶 zosta艂 wykonany poprawnie, to montujemy uk艂ady scalone i do z艂膮cza CON2 pod艂膮czamy g艂o艣nik, a do z艂膮cza CONl napi臋cie zasilania. Zwork膮 JPl mo偶na roz艂膮cza膰 napi臋cie zasilania bez konieczno艣ci od艂膮czania przewod贸w od z艂膮cza CONl.
Napi臋cie to powinno zawiera膰 si臋 w przedziale 4,5 V...6,5 V. Do tego celu mo偶na zastosowa膰 zasilacz stabilizowany 5 V lub cztery baterie (na przyk艂ad R6) po艂膮czone szeregowo. Wskazane jest jednak zastosowanie baterii, gdy偶 umo偶liwi to u偶ywanie kostki w dowolnym miejscu. Ca艂y uk艂ad jest zabezpieczony przed odwrotn膮 polaryzacj膮, dzi臋ki czemu nie ma ryzyka uszkodzenia uk艂ad贸w scalonych (nale偶y tylko przestrzega膰 warto艣ci napi臋cia). Po zmontowaniu uk艂adu mo偶na przej艣膰 do procedury nagrania niezb臋dnych komunikat贸w.
Nagrywanie komunikat贸w
Do pracy kostki potrzebne jest nagranie komunikat贸w g艂osowych w uk艂adzie ISD1420. Procedur臋 t臋 wykonuje si臋 tylko raz, po zmontowaniu uk艂adu, gdy偶 nagrane komunikaty zostan膮 zapisane w nieulotnej pami臋ci uk艂adu ISD1420 i b臋d膮 pami臋tane r贸wnie偶 po wy艂膮czeniu zasilania.
Aby nagra膰 komunikaty, nale偶y zwork臋 JP2 ustawi膰 w pozycji 2-3. W贸wczas licznik nie b臋dzie zlicza艂 impuls贸w z generatora, lecz z przycisku SWl. Pozwoli to na ustawianie odpowiednich adres贸w dla kolejnych komunikat贸w. Nagrywanie komunikat贸w wykonuje si臋 nast臋puj膮co: w艂膮czamy zasilanie, zwieramy zwork臋 JP3, wypowiadamy pierwszy komunikat (czyli "jeden")
1 wyci膮gamy zwork臋 - dla 艂atwiej-
szej obs艂ugi mo偶na zamiast zworki JP3 zastosowa膰 przycisk. Nast臋pnie naciskamy przycisk SWl, nast膮pi odtworzenie nagranego komunikatu i jednocze艣nie zostanie zwi臋kszona zawarto艣膰 licznika w celu nagrania kolejnego komunikatu. Kolejne komunikaty zapisujemy w ten sam spos贸b a偶 do sze艣ciu, nagrywaj膮c kolejne cyfry: jeden, dwa, trzy, cztery, pi臋膰, sze艣膰. Za ka偶dym razem, gdy zwarta jest zworka JP3, 艣wieci si臋 dioda D3, sygnalizuj膮c stan zapisu. Po nagraniu wszystkich komunikat贸w nale偶y przestawi膰 zwork臋 JP2 w pozycj臋 1-2, kieruj膮c ponownie sygna艂 z generatora na wej艣cie zegarowe licznika. W贸wczas uk艂ad jest gotowy do pracy. Ka偶dorazowe naci艣ni臋cie i zwolnienie przycisku SWl b臋dzie powodowa艂o wypowiedzenie losowej liczby "wyrzuconych" oczek. Krzysztof P艂awsiuk, AVT krzysztof.plawsiuk@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/grudzienO2.htm oraz na p艂ycie CD-EP12/2002B w katalogu PCB.
WYKAZ ELEMENT脫W
Rezystory
Rl, R3, R4, R贸, R7: lOOkO
R2: lMn
R5, R9: lkn
R8, RIO, Rl 1: 10kO
R12: 470kQ
R13: 5,lkQ
Kondensatory
Cl, C6...C11: lOOnF
C2: 100^F/16V
C3: lnF
C4, C5: 220nF
Cl2: 220|iF/16V
C13: 4,7^F/1脫V
P贸艂przewodniki
Dl: 1N5817
D2: BAT43
D3: LED 3mm czerwona
USl: CD4017
US2: ISD1420
US3: CD4001
R贸偶ne
CONl, CON2: ARK2(3,5mm)
JPl, JP3: goldpin 1x2 + jumper
JP2: goldpin 1x3 + jumper
SWl: mikrow艂膮cznik
MK: mikrofon pojemno艣ciowy
G艂o艣nik 1W/16
Podstawki: DIL24, DIL1脫, DIL14
Elektronika Praktyczna 12/2002
35
PROJEKTY
Interfejs graficznych wy艣wietlaczy LCD
AVT-5093
S tero wan ie graficznym
wy艣wietlaczem LCD jest dosy膰
k艂opotliwe, szczeg贸lnie gdy
wy艣wietlacz nie ma
wbudowanego sterownika
z funkcjami u艂atwiaj膮cymi
wy艣wietlanie oraz rysowanie
grafiki i tekst贸w. W artykule
opisan o in terfejs sprz臋towy
mi臋dzy wy艣wietlaczem
a steruj膮cym
mikrokontrolerem. Dzi臋ki
niemu mo偶na 艂atwiej wykona膰
wi臋kszo艣膰 typowych zada艅
graficznych.
Rekomendacje: artyku艂
polecamy projektantom
zamierzaj膮cym stosowa膰
wy艣wietlacze graficzne
w swoich opracowaniach.
GND VDD VEE
E, R/W, D/l DB0-DB7
CS1 CS2 RST
Vout
HD61203
Prezentowany w artykule uk艂ad jest inteligentnym interfejsem mi臋dzy steruj膮cym mikrokontrolerem a wy艣wietlaczem. Dzi臋ki temu projektant mo偶e skupi膰 si臋 na przygotowaniu oprogramowania (np. oscyloskopu czy w艂asnego GameBoya) i nie rozprasza膰 si臋 problemami zwi膮zanymi z obs艂ug膮 LCD, a jest ich wiele. Zastosowanie interfejsu
C1
I
C64
LC-Display S1 -S64 S65-S128
IC1 HD61202
RST
IC2 HD61202
RSTI
-?
IZh
R8
Rys. 1. Schemat blokowy sterownika zastosowanego w wy艣wietlaczu graficznym opisanym w artykule
eliminuje wiele problem贸w zwi膮zanych z obs艂ug膮 wy艣wietlacza, a ponadto, do jego sterowania wystarcza zaledwie jedno wyprowadzenie mikrokontrolera. Zastosowanie transmisji szeregowej nie jest krytyczne dla wy艣wietlania danych na wy艣wietlaczach LCD, gdy偶 s膮 one stosunkowo wolne. Poza tym, od艣wie偶anie obrazu przeprowadza si臋 zwykle wtedy, gdy trzeba go zmieni膰, ale nie cz臋艣ciej ni偶 kilka razy na sekund臋.
Modu艂 wy艣wietlacza
Wy艣wietlacz zastosowany w projekcie ma oznaczenie EAP128-6N2LED (polecam go ze wzgl臋du na nisk膮 cen臋). Matryca ekranu sk艂ada si臋 ze 128 x 64 punkt贸w. Ma wbudowany pod-艣wietlacz z diod LED i przetwornic臋 dostarczaj膮c膮 ujemne napi臋cie polaryzuj膮ce. Sterownik wy艣wietlacza posiada magistral臋 (tak jak i w LCD alfanumerycznych) zgodn膮 z procesorami Motoroli (6809, 680x0, 683xx). Zewn臋trzny procesor steruj膮cy ma poprzez t臋 magistral臋 dost臋p do pami臋ci ekranu wy艣wietlacza.
Ekran zawiera 128 x 64 punkt贸w, zgrupowanych w dw贸ch segmentach po 64 x 64 punkty.
Elektronika Praktyczna 12/2002
37
Interfejs graficznych wy艣wietlaczy LCD
ZASILANIE 5V
O O
PORT DRUKARKI
Rys. 2. Jeden z mo偶liwych sposob贸w pod艂膮czenia wy艣wietlacza graficznego do portu drukarkowego PC
Sterowanie wy艣wietlaniem jest wi臋c podobne jak w wy艣wietlaczach alfanumerycznych 4x40 znak贸w, w kt贸rych zastosowano dwa sterowniki 2 x 40 znak贸w, programowane przez jedn膮 magistral臋. W prezentowanym wy艣wietlaczu matryc臋 obs艂uguj膮 tak偶e dwa niezale偶ne sterowniki 64 x 64 pun-
kty. To dodatkowo komplikuje sterowanie wy艣wietlaczem.
Na rys. 2 przestawiono schemat uk艂adu umo偶liwiaj膮cego do艂膮czenie wy艣wietlacza do portu drukarkowego komputera PC. Interfejs jest tak prosty, 偶e mo偶na go wykona膰 na p艂ytce uniwersalnej.
Tab. 1. Zestawienie polece艅 sterownika HD61208
Polecenie Kod m
R/W a\ DB7 DB6 DB5 DB4 DBS DB2 DB1 DBO
Display OWOFF 0 0 0 0 1 1 1 1 1 W艂膮czafaryl膮cza wy艣wietlanie: 1 -> w艂膮czone, 0 -> wy艂膮czone
Display start lin臋 0 0 1 1 Pocz膮tkowa Unia wy艣wlet anla (0...63) Numer llnll wy艣wietlane) w gAms| cz臋艣ci ekranu
Set page(Xaddrsss) 0 0 1 0 1 1 1 Wsp贸艂rz臋dna X(0...7) Ustala numer aktywnej strony pami臋ci obrazu (wsp贸艂rz臋dna X)
Sst address 0 0 0 1 Wsp贸艂rz臋dna Y 0...63) Ustala pocz膮tkowy adres w liczniku wskazuj膮cego wsp贸艂rz臋dn膮 Y
Status Read 1 0 B U S Y 0 ON / OFF R E S E T 0 0 0 0 Odczyt rejestru statusu RESET: 1 -> zerowanie, 0 -> praca ON/OFF:1 -> wy艣wiet., 0-> wy艣wietl. wyleczony w艂膮czony BLJSY: 1-> kontroler, 0 -> kontroler zaj臋ty gotowy
Wrlte display data 0 1 Dane wpisywana do pami臋ci obrazu Zapis e-bitowego skiwa danych do pami臋ci obrazu Dost臋p (zapis' odczyt) do pami臋ci obrazu. Po ka偶dej operacji adres Y Jest automatycznie hkremsntowany
Read display data 1 1 Dane odczytywane z pami臋ci obrazu Odczyt 8-bltowego s艂owa danych do pami臋ci obrazu
W przypadku do艂膮czenia wy艣wietlacza do magistrali procesora innego ni偶 Motoroli nale偶y pami臋ta膰, 偶e sterownik wy艣wietlacza wymaga, aby sygna艂y RW, DI i CS ustali艂y si臋 przed wyst膮pieniem poziomu aktywnego sygna艂u E. Aby spe艂ni膰 ten warunek, najlepiej sygna艂y steruj膮ce dla wy艣wietlacza wytworzy膰 w uk艂adzie wed艂ug rys. 3. Powoduje to, 偶e obs艂uga wy艣wietlacza jest troch臋 nienaturalna (inne adresy do zapisu, inne do odczytu), ale mamy gwarancj臋, 偶e sygna艂 RW zostanie ustalony przed pojawieniem si臋 sygna艂u E.
Sterowanie wy艣wietlaczem W tab. 1 opisano spos贸b dost臋pu do rejestr贸w kontrolnych i pami臋ci. Wyb贸r operacji odbywa si臋 poprzez ustawienie odpowiednich stan贸w logicznych na wej艣ciach steruj膮cych kontrolera wy艣wietlacza:
- odczyt rejestru kontrolnego: (DI=L, RW=H) - znaczenie poszczeg贸lnych bit贸w jest nast臋puj膮ce:
bit 7 - BUSY
BUSY=L - sterownik gotowy do przyj臋cia rozkazu
BUSY=H - sterownik realizuje rozkaz, CPU musi czeka膰 bit 6 - zawsze L bit 5 - ON/OFF
ON/OFF=L - wy艣wietlacz wy艂膮czony
ON/OFF=H - wy艣wietlacz w艂膮czony bit 4 - RESET
RESET=L - normalna praca
RESET=H - wy艣wietlacz w stanie zerowania (aktywny stan linii zeruj膮cej) bit 3...0 - zawsze L
- zapis rejestru kontrolnego: (DI=L, RW=L) - znaczenie poszczeg贸lnych bit贸w jest nast臋puj膮ce: 001111 lx - w艂膮czenie/wy艂膮czenie wy艣wietlacza
x=H - w艂膮czenie wy艣wietlacza x=L - wy艂膮czenie wy艣wietlacza Olyyyyyy - ustawienie numeru bajtu na stronie (wsp贸艂rz臋dna pozioma) w przedziale 0...63 1011 lxxx - ustawienie numeru strony w przedziale 0...7 llyyyyyy - ustawienie offsetu w przedziale 0...63 - polecenie to umo偶liwia przewijanie ekranu odczyt bajtu z pami臋ci ekranu -odczytuje bajt ustawiony rozkazami Olyyyyyy i 10111xxx,
Elektronika Praktyczna 12/2002
Interfejs graficznych wy艣wietlaczy LCD
UWAGA: w wy艣wietlaczach alfanumerycznych sygna艂 D/l nosi nazw臋 RS
Rys. 3. Interfejs u艂atwiaj膮cy do艂膮czenie wy艣wietlacza graficznego do mikrokontrolera
zapis bajtu do pami臋ci ekranu - zapisuje bajt ustawiony rozkazami Olyyyyyy i 1011lxxx.
Na rys. 3 przedstawiono organizacj臋 pami臋ci ekranu wy艣wietlacza. Aby wy艣wietli膰 na ekranie punkt o wsp贸艂rz臋dnych XY, nale偶y post臋powa膰 nast臋puj膮co: wsp贸艂rz臋dn膮 Y dzielimy przez 8 i tak uzyskana cz臋艣膰 ca艂kowita wyniku okre艣la numer strony pami臋ci ekranu. Reszta z dzielenia jest numerem bitu, kt贸ry chcemy zmodyfikowa膰. Wsp贸艂rz臋dn膮 X por贸wnujemy z liczb膮 63, Je艣li jest wi臋ksza, to oznacza, 偶e obs艂ugujemy drugi segment wy艣wietlacza. Adres punktu i numer bitu mamy obliczony, nale偶y wi臋c odczyta膰 zawarto艣膰 pami臋ci ekranu LCD i przeprowadzi膰 operacj臋 OR (w przypadku wy艣wietlania punktu) lub AND (w przypadku wygaszenia) na wyliczonym numerze bitu.
Aby zainicjowa膰 wy艣wietlacz, nale偶y wys艂a膰 nast臋puj膮ce rozkazy:
MovCTR_LCD,#%00111111 ;w艂膮czenie LCD MovCTR_LCD, #%11000000 ;zerowy offset
Aby wy艣wietli膰 punkt w lewym g贸rnym rogu wy艣wietlacza (w jednej po艂贸wce), nale偶y wys艂a膰 nast臋puj膮ce rozkazy:
MovCTR_LCD,#%10111000
;ustawienie nr strony
;pami臋ci ekranu MovCTR_LCD,#%01000000
;ustawienie adresu
;w pami臋ci ekranu MovDATA_LCD, $%0000000l
;zapis do pami臋ci ekranu
Aby wy艣wietli膰 punkt o wsp贸艂rz臋dnych X=10, Y=20, nale偶y wys艂a膰 nast臋puj膮ce rozkazy:
MovCTR_LCD,#%10111000+2 ;ustawienie nr strony ;pami臋ci ekranu
MovCTR_LCD,#%01000000+10 ;ustawienie adresu ;W pami臋ci ekranu MovDATA_LCD,#%000i0000 ;zapis do pami臋ci ekranu
Aby na wy艣wietlaczu LCD wy艣wietli膰 znak, nale偶y jego wz贸r skopiowa膰, linia po linii, z pami臋ci zawieraj膮cej wzory znak贸w do pami臋ci ekranu. Przyk艂adowy program w Pascalu (tak偶e jego wersja 藕r贸d艂owa) steruj膮cy wy艣wietlaczem przez port r贸wnoleg艂y jest dost臋pny na CD-EP12/2002B i na naszej stronie WWW.
Poniewa偶 nie ma mo偶liwo艣ci odczytania danych z kontrolera LCD, program nie weryfikuje stanu linii busy, tylko odczekuje katalogowy czas (w艂a艣ciwie Pascal dzia艂a tak wolno, 偶e nie trzeba czeka膰). W razie potrzeby op贸藕nienie mo偶na wstawi膰 w procedurze STROB. W pami臋ci komputera znajduje si臋 wirtualny ekran, z kt贸rego dane s膮 kopiowane do LCD. Je艣li nie trzeba zapisywa膰 numeru strony lub adresu bajtu do LCD, to procedury te s膮 pomijane. Dzi臋ki temu przyspieszono wykonywanie operacji zapisu.
Przyk艂adowy program wy艣wietla punkty, rysuje prostok膮t, wy艣wietla znaki alfanumeryczne i rysuje lini臋 pod dowolnym k膮tem. Sta艂e FLIP_X, FLIP_Y i ORIENT umo偶liwiaj膮 zamian臋 orientacji ekranu. Gdy ustawimy FLIP_X i FLIP_Y na 1, ekran zostanie odwr贸cony "do g贸ry nogami". Ustawienia na 1 sta艂ej ORIENT umo偶liwia wy艣wietlanie danych w pionie, a nie w poziomie (jak w wi臋kszo艣ci automat贸w do gier).
Aby przybli偶y膰 Czytelnikom obs艂ug臋 wy艣wietlacza, na list. 1 przedstawiam najistotniejszy fragment procedury wy艣wietlania
punktu na LCD napisanej w asem-blerze 8051. Plik z kodem 藕r贸d艂owym jest dost臋pny na stronie EP i na p艂ycie CD-EP12/2002B.
Charakterystyka interfejsu
Program steruj膮cy prac膮 mikrokontrolera realizuje nast臋puj膮ce funkcje:
- po wyzerowaniu wy艣wietla logo do czasu otrzymania dowolnego znaku przez RS232,
- steruje pod艣wietlaniem LCD,
- wy艣wietla punkty,
- wy艣wietla pojedyncze znaki (tak偶e polskie),
- wy艣wietla teksty,
- przewija ekran w pionie,
- czy艣ci ekran,
- prze艂膮cza wy艣wietlany obraz w negatyw,
- zmienia orientacj臋 ekranu w osi X,
- zmienia orientacj臋 ekranu w osi Y,
- obraca ekran o 90 stopni.
Nie zosta艂a zaimplementowana procedura rysowania linii, poniewa偶 wymaga ona wykonywania operacji zmiennoprzecinkowych. S膮 natomiast dost臋pne wzory wszystkich polskich znak贸w, ramek i znaki u偶ywane w odtwarzaczach CD.
Interfejs akceptuje sygna艂y w standardzie TTL i RS232C. Mo偶na go wyzerowa膰, wymuszaj膮c poziom niski na wyprowadzeniu 4 z艂膮cza J3.
Budowa i dzia艂anie interfejsu
Schemat elektryczny interfejsu przedstawiono na rys. 5. Napi臋cie zasilaj膮ce wy艣wietlacz jest podawane na z艂膮cze szpilkowe J3. Na to z艂膮cze wprowadzane s膮 dane z uk艂adu steruj膮cego i sygna艂 ze-
01 2....YJ^:?8... 61 62 63
DBO DB7
PageO
DBO
DB7
Pagel
DBO DB7
Page6
DBO
i
DB7
Page7
X = 0
X=1
X = 6
X = 7
Rys. 4. Mapa pami臋ci sterownika wy艣wietlacza graficznego ze sterownikiem HD61208
Elektronika Praktyczna 12/2002
39
Interfejs graficznych wy艣wietlaczy LCD
List. 1.
Hejscie:
R2 - wsp贸艂rz臋dna X
R3 - wsp贸艂rz臋dna Y
R4 - 1-zapala punkt, O-gasi punkt
Zmienia: -
lcd_point: mova,R2
cjne a, 艂(MAX_X/2)+1,$+3
jnc lcd_point_csO
clr_CS
sjmp lcd_point_csl lcd_point_csO: setb _CS lcd_point_csl:
mov a , R3
movB,#8
divab
cali lcd_page
mova,R2
cali lcd_adr_y
mova,E
cjne R4,#0,lcd_point_setl
movdptr,艂tab_and
sjmp Icd_point_set2 lcd_point_setl: mov dptr, 艂tab_or Icd_point_set2 : movc a,@a+dptr
movE,a
cali rd_dana
cali rd_dana
push ACC
mova,R2
cali lcd_adr_y
pop ACC
Kt贸ra polowke obs艂ugujemy? czy przej艣cie na druga polowke?
- ustawienie pierwszej po艂贸wki
- tak wiec ustawienie drugiej po艂贸wki
adresu strony zieleni膮 w E
Obliczeni Y/8
X
"eszta z dzielenia do ;Je艣li SET punktu te nie set wiec RESET
; Wczytanie danej z tablicy nr bitu do zapalenia zapami臋taj w E Odczytaj zawarto艣膰 pami臋ci ekamu w miej: korekta (odczytuje Y-l)
X
.cu zmiany 艢kranu
Odtworzenie odczytanej
c]ne R4,tfO,lcd_point_set3 ; Je艣li SET punktu te
ani a E
sjmp Icd_point_set4 Icd_point_set3: orla.E Icd_point_set4: cali wr_dana
lcd_point_exit: ret
tab_or: DE 01h,02h,04h,08h,10h,20h,40h,80h
tab_and: DE lllllllOb
DE llllllOlb
DE lllllOllb
DE llllOlllb
DE lllOllllb
DE llOlllllb
DE lOllllllb
DE Olllllllb
ej z LCD
ruj膮cy. Dane przesy艂ane szeregowe s膮 podawane na wej艣cie bramki U2C uk艂adu 74HC14. Rezystor Rl zabezpiecza wej艣cie bramki w przypadku wyst膮pienia na nim napi臋cia wi臋kszego od napi臋cia zasilania lub napi臋cia ujemnego. Dzi臋ki temu mo偶na doprowadzi膰 do wej艣cia uk艂adu napi臋cia zgodne ze standardem RS23 2C lub o poziomach TTL. Je艣li sygna艂 ma poziomy TTL, jumper na J2 musi zwiera膰 styki 2-3, a je艣li sygna艂y s膮 zgodne z RS232C, na J2 zwieramy styki 1-2. Dane s膮 podawane na wej艣cie RxD procesora. Elementy Cl i R6 tworz膮 obw贸d zeruj膮cy procesor po w艂膮czeniu zasilania. Mikrokontroler mo偶na
wyzerowac, wymuszaj膮c poziom niski na styku 4 z艂膮cza J3.
Mikrokontroler steruje wy艣wietlaczem LCD za po艣rednictwem wi臋kszo艣ci wyprowadze艅 port贸w Pl i P3. Rezystory R3 i R4 s膮 konieczne, poniewa偶 wyprowadzenia Pl.O i Pl.O mikrokontrolera nie zawieraj膮 wewn臋trznych obwod贸w podci膮gania. Tranzystor T2 za艂膮cza pod艣wietlanie wy艣wietlacza. Niski poziom na wyprowadzeniu 3 procesora powoduje w艂膮czenie tego tranzystora. Za pomoc膮 bramki U2A steruje si臋 wej艣ciem CSl kontrolera LCD w prze-ciwfazie z wej艣ciem CS2. Potencjometrem Pl reguluje si臋 kontrast wy艣wietlacza.
Monta偶 i uruchomienie
Schemat monta偶owy p艂ytki pokazano na rys. 6. W pierwszej kolejno艣ci montujemy rezystory, podstawki pod uk艂ady scalone, kondensatory i potencjometr. Nast臋pnie lutujemy z艂膮cza: J2 - listwa goldpin 1x3, J3 - listwa goldpin 1x4, Jl - listwa goldpin 20x1 (montujemy je od strony druku). Podobnie post臋pujemy z gniazdami tulipa-
nowymi J4 i J5. Umieszczamy uk艂ad U2 w podstawce i w艂膮czamy zasilanie. Na styk 3 z艂膮cza J3 podajemy szeregowo dane z PC -na wyprowadzeniu 2 uk艂adu Ul powinny wyst臋powa膰 impulsy. Po zwarciu styku 4 z艂膮cza J3 z mas膮, na wyprowadzeniu 1 podstawki pod Ul powinien by膰 poziom "H". Po tych czynno艣ciach mo偶na umie艣ci膰 mikrokontroler i wy艣wietlacz w miejscach dla nich przeznaczonych. Po w艂膮czeniu zasilania na wy艣wietlaczu powinno pojawi膰 si臋 logo i w艂膮czy膰 pod艣wietlanie wy艣wietlacza. Logo zniknie i pod艣wietlanie wy艂膮czy si臋 po odebraniu pierwszego znaku. Je艣li logo jest ma艂o widoczne, regulujemy kontrast wy艣wietlacza. Je艣li regulacja nie jest skuteczna, sprawdzamy, czy na styku 18 z艂膮cza Jl wyst臋puje napi臋cie ujemne (oko艂o -9V). Brak napi臋cia 艣wiadczy o uszkodzeniu wy艣wietlacza lub zwarciu 艣cie偶ek prowadz膮cych do potencjometru. Je艣li napi臋cie ma prawid艂ow膮 warto艣膰, prawdopodobnie nie pracuje procesor. W pierwszej kolejno艣ci sprawdzamy, czy na wyprowadzeniu 1 mikrokontrolera jest poziom "L". Je艣li wyst臋puje poziom "H", uszkodzony mo偶e by膰 tranzystor Tl lub rezystor R6. Je艣li jest poziom "L", zwieramy na chwil臋 styk 4 z艂膮cza J3 z mas膮. Na wyprowadzeniu 1 mikrokontrolera powinien pojawi膰 si臋 na chwil臋 poziom "H". Je艣li po ponownym zerowaniu nie pojawi si臋 logo, to nie pracuje poprawnie mikrokontroler. Sprawdzamy, czy na wyprowadzeniu 4 mikrokontrolera wyst臋puje fala prostok膮tna. Podczas testu nale偶y u偶ywa膰 sondy 1:10, aby nie przeci膮偶y膰 oscyla-tora, co spowodowa艂oby zerwanie drga艅.
Je艣li uk艂ad nadal nie pracuje poprawnie, nale偶y sprawdzi膰, czy po zerowaniu pojawiaj膮 si臋 impulsy lub poziom niski na wyprowadzeniu 8 mikrokontrolera. Je艣li s膮 impulsy, to sprawdzamy, czy wyst臋puj膮 r贸wnie偶 na wyprowadzeniach 1 i 2 uk艂adu U2. Nale偶y pami臋ta膰, 偶e impulsy pojawiaj膮 si臋 tam na kr贸tko po zerowaniu. Je偶eli wyst臋puj膮 impulsy na wyprowadzeniach U2, a nie jest wy艣wietlane logo na LCD, 艣wiadczy to o uszkodzeniu wy艣wietlacza.
Elektronika Praktyczna 12/2002
Interfejs graficznych wy艣wietlaczy LCD
vcc
vcc
GND
GND
GND
GND GND
Rys. 5. Schemat elektryczny interfejsu wy艣wietlacza LCD
Mo偶na jeszcze sprawdzi膰, czy wyprowadzenia mikrokontrolera 11 i 13 s膮 poprawnie "podci膮gane" do +5V. Gdy po zerowaniu wyprowadzenie 8 mikrokontrolera na chwil臋 przyjmuje poziom niski, a p贸藕niej utrzymuje si臋 na poziomie wysokim, oznacza to, 偶e wy艣wietlacz znajduje si臋 w stanie WAIT. Prawdopodobn膮 przyczyn膮 jest uszkodzenie sterownika LCD.
Przed uznaniem LCD za niesprawny nale偶y jeszcze sprawdzi膰, czy na styku 17 z艂膮cza Jl wyst臋puje poziom "H" - poziom "L" mo偶e blokowa膰 prac臋 LCD.
Programowa obs艂uga interfejsu
Do pierwszych test贸w proponuj臋 pod艂膮czenie sterownika do komputera z uruchomionym programem terminalowym. Zworka na J2 musi zwiera膰 styki 1-2. W programie terminala ustawiamy nast臋puj膮ce parametry transmisji: 4800/8nl, sterowanie przep艂ywem - sprz臋t.
Aby wy艣wietli膰 punkt, nale偶y wys艂a膰 przez RS komend臋:
p XX YY,
gdzie:
XX, YY - odpowiednio wsp贸艂rz臋dna X , wsp贸艂rz臋dna Y (szesnast-kowo po dwa znaki ASCII) -np.: sekwencja pO312 spowoduje wy艣wietlenie punktu na ekranie o wsp贸艂rz臋dnych x=3, y=12.
Przekroczenie zakresu wsp贸艂rz臋dnych (wyj艣cie poza ekran) niczym nie grozi, po prostu rozkaz nie zostanie wykonany. Procedura wy艣wietlania punktu jest podstaw膮 dla wszystkich innych operacji. Ka偶d膮 operacj臋 mo偶na przerwa膰, wysy艂aj膮c znak ESC. Ze wzgl臋du na specyfik臋 wy艣wietlacza i programu nie nale偶y umieszcza膰 punkt贸w o wsp贸艂rz臋dnej Y=0. Aby wy艣wietli膰 znak alfanumeryczny, nale偶y wys艂a膰 komend臋:
c XX YY CHAR,
gdzie:
XX i YY - wsp贸艂rz臋dne lewego g贸rnego rogu znaku
CHAR - znak - np.: cOOOla spowoduje wy艣wietlenie litery "a" w lewym g贸rnym rogu ekranu. Aby wy艣wietli膰 tekst, nale偶y
wys艂a膰 komend臋:
t XX YY CHAR CHAR CHAR.,. CHAR CR+LF,
gdzie:
XX i YY to wsp贸艂rz臋dne lewego
g贸rnego rogu tekstu, CHAR - znaki tekstu, CR+LF - znak ko艅ca linii.
Np.: tOOOlAla ma kota [Enter] umie艣ci w lewym g贸rnym rogu tekst "Ala ma kota". Znakiem ko艅ca linii mo偶e by膰 kod LF (SOA), CR (SOD) lub CR+LF (SODOA). Wpisanie tekstu mo偶na te偶 zako艅czy膰, wysy艂aj膮c kod ESC (S1B).
Do przewijania ekranu w pionie s艂u偶y komenda:
s YY,
gdzie YY - oznacza przesuni臋cie ekranu w stosunku do punktu 00.
Wysy艂aj膮c w r贸wnych odst臋pach czasu rozkaz "s YY", gdzie YY b臋dzie zmienia膰 si臋 od 0 do 63, uzyskamy p艂ynne przewijanie ca艂ego ekranu z g贸ry na d贸艂. Niestety wy艣wietlacz jest do艣膰 wolny i ci膮g艂e przewijanie nie wygl膮da zbyt dobrze.
Ekran czy艣cimy, wysy艂aj膮c liter臋 C. Ekran pozytywowy (ustawienie domy艣lne) uzyskujemy, wysy艂aj膮c zOl, negatywowy zOO. Obr贸cenie obrazu ekranu w pozio-
Elektronika Praktyczna 12/2002
41
Interfejs graficznych wy艣wietlaczy LCD
r
? oo ? ooo
C3 OOOOOOO C4 OOOOOOOOOO
|o__o
C5 "^ " O O . ,
aoooooooooooooo oX>d 0,0
Rys. 6. Rozmieszczenie element贸w na p艂ytce drukowanej interfejsu
mie uzyskujemy komend膮 x01, ekran normalny x00. Obr贸cenie obrazu ekranu w pionie uzyskujemy komend膮 yOl, ekran normalny yOO. Zmian臋 orientacji ekranu uzyskamy komend膮 oOl, orientacja normalna oOO.
Zmiana orientacji ekranu lub obr贸cenie obrazu ekranu w osi X czy Y dotyczy znak贸w, kt贸re wpiszemy po wys艂aniu odpowiedniej komendy. Inaczej m贸wi膮c, komendy te zmieniaj膮 spos贸b obliczania wsp贸艂rz臋dnych podczas wy艣wietlania punktu. W艂膮czenie pod艣wietlania LCD uzyskamy po wydaniu komendy: L01, zgaszenie: L00.
Polskie znaki diaktryczne oraz znaki specjalne maj膮 nast臋puj膮ce kody (szesnastkowo): 膭 - 01, C -02, 臉 - 03, 艁 - 04, 艃 - 05, 脫 - 06, 艢 - 07, 殴- 08, 呕 - 09, 膭 - 11, 膯 -12, 臉 - 13, 艁 - 14, 艃- 15, 脫 - 16, 艢 - 17, 殴 - 18, 呕 - S19, zanegowana
spacja - 80, odtwarzanie 81, odtwarzanie do ty艂u 82, szybko naprz贸d 83, szybko w ty艂 84, stop 85, pauza 86, zapis 87, ramki 88...92.
Udost臋pniamy wszystkie programy w postaci 藕r贸d艂owej, dzi臋ki czemu mo偶na je do艂膮czy膰 do swojego oprogramowania. Aby u艂atwi膰 wykorzystanie procedur, poni偶ej znajduj膮 si臋 ich opisy:
lcd_clr:
;Czysci ca艂y LCD
;WE: R4 - wz贸r wype艂nienia
;Zmienia: Acc, R7, R6
;Zapala/gasi punkt
;R2 - X
;R3 - Y
;R4 - 1-zapala, 0-gasi
;Zmienia: -
lcd_char
;Wypisuje znak na wy艣wietlacz
WYKAZ ELEMENT脫W
Rezystory
R1...R4, R贸, R8: 10kO
R5: 330O
R7: lOOkO
Potl: potencjometr lOkO
Kondensatory
Cl: 100^F
C2, C3: lOOnF
C4: 10^F/16V
C贸, C7: 33pF
C8: 470nF
P贸艂przewodniki
Tl, T2: BC557
Ul: AT89C2051
U2: 74HC14
R贸偶ne
Jl: listwa goldpin 20x1
J2: listwa goldpin 3x1
J3: listwa goldpin 4x1
Ql: 11.0592MHZ
Wy艣wietlacz graficzny P128-6n2
;Acc- kod znaku
;R2 - X
;R3 - Y
;R4 - 1-zapala, 0-gasi
lcd_text
;Wypisuje tekst na wy艣wietlacz
;R2 - X
;R3 - Y
;R4 - 1-zapala, 0-gasi
;DPTR - adres tekstu
; zako艅czony 0
S艂awomir Skrzy艅ski, AVT slawomir.skrzynski@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/grudzienO2Jitm oraz na p艂ycie CD-EP12/2002B w katalogu PCB.
42
Elektronika Praktyczna 12/2002
PROJEKTY
M i kr opr ocesor o wa 艂adowarka akumulator贸w
AVT-5091
Jednym z wielu zalecanych
przez producenta zastosowa艅
mikrokontroler贸w rodziny
ST62 jest sterowanie
艂adowarkami. Postanowili艣my
opracowa膰 taki uk艂ad
przeznaczony do 艂adowania
偶elowych akumulator贸w
kwasowych.
Rekomendacje: ze wzgl臋du
na zautomatyzowanie
艂adowania akumulator贸w
偶elowych polecamy to
urz膮dzenie u偶ytkownikom
system 贸w alarm owych,
UPS-贸w, domowych central
telefonicznych itp.
P1
BLOK SYGNALIZACJI

ST62T20C BLOK
艁ADOWANIA
^^AKUH dULATOR

BLOK ZASILACZ
ZASILANIA ZEWN臉TRZNY
Rys. 1. Schemat blokowy 艂adowarki
Przy regulowanym pr膮dzie 艂adowania od 0,1 do 1A i napi臋ciu nominalnym 12 V, uk艂ad umo偶liwia 艂adowanie akumulator贸w o pojemno艣ci do 20 Ah. Akumulatory takie s膮 stosowane w awaryjnych uk艂adach podtrzymania zasilania (UPS) i o艣wietlenia w telekomunikacji, energetyce oraz w urz膮dzeniach alarmowych.
Akumulator 偶elowy jest akumulatorem wymagaj膮cym minimalnej obs艂ugi, zamkni臋tym w szczelnej obudowie. Elektrolit jest zawarty w 偶elu krzemowym (technologia dryfit), dzi臋ki czemu nie ma ryzyka pochlapania sobie ubrania kwasem siarkowym. Akumulatory 偶elowe charakteryzuj膮 si臋 du偶膮 trwa艂o艣ci膮 i dobr膮 odporno艣ci膮 na prze艂adowanie. Gwarantuj膮 wysok膮 niezawodno艣膰 oraz bezpiecze艅stwo eksploatacji.
Budowa uk艂adu
Schemat elektryczny 艂adowarki przedstawiono na rys. 1. Jej "sercem" jest mikrokontroler ST62T20C, kt贸ry jest wyposa偶ony m.in. w 8-bitowy przetwornik A/C wykorzystywany w uk艂adzie do pomiaru napi臋cia.
艁adowarka sk艂ada si臋 z nast臋puj膮cych blok贸w funkcjonalnych (rys. 1):
- sterowania,
- 艂adowania,
- sygnalizacji,
- zasilania, zasilania zewn臋trznego.
Blok 艂adowania jest cz臋艣ci膮 wykonawcz膮 uk艂adu, przy艂膮czaj膮c膮 艂adowany akumulator do 藕r贸d艂a pr膮du. Dodatkowo, blok wykonawczy zawiera elementy do pomiaru nat臋偶enia pr膮du i napi臋cia na zaciskach akumulatora podczas jego 艂adowania.
Blok sygnalizacji tworz膮 trzy diody LED oraz sygnalizator akustyczny. Ich zadaniem jest sygnalizowanie stanu pracy bloku 艂aduj膮cego oraz informowanie o stopniu na艂adowania akumulatora.
Blok zasilania dostarcza niezb臋dnych napi臋膰 do zasilania cz臋艣ci cyfrowej uk艂adu.
Zasilacz zewn臋trzny jest 藕r贸d艂em pr膮du dla 艂adowanego akumulatora.
Schemat elektryczny uk艂adu 艂adowarki przedstawiono na rys. 2. Dzi臋ki niewielkiej liczbie element贸w uk艂ad mo偶e wykona膰 ka偶dy elektronik amator. Obwody pomiarowe (do pomiaru pr膮du i napi臋cia) s膮 do艂膮czone do wyprowadze艅 PBl i PB2, kt贸re skonfigurowano jako analogowe wej艣cia przetwornika A/C.
W obwodzie do pomiaru napi臋cia s艂u偶y prosty dzielnik, sk艂adaj膮cy si臋 z dw贸ch rezystor贸w R7 i R8 o tak dobranych warto艣ciach, aby napi臋cie na wej艣ciu pomiarowym PBl nie przekroczy艂o napi臋cia zasilania mikrokontrolera. Natomiast w obwodzie do pomiaru pr膮du jest samodzielnie wykonany z drutu oporowego rezystor o warto艣ci oko艂o 1,3Q/5W.
Sterowanie przeka藕nikiem realizowane jest poprzez wyprowa-
Elektronika Praktyczna 12/2002
43
Mikroprocesorowa 艂adowarka akumulator贸w
AKUMULATOR
Rys. 2. Schemat elektryczny 艂adowarki
dzenie PAO, skonfigurowane jako wyj艣cie cyfrowe typu push-pull. Diody sygnalizacyjne do艂膮czone s膮 do wyprowadze艅 PA1...PA3, skonfigurowanych tak偶e jako push-pull. Sygnalizator akustyczny zosta艂 bezpo艣rednio do艂膮czony do wyprowadzenia PBO. Jedyny w uk艂adzie przycisk steruj膮cy Pl zosta艂 do艂膮czony do wyprowadzenia PB7 skonfigurowanego jako wej艣cie cyfrowe z podci膮ganiem. Wyja艣nienie sposobu dzia艂ania uk艂adu u艂atwi graf, kt贸ry przedstawiono na rys. 3. Zosta艂 on przygotowany za pomoc膮 programu ST6-Realizer. Po w艂膮czeniu zasilania mikrokontroler jest zerowany, po czym program mikrokontrolera wchodzi w stan pocz膮tkowy OCZEKUJE. Po pod艂膮czeniu akumulatora przeznaczonego do 艂adowania i naci艣ni臋ciu przycisku Pl zostaje spe艂niony warunek DOPRACY. Program wchodzi w stan TEST, w kt贸rym akumulator przeznaczony do 艂adowania zostaje poddany testowaniu. Test polega na pomiarze napi臋cia akumulatora i zaklasyfikowaniu go do 艂adowania lub nie. W przypadku, gdy napi臋cie akumulatora ma warto艣膰 wi臋ksz膮 ni偶 12V, zostaje spe艂niony warunek U_OK i program przechodzi w stan
NA艁ADOWANY. Natomiast, gdy napi臋cie na akumulatorze b臋dzie ni偶sze od 8V lub w og贸le go nie b臋dzie, zostaje spe艂niony warunek U_BRAK. Program przechodzi w stan AWARIA. Je偶eli napi臋cie b臋dzie mie艣ci艂o si臋 w przedziale od 9 V do 12 V, to zostaje spe艂niony warunek U_NISKIE i program przechodzi w stan 艁ADOWANIE. W tym stanie na wyj艣ciu steruj膮cym przeka藕nikiem pojawia si臋 wysoki poziom napi臋cia, powoduj膮c jego zadzia艂anie. W贸wczas rozpoczyna si臋 艂adowanie akumulatora. Stan 艂adowania sygnalizowany jest impulsowym 艣wieceniem diody LED (miga co 0,5s).
Podczas 艂adowania akumulatora program oczekuje na spe艂nienie jednego z trzech warunk贸w: PRAD_ZA_D UZY, U_ OK2, ZA -K0NCZ_艁AD0WANIE2.
Warunek PRAD_ZA_DUZY zostanie spe艂niony w przypadku przekroczenia maksymalnego pr膮du 艂adowania. W takim przypadku program przejdzie w stan AWARIA, w kt贸rym przeka藕nik zostaje od艂膮czony, a dioda sygnalizacyjna AWARIA wraz z sygnalizatorem akustycznym zostan膮 w艂膮czone (miga co 0,5 s).
Spe艂nienie warunku ZA-KONCZ_LADOWANIE2 nast膮pi po naci艣ni臋ciu przycisku Pl. Program przejdzie wtedy w stan OCZEKUJE, przerywaj膮c proces 艂adowania akumulatora.
Gdy podczas 艂adowania napi臋cie na akumulatorze przekroczy warto艣膰 13,8 V, zostaje spe艂niony warunek U_OK2 i nast臋puje przej艣cie programu w stan NA艁ADOWANY. Stan ten jest sygnalizowany impulsowym 艣wieceniem diody LED_SPRAWNY oraz przez sygnalizator piezoelektryczny (sygna艂 akustyczny co 2 s). Wyj艣cie ze stanu AWARIA lub NA艁ADOWANY oraz przej艣cie w stan pocz膮tkowy OCZEKUJE nast膮pi po naci艣ni臋ciu przycisku Pl. W贸wczas zostan膮 spe艂nione warunki KASOWANIE lub ZAKONCZJADOWANIE.
Monta偶 i uruchomienie
Na rys. 4 przedstawiono schemat monta偶owy p艂ytki drukowanej, na kt贸rej umieszczono wszystkie elementy uk艂adu z wyj膮tkiem zasilacza zewn臋trznego.
Monta偶 rozpoczynamy od monta偶u z艂膮cz 艣rubowych i przeka藕nika. Ze wzgl臋du na do艣膰 du偶e pr膮dy p艂yn膮ce w obwodzie 艂adowania, lutowanie element贸w po-
ZAKO艃CZJlADOWAN E
*--------4----------
PR膭D_ZA_DU呕Y *-----------4-----------------
LLOK2
4----
ZAKONCZ_艁ADOWANI E
-----------4-----------
Rys. 3. Algorytm dzia艂ania programu
44
Elektronika Praktyczna 12/2002
Mikroprocesorowa 艂adowarka akumulator贸w
^lool loola
O O
Rys. 4. Rozmieszczenie element贸w na p艂ytce drukowanej
winno by膰 staranne i solidne. W dalszej kolejno艣ci montujemy podstawk臋 pod mikrokontroler oraz pozosta艂e elementy elektroniczne. W przypadku braku rezystora o rezystancji 1,3 O. i odpowiednio du偶ej mocy, mo偶emy go wykona膰
samodzielnie z drutu oporowego. Za pomoc膮 najzwyklejszego omomierzem odmierzamy odcinek drutu o rezystancji oko艂o 1,3 O., nast臋pnie nawijamy go na dowolnym rezystorze o mocy 5 W i rezystancji 5Q. Ko艅c贸wki rezystora i drutu skr臋camy razem. Dla pewno艣ci styku mo偶emy spr贸bowa膰 je razem polutowa膰 i tak przygotowany rezystor przykr臋camy do z艂膮cza 艣rubowego oznaczonego Rx.
Zanim w艂o偶ymy w p艂ytk臋 zaprogramowany mikrokontroler, nale偶y dokona膰 sprawdzenia warto艣ci napi臋膰 zasilaj膮cych.
Po wykonaniu czynno艣ci sprawdzaj膮cych mo偶emy osadzi膰 mikrokontroler w podstawce i po pod艂膮czeniu akumulatora i w艂膮czeniu zasilania rozpocz膮膰 jego 艂adowanie. Krzysztof G贸rski, AVT krzysztof.gorski@ep.com.pl
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/grudzienO2.htm oraz na p艂ycie CD-EP12/2002B w katalogu PCB.
WYKAZ ELEMENT脫W
Rezystory
R1...R3, R8: 3,9kQ
R4...R6: 820O
R7: 15kQ
R9: lkii
Rx: 1 ,3Q/5W ceramiczny
Kondensatory
Cl, C4: lOOnF
C2: 1000|iF/25V
C3: 470^F/25V
C5, C贸: 30pF
C7: l|iF/16V
P贸艂przewodniki
Dl: 1N4148
D2...D5: LED
D6: dowolna dioda prostownicza
5A
Tl: BC237
US1: ST62T20C - zaprogramowany
US2: 7805
R贸偶ne
Xl: 8MHz
BUZER
Z艂膮cza 艣rubowe 2xARK 3 szt.
Elektronika Praktyczna 12/2002
45
PROJEKTY
Yampp-3/USB, cz臋艣膰 1
Nowe wcielenie popularnego odtwarzacza MP3
We wrze艣niowym numerze
EP opisa艂em budow臋
sprz臋towego odtwarzacza MP3
zaprojektowanego przez
Jespera Hansena i nazwanego
yampp-3. W tym a艅ykule
skupi臋 si臋 na opisie jego
nowego wcielenia - yamppa-3
wyposa偶onego w interfejs
USB. jest on zbudowany
podobnie jak poprzednik, lecz
dzi臋ki wyposa偶eniu w interfejs
USB oraz impulsow膮
przetwornic臋 zasilaj膮c膮 zyska艂
nowe mo偶liwo艣ci.
Rekomendacje: nowoczesny
odtwarzacz dla fan贸w
empetr贸jkowych nagra艅,
doskonale dostosowany do
wsp贸艂pracy z programowymi
odtwarzaczami stosowanymi
w PC.
Niebagateln膮 zalet膮 prezentowanego yamppa jest to, 藕e wyposa偶ono go w nowszy, znacznie lepszy od poczciwego AT90S8515 procesor - ATmegal61. Jego g艂贸wnym atutem jest dwukrotnie wi臋ksza pojemno艣膰 pami臋ci Flash na program steruj膮cy odtwarzaczem. Kolejnym wa偶nym "dodatkiem" jest szybki, szeregowy interfejs USB umo偶liwiaj膮cy 艂atw膮 i szybk膮 wymian臋 utwor贸w zgromadzonych na do艂膮czonym dysku twardym oraz 艂atwy i szybki spos贸b uaktualniania oprogramowania bez konieczno艣ci otwierania obudowy odtwarzacza.
Mo偶liwo艣ci nowego yamppa
Podobnie jak w poprzedniku, jako 藕r贸d艂o plik贸w MP3 dla yamppa zastosowano 2,5-calowy twardy dysk, lecz nic nie stoi na przeszkodzie, aby zastosowa膰 zwyk艂y 3,5-calowy dysk ze standardowego PC lub standardowy CD-ROM z interfejsem ATAPL
Mo偶na do niego "za艂adowa膰" oprogramowanie przeznaczone dla standardowego yamppa-3 i b臋dzie wtedy dzia艂a艂 jak poprzednik, lecz
wtedy interfejs USB pozostaje niewykorzystany. Po "za艂adowaniu" nowego oprogramowania odtwarzacz zyskuje nowe oblicze. Do sterowania odtwarzaczem s艂u偶y 4-lub 8-przyciskowa lokalna klawiatura, dowolny pilot na podczerwie艅 lub szeregowy port komunikacyjny RS232 lub RS485. Opcjonalny port RS485 zosta艂 przewidziany do wsp贸艂pracy z dodatkowym modu艂em graficznego wy艣wietlacza LCD i klawiatury, tak aby mo偶na by艂o umie艣ci膰 wy艣wietlacz i klawiatur臋 w innym miejscu ni偶 sam odtwarzacz (np. w przypadku zamontowania yamppa w samochodzie). Modu艂 ten jest w trakcie opracowywania, wi臋c nie mog臋 jeszcze poda膰 偶adnych informacji na jego temat. Bezpo艣rednio do yamppa mo偶na oczywi艣cie do艂膮czy膰 standardowy alfanumeryczny wy艣wietlacz LCD o organizacji od 2x16 do 4x20 znak贸w. Na wy艣wietlaczu LCD wy艣wietlane s膮 informacje o bie偶膮cej playli艣cie, nazwie i wykonawcy utworu, a tak偶e linijka ukazuj膮ca post臋p w odtwarzaniu danego utworu oraz czas trwania utworu. Mo偶na te偶 zmieni膰 wy-
46
Elektronika Praktyczna 12/2002
Yampp-3/USB
Stabilizator Impulsowy
3.3V reg.
Konwerter poziom贸w 74LVC245
VS1001
Dekoder
MPEG,
przetw. C/A,
wzmacniacz
Wy艣wietlacz 2x16 (4x20) LCD
Rys. 1. Schemat blokowy odtwarzacza
Nowy format dysku
to艣ci poprzez interfejs USB. W formacie YADL przewidziano kilka dodatkowych mo偶liwo艣ci, kt贸re jeszcze nie zosta艂y wykorzystane. Przyk艂adem mo偶e by膰 specjalna baza systemowych plik贸w MP3 zawieraj膮cych g艂osowe komunikaty odtwarzane w odpowiedzi na naciskanie klawiszy lub podczas przegl膮dania menu czy playlist. Ma to na celu u艂atwienie obs艂ugi yamppa niewyposa偶onego w wy艣wietlacz LCD lub w trakcie prowadzenia samochodu.
Interfejs USB
Jak sama nazwa wskazuje, do przesy艂ania plik贸w MP3 na dysk yamppa-3/USB u偶yto popularnego interfejsu szeregowego USB 1.0.
艣wietlanie czasu trwania utworu
na wy艣wietlanie czasu pozosta艂e- Specjalnie dla potrzeb yamppa Pozwala on na przesy艂anie da-
go do ko艅ca utworu [Remain zosta艂 opracowany nowy format nych z pr臋dko艣ci膮 300...400 kilo-
Time). Ze wzgl臋du na wprowa- dysku nazwany YADL [Yampp bajt贸w na sekund臋, a wi臋c za艂a-
dzenie obs艂ugi playlist, sterowa- Advanced Disk Layout). Nasuwa dowanie jednego utworu trwaj膮ce-
nie nowym yamppem jest nieco si臋 pytanie: "po co?". go oko艂o 4 minut zajmuje oko艂o
inne ni偶 jego poprzednika. Op- G艂贸wnym celem przyj臋cia no- 10 sekund. Dodatkowo, dzi臋ki
r贸cz standardowych funkcji typu wego formatu by艂o jak najwi臋ksze mo偶liwo艣ci samoprogramowania
Play, Stop, Pauza, Nast臋pny usprawnienie obs艂ugi plik贸w MP3, si臋 procesora ATmegal61, mo偶li-
utw贸r, Poprzedni utw贸r, Szybkie w tym obs艂ugi playlist, czyli mo偶- wa jest wymiana g艂贸wnego oprog-
przewijanie do przodu i do ty艂u, liwo艣膰 tworzenia dowolnych list ramowania odtwarzacza poprzez
w艂膮czenia lub wy艂膮czenia funkcji utwor贸w do odtwarzania oraz 艂膮cze USB bez konieczno艣ci ot-
Loudness i Random oraz regulacji utworzenie bazy danych o utwo- wierania obudowy i pod艂膮czania
g艂o艣no艣ci, nowy yampp posiada rach zawieraj膮cej ich nazw臋, wy- interfejsu programuj膮cego. Do tego
W yamppie 3 USB zastosowano nowy
format dysku nazwany YADL (Yampp
Aduanced Disk Layout), dzi臋ki kt贸remu
spos贸b przechowywania danych na dysku
zoptymalizowano pod k膮tem MP3.
celu potrzebny jest jedynie kr贸tki program bootloadera umieszczony w dost臋pnej pami臋ci Flash procesora (jednorazowo podczas uruchamiania yamppa).
Zastosowany w roli interfejsu uk艂ad FT8U245AM jest
jeszcze funkcje Menu, Playlist i Play Mod臋. Funkcja Menu umo偶liwia sterowanie odtwarzaczem 艢 za pomoc膮 jedynie 4 klawiszy. Po w艂膮czeniu menu jest wy艣wietlany spis wszystkich dost臋pnych
funkcji. Klawiszami g艂o艣no艣ci wy- konawc臋, d艂ugo艣膰, czas trwania, kompletnym i 艂atwym w u偶yciu
bieramy interesuj膮c膮 nas funkcj臋 szybko艣膰 pr贸bkowania i kilka in- sprz臋giem pomi臋dzy magistral膮
i potwierdzamy klawiszem Play. nych wa偶nych informacji. Poza mikrokontrolera a z艂膮czem USB
Funkcja playlist jest jedn膮 z bar- tym format ten zosta艂 przystoso- i ma wewn膮trz wszystkie uk艂ady
dziej interesuj膮cych, poniewa偶 po- wany do obs艂ugi relatywnie d艂u- potrzebne do nawi膮zania, syn-
zwala na przegl膮danie zawarto艣ci gich plik贸w, jakimi s膮 pliki MP3 chronizacji i kontroli komunikacji
dysku bez przerywania odtwarza- oraz umo偶liwia prost膮 realizacj臋 z komputerem PC oraz dwa od-
nia. Najpierw mo偶emy wybra膰 艂adowania danych na dysk po- dzielne bufory FIFO na wysy艂ane
interesuj膮c膮 nas playlist臋, po czym przez interfejs USB. Ma to na i odbierane dane.
z niej wybra膰 konkretny utw贸r, celu zminimalizowanie obci膮偶enia Po zainstalowaniu na kompu-
偶eby w ko艅cu nakaza膰 odtwarza- procesora yamppa przez dodatko- terze PC dostarczonych przez pro-
czowi odtwarzanie wybranego we procedury niezwi膮zane z od- ducenta - firm臋 FTDI - sterowni-
utworu. Podczas przegl膮dania czytem strumienia danych, lecz k贸w, widziany jest jako szybki
yampp nie przerywa odtwarzania wymagane do poprawnego odczy- wirtualny port komunikacyjny
poprzedniego utworu, jedynie nie tu zawartych na dysku plik贸w. COM. Takie podej艣cie do sprawy
wy艣wietla o nim informacji. Fun- W trakcie 艂adowania plik贸w wymaga u偶ycia specjalnej aplika-
kcja Play Mod臋 jest podobna do wi臋kszo艣膰 "czarnej roboty" zosta艂a cji uruchomionej na komputerze
funkcji Repeat w odtwarzaczach przerzucona na program komuni- i s艂u偶膮cej do przygotowania
CD i umo偶liwia odtwarzanie "w kacyjny uruchomiony na kompu- i transmisji danych poprzez wir-
k贸艂ko" jednego utworu, jednej terze PC, a procesor yamppa je- tualny port COM. Oczywi艣cie
playlisty, wszystkich playlist b膮d藕 dynie realizuje proste operacje transmisja jest dwukierunkowa,
zatrzymanie odtwarzacza po za- odczytu/zapisu wybranych sekto- wi臋c jest mo偶liwy r贸wnie偶 odczyt
ko艅czeniu bie偶膮cej playlisty. r贸w dysku i transmisj臋 ich zawar- zawarto艣ci dysku yamppa poprzez
Elektronika Praktyczna 12/2002
47
00
O
zr CD
Q
Q
g;
n"
o"
Q
D Q "O
IC3 S225S
19 AC
1fl A1
17 A2
16 A3
15 A4
14 A5
13 A6
1P A7
A9 10 AO A1 A2 A3 A4 AS AS I/OO 1/01 I/02 I/O3 I/04 I/O5 I/OS 11 ADO/
A8 B 12 AD1/
A7 S 13 AD2/
AR 7 15 AD7/
A5 6 16 AD6/
A4 B 17 AD5/
A3 4 16 AD4/
A? 3 19 AD3/
A13 25
A12 ?4
A10 21 A10 Ali A12 A13 A14 WE/ OE/ CS/ vcc VSS 28
A11 23
A1 2
A14 26
AO 1 vcc
WR 27 14
=ID 22
A1S 20

GND*
a
CD
TT
O
a
CD Q
Q
00
GND*
AVDD AVDD
vcaz*
(E) LCD_F (RS) M
SCLK CS RIGHT
RESET
DREQ SDATA DCLK BSYNC RCAP
Xn/MCLK XT2 TESTO TEST1 TEsra
?GND DGND DGND AGND AGND AGND
GND*
Yampp-3/USB
Rys. 2.b. Schemat elektryczny interfejs贸w: USB, RS-232, RS-485 i zasilacza impulsowego
USB. Aplikacja ta pomaga r贸wnie偶 w przygotowaniu i zarz膮dzaniu playlistami, w 艣ci膮ganiu wcze艣niej za艂adowanych plik贸w MP3 z powrotem na dysk w komputerze oraz w uaktualnianiu oprogramowania yamppa.
Opis budowy
Schemat blokowy odtwarzacza przedstawiono na rys. 1, a schemat elektryczny na rys. 2. "Sercem" uk艂adu jest mikrokontroler jednouk艂adowy ICl - AT-megal61 firmy Atmel. Jest on odpowiedzialny za odczyt i zapis danych na dysk, przekazywanie strumienia danych MPEG do sprz臋towego dekodera ^^^^^ VS1OO1, obs艂ug臋 klawiatu- ^^ ry, wy艣wietlacza, interfejsu USB oraz za dekodowanie rozkaz贸w zdalnego sterowania. Podobnie jak w standardowym yamppie-3, opr贸cz mikrokontrolera znajdziemy tu 32 kB zewn臋trznej pami臋ci RAM (uk艂ad IC3), zatrzask adres贸w (IC2), dekoder MPEG (IC7), stabilizator napi臋cia 3,3 V (IC5) oraz konwerter poziom贸w w postaci uk艂adu IC6 - 74LVC245.
Nowymi elementami w tym odtwarzaczu s膮: uk艂ad ICll - czyli interfejs USB - FT8U245AM firmy
FTDI wraz z dekoderem adresowym IC8 - 74HC138 oraz impulsowa przetwornica step-down, daj膮ca na wyj艣ciu napi臋cie 5 V potrzebne do zasilania pozosta艂ej elektroniki i do艂膮czonego twardego dysku. Interfejs USB jest widziany przez procesor jako kom贸rka zewn臋trznej pami臋ci RAM o adresie 8000h. Zasilacz zosta艂 oparty na scalonym sterowniku przetwornicy IC9 - MAX1626ESA wraz z tranzystorem kluczuj膮cym
Najwa偶niejsz膮 sprz臋tow膮 modyfikacj膮
wprowadzon膮 w nowego yamppa jest
wbudowanie interfejsu USB, za pomoc膮
kt贸rego mo偶e on szybko wymienia膰 dane
____________z aplikacjami PC.____________
wa膰 w instalacji elektrycznej samochodu. Wydajno艣膰 pr膮dowa zasilacza wynosi oko艂o 2 A. Umo偶liwia to wi臋c zasilenie elektroniki yamppa wraz z 2,5-calowym twardym dyskiem lub uzyskanie napi臋cia do zasilenia 5-woltowej cz臋艣ci elektroniki 3,5-calowego dysku lub CD-ROM-a. Na schemacie yamppa mo偶emy jeszcze znale藕膰 interfejs RS232 w postaci uk艂adu IC4 - MAX202CSE lub zamiennie interfejs RS485 zbudowany przy u偶yciu uk艂adu ^^ IC12 - MAX481CSA. Uk艂ad odtwarzacza zosta艂 zmontowany na niewielkiej p艂ytce drukowanej o wymiarach 105 x 70 mm - identycznych z wymiarami 2,5-calowego dysku.
Tl i d艂awikiem L3. Jako tranzystor kluczuj膮cy wykorzystano MOS-FET z kana艂em typu P, co w po艂膮czeniu z mo偶liwo艣ci膮 osi膮gni臋cia 100% wype艂nienia przez sterownik IC9 pozwala na uzyskanie stabilnego napi臋cia wyj艣ciowego 5V przy napi臋ciu wej艣ciowym w zakresie od 7 do 15V.
Dioda D3 i transil D4 zabezpieczaj膮 yamppa przed odwrotnym pod艂膮czeniem zasilania oraz przed przepi臋ciami mog膮cymi wyst臋po-
Monta偶 i uruchomienie
Schemat monta偶owy p艂ytki odtwarzacza pokazano na rys. 3. Ze wzgl臋du na zastosowanie element贸w montowanych powierzchniowo, monta偶 uk艂adu nale偶y przeprowadzi膰 szczeg贸lnie starannie. Najlepiej jest zastosowa膰 podan膮 poni偶ej kolejno艣膰 monta偶u, co ustrze偶e nas przed uszkodzeniem uk艂ad贸w scalonych przez 藕le dzia艂aj膮cy zasilacz, u艂atwi uruchomienie oraz usuni臋cie ewentualnych b艂臋d贸w.
Elektronika Praktyczna 12/2002
49
Yampp-3/USB
Na pocz膮tku nale偶y zamontowa膰 wszystkie rezystory oraz kondensatory ceramiczne, diod臋 LED - Dl oraz elementy zasilacza, czyli IC9, Tl, L3, diody D2...D4, kondensatory C18 i C19, z艂膮cze J5 i przewlekane rezystory ogranicznika pr膮dowego R4 i R7. Wa偶ne jest, aby jako C18 i C19 zastosowa膰 specjalne kondensatory przystosowane do pracy impulsowej, o niskim wsp贸艂czynniku ESR (np. Sanyo Organie typ OS-CON).
Nast臋pnie do z艂膮cza J5 pod艂膮czamy zasilacz pr膮du sta艂ego o napi臋ciu od 9 do 12V i sprawdzamy prawid艂owo艣膰 pracy zasilacza poprzez pomiar napi臋cia VCC*. Powinno wynosi膰 5V 膮 5%. Je艣li napi臋cie jest prawid艂owe oraz 艣wieci dioda Dl, od艂膮czamy zasilacz i mo偶emy przyst膮pi膰 do kolejnego etapu monta偶u. W nast臋pnym etapie nale偶y zamontowa膰 pozosta艂e elementy za wyj膮tkiem uk艂adu dekodera MP3 - IC7. Nale偶y pami臋ta膰, 偶e nie mo偶na jednocze艣nie zamontowa膰 uk艂ad贸w IC4 i IC12. Trzeba wybra膰 albo interfejs RS232 i zamontowa膰 uk艂ad MAX202, albo interfejs RS48 5 i zamontowa膰 uk艂ad MAX481. Po ponownym pod艂膮czeniu zasilania nale偶y zmierzy膰 napi臋cie za stabilizatorem IC5 (na dodatnich ko艅c贸wkach kondensator贸w C5 lub C6). Powinno ono wynosi膰 3 lub 3,3 V w zale偶no艣ci od wersji zastosowanego stabilizatora. Je偶eli napi臋cie jest prawid艂owe, mo偶emy w ko艅cu zamontowa膰 dekoder IC7.
Nast臋pn膮 czynno艣ci膮 jest zaprogramowanie mikrokontrolera programem bootloadera (plik yampp3_boot.hex dost臋pny na CD-EP12/2002B). W tym celu pod艂膮-
czamy interfejs programuj膮cy do portu drukarkowego komputera, 10-stykow膮 wtyczk臋 interfejsu (opisali艣my go przy okazji opisu poprzedniej wersji yamppa) wk艂adamy do z艂膮cza Jl, w艂膮czamy zasilanie yamppa i uruchamiamy program 艂aduj膮cy na komputerze. Opis sposobu programowania mikrokontrolera jest identyczny jak w przypadku poprzedniego yamppa i podany by艂 w EP10/2002.
Po zaprogramowaniu mikrokontrolera bootloaderem musimy wykona膰 jeszcze jedn膮 wa偶n膮 czynno艣膰. 呕eby procesor yamppa m贸g艂 skorzysta膰 z bootloadera, trzeba go poinformowa膰 o jego istnieniu. Do tego celu s艂u偶膮 specjalne opcje konfiguracyjne procesora, czyli tak zwane bity fuse. Aby ustawi膰 te opcje wykorzystuj膮c program yapp, nale偶y skorzysta膰 z menu Program>Lock Bits & Fuses. Po wywo艂aniu tej funkcji w okienku Fuses nale偶y zaznaczy膰 nast臋puj膮ce pozycje: CKSELO, CKSEL2, BOODLEVEL, BOOTRST. Wszystkie pozosta艂e opcje musz膮 pozosta膰 niezaznaczone, co zosta艂o pokazane na rys. 4. Nast臋pnie nale偶y klikn膮膰 Write Fuses, 偶eby wys艂a膰 ustawienia do procesora yamppa. Poniewa偶 bity fuse nie s膮 kasowane razem z pami臋ci膮 Flash mikrokontrolera, operacja ta jest jednorazowa i nie jest konieczne jej powtarzanie po zmianie oprogramowania. Romuald Bia艂y http://www.yamppsoft.prv.pl/
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: http://www.ep.com.pl/ ?pdf/grudzienO2.htm oraz na p艂ycie CD-EP12/2002B w katalogu PCB.
WYKAZ ELEMENT脫W
Rezystory
(SMD w obudowach 0805 je艣li nie
zaznaczono inaczej)
Rl, R8, R12, R15: 10kO
R2: lkO
R3: 47Q
R4, R7: O,1Q standardowy 0,25W
R5: 5kO 23B Trimpot
R6: 1MQ
R9: 4,7kQ
RIO, Rl 1: 15Q
R13, R14, R23: lOOka
R18, R19: 100
R20: l,5kQ
R24: 470O
Kondensatory
C1...C4: 33pF 0805
C5...C7: 10|iF/16V: ELNA RV2_4
C8, C11...C17, C20...C22,
C24...C27: lOOnF 0805
C9, CIO: 100|iF/10V ELNA RV2_63
C18: 22QiF/16V (przewlekany LOW ESR)
C19: 47^F/16V (przewlekany LOW ESR)
C23: 470nF C3225
P贸艂przewodniki
IC1: ATmegal贸l TQFP44
IC2: 74HC573 SO20L
IC3: 62256 SO28L
IC4: MAX202CSE SO1脫
IC5: LP2980-3,3 SOT23-5
IC6: 74LVC245 SO20L
IC7: VS1001 SOIC-28
IC8: 74HC138D SO1脫
IC9: MAX1626ESA SO8
ICH: FT8U245AM QFP32
IC12: MAX481CSA SO8
Tl: MTD20P03HDL DPAK
T2: BC817 SOT23
Dl: EL17-21 LED08O5
D2: PRLL5818 SOD87
D3: LL4004 SOD87
D4 (Transil): SM15T15A SOD15
R贸偶ne
LI, L2: 10^H L1210
L3: 22n.H HM50
Ql: 7,3728 MHz HC49U-V
Q2: 12,288 MHz HC49U-V
Q3: 6,00MHz 3-ko艅c贸wkowy
rezonator ceramiczny
Jl: PR脫G 5*2 OJ" header
J2: DISPLAY 8*2 0.1" header
J3: RS-232 3*1 0.1" header
J4: IR 3*1 0.1" header
J5: POWER 2*1 0.1" header
J贸: Headphones 3,5mm Stereo
JACK
J7: ATA_IF 44-pin z艂膮cze - rozstaw
2mm
J8: USB Gniazdo USB Typu B
Sl: RESET ALPS 45
50
Elektronika Praktyczna 12/2002
SPRZ臉T
Nowy zestaw ewaluacyjny dla mikrokon艂rolerdw H8/300 Tiny
Firma MSC jest europejskim promotorem mikrokontroler贸w firmy Hitachi. Opr贸cz dzia艂a艅 czysto handlowych in偶ynierowie MSC opracowuj膮 tak偶e niebanalne zestawy ewaluacyjne, z kt贸rych jeden przedstawiamy w artykule.
m
Tak偶e w Polsce MSC przyk艂ada szczeg贸ln膮 uwag臋 do promocji mikrokontroler贸w produkowanych przez Hitachi, co przejawia si臋 m.in. wprowadzeniem do krajowej oferty zestawu H8 Tiny SDK+. "Sercem" tego zestawu jest 16-bitowy mikro-kontroler z rodziny Tiny H8/3664F, kt贸ry wyposa偶ono w programowan膮 w systemie pami臋膰 Flash. W otoczeniu tego uk艂adu znajduj膮 si臋 m.in.: alfanumeryczny, pod艣wietlany wy艣wietlacz LCD 2 x 16 znak贸w, interfejs RS232 z konwerterem pozio-
HITACHI
Inspire theNext
m贸w, 8 diod LED do wykorzystania przez u偶ytkownika, 4 przyciski do wykorzystania przez u偶ytkownika, 2 potencjometry s艂u偶膮ce do ustawia napi臋膰 na wej艣ciach multipleksera analogowego wsp贸艂pracuj膮cego z przetwornikiem A/C, interfejs
m. w
Mikrokontroler H8/3664F w skr贸cie:
rdze艅 H8/300H,
-f maksymalna cz臋stotliwo艣膰 Taktowania 16 MHz, 艢*- pojemno艣膰 pami臋ci Flash 32 kB, 艢f pojemno艣膰 pami臋ci RAM 2 kB, 艢* pojemno艣膰 wbudowanej pami臋ci EEPROM
512B,
艢*艢 wbudowane porty komunikacyjne SCI i I3C, 4- wbudowane dwa 8-bitowe Tirnery, 艢*艢 wbudowany 10-bitowy przetwornik A/C z 8-
kanalowym multiplekserem analogowym, 艢f 37 uniwersalnych linii l/O, 4- wbudowany interfejs OnChipDebug
Elektronika Praktyczna 12/2002
51
SPRZ臉T
FDT - FLASH Development Tool
Mlkrokoitrolor molna progranom膰 a ponocq spoc艂alnoio adapton
Mlkrokontrolor no艂na programowa膰 bopofrednlo
Dost臋pny bezp艂atole pod acbeun http^/www.hn.con/prariucWf(Mnriei.Mn
Rys. 1
umo偶liwiaj膮cy do艂膮czenie klawiatury PS2, a tak偶e stabilizator napi臋cia zasilaj膮cego. Na z艂膮cza wyprowadzono wszystkie linie I/O, magistral臋 PC i wyj艣cia przetwornik贸w C/A.
Jak wida膰, sprz臋towa strona zestawu zosta艂a dobrze pomy艣lana, ale r贸wnie du偶膮 atrakcj膮 jest oprogramowanie do艂膮czone do zestawu. W jego sk艂ad wchodz膮:
- Hitachi Embedded Workbench, czyli pe艂na wersja kompilatora C/C++ dla mikrokontroler贸w H8 Tiny, a tak偶e asembler, linker i generator bibliotek,
- FDT (Flash Development Toolkii)-shareware'owy program do programowania ISP (rys. 1) pami臋ci programu w mikrokontrolerach produkowanych przez firm臋 Hitachi (szczeg贸艂y: http://www.hmse.com/ products/fdtZindex.htm),
- CodeLines - generator aplikacji (rys. 2) dla mikrokontroler贸w produkowanych przez firm臋 Hitachi, dzi臋ki kt贸remu obs艂uga wy艣wietla-
Zestaw prezentowany w artykule jest jednym z pierwszych znanych nam przyk艂ad贸w, kiedy to firma dystrybucyjna przygotowa艂a dla swoich klient贸w zestaw ewaluacyjny i to o mo偶liwo艣ciach przewy偶szaj膮cych opracowania producenta.
rej jako艣ci program贸w przyk艂adowych, kt贸re doskonale ilustruj膮 mo偶liwo艣ci mikrokontrolera H8/3664F. S膮 w艣r贸d nich przyk艂ady obs艂ugi klawiatury PC, wy艣wietlaczy LED i LCD, przetwornika A/C, a tak偶e - bardzo przydatny w praktyce - obs艂ugi UART-a. Jest to
CodeLines


i ^^ffll -
tinrlw r艂t艂liC 6" I w| sal
-"*
JdJ JHlI
flnflczny iwenrtor aplibull, a pownat kUiv|i raoina w 艂atwy spndb akonfl|irnnL I oWiglwa膰 na|banlifle| pipilana porytoria, m.li.: IIAHT, pratworrtH A/C I CA, litarfe|qr I2C I SPI, pnl臋cl EEPROM I Flasfev wytwtoflaca LLD I UD tW艂e alfanuiwycne), UmIiIiit I polodynczo pizycttlltp.
hezp艂atile pod aikosan
Rys. 2
czy LED i LCD (tak偶e alfanumerycznych), klawiatur, przetwornik贸w A/C i C/A, pami臋ci EEPROM i Flash, a tak偶e port贸w szeregowych jest znacznie uproszczona (szczeg贸艂y: http://www.hmse.com/ pioducts/co d臋li nes/index.htm). Dwa ostatnie z wymienionych programy s膮 dost臋pne bezp艂atnie na stronie www.hnise.com. Producent zestawu zadba艂 o dostar-__ czenie jego u偶ytkownikom dob-
interesuj膮cy przyk艂ad, kiedy to firma zajmuj膮ca si臋 dystrybucj膮 (mi臋dzy innymi) mikrokontroler贸w przygotowa艂a dla swoich klient贸w zestaw o mo偶liwo艣ciach przewy偶szaj膮cych opracowania producenta. Nam zestaw si臋 bardzo podoba艂 i z czystym sumieniem polecamy go projektantom zainteresowanym poznaniem nowoczesnych mikrokontroler贸w H8 Tiny. Andrzej Gawryluk, AVT
Dodatkowe informacje
Zestaw prezentowany w artykule udost臋pni艂a redakcji firma MSC Polska Sp. z o.o. Tel.: (32) 330 54 50 mai艂: Gliwice@rnsc-ge.com, hTTp: www.msc-ge.com.
Dodatkowe informacje s膮 dost臋pne w Intern臋 ci e:
- CodeLines: http://www.hmse.com/products/ codelines/index.htm,
- Flash Developrnent Toolkit: http://www.hmse.-corn/products/ldt/i ndex.htm),
- mikrokontrolery H8 Tiny: http://www.hitachi-eu. com/h el/e cg/produ cts/mic ro/8_16bit/ h8300h_Tiny/indexhtml,
- narz臋dzia wspomagaj膮ce projektowanie: www.hmse.com.
Elektronika Praktyczna 12/2002
SPRZ臉T
Nowe mikrokontrolery z pami臋ci膮 Flash
To pewnie monachijskie targi electronica 2002 sta艂y
si臋 jedn膮 z przyczyn zintensyfikowania prac nad
mikrokon trolerami
z pami臋ci膮 Flash przez
dwie du偶e firmy: Motorol臋
i Ziloga. W artykule
przedstawiamy efekty tych
prac, oficjalnie ujawnione
w ostatnich dniach
pa藕dziernika 2002.
Rodziny uk艂ad贸w HC05 i HC08 firmy Motorola w latach swojej 艣wietno艣ci by艂y prekursorami wsp贸艂czesnych mikrokontro-ler贸w, ale lata zaniedba艅 ze strony producenta, przede wszystkim ignorowanie rynkowych trend贸w i niezbyt przyjazne podej艣cie do klient贸w o nik艂ym potencjale zakupowym spowodowa艂y, 偶e miejsce tych uk艂ad贸w skutecznie zaj臋艂y AVRiy, PICie, flashowe wersje e'51, a tak偶e ST62/ 72. Ciekawostk膮 jest fakt, 偶e te ostatnie s膮 jawnie konkurencyjn膮 propozycj膮 dla fan贸w HC08 - ich architektura jest bowiem bardzo bliskim odpowiednikiem HC08, a co wi臋cej STM oferuje bezp艂atny program narz臋dziowy {Mnemonic Trans-lator - opublikowali艣my go na CD-EPll/ 2002AJ do konwersji program贸w napisanych w asemblerze HC08 na asembler
ST72. Tak偶e firma Metrowerks - dostawca narz臋dzi programistycznych dla Moto-roli - dostosowa艂a swoje najnowsze 艣rodowisko CodeWairior na potrseby ST72.
Dlaczego tak si臋 dzieje? Moim zdaniem powa偶nym b艂臋dem Motoroli by艂o bardzo p贸藕ne wprowadzenie do oferty mikrokon-troler贸w z pami臋ci膮 programu typu Flash. Pierwsze tak wyposa偶one uk艂ady pojawi艂y si臋 oko艂o trsech lat p贸藕niej ni偶 konkurencyjne, a w elektronice trsy lata to niemal wieczno艣膰.
Podobnie potoczy艂y si臋 losy Ziloga, firm臋 maj膮c膮 niegdy艣 szans臋 - dzi臋ki legendarnemu Z80 - pokona膰 Intela. Zilog wiele lat lekcewa偶y艂 rynek mikrokontrole-r贸w, ale po pewnym czasie wprowadzi艂 do produkcji proste mikrokontrolery Z8 i ZSPlus. Niestety by艂y one wyposa偶one
w pami臋膰 programu typu OTP-EPROM, co do艣膰 skutecznie zniech臋ca艂o konstruktor贸w do korzystania z nich.
Po tym, z pewno艣ci膮 prsykrym dla producent贸w, wst臋pie mam dobr膮 wiadomo艣膰: Motorola i Zilog rozpocz臋艂y pro-
Rys. 1
Elektronika Praktyczna 12/2002
53
SPRZ臉T
Rys. 2
dukcj臋 nowoczesnych mikrokontroler贸w z pami臋ci膮 Flash tyle, 偶e obra艂y zupe艂nie odmienne strategie dzia艂ania.
Motorola stawia na maluchy
Pomys艂 Motoroli na zaistnienie na rynku mikrokontroler贸w jest do艣膰 prosty: do sprawdzonego rdzenia HC08 dodano uniwersalny 16-bitowy timer o du偶ych mo偶liwo艣ciach (w tym PWM), 8-bitowy przetwornik A/C, programowany generator zegarowy z mo偶liwo艣ci膮 wsp贸艂pracy z elementami RC lub kwarcem i sukces niemal偶e gotowy (rys. l). Istotn膮 nowo艣ci膮 w rodzinie Nitron (tak膮 nazw臋 handlow膮 nadano nowym mikrokontrolerom) jest fakt skupienia si臋 producenta na uk艂adach w obudowach o niewielkiej liczbie wyprowadze艅: 8 lub 16. Pomimo tego pojemno艣膰 wbudowanej pami臋ci Flash jest do艣膰 du偶a i wynosi 1,5 kB lub 4 kB w zale偶no艣ci od wersji (tab. l). Ciekawostk膮 jest mo偶liwo艣膰 wykorzystania tej pami臋ci jako nieulotnej pami臋ci danych, mo偶na j膮 programowa膰 w systemie ju偶 po zamontowaniu mikrokontrolera. Niebagatelnym atutem nowej rodziny jest fakt, 偶e dzi臋ki jej pe艂nej kompatybilno艣ci z rodzi-
Motorola i Zilog
z wielkim op贸藕nieniem
wkraczaj膮 na rynek
mikrokontroler贸w
z pami臋ci膮 Flash, ale
jest to "wkroczenie"
daj膮ce spor膮 nadziej臋
na sukces.
n膮 HC08, tak偶e wi臋kszo艣膰 program贸w pisanych dla HC05 b臋dzie mo偶na wykorzysta膰 w nowych aplikacjach. Ze wzgl臋du na szeroki zakres temperatur pracy (-4O...+85癈), mikro kontrolery Nitron mo偶na stosowa膰 w aplikacjach samochodowych, a tak偶e w urz膮dzeniach montowanych na zewn膮trz pomieszcze艅.
Zilog woli du偶e
Inne podej艣cie mo偶na zaobserwowa膰 u Ziloga: mikrokontrolery Z8En-core! nale偶膮 do grona uk艂ad贸w dobrze wyposa偶onych (rys. 2), oferowanych tylko w obudowach o relatywnie du偶ej liczbie wyprowadze艅 - od 40 do 80 (tab. 2). Zastosowano w nich nowoczesn膮 pami臋膰 programu typu Flash z mo偶liwo艣ci膮 programowania w systemie, co zdecydowanie upraszcza ich stosowanie.
Obudowom mikrokontroler贸w dor贸wnuje wyposa偶enie: wszystkie mikrokontrolery maj膮 trzy niezale偶ne kontrolery kana艂贸w DMA, interfejsy SPI i I2C (jednocze艣nie), przy czym I2C mo偶e pracowa膰 wy艂膮cznie jako Master (bez obs艂ugi trybu multimaster) z adresowaniem 7 lub 10-bi-towym. Interesuj膮ce mo偶liwo艣ci ma tak偶e 9-bitowy UART, kt贸ry mo偶na skonfiguro-
Tab. 1. Zestawienie podstawowych parametr贸w mikrokontroler贸w HC08 Nitron
Typ Pojemno艣膰 pami臋ci RAM !B! Pojemno艣膰 pami臋ci Flash [kB] Timer 1/0 A/C Obudowy Napi臋cie zasilania [V]
68HC908QT1 128 1,5 2-CH, 16-blt l/C, 0/C lub PWM do 6 - S0IC/DIP8 2,7-5,5
68HC908OT2 128 1,5 2-CH, 16-blt l/C, 0/C lub PWM do 6 4 kana艂y, 8-bit S0IC/DIP8 2,7-5,5
68HC908OT4 128 4 2-CH, 16-blt l/C, 0/C lub PWM do 6 4 kana艂y, 8-bit SOI C/D IP8 2,7-5,5
68HC908OY1 128 1,5 2-CH, 16-blt l/C, 0/C lub PWM do 14 - SOIC/DIP/ TSS0P16 2,7-5,5
68HC908OY2 128 1,5 2-CH, 16-blt l/C, 0/C lub PWM do 14 4 kana艂y, 8-bit SOIC/DIP/ TSS0P16 2,7-5,5
68HC908OY4 128 4 2-CH, 16-blt l/C, 0/C lub PWM do 14 4 kana艂y, 8-bit SOIC/DIP/ TSS0P16 2,7-5,5
54
Elektronika Praktyczna 12/2002
SPRZ臉T
Tab. 2
Typ Pami臋膰 Linie l/O Przerwania 16-bi-towe timery/ PWM Liczba kana艂贸w analogowych UART Napi臋cie zasilania [V] Liczba wy-prowa-dzeii
Flash [kB] RAM [kB]
Z8F6401 64 4 31 23 3 8 2 3,0-3,6 40,44
Z8F6402 64 4 46 24 4 12 2 3,0-3,6 64,68
Z8F6403 64 4 60 24 4 12 2 3,0-3,6 80
Z8F4801 48 4 31 23 3 8 2 3,0-3,6 40,44
Z8F4802 48 4 46 24 4 12 2 3,0-3,6 64,68
Z8F4803 48 4 60 24 4 12 2 3,0-3,6 80
Z8F3201 32 2 31 23 3 8 2 3,0-3,6 40,44
Z8F3202 32 2 46 24 4 12 2 3,0-3,6 64,68
Z8F2401 24 2 31 23 3 8 2 3,0-3,6 40,44
Z8F2402 24 2 46 24 4 12 2 3,0-3,6 64,68
Z8F1601 16 2 31 23 3 8 2 3,0-3,6 40,44
Z8F1602 16 2 46 24 4 12 2 3,0-3,6 64,68
wa膰 do pracy w trybie IrDA. Przetwornik A/C wbudowany z mikrokontrolery Z8Encore! ma rozdzielczo艣膰 10 bit贸w, wsp贸艂pracuje on z wewn臋trznym precyzyjnym 藕r贸d艂em napi臋cia odniesienia il2-ka-na艂owym multiplekserem analogowym. Bardzo du偶e mo偶liwo艣ci ma tak偶e blok obs艂ugi przerwa艅, kt贸rych w Z8Encore! wyst臋puje a偶 24.
Zilog zadba艂 o wygod臋 programowania nowych mikrokon-troler贸w za pomoc膮 j臋zyka C, co przejawia si臋 bardzo du偶ymi pojemno艣ciami wbudowanej pami臋ci RAM (2 lub 4 kB). Zmodyfikowany rdze艅 eZ8 mo偶e by膰 taktowany sygna艂em zegarowym o cz臋stotliwo艣ci do 20 MHz, a rozkazy s膮 wykonywane w 2...8 cyklach. Producent zadba艂 o zachowanie kompatybilno艣ci Z8Encore! ze starszymi wersjami Z8, w zwi膮zku z czym stare programy wymagaj膮 tylko niewielkich adaptacji. Lista rozkaz贸w Z8Encore! zosta艂a poszerzona o kilka nowych polece艅, kt贸re nieco upraszczaj膮 pisanie program贸w.
Podsumowanie
Zadanie stoj膮ce przed producentami mikrokontroler贸w prezentowanych w artykule nie jest proste, poniewa偶 rozwi膮zania konkurencyjne zd膮偶y艂y podbi膰 serca konstruktor贸w. Warto jednak zwr贸ci膰 uwag臋 na rozs膮dn膮 polityk臋 zwi膮zan膮 z narz臋dziami projektowymi: Motorola bezp艂atnie udost臋pnia dla rodziny Nitron bardzo przyjazny pakiet IDE CodeWar-rior (z kompilatorem C), natomiast Zilog dla Z8Encore! oferuje za 49 USD zestaw ewalu-acyjny z kompilatorem ANSI C. Tak偶e inne narz臋dzia s膮 dost臋pne po bardzo preferencyjnych cenach. Czy to wystarczy? Andrzej Gawryluk, AVT
Dodatkowe informacje
Dodatkowe informacje o mikrokon-trolerach prezentowanych w artykule s膮 dost臋pne na ptycieCD-EP12/2002A oraz w Internecie pod adresami:
- http://www.zilog.com/z8encore/,
- http://e-www.motorola.com/ webapp/sps/site/taxonomy.-jsp?nodeld=01M98634.
Elektronika Praktyczna 12/2002
55
"Przed艂u偶acz" pilota RC5
Miniprojekt, kt贸rego przydatno艣膰 doceniq wszyscy u偶ytkownicy zdalnie sterowanych urzqdze艅. S艂r. 87.
Lampowy A odbiornik bateryjny
Niebanalna, do tego nostalgiczna konstrukcja: zasilane bateryjnie radio z prawdziwym detektorem kryszta艂kowym. S艂r. 21.
B艂ysk po latach - nowe
mikrokontrolery
z pami臋ciq Flash
O sp贸藕nionych, lecz atrakcyjnych pomys艂ach Motoroli Ziloga piszemy na s艂r. 53.
Yampp-3/USB
Na s艂r. 46 przedstawiamy nowq wersj臋 Yamppa, wyposa偶onq w interfejs USB.
Programowane echo cyfrowe
Projekt z gatunku nie艣miertelnych mi臋dzy innymi dzi臋ki temu, 偶e jest bardzo uniwersalny. S艂r. 27.
"5^^W\^" i
"M贸wiqca" kostka do gry ^
Wsp贸艂czesne uk艂ady scalone pozwa-lajq wyposa偶y膰 w mow臋 praktycznie dowolne urzqdzenie, czego przyk艂ad znajdziecie na s艂r. 33.
Bluetooth - bezprzewodowa transmisja danych na niewielkie odleg艂o艣ci
Bluetooth bardzo wolno wkracza pod strzechy, ale ju偶 wkr贸tce poka偶emy w jaki spos贸b mo偶na wyposa偶y膰 w艂asny system mikroprocesorowy w ten skomplikowany interfejs. Zaczynamy na s艂r. 65 od kr贸tkiego wst臋pu.
Interfejs graficznych wy艣wietlaczy LCD
Jak wynika艂o z list贸w, na tego typu projekt czekali艣cie od d艂u偶szego czasu. Na s艂r. 37 przedstawiamy tajniki sterowania wy艣wietlaczem graficznym, tanim i 艂atwo dost臋pnym.
Mikroprocesorowa 艂adowarka akumulator贸w
Urzqdzenie, kt贸re mo偶e si臋 przyda膰 ka偶demu u偶ytkownikowi sprz臋tu przeno艣nego wymagajqcego zasilania bateryjnego. S艂r. 43.
E3NT - czujniki do system贸w detekcji i kontroli po艂o偶enia l obiekt贸w
Nowo艣ci z oferty firmy Omron przedstawiamy na s艂r. 141.
Elektronika Praktyczna 12/2002
(at)MEGArewolucja - nowe mikrokontrolery Atmela
O rewolucji w ofercie Atmela piszemy na s艂r. 67.
HSTiny SDK+ - nowy zestaw ewaluacyjny dla mikrokontroler贸w H 8/3 00 Tiny
lnteresujqcq propozycj臋 dla fan贸w mikrokontroler贸w firmy Hitachi przedstawiamy na s艂r. 51.
Programator PIKprog+
Najnowsze opracowanie firmy Elnec przedstawiamy na s艂r. 84.
IKA
Nr 12 (120)
grudzie艅 2002
Projekty ^^^^^^^^^^^^^^^^^^
Punch- programator uniwersalny, cze艣膰 1 .............................14
Lampowy odbiornik bateryjny z detektorem
kryszta艂kowym..............................................................................21
Programowane echo cyfrowe..................................................27
"fvl贸wiqca" kostka do gry..........................................................33
Interfejs graficznych wy艣wietlaczy LCD....................................37
Mikroprocesorowa 艂adowarka akumulator贸w........................43
Yampp-3/USB, cze艣膰 1 ................................................................46
"Przed艂u偶acz" pilota RC5 Odbiornik radiowy AM
87
AYR-GCC - 艣rodowisko programistyczne dla mikrokontroler贸w AVR
Kurs
Programowe dekodowanie sygna艂贸w
zdalnego sterowania
Je偶yk C dla mikrokontroler贸w 8051, cze艣膰 7
77
95 99
^Automatyka
E3NT - czujniki do system贸w detekcji i kontroli po艂o偶enia
obiekt贸w.....................................................................................141
Kody IPw urzqdzeniach dla automatyki...............................144
B艂ysk po latach - nowe mikrokontrolery z pamieciq Flash.....53
(at)MEGArewolucja - nowe mikrokontrojery Atmela.............67
H8 Tiny SDK+ - nowy zestaw ewaluacyjny
dla mikrokontroler贸w H8/300 Tiny.............................................51
Wykrywanie losowych anomalii sygna艂u za pomocq oscyloskop贸w cyfrowych, cze艣膰 1............................................61
Bluetooth - bezprzewodowa transmisja danych na niewielkie
odleg艂o艣ci, cze艣膰 1 .................r^r^^^^....................................65
Programator PIKprog+..........................77*^...."........................84
Projekty Czytel艅 i k贸w^^^^^^^^^^^^^^^^^^H
PC-clock.....................................;................................................103
Z kraju i ze 艣wiata........................................................127
Kramik+Rynek..............................................................105
Listy.................................................................................111 ,
Ekspresowy Informator Elektroniczny.....................123|
Wykaz reklamodawcow...............................
Elektronika Praktyczna 12/2002
7
SPRZ臉T
Wykrywanie losowych cz?sc 1 anomalii sygna艂u za pomoc膮 oscyloskop贸w cyfrowych
Powszechne jest przekonanie,
偶e oscyloskopy cyfrowe s膮
pozbawione wad. I tak
w zasadzie jest, pod
warunkiem 偶e u偶ytkownicy
potrafi膮 radzi膰 sobie z ich
niedoskona艂o艣ci ami
wynikaj膮cymi z konwersji A/C.
W artykule na艣wietlamy
problem akwizycji
i zobrazowania
przebieg贸w z rzadko
wyst臋puj膮cymi
zaburzeniami
losowymi.
Stale wzrastaj膮cy stopie艅 z艂o偶ono艣ci wsp贸艂czesnych urz膮dze艅 elektronicznych wymusza nie tylko ci膮g艂膮 popr膮- -___,
w臋 parametr贸w przyrz膮d贸w ~~ pomiarowych u偶ywanych w laboratoriach badawczo-rozwojowych, fabrykach czy serwisach, ale r贸wnie偶 wzbogacanie ich mo偶liwo艣ci funkcjonalnych, pozwalaj膮cych na pe艂niejsze 艣ledzenie dzia艂ania badanych system贸w. Ten technologiczny trend nie m贸g艂 nie obj膮膰 tak偶e takich przyrz膮d贸w pomiarowych, jakimi s膮 oscyloskopy.
Jednym z kamieni milowych na drodze rozwoju tych przyrz膮d贸w jest niew膮tpliwie skonstruowanie i wprowadzenie na rynek w latach osiemdziesi膮tych oscyloskop贸w cyfrowych DSO [Digital Storage Oscilloscope). Zastosowana w tego typu przyrz膮dach cyfrowa technologia akwizycji i przetwarzania sygna艂贸w umo偶liwi艂a implementacj臋 wielu u偶ytecznych, a niedost臋pnych w oscyloskopach analogowych funkcji, do kt贸rych mi臋dzy innymi mo偶na zaliczy膰 r贸wnoczesn膮, wielokana艂ow膮 akwizycj臋 i zapami臋tywanie przebieg贸w, szybkie zautomatyzowane okre艣lanie parametr贸w badanych sygna艂贸w, zaawansowane funkcje
┅(b-io
4. 4? 4? 4?
*-
matematyczne (w tym FFT) czy te偶 mo偶liwo艣膰 艂atwego po艂膮czenia oscyloskopu z komputerem, co pozwala na przes艂anie danych i ich przetwarzanie za pomoc膮 wyrafinowanych narz臋dzi programowych. Jedyny, ale za to bardzo istotny obszar, na kt贸rym oscyloskopy cyfrowe musia艂y uzna膰 wy偶szo艣膰 oscyloskop贸w analogowych, to zobrazowanie przebiegu. Na pierwszy rzut oka mo偶e si臋 wydawa膰, 偶e takie stwierdzenie jest niedorzeczno艣ci膮. Przecie偶 ma艂ych, 艣wiec膮cych na zielono ekran贸w lamp oscyloskopowych wykorzystywanych w przyrz膮dach analogowych nie da si臋 por贸wna膰 z du偶ymi, kolorowymi ekranami oscyloskop贸w cyfrowych, wy艣wietlaj膮cych przebiegi we wszystkich kolorach t臋czy.
Pozostaje jednak niebanalne pytanie o to, co tak naprawd臋 na tych ekranach wida膰?
Bardzo dobre zobrazowanie sygna艂贸w w oscyloskopach analogowych wynika z po艂膮czenia persystencji (po艣wiaty ekranu luminescencyjnego), intensywno艣ci 艣wiecenia luminoforu oraz bardzo du偶ej cz臋stotliwo艣ci od艣wie偶ania ekranu. Zmieniaj膮ca si臋 w spos贸b ci膮g艂y, a wi臋c niesko艅czenie wielopoziomowa intensywno艣膰 艣wiecenia punkt贸w na ekranie oscyloskop贸w analogowych, wspierana przez zjawisko persystencji, pozwala na wychwycenie bardzo subtelnych szczeg贸艂贸w ogl膮danego sygna艂u. Drugi czynnik wp艂ywaj膮cy znacz膮co na jako艣膰 zobrazowania, tj. cz臋stotliwo艣膰 od艣-
Elektronika Praktyczna 12/2002
61
SPRZ臉T
wie偶ania ekranu, ma bezpo艣redni wp艂yw na szybko艣膰 odpowiedzi oscyloskopu i jest 艣ci艣le zwi膮zana z innym, cz臋sto spotykanym parametrem, a mianowicie z czasem martwym oscyloskopu.
Jak mo偶na zauwa偶y膰 na rys. 1, czas martwy jest to okres mi臋dzy kolejnymi cyklami akwizycji, podczas kt贸rego w uk艂adach oscyloskopu cyfrowego odbywa si臋 przeliczanie zebranych pr贸bek na punkty, kt贸re nast臋pnie zostan膮 wy艣wietlone na ekranie. Pierwsze oscyloskopy cyfrowe nie posiada艂y w og贸le takich cech zobrazowania, jak intensywno艣膰 czy persystencja (punkt ekranu 艣wieci艂 si臋, 艣wieci艂 si臋 intensywnie albo by艂 wygaszony - 3 poziomy intensywno艣ci), natomiast cz臋stotliwo艣膰 od艣wie偶ania ekranu by艂a w nich na poziomie od 1 do 2 przebieg贸w na sekund臋, podczas gdy oscyloskopy analogowe by艂y w stanie wy艣wietli膰 setki tysi臋cy przebieg贸w na sekund臋. Nic w tym dziwnego. D艂ugo艣膰 okresu martwego w oscyloskopie analogowym wynika jedynie z czasu potrzebnego na powr贸t plamki na pocz膮tek ekranu, natomiast w oscyloskopach cyfrowych wi膮偶e si臋 z procesami przetwarzania danych i ich przesy艂ania mi臋dzy blokami funkcjonalnymi oscyloskopu. Co wi臋cej, czas martwy oscyloskop贸w cyfrowych ro艣nie wraz z pojemno艣ci膮 wykorzystywanej pami臋ci, co jest ca艂kowicie zrozumia艂e - ro艣nie liczba danych wymagaj膮cych przetworzenia.
Konstruktorzy nowoczesnych oscyloskop贸w cyfrowych podejmuj膮 mniej lub bardziej udane pr贸by cyfrowej emulacji persystencji oraz statystycznego odwzorowania sygna艂贸w za pomoc膮 zr贸偶nicowania intensywno艣ci 艣wiecenia punkt贸w. Do艣膰 powszechnie znane s膮 technologie takie jak analog persisience, DPO (Digital Phosphor Oscilloscope) czy TiueTia-ce. Producenci d膮偶膮 r贸wnie偶 do zminimalizowania czasu martwego, a tym samym do zwi臋kszenia cz臋stotliwo艣ci od艣wie偶ania ekranu.
Na tym drugim parametrze zobrazowania chcieliby艣my si臋 skupi膰 w niniejszym artykule, a w szczeg贸lno艣ci
na analizie jego wp艂ywu na prawdopodobie艅stwo wykrywania sporadycznych, losowych anomalii sygna艂u. Chcieliby艣my r贸wnie偶 spr贸bowa膰 odpowiedzie膰 na pytanie, czy liczba przebieg贸w wy艣wietlanych na ekranie oscyloskopu w ci膮gu sekundy jest jedynym wyznacznikiem jego zdolno艣ci do wychwytywania nieprawid艂owo艣ci sygna艂贸w, kt贸re pojawiaj膮 si臋 rzadko i w nier贸wnomiernych odst臋pach czasu, jak r贸wnie偶 przedstawi膰 nowe techniki zwi臋kszaj膮ce prawdopodobie艅stwo wykrywania takich zdarze艅. Potrzeba detekcji i analizy rzadko wyst臋puj膮cych losowych zaburze艅 sygna艂贸w pojawia si臋 w bardzo wielu aplikacjach. Konstruktorzy system贸w cyfrowych, kt贸rych g艂贸wnym narz臋dziem pomiarowym jest zwykle analizator logiczny, u偶ywaj膮 oscyloskop贸w do obserwacji kszta艂tu przebieg贸w, oceny jako艣ci sygna艂u zegarowego w r贸偶nych punktach badanego uk艂adu itp. Sporadyczne zak艂贸cenia sygna艂贸w cyfrowych mog膮 powodowa膰, w zale偶no艣ci od ich nasilenia i czasu wyst膮pienia, nieprzewidziane dzia艂anie pewnych blok贸w funkcjonalnych b膮d藕 ca艂ego systemu. Czas uruchamiania system贸w cyfrowych zale偶y w du偶ej mierze od parametr贸w i funkcjonalno艣ci wykorzystywanych urz膮dze艅 pomiarowych, w tym m.in. od zdolno艣ci oscyloskopu do wykrywania sporadycznych zdarze艅.
W kontek艣cie detekcji rzadkich anomalii wyst臋puj膮cych podczas uruchamiania system贸w cyfrowych, nale偶a艂oby jeszcze wspomnie膰 o stanach metastabilnych przerzutnik贸w. Stany te pojawiaj膮 si臋 w贸wczas, kiedy czas mi臋dzy zmian膮 poziomu logicznego na wej艣ciu przerzutnika a zboczem zegarowym powoduj膮cym jego zapis (setup-and-hold time) jest zbyt kr贸tki. Stany metastabilne s膮 bardzo niekorzystne i ujawniaj膮 si臋 w spos贸b losowy. Ich szybkie wykrywanie jest niew膮tpliwie wyzwaniem dla konstruktor贸w oscyloskop贸w cyfrowych. Drugi obszar wykorzystywania oscyloskopu w charakterze detektora rzadkich anomalii wyst臋puj膮cych w badanych przebiegach jest zwi膮zany z wszelkiego rodzaju transmisj膮 danych, podczas kt贸rej analizuje si臋 kszta艂t przesy艂anych impuls贸w i ocenia ich jako艣膰 albo zlicza si臋 te impulsy, kt贸re odpowiadaj膮 bitom przesy艂anym b艂臋dnie. To drugie zastosowanie pozwala na wyznaczenie i analiz臋 bitowej stopy b艂臋d贸w BER (Bit Eitoi Rat臋) w systemach teletransmisyjnych. Wykorzystanie oscyloskop贸w cyfrowych wspomaganych programowymi narz臋dziami symulacyjnymi do okre艣lania stopy b艂臋d贸w w wielu aplikacjach - od transmisji g艂osowych (BER na poziomie 1O-3...1O"4) do przesy艂u danych w twardych dyskach (BER na poziomie 10l4...1016) - mo偶e by膰 tematem odr臋bnego, do艣膰 obszernego artyku艂u.
Jak zwi臋kszano szybko艣膰 odpowiedzi oscyloskop贸w DSO
Szybko艣膰 od艣wie偶ania ekranu oscyloskopu wp艂ywa, jak ju偶 wspomniano wcze艣niej, na prawdopodobie艅stwo wykrywania rzadkich losowych zak艂贸ce艅 sygna艂贸w, ale nie tylko. W pierwszej kolejno艣ci dostrzegana jest
62
Elektronika Praktyczna 12/2002
SPRZ臉T
zwykle dogodno艣膰 u偶ytkowania. D艂ugi czas odpowiedzi oscyloskopu frustruje u偶ytkownika oraz wyd艂u偶a uruchamianie i testowanie uk艂ad贸w elektronicznych. To w艂a艣nie komfort pracy by艂 podstawowym czynnikiem stymuluj膮cym dzia艂ania projektant贸w oscyloskop贸w zmierzaj膮ce do zwi臋kszenia szybko艣ci od艣wie偶ania ekranu. Pierwsze oscyloskopy DSO wy艣wietla艂y na ekranie od 1 do 2 przebieg贸w na sekund臋 i operowa艂y na rekordzie o d艂ugo艣ci 1000 punkt贸w. Pierwszym, aczkolwiek nierewolucyjnym krokiem zmierzaj膮cym do poprawy tej sytuacji by艂o skonstruowanie oscyloskop贸w
0 cz臋stotliwo艣ci od艣wie偶ania ekranu na poziomie 20 wfm/s [waveforms per second - przebiegi na sekund臋) przy pojemno艣ci pami臋ci oko艂o 100 kpkt. Przyrz膮d贸w z tak膮 szybko艣ci膮 od艣wie偶ania nadal nie da si臋 por贸wna膰 pod wzgl臋dem szybko艣ci odpowiedzi z oscyloskopami analogowymi, ale praca z nimi mog艂a ju偶 zadowoli膰 u偶ytkownika. Niestety, problem zbyt wolnej odpowiedzi powraca艂 w tych urz膮dzeniach przy wykorzystywaniu pami臋ci o pojemno艣ci 1 Mpkt
1 wi臋kszej. Znowu偶 trzeba by艂o czeka膰 kilka lub nawet kilkana艣cie sekund na wy艣wietlenie przebiegu, a czeka膰, jak wiadomo, nikt nie lubi. Z tego wzgl臋du, z du偶ej pojemno艣ci pami臋ci u偶ytkownik m贸g艂 korzysta膰 jedynie w specjalnym trybie pracy oscyloskopu, uzbroiwszy si臋 uprzednio w cierpliwo艣膰.
Prace nad popraw膮 szybko艣ci od艣wie偶ania ekranu trwa艂y nadal i zaowocowa艂y wkr贸tce dwoma odmiennymi rozwi膮zaniami wprowadzonymi przez dwie du偶e korporacje zajmuj膮ce si臋 produkcj膮 przyrz膮d贸w pomiarowych. Pierwsze podej艣cie umo偶liwi艂o uzyskanie szybko艣ci od艣wie偶ania ekranu na poziomie setek tysi臋cy przebieg贸w na sekund臋, czyli jak w oscyloskopach analogowych, ale tylko przy spe艂nieniu pewnego, okre艣lonego zbioru warunk贸w i tylko w okre艣lonym trybie pracy zwanym Fast Ac-膮uisition (FA), Praca oscyloskopu w tym trybie charakteryzuje si臋 ograniczeniem pojemno艣ci pami臋ci i cz臋stotliwo艣ci pr贸bkowania w por贸wnaniu z warto艣ciami maksymalnymi podanymi w specyfikacji oraz niemo偶no艣ci膮 wykorzystania dodatkowych funkcji przyrz膮du, takich jak: powi臋kszanie fragment贸w wy艣wietlanego przebiegu {zoom), funkcje matematyczne oraz automatyczne wyznaczanie parametr贸w badanego sygna艂u. Jak to przedstawimy w dalszej cz臋艣ci artyku艂u, korzy艣ci wynikaj膮ce z zastosowania w oscyloskopie trybu Fast Ac膮ui-
sition s膮 dostrzegalne jedynie przy bardzo szybkich podstawach czasu (40 ns/dz. i szybszych) z ograniczeniami cz臋stotliwo艣ci pr贸bkowania (do 1,25 GSa/s) oraz pojemno艣ci pami臋ci (do 1 Mpkt).
W rozwi膮zaniach konstrukcyjnych oscyloskop贸w obserwuje si臋 tak偶e inn膮 koncepcj臋 rozszerzenia ich mo偶liwo艣ci funkcjonalnych. Projektanci firmy Agilent Technologies po艂o偶yli szczeg贸lny nacisk na efektywne zarz膮dzanie pami臋ci膮 oscyloskopu. Wykreowana przez nich technologia Me-gaZoom umo偶liwia wykorzystanie du偶ej pojemno艣ci pami臋ci przez ca艂y czas pracy przyrz膮du i unikni臋cie tworzenia specjalnych tryb贸w pracy. Dodatkowo, ustawianie cz臋stotliwo艣ci pr贸bkowania i pojemno艣ci pami臋ci jest realizowane w oscyloskopie automatycznie, w optymalny - ze wzgl臋du na rozdzielczo艣膰 ogl膮danego sygna艂u - spos贸b. Cz臋stotliwo艣ci od艣wie偶ania ekranu, kt贸re uda艂o si臋 uzyska膰 stosuj膮c technologi臋 MegaZoom, si臋gaj膮 dziesi膮tk贸w tysi臋cy przebieg贸w na sekund臋. Spos贸b, w jaki technologia MegaZoom wp艂ywa na zwi臋kszenie prawdopodobie艅stwa wykrywania sporadycznych, losowych anomalii sygna艂贸w, zostanie przedstawiony w dalszej cz臋艣ci artyku艂u.
Prawdopodobie艅stwo wykrycia losowego zaburzenia sygna艂u
Typowa, spotykana w wi臋kszo艣ci opracowa艅 na temat oscyloskop贸w cyfrowych definicja prawdopodobie艅stwa detekcji Pj losowych zaburze艅 sygna艂u jest funkcj膮 czasu martwego Tdead i czasu akwizycji sygna艂u Tacq (rys. 1). Sformu艂owana jest ona w nast臋puj膮cy spos贸b:
T.
acq
T 4- T
acc| dc ad
Prawdopodobie艅stwo detekcji P$ oznacza tu szans臋 wykrycia pojedynczej anomalii sygna艂u w pewnym sko艅czonym czasie obserwacji. Z powy偶szej definicji jednoznacznie wynika, 偶e minimalizacja czasu martwego oscyloskopu, czyli osi膮gni臋cie mo偶liwie najwi臋kszej liczby przebieg贸w wy艣wietlanych na jego ekranie w jednostce czasu, prowadzi do maksymalizacji prawdopodobie艅stwa wykrycia losowego zaburzenia sygna艂u. Por贸wnajmy dla przyk艂adu dwa oscyloskopy, z kt贸rych pierwszy - nazwijmy go "klasyczny" - wy艣wietla 100, za艣 drugi - "szybki" - 50000 przebieg贸w w ci膮gu sekundy. Dla ustalenia uwagi przyjmijmy, 偶e szukamy zaburzenia sygna艂u zegarowego o cz臋stotliwo艣ci 1 MHz, kt贸re pojawia si臋 艣rednio raz
na sekund臋. Podstawy czasu obydwu oscyloskop贸w ustawione s膮 na 1 jis/ dz., co dla ekranu o szeroko艣ci r贸wnej 10 dzia艂ek daje d艂ugo艣膰 czasu akwizycji Tacq = 10 |is. Wykorzystuj膮c informacj臋 o liczbie przebieg贸w wy艣wietlanych w jednostce czasu przez obydwa oscyloskopy oraz o d艂ugo艣ci czasu akwizycji, mo偶emy z 艂atwo艣ci膮 okre艣li膰 warto艣ci czas贸w martwych. I tak, czas martwy oscyloskopu klasycznego Tcjeacj1 = 9,99 ms ~ 10 ms, za艣 dla drugiego przyrz膮du parametr ten przyjmuje warto艣膰 r贸wn膮 czasowi akwizycji, czyli 10 |is. Po podstawieniu wyliczonych warto艣ci do wzoru mo偶emy obliczy膰 prawdopodobie艅stwa wykrycia losowej anomalii badanego sygna艂u, przy za艂o偶eniu czasu obserwacji r贸wnego 1 s, co jest r贸wnoznaczne z jednokrotnym wyst膮pieniem poszukiwanego zaburzenia. Prawdopodobie艅stwa te wynosz膮 odpowiednio: Pcj1 = 0,1% dla oscyloskopu klasycznego oraz P^2 = 50,0% dla oscyloskopu szybkiego.
Ju偶 na pierwszy rzut oka wida膰, 偶e r贸偶nica jest kolosalna, ale jeszcze lepszy pogl膮d na jej istot臋 da艂oby oszacowanie dla obydwu przyrz膮d贸w czasu, jaki by艂by potrzebny, aby prawdopodobie艅stwo co najmniej jednokrotnego pojawienia si臋 na ekranie poszukiwanej anomalii sygna艂u osi膮gn臋艂o 95%.
Oszacowania takiego mo偶emy dokona膰, korzystaj膮c z rozk艂adu Ber-noulliego (dwumianowego). Po wykonaniu oblicze艅 okazuje si臋, 偶e czasy te wynosz膮 5 sekund dla szybkiego oscyloskopu oraz 50 minut dla oscyloskopu o klasycznej architekturze. Czasy obserwacji rz臋du jednej godziny raczej nie s膮 akceptowalne, bior膮c pod uwag臋 obecny poziom technologiczny. Z powy偶szego przyk艂adu mo偶emy wysnu膰 dwa wnioski. Po pierwsze, pokazuje nam on, jak istotnie szybko艣膰 od艣wie偶ania ekranu oscyloskopu wp艂ywa na zdolno艣膰 tego przyrz膮du do wykrywania sporadycznych zaburze艅 sygna艂u. Po drugie natomiast, mo偶emy si臋 przekona膰, 偶e tw贸rcy klasycznej definicji prawdopodobie艅stwa wykrycia rzadko wyst臋puj膮cych cech sygna艂u, kt贸r膮 do tej pory si臋 pos艂ugiwali艣my, milcz膮co za艂o偶yli, 偶e ju偶 sam fakt dokonania akwizycji fragmentu sygna艂u zawieraj膮cego zaburzenie wystarczy do wykrycia poszukiwanej anomalii.
W drugiej cz臋艣ci artyku艂u postaramy si臋 udzieli膰 odpowiedzi na pytanie, czy za艂o偶enie takie jest s艂uszne. Jacek Falkiewicz AM Technologies Polska jacek.falkiewicz@amt.pl
64
Elektronika Praktyczna 12/2002
SPRZ臉T
Bezprzewodowa transmisja danych na niewielkie odleg艂o艣ci, cz臋艣膰 1
W 1994 roku szwedzki koncern telekomunikacyjny Ericsson rozpocz膮艂 prace badawcze nad "komputerowym interfejsem wykorzystuj膮cym fale radiowe". Projekt ten na cze艣膰 Haralda I Sinoz臋bego (syn kr贸la Gnom臋 i kr贸lowej Thyre, urodzony w 908 roku w Danii) nazwano Bluetooth. Harald I by艂 wielkim wojownikiem, kt贸ry w 970 roku podbi艂 ca艂膮 Norwegi臋. Wikingowie nazywali Haralda BlaTan - Bla oznacza siny, ciemnosk贸ry (od jego ciemnej karnacji), a Tan - wielki Pan. Tonn w ich j臋zyku oznacza艂 z膮b, st膮d zapewne przek艂amanie i angielska nazwa Harald I Bluetooth.
Tyle historii, przechodzimy do wsp贸艂czesno艣ci. W 1997 roku do Eric-ssona do艂膮czy艂y inne wielkie koncerny, jak Lucent, Motorola, Microsoft, 3COM, tworz膮c tzw. SIG (Speciol In-ieresi Group). Opracowany przez nich interfejs mia艂 by膰 tani, a technologia udost臋pniana bez op艂at patentowych firmom, kt贸re b臋d膮 przyst臋powa膰 do SIG. Pierwsze prototypowe urz膮dzenie wykorzystuj膮ce Bluetooth powsta艂o w roku 1999. By艂a to s艂ynna bezprzewodowa s艂uchawka Ericssona do telefonu kom贸rkowego (jej nowsz膮 wersj臋 pokazujemy na fot. 1).
Z interfejsem Bluetooth u偶ytkownicy oswajaj膮 si臋 wolniej ni偶
z interfejsem USB. Jednak obydwa nie maj膮 zbyt 艂atwej
drogi, g艂贸wnie ze wzg艂臋du na swoje skomplikowanie, kt贸re
zmusza konstruktor贸w i u偶ytkownik贸w do studiowania ich
bardzo obszernych norm. Stan ten u艂eg艂 pewnej poprawie
wraz z pojawieniem si臋 kompletnych modu艂贸w Bluetooth, ale
jak wskazuje praktyka, jest to poprawa tylko cz臋艣ciowa.
Fot.
Niestety, przez d艂ugi czas by艂o to jedyne dzia艂aj膮ce i istniej膮ce urz膮dzenie wykorzystuj膮ce t臋 technologi臋. Znakomita wi臋kszo艣膰 opisywanych urz膮dze艅 stanowi艂a tylko marketingowy szum lub pobo偶ne 偶yczenia. Firmom brakowa艂o ludzi, kt贸rzy potrafiliby przedrze膰 si臋 przez obszern膮 dokumentacj臋 standardu oraz zaj膮膰 si臋 tworzeniem oprogramowania. Jeszcze w zesz艂ym roku istnia艂y ogromne trudno艣ci ze znalezieniem producenta - sprzedawcy samych modu艂贸w lub chip贸w do BT (fot. 2) - pomimo deklarowania dost臋pno艣ci tych uk艂ad贸w w ofertach tak偶e najwi臋kszych firm p贸艂przewodnikowych.
Kr贸tki opis techniczny
Modu艂 BT to z za艂o偶enia ma艂y element - najmniejsze z nich maj膮 powierzchni臋 1 cm2 (wygl膮d przyk艂adowych modu艂贸w BT pokazano na fot. 3 i 4) - pobieraj膮cy niewiele pr膮du, maj膮cy niewielki zasi臋g i odporny na zak艂贸cenia. Uk艂ady interfejs贸w pracuj膮 w pa艣mie 2,4 GHz, dzi臋ki czemu do korzystania z nich nie jest potrzebna licencja. Kana艂 radiowy BT zajmuje pasmo o szeroko艣ci ok. 85 MHz. Ze wzgl臋du na du偶y poziom zak艂贸ce艅 elektromagnetycznych wyst臋puj膮cych w otoczeniu, urz膮dzenia BT zosta艂y wyposa偶one w specjalne mechanizmy obrony przed nimi. S膮 to mi臋dzy innymi pseudolosowa zmiana cz臋stotliwo艣ci pracy, kt贸ra odbywa
si臋 a偶 1600 razy na sekund臋 (FH od Fie膮uency Hopping) oraz trzy metody korekcji b艂臋d贸w:
- nadmiarowe zabezpieczenie typu FEC (Foiwaid Eiioi Correciion) o wsp贸艂czynniku 1/3,
- nadmiarowe zabezpieczenie typu FEC o wsp贸艂czynniku 2/3,
- zabezpieczenie typu ARQ (Automa-tic Repeat Re膮uesi).
Niestety, cz臋sto okazywa艂o si臋, 偶e pomimo zastosowania w modu艂ach BT skomplikowanych technik zabezpieczaj膮cych, ich prac臋 skutecznie potrafi艂a zak艂贸ci膰 np. pracuj膮ca obok kuchenka mikrofalowa.
Nadajniki w systemie BT dysponuj膮 niewielk膮 moc膮: w klasie A maksymalna dopuszczalna moc ma warto艣膰 10 mW, co teoretycznie zapewnia zasi臋g ok. 10 metr贸w. W klasie B maksymalna dopuszczalna moc wynosi ju偶 100 mW, co pozwala oczekiwa膰 zasi臋gu do 100 metr贸w. Maksymalna pr臋dko艣膰 z jak膮 mo偶emy prze-
Fot. 2
Elektronika Praktyczna 12/2002
65
SPRZ臉T
Fot. 3
s艂a膰 dane wynosi 1 Mbd. Nie jest ona r贸wnoznaczna z pr臋dko艣ci膮 wymiany danych, poniewa偶 sk艂adaj膮 si臋 na ni膮:
- potr贸jne, r贸wnoleg艂e synchroniczne kana艂y po 64 kbd, ka偶dy do przesy艂ania mowy.
- kana艂 synchroniczny po 432,6 kbd w obie strony albo
- kana艂 asynchroniczny 721 kbd i 57,6 kbd w jedn膮 stron臋. Dodatkowo, dane przesy艂ane drog膮
radiow膮 mog膮 by膰 zaszyfrowane za pomoc膮 128 bitowych kluczy. Niestety, modu艂y i urz膮dzenia, kt贸re wykorzystywa艂em w swoich opracowaniach, po prze艂膮czeniu w ten tryb zachowywa艂y si臋 bardzo niestabilnie. Podczas transmisji g艂osu lub danych wielokrotnie dochodzi艂o do zrywania po艂膮czenia i znacz膮co zmniejsza艂 si臋 transfer. Prawdopodobnie proces szyfrowania po艂膮czenia zabiera艂 zbyt wiele mocy obliczeniowej procesorowi steruj膮cemu BT.
Uk艂ady modu艂贸w BT posiadaj膮 jeszcze jedn膮 interesuj膮c膮 mo偶liwo艣膰, po-
Fot. 4
trafi膮 bowiem stworzy膰 mi kro sie膰, tzw. PicoNet. W PicoNecie mo偶e by膰 maksymalnie 8 urz膮dze艅 BT, w tym 7 podrz臋dnych oraz jedno zarz膮dzaj膮ce. I tu niestety kolejne rozczarowanie: wiele z testowanych modu艂贸w BT nie potrafi艂o utworzy膰 PicoNetu.
R贸wnie偶 wiele obecnie dost臋pnych urz膮dze艅 tego nie potrafi lub potrafi stworzy膰 sie膰 PicoNet tylko z dwoma lub trzema urz膮dzeniami.
Profile, warstwyT o co w tym wszystkim chodzi?
Jak fizycznie komunikowa膰 si臋 z modu艂em BT? Mo偶na to zrobi膰 dwoma sposobami. W pierwszym mo偶na wykorzysta膰 standardowe z艂膮cze RS232, ale wtedy musimy si臋 liczy膰 z tym, 偶e nie b臋dziemy mogli przesy艂a膰 danych szybciej ni偶 115 kbd oraz 偶e wiele modu艂贸w nie obs艂uguje strumienia mowy przez to z艂膮cze (oczywi艣cie dzia艂a osobne wyj艣cie PCM).
W drugim sposobie wykorzystuje si臋 艂膮cze USB. Aby przes艂a膰 nasze dane do/z Bluetootha oraz nim sterowa膰, musimy skorzysta膰 z protoko艂u HCI (Hosi ConiroIIer Inteiface). Jest to najni偶sza dost臋pna dla u偶ytkownika warstwa (rys. 5).
W ramkach protoko艂u HCI s膮 umieszczane ramki warstwy L2CAP (Logical Link Conirol And Adaptation Proiocol). Warstwa ta jest odpowiedzialna za komunikacj臋 na wielu kana艂ach, wsp贸艂dzielenie 艂膮cza, transmitowanie przez wy偶sze warstwy swoich porcji danych (maks. 64 kB). Warstwy HCI i L2CAP musz膮 by膰 zaimplementowane w module BT oraz pod艂膮czonym do niego mikro-kontrolerze. Natomiast wy偶sze warstwy (oparte na L2CAP) s膮 zaimplementowane w oprogramowaniu mik-rokontrolera. Kolejne warstwy: RFCOMM, TCS, SDP s膮 w zasadzie sobie r贸wnowa偶ne pod wzgl臋dem miejsca w tzw. stosie BT.
Warstwa RFCOMM (moim zdaniem najtrudniejsza do zrozumienia, wymaga wcze艣niejszego przeczytania i opanowania normy ETSI TS 07.10)
K. O N T 艢艢 1
* U &FCOMM TCSbm SDP 1
L E R 1 ucap m-艂 HO P B L U
LMPBucBand L T
0 0 T
Modu艂 radiowy
F
Rys. 5
jest odpowiedzialna za tworzenie wirtualnych 艂膮cz szeregowych (RS232). Maksymalnie mo偶e by膰 ich 60. Wi臋kszo艣膰 aplikacji u偶ywa warstwy RFCOMM do przesy艂ania danych.
Warstwa SDP (Service Discovery Proiocol) pozwala na identyfikacj臋 drugiej strony (klient) lub udzielenie informacji o sobie (serwer). Upraszczaj膮c - modu艂 BT dzi臋ki SDP mo偶e wykry膰 np. wszystkie s艂uchawki bezprzewodowe w swoim otoczeniu lub informowa膰 inne urz膮dzenia, 偶e jest drukark膮 laserow膮.
Opr贸cz wy偶ej wymienionych warstw istniej膮 tzw. profile. Profile s膮, kr贸tko m贸wi膮c, aplikacjami, kawa艂kami program贸w, kt贸re komunikuj膮c si臋 poprzez warstwy (korzystaj膮 z RFCOMM do utworzenia wirtualnego 艂膮cza RS232 - umo偶liwiaj膮 np. dost臋p do Internetu poprzez 艂膮cze bezprzewodowe), daj膮 mo偶liwo艣膰 korzystania z FTP, WAP, s艂uchawki bezprzewodowej. W zasadzie ka偶da funkcja BT (na poziomie u偶ytkownika) jest opisywana i standaryzowana za pomoc膮 profili. Henryk Nowak
Dodatkowe infoimacje
Dodatkowe informacje s膮 dost臋pne na ptycie CD-EP12/2002B oraz w Internecie pod adresami:
- http://www.blueTooth.com/pdl/BIuetooThJ 1_-Specifications_Book.pdf,
- http://www.bluetooth.com/pdi/BIuetoothj 1_-Profiles_Book.pdf,
- http://www.blueTooth.prv.pl.
Elektronika Praktyczna 12/2002
PODZESPO艁Y
"Lepsze fest wrogiem dobrego" - to stara
偶yciowa prawda. Przekonujemy si臋 o tym
czasami, gdy kupiwszy najnowsz膮 wersj臋
艢 jakiego艣 programu stwierdzamy, 偶e
zastosowane w nim skr贸ty klawiaturowe
s膮 zupe艂nie inne ni偶 te, do kt贸rych
przyzwyczaili艣my si臋 przez lata.
Walimy pi臋艣ci膮 w st贸艂, wszystkiego
musimy si臋 uczy膰 od nowa. Nie ma rady.
Software jest szczeg贸lnie podatny na tego
rodzaju dzia艂ania. Okazuje si臋 jednak, H 偶e nie ty艂ko.
i i
Ostatnio, w spos贸b do艣膰 przypadkowy, dowiedzia艂em si臋, 偶e firma Analog Devices wycofa艂a z dokumentacji najnowszej wersji mikro-kontrolera ADuC812 opis interfejsu PC. Mikro kontroler ten jest dost臋pny na rynku ju偶 kilka lat i z pewno艣ci膮 powsta艂o do tej pory wiele aplikacji, w kt贸rych wykorzystuje si臋 ten interfejs do komunikowania z otoczeniem. Gdyby Analog zrezygnowa艂 z PC, to narazi艂by na k艂opoty niejednego producenta sprz臋tu wykorzystuj膮cego 贸w mikrokontroler. Jak si臋 okaza艂o, ca艂e zamieszanie spowodowane jest brakiem umowy licencyjnej mi臋dzy AD i Philipsem -w艂a艣cicielem praw do PC. Konstruktor贸w i u偶ytkownik贸w ADuC mog臋 uspokoi膰: wed艂ug zapewnie艅 przedstawiciela Analog Devices, stosowany obecnie interfejs jest i nadal b臋dzie zgodny z PC, pomimo tego, 偶e nazywa si臋 inaczej.
Znacznie powa偶niej wygl膮daj膮 zmiany wprowadzone do rodziny at-melowskich mikrokontroler贸w AT-mega. Mo偶na je okre艣li膰 jako rewolucyjne. Widocznie liczba i jako艣膰 b艂臋d贸w w mikrokontrolerach dotychczasowych wersji by艂a na tyle powa偶na, 偶e firma zdecydowa艂a si臋 na bardzo radykalne posuni臋cia. Wpro-
olery Atmela
Elektronika Praktyczna 12/2002
J
67
PODZESPO艁Y
Tab. 1. Zmiany w nazwach bit贸w stosowanych w mikrokontrolerach ATmega163 i ATmega323
Nazwy bit贸w w mikrokontrolerach ATmega163 i ATmega323 Nazwy bit贸w w mikrokontrolerach ATmega16 i ATmega32 Rejestry l/O w mikrokontrolerach ATmega163 i ATmega323 Komentarz
PWMnfO) WGMnO TCCRnfA) "A" i "0" tylko w 16-bitowym ti merze
PWMni WGMni TCCRnA
CTCn WGMn2 TCCRnfB) "B" tylko w 16-bitowym tl merze
CHR9 UCSZ2 USCRB dotyczy tylkoATmega16
OR DOR UCSRA dotyczy tylkoATmega16
ASB RWWSB SPMCR
ASRE RWWSRE SPMCR
ADFR ADATE ADSCR dotyczy tylkoATmega16
wadzono wi臋c trzy nowe uk艂ady serii ATmega, kt贸re b臋d膮 zast臋powa艂y produkowane do tej pory.
I tak: mikro kontroler ATmega32 zast臋puje dotychczasowy ATmega232, ATmegal6 zast臋puje ATmegal63 i ATmega8 zast臋puje (uwaga!) AT90S4433. Taki spos贸b naprawiania b艂臋d贸w nie by艂aby mo偶e nawet bardzo dokuczliwy, gdyby nie to, 偶e nowe uk艂ady nie zachowuj膮 pe艂nej kompatybilno艣ci ze starymi. Zmiany dotycz膮 m.in. parametr贸w czasowych, zasad funkcjonowania niekt贸rych blok贸w mikrokontrolera, znaczenia i nazw wybranych rejestr贸w, ustawie艅 bezpiecznik贸w, poprawienia interfejsu JTAG, a tak偶e procedur programowania. Cz臋艣膰 nowo艣ci wynika ze zmian w technologii produkcji tych mikrokontroler贸w. Szczeg贸艂owy opis poprawek mo偶na znale藕膰 w dokumentach AVR081, AVR083 i AVR084 oraz w notach katalogowych dost臋pnych na stronach firmowych Atmela {http://www.atmel.coni).
Wiele punkt贸w opisywanych dotychczas w erratach dla starych uk艂ad贸w staje si臋 nieaktualnych dla uk艂ad贸w nowych. Trzeba r贸wnie偶 pami臋ta膰, 偶e niekt贸re b艂臋dy opisywane w erratach zosta艂y poprawione w ostatnich seriach starych uk艂ad贸w. Dotyczy to g艂贸wnie mikrokontrolera ATmegal63.
Poni偶ej zostan膮 om贸wione zmiany wprowadzone dla mikrokontroler贸w ATmegal6, ATmega32 i wybranych przypadk贸w dotycz膮cych mikrokontrolera ATmega8. Dalsza cz臋艣膰 artyku艂u b臋dzie dotyczy艂a tylko ATmega8.
bez wzgl臋du na wykonywan膮 instrukcj臋 mikrokontrolera ATme-gal6. Wyeliminowano mo偶liwo艣膰 powstawania martwych p臋tli, co zdarza艂o si臋 w uk艂adzie starej wersji.
ATmagaiB
Rozszerzenie mo偶liwo艣ci
przerywania instrukcji
mikr okontr oler a
Przerwania w spos贸b ca艂kowicie pewny mog膮 zmienia膰 sterowanie
ATmega 16 ATmage 32
Zako艅czenie przerwa艅 TWI w stanie power-down
Operacje interfejsu 2-wire w stanie power-down nie b臋d膮 przerywane przez inne przerwania. Przerwania tego interfejsu nie spowoduj膮 powrotu do stanu Idle, je艣li nast膮pi膮 w stanie power-down.
ma a #
ATmega 16 ATmage 32
TWI Master uodporniony na zak艂贸cenia
Zastosowano filtr cyfrowy w celu wyeliminowania zak艂贸ce艅 impulsowych powoduj膮cych b艂臋dn膮 interpretacj臋 pocz膮tku transmisji. Ponadto, je艣li warunek startu zostanie 藕le rozpoznany, zostanie wygenerowany status b艂臋du (Bus Error) i ustawiony bit TWINT, gdy linia SDA przejdzie w stan idle. Poprzednio w takich sytuacjach powstawa艂a martwa p臋tla.
AW A tf
ATmega 16 ATmaga 32
Operacja zapisu TWCR jest
ignorowana, je艣li jest powtarzana
(bezpo艣rednio jedna po drugiej)
Kolejne zapisy do rejestru TWCR dzia艂aj膮 obecnie tak, jak by艣my tego oczekiwali. Nie s膮 potrzebne instrukcje NOP pomi臋dzy poszczeg贸lnymi zapisami.
AMff AV*
ATmega 16 ATmefla 32
Poprawna faza sygna艂u PWM
W nowych mikrokontrolerach wprowadzono zmiany w generowaniu sygna艂u PWM pod k膮tem poprawno艣ci jego fazy.
ATmaga 1B ATmega 32
Wyeliminowanie ograniczenia pr臋dko艣ci TWI w trybie Slave
Ograniczenie pr臋dko艣ci interfejsu TWI nie obowi膮zuje w nowych mikrokontrolerach. Cz臋stotliwo艣膰 taktowania CPU musi by膰 w trybie slave co najmniej 16-krotnie wi臋ksza ni偶 cz臋stotliwo艣膰 sygna艂u SCL (patrz nota katalogowa).
ATmega 32
Eliminacja problem贸w z ustawianiem UBRR
Zmiany ustawie艅 pr臋dko艣ci transmisji powoduj膮 natychmiastowy efekt zar贸wno dla nadajnika, jak i odbiornika. Zapisuj膮c UBRRL, nie trzeba zerowa膰 UBRRH.
ATmega 32
Poprawki zwi膮zane z OverRun Flag i Frame Error dla USART-a
Znacznik OverRun w mikrokontro-lerze ATmega32 jest zawsze na bie偶膮co zwi膮zany z FIFO, nie wyst臋puj膮 fa艂szywe b艂臋dy ramek sygnalizowane przez OverRun.
AR A\P.
ATmage 16 ATmega 32
Zmiany nazw
W tab. 1 zestawiono zmiany nazw niekt贸rych bit贸w, a w tab. 2 zmiany nazw rejestr贸w (cechy funkcjonalne pozosta艂y bez zmian).
L艢
ATmage 16 ATmega 32
Poprawki tim er 贸w/licznik贸w
W celu pe艂niejszego zaznajomienia si臋 z wprowadzonymi w tym zakresie poprawkami nale偶y zajrze膰 do not katalogowych. Zmiany dotycz膮:
- ustawiania warto艣ci zliczanej w trybie PWM,
- rozszerzenia timera/licznikaO o funkcje compare i PWM,
- wprowadzenia opcji Fre膮uency Correct dla timera/licznikal pracuj膮cego w trybie PWM. Phase Correct pozostaje zachowana.
Tab. 2. Zmiany w nazwach rejestr贸w mikrokontroler贸w ATmega163 i ATmega323
Stare nazwy rejestr贸w Nowe nazwy rejestr贸w Komentarz
ADCSR ADCSRA Dotyczy ATmega32
GIMSK GICR Dotyczy ATmegai 6
MCUSR MCUCSR Dotyczy ATmegai 6
UBRRHI UBRRH Dotyczy ATmegai 6 ta lokacja daje dost臋p do dw贸ch rejestr贸w (patrz punkt dotycz膮cy ulepszenia UART-u)
68
Elektronika Praktyczna 12/2002
PODZESPO艁Y
* & 膮 m
ATmaga 1B ATmega 32
Poprawki dotycz膮ce
aktualizowania rejestru OCR
w trybie PWM
Warto艣膰 zapisana do rejestru Output Compare Register w trybie PWM nie jest u偶ywana jako warto艣膰 por贸wnywana, dop贸ki timer/licznik nie osi膮gnie warto艣ci TOP. W mikro kontrolerach ATmegal63 i ATmega323 nowa warto艣膰 OCR jest u偶ywana ju偶 w tym cyklu, w kt贸rym timer/licznik osi膮ga warto艣膰 TOP. WATmega32 osi膮gni臋cie warto艣ci TOP powoduje dopiero aktualizacj臋 warto艣ci por贸wnywanej.
A
ATmaga 16 ATmaga 32
Udoskonalenie przetwornika A/C
Obecnie przetwornikiem analogo-wo-cyfrowym mo偶na wykonywa膰 pomiary r贸偶nicowe ze wzmocnieniem.
jfa S> Mt L& ATmega B ATmega 16
Usprawnienia UART-a
Zastosowany w AT90S4433 i ATme-gal63 UART zosta艂 zast膮piony przez USART wATmega8 i ATmegal6. Jest on kompatybilny z wcze艣niejszym z jednym wyj膮tkiem: zastosowano dwupoziomowy rejestr odbiorczy dzia艂aj膮cy jak pami臋膰 kolejkowa FIFO (First In First Out). Musz膮 by膰 przestrzegane poni偶sze zasady:
- Funkcjonuj膮ce de facto dwa rejestry odbiorcze dzia艂aj膮 jak jeden rejestr cykliczny FIFO. Z tego powodu UDR musi by膰 czytany tylko raz dla ka偶dej przychodz膮cej danej. Wa偶ne jest, 偶e flagi b艂臋d贸w (FE i DOR - uwaga nowe nazwy!), a tak偶e dziewi膮ty bit danej (RXB8) s膮 buforowane razem z dan膮 w rejestrze odbiorczym. Dlatego bity statusowe musz膮 by膰 sprawdzane zawsze przed odczytem rejestru UDR, w przeciwnym razie informacja o b艂臋dzie zostanie utracona w chwili, gdy zostanie utracona dana w buforze.
- Odbiorczy rejestr przesuwaj膮cy dzia艂a teraz jak 3-poziomowy bufor. Jest tak, gdy偶 umo偶liwiono pozostawienie danej odbieranej w rejestrze przesuwaj膮cym do czasu wykrycia nowego bitu startu, je艣li rejestry buforowe s膮 pe艂ne. Dzi臋ki takim rozwi膮zaniom nowy USART jest bardziej odporny na b艂臋dy naczytania danych (Data OverRun - DOR).
Rejestr UBRRHI jest umieszczony pod tym samym adresem, co dwa urz膮dzenia. W ATmega8 i ATmegal6 adres ten jest wsp贸艂dzielony z rejestrem UCSRC. Dost臋p do UBRRH b膮d藕
do UCSRC ustala bit URSEL. Po zerowaniu URSEL zostaje wybierany rejestr UBRRH - zachowana jest tym samym kompatybilno艣膰 z AT90S4433 (ATmegal63).
Jest jeszcze jedna, mniej istotna r贸偶nica w dzia艂aniu interfejs贸w. Po zainicjowaniu procesora, RXB8 przybiera艂 stan "1" WAT90S4433 i AT-megal63, a w USART-cie ATmega8 i ATmegal6 jest on zerowany.
f
ATmega 16 ATmaga 32
Zmiany parametr贸w elektrycznych
W nowych mikrokontrolerach zastosowano odmienn膮 w stosunku do poprzednich technologi臋 wytwarzania. Wskutek tego nast膮pi艂y zmiany niekt贸rych parametr贸w elektrycznych. Na przyk艂ad pr膮d lec w stanie u艣pienia (Power Down Sleep Mod臋) zwi臋kszy艂 si臋 z ok. 4 uA dla do ok. 15 uA dla nowych uk艂ad贸w. Szczeg贸艂y w notach katalogowych.
ATmega B ATmega 16 ATmega 32
Zmiany timingu dla operacji zapisu pami臋ci EEPROM
Operacje zapisu pami臋ci EEPROM wymagaj膮 w nowych mikro-
kontrolerach 8448 cykli oscylatora (2048 w uk艂adach poprzednich). Oscylator RC jest kalibrowany na cz臋stotliwo艣膰 1 MHz w obydwu uk艂adach. Na czas zapisu pami臋ci EEPROM mo偶na wp艂ywa膰, wpisuj膮c odpowiedni膮 warto艣膰 do zmiennej OSCCAL.
mm $
ATmaga 1B ATmega 32
Zmiany dotycz膮ce programowania
Zastosowano nowy algorytm programowania r贸wnoleg艂ego obs艂uguj膮cy stronicowanie pami臋ci EEPROM. Zmianie uleg艂 przy tym timing tej operacji.
i"
ATmaga 16 ATmaga 32
Nowe ustawienia bezpiecznik贸w W tab. 3 przedstawiono por贸wnanie ustawie艅 bezpiecznik贸w dla uk艂ad贸w starej i nowej wersji.
ATmage 16 ATmaga 32
Oscylatory i ustawienie op贸藕nienia startu
Bezpieczniki CKSEL okre艣laj膮, kt贸ry oscylator ma by膰 aktywny, a tak偶e jak d艂ugie ma by膰 op贸藕nienie startu. Szczeg贸艂贸w dzia艂ania tych
Tab. 3. Por贸wnanie ustawienia bezpiecznik贸w w uk艂adach ATmega163-ATmega16 i ATmega323-ATmega32(1)
Bezpiecznik Domy艣lne ustawienie w mikrokontrolerach Atmega163 i ATmega323 Domy艣lne ustawienie w mikrokontrolerach Atmega16 i ATmega32 Ustawienie kompatybilne w mikrokontrolerach ATmega163 i ATmega323
OCDEN - 1 1
JTAGEN -(ATmega163)
0 (Atmega323) 0 1<2a>(ATmega163)
0 (ATmega323)
SPIEN 0 0 0
CKOPT - 1 0(3)(ATmega163)
0(2t)) (ATmega323)
EESAVE 1 1 1
B00TSZ1 1 0 1
BOOTSZO 1 0 1
BOOTRST 1 1 1
BODLEVEL 1 1 1
BODEN 1 1 1
SUT1 - 1 patrz uwaga (4)
SUTO - 0 patrz uwaga (4)
CKSEL3 0 0 patrz uwaga (4)
CKSEL2 0 0 patrz uwaga (4)
CKSEL1 1 0 patrz uwaga (4)
CKSELO 0 1 patrz uwaga (4)
Obja艣nienia: 1. Kreska oznacza, 偶e bezpiecznik nie wyst臋puje 2a. Patrz punkt "Interfejs JTAG" 2b. Patrz punkt "Oscylatory i ustawienie op贸藕nienia startu" 3. Patrz punkt "Oscylatory i ustawienie op贸藕nienia startu" 4. Bezpiecznik CKSEL jest dost臋pny zar贸wno w ATmega323, jak i w ATmega32, jakkolwiek dzia艂anie SUT i CKSEL powinno by膰 przeanalizowane przy przej艣ciu na mikrokontroler ATmega32. Patrz punkt Oscylatory i ustawienie op贸藕nienia startu.
70
Elektronika Praktyczna 12/2002
PODZESPO艁Y
Tab. 4. Zmiany nazw bit贸w w mikrokontrolerze ATmega8
Nazwa bitu w mikrokontrolerze AT90S4433 Nazwa bitu w mikrokontrolerze AtmegaS Rejestr 1/0 (AT90S4433) Komentarz
PWM10 WGMInO TCCR1A
PWM11 WGM1n1 TCCR1A
CTC1 WGM12 TCCR1B
CHR9 UCSZ2 USCRB
OR DOR USCRA
OCIE1 OCIE1A TIMSK zmieniono pozycj臋 bitu
OCF1 OCF1A TIFR zmieniono pozycj臋 bitu
WDTOE WDCE WDTCR nie zachowano bezpo艣redniej kompatybilno艣ci
AINBG ACBG ACSR
bezpiecznik贸w w nowych mikrokon-trolerach nale偶y szuka膰 w notach katalogowych, w rozdziale System Clock and Clock Option.
Wykorzystanie oscylatora jako 藕r贸d艂a przebieg贸w zegarowych poprzez wyj艣cie XTAL2 jest w starych mikrokontrolerach mo偶liwe bez 偶adnych ogranicze艅. W nowych nale偶y w tym celu zaprogramowa膰 bezpiecznik CKOPT. Trzeba pami臋ta膰 o zwi臋kszonym poborze mocy w takiej konfiguracji. Wyj艣cie pracuje w trybie rail-to-rail (w pe艂nym zakresie napi臋cia zasilaj膮cego).
A n n 偶 A n ATmaga B ATmege 16 ATmega 33
Zmiany w timerze-watchdogu
Cz臋stotliwo艣膰 pracy watchdoga w nowych mikrokontrolerach dochodzi do 1 MHz bez wzgl臋du na warto艣膰 napi臋cia zasilaj膮cego (poprzednio by艂o to mo偶liwe tylko dla napi臋cia r贸wnego 5 V).
JV" 11 ATmege 16
Interfejs JTAG
Zastosowany w ATmegal6 interfejs JTAG mo偶e by膰 wykorzystywany do programowania, testowania kraw臋dziowego (boundary-scan) i debugo-wania. W celu umo偶liwienia programowania mikrokontrolera poprzez interfejs JTAG, bezpiecznik JTAGEN powinien by膰 ustawiony. Aby zachowa膰 kompatybilno艣膰 z ATmegal63, bezpiecznik ten powinien by膰 wyzerowany. W艂膮czenie interfejsu powoduje zaj臋cie czterech linii port贸w I/O na jego potrzeby.
AV/P
ATmefle 32
Ulepszenie interfejsu JTAG
Mikrokontrolery ATmega323 i AT-mega32 wykorzystuj膮 interfejs JTAG do programowania, skanowania kraw臋dziowego i debugowania. W po-
r贸wnaniu z uk艂adem ATmega323, wATmega32 zwi臋kszono liczb臋 skanowanych kom贸rek, dzi臋ki czemu znacznie poprawiono m.in. obs艂ug臋 funkcji analogowych. Wprowadzono ponadto now膮 instrukcj臋 BREAK, kt贸ra jest niezwykle przydatna podczas debugowania programu. Dzi臋ki niej liczba ustawianych pu艂apek nie jest niczym limitowana.
ATmega 16 ATmege 32
Zmiany w operacji samoprogramowania
Samoprogramowanie by艂o dost臋pne w mikrokontrolerach starych wersji i zachowano je oczywi艣cie w nowych. Wprowadzono jednak pewne zmiany w zachowaniu si臋 CPU podczas tej operacji. Obecnie CPU jest zatrzymywane jedynie podczas programowania (No-Read-While-W艅te -NRWW) pami臋ci Flash. Bit SPMEN w rejestrze SPMCR jest automatycznie zerowany w obu wersjach mikrokontrolera.
P
ATmegaB ATmege 16 ATmege 32
Inne
Nowe mikrokontrolery wyposa偶ono w odmienne w por贸wnaniu ze starymi sygnatury elektroniczne.
ATmega8
U偶ytkownicy mikrokontrolera AT90S4433 musz膮 powoli "przesiada膰 si臋" na ATmega8, kt贸ry jest nowocze艣niejsz膮 i poprawion膮 wersj膮 poprzednika. Przesiadka jest mo偶liwa nawet w aplikacjach ju偶 istniej膮cych, aczkolwiek z pewnymi zastrze偶eniami, gdy偶 i w tym przypadku nie zachowano pe艂nej kompatybilno艣ci uk艂ad贸w. Niew膮tpliwa przewaga mikrokontroler贸w ATmega nad poprzednikami jest zwi膮zana z wi臋ksz膮 pojemno艣ci膮 pami臋ci Flash, SRAM i EEPROM, nowymi
komponentami wewn臋trznymi i nowymi cechami u偶ytkowymi. Zachowano t臋 sam膮 topografi臋 wyprowadze艅. Wymieniaj膮c jednak mikro-kontroler w dzia艂aj膮cym urz膮dzeniu, trzeba si臋 upewni膰, czy r贸偶nice mi臋dzy wersjami uk艂ad贸w na to pozwalaj膮. Przeszkod膮 mog膮 by膰 cho膰by nieco inne zasady dost臋pu do rejestr贸w, nie m贸wi膮c ju偶
0 r贸偶nicach w warto艣ciach parametr贸w elektrycznych. Punkty budz膮ce ewentualne w膮tpliwo艣ci w odniesieniu do uk艂adu AT90S4433 zostan膮 om贸wione pokr贸tce poni偶ej (dotycz膮 rozwi膮za艅 wykorzystywanych w ATmega8). Bezpieczniki i tryby programowania
W mikrokontrolerze ATmega8 umo偶liwiono programowanie pami臋ci Flash i EEPROM w trybie programowania szeregowego po zaprogramowaniu bezpiecznik贸w. Niepoprawne zmienianie kana艂贸w w trybie Free Running
W mikrokontrolerze ATmega8 bity MUXn i REFS1/0 rejestru ADMUX s膮 buforowane przez rejestr tymczasowy. Dzi臋ki temu CPU mo偶e w spos贸b swobodny zmienia膰 kana艂y w bezpiecznym momencie konwersji (bez zak艂贸ce艅). Szczeg贸艂y w nocie katalogowej. Czas stabilizacji 藕r贸d艂a napi臋cia referencyjnego
W mikrokontrolerze ATmega8 czas ustabilizowania si臋 藕r贸d艂a napi臋cia referencyjnego jest okre艣lony parametrami zamieszczonymi w nocie katalogowej niezale偶nie od tego czy uk艂ad Brown-out Detector jest w艂膮czony, czy nie. Dzia艂anie uk艂adu Brown-out
Dzia艂anie detektora Brown-out jest obecnie niewra偶liwe na aktywno艣膰 wyprowadze艅 I/O. Programowanie szeregowe przy zasilaniu poni偶ej 2,9 V
Je艣li uk艂ad ATmega8 pracuje w warunkach zgodnych ze specyfikacj膮 techniczn膮 (dotyczy napi臋cia
1 cz臋stotliwo艣ci pracy), nie powinny wyst臋powa膰 偶adne problemy z programowaniem szeregowym.
Tab. 5. Zmiany nazw rejestr贸w w mikrokontrolerze ATmega8
Nazwy rejestr贸w Komentarz
w AT90S4433 w ATmega8
SP SPL
GIMSK GICR
MCUSR MCUCSR
UBRRHI UBRRH zmieniono adres rejestru
Elektronika Praktyczna 12/2002
PODZESPO艁Y
Tab. 6. Zmiany lokacji bit贸w w ATmega8
TIMSK TIFR Pozycja bitu w
AT90S4433 ATmegaS
TOIE1 T0V1 7 2
OC1E1 OCF1 6 4
TCIE1 ICF1 3 5
TOIEO TOV0 1 8
Utrata synchronizacji przez UART, je艣li Unia RxD jest na poziomie niskim, podczas gdy UART jest zablokowany
Podobnie jak w mikrokontrolerach ATmegal6 i ATmega32, w ATmega8 r贸wnie偶 zast膮piono UART przez USART. Wyeliminowano przy tym b艂膮d utraty synchronizacji w opisywanej sytuacji.
R贸偶nice w wyprowadzeniach uk艂ad贸w AT90S4433 i ATmega8
W mikrokontrolerze ATmega8 wprowadzono nowe, w stosunku do AT90S4433, funkcje alternatywne niekt贸rych wyprowadze艅 l/O. Je艣li pozostan膮 niewykorzystywane, nie b臋d膮 stwarza艂y problem贸w z kompatybilno艣ci膮. PC6 (IReset)
Uk艂ad AT90S4433 posiada dedykowane wyprowadzenie IRESET. Niestety w ATmega8 funkcja zerowania jest przypisana do wyprowadzenia PC6, kt贸rego funkcjonowanie zale偶y od ustawienia bezpiecznika RSTDISBL. PB7/6(XTAL/OSC)
ATmega8 nie ma dedykowanych wyprowadze艅 XTALl i XTAL2. Funkcja XTAL2 i TOSC2 jest aktualnie dzielona z wyprowadzeniem PB7, natomiast XTALl i TOSCl z PB6. Konfiguracj臋 ustala bezpiecznik CKSEL. ADC7/6
W uk艂adzie ATmega8 w obudowie TQFP (i MLF) wyprowadzenia ADC6 i ADC7 zosta艂y do艂膮czone do wyprowadze艅 19 i 22. WAT90S4433 by艂y one niewykorzystywane. Vcc/GND
W uk艂adzie ATmega8 w obudowie TQFP (i MLF) wprowadzono dodatkow膮 par臋 wyprowadze艅 zasilaj膮cych: Vcc - n贸偶ka 6 i GND - n贸偶ka 3. WAT90S4433 by艂y one niewykorzystywane. Po艂膮czenie tych wyprowadze艅 zgodnie z przeznaczeniem zwi臋ksza odporno艣膰 na szumy, jednak w przypadku zast臋powania uk艂adu AT90S4433 przez ATmega8, powinny pozosta膰 niepod艂膮czone.
Zmiany nazw
W tab. 5 i 6 przedstawiono zmiany w nazewnictwie bit贸w i rejestr贸w.
Zmiany w timerach/Iicznikach i preskalerach
Najwa偶niejsze zmiany dotycz膮ce timer贸w/licznik贸w wprowadzone w ATmega8 to:
- mo偶liwo艣膰 zerowania,
- ustawianie warto艣ci zliczanej w trybie PWM,
- wprowadzenie korekcji fazy i cz臋stotliwo艣ci w trybie PWM dla time-ra/licznikal i 2.
- tryb szybkiej PWM Po艂o偶enie bit贸w w rejestrach TIMSK i TIFR
Wszystkie maski i flagi przerwa艅 mikrokontrolera AT90S443 3 zosta艂y uwzgl臋dnione w uk艂adzie ATmega8, przy czym zmieniono ich lokacj臋. Zmiany przedstawiono w tab. 6. Zerowanie TCNTl w trybie PWM
Rozdzielczo艣膰 modulacji PWM mo偶e by膰 r贸wna 8, 9 lub 10 bit贸w, jednak偶e wykorzystywany przy tym ti-mer/licznik jest 16-bitowy. Mikro-kontroler AT90S4433 umo偶liwia艂 wpisanie do rejestru TCNTl liczby przewy偶szaj膮cej rozdzielczo艣膰, co mog艂o powodowa膰 nieprawid艂owo艣ci w modulacji. W uk艂adzie ATmega8 efekt ten zosta艂 wyeliminowany poprzez zerowanie niewykorzystywanych bit贸w.
Zerowanie OCRlxH w trybie PWM
W mikrokontrolerze AT90S4433 wykorzystuj膮cym PWM, sze艣膰 bardziej znacz膮cych bit贸w OCRlxH by艂o zawsze zerowanych, bez wzgl臋du na wykorzystywan膮 rozdzielczo艣膰 modulacji, co mog艂o prowadzi膰 do b艂臋dnego dzia艂ania uk艂adu. W ATmegaS poprawiono ten b艂膮d zerowane s膮 tylko te bity, kt贸re wynikaj膮 z ustawionej rozdzielczo艣ci. Zerowanie timera/Iicznikal w trybie por贸wnania z preskalerem
Timer/licznikl uk艂adu AT90S4433 wykazywa艂 b艂臋dy podczas pracy w trybie por贸wnywania z preskalerem. Licznik by艂 w nim zerowany natychmiast po zliczeniu do stanu zapisanego w rejestrze OCRl bez wzgl臋du na ustawienia preskalera. W ATmega8 jest on zerowany dopiero w momencie Ji-tego zliczenia, gdzie n zale偶y od ustawienia preskalera.
Ustawienia wyprowadze艅 i znacznik贸w w trybie por贸wnania z preskalerem (dotyczy wszystkich timer贸 w/Iiczn ik贸w)
Przypadek ten jest podobny do poprzedniego, dotyczy tylko momentu ustawiania znacznik贸w i wyj艣cia wyniku por贸wnania. Aktualizacja OCRlx w trybie PWM
Pomi臋dzy uk艂adami AT90S4433 i ATmega8 wyst臋puj膮 w pewnych przypadkach r贸偶nice dotycz膮ce aktu-
Tab. 7. Por贸wnanie bezpiecznik贸w w uk艂adach AT90S4433 i ATmega8(1)
Bezpiecznik Domy艣lne ustawienie w AT90S4433 Domy艣lne ustawienie w ATmegaS Ustawienie kompatybilne w ATmegaS
RSTDISBL - 1 1
WDTON - 1 1(2)
SPIEN 0 0 0
CKOPT - 1 o(3>
EESAVE - 1 1
B00TSZ1 - 0 0 (N/A)(4>
BOOTSZO - 0 0 (N/A)(4>
BOOTRST - 1 1
BODLEVEL 1 1 1
BODEN 1 1 1
SUT1 - 1 patrz uwaga (5)
SUTO - 0 patrz uwaga (5)
CKSEL3 - 0 patrz uwaga (5)
CKSEL2 0 0 patrz uwaga (5)
CKSEL1 1 0 patrz uwaga (5)
CKSELO 0 1 patrz uwaga (5)
Obja艣nienia: 1. Kreska oznacza, 偶e bezpiecznik nie wyst臋puje 2. Patrz punkt "Zmiany w timerze watchdog" 3. Patrz punkt "Oscylatory i ustawienie op贸藕nienia startu" 4. SPM i samoprogramowanie nie wyst臋powa艂o w AT90S4433. Ustawienie domy艣lne jest dobre, je艣li projekt jest dostosowany do ATmega8. 5. Dzia艂anie SUT i CKSEL powinno by膰 przeanalizowane przy przej艣ciu na mikrokontroler ATmega8. Patrz punkt Oscylatory i ustawienie op贸藕nienia startu.
74
Elektronika Praktyczna 12/2002
alizacji rejestru OCRl. Zapisanie nowej warto艣ci do OCRl odbywa si臋 poprzez rejestr tymczasowy (nie jest natychmiastowe). Je艣li OCRlA jest czytany przed dokonaniem aktualizacji (dotyczy AT90S4433), faktycznie pobierana jest warto艣膰 z bufora OCRlA. Mo偶e to by膰 przyczyn膮 u偶ywania do p贸藕niejszych por贸wna艅 innej warto艣ci ni偶 odczytana. W mik-rokontrolerze ATmegaS rejestr OCRlx jest odczytywany przed jego aktualizacj膮 - nie korzysta si臋 z dodatkowego bufora. Zapami臋tywanie sianu wyj艣cia OCnx
Poziom wyprowadzenia OCnx w mikrokontrolerze ATmegaS jest zapami臋tywany przed zablokowaniem trybu Output Compare. Ponowne jego odblokowanie przywraca zapami臋tywany stan. Wszystkie wyj艣cia wyniku por贸wna艅 s膮 ustawiane na zero po wyzerowaniu mikrokontrolera. Zwiany dotycz膮ce przetwornika a n a log o wo - cyfro weg o
Przetwornik A/C zosta艂 w mikrokontrolerze ATmegaS ulepszony w por贸wnaniu z AT90S4433 o:
- obs艂ug臋 10-bitowych wynik贸w ad-justowanych w lewo lub w prawo,
- wyposa偶enie uk艂adu w dwa dodatkowe kana艂y ADC (tylko dla obud贸w MLF i TQFP).
Projektuj膮c urz膮dzenia wykorzystuj膮ce przetworniki A/C w oparciu o mik-rokontroler ATmegaS, trzeba pami臋ta膰, 偶e kana艂y ADC4 i ADC5 charakteryzuj膮 si臋 w nim mniejsz膮 dok艂adno艣ci膮 ni偶 pozosta艂e. Niedogodno艣膰 ta wynika ze wsp贸艂dzielenia wyprowadze艅 przypisanych do tych kana艂贸w z interfejsem 2-wire. Konsekwencj膮 takiego rozwi膮zania jest konieczno艣膰 zasilania ich z napi臋cia Vcc, nie AVCC. Parametry elektryczne zamieszczono w notach katalogowych.
Ustawienie bitu ADCBG w rejestrze ADMUX powodowa艂o w mikrokontrolerze AT90S443 3 do艂膮czenie 藕r贸d艂a referencyjnego (1,2 2 V) do wybranego wej艣cia przetwornika A/ C. Ten sam efekt jest osi膮gany w ATmegaS przez ustawienie bit贸w
MUX3...O na lllOb. Miejsce bitu ADCBG zosta艂o zaj臋te w mikrokontrolerze ATmegaS przez bity REFSl/O ustalaj膮ce warto艣膰 napi臋cia referencyjnego dla przetwornika A/C. Zwiany sysiewu zarz膮dzania woc膮
W mikrokontrolerze ATmegaS za-implementowano dodatkowe tryby u艣pienia. Tak wi臋c bit SM stosowany w AT90S4433 zosta艂 teraz zast膮piony przez bity SM2...0. Powi膮zania mi臋dzy starymi i nowymi ustawieniami s膮 nast臋puj膮ce: SM=O (AT90S4433) odpowiada
SM2...0=000b (ATmegaS) SM=1 (AT90S4433) odpowiada
SM2...0=010b (ATmegaS)
Wa偶ne jest ponadto, 偶e zmieniono po艂o偶enie bitu SE. Szczeg贸艂y w notach katalogowych. Zwiany w SPI i USART
Obydwa interfejsy mog膮 obecnie pracowa膰 z podw贸jn膮 pr臋dko艣ci膮. UART stosowany wAT90S4433 jest zast膮piony USART-em w ATmegaS. Zmiany s膮 identyczne jak w mikro-kontrolerach ATmegal63 i ATme-ga323.
Zwiany w interfejsie prograwowa-nia
W mikrokontrolerze ATmegaS wprowadzono kilka udoskonale艅 interfejsu programowania. Szczeg贸lnie wa偶ne s膮 te, kt贸re dotycz膮 interfejsu In-Sysiew Prograwwing. Zmiany s膮 zwi膮zane z wprowadzeniem dodatkowych bezpiecznik贸w w uk艂adzie ATmegaS. Szczeg贸艂y w notach katalogowych.
Zmieniono r贸wnie偶 algorytm programowania r贸wnoleg艂ego. Obecnie wykorzystuje si臋 dodatkowe wyprowadzenia PAGEL (PD7) i BS2 (PAo) niezb臋dne do prawid艂owego programowania pami臋ci Flash, EEP-ROM i dodatkowych bezpiecznik贸w. Niestety uleg艂 zmianie r贸wnie偶 timing operacji programowania. Szczeg贸艂y w notach katalogowych. Ustawienia bezpiecznik贸w
W tab. 7 opisano wszystkie zmiany zwi膮zane z bezpiecznikami stosowanymi w mikrokontrolerze ATmegaS.
Tab. 8. Por贸wnanie ustawienia watchdoga w AT90S4433 i ATmegaS
Uk艂ad WDTON Poziom zabezpieczenia Stan pocz膮tkowy WDT Jak zablokowa膰 WDT? Jak zmieni膰 time-out?
AT90S4433 N/A N/A zablokowany sekwencja czasowa bez restrykcji
ATrnega8 nie zaprogramowany 1 zablokowany sekwencja czasowa sekwencja czasowa
ATrnega8 zaprogramowany 2 odblokowany zawsze odblokowany sekwencja czasowa
Oscylaiory i ustawienie op贸藕nienia startu
Mikrokontroler ATmegaS wykorzystuje wi臋cej oscylator贸w i ustawie艅 czasu startu ni偶 AT90S443 3. Podczas oczekiwania na wyj艣cie z trybu Power-down mo偶e korzysta膰 z cz臋stotliwo艣ci CPU, podczas gdy AT90S4433 wykorzystywa艂 do tego celu jedynie oscylator watchdoga.
Wi臋cej informacji zwi膮zanych z faz膮 Siart-up mikrokontrolera jest zawartych w rozdziale Sysiew Clock and Clock Opiions.
Szczeg贸ln膮 uwag臋 nale偶y zwr贸ci膰 na zmiany ustawie艅 bezpiecznik贸w w trybie ISP, kt贸ry jest zale偶ny od zegara systemowego. Z艂e ustawienie oscylatora mo偶e uniemo偶liwi膰 ponowne zastosowanie programowania szeregowego. W贸wczas b臋dzie mo偶liwe jedynie zastosowanie programowania r贸wnoleg艂ego. Wykorzystanie oscylatora jako 藕r贸d艂a przebieg贸w zegarowych poprzez wyj艣cie XTAL2 jest w AT90S4433 mo偶liwe bez 偶adnych ogranicze艅. W ATmegaS nale偶y w tym celu zaprogramowa膰 bezpiecznik CKOPT. Trzeba pami臋ta膰 o zwi臋kszonym poborze mocy w takiej konfiguracji. Wyj艣cie pracuje w trybie rail-to-rail (w pe艂nym zakresie napi臋cia zasilaj膮cego). Zwiany w iiwerze waichdog
Watchdog mikrokontrolera ATmegaS jest udoskonalon膮 wersj膮 stosowanego w AT90S4433. Jego w艂膮czenie lub wy艂膮czenie nie jest tak 艂atwe jak w pierwotnym uk艂adzie. Obecnie zastosowano dwupoziomowe zabezpieczenie, ustawiane bezpiecznikiem WDTON (patrz tab. 8). Cz臋stotliwo艣膰 pracy watchdoga w ATmegaS dochodzi do lMHz bez wzgl臋du na warto艣膰 napi臋cia zasilaj膮cego (poprzednio obowi膮zywa艂o to tylko dla napi臋cia r贸wnego 5 V). Przed zastosowaniem watchdoga koniecznie trzeba zapozna膰 si臋 z not膮 katalogow膮.
Na podstawie materia艂贸w firmy Atmel opracowa艂 Jaros艂aw Doli艅ski, AVT jaroslaw.dolinski@ep.com.pl
Elektronika Praktyczna 12/2002
75
PROGRAMY
R-GCC
艢rodowisko programistyczne dla mikrokontroler贸w AVR
Z pewno艣ci膮 wi臋kszo艣膰 elektronik贸w zauwa偶y艂a, 偶e ostatnio nasta艂a moda na stosowanie mikrokontroler贸w jednouk艂adowych nawet w bardzo prostych uk艂adach. Szczeg贸lnym zainteresowaniem cieszy si臋 rodzina AVR firmy Atmel. S膮 to do艣膰 nowoczesne, szybkie i bogato wyposa偶one mikrokontrolery. Aby u艂atwi膰 u偶ytkownikowi uruchamianie uk艂ad贸w, producent wprowadzi艂 mo偶liwo艣膰 programowania uk艂ad贸w ju偶 po zamontowaniu w systemie docelowym. Bardzo interesuj膮ce cechy tych mikrokontroler贸w s膮 zwi膮zane z ich architektur膮 i list膮 rozkaz贸w stworzon膮 z my艣l膮 o stosowaniu kompilator贸w j臋zyka C.
Nie chc臋 w tym miejscu wywo艂ywa膰 polemiki mi臋dzy osobami uznaj膮cymi za jedynie "s艂uszny" j臋zyk asembler i ich przeciwnikami. Jak zwykle prawda le偶y po艣rodku. Asembler pozwala 艣ci艣le kontrolowa膰 zasoby i przebieg programu, a j臋zyki wysokiego poziomu - skr贸ci膰 czas przygotowywania programu, kt贸ry jednocze艣nie mo偶e by膰 bardziej czytelny.
Atmel udost臋pnia nieodp艂atnie zintegrowane 艣rodowisko programistyczne dla AVR-贸w - oprogramowanie AVR Studio. Posiada ono edytor (z rozpoznawaniem sk艂adni), asembler, symulator umo偶liwiaj膮cy 艣ledzenie wykonywania program贸w z podgl膮dem wszystkich wbudowanych w mikrokontroler uk艂ad贸w. Da si臋
J
i
Rys. 1
r贸wnie偶 tworzy膰, kompilowa膰 i uruchamia膰 programy napisane w j臋zyku C. Ta ostatnia cecha daje du偶e mo偶liwo艣ci, ale r贸wnie偶 sprawia najwi臋cej k艂opot贸w w poprawnym skonfigurowaniu 艣rodowiska i dopasowaniu do niego kompilatora.
Dobrym uzupe艂nieniem dla AVR Studio jest bezp艂atny kompilator j臋zyka C - AVR-GCC. Pierwotnie powsta艂 on z my艣l膮 o systemach typu Unix, ale po pewnym czasie przeniesiono go r贸wnie偶 na platform臋 Windows.
GCC to skr贸t od GNU Compiler Collection, a GNU to skr贸t od GNU's Not Unix. Wi臋cej informacji o GCC i projekcie GNU mo偶na znale藕膰 na stronie g艂贸wnej GCC [http:// gcc.gnu.org/).
Instalacja kompilatora
Przed instalacj膮 nale偶y zaopatrzy膰 si臋 w pakiet instalacyjny AVR-GCC w wersji 3.2 (opatrzonej dat膮 2002-06-25) dost臋pny w postaci jednego pliku do 艣ci膮gni臋cia ze strony AVR Freaks {http://www.avrfreaks.nei] i AVR Studio (aktualnie wersja 3.55) udost臋pnione przez Atmela na stronie inter-netowej firmy.
Instalacja AVR-GCC sprowadza si臋 do uruchomienia instalatora i post臋powania wed艂ug wskaz贸wek. Nale偶y pozwoli膰 programowi instalacyjnemu za艂o偶y膰 domy艣lny katalog. Podczas instalacji nie powinny si臋 pojawi膰 偶adne b艂臋dy. Na koniec zostaniemy poinformowani o poprawnym zako艅czeniu instalacji.
Utworzony zostaje katalog c:\avr-gcc, a w nim kilka podkatalog贸w. Najwa偶niejsze z nich to:
- avr\include - zawieraj膮cy pliki nag艂贸wkowe (.h),
- avrfreaks z plikiem avr_make (globalna cz臋艣膰 makefile), makefile (dla projektu) oraz plikiem wsadowym uruchamiaj膮cym kompilacj臋 gcc_cmp.bat,
- bin - w kt贸rym s膮 zawarte programy wykonywalne pakietu.
Wracamy do tematu 艣rodowiska
AVR Studio z bezp艂atnym
kompilatorem C dla
mikrokontroler贸w AVR - GCC-
AVR. W artykule przedstawimy
instalacj臋 i konfiguracj臋 tego
oprogramowania do pisania,
kompilacji i uruchamiania
program贸w w C pod system
Windows.
AVR Studio r贸wnie偶 instaluje si臋 bardzo 艂atwo, przy czym domy艣lnym katalogiem jest c:\Program Files\At-mel\AVR Studio. W podkatalogu ap-pnotes znajduj膮 si臋 przyk艂adowe programy napisane w asemblerze i pliki definicyjne (,inc).
Konfiguracja i tworzenie projektu
Opis konfiguracji przedstawi臋 na przyk艂adzie kr贸tkiego programu. Po uruchomieniu AVR Studio, z menu Project wybieramy polecenie New.... Pojawi si臋 okno Select new project (rys. 1). W polu Project name wpisujemy nazw臋 projektu led. Pole Loca-tion okre艣la 艣cie偶k臋 dost臋pu do tego projektu, przyjmijmy, 偶e b臋dzie to katalog c:\avr\pierwszy. Na koniec wa偶ne jest, aby pod艣wietli膰 w polu Project type pozycj臋 Generic 3rd Party C Compiler.
Podczas klikni臋cia prawym klawiszem myszy w oknie projektu otwiera si臋 menu podr臋czne, z kt贸rego wybieramy Create New File... (rys. 2). W wywo艂anym oknie wpisujemy nazw臋 tworzonego pliku - led.c i 艣cie偶k臋 dost臋pu do katalogu, w kt贸rym utworzyli艣my projekt. Aby zachowa膰 porz膮dek, przeci膮gamy w oknie projektu ikon臋 z nazw膮 nowego pliku do folderu Source Files. W otwartym oknie zatytu艂owanym led.c wpisujemy kr贸tki program w j臋zyku C (list. 1).
Spowoduje on, 偶e mikrokontroler b臋dzie wystawia艂 na wyj艣ciach portu B na zmian臋 poziomy wysokie i niskie. Wa偶na uwaga: ostatnia linia ka偶dego pliku przetwarzanego przez kompilator powinna by膰 zako艅czona znakiem ko艅ca linii!
Elektronika Praktyczna 12/2002
77
PROGRAMY

d

li
-lOinf

3 ^"^ 艢*,--- 艢ta r艂ty
1 |L.I
Rys. 2
Maj膮c ju偶 gotowy program, musimy go skompilowa膰 przy u偶yciu AVR-GCC. Pakiet kompilatora po naszej instalacji jest ju偶 w zasadzie przygotowany. Trzeba jedynie utworzy膰 plik makefile w katalogu projektu. Jest to plik tekstowy okre艣laj膮cy przebieg przetwarzania, kompilacji i konsolidacji. Dla u艂atwienia, w pakiecie przygotowanym przez AVR Freaks plik ten zawiera parametry konfiguracyjne, kt贸re nale偶y zmodyfikowa膰 dla konkretnego projektu. W ko艅cowych liniach sterowanie jest przekazywane plikowi avr_make znajduj膮cemu si臋 w katalogu c:\avr-gcc\avrfreaks, kt贸ry zawiera wsp贸lne dla wszystkich projekt贸w polecenia i nie jest potrzebna jego modyfikacja.
Przyk艂adowy plik makefile znajdziemy w wy偶ej wymienionym katalogu. Nale偶y go skopiowa膰 do katalogu z projektem - w naszym przypadku do c:\avr\pierwszy. Na list. 2 przedstawiam go w wersji w j臋zyku polskim, przystosowanej do prezentowanego przyk艂adu.
Najpro艣ciej jest go modyfikowa膰 poprzez dodanie do projektu w AVR Studio. W tym celu klikamy prawym klawiszem w oknie projektu, z menu wybieramy Add File (rys. 3) i otwieramy plik makefile. Przeci膮gnijmy go myszk膮 do folderu Other Files. Najwa偶niejsze parametry, jakie musimy przede wszystkim okre艣li膰 to:
- MCU, czyli typ mikrokontrolera,
- TRG - nazwa pliku wynikowego, przy czym musi to by膰 ta sama na-
List. 1.
#include #include int main(void)
outp(Oxff,DDRE); While(l)
outp(Oxff, PORTE) ; outp(0x00, PORTE) ;
zwa jak nazwa projektu i programu g艂贸wnego,
- SRC - lista plik贸w 藕r贸d艂owych do kompilacji,
- zale偶no艣ci obiekt贸w wynikowych od innych plik贸w (tutaj led.o jest zale偶ny od led.c)
Zapis S(TRG) oznacza wywo艂anie zmiennej (makra) okre艣lonej wcze艣niej poprzez przyporz膮dkowanie TRG=.
Teraz trzeba poinstruowa膰 AVR Studio, jak ma wsp贸艂pracowa膰 z kompilatorem GCC.
Upewnijmy si臋, 偶e w oknie projektu jest wybrana zak艂adka Target-De-bug. Wskazuj膮c myszk膮 na rdze艅 drzewa Target-Debug, klikamy prawym klawiszem i z menu wybieramy pozycj臋 Settings... Pojawi si臋 okno, kt贸re nale偶y wype艂ni膰 tak, jak to pokazano na rys. 4. Ustawienia te powoduj膮 podj臋cie odpowiednich akcji przy kompilowaniu i debuggowaniu programu. AVR Studio uruchamia program wsadowy [gcc_cmp.bat) przeprowadzaj膮cy kompilacj臋, a nast臋pnie, je艣li nie zasygnalizowano 偶adnych b艂臋d贸w, 艂aduje plik debuggera o na-
zwie takiej, jak nazwa projektu z rozszerzeniem .cof.
Przy okazji warto utworzy膰 dodatkow膮 zak艂adk臋 Clean, kt贸ra b臋dzie s艂u偶y艂a do usuwania plik贸w tworzonych przez kompilator. W tym celu klikamy prawym klawiszem na oknie projektu i wybieramy Targets>Add. W polu Name wpisujemy Clean, a poni偶ej wybieramy Copy settings from>Debug. Wybieramy zak艂adk臋 Target-Clean i podobnie jak wy偶ej modyfikujemy ustawienia. Linia polecenia ma mie膰 posta膰 c:\avrgcc\avr-freaks\gcc_cmp.bat clean, co oznacza, 偶e program b臋dzie wywo艂ywany z parametrem clean. Oba okienka z grupy Run Stage Settings pozostawiamy puste.
W systemie Windows 2000 trzeba wywo艂ywa膰 program wsadowy z pod-katalogu win2000, czyli c:\avrgcc\av-rfreaks\win2000\gcc_cmp .bat. Je艣li w oknie wyj艣ciowym AVR Studio pojawia si臋 komunikat b艂臋du, informuj膮cy o k艂opocie z odnalezieniem pliku c:\tmpout.txt, nale偶y w pliku gcc_cmp.bat poda膰 pe艂n膮 艣cie偶k臋 dost臋pu do pliku gcc_cmp2.bat [@start
List. 2
# Simpl e Makefile Volke r Oth (c) 1999
# edite d by AVRfre aks n et no V.2OO1
# t艂uma czenie: Mic ia艂 L an z sierpie 艅 2002
zmie艅 poni偶 sze p ar ame try dla s Woj ego projektu ##########
#wpisz typ mikroko ntrol er a ( np. at90s 8 535, attiny22, atmegal28 itd.)
MCU = a t90s2313
ttwpisz nazw臋 pliku doce lo Weg o (bez ro zszerz enia!)
TRG = 1 ed
ttwpisz nazwy plik贸 W 藕r贸 d艂 owy ch w C ro zdzie] aj膮c spacj膮
SRC = S(TRG) .c
#Wpisz dodatkowe pliki 藕r 贸d艂 owe w ase mblerz e
ASRC =
#dodatk owe bibliot eki i pliki obiekto We do do艂膮czenia (zlinkowania)
LIE =
艂dodatk owe pliki i nclud e do kompilac] i
INC =
Klagi dla asemble ra
ASFLAGS = -Wa, -gs tabs
#flagi dla kompila tora
CPFLAGS = -g -03 -Wall -Ws trict-prc totype s -Wa,-ahlms=$(<:,c=.lst)
#flagi dla linkera
LDFLAGS = -Wl,-Map = S (TRG) .ma p, -cref
####### #### tej li nijki n ie nowiniene 艣 modyfikowa膰 #############
include S(AVR)/avrfreak s / avr _make
# zale偶 no艣ci
S(TRG) . o: $(TRG).c
78
Elektronika Praktyczna 12/2002
PROGRAMY
/MIN Iwait cmd Ic c:\ctvrgcc\avr-freaks\win2000\gcc_cmp2.bat %1).
Na tym etapie mamy ju偶 wszystko ustawione. W oknie projektu wybieramy zak艂adk臋 Target-Debug i naciskamy klawisz F7 (menu Project>Build), aby skompilowa膰 program. Komunikaty kompilatora s膮 wy艣wietlane w oknie zatytu艂owanym Project Output. W katalogu projektu wygenerowany zostanie mi臋dzy innymi plik led.hex. Jest to gotowy plik w formacie Intel Hex, kt贸rym programuje si臋 mikro-kontroler, na przyk艂ad za pomoc膮 programatora YAAP (EP7/2OO2) lub Ponyprog [www.lancos.com). Ten drugi szczeg贸lnie polecam ze wzgl臋du na du偶膮 liczb臋 obs艂ugiwanych uk艂ad贸w.
Ca艂y projekt ze wszystkimi zmodyfikowanymi plikami najpro艣ciej jest zapisa膰 poleceniem Save Ali (ikona z kilkoma dyskietkami).
Uruchamianie i debugging programu
Do艣膰 wa偶ne podczas uruchamiania nowego kodu jest analizowanie dzia艂ania niekt贸rych jego fragment贸w. W szczeg贸lno艣ci przydatna jest praca krokowa i wgl膮d w zawarto艣膰 poszczeg贸lnych zmiennych. 艢rodowisko AVR Studio jest przygotowane do 艣ledzenia dzia艂ania zar贸wno program贸w napisanych w asemblerze, jak i w j臋zyku C. Konieczne by艂o jednak odpowiednie przystosowanie kompilatora. G艂贸wnym problemem jest to, 偶e kompilator GCC normalnie generuje plik debuggera w formacie ELF, kt贸rego nie akceptuje AVR Studio. Najnowszy pakiet kompilatora zawiera ju偶 zewn臋trzny program konwersji formatu ELF na COFF [elf-cof.exe), kt贸ry jest automatycznie uruchamiany wed艂ug polecenia zawartego w pliku avr_make.
Z do艣wiadczenia wiem, 偶e konwersja format贸w jest b艂臋dna lub AVR Studio zawiera b艂臋dy. Objawiaj膮 si臋 one tym, 偶e nie da si臋 podgl膮da膰 niekt贸rych zmiennych i czasami nie
dzia艂aj膮 pu艂apki [breakpointy). Dotyczy to szczeg贸lnie bardziej z艂o偶onych program贸w. Z tego wzgl臋du dobrze jest, w celu analizy danego fragmentu programu, utworzy膰 pomocniczy projekt zawieraj膮cy tylko istotne dla jego dzia艂ania instrukcje.
Prze艣ledzimy teraz skompilowany program led. Zauwa偶my, 偶e po pierwszej kompilacji sta艂y si臋 aktywne niekt贸re przyciski na g贸rnej listwie AVR Studio zawieraj膮cej zestaw polece艅 do sterowania przebiegiem programu. Oznacza to, 偶e zosta艂 odnaleziony plik dla symulacji led.cof. Automatycznie r贸wnie偶 otworzy艂o si臋 okno Simulator Options (rys. 5), w kt贸rym mo偶na wybra膰 typ mikro-kontrolera i cz臋stotliwo艣膰 jego taktowania. Opcje te s膮 dost臋pne z menu Options>Simulator Options.
Symulacj臋 rozpoczynamy klawiszem F5 (Run) lub wybieraj膮c ikon臋 9. W oknie z programem 藕r贸d艂owym pojawia si臋 偶贸艂ta strza艂ka wskazuj膮ca lini臋 kodu, kt贸ra zostanie wykonana w kolejnym kroku. Aby wykona膰 linijk臋 wskazywan膮 strza艂k膮, przyciskamy klawisz Fll [Trac臋 Into, ikona 11).
To dopiero pocz膮tek mo偶liwo艣ci symulatora. Mo偶emy bowiem "zobaczy膰" poziom, jaki wyst臋puje na wyprowadzeniach portu B. W tym celu klikamy na ikon臋 6 (lub przyciskamy klawisze Alt+5) i rozwijamy ga艂膮藕 PORTB. Wykonuj膮c kolejne kroki, obserwujemy zawarto艣膰 rejestru portu wyj艣ciowego (rys. 6).
Otw贸rzmy teraz okno procesora kombinacj膮 klawiszy Alt+3 (lub ikon膮 4). Znajduj膮 si臋 w nim przynajmniej dwie przydatne funkcje: stoper i licznik cykli zegarowych. Dzi臋ki nim mo偶emy 艂atwo zmierzy膰 czas wykonania danego fragmentu programu. W p臋tli while programu mo偶na na przyk艂ad zauwa偶y膰, 偶e na wyj艣ciu portu B poziom wy- vrrrC3Z^^H soki b臋dzie si臋 utrzy- t* 艂* &*- s*i i-mywa艂 przez jeden ** Uw d **&
Rys. 5
cykl zegara, a niski przez trzy. Nie-symetria wynika z budowy p臋tli. Przy tej okazji warto si臋 r贸wnie偶 zapozna膰 z mo偶liwo艣ci膮 podgl膮du kodu maszynowego 艣ledzonego programu.
Klikaj膮c na ikonce 21 (Ctrl+Fll), otworzymy okno zawieraj膮ce linijki tekstu w rodzaju: +0000002C: BA18 OUT 0x18,Rl
Powy偶sza linia zawiera informacj臋, 偶e pod adresem 2Ch znajduje si臋 instrukcja o kodzie BAl8h, kt贸rej odpowiada zapis asemblerowy OUT 0x18,Rl.
Uruchomienie pracy krokowej w tym trybie powoduje wykonywanie pojedynczych instrukcji asemblera. Aby powr贸ci膰 do analizy kodu w C, ponownie u偶ywamy ikony 21.
Za pomoc膮 ikony 19 (Shift+F5) zeruje si臋 symulowany mikrokontroler, czyli doprowadza do jego stanu wyj艣ciowego, jaki jest tu偶 po "resecie" w rzeczywistym uk艂adzie.
Podgl膮d zmiennych
Opr贸cz wewn臋trznych rejestr贸w i pami臋ci procesora mo偶emy r贸wnie偶 podgl膮da膰 zmienne u偶ywane w programie. Dla przyk艂adu zmodyfikujmy nasz program led.c do postaci pokazanej na list. 3.
Musimy jeszcze usun膮膰 niepotrzebne pliki z poprzedniej kompilacji, zmieniaj膮c zak艂adk臋 w projekcie na Target-Clean i wciskaj膮c klawisz F7. Wracamy do Target-Debug, kompilujemy i uruchamiamy kombinacj膮 kla-
Lj fc ? a
.
Tlwi <"艢 Curt uufe
Rys. 4
Rys. 6
Elektronika Praktyczna 12/2002
79
PROGRAMY
Opis ikon menu AVR Studio
Ikony podgl膮du (
1. Warto艣ci zmiennych
2. Rejestr贸w
3. Pami臋ci
4. Istotnych parametr贸w pracy procesora
5- Informacji
6. Urz膮dze艅 wej艣cia/wyj艣cia
Ikony sterowania
7. Dodanie zmiennej do podgl膮du
8. Usuni臋cie zmiennej z podgl膮du
9. Uruchomienie symulacji
10. Przerwanie symulacji
11. Krok z wej艣ciem do funkcji
12- Krok z przeskokiem funkcji
-u ra &
programem (Debug):
13. Wyskoczenie z funkcji
14. Uruchomienie i zatrzymanie w miejscu kursora
15. Wykonanie n krok贸w
16. Wykonanie n krok贸w
17. Ustawienie lub usuni臋cie pu艂apki
18. Usuni臋cie wszystkich pu艂apek
19. Wyzerowanie procesora
Pozosta艂e
20. Kompilacja i uruchomienie programu
21. Prze艂膮cznik widoku 藕r贸d艂a
wiszy Ctrl + F7. Klikamy na ikon臋 7 (okularki) i podajemy nazw臋 interesuj膮cej nas zmiennej, czyli x. Rozpoczynamy prac臋 krokow膮. Instrukcja w p臋tli while powinna powodowa膰 przesuwanie o jeden bit w lewo bit贸w zmiennej x i zapisywanie tego bajtu do rejestru wyj艣ciowego portu B. Rzeczywi艣cie, widzimy efekt "w臋偶a" na bitach portu, podgl膮daj膮c stany jego wyj艣膰 w oknie IO. Jednak zmienna x ma przez ca艂y czas warto艣膰 OxFF. Taki stan rzeczy spowodowa艂 kompilator, kt贸ry zoptymalizo-
List. 3.
#lnclude #lnclude
lnt maln(yald) !
olltp(Oxff,DDRE)r
X = CKffr
Whlle(l)
oUtp(X = 1, BORT臉} r i
wa艂 kod. Kompilator "stwierdzi艂", 偶e nie ma potrzeby specjalnie czyta膰 i zapisywa膰 zmiennej x do pami臋ci RAM. Wystarczy operowa膰 na jednym z rejestr贸w, co skr贸ci kod i jednocze艣nie przyspieszy dzia艂anie programu.
Dla cel贸w uruchomieniowych mo偶na zmieni膰 parametry kompilacji tak, aby kod nie by艂 optymalizowany. Wystarczy w pliku iriokefile w linii zaczynaj膮cej si臋 od wyrazu CPFLAGS= zamiast -O3 wpisa膰 -O0. Po usuni臋ciu plik贸w poprzedniej kompilacji, ponownej kompilacji i uruchomieniu pracy krokowej, zmienna x jest ju偶 obserwowa艂 na. R贸偶nice mo偶na dostrzec, analizuj膮c kod asemblerowy tego fragmentu programu.
Gdy program jest z艂o偶ony z kilku plik贸w 藕r贸d艂owych i nag艂贸wkowych, dodajemy ich nazwy do odpowied-
nich folder贸w w oknie projektu. W ten spos贸b mamy do nich szybki i 艂atwy dost臋p. Nale偶y pami臋ta膰, aby w pliku iriokefile znalaz艂a si臋 lista plik贸w do kompilacji i odpowiednie zale偶no艣ci.
Po przebrni臋ciu przez przedstawiony opis i uruchomieniu pierwszego programu, proponuj臋 odwiedzi膰 stron臋 AVR Freaks zawieraj膮c膮 mn贸stwo przyk艂ad贸w, projekt贸w i dokument贸w pomocniczych.
Mam nadziej臋, 偶e niniejszy opis pozwoli pokona膰 trudy zwi膮zane z przygotowaniem wsp贸艂pracy AVR Studio z kompilatorem AVR-GCC i zach臋ci Czytelnik贸w zainteresowanych programowaniem mikrokontroler贸w do w艂asnych eksperyment贸w. Micha艂 Lankosz sq9fqq@sq9fqq.prv.pl http://sq9fqq.prv.pl
80
Elektronika Praktyczna 12/2002
MINIPROJEKTY
Odbiornik radiowy AM
W艂asnor臋czne wykonanie
radioodbiornika przynosi
ka偶demu elektronikowi
du偶o satysfakcji, nawet
wtedy, gdy jest to
urz膮dzenie tak proste,
jak opisane w artykule.
R ekom en da ej e:
projekt dos艂ownie dla
ka偶dego, kto cho膰by
troch臋 lubi lutownic臋.
Ponadto, samodzielne
wykonanie radia jest dla
elektronika rodzajem
sprawdzianu
umiej臋tno艣ci.
Artwwgdb.
Na rys. 1 przestawiono schemat elektryczny odbiornika. Inwertery UlC i UlB pracuj膮 jako wzmacniacze w.cz., a dioda Dl z kondensatorem C4 stanowi obw贸d detektora. Cztery kolejne (po艂膮czone r贸wnolegle) inwertery wraz z rezystorami R3i R4 tworz膮 wzmacniacz mocy.
Obwody wej艣ciowe zosta艂y zestrojone na cz臋stotliwo艣膰 Programu I Polskiego Radia. Mimo konstrukcyjnej prostoty odbiornika, Program I Polskiego Radia mo偶e by膰 odbierany przez odbiornik bez anteny zewn臋trznej, w promieniu co najmniej 200 km od nadajnika w Solcu Kujawskim.
Odbiornik wraz z bateri膮 i anten膮 mie艣ci si臋 na jednej p艂ytce drukowanej o wymiarach 25 cm x 3 ,5 cm. P艂ytka drukowana przypomina linijk臋 szkoln膮. Takie wymiary s膮 narzucone rozmiarem anteny ferrytowej u偶ytej do budowy odbiornika. Anten臋 ferrytow膮 wraz z cewkami odzyskano z zepsutego odbiornika radiowego z zakresem fal d艂ugich. Takie rozwi膮zanie pozwala na unikni臋cie czasoch艂onnego nawijania cewek, co dla wi臋kszo艣ci pocz膮tkuj膮cych elektronik贸w jest zaj臋ciem nielubianym.
Po zmontowaniu uk艂adu, sprawdzeniu poprawno艣ci monta偶u i w艂膮czeniu zasila-
WYKAZ ELEMENT脫W
Rezystory
Rl: 2,2MO
R2: lOkO
R3: lkG
R4: 100kQ
Kondensatory
Cl: lOOpF
C2: 200pF obrotowy
C3, C5, C8: lOOnF
C4: lOnF
C脫, C7; 220^F/l贸V
P艂ytka drukowana jest dost臋pna w AVT - oznaczenie AVT-136O.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Iniernecie pod adresem; http:llwww.ep.conj.pl/7pdfl gnidzienO2.htm oraz na p艂ycie CD-EP12/2002 w katalogu PCB.
P贸艂przewodniki
Dl: 1N4148 Ul: 4049 R贸偶ne
LI, L2: cewko no fole d艂ugie wroz z anteng ferrytow膮 Baterio 9V 脫F22
nia, mo偶emy przyst膮pi膰 do uruchamiania. Polega ono na dostrojeniu obwodu LC do cz臋stotliwo艣ci sygna艂u no艣nego Programu I PR. W zale偶no艣ci od u偶ytego kondensatora obrotowego i cewki anteny ferrytowej, podczas strojenia mo偶e wynikn膮膰 potrzeba wlutowania r贸wnolegle do C2 dodatkowego kondensatora o pojemno艣ci kilkunastu...kilkudziesi臋ciu pF lub przemieszczenia cewek na pr臋cie ferrytowym. Krzysztof G贸rski, AVT
Rys. 2
? o o o o o
88
Elektronika Praktyczna 12/2002
SPRZ臉T ^^^^^h
Chocia偶 mikrokontrolery PIC firmy Microchip nie s膮 tak popularyzowane jak AVR-y czy 8051, to jednak zdoby艂y fragment krajowego rynku. Jest on na tyle du偶y, 偶e dwaj. krajowi dystrybutorzy programator贸w firmy Elnec wprowadzili do swoich o/ej wysp臋 ej alizo wan e programatory opracowane z my艣l膮 o konstruktorach stosuj膮cych PIC-e.
Prezentujemy programator PIK-prog+ produkowany przez s艂owack膮 firm臋 Elnec. Firma ta jest nam dobrze znana. Na 艂amach EP prezentowali艣my ju偶 wielokrotnie jej wyroby. Oferta handlowa Elneca jest bardzo bogata. Obejmuje zar贸wno du偶e, uniwersalne programatory, jak i ma艂e wr臋cz kieszonkowe, przeznaczone dla okre艣lonych rodzin mikrokontroler贸w.
Programator PIKprog+ jest reprezentantem tej drugiej grupy przyrz膮d贸w. Obs艂uguje ca艂膮 rodzin臋 aktualnie dost臋pnych PIC-贸w produkowanych w obudowach od 8- do 40-n贸偶kowych. Wykorzystywane s膮 algorytmy programowania zar贸wno r贸wnoleg艂ego jak i szeregowego. Opr贸cz mikrokontroler贸w, PIKprog+ mo偶e r贸wnie偶 programowa膰 szeregowe pami臋ci z interfejsem PC (uk艂ady 24Cxx), Microwire (93Cxx) i SPI (25Cxx). Na g贸rnej jego 艣ciance zamontowana jest 40-n贸偶kowa podstawka ZIF, w kt贸rej mo偶na umieszcza膰 uk艂ady w obudowach DIL o szeroko艣ci 300 lub 600
mils. Je艣li zachodzi potrzeba, mo偶na skorzysta膰 z bogatej oferty adapter贸w DIL/SOIC oraz DIL/PLCC dost臋pnej na stronie http:// www. eln ec.c omfre dpr_ uk.htmtt UNI-VERSAL_SOIC. Na 艣ciance bocznej umieszczono gniazdo interfejsu ICSP (In Circuit Serial Program-ming}, poprzez kt贸re programuje si臋 uk艂ady zamontowane w systemie (programowanie szeregowe). Trzeba przyzna膰, 偶e jest to metoda bardzo wygodna dla u偶ytkownika i z tego wzgl臋du stosowana coraz cz臋艣ciej. Projektuj膮c programator, zwr贸cono uwag臋 na jego szybko艣膰 dzia艂ania. Z jednej strony na parametr ten wp艂ywaj膮 zastosowane algorytmy, z drugiej za艣 port, przez kt贸ry odbywa si臋 komunikacja z komputerem PC. W PIKprog+ wykorzystywany jest standardowy port r贸wnoleg艂y pracuj膮cy w trybie ECP/EPP (zgodnie z norm膮 IEEE1284), nie jest wi臋c potrzebna 偶adna specjalizowana karta instalowana w komputerze. Uzyskuje si臋 transfer danych rz臋du lMB/s. Je艣li powy偶sze
Tab. 1. Uk艂ady obs艂ugiwane przez programator PIKprog+.
Mikrokontrolery
Pami臋ci szeregowe
serie 12xxx, 14xxx, 16xxx, 17xxxi 18xxx, 8 40-n贸zkowe (dost臋pne s膮 r贸wnie偶 adaptery dla uk艂ad贸w o inne] liczbie wyprowadze艅 lub w innych obudowach), programowanie szeregowe lub r贸wnolegle
E(E)PROM 17Cxxx, 24Cxxx, 24Fxxx, 25Cxxx, 59Cxxx, 85xxx, 93Cxxx
cechy po艂膮czymy z 艂atwo艣ci膮 instalacji programu obs艂uguj膮cego PIK-proga+ oraz z jego niewielkimi wymiarami, to oka偶e si臋, 偶e mo偶e by膰 on bardzo przydatny w r贸偶nych zastosowaniach serwisowych.
Wszystkie wyprowadzenia podstawki programatora s膮 dostosowane do pracy w konfiguracji H/L/ puII_up/pu!I_down, co pozwala na ca艂kowit膮 dowolno艣膰 topografii wyprowadze艅 programowanych uk艂ad贸w. Wyprowadzenia te mog膮 prawid艂owo dzia艂a膰 z napi臋ciami od 1,8 V, obs艂uguj膮c tym samym wszystkie aktualnie dost臋pne niskonapi臋ciowe wersje uk艂ad贸w. Procedura programowania rozpoczyna si臋 od sprawdzenia poprawno艣ci umieszczenia uk艂adu w podstawce i jako艣ci kontakt贸w pomi臋dzy n贸偶k膮 uk艂adu i podstawki. Wskutek odczytu sygnatury sprawdzana jest te偶 zgodno艣膰 typu programowanego uk艂adu zadeklarowanego w programie z fizycznie w艂o偶onym do podstawki. Zapobiega si臋 w ten spos贸b przed ewentualnymi pomy艂kami operatora.
W sk艂ad standardowego wyposa偶enia programatora PIKprog+ wchodzi zasilacz wtyczkowy. Jak to jest w wyrobach Elneca, nie zastosowano wy艂膮cznika zasilania, wi臋c programator jest gotowy do pracy zawsze, gdy zasilacz wtyczkowy jest w艂o偶ony do gniazdka sieciowego. Metalowa pokrywka zabezpiecza podstawk臋 ZIF przed zakurzeniem. Jedyn膮 niedogodno艣ci膮, wed艂ug mojej subiektywnej oceny, jest zbyt sztywny kabel 艂膮cz膮cy komputer z programatorem. Programator po-
84
Elektronika Praktyczna 12/2002
SPRZ臉T
Tab. 2. Cennik us艂ugi Keep-Current Senrice
Rys. 1
siada znak CE. Na kr膮偶ku instalacyjnym znajduje si臋 kopia certyfikatu w postaci elektronicznej.
Programator od strony PC
PG4UW to program obs艂uguj膮cy wiele typ贸w programator贸w Elneca (przyk艂adowe okno pokazano na rys. 2). By艂 on opisywany nie tak dawno na 艂amach EP, przy okazji opisu SmartProga. Dla polskiego u偶ytkownika niespodziank膮 jest na pewno dost臋pno艣膰 programu w polskiej wersji j臋zykowej. Po zainstalowaniu oryginalnej wersji j臋zykowej nale偶y do katalogu, w kt贸rym s膮 przechowywane pliki, przekopiowa膰 pliki dodatkowe. S膮 one dost臋pne na p艂ycie instalacyjnej (rys. l). Mo偶na je r贸wnie偶 pobra膰 ze strony internetowej Elneca (http://www.elnec.sk/sw/pg4_Ing/ Ing_pl.zip). Po ponownym uruchomieniu programu menu pojawia si臋
Opcja e-mail Poczta
OUICK 50DM/30USD -
STANDARD 25DM/15USD 60DM/35USD
1/Y bezp艂atnie -
ju偶 w rodzimym j臋zyku. Niestety, wbudowana w program pomoc pozosta艂a w du偶ej cz臋艣ci (w tym m.in. okna informacji o elemencie oraz niekt贸re komunikaty ostrzegawcze) w wersji angielskiej. M贸wi膮c szczerze tego typu rozwi膮zania s膮 troch臋 irytuj膮ce, bo powstaje wra偶enie, 偶e albo cz臋艣膰 "roboty" zosta艂a wykonana niepotrzebnie, albo nie zosta艂a zako艅czona.
Pomijaj膮c te niedogodno艣ci trzeba przyzna膰, 偶e program jest wy艣mienity i w du偶ej mierze stanowi o przydatno艣ci urz膮dzenia. Na uwag臋 zas艂uguje trafiona w dziesi膮tk臋 polityka Elneca, polegaj膮ca na zastosowaniu jednego programu dla wielu swoich wyrob贸w. Dzi臋ki temu klient przywi膮zuje si臋 do firmy, gdy偶 kupuj膮c nowy programator, doskonale zna ju偶 jego obs艂ug臋. Nie musi nawet specjalnie konfigurowa膰 programu - do艂膮czony do komputera programator jest bowiem rozpoznawany automatycznie. W przypadku w膮tpliwo艣ci mo偶na skorzysta膰 z autotestu stanowi膮cego jedn膮 z pozycji menu. Sprawdzane s膮 takie elementy jak: komunikacja z komputerem, pami臋膰 EEPROM, zasilanie, przetworniki cyfrowo-analogowe, sterowniki TTL, a tak偶e sterowniki GND i wyprowadze艅 analogowych. Do jednej z dw贸ch dost臋pnych wersji testu wymagana jest specjalna podstawka diagnostyczna (jest w wyposa偶eniu standardowym).
Mocne punkty
Programatory Elneca s膮 dostarczane ze standardow膮 dla danego typu przyrz膮du list膮 obs艂ugiwanych uk艂ad贸w i zastosowanych algorytm贸w programowania. Gdyby jednak u偶ytkownik mia艂 w艂asne propozycje dotycz膮ce np. zmian algorytm贸w programowania lub uwzgl臋dnienia nowego uk艂adu, mo偶e skorzysta膰 z us艂ugi AlgOR (膭lgorithms On Re-膮uest). W tym celu powinien wype艂ni膰 odpowiedni formularz, kt贸rego wz贸r jest dost臋pny na p艂ycie instalacyjnej oraz na stronach WWW Elneca, a nast臋pnie przes艂a膰 go, najlepiej z pr贸bk膮 uk艂adu do siedziby firmy. Po czasie niezb臋dnym do wprowadzenia poprawek otrzy-

玶*
Rys. 2
ma now膮 wersj臋 programu steruj膮cego uwzgl臋dniaj膮cego propozycje zmian.
Innym, bardzo sympatycznym gestem w stron臋 klient贸w jest tzw. Keep-Current Service. Dzi臋ki tej us艂udze u偶ytkownik mo偶e liczy膰 na bie偶膮ce update'y programu uwzgl臋dniaj膮ce zmiany na rynku podzespo艂贸w, mieszcz膮ce si臋 w zakresie danego programatora. Nowe wersje programu mog膮 by膰 rozsy艂ane poczt膮 elektroniczn膮 lub tradycyjn膮. Us艂uga Keep-Current Service jest trzypoziomowa:
- Quick - u偶ytkownik dostaje (tylko poprzez e-mail) bie偶膮ce wersje oprogramowania oraz dokumentacji z op贸藕nieniem co najwy偶ej miesi臋cznym. Ta opcja jest p艂atna.
- Standard - u偶ytkownik dostaje (poprzez poczt臋 tradycyjn膮 lub e-mail) bie偶膮ce wersje oprogramowania oraz dokumentacji z op贸藕nieniem kwartalnym. Ta opcja jest r贸wnie偶 p艂atna.
- l/Y - u偶ytkownik dostaje (tylko poprzez e-mail) bie偶膮ce wersje oprogramowania oraz dokumentacji raz na rok. Ta opcja jest bezp艂atna.
Cennik us艂ugi Keep-Current Servi-ce przedstawiono w tab. 2.
Podsumowanie
Programatory Elneca s膮 bardzo "mi艂e w u偶yciu". Kto raz ich spr贸buje, na pewno pozostanie im wierny. Zach臋t膮 jest du偶a szybko艣膰 programowania oraz dobry stosunek mo偶liwo艣ci do ceny. 3-letnia gwarancja oraz dobre wsparcie techniczne r贸wnie偶 zach臋caj膮 do zakupu s艂owackich urz膮dze艅. Jaros艂aw Doli艅ski, AVT ja ros la w.do I i ns ki @ep .com. pl
Dodatkowe informacje
Dystrybutorami firmy Elnec s膮:
- Eurodis Microdis, tel. (71) 301-04-00,
wroclaw@eurodis.corn.pl, www.rnicrodis.net.
- W.G. Electronics, tel. (22) 847-97-20, 847-97-21, wg@wg.corn.pl, sale@wg.corn.pl.
86
Elektronika Praktyczna 12/2002
MINIPROJEKTY
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.
"Przed艂u偶acz" pilota RC5
Czasami leniwe
polegiwanie przed
telewizorem musi by膰
przerywane wskutek zbyt
kr贸tkiego zasi臋gu pilota.
Przygotowali艣my na
偶yczenie Czytelnik贸w
uk艂ad eliminuj膮cy ten
problem.
Rekomendacje:
urz膮dzenie niezb臋dne
w wi臋kszo艣ci
przypadk贸w, w kt贸rych
zasi臋g standardowego
pilota jest
niewystarczaj膮cy.
Niejednokrotnie spotykali艣my si臋 z pro艣bami o projekt prostego i skutecznego "przed艂u偶acza" pilot贸w do odbiornika telewizyjnego, odtwarzacza wideo czy odbiornika satelitarnego. Wychodz膮c naprzeciw temu zapotrzebowaniu, opracowali艣my prosty i skuteczny w dzia艂aniu przed艂u偶acz zasi臋gu pilot贸w RC5. Pozwala on na sterowanie sprz臋tem audio-wideo z innego pomieszczenia. Najcz臋艣ciej jest to sypialnia, gdzie widoczno艣膰 pomi臋dzy pilotem a urz膮dzeniem znajduj膮cym si臋 w pokoju dziennym uniemo偶liwiaj膮 艣ciany i drzwi.
Schemat elektryczny "przed艂u偶acza" przedstawiono na rys. 1. W cz臋艣ci odbiorczej zastosowano scalony odbiornik podczerwieni SFH506 zawieraj膮cy w swej strukturze fotodiod臋 odbior-
cz膮, wzmacniacz wst臋pny, uk艂ad ARW, filtr o bardzo stromej charakterystyce oraz uk艂ad detekcyjny. Uk艂ad formuj膮cy impulsy wyj艣ciowe to dwa multiwibratory monosta-bilne 74HC221 sterowane ze scalonego odbiornika podczerwieni. Cz臋艣膰 nadawcza to dwie diody nadawcze IRED sterowane z multiwibratora poprzez wzmacniacz pr膮do-
Rys. 1
Rys. 2
wy T2. Ca艂o艣膰 jest zasilana ze stabilizatora U2, kt贸ry dostarcza do wszystkich obwod贸w napi臋cie +5V.
Impulsy pochodz膮ce z pilota s膮 odbierane i dekodo-wane przez scalony odbiornik podczerwieni. Nast臋pnie s膮 one regenerowane za pomoc膮 dw贸ch generator贸w mo-nostabilnych i wyemitowane przez diody IRED. Poprawna praca uk艂adu sygnalizowana jest 艣wieceniem diody LED w takt impuls贸w przychodz膮cych z uk艂adu formowania.
Urz膮dzenie zosta艂o zmontowane na niewielkiej p艂ytce
drukowanej, kt贸rej schemat monta偶owy przedstawiono na rys. 2. Ze wzgl臋du na prostot臋 uk艂adow膮, monta偶 jest 艂atwy i nie wymaga specjalnych wskaz贸wek. Jedynie diody Dl i D2 nale偶y zamontowa膰 na przewodzie o d艂ugo艣ci od jednego do dw贸ch metr贸w, aby umie艣ci膰 je w pomieszczeniu, w kt贸rym znajduje si臋 sterowane pilotem urz膮dzenie. Krzysztof G贸rski, AVT krzysztof.gorski@ep.com.pl
WYKAZ ELEMENT脫W
Rezystory
Rl: 47Q
R2, R4: 4,7kQ
R3: l,5kQ
R5, R6: 6,8kQ
R7, R8: 3,9kQ
R9, Rl 1: 10Q
RIO: 820Q
Pl, P2: 10kQ
Kondensatory
Cl, C4: lOOnF
C2:
C3:
C5:
C贸, C7: lnF
C8: 1mJ=/10V
P贸艂przewodniki
Dl, D2: IRED
D3: LED
Ml: mostek 1,5A
Tl: BC557
T2: BD135
T3: BC237
Ul: 74HCT221
U2: 7805
U3: SFH 506-36
P艂ytka drukowana jest dost臋pna w AVT - oznaczenie AVT-1359.
Wzory p艂ytek drukowanych w formacie PDF s膮 dost臋pne w Internecie pod adresem: h ttp ://www. ep.com.pl/?p df/ grudzien02.htm oraz na p艂ycie CD-EP12/2002 w katalogu PCB.
Elektronika Praktyczna 12/2002
87
KURS
Programowe dekodowanie sygna艂贸w zdalnego sterowania
Wi臋kszo艣膰 wsp贸艂cze艣nie produkowanych elektronicznych urz膮dze艅 powszechnego u偶ytku jest wyposa偶ono w zda!ne sterowanie, czyli tzw. "pilota". Dost臋pno艣膰 pilot贸w zamiennych oraz ich niska cena sk艂ania do wykorzystania tego "dobrodziejstwa" we w艂asnych projektach. Celem niniejszego artyku艂u jest przybli偶enie Czytelnikom sposobu dekodowania - za pomoc膮 dowolnego mikrokontrolera -sygna艂贸w zdalnego sterowania wysy艂anych przez wi臋kszo艣膰 obecnie stosowanych pilot贸w.
Na pocz膮tek troch臋 historii
W pierwszych systemach bezprzewodowego zdalnego sterowania wykorzystywano do przekazywania informacji o naci艣ni臋ciu klawiszy sygna艂y wielo-cz臋stotliwo艣ciowe. Oznacza艂o to, 偶e ka偶demu klawiszowi pilota przyporz膮dkowana by艂a fala prostok膮tna o okre艣lone] cz臋stotliwo艣ci, kt贸ra s艂u偶y艂a do sterowania przetwornika piezoceramiczne-go lub do modulacji 艣wiat艂a diody LED emituj膮ce] 艣wita艂o podczerwone. System ten zosta艂 do艣膰 szybko zast膮piony przez bardziej zaawansowane systemy cyfrowej transmisji danych, ze wzgl臋du na du偶膮 komplikacje uk艂adu odbiorczego oraz niewielk膮 liczb臋 komend mo偶liwych do przekazania. Zaniechano r贸wnie偶 stosowania ultrad藕wi臋k贸w jako medium transmisyjnego ze wzgl臋du na du偶膮 podatno艣膰 na zak艂贸cenia oraz interferencje z sygna艂em odbitym od 艣cian pomieszczenia itp.
W wyniku ewolucji powsta艂o kilka standard贸w kodowania sygna艂贸w zdalnego sterowania, a do ich przekazywania stosuje si臋 nadal promieniowanie podczerwone.
Zasada dzia艂ania toru transmisyjnego
Budowa wsp贸艂czesnego pilota jest bardzo prosta. Sk艂ada si臋 on z klawiatury, mikrokontrolera lub specjalizowanego uk艂adu steruj膮cego, wzmacniacza pr膮dowego oraz jednej lub kilku diod emituj膮cych 艣wiat艂o podczerwone. Mikrokont-roler realizuje wszystkie funkcje zwi膮za-
ne z identyfikacj膮 naci艣ni臋tego klawisza, przypisania mu odpowiedniego kodu oraz wys艂ania odpowiedniego ci膮gu impuls贸w na wyj艣cie steruj膮ce diod膮 艣wiec膮c膮. Dla zwi臋kszenia odporno艣ci na zak艂贸cenia stosuje si臋 dodatkowo modulacj臋 sygna艂em cyfrowym danych kodu sygna艂 o okre艣lonej cz臋stotliwo艣ci no艣nej, kt贸ra u艂atwia odr贸偶nienie w艂a艣ciwego sygna艂u pilota od zak艂贸ce艅 wywo艂anych o艣wietleniem odbiornika przez 艣wiat艂o s艂oneczne lub sztuczne. W zwi膮zku z tym dioda 艣wiec膮ca w pilocie nie 艣wieci ci膮g艂ym 艣wiat艂em, tylko "mruga" z cz臋stotliwo艣ci膮 od 35 do 40 kHz.
Odbiornik sk艂ada si臋 z filtru podczerwieni, za kt贸rym umieszczona jest fotodioda przekszta艂caj膮ca padaj膮ce promieniowanie 艣wietlne na sygna艂 elektryczny. Po odpowiednim wzmocnieniu we wzmacniaczu wej艣ciowym, sygna艂 jest przepuszczony przez filtr pasmowo-przepustowy zestrojony na cz臋stotliwo艣膰 no艣n膮 (35. ..40 kHz), a nast臋pnie podawany na detektor z prze-rzutnikiem Schmitta. Wzmacniacz i filtr obj臋ty jest p臋tl膮 automatycznej regulacji wzmocnienia, dzi臋ki czemu ustalane jest odpowiednie wzmocnienie uk艂adu w zale偶no艣ci od nat臋偶enia sygna艂u promieniowania podczerwonego i poziomu zak艂贸ce艅. Na wyj艣ciu detektora uzyskuje si臋 ci膮g bit贸w odpowiadaj膮cy kodowi naci艣ni臋tego klawisza.
Zazwyczaj odbiornik jest wykonany jako pojedynczy element, zamkni臋ty w tr贸j ko艅c贸wkowej obudowie wykonanej z tworzywa przepuszczaj膮cego promienie podczerwone. Aby u艂atwi膰 wsp贸艂prac臋
16T
T-oko艂o 550^8
-
1 1
Koniec
Rys. 1
odbiornika z mikrokontrolerem, sygna艂 wyj艣ciowy odbiornika ma posta膰 zanegowan膮. Oznacza to, 偶e w stanie spoczynkowym na wyj艣ciu odbiornika wyst臋puje poziom wysoki, a pojawienie si臋 sygna艂u (impulsu) powoduje wyst臋powanie na nim poziomu niskiego (zbocza opadaj膮cego).
Sposoby kodowania danych
Ka偶de naci艣ni臋cie klawisza w pilocie powoduje wys艂anie paczki impuls贸w identyfikuj膮cej urz膮dzenie, do kt贸rego dany sygna艂 jest przeznaczony (adres) oraz kod naci艣ni臋tego klawisza. Ta paczka impuls贸w sk艂ada si臋 z kilkunastu lub kilkudziesi臋ciu bit贸w zakodowanych w spos贸b umo偶liwiaj膮cy jak najlepsze odr贸偶nienie bitu o warto艣ci "0" od "1" - czasami uzupe艂nionych obity startu, stopu i sygna艂 "rozbiegowy" poprzedzaj膮cy transmisj臋. Bity startu maj膮 na celu odpowiednie wys ter贸w ani e uk艂adu ARW w odbiorniku i dostosowanie wzmocnienia do bie偶膮cego poziomu sygna艂u IR. Ponad 95% stosowanych obecnie pilot贸w wykorzystuje jeden z trzech sposob贸w kodowania przesy艂anych informacji. Przedstawiamy je poni偶ej.
Space Coding
Pierwszy z nich, zwany space coding, polega na modyfikacji czasu przerwy pomi臋dzy przesy艂anymi impulsami (rys. 1). W tym systemie czas trwania impulsu jest sta艂y - nazwijmy go T. Je艣li dwa kolejne impulsy przedzielone s膮 przerw膮 o czasie trwania r贸wnym T, to przesy艂any bit ma warto艣膰 "0", a je艣li przerwa ta wynosi 3T, to bit ma warto艣膰 "1" Ostatni bit zako艅czony jest impulsem o czasie trwania T. Warto艣膰 czasu T wynosi od 400 do 600 |_is. Transmisja jednego rozkazu poprzedzona jest
Elektronika Praktyczna 12/2002
95
KURS
List. 1.
// kwarc 7.37 2MHZ
#define IR_PORT PORTB
#define IR_BIT PBO PBO to wej艣cie z odbiornika
unsigned int get_ir(unsigned char std) // parametr std okre艣la standard (0-4)
unsigned char i, T2, T4, time, tmp = 0 ;
unsigned int code;
code = 0;
timerO_source(CK2 56) ; // prescaler timera 0 na ok. 32us
timerO_start() ; // uruchom timer
loop_until_bit_is_set(IR_PORT-2, IR_BIT); // pomi艅 nag艂贸wek
if(std < 2) // standard REC80 lub NEC80
timerO_start();
While (bit_is_set(IR_PORT-2, IR_BIT))
T2 = inp(TCNTO) ;
if (T2 >= 140) // maksymalny czas oczekiwania ok. 5ms
return 0; // powr贸t z b艂臋dem
// Pomiar czasu T
timerO_start(); // Uruchom timer
loop_until_bit_is_set(IR_PORT-2 , IR_BIT);
T2 = inp(TCNTO); // Odczytaj czas
T2 = T2 * 2; // Punkt podzia艂u (T lub 3T)
T4 = T2 * 2; // maksymalny czas oczekiwania na bit(4T)
// p臋tla dekodowania kolejnych bit贸w
// 48 bit贸w dla REC80, 32 dla NEC8
for (i = 0; i < ((std == 0) ? 48 : 32); i++)
timerO_start (); // uruchom timer
While(l)
time = inp(TCNTO);
if (time > T4)
return 0; // przekroczenie czasu bitu
// pomiar czasu trwania "0"
if (bit_is_clear(IR_PORT-2 , IR_BIT)) // logika ujemna!
tmp <<= 1; // przesu艅 wynik o 1 bit
if (time >= T2) // je艣li czas wi臋kszy od 2T
tmp++; // bit jest jedynk膮 (ustaw LSB)
break; // wyjd藕 z p臋tli
// zapami臋tanie wyniku
if (std == 0) r // REC80
Hi // starszy bajt
code = (Ul6)tmp << 8 ;
if( i == 47) // m艂odszy bajt
code += tmp;
else // NEC80
if( i == 15) // bardziej znacz膮cy bajt
code = (Ul6)tmp << 8 ;
if( i == 31) // mniej znacz膮cy bajt
code += tmp;
// zaczekaj na nast臋pne "0"
loop_until_bit_is_set(IR_PORT - 2, IR_BIT);
return (code); // koniec odbioru standardu SONY
else if(std < 4) // Standard SONY
if (inp(TCNTO) <= 60) // Nag艂贸wek ?
return 0; // Nie - wr贸膰 z b艂臋dem
// p臋tla dekodowania kolejnych bit贸w
// 12 lub 15 bit贸w do odczytania
for(i=0; i < ((std == 3) ? 11 14 ; i + + )
tmp = 0x01;
// poczekaj na pocz膮tek impulsu
While (bit_is_set(IR_PORT-2 IR_BIT))
T2 = inp (TCNT0) ;
if (T2 >= 140) // przekroczenie czasu bitu ?
return 0; // b艂膮d
timerO_start() ; // pomiar czasu trwania impulsu
nag艂贸wkiem sk艂adaj膮cym si臋 z sygna艂u trwaj膮cego 16T oraz przerwy trwaj膮cej 4T. Standard ten stosowany jest g艂贸wnie przez firm臋 Panasonic, ale jest bardzo ch臋tnie wykorzystywany przez wiele innych firm. Istniej膮 dwie odmiany tego standardu: REC80, w kt贸rym przesy艂ane jest 48 bit贸w danych, oraz NEC80, w kt贸rym przesy艂a si臋 32 bity.
Pulse Coding
Kolejny spos贸b kodowania - zwany pulse coding - polega na modyfikacji szeroko艣ci emitowanego impulsu (rys. 2). Ten system kodowania jest stosowany g艂贸wnie przez firm臋 Sony. W tym sposobie ,,1" logicznej przyporz膮dkowano impuls trwaj膮cy 1,2 ms, a ,,0" logicznemu impuls o czasie 0,6 ms. Poszczeg贸lne impulsy przedzielone s膮 przerw膮 o sta艂ej d艂ugo艣ci - 0,6 ms. Nag艂贸wek transmisji sk艂ada si臋 z impulsu trwaj膮cego 2,4 ms i przerwy o d艂ugo艣ci 0,6 ms. Standard ten wyst臋puje r贸wnie偶 w dw贸ch odmianach, w kt贸rych przesy艂ane jest 12 lub 15 bit贸w kodu, pocz膮wszy od bitu najmniej znacz膮cego. Transmisja jednego kodu w tym standardzie trwa ok. 45 ms.
Shift Coding
Trzeci spos贸b kodowania sygna艂贸w zdalnego sterowania - RC-5 - jest stosowany przez firm臋 Philips. Po naci艣ni臋ciu klawisza pilota jest generowane 14-bitowe s艂owo kodowe zawieraj膮ce 2 bity startowe, bit 艣wiadcz膮cy o przytrzymaniu klawisza, 5-bitowy adres urz膮dzenia i 6-bitowy kod przesy艂anej komendy (rys. 3). Czas trwania jednego bitu wynosi 1,778 ms, a transmisji kompletnego s艂owa kodowego 25ms. Odst臋p mi臋dzy kolejnymi s艂owami kodu wynosi 114 ms. Bity ramki s膮 kodowane bifazowo (inaczej Shift Coding) - jedynka logiczna sk艂ada si臋 kolejno z przerwy i z impulsu o czasach trwania r贸wnych po艂owie czasu trwania bitu, a zero logiczne odwrotnie -czyli z impulsu oraz przerwy. Inaczej m贸wi膮c, przy ,,1" mamy narastaj膮ce zbocze sygna艂u w po艂owie czasu trwania bitu, a przy ,,0" - opadaj膮ce.
Dekodowanie
Sygna艂 wyj艣ciowy z odbiornika podczerwieni naj艂atwiej jest dekodowa膰 za pomoc膮 odpowiednio oprogramowanego mikrokontrolera. Wystarczy wprowadzi膰 ten sygna艂 bezpo艣rednio na dowoln膮 lini臋 portu I/O skonfigurowanego jako wej艣cie, a ca艂膮 ,,robot臋" wykona zawarty w mikrokontrolerze program. Czasami dobrze jest, gdy linia wej艣ciowa mikrokontrolera ma mo偶liwo艣膰 wygenerowania przerwania w celu powiadomienia mikrokontrolera o pocz膮tku transmisji, lecz nie jest to niezb臋dne. Do dekodowania sygna艂贸w ka偶dego z opisanych standard贸w jest potrzebna inna procedura, wiec musimy z g贸ry okre艣li膰, jaki sygna艂 b臋dziemy dekodowa膰 lub umie艣ci膰 w pami臋ci mikrokontrolera wszystkie procedury dekodowania i w艂膮czy膰 w program steruj膮cy prac膮 mikrokontrolera procedu-
96
Elektronika Praktyczna 12/2002
KURS
List. 1 - cd. While (bit_is_clear(IR_P0RT-2, IR_BIT))
T2 = inp(TCNTO); if (T2 >= 140) return 0; // przekroczenie czasu bitu // b艂膮d
if (inp(TCNTO) >= 25) code += ( (Ul6)tmp << i // czas impulsu wi臋kszy ni偶 lms ? ); // ustaw odpowiedni bit wyniku
return (code); } // koniec odbioru
else // std=4 czyli RC-5;
{ for(i=0; i<13; i++) // pozosta艂o 13 bit贸w
if(bit_is_clear(IR_PORT-2, T2 = 0; else T2 = 1; IR_BIT) ) // aktualnie jest 1 // aktualnie jest 0
timerO_start(); While(1) // uruchom timer
time=inp(TCNTO); if(time > 0x21) // przekroczenie czasu bitu ? return 0; // b艂膮d // narastaj膮ce zbocze w po艂owie bitu ? if(bit_is_clear(IR_PORT-2, IR_BIT) && (T2==l) )
tmp <<= 1; tmp++; break; // tak - przesu艅 wynik // i zapisz "1"
// opadaj膮ce zbocze w po艂owie bitu ? else if(bit_is_set(IR_PORT-2, IR_BIT) && (T2==0) )
tmp <<= 1; break; // tak - przesu艅 wynik // i zapisz "0"
// zapami臋tanie adresu urz膮dzenia if(i == 6) { // zapisz adres i code = (tmp & 0x5f) << 8; // obetnij troggle bit tmp=0; // zeruj bajt odbioru
timerO_start() ; While(1) // op贸藕nienie o 3/4 czasu bitu
time=inp(TCNTO); if(time > 0x21) break;
code += tmp; return(code); } } // zapami臋tanie kodu komendy // koniec odbioru standardu RC-5
r臋 rozpoznania standardu. Do odmierzania okre艣lonych odcink贸w czasu najlepiej jest wykorzysta膰 sprz臋towy timer. Na list. 1 przedstawiono uniwersaln膮 funkcj臋 dekodowania sygna艂贸w poszczeg贸lnych standard贸w we wszystkich pi臋ciu wersjach napisan膮 w j臋zyku C, przeznaczon膮 dla mikro kontroler 贸w AVR (do skompilowania bezp艂atnym kompilatorem AVR-GCC). Jako parametr nale偶y poda膰 numer standardu (0=REC80, l=NEC80, 2=SONY15, 3=SONY12, 4=RC5). Funkcja zwraca dwubajtowy kod naci艣ni臋tego klawisza lub warto艣膰 0, je艣li wyst膮pi艂 b艂膮d odbioru. Dla niekt贸rych standard贸w jest zwracany tylko fragment s艂owa kodowego, lecz wystarcza to do jednoznacznej identyfikacji naci艣ni臋tego klawisza.
Na pocz膮tku inicjowane jest kilka zmiennych oraz uruchamiany timer. Konfiguracja preskalera powoduje, 偶e timer zwi臋ksza swoj膮 zawarto艣膰 co oko-
艂o 3 2 us. Nast臋pnie trzeba odczeka膰 do ko艅ca czasu trwania impulsu. Po pojawieniu si臋 na wej艣ciu poziomu wysokiego, w zale偶no艣ci od wybranego standardu, sterowanie zostaje przekazane do jednego z trzech fragment贸w.
Je艣li zmienna std jest r贸wna 0 lub 1, to b臋dziemy dekodowa膰 sygna艂 w formacie Space. Najpierw omijana jest pierwsza przerwa i jest sprawdzane, czy nie jest zbyt d艂uga. Nast臋pnie zerowany
4T
2T
jest licznik timera i rozpoczyna si臋 pomiar czasu trwania impulsu. Zmierzona warto艣膰 czasu po pomno偶eniu przez 2 s艂u偶y do rozr贸偶nienia ,,0" trwaj膮cego T i ,,1" trwaj膮cej 3T. Na 4T zostaje ustawiony maksymalny czas trwania przerwy pomi臋dzy impulsami. Nast臋pnie rozpoczyna si臋 p臋tla odbioru 32 lub 48 bit贸w danych, w kt贸rej mierzony jest czas trwania przerwy pomi臋dzy impulsami. Je艣li jest on kr贸tszy od 2T, to odczytany bit ma warto艣膰 ,,0", je艣li pomi臋dzy 2T a 4T, to odczytany bit ma warto艣膰 ,,1", a je艣li powy偶ej 4T, to generowany jest b艂膮d i funkcja get_ir zwraca warto艣膰 0. Nast臋pnie sprawdzany jest numer odbieranego bitu i w odpowiednim momencie, w zale偶no艣ci od tego, czy odbieramy 32, czy 48 bit贸w, kolejno do bardziej i mniej znacz膮cego bajtu zmiennej code wpisywana jest zawarto艣膰 tymczasowego rejestru odbioru. Nast臋pnie odczekuje si臋 do ko艅ca czasu trwania impulsu i rozpoczyna si臋 kolejny obieg p臋tli. Po odczytaniu wszystkich bit贸w zwracana jest warto艣膰 zmiennej code i funkcja ko艅czy dzia艂anie.
Je艣li zmienna std jest r贸wna 2 lub 3, to b臋dziemy dekodowa膰 sygna艂y w formacie Pulse. Najpierw sprawdzane jest, czy pierwszy impuls trwa艂 d艂u偶ej ni偶 2 milisekundy, co oznacza, 偶e by艂 to prawid艂owy nag艂贸wek. Nast臋pnie rozpoczyna si臋 p臋tla odbioru kolejnych 11 lub 14 bit贸w. W zmiennej tmp ustawiamy ,,1" na najmniej znacz膮cej pozycji. B臋dzie ona s艂u偶y艂a jako maska numeru odbieranego bitu. Nast臋pnie nale偶y odczeka膰 do ko艅ca trwania przerwy, sprawdzaj膮c przy okazji, czy nie by艂a zbyt d艂uga. Nast臋pnie zerowany jest timer i rozpoczyna si臋 pomiar czasu trwania impulsu. Je艣li zmierzony czas jest d艂u偶szy od 1 ms, to odebrany bit jest r贸wny ,,1", je艣li kr贸tszy, to ,,0". Przekroczenie czasu 4,5 ms traktowane jest jako b艂膮d odbioru. Je艣li bit by艂 jedynk膮, to na ,,1" ustawiany jest r贸wnie偶 odpowiedni bit zmiennej code. Na tym ko艅czy si臋 jeden obieg p臋tli i rozpoczynamy odbi贸r kolejnego bitu. Po odczytaniu wszystkich bit贸w zwracana jest warto艣膰 zmiennej code i funkcja ko艅czy dzia艂anie.
Je艣li zmienna std jest r贸wna 4, to b臋dziemy dekodowa膰 sygna艂 w formacie Shift, czyli RC-5. Poniewa偶 pierwszy impuls zosta艂 pomini臋ty na pocz膮tku, dekodowanych jest 13 pozosta艂ych bit贸w. Na pocz膮tku p臋tli sprawdzany jest i zapami臋tywany w zmiennej T2 aktualny stan wej艣cia. Nast臋pnie zerowany
T = oko艂o 600jis
Nag艂贸wek!
4------------'r
0 Koniec
Rys. 2
Elektronika Praktyczna 12/2002
97
KURS
List. 2.
unsigned char ir_actiye(void)
unsigned char i = 50; // liczba kolejnych odczyt贸w stanu wej 艣cia
While (i-- != 0)
if (bit_is_clear(IR_PORT-2, IR BIT)) // testuj wej艣cie
return 1; // jest stan niski
return 0; // no nie tym razem
1/ gdzie艣 w g艂贸wnej p臋tli programu
if (ir_activ~e () ) // je艣li stwierdzono aktywno艣膰
if (code = get_ir(standard) ) ; // odbierz kod i je艣li nie ma b艂臋du
} // tu jest reakcja na pilota
List. 3.
SIGHAL(SIG_ INTERRUPTO)
unsigned int temp; temp = get_ir(standard) i f (t emp)
1 code = temp; // ir_flag = 1; // } // code - globalna zmienna zawieraj膮ca kod klawisza ir_flag - flaga prawid艂owego odebrania transmisji zerowana po obs艂u偶eniu wyniku w programie g艂贸wnym
// if gdzie艣 w (ir_flag) g艂贸wnej p臋tli // programu je艣li stwierdzono aktywno艣膰
// tu jest reakcja na pilota
List. 4.
unsigned char recognize_std(void)
unsigned char stand = 0; unsigned char i=4;
While(l) {
if (ir_active()
// numer standardu // licznik pr贸b
// je艣li wykryto sygna艂
if (get_ir(stand)) // je艣li nie ma b艂臋du
return (stand); // znaleziono w艂a艣ciwy standard -> koniec else {
if(--i == 0) // zmniej sz licznik pr贸b i je艣li =0
{
stand = (stand+1) % 5; // sprawd藕 kolejny standard i=4; // ustaw od nowa licznik pr贸b
jest timer i rozpoczyna si臋 odbi贸r jednego bitu. Je艣li w czasie 1 ms nast膮pi zmiana poziomu na wej艣ciu odbiornika, to w zale偶no艣ci od poprzedniego stanu mamy narastaj膮ce zbocze w po艂owie bitu, kt贸re oznacza, 偶e bit ma warto艣膰 ,,0" lub opadaj膮ce zbocze oznaczaj膮ce bit r贸wny ,,1". Zapisujemy go do najmniej znacz膮cego bitu zmiennej tmp i przesuwamy j膮 w lewo. Nast臋pnie odczekujemy oko艂o 0,5 czasu trwania jednego bitu, aby mo偶na by艂o okre艣li膰 kierunek kolejnego zbocza wyst臋puj膮cego w po艂owie bitu. Po odebraniu sz贸stego bitu, do bardziej znacz膮cego bajtu zmiennej code zapisywany jest kod urz膮dzenia (po usuni臋ciu bitu 艣wiadcz膮cego o przytrzymaniu
klawisza, kt贸ry zmienia warto艣膰 po ka偶dym naci艣ni臋ciu klawisza) oraz zerowana jest zmienna tmp. Po odebraniu ostatniego bitu, w mniej znacz膮cym bajcie wyniku zapami臋tywany jest kod komendy i funkcja zwraca warto艣膰 zmiennej code, ko艅cz膮c dzia艂anie.
Adres
Funkcje pomocnicze
Funkcje get_ir nale偶y wywo艂a膰 w momencie wykrycia ,,0" logicznego na wej艣ciu z odbiornika, czyli w momencie pojawienia si臋 pierwszego impulsu transmisji. Pami臋tajmy, 偶e sygna艂 wyj艣ciowy odbiornika jest zanegowany, wi臋c obecno艣ci sygna艂u odpowiada poziom niski na wej艣ciu mikrokontrole-ra. Mo偶na wykry膰 go dwoma sposobami:
- poprzez okresowe sprawdzanie stanu linii procesora,
- z wykorzystaniem do tego celu przerwa艅.
Pierwszy spos贸b - pokazany na list. 2 - jest 艂atwiejszy, lecz zawsze zu偶ywa nieco czasu procesora. Funkcja ir_active zwraca warto艣膰 ,,0", je艣li nie wykryto sygna艂u IR lub 1 w momencie wykrycia poziomu niskiego (czyli impulsu). Drugi spos贸b - pokazany na list. 3 - nie ma wady poprzedniego rozwi膮zania, lecz r贸wnie偶 nie jest idealny. A to dlatego, 偶e je艣li odbiornik zostanie o艣wietlony silnym modulowanym 艣wiat艂em (np. bezpo艣rednio 艣wietl贸wk膮 kompaktow膮), to na jego wyj艣ciu mo偶e pojawi膰 si臋 seria przypadkowych impuls贸w generuj膮cych kolejne przerwania i pr贸by odczytu sygna艂u pilota, co spowoduje jeszcze wi臋ksze spowolnienie programu g艂贸wnego. Niestety, nic nie jest idealne i czasami trzeba wybiera膰 mniejsze z艂o.
Na list. 4 pokazano spos贸b automatycznego rozpoznania standardu, w kt贸rym nadaje pilot. Wystarczy, 偶e po uruchomieniu tej procedury kilkakrotnie naci艣niemy dowolny klawisz pilota, a jego standard zostanie zwr贸cony jako wynik funkcji recognize_std (mo偶na go p贸藕niej zapisa膰 np. w EEPROM-ie). Wykorzystujemy go r贸wnie偶 jako parametr wywo艂ania funkcji get_ir.
Na CD-EP12/2OO2B oraz w Inter-necie (www.ep.com.pl) publikujemy te same procedury (get_ir oraz recog-nize_std) napisane w asemblerze procesora AVR, z przeznaczeniem na ma艂e procesory bez wewn臋trznego RAM-u (np. AT90S1200 lub ATtiny). Procedura rozpoznania standardu zapisuje jego numer w wewn臋trznej pami臋ci EEPROM procesora dla wykorzystania w programie g艂贸wnym.
Mam nadziej臋, 偶e przedstawiony opis i przyk艂ady u艂atwi膮 Czytelnikom u偶ycie pilota we w艂asnych projektach i pomog膮 w napisaniu swojej wersji procedur dekoduj膮cych przy wykorzystaniu do tego celu mikrokontrolera innego ni偶 AVR. Romuald Bia艂y
Polecenie
1,778ms 1 1
S - Bit startu T - Troggle bit
Rys. 3
98
Elektronika Praktyczna 12/2002
IV ztritfzJcu z pyfanianii Czyfeiniic脫H'
zatrarfyc/i w pakiecie BID臉, w kolejnym
odcinku kursu zdecydowa艂em si臋 wr贸ci膰 do opisu jego u偶ytkowania. W artykule zawarto informacje na temat edycji programu, tworzenia zbioru projektu, symulacji wykonania programu oraz tworzenia zbior贸w wynikowych w formatach BIN i HEX> Trzeba jednak podkre艣li膰, 偶e obj臋to艣膰 tego artyku艂u nie pozwala na wyczerpuj膮ce om贸wienie wszystkich aspekt贸w u偶ytkowania
pakietu.
Jak pos艂ugiwa膰 si臋 kompilatorem C, cz臋艣膰 1
Raisonance RIDE
Pakiet RIDE firmy Raisonance jest zbiorem program贸w narz臋dziowych umo偶liwiaj膮cych prsygotowywanie i uruchamianie program贸w w j臋zyku C i w asemblerze dla mikro kontrole r贸w ST62 firmy STM, XA firmy Philips oraz innych mikrokontroler贸w nale偶膮cych do rodziny 8051. Ze wzgl臋du na planowane nast臋pne odcinki kursu, pomin臋 zagadnienia dotycz膮ce 艣rodowiska programowania ST62 i XA - zajmiemy si臋 wy艂膮cznie mikrokontrolerem 8051. Nie oznacza to jednak, 偶e nie mo偶na tego opisu wykorzysta膰 tak偶e dla innych mikrokontroler贸w.
RIDE (Raisonance Iniegraied Deve-lopmeni Environmeni} zawiera nast臋puj膮ce programy przeznaczone dla mikrokontroler贸w z rodziny 8051:
- kompilator j臋zyka asembler MA-51 fjest to makroasembler),
- kompilator j臋zyka C RC-51,
- linker LX-51,
- symulator wsp贸艂pracuj膮cy ze sprz臋towym emulatorem,
- edytor przystosowany do sk艂adni j臋zyk贸w asembler oraz C (wyr贸偶niane s膮 s艂owa kluczowe obu j臋zyk贸w).
Wersja demonstracyjna pakietu jest na p艂ycie CD do艂膮czonej do EP6/2002 oraz w Internecie, na przyk艂ad na stronie producenta pod adresem: hiip;//www .raisonance .cornfdown-load.php.
Rys, 2
Instalacja i uruchomienie
Je艣li masz oryginaln膮 p艂yt臋 od producenta, pakiet zainstaluje si臋 prawie bez Twojego udzia艂u. Program instalacyjny znajduj膮cy si臋 na p艂ycie CD uruchamia si臋 po umieszczeniu jej w nap臋dzie. Je艣li natomiast pobra艂e艣 wersj臋 instalacyjn膮 z Internetu, poprzez wybranie Siari i Uruchom mo偶esz rozpocz膮膰 instalacj臋.
Po zainstalowaniu pakiet gotowy jest do pracy - bez 偶adnych dodatkowych ustawie艅 czy restartowania komputera. Ustaw rozdzielczo艣膰 ekranu 800x600 lub wi臋ksz膮 - 艂atwiej b臋dzie odczyta膰 wy艣wietlane informacje. Po pierwszym uruchomieniu zobaczysz tylko menu g艂贸wne pakietu. Poniewa偶 wcze艣niej nie otwiera艂e艣 偶adnych plik贸w, to na ekranie b臋dzie wy艂膮cznie otwarte okno programu i szare t艂o.
Menu g艂贸wne
Om贸wmy poszczeg贸lne, najbardziej dla nas u偶yteczne pozycje menu (rys. 1). Nie jest moim celem pisanie instrukcji obs艂ugi programu - tym zaj膮艂 si臋 ju偶 producent. Chc臋 natomiast poda膰 tyle informacji, ile jest koniecznych, aby zacz膮膰 prac臋 z programem.
Do rozpocz臋cia pisania pierwszego programu w j臋zyku C wystarczy wybra膰 w menu File>New (rys. 2). Nast臋pnie nale偶y wybra膰 C Files i edytor gotowy jest do pracy. Mo偶esz zawsze tak post臋powa膰 w przypadku kr贸tkich program贸w, ale nie jest to zbyt dobry spos贸b.
Dlaczego? Menu zawiera pozycj臋 Opiions. Po jej wyborze mo偶na ustawi膰 wa偶ne dla programu 藕r贸d艂owego oraz urz膮dzenia docelowego paramet-
ry. W przypadku, gdy nie jest aktywny 偶aden z projekt贸w (opisz臋 to w dalszej cz臋艣ci artyku艂u), ustawione parametry s膮 domy艣lnymi dla wszystkich tworzonych program贸w i wszystkich urz膮dze艅, w kt贸rych mikrokont-roler ma wsp贸艂pracowa膰. Jest to na przyk艂ad typ mikrokontrolera i opcje jego rozszerze艅. Rzadko zdarza si臋, 偶e s膮 one identyczne dla r贸偶nych urz膮dze艅. Je艣li jednak wykorzystujesz tylko jeden typ mikrokontrolera od okre艣lonego producenta oraz tw贸j program nie zawiera modu艂贸w w asemblerze, to mo偶esz wybra膰 w艂a艣nie ten prosty spos贸b. Nie polecam jednak tego. Znacznie bardziej efektywne jest pos艂ugiwanie si臋 projektami.
Ka偶dy tworzony projekt jest obiektem, dla kt贸rego indywidualnie mo偶esz okre艣li膰 w艂a艣ciwo艣ci i sk艂adowe. P贸藕niej otwarcie zapami臋tanego projektu powoduje przywr贸cenie cech 艣rodowiska, dla kt贸rego napisana zosta艂a dana aplikacja - parametry domy艣lne zostan膮 zast膮pione w艂a艣ciwymi dla stosowanego przez Ciebie sprz臋tu.
Aby utworzy膰 projekt, wybierz z menu Projeci>New. Pojawi si臋 okienko (rys. 3) z pytaniem o folder, w kt贸rym na dysku ma by膰 zapami臋tany tw贸j projekt i jak ma si臋 nazywa膰. Folder b臋dzie zawiera艂 r贸wnie偶 zbiory wynikowe typu HEX, PIN lub w obu tych formatach jednocze艣nie. Ja przechowuj臋 wszystkie projekty w jednym katalogu. U艂atwia to ich archiwizacj臋, a selekcj膮 zbior贸w zaj-
Rys. 3
Elektronika Praktyczna 12/2002
99
KURS
Rys, 4
rnuje si臋 RIDE. System Windows oferuje mo偶liwo艣膰 tworzenia nazw opisowych, wi臋c nale偶y z nich korzysta膰. Nazywaj swoje pliki tak, aby艣 m贸g艂 po jakim艣 czasie je rozpozna膰. Tu jedna wa艣na uwaga - plik projektu nie mo艣e mie膰 takiej samej nazwy, jak kt贸ry艣 z jego sk艂adnik贸w. To oznacza, 艣e je艣li tw贸j projekt ma nazw臋 Koniroler-LCD, to 艣aden z modu艂贸w nie mo艣e mie膰 tej samej nazwy. Nie powiniene艣 tworzy膰 plik贸w Koniroler-LCD. c albo Koniroler-LCD. a5l. Wyt艂umaczenie jest bardzo proste. Kompilator nie przetwarza ca艂ego kodu 藕r贸d艂owego, lecz poszczeg贸lne jego modu艂y jeden po drugim. Na pocz膮tku na przyk艂ad mo艣e by膰 kompilowany napisany w j臋zyku C, potem wasemblerze. Na podstawie plik贸w -nazwijmy je przej艣ciowych - linker tworzy plik w formacie HEX flub BIN albo te艣 oba jednocze艣nie) przeznaczony do zapisania w pami臋ci mikro-kontrolera. I tu docieramy do sedna sprawy. Kompilator generuj膮c pliki przej艣ciowe, u艣ywa tej samej nazwy, kt贸r膮 ma zbi贸r 藕r贸d艂owy, zmieniaj膮c jedynie rozszerzenia. Czyli plikiem wynikowym kompilacji Koniroler-LCD. a5l b臋dzie Koniroler-LCD. obj. 艁atwo jest wi臋c wysnu膰 wniosek, 艣e nowo tworzone pliki b臋d膮 zast臋powa艂y te starsze. By膰 mo艣e ta cecha kompilatora RC-51 zosta艂a usuni臋ta w najnowszej wersji pakietu, jednak jest to stosowane r贸wnie艣 przez innych producent贸w program贸w tego rodzaju.
Ustawianie opcji zbioru projektu
Bo otwarciu okna nowego projektu wpisz jego nazw臋 i wybierz model mikrokontrolera. Ten wyb贸r jest wyborem rodzaju kompilatora, a nie nazw rejestr贸w. Te zdefiniujesz p贸藕niej, do艂膮czaj膮c zbiory definicji oraz
Rys, 5
Rys, 贸
okre艣laj膮c w艂a艣ciwo艣ci sprz臋tu. Zak艂adam, 艣e utworzy艂e艣 ju艣 nowy projekt i 艣e dotyczy on mikrokontrolera z rdzeniem podobnym do 80C51. Zatwierd藕 wyb贸r za pomoc膮 OK. Teraz ustaw opcje 艣rodowiska, dla kt贸rego pisany jest program. Wybierz Op-iion>Targei (rys* 4).
Nast臋pnie zaznacz Harvard achi-ieciure i wybierz typ mikrokontrolera. Za艂贸艣my, 艣e do pierwszego projektu b臋dziesz u艣ywa艂 AT89S8252 - wybierz wi臋c na li艣cie 8052. Nie jest to dok艂adnie ten sam mikrokontroler, ale bardzo do niego podobny. Zatwierd藕 wyb贸r za pomoc膮 OK.
Teraz kolejna grupa ustawie艅, z kt贸rych typowo potrzebujesz ustawi膰 tylko kilka. Wybierz Opiions>Projeci. Raczej nie musisz nic zmienia膰 w Enviionrneni i Diiecioiies. S膮 tam nastawy dotycz膮ce do艂膮czanych zbior贸w bibliotek oraz kolor贸w, czcionek i sposob贸w w jaki wy艣wietla komunikaty kompilator. Najbli艣sz膮 ,,ga艂臋zi膮" drzewa Opiions, kt贸r膮 powiniene艣 si臋 zainteresowa膰 jest RC51. Zawiera ona wiele istotnych informacji dotycz膮cych kompilatora:
- je艣li nie u艣ywasz liczb zmienno-przecinkowych, zaznacz No floaiing poini, w przeciwnym przypadku proponuj臋 IEEE siandard (rys* 5),
- wybierz zak艂adk臋 Memory Model (rys* 6) i zdecyduj, jakiego modelu pami臋ci b臋dzie u艣ywa艂 mikrokontroler (typowo wystarczy Smali: tego rodzaju nastawy u艣ywam dla AT89S8252, gdy planowany rozmiar programu nie "wykracza poza 8kB pami臋ci Flash) - zaznacz opcje specjalne dla AT89S8252 (jest to Daal DPTR ATMEL),
- wybierz zak艂adk臋 Opiimizer (rys* 7) i zaznacz, czy kod wynikowy ma by膰 optymalny pod wzgl臋dem rozmiaru (Size), czy szybko艣ci wykonywania programu (Speed - zazwyczaj j膮 zaznaczam) - nastaw臋 Opiimizer level mo艣esz pomin膮膰,
- pozosta艂e parametry nastaw kompilatora dla RC51 nie s膮 wa艣ne. Brzejd藕 zatem do grupy LX5l i wybierz Linker - jest tu wiele bardzo wa艣nych nastaw (rys* 8).
Wi臋kszo艣膰 programator贸w korzysta ze zbior贸w wynikowych w formacie Intel HEX, tak wi臋c zostaw za-
Rys, 7
Rys, 8
znaczon膮 opcj臋 Generaie an Iniel Hex Eile. Je艣li tw贸j programator wymaga pliku w formacie binarnym, zaznacz r贸wnie艣 Generaie a Binary Eile (BIN). Wpisz rozmiar pami臋ci RAM size, Iniiialized RAM size -dla AT89S8252 jest to 256 bajt贸w. W dolnej cz臋艣ci okienka masz jeszcze mo艣liwo艣膰 okre艣lenia od jakiego adresu w pami臋ci Flash czy RAM umieszczony zostanie kod wynikowy i zmienne (zazwyczaj nie potrzebujesz jednak zmienia膰 tych nastaw).
Na tym mo艣esz zako艅czy膰 ustawianie opcji projektu - wybierz OK. Jak zd膮艣y艂e艣 si臋 zapewne zorientowa膰, w poszczeg贸lnych zak艂adkach znajduje si臋 jeszcze wiele innych u艣ytecznych opcji, jednak do napisania pierwszej aplikacji w j臋zyku C dla AT89S8252 wystarczy to, co ju艣 pozna艂e艣.
Do艂膮czanie plik贸w 藕r贸d艂owych do projektu
Wcze艣niej utworzy艂e艣 plik projektu. Jest on jednak pusty. Opr贸cz w艂a艣ciwo艣ci nie zawiera s膮dnych sk艂adowych. Teraz postaram si臋 pokaza膰, jak do projektu doda膰 ju艣 istniej膮ce oraz nowe pliki 藕r贸d艂owe.
W celu utworzenia nowego pliku nale艣y wybra膰 Eile>New (rys* 9). W zale艣no艣ci od rodzaju tworzonego pliku wybierz odpowiedni typ. Za艂贸艣my, 艣e tym pierwszym tworzonym
艢艢'RIDE - c:\ftrt\ridc\prO0ramat
100
Elektronika Praktyczna 12/2002
KURS
Q*bug iiptu
j *
Lm
i fipHI E


_J
AVd no-de 5ciurtt-yApgiK玱n AIE*ln5

f*nr-fL-mnrtiilji
Rys, 10
przez Ciebie zbiorem b臋dzie plik. 藕r贸d艂owy programu w j臋zyku C. Wybierz wi臋c C Files. Na ekranie pojawi si臋 okienko edytora, w kt贸rym b臋dziesz m贸g艂 wpisa膰 program. Na wszelki wypadek zapami臋taj utworzony zbi贸r, wybieraj膮c File>Save as. Pami臋taj, aby zapisywany na dysku zbi贸r 藕r贸d艂owy mia艂 inn膮 nazw臋 ni偶 projekt. Zapisywane pliki typu C Files maj膮 domy艣lnie nadawane rozszerzenie *.c. Zapami臋tuj膮c plik na dys-
ku, nie musisz podawa膰 rozszerzenia - zostanie one dodane automatycznie. Inaczej jest ze zbiorami nag艂贸wkowymi typu ,,h". Po nazwie musisz dopisa膰 rozszerzenie. Ja zapami臋ta艂em sw贸j zbi贸r projektu pod nazw膮 pro-giarnatoT-ISF, a modu艂 w j臋zyku C pod nazw膮 programator-C-modu艂.
Utworzenie nowego pliku i zapami臋tanie na dysku nie powoduje dodania go do projektu! Aby doda膰 zbi贸r, musisz pos艂u偶y膰 si臋 poleceniem Projeci>Add node Source/Appli-caiion (rys* 10 - skr贸t klawiszowy Alt + Insert).
Nazwa dodanego w ten spos贸b pliku powinna pojawi膰 si臋 na li艣cie w okienku Projeci znajduj膮cym si臋 zazwyczaj na dole ekranu (rys* 11).
Podobnie post臋puj z innymi zbiorami projektu. Ja do艂膮czy艂em jeszcze programaior-asm-modul.a5l. Do艂膮czaj tylko pliki 藕r贸d艂owe niewymienione
Rys, 11
Rys, 12
Rys, 13
po dyrektywie #include w tek艣cie programu - te do艂膮cz膮 si臋 automatycznie przy pierwszym u偶yciu.
Kompilowanie projektu
Aby skompilowa膰 tak utworzony projekt, zapami臋taj wszystkie jego pliki, wybieraj膮c File>Save all. Nast臋pnie z menu Projeci wybierz Make all (rys* 12) lub pos艂u偶 si臋 przyciskiem umieszczonym w menu (rys* 13).
Je艣li napisa艂e艣 program poprawnie i kompilacja przebieg艂a bez b艂臋d贸w, na dysku powstan膮 pliki wynikowe o nazwie identycznej z nazw膮 projektu i rozszerzeniem *.HEX (lub/i ^.BIl-Tj. Winnych przypadkach na dole ekranu wy艣wietli si臋 informacja o b艂臋dach. Jacek Bogusz, AVT jacek.bogusz@ep.com.pl
Elektronika Praktyczna 12/2002
101
!KA 2002
Stycze艅 Luty Marzec Kwiecie艅 Lipiec Sierpie艅 Wrzesie艅 Pa藕dziernik

Wyszukiwarka

Podobne podstrony:
elektronika praktyczna 2002 2
elektronika praktyczna 2000
elektronika praktyczna 1998
elektronika praktyczna 2000 2
Elektronika Praktyczna W g艂o艣nikowym 偶ywiole Cz 04
elektronika praktyczna 09 1997
elektronika praktyczna 08 1997
Elektronika Praktyczna 1997 02
elektronika praktyczna 1998 2
elektronika praktyczna 10 1997
elektronika praktyczna 2003 2
elektronika praktyczna 2001
elektronika praktyczna 02 1997

wi臋cej podobnych podstron