串口通信基础

来源:互联网 发布:python mean 编辑:程序博客网 时间:2024/05/01 06:30

RS-232串行接口  

   RS-232串行接口起初仅是用于IBM-PC中支持调制解调器与打印机的连接,迄今已广泛应用于支持不同的外部设备和PC之间的通信,它已被定义为一种在低速率(最高为20kbps)串行通信中增大通信距离的单端标准。多年以来,该项标准一直在修订,以适应速度更快驱动器的需求,比如MAX3225,其数据率高达1Mbps。为适应RS-232串行接口的标准,像MAX3225这种收发器必需满足表1所列的主要电器性能参数。

   典型的RS-232串行接口信号在正负电平之间波动。虽然RS-232串行接口的数据是反相的,但从晶体管-晶体管逻辑电路(TTL)电平至RS-232电平再返回到TTL电平的转换过程又恢复了初始的极性。典型的RS-232串行接口传送距离不会超过100英尺,原因是:发送电平(±5V)和接收电平(±3V)之差仅允许2V的共模抑制:电缆上的分布电容由于超过了规定的负载(2500pF),从而降低了摆率。

   因为RS-232串行接口的设计为点至点,并不是多点接口,其驱动器额定负载为单个3~7KΩ。假如需要的话,采用菊花链原理则可实现多点连接

   在菊花链配置中,RS-232串行接口信号先进入一个接收器,再送至一个发送器中驱动下一个单元。对该种技术而言,电缆的断裂是一个主要问题。如发生在从机1和从机2之间的断裂将使得所有后续设备无法发送和接收数据。利用预缓冲或增强RS-232串行接口的输出驱动能力(让其能驱动多个并行的5KΩ输入负载)、或切换输入负载亦可实现多点RS-232通信,此外,将RS-232串行接口的收信机(RX)和发信机(TX)信号转换成RS-422串行接口信号同样可实现RS-232串行接口的多点通信。

RS-422/RS-485串行接口

  RS-422串行接口属于一个差分标准(参阅表2),允许传送更远的距离。RS-422串行接口的高输入电阻及其更强的驱动性能,允许总线上连接多个节点(如图2所示)。RS-422串行接口之另一好处是具有单独的发送和接收通道,故无需控制数据方向。装置之间任何所需的信号交换可按软件方式(XON/XOFF)或硬件方式(一对单独的双绞线)来实现。

 

   很多人往往都误认为RS-422串行接口是RS-485串行接口的全双工版本,实际上,它们在电器特性上存在着不少差异,共模电压范围和接收器输入电阻不同使得该两个标准适用于不同的应用领域。RS-485串行接口的驱动器可用于RS-422串行接口的应用中,因为RS-485串行接口满足所有的RS-422串行接口性能参数(参阅表3),反之则不能成立。对于RS-485串行接口的驱动器,共模电压的输出范围是-7V和+12V之间;对于RS-422串行接口的驱动器,该项性能指标仅有±7V。RS-422串行接口接收器的最小输入电阻是4KΩ;而RS-485串行接口接收器的最小输入电阻则是12KΩ。

   由于可减少布线成本并实现较长的传输距离,RS-485串行接口被广泛应用于汽车电子设备、销售点终端(POS)、工业控制、仪器仪表、局域网、蜂窝基站及电信领域,较高的输入电阻允许多个节点连至总线上。差分RS-485串行接口的传输信号在双绞线上极性相反,因在每根双绞线上的磁场相互抵消,从而将电磁干扰(EMI)减至最小。然而当信号在一根长电缆上传输或是具有颇高的数据速率时,电缆将会呈现传输线的特性。在此种情况下,必需按其特征阻抗进行终端匹配(图3中的100Ω电阻)。在RS-485串行接口系统实现的过程中,假如接收器同相输入(A)电平比接收器反相输入(B)电平高出200mV或更高,那么RS-485串行接口的接收器输出为“1”,假如B电平较A电平高出200mV或更高,那么RS-485串行接口的接收器输出为“0”。在一个半双工的RS-485串行接口网络中,主机的收发器给从机发送完一个信息后将总线置为三态,没有任何信号驱动总线,使A和B之间的电平差趋于0,此时接收器的输出状态无法确定。假如接收器的输出(Ro)为“0”的话,从机则将把其解释为一个新的启动位并且试图读取后续字节。由于永远不会有停止位,这便会产生出一个帧错误结果。不再会有设备请求总线,网络将陷于瘫痪状态。

   不同厂家的芯片对OV的差分电压输入会产生不同的Ro输出,批量生产过程中造成某些节点失效。可像图3那样对总线进行偏置来解决这个问题,将A和B信号单独上拉(用一个电阻将A上拉至5V,将B下拉至地),具体的电阻随电缆的电容变化而变化。典型值为1KΩ。偏置可确保在总线为三态时接收器的输出为“1”。或使用具有“失效保护”特性的MAX3080系列产品,为确保在OV的差分电压输入时Ro的输出为“1”,这些接收器器件的阀值电平被调整为-50mV。

转换器的构成

  在将RS-422串行接口转换成RS-485串行接口的电路中,通用的方法是接收机测试设备(RTS)信号控制总线的方向,RS-232串行接口中的信号控制着RS-485串行接口收发器的使能端。假如不对RS-485串行接口驱动器的输入端(DI)进行监视,便无法肯定在通用异步收发机(UART)发送缓冲器中一个字节已被发送出去。这就意味着在使用DE引脚切换总线方向之前必需考虑一个固定的延时或是主动地监视DI的输入。众多RS-232串行接口/RS-485串行接口转换器采用端口供电的方法,RS-485串行接口的电源从RS-422串行接口的RTS信号线上抽取(有时亦将RTS与CTS即DSR组合在一起使用)。因为从RS-422串行接口上获取的电源是有限的,当将使用端口供电的转换器用于100Ω终端匹配的RS-485串行接口网络中时,RS-485串行接口的输出电压会达不到标称值。不过,200mV的接收器阀值提供了颇为不错的裕度。在那些短距离、A-B线无终端匹配的系统中,这种技术是可以接受的,采用Maxim公司的MAX3162可实现RS-232串行接口与RS-485串行接口之间的转换。

原创粉丝点击