Handshaking:
A very important aspect of any communication system is the response back the slave unit or node offers as a response of a received message. The Super Stepper protocol takes this detail in consideration as well in what is called an Acknowledge Message. There are two types of Acknowledge message where both are very similar. Both types of acknowledge messages consist of 5 bytes.
Positive acknowledge is sent by a module with the corresponding address, after the entire message has been received and executed. Negative Acknowledge is sent by a module with the corresponding address, after a partial message is received but a time out has occurred. There is no message sent back if the message is sent to a non existing address module. Per example, if a Read RAM command is sent to SS-Address 6, but none of the modules in the chain have that address, silence will be observed in the SS transmit line.
Positive Acknowledge:
![]() |
The positive acknowledge message signifies a completely received and totally executed command. The most significant bit is a one (for positive). Then the framing error bit specifies whether any byte on the message was received with poor synchronization (a frame error occurs when the stop bit, which is supposed to be high level or a mark symbol, is sampled to be the opposite state). The least significant bits are the responding device address.
The next bytes sent are data bytes. The second byte transmitted, is reserved at this time. Data Hi contains the High Side of a word read from memory as with the Read from Memory commands. Data Lo contains the Low Side of a word read with the same memory read command. Finally a checksum is sent. The checksum is computed by adding all previous four bytes. Carry bits are ignored so the resulting 8 bit number is sent as the checksum.
Negative Acknowledge:
![]() |
The negative acknowledge message signifies an incompletely received and of course not executed command. The most significant bit is a zero (for negative). Then the framing error bit specifies whether any byte on the message was received with poor synchronization (a frame error occurs when the stop bit, which is supposed to be high level or a mark symbol, is sampled to be the opposite state). The least significant bits are the responding device address.
The next bytes sent are all zeroes. Finally a checksum is sent. The checksum is computed by adding all previous four bytes. Carry bits are ignored so the resulting 8 bit number is sent as the checksum.
A negative acknowledge occurs when a time out happens before all bytes are received or when than less than needed bytes are sent to the SS Module.
Time out is a security measure to ensure that the SS-Module does not stay on the unwanted mode of waiting forever for a command to arrive. If this measure were not in place, an incomplete command would be completed by the next arriving bytes, which most likely were sent as part of a second command. The execution then would be totally random, generating many errors and leaving the module in the same state as before since the remaining second message bytes would be sampled as a new incoming message who was never finalized.
The SS protocol requires all bytes to be sent 20 ms one from another. If more than 20 ms elapse within two bytes, the first bytes will be discarded and the new bytes will form a totally new message.
NOTE: This problem only exists on 8 bit communications as 9 bit communications always starts with an Address Header Byte. Still, more than 20 ms from one byte to the next is considered a time out and clears the transmission buffer.
Last Updated on Jan 10, 2008
Other Avayanic Web Sites