71
Elektronski fakultet Niš Katedra za elektroniku BINARNI PSEUDO-RANDOM SEKVENCER Nedeljković Miodrag 10741

Elektronski fakultet Niš Katedra za elektroniku

  • Upload
    ayita

  • View
    64

  • Download
    1

Embed Size (px)

DESCRIPTION

Elektronski fakultet Niš Katedra za elektroniku. BINARNI PSEUDO-RANDOM SEKVENCER. Nedeljkovi ć Miodrag 10741. Uvod. Ideja autora ovog rada je da se predstavi pseudo-slučajni binarni generator (PRNG) i da se izvrši simulacija PRNG pomoću mikrokontrolera. - PowerPoint PPT Presentation

Citation preview

Page 1: Elektronski fakultet Niš Katedra za elektroniku

Elektronski fakultet NišKatedra za elektroniku

BINARNI PSEUDO-RANDOM

SEKVENCER

Nedeljković Miodrag 10741

Page 2: Elektronski fakultet Niš Katedra za elektroniku

Uvod• Ideja autora ovog rada je da se predstavi pseudo-

slučajni binarni generator (PRNG) i da se izvrši simulacija PRNG pomoću mikrokontrolera.

Ovaj rad je koncipiran iz nekoliko poglavlja.

• U prvom poglavlju date su opšte smernice vezane za PRNG.

-objašnjenja vezana za PRNG,

-kao i kratke teorije o karakterističnim,

-primitivnim i

-ne primitivnim polinomima.

Page 3: Elektronski fakultet Niš Katedra za elektroniku

• Kroz drugo poglavlje dati su metodi implementacije PRNG-a i to Fibonacci-jev i Galois metod.

• Treće poglavlje opisuje PIC16F877A mikrokontroler i to njegove najbitnije karakteristike.

• Programiranje mikrokontrolera je opisano u četvrtom poglavlju i tu je objašnjen način pisanja koda u µC-u za mikročipove mikrokontrolere kao i kompajliranje koda.

• Peto poglavlje sadrži simulaciju PRNG sa svim potrebnim objašnjenjima, opis praktičnih delova, i opis programiranja PIC16F877A mikrokontrolera pomoću programatora.

Page 4: Elektronski fakultet Niš Katedra za elektroniku

• U šestom poglavlju je definisana laboratorijska vežba za samostalan rad studenata gde će moći da se upoznaju sa PRNG-om i njegovim karakteristikama.

• Kroz sedmo poglavlje (zaključak) je dat kratak osvrt na najbitnije karakteristike PRNG-a.

• Osmo poglavlje čini spisak akronima.

• Deveto poglavlje čini spisak korišćene literature koja je potrebna za bolje upoznavanje problematike vezane za PRNG.

• U desetom poglavlju je dat originalan opis za komponenete, hardver, i softver korišćen u izradi ovog seminarskog a koji daje proizvođač.

• I na kraju u desetom poglavlju je data biografija autora.

Page 5: Elektronski fakultet Niš Katedra za elektroniku

PSEUDO-SLUČAJNI BINARNI GENERATOR (PRNG)

UOPŠTENO O PRNG-u

• Pseudo-slučajni binarni generator je generator pseudo slučajne sekvence koja se sastoji od binarnh brojeva (0 i 1).

• Skraćenica PRNG potiče od početnih slova engleskog naziva za ovaj generator koji glasi pseudo-random number generator.

• Najednostavniji i najčešći metod implementacije PRNG-a je pomoću pomeračkog registra sa linearnom povratnom spregom (linear feedback shift register-LFSR).

Page 6: Elektronski fakultet Niš Katedra za elektroniku

• LFSR je izgradjen od prostih pomeračkih registara sa dodatkom malog broja xor kola (mali hardver, velika brzina) što ga čini veoma pogodnim za primene u ugradjenim sistemima.

• Kod generisan pomoću LFSR-a je u stvari pseudo slučajan zato što se posle isteka odredjenog vremenskog perioda slučajni brojevi (sekvenca) ponavljaju.

• Ovo kolo nam je potrebno gde god postoji potreba za primenu ponovljivih slučajnih podataka, male memorije, ograničenog vremena generisanja i drugih sličnih zahteva, gde generatori pravih slučajnih podataka nebi bili primenljivi.

Page 7: Elektronski fakultet Niš Katedra za elektroniku

KARAKTERISTIČNI POLINOMI 

• Već je pomenuto da se PRNG sastoji od pomeračkog registra sa linearnom povratnom spregom (LFSR-a). Opet LFSR je sačinjen od prostih pomeračkih registara, sastavljenih od flip-flopova, i xor kola preko kojih se zavaraju povratne sprege.

• Ako imamo n D flip-flopova, onda postoji mogućnost za postojanje n+1 povratne sprege. Izbor potrebnih povratnih sprega za LFSR od moguće n+1 opisuje se karakterističnim polinomom.

• Karakteristični polinom za LFSR sa n flip-flopova ima sledeću uopštenu formu: 

C01+C1X+C2X2+...+Cn-2Xn-2+Cn-1Xn-1+CnXn 

gde su koeficijenti Ci binarni koeficijenti (CiЄ(0,1)).

Page 8: Elektronski fakultet Niš Katedra za elektroniku

• Pošto se sa C01 i CnXn opisuju ulaz i izlaz LFSR-a oni su prisutni u izrazu uvek. Ovako definisan polinom se može definisati i u drugom obliku i to preko binarne liste koeficijenata i liste eksponenata (stepena).

• Uzmimo na primer karakteristični polinom 1+X3+X4. Njegova odgovarajuća predsava pomoću binarne liste koeficijenata je C0 =1, C1=0, C2=0, C3=1, C4=1. Alternativna notacija binarne liste koeficijenata je (1, 0, 0, 1, 1). Ovaj polinom definisan preko liste eksponenata glasi (0, 3, 4).

Page 9: Elektronski fakultet Niš Katedra za elektroniku

PRIMITIVNI POLINOMI 

• Primitivni polinomi su oni koji ne mogu biti prikazani kao proizvod dva ne trivijalna polinoma.

• U tabeli 1. su dati primitivni polinomi od stepena n=2 do stepena n=5. Primitivni polinomi uvek dolaze u paru.

• Tabela 1. Primitivni polinomi u polju sa dva elementa (0,1) do petog stepena

