CS452 - Real-Time Programming - Spring 2008

Lecture 21 - Serial Server

Questions & Comment

  1. 16550 UART

Serial Server

Policy issues

  1. One or two servers?
  2. How should screen echo be handled?
  3. How should the buffers in the UART be handled?
  4. Who will initialize the hardware?
  5. What traffic do I expect through the server?
  6. Should the be I/O units above the single character level?

As a general policy we would like to concentrate the hardware dependence




  1. transmit
  2. receive
  3. ground



  1. DSR - terminal to computer, `I'm ready to communicate.'
  2. DTR - computer to terminal, `I'm ready to communicate.'
  3. CTS - terminal to computer, `I'm ready to receive a byte.'
  4. RTS -computer to terminal, 'I'm ready to receive a byte.'



Four interrupts

  1. Transmit buffer empty
  2. Receive buffer not empty
  3. Line status changed
  4. Modem status changed

Twelve registers.

Accessing the registers


int Get( int port );

int Put( int port, int c );

Both are Sends to a serial server


More than one Notifier

One (or more?) server(s)

What about guards?

Return to: