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�ONTROLERÓ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�łimu* 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 �ns. 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�i) , 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^�l^ 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�jr
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
�e
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�C, 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 �c 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 �iany 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�wodują
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 �e 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 �raz 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�C do +55�C
- 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.�J V.�J 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 �Qx-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�C
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�rglowicy/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�C, 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�C,
/ 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�C 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�C), 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�C 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 �xL2 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�n | 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�fldS�ultJuml 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ńCoolRISC�816
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�C. 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
�Prbjekł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�C dla grota i 650�C dla wydmuchiwanego powietrza. Temperaturę 350�C 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 �J
_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-�L "�-~ 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"T"�T!���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�C, 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�C, 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�C, 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�C do 1300�C (-58�Fdo 2372�F) dokładność ą3�C 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
lf�0-7�95
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- (s�4) ;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- (s�4) ;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�C), 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-
�r*
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�on 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