1 / 46

ELEKTRONSKI FAKULTET SEMINARSKI RAD IZ MIKROPROCESORA MENTOR: PROF. DR MILE STOJČEV

ELEKTRONSKI FAKULTET SEMINARSKI RAD IZ MIKROPROCESORA MENTOR: PROF. DR MILE STOJČEV. KOMUNIKACIJA MIKROKONTROLERA PIC16F877- 20 PREKO SPI MODULA. Du šan Đorđević 10797 Žarko Đorđević 10798. SADRŽAJ. O SEMINARSKOM RADU MIKROKONTROLERI I EMBEDDED SISTEMI SPI KOMUNIKACIJA PIC16F877

cathal
Download Presentation

ELEKTRONSKI FAKULTET SEMINARSKI RAD IZ MIKROPROCESORA MENTOR: PROF. DR MILE STOJČEV

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ELEKTRONSKI FAKULTETSEMINARSKI RAD IZ MIKROPROCESORAMENTOR: PROF. DR MILE STOJČEV KOMUNIKACIJA MIKROKONTROLERA PIC16F877-20 PREKO SPI MODULA Dušan Đorđević 10797 Žarko Đorđević 10798 Komunikacija PIC16F877-20 preko SPI

  2. SADRŽAJ • O SEMINARSKOM RADU • MIKROKONTROLERI I EMBEDDED SISTEMI • SPI KOMUNIKACIJA • PIC16F877 • SOFTVER ZA PIC MIKROKONTROLERE • KOMUNIKACIJA MIKROKONTROLERA PREKO SPI MODULA:PRAKTIČNA REALIZACIJA • LABORATORIJSKA VEŽBA • ZAKLJUČAK • KORIŠĆENA LITERATURA • PRILOG • O AUTORIMA SEMINARSKOG RADA Komunikacija PIC16F877-20 preko SPI

  3. O SEMINARSKOM RADU • Autori su realizovali ovaj projekat u nameri da studentima približe jedan od način kako mogu da komuniciraju dva mikrokontrolera PIC16F877-20. Ovde je za komunikaciju iskorišćen serijski komu-nikacioni modul SPI koji je integrisan u mikrokontrolerima. • Mikrokontroleri su programirani preko AllPIC programatora o kojem je priložen kompletan članak na kraju rada, a za pisanje programa korišćen je softver mikroC, koji je razvila i ponudila tržištu beogradska Mikroelektronika. • Električna šema i dizajn štampane pločice (PCB) su kreirani u Protel-u. • Realizovanje štampane pločice na vitroplastu je urađeno u niškoj firmi «Denitron» i ovom prilikom se zahvaljujemo gospodinu Draganu Deniću na ekspeditivnosti i kvalitetu izrade. • Posebnu zahvalnost dugujemo profesoru Miletu Stojčevu što nam je pružio priliku da realizujemo ovaj projekat. Komunikacija PIC16F877-20 preko SPI

  4. MIKROKONTROLERIMIKROPROCESOR Razlike između mikrokontrolera i mikroprocesora: • Mikroprocesori su najcešće CISC tipa, tako da za kopiranje podataka iz spoljašnje memorije koriste veći broj opkôdova, dok mikrokontroleri jedan ili dva, • Za manipulisanje sa podacima tipa bit, mikroprocesori koriste jedan ili dva tipa instrukcija, dok je kod mikrokontrolera taj broj veći, • Mikroprocesori su projektovani za brzi prenos podataka iz programa sa spoljno adresiranih lokacija u čip, dok se kod mikrokontrolera brzi prenos bitova obavlja u okviru čipa, • Mikrokontroler može da funkcioniše kao računar bez dodataka spoljnih gradivnih blokova (memorije i U/I uređaja), dok operativnost mikroprocesora bez spoljne memorije i U/I podsistema nije moguća. Komunikacija PIC16F877-20 preko SPI

  5. BLOK ŠEMA MIKROKONTROLERA Komunikacija PIC16F877-20 preko SPI

  6. PRIMENA MIKROKONTROLERA • Mikrokontroleri se danas koriste u embedded sistemima za upravljanje raznim funkcijama. Naime, oni se veoma često koriste i u situacijama kada treba da se veoma brzo reaguje na spoljne signale – posebno ako se takvi sistemi koriste za rad u realnom vremenu. • Mikrokontroleri su sastavni delovi mnogih vrsta elektronske opreme (pogledati embedded sistemI). Oni čine većinu svih prodatih mikro-procesorskih čipova. Preko 50% su "jednostavni" mikrokontroleri, a drugih 50% su specijaliozovani digitalni procesori signala (DSP). Mikrokontroler je prisutan u skoro svakom električnom uređaju, veš mašini, mikrotalasnoj pećnici, telefonu itd. Komunikacija PIC16F877-20 preko SPI

  7. PROIZVOĐAČI MIKROKONTROLERA • AMCC • Atmel • Cypress Microsystem • Freescale Semiconductor • Fujitsu • Holtek • Intel • Microchip • National Semiconductor • NEC • Philips Semiconductor • Renesas Tech. Corp. • ST Microelectronics Komunikacija PIC16F877-20 preko SPI

  8. PROIZVOĐAČI MIKROKONTROLERA • ST Microelectronics • Texas Instruments • Toshiba • Western Design Center • Ubicom • Xilinx • ZiLog • BASIC programibilni MCU-ovi. Komunikacija PIC16F877-20 preko SPI

  9. EMBEDDED SISTEMI • Embedded sistem predstavlja računarski sistem specijalne namene, koji je potpuno zatvoren od strane kontrola uređaja. Za razliku od ličnih ra-čunara opšte namene, embedded sistem ispunjava specifične zahteve i izvršava prethodno definisane zadatke. Programibilni hardverski čip je "sirov materijal" i on je programiran određenom aplikacijom. Ovo treba shvatiti samo kao poređenje sa starijim sistemima sa potpuno funkcio-nalnim hardverom, ili opšte namenskim hardverom, koji imaju učitan softver eksterno. • Embedded sistemi su kombinacija hardvera i softvera koji omogućavaju laku serijsku proizvodnju i raznovrsnost aplikacija. U proteklih nekoliko godina interesovanje za ovu vrstu sistema je naglo poraslo, i danas predstavlja nezaobilaznu temu u računarskom svetu. Komunikacija PIC16F877-20 preko SPI

  10. PRIMERI EMBEDDED SISTEMA • automatske mašine za brojanje novca • avijaciona elektronika, kao što je inercioni navigacioni sistemi, kontrola avionskog hardvera/softvera i drugih integrisanih sistema u avionima i projektilima • mobilni telefoni i telefonski tasteri • kompjuterska mrežna oprema, uključujući rutere, servere vremena i firewall-ovi • kompjuterski štampači • kopir mašine • pogon diska (flopi i hard disk pogon) • kontroleri motora i kontroleri antiblokade kočnica za automobile • proizvodi za kućnu automatizaciju, poput termostata, klima, prskalica i sistemi obezbeđenja • ručni kalkulatori Komunikacija PIC16F877-20 preko SPI

  11. PRIMERI EMBEDDED SISTEMA • kućni aparati, uključujući mikrotalasne rerne, mašine za pranje veša, televizija, DVD plejeri/snimači • medicinska oprema • merna oprema kao što su digitalni osciloskopi, logički analajzeri i spektralni analajzeri • multifunkcijski ručni satovi • multifunkcijskii štampači (MFP) • lični digitalni asistent (personal digital assistant - PDA), to jest, mali ručni kompjuteri sa PIM-ovima i drugim aplikacijama • mobilni telefoni sa dodatnim sposobnostima, na primer, mobilni digitalni pomoćnik sa telefonom i PDA i Java (MIDP) • programibilni logički kontroleri (PLC-ovi) za industrijsku automatizaciju i nadgledanje • stacionarna video igračka konzola i ručne igračke konzole • prenosivi kompjuter. Komunikacija PIC16F877-20 preko SPI

  12. SPI KOMUNIKACIJA • SPI (Serial Peripheral Interface) standard za sinhronu serijsku komu-nikaciju razvijen je od strane Motorolinih inženjera, za potrebu brzog i pouzdanog serijskog prenosa podataka na manjim rastojanjima (do 3m). Prvobitno, ovaj standard je bio predviđen za komunikaciju sa perifernim uređajima, ali je vremenom razvijena i mogućnost komunikacije između više mikrokontrolera ili mikroprocesora . • Postoji široka paleta perifernih uređaja baziranih na SPI – od običnih TTL pomeračkih (shift) registara, do SPI memorija, displeja, A/D konvertora itd. • Motorolaje svoj serijski asinhroni/sinhroni interfejs nazvala “Serijski komunikacioni interfejs” (Serial Communications Interface, ili SCI). Odgovarajući Intel-ov serijski interfejs nosi naziv “Programibilni komu-nikacioni interfejs” (Programmable Communication Interface, ili PCI) itd. Komunikacija PIC16F877-20 preko SPI

  13. SPI I SCI KOMUNIKACIJA- POREĐENJE • Tabela pokazuje kako je SPI komunikacija oko 10 puta brža od SCI komunikacije (Standard Communication Interface) kada mikrokontroler radi kao master, i oko 20 puta brža kada mikrokontroler radi kao slave. Takođe se vidi da kada mikrokontroler radi kao slave, moguća je brzina prenosa podataka jednaka internom taktu mikrokontrolera. Komunikacija PIC16F877-20 preko SPI

  14. SPI PROTOKOL Komunikacija PIC16F877-20 preko SPI

  15. SPI PROTOKOL • Pri SPI prenosu, podaci se šalju preko pomeračkog registra sa serijskim izlazom, a primaju preko pomeračkog registra sa serijskim ulazom. U bilo kom trenutku može da postoji jedan master, kako bi se osigurala ispravna komunikacija. • Kao što je prikazano na Slici potrebne su 4 linije, odnosno za SPI komu-nikaciju koriste se 4 pina: MOSI(Master Output Slave Input). Kada mikrokontroler radi kao master, onda je ovo li-nija za slanje podataka, a kada radi kao slave – ovo je linija za primanje podataka. MISO (Master Input Slave Output). Kada mikrokontroler radi kao master, onda je ovo linija za primanje podataka, a kada radi kao slave – ovo je linija za slanje podataka. U slučaju da je komunikacija isključivo jed-nosmerna, svakako da se može ostvariti sa tri linije (bez MOSI ili MISO, zavisno od slučaja). Komunikacija PIC16F877-20 preko SPI

  16. SPI PROTOKOL SCK (SPI Clock). Ovo je linija za takt pod kojim se izvodi komunikacija. Takt daje master, a pomerački registar slave-a prima podatke, odnosno očitava ulaz na promenu ovog takta. SS (Slave Select). Ovaj pin mikrokontrolera se veže na liniju za selek-tovanje slave-a. Kada mikrokontroler radi kao slave, i kada je ovaj (u slučaju ulazni) pin na visokom nivou, onda se takt sa SCK linije i podaci sa MOSI linije se ignorišu. Tek kada se dovede SS na nizak nivo, SPI sistem slave-a prati promene na pinovima koji su vezani za ovaj tip ko-munikacije i može da primi i pošalje informaciju. Kada mikrokontroler radi kao master, SS pin ima dve opcije. Može da se konfiguriše kao ulazni pin i da setuje određeni fleg (flag), tj. da inicira prekid u slučaju da mu bude doveden nizak nivo. To je dobra opcija za međuprocesor-sku komunikaciju. Na ovaj način može uspešno da se eliminiše moguć-nost da više mikrokontrolera u datom trenutku pokušaju da budu masteri. Ovo se rešava softverski. Komunikacija PIC16F877-20 preko SPI

  17. SPI POLARITET I FAZA TAKTA Komunikacija PIC16F877-20 preko SPI

  18. SPI POLARITET I FAZA TAKTA Na Slici je prikazan vremenski dijagram takta (SCK) koji generiše up-ravljačka SPI logika, uključujući polaritet i fazu takta. Neposredno ispod dijagrama data su objašnjenja za sve moguće varijante, odnosno za sva četiri moda: • Pri CPOL=0 (bazična vrednost takta je 0) važi sledeća logika: CPHA=0 (podatak se čita na rastuću, a menja na opadajuću ivicu takta), CPHA=1 (podatak se čita na opadajuću, a menja na rastuću ivicu takta). • Kada je CPOL=1 (bazična vrednost takta je 1) važi logika: CPHA=0 (podatak se čita na opadajuću, a menja na rastuću ivicu takta), CPHA=1 (podatak se čita na rastuću, a menja na opadajuću ivicu takta). Komunikacija PIC16F877-20 preko SPI

  19. SPI EEPROM 25XX640 Komunikacija PIC16F877-20 preko SPI

  20. SPI EEPROM 25XX640 • Pored četiri standardna pina bitna za SPI interfejs (CS, SCK, SI, SO), • napajanja Vcc i mase (Vss), 25xx640 poseduje i sledeća dva pina: • HOLD (pin preko koga se ova memorija, po potrebi, može privremeno «isključiti» iz SPI interfejsa), • WP (Write Protect pin, preko koga se memorija štiti od neželjenog upisa) Komunikacija PIC16F877-20 preko SPI

  21. SPI ADC LTC1286 Komunikacija PIC16F877-20 preko SPI

  22. SPI ADC LTC1286 - SEKVENCA Korišćeni analogno-digitalni konvertor ne zahteva konfiguracionu reč od stranemikrokontrolera i nema ulaz za prijem podataka Din koji služi i za kaskadnovezivanje više konvertora. Pošto ovaj konvertor ima dva ulaza D+ i D- on jeinicijalno konfigurisan kao diferencijalni ulaz ili jedan običan ulaz ako je drugivezan na masu. Opadajuća ivica CS signala koji služi za prozivanje konvertora,inicira prenos podatak između konvertora i mikro- kontrolera, kao što je prikazano na Slici. Komunikacija PIC16F877-20 preko SPI

  23. PIC16F877 - FOTOGRAFIJA Komunikacija PIC16F877-20 preko SPI

  24. PIC16F877 - RASPORED PINOVA Komunikacija PIC16F877-20 preko SPI

  25. PIC16F877 - ARHITEKTURA Komunikacija PIC16F877-20 preko SPI

  26. PIC16F877 - ARHITEKTURA • Flash programska memorija – 8 kiloreči obima 14 bita • RAM (File Registers) – 368 bajtova • Aritmetičko-logička jedinica (ALU) • Akumulator (Working Register) • Hardverski magacin (Stack) organizivan u 8 nivoa • EEPROM memorija podataka obima 256 bajtova • Višekanalni A/D konvertor, USART (univerzalni sinhroni i asinhroni primopredajnik), tajmere, portove itd. Komunikacija PIC16F877-20 preko SPI

  27. PIC16F877 - OPŠTE KARAKTERISTIKE • RISC mikroprocesor veoma visokih performansi • 35 instrukcija obima jedne reči • Radna frekvencija od 20 MHz • Trajanje taktnog intervala 0.2 µs, pri frekvenciji 20 MHz • 13-bitni opkôd • Harverski magacin (stack) sa osam nivoa • Tri načina adresiranja (direktno,indirektno i relativno) • Programska flash memorija kapaciteta 8k X 13-bitnih reči • Memorija za podatke tipa RAM kapaciteta 368 X 8 bita • Memorija za podatke EEPROM tipa kapaciteta 256 X 8 bita • Prekidi (do 14 izvora prekida) • U/I portovi: A, B, C, D, E • Tri tajmera: Timer0 (TMR0): 8-bitni tajmer/brojač_događaja Timer1 (TMR1): 16-bitni tajmer/brojač_događaja Timer2 (TMR2): 8-bitni tajmer/brojač_događaja Komunikacija PIC16F877-20 preko SPI

  28. PIC16F877 - OPŠTE KARAKTERISTIKE • 10-bitni 8-kanalni analogno-digitalni (A/D) konvertor • Serijska komunikacija: MSSP, USART • Paralelna komunikacija: PSP • 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 nakon stabilizovanja radne frekvencije oscilatora (OST) • Sleep mode - režim rada sa malim utroškom energije • Watchdog tajmer sa sopstvenim integrisanim RC oscilatorom za nezavisni rad • Izbor tipa oscilatora • Radni napon je u opsegu od 2V do 5,5V Komunikacija PIC16F877-20 preko SPI

  29. PIC16F877 - OSCILATOR • Kod mikrokontrolera PIC16F877 postoje četiri konfiguracije oscilatora: • RC Resistor/Capacitor • XT Crystal / Resonator • LP Low Power Crystal • HS High Speed Crystal / Resonator. Komunikacija PIC16F877-20 preko SPI

  30. PIC16F877 - PORTOVI • PIC16F877 poseduje pet portova i oni predstavljaju vezu njegove interne strukture sa spoljašnjim svetom. • Svaki od njih može da se konfiguriše kao ulazni ili kao izlazni. Pomenuti portovi su različitog obima: • 8-pinski (PORTB, PORTC, PORTD), • 6-pinski (PORTA), • 3-pinski (PORTE). Komunikacija PIC16F877-20 preko SPI

  31. PIC16F877 - PORTOVI • Svakom pinu bilo kojeg porta, u zavisnosti od režima rada, mogu da se dodele fiksne ili promenljive funkcije. Konfiguracija smera prenosa ostvaruje se upisom na odgovarajuću bit-poziciju u pripadajućem TRIS registru (0 - pin je izlazni, 1 - pin je ulazni). • Svakom portu je dodeljen registar podataka (PORTX), preko kojeg se programski pristupa U/I pinovima. Upis u neki od tih registara inici-raće upis u latch tog porta, a njegovo čitanje rezultiraće čitanjem logič-kih stanja direktno sa pinova. Sve instrukcije upisivanja su tipa read-modify-write. To znači da se pri upisu u port najpre očitaju stanja pinova, zatim izvrši modifikacija, a potom korigovana vrednost upiše u latch porta. • Ne postoji velika razlika u konstrukciji pomenutih pet portova. Jedino se Port B od ostalih razlikuje zbog posebne opcije koju nude četiri MSB. Ukoliko se setuje bit RBIE u registru INTCON, svaka pro-mena stanja na ovim pinovima, generisaće prekid mikrokontrolera. Komunikacija PIC16F877-20 preko SPI

  32. PIC16F877 - MEMORIJA • Memoriju mikrokontrolera čine tri odvojene celine: • Programska memorija • Memorija podataka • EEPROM memorija podataka. • Inače, u mikrokontroleru postoji i stack (magacin), koji radi na principu cikličnog bafera, što znači da se u njega mogu staviti osam različitih adresa, dok se sa upisom devete adrese – briše prva i tako redom. Programski se ne može utvrditi da li je došlo do prepunjenja stack-a. Komunikacija PIC16F877-20 preko SPI

  33. PIC16F877 - REGISTRI Komunikacija PIC16F877-20 preko SPI

  34. MIKROC Komunikacija PIC16F877-20 preko SPI

  35. MIKROC • Navešćemo njegove osnovne karakteristike: • Pisanje C kôda korišćenjem kvalitetnog i preglednog editora, što se ogleda u automatskoj kontroli i upozorenjima vezanim za sintaksu kôda, korišćenih parametara, kao i automatskoj korekciji pojedinih grešaka • Preglednost strukture programa (kôda), promenljivih i funkcija omogućava Code explorer • Jasan asemblerski kôd i standardna kompatibilnost generisanih HEX datoteka toka programa preko ugrađeg debagera (debugger) • Programer ima na raspolaganju veliki broj integrisanih biblioteka i rutina, koje značajno ubrzavaju pisanje programa • Detaljan izveštaj i grafičko predstavljanje RAM i ROM mape, sta- tistike kôda Komunikacija PIC16F877-20 preko SPI

  36. REALIZACIJA SPI KOMUNIKACIJE Komunikacija PIC16F877-20 preko SPI

  37. REALIZACIJA SPI KOMUNIKACIJE Komunikacija PIC16F877-20 preko SPI

  38. REALIZACIJA SPI KOMUNIKACIJE • Kao što je prikazano na Slici, uloga master-a (ujedno je povezan sa se- rijskim portom PC računara) je dodeljena mikrokontroleru U2, dok je uloga slave-a dodeljena mikrokontroleru U3. Na Portove B oba mikro- kontrolera povezani su po četiri tastera i četiri LED diode. • Komunikacija PC↔U2 ostvaruje se samo preko Rx i Tx signala (bez handshaking-a), što je u našem slučaju sasvim dovoljno. • Potenciometri P1 i P2 su povezani na pinove PA0 oba mikrokontrolera. • Tri pina Porta C (PC3, PC4 i PC5) su dovoljni za ostvarenje SPI komunikacije master-slave. PC3 ima ulogu takta (SCK), kod master-a PC4 i PC5 imaju ulogu SI (Serial Input) i SO (Serial Output), respektivno, a kod slave-a je obrnuto. • Može da se primeti kako je reset zajednički za oba mikrokontrolera i ostvaruje pritiskom na taster SW0. Komunikacija PIC16F877-20 preko SPI

  39. REALIZACIJA SPI KOMUNIKACIJE Komunikacija PIC16F877-20 preko SPI

  40. REALIZACIJA ŠTAMPANE PLOČE Komunikacija PIC16F877-20 preko SPI

  41. REALIZACIJA ŠTAMPANE PLOČE • Na Slici je mogu da se uoče po dve grupe tastera (SW1-SW4,SW5-SW8) i dve grupe LED dioda (LED1-LED4, LED5-LED8). • Prva grupatastera i LED je povezana za Port B mikrokontrolera kojem je softverski dodeljena uloga master-a, dok je druga grupa tastera i LED povezana za Port B slave-a. • Firmware-i (ugrađeni softveri) za master i slave su različiti. Komunikacija PIC16F877-20 preko SPI

  42. ZADATAK ZA STUDENTE • Podesiti parametra USART terminala: • COM1 ili COM2 (zavisno na koji port je povezano kolo) • Brzina 9600 Bauda, 1 stop-bit (One Stop Bit), Space bit parnosti (Parity), osam bitova čini karakter/podatak (Data bits), isključen RTS (Off) • Podesite da prenos mikrokontroler↔PC bude ASCII. • Ispitati funkcije kola prema Tabeli. Komunikacija PIC16F877-20 preko SPI

  43. PROZOR USART TERMINALA Komunikacija PIC16F877-20 preko SPI

  44. DUŠANOV CV Komunikacija PIC16F877-20 preko SPI

  45. ŽARKOV CV Komunikacija PIC16F877-20 preko SPI

  46. IZGLED PROJEKTA Komunikacija PIC16F877-20 preko SPI

More Related