You are on page 1of 4

Wielokanaowy generator sygnaw programowalnych

P R O J E K T Y

Wielokanaowy generator
sygnaw programowalnych,
cz 2
AVT456

Zasilacz, oscyloskop, generator


oto podstawowe wyposaenie
warsztatu elektronika. Tym
razem prezentujemy interesujcy
projekt programowanego
generatora. Dziki zastosowaniu
procesora sygnaowego autorzy
uzyskali dobre parametry
uytkowe.
Rekomendacje:
ten projekt naley do grupy
takich urzdze, ktre kady
elektronik chce mie. I w tym
przypadku owa ch jest mocno
uzasadniona funkcjonalnoci
przyrzdu. A dodatkowo dochodzi
przyjemno wykonania ukadu
na nowoczesnym ukadzie
procesorze DSP.

PODSTAWOWE PARAMETRY
Dwie pytki drukowane:
ADC 118 x 69 mm
DSP 118 x 69 mm
Zasilanie sieciowe
6 niezalenych wyj (wsplna jest czstotliwo
podstawowa wszystkich przebiegw)
Maksymalna czstotliwo wyjciowa 1 kHz
(1000 prbek na okres)
Generacja przebiegu o programowanym ksztacie
Sterowanie generatora z poziomu aplikacji na PC
Interfejs RS232C do komputera PC (DB9)

Elektronika Praktyczna 7/2005

Komunikacja
pomidzy komputerem
a urzdzeniem

Komputer z urzdzeniem komunikuje si poprzez popularny


interfejs RS232C o dugoci sowa
8 bitw (plus bit startu i stopu).
Schemat kabla poczeniowego pokazany jest na rys. 10.
Poniewa procesor ADSP2181
nie obsuguje standardu UART, dlatego jest on emulowany programowo. Konwersj pomidzy poziomem
sygnaw RS232C i TTL zapewnia
dobrze znany ukad MAX232. Linie
TX oraz RX s odpowiednio doprowadzone do 51 (Flag Out) i 55
(Flag In) nki procesora. Dodatkowo
nki 55 i 52 (/IRQ1) s ze sob
poczone, co zapewnia wywoanie
przerwania przy odbiorze pierwszego
bitu ramki, tak jak to ma miejsce w
popularnych mikrokontrolerach.
Generator ma spor gam moliwych funkcji, ktre wymagaj
odpowiednich nastawie, dlatego
konieczne byo zdeniowanie protokou, w jakim aplikacja bdzie si
komunikowa z urzdzeniem.
Na rys. 11 jest przedstawiony
oglny format stosowanej ramki.

Poszczeglne jej
bajty maj nastpujce znaczenie:

AA bajty synchronizacji ich warto zawsze wynosi


0xAA;
F0F9 nagwek ramki;
D0Dx ewentualne bajty danych
(np. wartoci prbek przebiegu).
CRC16MSB starszy bajt 16bitowej liczby kontrolnej CRC;
CRC16LSB modszy bajt 16bitowej liczby kontrolnej CRC.
To czy bajty D0Dx zostan
nadane i ich liczba jest uzalenione od rodzaju ramki. Typ ramki
(ID) okrela bajt F0. W tab. 1 s
przedstawione moliwe wartoci jakie moe on przybiera oraz co za
tym idzie przeznaczenie ramki. Bajty
F1F9 s rwnie uzalenione od
ID, co zostanie bardziej szczegowo
opisane w dalszej czci artykuu.
Na kocu kadej ramki dodana
jest warto kontrolna CRC. Jest to
liczba 16bitowa liczona wielomianem 0x8005 ze wszystkich bajtw
ramki wykluczajc bajty synchronizacji. Przed wyznaczeniem wartoci
CRC rejestr przesuwny inicjowaTab. 1. Wartoci bajtu ID i przeznaczenie ramki
ID
0x00
0x01
0x02
0x03
0x04

Rys. 10. Schemat kabla poczeniowego

0x05
0x06

Znaczenie
Ramka kontrolna
Ramka z wartociami prbek
Nastawa czstotliwoci generatora
Zmiana napi referencyjnych
Aktywacja lub dezaktywacja poszczeglnych wyj generatora
Parametry funkcji sweep
Zmiana szybkoci transmisji danych

33

Wielokanaowy generator sygnaw programowalnych

