LattePanda Alpha&Delta RS485接口扩展板

1.简介

  • LattePanda Alpha&Delta RS485 扩展板是专为 LattePanda Alpha&Delta 设计的轻工业级接口扩展板。
  • 采用 FTDI 的 FT232RL 进行 USB 信号转换,稳定可靠。
  • 采用金升阳的串口转 RS485 模块和电源模块,保证信号隔离与电源隔离。
  • 两路并联的 RS485 输出信号,工业接线端子形式,可方便的连接各种 RS485 接口设备。
  • 12V 电源输出,最大输出电流 150mA 左右,方便测试小负载的 RS485设备
  • 沉金工艺,既美观,又保证 PCB 质量。
  • 板载 120Ω 终端匹配电阻,可通过开关控制接入接出。
  • 随产品附赠尼龙柱,保证产品与 LP 连接的稳定性。

2.产品参数

  • 模块运行电源:+5V
  • 符合 EIA/TIA-232-F 标准
  • 通信波特率最高 1M bps
  • 最高 12V 电源输出(输出电流 100mA 左右)
  • 隔离电压 3000 VDC
  • 1/8 单位负载,总线负载能力高达 256 节点
  • 总线失效保护和总线驱动短路保护
  • 工作温度范围:-40℃ to +105℃
  • ⚠注意:不支持热插拔

3.应用

  • 在 Windows 环境下轻松开发和使用 RS485 通信接口。(兼容 Linux 环境)

4.引脚说明



