美高森美-LOGO

Microsemi DG0440 在 SmartFusion2 设备上运行 Modbus TCP 参考设计

Microsemi -DG0618-SmartFusion2-Devices-using-DDR 内存错误检测和纠正-PRODUCT-IMAGE

美高森美公司总部
一个企业,Aliso Viejo,
CA 92656美国
美国境内:+1 800-713-4113
美国境外:+1 949-380-6100
传真:+1 949-215-4996
电子邮件: sales.support@microsemi.com
www.microsemi.com
© 2017 美高森美公司。 版权所有。 Microsemi 和 Microsemi 徽标是 Microsemi Corporation 的商标。 所有其他商标和服务标记均为其各自所有者的财产

Microsemi 对此处包含的信息或其产品和服务对任何特定目的的适用性不作任何保证、陈述或保证,Microsemi 也不承担因应用或使用任何产品或电路而产生的任何责任。 在此销售的产品和 Microsemi 销售的任何其他产品都经过了有限的测试,不应与任务关键型设备或应用程序一起使用。 任何性能规格都被认为是可靠的,但未经验证,买方必须单独、与任何最终产品一起或安装在任何最终产品中进行并完成产品的所有性能和其他测试。 买方不得依赖 Microsemi 提供的任何数据和性能规格或参数。 买方有责任独立确定任何产品的适用性并对其进行测试和验证。 Microsemi 在此提供的信息是“按原样、在哪里”提供的,并且存在所有错误,与此类信息相关的全部风险完全由买方承担。 Microsemi 没有明确或暗示地向任何一方授予任何专利权、许可或任何其他知识产权,无论是关于此类信息本身还是此类信息所描述的任何内容。 本文档中提供的信息是 Microsemi 的专有信息,Microsemi 保留随时对本文档中的信息或任何产品和服务进行任何更改的权利,恕不另行通知。

关于Microsemi
美高森美公司(纳斯达克代码:MSCC)为航空航天与国防、通信、数据中心和工业市场提供全面的半导体和系统解决方案组合。 产品包括高性能和抗辐射模拟混合信号集成电路、FPGA、SoC 和 ASIC; 电源管理产品; 计时和同步设备以及精确的时间解决方案,为时间设定了世界标准; 语音处理设备; 射频解决方案; 分立元件; 企业存储和通信解决方案、安全技术和可扩展的反Tamp呃产品; 以太网解决方案; 以太网供电 IC 和中跨; 以及定制设计能力和服务。 Microsemi 总部位于加利福尼亚州的 Aliso Viejo,在全球拥有约 4,800 名员工。 了解更多信息 www.microsemi.com.

修订历史

修订历史描述了文档中实施的更改。更改按修订列出,从最新发布开始。

修订版 7.0
更新了 Libero v11.8 软件版本的文档。

修订版 6.0
本文档的修订版 6.0 中进行了以下更改。

  • Libero SoC、FlashPro 和 SoftConsole 设计要求已在第 5 页的设计要求中更新。
  • 在整个指南中,演示设计中使用的 SoftConsole 项目的名称和所有相关图形都已更新。

修订版 5.0
更新了 Libero v11.7 软件版本 (SAR 76559) 的文档。

修订版 4.0
更新了 Libero v11.6 软件版本 (SAR 72924) 的文档。

修订版 3.0
更新了 Libero v11.5 软件版本 (SAR 63972) 的文档。

修订版 2.0
更新了 Libero v11.3 软件版本 (SAR 56538) 的文档。

修订版 1.0
更新了 Libero v11.2 软件版本 (SAR 53221) 的文档。

使用 IwIP 和 FreeRTOS 在 SmartFusion2 设备上运行 Modbus TCP 参考设计