n-stepen polinoma Primitivni polinom

2 1+X+X2

3 1+X+X3; 1+X2+X3

4 1+X+X4; 1+X3+X4;

5 1+X2+X5; 1+X3+X5; 1+X+X2+X3+X5; 1+X+X3+X4+X5; 1+X2+X3+X4+X5; 1+X+X2+X4+X5

Page 10: Elektronski fakultet Niš Katedra za elektroniku

• Na primer za polinom 1+X3+X4 njegov recipročni polinom je 1+X+X4, ili zapisan preko liste eksponenata (0, 1, 4), ili dat preko binarne liste koeficijenata kao (1, 0, 0, 1, 1).

• Nalaženje recipročnog polinoma je dosta lagano. Njegov recipročni polinom je (1, 1, 0, 0, 1). Znači za dobijanje recipročnog polinoma potrebno je samo izvršiti invertovanje koeficijenata, naravno izuzev zadnjeg i prvog koji su uvek prisutni i predstavljaju ulaz i izlaz.

• LFRS stepena n ima 2n-1 mogućih karakterističnih polinoma a samo veoma mali broj njih je primitivan. Najjednostavniji primitivni polinomi su oni koji imaju samo još jedan dodatni Ci pored C0 i Cn (trinom).

Page 11: Elektronski fakultet Niš Katedra za elektroniku

NE PRIMITIVNI POLINOMI 

• LFRS implementacija a samim tim i implementacija PRNG-a sa ne primitivnim polinomima nije mnogo u upotrebi sa izuzetkom LFSR-a koji sadrži samo trivijalne povratne sprege C0 i Cn a koji služi samo za ponavljanje inicijalne vrednosti iz registara.

OBLAST PRIMENE PRNG-a 

Primena PRBS-a zasnovanog na LFSR-u je velika i prostire se kroz razne oblasti elektronike, kao što su:

• kriptografija (sigurnosni sistemi,sigurnosno šifrovanje/dešifrovanje, šifrovanje/dešifrovanje podataka).

• kompijuterska grafika (skremblovanje/deskremblovanje podataka,digitalno procesiranje podataka).

Page 12: Elektronski fakultet Niš Katedra za elektroniku

• samotestiranje ugradjenih sistema-BIST (ček suma, testiranje veza u realnim uslovima, testiranje sistema u uslovima najgoreg slučaja).

• detekcija greške i korekcija

• navigacioni sistemi

• CDMA mobilni komunikacioni sistemi

• kompresija podataka i dr.

Page 13: Elektronski fakultet Niš Katedra za elektroniku

IMPLEMENTACIJA PRNG-a• U praksi postoje dve veoma jednostavne

implementacije PRNG-a zasnovane na LFSR-u i to:

- Fibonacci-jev metod implementacije

- Galois metod mplementacije

• Bilo koji od ova dva metoda je moguće implementirati i hardverski i softverski.

 FIBONACCI-jev METOD IMPLEMENTACIJE Fibonacci

˜1175-1250 Slika 1. Fibonacci i Fibonacci-jev princip implementacije

Page 14: Elektronski fakultet Niš Katedra za elektroniku

• Fibonacci-jeva implementacija PRNG-a se sastji iz linearnog pomeračkog registra sa povratnom spregom. Ovaj registar je sačinjen od n D flip-flopova i na njega se priključuje n+1 povratna sprega.

• Mehanzam povratne sprege je realizovan na taj način što se izlazi d flip-flopa (koeficijenti Ci na slici 2) sprovode na ulaze xor kola a izlaz xor kola vraća na ulaz jednog od flip-flpova (najčešće prvog/zadnjeg).

• Prisustvo ili odsustvo povratne sprege opisano je tkz. generatorom polinoma odnosno polinomom što je opisano u prethodnom poglavlju.

• PRNG ima 2n mogućih stanja, međutim njegova primena je ograničena na maksimalnu dužinu od 2n -1 gde je n dužina PRNG-a odnosno broj flip-flopova.

Page 15: Elektronski fakultet Niš Katedra za elektroniku

• Stvarna dužina zavisi od izabranog polinoma a u slučaju kada nije implementiran primitivni polinom i od početnog stanja.

• Kada je primenjen primitivni polinom izbor različitog početnog stanja samo vremenski pomera sekvencu.

• Sekvenca dobijena primenom inverznog primitivnog polinoma je vremenski pomerena inače je ista u odnosu na sekvencu dobijenu primenom običnog primitivnog polinoma.

• Za bolje razumevanje kako se primitivnim polinomom implementira u hardver po Fibonacci-jevom principu razmotrimo primer polinoma petog stepena datog sa:

1+x3+x4 ili kao c0=1,c1=0,c2=0,c3=1,c4=1,

(1,0,0,1,1) ili kao (0,3,4).

Page 16: Elektronski fakultet Niš Katedra za elektroniku

• Pošto implementiramo PRNG pomocu polinoma 4-og stepena n=4, onda je dužina generatora sekvenci m=4, što znači da nam je potreban pomerački registar od 4 D flip-flopova za njegovu realizaciju (slika 3).

• Slika 2. Primer Fibonacci-jeve implementacije polinoma petog stepena

• Dužina binarne sekvence, za ovaj primer je mb=2n_ 1=24_ 1=15. Binarna sekvenca se čita sa flip-flopa najveceg stepena a to je u ovom slučaju na izlazu Q4.

Q

QSET

CLR

D

Q

QSET

CLR

D

Q

QSET

CLR

D

Q

QSET

CLR

D

Q1 Q2 Q3 Q4

Polinom povratne sprege

1 0 10 1

Page 17: Elektronski fakultet Niš Katedra za elektroniku

• Kao što se sa slike 3 vidi, za implementaciju ovog polinoma ulazi xor kola su vezani na izlaz flip-flopa (Q2) i izlaz flip-flopa (Q4) a izlaz na ulaz prvog flip-flopa.

• Za generisanje povratne sprege koristili smo primitivni polinom četvrtog stepena f(x)= 1+x3+x4 koji omogućava sekvencu najdužeg trajanja, bez ponavljanja.

• Iz sledeća dva primera uočimo šta nam to u polinomu određuje koliko nam je potrebno flip-flopova i xor kola za implementaciju nekog polinoma.