LattePanda Alpha&Delta 引脚定义(建议参考 LattePanda Alpha wiki & LattePanda Delta wiki



5.RS485 通信协议简介

典型的串行通信标准之一。

RS485 接口具有良好的抗噪声干扰性,较长的传输距离、多站能力和布线简单等优点,因而在工业上被广泛使用。

RS485 通信协议只定义了传输的电压,阻抗等电气特性,但不对软件协议给予定义。数据信号采用差分传输方式,因此具有抑制共模干扰的能力。总线收发器具有高灵敏度,能检测低至200mV的电压。RS-485用于多点互连时非常方便,可以省掉许多信号线。它使用一对双绞线,将其中一线定义为A,另一线定义为B。通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是逻辑1状态,负电平在-2V~6V,是逻辑0状态。其最大传输距离约为1200米,传输速率与传输距离成反比,只有在很短的距离下才能获得最高速率传输。RS485需要2个终端电阻,其阻值要求等于传输电缆的特性阻抗(一般为120Ω)。在短距离传输时可不需终端电阻,终端电阻需接在传输总线的两端。



6. ModBus 通信协议简介

Modbus 协议是一个 master/slave 架构的协议。有一个节点是 master 节点,其他使用 Modbus 协议参与通信的节点是 slave 节点。每一个 slave 设备都有一个唯一的地址。一个 ModBus 命令包含了打算执行的设备的 Modbus 地址。所有设备都会收到命令,但只有指定位置的设备会执行及回应指令(地址0例外,指定地址0的指令是广播指令,所有收到指令的设备都会运行,不过不回应指令)。所有的 Modbus 命令包含了校验码,以确定到达的命令没有被破坏。基本的 ModBus 命令能指令一个 RTU 改变它的寄存器的某个值,控制或者读取一个 I/O 端口,以及指挥设备回送一个或者多个其寄存器中的数据。

Modbus协议有多种变体:

  • Modbus RTU —— 在串行通信中使用,并使用数据的紧凑二进制表示形式进行协议通信。RTU 格式遵循命令/数据,并带有循环冗余校验校验和作为错误校验机制,以确保数据的可靠性。Modbus RTU 是可用于 Modbus 的最常见的实现。Modbus RT U消息必须连续发送,且字符间不要犹豫。Modbus 消息按空闲(静默)时间段进行帧化(分隔)。
  • Modbus ASCII —— 在串行通信中使用,并使用 ASCII 字符进行协议通信。ASCII 格式使用纵向冗余校验和。Modbus ASCII 消息由冒号(“:”)和换行符(CR / LF)组成。
  • Modbus TCP/IP 或 Modbus TCP —— 这是 Modbus 变体,用于通过端口 502 连接的 TCP/IP 网络上的通信。它不需要校验和计算,因为较低的层已经提供了校验和保护。


7. 使用教程

这里演示 LattePanda Alpha & Delta 通过 RS485 接口控制 DFR0290 8路继电器

安装驱动

注:Windows 系统下首次使用需要安装驱动。Linux 系统下无需安装驱动。

Windows 对 FTDI 芯片支持自动搜索安装,将扩展板插在 LP 上,等待几分钟时间,无需任何操作即可安装完成。(自动安装驱动时请保持 LP 联网)。

Windows 环境下,可在设备管理器查看驱动是否安装成功。驱动安装完成后,COM 名称为 USB Serial Port。

也可点击链接下载手动安装:

VCP Drivers
D2XX Drivers

准备硬件:

  1. 一块 LattePanda Alpha & Delta
  2. 一块 LattePanda Alpha & Delta RS485 接口扩展板(DFR0779)
  3. 一块 RLY-8-PoE-RS485 8路继电器(DFR0290)

7.1 扩展板与 LattePanda Alpha & Delta 插接示意

插接示意

需使用尼龙柱和尼龙螺丝固定扩展版与 LattePanda

7.2 连线图

如下图:



7.3 使用上位机软件

  1. LattePanda Alpha&Delta 与 RS485 接口扩展板插接好后,开机
  2. RLY-8-PoE-RS485 8路网络控制继电器模块接通电源
  3. LattePanda Alpha&Delta 上打开 DFRobot 出品的上位机软件,选择正确串口,波特率设置 115200
  4. 通过上位机软件即可操作继电器模块

上位机界面
操作效果图



7.4 使用串口调试助手

  1. 重复上述步骤
  2. 根据 8 路网络控制继电器模块的自定义通信规则,使用串口调试工具发送正确指令,控制继电器模块

如下图,控制继电器 1 号继电器的开关

串口调试助手控制继电器



7.5 使用 ModBus 调试助手

  1. 重复上述步骤
  2. 根据 8 路网络控制继电器模块的ModBus协议规则,使用ModBus调试助手发送正确指令,控制继电器模块

如下图,获取设备名称和控制继电器 2 号继电器的开关

ModBus调试助手



7.6 使用 Python 的 ModBus 库

目前 Python 关于 ModBus 协议的第三方库,比较主流的有以下几种:

  • Modbus_tk
  • Pymodbus
  • Minimalmodbus
  • Umodbus
库名称 源码 3rd party 依赖 主要功能
modbus_tk https://github.com/ljean/modbus-tk pyserial Support modbus TCP and RTU, both master and slave。Don’t support modbus ASCII。 重量级
pymodbus https://github.com/riptideio/pymodbus/ pyserial Support modbus TCP/RTU/ASCII, master and slave。 重量级
minimalmodbus https://github.com/pyhys/minimalmodbus pyserial Only support Modbus RTU and ASCII, and only work in master(clinet). 非常轻量级
uModbus https://github.com/AdvancedClimateSystems/uModbus/ pyserial Support both Modbus client amd server (both TCP and RTU). Don’t support Modbus ASCII。轻量级

这里以 modbus_tk 的使用为例。

  1. 重复上述步骤
  2. 在 LattePanda Alpha & Delta 上安装 Python 环境和 modbus_tk 和其他依赖包
  3. 根据 8 路网络控制继电器模块的ModBus协议规则,编写 python 代码,控制继电器模块

如下图,在命令行运行 Python 脚本,获取设备名称和控制设备依次开关所有的继电器

命令行运行python脚本
运行效果

python3脚本示例,点击获取.zip



疑难解答

更多问题及有趣的应用,请访问论坛



更多

DFshopping_car1.png DFRobot商城购买链接