485
RS485 采用差分信号负逻辑, -2V~-6V 表示“0” , +2V~+6V 表示“1 ” 。 RS485 有两线制和四线制两种接线
,4线制实现点对点不能组网现在很少使用。2线制的485总线最多可挂32个节点,被配置成一主多从,通常使用双绞线实现链接,A-A,B-B.
2线制要注意地线问题(少地线出现干扰))
485相比232通讯的优点:
1 接口电压低,与TTL兼容,采用平衡驱动差分接收提高对共模干扰(噪音的)的抑制能力
2实现组网(挂接128个收发器),最远传输距离达3KM,传输速度10Mbps
3 阻抗匹配:
3.1终端电阻:在收发的开始和结束端跨接120欧姆电阻(双绞线的阻抗),特点:简单,但增加功耗不适合低功耗因公场合。
3.2RC匹配:利用C的隔直降低功耗,但C的匹配取值是个难点
3.3利用二极管的钳位作用削弱反射信号改善通讯质量。
驱动芯片:SP3485,控制引脚RO(接收输出)DI(发送输入)/RE,接收允许,DE发送使能(发送接收相连通过一个IO脚来控制)http://csdn.Juming.com/dx/?i=586357078554104&s=13ed9b7cb6e68b12763f34ca216e7fc5 STM32-DMA-485
技术点:
自动收发问题
超时设计
modbus
地址设定方法与指示
当485两线空闲时电压在+-200MV,此时若RXD接收到低电平就容易造成总线错误(收到0X00),解决办法时当距离近时去掉终端电阻;距离远存在反射时通过改变上下拉电阻改变总线压差。
STM32进行RS485收发切换,接收时第一个字节多接收一个“0x00"的问题:根本原因是发送完切换接收的时间太快引起的。譬如先TX(引脚设置发送状态)->发送数据-》RX(引脚设置接收状态)-》接收数据。特别是初始化后设置接收状态进入while等待串口接收中断就会出现这种情况,解决办法可以在设置RX引脚接收状态之后稍微延时。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?