Lettore di badge con uscita seriale 3/4

Lettore di badge con uscita seriale

Il circuito prevede poi un buzzer BZ e un led LD1 quali retroazioni dell’avvenuto passaggio della tessera. Il buzzer viene controllato dal pin 2 (PB1) del micro attraverso il transistor T1. Il led risulta invece collegato al pin 1 (PB0) del micro. Per poter funzionare, il driver della Maxim necessita di 4 condensatori esterni da 1 µF siglati C4, C5, C6 e C7. Il micro, invece, ha bisogno di un quarzo esterno (Q1) e di una rete RC connessa al pin 16 di Reset. Sia gli integrati U1 e U2 che il lettore a strisciamento necessitano di una tensione di alimentazione stabilizzata a 5 volt. Allo scopo, abbiamo previsto nel circuito una sezione di alimentazione composta dal trasformatore TF1, dal ponte PT1 e dal regolatore U3 a 5 volt. I condensatori C10 e C11 vengono utilizzati per livellare ulteriormente la tensione fornita da U3. Il buzzer viene alimentato direttamente dalla tensione a 12 volt prelevata dopo il ponte di diodi. Com’ è facile supporre, la complessità di questo progetto non risiede nel circuito elettrico ma bensì nel programma di gestione.

Per meglio comprendere la parte software, abbiamo riportato nell’articolo il diagramma di flusso del programma (codice MF74) contenuto in U2. Il micro inizializza dapprima le proprie risorse interne, in seguito attende in continuazione il passaggio di un badge.

Se ciò avviene, il dispositivo attende i primi bit disponibili sul badge per sincronizzare la propria velocità di lettura dei dati con la velocità di strisciamento della tessera.

lettore_badge_uscita_seriale_montaggio

Terminata questa fase, il programma verifica la presenza del carattere di Start Sentinel. Se tale carattere non è presente, il micro abbandona la subroutine di lettura e rientra nel “main program”: l’operazione di lettura è fallita. Vedremo in seguito che il programma prevede durante la lettura una sequenza di test atta a stabilire se i dati sono corretti o meno. Il test consiste nel verificare, oltre al carattere di Start Sentinel e di End Sentinel, anche la parità di ogni dato a 5 bit. In questo modo si evitano false interpretazioni dei dati presenti sul badge.

Ma torniamo al nostro programma. A questo punto, il micro attende il primo carattere ISO 2, lo converte in un numero decimale, ne controlla la parità e lo memorizza temporaneamente in RAM. Questa procedura viene ripetuta finché non sopraggiunge il carattere di End Sentinel, oppure al termine di 40 letture consecutive. A questo punto il micro dispone nella propria memoria RAM di 40 byte che rispecchiano fedelmente i 40 caratteri presenti nel badge. Il programma provvede a convertire i 40 numeri in RAM in una stringa di 40 caratteri ASCII. Poiché la traccia ISO 2 letta dal badge può contenere da un minimo di 1 carattere ad un massimo di 40 caratteri, il micro crea una stringa composta da 40 caratteri ASCII con un minimo di 1 carattere valido e di 39 caratteri “NUL” oppure con un massimo di 40 caratteri validi e nessun carattere “NUL”.

Il kit è disponibile da Futura Elettronica

Leave a Reply