GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


archive:computers:arthayes
   =================================================================
                                COLUMNS
   =================================================================
   Host net 508, Node:508/4 Tel. int+55 421284
   Ignaat Simons
   Chopinlaan 3
   7333GA Apeldoorn Netherlands
                     HAYES modems and compatables.
   1. Introduction.
   In the world of modem freaks and slowly on in the industrial
   world, the HAYES modem is a defacto standard.
   The official standards like RS232c (USA) and V24/V28 (CCITT)
   describe the Physical part of a data circuit,  while the V25
   (CCITT)  describes the A(uto) C(call) U(unit) function.  The
   speeds and usage of the modems are laid down by the CCITT V-
   standards, mainly in the V21 till V36 books.
   Due  to  the different country and telephone  company  laws,
   modems  are  different and not compatable with  each  other,
   exept  modems of one vendor.  Some years ago,  it  was  very
   unwise to make a connection with two different modems,  even
   if  they  claimed to be according a V-xx norm.  Mostly  this
   was no problem, because a  data transport was mainly between
   two predefined points via a leased line or switched network.
   The  connection was buildup manual,  or made  automatic  via
   autocall function ACU (V25/RS232).
   The  HAYES-300 modem (I think this was the  start),  besides
   the  Physical  RS232/V24/V28  norm  did  specify  the  modem
   control  command level between modem and terminal via the AT
   leadin and the <silence>+++<silence> command to return  from
   a  data  state to the command state.  Also it describes  the
   handling  of  automatic speed detection.  This  command  set
   enables  operators and application programmers to buildup  a
   connection   via  normal  conversation.   As  it  could   be
   programmed,  the  connection  via  a  switched  network  was
   possible automatical via simple statements like "CALL John".
   The  original HAYES-300 was not using call  procedures  like
   108/1  or  108/2 (DTR circuit).  With the  HAYES-1200,  this
   command  set  was extended to cope with more than  one  line
   speed, the BELL 103 and BELL 212A. The last one more or less
   compatable with the CCITT V22 norm. Also the automatic speed
   selection in 'answering' mode was build in.  With the HAYES-
   2400,  the set was dramatically extended with three  speeds,
   BELL-103,  BELL-212A and the CCITT V22 and V22bis norms.  So
   handling also in 'answering' mode an automatic selection. As
   the  BELL-212A  and V22 uses a PSK (four-level  phase  shift
   keying)   and    V22bis  uses  QAM   (Quadrature   Amplitude
   Modulation)  technic,  which  were designed for  synchronous
   modems,  the HAYES-modem translates the asynchrone data into
   a  synchronous way by inserting and consequently removing  a
   STOP bit in periods where no character is send.  The  HAYES-
   1200  is  not compatible with the BELL-212A/V22  synchronous
   modems. The HAYES-2400 is also in this aspect compatible and
   serves  also the formal Half duplex  (RTS/CTS-handling).  As
   the  HAYES-1200  did serve only the CCITT  108/2  mode,  the
   HAYES-2400 supports also the 108/1 mode. Really you can say,
   the  HAYES-2400 is a complex intelligent unit.  Despite  the
   well written handbook of HAYES,  it is a hard job to make  a
   compatible  one.  From all modems (compatibles) I have seen,
   there are a few which come close to the HAYES,  the most are
   fare away.
   As  my  job  is Faultfinder (Support),  I  really  was  very
   pleased,  HAYES  did implement in the HAYES-2400,  a  really
   complete circuit test via the S16-register, even with remote
   commands,  so the fully V54 norm of CCITT.  As most Hobbyist
   but  even  profesionals  have  big  problems  with  reliable
   circuit connections,  and more the solvation of it,  a modem
   without this feature nowadays isn't worth the word MODEM  so
   certainly not the word HAYES.
   2. HAYES-clones.
   What  is  "compatible".  Really nothing if not exactly  said
   with WHAT.  "HAYES compatible" is to vaque.  "HAYES  command
   set compatible" is better. Most modems, so not all, are only
   compatible  with a "subset of HAYES command set".  But  also
   most  "hayes" modems have commands not existing with  hayes.
   Some  unlucky vendors did use commands or registers not used
   with hayes-1200 at that time,  but later used in the  HAYES-
   2400. (Bad Ques).
   The  best  I can say most of the better clones are  more  or
   less compatible upto HAYES-1200.
   As  I  don't know if besides HAYES-1200 and the  HAYES-2400,
   also a HAYES-300 exists,  I further only refer to this  two,
   from  which both I have the specifications.  In Europe a lot
   of  'hayes' modems with only the V21 and V23 speeds  exists,
   which are similar,  but absolute not connectable,  with  the
   BELL-103 and BELL-202 norm modems.
   As  most  application programs only use a small set  of  the
   HAYES-command set,  most clones will run with these packages
   such  that the user is pleased,  not to use his fingers  and
   ear  to  make a connection.  This if he has a user  friendly
   telephone  company (are there),  but mostly the results  are
   hopeless in peak  hours,  if there is a mismatch between the
   modem commands and the terminal commands.  I had a modem and
   a terminal program and on some day no nice CALL <my  mother>
   was  succesfully.  With finger and ear there was no problem.
   Reaction of the terminal was "BUSY". The real point was, the
   modem  did  not pickup in ATX2 mode the dial tone  from  the
   Telephone company,  so didn't start dialling.  As the  modem
   had not a speaker (for cheapness),  I could not use the ATM1
   command,  to follow the connection process.  The dial signal
   was  strong  enough,  but the frequency was a little  ouside
   (WHO's) specification.
   3. The HAYES set.
   With  this I hope,  without copying the whole 250  pages  of
   both   Hayes  handbooks,   to  give  enough  information  to
   understand the HAYES-set and the differences.
   Hayes propose to use as terminal program, the Hayes Smartcom
   II Version 2.1.
   3.1. The Physical DCE/DTE-lines.
   With DTE is meant the Data Terminal Equipment (Your terminal
   or   Host   computer)  and  with  DCE   the   Data   Circuit
   (termination)  Equipment  (all equipment between two  modems
   RS232 plugs). The HAYES-1200B is the 1200 type but as a card
   to be fitted into an IBM-PC. The same for HAYES-2400B.
   The pin assignments must be in  accordance to ISO 2110.
       Pin #  Circuit  Towards  Description         1200 2400
             EIA/CCITT
        1     AA 101   N/A      prot. ground          x    x
        7     AB 102   N/A      signal  ,,            x    x
        2     BA 103   DCE      transmit data         x    x
        3     BB 104   DTE      receive  data         x    x
        4     CA 105   DCE      request to send            x
        5     CB 106   DTE      clear to send         H    x
        6     CC 107   DTE      data set ready        R    x
        20       108.1 DCE      connect data set      x    x
        20    CD 108.2 DCE      data term. ready      x    x
        22    CE 125   DTE      ring indicator        x    x
        8     CF 109   DCE      data carrier detected x    x
        23    CI 112   DTE      select altern. rate        x
        12    CI       DTE      as previous (Bell212) x    x
        24    DA 113   DCE      TX-clock (DTE source)      x
        15    DB 114   DTE      TX-clock (synchr.)         x
        17    DD 115   DTE      RX-clock (synchr.)         x
   Remark: x means served by the modem.
           H means tied to +10 volt (True).
           R means tied to pin 8.
           Pin  20  (DTR)  can be simulated  in  the  1200  and
           1200B type with a dipswitch.
           Pin  6  and  8  can be forced to true  in  the  1200
           and 1200B type with a dipswitch.
   3.2. The telephone line.
   On  the telephone lin level some distinction can be made  on
   the  HAYES-2400,  between  jack type RJ12/RJ13  (multi  line
   jack) and the RJ11/RJ41S/RJ45S (single line jack).  The 1200
   only  supports  the RJ11  (single  line),  RJ12/RJ13  (multi
   line),  which  can be set by dipswitches.  This typically is
   different per country.  In the USA and some other countries,
   the  telephone  set remaines connected in  parallel  to  the
   modem. In other countries like the Netherlands the telephone
   set is switched of, as soon as the modem goes off-hook.
   3.3. The modulation frequencies and call setup phase tones.
   The  following  information is not exactly  the  HAYES-modem
   information,  but  a   hopefully readable extract  from  the
   CCITT-norms.  As I have not the Bell-norms, more or less the
   USA norms are deducted from other documents.
   The frequencies used with the different baudrates are:
   3.3.1. For the F(requency) S(hift) K(eying) methodes.
   These can be used as well as Synchrone.
       Norm             Send     Receive  Answ.   mode
                       '0'  '1'  '0' '1'  tone
       Bell-103(ORG)  1070 1270 2025 2225 1270   300 FD
       Bell-103(ANS)  2025 2225 1070 1270 2225   300 FD
       Bell-202(main) 2200 1200 2200 1200 2025  1200 HD
       Bell-202(back)  487  387  487  387   -  0-150 HD
       V21 (ORGinate) 1180  980 1850 1650  980   300 FD
       V21 (ANSwer)   1850 1650 1180  980 2100   300 FD
       V23-1 (main)   1700 1300 2100 1300 2100   600 HD
       V23-2 (main)   2100 1300 1700 1300 2100  1200 HD
       V23   (back)    450  390  450  390   -  0-150 HD
       Remark: '0'= "start bit" = "space"
               '1'= "stop bit"  = "mark"
               FD = Full Duplex, HD = Half Duplex.
   Important  is,  the modems use  filter technics to  seperate
   the transmit channel and receive channel. Some autoanswering
   modems also by filter technics decide in which mode they are
   called.
   3.3.2. Automatic answering sequence (V25).
   If  ringing  is received on the line,  the CE/CT125  circuit
   (pin  22) will be raised true.  If CD/108 circuit was  true,
   the modem goes OFF-HOOK.  If not the modem waits for a  true
   signal  on  CD/108 (pin 20),  before it goes  OFF-HOOK.  The
   modem remains after 'off hook',  for 1.8-2.5 sec. silent and
   then transmits the 2100 Hz.  answer tone during 2.6-4.0 sec.
   or till 100msec.  after a response from the calling station.
   At least now 75 msec.  silence is maintained. The 2100 Hz is
   intended   to  disable  network  echo  cancellers  or   echo
   suppressors and is reversed in phase every 425-475 msec. Now
   the  circuit CC/107 (pin 6) is set true to indicate  to  the
   terminal, a connection is ready. The calling modem reacts on
   the answer tone also by setting circuit CC/107 (pin 6) true.
   A  response  normally  as mentioned is the  frequency  of  a
   binary  '1'.  If the equipment of the telephone company does
   not  have  echo control devices,  the 2100 Hz  tone  may  be
   replaced  by  any other tone e.g.  directly the binary  '1'.
   Only  after this sequence (or in ommission of  it)  directly
   the  autospeed modems will determine the baudrate  norm.  In
   Europe,  with  its V23-splitbaud rate complexity,  there are
   Hayes  compatibles trying to select at the moment after  the
   answer  sequence to select:  V21,  V23  (viditel),  V22  and
   V22bis. This means actually a detection criteria for carrier
   frequencies  at  980/1180  (V21),  450/390  (V23)  and  1200
   V22(bis) modulated with 600 baud.  At the same time all kind
   of frequencies like 2100,  550, 1800 Hz. and busy tone, dial
   tones around 425 Hz. has to be ignored.
   3.3.3.   For  the  D(iferential)  P(hase)  S(hift)  K(eying)
   and the Q(uadrature) A(mplitude) M(odulation) methodes.
   These methodes are primarly for synchrone transmission,  but
   asynchrone is allowed  by inserting extra stop bits  between
   characters.
       Norm            Send Rec. Guard tone Mode       Methode
       V22      (ORG)  1200 2400    -       600/1200 FD  DPSK
       V22      (ANS)  2400 1200  1800(550) 600/1200 FD  DPSK
       V22(bis) (ORG)  1200 2400    -       1200/2400 FD QAM
       V22(bis) (ANS)  2400 1200  1800(550) 1200/2400 FD QAM
       Bell-212A (ORG) 1200 2400    -       1200 FD      DPSK
       Bell-212A (ANS) 2400 1200    -       1200 FD      DPSK
   The  guard  tone is only send in the high channel (2400  Hz.
   carrier,  so by the answering modem, but can be disabled per
   country.  The 550 guard tone is another  option.   Basically
   the  Bell-212 and the CCITT-V22 are the same.  But in detail
   there are differences.  Which, I don't know yet for sure, it
   may be the scrambled '0' instead '1's (see lateron).  But in
   the  HAYES-2400,  there is a command ATBn,  with  which  the
   BELL-212  (n=1) or V22 (n=0) is selected.  This only for the
   1200 baud FD mode.  The V22bis is fully compatible with  the
   V22  norm.  The  difference between V22 (600/1200 baud)  and
   V22bis  (1200/2400  baud)  is V22 works with  2  dibits  and
   V22bis with quadbits.  The way of working of PSK/QAM  modems
   is  to complex to explain here,  but it is important to know
   that a phase change of the modulated carrier of:
        0 degrees is equal to dibit 01
       90 degrees is equal to dibit 00
      180 degrees is equal to dibit 10
      270 degrees is equal to dibit 11
   These  first two bits in the V22bis quadbit  are  compatible
   with the dibits of V22,  to remain compatabilty for fallback
   mode.  The V22bis has another 4 levels of detection by means
   of a quadrature amplitude modulation technic.
   3.3.4. Automatic answering mode V22(bis).
   At calling time the sequence as described above with the FSK
   type  modem  is  valid for the V22(bis).  The  called  modem
   reacts instead or after the answer sequence with unscrambled
   binary '1's at 1200 bit/sec.  and well in the upper  channel
   (2400  Hz.  carrier).  This till it detects scrambled '0' or
   '1's in the lower channel (1200 Hz.  carrier).  The  calling
   modem  remains  silent  till  it  for   155  msec.   detects
   unscrambled  '1's  in  the upper  channel,  after  which  it
   remains  silent for 456 msec.  and then transmit unscrambled
   double dibits 00 and 11,  if in V22bis mode,  for 100  msec.
   followed  by  scrambled  binary '1's or if in  V22  mode  it
   transmits  direct  scrambled  binary  '1's  (*).   Here  the
   distinction 1200/2400 baud is made by the calling modem. The
   called modem reacts with scrambled '1's preceded,  if V22bis
   with  the unscrambled double dibit 00 and 11.  At the moment
   of detection of the double dibits,  the circuit CI/112  (pin
   12)  is set true (indicating 2400 baud).  In both cases  the
   scrambled  '1's are observed for 600 msec.  after which  the
   circuit  CF/109 (pin 8) is set true.  If V22 (1200) the data
   transfer is started under control of CA/104 (pin 3).  In the
   V22bis  mode (2400),  first scrambled binary '1's  are  send
   form both sides for 200 msec.  on 2400 bit/sec. mode. Noted,
   that  till  now all was transmitted on 1200  bit/sec.  After
   this  200  msec.  also  the V22bis mode is  ready  for  data
   transfer.
   I  know it is confusing,  but so it works.  To make it  more
   difficult,  the (*) mentioned in the text is true for V22bis
   and for V22 alternative A and B only. For V22 alternative C,
   for the '1's you have to read '0's.  As the V22 norm is very
   confusing on some aspects, one remark has to be made. In V22
   (not V22bis) 3 alternatives can be selected.  Alternative  A
   and B are compatible with V22bis, but alternative C not. The
   difference  is  the scrambled binary '0's stead '1's of  the
   calling modem.  So the real difference between  alternatives
   A/B  and C is,  that alternative C includes the  possibility
   for mode V, for anisochronenous data upto 300 bit/sec. Which
   manufacturer  tells me which alternative as mentioned in V22
   he serves. Or has this to do with the Bell-212 norm. Who can
   tell?  Has  this to do with the famous ATBn command  in  the
   HAYES-2400 modem? See above.
   Be  carefully  with  these  V22  and  Bell-212A  norms.   As
   explained  before only the 2400 baud (V22bis) is compatible.
   The 1200 sometimes works,  but sometimes not.  E.g. I had an
   USA RIXTON 212 modem, not corrected for the European market.
   Also  I  had a Dutch designed (DATAD) V22(bis) V23  and  V21
   modem and an English (PACE) for the same speeds.  The RIXTON
   works pretty most at the time with both the DATAD and   PACE
   modem. But sometimes it goes wrong and the Eurpeans connects
   at 2400, which is strange, but true. With an original HAYES-
   1200  (with no ATBn) command as the HAYES-2400  has,  nearly
   the same result. The two Europeans hardly are connectable at
   1200  baud to each other.  This has in my opinion to do with
   the  way  of speed selection.  We try to come  out  of  this
   struggle.
   3.4. Some advise on real physical level.
   If  you  are ggiing into communications with modems and  you
   have  no  Telecomfreak-friend close to you and you  want  no
   nervous  breakdown  in  the near future,  have  at  least  a
   "breakbox",  self made or from the shop. This to follow  the
   different DTE/DCE levels. If you want to log a HAYES session
   to evaluate the connection process or data exchange process,
   make from your old computer a "DATASCOPE".  (See Appendix  A
   for  some  suggestions).  An other advise is to  standardise
   your cable set.  As some manufactures make a mash of the V24
   or  RS232C pins,  you have not to follow  it.  On  telephone
   line  level it is handy to have in your surrounding a  scope
   or frequency counter.
   3.5. Connection of the terminal to the HAYES.
   The  Hayes modem has a minimum and a maximum baud  rate.  If
   you connect a terminal to the modem,  make sure you have the
   right pins connected in relation with the dipswitches.  Also
   if you have selected e.g.  108/2 mode, be sure your terminal
   program  support them.  It is possible to connect  only  the
   pins  2,3  and 7.  So in this case the DTR and the  DCD  are
   forced true.  In general I don't like this methode. With the
   Hayes-1200, RTS and CTS are not used, so only full duplex is
   possible. With Hayes-2400 you have to use these signals only
   if you use the Half Duplex mode (Synchrone mode).  Otherwise
   RTS (pin 4) is neglected and CTS (pin 5) is set true.
   So if you have connected the terminal properly,  at the time
   you give an 'A' or 'a',  the modem decides what the baudrate
   is  and  set  the terminal interface UART according  to  it.
   Hayes is very street forward.  This speed is maintained till
   after the <carriage return>, which always finishes a command
   line.  With  the next A from a new AT command  line,  a  new
   speed  can be defined.  There is one other  possibility.  In
   auto  answer mode or if a call is made,  the baudrate can be
   else as the speed in the last passed command mode.  This  on
   real  modem  level,  the baudrate detection selects  another
   speed.  The Hayes reacts with the connect code on this  last
   command  mode speed and than switches to the new  speed.  To
   give an example.  Suppose the terminalspeed is 2400 baud.  A
   dial is made towards a 1200 baud only modem.  The Hayes will
   start  the connect phase as described in 3.3.2.  but finally
   will get a connection on 1200 baud. So he will react towards
   the terminal with 2400 baud with 'CONNECT' or '1',  switches
   back  to  1200  baud,  which the  terminal  has  to  follow,
   otherwise  it result in a  terminal/modem mismatch.  Also  a
   <silence>+++<silence>  on  2400 baud will not  be  accepted.
   Only  1200  baud,  from  this  moment  on.  So  suppose  the
   established  call  at 1200 baud is broken.  The Hayes  will,
   after  the carrier disappear,  fall back into  command  mode
   still  in 1200 baud.  The terminal has to give an AT<string>
   on  2400 baud if it wants the original 2400 baud  connection
   again.
   3.6. The differences in the Hayes command set.
   Very  short a comparision between HAYES-1200 and  HAYES-2400
   modem will be given and only per command a short  functional
   recoqnition.  First however the Hayes command-input line. It
   starts with AT or at (no mix of UPPER/lower) and ends with a
   cariage  return  from now on indicated with <CR>.  The  only
   exeption  is the A/ command,  which needs  no  <CR>.  During
   commandline editing backspace (hex '08') is accepted. One or
   more  commands can be given after one leading AT.  The  max.
   length of the input string however is 40 char.
   Blanks can be inserted for more readability.
   Command. What does it. Hayes-1200 Hayes-2400 Return code
       AT       Attention         y          y          OK
       A/       Repeat last comm. y          y      depends
       A        Off hook (ANS)    y          y      none (data)
       Bn       1200 (V22/Bell)   -        n=0-1,1      OK
       Cn       TX off/on         n=0-1      -          OK
       D<modif> Dial              y          y     see modifier
       En       Echo off/on(comm) n=0-1    n=0-1,1      OK
       Fn       Echo off/on(data) n=0-1      -          OK
       Hn       Hook on/off/spec. n=0-2    n=0-1    none (data)
       In       prod.code/prom-cc n=0-1    n=0-2    info
       Ln       Speaker (L/M/H)   -        n=0-2,1      OK
       Mn       Speaker off/on    n=0-2    n=0-3,1      OK
       On       Online            only O   n=0-1    none (data)
       P        Set pulse dial    y          y          OK
       Qn       Result code Y/N   n=0-1    n=0-1,0      OK
       Sr=n     Set reg. r to n   r=0-16   r=0-27       OK
       Sr?      Display reg. r    r=0-16   r=0-27   contents r
       T        Set touch dial    y          y          OK
       Vn       Result code N/W   n=0-1    n=0-1,1      OK
       Xn       Dial process      n=0-1    n=0-4,4      OK
       Yn       Long disconn.     -        n=0-1,0      OK
       Zn       Reset             only Z   n=0-1        OK
       &Cn      DCD on/carrier    -        n=0-1,0      OK
       &Dn      DTR modes         -        n=0-3,0      OK
       &F       Load factory set  -          y          OK
       &Gn      Gaurd tone        -        n=0-2,0      OK
       &Jn      RJ-jack sel.      -        n=0-1,0      OK
       &Mn      Asynch./Synchr.   -        n=0-3,0      OK
       &Pn      Pulse ratio       -        n=0-1,0      OK
       &Rn      CTS mode          -        n=0-1,0      OK
       &Sn      DSR mode          -        n=0-1,0      OK
       &Tn      Test local/remote -        n=0-8        OK
       &V       Display conf/tel  -          y          OK
       &Wn      Write conf. MOS   -        n=0-1        OK
       &Xn      Line clock mode   -        n=0-2,0      Ok
       &Yn      Sel. default prof.-        n=0-1        OK
       &Zn      Store teleph. nr. -        n=0-3        OK
       Remark: n=0-2,1 means, n can be 0,1,2 and 1=default.
               If n=0 this may ommitted. (ATV0 equal to ATV).
               All numbers are in decimal (max.=255).
   Dial     What does   Hayes-1200 Hayes-2400
   Modifier it
       P        Pulse dial        y          y
       R        Reverse to ANSW   y          y
       Sn       Dial stored tel.  -        n=0-3
       T        Touch dial        y          y
       W        Wait 2e dialtone  -          y
       .        Pause             y          y
       !        Flash             -          y
       @        Wait for silence  -          y
       ;        Return to comm.   y          y
       The registers.
       Reg.  What does it.       Hayes-1200 Hayes-2400
       S0    Ring to answ.on     0-255      0-255,00
       S1    Ring count          0-255,00   0-255,00
       S2    Escape code         0-127,43   0-127,43 ASCII
       S3    Cariage return      0-127,13   0-127,13 ASCII
       S4    Line feed code      0-127,10   0-127,10 ASCII
       S5    Back space code     0-127,08   0-127,08 ASCII
       S6    Wait for dial tone  0-255,02   0-255,02 Sec.
       S7    Wait for carrier    1-30,30    1-30,30  Sec.
       S8    Pause time comma    0-255,02   0-255,02 Sec.
       S9    Carrier detect time 1-255,06   1-255,06 1/10 Sec.
       S10   Lost carrier time   1-255,07   1-255,14 1/10 Sec.
       S11   DTMF dialing speed  50-255,70  50-255,95 mSec.
       S12   Escape code guard   0-255,50   0-255,50 1/50 Sec.
       S13   UART status reg.    y          y
       S14   Option reg.         y          x'AA'
       S15   Flag reg.           y          y
       S16   Modem test          0-2,0      bit settings
       S17   res.                -          res.
       S18   Modem test time     -          1-255,00 Sec.
       S19   Res.                -          Res.
       S20   Res.                -          Res.
       S21   Bit mapped options  -          00
       S22   Bit mapped options  -          x'76'
       S23   Bit mapped options  -          07
       S24   Res.                -          Res.
       S25   Detect DTR change   -          0-255,05 1/100 Sec.
       S26   RTS to CTS delay    -          0-255,01 1/100 Sec.
       S27   Bit mapped options  -          x'40'
       Remark: 1-255,01 means, range 1 till 255, 01=default.
               All numbers are in decimal (max.=255).
               x'76' is hexadecimal.
       Return codes Hayes-1200 Hayes-2400
       Digit  Word
       0      OK       y          y
       1    CONNECT    y          y
       2     RING      y          y
       3   NO CARRIER  y          y
       4     ERROR     y          y
       5  CONNECT 1200 y          y
       6  NO DIALTONE  -          y
       7     BUSY      -          y
       8   NO ANSWER   -          y
       9   reserved    -          -
       10 CONNECT 2400 -          y
                                ========
   Appendix A.  Datascope.
   A  datascope  looks  to both the RXD and the TXD line  of  a
   V24/RS232C line.  So only follows what happens on the  line.
   There are very nice commercial packages as FELINE,  HP etc.,
   but  they are expensive and they use mostly a special POD to
   connect to the V24 line.  Most of them you have to preset on
   one speed and than to start the logging.
   If   you  have  an  old  computer  with  better  two   speed
   programmable UART or a SIO chip and you can program them  in
   Assembler/basic/pascal or C, you can make your one one.
   The   next  story  is  a  simplified  logunit  only  to  log
   datastreams   preceded  with  a  AT-string.   Most  of   the
   application programs works in terminal session as well
   filetransport in a half duplex mode. Or better, never the TX
   and RX line transports a character.  So basically in default
   you have to look to the TXD-line,  and look at 2400 baud for
   a  character x'41','06',  '78' or '01'.  At that moment  you
   know that probably the speed is 2400, 1200, 600 or 300 baud.
   You get on line speeds 600 and 1200 a framing error, because
   the  stop-bit is not detected.  Now depending  the  detected
   speed  you  have  to wait (time-out) till the  rest  of  the
   character  is passed,  then you have to change the speed  of
   your comm-port,  and await for the 'T',  If it is a 'T' than
   you  have  the  speed,  if  not wait on 2400  baud  for  the
   posibilities as described above.  The basic idee behind this
   is really simple.  If you listen with 2400 bit/sec to a  300
   bit/sec  send character,  the start bit is detected and will
   serve  for  the startbit and 7 bits char.  bits (so  7  zero
   bits).  The  eights char.  bit is formed of the LSB bit  and
   well 1/8 portion of it.  The second portion will be the stop
   bit.  So if on the line really is transmitted a 600  bit/sec
   char.,   the same is true with 1/4 portions. Furthermore you
   have to look to both the TXD and RXD line, if on one a char.
   is received.  If so you put this char. in its own buffer and
   in the other one a x'00'.  Lateron you can print it out, one
   line  from  buffer RXD,  one line from buffer TXD in Hex  or
   ASCII (or both) outfit.
   Go on on the same speed till you didn't receive for 30  sec.
   any  character  on  both  lines  and  start  again  with  AT
   synchronisation.  In fact the HAYES inside micro computer is
   doing  the  same.  Don't try to write the buffer to disk  at
   first instance,  because you need a DMA at least, but also 2
   buffers.  So buffer it in memory only.  You can try to write
   to disk in the silence just before the new AT string.
/data/webs/external/dokuwiki/data/pages/archive/computers/arthayes.txt · Last modified: 1999/10/13 05:08 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki