Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




BPC-MIC05 - Principy obsluhy V-V periferií

PDF
Stáhnout kompletní materiál zdarma (288.67 kB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

Základní principy obsluhy 

vstupů/výstupů

Registry periferií

• Konfigurační (řídicí)
• Stavové
• Datové

Registry periferií

• Konfigurační (řídicí) registry

– Umožňují nastavit, zda příslušná linka binárního 

portu bude vstupní nebo výstupní.

– Nastavení režimu A/D převodníku (jednorázový x 

kontinuální), kanálu, na kterém bude převod 
proveden.

– Nastavení rychlosti přenosu sériové linky, 

sudé/liché parity.

– ...

Registry periferií

• Stavové registry

– Obsahují příznakové bity (flagy), které signalizují 

stav periferie.

• Neplést s příznakovými bity příznakového (stavového)

registru procesoru (C, Z, N, ...)!!!

– Dokončení A/D převodu.
– Přijmutí znaku sériovou linkou.
– Volný vysílací registr sériové linky.
– ....

Registry periferií

• Datové registry

– Zápis/čtení binárních hodnot jednotlivých linek 

(vývodů, pinů) binárního portu.

– Obsahují výsledek A/D převodu.
– Přijatý/vysílaný byte sériové linky.
– ....

Způsoby obsluhy V/V

• Aktivní čekání (Busy Waiting, Polling)
• Přerušení
• DMA (Direct Memory Access)

Aktivní čekání

• Nazývané také Busy Waiting nebo Polling.
• Program odstartuje V/V operaci.

– Zápisem do řídicího nebo datového registru

periferie.

• Ve smyčce neustále testuje, zda došlo k 

dokončení V/V operace.

– Dokončení signalizováno nastavením bitu ve 

stavovém registru periferie.

Aktivní čekání

• Výhody

– Jednoduché.

• Nevýhody

– Plýtvání časem procesoru. 

• V čekací smyčce procesor neprovádí žádnou užitečnou 

činnost.

– Možno zmeškat obsluhu jiné důležité události.

Aktivní čekání - příklad

Zápis v jazyce C#define DATA (*(uint8_t*)0x1000)
#define STATUS (*(uint8_t*)0x1001)
#define READY 0x80

// Zahájení I/O operace
DATA = znak;

// čekání na dokončení operace
while(!(STATUS & READY)) { }

Zápis v assembleru

DATA:

equ

0x1000

STATUS: equ

0x1001

READY: equ

0x80

LDA

znak

STA

DATA

LOOP:

LDA

STATUS

AND

#READY

BEQ

LOOP

Obsluha V/V pomocí přerušení

• Program odstartuje V/V operaci a provádí 

jinou užitečnou činnost.

Témata, do kterých materiál patří