RS485收发器在FPGA中的应用及注意事项

RS485收发器在FPGA中的应用及注意事项

1 前言

明确设计思路,精准定位问题,对于我们后期理解迭代工程有很大的帮助。

这就是我们常说的40%设计,20%编写和剩下的40%时间进行调试优化。

今天为大家带来的是如何解决RS485收发器使能转变引起的毛刺。

2 问题

Q1:什么时候需要用到RS485收发器?

Q2:为何RS485收发器使能转变会引起毛刺?

Q3:如何处理毛刺规避FPGA时序判断?

3 RS485收发器

3.1 硬件基础

3.1.1 标准收发器

RS485收发器是一类集成电路芯片,它的核心作用是在微控制器(如FPGA、MCU)的逻辑电平(如TTL电平,通常是0V/3.3V或0V/5V)与RS485差分信号之间进行双向转换。大多数RS485收发器还具备使能控制引脚(DE或RE),允许主控芯片灵活地切换其工作模式——发送或接收,从而支持半双工通信架构。

在实际应用中,微控制器输出的信号属于低电压、低电流的逻辑电平,适合短距离、高精度的内部电路通信,但无法直接用于长距离传输,容易受到电磁干扰、线路衰减等因素影响,导致信号失真甚至通信失败。

在这里插入图片描述

【差分传输】:RS485标准通过两根信号线(通常标记为A和B,或+和-)之间的电压差来表示数据,具有很强的抑制能力,能够在嘈杂的工业现场稳定工作

【阻抗匹配】:为了保证通信稳定性,通常在总线两端配置120欧姆的终端电阻,以匹配电缆特性阻抗,减少信号反射带来的干扰

【SP3485】:支持485和422,差分电压范围覆盖-7V~12V

3.1.2 自动方向控制收发器

当RS485收发器没有专用的DE(驱动器使能)或RE(接收器使能)控制引脚时,实现半双工通信的核心思路是:采用具备自动方向控制功能的收发器芯片。

这类芯片内部集成了智能逻辑,可以自动管理数据流的方向,如下图右侧:

在这里插入图片描述
特性标准收发器(带DE/RE引脚)自动方向控制收发器(无DE/RE引脚)
控制方式软件手动控制:需要MCU的GPIO引脚和精确的时序代码硬件自动控制:通过检测TXD信号的电平变化自动完成
硬件复杂度较高(需要连接控制线)较低(只需要连接TXD/RXD和电源)
软件复杂度较高(需编程方向切换代码)较低(如同操作普通UART)
可靠性依赖软件时序的正确性由硬件保证,时序更精确可靠
适用场景几乎所有RS485应用,给予开发者完全的控制权引脚资源紧张,追求开发简便性和可靠性的应用

3.2 软件协议

FPGA基于RS485收发器可以实现两大类协议:标准的、广泛应用的通用协议如UART、BissC、EnDat等以及自定义的、为特定应用优化的专用协议。

【BissC、EnDat】:需要两路RS485收发器,一路差分时钟,一路差分数据

4 异常现象

这里以EnDat协议时序进行说明,状态跳转如下:

  1. FPGA进入SEND_ORD状态,主机发送指令
  2. 指令发送后,FPGA进入WAIT状态,等待从机返回高电平起始位
  3. 检测到高电平返回,FPGA进入START_BIT状态
> wavedrom图片

通过时序图和说明可以发现,在等待起始位的WAIT状态中,RXD出现了脉冲周期不符的高电平,而FPGA把这个毛刺当成起始位处理导致状态跳转异常。

5 问题分析

5.1 原因定位

经过复现发现,所使用的RS485收发器在改变EN使能方向时,对应的RXD/TXD会出现高电平毛刺,从而导致FPGA误判。

5.2 解决方案

