mikrokontroléry rodiny marc4 mikrokontroléry rodiny marc4

Transkript

mikrokontroléry rodiny marc4 mikrokontroléry rodiny marc4
Ji í Kroutil
Miloš Mat jka
2004
1. O RODIN MIKROKONTROLÉR MARC 4
Rodina mikrokontrolér MARC 4 je založena na konstrukci mikropo íta e typu RISC
(s omezeným instruk ním souborem) s dvou cyklovými instrukcemi (0,5 us p i 4 MHz).
Spot eba v aktivním módu je menší jak 1 mA.
Tato jedine ná kombinace rychlého zpracování dat a nízké spot eby p edur uje rodinu
MARC4 pro aplikace v bezdrátových p enosech jako nap . elektronický klí , imobilizéry,
bezdrátová klávesnice pro PC a multimédia, bezdrátová idla a každé jiné datové aplikace
využívající IR a RF.
Speciální periferie pro tyto aplikace (nap . velmi výkonné oscilátory, watchdog, lowbat, flexibilní I/O struktura s p erušovacími funkcemi a s velkým výstupním proudem,
EEPROM pam tí) jsou pln integrovány.
To umož uje vytvo it velmi malý a cenov výhodný systém pro bezdrátov ovládané
aplikace.
P EHLED VYRÁB NÝCH SOU ÁSTEK RODINY MARC 4
2. HARDWAROVÝ POPIS
2.1 Vlastnosti
- 4-bitová harvardská architektura
- vysokoúrov ová jazyková orientace CPU
- organizace pam ti RAM 256 x 4 bity
- až 9 kB ROM
- 8 vektor p erušení dle úrovn priority
- nízký rozsah opera ních nap tí
- nízká spot eba
- módy snížené spot eby
- r zné kombinace periferií na ipu
- qFORTH – vyšší programovací jazyk
- programování a testování je podporováno integrovaným vývojovým softwarem
2.2 Úvod
Rodina mikrokontrolér MARC 4 firmy ATMEL jsou založeny na nízko-p íkonovém
4-bitovém CPU jád e. Modulová MARC 4 architektura odpovídá harvardské architektu e,
orientovaná pro vyšší jazyky a vhodná pro realizaci integrovaných mikrokontrolér
s r znými aplikacemi nebo zákaznicky specifikovanými periferiemi na
ipu.
Mikrokontroléry MARC 4 jsou pro svou nízkou spot ebu a nízké napájecí nap tí vhodné
pro kapesní a bateriemi napájené aplikace.
Tato rodina nabízí široký výb r kombinací periferií pro dané aplikace.
Programování je podporováno uživatelsky jednoduchým PC softwarovým vývojovým
systémem s kompilátorem vyššího jazyka qFORTH a real-time emulátorem.
2.3 Hlavní popis
Mikrokontroléry MARC 4 se skládají z vysp lého 4-bitového jádra a aplika n
specifických periferií na ipu jako I/O port , asova , íta , ADC atd.
CPU je založeno na harvardské architektu e s fyzicky odd lenou pam tí programu
(ROM) a pam tí dat (RAM). T i nezávislé sb rnice, instruk ní-, pam ová- a I/O sb rnice
jsou užity pro paralelní komunikaci mezi ROM, RAM a periferiemi.
Mocný integrovaný kontrolér p erušení, s osmi úrovn mi p erušení, podporuje rychlý
b h procesu.
MARC 4 je navržený pro vyšší jazyk qFORTH. Mnoho qFORTH instrukcí a dva
zásobníky, Return Stack a Experession Stack, jsou již implementovány. Architektura
p ipouští programování vyšším jazykem bez ztráty výkonnosti a kódové nadbyte nosti.
2.4 Komponenty jádra MARC 4
Jádro obsahuje pam programu (ROM), datovou pam (RAM), ALU, programový
íta (Program counter), registr adres RAM, dekodér instrukcí a kontrolér p erušení.
2.4.1 Pam
programu (ROM)
Pam programu obsahuje zákaznický aplika ní program. 12-bitový programový íta
m že adresovat až 4 Kbyte pam ový prostor. P ístup do pam ti programu v tší jak 4
KByte je možný použitím bank-switching metody. Jedna ze 4 pam ových bank m že být
vybrána s 2 a 3 bity registru RBR (ROM bank register). Každá ROM banka má velikost 2
Kbyte a je umíst na nad základní bankou ve vrchním 2K (800h – FFFh) adresovém
prostoru. Tímto je umožn na velikost pam ového prostoru programu až 10 Kbyte. 1
Kbyte banky 3 je ur en pro softwarové testovací ú ely. Po hardwarovém resetu je
automatický vybrána banka 1.
Programová pam za ína s 512 byte segmentem (Zero Page), který obsahuje
p eddeklarovanou startovací adresu pro rutiny p erušení a speciální podprogramy
s jednoduchými bytovými instrukcemi (SCALL). Odpovídající pam ová mapa je
zobrazena na obr.: Figure 1-2.
2.4.2 Pam
dat (RAM)
MARC 4 obsahuje pam RAM s organizací 256 x 4-bit. Je používaná pro Expression
Stack, Return Stack a jako pam dat prom nných a polí. Pam RAM je adresována 8bitovým adresovými registry SP, RP, x a Y.
2.4.2.1 Zásobník adres (Expression Stack)
4-bitový adresový zásobník je adresován Expression Stack Pointerem SP. Všechny
aritmetické, I/O a pam ové operace se berou z SP a vracejí do SP. MARC 4 vykonává
operace z vrcholu zásobníku (TOS a TOS-1).
Tento registr je také používán pro p echodné parametry mezi podprogramy a jako pole
pro do asné ukládání dat.
2.4.2.2 Návratový zásobník (Return Stack)
12-bitový Return Stack je adresován Return Stack Pointrem RP. Je užíván pro
ukládání návratových adres podprogram , rutin p erušení a pro uchování loop-indexu
íta . M že být také používán jako pole pro do asné ukládání dat. Tento registr startuje
s AUTOSLEEP vektorem umíst ným v RAM na adrese FCh a zvyšuje adresy sm rem
00h, 04h, 08h .. až na vrchol.
Instruk ní soubor MARC 4 umož uje vým nu dat mezi vrcholem zásobníku adres a
návratovým zásobníkem. Dva zásobníky mají uživatelsky definovatelnou hloubku.
2.4.3 Registry
Mikrokontrolér MARC 4 má šest programovatelných registr a jeden stavový registr.
Jsou zobrazeny v programátorském modelu Figure 1-4.
2.4.3.1 Programový íta PC (Program counter)
Jedná se o 12-bitový registr obsahující adresu p íští instrukce vzaté
Instrukce práv provád né jsou dekódovány dekodérem instrukcí a
mikrooperace. P i lineárním kódu (bez volání a v tvení) je programový íta
s každým programovým cyklem. P i v tvení, volání, návratové instrukci
programový íta na te novou adresu.
z pam ti ROM.
ur ují vnit ní
inkrementován
nebo p erušení
Programový íta je také užíván s tabulkou instrukcí k p enesení 8-bitových konstant
z pam ti ROM.
2.4.3.2 RAM address register
Pam RAM je adresována ty mi 8-bitovými registry pam ti RAM a to SP, RP, X a
Y. Umož ují jakýkoliv p ístup do pam ti RAM.
2.4.3.3 Expression Stack Pointer (SP)
Stack Pointer obsahuje adresu 4-bitového (TOS-1) vrcholu zásobníku adres. Ukazatel
je automaticky p edem inkrementován p i ukládání dat na adresu ur enou ukazatelem, p i
zp tném p esunu dat je ukazatel p edem dekrementován.
2.4.3.4 Return Stack Pointer (RP)
Return Stack Pointer ukazuje na vrchol 12-bitového zásobníku Return Stack. Ukazatel
je automaticky p edem inkrementován (pre-inkrementace) p i ukládání dat na adresu ur enou
ukazatelem, p i zp tném p esunu dat je ukazatel p edem dekrementován (post-dekrementace).
Return Stack Pointer je inkrementován a dekremenován v kroku po 4.
2.4.3.5 RAM Address Register (X a Y)
Registry X a Y jsou používány pro adresování 4-bitových ástí pam ti RAM. P i preinkrementaci nebo post-dekrementaci, to je vhodné p i porovnávání, jsou pln na nebo
p esouvána pole v RAM.
2.4.3.6 Vrchol zásobníku TOP (Top of Stack)
Vrchol Stack registru je akumulátor mikrokontroléru MARC 4. Pro všechny
aritmeticko/logické operace, práce s pam tí a I/O operace je užíván tento registr. TOS registr
získává data z ALU, ROM, RAM nebo z I/O sb rnice.
2.4.3.7 Stavový registr CCR (Condition Code Register)
4-bitový CCR registr obsahuje p íznaky v tvení Branch, p ete ení/p enos Carry a
povolení p erušení. Tyto bity indikují aktuální stav CPU. CCR p íznaky jsou nastavovány
nebo resetovány operacemi ALU. Instrukce SET_BCF, TOG_BF, CCR a DI dovolují p ímou
manipulaci s registrem CCR.
2.4.3.8 P ete ení/P enos – C (Carry/Borrow)
Tento bit indikuje p ete ení nebo p enos p i provád ní aritmetických operací
aritmetickologickou jednotkou.
2.4.3.9 V tvení – B (Branch)
P íznak B ovládá podmín né v tvení programu. Tento p íznak je spojen
s aritmetickými, logickými, p esunovacími a rota ními instrukcemi.
2.4.3.10 Povolení p erušení – I (Interrupt Enable)
Tímto p íznakem se povoluje p erušení mikrokontroléru.
2.4.4 ALU
4-bitová ALU provádí všechny aritmetické, logické, p esouvací a rota ní operace
s vrcholy dvou ástí Expression Stacku (TOS a TOS-1) a vrací jejich výsledek do TOS.
Operace ALU ovliv ují p íznaky C a B v registru CCR.
2.4.5 Instruk ní soubor
Instruk ní soubor procesoru MARC 4 je optimalizován pro Vyšší programovací jazyk
qFORTH. V tšina instrukcí MARC 4 jsou qFORTH slova. To dovoluje kompilátoru
generovat rychlý a kompaktní programový kód. Instrukce obsahují nejen co se má provád t,
ale i adresy.
Jedno nebo dvou bytové instrukce jsou vykonávány v 1 až 4 cyklech. V tšina instrukcí
má délku jeden byte a jsou vykonány v jednom strojovém cyklu.
2.4.5.1 asování instrukcí MARC 4
Interní asování instrukcí a sled instrukcí jsou zobrazeny na obr.: Figure 1-6.
2.4.6 I/O sb rnice
Komunikace mezi periferiemi a ipem zajiš uje I/O sb rnice. Tato sb rnice je užívána
pro p ístup tení a zápisu, žádost o p erušení, pro periferní reset a pro SLEEP mode. Opera ní
mód 4-bitové sb rnice je ur en ídícími signály N_Write, N_Read, N_Cyclea N_Hold (viz
Table 1-1).
B hem IN/OUT operací, adresy a data, a b hem p erušovacích cykl nízké a vysoké
priority p erušení jsou multiplexovány N_Cycle signálem. Pokud Je N_Cycle na nízké úrovni,
jsou adresy navzájem nebo nízká p erušení posílány. Pokud je N_Cycle na vysoké úrovni,
jsou p esouvány. Viz. Figure 1-7.
2.4.7 Struktura p erušení
U procesoru MARC 4 je možno nastavit 8 úrovní p erušení. P erušení m žou být
generována hardwarov z vnit ního nebo z vn jšího zdroje, nebo softwarov od CPU. Priority
p erušení ukazuje tabulka 1-2.
Další informace o rodin procesor MARC4 nalezne tená v datasheetech výrobce. Dále jsou
uvedeny p íklady aplikací.
•
•
•
!"!#
!
"
## $
%
&
'
(
) *++,-(.
$
/ 0
*
)*+
$
%&' #(
% %&'#
123 411 (56/7
894:; 0<263;
!'%'
19
=
# !>+?
@ !A
7
B
!
A
& ! D++E
FG
@
!
H
B'
C
0
9
.
8A
+
B A
B
)*+
!" ,
"
## I J
A
+ I
9
&B A
*
E
!
7
&!
# !>+?
)
9I
&
0%
8
B
8
J
J
8
K
!
H
)*+
!"
" J
M
&
)
8
D++E
8
0
!
)'
-C/ /
!
8
H
L9 8 .
8 &!
0
!%--(-'
"
!
!
D&
E
>B
!
8
H
#
!
!
@
! 8
8
0
<2: L
!
J
8
A N
H
!'""
O
?
0%
# 8
J)
H !
H
!
J
0%
H
H
8
)
!!
H
'0 2 . >
H
@ P 025
!
!
8
'
4 LQ
. )0
#@
A
R
+
'
R+ .
BI
D 8!
J
H 8
!
!
I
+
>
*/F
!
8
-N F
F
(:32
I
H 8
*.
@
@
/0/ 1
!! J H
! 8
!
2:::
6::: - N F
1:::
F
4:::
*
!
0 3::
)
)
H
@H # 8
!
)
I
/
H
&
H
2
31
0%
#
0
! )I
-444 ) 2
1
2:::
49
J
) 49Q
(9
!
0!
•
•
•
•
•
•
•
•
•
•
•
I
)
@
8
)
!
H 0!
(9
2S: )
!
# 8
@
@
49 Q(9
02S:
8)
)
0 8
S: )
8
H
!
@ 3:
2/
H
@
8 N
H
!
&
!
H
8
&
!
!
J
&
!
O+LQ
2:L *
8
'
0!
.
H
8
J
5
?
H
6
#@
H
N
7
A9
! !
!
8
5
B
!
!
>-U
J J
J
!
H
J
T!
#@
!
@
IN
=!
I&
@
!
-
)
J
!
@V )0
!D / D #
H
E
Q
,
IN
2/
!
0
8
J
!
@V 8
!
#
8
@V @
H
3:
8
@
H
)
!
6
&
8
@
J
!
! H
!D,/
8
&
# 8
8
# 8
&
)0
) 0
&
8
@
8
9
9
*
!
8
! ) )0
(9
8
2::
@ '
!
&
!
8
(
H
I
8 & !)
9
@ (9
!
&
!
) @8) - J
6 02:64
!
&
26(
U
!
)0 @0
! @
@. FG
#@
)0
#@
!
8
) &
!
)0
H #
#8
$J
*
!
K
0
H
!!
&
8
!"
# 8
#
/
J
!
!
#
&!
M9
0
M
2
0
0 J! @
@
J
!! 0
=
# 8 @8
& !)
7
&
2/7
2:/7
!
&
4 7 M
)0
!
!
8
1
)0
!
3
31
N EF
!
&
# 8
) 0
!
!
8
&!
H
$ % 8
&&
L@8
)0
)
N E F /)0
!
!
#
1:::
4:::
26( &
0
8
3:: )
8
H
8
&
+ !!
9
8
8
!#
!
!#
IN
!
8
8
*
)
K
#@
N
N EF
2::: 6:::
#V
J
•
•
•
•
•
•
•
•
E &
H
&
1 *
E &
/ 9I +
F
7&89
+
&&
, !8 , 9
7
169
C
N
C W- C 6::: C "* C
) +
S(Q
S3
:
!!
8
*G
0!
I
H
!
I
0
= !
# 8
8
H
J $J
I
!
# 8
H
@ 0 8
H
#
)0
!
0
8
H!
-,
8
!
I
# 8
!
, .)
*
@
# 8
8
:7
&!
0!
!
0
#
!
#
@@
! -
)0
H
I
#
K
!
!
0
!
!
J
-
0
)0
@
I
$ @# @
I
#
) *
N EF
J
N EF
;
E
&
1.
!
8
)
!
G
0 H8 %
&
M
J
@
)0
0
I
H
@0
!
8!
8
@8
8
H
!
H
!
8
*
I
%
8
8
!
@
H
J
K
@@
0
% !
)
<: =
/
M9
8!
)
3
::
H
!
J
J
)0
8
@
&
I
# 8
) 0
I
@
8
>. +
?K
K
@8
@M
)0
8
#
@
@
!
@
80
8
@
K M
8
&
@
8
!
<<
3
?
@
0!
!
@@
@
M !
8
M
I
+
&
:
K
!
8
!
@
!
# 8
&
@ !
0
#
$
)
)0
7
8
8
8
0
I !
)0
<<
D&
J
,
K
8
N
)0
8
I
!
!
*8
!
!
=
7
5
@
&
# 8
J
/A
+>D
!
)
!
I
!
@
&
)
!
!
@
J
8
3
8
8I !
B
=
8I
D&
J!
@
@
8
!!
8
8
I
I
@
8
I
0!
K
I
I
M
K
I
I
&!
J
!
0
8
J
)
K
!
+
)
!
&
N EF
J
!H
X
8
>
X
Q
Q
NNN
+Y+*F/
@
0
&
N EF
X
8
X
Q
Q
NNN
8
X
Q
Q
NNN
Q
+
D
I
/
Q N
X
Q
Q
8