介绍
Microsemi 为 SmartFusion®2 SoC FPGA 设备提供参考设计,演示了
SmartFusion2 SoC FPGA 的三速以太网媒体访问控制器 (TSEMAC) 功能并实现 Modbus 协议。 参考设计在 UG0557 上运行:SmartFusion2 SoC FPGA 高级开发套件用户指南。 本演示指南描述。

  • 使用连接到串行千兆媒体独立接口 (SGMII) PHY 的 SmartFusion2 TSEMAC。
  •  SmartFusion2 MAC 驱动程序与轻量级 IP (IwIP) 传输控制协议 (TCP) 或 IP 堆栈以及免费实时操作系统 (RTOS) 的集成。
  • 具有工业自动化协议、TCP 或 IP 上的 Modbus 的应用层。
  • 如何运行参考设计

SmartFusion2 SoC FPGA 的微控制器子系统 (MSS) 有一个 TSEMAC 外设实例。 TSEMAC 可以在主机处理器和以太网网络之间以下列数据传输速率(线路速度)进行配置:

  • 10 Mbps
  • 100 Mbps
  • 1000 Mbps

有关 SmartFusion2 设备的 TSEMAC 接口的更多信息,请参阅 UG0331:SmartFusion2 微控制器子系统用户指南。

使用 Modbus 协议
Modbus 是一种应用层消息传递协议,存在于第七层
开放系统互连 (OSI) 模型。 它支持连接在不同类型总线或网络中的设备之间的客户端或服务器通信。 它是一种服务协议,提供许多由功能代码指定的服务。 Modbus 功能代码是 Modbus 请求或回复协议数据单元的元素。 Modbus 协议的组成部分包括:

  • 以太网上的 TCP 或 IP
  • 通过多种媒体进行异步串行传输
  • 金属丝:
    • 环评/TIA-232-E
    • EIA-422
    • EIA/TIA-485-A光纤
  • 收音机
  • Modbus PLUS,一种高速令牌传递网络

下图描述了各种通信网络的 Modbus 通信堆栈。

图 1 • Modbus 通信栈

Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-23

在 SmartFusion2 设备上使用 Modbus 协议
Modbus TCP 服务器在 SmartFusion2 高级开发套件上运行,并响应在主机 PC 上运行的 Modbus TCP 客户端。 下图显示了 Modbus TCP 服务器和 SmartFusion2 设备上应用程序的框图。

图 2 • Modbus TCP 服务器和 SmartFusion2 上应用程序的框图

0RGEXV 7&3 $SSOLFDWLRQ 0RGEXV 7&3 6HUYHU
,Z,3 7&3 俄罗斯 ,3 6WDFN
)UHH5726 )卢普兹杜
6PDUW)XVLRQ2 $GYDQFHG 'HYHORSPHQW .LW (+:)

设计要求
下表列出了硬件和软件设计要求。

表 1 • 参考设计要求和详细信息

设计要求:描述
硬件

  • SmartFusion2 高级开发套件
    – USB A 到 mini-B 电缆
    – 12 伏适配器
    修订版 A 或更高版本
  • 以太网电缆 RJ45
  • 以下任一串行终端仿真程序:
    – 超级终端
    – TeraTerm
    – 腻子
  • 主机 PC 或笔记本电脑 Windows 64 位操作系统

软件

  • Libero® 片上系统 (SoC) v11.8
  • 软件控制台 v4.0
  • FlashPro编程软件v11.8
  • USB 转 UART 驱动程序 –
  • MSS 以太网 MAC 驱动程序 v3.1.100
  • 串行终端仿真程序 HyperTerminal、TeraTerm 或 PuTTY
  • 浏览器 Mozilla Firefox 或 Internet Explorer

演示设计
以下部分介绍了使用 IwIP 和 FreeRTOS 的 SmartFusion2 设备上 Modbus TCP 参考设计的演示设计。
演示设计 file可在以下位置下载:
http://soc.microsemi.com/download/rsc/?f=m2s_dg0440_liberov11p8_df
演示设计 file包括:

  • 自由人
  • 编程 files
  • 主机工具
  • 自述

下图显示了设计的顶层结构 file秒。 有关详细信息,请参阅 Readme.txt file.

图 3 • 演示设计 File顶层结构

Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-1

 演示设计功能
参考设计包括:

  • 完成 Libero SoC Verilog 项目
  • SoftConsole 固件项目

