23
Univerzitet u Nišu Elektronski fakultet Katedra za elektroniku Predmet: Automobilska elektronika SEMINARSKI RAD Tema: Mikrokontroler C8051F040 Profesor: Student: Dr. Branislav Petrović Rade Rakić 11601 Niš, Novembar 2009.

SEMINARSKI RAD - es.elfak.ni.ac.rses.elfak.ni.ac.rs/Seminar works MCU/Mikrokontroler C8051F040 - Rade... · 2 1. Arhitektura mikrokontrolera Razvoj integralnih kola imao je za posledicu

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Univerzitet u NišuElektronski fakultetKatedra za elektronikuPredmet: Automobilska elektronika

SEMINARSKI RAD Tema:

Mikrokontroler C8051F040

Profesor: Student:Dr. Branislav Petrović Rade Rakić 11601

Niš, Novembar 2009.

1

SADRŽAJ:

1. Arhitektura mikrokonstrolera...............................................................12. Opšti pogled na sistem mikrokontrolera C8051F040..........................6

2.1. CIP-51 Jezgro mikrokontrolera..................................................82.1.1. Potpuna kompatibilnost sa 8051.............................................82.1.2. Uvećana propusna moć............................................................82.1.3. Dodatne karakteristike............................................................9

2.2. Memorija na čipu........................................................................102.3. JTAG debagiranje i boundary skeniranje ..............................112.4. Programabilni digitalni U/I pinovi i Crossbar.........................122.5. Programabilno polje brojača (PCA).........................................132.6. Controller Area Network (CAN)...............................................142.7. Serijski portovi............................................................................152.8. 12-bitni Analogno-Digitalni konvertor......................................15

2.8.1. High Voltage Difference Amplifier ......................................162.9. 8-bitni Analogno-Digitalni konvertor........................................182.10. Komparatori i Digitalno-analogni konvertori..........................19

3. Oscilatori................................................................................................203.1. Programabilni unutrašnji oscilator...........................................203.2. Kolo za upravljanje spoljašnjim oscilatorom...........................213.3. Izbor sistemskog kloka...............................................................22

2

1. Arhitektura mikrokontrolera

Razvoj integralnih kola imao je za posledicu i nastanak mikrokontrolera. Taj razvoj integralnih kola je omogućio da se na milione tranzistora smesti na jedan čip. Mikrokontroler predstavlja visoko integrisani čip koji sadrži (na jednom čipu) sve ili skoro sve delove potrebne kontroleru.

Kompjuteri su napravljeni tako što su mikroprocesoru dodati dodatni elementi kao što su memorija, ulazno – izlazni moduli, brojači i dr. Mikroprocesori su izvršavali veliki broj funkcija, kao što su: uzimanje instrukcija i podataka iz memorije, prenos podataka, dekodiranje instrukcija, izvšavanje aritmetičkih i logičkih operacija, itd. Mikrokontoleri se razlikuju od mikroprocesora u mnogo stvari. Prva i najvažnija razlika je funkcionalnost. Da bi mikroprocrsor funkcionisao moraju mu biti dodate određene komponente kao što su memorija, komponente za prijem i predaju informacija. Za razliku od mikroprocesora, mikrokontroleri sadrže sve te komponente na istom čipu.

Osnovni delovi svakog mikrokontrolera su: - Centralna procesorska jedinica (CPU)

- Memorija - Magistrale podataka (BUSES) - Ulazno - izlazna jedinica (U/I) - Registar za primanje i slanje podataka (SCU) - Tajmer - Jedinica za kontrolu ispravnosti (WD) - Analogno - digitalni konvertor (pretvarač)

Slika 1: Blok dijagram mikrokontrolera

3

Memorija je deo mikrokontrolera čiji je zadatak da skladišti podatke. Memorija sesastoji od memorijskih lokacija, a unutar memorijskih lokacija se nalaze podaci. Svaka memorijska lokacija ima svoju adresu pomoću koje joj se pristupa. Memorija se može posmatrati kao orman sa puno fioka, svakoj od ovih fioka se daje određena adresa i one se na taj način markiraju tako da se ne mogu međusobno pomešati. Te fioke predstavljaju memorijske lokacije u koje se upisuju određeni podaci, kojima se kasnije može pristupiti (mogu se čitati, ili se u njih može upisivati). Postoje dve vrste memorije koje sadrži mikrokontroler, a to su programska (ROM) i memorija za podatke (RAM).

RAM memorija je po dužini podeljena na GPR i SFR registreGPR registri (General Purpose Registres) su registri opšte namene i u njima se

čuvaju korisnički podaci.SFR registri (Special Function Registers) su registri posebne namene koji

zauzimaju prvih nekoliko lokacija u bankama. To su registri specijalnih funkcija dodeljeni određenim blokovima mikrokontrolera.

Centralnu procesorsku jedinicu (CPU - Central Processing Unit) predstavljaju digitalna kola koja obavljaju aritmetičke, logičke i upravljačke operacije u mikrokontroleru. Centralna procesorska jedinica sadrži izvestan broj specijalnih memorijskih lokacija koji se nazivaju CPU registri. Ona ima sposobnost da vrši aritmetičko-logičke operacije nad sadržajem ovih registara. Pored toga, ona vrši razmenu podataka sa drugim delovima mikrokontrolera. Centralna procesorska jedinica je spojena sa drugim delovima mikrokontrolera pomoću jedne ili više magistrala.

