Un esempio reale di come i codici di correzione degli errori sono fondamentali nei microcontrollori



un giorno fa p Jake Hertz Una delle grandi sfide che gli ingegneri devono affrontare nella comunicazione digitale è la risoluzione degli errori nei dati trasmessi. Sia nel campo delle comunicazioni wireless che nella progettazione di PCB, sono inevitabili errori in alcune capacità sul canale di trasmissione o nella memoria. Gli errori si presentano più comunemente sotto forma di capovolte di bit (un 1 diventa uno 0 o viceversa), ma in alcuni casi è possibile eliminare completamente i bit oppure inserire nuovi bit errati in un flusso di dati.
In un capitolo sulla trasmissione digitale, il Dr. Edwin V. Jones spiega che gli errori nelle comunicazioni digitali sono spesso causati da fenomeni naturali come rumore termico, rumore di potenza, interferenza, attenuazione e altre forme di interferenza elettromagnetica.
Con questi errori inevitabili più frequenti quando i dispositivi si ridimensionano, gli ingegneri hanno escogitato un modo per gestirli. Una di queste soluzioni sono i codici di correzione degli errori (ECC). Gli ingegneri hanno escogitato molti schemi diversi non solo per rilevare errori, ma anche per correggerli sull'estremità del ricevitore, consentendo ritrasmissioni minime.
Un tipo molto semplice di ECC è la "ripetizione della forza bruta". Un esempio di ripetizione della forza bruta sarebbe l'invio di ogni bit più volte; diciamo che un bit viene inviato cinque volte. In un esempio come questo, il nostro messaggio originale potrebbe essere 0101 ma in realtà trasmetteremmo 00000111110000011111.
Il nostro destinatario quindi voterebbe a maggioranza per ciascun gruppo di cinque bit. In questo modo, anche se avessimo un errore di capovolgimento a bit singolo, il nostro ricevitore sarebbe in grado di rilevarlo e decodificare il messaggio corretto. Problemi evidenti con questo approccio sono un notevole sovraccarico (4 bit originali ora sono 20 bit) e il caso in cui vi siano la maggior parte degli errori in un gruppo di bit.
In pratica, gli ingegneri utilizzano soluzioni molto più eleganti, come codici di correzione degli errori di blocco e codici di convoluzione, per correggere gli errori. Algoritmi come codici di hamming e codici convoluzionali sono stati sviluppati per ridurre al minimo le spese generali e massimizzare l'affidabilità in ECC. Ieri, Maxim Integrated ha annunciato il suo ultimo prodotto: un microcontrollore per soluzioni industriali, sanitarie e IoT.
Maxim afferma che il MAX32670 "risparmia il 40% di energia e il 50% di spazio" includendo anche "memoria protetta da ECC per un maggiore tempo di attività delle apparecchiature “. Questo nuovo MCU, che integra fino a 384 KB di flash e 160 KB di SRAM, implementa ECC sull'intero flash, RAM e cache. Ciò fornisce affidabilità su tutto lo spazio di memoria del microcontrollore, qualcosa che sarà molto prezioso soprattutto se si considera l'ingombro ridotto del dispositivo.
È importante notare che l'ECC in uso è una correzione dell'errore singolo e un codice di rilevamento dell'errore doppio (SEC-DED). Ciò significa che può correggere solo un errore per blocco, e se ci sono più di due errori, quei bit errati in più potrebbero passare completamente inosservati. Anche se non è ovvio quale tipo di ECC viene utilizzato qui, è evidente che Maxim sta valutando molto l'affidabilità nel MAX32670.
Il MAX32670 è un ottimo esempio di ECC utilizzati nelle applicazioni del mondo reale. Negli spazi industriali, sanitari e IoT, l'affidabilità dei dati è fondamentale e questa notizia di Maxim Integrated mostra ulteriormente la crescente domanda di affidabilità in questi campi. Lavori spesso con codici di correzione degli errori? Quali metodi ti sono più familiari? Condividi la tua esperienza nei commenti qui sotto.
.

Yorumlar

Bu blogdaki popüler yayınlar

Classici protocolli CAN vs CAN FD: le differenze che contano per i progettisti

Che cos'è DrMOS, l'IC che alimenta i processori di nuova generazione?

Qual è la funzione Sinc e perché è importante nell'ingegneria elettrica?