02-2005_028-032.pdf

(651 KB) Pobierz
ep_02_028-032.indd
Programowy dekoder CLIP
P R O J E K T Y
Programowy dekoder
CLIP (FSK), część 1
AVT-590
W artykule prezentujemy układ
wyświetlający numer abonenta
dzwoniącego (CLIP - Calling Line
Identification Presentation).
W przeciwieństwie do poprzednio
opisywanych urządzeń, nie wymaga
żadnego specjalizowanego układu
scalonego.
Rekomendacje:
możliwość odczytu numeru
abonenta dzwoniącego jest bardzo
cenna. Umożliwia użytkownikowi
telefonu chociażby uniknięcia
niechcianych rozmów. Dla
elektroników budujących wszelkiego
rodzaju układy „telefoniczne”
funkcja CLIP jest bezcenna, bo
pozwala budować urządzenia o
ogromnych możliwościach, często
przewyższających możliwości urządzeń
fabrycznych. Mogą to być wszelkiego
rodzaju rejestratory rozmów
telefonicznych, taryfikatory itp.
Usługa prezentacji numeru dzwo-
niącego jest standardem w sieciach
komórkowych i systemie ISDN. Abo-
nenci analogowi także mogą z niej
skorzystać pod warunkiem, że przy-
łączeni są do centrali cyfrowej. Ko-
rzystanie z usługi wymaga zwykle jej
zamówienia w Biurze Obsługi Klien-
ta operatora telekomunikacyjnego. W
przypadku linii analogowych do prze-
syłania informacji CLIP stosuje się
dwie podstawowe metody. Pierwsza
polega na wysłaniu numeru dzwonią-
cego za pomocą typowych sygnałów
DTMF. Druga – znacznie częściej sto-
sowana (jak mnie poinformowano, do-
minujący na rynku polskim operator
korzysta tylko z tej metody) – wyko-
rzystuje do tego celu system modu-
lacji V.23 (FSK). W Elektronice Prak-
tycznej znalazł się już opis dekodera
CLIP pracującego w systemie V.23.
Jednak użyty w nim specjalizowany
układ scalony nie jest tani, a przede
wszystkim – nie jest łatwo dostępny.
To samo dotyczy innych dekoderów
CLIP i demodulatorów FSK.
Poniżej prezentuję projekt progra-
mowego dekodera CLIP FSK, który
po dzwonku pokazuje na wyświetla-
czu LCD numer abonenta dzwonią-
cego. Artykuł zawiera szczegółowy
opis przebiegów FSK i przykład ich
programowego dekodowania za po-
mocą prostego mikrokontrolera AVR
(90S2313). Eliminuje to konieczność
stosowania sprzętowego dekodera, co
pozwala obniżyć koszt urządzenia o
ok. 10 USD (nie wspominając o unik-
nięciu trudności zdobycia takich ko-
ści). Układ stanowi także przejaw ak-
tualnej tendencji: w dobie rosnących
pojemności pamięci i możliwości mi-
krokontrolerów oraz spadku ich cen
Rys. 1. Zasada przesyłania sygnału CLIP. a) napięcie w linii podczas prze-
syłania sygnału CLIP, b) sposób kodowania bitów, c) pakiet transmisji CLIP,
d) ramka przesyłania bajtu 00111010b
28
Elektronika Praktyczna 2/2005
27822282.009.png 27822282.010.png
Programowy dekoder CLIP
Vref
+
-
T2: 00000001 -> czas i data
L2: 00001000 -> 8 bajtów na
czas i datę
V2:
00110000 -> ‘0’
00110101 -> ‘5’
00110001 -> ‘1’
00110010 -> ‘2’
00110001 -> ‘1’
00110011 -> ‘3’
00110100 -> ‘4’
00110010 -> ‘2’
T3: 00000010 -> numer abo-
nenta
L3: 00001010 -> 10 bajtów
na numer (10 cyfr)
V3:
00110000 -> ‘0’
00110110 -> ‘6’
00110000 -> ‘0’
00110000 -> ‘0’
00110001 -> ‘1’
00110010 -> ‘2’
00110011 -> ‘3’
00110100 -> ‘4’
00110101 -> ‘5’
00110110 -> ‘6’
CHECKSUM: 11001000
Linia�tel.
uP
LCD
detektor
dzwonka
Rysunek�2.�Schemat�blokowy�dekodera.
Rys. 2. Schemat blokowy dekodera
dąży się do ograniczenia stosowania
dekoderów sprzętowych. Jeszcze kilka
lat temu do RC5 itp. stosowano np.
SAA3049, dziś takie rozwiązanie jest
co najmniej archaiczne.
Rys. 1d przedstawia przykładową
ramkę przy przesyłaniu bajtu o war-
tości 00111010b (58 dec).
Znaczenie kolejnych grup bajtów
bloku MESSAGE (wiadomość) jest na-
stępujące:
- T1 – rodzaj danych. W przypadku
przesyłania sygnału identyfikacji
numeru dzwoniącego bajt ten ma
wartość: 10000000,
- L1 – liczba wszystkich bajtów
wiadomości z wyjątkiem T1, L1
i CHECKSUM. Wartość zależy od
długości numeru abonenta dzwo-
niącego,
- T2 – określenie rodzaju danych:
czas i data. Bajt ten ma stałą war-
tość: 00000001,
- L2 – liczba bajtów kodujących
czas i datę. Bajt ma stałą wartość:
00001000,
- V2 – osiem bajtów, które zawiera-
ją czas i datę zapisane w kodzie
ASCII,
- T3 – określenie rodzaju danych:
numer abonenta. Bajt ten ma stałą
wartość: 00000010,
- L3 – liczba bajtów numeru,
- V3 – numer abonenta w postaci
kolejnych cyfr zapisanych w ko-
dzie ASCII,
- CHECKSUM – suma kontrolna.
Bajt ten zawiera dopełnienie do
dwóch sumy (modulo 2) wszyst-
kich bajtów wiadomości począwszy
od T1 (z wyłączeniem samej sumy
kontrolnej). W przypadku popraw-
nej wiadomości dodanie do siebie
modulo 2 wszystkich jej bajtów
łącznie z sumą kontrolną da w
wyniku zero. Przy dodawaniu prze-
niesienie z najbardziej znaczącego
bitu jest ignorowane (suma ma
być 8-bitowa).
Poniżej przedstawiona jest przy-
kładowa postać bloku MESSAGE jaki
zostanie przesłany gdy abonent o nu-
merze 0600123456 zadzwoni do nas
o godzinie 13:42 dnia 12 maja:
T1: 10000000 -> CLIP
L1: 00010110 -> 22 bajty od
T2 do końca V3
Opis protokołu CLIP V.23
Dane o numerze abonenta dzwo-
niącego wraz z aktualną datą i go-
dziną przesyłane są pomiędzy pierw-
szym, a drugim sygnałem dzwonienia.
Mają one postać sygnału sinusoidal-
nego o amplitudzie 15 mV...560 mV
i składowej stałej równej napięciu
panującemu w linii telefonicznej w
stanie spoczynku (odłożona słuchaw-
ka), które wynosi 40...70 V ( rys. 1a ).
Dane cyfrowe kodowane są z wyko-
rzystaniem modulacji FSK ( Frequency
Shift Keying ). Polega ona na szerego-
wym (asynchronicznym) przesyłaniu
kolejnych bitów informacji z prędko-
ścią 1200 bodów (±1%), przy czym
wartości bitów kodowane są za po-
mocą częstotliwości sygnału. Jedynce
logicznej ( mark ) odpowiada częstotli-
wość 1300 Hz (±1,5%), zaś logiczne-
mu zeru ( space ) – 2100 Hz (±1,5%).
Jest to pokazane na rys. 1b .
Cały pakiet CLIP składa się z
trzech następujących po sobie bloków
pokazanych na rys. 1c . Są to:
- SMMR . Sygnał służący do nastroje-
nia odbiornika. Składa się z ciągu
300 bitów o wartościach zmieniają-
cych się naprzemiennie: 0, 1, 0, ...,
- MARK . Sygnał ten składa się z
ciągu 180 bitów - wszystkie o
wartości 1,
- MESSAGE . Jest to główna część
pakietu niosąca w sobie informacje
m.in. o numerze abonenta dzwo-
niącego. Składa się z sekwencji
bajtów. Bajty przesyłane są, podob-
nie jak w standardzie RS232, w
postaci ramek zawierających 1 bit
startu o wartości 0, 8 bitów infor-
macyjnych oraz 1...10 bitów stopu
o wartości 1. Bity informacyjne
przesyłane są w kolejności od naj-
mniej do najbardziej znaczącego.
Brak jest bitu kontroli parzystości.
Opis układu
Schemat blokowy dekodera znaj-
duje się na rys. 2 . Ogólna zasada
działania układu jest następująca:
sygnał dzwonienia pojawiający się
w linii jest wykrywany przez blok
detektora dzwonka, który utrzymuje
na swoim wyjściu stan aktywny (ni-
ski) przez cały czas trwania sygna-
łu dzwonienia. Nie reaguje on przy
tym na inne przebiegi występujące
w linii. Napięcie z wyjścia detekto-
ra wyzwala proces analizy i deko-
dowania. Po ponad 250 ms pojawia
się sygnał CLIP (rys. 1a). Po „wyłu-
skaniu” sygnału CLIP z linii telefo-
nicznej jest on wzmacniany (wraz
z filtracją pasmową), a następnie za
pomocą komparatora porównywany
z odpowiednio wytworzonym napię-
ciem stałym V ref . Powstały na wyjściu
komparatora przebieg prostokątny (cy-
frowy) ma tę samą częstotliwość co
sygnał wejściowy. Czasy trwania sta-
nów wysokiego i niskiego są (niemal
– o tym w dalszej części) takie same
jak czasy trwania półokresów sygna-
łu CLIP. Otrzymany przebieg cyfro-
wy jest następnie dekodowany przez
mikrokontroler. Na koniec odczytany
numer abonenta oraz aktualna data i
godzina trafiają na wyświetlacz alfa-
numeryczny LCD.
Schemat ideowy układu jest po-
kazany na rys. 3 . Układ składa się
Elektronika Praktyczna 2/2005
29
27822282.011.png 27822282.012.png
Programowy dekoder CLIP
Rys. 3. Schemat elektryczny dekodera
z wyraźnie wyodrębnionych czę-
ści cyfrowej, którą tworzy układ U2
wraz z elementami współpracującymi
z nim, oraz części analogowej two-
rzonej przez poczwórny wzmacniacz
operacyjny U1 i współpracujące z
nim elementy dyskretne. Część cyfro-
wa zasilana jest z prostego zasilacza
zbudowanego na U4. Masa układu
jest rozdzielona na część analogową
i cyfrową. Ścieżki masy na płytce łą-
czą się przy zasilaniu poprzez R100
o wartości 0R (zwora). Zapobiega to
przede wszystkim mieszaniu się prą-
dów analogowych z cyfrowymi, a w
konsekwencji wzmacniania szybkich
impulsów cyfrowych przez układy
analogowe. Opisywany dekoder nie
należy wprawdzie do urządzeń ultra-
-precyzyjnych, ale rozdzielenie mas
jest zawsze właściwym rozwiązaniem,
gdy w układzie współpracują ze sobą
bloki cyfrowe i analogowe.
W spoczynku na wyjściu mostka
M1 panuje napięcie ok. 60 V. Gdy
ktoś do nas dzwoni przychodzący sy-
gnał dzwonienia w postaci przebiegu
prostokątnego o amplitudzie ok. 60 V
trafia na detektor dzwonka, który
tworzą elementy T2, C9, C10, R1...
R20. Kondensator C9 odcina składo-
wą stałą sygnału. Dzielnik R17, R18
zapewnia, że T2 otworzy się dopiero
przy napięciu przekraczającym 22 V,
co zapobiega włączaniu T2 spowo-
dowanemu występowaniem zakłóceń.
W każdej nieparzystej połówce okresu
tranzystor T2 nasyca się i przez re-
zystor R20 rozładowuje C10. Napięcie
na C10 (punkt CALL) spada niemal
do zera, a więc poniżej progu prze-
łączania portów procesora U2. Układ
R20 - C10 zapobiega przedostawaniu
się przez detektor szybkich impulsów
(szpilek), co dodatkowo poprawia ja-
kość jego pracy. Stała czasowa R20,
C10 wynosi ok. 2 ms i jest wystar-
czająco mała aby C10 zdążył się
rozładować w czasie połowy okresu
(20 ms). Podczas parzystych półokre-
sów T2 jest zatkany i C10 ładuje się
przez R19 i R20, jednak stała czaso-
wa wynosi w tym przypadku znacz-
nie więcej niż 20 ms. Dzięki temu
napięcie w punkcie CALL utrzymuje
się w stanie niskim przez cały czas
trwania dzwonka i jeszcze przez ok.
100 ms po jego zakończeniu. Sygnał
dzwonka przedostaje się jednocześnie
poprzez R2 i C1 do części odpowie-
dzialnej za obróbkę sygnału CLIP, ale
jest on w tym przypadku całkowicie
ignorowany przez mikrokontroler.
Co najmniej 250 ms po pierw-
szym dzwonku, w linię wysyłany jest
sygnał CLIP. Przedostaje się on przez
mostek M1 (mimo przeznaczenia do
pracy z przebiegami 50 Hz mostki
doskonale przenoszą sygnały o czę-
stotliwościach kilku kHz). Trafia na-
stępnie przez R2 i C1 na ogranicznik
napięciowy złożony z diod D1, D2.
Diody te mają na celu ogranicze-
nie napięcia podawanego na wejście
wzmacniacza U1A (TL084) podczas
występowania sygnału dzwonienia o
amplitudzie kilkudziesięciu woltów.
W przypadku sygnału CLIP, którego
amplituda nie przekracza 600 mV,
diody te nie maja żadnego znacze-
nia. Kondensator C1 odcina składową
stałą i jednocześnie wraz z rezysto-
rem R3 tworzy prosty filtr górnoprze-
pustowy o częstotliwości granicznej
30
Elektronika Praktyczna 2/2005
27822282.001.png 27822282.002.png
Programowy dekoder CLIP
p.14�U1C�(p.6�U1B)
dołączone jest oprócz telefonu inne
urządzenie jak np. modem ADSL itp.
Układy takie pracują w paśmie po-
nad 20 kHz. W sumie elementy R3-
-C1, R8...C3 oraz R11, R12, C4, C5,
U1C tworzą nieco rozproszony filtr
pasmowy przepuszczający przebiegi
o częstotliwościach 700 Hz...3,5 kHz.
Charakterystyka tego filtru w lewej
części jest niezbyt dobra (łagodne ko-
lano) jednak w tym zastosowaniu nie
ma to żadnego znaczenia.
Z wyjścia filtru niezmieniony sy-
gnał CLIP podawany jest na odwra-
cające wejście komparatora U1B. I
tu ujawnia się sedno zasady dzia-
łania całego dekodera. Dzielnik R9-
-R10 wytwarza napięcie referencyjne
dla komparatora (V ref na rys. 2). Przy
wartościach R9-R10 jak na schema-
cie V ref jest o ok. 100 mV mniejsze
od napięcia występującego na wyjściu
U1D, które z kolei jest równe składo-
wej stałej przebiegu z wyjścia filtru
(bo U1A i U1C dla napięć stałych są
wtórnikami). W związku z tym kom-
parator porównuje ze sobą napięcie
chwilowe wzmocnionego przebiegu
CLIP z napięciem ciut mniejszym (o
100 mV) od jego składowej stałej. Na
wyjściu komparatora występuje prze-
bieg prostokątny dokładnie odzwier-
ciedlający sygnał CLIP. Ilustruje to
szczegółowo rys. 4 przy założeniu, że
napięcie zasilania wynosi 15 V (oczy-
wiście zasada nie zmienia się dla
większych napięć zasilania). Za po-
średnictwem T1 dobrej jakości sygnał
cyfrowy trafia na wejście INT0 mi-
krokontrolera. Kondensator C6 filtruje
napięcie V ref . Rezystor R13 wprowa-
dza niewielką histerezę do charak-
terystyki komparatora, co zapobiega
występowaniu wszelkich szybkozmien-
nych przebiegów na jego wyjściu w
okolicy poziomu przełączania. Choć
ryzyko wystąpienia takich przebiegów
istnieje gdy komparator pracuje z sy-
gnałami o bardzo małej częstotliwości
- a tu tak nie jest, to jednak niewiel-
ka histereza jest bardzo pożądana.
Jak widać z rys. 4 naturalną kon-
sekwencją opisanej zasady wytwarza-
nia przebiegu cyfrowego jest to, że
jego wypełnienie nie wynosi dokład-
nie 50%. Czasy trwania stanów ni-
skiego i wysokiego różnią się o 2*Dt
od połowy okresu sygnału CLIP. Czas
Dt jest czasem, w którym wzmocnio-
ny sygnał CLIP zmienia się od na-
pięcia V ref do swojej składowej stałej.
Podczas dekodowania (więcej w części
„Działanie dekodera”) stany przebiegu
cyfrowego mierzone są z rozdzielczo-
ścią 10 punktów, co w zupełności
wystarcza do poprawnego odróżnienia
od siebie sygnałów kodujących 0 i 1.
Aby dekodowanie przebiegało popraw-
nie czas 2*Dt powinien być mniejszy
od 10% połowy okresu CLIP, czyli od
5% całego okresu. Dzięki temu błąd
pomiaru spowodowany niedoskonało-
ścią metody będzie na poziomie roz-
dzielczości tego pomiaru, a więc nic
nie zaszkodzi. Wynika stąd, że czas
Dt powinien być mniejszy od 2,5%
czasu trwania całego okresu. Stano-
wi to kąt równy 0,025·2·p=0,157.
Sinus w okolicach zera jest funkcją
niemal tożsamościową, a więc war-
tość 100 mV stanowi 0,157 minimal-
nej amplitudy poprawnego sygnału
występującego na wyjściu wzmacnia-
cza U1A. Jest więc ona równa ok.
630 mV. Ponieważ wzmocnienie U1A
wynosi 8, minimalna amplituda po-
prawnie dekodowanego sygnału CLIP
wyniesie ok. 80 mV. Ze względu na
rozrzuty, przyjmuję pesymistycznie
okrągłą wartość 100 mV. Jest to czu-
łość mojego dekodera.
Powyższe rozważanie ozna-
cza, że opisywany dekoder pracuje
z przebiegami CLIP o amplitudzie
100...560 mV. Jak widać z tab. 1 i
rys. 1, zakres amplitud V.23 wynosi
15...560 mV. Ze względu na tak sze-
roki zakres napięć w profesjonalnych
układach tego typu stosuje się układy
ARW (automatycznej regulacji wzmoc-
0,63…4,5V
7,5V�=�Vin/2
7,4V�(p.5�U1B)�=�Vref
wyjœcie�komparatora
p.7�U1B
t
Rys. 4. Zasada wytwarzania przebie-
gu cyfrowego
ok. 700 Hz. Wstępnie odfiltrowuje
on niskoczęstotliwościowe śmieci, jak
na przykład przydźwięk sieciowy. Na-
stępnie sygnał przez kondensator C2
trafia na wzmacniacz nieodwracający
U1A. Jego wejście spolaryzowane jest
napięciem stałym równym połowie
napięcia zasilającego V in , które jest
wytwarzane przez R5, R6 i wtórnik
U1D. Na wejściu U1A pojawia się
sygnał CLIP o składowej stałej rów-
nej V in /2 i amplitudzie 15...560 mV.
Wzmocnienie U1A wyznacza stosu-
nek R7 do R8 i impedancji C3. Dla
przebiegów o częstotliwości 1...2 kHz
wynosi ono ok. 8 razy. Jednocześnie
R8 i C3 określają dolną częstotliwość
graniczną wzmacniacza równą ok.
700 Hz, co dodatkowo eliminuje za-
kłócenia niskoczęstotliwościowe.
Dla napięć stałych U1A jest wtór-
nikiem, więc na jego wyjściu pojawia
się wzmocniony przebieg CLIP o ta-
kiej samej składowej stałej jaką ma
przebieg wejściowy, czyli V in /2. Przy
maksymalnej przewidzianej w spe-
cyfikacji amplitudzie sygnału CLIP
(560 mV) sygnał z wyjścia U1A ma
amplitudę 4,5 V. Ze względu na fakt,
że kostka TL084 zasilana napięciem
pojedynczym nie może pracować z
napięciami wejściowymi (wspólnymi)
mniejszymi niż 3 V, napięcie V in zasi-
lające dekoder musi wynosić co naj-
mniej 15 V. Zastosowanie w miejsce
TL084 nowoczesnego wzmacniacza
Rail-to-Rail na wejściach (i najlepiej
na wyjściach) pozwoliłoby zasilać
układ napięciem od 10 V w górę. Ja
jednak w ramach obniżania kosztów
urządzenia wybrałem TL084.
Z wyjścia U1A sygnał podawany
jest na dolnoprzepustowy filtr Salle-
na-Keya zbudowany na U1C. Jest to
aktywny filtr drugiego rzędu (spadek
charakterystyki –40 dB/dekadę) o gór-
nej częstotliwości granicznej wynoszą-
cej 3,5 kHz. Filtr ten bez tłumienia
przepuszcza sygnał CLIP, za to bar-
dzo mocno tłumi przebiegi o często-
tliwościach przekraczających 20 kHz
– o ponad 30 dB czyli ok. 30 razy.
Umożliwia on pracę dekodera tak-
że wtedy, gdy do linii telefonicznej
Tab. 1. Parametry sygnału dla protokołu V.23
Parametr Wartość
Mark (Logiczne 1) 1300 Hz ±1,5%
Space (Logiczne 0) 2100 Hz ±1,5%
Poziom sygnału mark –40 dBV do –8 dBV (10...398,1 mV RMS)
Poziom sygnału space –40 dBV do –8 dBV (10...398,1 mV RMS)
Różnice poziomów 6 dB max (2 razy)
Poziom sygnałów
niepożądanych
max –20 dB poniżej poziomu sygnału (300 – 3400 Hz)
Prędkość transmisji 1200 baud ±1%
Format danych
Transmisja szeregowa asynchroniczna. 1 bit START,
8 bitów danych, 1...10 bitów STOP.
Bit START 0. Bit STOP 1.
Elektronika Praktyczna 2/2005
31
27822282.003.png 27822282.004.png 27822282.005.png 27822282.006.png 27822282.007.png
Programowy dekoder CLIP
Tab. 1.
// Przerwanie co 26us.
SIGNAL (SIG_OUTPUT_COMPARE1A)
{
// Deklaracje i definicje zmiennych statycz-
nych.
// BitNumber - jedyna zmienna lokalna auto-
matyczna.
BaudCounter++;
return;
}
wraz z wyświetlaczem LCD. Ze wzglę-
du na sposób dekodowania koniecz-
ne było zapewnienie dużej szybkości
pracy procesora, stąd obecność kwar-
cu 10 MHz w obwodzie wytwarzania
przebiegu zegarowego. Poprawny re-
set procesora po włączeniu napięcia
zasilającego (lub ewentualnych szko-
dliwych spadkach tego napięcia) za-
pewnia zewnętrzny układ Brown-out-
-Reset U5 typu DS1813 (lub DS1811).
Zastosowanie w miejsce 90S2313 jego
nowszej wersji ATtiny2313, która w
porównaniu z protoplastą posiada
wewnętrzny układ BOR, uwalnia nas
od konieczności stosowania DS1813.
W takim przypadku podczas progra-
mowania ATtiny2313 należy ustawić
odpowiedni bezpiecznik ( fusebit ).
Arkadiusz Antoniak
arkadiusz.antoniak@wp.pl
if(ClipState==CLIPSTATE_SMMR && cou==0)
{
// Pomiar sredniego czasu trwania impul-
su
// w czasie 128 impulsow kodujacych na-
przemiennie 0 i 1.
// Nadanie wartosci zmiennej Threshold-
Time.
// Na koniec przejscie do stanu CLIPSTA-
TE_MARK
return;
}
// Pomiar dlugosci trwania impulsow (zarow-
no stanow H i L).
// IN - alias dla pinu PD2(INT0).
if(tmp==IN)
{
cou++;
}
else
{
tmp=IN;
LastPulseMem=LastPulseTime;
LastPulseTime=cou;
cou=0;
}
// Tutaj mamy dlugosc ostatniego impulsu w
zmiennej LastPulseTime,
// zas poprzedniego w zmiennej LastPulse-
Mem.
if(ClipState==CLIPSTATE_MESS)
{
if(BaudCounter>304 && cou==0)
{
// Po srodku bitu stopu -
// - oczekiwanie na bit startu na-
stepnego bajtu.
// (304*26us)/833,3us=9,5 (polowa
bitu stopu).
return;
}
if(BaudCounter==304)
{
// Srodek bitu stopu -
// zapamietanie odczytanego bajtu
(CurrentByte)
// w tablicy Table[].
// Jesli odczytano odpowiednio wiele
bajtow -
// - zakonczenie dekodowania.
return;
}
if(BaudCounter>32 && BaudCounter<288)
{
// Bity LSB...MSB
// BitNumber - nr. bitu (0...7)
// Liczby okreslaja momenty
// pod koniec nadawania kolejnych
bitow.
// np. (123*26us)/833,3us=3,8 ->
BitNumber=2
// (bo odrzucamy bit START i numeru-
jemy od 0).
BitNumber=255;
if(BaudCounter==59)
BitNumber=0;
if(BaudCounter==91)
BitNumber=1;
if(BaudCounter==123)
BitNumber=2;
if(BaudCounter==155)
BitNumber=3;
if(BaudCounter==187)
BitNumber=4;
if(BaudCounter==219)
BitNumber=5;
if(BaudCounter==251)
BitNumber=6;
if(BaudCounter==283)
BitNumber=7;
if(BitNumber==255)
return;
// Zapalenie lub wyzerowanie kolej-
nego bitu
// w zmiennej CurrentByte.
if(ClipState==CLIPSTATE_MARK && cou==0)
{
// Oczekiwanie na przyjscie zera (impul-
sy krotsze od ThresholdTime)
// i przejscie do stanu CLIPSTATE_MESS.
return;
}
}
nienia). Jednak w praktyce operatorzy
starają się dostarczać sygnał CLIP o
amplitudzie co najmniej 100 mV ze
względu na duże ryzyko zakłócania
go przy amplitudach rzędu kilkudzie-
sięciu mV. Dlatego projektując dekoder
zdecydowałem się na prosty wzmac-
niacz nieodwracający w miejsce ukła-
du ARW. Kto chce może zwiększyć
czułość dekodera. Najprostszym spo-
sobem będzie zastosowanie w miejsce
TL084 nowoczesnego wzmacniacza z
wejściami i wyjściami typu Rail-to-
-Rail mogącego pracować z napię-
ciami zasilania ponad 20 V i zasilić
dekoder napięciem np. 20 V. Wzmac-
niacze Rail-to-Rail mogą pracować z
napięciami wejściowymi na poziomie
zarówno 0 V jak i V dd . Dlatego sto-
sując taki wzmacniacz można, przy
zasilaniu 20 V, zwiększyć wzmocnie-
nie U1A do ok. 17...18 (pamiętając
o tym, że reaktancja C3 wynosi dla
1 kHz ok. 700 V i jest porównywalna
z rezystancją R8). Zapewni to czułość
ok. 630 mV/18=35 mV. Ewentualnej
niewielkiej korekty wymagać będzie
dzielnik R9-R10 (wystarczy zmiana
R9 na 1...1,2 kV). Nie polecam na-
tomiast zwiększania czułości poprzez
zbliżanie napięcia V ref do połowy na-
pięcia zasilania. Różnica między nimi
powinna zapewnić margines zakłóceń
na poziomie co najmniej 50 mV przy
uwzględnieniu napięcia niezrównowa-
żenia wzmacniacza, które dla kostki
TL084 może wynosić nawet 15 mV.
Oznacza to, że różnica ta powinna
wynosić co najmniej 65 mV. Wartość
100 mV jest tu moim zdaniem opty-
malna. Dla kostek o mniejszym na-
pięciu niezrównoważenia (nowoczesne
wzmacniacze mają je na poziomie
dużo poniżej 1 mV) można pokusić
się o zmniejszenie tej różnicy, ale
nie bardziej niż do 50...60 mV.
Część cyfrowa dekodera jest dość
typowa. Tworzy ją mikrokontroler U2
WYKAZ ELEMENTÓW
Rezystory
R1: 22 k V
R2, R8, R15: 1,2 k V
R3, R11, R12: 33 k V
R4, R5, R6, R10, R19: 100 k V
R7, R14: 10 k V
R9: 1,5 k V
R13: 2,2 M V
R16, R18: 1 k V
R17: 47 k V
R20: 4,7 k V
R100: 0 V (zwora)
PR1: 47 k V trymer stojący
Kondensatory
C1, C6: 10 nF
C2, C4: 2,2 nF
C3: 220 nF
C5: 1 nF
C7, C13, C14, C15, C16: 100 nF
C8, C18: 100 µF/16 V
C9, C10: 470 nF
C11, C12: 22 pF
C17: 100 µF/25 V
Półprzewodniki
U1: TL084
U2: AT90S2313 lub ATtiny2313
U3: LCD 16*2
U4: 78L05
U5: DS1813 lub DS1811
D1, D2: 1N4148
D3: BAT85
T1, T2: BC548B
M1: mostek 1,5 A
Inne
CON1: złącze telefoniczne do
druku
CON2: ARK2
X1: 10 MHz
if(LastPulseTime>(ThresholdTime+1))
CurrentByte|=(1<<BitNumber);
else if(LastPulseTime<(ThresholdTi-
me-1))
CurrentByte&=~(1<<BitNumber);
else
{
if(LastPulseMem>ThresholdTime)
CurrentByte|=(1<<BitNumber);
else
CurrentByte&=~(1<<BitNumber);
}
return;
}
32
Elektronika Praktyczna 2/2005
27822282.008.png
Zgłoś jeśli naruszono regulamin