Electronica Azi nr 9 - Noiembrie, 2017

Page 7

eVOluȚIA MIcrOcOntrOlerelOr pIc

pentru programare foarte compactă în limbaj de asamblare, a fost legată în pereche cu o adresare liniară a memoriei mai prietenoasă pentru compilare. Se poate observa că mecanismul de conectare vechi este încă disponibil și continuă să garanteze compatibilitate cu aplicațiile mai vechi în limbaj de asamblare. Mai mult, noua schemă de adresare liniară unifică spațiul de memorie de date și de program al PIC16F1. Acest lucru permite definirea în memoria flash a unor tabele de date mari, matrice RAM de dimensiune nelimitată și indicatoare generice. Interesant este că aceste schimbări majore de arhitectură au trecut neobservate pentru majoritatea dezvoltatorilor PIC în limbaj C, ceea ce până la urmă s-a și intenționat. Acesta este deci unul dintre motivele pentru care valoarea MIPS a vechiului microcontroler ‘877 nu mai poate fi comparată direct cu valoarea MIPS a noilor nuclee din tabelul 1. SCHIMBăRI ÎN MANAGEMENTUL ÎNTRERUPERILOR Celălalt element arhitectural care a cunoscut o îmbunătățire semnificativă este sistemul de management al întreruperilor. În vreme ce mai noul nucleu PIC16F1 menține designul de întrerupere

original de tip single-vector, au fost adăugate 4 registre umbră pentru a simplifica salvarea și restabilirea contextului de întrerupere. Listarea 1 prezintă un prolog/epilog uzual pentru PIC16: ; Isr: sWApF clrF MOVWF MOVF MOVWF clrF

MOVWF W_teMp stAtus, W stAtus stAtus_teMp pclAtH, W pclAtH_teMp pclAtH

; prologue

; ;(Interrupt service routine code here) ; MOVF pclAtH_teMp, W; epilogue MOVWF pclAtH sWApF stAtus_teMp, W MOVWF stAtus sWApF W_teMp, F sWApF W_teMp, W Listarea 1: Secvența prolog și epilog pentru salvarea contextului întreruperii Prologul și epilogul pentru întreruperea standard necesitau până la 56 de cicluri de ceas. Cu noul

mecanism de registru umbră al PIC16F1, nevoia pentru cele două secvențe este complet eliminată, iar costul unei întreruperi se reduce la cele patru cicluri de bază necesare pentru legarea CPU. Rezultatul este o creștere considerabilă a răspunsului microcontrolerului sau a performanțelor sale de timp real cu un ordin de mărime. FLEXIBILITATE O observație atentă legată de finalul tabelului 1 revelează un alt detaliu interesant: numărul de I/O de uz general disponibil pentru cele două dispozitive este diferit în ciuda clamatei compatibilități pinla-pin. Ea arată că noul dispozitiv multiplexează mai mult cu trei pini, anterior rezervați unui oscilator de cuarț și unui semnal de reinițializare extern, care sunt acum disponibili opțional ca I/O de uz general. Dar numai un studiu mai aprofundat al datelor tehnice va dezvălui adevărata pepită de aur: TOATE intrările/ieșirile perifericelor digitale sunt acum multiplexate pe fiecare pin al dispozitivului! Această caracteristică este cunoscută criptic ca selecție a pinului periferic PPS (Peripheral Pin Select) și oferă un salt de flexibilitate pentru dispozitivele PIC16F18877 și câteva familii similare PIC16F1.


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.