Rys. 11. Ramka stosowana do komunikacji pomidzy komputerem i urzdzeniem

ny jest wartoci 0xffff. Urzdzenie


sprawdza poprawno kadej ramki
na podstawie CRC i odsya ramk
zwrotn z informacj o poprawnoci
przyjtych danych. Dalej zosta szczegowo opisany sposb komunikacji.

Ramka kontrolna (ID=0x00)

Ramka ta zostaa przewidziana


do testowania urzdzenia. Poszczeglne bajty ramki przy kierunku
transmisji komputer urzdzenie
maj nastpujce znaczenie:
F0 ID o wartoci 0x00;
F1 identykator funkcji (tab. 2);
F2F8 bajty o wartoci 0x00;
F9 bajt o wartoci 0x55.
Ramka zwrotna z urzdzenia o
poprawnoci danych ma nastpujc posta:
F0 ID o wartoci 0x00;
F1 gdy 0x00 odebrane dane
s poprawne, kada inna warto
oznacza konieczno retransmisji
wczeniej nadanej ramki;
F2F8 bajty o wartoci 0x00;
F9 bajt o wartoci 0x55.
W przypadku wersji programu DSP, urzdzenie wysya ramk
zwrotn z wersj programu w nastpujcej postaci:
F0 ID o wartoci 0x00;
F1 gdy 0x00 odebrane dane
s poprawne, kada inna warto
oznacza konieczno retransmisji
wczeniej nadanej ramki;
F2F7 wersja programu zapisana jako cig znakw ASCII;
F8F9 bajty o wartoci 0x00;
F9 bajt o wartoci 0x55.
Test cza jest wykonywany za
kadym razem gdy nawizywane
jest poczenie. Pozwala to stwierdzi czy urzdzenie jest podczone
do komputera.

Ramka z wartociami prbek


(ID=0x01)

Bajty tej ramki maj znaczenie:


F0 ID o wartoci 0x01;
F1 nr kanau;
F2 nr porzdkowy kanau;
F3 starszy bajt iloci prbek;
F4 modszy bajt iloci prbek;
F5 bajt kontrolny aktywnych
kanaw (bity na pozycjach odpowiadajcych numerom aktywnych
kanaw musz by ustawione);
F6F9 bez znaczenia;
D0Dx wartoci prbek (w
formacie starszymodszy bajt).

34

Dla kadego aktywnego kanau


konieczne jest nadanie ww. ramki
osobno. Numer porzdkowy liczony
jest od zera (podobnie jak nr kanau)
i powinien by inkrementowany przy
wysyaniu wartoci prbek dla kolejnego aktywnego kanau. Rozwizanie
takie zostao przyjte eby jak najlepiej wykorzysta pami procesora.
Wielko i ilo buforw na prbki
jest ustalana dynamiczne w zalenoci od iloci aktywnych wyj generatora oraz liczby prbek na okres.

Nastawa czstotliwoci
generatora (ID=0x02)

Przy realizacji precyzyjnego opnienia w programie gwnym, koniecznego do uzyskania podanej


czstotliwoci generowanego przebiegu, zostay wykorzystane trzy ptle,
ktrych ilo powtrze moe by
programowalna. Rys. 12 przedstawia
algorytm programu gwnego realizowanego przez procesor DSP. Po kadorazowym pobraniu prbek z pamici i przepisaniu ich do rejestrw
przetwornika C/A, konieczne jest zatrzymanie wykonywania programu na
okrelony czas. Funkcj t realizuje
blok opnienia, ktrego algorytm
przedstawia rys. 13. Do kadego z
licznikw mona wpisa maksymaln warto 0x3FFF. Przy kalkulowaniu opnienia naley odj 29 cykli
zegarowych, ktre s potrzebne do
przepisania wartoci prbek z pamici procesora do ukadu C/A. Ramka
o ID 0x02 zawiera informacje ile
razy powinna si wykonywa kada
z omawianych ptli. I tak:
AA bajty synchronizacji ich
warto zawsze wynosi 0xAA;
F0 typ ramki;
F1 starszy bajt licznika ptli
nr 1;
F2 modszy bajt licznika ptli
nr 1;
F3 starszy bajt licznika ptli
nr 2;
F4 modszy bajt licznika ptli
nr 2;

F5 starszy bajt licznika ptli


nr 3;
F6 modszy bajt licznika ptli
nr 3;
F7F9 bez znaczenia;
D0Dx brak.

Zmiana napi referencyjnych


(ID=0x03)

Tak jak ju to byo wczeniej


wspomniane, moliwa jest zmiana napi referencyjnych, poprzez zapisanie
nowych wartoci do rejestrw zatrzaskowych kanaw G i H przetwornika
C/A. Poniej przedstawione jest znaczenie poszczeglnych bajtw ramki.
AA bajty synchronizacji ich
warto zawsze wynosi 0xAA;
F0 typ ramki;
F1 starszy bajt wartoci Vref1;
F2 modszy bajt wartoci Vref1;
F3 starszy bajt wartoci Vref2;
F4 modszy bajt wartoci Vref12;
F5F9 bez znaczenia;
D0Dx brak.
Pamita jednak naley, e zbyt
niskie napicie referencyjne moe

Tab. 2. Wartoci bajtu F1 i funkcje


penione przez ramk o ID = 0x00
Funkcja Znaczenie
0x00

Test cza RS232C

0x01

Zarezerwowane (obecnie nieuywane)

0x02

Wersja programu DSP

0x03

Reset procesora DSP

Rys. 12. Algorytm programu gwnego dla procesora DSP

Elektronika Praktyczna 7/2005

Wielokanaowy generator sygnaw programowalnych

Rys. 13. Algorytm bloku opniajcego

spowodowa bdne dziaanie przetwornika C/A, a nawet doprowadzi


do uszkodzenia ukadu. Minimalna
warto napicia na wyjciu kanau G i H jaka jest bezpieczna dla
przetwornika to 1,748 V. Oznacza
to, e do rejestrw kanaw G i
H nie naley wpisywa wartoci
mniejszych ni 0x0DA8.

Aktywacja lub dezaktywacja


poszczeglnych wyj
generatora (ID=0x04)

Wczanie lub wyczanie kanau


odbywa si poprzez ustawienie lub
wyzerowanie bitu na pozycji odpowiadajcej numerowi wybranego kanau w bajcie F1. Zapisanie do F1
liczby 0x7F powoduje uaktywnienie
wszystkich wyj, a warto 0x00
wycza wszystkie wyjcia.
Ramka 0x04 ma nastpujc posta:
AA bajty synchronizacji ich warto zawsze
wynosi 0xAA;
F0 typ ramki;
F1 bajt kontrolny;
F2 0x00 nie rb
nic, 0x01 C/A reset;
F3F9 bez znaczenia;
D0Dx brak.

ptli w bloku opniajcym w programie gwnym. W tym celu naley przesa do pamici procesora
wczeniej wyliczone wartoci oraz
parametry dla timera, ktry okresowo wywouje procedur zmieniajc generowan czstotliwo. Procesor ADSP2181 posiada 16bitowy
timer z 8bitowym preskalerem.
Maksymalny interwa jaki jest osigalny przy zegarze 20 MHz wynosi
ok. 417 ms. Dlatego w programie
procesora DSP zostaa przewidziana dodatkowa 16bitowa zmienna,
ktra zlicza przerwania generowane
przez timer. Aby uzyska dobr i
sta rozdzielczo, korzystnie jest
ustali warto timera tak aby generowa przerwanie co 1 ms. Wwczas w dodatkowej zmiennej bd
zliczane pojedyncze milisekundy.
Maksymalny odstp czasu pomidzy zmianami czstotliwoci bdzie
wynosi ponad 65 sekund. Funkcje
bajtw ramki ustalajcej parametry
sweep, s nastpujce:
AA bajty synchronizacji ich
warto zawsze wynosi 0xAA,
F0 ID 0x05;
F1 bajt kontrolny funkcji sweep;
F2 starszy bajt timera;
F3 modszy bajt timera;
F4 bajt preskalera timera;
F5 starszy bajt licznika przerwa;
F6 modszy bajt licznika przerwa;
F7 starszy bajt iloci bajtw
Dx;
F8 modszy bajt iloci bajtw
Dx;
F9 bez znaczenia;

Tab. 3. Funkcje bajtu F1 dla


ID=0x05
F1
0x00
0x01
0x02

Znaczenie
sweep wyczone
sweep wczone
sweep wczone (tryb cykliczny)

