IT-lexikon › Hårdvara › Cirkulär DMA

Cirkulär DMA

Hårdvara In English → Uppdaterad: 2026-11-03

Ett DMA-läge där överföringen börjar om från buffertens start av sig själv, så att hårdvaran fyller en ringbuffert i all evighet utan att processorn rör den.

En vanlig DMA-överföring tar slut och måste startas om. I cirkulärt läge laddar kanalen om adress och räknare automatiskt, och flödet blir kontinuerligt. Det passar en AD-omvandlare som samplar oavbrutet eller en UART som tar emot data i okänd takt. De flesta mikrokontroller ger två avbrott per varv: halvvägs och vid slutet. Processorn bearbetar den ena halvan medan DMA skriver i den andra, vilket i praktiken är dubbelbuffring i en enda array.

Kanalens nedräknare fungerar som skrivpekare i en ringbuffert, så firmware kan läsa ut hur långt hårdvaran kommit när som helst. Fällan är att halvan måste hinna behandlas före nästa halvvarv. Missar man skrivs data över tyst — inget fel, inget avbrott, bara konstiga siffror.

← Tillbaka till lexikonet