Digitaalitekniikan matematiikka Luku 12 Sivu 1 (15) A = a = i i w i
Digitaalitekniikan matematiikka Luku 12 Sivu 2 (15) Johdanto Tässä luvussa esitetään kymmenjärjestelmän lukujen eli BCD-lukujen esitystapoja digitaalilaitteissa ja lisäsisältönä NBCD-lukujen yhteenlaskualgoritmi esitellään erityisesti muuttuvien signaalien koodaukseen soveltuvat Graykoodit esitetään tärkeimmät merkkien, kuten kirjainten ja muiden kirjoituksessa käytettävien merkkien koodaamiseen käytettävät merkkikoodit Luvun tavoitteena on antaa käsitys muiden lukujen kuin binaarilukujen esittämisestä digitaalilaitteissa tutustuttaa tärkeimpiin merkkikoodeihin ja niiden ominaisuuksiin
Digitaalitekniikan matematiikka Luku 12 Sivu 3 (15) Kymmenjärjestelmän lukujen esitys digitaalilaitteissa Joissakin tapauksissa on edullista käyttää lukujen esitykseen 10- järjestelmää eikä 2-järjestelmää syöttö ja tulostus 10-järjestelmässä vain vähän tai ei ollenkaan laskentaa BCD Tällöin koodataan 10-järjestelmän luvut numeroittain Koodeja nimitetään BCD-koodeiksi (Binary Coded Decimal) Tarvitaan vähintään neljä bittiä (2 3 = 8, 2 4 = 16) Erilaisia 4-bittisiä BCD-koodeja on noin 76 000 000 Yleisin on NBCD-koodi (Natural BCD); usein tätä nimitetään BCD-koodiksi NBCD-koodissa kymmenjärjestelmän numeroa vastaa sen binaariesitys neljällä bitillä NBCD-koodi on painotettu koodi (weighted code) koodisanan arvo lasketaan sen bittien arvojen painotettuna summana NBCD-koodin painot ovat 8, 4, 2 ja 1 NBCD-koodia nimitetään myös 8421-koodiksi
Digitaalitekniikan matematiikka Luku 12 Sivu 4 (15) NBCD-koodi NBCD-koodit Numero Koodi Koodi 0 0000 0000 1 0001 0001 2 0010 0010 3 0011 0011 4 0100 0100 5 0101 0101 6 0110 0110 7 0111 0111 8 1000 1000 9 1001 1001 NBCD Koodisanat 1010... 1111 eivät ole käytössä. Moninumeroiset kymmenjärjestelmän luvut esitetään kirjoittamalla numeroiden BCDkoodit peräkkäin Esimerkki: 185 185 10 = 10 0001 0001 1000 1000 0101 0101 NBCD (= NBCD (= 10111001 2 ) ) Luvun BCD-esityksessä on lähes aina enemmän bittejä kuin sen binaariesityksessä? 1
NBCD-lukujen yhteenlasku Digitaalitekniikan matematiikka Luku 12 Sivu 5 (15) Lasketaan yhteen numero kerrallaan Otetaan huomioon numerosta toiseen siirtyvä muistinumero Tehdään kahdessa vaiheessa ensin summataan koodit kuten binaariluvut jos summa on enintään 9 10 (1001 2 ), se on sellaisenaan oikea jos summa on yli 9 10 tai syntyy muistinumero, summaan lisätään korjauksena luku 1111 2-1001 2 = 0110 2 = 6 10 Esimerkki: Laske yhteen NBCD-luvut A = 0011 0100 1000 (= 348 10 ) ja B = 0101 1000 1001 (= 589 10 ) 1 1 1 1 1 0000 0000 3 0011 0011 4 0100 0100 8 1000 1000 + 5 + 0101 0101 + 8 + 1000 1000 + 9 + 1001 1001 9 1001 1001 13 13 1101 1101 17 17 1 0001 0001 + 0110 0110 + 0110 0110 9 1001 1001 3 0011 0011 7 0111 0111 Σ Lisä
BCD- (NBCD-) -summain Digitaalitekniikan matematiikka Luku 12 Sivu 6 (15) Binaarinen yhteenlasku ensimmäisellä summaimella Muistinumero C out, jos binaarisumma > 9 10 Korjaus tarvittaessa lisäämällä summaan 0110 2 = 6 10 toisella summaimella Σ P 0 0 P 1 Σ P P 2 0 0 P 3 3 Σ P Q 0 0 0 S Q 3 3 0 1 S 1 Q Q Σ 2 & 0 0 S 2 Q 3 3 3 S 3 Q C 1 in CI CO & 3 Σ Lisä CI CO C out
Muita BCD-koodeja Digitaalitekniikan matematiikka Luku 12 Sivu 7 (15) Desimaali- NBCD NBCD numero 8421 8421 2421 2421 84(-2)(-1) Excess-3 0 0000 0000 0000 0000 0000 0000 0011 0011 1 0001 0001 0001 0001 0111 0111 0100 0100 2 0010 0010 0010 0010 0110 0110 0101 0101 3 0011 0011 0011 0011 0101 0101 0110 0110 4 0100 0100 0100 0100 0100 0100 0111 0111 5 0101 0101 1011 1011 1011 1011 1000 1000 6 0110 0110 1100 1100 1010 1010 1001 1001 7 0111 0111 1101 1101 1001 1001 1010 1010 8 1000 1000 1110 1110 1000 1000 1011 1011 9 1001 1001 1111 1111 1111 1111 1100 1100 BCD BCD BCD Lisä
BCD-koodien ominaisuuksia Digitaalitekniikan matematiikka Luku 12 Sivu 8 (15) NBCD- (8421-) -koodi, 2421-koodi ja 84(-2)(-1)-koodi ovat painotettuja koodeja koodisanan arvo A voidaan laskea kaavasta a i ovat koodisanan bitit ja w i painot A = Σ a i w i i paino on yleensä positiivinen, mutta voi olla myös negatiivinen Excess-3-koodi ei ole painotettu koodi 2421-koodi, 84(-2)(-1)-koodi ja Excess-3-koodi ovat itsekomplementoivia koodeja koodisanan yhdeksän komplementti saadaan invertoimalla bitit yhdeksän komplementti vastaa binaarilukujen yhden komplementtia Lisä BCD BCD BCD
Digitaalitekniikan matematiikka Luku 12 Sivu 9 (15) Gray-koodit 1 Keskeinen ominaisuus: koodisanasta seuraavaan vain yksi bitti muuttuu Käytetään mm. muuttuvien analogiasuureiden digitalisoinnissa Vältetään binaarikoodia käytettäessä syntyvät virhetilanteet koodisanan muuttuessa Esimerkki: Akselin asennon osoitus koodikiekolla binaarikoodissa haluttu muutos 11 00: virhe 11 10 00 Gray-koodissa haluttu muutos 10 00: ei virhettä GRAY 1 1 1 0 1 0 1 0 Virhe! Anturit oikein Anturit sivussa Anturit oikein Anturit sivussa Binaarikoodi Gray-koodi
Digitaalitekniikan matematiikka Luku 12 Sivu 10 (15)? 2 Gray-koodit 2 Koodisanojen määrä ja pituus valittavissa Koodisanojen määrä voi olla mikä tahansa parillinen luku Koodisanojen määrää lisätään peilaamalla GRAY Gray-koodeja 1-bittinen 2-bittinen 3-bittinen 4-bittinen 0 00 00 000 000 0000 0000 1 01 01 001 001 0001 0001 11 11 011 011 0011 0011 10 10 010 010 0010 0010 110 110 0110 Peilataan 0110 111 111 0111 0111 101 101 0101 0101 100 100 0100 Lisätään bitti 0100 1100 1100 1101 1101 1111 1111 1110 1110 1010 1010 1011 1011 1001 1001 1000 1000
Digitaalitekniikan matematiikka Luku 12 Sivu 11 (15) Merkkikoodit Digitaalilaitteissa esitetään erilaisia merkkejä, kuten kirjaimia A b K Ä p ü Ω ы numeroita (muutoin kuin binaarilukuina) 1 2 3 4 5 6 7 8 9 0 erikoismerkkejä!!& % [[]] = @ # <> <> puoligraafisia merkkejä ohjausmerkkejä (ohjauskoodeja) CR CR LF LF FF FF SYN SYN ESC ESC ACK ACK Esittämiseen käytetään merkkikoodeja (character code) tiettyä merkkiä vastaa tietty koodi eli bittiyhdistelmä koodin bittimäärä riippuu esitettävien erilaisten merkkien lukumäärästä: n:llä bitillä voidaan suoraan esittää enintään 2 n merkkiä koodin bittimäärä on perinteisesti sama kaikille merkeille uusimmissa koodeissa käytetään yleisimmille merkeille lyhyempää esitystä (8 bittiä) kuin harvinaisemmille (16-32 bittiä)
Digitaalitekniikan matematiikka Luku 12 Sivu 12 (15) ASCII-koodi Perinteinen merkkikoodi on ASCII-koodi (American Standard Code for Information Interchange) eli ITU-aakkosto n:o 5 7 bittiä 128 erilaista merkkiä 32 ohjausmerkkiä 10 numeroa 26 isoa kirjainta 26 pientä kirjainta 34 erikoismerkkiä ei sisällä skandinaavisia eikä muitakaan erikoiskirjaimia ASCII kansallisia versioita olemassa: osa erikoismerkeistä korvattu kansallisilla kirjaimilla, esim. å, Å, ä, Ä, ö, Ö sellaisenaan jäänyt pois käytöstä, mutta perusta uudemmille merkkikoodeille
ISO 8859 -merkkikoodit Digitaalitekniikan matematiikka Luku 12 Sivu 13 (15) ISO 8859 8 bittiä, 256 merkkiä Nykyään 15 eri versiota Perusversio ISO 8859-1 eli ISO Latin 1 (ei sisällä -merkkiä) Euroversio ISO 8859-15 eli ISO Latin 9 (sisältää -merkin) Myös mm. turkkilainen, romanialainen, kyrillinen, kreikkalainen, arabiankielinen, hepreankielinen ja thainkielinen versio Numerot, kirjaimet ja erikoismerkit koodialueella 0 10-127 10 (00 16-7F 16 ) kuten ASCII-koodissa Ohjauskoodivaraus koodialueelle 128 10-159 10 (80 16-9F 16 ) Kansallisia kirjaimia ja lisää erikoismerkkejä koodialueella 160 10-255 10 (A0 16 -FF 16 ) Käytössä mm. mikrotietokoneissa Windows-käyttöjärjestelmän koodisivu 1252 on lähes ISO Latin 1 Esittele kooditaulukot
Digitaalitekniikan matematiikka Luku 12 Sivu 14 (15) ISO/IEC 10646 ja Unicode -merkkikoodit ISO/IEC 10646 ISO/IEC 10646 (UCS, Universal Character Set) Unicode sisältää valtaosan maailman kielissä käytettävistä merkeistä ja lisäksi suuren määrän muita merkkejä 16- ja 32-bittiset versiot (UCS-2 ja UCS-4), versiossa 10646:2011 (tulossa voimaan vuonna 2011) 109 448 merkkiä uusia merkkejä lisätään jatkuvasti Unicode UTF-koodit (UTF = Unicode Transformation Format) Unicode-konsortion kehittämä merkkikoodi, nykyinen versio 6.0.0, jossa on 109 449 merkkiä yhteensopiva ISO/IEC 10646 -koodin kanssa monipuolisempi kuin ISO/IEC 10646 keskeiset koodityypit UTF-8, UTF-16 ja UTF-32 UTF-8 käyttää ASCII-koodin mukaisiin merkkeihin 8 bittiä ja muihin merkkeihin joko 16 tai 32 bittiä UTF-16 käyttää merkkeihin joko 16 tai 32 bittiä UTF-32 käyttää merkkeihin aina 32 bittiä
Digitaalitekniikan matematiikka Luku 12 Sivu 15 (15) Yhteenveto Lukuja Lukuja esitetään digitaalilaitteissa myös myös BCD-koodattuina kymmenjärjestelmän lukuina lukuina Tärkein Tärkein BCD-koodi on on NBCD-koodi, mutta mutta muitakin koodeja käytetään niiden niiden eri eri tilanteisiin sopivien ominaisuuksien takia takia NBCD-lukujen yhteenlasku tehdään kahdessa vaiheessa NBCDsummaimella Gray-koodeissa vain vain yksi yksi bitti bitti muuttuu koodisanasta seuraavaan siirryttäessä Merkkikoodeilla esitetään kirjaimia, numeroita, erikoismerkkejä, puoligraafisia merkkejä ja ja ohjausmerkkejä Keskeisiä merkkikoodeja ovat ovat ASCII-koodi, ISO ISO 8859-koodit sekä sekä NBCD- ISO ISO 10646-koodi ja ja Unicode