• U tabeli 2 su date sekvence kroz koje prolazi PRNG za primer polinoma četvrtog stepena. Kao inicijalno stanje je uzeto stanje 0001. Koje stanje dolazi sledeće zavisi od predhodnog stanja i položaja povratne sprege.

Page 18: Elektronski fakultet Niš Katedra za elektroniku

• Specijalno stanje PRNG-a je kada imamo sve nule u registru. Kada je prisutno stanje sa svim nulama, nije moguće iz njega izaći pa se ono još naziva i zaključano stanje.

Slika 3. Primeri šta nam to u polinomu određuje koliko nam je potrebno flip-flopova i xor kola za implementaciju nekog polinoma.

f(x)=x +x +15 2

n pokazuje koliko je potrebno flip-flopova (pet)

+ pokazuje koliko nam je potreno xor kola (jedno)

ili u drugom slučaju:

f(X) =x +x +x +x + 18 6 5 4

osam flip-flopova

tri povratne sprege pored dve stalno prisutne na ulazu i izlazu (tri dvoulazna xor ili jedno četvoroulazno)

Page 19: Elektronski fakultet Niš Katedra za elektroniku

• Specijalno stanje PRNG-a je kada imamo sve nule u registru. Kada je prisutno stanje sa svim nulama, nije moguće iz njega izaći pa se ono još naziva i zaključano stanje.

• Sekvence dobijamo na Q1-Q4 a binarnu sekvencu čitamo na izlazu flip-flopa najvećeg stepena što kada se primeni na naš primer znači da je to na Q4.

Tabela 2 .Prikaz sekvence kroz koje prolazi PRNG za naš primer polinoma četvrtog stepena za Fibonacci-jev metod.

Page 20: Elektronski fakultet Niš Katedra za elektroniku

korak Q4Q3Q2Q1 Q4 Decimalni ekvivalent

1 0001 počeno st. 1 1

2 0010 0 2

3 0100 0 4

4 1001 0 9

5 0011 1 3

6 0110 1 6

7 1101 0 13

8 1010 1 10

9 0101 0 5

10 1011 1 11

11 0111 1 7

12 1111 1 15

13 1110 1 14

14 1100 0 12

15 1000 0 8

16 0001 ponovo 1 1

Page 21: Elektronski fakultet Niš Katedra za elektroniku

GALOIS METOD IMPLEMENTACIJE Evariste Galois

1811-1832 Slika 4. E. Galois i Galois princip implementacije

Galois implementacija PRNG-a, takođe, sadrži n D flip-flopova koji čine pomerački registar i n+1 povratnu spregu. Razlika u odnosu na Fibonacci-jevu implementaciju je u tome sto se povratna sprega sa izlaza zadnjeg flip-flopa u nizu dovodi na xor kola koja se nalaze između ulaza i izlaza pojedinih susednih flip-flopova što je prikazano na slici 4.

Page 22: Elektronski fakultet Niš Katedra za elektroniku

• Xor kola kod ove implementacije se vezuju između svaka dva susedna flip-flopa na taj način što im se na jedan ulaz dovede izlaz zadnjeg flip-flopa u nizu, saglasno generatoru povratne sprege a na drugi ulaz im se dovodi izlaz flip-flopa koji mu predhodi, dok mu se izlaz vezuje na ulaz flip-flopa koji sledi.

• Prisustvo ili otsustvo povratne sprege je opisano generatorom polinoma na isti način kao u Fibonacci-jevom metodu. I ovde faktori Ci uzimaju vrednost CiЄ(0,1), kao kod Fibonacci-jevog metoda.

• Galois PRNG ima 2n mogućih stanja, međutim njegova primena je ograničena na maksimalnu dužinu od 2n -1 gde je n dužina PRNG-a odnosno broj flip-flopova.

Page 23: Elektronski fakultet Niš Katedra za elektroniku

• Stanje sa svim nulama je zabranjeno stanje ako se primenjuju xor kola za povratnu spregu, a ako se primenjuji nxor kola zabranjeno stanje je sa svim jedinicama.

• Stvarna dužina sekvence zavisi od izabranog polinoma a u slučaju kada nije implementiran primitivni polinom i od početnog stanja.

• Kada je primenjen primitivni polinom izbor različitog početnog stanja samo vremenski pomera sekvencu.

• Sekvenca dobijena primenom inverznog primitivnog polinoma je vremenski pomerena inače je ista u odnosu na sekvencu dobijenu primenom običnog primitivnog polinoma.

Page 24: Elektronski fakultet Niš Katedra za elektroniku

• Za bolje razumevanje kako se primitivnim polinomom implementira u hardver po Galois principu razmotrimo primer polinoma četvrtog stepena datog sa:

1+x3+x4 ili kao c0=1,c1=0,c2=0,c3=1,c4=1, (1,0,0,1,1) ilikao (0,3,4).

Pošto implementiramo PRNG pomocu polinoma četvrtog stepena n=4, onda je dužina generatora sekvenci m=4, što znači da nam je potreban pomerački registar od 4 D flip-flopova za njegovu realizaciju (slika 5).

Dužina binarne sekvence, za ovaj primer je mb=2n_ 1

= 24_ 1=15.

Binarna sekvenca se čita sa flip-flopa najveceg stepena a to je u ovom slučaju na izlazu Q4.

Page 25: Elektronski fakultet Niš Katedra za elektroniku

• I kod Galois implementacije za generisanje povratne sprege koristili smo primitivni polinom četvrtog stepena f(x)= 1+x3+x4 koji omogućava sekvencu najdužeg trajanja, bez ponavljanja.

• Slika 5. Primer Galois implementacije polinoma petog stepena

• I ovde kao i kod Fibonacci-jevog metoda isti parametri polinoma kazuju koliko nam je potrebno flip-flopova i xor kola, kao i gde se xor kola vezuju pa ih nećemo ponovo razmatrati.

Q

QSET

CLR

D

Q

QSET

CLR

D

Q

QSET

CLR

D

Q

QSET

CLR

D

Polinom povratne sprege

1 0 10 1

Q1 Q2 Q3 Q4

Page 26: Elektronski fakultet Niš Katedra za elektroniku

• Koje stanje dolazi sledeće zavisi od predhodnog stanja i položaja povratne sprege. Ako se povratna sprega ne menja u toku rada sekvenca je potpuno određena.

