CN116055583A - 可兼容多协议的通信***及其控制方法、电子设备 - Google Patents
可兼容多协议的通信***及其控制方法、电子设备 Download PDFInfo
- Publication number
- CN116055583A CN116055583A CN202211312802.7A CN202211312802A CN116055583A CN 116055583 A CN116055583 A CN 116055583A CN 202211312802 A CN202211312802 A CN 202211312802A CN 116055583 A CN116055583 A CN 116055583A
- Authority
- CN
- China
- Prior art keywords
- state machine
- modbus
- data
- communication interface
- master station
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40032—Details regarding a bus interface enhancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40228—Modbus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种可兼容多协议的通信***及其控制方法、电子设备,可兼容多协议的通信***包括:接口模块和配置模块,其中,接口模块包括:多个串行通信接口和多个网络通信接口;配置模块用于配置多个串行通信接口实现MODBUS‑RTU/MODBUS‑ASCII通信协议,配置模块还用于配置多个网络通信接口实现MODBUS‑TCP主站通信协议或从站通信协议,配置模块还用于对多个串行通信接口和多个网络通信接口的接口参数进行配置。本发明的通信***,通过接口模块和配置模块实现MODBUS通信协议栈同时支持MODBUS‑RTU/ASCII和MODBUS‑TCP协议模式,并实现三种协议的主从站功能,增加基于MODBUS协议栈的应用范围并降低通信成本。
Description
技术领域
本发明涉及通信领域,尤其涉及一种可兼容多协议的通信***、一种可兼容多协议的通信***的控制方法和一种电子设备。
背景技术
MODBUS通信协议在工控行业广泛应用,为了实现MODBUS通信协议栈统一,相关技术中提出了一种FREEMODBUS协议栈,该协议栈是仅对嵌入式应用提供从站协议,并且该协议栈仅支持MODBUS-RTU/ACSII通信协议模式,在需要使用主站协议时,需要使用特定的密码或者密令,并且不支持MODBUS-TCP通信协议模式。相关技术中还提出了一种Uc/MODBUS协议栈,在得到授权情况下才能使用,且仅支持主站和从站的MODBUS-RTU/ASCII通信协议模式,但不支持MODBUS-TCP通信协议模式。
为了解决上述三种协议不能同时存在的情况,需要分别写一套主站和从站的MOBUS-TCP通信协议,一套主站和从站的MODBUS-RTU通信协以及一套主站和从站的MODBUS-ASCII通信协议才可以实现上述功能的需求,程序代码冗余且占用数据空间大,严重影响了程序代码的复用性和扩展性。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种可兼容多协议的通信***,通过接口模块和配置模块可以实现MODBUS通信协议栈同时支持MODBUS-RTU/ASCII和MODBUS-TCP通信协议的模式,并分别实现这三种协议的主站和从站功能,增加了基于MODBUS通信协议栈的应用范围并降低了通信成本。
本发明的第二个目的在于提出一种可兼容多协议的通信***的控制方法。
本发明的第三个目的在于提出一种电子设备。
为达到上述目的,本发明第一方面实施例提出了一种可兼容多协议的通信***,包括:接口模块和配置模块,接口模块包括:多个串行通信接口和多个网络通信接口,其中,配置模块,用于配置多个串行通信接口实现MODBUS-RTU/MODBUS-ASCII通信协议;配置模块,还用于配置多个网络通信接口实现MODBUS-TCP主站通信协议或从站通信协议;配置模块,还用于对多个串行通信接口和多个网络通信接口的接口参数进行配置。
根据本发明实施例的可兼容多协议的通信***,配置模块配置多个串行通信接口实现MODBUS-RTU/MODBUS-ASCII通信协议,并配置多个网络通信接口实现MODBUS-TCP主站通信协议或从站通信协议,同时还对通信接口的接口参数进行配置。由此,该通信***通过接口模块和配置模块来实现MODBUS通信协议栈同时支持MODBUS-RTU/ASCII和MODBUS-TCP通信协议模式,并实现这三种协议的主站和从站功能,增加了基于MODBUS通信协议栈的应用范围并降低了通信成本。
另外,根据本发明实施例的可兼容多协议的通信***还可以具有如下的附加技术特征:
根据本发明的一个实施例,多个网络通信接口中的至少一个作为主站,多个网络通信接口中的至少一个作为从站,多个串行通信接口中至少一个作为主站,多个串行通信接口中至少一个作为从站。
根据本发明的一个实施例,配置模块还用于,在封装发送数据包时,按照第一格式对主站网络通信接口发送的数据进行封装,并按照第二格式对主站串行通信接口发送的数据进行封装。
根据本发明的一个实施例,配置模块还用于,在封装应答数据包时,按照第一格式对从站网络通信接口应答的数据进行封装,并按照第二格式对从站串行通信接口应答的数据进行封装。
根据本发明的一个实施例,配置模块还用于,将从站网络通信接口的数据接收方式配置为网口中断+DMA方式,并将从站串行通信接口的数据接收方式配置为串口中断方式。
根据本发明的一个实施例,配置模块还用于,在数据处理时,若主站网络通信接口和/或主站串行通信接口向从站发送非广播命令,则将事件状态机配置为发送状态机;接收到从站的响应数据时,将事件状态机配置为接收状态机;在响应数据正确时,将接收状态机配置为可执行状态机;在响应数据错误时,将接收状态机配置为错误处理状态机。
根据本发明的一个实施例,配置模块还用于,在数据处理时,若主站网络通信接口和/或主站串行通信接口向从站发送广播命令,则将接收状态机配置为可执行状态机。
根据本发明的一个实施例,配置模块还用于,在数据处理时,若从站网络通信接口和/或从站串行通信接口接收到主站的数据帧,则将就绪状态机配置为接收状态机;在主站的数据帧为问询数据包或广播数据包时,将接收状态机配置为可执行状态机;在主站的数据帧为非广播数据包时,将可执行状态机配置为发送状态机。
根据本发明的一个实施例,配置模块还用于,在从站网络通信接口和/或从站串行通信接口接收到主站的新数据帧时,将事件状态机配置为接收状态机。
为达上述目的,本发明第二方面实施例提出了一种可兼容多协议的通信***的控制方法,包括:配置多个串行通信接口实现MODBUS-RTU/MODBUS-ASCII通信协议;配置多个网络通信接口实现MODBUS-TCP主站通信协议或从站通信协议;对多个串行通信接口和多个网络通信接口的接口参数进行配置。
本发明实施例的控制方法,通过上述的可兼容多协议的通信***,实现了MODBUS通信协议栈同时支持MODBUS-RTU/ASCII和MODBUS-TCP通信协议的模式,并实现这三种协议的主站和从站功能,增加了基于MODBUS通信协议栈的应用范围并降低了通信成本。
为达上述目的,本发明第三方面实施例提出了一种电子设备,包括上述的可兼容多协议的通信***和数据处理模块,其中,数据处理模块,用于根据主站网络通信接口和/或主站串行通信接口向从站发送的命令,确定事件状态机的状态;数据处理模块,还用于根据从站网络通信接口和/或从站串行通信接口接收到主站的数据帧,确定事件状态机的状态;配置模块,用于根据事件状态机的状态对状态机进行配置。
本发明实施例的电子设备,通过上述的可兼容多协议的通信***和数据处理模块,实现了MODBUS通信协议栈同时支持MODBUS-RTU/ASCII和MODBUS-TCP通信协议的模式,并实现这三种协议的主站和从站功能,增加了基于MODBUS通信协议栈的应用范围并降低了通信成本。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1为根据本发明实施例的可兼容多协议的通信***的方框示意图;
图2为根据本发明一个实施例的包括可兼容多协议的通信***的设备与外部设备通信的示意图;
图3为根据本发明实施例的可兼容多协议的通信***的功能初始化示意图;
图4为根据本发明实施例的可兼容多协议的通信***的发送数据示意图;
图5为根据本发明实施例的可兼容多协议的通信***的数据接收示意图;
图6为根据本发明实施例的可兼容多协议的通信***的数据处理示意图;
图7为根据本发明实施例的可兼容多协议的通信***的控制方法的流程图;
图8是根据本发明实施例的电子设备的方框示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例提出的可兼容多协议的通信***、可兼容多协议的通信***的控制方法和电子设备。
图1为根据本发明实施例的可兼容多协议的通信***的方框示意图。
如图1所示,本发明实施例的可兼容多协议的通信***可包括:接口模块10和配置模块20。
其中,接口模块10包括:多个串行通信接口12和多个网络通信接口11,例如,接口模块10包括:第一串行通信接口、第二串行通信接口、第一网络通信接口和第二网络通信接口。配置模块20用于配置多个串行通信接口实现MODBUS-RTU/MODBUS-ASCII通信协议,例如,配置模块20配置第一串行通信接口和第二串行通信接口实现MODBUS-RTU/MODBUS-ASCII通信协议。配置模块20还用于配置多个网络通信接口实现MODBUS-TCP主站通信协议或从站通信协议,例如,配置模块20配置第一网络通信接口11实现MODBUS-TCP主站通信协议,并配置第二网络通信接口11实现MODBUS-TCP从站通信协议。配置模块20还用于对多个串行通信接口和多个网络通信接口的接口参数进行配置,例如,配置模块20还用于对第一串行通信接口、第二串行通信接口、第一网络通信接口和第二网络通信接口的各个接口参数进行配置。
具体而言,接口模块10中包括了网络通信接口和串行通信接口,网络通信接口用于实现MODBUS-TCP通信协议,串行通信接口用于实现MODBUS-RTU/MODBUS-ASCII通信协议。由于MODBUS通信协议栈采用的是主从通信模式,因此,若要兼容三种通信协议,网络通信接口和串行通信接口需要既支持主站协议,又支持从站协议。其中,MODBUS-RTU通信协议与MODBUS-ASCII通信协议模式均支持RS-485总线的通信协议,因此可将串行通信接口配置为实现MODBUS-RTU/MODBUS-ASCII通信协议;MODBUS-TCP通信协议模式是基于以太网的TCP/IP链路的,因此可将网络通信接口配置为实现MODBUS-TCP通信协议。对底层驱动进行初始化,配置串行通信接口的端口、波特率、奇偶校验等,配置网络通信接口的通信方式、定时器中断、SPI通信方式。然后对协议栈的功能进行初始化,使能MODBUS-RTU/ASCII主从站的功能,使能MODBUS-TCP主从站的功能,配置MODBUS-RTU/ASCII地址,配置MODBUS本地端口、本地IP、远端端口、远端IP,使能所要用到的MODBUS协议功能码。由此可以实现在同一个控制芯片实现三种协议的主站和从站功能。
需要说明的是,上述实施例中的可兼容多协议的通信***中的第一或第二串行通信接口和第一或第二网络通信接口,不应理解为对本发明的限制。在其它例子或实施方式或实施例中,可根据本发明来选择,在此不作具体限定。
下面详细描述可兼容多协议的通信***的组成部分。
根据本发明的一个实施例,多个网络通信接口中的至少一个作为主站,多个网络通信接口中的至少一个作为从站,多个串行通信接口中至少一个作为主站,多个串行通信接口中的至少一个作为从站。仍以两个串行通信接口,两个网络通信接口为例,第一网络通信接口和第一串行通信接口可以作为主站,第二网络通信接口和第二串行通信接口可以作为从站。
需要说明的是,多个网络通信接口三个时,其中一个网络通信接口作为主站,一个网络通信接口作为从站,另外一个网络通信接口可以作为主站,也可以作为从站,即,不管有多少个网络通信接口或串行通信接口,必须要有一个作为主站,一个作为从站,剩余的接口既可以作为主站,也可以作为从站。
举例而言,如图2所示,具有可兼容多协议的通信***的设备A有两个网络通信接口和两个串行通信接口,其中,以第一网络通信接口和第一串行通信接口作为主站,以第二网络通信接口和第二串行通信接口作为从站,设备B、设备C、设备D、设备E作为***设备与设备A进行通信。
具体的,设备A与设备B之间通过MODBUS-TCP通信协议方式进行通信,设备A上的第一网络通信接口作为主站,设备B作为从站,设备A与设备C之间通过MODBUS-TCP通信协议方式进行通信,设备A上的第二网络通信接口作为从站,设备C作为主站。设备A与设备D之间通过MODBUS-RTU/ASCII通信协议方式进行通信,设备A上的第一串行通信接口13作为主站,设备D作为从站,设备A与设备E之间通过MODBUS-RTU/ASCII通信协议方式进行通信,设备A上的第二串行通信接口14作为从站,设备E作为主站。其中,设备A既可以通过MODBUS-TCP通信协议与***设备进行通信,又可以MODBUS-RTU/ASCII通信协议与***设备进行通信,设备A既可以充当主站角色又可以充当从站角色。
根据本发明的一个实施例,配置模块20还用于,在封装发送数据包时,按照第一格式对主站网络通信接口发送的数据进行封装,并按照第二格式对主站串行通信接口发送的数据进行封装。例如,可以按照第一格式对第一网络通信接口发送的数据进行封装,并可以按照第二格式对第一串行通信接口发送的数据进行封装。
根据本发明的一个实施例,配置模块20还用于,在封装应答数据包时,按照第一格式对从站网络通信接口应答的数据进行封装,并按照第二格式对从站串行通信接口应答的数据进行封装。例如,可以按照第一格式对第二网络通信接口应答的数据进行封装,并可以按照第二格式对第二串行通信接口应答的数据进行封装。
具体而言,在封装发送数据包时,由于主站MODBUS-RTU/ASCII和MODBUS-TCP通信协议模式的发送数据格式不同,因此通过形参MODE的不同,对发送数据进行不同的封装。比如,当MODE等于0时,代表MODBUS-RTU/ASCII数据包;当MODE等于1时,代表MODBUS-TCP数据包。在封装应答数据包时,从站MODBUS-RTU/ASCII和MODBUS-TCP通信协议模式的应答数据格式不同,通过形参MODE不同,对应答数据进行不同的封装。比如,当MODE等于0时,代表MODBUS-RTU/ASCII数据包;当MODE等于1时,代表MODBUS-TCP数据包。
根据本发明的一个实施例,配置模块20还用于,将从站网络通信接口的数据接收方式配置为网口中断+DMA方式,并将从站串行通信接口的数据接收方式配置为串口中断方式。例如,可以将第二网络通信接口的数据接收方式配置为网口中断+DMA方式,并将第二串行通信接口的数据接收方式配置为串口中断方式。
具体而言,无论是MODBUS-RTU/ASCII还是MODBUS-TCP通信协议均是利用中断的方式进行数据接收。其中,MODBUS-RTU/ASCII通信协议模式的数据接收是通过串口中断方式,每接收一个字节进入一次串口中断,如果超过3.5个字节的接收周期,则认为一帧数据接收完成。MODBUS-TCP通信协议模式的数据接收是通过网口中断+DMA方式,在网口中断里,通过DMA接收标志位(DMARxDescToGet)检查有无数据帧。
根据本发明的一个实施例,配置模块20还用于,在数据处理时,若主站网络通信接口和/或主站串行通信接口向从站发送非广播命令,则将事件状态机配置为发送状态机;接收到从站的响应数据时,将事件状态机配置为接收状态机;在响应数据正确时,将接收状态机配置为可执行状态机;在响应数据错误时,将接收状态机配置为错误处理状态机。
继续参照图1,根据本发明的一个实施例,配置模块20还用于,在数据处理时,若主站网络通信接口和/或主站串行通信接口向从站发送广播命令,则将接收状态机配置为可执行状态机。
具体而言,在协议栈的功能使能完成后,对应的协议栈功能变为使能状态,使能状态直接退出事件处理函数不做事件处理,使能成功GET事件状态机。事件状态机分为就绪状态机、接收状态机、可执行状态机、发送状态机。在接收状态机下对数据进行解析,数据格式正确的情况下,事件状态机变为可执行状态机,依据功能码对应答数据进行封装,事件状态机变为发送状态机。另外,在主站访问从站的时,事件状态机也会变为发送状态机。
例如,在数据处理时,对于主站而言,初始化完成以后事件状态机变为就绪事件状态机,如果主站(例如第一网络通信接口和/或第一串行通信接口)向从站发送非广播命令,那么事件状态机由就绪状态变为发送状态机。在接收到从站的响应数据时,事件状态机由发送状态机变为接收状态机,响应数据正确时,事件状态机由接收状态机变为可执行状态机;响应数据错误时,事件状态机由接收状态机变为错误处理状态机。无论事件状态处于可执行状态机还是错误处理状态机时,当有新的命令需要下发时,事件状态机变为发送状态机,继续轮训。
根据本发明的一个实施例,配置模块20还用于,在数据处理时,若从站网络通信接口和/或从站串行通信接口接收到主站的数据帧,则将就绪状态机配置为接收状态机;在主站的数据帧为问询数据包或广播数据包时,将接收状态机配置为可执行状态机;在主站的数据帧为非广播数据包时,将可执行状态机配置为发送状态机。
根据本发明的一个实施例,配置模块20还用于,在从站网络通信接口和/或从站串行通信接口接收到主站的新数据帧时,将事件状态机配置为接收状态机。例如,可以在第二网络通信接口和/或第二串行通信接口接收到主站的新数据帧时,将事件状态机配置为接收状态机。
具体而言,对于MODBUS从站(例如,第二网络通信接口和/或第二串行通信接口)而言,初始化完成以后事件状态机变为就绪事件状态机,在从站接收到一包正确的数据帧后,事件状态机由就绪状态机变为接收状态机。在主站的数据帧为问询数据包或广播数据包时,事件状态机由接收状态机变为可执行状态机;在主站的数据帧为非广播数据包时,事件状态机由可执行状态机变为发送状态机。无论接收数据状态机是可执行状态机或者发送状态机,当接收到新的数据帧时,状态机均变为接收状态机。
作为一个具体示例,如图2至图6所示,设备A分别与设备B和设备C通过MODBUS-TCP协议方式进行通信,设备A与设备B通信时作为主站,设备A与设备C通信时作为从站;设备A分别与设备E和设备D通过MODBUS-RTU/ASCII协议方式进行通信,设备A与设备E通信时作为主站,设备A与设备D通信时作为从站。
首先需要对设备A的底层驱动进行配置,配置串口的端口、波特率、数据位和奇偶校验,并配置SPI(Serial Peripheral Interface,串行外设接口)通信方式、定时器中断、网口通信方式(如MODBUS-RTU,或者MODBUS-ASCII)。例如,配置设备A的串行通信接口,用于MODBUS-RTU/ASCII通信协议方式;配置设备A的网络通信接口,用于MODBUS-TCP主站通信协议方式;配置设备A的SPI通信接口,配合SPI通信接口转网口芯片,用于MODBUS-TCP从站通信协议方式。
设备A的串口通信接口和网口通信接口的底层驱动完成以后,使能MODBUS通信协议栈功能。如图3所示,对MODBUS通信协议栈进行初始化。初始化通讯地址,配置串口通信波特率、数据位、停止位、有无校验位。MODBUS-RTU/ASCII通信协议模式的主站通信地址配置不为0(广播地址),若从站通信地址配置范围为0-255,则设置从机地址,其中,当为RTU模式时,从机RTU模式初始化;当为ASCII模式时,从机ASCII模式初始化;如果两个模式均不是,则参数出错,输出eStatus=MB_EINVAL。通信地址的范围在0-255内,而从站通信地址配置不在0-255内,则判断为参数出错,输出eStatus=MB_EINVAL。MODBUS-RTU/ASCII通信协议模式的主站通信地址配置为0(广播地址),进入主机模式,当为RTU模式时,主机RTU模式初始化;当为ASCII模式时,主机ASCII模式初始化;如果两个模式均不是,则参数出错,输出eStatus=MB_EINVAL。
MODBUS-TCP通信协议的主站通信地址配置不为0(广播地址)时,设置端口号判断是否为从机模式,如果是,设置从机默认端口号,从机创建SOCKET套接字,Blind绑定IP和端口,Listen监听客户端(主机)请求,Accept等待客户端(主机)的连接。如果不是,设置主机默认端口号,主机创建SOCKET套接字,向服务器端(从机)发送连接请求。
当协议栈功能初始化成功后,如果参数出错,则创建事件标志(eMBPortEventInit),用于事件处理,其中,创建成功标志位为:eStatus=MB_EPORTERR;创建失败标志为:eMBCurrentMode=eMode,eMBState=STATE_DISABLED。
在MODBUS通信协议栈初始化完成后,默认进入接收初始状态。如图4所示,当通信协议为MODBUS-RTU(或者MODBUS-ASCII)时,每当串口接收到一个数据时,接收状态认为由STATE_RX_INIT(接收初始)状态变为STATE_RX_RCV(接收状态),并将事件状态机置为EVENT_RX_RCV(接收状态机)并开启T35中断定时器计时。当产生T35中断时,认为接收到一包完整的数据帧;当接收到数据长度大于最大字节长度,认为接收到错误帧,接收状态进入STATE_RX_ERROR(接收错误状态),当产生到T35中断时,接收状态重新进入初始状态。
对于MODBUS-TCP通信协议来说,接收到的数据是一帧数据时,当收到的数据帧的长度满足帧头加数据长度(接收到的数据帧长度=帧头+数据长度)时,将事件标志位设置为:EVENT_RX_RCV,当接收到的数据帧出现错误时,舍弃数据包,释放客户端(主机)。
当接收到一包正确的数据以后,需要对数据进行处理。如图5所示,在有数据发送请求时,对于MODBUS-RTU/ASCII通信协议的主站来说,发送状态为:STATE_M_TX_XMIT(开始传送状态),并开启发送口,在主站确定数据发送完成时,发送状态为:STATE_M_TX_XFWR,主站判断发送的数据是是否为广播数据,如果是,定时器转换延时中断开始,然后将发送状态更改为:STATE_M_TX_IDLE(空闲状态)。如果否,定时器响应超时中断,在确定接收到数据为广播时,则将发送状态更改为:STATE_M_TX_IDLE(空闲状态),同时关闭定时器;如果当前数据帧不是广播帧,则确定监听错误,同时将主机发送状态机设置为空闲状态,关闭定时器。对于MODBUS-RTU/ASCII通信协议的主站来说,需要根据主站的下发的命令来校验返回的数据的是否满足操作码、寄存器地址起始、寄存器地址长度、数据校验是否正确。对于MODBUS-RTU/ASCII通信协议的从站来说,需要校验功能码、寄存器地址合理性、寄存器地址长度合理性,符合协议要求回复应答帧,不符合协议要求当作错误帧进行处理。
当有数据需要发送时,需要调用协议栈的发送模块,如图5所示。针对MODBUS-TCP通信协议的主站来说,有命令下发时,会触发EV_FRAME_SENT(发送事件状态机),对于广播数据而言无需等待数据应答帧,定时器延时转换时间到认为从站数据接收完成,一轮命令下发完成;对于非广播地址而言,需要等待数据从站的应答,从站数据在规定时间内进行应答认为一轮命令下发完成,从站未在规定时间发生应答,认为数据出错,释放此报命令下发状态,重新进行下一轮命令的下发。针对MODBUS-TCP通信协议的从站而言,数据帧的发送是针对主站的应答做处理,当事件状态机进入EV_EXECUTE(可执行事件时),依据数据协议不同,对发送数据进行打包发送,发送完成事件状态机变为就绪状态。
如图6所示,对于MODBUS通信协议栈的主站而言,初始化完成后,事件状态机变为就绪事件状态机(EV_READY),当有命令需要发送时,事件状态由就绪状态机变为发送状态机(EV_FRAME_SENT)。对于非广播命令而言,当收到从站对主站命令的响应时,事件状态机由发送状态机变为接收状态机(EV_FRAME_RECEIVED),其中,当响应包正确时,事件状态机由接收状态机变为可执行状态机(EV_EXECUTE);当响应包错误时,事件状态机由接收状态机变为错误处理状态机(EV_MASTER_ERROR_PROCESS)。对于广播命令,发送完成后,事件状态机由接收状态变为可执行状态机。无论事件状态处于可执行状态机还是错误处理状态机时,当有新的命令需要下发时,事件状态机变为发送状态机,继续轮训。
对于MODBUS通信协议栈的从站而言,初始化完成后,事件状态机变为事件就绪状态机(EV_READY),当接收到一包正确的数据帧时,事件状态机变为接收状态机(EV_FRAME_RECEIVED)。其中,当接受到的数据是广播数据或者是对自己的询问命令,事件状态机由接收状态机变为可执行状态机(EV_EXECUTE);当接收的数据不是广播数据时,发送状态机由可执行状态机变为发送状态机(EV_FRAME_SENT)。无论接收数据状态机是可执行状态机或者发送状态机,当接收到新的数据帧时,事件状态机均变为接收状态机。
需要说明的是,上述实施例仅作为本发明的一个实施例,在其它例子或实施方式或实施例中,可根据本发明来选择,在此不作具体限定。
综上所述,根据本发明实施例的可兼容多协议的通信***,配置模块配置多个串行通信接口实现MODBUS-RTU/MODBUS-ASCII通信协议,并配置多个网络通信接口实现MODBUS-TCP主站通信协议或从站通信协议,同时还对通信接口的接口参数进行配置。由此,该通信***通过接口模块和配置模块来实现MODBUS通信协议栈同时支持MODBUS-RTU/ASCII和MODBUS-TCP通信协议模式,并实现这三种协议的主站和从站功能,增加了基于MODBUS通信协议栈的应用范围并降低了通信成本。
对应上述实施例,本发明实施例还提出了一种控制方法。
如图7所示,本发明实施例的可兼容多协议的通信***的控制方法可包括以下步骤:
S101,配置多个串行通信接口实现MODBUS-RTU/MODBUS-ASCII通信协议。
S102,配置多个网络通信接口实现MODBUS-TCP主站通信协议或从站通信协议。
S103,对多个串行通信接口和多个网络通信接口的接口参数进行配置。
根据本发明的一个实施例,多个网络通信接口中的至少一个作为主站,多个网络通信接口中的至少一个作为从站,多个串行通信接口中至少一个作为主站,多个串行通信接口中的至少一个作为从站。
根据本发明的一个实施例,对多个串行通信接口和多个网络通信接口的接口参数进行配置包括:在封装发送数据包时,按照第一格式对主站网络通信接口发送的数据进行封装,并按照第二格式对主站串行通信接口发送的数据进行封装。
根据本发明的一个实施例,对多个串行通信接口和多个网络通信接口的接口参数进行配置还包括:在封装应答数据包时,按照第一格式对从站网络通信接口应答的数据进行封装,并按照第二格式对从站串行通信接口应答的数据进行封装。
根据本发明的一个实施例,对多个串行通信接口和多个网络通信接口的接口参数进行配置还包括:将从站网络通信接口的数据接收方式配置为网口中断+DMA方式,并将从站串行通信接口的数据接收方式配置为串口中断方式。
根据本发明的一个实施例,对多个串行通信接口和多个网络通信接口的接口参数进行配置还包括:在数据处理时,若主站网络通信接口和/或主站串行通信接口向从站发送非广播命令,则将事件状态机配置为发送状态机;接收到从站的响应数据时,将事件状态机配置为接收状态机;在响应数据正确时,将接收状态机配置为可执行状态机;在响应数据错误时,将接收状态机配置为错误处理状态机。
根据本发明的一个实施例,对多个串行通信接口和多个网络通信接口的接口参数进行配置还包括:在数据处理时,若主站网络通信接口和/或主站串行通信接口向从站发送广播命令,则将接收状态机配置为可执行状态机。
根据本发明的一个实施例,对多个串行通信接口和多个网络通信接口的接口参数进行配置还包括:在数据处理时,若从站网络通信接口和/或从站串行通信接口接收到主站的数据帧,则将就绪状态机配置为接收状态机;在主站的数据帧为问询数据包或广播数据包时,将接收状态机配置为可执行状态机;在主站的数据帧为非广播数据包时,将可执行状态机配置为发送状态机。
根据本发明的一个实施例,对多个串行通信接口和多个网络通信接口的接口参数进行配置还包括:在从站网络通信接口和/或从站串行通信接口接收到主站的新数据帧时,将事件状态机配置为接收状态机。
需要说明的是,本发明实施例的可兼容多协议的通信***的控制方法中未披露的细节,请参照本发明实施例的可兼容多协议的通信***中所披露的细节,具体这里不再赘述。
本发明实施例的一种可兼容多协议的通信***的控制方法,通过上述的可兼容多协议的通信***,增加了基于MODBUS通信协议栈的应用范围并降低了通信成本。
对应上述实施例,本发明还提出了一种电子设备。
如图8所示,本发明实施例的电子设备200包括上述的可兼容多协议的通信***220和数据处理模块210,可兼容多协议的通信***220包括配置模块20,其中,数据处理模块210用于根据主站网络通信接口和/或主站串行通信接口向从站发送的命令,确定事件状态机的状态;数据处理模块210还用于根据从站网络通信接口和/或从站串行通信接口接收到主站的数据帧,确定事件状态机的状态;配置模块20用于根据事件状态机的状态对状态机进行配置。
需要说明的时,本发明实施例的可兼容多协议的通信***中未披露的细节,请参照本发明实施例的可兼容多协议的通信***中所披露的细节,具体这里不再赘述。
本发明实施例的电子设备,通过上述的可兼容多协议的通信***和数据处理模块,实现了MODBUS通信协议栈同时支持MODBUS-RTU/ASCII和MODBUS-TCP通信协议的模式,并实现这三种协议的主站和从站功能,增加了基于MODBUS通信协议栈的应用范围并降低了通信成本。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,本发明实施例中所使用的“第一”、“第二”等术语,仅用于描述目的,而不可以理解为指示或者暗示相对重要性,或者隐含指明本实施例中所指示的技术特征数量。由此,本发明实施例中限定有“第一”、“第二”等术语的特征,可以明确或者隐含地表示该实施例中包括至少一个该特征。在本发明的描述中,词语“多个”的含义是至少两个或者两个及以上,例如两个、三个、四个等,除非实施例中另有明确具体的限定。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (11)
1.一种可兼容多协议的通信***,其特征在于,包括:接口模块和配置模块,所述接口模块包括:多个串行通信接口和多个网络通信接口,其中,
所述配置模块,用于配置多个所述串行通信接口实现MODBUS-RTU/MODBUS-ASCII通信协议;
所述配置模块,还用于配置多个所述网络通信接口实现MODBUS-TCP主站通信协议或从站通信协议;
所述配置模块,还用于对多个所述串行通信接口和多个所述网络通信接口的接口参数进行配置。
2.根据权利要求1所述的***,其特征在于,多个所述网络通信接口中的至少一个作为主站,多个所述网络通信接口中的至少一个作为从站,多个所述串行通信接口中至少一个作为主站,多个所述串行通信接口中的至少一个作为从站。
3.根据权利要求2所述的***,其特征在于,所述配置模块还用于,
在封装发送数据包时,按照第一格式对主站网络通信接口发送的数据进行封装,并按照第二格式对主站串行通信接口发送的数据进行封装。
4.根据权利要求3所述的***,其特征在于,所述配置模块还用于,
在封装应答数据包时,按照所述第一格式对从站网络通信接口应答的数据进行封装,并按照所述第二格式对从站串行通信接口应答的数据进行封装。
5.根据权利要求2所述的***,其特征在于,所述配置模块还用于,将从站网络通信接口的数据接收方式配置为网口中断+DMA方式,并将从站串行通信接口的数据接收方式配置为串口中断方式。
6.根据权利要求2所述的***,其特征在于,所述配置模块还用于,
在数据处理时,若主站网络通信接口和/或主站串行通信接口向从站发送非广播命令,则将事件状态机配置为发送状态机;
接收到从站的响应数据时,将所述事件状态机配置为接收状态机;
在所述响应数据正确时,将所述接收状态机配置为可执行状态机;
在所述响应数据错误时,将所述接收状态机配置为错误处理状态机。
7.根据权利要求2所述的***,其特征在于,所述配置模块还用于,
在数据处理时,若主站网络通信接口和/或主站串行通信接口向从站发送广播命令,则将接收状态机配置为可执行状态机。
8.根据权利要求2所述的***,其特征在于,所述配置模块还用于,
在数据处理时,若从站网络通信接口和/或从站串行通信接口接收到主站的数据帧,则将就绪状态机配置为接收状态机;在所述主站的数据帧为问询数据包或广播数据包时,将所述接收状态机配置为可执行状态机;
在所述主站的数据帧为非广播数据包时,将所述可执行状态机配置为发送状态机。
9.根据权利要求8所述的***,其特征在于,所述配置模块还用于,
在所述从站网络通信接口和/或所述从站串行通信接口接收到主站的新数据帧时,将事件状态机配置为所述接收状态机。
10.一种如权利要求1-9中任一项所述的可兼容多协议的通信***的控制方法,其特征在于,包括:
配置多个串行通信接口实现MODBUS-RTU/MODBUS-ASCII通信协议;
配置多个网络通信接口实现MODBUS-TCP主站通信协议或从站通信协议;
对多个所述串行通信接口和多个所述网络通信接口的接口参数进行配置。
11.一种电子设备,其特征在于,包括如权利要求1-9中任一项所述的可兼容多协议的通信***和数据处理模块,所述可兼容多协议的通信***包括配置模块,其中,
所述数据处理模块,用于根据主站网络通信接口和/或主站串行通信接口向从站发送的命令,确定事件状态机的状态;
所述数据处理模块,还用于根据从站网络通信接口和/或从站串行通信接口接收到主站的数据帧,确定事件状态机的状态;
所述配置模块,用于根据所述事件状态机的状态对所述状态机进行配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211312802.7A CN116055583A (zh) | 2022-10-25 | 2022-10-25 | 可兼容多协议的通信***及其控制方法、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211312802.7A CN116055583A (zh) | 2022-10-25 | 2022-10-25 | 可兼容多协议的通信***及其控制方法、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116055583A true CN116055583A (zh) | 2023-05-02 |
Family
ID=86120638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211312802.7A Pending CN116055583A (zh) | 2022-10-25 | 2022-10-25 | 可兼容多协议的通信***及其控制方法、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116055583A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117336380A (zh) * | 2023-12-01 | 2024-01-02 | 浙江国利信安科技有限公司 | 用于通信的网络通信***、方法、设备和介质 |
-
2022
- 2022-10-25 CN CN202211312802.7A patent/CN116055583A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117336380A (zh) * | 2023-12-01 | 2024-01-02 | 浙江国利信安科技有限公司 | 用于通信的网络通信***、方法、设备和介质 |
CN117336380B (zh) * | 2023-12-01 | 2024-03-05 | 浙江国利信安科技有限公司 | 用于通信的网络通信***、方法、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3783847B1 (en) | Vehicle-mounted gateway communication method, vehicle-mounted gateway, and smart vehicle | |
US9740655B2 (en) | Data transmission using a protocol exception state | |
US8369244B2 (en) | Method for operating an ethernet-capable field-bus device | |
US8306004B2 (en) | Communication network system having high-ranking network and low-ranking networks, interchange terminal connecting high-ranking network and low-ranking network, microcomputer controlling connection between transmission line of low-ranking network and transmission line of high-ranking network, and communication transmitter-receiver connected with transmission line of low-ranking network and transmission line of high-ranking network | |
US8780772B2 (en) | Communication protocol for wireless enhanced controller area networks | |
US7584313B1 (en) | Method and system for connecting a wireless USB host and a wired USB device | |
US20120327950A1 (en) | Method for Transmitting Data Packets | |
US11729021B2 (en) | User station for a serial bus system and method for communication in a serial bus system | |
CN116055583A (zh) | 可兼容多协议的通信***及其控制方法、电子设备 | |
KR101676353B1 (ko) | 이종 네트워크 상의 메시지 제어 방법 및 장치 | |
CN115868184A (zh) | 加速面向ble连接的服务上的控制过程 | |
US20080069026A1 (en) | Repeater for WUSB applications | |
CN106664231B (zh) | 具有检验功能的传输单元 | |
KR101676239B1 (ko) | 차량 네트워크 시스템의 게이트웨이의 데이터 처리 방법 | |
CN113676875A (zh) | 一种车载设备的通信方法、车载设备的通信***和车辆 | |
US20050141555A1 (en) | Method for generating commands for network controller modules of peripheral devices | |
JP2003198572A (ja) | 確定的フィールドバス及びその種のバスの管理方法 | |
CN115460036B (zh) | 基于uart实现多路can数据收发的***、方法、设备及存储介质 | |
CN113794713B (zh) | Fc-ae-1553协议桥接mil-std-1553和uart的通讯处理方法 | |
CN111404793B (zh) | 一种控制物理can口和虚拟can口进行映射的方法,***,设备及可读存储介质 | |
CN101617509B (zh) | 用于把数据传送给多个控制装置的方法 | |
Cisco | Configuring LLC2 and SDLC Parameters | |
US7334040B2 (en) | Method of transmission between two processors of a radio communication unit | |
Cisco | Configuring LLC2 and SDLC Parameters | |
Belliardi et al. | Modbus protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |