Jak program 8032 provádí program?

Studoval jsem 8032 mikrokontrolér. Uvádí se, že 8032 nemá interní ROM. Nyní mám několik otázek.

  • Potřebujeme externí ROM k spouštět programy nutně? Nemůžeme použít 256bajtovou vnitřní RAM?

  • Předpokládám, že používám mikrokontrolér 8032 s externí ROM 2732 a také pomocí západky pro uložení adresy (nižšího řádu) portu P0. (který může přenášet adresu / data). Nyní po povolení EA a připojení PSEN jak program 8032 provádí program? Co se stane, když zapnu systém? (Jak počítadlo programu mikrokontroléru 8032 provádí pokyny? Z jaké adresy externí paměti by měl být program přečten?

Mám přečtěte si tyto příručky – Intel 8032H Keil , Atmel 80C32E .

Odpověď

Pokud se podíváte na typický obvod 80 (C) 32 níže (z zde ):

zde zadejte popis obrázku

Můžete vidět, že 8032 mluví s externí EPROM, RAM a EEPROM přes sběrnice – 8bitová data a 16bitová adresa. Ta je blokována a demultiplexována s HCT573. Byly některé čipy s integrovanou západkou navrženou pro použití s 8031/8032, ale výše uvedená byla běžnější konfigurace – použití -standardní paměťové čipy. Existuje také trochu “ lepicí “ logiky pro dekódování adres a rodů Správné signály pro paměti (HCT138 a quad NAND).

Je důležité, aby logika lepidla byla navržena tak, aby se EPROM nacházela na adrese 0, protože po resetu vždy začíná spuštění 8032 načítání prvního bajtu instrukce z této adresy. Toto je funkce hardwaru v 8032 a nelze ji změnit. Typicky je instrukce 3bajtová instrukce LJMP, která přeskočí na začátek programu. Říkáme tomu “ RESETOVAT VEKTOR „. Další vektory zabírají bajty bezprostředně nad resetovacím vektorem – pro rutinu externí služby přerušení a pro rutinu služby přerušení služby.

V těchto dnech by byla EPROM naprogramována (zapsána) samostatným programátorem mimo obvodu a poté obvykle zapojen do zásuvky. V té době žádné programování na okruhu. Paměť RAM a EEPROM bylo možné zapsat mikroskopem, ale program by musel být načten do EPROM, než by to bylo možné.

Komentáře

  • .: Budu tomu dávat +1. Můžete prosím vypracovat část glue logic. Zdá se, že LJMP se přesune na začátek programu? Ale tady je program v externí paměti. Zde se používá tento druh instrukce? Myslím jednoduše, instrukce jsou načteny z externí paměti a umístěny do IR, dekódovány a provedeny? Kde je případ LJMP zde?
  • Lepicí logika pouze zajistí, aby ‚ byla v EPROM, že ‚ s vybráno, když je adresa 0000. Ve výše uvedené konfiguraci je kdykoli A15 = 0 vybrána EPROM. LJMP je 3bajtová instrukce, která bere adresu kdekoli v 16bitovém paměťovém prostoru 8031, ale obvykle můžete jen přeskočit ostatní vektory, takže následující dva bajty po LJMP budou obsahovat adresu poblíž začátku EPROM. ‚ Obvykle se s adresami nepořádáte přímo – použijete assembler, který je sleduje pomocí symbolických štítků.
  • “ Glue logic “ je slangový výraz používaný k označení menších logických funkcí, které jsou vyžadovány mezi procesorem a pamětí.

Odpověď

Ne, k uložení kódu nemůžete použít interní RAM. Model 8051/8032 používá harvardskou architekturu, což znamená, že má zcela samostatnou paměťové prostory pro kód a data. Pokyny se načítají z kódového prostoru, ale RAM se nachází v datovém prostoru.

Nyní po povolení EA a připojení PSEN jak provádí program 8032 program?

Program 8032 načítá pokyny z prostoru kódu. Protože je uplatněna EA, tyto načítání (čtení z paměti) se objeví na externí paměťové sběrnici , s PSEN. Když PSEN NENÍ uplatněno při operaci čtení z externí paměti, jedná se o čtení v datovém prostoru.

Co se stane, když zapnu systém?

8032 začíná načítat pokyny z kódového prostoru adresy 0.

Jak programový čítač mikrokontroléru 8032 provádí pokyny?

čítač programu je jednoduše zodpovědný za uchování adresy další instrukce, která má být provedena. Pokyny provádějí další části CPU.

Z které adresy externí paměti by měl být program přečten?

Adresa 0.

Pokud chcete ve svém programu používat přerušení, jsou v paměti s malým prostorem pro kód vyhrazeny další adresy, takže kód, který vy spustit při resetu bude nakonec muset tyto vyhrazené adresy „přeskočit“.

Komentáře

  • Toto je odpověď na první otázku. Dám tomu +1. Mohl byste prosím upřesnit druhou část otázky? Tuto část ‚ nezjistím.
  • Viz úpravy výše.

Odpovědět

8032, což je varianta 8052, nemá interní ROM pro ukládání programu. Místo toho je nutné k uložení programu použít externí ROM / EPROM / EEPROM.

Pro přístup k externí paměti se používají dva porty: Port 0 (řádky P0.0 – P0.7) emituje spodní 8 bity 16bitové 64K adresy a slouží také jako 8bitová datová sběrnice pro čtení / zápis poté, co byla adresa zajištěna externí pamětí.

P2 (řádky P2.0-P2.7 ) se používají k vyzařování vysokých 8 bitů 16bitové 64K adresy.

Ačkoli má 8032 256 bytů interní RAM, lze ji rozšířit přidáním čipu RAM také na sběrnici externí adresy .

Řádek externí adresy \ $ \ mathsf {\ small \ overline {\ text {EA}}} \ $ je držen nízko, aby indikoval, zda se provádí přístup k externí paměti programu, jinak externí Předpokládá se RAM.

Chcete-li spustit kód z externí paměti, na datových linkách Port 0 a Port 2 se vygeneruje adresa z čítače programu; pak během čtecího cyklu se bajty načtené z ROM načtou na port 0 a provedou procesorem.

Současně se načítá pouze jedna instrukce.

\ $ \ mathsf {\ small \ overline {\ text {PSEN}}} \ $ je stroboskop používaný při přístupu do paměti externího programu.

Komentáře

  • .: Jak ale provede program, který se nachází v externí paměti? Podívej, nechápu, jak se bude počítač kopírovat, když je program v externí paměti. Myslím tím, že při každém cyklu m / c načte určitý počet bajtů. Potom po načtení je program spuštěn okamžitě nebo je načten celý program najednou >, v takovém případě bude uložen?
  • .: Takže zpočátku PC=0000h. Začíná načítat bajty v každém cyklu m / c a poté jej provede? Takže v ROM bychom vždy měli program vypálit z adresy 0000h, jinak bychom jej nemohli správně spustit.
  • @learner. Opravit. Obvykle dojde na adresu k skoku na “ skutečný “ začátek kódu.
  • .: I dá vaší odpovědi +1. Ale pokud je program spuštěn, instrukce po instrukci, jak bude spravována taková předaná reference? L1:JNZ L2 .. L2:.....
  • Instrukce JNZ (a další pokyny pro skok a větev) načtou cílovou adresu skoku do čítače programu, takže procesor načte další instrukce z této adresy, spíše než instrukce bezprostředně po Skoku.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *