Actions

Difference between revisions of "ISO Data Link Layer"

From Zenitel Wiki

(Transmission Control Characters used)
 
(75 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The protocol is based on the '''ISO 1745''' standard using the ISO 1155 longitudinal parity. The protocol can be used with RS232 and RS422 point­to­point connection, but also with RS485 multidrop bus connection.  
+
{{A}}
 +
The protocol is based on the ISO 1745 standard using the ISO 1155 longitudinal parity. The protocol can be used with RS232 and RS422 point­to­point connection, but also with RS485 multidrop bus connection.  
  
The ISO Data Link layer procedure is based on the ISO1745 standard: Information processing ­ Basic mode control procedures for data communication systems. The standard includes the concept of having a Control Device, Master Device and Slave Device.
+
The '''ISO Data Link layer''' procedure is based on the ISO1745 standard: Information processing ­ Basic mode control procedures for data communication systems. The standard includes the concept of having a Control Device, Master Device and Slave Device.
  
 
The Control Device polls the devices, one at a time in an orderly fashion, inviting them to transmit messages. The devices that transmits a message becomes the Master Device. This device selects the destination device, which becomes the Slave Device, inviting it to receive an information message.  The Master Device sends the message and the Slave Device acknowledges the message.
 
The Control Device polls the devices, one at a time in an orderly fashion, inviting them to transmit messages. The devices that transmits a message becomes the Master Device. This device selects the destination device, which becomes the Slave Device, inviting it to receive an information message.  The Master Device sends the message and the Slave Device acknowledges the message.
Line 11: Line 12:
  
 
A complete message transmission sequence progress as follows:
 
A complete message transmission sequence progress as follows:
[[Image: ISO Data Link Layer Overview.jpg|left|400px|thumb|complete message transmission sequence]]
+
[[Image: ISO Data Link Layer Overview.jpg|left|500px|complete message transmission sequence]]
 +
<br />
 +
<br />
 +
<br />
 +
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
  
 +
== Transmission Control Characters used ==
  
=== Transmission Control Characters used ===
+
[[Image:ISO Data Link Layer_Overview_Transmission Control Characters used.jpg|right|250px|thumb|Transmission Control Characters]]
  
[[ISO Data Link Layer_Overview_Transmission Control Characters used.jpg|right|300px|thumb]]
+
The following control characters are used in the protocol:
 +
 
 +
The first 32 characters, ASCII 0 ­ 31 (0x00 ­ 0x1F) is not allowed in the payload of an message.
 +
 
 +
Note that the message’s Block Check Character can have any value, including the reserved transmission control characters! 
 +
 
 +
 
 +
=== STX - Start of text ===
 +
 
 +
STX is a transmission control character which precedes a text and which is used to terminate a heading.  STX is transmitted by the Master Device.
 +
 
 +
=== ETX - End of text ===
 +
 
 +
ETX is a transmission control character which terminates a text. ETX is only transmitted by the Master Device and calls for a reply from the Slave Device.  ETX is followed by a BCC, “block check character”.
 +
 
 +
=== EOT - End of Transmission ===
 +
 
 +
EOT is a transmission control character used to indicate the conclusion of the transmission of one text.  EOT may be transmitted by a Control, Master or Slave Device. The Control Device transmits EOT to anticipate the reception of a forward supervisory sequence. The Master Device in the system transmits EOT to relinquish its right to transmit in favor of the Control Device.
 +
 
 +
=== ENQ - Enquiry ===
 +
 
 +
ENQ is a transmission control character used as a request for a response from a remote device.  ENQ is transmitted by the Control Device during polling and by the Master Device during selecting.
 +
 
 +
=== ACK - Acknowledge ===
 +
 
 +
ACK is the transmission character transmitted by a receiver as an affirmative response to the sender.
 +
 
 +
=== NAK - Negative acknowledge ===
 +
 
 +
NAK is a transmission control character transmitted by a receiver as a negative response to the sender
 +
<br /><br /><br />
 +
 
 +
== '''Device Id''' ==
 +
 
 +
 
 +
The Device Id is an UINT1 value which is uinique within an exchange.
 +
 
 +
=== Selecting a device in another exchange (Routing)===
 +
 
 +
If the Master Device has a message to a device in another exchange, the Router is selected.  The Router has device id 204 (0xCC) and answers the enquiry, and receives the message, on behalf of the destination device. This means that each device has to know which AlphaCom module they belong to.
 +
 +
The Master Device has completed its transmission upon receipt of ACK from the Router. Acknowledgment / handshake between devices on different modules must be handled at the application layer.
 +
 
 +
=== Broadcast ===
 +
 
 +
The Master Device uses a broadcast id  when selecting for a broadcast message.  It is the responsibility of the Master Device to ACK the selecting supervisory by transmitting the positive acknowledge character ACK.
 +
<br /><br /><br />
 +
 
 +
== Polling ==
 +
 
 +
 
 +
Polling is the process of inviting devices, one at a time in an orderly fashion, to transmit messages. The basic function of polling is to prevent contention by ensuring that only one device transmits at a time.  The polling process can only be performed by a Control Device, following EOT.
 +
 
 +
When a device receives its appropriate polling supervisory sequence, it becomes the Master Device.
 +
 
 +
The format of the polling supervisory sequence is: [[Image:ISO Data Link Layer_Polling.jpg|right|400px|thumb]] <br /><Device Id> ENQ
 +
 
 +
Polling sequences are always preceded by EOT. <br /><br /><br />
 +
 
 +
--> Polling sequence where a device is invited to send a message. The device becomes the Master Device when it receive its appropriate polling supervisory.  In this example the device has no messages and sends the termination supervisory sequence EOT.<br /><br /><br /><br /><br /><br />
 +
 
 +
--> Polling sequence when the Master Device has a message to send.  The Master Device is allowed to send only one message pr. polling sequence. This means if a device has several messages to send it must wait until the next time it receives it’s appropriate polling supervisory.
 +
<br /><br /><br /><br /><br /><br /><br /><br /><br />
 +
 
 +
== Selecting ==
 +
 
 +
Selecting is the normal process for inviting one device to receive an information message. The selecting process can only be performed by a Master Device. The selecting supervisory sequence uniquely identifies the device by means of its Device Id.
 +
 
 +
[[Image: ISO Data Link Layer_Selecting1.jpg|right|1000px|thumb]]
 +
[[Image: ISO Data Link Layer_Selecting2.jpg|right|1000px|thumb]]
 +
 
 +
The device selection supervisory sequence calls for a status reply from the selected device.  If no response, or invalid response is received, the Master Device must take action to recover the communication.
 +
 
 +
== Messages ==
 +
 
 +
The information messages have the following format:
 +
'''<STX> <encoding type> <data……….> <ETX> <bcc>'''
 +
The sequence which constitutes the message is prefixed by the start of text (STX) character and is terminated only with the end of text (ETX) character.
 +
 
 +
* '''<encoding type>''' is a UINT1 value identifying the coding of the message.
 +
 
 +
:72 (0x48) (‘H’) = Standard AlphaCom Data Protocol message
 +
 
 +
::This format means that the rest of the message (data) is normally encoded as two Hexadecimal characters pr byte. The exception to this is if an 34 (0x22 = ASCII Double Quote) value is encountered. This means that the remaining part of the <data> is not encoded.  This makes it possible to have uncoded ASCII text in the messages.
 +
 +
:Normally it’s the link layers responsibility to encode/decode messages. 
 +
 
 +
* '''<data>''' is a network layer message data as delivered to the link layer, which is encoded according to <encoding type>.
 +
 
 +
* '''<bcc>''' is the Block Check Character as specified in ISO1155. This is the byte­wise exclusive­or of all bytes, including the <STX> and <ETX> character.
 +
 
 +
 
 +
[[Image:ISO Data Link Layer_Messages.jpg|left|1000px|thumb]]
 +
 
 +
=== Replies ===
 +
 
 +
If the information message was acceptable the Slave Device replies by transmitting the acknowledge character ACK. As for now the Master Device is allowed to send only one information message after becoming the Master Device. The Master Device therefore passes to the termination phase (sending EOT).
 +
 
 +
=== Broadcast Message ===
 +
 
 +
It is the responsibility of the Master Device to acknowledge the message by sending the positive acknowledge character ACK.
 +
 
 +
=== Termination ===
 +
 
 +
* When a device refuses the establishment of a data link, either because it has nothing to send (negative reply to polling), or because its unable to transmit (negative reply to polling), or because it is unable to receive (negative reply to selecting)
 +
 
 +
* When the Master Device has successfully transmitted data.  The Master Device then transmits the end of transmission character EOT, indicating to the Slave Device that the Master Device has no more data to send.  The Master Device thus relinquishes its right to transmit (unless it is also the Control Device).
 +
 
 +
* When an unusual situation arises where the master desires to stop the transmission in progress.  If a Master Device sends EOT at any time other than after a terminated transmission, the transmission in progress is said to be aborted.  A slave never sends EOT.  In all circumstances the sending of EOT by any of the devices terminates the transmission, this means returning the responsibility and the control of the communication to the Control Device.  This function is called ``Return to control’’.
 +
 
 +
== Recovery Procedures (Timers) ==
 +
 
 +
A number of recovery procedures are required to deal with various abnormal situations. After appropriate time-out periods it shall be the responsibility of either the Control Device or the Master Device (never of a Slave Device) to take action.
 +
 
 +
:*The Master Timer is set to 1 second and controls how long a Master Device may be active. The timer is only used by the Control Device.  The main purpose of this timer is to take care of the situation where the Master Device “dies” before returning control to the Control Device.  The Control Device transmits an EOT if the Master Timer times out.  This is done when the link is idle (no traffic) to regain control.
 +
 
 +
:*The ACK Timer is set to 100ms and specifies the time waiting for an ACK after sending an polling supervisory, inquiry supervisory or information message.  Maximum 1 retransmission.
 +
An information message is discarded if the Master Device, for some reason, is unable to send a message.
 +
 
 +
[[Category:Protocols]]

Latest revision as of 13:43, 7 September 2017

AlphaCom icon 300px.png

The protocol is based on the ISO 1745 standard using the ISO 1155 longitudinal parity. The protocol can be used with RS232 and RS422 point­to­point connection, but also with RS485 multidrop bus connection.

The ISO Data Link layer procedure is based on the ISO1745 standard: Information processing ­ Basic mode control procedures for data communication systems. The standard includes the concept of having a Control Device, Master Device and Slave Device.

The Control Device polls the devices, one at a time in an orderly fashion, inviting them to transmit messages. The devices that transmits a message becomes the Master Device. This device selects the destination device, which becomes the Slave Device, inviting it to receive an information message. The Master Device sends the message and the Slave Device acknowledges the message.

The AlphaCom module is always the Control Device.


Overview

A complete message transmission sequence progress as follows:

complete message transmission sequence


















Transmission Control Characters used

Transmission Control Characters

The following control characters are used in the protocol:

The first 32 characters, ASCII 0 ­ 31 (0x00 ­ 0x1F) is not allowed in the payload of an message.

Note that the message’s Block Check Character can have any value, including the reserved transmission control characters!


STX - Start of text

STX is a transmission control character which precedes a text and which is used to terminate a heading. STX is transmitted by the Master Device.

ETX - End of text

ETX is a transmission control character which terminates a text. ETX is only transmitted by the Master Device and calls for a reply from the Slave Device. ETX is followed by a BCC, “block check character”.

EOT - End of Transmission

EOT is a transmission control character used to indicate the conclusion of the transmission of one text. EOT may be transmitted by a Control, Master or Slave Device. The Control Device transmits EOT to anticipate the reception of a forward supervisory sequence. The Master Device in the system transmits EOT to relinquish its right to transmit in favor of the Control Device.

ENQ - Enquiry

ENQ is a transmission control character used as a request for a response from a remote device. ENQ is transmitted by the Control Device during polling and by the Master Device during selecting.

ACK - Acknowledge

ACK is the transmission character transmitted by a receiver as an affirmative response to the sender.

NAK - Negative acknowledge

NAK is a transmission control character transmitted by a receiver as a negative response to the sender


Device Id

The Device Id is an UINT1 value which is uinique within an exchange.

Selecting a device in another exchange (Routing)

If the Master Device has a message to a device in another exchange, the Router is selected. The Router has device id 204 (0xCC) and answers the enquiry, and receives the message, on behalf of the destination device. This means that each device has to know which AlphaCom module they belong to.

The Master Device has completed its transmission upon receipt of ACK from the Router. Acknowledgment / handshake between devices on different modules must be handled at the application layer.

Broadcast

The Master Device uses a broadcast id when selecting for a broadcast message. It is the responsibility of the Master Device to ACK the selecting supervisory by transmitting the positive acknowledge character ACK.


Polling

Polling is the process of inviting devices, one at a time in an orderly fashion, to transmit messages. The basic function of polling is to prevent contention by ensuring that only one device transmits at a time. The polling process can only be performed by a Control Device, following EOT.

When a device receives its appropriate polling supervisory sequence, it becomes the Master Device.

The format of the polling supervisory sequence is:

ISO Data Link Layer Polling.jpg


<Device Id> ENQ

Polling sequences are always preceded by EOT.


--> Polling sequence where a device is invited to send a message. The device becomes the Master Device when it receive its appropriate polling supervisory. In this example the device has no messages and sends the termination supervisory sequence EOT.





--> Polling sequence when the Master Device has a message to send. The Master Device is allowed to send only one message pr. polling sequence. This means if a device has several messages to send it must wait until the next time it receives it’s appropriate polling supervisory.








Selecting

Selecting is the normal process for inviting one device to receive an information message. The selecting process can only be performed by a Master Device. The selecting supervisory sequence uniquely identifies the device by means of its Device Id.

ISO Data Link Layer Selecting1.jpg
ISO Data Link Layer Selecting2.jpg

The device selection supervisory sequence calls for a status reply from the selected device. If no response, or invalid response is received, the Master Device must take action to recover the communication.

Messages

The information messages have the following format: <STX> <encoding type> <data……….> <ETX> <bcc> The sequence which constitutes the message is prefixed by the start of text (STX) character and is terminated only with the end of text (ETX) character.

  • <encoding type> is a UINT1 value identifying the coding of the message.
72 (0x48) (‘H’) = Standard AlphaCom Data Protocol message
This format means that the rest of the message (data) is normally encoded as two Hexadecimal characters pr byte. The exception to this is if an 34 (0x22 = ASCII Double Quote) value is encountered. This means that the remaining part of the is not encoded. This makes it possible to have uncoded ASCII text in the messages.
Normally it’s the link layers responsibility to encode/decode messages.
  • is a network layer message data as delivered to the link layer, which is encoded according to <encoding type>.
  • <bcc> is the Block Check Character as specified in ISO1155. This is the byte­wise exclusive­or of all bytes, including the <STX> and <ETX> character.


ISO Data Link Layer Messages.jpg

Replies

If the information message was acceptable the Slave Device replies by transmitting the acknowledge character ACK. As for now the Master Device is allowed to send only one information message after becoming the Master Device. The Master Device therefore passes to the termination phase (sending EOT).

Broadcast Message

It is the responsibility of the Master Device to acknowledge the message by sending the positive acknowledge character ACK.

Termination

  • When a device refuses the establishment of a data link, either because it has nothing to send (negative reply to polling), or because its unable to transmit (negative reply to polling), or because it is unable to receive (negative reply to selecting)
  • When the Master Device has successfully transmitted data. The Master Device then transmits the end of transmission character EOT, indicating to the Slave Device that the Master Device has no more data to send. The Master Device thus relinquishes its right to transmit (unless it is also the Control Device).
  • When an unusual situation arises where the master desires to stop the transmission in progress. If a Master Device sends EOT at any time other than after a terminated transmission, the transmission in progress is said to be aborted. A slave never sends EOT. In all circumstances the sending of EOT by any of the devices terminates the transmission, this means returning the responsibility and the control of the communication to the Control Device. This function is called ``Return to control’’.

Recovery Procedures (Timers)

A number of recovery procedures are required to deal with various abnormal situations. After appropriate time-out periods it shall be the responsibility of either the Control Device or the Master Device (never of a Slave Device) to take action.

  • The Master Timer is set to 1 second and controls how long a Master Device may be active. The timer is only used by the Control Device. The main purpose of this timer is to take care of the situation where the Master Device “dies” before returning control to the Control Device. The Control Device transmits an EOT if the Master Timer times out. This is done when the link is idle (no traffic) to regain control.
  • The ACK Timer is set to 100ms and specifies the time waiting for an ACK after sending an polling supervisory, inquiry supervisory or information message. Maximum 1 retransmission.

An information message is discarded if the Master Device, for some reason, is unable to send a message.