本帖最后由 火火火火火精灵 于 2024-3-5 09:14 编辑

RS485
RS232是可以实现设备和设备间通讯,但是在工业控制中往往需要多点设备间通讯,则需要RS485协议,RS485仅定义了电气接口、驱动器、接收器的电特性,仅通过两线(AB)实现了多设备间传输,RS485能够进行远距离传输主要得益于使用差分信号进行传输,当有噪声干扰时仍可以使用线路上两者差值进行判断,使传输数据不受噪声干扰。
RS485通讯网络中一般采用的是一主多从通信方式。很多情况下,连接RS485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来,而忽略了信号地的连接,我们建议将地线也连接起来,可以平衡各个设备的信号参考地,减小共模电压,一旦信号线共模电压超出一定范围之后会导致通讯连接失败,甚至会损坏接口;将双绞线的屏蔽层接地线还可以为信号地提供一个低阻的返回通道,减小EMI辐射问题。
图片4.png

2.19 485模块连接方式
在扩展板上我们将TTL串口通过RS485收发芯片转为RS485,原理如图2.20:
图片5.png

2.20 TTL485电路

MAX13487E+5V供电、半双工的RS-485收发器,包含一路驱动器和一路接收器。MAX13487E具有Maxim专有的自动选向控制功能,根据芯片手册,将/RE/SHDN引脚上拉就可以实现自动收发控制,其他的485芯片可能需要GPIO来控制收发方向。在MAX13487E的芯片手册当中我们可以看到芯片的功能框图和芯片的引脚说明:
图片6.png

2.21 MAX13487E芯片引脚说明
图片7.png

2.22 MAX13487芯片功能框图
R是接收器(receiver),连接UART_RXDD是驱动器(driver),连接UART_TXD。之所以在UART_RXD引脚上串联了肖特基二极管是因为芯片是5V供电的,输出的TTL高电平是5V的,有损坏CPU的风险,当芯片输出低电平时(即R输出低电平),根据二极管正向导通的特性,UART_RXD端电压会被拉低;当芯片输出高电平时,二极管截止,UART_RXD被上拉到3.3V高电平。
A线的上拉和B线的下拉是为了在485总线无数据时提供一个稳定的空闲状态,当总线上的挂载设备较多时,需要根据负载和数据速率调整上下拉电阻阻值。
120欧姆电阻的作用:为避免信号反射,当线缆长度很长时数据传输线必须有终点,并且分支长度尽可能的短。正确的终端需要终端电阻Rt匹配,其值为传输线的特性阻抗Z0RS-485标准建议线缆的Z0=120Ω。电缆干线通常终端匹配120Ω的电阻,线缆的首尾处各一个。
UART接口设计指南
1ELF 1核心板最多可支持8UART
2ELF 1核心板8UART的电平均为3.3V,均可作为3线或5线串口;
3ELF 1核心板UART1作为Debug调试口不建议作为普通串口使用;
4)在和其他串口设备连接时注意电平匹配。
UART接口PCB设计指南
1485使用差分布线,预留120Ω端接电阻;
2485总线采用半双工模式传输,需要做收发控制;
3)连接端口建议预留地信号;
4485 总线的走线要尽量远离干扰源;
5485 总线采用手牵手菊花链总线式拓扑结构;
6485 总线需要 2 个终端电阻(接在传输总线的两端),电阻接在总线AB之间。
UART接口排查思路
1)如果开机不起动卡在 uboot,可以给 RX TX 信号接一个上拉电阻,保证在没有通信时,刚上电时引脚电平是稳定的。
2)确认外接座子有没有虚焊;
3)查看核心板连接器引脚是否可以复用 UART
4)确认串口波特率是否正确;
5)数据电平是否符合该电平标准要求;
6)如果打印信息乱码,检查外接座子接地是否良好;
7485AB 数据线有没有预留串联 120Ω的终端电阻;

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Powered by Discuz! X3.5  © 2001-2013 Comsenz Inc.