Skip to content

Point of sale: fast connect and V.29 FastPOS

Card terminals, vending machines and parking meters that dial their bank's host send only a few hundred bytes a call: a request, an answer, an acknowledgement. Most of a normal modem call's time goes on the start-up, not the data, so the terminals and their hosts use shorter start-ups of their own:

  • Fast connect cuts V.22's (1200 bit/s), Bell 212A's and V.22bis's (2400 bit/s) handshake from about 3 to 5 seconds to under 1.
  • V.29 FastPOS runs V.29, the 9600 bit/s fax modem, half duplex on a dial-up line: one side sends at a time, and each turn starts with V.29's short training.

Neither is an ITU Recommendation. Both are Hypercom's (now Verifone's) and became de facto standards; hosts vary in their timing. D-Modem follows what is published about them, chiefly Silicon Labs' AN93 (Appendix D, "EPOS applications"). Two D-Modems connect with each other with them; neither has been tried against a real terminal or host yet.

For the full technical description, see the technical details.

Fast connect

ATS49=1          fast connect (V.22, V.22bis, Bell 212A)
ATS49=3          the same, with HDLC flags in the handshake
ATS50=40         the answer tone's length, in 10 ms (0: 400 ms)

with the usual AT+MS=22, AT+MS=122 or AT+MS=212. Both ends need it. The answering modem sends a short answer tone, the calling modem answers it at once, and each starts the data 150 ms after it has heard 50 ms of the other. S49=3 sends HDLC flags in place of the scrambled ones that the handshake normally has, which some hosts want; D-Modem takes either from the far end.

Online after the answer
V.22, normal 5.6 s
V.22 or Bell 212A, fast connect 0.9 s
V.22bis, fast connect 1.4 s

(In simulation, two D-Modems, S92=0; the normal V.22 includes its 3.3 s answer tone.)

V.29 FastPOS

AT+MS=V29FP      (or AT+MS=229, AT+MS=V29FASTPOS)

Both ends need it. The calling modem sends a steady 980 Hz tone while it waits, the answering modem answers with a 2225 Hz tone (S50 sets its length), and both say CONNECT. Then whichever side's computer has data sends it, and the other listens; the turn passes when the data stops. AT+MS=V29FP,0,4800,7200 runs it at 7200 bit/s; V.29 has no way to agree a speed, so both ends need the same setting.

The data: SDLC frames

Payment terminals frame their data as SDLC (HDLC) frames: the host polls, the terminal answers. With D-Modem the computer at each end does this through V.80's synchronous access mode, which carries whole frames with their checksum:

AT\N0+ES=6,,8+ESA=0,0,0,,1

then <EM><flag> (bytes 19h B1h) to start the framed mode, and each frame's bytes followed by <EM><flag>. A whole transaction of six frames (the host's SNRM, the terminal's UA, a request and its answer, DISC and UA) takes, in simulation from the dial:

Transaction
V.22, normal 8.6 s
V.22, fast connect 3.9 s
V.29 FastPOS 3.5 s

Plain characters (AT\N0 without +ES) go through both as well, as the VISA II exchange of older terminals has them (the host's ENQ, the request, the host's ACK and answer, ACK, EOT):

VISA II transaction
V.22, normal 7.0 s
V.22, fast connect 2.3 s
V.29 FastPOS 2.9 s

For such short messages V.29's training at each turn costs more than its speed saves; FastPOS pays off on longer ones.

Not there yet

  • Hypercom's short training for V.29 FastPOS (each turn sends the full V.29 training, about 250 ms) and its fallback to V.22bis.
  • A fast connect caller with no answer tone at all (Silicon Labs' U80 bit 15), and the timings of particular hosts.