参考设计可以支持以下 Modbus 功能代码,具体取决于自由 Modbus 通信堆栈设置:

  • 读取输入寄存器(功能码0×04)
  • 读取保持寄存器(功能码0×03)
  • 写单个寄存器(功能码0×06)
  • 写多个寄存器(功能码0×10)
  • 读或写多个寄存器(功能码0×17)
  • 读线圈(功能码0×01)
  • 写入单个线圈(功能码0×05)
  • 写多个线圈(功能码0×0F)
  • 读取离散输入(功能码(0×02)

该参考设计支持以下所有自由 Modbus 通信堆栈设置的 Modbus 功能代码:

  • 读取输入寄存器(功能码0×04)
  • 读取离散输入(功能码(0×02)
  • 写多个线圈(功能码0×0F)
  • 读取保持寄存器(功能码0×03)

演示设计说明
通过为十位接口 (TBI) 操作配置 TSEMAC,使用 SGMII PHY 接口实现该设计。 有关 TSEMAC TBI 接口的更多信息,请参阅 UG0331:SmartFusion2 微控制器子系统用户指南。

Libero SoC 硬件项目
下图显示了运行参考设计从属固件的硬件设计实现。

图 4 • Libero SoC 顶层硬件设计

Libero SoC 硬件项目使用以下 SmartFusion2 MSS 资源和 IP:

  • TSEMAC TBI接口
  • MMUART_0 用于 SmartFusion232 高级开发套件上的 RS-2 通信
  • 专用输入焊盘 0 作为时钟源
  • 接口如下的通用输入和输出 (GPIO):
    • 发光二极管 (LED):4 个
    • 按钮:4个数字
    • 双列直插式封装 (DIP) 开关:4 个数字
  • 以下板资源与 Modbus 命令相关联:
    • LED(线圈)
    • DIP 开关(离散输入)
    • 按钮(离散输入)
    • 实时时钟 (RTC)(输入寄存器)
  • 高速串行接口(SERDESIF)SERDES_IF IP,配置为SERDESIF_3 EPCS lane 3,见下图。 要了解有关高速串行接口的更多信息,请参阅 UG0447-SmartFusion2 和 IGLOO2 FPGA 高速串行接口用户指南。

下图显示了高速串行接口配置器窗口。

图 5 • 高速串行接口配置器窗口

Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-3

封装引脚分配
LED、DIP 开关、按钮开关和 PHY 接口信号的封装引脚分配如下表至第 5 页的表 9 所示。

表 2 • LED 到封装引脚分配

  • 输出封装管脚
  • LED_1 D26
  • LED_2 F26
  • LED_3 A27
  • LED_4 C26

表 3 • DIP 开关封装引脚分配

  • 输出封装管脚
  • DIP1 F25
  • DIP2 G25
  • DIP3 J23
  • DIP4 J22

表 4 • 按钮开关封装引脚分配

  • 输出封装管脚
  • 开关 1 J25
  • 开关2 H25
  • 开关 3 J24
  • 开关4 H23

表 5 • PHY 接口信号到封装引脚分配

  • 端口名称方向封装引脚
  • PHY_MDC 输出 F3
  • PHY_MDIO 输入 K7
  • PHY_RST 输出 F2

SoftConsole 固件项目
使用独立的 SoftConsole IDE 调用 SoftConsole 项目。 以下版本的堆栈用于参考设计:

  • lwIP TCP 或 IP 堆栈版本 1.3.2
  • Modbus TCP 服务器版本 1.5 (www.freemodbus.org) 增强了作为 Modbus TCP 服务器的完整功能代码支持
  • FreeRTOS(www.freertos.org)

下图为SoftConsole软件栈目录结构的设计。

图 6 • SoftConsole 项目浏览器窗口

Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-4

SoftConsole 工作区由项目组成,Modbus_TCP_App 具有 Modbus TCP 应用程序(使用 lwIP 和 FreeRTOS)以及与硬件设计相对应的所有固件和硬件抽象层。
下图显示了用于演示的驱动程序版本。

图 7 • 演示设计驱动程序版本

Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-5

设置演示设计
以下步骤描述了如何为 SmartFusion2 高级开发套件板设置演示:

  1. 使用 USB A 转 mini-B 电缆将主机 PC 连接到 J33 连接器。 自动检测 USB 到通用异步接收器/发送器 (UART) 桥接器驱动程序。
  2. 从检测到的四个通信 (COM) 端口中,右键单击其中一个 COM 端口并选择属性。 弹出选中的COM口属性窗口,如下图所示。
  3. 确保在 Properties 窗口中的 Location as on USB FP5 Serial Converter C 如下图所示。

笔记: 记下串行端口配置的 COM 端口号,并确保 COM 端口位置指定为 USB FP5 串行转换器 C。

图 8 • 设备管理器窗口

Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-6

  1. 如果未自动检测到 USB 驱动程序,请安装 USB 驱动程序。
  2. 安装 FTDI D2XX 驱动程序,通过 FTDI 迷你 USB 电缆进行串行终端通信。 从以下位置下载驱动程序和安装指南:
    www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip
  3. 如下表所示连接 SmartFusion2 高级开发套件板上的跳线。 有关跳线位置的信息,请参阅附录:跳线位置,第 19 页。

警告: 在进行跳线连接之前,关闭电源开关 SW7。
表 6 • SmartFusion2 高级开发套件跳线设置

  • 从引脚到注释的跳线引脚
  • J116、J353、J354、J54 1 2 这些是高级开发套件板的默认跳线设置。 确保跳线
  • J123 2 3 相应设置。
  • J124, J121, J32 1 2 焦TAG 通过 FTDI 编程
  1. 将电源连接到 SmartFusion42 高级开发套件板中的 J2 连接器。
  2. 这个设计前amp文件可以在静态 IP 和动态 IP 模式下运行。 默认情况下,编程 files是为动态IP模式提供的。
    • 对于静态 IP,将主机 PC 连接到计算机的 J21 连接器
      使用 RJ2 电缆的 SmartFusion45 高级开发套件板。
    • 对于动态 IP,使用 RJ21 电缆将任何一个开放网络端口连接到 SmartFusion2 高级开发套件板的 J45 连接器。

电路板设置快照
附录:用于运行 Modbus TCP 参考设计的电路板设置(第 2 页)中提供了带有所有设置连接的 SmartFusion18 高级开发套件电路板的快照。

运行演示设计
以下步骤描述了如何运行演示设计:

  1. 下载设计 file 从:
    http://soc.microsemi.com/download/rsc/?f=m2s_dg0440_liberov11p8_df
  2. 打开电源开关 SW7。
  3. 启动任何串行终端仿真程序,例如:
    • 超级终端
    • 油灰
    • 泰拉术语
      注意:在这个演示中使用了超级终端。
      该程序的配置是:
    • 波特率:115200
    • 8 个数据位
    • 1 停止位
    • 无奇偶校验
    • 无流量控制
      有关配置串行终端仿真程序的信息,请参阅配置串行终端仿真程序。
  4. 启动 FlashPro 软件。
  5. 单击新建项目。
  6. 在New Project窗口中,输入Project Name,如下图所示。

图 9 • FlashPro 新项目

Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-7

  1. 单击浏览并导航到要保存项目的位置。
  2. 选择单一设备作为编程模式。
  3. 单击“确定”保存项目。
  4. 单击配置设备。
  5. 单击浏览并导航到 Modbus_TCP_top.stp 所在的位置 file 位于并选择 file. 默认位置是:
    (\SF2_Modbus_TCP_Ref_Design_DF\编程file\Modbus_TCP_top.stp)。 所需的编程 file 被选中并准备好在设备中进行编程,如下图所示。
    图 10 • 已配置的 FlashPro 项目
    Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-8
  6. 单击 PROGRAM 开始对器件进行编程。 等到显示一条消息表明程序已通过。 该演示需要使用应用程序代码对 SmartFusion2 设备进行预编程,以激活 Modbus 应用程序。 SmartFusion2 设备使用 FlashPro 软件通过 Modbus_TCP_top.stp 进行预编程。
    图 11 • FlashPro 程序通过
    Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-9注意:要在静态 IP 模式下运行设计,请按照附录:在静态 IP 模式下运行设计,第 20 页中提到的步骤进行操作。
  7.  重新启动 SmartFusion2 高级开发板。
    超级终端窗口会显示带有IP地址的欢迎信息,如下图所示。
    图 12 • 带有 IP 地址的超级终端
    Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-10在主机 PC 上打开一个新的命令提示符,转到文件夹
    (\SF2_Modbus_TCP_Ref_Design_DF\HostTool) 其中
    SmartFusion2_Modbus_TCP_客户端.exe file 存在,输入命令:SmartFusion2_Modbus_TCP_Client.exe 如下图所示。
    图 13 • 调用 Modbus 客户端
    Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-11下图显示了正在运行的 Modbus TCP 功能。 功能是:
    • 读取离散输入(功能代码 02)
    • 读取保持寄存器(功能代码 03)
    • 读取输入寄存器(功能代码 04)
    • 写多个线圈(功能码15)
      图 14 • Modbus 功能代码演示
      Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-12有关参考设计中演示的 Modbus 功能的更多信息,请参阅运行 Modbus 功能,第 17 页。
  8. 运行演示后,关闭超级终端。

运行 Modbus 功能
本节介绍参考设计中演示的 Modbus 功能。

读取离散输入(功能代码 02)
GPIO 连接到 4 个 DIP 开关和 4 个按钮开关。 打开和关闭 SmartFusion2 高级开发套件上的 DIP 开关和按钮开关。 读取离散输入功能代码显示开关状态,如下图所示。

图 15 • 读取离散输入Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-13

读取保持寄存器(功能代码 03)
下图显示了固件中定义的全局缓冲区数据。
图 16 • 读取保持寄存器Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-14

读取输入寄存器(功能代码 04)
下图显示了实时计数器 (RTC) 已计数的秒数。
图 17 • 读取输入寄存器Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-15

写多个线圈(功能码0×0F)
下图显示了用于切换连接到 GPIO 的 LED 的写入多个线圈寄存器数据。
图 18 • 写入多个线圈Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-16

附录:用于运行 Modbus TCP 参考设计的电路板设置

下图显示了在 SmartFusion2 高级开发套件板上运行参考设计的电路板设置。

图 19 • SmartFusion2 高级开发套件电路板设置

Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-17

附录:跳线位置

下图显示了 SmartFusion2 高级开发套件板上的跳线位置。

图 20 • SmartFusion2 高级开发套件丝印顶部 View

Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-18笔记: 以红色突出显示的跳线为默认设置。 以绿色突出显示的跳线必须手动设置。
笔记: 上图中的跳线位置是可以搜索到的。

附录:在静态 IP 模式下运行设计

以下步骤描述了如何在静态 IP 模式下运行设计:

  1. 右击 SoftConsole 工程的 Project Explorer 窗口,进入 Properties,如下图所示。
    图 21 • SoftConsole 项目的项目浏览器窗口
    Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-19
  2. 在 Modbus_TCP_App 属性窗口的工具设置中删除符号 NET_USE_DHCP。 下图显示了 Modbus_TCP_App 窗口的属性。
    图 22 • Project Explorer 属性窗口
    Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-20
  3. 如果设备以静态 IP 模式连接,开发板静态 IP 地址为 169.254.1.23,则更改主机 TCP/IP 设置以反映 IP 地址。 见下图和图24,
    图 23 • 主机 PC TCP/IP 设置
    Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-21
    图 24 • 静态 IP 地址设置
    Microsemi-DG0440-运行 Modbus-TCP-参考-设计-on-SmartFusion2-Devices-22
    笔记: 配置这些设置后,编译设计,将设计加载到闪存中,然后使用 SoftConsole 运行设计。

DG0440 演示指南修订版 7.0

文件/资源

Microsemi DG0440 在 SmartFusion2 设备上运行 Modbus TCP 参考设计 [pdf] 用户指南
DG0440 在 SmartFusion2 设备上运行 Modbus TCP 参考设计,DG0440,在 SmartFusion2 设备上运行 Modbus TCP 参考设计,在 SmartFusion2 设备上设计

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *