| The javax.comm 
              serial port classes assume the system has one or more ports following 
              the RS-232 (or EIA232) standard. The standard originated in the 
              1960s and dealt with a computer talking to a display terminal. This 
              explains some of the names describing the 9 pins for the DB9 connector 
              in Table 22.1. (See the references for a description of the less 
              common 25-pin DB25 connector.)  Serial ports send and receive one bit at a 
              time using a positive voltage (between 3 and 25V) to indicate a 
              0 bit and a negative voltage (between -3 to -25V) to indicate a 
              1 bit. The duration of a voltage depends inversely on the baud 
              rate.  An asynchronous serial protocol (not included 
              in the RS-232 standard) is required to determine how to decode the 
              bits into bytes. The standard protocol groups the bits into a standard 
              data unit (SDU) consisting typically of 7 data bits (for ASCII) 
              or 8 data bits. To indicate where a SDU begins, a start bit value 
              of value 0 is sent. To indicate the end of a SDU, the group ends 
              with one or two stop bits each of value 1. To combat noise 
              and bit errors, a parity bit is usually included. For even 
              parity the bit value is 1 if the number of one bit in the SDU is 
              even.  For odd parity the bit value is 1 if the number 
              of one bit is odd. So, depending on the protocol settings, the total 
              number of bits sent for an SDU can vary from 9 bits (7 data bits, 
              1 stop bit and no parity) up to 12 bits (8 data bits, 2 stop bits 
              and a parity bit.) The SerialPort 
              class provides a single method to set the baud rate, number of data 
              bits, number of stop bits, and the parity:  void 
              SetSerialPortParams (int baud, int dataBits, int stopBits, int parity) If a port does not support any of the values 
              passed in the parameters, the method will throw the UnsupportedCommOperationException.   The SerialPort class includes 
              a set of constants to use for these parameters such as  
              DATABITS_7DATABITS_8
 STOPBITS_1
 STOPBITS_2
 PARITY_NONE
 PARITY_EVEN
 PARITY_ODD
 The two devices connected via 
              the serial line need flow control settings to determine who 
              is sending and who is receiving and when to switch between the two 
              states. The XON/XOFF 
              and RTS/CTS 
              are the two primary protocols for this.  The 
              former is a software protocol while the latter is implemented in 
              hardware. The methods   
              void 
              setFlowControlMode (int protocol) int getFlowControlMode ()
 provide for setting 
              and getting the flow control mode. The protocol value sets both 
              input and output protocols with a bitwise AND of the constants in 
              the SerialPort class:  
              FLOWCONTROL_NONEFLOWCONTROL_XONXOFF_IN
 FLOWCONTROL_XONXOFF_OUT
 FLOWCONTROL_RTSCTS_IN
 FLOWCONTROL_RTSCTS_OUT
 The set method 
              will throw the UnsupportedCommOperationException 
              if the protocol value is invalid.
  
              
                 
                 
                  | Pin | Name | Abbr. | Direction | Function |   
                  | 1 | Carrier 
                      Detect | CD | In | Modem & destination modem 
                      connected |   
                  | 2 | Receive 
                      Data | RD | In | Data from modem |   
                  | 3 | Transmit 
                      Data | TD | Out | Data to modem |   
                  | 4 | Data Terminal 
                      Ready | DTR | Out | Computer ready to send & 
                      receive |   
                  | 6 | Data Set 
                      Ready | DSR | In | Modem ready to send  & receive |   
                  | 7 | Request 
                      to Send | RTS | Out | Computer waiting to send |   
                  | 8 | Clear to 
                      Send | CTS | In | Modem ready to receive |   
                  | 9 | Ring Indicator | RI | In | Modem says phone is ringing |  Table:  Pin assignments 
              for the DB9 serial connector on a computer. The pin functions 
              are for the case of a computer connected to a modem.
 The table shows the pin assignments for an RS-232 9-pin connector 
              on a computer. The Function column indicates the purpose 
              of each pin for the case of a computer connected to a modem. The 
              serial line sends and receives only one bit at a time but it uses 
              separate lines for transmission and reception and it uses six other 
              lines (not counting the ground line) for setting up the protocol 
              for the communications.
 Serial 
              Line Connections The javax.comm class CommPort provides methods 
              to access the six control lines. For the two output control wires, 
              DTR and RTS, there are methods both to set the line and to find 
              the current setting:  
              void setDTR 
                (boolean val)boolean isDTR ()
 void setRTS (Boolean val)
 boolean isRTS ()
 For the other four input control lines, there 
              are  methods to find their current state: 
              boolean isCTS 
                ()boolean isDSR ()
 boolean isRI ()
 boolean isCD ()
 For connecting 
              to devices other than modems, it is often unnecessary to use all 
              of these  control lines. In the serial 
              line demonstration program below, for example, we only the CTS 
              and RTS 
              (plus the ground line) lines are active.   
               Note: When you 
              start to setup serial lines, you will find that the cables and connectors 
              vary according to whether you connect a computer to a device like 
              a modem or connect a computer to another computer or a device to 
              another device. 
 Table 22.1 
              shows the pins for the connector at the computer. There is a one 
              to one correspondence in the numbering of the pins on the computer's 
              male connector and the modem's female connector. That is, pin 2 
              on the computer connects to receptor number 2 on the modem's connector, 
              pin 3 connects to receptor 3 on the modem, and so forth. This obviously 
              cannot hold for connecting two computers that both have male connectors 
              as in Table 22.1. Instead a so-called null modem cable is 
              required. It connects pin 2 (RD) on computer A to pin 3 (TD) on 
              computer B, connects pin 3 (TD) on computer A to pin 2 (TD), and 
              so forth.
 
 See Ref. Strangio for explanations of the different types of connectors 
              and cables.
 
 
 References and Web Resources
              
               Latest update: Dec. 13, 2004 |