|
|
|
|
| Autor: Tomislav Ratic, dipl. ing. | |
|
Razvojni sistem za
80C31 - RS8031
Konačna (izvršna) verzija sistema koji se
bazira na nekom mikrokontroleru (procesoru) podrazumeva da se program izvršava
(iščitava) iz ROM-a (bilo spoljašnjeg ili internog koji se nalazi u samom
mikrokontroleru). Kod razvojnih sistema ovakav način izvršavanja programa je moguć, ali
krajnje nepraktičan jer se posle svake izmene u kodu mora ponovo programirati ROM, tj.
EPROM. Ovo ne samo da iziskuje vreme, nego je i broj reprogramiranja EPROM-a ograničen.
(Kod OTP (One Time Programming) ROM-ova koji se nalaze u samom kontroleru razvijanje
naravno nije moguće.)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ADRESNA MAPA |
|||||
Oblast |
Unit |
Veličina |
Mehanizam |
Pinovi |
|
CODE |
0000-7FFFh |
ROM |
32KB |
PC |
PSEN |
8000-FFFFh |
RAM |
32KB |
PC |
PSEN |
|
CONSTANT |
0000-7FFFh |
ROM |
32KB |
MOVC |
PSEN |
8000-FFFFh |
RAM |
32KB |
MOVC, MOVX |
PSEN, RD,WR |
|
DATA |
8000-FFFFh |
RAM |
32KB |
MOVX |
RD, WR |
Tabela 1. - Adresna mapa RS8031
· Priključci
Na kartici se osim DC konektora i SUBD9 konektora, nalaze i konektori za pristup portovima
P1 i P3. Oni su izvedeni kao 10-pinski IDC konektori na kojima je pored port pinova
izvedeno i napajanje +5V i GND. Tu su tako|e i 8-pinski muški IDC konektor za pristup
DATA magistrali, kao i 16-pinski muški IDC konektor za pristup adresama.
Opis rada RS8031
Na slici 3. data je električna šema
razvojnog sistema. Iz adresne mape se vidi da je izvršavanje programskog koda moguće i
iz EPROM-a i iz RAM-a, što ukazuje da se RS8031 zasniva na mehanizmu boot loadera. Kod
Intelovih kontrolera iz familije MCS'51 upravljački signali za ROM i RAM se razlikuju. Za
čitanje sadržaja ROM-a koristi se signal PSEN, a za upravljanje RAM-om koriste se RD
(read) i WR (write) signali. Da bi se mogao primeniti mehanizam boot loader-a, tj. da bi
se izvršni kod programa mogao čitati iz RAM-a, neophodno je na OE (output enable)
nožicu RAM-a dovesti i PSEN signal, tako da se na OE pin u stvari dovode
"sabrani" signali PSEN i RD. Ovo je ostvareno upotrebom kola 74HC00.
Ukoliko se kartica koristi kao razvojni sistem, u EPROM-u se nalazi BOOT-LOADER program.
Njegova uloga je da korisnički kod koji se šalje sa PC-ja (preko RS232 kanala) prihvati
i preusmeri u RAM počev od adrese 8000h. Maximalna dužina korisničkog koda je 32KB. Po
završetku "bootovanja", poslednja naredba koja se izvršava iz EPROM-a je skok
na 8000h, a zatim počinje izvršavanje korisničkog koda koji je sada smešten u RAM-u.
Jedino o čemu programer mora da vodi računa je da ceo program koji se u završnoj
(EPROM) verziji izvršava od 0000h, u ovom slučaju mora imati ofset od 8000h. Ovo se
odnosi na sve naredbe kojima se vrši organizovanje programa (npr. naredba ORG), tako da
je ofset neophodan i za vektorske adrese za servisiranje interapta.
Rad sa boot loaderom je jednostavan. Posle generisanja binarnog fajla korisničkog koda,
pomoću DOS naredbe MODE se konfiguriše serijski port PC-ja na koji je priključena
mikrokontrolerska kartica. Zatim se tako|e DOS-ovom naredbom COPY kopira binarni fajl na
odgovarajući COMM port. Po završetku kopiranja, mikrokontroler počinje automatski da
izvršava upisani program i to iz RAM-a.
Da bi se program uopšte mogao upisati u RAM na razvojnoj kartici, mora postojati veza
izme|u računara i mikrokontrolera 80C31. Ona je ostvarena serijskim kabelom koji je
dovoljno da bude trožilni - koriste se signali RXD, TXD i GND. Zbog načina rada
serijskog porta PC-ja, neophodno je kratko spojiti pinove CD, DTR i DSR, kao i RTS i CTS.
U tabelama 2. i 3. dati su izgled serijskog kabla sa kratko spojenim pinovima.
SERIJSKI KABEL
SERIJSKI KABEL |
||||
9-pinski konektor |
9 - 9 |
9 - 25 |
25 - 25 |
25-pinski konektor |
| 2 - Receive Data (RD) | 2 === 3 |
2 === 2 |
2 === 3 |
2 - Transmit Data (TD) |
| 3 - Transmit Data (TD) | 3 === 2 |
3 === 3 |
3 === 2 |
3 - Receive Data (RD) |
| 5 - Signal Ground (SG) | 5 === 5 |
5 === 7 |
7 === 7 |
7 - Signal Ground (SG) |
Kratko spojeno na konektoru serijskog kabla sa strane PC-ja |
9 pinski konektor |
25
pinski |
|
| Prvi kratkospojnik | Carrier Detect (CD) , Data Terminal Ready (DTR), Data Set Ready (DSR) | 1, 4, 6 |
8, 20, 6 |
| Drugi kratkospojnik | Request to Send (RS), Clear to Send (CS) | 7, 8 |
4, 5 |
Tabela 3. - Kratko spajanje pinova na serijskom portu PC-ja
Kao što se vidi sa šeme na slici 3.,
postoji samo jedan reset taster. Ovo znači da nema tkzv. vrućeg reseta posle kojeg
automatski počinje ponovno izvršavanje programa iz RAM-a, već da postoji samo
"hladni" reset kojim se mikrokontroler vraća na početak boot-loader programa u
EPROM-u. Ponovno izvršavanje programa je moguće ponovnim bootovanjem istog, ali pošto
se resetom ne dira sadržaj spoljašnjeg RAM-a, to nije nepohodno. Dovoljno je poslati
samo prvi bajt istog korisničkog koda, koji boot-loader shvata kao novi korisnički kod
od samo jednog bajta. Ovim se samo na lokaciji 8000h prebrisava isti bajt i počinje
ponovno izvršavanje programa. (Pošto se programi uglavnom pišu tako da je prva naredba
koda skok za nekoliko desetina bajtova, koliko je potrebno da se preskoče vektorske
adrese za servisiranje interapta, sa PC-ja je posle reseta dovoljno poslati samo kod za
ljmp (02h) ili kod za sjmp (80h)). Ova operacija se može izvršiti na isti način kao i
upis celog programa u RAM, pomoću naredbi MODE i COPY. Me|utim, jednostavnije je taj prvi
bajt korisničkog koda, poslati kontroleru pomoću nekog komunikacionog programa (npr.
Procomm ili Terminal emulation iz paketa Norton Commandera za DOS).
Kada se razvoj završi, krajnja verzija programa se upisuje u EPROM koji se postavlja u
podnožje u kome se nalazio EPROM sa boot-loaderom. (Naravno, iz korisničkog sada je
potrebno izbaciti sve offsete, jer se program iz EPROM-a izvršava počev od lokacije
0000h.) Ukoliko program za svoj rad ne zahteva spoljašnji RAM, on se može izvaditi iz
podnožja. U ovom slučaju javlja se jedina hardverska razlika izme|u konačnog i
razvojnog sistema - prazno podnožje za RAM.
Mogućnosti RS8031
RS8031 je naročito pogodan za početnike u
radu sa mikrokontrolerima. To je standardni "low level" razvojni sistem na kojem
se može programirati u asembleru ili u C-u. Pošto poseduje spoljašnji RAM, pogodan je
za za korišćenje C kompajlera koji imaju mogućnost korišćenja tkzv. externog data
bloka. Veličina RAM-a od 32KB dovoljna je i za prilično komplikovane programe pisane u
C-u.
Umesto najjednostavnijeg boot-loadera, u EPROM razvojnog sistema se može upisati tkzv.
monitor program i tako omogućiti kontrola izvršavanja korisničkog koda. Po potrebi,
preko podnožja za EPROM, na RS8031 se može priključiti i EPROM emulator od 32KB.
Na RS8031 su izvedeni data i adresni signali, tako da je na jednostavan način moguće
priključiti periferijske ure|aje. Na primer, ako je potrebno povećati broj ulazno
izlaznih pinova, klasično rešenje je priključenje kola PPI-8255. Na slici 4. je dat
primer povezivanja PPI kola sa mikrokontrolerom "mapiranjem" u adresni prostor.
Dat je najjednostavniji primer, u kome se za selektovanje kola 8255 koristi adresni signal
A15, isti kao i za selektovanje EPROM-a. Ovim, me|utim ne dolazi do "sudaranja"
EPROM-a i PPI jer se za čitanje EPROM-a koristi PSEN signal, a za rad sa PPI signali RD i
WR. Jedino je nezgodno što se na ovaj način razbacuje memorija, jer se prostor od donjih
32KB dodeljuje periferiji kojoj je potrebno svega 4 bajta adresnog prostora i time
onemogućava priključivanje još neke druge periferije. Ukoliko je potrebno priključiti
dve ili više periferija na sistem, mora se upotrebiti neki adresni dekoder što se
ostavlja korisniku.

Slika 4. - Povezivanje PPI8255 sa RS8031
Poslednjih godina na tržištu postoji
mnoštvo proizvoda koji podržavaju razne serijske protokole kao što su I2C bus,
Microwire, SPI, serijski protokol firme "Dallas" itd. Zajedničko za sve njih je
da omogućavaju jednostavno (serijsko) povezivanje periferija sa mikrokontrolerom. Mnogi
od protokola su podržani od samih kontrolera hardverski integrisanim interfejsima i
odgovarajućim instrukcijama kao npr. u Philipsovom 80552 koji podržava I2C bus, ili
kontroleri proizvo|ača National Semiconductor i Motorola koji podržavaju SPI protokol.
8031 podržava samo standardnu RS232 komunikaciju, ali je za sve serijske protokole
moguće napisati tkzv. "softverske drajvere". Na taj način se kontroleru 8031
znatno proširuju mogućnosti. Najveća prednost jednog protokola je široka lepeza
ure|aja koji ga podržavaju. Npr. primenom I2C busa, na 8031 je moguće
"prikačiti" AD konvertor, ulazno-izlazni expander (na koji se može
priključiti smart LCD), real time clock, serijski eeprom, četvorocifarni sedmosegmentni
LED drajver ... i to sve "sa utroškom" samo dva pina - jednog za clock i jednog
za data signale. Pri ovom "softverski drajver" zauzme svega nekoliko stotina
bajtova memorije. Na ostale pinove je moguće onda spojiti i neku malu tastaturu, izlazne
releje (za koje je potrebno obezbediti strujno pojačanje putem običnih bipolarnih
tranzistora) itd.
Posebno je interesantno što sve što se razvija na RS8031, kasnije može da se upiše u
neki od kontrolera iz Atmelove familije AT80XX npr. AT89C51 itd.
ZAKLJUČAK
Osnovne karakteristike 80C31 (80C32):
8-bitni CPU
32 I/O linije - 16 za adresnu i data magistralu, 14 slobodnih, WR i RD pinovi
128 (256 kod 80C32) bajtova on-chip Data RAM-a
Dva (3 kod 80C32) 16-bitna tajmera/brojača
Full duplex UART
5 (6 kod 80C32) interapt izvora sa 2 nivoa prioriteta
On-chip oscilator sa taktom do 12MHz
64KB adresnog prostora za programsku memoriju (ROM)
64KB adresnog prostora za memoriju za podatke (RAM)
Idle i Power Down mod za redukciju potrošnje
Na osnovu svega gore rečenog, jedan uslovno rečeno hardverski slab sistem ne mora biti slab i u razvojnom smislu. Bilo da se zasniva na Intelovom ili nekom drugom mikrokontroleru, osnovni zadatak razvojnog sistema je da omogući razvoj (ili učenje) i da pri tom pravi što manje problema. Za početak je bolje da bude što jednostavniji, a vremenom da se prelazi na "veće visine".
autor je saradnik na Fakultetu Tehničkih Nauka u Novom Sadu
| Pročitajte više o ovoj temi | ||||||||||
|
|
C o p y r i g h t 1998 mikroElektronika. All Right Reserved. Za sva pitanja obratite se redakciji |