Embedded Modem Developer's Guide

Chapter 6 – Fax Class 1 and Class 1.0 Commands
Multi-Tech Systems, Inc. SocketModem MT5600SMI Developer’s Guide 88
<DLE><ETX> is ignored by the modem until the modem generates either the CONNECT, OK, or ERROR
result code.
If no more data is in the transmit buffer and the final bit was a 1 (bit 4 of the second byte received from
the DTE), the modem generates the OK result code and returns to the command mode. If the final bit was
a 0, the modem generates the CONNECT message and waits for further data from the DTE while
transmitting HDLC flags. If no more data is received before 5 seconds elapse, the modem drops carrier,
goes on-hook, and generates the ERROR result code.
Fax Control Reception
Fax control reception is initiated using the AT+FRH=<mod> command. After this command is issued, the
modem looks for carrier in the modulation scheme specified by the parameter n. If no carrier is detected
before the period of time specified by register S7 expires, the modem generates the NO CARRIER
message and returns to command mode.
If a carrier is detected that is not the one specified by the parameter n, the modem generates the
+FCERROR message and returns to the command mode. If the specified carrier is detected, the modem
generates the CONNECT message and enters the HDLC receive mode.
In HDLC receive mode, the modem receives HDLC frames from the remote fax machine, strips the flags,
performs zero-bit deletion, performs error checking, and handles <DLE><chr> character pairs before
passing the data to the DTE. The modem prefixes each <DLE> character with another <DLE> character
before sending it to the DTE. After the last byte in the frame, the modem sends <DLE><ETX> to the DTE
marking the end of the frame. The modem then generates either the OK message if no errors were
detected or the ERROR message if errors were detected (FCS is incorrect), and returns to command
mode.
While in command mode, the modem continues to receive data in the selected modulation scheme, and
sends the data after sending the CONNECT message to the DTE when the DTE reissues the +FRH
command with the same parameter. If the DTE issues the +FRH command with a different parameter, the
modem clears all buffers and proceeds as described previously.
If carrier is lost while in command mode and the DTE reissues the +FRH command with the same
parameter, and there is no data in the buffer, the modem sends the ERROR result code to the DTE and
returns to the command mode. If there is data in the buffer, the modem sends the next frame of buffered
data to the DTE, followed by <DLE><ETX>, and either the ERROR result code if errors were detected or
the OK result code if no errors were detected. The modem then returns to command mode.
The modem concludes an error is detected if carrier is lost for any period of time during or before the
reception of a frame. If carrier is lost for a time period longer than the time specified by the register S10,
the modem finishes delivering the data in the receive buffer (if any) to the DTE, sends <DLE><ETX>,
generates the ERROR message, and returns to command mode. All subsequent data received from the
remote is discarded.
If the modem detects a frame abort sequence (seven consecutive ones with no zero insertion) while it is
waiting for a frame beginning flag (it was receiving HDLC flags), it will wait for the HDLC flags again until
either carrier is lost or the DTE aborts the process by sending an abort character or by dropping DTR with
&D2 in effect. If the frame abort sequence is detected while the modem is receiving a frame it finishes
delivering the data in the receive buffer (if any) to the DTE, sends <DLE><ETX>, generates the ERROR
message, and returns to command mode. The modem keeps looking for HDLC flags followed by more
data from the remote, with the selected modulation scheme.
If the modem detects a receive buffer overflow condition, it concludes that there was an FCS error in that
frame. The modem will receive more frames only if a starting flag is detected and there is room in the
receive buffer. If a starting flag is detected and there is no room in the buffer, the modem discards all data
in that frame.
If the modem receives any character from the DTE after the +FRH command (except flow control
characters if software flow control is in effect), or if the modem detects a high-to-low transition of the DTR
signal while &D1 is in effect, it sends <DLE><ETX> to the DTE, generates OK result code, and returns to
command mode. The receive buffer is cleared and all data received from the remote is discarded. If the
modem detects a DTR drop while &D2 is in effect, it goes on-hook, sends <DLE><ETX> to the DTE,