Bifase Mark e decodifica

Feb 18, 2004 5 Replies

Buongiorno a tutti, ho necessità di reperire informazioni sul sistema Bifase Mark. In particolare dovrei decodificare uno stream (bifase mark) attraverso un PIC o anche uno Z80. Ho scovato qualche datasheet in rete, e scartando le applicazioni "hardware" con pll e integrati dedicati, ho trovato solo qualche flowchart abbastanza scarno e del tutto incomprensibile. La mia domanda: ho ricavato dal flowchart e dai diagrammi temporali che bisogna campionare l'ingresso dati ad un intervallo di tempo preciso, e tramite operazione di xor ricavare il dato da immagazzinare in buffer. Però prima si necessita di sincronizzare. Quello che non riesco a capire è il metodo con cui sincronizzarmi, e il modo con cui calcolare l'intervallo di campionamento. Grazie a tutti per l'attenzione. Ciao. MrX


Il campionamento deve essere ad un multiplo del bitrate (oversampling). Tipicamente 4 o 16 volte. Quando il campione letto cambia stato ((New xor Old) != 0) si azzera il contatore di oversampling. Quando il contatore di oversampling raggiunge metà valore di oversampling si tiene buono il valore letto come bit di dato.

Che stream è?

Ciao.

lucky

Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Ciao Feci tempo fa la decodifica delle telescriventi a 50 baud in assembler su 286 . Non e' la stessa cosa ,ma assomiglia. Non usavo sincronismo,salvo trovare i bit di start e di stop poi uno shift per parallelare i 5 bit e una semplice conversione codice / letter o numeri. Se ti serve la routine in assembler, ricordami TTY50B.asm

Ciao Giorgio

Bifase

Il bit rate e' fisso o variabile e ti devi adattare alla velocita' di volta in volta? Di che ordine di grandezza? Cosi' per capire se e' fattibile via software. Per caso e' il segnale di un transponder? Se il bit rate e' fisso e non troppo veloce, fino a qualche Kb/s, e' abbastanza elementare farlo in software.

Grazie per la risposta, lo stream proviene da un nastro magnetico. Ciao.

No è fisso.

1.95 kbit/s

No, ma ci assomiglia molto.

Pendo dalle tue labbra :-) Per adesso con i vostri dati e quelli in mio possesso ho riassunto che, devo sincronizzarmi in questo modo: I segnali sono Fo (stato logico 1) 2Fo (stato logico 0). Attendo due fronti in modo da trovare nello stream il 2Fo, dopodiche campiono, attendo un periodo di oversampling e campiono ancora. Eseguo la Xor tra i due campioni e finalmente ho il mio dato 1 o 0 da memorizzare. Il ciclo si ripete per il numero di bit che devo memorizzare. E' corretto ?

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required