首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pxa255中的RS485支持

pxa255中的RS485支持
EN

Stack Overflow用户
提问于 2011-03-19 18:49:59
回答 2查看 779关注 0票数 1

我想使用我的卡上的rs485。我在arm-linux和pxa255处理器上工作。我已经检查了arm-linux工具链中的"serial.h“,但不幸的是,我找不到合适的rs485设置结构,尽管它在其他一些环境中也是受支持的,比如cris。

EN

回答 2

Stack Overflow用户

发布于 2011-03-19 21:47:55

我建议你回顾一下这篇关于Linux RS-485 support的文章。

票数 1
EN

Stack Overflow用户

发布于 2019-05-10 16:34:04

关于串口和Linux驱动程序对RS485模式的支持,似乎有相当多的混淆。我想我也许能回答这个问题。

首先,你应该问自己:为什么我想在我的串行端口上激活RS485支持?我不知道您使用的是什么开发板或硬件,但请注意,大多数UART只适用于单端TTL电平(5V或3.3V电平)。这意味着您不能直接与RS485设备通信,因为它们只处理差分信号。如果您想了解更多详细信息,可以查看此链接:https://www2.htw-dresden.de/~huhle/ArtScienceRS485.pdf,这是一个很好的介绍。

因此,您可以随心所欲地编写任意多行代码和驱动程序,但这对您的TTL UART与RS485对话没有帮助。即使您的设备在其驱动程序上支持RS485,硬件本身也需要有一个电平转换器IC (如MAX485)才能使用它。幸运的是,我们深爱的Linux内核开发人员对硬件了解很多,您不必担心这一点(至少对大多数设备而言)。然后,回答你的问题:如果你不能在你的驱动上找到RS485设置,这很可能意味着你的硬件不直接提供支持。

对你来说幸运的是,解决方案非常简单:只需获得一个便宜的USB到RS485加密狗。你可以从5-10美元找到他们,他们应该在大多数情况下开箱即用。根据我的经验,FTDI芯片工作得很好。

如果你真的因为任何原因而不得不使用一个特定的通用异步收发器,例如,假设你想在你的树莓派或任何其他只有TX和RX信号可访问的的上使用通用异步收发器。然后,你将面临一个稍微更困难的挑战,你需要更多地研究RS485设备的工作原理。这里的关键方面是理解半双工双线链路上的RS485 (有关这方面的更多详细信息,请参阅下面的注释)。为了能够共享一个双线总线,其中一个或多个设备正在监听,但任何时候只有一个设备在讲话,您需要在TX和RX上添加额外的控制信号(驱动启用/~读取启用)(请注意,当您使用单端TTL时,有两个信号使用三线指向GND,而RS485侧使用两条线的一条差分总线)。您的RS485收发器(比如MAX485)将需要这个RE/~DE信号来安排谁在说话,谁在总线上监听,也就是说:所有在总线上监听的设备将使此信号为低(读取启用设置),而通话器将为高(驱动启用)。

在这里,我们得到了你的问题的本质:你可以从哪里获得这个额外的信号?答案是:这取决于你的UART芯片。有些芯片没有提供任何可用的东西,那么你只能选择在你的软件应用程序中手动驱动GPIO线路或用于UARTS的流控制信号(RTS或DTR)。你可以在这里阅读更多关于FTDI芯片特殊情况的详细信息:RS485: Inappropriate ioctl for device。还有一个关于这个问题的很好的硬件解决方案的参考资料,使用了神秘的555定时器IC。

Note:更令人困惑的地方:第一,RS485是半双工的,有时与RS422混在一起,后者是全双工的,需要四根线;第二:我说的是二线制和四线制,我最好说三线制和五线制,因为差分电压信号需要一个接地作为返回路径;可悲的是,RS485的大多数实际实现都是双线制的,它们似乎对大多数人来说工作可靠,但这本身就是一个巨大的话题,我们可以在其他地方讨论它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5361622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档