420 likes | 733 Views
URZĄDZENIA TECHNIKI KOMPUTEROWEJ. KODOWANIE. KODOWANIE. Komputer jest urządzeniem służącym do przetwarzania informacji. Informacją są
E N D
URZĄDZENIA TECHNIKI KOMPUTEROWEJ KODOWANIE
KODOWANIE Komputer jest urządzeniem służącym do przetwarzania informacji. Informacją są liczby ale także inne obiekty, takie jak litery, wartości logiczne, obrazy itp. Ponieważ komputer jest urządzeniem zbudowanym z układów cyfrowych to, każda informacja przetwarzana przez niego musi być reprezentowana za pomocą dwóch stanów - wysokiego i niskiego. Duża część tej informacji to liczby, stąd przyjęto nazywać te stany jedynką i zerem (1 i 0). Możemy zatem stwierdzić, że wszelka informacja w komputerze musi występować w postaci zerojedynkowej, czyli binarnej. Potrzebne są więc także reguły przekształcania różnych postaci informacji na informację binarną. Proces przekształcania jednego rodzaju postaci informacji na inną postać nazywamy kodowaniem.
KODOWANIE Definicja Kodowaniem nazywamy przyporządkowanie poszczególnym obiektom zbioru kodowanego odpowiadających im elementów zwanych słowami kodowymi, przy czym każdemu słowu kodowemu musi odpowiadać dokładnie jeden element kodowany. Zbiorem kodowanym może być zbiór dowolnych obiektów, przykładowo liter, symboli graficznych czy np. stanów logicznych. 111 001 010 100 A B C A będzie reprezentowana przez słowo kodowe 111, litera B przez 010, a litera C przez 001 lub 100. Fakt, że literze C odpowiadają dwa słowa kodowe, nie przeszkadza w poprawnym przetwarzaniu informacji, aczkolwiek stanowi pewne utrudnienie procesu kodowania. Sytuacja odwrotna, gdy jedno słowo kodowe odpowiadałoby dwóm literom (na przykład A - 001 i B - 001). byłaby niedopuszczalna. Jeżeli w procesie przetwarzania informacji otrzymalibyśmy jako wynik kod 001, nie bylibyśmy w stanie określić przy dekodowaniu, czy odpowiada on literze A, czy B.
KODOWANIE Definicja Kodem liczbowym nazywamy taki kod, który liczbom dowolnego systemu będzie przyporządkowywał słowa kodowe w postaci zerojedynkowej. Przykład: Naturalny kod binarny (NKB) Definicja Jeżeli dowolnej liczbie dziesiętnej przyporządkujemy odpowiadającą jej liczbę binarną, to otrzymamy naturalny kod binarny (NKB).
KODOWANIE Przykład: Kod prosty BCD Definicja Każdej cyfrze dziesiętnej przyporządkowujemy czterocyfrową liczbę dwójkową (zwaną tetradą) w kodzie NKB (gdyby zamiast słów kodu NKB został użyty inny kod, np. Graya, wówczas otrzymalibyśmy kod BCD Graya) Przykład: Znaleźć słowa kodu prostego BCD odpowiadające liczbom 463D i 67D 463D = 0100 0110 0011 BCD 67D = 0110 0111 BCD
KODOWANIE ASCII [aski] (ang. American Standard Code for Information Interchange) 7-bitowy kod przyporządkowujący liczby z zakresu 0-127 literom (alfabetu angielskiego), cyfrom, znakom przestankowym i innym symbolom oraz poleceniom sterującym. Przykładowo litera "a" jest kodowana liczbą 97, a polecenie "powrót karetki" – liczbą 13. Litery, cyfry oraz inne znaki drukowane tworzą zbiór znaków ASCII. Jest to 95 znaków o kodach 32-126. Pozostałe 33 kody (0-31 i 127) to tzw. kody sterujące służące do sterowania urządzeniem odbierającym komunikat, np. drukarką czy terminalem. Ponieważ kod ASCII jest 7-bitowy, a większość komputerów operuje na 8-bitowych bajtach, dodatkowy bit można wykorzystać na powiększenie zbioru kodowanych znaków. Powstało wiele różnych rozszerzeń ASCII wykorzystujących ósmy bit (np. norma ISO 8859, rozszerzenia firm IBM lub Microsoft), nazywanych stronami kodowymi. Również kodowanie UTF-8 można uważać za rozszerzenie ASCII, tutaj jednak dodatkowe znaki są kodowane na 2 i więcej bajtach.
KODOWANIE • Kodowanie informacji ciągłej • Przykładowy sposób postępowania przy przekształcaniu tak zwanej informacji analogowej, na informację cyfrową, który to sposób pozwala kodować w postaci binarnej takie wielkości jak napięcie (będące wielkością wyjściową wielu przetworników, na przykład mikrofonów, termometrów cyfrowych itp. • Informacja analogowa charakteryzuje się tym, że może przybierać wiele wartości przy czym zmiany pomiędzy tymi wartościami są płynne. • Przykładowo dźwięk jest zmianą ciśnienia akustycznego rozchodzącą się w powietrzu lub innym materiale i wymaga realizacji kilku etapów: • próbkowanie, polegające na cyklicznym (inaczej: z określoną częstotliwością) sprawdzaniu wartości przebiegu analogowego i zwykle czasowym zapamiętaniu tej wartości, • kwantyzacja, polegająca na podziale całego obszaru zmienności wielkości analogowej na określoną liczbę przedziałów i stwierdzeniu, w którym przedziale znajduje się pobrana próbka, • kodowanie polegające na przyporządkowaniu każdemu przedziałowi zmienności wielkości analogowej określonej kombinacji zerojedynkowej (zwykle interpretowanej jako numer czy też wartość danego przedziału) i podaniu kodu tego przedziału, w którym znajduje się nasza próbka.
KODOWANIE Jak widać, po przeprowadzeniu opisanych operacji wartości wielkości analogowej (w naszym przypadku sinusoidalnie zmiennej) udało się zapisać w „pamięci" w postaci cyfrowej, a więc nadającej się do przetwarzania przez komputer. Przejście takie realizowane jest przez układ zwany przetwornikiem analogowo-cyfrowym (w skrócie przetwornikiem a/c, ang. ADC - Analog to Digital Corwerter), poprzedzone ewentualnie układem próbkująco-pamiętającym (nie każdy przetwornik go wymaga). Podane przykłady nie wyczerpują oczywiście możliwości kodowania informacji. Prócz kodowania informacji czysto liczbowej czy też tekstów możemy przykładowo kodować (i przetwarzać cyfrowo) obrazy (np. w postaci bitmap), dźwięk, wielkości fizyczne, takie jak temperatura, ciśnienie (odpowiednie czujniki plus przetworniki a/c), oraz wiele innych.
BRAMKI LOGICZNE Jedną z ważnych grup działań wykonywanych podczas przetwarzania informacji są działania logiczne. Wykonywanie tych działań wiąże się z operowaniem dwoma wartościami logicznymi zwanymi prawdą (ang. true) i fałszem (ang. false). Wartości te są w logice pojęciami pierwotnymi, czyli nie są to pojęcia definiowane. Działania logiczne operują na wartościach logicznych i ich wynikiem również jest wartość logiczna (podobnie jak działania arytmetyczne operują na liczbach, dając w wyniki liczbę). W układach cyfrowych wartości logiczne muszą być reprezentowane (jak każdy rodzaj informacji) przez dwa stany elektryczne: wysoki -H i niski - L reprezentowany przez 1 i 0.
BRAMKI LOGICZNE Przedstawiając działania logiczne, posłużymy się dwiema metodami. Pierwsza to opis słowny. Druga z nich to tak zwana tabela prawdy, Polega ona na przedstawieniu w tabeli wszystkich możliwych kombinacji i odpowiadających im wartości logicznych wyniku danego działania. Przypomina przykładowo określenie działania zwanego w arytmetyce mnożeniem w postaci tabliczki mnożenia. W technice cyfrowej działania logiczne wykonywane są przez układy cyfrowe zwane bramkami. Bramki są podstawowymi układami cyfrowymi będącymi cegiełkami, z których buduje się skomplikowane układy logiczne. Przy opisie bramek, a później teżukładów cyfrowych, będziemy posługiwać się tak zwaną metodą czarnejskrzynki. Polega ona na tym, że nie zastanawiamy się. dlaczego układ działa w podany sposób ani jaka jest jego wewnętrzna budowa, a interesuje nas jedynie jego zachowanie zewnętrzne. Inaczej mówiąc, będziemy podawać, jak przy okreslonych sygnałach (pobudzeniach) będzie się zachowywać wyjście układu. Dla niektórych typów układów (na przykład dla bloków mikroprocesora) jest to jedyny możliwy sposób opisu (ze względu na stopień komplikacji tych układów. Zobaczymy ponadto, że w przypadku bramek do ich opisu będzie można stosować tabelę prawdy. Przedstawiając działania logiczne, będziemy też używać terminu zmiennej logicznej.
X1 X2 Y & BRAMKI LOGICZNE Zmienną logiczną nazywamy zmienną, która może przyjmować jedną z dwóch wartości logicznych: prawdę lub fałsz. 1. Iloczyn logiczny - bramka AND. Iloczyn logiczny dwóch zmiennych zapisujemy jako: y = x1ˆ x2 i czytamy „y równa się x1 i x2". W układach cyfrowych często zamiast symbolu „a'' używa się symbolu zwykłego mnożenia, dlatego powyższe działanie można zapisać jako: y = X1 * x2 a z kontekstu tego zapisu wynika, czy jest to działanie logiczne, czy arytmetyczne. Symbol graficzny układu cyfrowego realizującego iloczyn logiczny, czyli symbol bramki AND, przedstawia rysunek jest zaś tabelą prawdy opisującą zarówno zachowanie się tej bramki, jak i własności dwuargumentowego iloczynu logicznego. Rysunek 2.5. Symbol bramki AND
X1 X2 Y 1 BRAMKI LOGICZNE 2. Suma logiczna - bramka OR Sumę logiczną zapisujemy jako: X1 ˇ x2 = y lub x1 + x2 = y i czytamy jako x1 lub x2"
BRAMKI LOGICZNE 3. Negacja – bramka NOT y = ~x lub y = x Pierwsze oznaczenie stosowane jest głównie przez matematyków, drugie jest bardzo często wykorzystywane w układach cyfrowych (choć niezbyt chętnie jest używane przez składających teksty). Firma Intel sygnały zanegowane oznacza jeszcze inaczej, a mianowicie: y = x # W każdym przypadku czytamy „nie x" lub „nieprawda, że x". - X1 Y 1
BRAMKI LOGICZNE 3. Negacja – bramka NOT Ponieważ sygnały logiczne mogą być negowane zarówno na wejściach, jak i na wyjściach układów, przyjęto, że operację negacji oznacza w symbolu bramki NOT kółko. Dlatego wejścia bądź wyjścia sygnału zanegowanego w układach cyfrowych są oznaczane tak, jak to pokazano na rysunku. - Wyjście zanegowane Wejścia zanegowane Sposób oznaczania wejść i wyjść zanegowanych
BRAMKI LOGICZNE 4. Bramka Ex-OR ALTERNATYWA WYKLUCZAJĄCA ( ang. XOR, pol. ALBO, mat. Å ) inaczej: różnica symetryczna, suma modulo 2 XOR = eXclusive OR Alternatywa wykluczająca dwu cyfr binarnych jest równa 0 wtedy i tylko wtedy, gdy obydwie cyfry są jednakowe.
X 0 X 1 ? & ? & BRAMKI LOGICZNE • Przykład: • Określić, jaki będzie stan na wyjściu bramki pokazanej na rysunku, gdy na jedno z jej wejść podajemy sygnał binarny X, a na drugie wejście: • stan 0 • stan 1 a) b) Rysunek do przykładu wyjaśniającego pochodzenie terminu „bramka" Zgodnie z tabelą prawdy (lub definicją iloczynu), jeżeli choć na jednym wejściu bramki jest 0, to na wyjściu jest także zero, niezależnie od stanu pozostałych wejść. W przypadku gdy na jednym z wejść bramki dwuwejściowej jest sygnał 1, wówczas stan wyjścia tej bramki zależy od stanu drugiego wejścia, czyli od wartości sygnału X. Jeżeli na tym wejściu jest 0, to i na wyjściu mamy 0, jeżeli natomiast sygnał X przyjmuje wartość 1, to na wyjściu również jest 1. Możemy więc stwierdzić, że na wyjściu tej bramki występuje sygnał X Traktując stan drugiego wejścia jako pewien sygnał sterujący, widzimy, że gdy ma on wartość 1, wówczas sygnał z drugiego wejścia jest przenoszony na wyjście. a gdy sygnał sterujący ma wartość 0, sygnał X jest blokowany, czyli... bramkowany. Stąd nazwa układu.
Mnożniki binarne Mnożniki binarne Często spotykamy się z mnożnikami dziesiętnymi typu kilogram, megatona, stosowanymi w celu skrócenia zapisu liczb dziesiętnych. Wygodniej opisać wartość 1000 g (gram) w postaci 1 kg (kilogram). Informatyka pozwala urządzeniom techniki komputerowej na przetwarzanie wiekszej ilości danych. Posługiwanie się podstawowymi jednostkami, czyli bitem może być nieefektywne i nieatrakcyjne wizualnie, dlatego również w systemie stosowane są tzw. mnożniki binarne (ang. binary multiples). Istnieją różnice w określaniu wartości i zapisie mnożników dziesiętnych i dwójkowych (binarnych). W dziesiętnym podstawą jest liczba 10, więc poszczególne mnożniki stanowią wielokrotność dziesiątki, np. 1000 gramów jest odpowiednikiem 103 (1 kilogram), a 1 000 000 ton to 106 (1 megatona). W systemie dwójkowym podstawą jest liczba 2, więc 1 kilo to 210, czyli 1024, a nie jak w przypadku mnożników dziesiętnych — 1000. Oznaczenia wielokrotności dziesiętnych zawiera tabela 1.1.
Mnożniki binarne * Symbol „k" dla kilo jest pisany małą literą (dla zapewnienia zgodności ze standardem SI).
Mnożniki binarne W 1998 roku, aby zapobiec nieporozumieniom związanym z mnożnikami binarnymi, komisja IEC (ang. International Electrotechnical Commission — Międzynarodowa Komisja Elektrotechniczna) opracowała standard nazw symboli wielokrotności binarnych.
Mnożniki binarne Problemem jest to, że niewiele osób stosuje standard IEC i wciąż widzimy oznaczenia 1024 Kb, 1024 KB, mimo że dotyczą one wielokrotności binarnych, a więc powinno się stosować zapis 1024 Kib, 1024 MiB itd (tabela 1.3).
Algebra Boole'a Fundamentem współczesnej logiki matematycznej oraz techniki cyfrowej jest zbiór aksjomatów opracowanych przez angielskiego matematyka George'a Boole'a, które przedstawił on w dziele An Investigation ofthe Laws of Thought (O prawach logicznego wnioskowania). Algebrą Boole'a nazywa się niepusty zbiór A, w którym znajdują się dwa elementy 0, 1 oraz określone są dwuargumentowe działania sumy (+ lub v) i iloczynu (* lub ^) i jedno działanie jednoargumentowe nazywane dopełnieniem lub negacją (- lub -), spełniające następujący układ aksjomatów (dla a, b, c e A):
Algebra Boole'a • Definicja • Algebra Boole'a to struktura algebraiczna , w której i są działaniami dwuargumentowymi, jest operacją jednoargumentową, a 0 i 1 są wyróżnionymi różnymi elementami zbioru , spełniająca następujące warunki dla wszystkich :
Układy cyfrowe Funktory logiczne są przedstawiane graficznie za pomocą piktogramów (symboli graficznych), dzięki czemu istnieje możliwość projektowania systemów logicznych na papierze lub przy użyciu oprogramowania komputerowego. Podstawowe bramki logiczne AND, OR i NOT odzwierciedlają funkcje logiczne opisane przez algebrę Boole'a. Współcześnie fizyczne funktory rzadko są budowane na bazie pojedynczych elementów półprzewodnikowych; najczęściej korzysta się z gotowych bramek zawartych w układach scalonych typu TTL lub CMOS (rysunek 1.3).
Układy cyfrowe Rysunek 1.3. Schemat układu scalonego TTL7409 zawierającego cztery bramki AND Podstawowe bramki OR i AND (oraz pochodne) mają dwa wejścia i jedno wyjście, natomiast bramka NOT ma jedno wejście i jedno wyjście. Działanie funktorów jest opisywane za pomocą tablic prawdy, w których prezentuje się kolejne kombinacje stanów na wejściach oraz odpowiednie wartości na wyjściu.
Układy cyfrowe 1.6.7. Półsumator Funktory logiczne wykonują operacje logiczne. Aby stworzyć układ cyfrowy wykonujący operacje arytmetyczne, należy go zaprojektować z wykorzystaniem odpowiednio połączonych bramek. Prostym układem sumującym liczby binarne jest półsumator (rysunek 1.10). Układ półsumatora ma dwa wejścia A. i B., na które podaje się sumowane bity, oraz dwa wyjścia. Na wyjściu Wi sumator zwraca wyniki sumowania, na wyjściu G — bity przeniesienia.
Układy cyfrowe Półsumator jest zbudowany z bramki XOR i AND: XOR generuje wyniki, a funktor AND jest odpowiedzialny za bity przeniesienia. Wyjście W realizuje różnicę symetryczną W = A* B + A* B, natomiast przeniesienie jest realizowane przez iloczyn C = A*B.
Układy cyfrowe Do projektowania układów z wykorzystaniem bramek logicznych i analizy ich działania można wykorzystać darmowe oprogramowanie. Takimi programami są np. Atanua (aplikacja na platformy Windows/Linux/Mac OS dostępna na stronie http://sol.gfxile.net/atanua/) oraz Digital Works (rysunek 1.12) dostępny pod adresem internetowym http://www.electronics-lab.com/downloads/ schematicl002lindex.html.
Układy cyfrowe Zadanie domowe! Dokonać analizy podanej strony. http://technical.elektronowolt.net