COMPUTER AND NETWORK
SYSTEM ADINISTRATION
CIS 5406-01
Summer 1999 - Lesson 14

Serial Devices

 
 
A. RS-232 standard
 
   0. Synchronous versus asynchronous serial devices
 
      - Sync: there is a reference signal (timing pulse)
		- bisync modems used in older SNA network, for example
 
      - Async: self-timing:
		- start "bit"
		- data bits (8 bits w/ no parity, 7 with parity that
			     can be even or odd)
		- stop "bits" (1, 1.5, 2)
      - Due to async overhead on a per-byte basis, it is actually
	slower than doing it synchronously.
 
   1. Intro
 
      - Electronic Industries Association (EIA) standard 
        > originally described standard for computer to modem connection
	> used for sync & async connections
        > has been extended to terminals, modems, printers, other computers
 
      - RS-232 consists of up to 25 wires
        > 2 are used for data tranmission
        > the others are control lines
 
      - the "standard" is not very standard 
        ("RS" = "recommended standard", after all :)
        > you will frequently refer to vendor's wiring diagrams
        > may be building cables if you are connecting
          equipment from several different vendors
 
   2. Important pin assignments (using DB25 connector)
	
      2 - transmit data
      3 - receive data
      4 - RTS (ready to send)
      5 - CTS (clear to send)
      6 - DSR (data set read)
      7 - signal ground
      8 - DCD (data carrier detect)
     20 - DTR (data terminal ready)
 
      - grounding
        > pin 1 is frame ground
        > if used, should make cable more resistant
          to electrical fluctuations
        > must be connected to the device frame
        > pin 7 is signal ground
        > this is the reference voltage from which the other
          signals measure their voltage
      - voltages
        > a pin is "asserted" when a voltage greater than
          + or - 3 volts is present 
        > data lines 
                < -3 volts is a binary one
                > +3 volts is a binary zero
        > control lines 
                < -3 volts is  off
                > +3 volts is  on
      - DTE and DCE
        > DTE - piece of equipment is a terminal device ("Data Terminal Equipment")
        > DCE - piece of equipment is a computer device ("Data Communications Equipment")
        > not always intuitively obvious
        > to determine whether a device is DTE or DCE              
          check the voltage on pins 2 and 3
        > the transmitter should always have a negative ("one")
          voltage even when idle
        > pin 2 negative - DTE    
        > pin 3 negative - DCE 
  
   3. minimum configuration
 
      - for some applications only 2, 3, and 7 are needed
      - a console vt100 terminal is an example
      - remaining signals can be "faked out" by looping
        the respective signals back to themselves (4 to 5, 6 to 20)
 
   4. carrier detection (DCD = Data Carrier Detect)
 
      - DCD is needed only if you are not sure if the device
        is connected (modem)
      - if DCD is expected this is called hard carrier detection
        > a console terminal can be counted on to stay connected
      - if DCD is not expected this is called soft carrier
        detection
        > you may (rarely!) have to tell UNIX not to expect DCD
      - "ttysoftcar -y tty..."
      
   5. Flow control
 
      - keeps one device from overflowing the other devices
        buffers
 
      - can a 9600 baud computer serial port outpace a local
        vt100 terminal?
        > not usually, so 2, 3, and 7 are still OK for console
          terminal
 
      - what about printers? modem? PPP or SLIP connections?
        > yes
 
      - the CTS and RTS signals are used to implement hardware
        flow control
 
      - without them you can implement software flow control
        using control special characters on the data lines
        (CTL-S and CTL-Q; aka XON and XOFF) -- potential problem:
	    using two data byte values for flow control
      
   6. example session between a modem and computer
 
      DEVICE    SIGNAL   meaning
      -----------------------------------------------------
      Computer  DTR+     I want to call out, are you ready?
      Modem     DSR+     I'm turned on. Go ahead and dial.
      Modem     DCD+     I've got your party!
      Computer  RTS+     Can I send data now?
      Modem     CTS+     Sure, go ahead.
      Computer  TxD...   Data sent out.
      Modem     ...RxD   Data received.
      Modem     CTS-     Hold on for a moment!
      Modem     CTS+     I'm OK again. Go ahead.
      ...
      ...                repeat transmission and handshaking
      ...
      Computer  DTR-     I'm done. Please hang up.
      Modem     DCD-     Whatever you say.
 
 
   7. null modem cables
 
      - used to connect two DCE or two DTE devices together     
	w/out requiring two modems in between
 
      - full null modem cable crosses:
 
                2 and 3
                4 and 5
                8 and 20
 
B. Types of connectors and other parts
 
   DB-25   
 
   DIN-8
 
   DB-9
 
   RJ-45
 
C. /etc/ttytab - BSD, SunOS
 
     upsilon:/etc/ttytab
   #
   # @(#)ttytab 1.6 89/12/18 SMI
   #
   # name  getty                           type            status  comments 
   #
   console "/usr/etc/getty std.9600"       vt100           on local secure
   ttya    "/usr/etc/getty std.9600"       unknown         off local secure
   ttyb    "/usr/etc/getty std.9600"       unknown         off local secure
   tty00   "/usr/etc/getty std.9600"       unknown         off local secure
 
 
   1. name field
 
   - device name
 
   2. getty
 
   - command to be executed (doesn't have to be getty - could be
     a uucp process, for instance)
 
   - /etc/gettytab file contains some common port configurations
     to use as paramters to getty (std.9600, for example)
 
   3. status field
 
   - on and off: specify whether init should execute the command given 
     in the second field
   - secure: in addition to on allows "root" to login on this line
   - if the console is not marked "secure," the system prompts for the 
     root password before coming up in single-user  mode
   - local: in addition to on indicates the modem control signals for 
     this line, such as Carrier Detect, will be ignored (soft mode)
 
   #
   #  Printcap file for upsilon (drives pclab)
   #
   pclab:lp=/dev/ttyb:sd=/usr/spool/pclab:br#9600:sb:sh:fs#06320:\
	    ^^^^^^^^^                     ^^^^^^^
        :lf=/usr/adm/lpd-errs:mc#1:mx#50:sc:tr=\f:if=/usr/pclab/pf:
 
 
   4. note that printer runs off of serial port b
      > no change in ttytab (terminal control)
      > baud rate and other serial configuration is specified in
        /etc/printcap
 
E. /etc/inittab - SysV, Linux
 
  1. inittab defines actions that occur at certain run levels
 
  c1:12345:respawn:/sbin/agetty 38400 tty1
  c2:12345:off:/sbin/agetty 38400 tty2
 
  - init reads inittab
       calls agetty for port tty1, agetty calls login
       does not call agetty for port tty2
 
F. Terminal control
 
   - a rich area
 
   - look at "man stty"; esp. the term "canonical" (authoritative)
 
   - "reset" (BSD), "stty sane" are useful; may need to use
     CONTROL-J (linefeed) to actually terminate the command string
     if the terminal is insane :)
 
G. Modems
 
   - modem = "modulator de-modulator"
 
   - another rich area; only touched on here
 
   - baud (transitions per second) != bps (bits per second)
 
   - present/near future: 56KB (x2 *vs* 56Flex), 33.6K bps, ISDN (128K bps, 
     ADSL [Asymmetric Digital Subscriber Line] (2-6 Mbps), 
     cable modems (2-10 Mbps)