Specifications

Document 12245 Rev. I Sheet 7 of 39
A message may also be rejected at a higher level, if something is wrong with the MESSAGE DATA itself (e.g.
illegal instruction code), but in this case an ACK response will still be sent, if requested. See the protocol
document for the equipment you are using to find out more about message data format.
1.7.2 Framing Synchronization
A unit not currently receiving a message is watching the message stream for an STX (02) byte. Upon
receiving that byte, the unit begins looking for the rest of the message.
If a byte value of 02 or 03 is received for the message count, or anywhere in the message data, the unit
assumes that it is the end of the message (if 03 is received), or the start of a new message (if 02 is received),
and rejects the original message.
The STX byte value (02) can legally appear as either an address or a checksum in a message. This has the
potential for causing mis-synchronization if a unit starts up in the middle of a message stream. But this is not
likely, for the following reasons.
A valid CHKSUM of 02 will be followed immediately by the ETX byte (03). Should a unit
erroneously interpret a checksum of 02 as being the STX byte of a new message, it will interpret
the ETX as the COUNT byte. Because a byte count of 3 is not valid (all messages must have at
least 6 bytes), the unit will abort receiving this message, and again start looking for an STX byte.
Should a unit erroneously interpret a valid address of 02 as being the STX byte, it will interpret
the following byte (Byte 4) as the COUNT, and attempt to receive the address, message data,
etc. from the bytes that follow. In this case, the ETX (03) in the actual message stream will
terminate this false message, and the interpreted address, checksum, or message content will
most likely be invalid; so the false message will be rejected.
If you wish to guarantee that all listening units are synchronized, send a string of three ETX (03) bytes. This
will terminate all units’ receive sequences, after which they will start looking for the STX (02) byte again.
1.7.3 Address
A means is provided on every unit to set its address. In any interface bus in which messages are received by
more than one unit, each unit should be assigned a unique address that is not equal to 00. (An address of 00
is used to send a command or control message to all units on the bus.)
1.8 Timing Issues
1.8.1 Inter-character spacing
There is no maximum specification on inter-character spacing in messages in either direction. Bytes in
messages to units may be spaced as far apart as you wish. However, be aware that if you are using a half-
duplex interface and a unit is ready to send an ACK response or reply, it will be watching the receive data
stream for an idle period in which to send its message.
Generally, there will be no spacing between characters in replies generated by units, but this is not
guaranteed.
1.8.2 Inter-message spacing
There is no requirement to provide any space between messages. However the following points should be
considered if message spacing becomes too short.
The receive data buffer of the unit may become full if too many messages are received at once. If this
happens, subsequent messages will be rejected until the receive buffer has room. The receive buffer size is
dependent upon the RAM available in a particular unit, so there is no global specification available on this.
When using a half duplex interface (such as RS-485), ACK responses or replies will be held until the line is
idle for a specified time (see next section). Therefore, an idle time should be provided for any message that
expects a response.