网站开发原始数据12345律师免费咨询
news/
2025/10/3 12:46:52/
文章来源:
网站开发原始数据,12345律师免费咨询,163企业邮箱登录,网站空间文件删不掉RS485是一种常见的通讯接口方式#xff0c;在我们的实际产品中也是多次使用。但我们平常并不会去过多考虑某一实现的细节问题#xff0c;不过最近我们遇到了一个因如上下拉电阻的选择问题而造成的通讯故障#xff0c;所以在这一片中我们来讨论一下RS485总线上下拉电阻的选择…RS485是一种常见的通讯接口方式在我们的实际产品中也是多次使用。但我们平常并不会去过多考虑某一实现的细节问题不过最近我们遇到了一个因如上下拉电阻的选择问题而造成的通讯故障所以在这一片中我们来讨论一下RS485总线上下拉电阻的选择问题。
1、出现的问题
前段时间在调试多个站点的Modbus通讯的时候出现了一个问题。在拥有6个节点的RS485总线上主站发送给从站的报文能够成功接收从站返回的报文主站却是接收不到。后来额外添加了上拉下拉电阻后通讯恢复正常。这让我们注意到上下拉电阻的选择对RS485总线通讯的影响问题。
首先我们来看看为什么会有接收不到报文的情况。根据RS485总线的相关标准当RS485总线差分电压大于200mV时RS485收发器输出高电平当RS485总线差分电压小于-200mV时RS485收发器输出低电平当RS485总线上的电压在-200mV200mV之间时RS485收发器可能输出高电平也可能输出低电平但对于某一特定的节点总是处于一种电平状态若RS485收发器的输出处于低电平这对于UART通信来说是一个起始位此时通信会不正常自然我们就接收不到正确的报文了。
既然是因为RS485总线上A端和B端的电压差处于-200mV200mV之间而造成的错误那么有没有办法防止它处于-200mV200mV之间呢当然是有办法的那就是利用上拉下拉电阻来钳位这一电压差值。这就引出了另一个问题我们该如何选择适合的上拉下拉电阻呢接下来我们将讨论这个问题。
2、分析问题
既然我们确认是上拉下拉电阻的匹配问题那接下来我们就来讨论一下上拉下拉电阻的选择问题。我们先从简单的的情况入手逐步的讨论更复杂的网络情况。首先我们来看一下只有两个节点的RS485网络如下图所示 在上图的两个节点的网络中我们规定两端都有终端电阻两个节点所采用的收发器的输入电阻相同在总线中只有一个节点配置有上拉下拉电阻。我们根据电路中流入流出同一节点的电流是相同的原理可以得到如下的两个等式 在我们设计RS485总线电路时如果添加有上拉和下拉电阻我们一般会选择相同的阻值我们记为R。那么我们根据上面两个等式可以推导出下的算式 有了这个式子我们可以计算出上拉下拉电阻的大小。因为我们加上拉下拉电阻的目的就是保证总线A端和B端的电压差能够符合不小于200mA的要求。所以我们以总线A、B的电压差200mA来计算就可以得到上拉下拉电阻的值。
上面我们推导了两个节点的计算公式但两个节点只是最简单的情况而总线上往往存在多个节点。所以接下来我们来讨论总线上存在n个节点总线两端存在终端电阻每一个节点都拥有相同的输入电阻只有主节点存在上拉下拉电阻如下图所示 我们根据前面的推导过程可知不同的只是因为增加节点而增加的输入电阻所以我们根据上述电路可以推导出如下的公式 这一公式与两个节点的公式相比仅仅只是输入电阻部分并联引起的变化。同样的我们可以依据总线A端和B端的电压差不小于200mA的要求来计算上拉下拉电阻的阻值。
我们虽然推导了总线上有多个节点的计算公式但我们只考虑了一个节点拥有上拉下拉电阻的情况。实际应用中可能存在总线上有多个节点存在上拉下拉电阻的情况所以我们来讨论一下所有节点均存在上拉下拉电阻的极限情况如下图所示 从上图我们不难看出与前一种多节点通讯的区别只是上拉下拉电阻的数量出现了变化。为了简化推导过程我们同样假设每个节点拥有相同的上拉下拉电阻以及同样的上拉电源和地。采用相同的电路原理我们可得到如下的计算公式 在这个公式中n为节点的数量总线A端和B端的差值我们定义为最小的200mA这样我们就可以将这个公式简化为 到这里我们就得到了比较具有使用价值的上拉下拉电阻阻值的计算公式了。我们只需要根据实际的总线使用情况选择n的值和电源的值就可以得到我们想要的上下拉电阻值。不过有一个问题需要注意上下拉电阻的数量可能与节点的数量不同但输入电阻的数量与节点数量相同所以计算时要注意n的取值问题。
3、求解思路
我们已经推导了一个具有应用价值的上下拉电阻计算公式。接下来我们就来使用这一公式计算我们前面遇到的实际问题。
在第1节中我们提到了一个实际问题是一个具有6个节点的RS485总线我们来计算一下这个实际事例中上拉下拉电阻该如何选择。我们的主站采用的收发器是MAX3485上拉下拉电阻选择了普遍的4.7K欧姆电阻上拉电源采用了3.3V电源。从节点为其他厂商产品所采用的收发器为SP3485和SP485我们只考虑主节点有上拉下拉电阻的情况。
从MAX3485和SP3485以及SP485的数据手册我们可以查到输入电阻均为12K欧姆。而在主站这边添加了终端电阻而总线上的其他从站均为添加终端电阻。所以我们就可以将这些数据带入到上面的公式计算上拉下拉电阻 于是我们很容易得到上拉下拉电阻的阻值约为903欧姆。这是在只有主节点有上拉下拉电阻的情况下如果每个节点都有上拉下拉电阻呢在这一情况下所需的上拉下拉电阻要大得多6个节点的话约为5417欧姆。如果两个终端都采用了终端电阻则上拉下拉电阻需要更小一些约为458欧姆左右。同样如果6个节点均采用上拉下拉电阻则上拉下拉电阻的值约为2749欧姆。一般在设计电路时我们均默认所有节点均有上拉下拉电阻在不能确认最远端的距离及终端电阻时选用5K欧姆左右的电阻是合适的。
我们似乎解决了我们前面所遇到的问题但还有一种情形我们需要考虑那就是总线上拥有最多节点的情况。一般来说总线上能够挂载多少个节点与采用的RS485收发器有关。同样以我们常用的MAX3485和SP3485为例其理论上可以挂载包括自己在内的32个节点所以我们就以32个节点、所有节点均有上拉下拉电阻两端均有终端电阻为例来计算上拉下拉电阻的值。 我们可得到上拉下拉电阻的值约为13778欧姆但这个值是一个极限值我们并不能选用它因为我们不能保证所挂载的每个节点都配有上拉下拉电阻。所以我们再拉计算一下只有我们设计的主节点具有上拉下拉电阻的情况。这种情况下上拉下拉电阻的值约为431欧姆。那是不是我们选用这个最小值就可以适应总线挂载2到32个节点的所有情况了呢很遗憾并不是这样的还有其它的要求需要我们考虑。
前述只考虑了上下拉电阻对RS485通讯的积极影响而没有考虑上下拉电阻的选择对RS485通讯的消极影响。这个消极影响就是上下拉电阻以及终端电阻会影响RS485收发器的带载能力。因为根据RS485标准收发器需要能够提供不低于1.5V的差分输出此时对总线上A端与B端的差分负载要求为54欧姆。
我们一如前面的推导过程来归纳差模负载的计算公式。我们依然按所有节点的输入电阻相同上拉下拉电阻相同终端电阻为两端都有的极限情况来推导公式。首先我们推导总线A端和B端的共模负载得到公式如下 有了这个共模负载的计算公式我们就可以推导出总线A端和B端差模负载的计算公式 根据这个差模公式我们可以来核算一下总线对上拉下拉电阻的要求。我们以32个节点每个节点都使用了上拉下拉电阻两端均有终端电阻差模负载为54欧姆。我们依然以MAX3485和SP3485为例其输入电阻为为12K欧姆计算可得共模负载为270欧姆而上拉下拉电阻约为30857欧姆。这是在假设32个节点均有上拉下拉电阻的情况下得到的而我们能够确保有上拉下拉电阻的只有主节点所以我们可以得到只有主节点有上拉下拉电阻时电阻值约为964欧姆。
所以综合上述计算过程为了MAX3485和SP3485在2到32个节点的情况下均可用理论上我们需要选择上拉下拉电阻的值大于964欧姆即可但实际情况却不见得如此因为其他节点也可能会采用上拉下拉电阻所以上拉下拉电阻需要适当的选择大一点才能保证通讯的可靠性。
4、不是结论
至此我们已经完成RS485总线中上拉下拉电阻选择的计算过程。但在实际使用中上下拉电阻的选择要复杂的多因为它不但与所采用的收发器有关还与总线上的节点数量有关。收发器的输入阻抗也决定了总线所能挂载节点的数量。如我们前述的MAX3485和SP3485两种收发器其输入阻抗为12K欧姆挂载32个节点时共模电阻只有375欧姆这时候如果我们想要利用上拉下拉电阻来保证通讯可靠已经不会有太大效果了。所以象MAX3485和SP3485这种拥有单位负载阻抗的收发器在电路设计时就需要考虑其挂载节点的数量。
我们在前面的讨论中有些条件是我们假定的如我们默认所有节点的输入阻抗均为单位负载但实际情况不一定如此不同节点的输入电阻可能不一定相等。在RS485标准中规定了单位负载输入电阻与节点的关系 所以我们选择输入电阻为12K欧姆来计算实际上是极小值所以不同节点的输入电阻不相同也没关系更大的输入电阻反而降低了驱动要求。
在前面的讨论中我们都是按两端有终端电阻来计算的在实际使用中可能并非两端都存在终端电阻甚至没有终端电阻的情况。根据前面的公式我们不难发现如果只有1端有终端电阻或者没有终端电阻的情况下对上下拉电阻的要求更低一些上下拉电阻可以适当增大所以只要符合两端带终端电阻的情况其它情形自然也可满足。
还有在总线上不同节点采用的上下拉电阻以及上拉电源并不一定相同。我们假定上拉电源为3.3V实际已经是很低的情况如果用更高的上拉电源对上拉电阻的要求反而更低所以用3.3V计算是能符合所有使用情况的。而至于上下拉电阻不同节点可能不同的问题我们考虑的是最低情况如果某一个或几个节点采用更大的电阻由于电阻的并联作用不会造成电阻更大的问题即可保证压差限制也能保证差分负载的要求。
欢迎关注
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925902.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!