• U tabeli 3 su date sekvence koje generiše Galois PRNG generisan sa polinomom iz gore navedenog primera. Početno stanje iz kojeg se kreće je stanje 0001.

• Tabela 3 .Prikaz sekvence kroz koje prolazi PRNG za naš primer polinoma četvrtog stepena za Galoas metod.

Page 27: Elektronski fakultet Niš Katedra za elektroniku

korak

Q4Q3Q2Q1 Q4 Decimalni ekvivalent

1 0001 poč.stanje 1 1

2 1001 1 9

3 1101 1 13

4 1111 1 15

5 1110 0 14

6 0111 1 7

7 1010 0 10

8 0101 1 5

9 1011 1 11

10 1100 0 12

11 0110 0 6

12 0011 1 3

13 1000 0 8

14 0100 0 4

15 0010 0 2

16 0001ponovo 1 1

Page 28: Elektronski fakultet Niš Katedra za elektroniku

• Pre nego što damo par poređenja Fibonacci-jevog i Galoa metoda implementacije, recimo da se svaka Fibonacci-jeva implementacija PRNG može jednostavno transformisati u Galois PRNG. To se izvodi tako što se prvo otkače svi xor ulazi, zatim se izvrši inverzija eksponenata (flip-flopova) ali ne i smer u kom teku podaci. Sada vežemo xor ulaze u prethodne xor izlaze (povratne sprege) i dovedemo na jedan ulaz xor kola izlaz odgovarajućeg flip-flopa a na drugi ulaz xor kola izlaz celog sisema, i to je sve.

• Koju implementaciju ćemo da koristimo je stvar ukusa. Fibonacci-jeva implementacija je koncepcijski lakša zato što se samo ulazni bit u pomeračkom registru menja pri promeni kloka.

Page 29: Elektronski fakultet Niš Katedra za elektroniku

• Međutim Galois implementacija se može koristiti pri većim frekvencijama. To je naročito izraženo gde imamo više xor kola, zato što kod ove implementacije xor kola nisu redno vezana, već se operacije izvršavaju paralelno.

• Recimo još i to da je sekvenca generisana sa ova dva metoda korišćenjem istog primitivnog polinoma različita, dok je binarni izlaz isti stim što je vremenski pomeren.

Page 30: Elektronski fakultet Niš Katedra za elektroniku

PIC16F877A• Mikrokontroler (microcontroller) je elektronski uređaj

koji, slično kao i računar, ima zadatak da zameni čoveka u kontroli dela proizvodnog procesa ili gotovo celog proizvodnog procesa. To je uređaj opšte namene, koji pribavlja podatke, obavlja ogranicenu obradu nad tim podacima, i upravlja svojim okruženjem na osnovu rezultata izracunavanja.

• Primenjuju se od jednostavne regulacije osvetljenja, alarmnih sistema, pa do upravljanja robotima u industrijskim pogonima.

Page 31: Elektronski fakultet Niš Katedra za elektroniku

Osnovne karakteristike mikrokontrolera

Firma Microchip je tržištu ponudila mikrokontroler PIC16F877 pre oko deset godina. Ovaj mikrokontroler takođe predstavlja integraciju mikroprocesora (CPU), memorije i periferija. On je izrađen u CMOS tehnologiji sa ugrađenom FLASH i EEPROM memorijama, za čuvanje programa i podataka. PIC16F877 ima tipičnu RISC arhtekturu (karakteriše se manjim skupom instrukcija koje se brže izvršavaju u odnosu na CISC arhitekturu).

• RISC CPU visokih performansi

• 35 instrukcija obima jedne reči

• Radna frekvencija do 20 MHz

Page 32: Elektronski fakultet Niš Katedra za elektroniku

•Sve instrukcije su jednocikluske, sem instrukcija grananja koje su dvocikluske

•Trajanje taktnog intervala 200 ns (pri frekvenciji 20 MHz) Opkôd je obima 14

bita

•Hardverski magacin (stack) ima osam nivoa

•Postoje tri načina adresiranja (direktno, indirektno i relativno)

•Programska flash memorija je kapaciteta 8 k X 14-bitnih reči

•Memorije za podatke (RAM) je kapaciteta 368 X 8 bita

Page 33: Elektronski fakultet Niš Katedra za elektroniku

•Memorije za podatke (EEPROM) je kapaciteta 256 X 8 bita

•Prekidi (maksimalno 14 izvora prekida)

•Šest ulazno-izlaznih portova (A, B, C, D i E)Tri tajmera:

- Timer0 (TMR0): osmobitni tajmer/brojač_događaja

- Timer1 (TMR1): šesnaestobitni tajmer/brojač_događaja

- Timer2 (TMR2): osmobitni tajmer/brojač_događaja

•Serijska komunikacija: MSSP, USA

•Paralelna 8-bitna komunikacija: PSP

Page 34: Elektronski fakultet Niš Katedra za elektroniku

• ICSP (In Circuit Serial Programing) preko samo dva izvoda

• Analogni komparatorski modul sa programabilnim referentnim naponima

• 8-kanalni 10-bitni ADC (Analog-to-Digital Converter, analogno/digitalni konvertor)

• Power-on Reset : reset pri uključenju napajanja (POR)

• Power-up timer : unošenje kašnjenja nakon uključenja napajanja (PWRT)

• Oscillator Start-up Timer - unošenje kašnjenja neposredno po stabili-zovanju radne

frekvencije oscilatora (OST)

Page 35: Elektronski fakultet Niš Katedra za elektroniku

• Sleep mode - režim rada sa veoma malim utroškom energije

• Watchdog tajmer sa sopstvenim integrisanim RC oscilatorom za nezavisni rad

• Izbor tipa oscilatora (RC, XT, HS, LP)

• 100000 ciklusa Write/Erase programske memorije

• 1000000 ciklusa Write/Erase memorije za podatke EEPROM

• Trajanje podataka u EEPROM duže od 40 godina

• Radni napon može da bude u opsegu od 2V do 5.5V

Page 36: Elektronski fakultet Niš Katedra za elektroniku

• Mala potrošnja energije:

- <0.6 mA pri naponu od 3V i radnoj frekvenciji od 4 MHz

- 20µA pri naponu od 3V i radnom taktu od 32kHz

- <1µA u standby režimu rada.

ARHITEKTURA MIKROKONTROLERA

