GESTIONE LETTORE CARD MAGNETICHE USCITA TTL SINCRONA DATI+CLOCK+PRESENZA CARD

Salve a tutti,

mi rivolgo a tutti i "maghi" di arduino per un prezioso supporto, visto che sono alle prime armi su questo dispositivo ed essendo molto più elettronico che informatico non sono una cima in campo di programmazione. Ho la necessità di acquisire i dati letti da un lettore di badge magnetici con uscita TTL. L'interfaccia di questo dispositivo dispone di 3 segnali come nell'immagine nel link di seguito:

http://img217.imageshack.us/img217/7715/segnaliptr.jpg

Il segnale CLS è attivo nel momento in cui viene strisciata una card nel lettore Il segnale RCP è il segnale CLOCK generato dal dispositivo durante la lettura Il segnale RDT è il segnale DATI del dispositivo

I segnali (CMOS 5V) sono attivi bassi (nel caso di segnali attivi alti, le polarità di CLS,RCP e RDT sono invertite)

Avevo in mente di gestire la lettura dei dati con la funzione Shiftl di Arduino, campionando in vari byte nello shift register. A vostro parere la funzione si presta alla gestione di questo dispositvo? Inoltre come procedere per acquisire in sequenza i vari byte e metterli in una stringa o in un array in modo da averli disponibili per processarli? A quanto ho capito la funzione ShiftIn acquisisce un singolo byte e non una stringa? Qualche esempio in codice sarebbe un sogno.

Grazie in anticipo a tutti e mi scuso per l'incompetenza.

Documentandomi meglio sul metodo ShiftIn ho capito che in realtà prevede un clock in uscita verso il dispositivo che genererà il treno di bit. Nel mio caso invece io ho bisogno di sincronizzarmi al clock esterno proveniente dal dispositivo. A questo punto il tutto si traduce nella necessità di acquisire in maniera sincronizzata al clock esterno i vari bit, interpretarli sequenzialmente come byte e caricarli in un array o una stringa.

NESSUNO CHE MI AIUTI??!!

Ciao ... sono interessato anche io all'argomento. Ci ci aiuta ?? ;)

Non conoscendo frequenza del clock etc etc, direi che un modo per leggere i dati possa essere usando degli interrupt

In pratica, quando il CS va' basso attivi un interrupt sul pin a cui e' collegato il Clock. e nel momento in cui il pin e' LOW leggi il dato sul pin a cui e' collegato il segnale DATI. poi con un BitShift e un Xor crei il Byte