Tab. 4. Funkcje bajtu F1 dla ID=0x06


F1
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07

Transfer [bps]
600
1200
2400
4800
9600
19200
38400
57600

D0Dx objanione poniej.


W bajtach Dx zawarte s wartoci licznikw ptli opnie w nastpujcej kolejnoci:
Dx+0 starszy bajt ptli opnienia nr 1,
Dx+1 modszy bajt ptli opnienia nr 1,
Dx+2 starszy bajt ptli opnienia nr 2,
Dx+3 modszy bajt ptli opnienia nr 2,
Dx+4 starszy bajt ptli opnienia nr 3,
Dx+5 modszy bajt ptli opnienia nr 3.
Objanienia wymaga bajt kontrolny. Odpowiada on za aktywacj
funkcji sweep oraz wybr jej trybu.
Przejcie generowanej czstotliwoci
od pocztkowej do kocowej moe
si odbywa jednorazowo lub cyklicznie, tzn. po osigniciu czsto-

Parametry funkcji
sweep (ID=0x05)

Funkcja sweep umoliwia okresow zmian


czstotliwoci z zadanym
krokiem. Zmiana ta realizowana jest przez podmienianie wartoci licznikw Rys. 14. Schemat montaowy pytki przetwornika C/A

Elektronika Praktyczna 7/2005

35

Wielokanaowy generator sygnaw programowalnych


tliwoci kocowej caa procedura powtarzana jest od
pocztku. W tab. 3 zostay
zebrane moliwe wartoci
bajta kontrolnego F1.

Zmiana szybkoci
transmisji danych
(ID=0x06)

Po wczeniu zasilania urzdzenie jest gotowe


do komunikacji z komputerem PC poprzez interfejs RS232C z szybkoci
9 6 0 0 b p s . Tr a n s f e r t e n
mona zmieni w zakresie
od 600 bps do 57600 bps
wpisujc odpowiedni warto do bajta F1 z tab. 4.
Ramka 0x06 ma nastpujc posta:
AA bajty synchroniza- Rys. 15. Schemat montaowy pytki procesora DSP
cji ich warto zawsze
U8 przed montaem gniazda JP5,
wynosi 0xAA,
rezystorw drabinkowych R10, R11,
F0 ID 0x06;
R12 i kondensatorw C26, C27, C28
F1 bajt kontrolny;
i C29, gdy w przeciwnym wypadku
F2F9 bez znaczenia,
D0Dx brak.
dostp do nek ukadu scalonego
U8 bdzie znaczne utrudniony.
Monta pytki przetwornika C/A
Po zmontowaniu moduu konieczRozmieszczenie elementw na ne jest tylko wyregulowanie rda
pytce przedstawia rys. 14. Monta
napicia odniesienia za pomoc popytki najlepiej rozpocz od ukadu tencjometru R7. Aby tego dokona,
zasilania, tzn. od wlutowania diod naley podczy woltomierz midzy
prostowniczych D2, D3, D4, D5, kon- mas a nk nr 1 ukadu U1 i dodensatorw C19, C20, C21, C22, C23, bra takie pooenie potencjometru,
C24, C25, C30, C31, C32 oraz stabili- eby woltomierz wskaza +4,096 V.
zatorw U5, U6, U7. Po upewnieniu
si, e napicia zasilajce s popraw- Monta pytki procesora
Na rys. 15 przedstawione jest
ne mona przystpi do wlutowywania kolejnych elementw. Wan rze- rozmieszczenie elementw na pytce
cz jest, aby wlutowa przetwornik drukowanej. Monta pytki naley

36

rozpocz od wlutowania procesora


U2. Po tej operacji mona montowa pozostae elementy w dowolnej
kolejnoci. Po zmontowaniu i zaprogramowaniu ukadu U3, modu godowy jest do pracy i nie wymaga
adnych regulacji.
Autorzy pragn serdecznie podzikowa Panu dr in. Krzysztofowi
Urbaskiemu za cenne rady i wskazwki podczas realizacji projektu.
Bartosz Jakubski
Jacek Wiszniewski
Projekt zrealizowany w ramach
pracy dyplomowej na Uniwersytecie
Zielonogrskim.
W ofercie AVT s dostpne:
[AVT456A] pytka drukowana

Elektronika Praktyczna 7/2005

You might also like