Samu strukturu mikrokontrolera PIC16F877 čini nekoliko celina:

• Aritmetičko-logička jedinica (ALU)

• Akumulator (Working Register)

• Hardverski magacin (Stack) organizivan u 8 nivoa

Page 37: Elektronski fakultet Niš Katedra za elektroniku

• EEPROM memorija podataka obima 256 bajtova

• Flash programska memorija – 8 kiloreči obima 14 bita

• RAM (File Registers) – 368 bajtova

• Višekanalni A/D konvertor,

• USART,

• SPI interfejs,

• I2C interfejs,

• šest U/I portova,

• tajmere itd.

Page 38: Elektronski fakultet Niš Katedra za elektroniku

Arhitektura mikrokontrolera PIC16F877

Page 39: Elektronski fakultet Niš Katedra za elektroniku

PORTOVI

Mikrokontroler PIC16F877 poseduje pet portova (PORT_A, PORT_B, PORT_C, PORT_D i PORT_E) i svi oni predstavljaju vezu njegove interne strukture sa spoljašnjim svetom. Svaki od ovih portova može da se konfiguriše kao ulazni ili kao izlazni. Ovi portovi su različitog obima:

- 6-pinski (PORT_A)

- 8-pinski (PORT_B, PORT_C, PORT_D)

- 3-pinski (PORT_E).

ORGANIZACIJA MEMORIJE

Strukturu memorije kod mikrokontrolera čine tri odvojena bloka:

-

Page 40: Elektronski fakultet Niš Katedra za elektroniku

Programska memorija

- Memorija podataka

- EEPROM memorija podataka.

Page 41: Elektronski fakultet Niš Katedra za elektroniku

PROGRAMIRANJE MIKROKONTROLERA

roC – SOFTVER ZA PIC MIKROKONROLERE

Navešćemo njegove osnovne karakteristike: -Kvalitetan editor sa automatskom kontrolom -Jasan asemblerski kôd i standardna kompatibilnost generisanih HEX datoteka -Preglednost strukture programa (kôda) -Veliki broj integrisanih biblioteka i rutina, koje

značajno ubrzavaju pisanje programa -Detaljni izveštaji i grafičko predstavljanje mape

RAM i -ROM memorija, statistike kôda i slično.

Page 42: Elektronski fakultet Niš Katedra za elektroniku

• mikroC – PARAMETRI UART TERMINALA -Serijski port (COM1, COM2, COM3) -Brzina prenosa -Broj stop bitova (1, 1.5 ili 2) -Izbor parnosti (bez, parna, neparna itd.) -Broj bitova koji čine karakter (5, 6, 7 ili 8) -Uključivanje/isključivanje handshaking

signala (RTS i DTR) -Izbor formata podatka koji se šalje (ASCII,

HEX ili DEC) -Način slanja. Za programiranje mikrokontrolera potrebni su -Bootstrap loader (na primer ALLPIC) i -Softver (na primer IC-Prog).

Page 43: Elektronski fakultet Niš Katedra za elektroniku

ALLPIC• Jednostavan i jeftin (do 10 evra)• Pripada grupi JDM loadera• Programiranje preko serijskog porta

Page 44: Elektronski fakultet Niš Katedra za elektroniku

• ALLPIC – električna šema

Page 45: Elektronski fakultet Niš Katedra za elektroniku

IC Prog – SOFTVER ZA PROGRAMIRANJE -Jednostavan za korišćenje -Kompatibilan sa 10-ak bootstrap loadera

Page 46: Elektronski fakultet Niš Katedra za elektroniku

V SIMULACIJA PRNG-a PREKO MIKROKONTROLERA

• Na sledećoj slici je prikazana blok šema PRNG-a (Pseudo-slučajni generator sekvenci). Kao što se vidi, PRNG je simuliran preko PIC16F877 (ovde radi na frekvenciji 4MHz). Omogućena je serijska veza mikrokontrolera sa PC računarom, a za konverziju naponskih nivoa (RS232C-TTL i obrnuto) koristi se interfejsno IC MAX232. Cela elektronika se napaja sa naponom 5V, koji se obezbeđuje preko stabilizator napona L7805 (u kućištu TO-220).

• Električna šema je prikazano na narednoj slici , dok je izgled štampane ploče dat na slici koja je data iza prethodne.

Page 47: Elektronski fakultet Niš Katedra za elektroniku

• Blok-šema PRNG-a realizovanog sa mikrokontrolerom PIC16F877

Page 48: Elektronski fakultet Niš Katedra za elektroniku

• Električna šema PRNG-a realizovanog sa mikrokontrolerom

12

DC POWER

C3

220uF

C4

220nF

C1

220uF

D8 1N4007

C2

2.2nF

MCLR1

PA02

PA13

PA24

PA35

PA46

PA57

RD8

WR9

PC217

PD221

PD322

PC423

PC524

PC625

PC726

PD427

PD528

PD629

PD730

CS10

VDD11

VSS12

OSC113

OSC214

PC015

PC116

PC318

PD019

PD120

VSS31

VDD32

PB033

PB134

PB235

PB336

PB437

PB538

PB639

PB740

IK2

PIC16F877-04

C5

22pF

C6

22pF

Qu1

4MHz

T1

D10

LED

D11

LED

D13

LED

D14

LED

D15

LED

D16

LED

D17

LED

D12

LED

D0

LED

D1

LED

D2

LED

D3

LED

D4

LED

D5

LED

D6

LED

D7

LED

T2

1 2 3 4 5 6 7 8

9

ON1

ResPack_2K2

1 2 3 4 5 6 7 8

9

ON2

ResPack_8x2K2

C1+1

Vcc16

V+2

Gnd15

C1-3

T1out14

C2+4

R1in13

C2-5

R1out12

V-6

T1in11

T2out7

T2in10

R2in8

R2out9

IK3

MAX232

162738495

DB9/F

C11220nF

C10

220n

F

C8

220nF

C9

220n

F

C7220nF

Vin1

Gn

d2

Vout3

IK1

LM7805

12345678

9ON3

ResPack_8x1K5

12345678

9ON4

ResPack_8x1K5

1 2 3 4 5 6 7 80 0 0 0 0

1110

9

0 0 0 0 00

P1

NP11

Page 49: Elektronski fakultet Niš Katedra za elektroniku

• Raspored prekidača, taster i LED

