UART从接收数据线上接收一个字符数据到处理机中的过程如下:
  (1)UART通过接收移位寄存器从接收数据线上接收一帧字符数据,需要通过逐位移位把串行数据移入移位寄存器。
  (2)去掉起始位和停止位,把有效数据送入接收数据寄存器。同时把状态/控制寄存器中的接收数据寄存器已满标志置位。
  (3)当接收移位寄存器中的字符数据送到接收数据寄存器之后,接收移位寄存器又可以从接收数据线上串行接收下一帧字符数据了。
  (4)处理机从输入输出总线读取状态/控制寄存器中信息,并检查接收数据寄存器已满标志。如果接收数据寄存器没有满,处理机等待;如果已满,处理机通过输入输出总线读取接收数据寄存器中的字符数据。处理机在读取接收数据寄存器之后,把状态/控制寄存器中的接收数据寄存器已满标志清除,
  与发送过程相同,接收过程也采用了双缓冲结构。在接收移位寄存器从接收数据线上串行接收一帧字符数据的同时,处理机可以从接收数据寄存器中读入上一个输入的字符数据,即UART从接收数据线上接收字符数据与处理机从接收数据寄存器中读入字符数据可以同时进行。
  UART在接收数据的过程中要检查是否出错,如果有错,要把出错信息写入状态/控制寄存器。出错类型主要有:奇偶校验错、字符格式错和超载错等。奇偶校验错是指对接收到的数据进行校验时得到的校验位与接收到的校验位不相同。字符格式错是指应该出现停止位,但实际上没有出现。超载错是指接收移位寄存器已经装满了数据,但是,接收数据寄存器中存放的上一个输入数据还没有被处理机取走,这时可能造成数据丢失。
  串行接口的标准主要有RS-232C、RS-422、RS-423等几种。
  RS-232C接口规定"1"信号为-5伏~-15伏,"0"信号为+5伏~+15伏,在主机上采用25芯或9芯插头,而外部设备与主机的连接线采用25芯或9芯插座,串行接口与设备之间的连接线如图6.21所示。
图 6.21 串行接口与设备之间的连接线

  串行接口的工作速度通常用波特率(baud rate)表示,波特率定义为每秒钟传送多少个二进制位(包括起始位和停止位)。例如,一个工作速度为每秒36K的调制解调器(modem),采用异步串行方式传送数据,每帧有1个起始位、1个停止位和8个数据位,则这个调制解调器每秒钟能够传送3 600个字符。如果采用半双工方式工作(只用一条数据线分时接收或发送数据),每秒钟接收和发送数据的总和为3 600个字符;如果采用全双工方式工作(有独立的发送数据线和接收数据线,而且可以同时发送和接收),每秒钟可以同时发送和接收3 600个字符。

  应当特别注意:串行接口与并行接口所使用的插头、插座方向正好相反。例如,在主机上看到的25芯插座,必然是并行接口,而25芯或9芯插头,必然是串行接口。如果要把外部设备连接到处理机上,并行接口必须用25芯插头,而串行接口必须用25芯或9芯插座。