VIP用户可直接下载附件pdf。非VIP用户欲看图文版pdf,请电邮14518918@qq.com。
1,成都昂特的低速误码仪的TD和RD端口是单端3.3V的TTL
Altera CPLD EPM570的3.3V IO口直驱的,被四川华丰烧坏过,必须换了主板还飞线了74HC125芯片做缓冲才算返修好。
注意,EPM570的I/O内部有专门的5V耐受二极管/钳位结构,即使VCCIO = 3.3V / 2.5V / 1.8V,外部直接输入5V也不会过压损坏。这就是为什么我们3.3V供电的CPLD芯片EPM570,对联5V供电的RS485芯片TPT75176H,也仍然没烧IO口的原因。
2,被测件的端口是差分5V的RS485
RS485是A和B差分端口,5V供电的TPT75176H的A/B口单端对地电压大概是1.0V和3.8V。
注意,虽然TPT75176H的datasheet表面最高支持10Mbps,但我们实测串口光模块跑40M都没有问题。豆包的解释是,从TPT75176H典型指标看,收发延时30/50ns,偏移<6ns和上升/下降沿<10ns,这类边沿速度物理带宽≈50~80Mbps+,所以标称10M只是 "降额设计"。
3,所以低速误码仪需要一个单端TTL转差分RS485电路
不重新画板子的解决方案,就是用淘宝采购的现成的电路模块,链接:
它板载最高2M码率的JMS485芯片,买回来之后,需要先自行更换成相同封装SOP8且支持更高码率的RS485芯片,然后确定好芯片的DE/#RE管脚的收发方向,飞线并粘贴到机箱内的主板上。
注意看原理图左侧的自动切换芯片数据方向的电路。已知在TTL串口空闲时TxD=1,则此刻NPN导通则C极=E极=0,使U6处于接收机状态,即数据方向是差分到单端RXD。当TTL串口发送数据时,第一个1bit是起始位0,当TXD从空闲的1跳变至起始位的0时,肖特基二极管D1为NPN基极电荷提供了一个快速泄放通路,从而使B极快速变成低电平使NPN截至,进而使NPN的C极也就是DE/#RE被R6上拉到+5V,使U6处于发射机状态,即数据方向是TXD单端到差分A/B。这之后当TXD的某个bit=1时,由于C14和R15的RC电路存在一定的充电延时,并不能很快使NPN的B极高于Vbe的0.7V,故NPN保持截止状态,则NPN的C极也就是DE/#RE保持高电平,使U6仍然处于发射机状态,即数据方向是TXD单端到差分A/B。
注意到,当串口波特率很低且TxD的数据位中连1较多时,就会持续给RC充电从而使Q2的B极充电到高于导通电压Vbe(on)的0.7V。
这是充电公式:
反推B极电压从0V充电到0.7V的耗时公式:
这里RC值采用原版的R15=20kΩ, C14=1nF,则
因为要求8个bit连1的整段时间内,电容不能充到0.7V,则
波特率必须大于8/3.02us=2.65M!
所以得改RC,比如C=1uF,R=20k,则最低波特率2653 bps。
然后,当RC较大的时候,比如R=20k, C=1μF时,τ=RC=0.02 s
充到 0.7V 要:3.02ms,意思是,发完最后一个bit1,要等3ms,U6才能变回接收状态!
结论:NPN搭配RC实现的自动切换RS485方向电路,便宜、简陋、天生有 Bug,只能凑活用在高波特率、不问答的单向下发场景。
延申:为了解决「RC 延时双向矛盾」,业界已经有自动切换流向的专用RS485芯片,内部有门电路、电平检测、智能时序逻辑、独立充放电回路,当检测到TXD有发帧:精准锁死发送态一整帧,不怕中间全1;当检测到发帧彻底结束,纳秒级立刻切回接收。比如:MS2548、MS2549、NCA3176、UMW485(自动版)、SN75LB184、MAX13488E、THVD1426等。下图是MAX13488E的功能框图,其中#RE和#SHDN接高电平,就可以让芯片处于AutoDirection模式。
4,普通RS485芯片
以斯瑞普的TPT75176H为例,R接RXD,D接TXD,DE/#RE通常并联在一起被称为DIR,当DIR=1则是单端D流向差分A/B,当DIR=0则是差分A/B流向单端R。
拿数据说话者,堪当楷模者,模拟芯片公司全球Top1的TI是也。
下图是其麾下某款RS485芯片THVD1550的datasheet的插图,可见数据传输速率与线缆长度呈反比关系,即传输速率越高,线缆有效传输长度越短;反之,传输速率越低,线缆有效传输长度越长。多数 RS-485 系统的传输速率介于 10k至 100k间,部分应用场景可在1.2km及更远距离下,实现最高 250k传输速率。若允许信号产生最高 5% 至 10% 的微小抖动,还可实现更远距离的数据传输。
如下图,当波特率有
100k以下:可稳定跑满 4000 英尺(1.2km);
1Mbps:对应长度约 500 英尺(152 米);
10Mbps:对应长度约 50 英尺(15 米)