From: D Yuniskis on
Hi Rowan,

rowan.bradley wrote:
> Anyone know the quickest or easiest way of recording a serial data stream
> and timestamping each byte with a resolution of at least 1ms (preferably
> finer)? I can only find cheap or free programs with less resolution, or
> very expensive solutions, often involving special hardware.
>
> I only need to monitor one port, and I don't need to send any characters
> (actually I'm snooping on an RS485 bus).

Are you actually interested in *every* byte or just "certain"
bytes (e.g., are you looking at, perhaps, the timing of *messages*?)

> I'm prepared to use an old PC with a "real" serial port, run MSDOS, Linux
> or whatever other OS will do the job, use some sort of microprocessor to
> capture the data (preferably one I'm familiar with, such as 8051 family or
> PIC) or anything else so long as it's quick and cheap. I just need to get
> the job done, preferably tomorrow!

If you can find something that you can easily write / deploy code
on, this is a one page program.

> If possible I'd like it to run at a non-standard baud rate (62,500 baud).

IIRC, a "real PC" will give you problems hitting 62,500.
I think the baud rate clock is fed from too low of a frequency
to give you enough precision to hit "any" baudrate you want
(esp at higher rates, obviously)
From: Oliver Betz on
"rowan.bradley" wrote:

>Anyone know the quickest or easiest way of recording a serial data stream
>and timestamping each byte with a resolution of at least 1ms (preferably
>finer)? I can only find cheap or free programs with less resolution, or
>very expensive solutions, often involving special hardware.

So you already checked all solutions listed on
http://wiki.oliverbetz.de/owiki.php/TerminalPrograms ?

Another possibility is http://www.tech-tools.com/dv_main.htm - it's
able to record and decode serial data and of course the resolution is
several orders of magnitude better than you require. Not cheap but a
good logic analyzer is often useful.

Oliver
--
Oliver Betz, Munich
despammed.com is broken, use Reply-To:
From: Paul Carpenter on
In article <EpmdnWB348YFOIPRnZ2dnUVZ_qGdnZ2d(a)giganews.com>,
rowan(a)n_o_s_p_a_m.sylvester-bradley.org says...
> Anyone know the quickest or easiest way of recording a serial data stream
> and timestamping each byte with a resolution of at least 1ms (preferably
> finer)? I can only find cheap or free programs with less resolution, or
> very expensive solutions, often involving special hardware.

Everything depends on many factors some of which are

1/ Do you want relative timestamp from power up or first byte received?

2/ Do you want linked timestamp (actual time) to some time stamp
reference (even one system's time clock)?

3/ With later mentioned 62500bps, your accuracy could end up +/-1ms

4/ Are you timestamping each byte, or a block of data?

5/ Are you timestamping the

- line start bit falling edge, middle or effective end
- line Stop bit effective rising edge, middle or effective end
- Byte coming out of a UART (with hardware latency from start bit)
effectively Data Ready flag, which becomes skewed even with two
or more bytes from double buffering or FIFOing and
software/interupt latency.
- Start/middle/end of any message block

6/ How much data are you expecting to capture per second/min

7/ How large a time stamp range do you need, i.e. do you need one that
runs for minutes, hours, days or longer. This affects the overhead
of any timestamp, the bigger it is the more to process. Also the more
bytes that have to be timestamped the larger the dataset.

> I only need to monitor one port, and I don't need to send any characters
> (actually I'm snooping on an RS485 bus).
>
> I'm prepared to use an old PC with a "real" serial port, run MSDOS, Linux
> or whatever other OS will do the job, use some sort of microprocessor to
> capture the data (preferably one I'm familiar with, such as 8051 family or
> PIC) or anything else so long as it's quick and cheap. I just need to get
> the job done, preferably tomorrow!
>
> If possible I'd like it to run at a non-standard baud rate (62,500 baud).

Using and external device will make getting that baud rate easy, how big
your data set is, the time stamp data has to be affects how much storage
buffering of data and in turn potentially latency for timing as recording
gets bigger. If on a PC the act of updating screen or saving some of the
data to disk could impact on recording timing on a heavily loaded link.

If you must timestamp every byte, I would consider a seven bit relative
time stamp between bytes, with MSB set as 1. Full time stamp always to
have MSB set to 0, thus huge amount of data set can saved if you need
a 4 byte or larger timestamp for the whole dataset. If time delta
greater than 127 steps, send full time stamp.

Even at 62500 bps, you are potentially storing 6250 bytes/second, with a
four byte timestamp on ech byte you are then storing 5 x as much data
EVERY second. This of course increases to 9x as much for 8 byte
timestamp. So your data storage, buffering and processing requirements
increase drastically for an external unit.

Mean while in a PC storing data to disk could cause gaps in time stamp
accuracy, depending on how good the disk drivers and hardware actually
are.


> Thanks - Rowan
>
> ---------------------------------------
> Posted through http://www.EmbeddedRelated.com
>

--
Paul Carpenter | paul(a)pcserviceselectronics.co.uk
<http://www.pcserviceselectronics.co.uk/> PC Services
<http://www.pcserviceselectronics.co.uk/fonts/> Timing Diagram Font
<http://www.gnuh8.org.uk/> GNU H8 - compiler & Renesas H8/H8S/H8 Tiny
<http://www.badweb.org.uk/> For those web sites you hate
From: Stefan Brröring on
> Anyone know the quickest or easiest way of recording a serial data stream
> and timestamping each byte with a resolution of at least 1ms (preferably
> finer)? I can only find cheap or free programs with less resolution, or
> very expensive solutions, often involving special hardware.
>
> I only need to monitor one port, and I don't need to send any characters
> (actually I'm snooping on an RS485 bus).
>
> I'm prepared to use an old PC with a "real" serial port, run MSDOS, Linux
> or whatever other OS will do the job, use some sort of microprocessor to
> capture the data (preferably one I'm familiar with, such as 8051 family or
> PIC) or anything else so long as it's quick and cheap. I just need to get
> the job done, preferably tomorrow!
>

If you only want to analyse a serial data stream and if you are sure,
that the bits are correct, you can simply read the data with a PC.

I don?t think, that you need a microcontroller.

The simplest way is, you take the B wire (or D-) of the RS485 signal and
connect it via a 1K resistor with the RXD* line of the PC and the GND
line of your RS485 Device with the GND-Line of the PC-Com-Port. This is
electrically not ideal, but should normaly work. But You should not
connect the TXD* line (the one, where you see about -8V) of the PC to
the RS485 bus.

A better solution of course would be the use of a RS485 tranceiver which
is used only in read-mode, e.g. max485.

Now take a simple program, e.g. in Turbo-Pascal under DOS or Delphi
under Windows and record the data.

For a one-cannel solution, i would prefer delphi. For a two-channel
solution, where i need the timing between the two signals, it might be
better in DOS.

With some experience in serial communication, this should be done in
about half an hour.

With MSDOS or Windows, you can use every baudrate that is a
factor/divider of 115200.

best regards

Stefan DF9BI

From: Stef on
In comp.arch.embedded,
Oliver Betz <obetz(a)despammed.com> wrote:
> "rowan.bradley" wrote:
>
>>Anyone know the quickest or easiest way of recording a serial data stream
>>and timestamping each byte with a resolution of at least 1ms (preferably
>>finer)? I can only find cheap or free programs with less resolution, or
>>very expensive solutions, often involving special hardware.
>
> So you already checked all solutions listed on
> http://wiki.oliverbetz.de/owiki.php/TerminalPrograms ?
>
> Another possibility is http://www.tech-tools.com/dv_main.htm - it's
> able to record and decode serial data and of course the resolution is
> several orders of magnitude better than you require. Not cheap but a
> good logic analyzer is often useful.

Much cheaper and possibly enough for this job:
http://www.saleae.com/logic/

--
Stef (remove caps, dashes and .invalid from e-mail address to reply by mail)

I'm having a tax-deductible experience! I need an energy crunch!!