BPC-MIC05 - Principy obsluhy V-V periferií
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.