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