Magistrale (BUSES) služe za međusobno komuniciranje logičkih kola, flipfova, pomeračkih registara i drugih komponenti, koje ulaze u sastav mikrokontrolera. Neke od komponenti mikrokontrolera ostvaruju veze samo sa nekoliko drugih sklopova, dok neke druge zahtevaju povezivanje sa velikim brojem drugih delova sistema. Postoje dve vrste magistrala: adresna magistrala i magistrala podataka.

Ulazno - izlazna jedinica (U/I) služi za prenos podataka između mikrokontrolera i digitalnih logičkih kola van njega. Kod većine mikrokontrolera portovi su biderekcioni i moguće ih je konfigurisati kao ulazne ili kao izlazne.

Tajmer predstavlja jedinicu mikrokontrolera koja je zadužena za davanje informacija o vremenu, trajanju, itd. Osnovna jedinica tajmera je brojač koji ustvari registruje porast vremena u jednakim intervalima. Uzimajući vrednost brojača tokom perioda T1 i T2, i na osnovu njihove razlike možemo da utvrdimo koliko je vremena prošlo.

Jedinica za nadzor (Watchdog) služi da u slučaju neke nepravilnosti, ili nepravilnog rada mikrokontrolera ukaže na pojavu nepravilnosti. Watchdog predstavlja slobodni brojaččija se vrednost povećava u jednakim intervalima kao što je to slučaj sa tajmerom. Onoga trenutka kada se pravilno izvrši program, mikrokontroler resetuje brojač odnosno postavi ga na nulu. U slučaju da dođe do greške (blokiranja) u izvršavanju programa, mikrokontroler neće resetovati Watchdog (brojač) i on će dostići svoju maksimalnu vrednost. Kada se to desi Watchdog će resetovati mikrokontroler.

Analogno - digitalni konvertor (pretvarač) je deo mikrokontrolera koji ima zadatak da analogni signal koji primi prevede (konvertuje) u digitalni. Zatim takav signal prenosi do centralne procesorske jedinice kako bi ona mogla dalje da obradi podatak. Suprotan proces obavlja digitalno-analogni konvertor.

Sve ovo što je rečeno odnosi se na opšte delove mikrokontrolera. U daljem tekstu biće prikazani osnovni blokovi mikrokontrolera C8051F040, kao i njihove karakteristike.

Analogne periferne jedinice- 12-bitni SAR ADC

12 bitova +/- 1LSB INT, osigurava tačnost koda Programabilni protok podataka do 100ksps 13 spoljašnja SW diferencijalni pojačavač napona Programabilni Podaci su Ugrađen temperaturni senzor

- 8-bitni SAR ADC Programabilni protok podataka do 500ksps 8 spoljašnja ulaza, Programabilni po

- Dva 12-bitna DAC Mogu se

izobličenja- Tri analogna komparatora

Programabilno vreme histerezisa/odziva- Referentni napon- Precizno nadgledanje VDD

JTAG debagiranje i Boundary - Debagiranjem grešaka

potrebno debagiranje kasnije u kolu/sistemu.- Obezbeđuju se tačke prekida, pojedinačni koraci, tačke posmatranja, kontrola

memorije, ispitivanje/modifikacija memorije i regi- Superiorne performanse sistema pomoću ICE čipova- Boundary skeniranje saglasno IEEE1141.9 standardu- Potpuno razvojno okruženje

Velika brzina jezgra 8051 mikrokontrolera- Protočna arhitektura izvršenja instrukcija: izvršava se 70% instrukcija za samo

jedan ili dva taktna ciklusa- Do 25 MIPS-a propusne moći sa klokom od 25MHz- 20 izvora prekida

Memorija- 4352 B unutrašnje RAM memorije (4k+256)- 64 kB fleš memorije, sistemski programabilne u 512- Spoljašnji interfejs za 64

nemultipleksni mod

4

C8051F040

Analogne periferne jedinicebitni SAR ADC

12 bitova1LSB INT, osigurava tačnost koda

Programabilni protok podataka do 100ksps13 spoljašnjaih ulaza, mogu da budu samostalni ili diferencijalnSW diferencijalni pojačavač naponaProgramabilni pojačavač, sa pojačanjem: 16, 8, 4, 2, 1 i

su zavisni od prekidaUgrađen temperaturni senzor

bitni SAR ADCProgramabilni protok podataka do 500ksps8 spoljašnja ulaza, samostalna ili diferencijalnaProgramabilni pojačavač, sa pojačanjem: 4, 2, 1 i 0.5bitna DAC-a

gu se vremenski sinhronizovati izlazi zbog generisanje signela bez izobličenja

Tri analogna komparatoraProgramabilno vreme histerezisa/odziva

Referentni naponPrecizno nadgledanje VDD-a

Boundary skeniranjegrešaka na čipu omogućava se maksimalna brzin

potrebno debagiranje kasnije u kolu/sistemu.Obezbeđuju se tačke prekida, pojedinačni koraci, tačke posmatranja, kontrola memorije, ispitivanje/modifikacija memorije i registaraSuperiorne performanse sistema pomoću ICE čipova

skeniranje saglasno IEEE1141.9 standarduPotpuno razvojno okruženje

8051 mikrokontroleraProtočna arhitektura izvršenja instrukcija: izvršava se 70% instrukcija za samo jedan ili dva taktna ciklusa

a propusne moći sa klokom od 25MHz20 izvora prekida

unutrašnje RAM memorije (4k+256)kB fleš memorije, sistemski programabilne u 512-bajtnim sektorima

