当前位置:网站首页>Modbus on AT32 MCU
Modbus on AT32 MCU
2022-07-31 02:26:00 【Leo_Tanlei】
Modbus on AT32 MCU
前言
本应用笔记介绍了如何将FreeMODBUS协议栈移植到AT32F43x单片机方法。本文档提供的源代码演示了使用Modbus的应用程序。单片机作为Modbus从机,可通过RS485或RS232与上位机相连,与Modbus Poll调试工具(Modbus主机)进行通讯。
注:本应用笔记对应的代码是基于雅特力提供的V2.x.x 板级支持包(BSP)而开发,对于其他版本BSP,需要注意使用上的区别。
支持型号
AT32F435xx
AT32F437xx
AT32F425xx
关于 Modbus 协议
Modbus协议使用的是主从的通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为Modbus Master,从设备方所使用的协议称为Modbus Slave。典型的主设备包括工控机和工业控制器等;典型的从设备如可编程逻辑控制器(PLC)等。MODBUS是OSI模型第7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。Modbus通讯物理接口可以选用串口(包括RS232、RS485等),也可以选择以太网口等。
MODBUS协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。特定总线或网络上的MODBUS协议映射能够在应用数据单元(ADU)上引入一些附加域。
当服务器对客户机响应时,它使用功能码域来指示正常(无差错)响应或者出现某种差错(称为异常响应)。需要管理超时,以便明确地等待可能不会出现的应答。
关于 FreeModbus 协议栈
FreeMODBUS是一个针对通用的Modbus协议栈在嵌入式系统中应用的实现。它提供了RTU/ASCII传输模式及TCP协议支持。FreeModbus遵循BSD许可证,这意味着用户可以将FreeModbus应用于商业环境中。目前FreeMODBUS只免费提供了一个Modbus从机节点的协议栈。该协议栈使用ANSI C编写,并且支持多个变量。本应用指南将介绍如何在AT32F435单片机上,通过FreeMODBUS协议栈实现Modbus从机节点的主要功能,并提供基于AT32F43x_StdPeriph_Lib和FreeMODBUS协议栈的源代码。如结合AT32-Comm-EV Board和AT-START Board可以方便快速的搭建起基于RS485的Modbus从机节点。
关于 Modbus Poll 调试软件
Modbus Poll是一个Modbus主机模拟器,支持Modbus RTU、ASCI、TCP/IP传输模式。它可以协助开发人员调试Modbus从设备,测试和模拟Modbus协议的通信。通过多文档界面接口,可以同时监控多个Modbus从机设备、数据域等。每个窗口可简单地设定从设备ID、功能码、地址、长度和轮询间隔。支持Modbus数据模型的四个基本表格,支持Modbus的多个公共功能码。本应用指南中将下载安装Modbus Poll在PC机上作为Modbus主机,与AT-START Board(作为Modbus从机)通过USB转RS485的模块相连,实现一个完整的、可测试的Modbus通信网络。
AT32 硬件准备
硬件主要由AT32-Comm-EV Board和AT-START Board组成。
本应用指南提供的demo使用到的外设资源有USARTTMR等,用户可根据具体需要灵活配置和修改,使用RS232或RS485来实现Modbus物理层的连接
AT-START Board当前提供例程基于AT-START-F435。可提供基于RS232的Modbus通信。
AT32-Comm-EV Board可提供例程基于RS485的Modbus通信支持。
以上为摘要部分内容,具体实现细节请下载附件查看。
边栏推荐
- The principle of complete replication of virtual machines (cloud computing)
- golang GUI for nuxui — HelloWorld
- Verify the integer input
- MPPT solar charge controller data collection - through the gateway acquisition capacity battery SOC battery voltage, wi-fi
- Introduction and use of Drools WorkBench
- How to design the changing system requirements
- [1153] The boundary range of between in mysql
- 拒绝加班,程序员开发的效率工具集
- 修改未正确放入沙盒造成苹果兼容性问题
- What have I experienced to become a tester who is harder than development?
猜你喜欢

Observer mode (1)

Inter-vlan routing + static routing + NAT (PAT + static NAT) comprehensive experiment

Introduction and use of Drools WorkBench

CMOS和TTL的区别?

用户交互+格式化输出

Drools Rule Properties, Advanced Syntax

Difference between CMOS and TTL?

Real-time image acquisition based on FPGA

力扣刷题之有效的正方形(每日一题7/29)

【Bank Series Phase 1】People's Bank of China
随机推荐
12 pictures take you to fully understand service current limit, circuit breaker, downgrade, and avalanche
User interaction + formatted output
Problems that need to be solved by the tcp framework
STP选举(步骤+案列)详解
Installation, start and stop of redis7 under Linux
How to do a startup CTO?
力扣刷题之爬楼梯(7/30)
Validate XML documents
怎样做好一个创业公司CTO?
pycharm cannot run after renaming (error: can't open file...No such file or directory)
Huawei od dice js
公司官网建站笔记(六):域名进行公安备案并将备案号显示在网页底部
MPPT太阳能充放电控制器数据采集-通过网关采集电池电压容量电量SOC,wifi传输
LeetCode Daily Question 2022/7/25-2022/7/31
Basic learning about Redis related content
19.支持向量机-优化目标和大间距直观理解
My first understanding of MySql, and the basic syntax of DDL and DML and DQL in sql statements
vlan间路由+静态路由+NAT(PAT+静态NAT)综合实验
Path and the largest
Go 项目实战-获取多级分类下的全部商品