5.2.1 硬件处理

  • 原理:利用电阻(R)和电容(C)的充放电特性,电容两端的电压不能突变,需要一定的充电时间。一个快速的毛刺脉冲给电容充电时,由于能量小、持续时间短,在电容上的电压还没来得及建立时就消失了,因此输出端看不到明显的电压变化,从而被过滤掉。
  • 优缺点
    • 优点:简单、成本极低、非常有效。
    • 缺点:会延迟信号的正常跳变,RC时间常数(t = R * C)越大,过滤毛刺能力越强,但信号延迟也越严重。因此RC值根据信号频率和毛刺宽度权衡

5.2.2 软件处理

通过观察可以确定,从改变EN使能方向到出现毛刺的时间是固定的,因此可以增加状态延时,以此过滤掉高电平毛刺。

> wavedrom图片

【DELAY】:该状态周期根据毛刺到来时间调整

6 参考

Read more

基于2-RSS-1U的双足机器人并联踝关节分析与实现

基于2-RSS-1U的双足机器人并联踝关节分析与实现

"当你的机器人开始像人类一样思考如何走路时,你会发现,原来最复杂的不是大脑,而是脚踝。"这句话在机器人学界越来越成为共识。论文ASAP中的研究也证实,在sim2real中,偏差最大的正是踝关节控制。 参考文献:On the Comprehensive Kinematics Analysis of a Humanoid Parallel Ankle Mechanism 结构变体:Structural design and motion analysis of parallel ankle joints for humanoid robots 脚踝革命:深入解析人形机器人高性能并联踝关节 传统的单轴踝关节设计,就像给机器人穿了一双"高跟鞋"——虽然能走,但走得很僵硬,很危险。我们需要的是像人类脚踝一样的灵活性:既能前后摆动(pitch),又能左右倾斜(roll)

最新 neo4j 5.26版本下载安装配置步骤(新手必备)

最新 neo4j 5.26版本下载安装配置步骤(新手必备)

目录 初识:neo4j 安装环境要求 一、下载Neo4j 二、配置环境变量 三、启动测试 四、常用命令及配置 创作不易,禁止转载抄袭!!!违者必究!!! 创作不易,禁止转载抄袭!!!违者必究!!! 创作不易,禁止转载抄袭!!!违者必究!!! 初识:neo4j Neo4j是一个高性能的NoSQL图形数据库,它将结构化数据存储在网络(从数学角度称为图)上而不是传统的表中。‌ Neo4j是一个嵌入式的、基于磁盘的、具备完全事务特性的Java持久化引擎,特别适合处理具有复杂关系的数据‌。 安装环境要求 * 操作系统:Windows 10/8/7、macOS 10.13或更高版本、Linux(Ubuntu、CentOS、Red Hat 等) * JDK 17 或更高版本(Neo4j

【本地Docker部署开源低代码开发神器Appsmith与远程访问在线使用】

【本地Docker部署开源低代码开发神器Appsmith与远程访问在线使用】

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂 非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨ 博客目录 * 前言

飞书/钉钉/QQ 机器人一站式搞定!OpenClaw Docker 部署教程

飞书/钉钉/QQ 机器人一站式搞定!OpenClaw Docker 部署教程

一、概述 OpenClaw-Docker-CN-IM(OpenClaw 中国IM平台整合Docker版本)是一款容器化应用,旨在提供集成中国主流IM平台的AI机器人网关解决方案。该镜像预装并配置了飞书、钉钉、QQ机器人、企业微信等插件,支持通过环境变量灵活配置,实现快速部署与数据持久化。 同时集成了OpenCode AI代码助手、Playwright浏览器自动化工具及中文TTS语音合成功能,适用于需要构建多平台IM机器人的开发者与科研用户。 本指南将详细介绍其Docker部署流程,包括环境准备、镜像拉取、容器配置、功能测试及生产环境优化建议,帮助用户快速实现服务部署与应用。 二、项目简介与核心特性 2.1 项目简介 OpenClaw 中国 IM 插件整合版 Docker 镜像,预装并配置了飞书、钉钉、QQ机器人、企业微信等主流中国 IM 平台插件,让您可以快速部署一个支持多个中国 IM 平台的 AI 机器人网关。 官方项目地址: https://github.com/justlovemaki/