Spoljašnji interfejs za 64 kB podataka (programabilni modovi rada: multipleksni mod)

ili diferencijalni

, sa pojačanjem: 16, 8, 4, 2, 1 i 0.5

generisanje signela bez

brzina rada, i nije

Obezbeđuju se tačke prekida, pojedinačni koraci, tačke posmatranja, kontrola

Protočna arhitektura izvršenja instrukcija: izvršava se 70% instrukcija za samo

bajtnim sektorimaogramabilni modovi rada: multipleksni i

5

Digitalne periferne jedinice- 8 8-bitnih U/I portova; 5V tolerancija- Bosch Controller Area Network (CAN 2.0), hardverski SMBus, SPI, i dva UART

serijska porta koja su istovremeno dostupna- Programabilni 16-bitni brojač/tajmer sa 6 capture/compare modula - Pet 16-bitnih brojača/tajmera opšte namene- Rezervisan wach-dog tajmer, bidirekcioni pin za reset

Izvor kloka- Unutrašnja kalibracija programabilnog oscilatora od 3 do 24.5MHz- Spoljašnji oscilator: kristalni, rezonantni, RC- Real-time mod kloka pomoću brojača 2, 3, 4 ili PCA.

Izvor napona od 2.6 do 3.7V- Više načina uštede energije: sleep i shutdown modovi rada.

100-pinski TQFP raspoloživi paketi- Temperaturni opseg: -40 do +85˚C.

Slika 2. Izgled mikrokontrolera C8051F040

6

2. Opšti pogled na sistem mikrokontrolera C8051F040

C8051F040 je sistem potpuno integrisan na čipu - mikrokontroler koji se sastoji od 64digitalnih U/I pinova i integrisanog CAN 2.0B kontrolera. Najznačajnije karakteristike ovog mikrokontrolera su sledeće:

Najveća brizina rada koju može ostvariti 8051 kompatibilna je sa jezgrom CIP-51 mikrokontrolera (do 25 MIPS-a);

Controller Area Network (CAN 2.0B) kontroler sa 32 objekta za poruke, gde svaka sadrži sopstvenu indetifikacionu masku;

Sistemski, maksimalno brz, neometajući debag interfejs (na čipu); 12-bitni 8-kanalni ADC ( brzina uzorkovanja 100ksps ) sa PGA i anlognim

multiplekserom; Diferencijalni naponski pojačavač sa programabilnim pojačanjem se koristi

kao ulaz za 12-bitni ADC ( maksimalno 60V); 8-bitni 8-kanalni ADC ( brzina uzorkovanja 500ksps ) sa PGA i anlognim

multiplekserom; Dva 12-bitna DAC-a sa programabilnim trenutkom upisa; 64 kB sistemske programabilne fleš memorije; 4352 (4096 + 256) bajta RAM-a na čipu; Spoljašnji memorijski interfejs sa 64kB adresnog prostora; SPI, SMBus/I2C, i (2) UART serijski interfejs implementiran u hardveru; Pet 16-bitnih tajmera opšte namene; Programabilno polje brojača/tajmera sa šest capture/compare modula; Watchdog Timer, VDD kontroler, i Temperaturni senzor.

Sa VDD kontrolerom, Watchdog Tajmerom, i klok oscilatorom, C8051F040 je dobro rešenje samostalnog sistema na čipu. Sve analogne i digitalne periferije suomogućene/zabranjene i regulišu se korisničkim programom. Fleš memorija se može reprogramirati u kolu, obezbeđujući sigurno smeštanje podataka.

JTAG kolo za debagiranje na ploči omogućava neometajuće (ne koristi resurse sa čipa), maksimalno brzo, programiranje i debagiranje u kolu pomoću MCU-a. Sistem za debagiranje podržava kontrolu i modifikaciju memorije i registara, podešava tačke prekida, tačke nadzora, pojedinačne korake, rad i komande zaustavljanja. Sve analogne i digitalne periferne jedinice su potpuno u funkciji za vreme dok se izvršava debagiranje pomoću JTAG.

Svaki MCU je specificiran za rad od 2.7V do 3.6V u industrijskom temperaturnom opsegu (-45 do +85˚C). U/I portovi, /RTS, i JTAG pinovi imaju toleranciju za ulazne signale do 5V. C8051F040 ima 100 TQFP pinova.

7

Slika 3. Blok dijagram mikrokontrolera C8051F040

8

2.1. CIP-51 Jezgro mikrokontrolera

2.1.1. Potpuna kompatibilnost sa 8051

C8051F04X je familija mikrokontrolera (MCU), firme Silicon Laboratories, koja koristi CIP-51 jezgro. CIP-51 je potpuno kompatibilno sa instrukcionim setom MSC-51: standardni 803x/805x asembleri i kompajleri se mogu koristiti za razvoj softvera. Jezgro ima sve periferne jedinice obuhvaćene standardom 8052, uključujući 5 16-bitnih brojača/tajmera, dva UART-a, 256B unutrašnje RAM memorije, 128B adresnog prostora Specion Function Register (SFR), i 8-bitne U/I portove.

2.1.2. Uvećana propusna moć

