Come leggere il CID della scheda SD

- Che cosa è il CID

Tecnicamente il CID è un registro a 16 byte che contiene un numero identificativo univoco.
Questo registro è impostato durante il processo di produzione e non può essere cambiato dai dispositivi che utilizzano tali schede SD/MicroSD.
Il CID è composto da una sequenza di informazioni riguardo la scheda, il produttore, la data di fabbricazione, il checksum, la dimensione in GByte e altro.
Questa è una tabella che spiega la struttura del CID.

Struttura CID

Per comodità il CID viene rappresentato come sequenza di 16 valori esadecimali.

Questo è il CID di una scheda LEXAR da 16 GByte

275048534431364730da70ec5500f20


- Come leggere il CID

Alcuni dispositivi Android permettono di visalizzare il CID nele proprietà della scheda SD inserita.
Per leggerla è sufficiente un’applicazione come

  • GoldCard Helper (visualizza il CID in sequenza rovesciata)
  • DiskInfo PRO
  • SD Insinsight

Con le librerie di Arduino è possibile scrivere uno sketch per leggere il CID della scheda SD.
Alcuni portatili con lettori SD permettono a Linux di vsiaulzizare il CID tramite il filesystem.

- Interpretare il CID

Per conoscere i dettagli della scheda SD basta interpretare ciascun campo usando la tabella.
Esiste però un progetto che svolge il lavoro di decodifica digitando semplicemente il CID nel campo.
Se siete curiosi vi invito a visitare il sito a questo indirizzo

Project - Read, Collect & Decode SD Card CID Register Data


- Cosa significa se il CID termina con 00

Se l’ultimo byte del CID è 00 qualcosa è sicuramente andato male nella lettura.
I due ultimy byte rappresentano al checksum ovvero un codice di verifica calcolato con i byte precedenti.
Per definizione dalla tabella ultimo bit è sempre ‘1’ (al massimo si può ottenere 0x01).
In caso sia 00 probabilmente il sistema operativo ha sbagliato qualcosa.

In Linux una volta inserita la scheda aprire la finestra del terminale

sudo -s

Permette di diventare super user (inserire la password dell’utente corrente).

find /sys -name cid -printIl

il comando esegue una ricerca del file chiamato cid nella cartella /sys: non lasciatevi impressionare dai : selezionate
Se lo trova significa che il PC ha un lettore compatibile (non è scontato). Digitare

cat [percorso_e_nome_file_trovato]

il comando cat seguito dalla stringa restituita dal find
Per velocizzare, se siete riusciti a visualizzare il CID con i comandi precedenti il comando successivo vi permetterà di fare tutto in una volta sola.
Aprite la finestra del terminale (con Ctrl+Alt+T) e digitate:

sudo -s
find /sys -name 'cid' -exec cat {}\