一种适用于MCU的增强型Modbus协议栈
- 国知局
- 2024-08-02 14:24:20
本发明涉及工业现场总线通信,特别是涉及一种适用于mcu的增强型modbus协议栈。
背景技术:
1、伴随着物联网技术的发展,各种工业现场总线技术应用于工业现场,用于解决智能化仪器仪表、控制器、执行机构等现场设备之间的数字通信问题与信息传递问题,常见的工业网络有:profibus-dp、profinet、can、modbus等。
2、微型智能化仪器仪表作为感知层、传输层、平台应用层三层框架结构中的感知层,近些年发展迅速,通讯组网能力大幅度提升。微型智能化仪器仪表作为经济型采集终端,其自身计算能力有限,为了融入当前工业现场,对modbus协议的支持成为热点。
3、当前庞大的设备网络,要求微型智能化仪器仪表不仅仅作为单从机存在,更多的时候需要支持自身作为多个从机,甚至需要同时作为主从机存在。而微型智能化仪器仪表核心控制器大多采用计算能力和flash有限的微型mcu,且更新换代频率高,要求其程序架构更加易于维护升级,一种简单高效支持多主多从开发的modbus协议栈成为关注的热点。
4、目前,市面常见的适用于mcu的modbu协议栈有:freemodbus、uc/modbus、eemodbus、emmodbus等,freemodbus虽然免费并支持主从机,但是不支持多物理接口,若想实现,只能成倍增加代码量和mcu片上外设资源的占用,效率极低,即无法实现多主多从。其他modbus协议栈,虽然支持多物理接口,支持多主多从,但是要么需要rtos的支持,要么需要频繁使用mcu的中断资源和定时器资源,对于微型智能化仪器仪表来说是无法承受的。
5、因此,亟需一种适用于mcu的增强型modbus协议栈。
技术实现思路
1、本发明的目的是提供一种适用于mcu的增强型modbus协议栈,此modbus协议栈支持多主多从、无需rtos支持、无需使用中断和定时器资源。
2、为实现上述目的,本发明提供了如下方案:
3、一种适用于mcu的增强型modbus协议栈,包括:状态机、虚拟协议栈组、虚拟协议栈、用户接口文件和用户工具模块;
4、所述状态机,用于基于所述虚拟协议栈组和用户接口文件进行协议栈的运行与维护;
5、所述虚拟协议栈组,用于对所述虚拟协议栈进行管理;
6、所述虚拟协议栈,用于组织运行信息;
7、所述用户接口文件,用于存储所述协议栈需要用户实现的目标功能函数,其中,所述目标功能函数为所述用户根据功能需求组织形成;
8、所述用户工具模块,用于为所述用户提供对于所述协议栈的预置操作。
9、可选地,所述状态机基于所述虚拟协议栈组和用户接口文件进行协议栈的运行与维护包括:
10、所述状态机包含若干状态和事件,通过事件驱动状态的方式轮询所述虚拟协议栈组进行数据的接收、数据的发送、功能解析、虚拟协议栈管理、用户接口调用及管理。
11、可选地,所述状态包括:空闲、正在读、处理数据、正在写、窗口期;所述事件包括:从机转向正在读事件、主机转向正在写事件、主从机转向处理数据事件、主机转向空闲事件、从机转向正在写事件、从机转向空闲事件、主机进入窗口期事件、主机转向正在读事件、主机进入处理数据事件、从机转向空闲事件、初始化事件。
12、可选地,除所述主机转向正在写事件之外的事件由所述状态机根据当前情况,进行事件状态改变,所述主机转向正在写事件是否发生由用户发送从机请求的状态决定。
13、可选地,所述虚拟协议栈组对所述虚拟协议栈进行管理包括:
14、所述虚拟协议栈组采用指针数组的方式,管理所述虚拟协议栈的加载与卸载操作。
15、可选地,所述虚拟协议栈组织运行信息包括:
16、所述虚拟协议栈采用结构体组织运行信息,所述运行信息包括:虚拟协议栈id信息、运行状态、使用的串口、控制引脚、通信参数、协议类型、从机地址、接收缓冲数组、数据量、发送缓冲数组、发送标志、窗口期时间、tcp通信专用id信息、需要设置的功能码的寄存器起始地址、寄存器数量、寄存器数组。
17、可选地,所述目标功能函数通过参照所述虚拟协议栈的结构体编写,所述目标功能函数包括:修改波特率的函数、得到当前接收数据量的函数、50us延时函数、设置修改从机地址函数、启动硬件接口函数、停止硬件接口函数、使硬件接口处于读状态函数、使硬件接口处于写状态函数、数据帧发送函数、从机接收数据crc错误函数、从机遵循modbus协议要求的各种功能函数、主机请求超时函数、主机请求返回异常码函数、主机遵循modbus协议要求的各种请求后的功能函数。
18、可选地,所述用户工具模块为用户提供对于所述协议栈的预置操作包括:
19、所述用户工具模块通过功能函数为用户提供对于所述协议栈的预置操作,所述功能函数包括:协议栈初始化函数、挂载函数、卸载函数、状态机轮询函数。
20、本发明的有益效果为:
21、本发明提出的一种适用于mcu的增强型modbus协议栈,相对于常用的modbus协议栈实现多主多从方式不依赖于rtos系统、实现数据接收发送不依赖于mcu的定时器和串口中断资源,适用于工业中使用modbus组网的各层设备中,尤其适用于终端设备有多主多从需求,同时片上中断和定时器资源紧张的设备中,更能体现其优异的性能,能够有效的解决资源紧张情况下难以实现多主多从功能的问题。
技术特征:1.一种适用于mcu的增强型modbus协议栈,其特征在于,包括:状态机、虚拟协议栈组、虚拟协议栈、用户接口文件和用户工具模块;
2.根据权利要求1所述的适用于mcu的增强型modbus协议栈,其特征在于,所述状态机基于所述虚拟协议栈组和用户接口文件进行协议栈的运行与维护包括:
3.根据权利要求2所述的适用于mcu的增强型modbus协议栈,其特征在于,所述状态包括:空闲、正在读、处理数据、正在写、窗口期;所述事件包括:从机转向正在读事件、主机转向正在写事件、主从机转向处理数据事件、主机转向空闲事件、从机转向正在写事件、从机转向空闲事件、主机进入窗口期事件、主机转向正在读事件、主机进入处理数据事件、从机转向空闲事件、初始化事件。
4.根据权利要求3所述的适用于mcu的增强型modbus协议栈,其特征在于,除所述主机转向正在写事件之外的事件由所述状态机根据当前情况,进行事件状态改变,所述主机转向正在写事件是否发生由用户发送从机请求的状态决定。
5.根据权利要求1所述的适用于mcu的增强型modbus协议栈,其特征在于,所述虚拟协议栈组对所述虚拟协议栈进行管理包括:
6.根据权利要求1所述的适用于mcu的增强型modbus协议栈,其特征在于,所述虚拟协议栈组织运行信息包括:
7.根据权利要求1所述的适用于mcu的增强型modbus协议栈,其特征在于,所述目标功能函数通过参照所述虚拟协议栈的结构体编写,所述目标功能函数包括:修改波特率的函数、得到当前接收数据量的函数、50us延时函数、设置修改从机地址函数、启动硬件接口函数、停止硬件接口函数、使硬件接口处于读状态函数、使硬件接口处于写状态函数、数据帧发送函数、从机接收数据crc错误函数、从机遵循modbus协议要求的各种功能函数、主机请求超时函数、主机请求返回异常码函数、主机遵循modbus协议要求的各种请求后的功能函数。
8.根据权利要求1所述的适用于mcu的增强型modbus协议栈,其特征在于,所述用户工具模块为用户提供对于所述协议栈的预置操作包括:
技术总结本发明涉及工业现场总线通信技术领域,特别是涉及一种适用于MCU的增强型Modbus协议栈,包括:状态机、虚拟协议栈组、虚拟协议栈、用户接口文件和用户工具模块,状态机用于基于虚拟协议栈组和用户接口文件进行协议栈的运行与维护;虚拟协议栈组用于对虚拟协议栈进行管理;虚拟协议栈用于组织运行信息;用户接口文件,用于存储所述协议栈需要用户实现的目标功能函数,其中,所述目标功能函数为用户根据功能需要组织形成;用户工具模块,用于为用户提供对于协议栈的预置操作。本发明实现多主多从方式不依赖于RTOS系统、实现数据接收发送不依赖于MCU的定时器和串口中断资源,适用于工业中使用Modbus组网的各层设备。技术研发人员:杜霖,黄丽丽,王昊,朱海青受保护的技术使用者:承德应用技术职业学院技术研发日:技术公布日:2024/7/25本文地址:https://www.jishuxx.com/zhuanli/20240801/242716.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表