CIP-51 koristi protočnu arhitekturu koja znatno uvećava propusnu moć instrukcija u odnosu na standardnu strukturu 8051. Kod 8051 standarda, za izvršenje svih insrtukcija, izuzev instrukcija za MUL i DIV, potrebno je 12 ili 24 taktnih cilusa sa maksimalnim klokom od 12 do 24MHz. Suprotno tome, jezgro CIP-51 izvršava 70% ovih instrukcija u jedan ili 2 taktna ciklusa, dok je samo za četri instrukcije potrebno više od četri taktna ciklusa.

CIP-51 ima ukupno 109 instrukcija. U donjoj tabeli je prikazano koliko se instrukcija izvršava za koliko taktnih ciklusa.

Kod CIP-51 maksimalni sistemski klok je 25MHz, što čini njegovu maksimalnu propusnu moć od 25 MIPS-a. Na slici 2 prikazano je upoređivanje propusnih moći više 8-bitnih mikrokontrolerskih jezgra, pri njihovim maksimalnim sistemskim klokovima.

Slika 4. Upoređivanje maksimalnih brzina različitih mikrokontrolera (MCU)

9

2.1.3. Dodatne karakteristike

C8051F04X familija mikrokontrolera (MCU) obuhvata nekoliko ključnih poboljšanja koja se tiču samog jezgra CIP-51 kao i perifernih jedinica, čime se ostvaruje poboljšanje opštih performansi i olakšva upotreba u konačnim aplikacijama.

Dodatnim kontrolerom prekida obezbeđuje se 20 izvora prekida kod CIP-51 jezgra ( za razliku od jezgra 8051 gde se obezbeđuje samo 7 izvora prekida ), omogućavajući mnogobrojnim analognim i digitalnim perifernim jedinicama da vrše prekid kontrolera. Prekid pokrenut sistemom zahteva manje intervencija mikrokontrolera, obezbeđujući veću propusnu moć. Dodatni izvori prekida su veoma korisni prilikom izrade multi-tasking sistema u relanom vremenu.

Postoji do 7 izvora reseta mikrokontrolera, a to su: VDD kontroler, Watchdog tajmer, detektor nedostatka kloka, detekcija nivoa napona sa komparatora, prinudni softverski reset, CNVSTR0 ulazni pin i /RST pin. /RST pin je bidirekcioni, koji može da služi kao ulazni pinza spoljašnji reset ili kao izlazni pin sa koga se prenosi interno generisani POP signal. Svaki izvor reseta, izuzimajući VDD kontroler i ulazni pin za reset, može se omogućiti korisničkim softverom: VDD kontroler je dozvoljen/zabranjen pomoću MONEN pina. Watchdog tajmersoftverski može biti trajno dozvoljen nakon inicijalizacije mikrokontrolera.

MCU ima unutrašnji, samostalni generator kloka koji se po difoltu koristi kao sistemski klok nakon svakog reseta. Ako je potrebno može se izvršiti generisanje sistemskog kloka sa spoljašnjeg oscilatora. Ovo može biti veoma korisno u aplikacijama male snage gde se mikrokontroleru omogućava sporiji rad ( štedi se energija ) uz pomoć spoljašnjeg izvora kloka, dok se periodično vrši prebacivanje na brži (do 25MHz) unutrašnji oscilator ako je to potrebno.

Slika 3. Blok šema kloka i reset

10

2.2. Memorija na čipu

CIP-51 ima standardno programiranje kao i 8051 i standardan način adresiranja podataka. To uključuje 256B RAM-a, gde se viših 128B mogu dvostruko mapirati. Indirektnim adresiranjem pristupa se RAM-u opšte namene, a direktnim adresiranjem se pristupa SFR adresnom prostoru RAM-a. SFR adresni prostor sadrži do 256 SFR stranica. U tom slučaju, CIP-51 mikrokontroler može opslužiti mnogo SFR zahteva i konfigurisati različite periferne jedinice na uređaj. Nižih 128B RAM-a se mogu i direktno i indirektnoadresirati. Prva 32B su adresabilna kao četri banke registara opšte namene, a sledećih 16B mogu biti bajt adresabilni ili bit adresabilni.

CIP-51jezgro u C8051F040 mikrokontroleru dodatno na čipu ima blok od 4kB RAM memorije i spoljašnji memorijski interfejs (EMIF) za pristup memoriji van čipa ili memorijski mapiranim periferijama. Blok od 4B može biti adresiran preko celokupnog 64kB spoljašnjeg memorijskog adresnog opsega ( preklapanje 4kB granica ). Spoljašnji memorijski adresni prostor može se mapirati memorijom na čipu, spoljašnjom memorijom ili kombinacijom ove dve metode ( adresiranje do 4kB direktno na čipu, iznad 4kB se usmerava ka EMIF). EMIF se takođe konfiguriše za multipleksne ili nemultipleksne adresne linije.

Programska memorija mikrokontrolera sastoji se od 64kB fleš memorije. Ova memorija može biti reprogramirana u sistemu u sektorima od po 512B, i ne zahteva se posebno spoljašnje napajanje za izvršenje programiranja. 512B od adresa 0xFE00 do 0xFFFF je rezervisane za 64kB mikrokontrolera. Postoji i jedan sektor od 128B na adresama od 0x10000 do 0x1007F koji se može iskoristiti kao mala tabela za softverske konstante. Na slici 6 je prikazana memorijska mapa sistema.

Slika 6. Memorijska mapa na čipu

11

2.3. JTAG debagiranje i boundary skeniranje

