43_47.PDF
(
163 KB
)
Pobierz
Domowy aparat telefoniczny z kartą chipową, część 2 - AVT-5081
Domowy aparat telefoniczny z kartą chipową
P R O J E K T Y
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Ò
telefonicznych.
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
telekomunikacyjnych
dostawcÛw wymagaj¹cych
urz¹dzeÒ homologowanych.
Programowanie karty
Po zmontowaniu dyskrymina-
tora naleøy zaprogramowaÊ jego
parametry, ktÛre zaleø¹ od typu
centrali telefonicznej i†uøywanego
aparatu telefonicznego.
StrukturÍ menu dyskryminato-
ra przedstawiono na
rys. 6
. Po-
niøej zamieszczamy opis sposobu
pos³ugiwania siÍ nim.
1. Wprowadzenie w†tryb pro-
gramowania
Po podniesieniu s³uchawki na
wyúwietlaczu pojawi siÍ napis
ìW³Ûø kartÍî. Przy pierwszym
uruchomieniu w³oøenie jakiejkol-
wiek karty spowoduje wyúwietle-
nie napisu ìB³¹d kartyî, a†rozmo-
wy nie bÍd¹ moøliwe, gdyø dys-
kryminator akceptuje tylko karty,
ktÛre sam zaprogramowa³.
Wszystkie parametry programo-
wane s¹ za pomoc¹ klawiatury
aparatu telefonicznego wyposaøo-
nego w†klawiaturÍ z†wybieraniem
tonowym. Aby wybierane w†cza-
sie programowania cyfry nie po-
wodowa³y przypadkowego wybie-
rania numeru, z†ktÛrym centrala
telefoniczna zestawia³aby po³¹cze-
nie, dostÍp do funkcji programo-
wania zabezpieczony jest kodem
dostÍpu. Kod ten zabezpiecza jed-
noczeúnie, aby wybieranie nume-
ru nie zmienia³o parametrÛw dys-
kryminatora.
Aby wejúÊ w†tryb programowa-
nia, naleøy nacisn¹Ê kolejno kla-
wisze ì*##**2*î. Dodatkowe za-
bezpieczenie polega na tym, øe
ca³a sekwencja musi byÊ wprowa-
dzona z†przerwami miÍdzy kolej-
nymi 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 od-
czekaÊ, aø centrala wystawi syg-
na³ zajÍtoúci.
Procedura odbioru i†sprawdze-
nia kodu dostÍpu jest przedstawio-
na 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 wszyst-
kich znakÛw, procedura zwraca
wartoúÊ rÛwn¹ ì1î. Jeøeli
Elektronika Praktyczna 11/2002
43
Domowy aparat telefoniczny z kartą chipową
List. 2. Procedura odbioru i weryfikacji kodu dostępu do opcji
programowania
boolean Programowanie()
{
ì3.Zmiana czasuî. Napisy s¹ wy-
úwietlane kolejno w†odstÍpach
dwusekundowych. 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 po-
przedniego trybu (informacyjnego),
naciskaj¹c gwiazdkÍ ì*î.
4. Zmiana has³a dostÍpu
Aby zmieniÊ has³o dostÍpu,
naleøy w†trybie zmiany parame-
trÛw nacisn¹Ê klawisz ì1î, w†wy-
niku czego na wyúwietlaczu po-
jawi siÍ napis ìZmiana has³a ?î.
Zatwierdzamy wybÛr, naciskaj¹c
klawisz ì#î.
Przed wprowadzeniem nowego
has³a zostaniemy poproszeni o†po-
nowne wprowadzenie starego. Pro-
cedura 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 na-
stÍpuje przez naciúniÍcie klawisza
ì#î. Na wyúwietlaczu pojawi siÍ
napis ìHas³o zapisaneî, a†nastÍp-
nie dyskryminator roz³¹czy po³¹-
czenie i†po chwili nast¹pi ponow-
ne 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 para-
metrÛw nie mamy jeszcze takiej
karty, wiÍc rozmowy wyjúciowe
nadal s¹ zablokowane.
boolean prog_ok;
byte prog_time, prog_licznik;
byte prog_buf[6];
prog_time=0; //zeruj licznik czasu
prog_licznik=0; //zeruj licznik cyfr
While (prog_time<250) //w ciągu 1s odbieraj dtmf
{
prog_time++;
//zwiększ czas oczekiwania na podanie kodu
delay_ms(4);
//czekaj 4ms
get_dtmf();
//sprawdz czy jest kod DTMF
IF (dtmf_ok)
//jesli byl dtmf
{
prog_time=0; //zeruj licznik czasu
prog_buf[prog_licznik]=dtmf; //zapisuj odebrane dtmf do bufora
prog_licznik++; //zwieksz licznik zapisu do bufora
}
IF (prog_licznik>5) //jeśli odebrano 6 cyfr
{
prog_ok=1; //to sprawdź czy były właściwe
IF (prog_buf[0]!=12) prog_ok=0; //kod= “*##**2*”
IF (prog_buf[1]!=12) prog_ok=0; //jeśli kod prawidłowy,
IF (prog_buf[2]!=11) prog_ok=0; //to procedura zwraca “1”
IF (prog_buf[3]!=11) prog_ok=0; //jeśli kod nieprawidłowy, to
IF (prog_buf[4]!=2) prog_ok=0; // zwraca “0”
IF (prog_buf[5]!=11) prog_ok=0;
Return (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 pro-
gram g³Ûwny otrzymuje jednoznacz-
n¹ informacjÍ o†wprowadzonej sek-
wencji znakÛw i†na tej podstawie
podejmuje dalsze dzia³ania.
Przy braku aktywnej karty dys-
kryminator umoøliwia tylko wy-
bieranie po³¹czeÒ alarmowych za-
czynaj¹cych siÍ od ì99î oraz
wybranie kodu dostÍpu, zaczyna-
j¹cego siÍ gwiazdk¹ ì*î. PrÛba
wybrania innego numeru niø do-
zwolonego koÒczy siÍ roz³¹cze-
niem po³¹czenia. RÛwnieø wybie-
ranie w†systemie impulsowym po-
woduje przerwanie po³¹czenia.
Po podaniu prawid³owego kodu
dostÍpu dyskryminator znajduje siÍ
w†trybie programowania, jednak
aby moøna by³o zmieniaÊ jakiekol-
wiek parametry dyskryminatora, to
naleøy jeszcze wprowadziÊ has³o.
Dodatkowe zabezpieczenie has³em
jest podyktowane tym, øe kod
wprowadzenia w†tryb programo-
wania jest kodem sta³ym, przypi-
sanym do tego uk³adu dy-
skryminatora i†nie moøe byÊ zmie-
niony. 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 algo-
rytm 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Ûw-
nania brane s¹ tylko cztery ostat-
nie. W†przypadku b³Ídnie wpisanej
cyfry kodu nie trzeba siÍ roz³¹czaÊ,
wystarczy tylko podaÊ ponownie
prawid³owe cztery cyfry kodu i†za-
twierdziÊ klawiszem ì#î. Popra-
wnoúÊ podanego has³a jest spraw-
dzana 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 za-
bezpieczeÒ 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 dyskry-
minator uzna, øe s³uchawka zo-
sta³a od³oøona.
WybÛr odpowiednich parametrÛw
jest dokonywany za pomoc¹ klawi-
szy 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 da-
na opcja. Na wyúwietlaczu pojawiaÊ
siÍ wiec bÍd¹ napisy: ì1.Zmiana
has³aî, ì2.Zapis impulsÛwî,
Rys. 6. Struktura menu dyskrymina−
tora
44
Elektronika Praktyczna 11/2002
Domowy aparat telefoniczny z kartą chipową
Jeúli zapomnimy has³o, moøli-
we jest skasowanie zapisanego,
lecz wymaga to ingerencji w†uk³a-
dzie dyskryminatora. Jeøeli chce-
my przywrÛciÊ pocz¹tkowe has³o,
naleøy zewrzeÊ zworkÍ JP2 i†pod-
nieúÊ s³uchawkÍ. WÛwczas na
wyúwietlaczu pojawi siÍ napis:
ìKasowanie has³aî, a†nastÍpnie:
ìNowe has³o=1234î. Po tej czyn-
noúci has³em dostÍpu bÍdzie se-
kwencja cyfr ì1234î.
5. Zapis limitu impulsÛw na
karcie
Jeøeli chcemy zapisaÊ na kar-
cie limit impulsÛw, to w†trybie
zmiany parametrÛw naciskamy
klawisz ì2î i†potwierdzamy kla-
wiszem ì#î. Na wyúwietlaczu po-
jawi siÍ napis: ìW³Ûø kartÍî i†pro-
gram czeka na w³oøenie karty. Po
w³oøeniu pojawi siÍ napis: ìPodaj
limitî. Z†klawiatury wprowadzamy
ø¹dany limit impulsÛw. Maksy-
malna wartoúÊ wynosi 999 impul-
sÛw. RÛwnieø wartoúÊ limitu moø-
na wpisywaÊ kilkakrotnie, do mo-
mentu naciúniÍcia klawisza ì#î,
ktÛry spowoduje zapisanie liczby
impulsÛw na kartÍ. Wraz zapi-
saniem limitu impulsÛw, na kar-
cie zostaje zapisany czterocyfrowy
kod dostÍpu. Zapis ten jest
konieczny, gdyø na tej podstawie
dyskryminator sprawdza, czy od-
czytany limit impulsÛw jest pra-
wid³owy. Przy odczycie karty naj-
pierw porÛwnywany jest kod za-
pisany na tej karcie z†kodem
zawartym w†pamiÍci EEPROM
procesora. Jeúli kody s¹ identycz-
ne, 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 cza-
su 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 na-
stÍpnie centrala oczekuje na tony
kodu DTMF okreúlaj¹ce funkcje
dodatkowe. Przerwa ta, w†zaleønoú-
ci od centrali oraz aparatu telefo-
nicznego, moøe trwaÊ od 80 ms do
800 ms. Jeúli aparat generowa³by
czas przerwy rÛwny 200 ms, a†dys-
kryminator by³by ustawiony tak, øe
wykrywa od³oøenie s³uchawki po
100 ms, to kaøde naciúniÍcie kla-
wisza ìFlashî powodowa³oby roz-
³¹czenie po³¹czenia. Aby temu za-
pobiec, czas wykrywania przerwy
musi byÊ d³uøszy od przerwy
generowanej przez aparat. Dyskry-
minator umoøliwia regulacjÍ wy-
krywanej 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 po-
nownie wystawia sygna³ zg³oszenia
po czasie przerwy na przyk³ad 600
ms, to bardzo ³atwo moøna wyko-
naÊ rozmowÍ bez karty.
Nie opiszemy, jak to jest moø-
liwe, aby nie u³atwiaÊ osobom
postronnym z³amania tego zabez-
pieczenia.
Ø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Ê przy-
cisk 3 i†potwierdziÊ klawiszem
ì#î. Na wyúwietlaczu pojawi siÍ
napis: ìCzas pauzy=160msî. Kla-
wiszami 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 zatwierdza-
my klawiszem ì#î. Jeøeli zrezyg-
nujemy ze zmiany czasu, to na-
ciskamy klawisz ì*î i†zmiana nie
zostanie zapisana w†pamiÍci pro-
cesora.
Czy wprowadzony czas ma war-
toúÊ 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 prze-
rwie 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 kartą chipową
przerwa jest zbyt krÛtka, øeby na-
wi¹zaÊ nowe po³¹czenie.
Sprawdzanie czasu reakcji cen-
trali na d³ugoúÊ przerwy tuø po
podniesieniu s³uchawki nie poz-
wala odrÛøniÊ, czy generowany
sygna³ pochodzi z†trwaj¹cego po-
³¹czenia, czy centrala zakoÒczy³a
poprzednie i†wystawi³a nowy syg-
na³, gdyø obydwa s¹ jednakowe.
Jeøeli wybraliúmy cyfrÍ ì9î, to
na wyúwietlaczu zostaje wyúwietlo-
na ta cyfra. WÛwczas naciskamy
przycisk ìFlashî i obserwujemy, czy
na wyúwietlaczu zajdzie jakaú zmia-
na. Jeøeli na wyúwietlaczu nic siÍ
nie zmieni³o, oznacza to, øe usta-
wiony 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 wpro-
wadzenia opcji dodatkowej, na przy-
k³ad konferencji z†dwoma osobami.
W†przypadku braku reakcji dys-
kryminatora na przycisk ìFlashî,
naleøy jeszcze sprawdziÊ, czy za-
programowany czas nie jest zbyt
d³ugi. W†tym celu naleøy wprowa-
dziÊ 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Ê apa-
rat z†mechanicznym przyciskiem
roz³¹czaj¹cym rozmowÍ. Pozwoli
to na precyzyjne zajmowanie
i†zwalnianie linii telefonicznej.
PrÛby naleøy wykonaÊ kilkakrot-
nie, sprawdzaj¹c, czy po przerwie
powoduj¹cej wystawienie przez
centralÍ nowego sygna³u dyskrymi-
nator 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³u-
chawki w†menu ìZmiana czasuî.
Powyøsz¹ procedurÍ doboru
czasu przerwy na linii dla centrali
telefonicznej oraz wykrywanego
przez dyskryminator naleøy wyko-
naÊ kilkakrotnie, aø do uzyskania
jednakowej reakcji centrali i†dys-
kryminatora, gdyø tylko wtedy jest
absolutna pewnoúÊ, øe øadna roz-
mowa wyjúciowa nie zostanie prze-
prowadzona bez uøycia karty z†do-
stÍpnym limitem impulsÛw.
RÛwnie waøne jak od³oøenie
s³uchawki, jest wykrycie wybiera-
nia numeru w†trybie impulso-
wym, gdyø prze³¹czenie aparatu
w†tryb wybierania impulsowego
umoøliwia³by dowolne wybieranie
numerÛw. Czasy przerwy na linii
telefonicznej spowodowane wy-
bieraniem impulsowym s¹ znacz-
nie krÛtsze od przerwy spowodo-
wanej naciúniÍciem klawisza
ìFlashî i†dyskryminator nie re-
agowa³by na nie. Aby temu za-
pobiec, procesor nieustannie kon-
troluje, czy w†linii p³ynie pr¹d.
Kontrola jest wykonywana
w†obs³udze przerwania od Timera
T1. Jej procedurÍ zamieszczono na
list. 3
. Przerwanie jest generowane
co 10 ms. W†przypadku wykrycia
rozwartej linii zwiÍkszana jest war-
toúÊ licznika ìprzerwaî. Po po-
nownym 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 przerwa-
nie po³¹czenia, a†nastÍpnie zero-
wanie procesora.
Wykrywanie od³oøenia s³uchaw-
ki jest przeprowadzane inaczej:
przy kaødym przerwaniu zwiÍksza-
na jest wartoúÊ komÛrki
ìlinia_timeî. Jeúli przekroczy war-
toúÊ zapisan¹ w†komÛrce
linia_ti-
me_buf
, procesor zostanie wyzero-
wany, gdyø uzna, øe s³uchawka
zosta³a od³oøona. ZawartoúÊ komÛr-
ki
linia_time_buf
jest rÛwna zapro-
gramowanej wartoúci, po ktÛrej
procesor wykrywa od³oøenie s³u-
chawki. WartoúÊ ta jest programo-
wana po wybraniu opcji ìZmiana
czasuî. WartoúÊ komÛrki
linia_time
jest zwiÍkszana przy kaødym prze-
rwaniu, ale przed poleceniem do-
dawania znajduje siÍ polecenie
sprawdzaj¹ce, czy w†linii telefo-
nicznej p³ynie pr¹d. Jeúli tak jest,
nastÍpuje jej zerowanie, wiÍc jeúli
s³uchawka jest podniesiona, war-
toúÊ 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 prze-
rwaniu. Gdy zostanie osi¹gniÍta
wartoúÊ wiÍksza od zaprogramowa-
nej, 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Í cyk-
licznie napisy dotycz¹ce funkcji
realizowanych w†zaleønoúci od na-
ciúniÍtego klawisza.
List. 3. Procedura obsługi przerwania od timera T1
//**************************************************************************
// Obsługa przerwania od T1
//**************************************************************************
#INT_TIMER1
void wave_timer()
{
byte i;
disable_interrupts(global); //wyłącz przerwania
bit_clear(pir1,tmr1if); //zeruj flagę przerwania od t1
set_timer1(timer1_set); // ładuj T1 na 10ms
//--------------------------------------------
menu_i++;
if(menu_i>200)
{
//potrzebne do animacji napisów przy obsłudze menu
menu_i=0;
//zmienia się co 2 sekundy
menu_ok=1;
menu_time++;
if(menu_time>2) menu_time=0;
}
//--------------------------------------------
if(!input(linia)) przerwa++;
//jeśli przerwa w linii, to zwiększaj
//licznik czasu przerwy
if(input(linia))
{
Obs³uga
Dyskryminator bez waønej kar-
ty (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.
linia_time=0;
//po zwarciu linii sprawdź, czy czas przerwy
if((przerwa>1)&&(przerwa<=5))
//wynosił od 20...50ms, jeśli tak,to
{
bit_set(portb,0);
//8870 w tryb pwrdown
bit_clear(trisc,2);
bit_set(portc,2);
//rozlacz 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)
reset_cpu();
//jesli linia rozwarta >niz dozwolony czas,
enable_interrupts(global);
}
46
Elektronika Praktyczna 11/2002
//powoduje, że w trybie wyboru wyświetlana pomoc
// to reset procesora
Domowy aparat telefoniczny z kartą chipową
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 im-
pulsÛw, to po podniesieniu s³uchaw-
ki i†w³oøeniu karty zostanie wy-
úwietlony limit impulsÛw w†forma-
cie ìLimit= 0imp.î i†tak jak w†przy-
padku 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Í poja-
wia³y na wyúwietlaczu od jego
prawej strony i†po wybraniu kolej-
nej bÍd¹ przesuwane o†jedn¹ pozy-
cjÍ w†lewo. Jeúli liczba wybranych
cyfr przekroczy szesnaúcie, czyli
maksymaln¹ pojemnoúÊ wyúwietla-
cza, to cyfry wybierane w†pierwszej
kolejnoúci zostan¹ przesuniÍte poza
obszar wyúwietlania wyúwietlacza.
Wybrany numer bÍdzie widocz-
ny do czasu nawi¹zania po³¹czenia.
Po podniesieniu s³uchawki przez
wywo³ywan¹ osobÍ centrala telefo-
niczna wyúle do nas impuls zali-
czaj¹cy. Impuls ten zostanie odebra-
ny przez uk³ad FX631, a†informacja
o†tym zostanie przekazana do pro-
cesora. Po odebraniu pierwszego
impulsu na wyúwietlaczu pojawi siÍ
limit dostÍpnych impulsÛw pomniej-
szony o†jeden. Ta informacja bÍdzie
wyúwietlana przez ca³y czas rozmo-
wy, lecz niestety z†coraz mniejszym
limitem impulsÛw. Gdy limit im-
pulsÛw osi¹gnie wartoúÊ ì0î, roz-
mowa bÍdzie jeszcze moøliwa do
czasu odebrania kolejnego impulsu
teletaksy. Po tym impulsie rozmowa
zostanie przerwana. Jak moøna za-
uwaøyÊ, przy takim zliczaniu
impulsÛw jeden impuls zostanie
ìzmarnowanyî, poniewaø po rozpo-
czÍ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 przerwa-
na, a†przecieø mieliúmy jeszcze je-
den 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Ê øad-
nej rozmowy. Jeøeli w†trakcie pro-
wadzonej rozmowy karta zostanie
wyci¹gniÍta z†czytnika, to rozmowa
zostanie przerwana.
W†czasie trwania po³¹czenia
przychodz¹cego naleøy unikaÊ na-
ciskania klawiszy, gdyø dyskrymi-
nator nie rozrÛønia rozmowy przy-
chodz¹cej i†wychodz¹cej. W†trak-
cie takiego po³¹czenia na wy-
úwietlaczu jest napis: ìW³Ûø kar-
tÍî, tak jak przy po³¹czeniu wy-
chodz¹cym. Dlatego naciúniÍcie
dowolnego klawisza spowoduje
krÛtk¹ przerwÍ w†obwodzie apa-
ratu. Nie spowoduje to jednak
przerwania po³¹czenia, gdyø przy
po³¹czeniu przychodz¹cym cent-
rala roz³¹cza po³¹czenie po 90
sekundach po od³oøeniu s³uchaw-
ki przez abonenta wywo³ywanego.
Krzysztof P³awsiuk, AVT
krzysztof.plawsiuk@ep.com.pl
Wzory p³ytek drukowanych w for-
macie 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
Plik z chomika:
kendzior21
Inne pliki z tego folderu:
1.PDF
(299 KB)
101_104.PDF
(117 KB)
31_34.PDF
(339 KB)
21_24.PDF
(298 KB)
66_70.PDF
(351 KB)
Inne foldery tego chomika:
01.02
02.02
03.02
04.02
05.02
Zgłoś jeśli
naruszono regulamin