790 likes | 1.02k Views
UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET Katedra za elektroniku PREDMET: Mikroprocesorski Sistemi Avgust 2008. Arhutektura MSP430 familije uređaja Laboratorijska vežba – A/D konvertor. Mentor: Student:
E N D
UNIVERZITET U NIŠUELEKTRONSKI FAKULTETKatedra za elektronikuPREDMET: Mikroprocesorski SistemiAvgust 2008 Arhutektura MSP430 familije uređaja Laboratorijska vežba – A/D konvertor Mentor: Student: prof. dr Mile K. Stojčev Gligorijević Jelena 11418
Uvod • - Procesori kod embedded sistema - • Embedded -Računarsko bazirani sistemi ugradjeni u okviru drugog sistema • Procesore koji se koriste kod embedded sistema često nazivamo embedded procesori. Izbor pogodnog procesora koji se integriše u embedded sistem uglavnom zavisi od domena aplikacije tog sistema.Da bi se ostvario efikasan proizvod (dizajn), u zavisnosti od tipa aplikacije, neophodno je koristiti različite klase embedded procesora, čije se arhitekture medjusobno razlikuju. • Klase procesora koji se koriste kod embedded sistema su: • Mikrokontroleri • RISC procesori • 3. Digitalni Signal Procesori (DSP) • 4. Multimedija procesori • 5. Aplikaciono Specifični Procesori (ASIP) • 6. Kombinovani tipovi
Osnovne karakteristika mikrokontrolera su: • usadjeni (built-in) ROM- najčešće kapaciteta 4 kB na samom čipu u kome se čuva upravljački program, • usadjeni RAM- najčešće kapaciteta 128 B, koji se koristi za čuvanje privremeno promenljivih, • CPU koji je, zbog efikasnijeg korišćenja ograničene programske memorije, u stanju da izvršava instrukcije koje manipulišu sa jediničnim bitovima, • veliki broj mikrokontrolera ima usadjeno koprocesor Boole-ovog tipa. Ovaj koprocesor zajedno sa CPU-om ima mogućnost da pojednostavljeno implementira Boole-ove izraze koji se veoma često javljaju u upravljačkim aplikacijama, • 5. mikrokontroleri imaju usadjene ulazno-izlazne portove koji se koriste za efikasno upravljanje, kao i jednostavnu i laku interakciju saspoljnim uredjajima.
- Arhitekture mikrokontrolera - Arhitekture mikrokontrolera se mogu podeliti na sledeća dva tipa: 1. Harvard tip - karakteriše se razdvojenim memorijama za program i podatke. Svaki tip memorije ima svoj sopstveni fizički adresni prostor i koristi sopstvenu internu adresnu magistralu. Prednost ove arhitekture je ta što se pristup programskoj memoriji i memoriji za podatke ostvaruje konkurentno. Ovakvim pristupom se skraćuje ukupno vreme izvršenja programa. Proizvodjači mikrokontrolera Microchip, Zilog, National Semiconductor i Cypress zasnivaju svoje proizvode na Harvard arhitekturi, mada postoje neke neznatne ali važne razlike u pristupima kako ove kompanije implementiraju arhitekturu. Arhitekture ovih mikrokontrolera su tipične za RISC pristup.
- Arhitekture mikrokontrolera - 2. Princeton tip (tzv. von Neumann) - programska memorija i memorija za podatke dele isti adresni prostor. To znači da se instrukcioni kôd može izvršavati kako iz programske tako i iz memorije za podatke. Poznati proizvodjači ovih tipova mikrokontrolera su Intel, Atmel, Motorola i dr. Ključna osobina ovih proizvoda je povećan broj instrukcija i adresnih načina rada koji u kombinaciji sa relokatibilnim softverskim magacinom (stack) omogućavaju efikasno korišćenje programskog jezika visokog nivoa C. Arhitekture ovih mikrokontrolera su tipične za CISC pristup.
MSP430 Familija • Neke od osnovnih karakteristika: • Koristi 64K bajta za adresiranje ROM-a, RAM-a, EERAM-a i periferija. Zanaredne generacije kontrolera iz ove familije se planira 1M bajt. • Nema ograničenje prekida i potprogramskih nivoa zbog procesiranja magacina. • Samo tri formata istrukcija. Stroga ortogonalnost bez izuzetaka. • Koristi 1 reč/instrukcija ukoliko je moguće. • Sedam načina adresiranja izvorista. • Četiri načina adresiranja odredista. • Spoljašnji pinovi za prekide: postojeci Ulazno-Izlazni pinovi se mogu koristiti za prekide. • Prekidi imaju dodeljene prioritete: istovremena pojava prekida se razrešava na principu prioriteta.
- Osnovne karakteristike - • Periferije imaju lokalnu memoriju: registri su u modulima - ne koriste RAM. • USART se nalazi na čipu: odvojeni prekidi za slanje i primanje. • Tajmer sa prekidima za brojanje događaja, generisanje vremena, PWM,... • Watchdog • ADC (10- bitni ili više ) sa 8 ulaza. • EPROM verzija (One Time Programmable-memorija koja može samo jednom da se isprogramira) • LCD drajver • Stabilna frekvencija procesora obezbeđena korišćenjem PLL-a i kristala frekvencije 32,768 Hz • Jednostavan razvoj programa zbog ortogonalne strukture: sve instrukcije podržavaju sve adresne režime • Koncept modularnog projektovanja: moduli su striktno memorijski mapirani
Ključne karakteristike sistema – • Mikropotrošnja struje: CPUOff i OscOff režimi rada • Kompletna funkcionalnost ispunjena na 2.5V • Gradivni blokovi sistema: LCD, A/D konvertor, Ulazno-Izlazni portovi, UART, Watchdog, Tajmer, EEPROM itd. su integrisani na čipu • Jednostavna upotreba sistema • Efikasan instrukcijski set omogućava brzi razvoj softvera • Program može da se pokrene iz RAM-a • Programi učitani u RAM preko UART-a mogu da se izvršavaju u realnom vremenu • Kombinovanje ROM/RAM je moguće u osnovnom adresnom opsegu od 64 k bajta
Ključne karakteristike sistema – • Mogucnost programiranja na (HLL) višim programskim jezicima • 12 registara opšte namene • Instrukcije koriste magacin • Veliki prostor za ROM i RAM • Ortogonalni skup instrukcija • Tabelarno orjetisana obrada koristeći indeksne režime rada • Brza konverzija podataka iz heksadecimalnog brojni sistem u decimalni brojni sistem pomoću specijalnih instrukcija DADD • Koriste se samo instrukcije za obraćanje ROM-u, pristup RAM-u, manipulisanje podacima, Ulazno-Izlaznim portovima i drugim periferijama • Mogućnosti CPU-a daleko prevazilaze zahteve inteligentnih senzorskih signalnih sistema. Sposobnost rada u realnom vremenu pruža mogućnost upotrebe i u ostalim sistemima male snage, uključujući upotrebu drugih periferija kao npr. DTM primopredajnik za žičani prenos
Opšti osvrt na arhitekturu familije MSP430 Mikroračunarski sistemi bazirani na MSP430 sastoje se od: • Centralna Procesorska Jedinica (CPU) • Programska memorija (ROM ili EPROM) • Memorija podataka (RAM ili EEPROM) • Upravljanje operacijama • Periferni moduli • Oscilator i množač frekvencije
- CPU - Centralna procesorska jedinica objedinjuje transparenti instrukcijski skup i ortogonalni dizajn. Sastoji se od šesnaestobitne ALU, 16 registara i instrukcione upravljačke logike. Skup registara
- Programski Brojač - 16-to bitni Programski brojač PC ukazuje na narednu instrukciju koja treba da se izvrši. Svaka instrukcija koristi paran broj bajtova (2, 4, 6 bajtova) 16-bitni programski brojač Programski brojać PC se dva puta inkrementira tokom pribavljanja svake instrukcije. Ovim postupkom PC ukazuje na sledeću instrukciju tokom izvršenja tekuće instrukcije, što omogućava dva načina adresiranja (neposredno i simboličko) koji koriste 1 reč informacija po instrukciji
- Pokazivač magacina - Pokazivač magacina SP je postavljen na istu adresu sve dok se pristupa podacima iz magacina tokom obrade zahteva za prekid. CPU koristi SP za pamćenje povratne adrese poziva potprograma i prekida. SP koristi pre-dekrementni i post-inkrementni način rada. Pokazivač magacina (SP)
- Statusni Registar (SR) - 16-to bitni statusni registar (SR/R2), se koristi kao izvorišni ili odredišni registar kod registarskog načina adresiranja sa instrukcijom veličine reči. BitoviStatusnog Registara SR :
- Generator Konstanti CG1 i CG2 Registri – Najčešće korišćene konstante u programima generišu registri generatora konstanti R2(CG1) i R3(CG2), bez zahteva za dodatnim šesnaestobitnim rečima programskog kôda. • Prednosti generatora konstanti: • Ne koriste se specijalne instrukcije • Ne koriste se dodatne kôdne reči za sedam najčešće korišćenih konstanti • Kraće vreme izvršenja instrukcija: direktan pristup bez korišćenja MDB
Adresni režimi rada MSP430 arhitektura ima sedam načina za adresiranje izvorisnih operanada i četiri za adresiranje odredišnih operanada koji adresiraju kompletni adresni prostor. U sledećoj tabeli prikazano je postavljanje bitova As i Ad i odgovarajući način adresiranja.
Organizacija memorije Memorija kod MSP430 familije mikrokontrolera je konfigurisana na principu „von-Neumann“ arhitekture. Sastoji se iz programske memorije (ROM, EPROM, RAM) i memorije podataka (RAM, EEPROM, ROM) koje su na jednom adresnom prostoru i koriste jedinstvenu adresnu i magistralu podataka. Celokupni adresni prostor
Organizacija ROM memorije - • ROM ima maksimalnu veličinu 64 kB. Adresni prostor dele registri specijalne namene, registri perifernih modula, memorija podataka i programska memorija. Početna adresa pri bilo kojoj veličini ROM-a je uvek 0FFFEh. Tabela vektora prekida takođe startuje sa najvišim prioritetom na najvišoj ROM adresi obima reči. Programski brojač, a samim tim i tok instrukcija imaju smer od viših ka nižim adresama. Programski brojač se može uvećati za 2, 4 ili 6 u zavisnosti od toga koji se način adresiranja koristi.
- Organizacija RAM-a i periferija - Adresiranje oba ova memorijska prostora se izvodi apsolutnim načinom adresiranja ili preko 16-to bitnih radnih registara koristeći indeksni, indirektni ili indirektni autoinkrementni način adresiranja
- Periferni Moduli – Registri Specijalne Namene SFR - Konfiguracija sistema i delovanje pojedinih perifernih modula u radnim režimima procesora se uglavnom definišu u registrima specijalne namene. Registri specijalne namene se nalaze u nižem adresnom opsegu i realizovani su u bajt formatu. Ovim registrima se pristupa pomoću instrukcija pobima bajta. Čak i kada određeni bitovi regisata specijalne funkcije dele isti adresni prostor oni mogu biti fizički implementirani unutar odgovarajućeg modula. Adresni prostor registra specijalne namene SFR
Upravljanje operacijama - Sistemski reset i inicijalizacija - • Mikrokontroleri iz familije MSP430 imaju četiri moguća izvora reseta: • Nakon uključenja sistema napajanja • Postavljanjem na niski nivo signala na pinu • Programiranjem time-out-a watchdog tajmera • Detektovanjem greške pri unošenju sigurnosne šifre tokom inicijalizacije WDTCTL registra.
- Sistemski reset i inicijalizacija - Nakon pojave reseta, program testira markere prema izvoru reseta. Program indetifikuje izvor reseta i preduzima odgovarajuću akciju. Uključenjem sistema napajanja aktivira se hardverska sekvenca za inicijalizaciju: • Svi pinovi se postavljaju kao ulazni • Svi markeri su resetovani • Vektor adrese sa lokacije 0FFFEh se smešta u programski brojač (PC). • CPU startuje sa adrese koja se nalazi u power-up clear (PUC) vektoru • Statusni registar (SR) se resetuje • Svi registri se inicijalizuju od strane programa (npr. pokazivač magacina, RAM, ...) osim • programskog brojača i statusnog registra • Digitalno kontrolisani oscilator startuje sa najnižom frekvencijom • Nakon startovanja oscilatora, frekvencija se podešava do željene vrednosti
- Opšta struktura prekida - • Postoji tri tipa prekida: • sistemski reset • nemaskirani prekid • maskirani prekid
- Opšta struktura prekida - • Izvori koji dovode do sistemskog reseta su: • Uključenje sistema na napajanje • Postavljanje ulaza na nizak nivo (ako se selektuje reset režim rada) • Prekoračenje watchdog tajmera (ako se selektuje watchdog režim rada) • Greška pri unošenju sigurnosne šifre watchdog tajmera • (upisivanje u WDTCTL registar sa pogrešnom sigurnosnom šifrom)
- Opšta struktura prekida - • Nemaskirani prekid generiše: • Usponska ivica napinu (ako se selektuje NMI režim rada) • Prekid rada oscilatora • Izvori koji dovode do maskiranih prekida su: • Prekoračenje watchdog tajmera (ako se selektuje tajmer režim rada) • Ostali moduli koji generišu zahtev za prekid
- Upravljanje prekidima - Uvek kada imamo zahtev za prekidom i ako su postavljeni bit dozvole svih prekida i odgovarajući bit dozvole prekida tada se servisna rutina prekida izvršava na sledeći način: • CPU aktivan: izvršenje tekuće instrukcije mora da se završi. • CPU stopiran: prekidaju se režimi rada sa malom potrošnjom. • 2. Programski brojač koji ukazuje na sledeću instrukciju je smešten u magacin. • 3. Status registar je smešten u magacin. • 4. Ako se setuje više prekida koji čekaju na izvršenje, opslužiće se prekid sa • najvećim prioritetom • 5. Marker odgovarajućeg zahteva za prekid se automatski resetuje. • Istovremena pojava više markera opslužuje se softverski. • Bit dozvole svih prekida (general interrupt enable bit) GIE se resetuje; • CPUOffbit, OscOff bit i SCG1* bit se brišu; statusni bitovi V, N, Z i C se • resetuju. • Sadržaj odgovarajućeg vektora prekida se smešta u programski brojač. • Programski brojač nastavlja sa opsluživanjem prekidne rutine sa te adrese.
Pokazivač magacina pre i posle prekida Od prihvatanja zahteva za prekid pa do početka izvršenja prve instrukcije odgovarajuće servisne rutine prolazi šest taktnih ciklusa. Prekidna rutina se završava instrukcijom RETI
Načini rada Familija mikrokontrolera MSP430 koristi nekoliko načina rada
Načini rada 1) Aktivni način rada AM U ovom režimu rada moguće je koristiti različite kombinacije rada aktivnih perifernih modula 2) Način rada male_potrošnje_0 LPM0 CPUOff bit CPU-a je u stanju Off, rad perifernih uređaja se ne brani. Signali ACLK i MCLK su aktivni. Kolo za upravljanje oscilatora je aktivno. 3) Način rada male_potrošnje_1 LPM1 CPUOff bit CPU-a je u stanju Off, rad perifernih uređaja se ne brani. Signali ACLK i MCLK su aktivni.
Načini rada 4) Način rada male_potrošnje_2 LPM2 CPUOff bit CPU-a je u stanju Off, rad perifernih uređaja se ne brani. Kolo za upravljanje oscilatora nije aktivno. Signal ACLK je aktivan 5) Način rada male_potrošnje_3 LPM3 CPUOff bit CPU-a je u stanju Off, rad perifernih uređaja se ne brani. Kolo za upravljanje oscilatora i signal MCLK nisu aktivni. DC generator od DCO (-> MCLK generator) je isključen.Signal ACLK je aktivan 6) Način rada male_potrošnje_4 LPM4 CPUOff bit CPU-a je u stanju Off, rad perifernih uređaja se ne brani. Kolo za upravljanje oscilatora nije aktivno. DC generator od DCO (-> MCLK generator) je isključen. Signal ACLK nije aktivan. Kristal oscilator je stopiran
Osnovna podešavanja za aplikacije male potrošnje : Osnovni principi rada koji su sa aspekta aplikacija tipa mikropotrošnje najvažniji: * Neiskorišćeni FETI ulazi se spajaju na napon napajanja * Analogi generator u LCD+ modulu se isključuje * Pinovi JTAG-a TMS, TCK i TDI se ne povezuju na napon napajanja. * Ulazi CMOS kola se postavljaju na definisano stanje * Bira se najniža moguća radna frekvenciju za jezgro i periferije * Omogućimo najslabiju pobudu na osetljaj ako se koristi LCD ili ga isključimo * Dozvoljavaju se prekidi nakon čega počinje izvršenje programa
Periferije Periferni moduli su povezani sa centralnom procesorskom jedinicom preko MAB-a, MDB-a i uslužne rutine za obradu prekida i linija za inicijaliziranje zahteva za prekid. Veza modula/periferija
Periferije • Digitalni U/I portovi • Univerzalni Tajmer/Port modul • Tajmer_A • LCD (Liquid Crystal Display) • A/D konvertor • Univerzalni sinhroni-asinhroni prijemnik/predajnik USART • (Universal Synchronous Asynchronous Receive/Transmit)
Digitalni U/I portovi • Uređaji MSP430 familije imaju do 10 U/I portova – P1 do P10 • Svaki port ima osam U/I pinova • Svi registri portovasu 8-mo bitni i pristupa im se pomoću instrukcija obima bajt
Digitalni U/I portovi Port P0 Port P1
Digitalni U/I portovi Port P2 Port P3
Digitalni U/I portovi Port P4
Tajmer_A • Osnovni gradivni blokovi 16-bitnog Tajmera_A su: • Tajmer koji kontinualnoa broji do unapred definisane vrednosti, broji do predefinisane vrednosti i nazad do nule pri čemu se rad tajmera može zaustaviti • Izvor takta tajmera koji se bira softverski • Selektovani izlaz takta se može podeliti sa 1, 2, 4 ili 8 • Postoje 5 registara sa zahvatanjem/kompariranjem (capture/compare) pri čemu svaki registar može da zahvata jedno stanje, a dva signala za zahvatanje se kontrolišu od strane hardvera ili softvera • Postoje 5 izlazna modula koji podržavaju impulsno-širinskou modulaciju
Tajmer_A Četiri režima rada tajmera su definisana na sledeći način:
LCD (Liquid Crystal Display) LCD-ovi koriste ambijentalnu svetlost za prikaz informacija, a samim tim su mali potrošači energije. U MSP430 familiji mikrokontrolera koriste se četiri metode za upravljanje LCD-a: • Statička (metod statičke pobude) • 2MUX ili 1/2 popune • 3MUX ili 1/3 popune • 4MUX ili 1/4 popune.
LCD (Liquid Crystal Display) -Kod statičke metode potreban je jedan pin za zajedničku elektrodu (COM0) i jedan pin za svaki segment: broj pinova = 1 + broj segmenata • svaka segmentna linija pobuđuje jedan segment -Kod 2MUX metode potrebna su dva pina za zajedničku elektrodu (COM0, COM1) i jedan pin za dva segmenta broj pinova = celobrojna vrednost [2 + (broj segmenata /2)] • svaka segmentna linija pobuđuje dva segmenta
LCD (Liquid Crystal Display) -Kod 3MUX metode potrebna su tri pina za zajedničku elektrodu (COM0, COM1, COM2) i jedan pin za tri segmenta: broj pinova = celobrojna vrednost [3 + broj segmenata /3)] • svaka segmentna linija pobuđuje tri segmenta -Kod 4MUX metode potrebna su četiri pina za zajedničku elektrodu (COM0, COM1, COM2, COM3) i jedan pin za četiri segmenta: broj pinova = celobrojna vrednost [4 + (broj segmenata /4)] • svaka segmentna linija pobuđuje četiri segmenta
- A/D konvertor - Neke od karakteristika A/D modula: • Osam analognih ili digitalnih ulaznih kanala • Podešavanje strujnih parametara pomoću spoljašnjeg otpornika Rext • Merenje odnosa i apsolutno merenje • Ugrađen Sample-and-Hold • Marker prekida koji označava kraj konverzije (End-Of-Conversion-EOC) • ADAT registar zadržava rezultate konverzije do sledeće Start-Of konverzije (SOC)
- A/D konvertor - Neke od karakteristika A/D modula: • Mala potrošnja energije • Samostalna konverzija bez dodatnog korišćenja CPU-a • Programabilna 12-to bitna ili 14-to bitna rezolucija • Četiri programabilna opsega daju 14-to bitni dinamički opseg • Brza konverzija • Veliki opseg napona napajanja • Monotona karakteristika u celom opsegu A/D konverzije
- A/D konvertor - Konfiguracija ADC modula
- Univerzalni sinhroni-asinhroni prijemnik/predajnik USART - (Universal Synchronous Asynchronous Receive/Transmit) Univerzalni sinhroni/asinhroni interfejs je serijski kanal koji služi za prenos serijskog niza od 7 ili 8 bitova između mikroprocesora i U/I perifernog uređaja. Karakteristike USART-a: • Asinhroni režim rada uključujući i bit čekanja (idle bit) za komunikacijske protokole • Dva pomeračka registra za upis podataka u URXD i isčitavanje iz UTXD • Predaja/prijem podataka gde bit najmanje težine ima prioritet • Brzina predaje i prijema je programabilna • Statusni markeri
- Univerzalni sinhroni-asinhroni prijemnik/predajnik USART - (Universal Synchronous Asynchronous Receive/Transmit) Blok dijagram USART-UART načina rada
- Univerzalni sinhroni-asinhroni prijemnik/predajnik USART - (Universal Synchronous Asynchronous Receive/Transmit) Format asinhrone komunikacije Kod asinhrone komunikacije koriste se start bit, 7 ili 8 bitova podataka, bit parnosti, bit adrese za odgovarajući način adresiranja i jedan ili dva stop bita. Bit koji određuje periodu je definisan pomoću selektovanog taktnog izvora i podataka smeštenih u registru brzine prenosa