C8051F040 na čipu sadrži JTAG boundary skener i kolo za debagiranje koje obezbeđuje neometajuće, maksimalno brzo, debagiranje u kolu uz pomoć četvoropinskog JTAG interfejsa. JTAG interfejs je u saglasnosti sa IEEE 1149.1 standardom, čime obezbeđuje potpuno boundary skeniranje što se koristi u svrhe testiranja i u proizvodnim svrhama.

Sistem za debagiranje pruža podršku u kontroli i modifikaciji memorije i registara, obezbeđuje tačake prekida, tačake nadgledanja, nadgledanje memorijskih lokacija, i pojedinačno koračanje. Nisu potrebni dodatni RAM, programska memorija, tajmeri ili komunikacioni kanali da bi se obavilo debagiranje. Sve analogne i digitalne periferije su u funkciji i rade korektno za vreme izvršavanja debagiranja. Da bi se održala sinhronizacija sa instrukcijama koje se izvršavaju sve periferne jedinice (izuzimajući ADC i SMBus) se zaustavljaju dok je MCU zaustevljen, tokom pojedinačnog koračanja, ili u tačci prekida,.

C8051F040DK razvojno okruženje obezbeđuje sav hardver i softver koji je neophodan za razvoj aplikacionog koda i izvršenje debagiranja sa C8051F040 mikrokontrolerima. Razvojno okruženje obuhvata pločicu i kabal za ostvarivanje jednostavne CAN komunikacione mreže. Okruženje takođe uključuje softver sa razvijenim studiom i debagerom, aplikacionu pločicu na kojoj je postavljen mikrokontroler, a zahtevaju se takođe i kabl i utičnice preko kojih će se dovesti izvor napajanja za mikrokontroler i za ostale komponente na pločici. Serijski adapter uzima energiju sa aplikacione table (podatke koje će obraditi racunar), a njihova vrednost je oko 20mA i 2.7 - 3.6V. Za sistem gde ne postoji dovoljna energija iz željenog sistema sa pločice, izvor energije može se povezati direktno na serijski adapter.

Debag okruženje je mnogo bolja konfiguracija za razvoj i debagiranje embedded aplikacija, u poređenju sa standardnim MCU emulatorom. Debag okruženje olakšava upotrebu i održava ispravan rad analognih perifernih jedinica na čipu.

Slika 7. Razvojni/ulazni sistem za debagiranje

12

2.4. Programabilni digitalni U/I pinovi i Crossbar

Standardni 8051 portovi (0, 1, 2 i 3) dostupni su i kod ovog MCU-a. C8051F040 ima četri dodatna 8-bitna porta ( 4, 5, 6 i 7) što je ukupno 64 U/I porta opšte namene. Portovi su isti kao kod 8051 uz nekoliko dodatih poboljšanja.

Svaki pin može biti konfigurisan kao „push-pull“ ili „open-drain“ izlaz. Takođe, „slabi pullups“ koji postoje kod 8051 se mogu globlno zabraniti, pružajući dodatnu sposobnost uštede energije kada se radi o aplikacijama sa niskom potrošnjom energije. Možda je najveće unapređenje digitalni Crossbar. Ovo je veoma bitno kod digitalnih mreža koje omogućavaju mapiranje unutrašnjih sistemskih digitalnih resursa na pinovima U/I portova P0, P1, P2 i P3 (vidi sliku 8). Različiti mikrokontroleri sa standardnim multipleksnim U/I portovima, podržavaju sve kombinacije opcija koje su ponuđene paketima.

Brojač/tajmer, serijska magistrala, HW interapti, ulaz za start ADC konverzije, komparator izlaza, i drugi digitalni signali u kontroleru mogu se pojaviti na pinovima U/I portova specificiranih u Crossbar kontrolnim registrima. To omogućava korisniku da bira U/I portove opšte namene i digitalne resurse koji su potrebni za određenu aplikaciju.

Slika 8. Dijagram Crossbar-a

13

2.5. Programabilno polje brojača (PCA- Programmable Counter Array)

Mikrokontroler C8051F040 sadrži programabilnu oblast brojača/tajmera (PCA) poredveć postojećih pet 16-bitnih brojača/tajmera opšte namene. PCA se sastoji od rezervisanog 16-bitnog brojač/tajmera zasnovanog na šest pragramabilnih capture/compare modula. Vremenska osnova je klok iz jednog od šest izvora, a ti izvori su: sistemski klok podeljen sa 12, sistemski klok podeljen sa 4, prekoračenje tajmera 0, ulaz spoljašnjeg kloka (ECI pin), sistemski klok, ili klok spoljašnjeg oscilatora podeljen sa 8.

Svaki capture/compare modul može se konfigurisati da radi u jednom od šest modova: „Edge-Triggered Capture“, softverski tajmer, izlaz velike brzine, generator frekvencije, 8-bitni ili 16-bitni širinsko impulsni modulator (PWM). PCA capture/compare U/I modul i spoljašnji ulaz kloka se usmeravaju ka U/I portu mikrokontrolera uz pomoć digitalnog Crossbar-a.

Slika 9. PCA blok dijagram

14

2.6. Controller Area Network (CAN)

Familiju mikrokontrolera C8051F040X karakteriše Controller Area Network (CAN), kontroler koji izvšava serijsku komunikaciju koristeći CAN protokol. CAN kontroler olakšava komunikaciju na CAN mreži u skladu sa Bosh specifikacijom 2.0A (osnovni CAN ) i 2.0B (potpuni CAN).