Page 50: Elektronski fakultet Niš Katedra za elektroniku

• Štampana ploča PRNG-a realizovanog sa mikrokontrolerom

Page 51: Elektronski fakultet Niš Katedra za elektroniku

PROGRAM U mikroC-u  unsigned short k, DD, X, Y  = 0;     // Definisanje varijabli void main()      {   TRISA = 0b111111;       // Definisanje i inicijalizacija  PORTA = 0b000000;          // pinova PORTOVA A, B, C, D, E  TRISB = 0b00000000;  PORTB = 0b00000000;  TRISC = 0b10111111;  PORTC = 0b00000000;  TRISD = 0b00000000;  PORTD = 0b00000000;  TRISE = 0b000;   CMCON = 7;  ADCON1 = 0x06;             // Definisanje pinova A porta kao                            // digitalnih   // Zadavanje polinoma  PORTD.F0 = PORTA.F1;  PORTD.F1 = PORTA.F2;  PORTD.F2 = PORTA.F3;  PORTD.F3 = PORTA.F4;    // Pocetna stanja  PORTD.F4 = PORTA.F5;  DD.F0 = PORTA.F5;  PORTD.F5 = PORTC.F0;  DD.F1 = PORTC.F0;  PORTD.F6 = PORTC.F1;  DD.F2 = PORTC.F1;  PORTD.F7 = PORTC.F2;

Page 52: Elektronski fakultet Niš Katedra za elektroniku

 DD.F3 = PORTC.F2;   PORTB.F5 = PORTC.F3;  PORTB.F4 = !PORTC.F3;       do {     // Galois 2. stepen    while (PORTC.F5==0 && PORTC.F4==1 && PORTC.F3 == 0)  {    PORTB.F7 = PORTC.F5;    PORTB.F6 = PORTC.F4;    if (PORTA.F0==1) {    k = 0;    }    if ((PORTA.F0==0)&& (k==0)) {    delay_ms(250);    k=1;    PORTB.F0 = DD.F0;    PORTB.F1 = DD.F1;    Y.F0 = PORTB.F1;    X.F0 = PORTD.F0 && Y.F0;    DD.F0 = Y.F0;    DD.F1 = (PORTB.F0 && !X.F0)||(!PORTB.F0 && X.F0);    }    }        // Galois 3. stepen    while (PORTC.F5==1 && PORTC.F4==0 && PORTC.F3 == 0)  {    PORTB.F7 = PORTC.F5;    PORTB.F6 = PORTC.F4;    if (PORTA.F0==1) {    k = 0;    }

Page 53: Elektronski fakultet Niš Katedra za elektroniku

 if ((PORTA.F0==0) && (k==0)) {    delay_ms(250);    k=1;    PORTB.F0 = DD.F0;    PORTB.F1 = DD.F1;    PORTB.F2 = DD.F2;    Y.F0 = PORTB.F2;    X.F0 = PORTD.F0 && Y.F0;    X.F1 = PORTD.F1 && Y.F1;    DD.F0 = Y.F0;    DD.F1 = (PORTB.F0 && !X.F0)||(!PORTB.F0 && X.F0);    DD.F2 = (PORTB.F1 && !X.F1)||(!PORTB.F1 && X.F1);    }    }     // Galois 4. stepen    while (PORTC.F5==1 && PORTC.F4==1 && PORTC.F3 == 0)  {    PORTB.F7 = PORTC.F5;    PORTB.F6 = PORTC.F4;    if (PORTA.F0==1) {    k = 0;    }    if ((PORTA.F0==0) && (k==0)) {    delay_ms(250);    k = 1;    PORTB.F0 = DD.F0;    PORTB.F1 = DD.F1;    PORTB.F2 = DD.F2;    PORTB.F3 = DD.F3;    Y.F0 = PORTB.F3;    X.F0 = PORTD.F0 && Y.F0;    X.F1 = PORTD.F1 && Y.F1;    

Page 54: Elektronski fakultet Niš Katedra za elektroniku

X.F2 = PORTD.F2 && Y.F2;    DD.F0 = Y.F0;    DD.F1 = (PORTB.F0 && !X.F0)||(!PORTB.F0 && X.F0);    DD.F2 = (PORTB.F1 && !X.F1)||(!PORTB.F1 && X.F1);    DD.F3 = (PORTB.F2 && !X.F2)||(!PORTB.F2 && X.F2);    }    }     // Fibonacci 2. stepen    while (PORTC.F5==0 && PORTC.F4==1 && PORTC.F3 == 1)  {    PORTB.F7 = PORTC.F5;    PORTB.F6 = PORTC.F4;    if (PORTA.F0==1) {    k = 0;    }    if ((PORTA.F0==0) && (k==0)) {    delay_ms(250);    k = 1;    PORTB.F0 = DD.F0;    PORTB.F1 = DD.F1;    X.F0 = PORTD.F0 && PORTB.F0;    X.F1 = PORTD.F1 && PORTB.F1;    DD.F0 =(X.F0 && !X.F1)||(!X.F0 && X.F1);    DD.F1 = PORTB.F0;    }    }    // Fibonacci 3. stepen    while (PORTC.F5==1 && PORTC.F4==0 && PORTC.F3 == 1) {    PORTB.F7 = PORTC.F5;    PORTB.F6 = PORTC.F4;    PORTB.F3 = 0;    if (PORTA.F0==1) {    k = 0;    }

Page 55: Elektronski fakultet Niš Katedra za elektroniku

 if ((PORTA.F0==0) && (k==0)) {    delay_ms(250);    k = 1;    PORTB.F0 = DD.F0;    PORTB.F1 = DD.F1;    PORTB.F2 = DD.F2;    X.F0 = PORTD.F0 && PORTB.F0;    X.F1 = PORTD.F1 && PORTB.F1;    X.F2 = PORTD.F2 && PORTB.F2;    X.F4 = (X.F0 && !X.F1)||(!X.F0 && X.F1);    DD.F0 =(X.F4 && !X.F2)||(!X.F4 && X.F2);    DD.F1 = PORTB.F0;    DD.F2 = PORTB.F1;     }     }     // Fibonacci 4. stepen    while (PORTC.F5==1 && PORTC.F4==1 && PORTC.F3 == 1)  {    PORTB.F7 = PORTC.F5;    PORTB.F6 = PORTC.F4;    if (PORTA.F0==1) {    k = 0;    }    if ((PORTA.F0==0) && (k==0)) {    delay_ms(250);    k = 1;    PORTB.F0 = DD.F0;    PORTB.F1 = DD.F1;    PORTB.F2 = DD.F2;    PORTB.F3 = DD.F3;

Page 56: Elektronski fakultet Niš Katedra za elektroniku

     X.F0 = PORTD.F0 && PORTB.F0;    X.F1 = PORTD.F1 && PORTB.F1;    X.F2 = PORTD.F2 && PORTB.F2;    X.F3 = PORTD.F3 && PORTB.F3;    X.F4 = (X.F0 && !X.F1)||(!X.F0 && X.F1);    X.F5 = (X.F2 && !X.F3)||(!X.F2 && X.F3);    DD.F0 =(X.F4 && !X.F5)||(!X.F4 && X.F5);    DD.F1 = PORTB.F0;    DD.F2 = PORTB.F1;    DD.F3 = PORTB.F2;     }     }     // "Brisanje" stanja     PORTD = 0;    PORTB = 0;    DD = 0;    X = 0;    Y = 0;    k=0;    delay_ms(500); } while (1);                     // Kraj Petlje}//~

Page 57: Elektronski fakultet Niš Katedra za elektroniku

LABORATORIJSKA VEŽBASlika 45. Raspored prekidača, taster i LED na ploči

Page 58: Elektronski fakultet Niš Katedra za elektroniku

1. Koristeći predhodnu sliku podesiti uredjaj da radi po Fibonacci-jevom metodu.

2. Zadati karakteristični polinom X4+X3+1 i početno stanje 0001 i izlistati stanja na izlazu.Takodje, odrediti i binarnu sekvencu.

Posle koliko koraka se sistem vraća u početno stanje? ______________________

3. Naći recipročni polinomgore navedenog polinoma ______________________.

4. Za isti karakteristični polinom ponoviti postupak ali za drugo početno stanje (npr. 1111).

Koja se razlika uočava u ove dve sekvence?____________________________

Page 59: Elektronski fakultet Niš Katedra za elektroniku

5. Promeniti ,sada, samo početno stanje u 0000 i generisati sekvencu na izlazu. Šta se u ovom slučaju dešava?____________________________________

6. Generisati polinom X4+X2+1 i odrediti stanja na izlazu za sledeće 3 različite početne vrednosti: 0001, 1011, 0011. Da li je primenjen polinom karakterističan polinom četvrtog stepena?_____________________

Šta se uočava iz dobijenih rezultata? ___________________________________

7. Odrediti stanja na izlazu za karakteristični polinom drugog i trećeg stepena. Tabela sa karakterističnim polinomima je data u prvom poglavlju.

Page 60: Elektronski fakultet Niš Katedra za elektroniku

Kroz koliko stanja prolazi sistem za karakterističn polinome 4,3,2,stepena respektivno? ____________________________________________

Generisati sekvencu za sledeći polinom četvrtog stepena: X4+1.

Šta uočavamo iz dobijenih rezultata? _________________________________

Sada podesiti sistem da radi po Galois metodu i ponoviti sve korake.

U čemu se razlikuju sekvenca dobijena Fibonacci-jevim od sekvence dobijene Galois metodom uz primenu istog karakterističnog polinoma? _____________________________

Page 61: Elektronski fakultet Niš Katedra za elektroniku

Kada definišemo povratne sprege uz pomoć polinoma koji članovi polinoma su uvek prisutni? ____________________________________________

• Napomene: Podešavanje potrebnog polinoma za Fibonacci i Galois metod je komplementarno. Npr., za polinom X4+X3+1 i za Fibonacci-jev metod prekidače za izbor polinoma treba postaviti u sledeči polozaj: 1100 a za Galois metod u polozaj 0011.

Stepen polinoma je definisan na sledeći način: 00-polinom prvog stepena (ne koristimo),01-polinom drugog stepena, 10-polinom trećeg stepena i 11-polinom četvrtog stepena.

Na klizaču adaptera kojim se napaja sistem treba podesiti napon na 6 ili 7.5V ( nestabilisan napon).

Page 62: Elektronski fakultet Niš Katedra za elektroniku

Ako se izabere stepen polinoma niži od 4. stepena, mikrokontroler ignoriše viša početna stanja i više koeficijente polinoma. Dakle,obradjuje samo odgovarajuce.

Pre svakog novog izbora stepena i tipa polinoma neophodno je resetovati mikrokontroler. Ako se tokom rada promene ova dva parametra, mikrokontroler ulazi u stanje u kome su sve LED isključene. Ako se tokom rada promene početna stanja i koeficijenti polinoma, to ne "proizvodi" nikakav efekat. Naime, mikrokontroler "pamti" samo pomenuta stanja i koeficijente do prvog pritiska tastera Sledeći.

Page 63: Elektronski fakultet Niš Katedra za elektroniku

ZAKLJUČAK Ovaj seminarski rad pruža mogućnost studentima da se

upoznaju sa načinom implementacije i načinom rada PRNG-a.

Za lakše izvođenje vežbe, u prvim poglavljima opisani su svi potrebni pojmovi i dodatno pojašnjeni na primeru implementacije PRNG-a četvrtog stepena sa polinomom 1+X3+X4. U sledećim poglavljima je opisan PIC16F887A, zatim način programiranja mikrokontrolera i način realizacije praktičnog dela ovog projekta. Potom su opisani zadaci koje studenti treba da odrade pri izvođenju ove vežbe.

Page 64: Elektronski fakultet Niš Katedra za elektroniku

U završnim poglavljima je dat pregled korišćene literature pri pisanju ovog projekta a koja je neophodna za detaljniju analizu PRNG-a. U ovom završnom delu su dati i datasheet-ovi pojedinih elemenata korišćenih u ovom radu.

Sam proces simulacije PRNG-a obavlja mikrokontroler, dok se praćenje sekvence odvija na led diodama. U ovom projektu je predviđena i veza sa računarom. Videli smo da PRNG obezbeđuje brz i efikasan metod za generisanje pseudo-slučajne binarne sekvence, da mu je hardverska implementacija veoma jednostavna pa se softverska implementacija izuzetno retko koristi. Da postoje dve vrste implementacije i to: Fibonacci-jeva i Galois i obe se mogu lako modifikovati jedna u drugu.

