Karta przetwornika analogowo

Transkrypt

Karta przetwornika analogowo
Karta przetwornika analogowo - cyfrowego
z pamięcią
Praca Dyplomowa z Technikum
1995
Stadnik Krzysztof
Robert Czerwiński
Wprowadzenie
We współczesnych układach i systemach elektronicznych często zachodzi konieczność
przetwarzania informacji zarówno cyfrowej ,jak i analogowej. Ma to istotne znaczenie, gdy
informacja będąca w naturalny sposób analogowa np.: sygnały akustyczne, wizyjne,
pomiarowe i.t.p. powinna być sterowana za pomocą systemów mikroprocesorowych lub
komputerowych . Należy wówczas sygnał przetworzyć z postaci analogowej na cyfrową, aby
móc np.: sygnał akustyczny zapisać w systemie cyfrowym lub dokonać jego obróbki
za pomocą filtru cyfrowego. Czynności te wykonuje się za pomocą przetworników A/C.
Nasza praca ma postać karty przetwornika A/C do komputera IBM PC. Ma ona służyć do
zapoznania się z zasadami budowy, działania i zastosowania przetworników A/C. Karta
w połączeniu z odpowiednim programem stwarza użytkownikowi m.in. możliwość oglądania
przebiegów okresowych i nieokresowych na ekranie monitora oraz ich obróbkę.
Opis przetwornika MAX165
Ogólny
MAX165 jest szybkim (5us) 8 bitowym przetwornikiem A/C z możliwością współpracy
z mikroprocesorem 8 bitowym poprzez standardowe sygnały CS i RD. Sygnał BUSY
wyznacza start i koniec konwersji .Dane wyjściowe zostają zatrzaśnięte w przerzutnikach
wyjściowych i MAX165 może zostać połączony z szyną danych procesora lub z portem
we/wy (I/O).
Rys.1. Schemat blokowy struktury wewnętrznej układu MAX 165
Konwersja
MAX165 jest przetwornikiem wykorzystującym metodę kolejnych przybliżeń do
przetwarzania A/C. Przetwornik ten jest przetwornikiem 8 bitowym ,czyli posiada 255
poziomów kwantowania. MAX165 po zainicjowaniu konwersji sygnałami CS i RD (zmiana
ich stanu na
niski). Układ T/H pobiera próbkę i przechowuje ja w kondensatorze wewnętrznym w postaci
ładunku .Wewnętrzny przetwornik C/A jest początkowo ustawiony do połowy skali,
a komparator określa czy sygnał wejściowy jest mniejszy od połowy skali lub też większy.
Jeśli sygnał wej. jest większy od połowy skali, to najstarszy bit(MSB) przetwornika C/A
pozostaje bez zmiany (stan wysoki), jeżeli sygnał wej. jest mniejszy od połowy skali to MSB
przetwornika C/A przechodzi w stan niski. Na końcu każdego porównania rejestr SAR (rejestr
kolejnych przybliżeń) zapamiętuje rezultaty wcześniejszych porównań i rozpoczyna
określenie następnego bitu. Po każdym określeniu informacja z rejestru SAR jest przesyłana
do przetwornika C/A. Następnie wej. jest porównywane z kombinacją z przetwornika C/A.
Po 8 cyklach porównania, 8 bitów zmagazynowanych w SAR zostaje zatrzaśniętych
w wyjściowych przerzutnikach. Na końcu konwersji sygnał BUSY powraca do stanu
wysokiego i dane z przerzutników wyjściowych są gotowe do odebrania przez system
mikroprocesorowy. Przetwornik C/A jest resetowany do połowy i przegotowywany jest do
następnej konwersji.
Połączenie z mikroprocesorem
Wejścia CS i RD są używane do zainicjowania konwersji i dla uzyskania danych
z przetwornika. MAX165 posiada dwa tryby pracy:
- praca z wolną pamięcią,
- praca z ROM-em.
W pierwszym trybie sygnały CS i RD muszą zmienić stan na niski aby rozpocząć konwersję
i muszą pozostać w stanie niskim aż do zakończenia konwersji. W tym czasie zostaną
zaktualizowane dane i mikroprocesor odbiera te nowe dane. Tryb ten jest przeznaczony do
współpracy z procesorami, które mogą być postawiony w stan czekania.
W drugim trybie procesor nie musi być postawiony w stan czekania . Konwersja rozpoczyna
się po przez zmianę CS i RD na stan niski na co najmniej 3 takty zegarowe sygnału CLK.
Dane czytane w tym czasie są danymi z poprzedniej konwersji. Po zakończeniu konwersji
ponowna zmiana sygnałów CS i RD na stan niski powoduje dostęp do nowych danych. Jeżeli
zaś sygnały CS i RD pozostaną w stanie na co najmniej 3 takty zegarowe CLK to rozpocznie
się następna konwersja .
Układ T/H
Układ T/H (śledzenia i zatrzymania) składa się z pojemności i przełącznika. Przy rozpoczęciu
konwersji przełącznik S1 zamyka się i sygnał wejściowy śledzony. Po trzecim opadającym
zboczu sygnału CLK (liczymy od momentu kiedy CS i RD zmienią stan na niski) przełącznik
S1 zostanie otwarty. Dwa cykle zegara pozwalają na naładowanie się kondensatora napięciem
wejściowym. Po zakończeniu konwersji przełącznik S1 zamyka się i sygnał wejściowy jest
znowu śledzony.
Rys.3. Schemat odpowiednika układu T/H
Zakres bipolarny
Stosując układ z rys.3 MAX165 mierzy napięcie z zakresu +/-2,46 V (1LSB=19,22mV) .
Jednak napięcie jakie pojawia się na wejściu AIN jest z zakresu od 0 do 2,46 V.W większości
przypadków dokładność przetwornika jest na tyle duża, że kalibracja nie jest potrzebna. Jeśli
kalibracja jest zbędna to R4 i R5 możemy zastąpić rezystorem 10k om natomiast R2 i R3
rezystorem 1kW . Wszystkie stosowane rezystory powinny mieć dokładność 0,1%. Jeżeli
natomiast kalibracja jest nam potrzebna to należy odpowiednio operować R5 i R2 tak długo
aż uzyskamy żądaną dokładność.
Rys.3 Układ bipolarny: a) schemat ideowy
b) charakterystyka przenoszenia
Rys.4. Diagram czasowy dla trybu pracy z wolną pamięcią
Rys.5. Diagram czasowy dla trybu pracy przetwornika jako pamięci ROM
Dane katalogowe MAX165
Czas konwersji 5 ms
Maksymalny błąd pomiaru +/-1 LSB
Pasmo przenoszenia 50 kHz
Wewnętrzne napięcie odniesienia 1,23 V
Napięcie zasilania +5 V
8-Bitowa magistrala danych
Czas dostępu do danych 100 ns
Pobór mocy 15 mV
Impedancja wejściowa dla DC 10 MW
MAX165->AD7575
Pamięci statyczne RAM
Pamięci statyczne RAM (ang.Random Access Memory) są masowo produkowane jako układy
scalone o dużym stopniu scalenia, stosowane przede wszystkim jako szybkie pamięci
systemów mikroprocesorowych i urządzeń specjalizowanych. Pamięci te charakteryzują się
krótkim czasem dostępu do informacji, rzędu 25-200 ns, prostotą eksploatacji i dużą
pewnością działania. Pamięci statyczne o dużej pojemności są produkowane w technologii
unipolarnej, przede wszystkim NMOS i CMOS. Pojemność typowego układu pamięci wynosi
4k-1M bitów. Komórki pamięci wewnątrz układu są zorganizowane w słowa, najczęściej
o długości 1,4 lub 8 bitów. Elementarna komórka pamięci stanowi przerzutnik dwustabilny,
zbudowany z tranzystorów MOS. Raz zapisana informacja jest trwale przechowywana bez
żadnych dodatkowych operacji. Pamięci SRAM są jednak pamięciami ulotnymi (ang.voltile),
tracącymi całą zawartość po wyłączeniu napięcia zasilającego. Mimo to pamięci CMOS
z bateryjnym podtrzymaniem zasilania są często stosowane jako pamięci trwałe,
przechowujące dane poza okresami pracy urządzenia. Jest to możliwe dzięki niezwykle
małemu poborowi prądu zasilania przyrządów wykonywanych tą technologią. Podstawowe
parametry statyczne i dynamiczne pamięci SRAM :
a) Statyczne :
-
Icc2; prąd pobierany przy pracy z max. częstotliwością zmian sygnałów sterujących
(ang.operating supply current)
-
Icc1; prąd w stanie aktywnym CE=0 , przy ustalonych sygnałach sterujących
(ang.active supply current)
Isb2; prąd w stanie spoczynkowym CE=1(ang.standby supply current)
Isb1; prąd w stanie spoczynkowym, w którym na wejście CE jest podane
napięcie Vcc-0,2V(w pamięciach o dwóch sygnałach wyboru układu CE1>=Vcc0,2V lub CE2<=0,2V)
Idr; prąd w stanie spoczynkowym przy napięciu zasilania obniżonym do wartości Vdr
Voh; napięcie wyjściowe w stanie 1 (ang. output high voltage)
Vol; napięcie wyjściowe w stanie 0 (ang. output low voltage)
Iol; max. prąd wyjściowy w stanie 0 (ang. output low current)
Ioh; max.prąd wyjściowy w stanie 1 (ang. output high current)
Uwaga! Warunki zasilania pamięci zależą od technologii wytwarzania układu. Nie które
wymienionych parametrów mogą być dla pewnych rodzajów pamięci nie zdefiniowane.
Grupa parametrów określająca wartości napięć wyjściowych pamięci oraz prądów upływu;
poziomy tych napięć są zgodne z ustaleniami przyjętymi dla układów TTL, wartości prądów
są bardzo małe. Napięcia wyjściowe definiuje się zawsze przy określonych wartościach prądu
wyjściowego, które nie powinny być przekraczane w układzie pracy pamięci. Maksymalne
wartości prądu wyjściowego stanowią bardzo ważny parametr, obciążalność wyjść układu.
b) Dynamiczne :
- trc; długość cyklu odczytywania
- toh; czas przetwarzania danych po zmianie adresu
- taa; czas dostępu mierzony od ustalenia adresu
- twc; długość cyklu zapisywania
- tcw; czas trwania sygnału CE
- twp; czas trwania sygnału WE
- tdh; czas przetrzymania danych
- tcdr; opóźnienie obniżenia napięcia po narastającym zboczu sygnału CE
- tr; czas powrotu do stanu pracy
Charakterystyki czasowe układów pamięci definiuje się na ogół na wykresach czasowych,
określających czasy trwania poszczególnych sygnałów i ich wzajemne zależności
w różnych cyklach pracy. Przebiegi sygnałów sterujących pracą pamięci statycznych są
bardzo proste, a wzajemne uzależnienia sygnałów nie narzucają istotnych ograniczeń na
sposób projektowania układów z tymi pamięciami. Podstawowym parametrem
charakteryzującym szybkość pamięci jest czas dostępu taa, mierzony od chwili podania
adresu do chwili pojawienia się jego zawartości na liniach danych (rys.6).
Rys.6 Definicja czasu dostępu
Uwaga! Czas trwania cyklu odczytywania trc jest podawany tylko dla orientacji. Czas ten jest
zawsze równy czasowi dostępu, a jego niedotrzymanie nie grozi zmianą zawartości pamięci.
Czas trwania cyklu zapisywania musi zostać zachowany. W przeciwnym przypadku do
wybranego słowa pamięci może zostać zapisana błędna wartość. Szczególnie ważne jest
wymaganie, aby podczas zmiany adresu przynajmniej jeden z sygnałów: CE, WE miał
wartość 1. W przeciwnym przypadku może nastąpić zniszczenie zawartości przypadkowych
komórek pamięci. Większość pamięci wykonanych technologią CMOS może przechowywać
dane w szerokim zakresie zmian napięcia zasilającego. Jest to szczególnie istotne w układach
pamięci z podtrzymaniem bateryjnym, gdyż przy obniżonym napięciu zasilającym zmniejsza
się również pobór prądu zasilania. Koniecznym warunkiem przechowania zawartości pamięci
w tym okresie jest utrzymanie na linii CE napięcia z zakresu (Vcc-0,2V)-(Vcc+0,2V) (rys.7).
Układ SRM20256LC
Pamięć SRM20256LC zawiera 32,768 8-bitowych słów(32kB). Jest ona asynchroniczną
pamięcią SRAM, wykonaną w technologii CMOS. Pamięć ta pobiera w stanie czuwania prąd
o bardzo niskiej wartości czyni ją idealną do zastosowania jako pamięć nie ulotna
(nonvolatiie) o zasilaniu bateryjnym. Asynchroniczna i statyczna natura pamięci nie wymaga
układu odświeżania oraz synchronizacji z zegarem. Porty I/O są kompatybilne
z standardem TTL, trójstanowe wyjścia (wejścia) pozwalają na łatwe wykorzystanie
tych pamięci.
Dane katalogowe SRM20256LC :
a) Czas dostępu 100 ns
b) Prąd pobierany :
- spoczynkowy 2 m A(Typ)
- pracy 13 mA/1MHz(Typ)
c) Napięcie zasilania 5 V +/-10%
Rys.8 Schemat blokowy wewnętrznej pamięci SRAM
Pamięć SRAM w rejestracji przebiegów analogowych
Jeżeli do rejestracji sygnałów analogowych przekształconych wcześniej do postaci cyfrowej
w przetworniku A/C używany jest mikroprocesor, to maksymalna prędkość próbkowania
sygnału jest ograniczona nie tylko czasem konwersji przetwornika, ale także czasem trwania
cyklu instrukcji mikroprocesora. Jeśli prędkość konwersji przetwornika A/C wynosi 200 kHz
(5us) lub więcej, prędkość próbkowania systemu może nie osiągać potencjalnej maksymalnej
prędkości przetwornika nawet przy zastosowaniu współcześnie dostępnych procesorów
specjalizowanych DSP (ang. digital signal procesor). Wykorzystanie pełnych możliwości
szybkościowych przetwornika daje dopiero metoda bezpośredniej rejestracji wyników
konwersji w statycznej pamięci RAM (SRAM) z następującym po tym transferem kolejnych
rezultatów do IBM PC pod kontrolą zewnętrznych układów logicznych. Ta oto metoda
rejestracji została wykorzystana przy budowie naszej karty przetwornika A/C do współpracy
z IBM PC. Karta ta posiada pamięć SRAM o pojemności 64kB, czyli może zapamiętać 65536
próbek 8 bitowych.
Podstawowe parametry karty
Zakres napięć wejściowych +/-2,46 V
Rozdzielczość 8 bitów
Czas konwersji 5 ms
Pasmo przenoszenia 50 kHz
Adresy przestrzeni I/O 300h-31Fh
Max. błąd względny +/-1 LSB
Pamięć własna SRAM 64kB
Zabezpieczenie napięciowe +/-2,8 V
Budowa karty
Na rys. 8 przedstawiono schemat blokowy karty przetwornika analogowo - cyfrowego
z pamięcią. Możemy wyróznić trzy podstawowe bloki: programowego dzielnika
częstotliwości, dekodera adresów oraz układu sterownia przetwornikiem i pamięcią.
Rys. 8. Schemat blokowy karty przetwornika analogowo - cyfrowego z pamięcią
Przykładowy program obsługujący kartę.
Uproszczony program obsługi karty ODCZYT.PAS zawiera tylko podstawowe elementy
umożliwiające odczyt danych i rysowanie przebiegu na podstawie otrzymanych danych.
Umożliwia on odczytanie tylko ok.1800 komórek pamięci SRAM ( max. 64 kB ).
program odczyt ;
uses Crt , graph ;
var
x : word ;
i : longint ;
b , d : byte ;
ster : integer ;
tryb : integer ;
const
a1 = $304 ;
a2 = $301 ;
a3 = $302 ;
a4 = $303 ;
begin
port [ a1 ] : = 255 ;
port [ a2 ] : = 0 ;
delay ( 5000 ) ;
ster : = detect ;
initgraph ( ster , tryb , ' c:\ pas7 \ bgi ' ) ; { inicjacja trybu groficznego }
clrscr ;
{ rysowanie osi liczbowych }
line ( 47 , 227 , 635 , 227 ) ;
line ( 50 , 40 , 50 , 360 ) ;
line ( 50 , 355 , 54 , 355) ;
line ( 200 , 355 , 204 , 355 ) ;
line ( 500 , 355 , 504 , 355 ) ;
line ( 50 , 100 , 54 , 100 ) ;
line ( 200 , 100 , 204 , 100 ) ;
line ( 500 , 100 , 504 , 100 ) ;
line ( 50 , 40 , 54 ,45 ) ;
line ( 50 , 40 , 46 , 45 ) ;
line ( 635 , 227 , 631 , 231 ) ;
line ( 635 , 227 , 631 , 223 ) ;
outtextxy ( 30 , 227 , ' 0 ' ) ;
outtextxy ( 0 , 100 ,' 2,46V ' ) ;
outtextxy ( 0 , 355 , ' - 2,46V ' ) ;
outtextxy ( 5 , 2 , ' Test karty przetwornika a/c z pamiecia SRAM . ' ) ;
outtextxy ( 10 , 15 , ' Odczytano pierwsze 580 bajtow pamieci ! ' ) ;
{ procedura odczytu danych z karty }
for i : = 0 to 580 do
begin
asm
MOV DX , $303
IN AL , DX
MOV D , AL
NOP
end ;
{ rysowanie wykresu }
SetColor ( red ) ;
if i <> 0 then LineTo( i+50 , 355-d ) ;
MoveTo ( i+50 , 355-d ) ;
port [ a3 ] : = 0 ;
delay ( 1 ) ;
end ;
readln ;
clrscr ;
line ( 47 , 227 , 635 , 227 ) ;
line ( 50 , 40 , 50 , 360 ) ;
line ( 50 , 355 , 54 , 355) ;
line ( 200 , 355 , 204 , 355 ) ;
line ( 500 , 355 , 504 , 355 ) ;
line ( 50 , 100 , 54 , 100 ) ;
line ( 200 ,100 , 204 , 100 ) ;
line (500,100,504,100);
line ( 50 , 40 , 54 , 45 ) ;
line ( 50 , 40 , 46 , 45 ) ;
line ( 635 , 227 , 631 , 231 ) ;
line ( 635 , 227 , 631 , 223 ) ;
outtextxy ( 30 , 227 , ' 0 ' ) ;
outtextxy ( 0 , 100 , ' 2,46V ' ) ;
outtextxy ( 0 , 355 , ' - 2,46V ' ) ;
outtextxy ( 5 , 2 , ' Odczytano nastepne 580 bajtow pamieci ! ' ) ;
outtextxy ( 10 , 15 , ' Czyli 1160 bajtow ' ) ;
for i : = 0 to 580 do
begin
asm
mov dx , $303
in al , dx
mov d , al
nop
end ;
port [ a3 ] : = 0 ;
SetColor ( red ) ;
if i <> 0 then LineTo ( i+50 , 355-d ) ;
MoveTo ( i+50 , 355-d ) ;
end ;
readln ;
clrscr ;
line ( 47 , 227 , 635 , 227 ) ;
line ( 50 , 40 , 50 , 360 ) ;
line ( 50 , 355 , 54 , 355 ) ;
line ( 200 , 355 , 204 , 355 ) ;
line (500,355,504,355);
line ( 50 ,100 , 54 , 100 ) ;
line ( 200 , 100 , 204 , 100 ) ;
line ( 500 , 100 , 504 , 100 ) ;
line ( 50 , 40 , 54 , 45 ) ;
line ( 50 , 40 , 46 , 45 ) ;
line ( 635 , 227 , 631 , 231 ) ;
line ( 635 , 227 , 631 , 223 ) ;
outtextxy ( 30 , 227 , ' 0 ' ) ;
outtextxy ( 0 , 100 , ' 2,46V ' ) ;
outtextxy ( 0 , 355 , ' - 2,46V ' ) ;
outtextxy ( 5 , 2 , ' Odczytano nastepne 580 bajtow pamieci ! ' ) ;
outtextxy ( 10 , 15 , ' Czyli 1800 bajtow ' ) ;
for i : = 0 to 580 do
begin
asm
mov dx , $303
in al , dx
mov d , al
nop
end ;
SetColor ( red ) ;
if i <> 0 then LineTo ( i+50 , 355-d ) ;
MoveTo ( i+50 , 355-d ) ;
port [ a3 ] : = 0 ;
delay ( 1 );
end ;
readln ;
end .

Podobne dokumenty