CAN kontroler se sastoji iz - CAN jezgra (CAN Core), RAM-a za poruke (Message RAM), - mašine stanja za rad sa porukama (Message Handler state machine), - kontrolnih registra i - interfejsa za CIP-51 MCU (Master Control Unit), koji predstavlja glavni

procesor mikrokontrolera. Celokupni posao oko slanja i primanja poruka, kao i ostalih specifičnih poslova CAN

protokola obavlja CAN procesor, tako da je CIP-51 MCU potpuno relaksiran i troši vrlo malo vremena na CAN komunikaciju.

CAN kontroler može da radi sa bitskim brzinama do 1Mbit/s. CAN ima 32 objekta za poruke, gde svaki objekat ima sopstvenu identifikacionu masku koju koristi za filtriranje i prijem poruka. Podaci koji dolaze, poruke i identifikacione maske se čuvaju u RAM-u za poruke. Ovi protokoli su namenjeni za prenos i filtriranje podataka koje izvršava CAN kontroler a ne mikrokontroler C8051. U ovom slučaju minimalni propusni opseg CPU-a se koristi za CAN komunikaciju. C8051 CPU konfiguriše CAN kontroler, pristupa primljenim podacima, i propušta podatke za prenos uz pomoć SFR registara.

Slika 10. Blok šema CAN kontrolera

15

2.7. Serijski portovi

Familija C8051F04x mikrokontrolera je poboljšana sa dva potpuna UART-a, povećanom SPI magistralom i SMBus/I2C. Svaka serijska magistrala je potpuno implementirana u hardver i omogućava bolji rad sa prekidima, tako da se zahteva veoma malo intervencije CPU-a. Serijska magistrala ne deli resurse kao što su na primer tajmeri, interapti ili U/I portovi, tako da se sve serijske magistrale mogu koristiti zajedno sa bilo kojom drugom.

2.8. 12-bitni Analogno-Digitalni konvertor

C8051F040 ima 12-bitni SAR ADC (ADC0) sa 9-kanalnim ulaznim multiplekserom i programabilnim pojačavačem. Sa maksimalnom propusnom moći od 100ksps, ADC omogućava rezultat od 12-bitova sa INL od ±1LSB. Referentni napon komparatora se bira između izlaza DAC0 i spoljašnjeg VREF pina. Pomoću VREF izlaznog pina može segenerisati referentni napon za ADC ili druge sistemske komponente.

ADC se potpuno upravlja CIP-51 mikrokontrolerom uz pomoć pridruženih SFR registara. Jedan ulazni kanal multipleksera se vodi na temperaturni senzor, dok je ostalih osam kanala dostupno spolja. Svaki par od osam spoljašnjih ulaznih kanala mogu biti konfigurisanikao dva posebna ulaza ili kao diferencijalni ulaz. Sistemski kontroler takođe može da postavi ADC u shutdown mod zbog uštede energije.

Programabilni pojačavač dolazi nakon analognog multipleksera. Pojačanje može biti 0.5, 1, 2, 4, 8, ili 16 i može se softverski programirati. Pojačanje može biti naročito korisno kada ulazni signali na različitim ulazima ADC-a imaju veliku varijaciju napona, ili kada je neophodno zumiranje signala sa velikim DC ofsetom ( u diferencijalnom modu DAC može biti korišćen da se obezbedi dc ofset).

Konverzija može početi na četri načina: softverskom komandom, prekoračenjem tajmera 2, prekoračenjem tajmera 3 ili spoljašnjim ulaznim signalom. Ova fleksibilnostomogućava da se početak konverzije može inicirati softverskim događajima, spoljašnjim HW signalima, ili periodičnim signalima prekoračenja tajmera. Završetak konverzije se pokazuje statusnim bitom i prekidom (ako je dozvoljen). Rezultujuća 12-bitna reč se zamrzava u dva SFR registra nakon završetka konverzije. Podaci u registrima mogu biti desno ili levo poravnjani nakon softverske kontrole.

Registar „Prozor upoređivač“ (Window Compare) ADC podataka može konfigurisati prekid ka kontroleru kada su podaci ADC-a u/izvan specificiranog opsega. ADC može neprekidno nadgledati napon u background modu, ali ne može prekinuti kontroler ukoliko su navedeni podaci u specificiranom opsegu.

16

Slika 11. Blok dijagram 12-bitnog ADC-a

2.8.1. High Voltage Difference Amplifier( Diferencijalni pojačavač napona)

High Voltage Difference Amplifier (diferencijalni pojačavač visokog napona) (HVDA) se može koristiti za merenje viskog diferencijalnog napona čija je maksimalna vrednost do 60V, a minimalna do -60V i za prilagođenje naponskog nivoa signala na ulaz ADC0. HDVA će omogućiti zajednički signal za ADC pomoću viskonaponskog referentnog ulaza (HVREF), omogućavajući merenje signala izvan specificiranog ulaznog opsega ADC-a. HVDA ima opseg pojačanja od 0.5 do 14. Prvi stepen diferencijalnog pojačavača ima pojačanje od 0.5 kada se izlaz pojačavača koristi kao jedinstveni bafer pojačanja. Kada se izlaz pojačavača podesi na 280 (selektovanje se vrši pomoću HVGAIN bita u visokonaponskom kontrolnim registru), može se postići maksimalno pojačanje od 14. HVDA je fabrički kalibrisan da ima zajedničko potiskivanje signala od 72dB.

