打印

讨论:RS-485硬件控制问题

[复制链接]
1283|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
binoo7|  楼主 | 2020-9-15 08:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RS-485硬件控制输入还是输出,用三极管好,还是用与非门好?

使用特权

评论回复
评论
zyj9490 2020-9-22 12:50 回复TA
@binoo7 :可靠性高的话,还是用标准接法,一定要用在低波特率上,可降低上拉下拉电阻,可提升下可靠性,但引发功耗增大的问题,但这是治表,不治本。看你使用,成本控制。一切事情有好有坏。看怎样选择。 
binoo7 2020-9-22 12:41 回复TA
@zyj9490 :您说的对,现在就是在低波特率上也出问题了 
zyj9490 2020-9-17 13:58 回复TA
@binoo7 :控制485状态目前二种方法,一种是独立的端口去控制发送与接收。一种是自控制。你说的是自控制,0是输出使能,把TX的值反映到485端口上,当TX1时,实际上输出不使能,485端口呈高阻态,通过每个端口的上拉,下拉电阻把相应的1发送到总线上。此模式只能用于低波特率上。问题多。 
binoo7 2020-9-17 13:25 回复TA
@zyj9490 :如果硬件控制的话,肯定是用的发射端来控制芯片的输出使能,当输出使能发送0的时候通过与非门或者三极管可以让485芯片处于发送状态,但是如果发送1的时候呢?会不会导致输出失能,如果切换的速度够快的话,那么单片机就能通过输入口接收到单片机发出去的数据了,这种情况怎么避免呢?我感觉的是通过两个方面,一个是通过软件上控制,一个是通过硬件来... 
zyj9490 2020-9-16 18:13 回复TA
高速上,用与非门好。 

相关帖子

沙发
awei0822| | 2020-9-16 11:36 | 只看该作者
性能上都没问题,用三极管要配几个电阻,占用面积稍微大点,但成本很低,

使用特权

评论回复
板凳
binoo7|  楼主 | 2020-9-16 11:40 | 只看该作者
awei0822 发表于 2020-9-16 11:36
性能上都没问题,用三极管要配几个电阻,占用面积稍微大点,但成本很低, ...

因为是硬件控制了,您说这样控制的话会不会导致输出的时候输入也会检测到信号,这样的话如果软件处理有问题的话,就导致了一直有输出

使用特权

评论回复
地板
awei0822| | 2020-9-16 13:27 | 只看该作者
binoo7 发表于 2020-9-16 11:40
因为是硬件控制了,您说这样控制的话会不会导致输出的时候输入也会检测到信号,这样的话如果软件处理有问 ...

不管怎么控制,输出和输入不能同时有效

使用特权

评论回复
5
binoo7|  楼主 | 2020-9-16 14:26 | 只看该作者
awei0822 发表于 2020-9-16 13:27
不管怎么控制,输出和输入不能同时有效

如果硬件控制的话,肯定是用的发射端来控制芯片的输出使能,当输出使能发送0的时候通过与非门或者三极管可以让485芯片处于发送状态,但是如果发送1的时候呢?会不会导致输出失能,如果切换的速度够快的话,那么单片机就能通过输入口接收到单片机发出去的数据了,这种情况怎么避免呢?我感觉的是通过两个方面,一个是通过软件上控制,一个是通过硬件来控制,软件上我知道怎么实现,那么硬件呢?因为就是利用的发送的高低电平来控制485芯片的输出使能或者失能

使用特权

评论回复
6
chunyang| | 2020-9-16 15:40 | 只看该作者
看你系统内的资源,有富裕的非门最好,没有则可以考虑用三极管或单门非门,三极管显然最便宜。

使用特权

评论回复
7
binoo7|  楼主 | 2020-9-16 16:49 | 只看该作者
chunyang 发表于 2020-9-16 15:40
看你系统内的资源,有富裕的非门最好,没有则可以考虑用三极管或单门非门,三极管显然最便宜。 ...

坛主,您看一下我发的这个疑惑

使用特权

评论回复
8
binoo7|  楼主 | 2020-9-16 16:50 | 只看该作者
chunyang 发表于 2020-9-16 15:40
看你系统内的资源,有富裕的非门最好,没有则可以考虑用三极管或单门非门,三极管显然最便宜。 ...

如果硬件控制的话,肯定是用的发射端来控制芯片的输出使能,当输出使能发送0的时候通过与非门或者三极管可以让485芯片处于发送状态,但是如果发送1的时候呢?会不会导致输出失能,如果切换的速度够快的话,那么单片机就能通过输入口接收到单片机发出去的数据了,这种情况怎么避免呢?我感觉的是通过两个方面,一个是通过软件上控制,一个是通过硬件来控制,软件上我知道怎么实现,那么硬件呢?因为就是利用的发送的高低电平来控制485芯片的输出使能或者失能

使用特权

