Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Siirtorekisterin toteutus Javalla

Samankaltaiset esitykset


Esitys aiheesta: "Siirtorekisterin toteutus Javalla"— Esityksen transkriptio:

1 Siirtorekisterin toteutus Javalla

2 Siirtorekisteri (CRC-8)
Positio 7 6 5 4 3 2 1 Nyt siirtorekisteriin tuodaan bittejä oikealta Esimerkiksi Position 2 uusi arvo on position 7 ja position 1 XOR operaation tulos Eli kun bittejä siirretään niin XOR operaatio edellisen kierroksen arvoista Javalla seuraavasti ((rekisteri & 0x80) >>> 7) ^ ((rekisteri & 0x02) >>> 1);

3 Siirtorekisteri (CRC-8)
Positio 7 6 5 4 3 2 1 Positio 0: Byte uusi[pituus]; // uusi[0] = ; int maski[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; for (int i=0;i<pituus;i++) { // go through all bytes for (int j=7;j>=0;j--) { // move each bit of byte to register MSB first { // lisää muut positiot ja muu rekisterin käsittely ((rekisteri & 0x80) >>> 7) ^ ((uusi[i] & maski[j]) >>> j); }

4 CRC koodauksen toteutus siirtorekisterillä
Positio 7 6 5 4 3 2 1 Esimerkiksi CRC-8 koodaus

5 Siirtorekisteri (CRC-8)
Positio 7 6 5 4 3 2 1 A B C D E F G H Maskataan rekisteristä position 7 bitti ja siirretään (rekisteri & 0x80) >>> 7 Olkoon rekisterissä esim. seuraavat bitit (A - H joko 0 tai 1) rekisteri ABCDEFGH 0x80 rekisteri & 0x80 A (rekisteri & 0x80) >>> 7 A

6 Siirtorekisteri (CRC-8)
Positio 7 6 5 4 3 2 1 A B C D E F G H Maskataan rekisteristä position 1 bitti ja siirretään (rekisteri & 0x02) >>> 1 Rekisterissä samat bitit kuin edellä (A - H joko 0 tai 1) rekisteri ABCDEFGH 0x20 rekisteri & 0x20 000000G0 (rekisteri & 0x20) >>> 1 G

7 Siirtorekisteri (CRC-8)
Positio 7 6 5 4 3 2 1 A B C D E F G H XOR operaatio rekisterin positioiden 7 ja 1 bitit välillä ((rekisteri & 0x80) >>> 7) ^ ((rekisteri & 0x02) >>> 1); (rekisteri & 0x80) >>> 7 A (rekisteri & 0x02) >>> 1 G XOR A XOR G Tulos on bitti X X

8 Siirtorekisteri (CRC-8)
Positio 7 6 5 4 3 2 1 IJKL… A B C D E F G H Tehdään kaikki XOR operaatiot Tulokset olkoon X, Y ja Z vasemmalta oikealle Siirretään XOR operaation tulokset oikeaan positioon Eli positiot 2, 1 ja 0 X << 2 00000X00 Y << 1 000000Y0 Z (ei tarvitse siirtää) Z

9 Siirtorekisteri (CRC-8)
Positio 7 6 5 4 3 2 1 JKL… A B C D E F G H I Siirretään kaikkia bittejä vasemmalle rekisteri = (rekisteri << 1); rekisteri BCDEFGHI

10 Siirtorekisteri (CRC-8)
Positio 7 6 5 4 3 2 1 JKL… A B C D E F G H I Asetetaan XOR laskujen tulokset oikeille paikoille rekisteri = (rekisteri & ~0x04) | (X << 2); Voisi olla myös ^ operaatio, koska ensin nollataan edellinen arvo rekisteri BCDEFGHI 0x04 ~0x04 X << 2 00000X00

11 Siirtorekisteri (CRC-8)
Positio 7 6 5 4 3 2 1 JKL… A B C D E F G H I rekisteri = (rekisteri & ~0x04) | (X << 2); rekisteri BCDEFGHI ~0x04 rekisteri & ~0x04 BCDEF0HI rekisteri & ~0x04 BCDEF0HI X << 2 00000X00 (rekisteri & ~0x04) | (X << 2) BCDEFXHI

12 Siirtorekisteri (CRC-8)
Positio 7 6 5 4 3 2 1 JKL… A B C D E F X Y Z Vastaavasti muille XOR operaation tuloksille Y ja Z Ja sitten aloitetaan alusta…


Lataa ppt "Siirtorekisterin toteutus Javalla"

Samankaltaiset esitykset


Iklan oleh Google