Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #11   Report Post  
Old July 7th 03, 03:46 AM
R C
 
Posts: n/a
Default

Paul Keinanen wrote in message . ..
On 4 Jul 2003 23:21:05 -0700, (R C) wrote:

I'm working on a telemetry board and wish to include software FSK1200
(MX-614's are getting harder to find). The official Bell 202 spec is
out of print and hard to find as well, so I pieced this together from
what I can find. Multimon won't decode the output, so I'm likely doing
something wrong.


What is this Multimon thing expecting ?


Okay, I've figured some things out since I first posted. Multimon was
written by Thomas Sailer, who also wrote the soundmodem program.

It's available at
http://www.baycom.org/~tom/ham/linux/multimon.html.

Documentation is lacking, but reviewing the source (don't try and
debug at 4 AM; I should've figured this out originally) the afsk1200
decoder expects hdlc encoding, and possibly AX.25 framing (didn't
trace that far). However, an undocumented option -v 10 yields the raw
bit stream.

In that case I assume you have mixed the polarity of the start and
stop bits.

In ordinary RS-232 asynchronous communication the start bit is "0"
SPACE, interrupting the idle MARK state, followed by the data bits
with LSB sent first. The stop bit is "1" or MARK, which then transfers
to a MARK idle state if no more characters are to be transmitted.


That part I figured out from APRS packets recorded off the air. Start
is definately 1200 hz, stop is 2200 hz.

Thanks for the suggestions,
R C
KG4MVB
  #12   Report Post  
Old July 7th 03, 08:16 AM
Paul Keinanen
 
Posts: n/a
Default

On 6 Jul 2003 19:46:48 -0700, (R C) wrote:

In ordinary RS-232 asynchronous communication the start bit is "0"
SPACE, interrupting the idle MARK state, followed by the data bits
with LSB sent first. The stop bit is "1" or MARK, which then transfers
to a MARK idle state if no more characters are to be transmitted.


That part I figured out from APRS packets recorded off the air. Start
is definately 1200 hz, stop is 2200 hz.


How did you determine this ?

APRS is definitively AX.25, which is a version of the X.25 protocol,
which are all members of the HDLC protocol family. These protocols
are _synchronous_ protocols, thus, they do not contain any start or
stop bits. The AX.25 protocol sends 8 bit octets (bytes) packed
immediately side by side without any bits in between them forming a
multiple octet frame. The whole frame starts with on octet with the
"01111110" bit pattern (the flag pattern) and it also ends with the
same pattern (or a single flag is used as a _frame_ separators, if
multiple frames are sent at once). In order to avoid false flag
detection within the data part of the frame, the 0 bit is inserted
after five consecutive 1 bits.

To illustrate how synchronous protocols work and how the bit stuffing
is done in HDLC, here is a simplified example (use fixed font).

Assume that you want to send the characters "a?b" which is 0x61 0x3F
0x62. First convert to bits (LSB first)

10000110 = 'a'
11111100 = '?'
01000110 = 'b'

Put them side by side

100001101111110001000110
.........^^^^^...........

Check for 5 consecutive 1 bits and add the bit stuffing.

1000011011111010001000110
_____________I___________

Add the flag octets

01111110100001101111101000100011001111110

It should be noted that the checking for five 1 bits must be done
after the bytes are put into a single bit stream, since sending two
consecutive bytes such as 00001111 11110000 do not violate the
five1bit rule separately, but when the bytes are combined into a bit
sequence, you would end up with 0000111111110000, bit stuffing must be
inserted 00001111101110000. Sending 11111111 11111111 requires three
stuff bits: 1111101111101111101

This a very simplified example, a real AX.25 frame would contain the
address fields and the CRC field at the end.

When you say that the APRS frame starts with a Mark and ends with a
Space, are you sure you are not seeing some effects of TxDelay, i.e.
the Tx is on but no data (or some preamble) is sent.

Paul OH3LWR

  #13   Report Post  
Old July 7th 03, 08:16 AM
Paul Keinanen
 
Posts: n/a
Default

On 6 Jul 2003 19:46:48 -0700, (R C) wrote:

In ordinary RS-232 asynchronous communication the start bit is "0"
SPACE, interrupting the idle MARK state, followed by the data bits
with LSB sent first. The stop bit is "1" or MARK, which then transfers
to a MARK idle state if no more characters are to be transmitted.


That part I figured out from APRS packets recorded off the air. Start
is definately 1200 hz, stop is 2200 hz.


How did you determine this ?

APRS is definitively AX.25, which is a version of the X.25 protocol,
which are all members of the HDLC protocol family. These protocols
are _synchronous_ protocols, thus, they do not contain any start or
stop bits. The AX.25 protocol sends 8 bit octets (bytes) packed
immediately side by side without any bits in between them forming a
multiple octet frame. The whole frame starts with on octet with the
"01111110" bit pattern (the flag pattern) and it also ends with the
same pattern (or a single flag is used as a _frame_ separators, if
multiple frames are sent at once). In order to avoid false flag
detection within the data part of the frame, the 0 bit is inserted
after five consecutive 1 bits.

To illustrate how synchronous protocols work and how the bit stuffing
is done in HDLC, here is a simplified example (use fixed font).

Assume that you want to send the characters "a?b" which is 0x61 0x3F
0x62. First convert to bits (LSB first)

10000110 = 'a'
11111100 = '?'
01000110 = 'b'

Put them side by side

100001101111110001000110
.........^^^^^...........

Check for 5 consecutive 1 bits and add the bit stuffing.

1000011011111010001000110
_____________I___________

Add the flag octets

01111110100001101111101000100011001111110

It should be noted that the checking for five 1 bits must be done
after the bytes are put into a single bit stream, since sending two
consecutive bytes such as 00001111 11110000 do not violate the
five1bit rule separately, but when the bytes are combined into a bit
sequence, you would end up with 0000111111110000, bit stuffing must be
inserted 00001111101110000. Sending 11111111 11111111 requires three
stuff bits: 1111101111101111101

This a very simplified example, a real AX.25 frame would contain the
address fields and the CRC field at the end.

When you say that the APRS frame starts with a Mark and ends with a
Space, are you sure you are not seeing some effects of TxDelay, i.e.
the Tx is on but no data (or some preamble) is sent.

Paul OH3LWR

  #14   Report Post  
Old July 7th 03, 09:28 AM
Dana Myers K6JQ
 
Posts: n/a
Default

Paul Keinanen wrote:
On 6 Jul 2003 19:46:48 -0700, (R C) wrote:


In ordinary RS-232 asynchronous communication the start bit is "0"
SPACE, interrupting the idle MARK state, followed by the data bits
with LSB sent first. The stop bit is "1" or MARK, which then transfers
to a MARK idle state if no more characters are to be transmitted.


That part I figured out from APRS packets recorded off the air. Start
is definately 1200 hz, stop is 2200 hz.



How did you determine this ?

APRS is definitively AX.25, which is a version of the X.25 protocol,
which are all members of the HDLC protocol family. These protocols
are _synchronous_ protocols, thus, they do not contain any start or
stop bits. The AX.25 protocol sends 8 bit octets (bytes) packed
immediately side by side without any bits in between them forming a
multiple octet frame. The whole frame starts with on octet with the
"01111110" bit pattern (the flag pattern) and it also ends with the
same pattern (or a single flag is used as a _frame_ separators, if
multiple frames are sent at once). In order to avoid false flag
detection within the data part of the frame, the 0 bit is inserted
after five consecutive 1 bits.



Well, don't forget that HDLC is NRZI encoded - the absolute level
(mark vs. space) is meaningless. A transition indicates a 0 and
the lack of a transition indicates a 1. Sending a series of 0s
results in a square wave of 1/2 the baud rate (since each baud
is the opposite of the previous baud). Sending a series of 1s
results in a series of unchanged bauds.

So, if the initial state of the NRZI encoder is '1' and the
'01111110' flag sequence is sent, the resulting output is:

initial state 1 : 0 0 0 0 0 0 0 1 and the next flag looks like
0 0 0 0 0 0 0 1 and this pattern repeats as long
as flags are being sent.

If the initial state is 0 you get:

initial state 0 : 1 1 1 1 1 1 1 0 and this pattern repeats.

So, you can't tell anything about the date being sent
from the absolute levels.

Dana

  #15   Report Post  
Old July 7th 03, 09:28 AM
Dana Myers K6JQ
 
Posts: n/a
Default

Paul Keinanen wrote:
On 6 Jul 2003 19:46:48 -0700, (R C) wrote:


In ordinary RS-232 asynchronous communication the start bit is "0"
SPACE, interrupting the idle MARK state, followed by the data bits
with LSB sent first. The stop bit is "1" or MARK, which then transfers
to a MARK idle state if no more characters are to be transmitted.


That part I figured out from APRS packets recorded off the air. Start
is definately 1200 hz, stop is 2200 hz.



How did you determine this ?

APRS is definitively AX.25, which is a version of the X.25 protocol,
which are all members of the HDLC protocol family. These protocols
are _synchronous_ protocols, thus, they do not contain any start or
stop bits. The AX.25 protocol sends 8 bit octets (bytes) packed
immediately side by side without any bits in between them forming a
multiple octet frame. The whole frame starts with on octet with the
"01111110" bit pattern (the flag pattern) and it also ends with the
same pattern (or a single flag is used as a _frame_ separators, if
multiple frames are sent at once). In order to avoid false flag
detection within the data part of the frame, the 0 bit is inserted
after five consecutive 1 bits.



Well, don't forget that HDLC is NRZI encoded - the absolute level
(mark vs. space) is meaningless. A transition indicates a 0 and
the lack of a transition indicates a 1. Sending a series of 0s
results in a square wave of 1/2 the baud rate (since each baud
is the opposite of the previous baud). Sending a series of 1s
results in a series of unchanged bauds.

So, if the initial state of the NRZI encoder is '1' and the
'01111110' flag sequence is sent, the resulting output is:

initial state 1 : 0 0 0 0 0 0 0 1 and the next flag looks like
0 0 0 0 0 0 0 1 and this pattern repeats as long
as flags are being sent.

If the initial state is 0 you get:

initial state 0 : 1 1 1 1 1 1 1 0 and this pattern repeats.

So, you can't tell anything about the date being sent
from the absolute levels.

Dana



  #16   Report Post  
Old July 7th 03, 09:12 PM
R C
 
Posts: n/a
Default

Paul Keinanen wrote in message . ..
APRS is definitively AX.25, which is a version of the X.25 protocol,
which are all members of the HDLC protocol family. These protocols
are _synchronous_ protocols, thus, they do not contain any start or
stop bits. The AX.25 protocol sends 8 bit octets (bytes) packed
immediately side by side without any bits in between them forming a
multiple octet frame. The whole frame starts with on octet with the
"01111110" bit pattern (the flag pattern) and it also ends with the
same pattern (or a single flag is used as a _frame_ separators, if
multiple frames are sent at once). In order to avoid false flag
detection within the data part of the frame, the 0 bit is inserted
after five consecutive 1 bits.


Therein lies the problem I was having. I was looking at this as
another protocol layered on top of an asynchronous serial connection.

Thank you, it makes more sense now. Bitstuffing on a synchronous
serial
connection is trivial. Receiving is slightly less so, but not too
difficult.

I think I got the impression that bell 202 is asynchronous from some
of the commercial bell 202 modems I found on google; nearly all of
them say asynchronous. (Which, on reflection, is probably on the
computer-modem interface.)

Caller ID _does_ use an asynchronous wireline format, and also uses
Bell 202 signaling. Okay.. so it can go either way, and hdlc is
synchronous.

When you say that the APRS frame starts with a Mark and ends with a
Space, are you sure you are not seeing some effects of TxDelay, i.e.
the Tx is on but no data (or some preamble) is sent.


It does indeed appear to be some sort of runout to keep the squelch
from closing too quickly, but the of end packet flag occurs approx. 32
bits before.

Thanks,
R C
KG4MVB
(In any case, telemetry is not required to be AX.25 encapsulated, but
it's nice for interoperation)
  #17   Report Post  
Old July 7th 03, 09:12 PM
R C
 
Posts: n/a
Default

Paul Keinanen wrote in message . ..
APRS is definitively AX.25, which is a version of the X.25 protocol,
which are all members of the HDLC protocol family. These protocols
are _synchronous_ protocols, thus, they do not contain any start or
stop bits. The AX.25 protocol sends 8 bit octets (bytes) packed
immediately side by side without any bits in between them forming a
multiple octet frame. The whole frame starts with on octet with the
"01111110" bit pattern (the flag pattern) and it also ends with the
same pattern (or a single flag is used as a _frame_ separators, if
multiple frames are sent at once). In order to avoid false flag
detection within the data part of the frame, the 0 bit is inserted
after five consecutive 1 bits.


Therein lies the problem I was having. I was looking at this as
another protocol layered on top of an asynchronous serial connection.

Thank you, it makes more sense now. Bitstuffing on a synchronous
serial
connection is trivial. Receiving is slightly less so, but not too
difficult.

I think I got the impression that bell 202 is asynchronous from some
of the commercial bell 202 modems I found on google; nearly all of
them say asynchronous. (Which, on reflection, is probably on the
computer-modem interface.)

Caller ID _does_ use an asynchronous wireline format, and also uses
Bell 202 signaling. Okay.. so it can go either way, and hdlc is
synchronous.

When you say that the APRS frame starts with a Mark and ends with a
Space, are you sure you are not seeing some effects of TxDelay, i.e.
the Tx is on but no data (or some preamble) is sent.


It does indeed appear to be some sort of runout to keep the squelch
from closing too quickly, but the of end packet flag occurs approx. 32
bits before.

Thanks,
R C
KG4MVB
(In any case, telemetry is not required to be AX.25 encapsulated, but
it's nice for interoperation)
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Info needed on "Taylor Modulation" from the 50's. Mike Baker Boatanchors 3 January 10th 06 08:55 PM
Pye Modulation Meter on eBay EnTee Boatanchors 0 November 14th 03 03:58 PM
EBAY:MultiMatch MODULATION TRANSFORMER W3ATV Boatanchors 0 August 22nd 03 04:54 PM
for sale: UTC, VM-4, 300watt vari-tap modulation transformer Ax9909 Boatanchors 0 August 3rd 03 12:06 AM
BIG MODULATION TRANSFORMER Jim Moci Boatanchors 0 August 2nd 03 04:07 PM


All times are GMT +1. The time now is 01:34 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 RadioBanter.
The comments are property of their posters.
 

About Us

"It's about Radio"

 

Copyright © 2017