Jedním z těchto procesorů je procesor firmy ATMEL AT89C55WD jehož vnitřní blokové schéma vidíme na obrázku.
Nová rozšíření oproti klasickému procesoru Intel 80C52 či AT89C52 lze shrnout takto :
- 20 kB FLASH na program
- Frekvence CPU – do 33MHz
- Druhý DPTR – pro přenosy dat
- Implementace Watchdogu do základního procesoru
- Možnost redukce pulsů na pinu ALE vzhledem k EMI.
Doplnění 89C55WD o druhý DPTR :
Implementace druhého registru DPTR (data pointeru) je velmi důležitá. I když by se to nemuselo na
první pohled zdát, použití druhého registru podstatně urychluje přesuny bloků dat
v externí datové paměti. Pro větší názornost si uvěďme příklady přesunu
dat pro oba případy:
; Přesun 512byte dat z adresy SOURCE na adresu DEST
; v případě jednoho DPTRmov dptr,#Source ;Odkud
mov r3,#Low(DEST) ;Kam
mov r4,#High(DEST)
mov r6,#2 ;Kolik
mov r5,#00MOVE:
movx a,@DPTR
mov r1,dpl
mov r2,dph
mov dpl,r3
mov dph,r4movx @DPTR,a
inc DPTR
mov r3,dpl
mov r4,dph
mov dpl,r1
mov dph,r2
inc DPTR
djnz r5,MOVE
djnz r6,MOVE
; Přesun 512byte dat z adresy SOURCE na adresu DEST
; v případě dvou DPTRmov dptr,#DEST
inc DPS
mov dptr,#SOURCE
mov r6,#2 ;Kolik
mov r5,#00
MOVE:
movx a,@DPTR
inc DPS ;Přepni DPTR
movx @DPTR,a
inc DPTR
inc DPS ;DPS je na adrese 0A2h
inc DPTR
djnz r5,MOVE
djnz r6,MOVE
Z výše uvedených dvou příkladů vidíme, že v případě jednoho DPTR zabere
přenos 1byte (smyčka Move) 312 hodinových cyklů, kdežto v případě dvou DPTR zabere jeden cyklus
pouhých 144hodinových cyklů, tj. přenos je více než dvakrát rychlejší
(2,16x), nehledě na kratší kód programu.
Watchdog WDT
Obvod hlídání programu procesoru typu musel být u předchůdců 89C55WD řešen
pomocí externího obvodu. Implementací obvodu WDT do procesoru se uvolní jeden či dva I/O
piny procesoru, jednak se ušetří i místo na desce plošných spojů. Pro
nastavení funkce obvodu WDT byl procesoru přidán nový SFR registr AUXR.
Vlastní inicializace obvodu WDT spočívá v zapsání dvou hodnot 01Eh a 0E1h na do
registru WDTRST , který je v adresovém prostoru SFR registrů na adrese 0A6h. Nutnost
zapsání dvou různých hodnot minimalizuje možnost restartu WDT v momentu
„havárie“ programu, kdy program tzv. „zabloudí“ a úkolem obvodu WDT je
resetovat procesor a tím ho uvést do správného stavu. V případě
jednoduchých externích obvodů WDT, kdy se inicializace tohoto obvodu realizuje pouhou změnou
úrovně na jednom I/O, je pravděpodobnost selhání interního WDT v procesoru AT89C52WD
nesrovnatelně menší.
Kontrola ALE
Procesor má další novinku, o které bych se rád zmínil. Jedná
se o možnost „redukce“ pulzů jdoucích na pin ALE. Konstruktér má možnost volit mezi
standardním módem a „redukovaným“ módem, kdy pin je aktivní pouze v
případě instrukcí MOVX nebo MOVC. Omezení množství změn na tomto pinu vede ke
snížení emise rušivých signálů z procesorů (tzv. redukce EMI).
Trendy vývoje
O tom, že cesta integrace různých periferií na jednom čipu spolu s vlastním procesorem je tou
správnou, potvrdí snad každý z konstruktérů. Potěšující je to, že i
výrobci reagují na tento požadavek. Hitem posledních dní je nabídka procesorů,
které mají spolu s vlastním procesorem integrován programovatelný logický
obvod typu FPGA, který umožňuje konstruktérovi si nakonfiguravat (naprogramovat) periferie dle
své potřeby a konkrétního požadavku. Někteří výrobci jdou ještě
dále dále a přidávají na čip kromě programovatelných logických obvodů
též některé analogové obvody, vesměs A/D převodníky. Ale o těchto obvodech někdy
příště.
DOWNLOAD
- Downaload z www.ATMEL.com - AT89C55WD
- Downaload z HW serveru - AT89C55WD