485/422作为常用的两种差分数据总线规范,很多人的认知只停留在485半双工、422全双工、UART协议等,有不少误区需要纠正。
首先来认识几个协会:
ANSI:ANSI是成立于1918年的非赢利性质的民间组织,全称为American National Standards Institute,代表美国国家标准协会。
TIA:TIA是一个全方位的服务性国家贸易组织,其成员包括为美国和世界各地提供通信和信息技术产品、系统和专业技术服务的900余家大小公司,全称为Telecommunications Industry Association,代表电信工业协会。
EIA:EIA是美国的一个电子工业制造商组织,成立于1924年,全称为Electronic Industries Association,代表美国电子工业协会。EIA颁布了许多与电信和计算机通信有关的标准,如232/422/485等。
EIA/TIA制定了一系列串行通信规范,最开始出现的时EIA/TIA-232规范,至少已经出到“-F”版本(-F版本于1997年发布),为了解决232传输距离短、抗干扰性能差的问题,之后出现了449和423规范,但是都被淘汰,已无人使用,再往后出现了422规范,至少出到了“-B”版本(-B版本发布于1994年),422相比232对抗干扰性能、数据传输速率有很大的提高,但是节点数目有限,抗共模干扰能力偏弱,所以又出现了485规范,A版本发布于1998年,485将节点数扩展到了32个。
很多人认为422就是全双工,485就是全双工,这是误解。
422规范中列出的拓扑结构中,是以全双工的形式体现,而且提到422总线包含一个发送器、N个接收器以及终端匹配电阻,可见422规范就是用于全双工场合。
485规范是对422的改进,规范中并没有定义拓扑结构必须是全双工还是半双工,实际上485是支持全双工,只是因为已经有了差分全双工形式(422),且大部分场合下满足要求,所以基本没有人会用到485全双工形式。
说道422/485总线,一般只会提到抗共模电压以及差分电压,很少关注单端对地的电压值,其实是一个比较容易忽略的点,特别是在应用TVS管做静电防护的场合。
(1)单端:|发送器开路|≤6.0V,|接收器|≤10.0V;
(2)差分:|发送器开路|≤10.0V,|带载100Ω|≥2.0V,|接收器|∈(200mV,10.0V),±200mV以内不做逻辑判断要求;
(3)共模:|发送器带载100Ω|≤3.0V,|接收器|≤7.0V。
(1)单端:|发送器开路|≤6.0V,-7.0V≤(|发送器| and |接收器|)≤12.0V;
(2)差分:|发送器开路|∈(1.5V,6.0V),|带载54Ω|∈(1.5V,5.0V),|接收器|∈(200mV,6.0V),±200mV以内不做逻辑判断要求;
(3)共模:|发送器带载54Ω|∈(-1.0V,3.0V),(|发送器| and |接收器|)∈(-7.0V,12.0V)。
(1)安装防静电二极管(TVS)时,422由于一般都是全双工形式,收发独立,发送器选择6.0V的TVS,接收器选择10.0V的TVS,而485由于一般都是半双工形式,按照接收器门限选择-7.0V/12.0V的TVS管(SM712),若接成全双工形式,发送器可以选择6.0V的TVS;
(2)关于差分幅值的问题,422/485规范都有带载幅值要求,实际上有些高速发送器的压差是达不到这个要求的,用较低的幅值换高速率,正常情况下都应该满足422大于2.0V,485大于1.5V的要求,注意这是在满负载的情况下测试;
(3)关于输入识别阈值,422/485都规定±200mV,此值是一个最大值,即芯片设计阈值只要在这个范围内就可以了,并不一定要完全保持一致,但是不能超出这个阈值,否则在某些极端条件下,可能会导致接收器无法正常识别;
(4)关于共模干扰,若收发两端不共地,考虑到可能存在的电势差,要求共模电压尽可能小,422要求3.0V以内,485要求-1.0V~3.0V之间,若明显偏高或偏低,需要考虑是否满足接收器的要求,接收器是否会损坏等情况。
422是一主多从式架构,节点的收发状态是确定的,不随时间而变化,因此只需要一个终端匹配电阻(注意终端的理解,数据传输方向固定,只能单向传输,只有一个终端),最多可带10个节点,即1发9收,而反方向9发1收在使用时需要特别注意,不用的发送器需要关闭使能,使之处于三态,避免总线冲突;
485是多主总线,有点类似CAN总线架构,接收器的阻抗相比422要大一些(422为4kΩ,485为12kΩ),最多带32个节点,节点收发状态不固定,可通过特定引脚实现收发切换,需要两个终端匹配电阻,同样,不发送数据的总线需要退出发送状态,避免总线冲突。