HDVA koristi četri spoljašnja pina:, +HVAIN, –HVAIN, HVCAP, i već pomenuti HVREF. +HVAIN i –HVAIN služe kao diferencijalni ulazi za HDTA. HVREF se može koristiti da obezbedi zajedničku osnovu za ulaz do ADC0. HVCAP olakšava korišćenje kondenzatora u spoju sa R7 - koji se koristi za filtriranje šuma (na slici 12 su prikazane približne vrednosti za R7 i za ostale komponente). Alternativno, HVCAP takođe može biti korišćen da se sa spoljašnjeg pina pristupi prvom pojačavačkom stepenu HVDA.

Jednačina pomoću koje se vrši izračunavanje izlaza HDTA koji se vodi do ADC-a

Napomena: Izlazni napon HVDA se bira kao jedan od mogućih ulaza ADC-a pomoću analognog multipleksera (AMUX0). Ako je izlazni napon HVDA veći od referentnog napona (Vref) ADC-a ili manji od 0 volti ( u zavisnosti od analogne mase ) doći će do zasićenja (izlazni kod>pune skale ili izlazni kod<0). Uzima se u obzir odgovarajuće vreme prilagođavanja/praćenja za odgovarajuću vrednost izmerenog napona.

17

Slika 12: Funkcionalni dijagram HDTA

HVA0CN – Kontrola visokonaponskog diferencijalnog pojačavača

Bit 7: HVDAEN – bit dozvole rada visokonaponskog diferencijalnog pojačavača0 – zabranjen HVDA1 – dozvoljen HVDA

Bitovi 6-3: RezervisaniBitovi 2-0: HVGAIN3-HVGAIN0: kontrolni bitovi pojačanja HVDA.

HVDA kontrolni bitovi pojačanja vrše podešavanje pojačnja u zavisnosti od signala dovedenih na ulaz HVDA, i to na sledeći način:

18

2.9. 8-bitni Analogno-Digitalni konvertor (ADC)

C8051F040 ima 8-bitni ADC SAR (ADC0) sa 8-kanalnim ulaznim multiplekserom i programabilnim pojačavačem. Sa maksimalnom propusnom moći od 500ksps, ADC omogućava tačnu prezentaciju 8-bitova sa INL od ±1LSB. Svih osam ulaznih pinova je dostupno i mogu se koristiti kao posebni ili kao diferencijalni ulazi. ADC je pod potpunom kontrolom CIP-51 mikrokontrolera uz pomoć SFR registara. Referentni napon ADC2 se bira između analognog naponskog izvora (AV+) i spoljašnjeg VREF pina. Korisnik može softverski postaviti ADC u shutdown mod radi uštede energije.

Programabilni pojačavač sledi nakon analognog multipleksera. Pojačanje može biti naročito korisno kada ulazni signali na različitim ulazima ADC-a imaju veliku varijaciju napona, ili kada je neophodno zumiranje signala sa velikim DC ofsetom. PGA pojačanje može se softverski podesiti, i može biti: 0.5, 1, 2, ili 4.

Datim sistemom obezbeđuje se da konverzija ADC2 konvertora može biti inicirana:softverskom komandom, tajmerskim prekoračenjem, ili spoljašnjim ulaznim signalom. Rad ADC2 takođe se može sinhronizovati sa radom ADC0 koji je softverski određen. Završetak konverzije se pokazuje statusnim bitom i prekidom (ako je on dozvoljen), a rezultujuća 8-bitna reč se nakon završetka konverzije čuva u SFR registru.

Slika 13. Blok dijagram 8-bitnog ADC-a

19

2.10. Komparatori i Digitalno-Analogni konvertori (DAC)

Svaki C8051F040 mikrokontroler ima 2 12-bitna DAC-a. MCU obrađuje podatke i kontroliše interfejs ka svakom komparatoru i DAC-u pomoću SFR registara. Mikrokontroler može da postavi DAC ili komparator u shutdown mod radi uštede energije.

Komparatori imaju softverski programiran histerezis i vreme odziva. Svaki komparator može da generiše prekid na njegovu rastuću ivicu, opadajuću ivicu, ili obe; ovi prekidi su sposobni da probude mikrokkontroler iz sleep moda. Stanja izlaza komparatora mogu se takođe uneti softverski. Izlazi komparatora mogu se programirati tako da se pojave na pinovima U/I porta pomoću Crossbar-a.

DAC-ovi su u naponsko izlaznom modu i uključuju fleksibilan mehanizam izlaznogvremenskog planiranja. Ovaj mehanizam planiranja omogućava da izlaz DAC-a bude obnovljen softverskim upisom ili prekoračenjem tajmera 2, 3 ili 4. Referentni napon DAC-a se dobija iz rezervisanog ulaznog pina VREF. DAC-ovi su naričito korisni kao osnova za komparatore ili kao ofset za diferencijalne ulaze DAC-a.

Slika 14. Blok dijagram komparatora i DAC-a

20

3. Oscilatori

Slika 15. Blok dijagram oscilatora

3.1. Programabilni unutrašnji oscilator

C8051F040 sadrži programabilni unutrašnji oscilator koji se koristi kao osnova za sistemski klok nakon resetovanja sistema. Frekvencija unutrašnjeg oscilatora se može programirati pomoću OSCICL registra na način koji je prikazan u SFR Definition 1. OSCICL je fabrički kalibrisan na frekvanciju od 24.5MHz.

Programiranjem frekvencija unutrašnjeg oscilatora ne sme preći 25MHz. Sistemski klok se može dobiti i programiranjem, tako što se unutrašnji oscilator podeli sa 1, 2, 4 ili 8, što je definisano IFSN bitom u OSCICN registru.

