dbx full duplex User Manual

ZonePRO Full Duplex Network and Data Link Layer Specification
Author: Creation Date:
Revision: Last Edit Date:
Description:
1. Overview
This document outlines the Harman International data link and network layers for full duplex 232 or 485 point to point links .
2. Physical Layer (PHY)
This section defines the physical layer specification, including signaling, terminations, DC biasing, and ground isolation.
2.1. Encoding
Data is transmitted NRZ encoded, LSB first as is shown below:
John Lee January 7, 2004
Data Link and Network Layer specification for full duplex point-to-point communication
We refer to a logic 1 as a mark, a logic 0 as a space to conform with the RS-232 specification.
A stop bit is provided after each transmitted byte of data and is used for guarantee a falling edge on the next start bit. A stop condition is mark for one bit interval and will be present after each framing bit.
Bits 7 through 0 represent the transmitted data.
The falling edge of the start bit is used to sync the UART to the beginning of the transmitted byte.
2.2. Baud Rate
The following baud rates can be supported by the DriveRack RS-232 and RS-485 full duplex data link layers: 1200, 2400, 4800, 9600, 19200, 38400, 57600, and 115200.
2.3. Breaks and Line Faults
Breaks are considered a violation of the protocol and should force a resync if received.
2.4. Flags
Flags may be passed between the stations to mark layer events. A flag is a single byte sent between frames. The following flags are defined:
Flags
Flag Value Function ACK A5h Sent on positive receipt of a frame send via guaranteed
delivery.
NAK DAh Sent on negative receipt of a frame send via guaranteed
delivery.
Ping 8Ch Send by station if no activity is present. Used to detect loss of
link.
Resync Request FFh Send by a receiving station if it believes its out of sync with the
sending station.
Resync Acknowledgement F0h Send by a station after receiving a Resync Request flag.
Full Duplex Transport Layer Specification Page 1 of 5
2.5. Ping
To detect a loss of communication between host and DriveRack, each unit will issue a ping should no activity occur for a period of 2 seconds (smaller ping intervals are also acceptable). If no ping is received within 4 seconds, a resync should be issued.
2.6. Resync
To provide a mechanism to resync, either unit may issue a network resync. A resync is a stream of Resync Request flags.
On reception of a resync, the receiving station should respond with a continuous stream of at least 261 Resync Acknowledgement flags.
As soon as a station detects a received resync request flag or resync acknowledge flag it should stop transmission of resync request flags. Should a resync request be received during transmission of a resync request, the receiving station should respond by sending at least 261 acknowledgements.
2.7. Interface Startup
Each station should startup using the resync protocol as outlined in section 2.6.
2.8. Signaling
2.8.1. RS-232
Signaling for the RS-232 interface will comply with the RS-232E specification. The RS-232 specification is an unbalanced transmission format requiring a signal swing of impedance varying from 3k to 7k at the receiving device. The transmitting device must guarantee that it will provide from
tolerate open circuit voltages up to 25V. A mark is defined as a negative potential, a space as a positive potential.
±5V to ±15V at the receiver. The receiver must be able to
± 3V into an
2.8.2. RS-485
Signaling for the RS-485 interface will comply with the EIA-485 standard. EIA-485 (also called RS-485) is a balanced transmission format with two signals, B and A. Logic 1 will be represented by B-A > 100mV. Logic 0 will be represented by B-A < -100mV. Receivers will be less than 1 unit load as defined by the EIA-485 specification and will have at least 50mV of hysteresis to provide noise immunity.
2.9. Mechanical
2.9.1. RS-232
2.9.2. RS-485
2.10. Terminations and Biasing
2.10.1. RS-485
A 100 parallel termination will be provided at each transmitter and receiver. Biasing networks should also be provided at each receiver (termination resistor should be adjusted at the receiver to provide a 100 effective termination).
2.11. Ground Isolation Due to the DC offset that exists in NRZ encoded bitstreams, and the complexity involved in designing wettable transformers to operate over a fairly wide range of source/load impedances, ground isolation
Full Duplex Transport Layer Specification Page 2 of 5
will be performed optically for the RS-485 interface. Ground isolation for the RS-232 interface will also be performed optically due to the wide range of impedances presented by various transceivers.
3. Frame Wrapper
The Frame is wrapped with a frame start byte, frame count byte and 8 bit CRC checksum. The Frame Start Byte distinguishes the frame from the handshake flags. The frame count facilitates rejection of repeat frames that result from race conditions that result from a simultaneous timeout/ACKnowledge. Checksum ensures veracity of the frame contents.
3.1. Frame Formats
Two frame formats are provided to allow for minimal network overhead when needed while also providing maximal data integrity when desired.
3.1.1. Unacknowledged Frames – Datagrams
Unacknowledged frames, similar to UDP datagrams, are designed for in situations where reliable delivery is unnecessary and speed is most important.
The checksum at the end of the frame is the CCITT-8 CRC for the frame. The CRC should be calculated from all bytes in the frame, including the addresses, length and data bytes.
Datagram/Unreliable frame
Frame Start UBYTE 0x64 Frame Count UBYTE 0x00
VERSION UBYTE 0x01 LEN ULONG Length of entire packet (not including FS FC, CS) SRC UWORD/ULONG DEST UWORD/ULONG MSG_ID UWORD FLAGS UWORD (there is no guaranteed bit)
(Payload)
Checksum UBYTE CCITT-8
3.1.2. Acknowledged Frames
Acknowledged frames are designed for situations where reliable delivery of data is paramount. They require more overhead than unacknowledged frames because of the returned acknowledgement data. The format of an acknowledged frame is:
Destination is the destination address for the frame. This byte is provided to support the broadcast address and group addressing. The MSB of the destination address must be 0.
Source is the source address for the frame. The MSB of the source address must be 1 for acknowledged frames.
The count byte will be incremented by the sending device after each successfully transmitted frame. The count byte is used to guarantee a single frame transmitted multiple times due to a lost acknowledgement does not appear as multiple frames. A count byte of zero is not allowed.
The Length byte is used to indicate the number of data bytes to follow. A frame length of 0 indicates that the frame contains 256 bytes of data.
The checksum at the end of the frame is the CCITT-8 CRC for the frame. The CRC should be calculated from all bytes in the frame, including the addresses, length and data bytes. If the CRC matches the CRC calculated for the received frame, the receiving station should respond by sending an ACK flag as soon as is possible. If the CRC does not match the calculated CRC for
Full Duplex Transport Layer Specification Page 3 of 5
the received frame or if the receiving stations receive queue is full, the station should respond with a NAK flag as NAKs are used for flow control. The sending station should not flag a fault if NAKs are repeatedly received for the same frame. If no flag is received after a period of at least 250mSec, the transmitting station should perform a resync as described in section 2.5.
Guaranteed/Reliable frame
Frame Start UBYTE 0x64 Frame Count UBYTE 0x01 – 0xFF (not including zero)
VERSION UBYTE 0x01 LEN ULONG Length of entire packet (not including FS FC, CS) SRC UWORD/ULONG DEST UWORD/ULONG MSG_ID UWORD FLAGS UWORD (there is no guaranteed bit)
(Payload)
Checksum UWORD CCITT-8
Full Duplex Transport Layer Specification Page 4 of 5
CRC 8 bit calculation – 8 bit
Bcc(new char) = Network_CCITT_8_Table[(UCHAR)(bcc ^ (new_char))]
Network_CCITT_8_Table =
0x00,0x5E,0xBC,0xE2,0x61,0x3F,0xDD,0x83,0xC2,0x9C,0x7E,0x20,0xA3,0xFD,0x1F,0x41,
0x9D,0xC3,0x21,0x7F,0xFC,0xA2,0x40,0x1E,0x5F,0x01,0xE3,0xBD,0x3E,0x60,0x82,0xDC,
0x23,0x7D,0x9F,0xC1,0x42,0x1C,0xFE,0xA0,0xE1,0xBF,0x5D,0x03,0x80,0xDE,0x3C,0x62,
0xBE,0xE0,0x02,0x5C,0xDF,0x81,0x63,0x3D,0x7C,0x22,0xC0,0x9E,0x1D,0x43,0xA1,0xFF,
0x46,0x18,0xFA,0xA4,0x27,0x79,0x9B,0xC5,0x84,0xDA,0x38,0x66,0xE5,0xBB,0x59,0x07,
0xDB,0x85,0x67,0x39,0xBA,0xE4,0x06,0x58,0x19,0x47,0xA5,0xFB,0x78,0x26,0xC4,0x9A,
0x65,0x3B,0xD9,0x87,0x04,0x5A,0xB8,0xE6,0xA7,0xF9,0x1B,0x45,0xC6,0x98,0x7A,0x24,
0xF8,0xA6,0x44,0x1A,0x99,0xC7,0x25,0x7B,0x3A,0x64,0x86,0xD8,0x5B,0x05,0xE7,0xB9,
0x8C,0xD2,0x30,0x6E,0xED,0xB3,0x51,0x0F,0x4E,0x10,0xF2,0xAC,0x2F,0x71,0x93,0xCD,
0x11,0x4F,0xAD,0xF3,0x70,0x2E,0xCC,0x92,0xD3,0x8D,0x6F,0x31,0xB2,0xEC,0x0E,0x50,
0xAF,0xF1,0x13,0x4D,0xCE,0x90,0x72,0x2C,0x6D,0x33,0xD1,0x8F,0x0C,0x52,0xB0,0xEE,
0x32,0x6C,0x8E,0xD0,0x53,0x0D,0xEF,0xB1,0xF0,0xAE,0x4C,0x12,0x91,0xCF,0x2D,0x73,
0xCA,0x94,0x76,0x28,0xAB,0xF5,0x17,0x49,0x08,0x56,0xB4,0xEA,0x69,0x37,0xD5,0x8B,
0x57,0x09,0xEB,0xB5,0x36,0x68,0x8A,0xD4,0x95,0xCB,0x29,0x77,0xF4,0xAA,0x48,0x16,
0xE9,0xB7,0x55,0x0B,0x88,0xD6,0x34,0x6A,0x2B,0x75,0x97,0xC9,0x4A,0x14,0xF6,0xA8,
0x74,0x2A,0xC8,0x96,0x15,0x4B,0xA9,0xF7,0xB6,0xE8,0x0A,0x54,0xD7,0x89,0x6B,0x35,
Full Duplex Transport Layer Specification Page 5 of 5
Loading...