Page 65: Elektronski fakultet Niš Katedra za elektroniku

• Takođe se može uočiti da je Galois implementacija efikasnija od Fibonacci-jeve. Međutim i Fibonacci-jeva implementacija ima svoju primenu a karakteriše je to što je koncepciski lakša, zato što se samo ulazni bit u pomeračkom registru menja pri promeni kloka a sadržaj pomeračkog registra biće sledeća n cifra u binarnoj sekvenci. Uočava se da i Fibonacci i Galoa PRNG prolazi kroz sva stanja izuzev zabranjenog i vraćaju se u početno stanje. Zaključujemo da dobar PRNG treba da poseduje sledeće osobine:

-Uniformnost – generisani brojevi treba da imaju ujednačenu raspodelu 0 i 1.

-Nezavisnost – generisani brojevi treba da budu nezavisni jedni od drugih.

Page 66: Elektronski fakultet Niš Katedra za elektroniku

-Ponovljivost – generisani brojevi trebaju biti ponovljivi.

-Dužina ciklusa – treba da prođe dosta vremena pre nego što dođe do ponavljanja brojeva.

-Brzina – potrebno je da budu brzi. -Memorija – nije potrebna velika memorija. Uočavamo i dve osobine koje u nekim primenama

mogu izazvati probleme. Prva: imaju odstupanje koje se ogleda u tome što

zabranjeno stanje nikada u normalnom radu nije prisutno. Međutim za duge sekvence ovo odstupanje postaje zanemarljivo.

Page 67: Elektronski fakultet Niš Katedra za elektroniku

Druga: postoji mogućnost predviđanja sekvence. n+1 bit može se predvideti ako se zna prethodnih n. To znači da su poznate povratne sprege i stanje svakog flip-flopa.

Page 68: Elektronski fakultet Niš Katedra za elektroniku

LITERATURA• RISC, CISC I DSP PROCESORI, Mile K. Stojčev, I izdanje, Elektronski fakultet, Niš, 1997.• ARHITEKTURE I PROGRAMIRANJE RAČUNARSKIH SISTEMA ZASNOVANIH NA FAMILIJI PROCESORA 

80x86, Mile K. Stojčev, Branislav D. Petrović, I izdanje, Elektronski fakultet, Niš, 1999.• ZBIRKA ZADATAKA IZ MIKROPROCESORA I MIKRORAČUNARA, Mile K. Stojčev, Saša S. Ristić, Miloš D.

Krstić, I izdanje, Elektronski fakultet, Niš, 1999.• LABORATORIJSKI PRAKTIKUM IZ PREDMETA MIKROPROCESORSKI SISTEMI, Tatjana Stanković, Saša S.

Ristić, Miloš D. Krstić, Ivan Andrejić, Mile K. Stojčev, Elektronski fakultet,(Edicija Pomoćni Udžbenici) Niš, 2004.

• http://es.elfak.ni.ac.rs – LABORATORIJA ZA EMBEDDED SISTEME,Elektronski fakultet Niš• http://www.ti.com/msp430  – TEXAS INSTRUMENTS, EXPERIMENTER'S BOARD MSP430• ECE454 DIGITAL DESIGN II, LECTURE6: A RANDOM NUMBER GENERATOR IN VERILOG, Patrik Schaumont,

Spring 2008.• PSEUDO-RANDOM BINARY SEQUENCES, Marcus Muller.• 16-BIT CRC GENERATOR, Cypress MicroSystems Inc, August 29,2003.• TEST COMPACTION, Mani Soma• LINEAR FEEDBACK SHIFT REGISTERS AND CICLIC CODES IN SAGE, Timoti Brian Broock, April 24, 2006 .• BRANCH-ON-RANDOM, Edward Lee & Craig Zilles• ON THE DESIGN OF CLOCK-CONTROLLED PSEUDORANDOM BIT GENERATORS WITH PRIME PERIODS,

Chung-Huang Yang.• WHAT’S AN LFSR? , Texas Instruments, December 1996.

Page 69: Elektronski fakultet Niš Katedra za elektroniku

• DESIGN TECHNIQUES OF FPGA BASED RANDOM NUMBER GENERATOR, • Pong P. Chu and Robert E. Jones.• FEEDBACK SHIFT REGISTER SEQUENCES, Hong-Yeop Song• RTL DESIGN OF A GENERIC PSEUDONOISE GENERATOR, Jean-Francois Beaumont• AN OVERVIEW OF EMBEDDED SELF-TEST DESIGN, Gaurav Gulati, Ryan Fonnesbeck, Sathya Vijayakumar,

Sudheesh Madayi.• SERIJSKA KOMUNIKACIJA RAČUNARA I USART MODULA MIKROKONTROLERA PIC16F877A, Dejan Lazić i

Ivan Novaković, seminarski rad, Elektronski fakultet, Niš, 2006.• PIC16F877A, Datasheet

Page 70: Elektronski fakultet Niš Katedra za elektroniku

BIOGRAFIJA

1. Prezime: Nedeljković1. Ime: Miodrag1. Datum rođenja: 30.06.1977.1. Nacionalnost: Srbin1. Bračno stanje: Neoženjen

Kontakt adrese

Adresa: 36212 Ratina, KraljevoE-mail: [email protected]:Mobilni telefon: 064 1900872

Page 71: Elektronski fakultet Niš Katedra za elektroniku

• Obrazovanje • Institucija: Elektro-Saobraćajna tehnička škola Kraljevo• Zanimanje Elektrotehničar pogona• Kompletna ili stepenovana diploma: IV stepen • Sposobnosti Menadžerske veštine: Preduzimljivost, usredsređenost na razvoj, upornost, samopouzdanje, realističnost o svojim sposobnostima, sposobnost

prihvatanja kritičnog mišljenja, motiv za uspehom. Sopstvene veštine: Orjentisanost ka ostvarenju zadatih ciljeva, postavljanje prioriteta, preuzimanje problema na sebe i rešavanje istih,

komunikativnost, kreativnost, inovacije, spremnost na saradnju i rad pod stresom. Poznavanje jezika: Engleski jezik – osrednje.

Iskustvo sa kompjuterom: Operativni sistemi: Windows 98, 2000, XP. Programski paketi: MS Office, Active HDL, Protel 2004 (DXP).