SFR Definition 1. OSCICL: Kalibracija unutrašnjeg oscilatora

Bitovi 7-0: OSCICL – Registar za kalibraciju unutrašnjeg oscilatoraOvaj registar vrši kalibraciju frekvencije unutrašnjeg oscilatora. Vrednost ovog registra OSCICL definiše osnovnu frekvenciju unutrašnjeg oscilatora. Ova vrednost je fabrički kalibrisana da generiše frekvenciju od 24.5MHz.

SFR Definition 2. OSCICN: Kontrola unutrašnjeg oscilatora

21

Bit 7: IOSCEN –bit dozvole unutrašnjeg oscilatora0 – zabranjen rad unurtašnjeg oscilatora1 – dozvoljen rad unutrašnjeg oscilatora

Bit 6: IFRDY – indikator spremnosti unutrašnjeg oscilatora0 – unutrašnji oscilator ne radi na programiranoj frekvenciji1 - unutrašnji oscilator radi na programiranoj frekvenciji

Bitovi 5-2: Rezervisani Bitovi 1-0: IFCN1-0: Kontrolni bit.

00: SYSCLK (sistemski klok) dobijen iz unutrašnjeg oscilatora podeljenog sa 8. 01: SYSCLK dobijen iz unutrašnjeg oscilatora podeljenog sa 4. 10: SYSCLK dobijen iz unutrašnjeg oscilatora podeljenog sa 2.

11: SYSCLK dobijen iz unutrašnjeg oscilatora podeljenog sa 1.

Tabela 2. Električne karakteristike unutrašnjeg oscilatora

3.2. Kolo za upravljanje spoljašnjim oscilatorom

Kao spoljašnji oscilator može se koristiti: kristal kvarca, keramički rezonator, ili RC mreža. Takođe može se koristiti i CMOS konfiguracija za dobijanje ulaznog kloka. Za kristalne ili keramičke rezonantne konfiguracije, kristal/rezonator može biti povezan na XTAL1 i XTAL2 pinove kao što je prikazano na slici 15 – opcija 1. Kod RC, ili CMOS klok konfiguracije, izvor kloka može biti povezan na XTAL2 i/ili XTAL1 pin(ove) kao što je prikazano na slici 15 u opcijama 2, 3 i 4. Tip spoljašnjeg oscilatora mora biti selektovan u OSCXCN registru, a frekvencijski kontrolni bitovi (XFCN) moraju biti selektovani pojedinačno (vidi SFR Definition 4).

22

3.3. Izbor sistemskog kloka

CLKSL bit registra CLKSEL služi za biranje koji će se oscilator koristiti za dobijanje sistemskog kloka. CLKSL mora biti postavljen na ’1’ da bi sistemski klok bio generisan sa spoljašnjeg oscilatora; međutim može se desiti da spoljašnji oscilator bude još uvek klok perifernih jedinica (za tajmer, PCA) kada se unutrašnji oscilator izabere za davanjesistemskog kloka. Sistemski klok se u takvim situacijama može menjati sa unutrašnjeg na spoljašnji oscilatora ili obrnuto, sve dok izabrani oscilator nije dostupan i spreman za rad. Unutrašnji oscilator zahteva malo vreme uključenja a može biti dostupan i izabran kao sistemski klok u isto vreme dok se upisuje OSCICN. Spoljašnji kristali i keramički rezonatori obično zahtevaju određeno vreme pre nego što se prilagode i budu spremni da se koriste kao sistemski klok. Crystal Valid Flag (XTLVLD u registru OSCXCN) se hardverski postavlja na ’1’ kada je spoljašnji oscilator spreman. Da bi se izbeglo pogrešno čitanje XTLVLD-a u kristalnom modu, treba da se obezbedi softversko kašnjenje od 1ms između trenutka kada je spoljašnji oscilator postavljen i trenutka kada se proverava XTLVLD.

SFR Definition 3. CLKSEL: Izbor oscilatora kloka

Bitovi 7-1: Rezervisani Bit 0: CLKSL : bit za selektovanje sistemskog kloka.

0- SYSCLK dobijen sa unutrašnjeg oscilatora, i srazmeran je IFCN bitovima u OSCICN.

1- SYSCLK dobija se iz spoljašnjeg oscilatornog kola

SFR Definition 4. OSCXCN: Kontrola spoljašnjeg oscilatornog kola

Bit 7: XTLVLD bit spremnosti spoljašnjeg oscilatora (jedino čitanje kada XOSCMD=11x)0- Kristalni oscilator se ne koristi ili još uvek nije stabilan1- Kristalni oscilator radi i stabilan je

Bitovi 6-4: XOSCMD2 bitovi određuju mod spoljašnjeg oscilatora00x- spoljašnji oscilator je isključen010- spoljašnji CMOS klok mod (spoljašnji ulazni klok je doveden na pin XTAL1)011- spoljašnji CMOS klok mod sa stepenom za deljenje 2 (spoljašnji ulaz klok je doveden na pin XTAL1)10x- RC/C mod oscilatora sa stepenom za deljenje sa 2110- mod kristalnog oscilatora110- mod kristalnog oscilatora podeljenog sa 2

Bit 3: Rezervisan. Čitanje=0, Upis=nije bitno koja vrednost.Bitovi 2-0: XFSCN2 – Kontrolni bit za određivanje frekvencije spoljašnjeg oscilatora