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 .