4、链路层
在RS-232标准中,字符是以一系列位元来一个接一个的传输。最长用的编码格式是异步起停asynchronous start-stop格式,它使用一个起始位后面紧跟7或8 个数据比特,这个可能是奇偶位,然后是两个停止位。所以发送一个字符需要10比特,带来的一个好的效果是使全部的传输速率,发送信号的速率以10分划。
串行通信在软件设置里需要做多项设置,最常见的设置包括波特率、奇偶校验和停止位。 波特率是指从一设备发到另一设备的波特率,即每秒钟多少比特bits per second (bit/s)。典型的波特率是300、1200、2400、9600、19200等bit/s。一般通信两端设备都要设为相同的波特率,但有些设备也可以设置为自动检测波特率。
奇偶校验Parity是用来验证数据的正确性。奇偶校验一般不用,如果使用,那么既可以做奇校验也可以做偶校验。奇偶校验是通过修改每一发送字节(也可以限制发送的字节)来工作的。如果不作奇偶校验,那么数据是不会被改变的。在偶校验中,因为奇偶校验位会被相应的置1或0(一般是最高位或最低位),所以数据会被改变以使得所有传送的数位(含字符的各数位和校验位)中“1”的个数为偶数;在奇校验中,所有传送的数位(含字符的各数位和校验位)中“1”的个数为奇数。奇偶校验可以用于接受方检查传输是否发送生错误——如果某一字节中“1”的个数发生了错误,那么这个字节在传输中一定有错误发生。如果奇偶校验是正确的,那么要么没有发生错误要么发生了偶数个的错误。
停止位是在每个字节传输之后发送的,它用来帮助接受信号方硬件重同步。
在串行通信软件设置中D/P/S是常规的符号表示。8/N/1(非常普遍)表明8bit数据,没有奇偶校验,1bit停止位。数据位可以设置为7、8或者9,奇偶校验位可以设置为无(N)、奇(O)或者偶(E),奇偶校验位可以使用数据中的比特位,所以8/E/1就表示一共8位数据位,其中一位用来做奇偶校验位。停止位可以是1、1.5或者2位的(1.5是用在波特率为60wpm的电传打字机上的)。
5、传输控制
当需要发送握手信号或数据完整性检测时需要制定其他设置。公用的组合有RTS/CTS,DTR/DSR或者XON/XOFF(实际中不使用连接器管脚而在数据流内插入特殊字符)。
接受方把XON/XOFF信号发给发送方来控制发送方何时发送数据,这些信号是与发送数据的传输方向相反的。XON信号告诉发送方接受方准备好接受更多的数据,XOFF信号告诉发送方停止发送数据直到知道接受方再次准备好。XON/XOFF一般不赞成使用,推荐用RTS/CTS控制流来代替它们。
XON/XOFF是一种工作在终端间的带内方法,但是必须两端都支持这个协议,而且在突然启动的时候会有混淆的可能。
XON/XOFF可以工作于3线的接口。RTS/CTS最初是设计为电传打字机和调制解调器半双工协作通信的,每次它只能一方调制解调器发送数据。终端必须发送请求发送信号然后等到调制解调器回应清除发送信号。尽管RTS/CTS是通过硬件达到握手,但它有自己的优势。
6、RS-232标准的不足
经过许多年来RS-232 器件以及通信技术的改进,RS-232 的通信距离已经大大增加。由于RS-232 接口标准出现较早,难免有不足之处,主要有以下四点:
(1) 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL 电平不兼容故需使用电平转换电路方能与TTL 电路连接。
(2) 传输速率较低,在异步传输时,波特率为20Kbps。现在由于采用新的UART 芯片16C550 等,波特率达到115.2Kbps。
(3) 接口使用一根信号线和一根信号返回线而构成共地的传输形式, 这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
(4) 传输距离有限,最大传输距离标准值为50 米,实际上也只能用在15米左右。
二、RS485基础知识针对RS-232串口标准的局限性,人们又提出了RS-422,RS-485接口标准。RS-485/422采用平衡发送和差分接收方式实现通信:发送端将串行口的TTL电平信号转换成差分信号A、B两路输出,经过线缆传输之后在接收端将差分信号还原成TTL电平信号。由于传输线通常使用双绞线,又是差分传输,所以又极强的抗共模干扰的能力,总线收发器灵敏度很高,可以检测到低至200mV电压。故传输信号在千米之外都是可以恢复。
1、RS-485 的电气特性
驱动器能输出±7V的共模电压
接收器的输入电阻RIN≥12kΩ
输入端的电容≤50pF
在节点数为32个,配置了120Ω的终端电阻的情况下,驱动器至少还能输出电压1.5V(终端电阻的大小与所用双绞线的参数有关)
发送端:逻辑"1"以两线间的电压差为 (2 至6) V 表示;逻辑"0"以两线间的电压差为-(2 至6)V 表示。
接收器的输入灵敏度为200mV(即(V )-(V-)≥0.2V,表示信号"0";(V )-(V-)≤-0.2V,表示信号"1")
2、传输速率与传输距离
RS-485 的数据最高传输速率为10Mbps,最大的通信距离约为1219M,传输速率与传输距离成反比,在10Kb/S的传输速率下,才可以达到最大的通信距离。
但是由于RS-485 常常要与PC 机的RS-232口通信,所以实际上一般最高115.2Kbps。又由于太高的速率会使RS-485 传输距离减小,所以往往为9600bps 左右或以下。
3、网络拓扑
RS-485 接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。RS-485采用半双工工作方式,支持多点数据通信。
RS-485总线网络拓扑一般采用终端匹配的总线型结构。即采用一条总线将各个节点串接起来,不支持环形或星型网络。如果需要使用星型结构,就必须使用485中继器或者485集线器才可以。RS-485/422总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。
4、连接器
RS-485 的国际标准并没有规定RS485 的接口连接器标准、所以采用接线端子或者DB-9、DB-25 等连接器都可以。
三、RS422基础知识RS-422 的电气性能与RS-485近似一样。主要的区别在于:
(1)RS-485 有2 根信号线:发送和接收都是A 和B。由于RS-485 的收与发是共用两根线,所以不能够同时收和发(半双工)。
(2)RS-422 有4 根信号线:两根发送(Y、Z)、两根接收(A、B)。由于RS-422 的收与发是分开的,所以可以同时收和发(全双工)。
(3)支持多机通信的RS-422将Y-A 短接作为RS-485 的A、将RS-422 的Z-B 短接作为RS-485 的B可以这样简单转换为RS-485。
很多人往往都误认为RS-422串行接口是RS-485串行接口的全双工版本,实际上,它们在电器特性上存在着不少差异,共模电压范围和接收器输入电阻不同使得该两个标准适用于不同的应用领域。RS-485串行接口的驱动器可用于RS-422串行接口的应用中,因为RS-485串行接口满足所有的RS-422串行接口性能参数,反之则不能成立。对于RS-485串行接口的驱动器,共模电压的输出范围是-7V和 12V之间;对于RS-422串行接口的驱动器,该项性能指标仅有±7V。RS-422串行接口接收器的最小输入电阻是4KΩ;而RS-485串行接口接收器的最小输入电阻则是12KΩ。
串口与握手基础知识一、串口基础知识