评论回复
评论
chunyang 2020-9-28 16:35 回复TA
此发回影响485接口片的最高工作速率,前为“法”,后为“会”,原来敏感字是这个…… 
chunyang 2020-9-28 16:33 回复TA
此发布影响485接口片……敏感字闹的鬼,逼人写错别字么! 
chunyang 2020-9-28 16:31 回复TA
避免歧义的说法可以是“主动控制”和“非主动控制”,前者需要一个IO来控制485接口片的收发状态,后者则通过数据发送反向来控制收发,此时是发0不发1的,总线逻辑1得靠总线的静态偏置来实现。此**影响485接口片的最高工作速率,但不会导致输入口能收到发出的数据。 
chunyang 2020-9-28 16:27 回复TA
你说的“硬件控制”有歧义,按你的说法,相应的该有“软件控制”,可单凭软件根本无法控制。 
9
dukedz| | 2020-9-17 16:34 | 只看该作者
本帖最后由 dukedz 于 2020-9-17 16:39 编辑

可以考慮用自帶自動方向切換的 PHY 接口芯片。

不過,還是用 FPGA 控制最爽: https://gitee.com/dukelec/cdbus_ip

使用特权

评论回复
10
dukedz| | 2020-9-17 16:54 | 只看该作者
本帖最后由 dukedz 于 2020-9-17 16:57 编辑

> 如果硬件控制的话,肯定是用的发射端来控制芯片的输出使能,当输出使能发送0的时候通过与非门或者三极管可以让485芯片处于发送状态,但是如果发送1的时候呢?会不会导致输出失能,

發送 1 的時候,是靠總線(通常是主機端)默認上下拉電阻負責置 1 總線。(输出失能,但沒有影響。)

> 如果切换的速度够快的话,那么单片机就能通过输入口接收到单片机发出去的数据了,这种情况怎么避免呢?
> 我感觉的是通过两个方面,一个是通过软件上控制,一个是通过硬件来控制,软件上我知道怎么实现,那么硬件呢?
> 因为就是利用的发送的高低电平来控制485芯片的输出使能或者失能

就算切換信號比數據慢一拍,輸入的數據爲 0 的時間也是非常短的,只要不超過 1/2 bit 長度,MCU 是不會響應的,可以不予理會。
輸入爲 1 的情況不用考慮,因爲默認空閒就是 1.



使用特权

评论回复
11
zyj9490| | 2020-9-17 17:47 | 只看该作者
dukedz 发表于 2020-9-17 16:54
> 如果硬件控制的话,肯定是用的发射端来控制芯片的输出使能,当输出使能发送0的时候通过与非门或者三极管 ...

靠硬件自动切换,带载能力不强,时序不好控制,毕竟端口控制(发送状态,每个端口是PP输出)。时序快。对长线更好适应。

使用特权

评论回复
12
zyj9490| | 2020-9-17 17:49 | 只看该作者
方波变成锯齿波就得不偿失了。

使用特权

评论回复
13
ningling_21| | 2020-9-17 19:31 | 只看该作者
都不如用自动控制方向的485芯片

使用特权

评论回复
14
dalarang| | 2020-9-17 21:42 | 只看该作者
看实际使用场景需求,硬件控制的输出1是靠总线上默认的上下拉电阻实现的,所以在高波特率或线路较长时会有问题。
如果速率低且负载低的话,无论三极管还是与非门都没什么问题,看自己喜欢了。
个人感觉用TX脚硬件控制使能不是正规的用法,我是不喜欢这样用的,指不定哪天不小心就在这些小花招上吃了亏。

使用特权

评论回复
15
binoo7|  楼主 | 2020-9-22 12:33 | 只看该作者
dukedz 发表于 2020-9-17 16:34
可以考慮用自帶自動方向切換的 PHY 接口芯片。

不過,還是用 FPGA 控制最爽: https://gitee.com/dukelec/ ...

你跑题了

使用特权

评论回复
16
binoo7|  楼主 | 2020-9-22 12:35 | 只看该作者
dukedz 发表于 2020-9-17 16:54
> 如果硬件控制的话,肯定是用的发射端来控制芯片的输出使能,当输出使能发送0的时候通过与非门或者三极管 ...

还是没搞懂您的意思,因为发送引脚控制的话,比如MCU在串口中断内自动返回的话,会一直返回数据不停止的

使用特权

评论回复
17
binoo7|  楼主 | 2020-9-22 12:36 | 只看该作者
zyj9490 发表于 2020-9-17 17:47
靠硬件自动切换,带载能力不强,时序不好控制,毕竟端口控制(发送状态,每个端口是PP输出)。时序快。对 ...

其实就是说,返回的数据是一个很长字节的数据,硬件控制导致了一直有返回的数据

使用特权

评论回复
18
binoo7|  楼主 | 2020-9-22 12:37 | 只看该作者
dalarang 发表于 2020-9-17 21:42
看实际使用场景需求,硬件控制的输出1是靠总线上默认的上下拉电阻实现的,所以在高波特率或线路较长时会有 ...

已经吃亏了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

456

帖子

9

粉丝