Tutorials - PIC18 by Data Sheet

 

Protezione della EEPROM


L' area della EEEPROM dispone anch'essa di bit di protezione nei registri del CONFIG: operazioni di lettura e scrittura possono essere abilitate o disabilitate da accessi esterni.

Il microncontroller, di per se, può comunque accedere in lettura o scrittura ai dati salvati in EEPROM. Quindi questa chiave di sicurezza riguarda essenzialmente il blocco di un possibile reverse engeneering.

Per aumentare il grado di sicurezza dei dati salvati in EEPROM, sono stati implementati ulteriori meccanismi:

  • al power on, il bit WREN che abilita la scrittura viene posto a 0

  • operazioni di scrittura sulla EEPROM sono disabilitate durante il tempo di power-up

La necessità della chiave 55h-AAh e del bit WREN rendo poi particolarmente sicura la scrittura da accessi erronei durante un evento di brown-out o disturbi sull' alimentazione.

L' area EEPROM è pensata per accessi frequenti di salvataggio di dati dalla mancanza di tensione. Il parametro D124 indica il numero tipico di scritture possibili prima della perdita di affidabilità.
La tabella 26-1 riporta i parametri tipici della EEPROM e della FLASH e permette una rapida comparazione delle caratteristiche salienti:

Si nota come la vita (in cicli di scrittura) della EEPROM sia 100 volte maggiore di quella della FLASH. Ne deriva l' immediata considerazione che la EEPROM è utilizzabile per scritture ben più frequenti che la FLASH.

Un particolare che viene poco considerato, ma su cui il foglio dati si sofferma, nel paragrafo 7.5 è quello della necessità di effettuare un periodico refresh del contenuto della EEPROM, per garantire la sicurezza dei dati, principalmente se questi dati sono aggiornato molto raramente.

Il foglio dati propone anche un tratto di codice per questo scopo: 

    CLRF   EEADR            ; Start at address 0
    BCF    EECON1, CFGS     ; Set for memory
    BCF    EECON1, EEPGD    ; Set for Data EEPROM
    BCF    INTCON, GIE      ; Disable interrupts
    BSF    EECON1, WREN     ; Enable writes
Loop                        ; Loop to refresh array
    BSF    EECON1, RD       ; Read current address
    MOVLW  55h              ;
    MOVWF  EECON2           ; Write 55h
    MOVLW  0AAh             ;
    MOVWF  EECON2           ; Write 0AAh
    BSF    EECON1, WR       ; Set WR bit to begin write
    BTFSC  EECON1, WR       ; Wait for write to complete
    BRA    $-2
    INCFSZ EEADR, F         ; Increment address
    BRA    Loop             ; Not zero, do it again
    BCF    EECON1, WREN     ; Disable writes
   
BSF    INTCON, GIE      ; Enable interrupts

 

 


 La tab 7-1 riassume i bit e gli SFR interessati nella gestione della EEPROM:

 

Come al solito, le caselle in grigio non contengono bit relativi alla gestione della EEPROM, mentre le caselle con - indicano bit non implementati, che rendono 0 in lettura.

 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 07/12/10.