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, low-bat, 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

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 8-bitový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é z paměti ROM. Instrukce právě prováděné jsou dekódovány dekodérem instrukcí a určují vnitřní mikrooperace. Při lineárním kódu (bez volání a větvení) je programový čítač inkrementován s každým programovým cyklem. Při větvení, volání, návratové instrukci nebo přerušení programový čítač načte novou adresu.

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 pre-inkrementaci 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í.

 

 

Aplikace 4-bitových mikrokontrolérů MARC4

 

ICs pro automobilové aplikace

Klíčenka

Vysílací ICs T575x

 

Vysílač s ATAR862-x/T48C862x

Přijímač ATA5282

 

Automobil

Přijímací IC T5743

 

Přijímací IC T5744

Transceiver IC ATA5811/12

 

Vysílací IC ATA5277

 

 

 

Vývojové prostředí

Existuje vývojové prostředí winIDEA, jehož demoverze je volně ke stažení na internetové adrese: http://www.isystem.com/Services/Download/Demo/demo.htm

Toto integrované prostředí mimo jiné podporuje celou řadu procesorů např. 8051, 68HC08, atd.