1.61k likes | 1.83k Views
RAZVOJ SISTEMA NA BAZI MIKROKONTROLERA. Prikaz na primeru razvoja “Crne kutije” i kontrolne table za kamione. Predrag Mini ć mipedja@sezampro.yu Marko Miti ć mimarko@ptt.yu Ljubomir Samard ž i ć ljubex@ptt.yu. Uvod. Koncepcija mikrokontrolera Prednos t i otpornost na šumove kompaktnost
E N D
RAZVOJ SISTEMA NA BAZI MIKROKONTROLERA Prikaz na primeru razvoja “Crne kutije” i kontrolne table za kamione Predrag Minićmipedja@sezampro.yu Marko Mitićmimarko@ptt.yu Ljubomir Samardžićljubex@ptt.yu
Uvod • Koncepcija mikrokontrolera • Prednosti • otpornost na šumove • kompaktnost • cena • Oblasti primene • kontrola industrijskih procesa • automobilska industrija
Uvod • Kroz primer razvojajednog mikrokontrolerskog sistema ("Crna kutija i kontrolna tabla za vozila") prikazaćemo vam mogućnosti, arhitekturu i organizaciju MCS-51 industrijskog standarda mokrokontrolera, kao i kompletno uputstvo za izradu jednog ovakvog uređaja.
Teme diskusije • Prikaz radnog zadatka • Analiza problema • Izbor hardvera • Razvojni alati • Finalna izrada proizvoda • Mogućnosti proširenja
Crna kutija za kamione (1/2) • Vođenje statistike puta • Brzina tokom puta • Stajanja tokom puta • Pređeni put • Vozači na etapama
Crna kutija za kamione (2/2) • Dijagnostika vozila • Beleženje vitalnih veličina u kamionu (temperature, pritisci...) • Upozoravanje na kritične vrednosti • Prikaz podataka • Komunikacija sa računarom u bazi • Rekonstrukcija i prikaz puta
Analiza problema • Način prihvatanja merenih veličina • Način pamćenja na putu • Problem dugog boravka na putu • Otpornost na smetnje • Prateći softver za korišćenje u bazi
Izbor hardvera • Srce sistema • Mikrokontroler • Periferije • Memorija • Sistem za akviziciju podataka • Senzori • Displej • Tastatura
Razvojni alati • Razvoj softvera • Asembler (asem51) • Kompajleri (C, BASIC) • Simulator (AVOCET 51, JSim51) • Razvoj hardvera • OrCAD • Protel Shematic • Tango PCB Router • EAGLE • gEDA (Linux)
Finalna izrada proizvoda • Nabavka hardvera • Izrada štampane pločice • Programiranje mikrokontrolera • Povezivanje senzora • Izrada kućišta • Ugradnja
Mikrokontroleri • 8051 (MCS-51) • 80c196 (MCS-96) • 80186,80188 (Intel) • 80386 EX (Intel) • 65C02/W65C816S/W65C134S (Western Design Center) • MC14500 (Motorola)
Mikrokontroleri • 68HC05 (Motorola) • 68HC11 (Motorola and Toshiba) • 683xx (Motorola) • PIC (MicroChip) • COP400 Family (National Semiconductor) • COP800 Family (National Semiconductor) • HPC Family (National Semiconductor) • Project Piranha (National Semiconductor)
Mikrokontroleri • Z80 (Zilog) • HD64180 (Hitachi) • TMS370 (Texas Instruments) • 1802 (RCA) • MuP21 (Forth chip) • F21 (Next generation Forth chip)
MCS 51 • Standardna verzija 8051: • Logički orijentisan procesor • 5 ili 6 prekida:2 spoljna, 2 nivoa prioriteta, podešavanje tipa prekida • 2 ili 3 16-bitnatajmera/brojača • Programabilni full-duplex serijski port • 32 I/O linije (četri 8-bitnaporta) • RAM • ROM/EPROM kod nekih modela
MCS 51: Opis pinova • 1-8: Port 1 • 9: Reset • 10-17: Port 3 • 18-19: X2 i X1 – interni oscilator • 20: Masa • 21-28: Port 2 • 29: PSEN – Program status enable (Prozivanje programskog statusa)
MCS 51: Opis pinova • 30: ALE – Adress Latch Enable (Upis u adresni registar) • 31: EA – External Access (Pristup spoljnoj prog. mem.) • 32-39: Port 0 • 40: Napajanje (+5V)
Port 1 (pinovi od 1 do 8) • Svaki od ovih pinova može da se koristi i kao ulazni i kao izlazni, prema potrebi(kod familije 8x32,52 P1.0 i P1.1 imaju specijalne funkcije T2 i T2EX)
Pin 9: RESET • Visok ligički nivo resetuje sve interne registre ( u stanje 0000000b ) sa sledećim izuzecima • P0,P1,P2,P3 se dovode u stanje 11111111b • SBUF se ne menja • Sadržina RAMa se ne menja • PC se resetuje tako da će započeti izvršavanje programa od 0000h. • zadržavanje 24 ciklusa oscilatora (2 mašinska ciklusa) dok radi oscilator
Port 3 (pinovi od 10 do 17) • Na svakom pinu ima još po neku specijalnu funkciju: • pin 10 (P3.0) RXD Serijski ulaz za asinhronu komunikaciju (mod 1,2,3) ili seriski izlaz za sinhronu komukiaciju (mod 0) • pin 11 (P3.1) TXD Serijski izlaz za asinhronu komunikaciju (mod 1,2,3) ili taktni (clock) za sinhronu komunikaciju
Port 3 (pinovi od 10 do 17) • pin 12 (P3.2) INT0 – ulaz za prekid 0 • pin 13 (P3.3) INT1 – ulaz za prekid 1 • pin 14 (P3.4) T0 – ulaz spoljnog takta za brojač 0 • pin 15 (P3.5) T1 – ulaz spoljnog takta za brojač 1 • pin 16 (P3.6) WR – signal za upis u spoljnu memoriju • pin 17 (P3.7) RD – signal za čitanje iz spoljne memorije
X2 i X1 (pinovi 18 i 19) • Izlaz i ulaz internog oscilatora. Ako se koristi kvarc-kristal za stabilizaciju učestanosti oscilatora on se vezuje za ova dva pina s tim što treba ugraditi još po jedan kondenzator od 20-40pF sa svakog od ovih pinova prema masi. Opseg učestanosti od 1-12 (16) MHz.
Port 2 (pinovi od 21 do 28) • Kada se koristi mikrokontroler sa internim ROM-om a nemate spoljni ROM ili RAM sve linije ovog porta se mogu koristiti kao univerzalni ulaz ili izlaz. Ako imate spoljnu memoriju onda su ovo visoki adresni izlazi, od A8 do A15.
PSEN (pin 29) • Program Status Enable – normalno se ovaj izlaz spaja sa CS ili OE ulazom na spoljnom EPROM-u, jer ga mikrokontroler aktivira svaki put kada čita bajt iz programske memorije (PAŽNJA : ne i iz RAM-a).
ALE (pin 30) • Address Latch Enable – koristi se za “lečovanje” nižeg dela adresa (A0-A7) kada se pristupa spoljnoj memoriji. (zbog potrebe multipleksiranja linija na portu 0 izlaz adresa i ulaz/izlaz podataka)
EA (pin 31) • External Access – Kada je ovaj ulaz nizak, mikrokontroler će sve instrukcije čitati iz spoljnjog ROMa bez obzira da li ima interni.
Port 0 (pinovi od 32 do 39) • Ako nema spoljnje memorije koristi se kao univerzalni ulaz/izlaz, a ako je ima onda je P0 adresni izlaz za A0-A7 kada je ALE visok, a Data Bus kada je ALE nizak.
Organizacija interne memorije • Veličina interne memorije 128 bajta (256 za familiju 8x32/52) • Četiri banke registara opšte namene (R0-R7) na adresama 00h-20h • Bit adresibilan prostor naadresama od 20h-2Fh (bit adrese 0-7F) • Slobodan RAM (stek) na adresama 30h-7Fh • Registri specijalnih funkcija SFR na adresama 80h-FFh
Organizacija interne memorije- SFR : registri za specijalne funkcije -
Organizacija interne memorije- SFR : registri za specijalne funkcije - • DTPR – Data Pointer: koristi se prvenstveno za adresiranje spoljnje memorije ili za lookup-tabele u ROMu. 16 bitni registar se sastoji od dva 8-bitna (DTL,DTH) • Portovi 0-3 (P0, P1, P2, P3) ako upisujemo u ove registre upisujemo u Latch registre za izlazne portove a ako čitamo iz njih onda čitamo sa nožica portova ili stanja izlaznih registara
Organizacija interne memorije- SFR : registri za specijalne funkcije - • A - akumulator • B – koristi se pi množenju i deljenju ili kao pomoćni registar • PSW – Program Status Word sadrži informacije o statusu programa • SP – Stack Pointer (stek raste ka višim lokacijama, posle reseta se inicijalizuje uvek na 07h ali se to može promeniti progrmom)
Organizacija interne memorije- SFR : registri za specijalne funkcije - • SBUF – Serial Data Buffer: zapravo dva zasebna registra, jedan za prijem drugi za slanje bajta • Ako čitamo iz njega onda smo adresirali prijemni • Ako upisujemo u njega onda smo adresirali predajni • T1,T0 – Timer Registers: tajmer/brojač • 16-bitni (TH1,TL1), (TH0,TL0)
Organizacija interne memorije- SFR : registri za specijalne funkcije- • Kontrolni registri • IP: Interrupt priority (priorited prekida) • IE: Interrupt enable (dozvole prekida) • TMOD Timer/Counter mode (kontrola i postavljanje moda tajmera) • TCON Timer/Counter control (upravlja eksternim prekidima) • PCON Power control (upravljanje modova za štednju baterije, ...)
Registri za specijalne funkcije- PSW - • CY – prenos • AC – pomoćni prenos (za BCD operacije) • F0 – korisnički definisan bit • RS1,RS0 – selektori jedne od 4 registarske banke • OV – prekoračenje • P – bit parnosti
Registri za specijalne funkcije- TCON - • TF1, TF0 – setuju se kada brojač 1/0 menja sa FFh na 00h a automatski se resetuje kada procesor započne izvršenje prekida • TR1, TR0 – setuje se ili resetuje iz programa čime pokreće ili zaustavlja brojač • IE1, IE0 – setuje se kada se na nožici INT1/INT0 detektuje prekid, a resetuje se kada se počne izvrčavanje prekida • IT1, IT0 – načini prekida za INT1/INT0
Registri za specijalne funkcije- TMOD - • GATE – Hard/soft kontrola tajmera/brojača • C/T – selektor tajmer/brojač događaja • M1,M0 – bitovi za definisanje načina rada • 0,0 MOD0 • 0,1 MOD1 • 1,0 MOD2 • 1,1 MOD4
Registar TMOD- MOD0 - • MOD0 – Tajmer/brojač radi u 13-bitnom režimu
Registar TMOD- MOD1 - • MOD1 – Tajmer/brojač radi u 16-bitnom režimu
Registar TMOD- MOD2 - • MOD2 – Tajmer/brojač je 8-bitan i pri svakom prekoračenju se generiše prekid i puni opet vrednost iz TH1 (auto-reload mode)
Registar TMOD- MOD3 - • MOD3 – Samo za tajmer 0. Tajmer 1 radi kao dva 8-bitna pri čemu TL0 “krade” interapt od tajmera 0
Registri za specijalne funkcije- SCON - • SM0,SM1 – određuju MOD u kome radi serijski port: • 0,0 MOD0 • 0,1 MOD1 • 1,0 MOD2 • 1,1 MOD3 • SM2 – kontrolni bit za zabranu prihvatanja podataka kod koga je B.8=0 • REN – dozvola rada prijemnika (kada je setovan omogućen je prijem) • TB8,RB8 – stanje osmog bita koji se šalje/prima • TI,RI – prekidni fleg predajnika/prijemnika
Serijska komunikacija • MOD0 – Ovaj mod je namenjen proširivanju ulaznih/izlaznih portova pomoću pomeračkih (shift) registara. Učestanost ovog takta je fiksna i iznosi 1/12 učestanosti oscilatora • MOD1 – asinhroni 8-bitni prenos.Prenosi se 10 bitova (start, podaci, stop). Brzina prenosa je promenjiva i određuje se konfigurisanjem tajmera T1/T2 • MOD2,3 – jedanaest bitova se šalje preko TXD i prima preko RXD (start, podaci, bit iz TB8/RB8 i jedan stop bit)