[time-nuts] M12+T ASCII interface - I'm confused?

Stephan Sandenbergh stephan at rrsg.ee.uct.ac.za
Thu Nov 20 10:38:10 UTC 2008


Hi Bruce,

Yes - at this point an external processor is not a real option.

Are you aware of open source code that I could try out?

In hind sight, I should've put a microprocessor core onto the FPGA to do all
the management kind of tasks.

Regards,

Stephan.

No need to use an external processor just implement a processor within
the FPGA.
VHDL code for suitable processors is readily available.

Bruce

Bruce



2008/11/19 Bruce Griffiths <bruce.griffiths at xtra.co.nz>

> Tom Van Baak wrote:
> > Stephan,
> >
> > Ah, it's not a stupid question -- I think all of us who have written
> > code to interface with GPS receivers have had to deal with this.
> >
> > Some GPS protocols use escape characters, but the Oncore
> > binary protocol doesn't. There are five clues to robustly parsing
> > a complete message:
> >
> > 1) starts with @@
> > 2) ends with <cr><lf>
> > 3) message length is known, based on message header
> > 4) valid checksum
> > 5) there may be a pause between sentences
> >
> > You can use all of these clues to "sync" to a serial data stream
> > and accurately determine the start of the next message.
> >
> > As you already observed, just looking for @@ or <cr><lf> is
> > not sufficient. Checking for <cr><lf>@@ is better, but still not
> > perfect. To do it right you also need to include message length
> > and checksum into the calculation. The length is knowable by
> > looking at the message type in the header as it arrives.
> >
> > If you use a millisecond-level serial timeout that can help even
> > more (since if the first two bytes after a pause are @@ you
> > know it is a message start, not 16-bits of 0x4040 embedded
> > binary data). There is a timing gap between some, but not all
> > messages, so use this technique with care. You can also use
> > the 1PPS pulse as a start of message hint.
> >
> > True, a robust solution is not FPGA-friendly, but probably not
> > impossible, either. If you can't solve it, consider using a $1
> > microcontroller (where this sort of message handling is trivial)
> > between the receiver and your FPGA which would parse, edit,
> > or reformat the messages to the FPGA's liking.
> >
> > /tvb
> >
> >
> >
>
>
> _______________________________________________
> time-nuts mailing list -- time-nuts at febo.com
> To unsubscribe, go to
> https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
> and follow the instructions there.
>


More information about the time-nuts mailing list