CN110519138A - 一种Profibus-DP主站协议的实现方法及系统 - Google Patents

一种Profibus-DP主站协议的实现方法及系统 Download PDF

Info

Publication number
CN110519138A
CN110519138A CN201910738728.7A CN201910738728A CN110519138A CN 110519138 A CN110519138 A CN 110519138A CN 201910738728 A CN201910738728 A CN 201910738728A CN 110519138 A CN110519138 A CN 110519138A
Authority
CN
China
Prior art keywords
aperiodic
fpga
slave station
data buffer
stone
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.)
Granted
Application number
CN201910738728.7A
Other languages
English (en)
Other versions
CN110519138B (zh
Inventor
李丽娜
李蒙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Hollysys Co Ltd
Original Assignee
Beijing Hollysys Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Hollysys Co Ltd filed Critical Beijing Hollysys Co Ltd
Priority to CN201910738728.7A priority Critical patent/CN110519138B/zh
Publication of CN110519138A publication Critical patent/CN110519138A/zh
Application granted granted Critical
Publication of CN110519138B publication Critical patent/CN110519138B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40221Profibus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Abstract

本申请公开了一种Profibus‑DP主站协议的实现方法及系统,所述实现系统包括控制器CPU、FPGA软核和FPGA硬核,其中:FPGA软核连接在所述控制器CPU与所述FPGA硬核之间,用于实现Profibus‑DP的用户层通信协议;FPGA硬核设置有与FPGA软核相连接的共享数据缓冲区,并通过Profibus总线与各个从站相连接,用于实现Profibus‑DP的物理层及数据链路层通信协议。本申请通过使用FPGA进行软件架构设计,对协议栈功能模块进行优化分配,提高了协议处理性能的同时大大提高了系统闭环控制性能,能轻松地实现Profibus‑DP通信协议规定的最高传输速率,且能保持应用接口灵活性。

Description

一种Profibus-DP主站协议的实现方法及系统
技术领域
本发明涉及但不限于工业自动化技术领域,尤其涉及一种Profibus-DP主站协议的实现方法及系统。
背景技术
程序总线网络(PROcess FIeld BUS,Profibus)是一种国际化、开放式、不依赖于设备生产商的现场总线标准,广泛适用于制造业自动化、流程工业自动化和楼宇、交通电力等其他领域自动化。Profibus标准包括三个部分,即Profibus-DP(DecentralizedPeriphery,分布式外设)、Profibus-PA(Process Automation,过程自动化)、Profibus-FMS(Fieldbus Message Specification,现场总线信息规范)。
目前,Profibus-DP通信协议的实现方式主要包括以下几种:
方案一:使用高级精简指令集机器(Advanced RISC Machines,ARM)实现。这种解决方案成本低,但是波特率无法达到Profibus-DP通信协议的最高传输速率(12Mbps);
方案二:使用通信协议芯片+中央处理器(Central Processing Unit,CPU)或复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)。这种解决方案实现功能完整,性能良好,但开发包昂贵,成本高;
方案三:使用现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)+微控制单元(Microcontroller Unit,MCU),其中,FPGA实现协议的解包组包,其他工作交给MCU实现。这种解决方案能达到Profibus-DP通信协议支持的最高传输速率,但是面对现如今对工业控制系统的闭环控制性能的要求,其性能还不够优良。
发明内容
本发明实施例提供了一种Profibus-DP主站协议的实现方法及系统,能够达到Profibus-DP通信协议的最高传输速率、成本低且提高工业控制系统的闭环控制性能。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种Profibus-DP主站协议的实现系统,包括控制器CPU、FPGA软核和FPGA硬核,其中:
所述FPGA软核,连接在所述控制器CPU与所述FPGA硬核之间,用于实现Profibus-DP的用户层通信协议;
所述FPGA硬核,设置有与所述FPGA软核相连接的共享数据缓冲区,并通过Profibus总线与各个从站相连接,用于实现Profibus-DP的物理层及数据链路层通信协议。
在一种示例性实施例中,所述共享数据缓冲区包括周期数据缓冲区、非周期数据缓冲区及从站信息列表缓冲区。
在一种示例性实施例中,所述FPGA软核具体用于:
接收所述控制器CPU发送的总线参数和从站信息并解析,将解析出的总线参数和从站信息分别存储至非周期数据缓冲区及从站信息列表缓冲区,启动协议栈运行;查询所述控制器CPU是否有非周期通信任务,如果有,则将所述非周期通信任务填充至非周期数据缓冲区;并查询非周期数据缓冲区是否有非周期应答消息,如果有非周期应答消息,则将非周期应答消息发送至所述控制器CPU。
在一种示例性实施例中,所述FPGA软核还用于:接收所述FPGA硬核的中断信号,执行中断处理,所述中断处理为控制所述FPGA硬核将各个从站的周期应答消息拷贝至周期数据缓冲区。
在一种示例性实施例中,所述FPGA硬核具体用于:获取总线参数和从站信息,启动与各个从站之间的周期数据通信;接收各个从站的周期应答消息并维护从站状态;查询非周期数据缓冲区是否有非周期通信任务,如果有非周期通信任务,则根据非周期通信任务发送非周期消息至所述各个从站;接收所述从站的非周期应答消息,并填充至非周期数据缓冲区。
在一种示例性实施例中,所述FPGA硬核还用于:完成与所述各个从站之间的周期数据通信后,产生中断信号并发送至所述FPGA软核。
在一种示例性实施例中,所述FPGA软核包括应用命令解析执行器、配置解析器、中断处理器、非周期消息队列和非周期任务处理器,其中:
所述应用命令解析执行器,用于接收所述控制器CPU发送的数据集,所述数据集包括总线参数、从站信息和非周期通信任务,将非周期通信任务填充至非周期消息队列;
所述配置解析器,用于对接收到的总线参数及从站信息进行解析,并将解析到的内容填充至共享数据缓冲区和从站信息列表中;
所述中断处理器,用于控制所述控制器CPU与所述FPGA硬核之间的周期应答消息的拷贝;
非周期消息队列,用于执行非周期通信任务的缓存及读写操作;
非周期任务处理器,用于执行非周期应答消息的处理,检测非周期消息队列内是否有非周期通信任务,如果有非周期通信任务,填充非周期通信任务至非周期数据缓冲区。
在一种示例性实施例中,所述FPGA硬核包括主状态机模块、现场总线数据链路层FDL状态机模块、组包解包模块、数据拷贝模块、采样时钟生成模块、串行收发器模块,其中:
主状态机模块,用于管理通信协议的运行状态;
FDL状态机模块,用于根据解析出的从站信息列表实现通信协议的链路层状态,控制主从通信流程;
组包解包模块,用于完成报文的组包发送及接收解析;
数据拷贝模块,用于接收所述FPGA软核的中断处理指令,将各个从站的周期应答消息拷贝至周期数据缓冲区;
采样时钟生成模块,用于为接收采样提供时钟;
串行收发器模块,用于实现串并、并串信号的转换;
所述共享数据缓冲区,用于缓存解析出的总线参数、接收的周期应答消息、非周期通信任务、非周期应答消息。
在一种示例性实施例中,所述从站信息列表中的从站信息包括:从站站号、从站的输入输出数据在共享数据缓冲区的指针、输入输出数据长度、从站的通信状态机、从站是否处于被组态激活状态、有无诊断数据标志、诊断数据在共享数据缓冲区的指针和长度、参数配置数据在共享数据缓冲区中的指针及长度。
本发明实施例还提供了一种Profibus-DP主站协议的实现系统,包括控制器CPU、FPGA软一种Profibus-DP主站协议的实现方法,所述Profibus-DP主站包括控制器CPU、FPGA软核和FPGA硬核,所述FPGA软核连接在所述控制器CPU与所述FPGA硬核之间,所述FPGA硬核设置与所述FPGA软核相连接的共享数据缓冲区,并通过Profibus总线与各个从站相连接,
所述实现方法包括:
通过所述FPGA软核实现Profibus-DP的用户层通信协议;
通过所述FPGA硬核实现Profibus-DP的物理层及数据链路层通信协议。
在一种示例性实施例中,所述共享数据缓冲区包括周期数据缓冲区、非周期数据缓冲区和从站信息列表缓冲区;所述实现方法具体包括:
所述FPGA软核接收控制器CPU发送的总线参数和从站信息并解析,将解析出的总线参数和从站信息分别存储至非周期数据缓冲区及从站信息列表缓冲区,启动协议栈运行;
所述FPGA硬核获取总线参数和从站信息,启动与各个从站之间的周期数据通信;接收各个从站的周期应答消息并维护从站状态;
在一种示例性实施例中,所述实现方法还包括:
所述FPGA硬核完成与各个从站之间的周期数据通信后,产生中断信号并发送至所述FPGA软核;
所述FPGA软核接收所述FPGA硬核的中断信号,执行中断处理,所述中断处理为控制所述FPGA硬核将各个从站的周期应答消息拷贝至周期数据缓冲区;
所述FPGA软核查询控制器CPU是否有非周期通信任务,如果有,则将所述非周期通信任务填充至非周期数据缓冲区。
在一种示例性实施例中,所述实现方法还包括:
所述FPGA硬核查询非周期数据缓冲区是否有非周期通信任务,如果有非周期通信任务,则根据非周期通信任务发送非周期消息至从站;
所述FPGA硬核接收从站的非周期应答消息,并填充至非周期数据缓冲区;
所述FPGA软核查询非周期数据缓冲区是否有非周期应答消息,如果有非周期应答消息,则将非周期应答消息发送至所述控制器CPU。
本发明实施例的技术方案,具有如下有益效果:
本发明实施例提供的Profibus-DP主站协议的实现方法及系统,通过使用FPGA进行软件架构设计,对协议栈功能模块进行优化分配,提高了协议处理性能的同时大大提高了系统闭环控制性能,能轻松地实现Profibus-DP通信协议规定的最高传输速率,且能保持应用接口灵活性。
完全基于可编程逻辑器件,不存在任何技术瓶颈和性能瓶颈,通信传输速率能达到通信协议的最高传输速率,能够缩短总线轮询周期,提高工业控制系统闭环控制性能,成本也比采用ASIC芯片要低。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例的第一种Profibus-DP主站协议的实现系统的结构示意图;
图2为本发明实施例的第二种Profibus-DP主站协议的实现系统的结构示意图;
图3为本发明实施例的一种Profibus-DP主站协议的实现方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,根据本发明实施例的一种Profibus-DP主站协议的实现系统,包括控制器CPU 101、FPGA软核102和FPGA硬核103,其中:
所述FPGA软核102,连接在所述控制器CPU 101与所述FPGA硬核103之间,用于实现Profibus-DP的用户层通信协议;
所述FPGA硬核103设置有与所述FPGA软核102相连接的共享数据缓冲区,并通过Profibus总线与各个从站相连接,用于实现Profibus-DP的物理层及数据链路层通信协议。
在该实施例中,所述控制器CPU 101主要用于与上层应用软件进行交互。
在一种示例性实施例中,所述共享数据缓冲区包括周期数据缓冲区、非周期数据缓冲区及从站信息列表缓冲区。
在一种示例性实施例中,所述FPGA软核102具体用于:接收所述控制器CPU 101发送的总线参数和从站信息并解析,将解析出的总线参数和从站信息分别存储至非周期数据缓冲区及从站信息列表缓冲区,启动协议栈运行;查询所述控制器CPU 101是否有非周期通信任务,如果有,则将所述非周期通信任务填充至非周期数据缓冲区;并查询非周期数据缓冲区是否有非周期应答消息,如果有非周期应答消息,则将非周期应答消息发送至所述控制器CPU 101。
在一种示例性实施例中,所述FPGA软核102还用于:接收所述FPGA硬核103的中断信号,执行中断处理,所述中断处理为控制所述FPGA硬核103将各个从站的周期应答消息拷贝至周期数据缓冲区;
在一种示例性实施例中,所述FPGA硬核103具体用于:获取总线参数和从站信息,启动与各个从站之间的周期数据通信;接收各个从站的周期应答消息并维护从站状态;查询非周期数据缓冲区是否有非周期通信任务,如果有非周期通信任务,则根据非周期通信任务发送非周期消息至所述各个从站;接收所述从站的非周期应答消息,并填充至非周期数据缓冲区。
在一种示例性实施例中,所述FPGA硬核103还用于:完成与各个从站之间的周期数据通信后,产生中断信号并发送至所述FPGA软核102。。
在一种示例性实施例中,如图2所示,所述FPGA软核102包括应用命令解析执行器、配置解析器、中断处理器、非周期消息队列和非周期任务处理器,其中:
所述应用命令解析执行器,用于接收所述控制器CPU 101发送的数据集,所述数据集包括总线参数、从站信息和非周期通信任务,将非周期通信任务填充至非周期消息队列;
所述配置解析器,用于对接收到的总线参数及从站信息进行解析,并将解析到的内容填充至共享数据缓冲区和从站信息列表中;
所述中断处理器,用于控制所述控制器CPU 101与所述FPGA硬核103之间的周期应答消息的拷贝;
非周期消息队列,用于执行非周期通信任务的缓存及读写操作;
非周期任务处理器,用于执行非周期应答消息的处理,检测非周期消息队列内是否有非周期通信任务,如果有非周期通信任务,填充非周期通信任务至非周期数据缓冲区。
在一种示例性实施例中,如图2所示,所述FPGA硬核103包括主状态机模块、现场总线数据链路层(Fieldbus Data Link layer,FDL)状态机模块、组包解包模块、数据拷贝模块、采样时钟生成模块、串行收发器模块,其中:
主状态机模块,用于管理通信协议的运行状态;
FDL状态机模块,用于根据解析出的从站信息列表实现通信协议的链路层状态,控制主从通信流程;
组包解包模块,用于完成报文的组包发送及接收解析;
数据拷贝模块,用于接收所述FPGA软核102的中断处理指令,将各个从站的周期应答消息拷贝至周期数据缓冲区;
采样时钟生成模块,用于为接收采样(即对接收到的总线上的信号进行采样,以得到总线上真正要传输的数字信号)提供时钟;
串行收发器模块,用于实现串并、并串信号的转换(Profibus-DP主站内可以使用并行信号线传输数据,Profibus-DP总线上传输的信号为串行信号,因此,Profibus-DP主站在发送和接收数据时,需要进行串并、并串信号的转换);
所述共享数据缓冲区,用于缓存解析出的总线参数、接收的周期应答消息、非周期通信任务、非周期应答消息。
在一种示例性实施例中,所述从站信息列表缓冲区,用于缓存从站信息列表。
在一种示例性实施例中,所述从站信息列表中的从站信息包括:从站站号、从站的输入输出数据在共享数据缓冲区的指针、输入输出数据长度、从站的通信状态机、从站是否处于被激活状态、有无诊断数据标志、诊断数据在共享数据缓冲区的指针和长度、参数配置数据在共享数据缓冲区中的指针及长度。所述输入输出数据包括周期消息、周期应答消息、非周期消息、非周期应答消息。
本发明实施例还提供了一种Profibus-DP主站协议的实现方法,所述Profibus-DP主站包括控制器CPU、FPGA软核和FPGA硬核,所述FPGA软核连接在所述控制器CPU与所述FPGA硬核之间,所述FPGA硬核设置有与所述FPGA软核相连接的共享数据缓冲区,并通过Profibus总线与各个从站相连接,
所述实现方法包括:
通过所述FPGA软核实现Profibus-DP的用户层通信协议;
通过所述FPGA硬核实现Profibus-DP的物理层及数据链路层通信协议。
在一种示例性实施例中,所述共享数据缓冲区包括周期数据缓冲区、非周期数据缓冲区和从站信息列表缓冲区;所述实现方法具体包括:
所述FPGA软核接收控制器CPU发送的总线参数和从站信息并解析,将解析出的总线参数和从站信息分别存储至非周期数据缓冲区及从站信息列表缓冲区,启动协议栈运行;
所述FPGA硬核获取总线参数和从站信息,启动与各个从站之间的周期数据通信;接收各个从站的周期应答消息并维护从站状态;
在一种示例性实施例中,所述实现方法还包括:
所述FPGA硬核完成与各个从站之间的周期数据通信后,产生中断信号并发送至所述FPGA软核;
所述FPGA软核接收所述FPGA硬核的中断信号,执行中断处理,所述中断处理为控制所述FPGA硬核将各个从站的周期应答消息拷贝至周期数据缓冲区;
所述FPGA软核查询控制器CPU是否有非周期通信任务,如果有,则将所述非周期通信任务填充至非周期数据缓冲区。
在一种示例性实施例中,所述实现方法还包括:
所述FPGA硬核查询非周期数据缓冲区是否有非周期通信任务,如果有非周期通信任务,则根据非周期通信任务发送非周期消息至从站;
所述FPGA硬核接收从站的非周期应答消息,并填充至非周期数据缓冲区;
所述FPGA软核查询非周期数据缓冲区是否有非周期应答消息,如果有非周期应答消息,则将非周期应答消息发送至所述控制器CPU。
本发明实施例公开了一种高性能的Profibus-DP通信协议的硬件和软件实现方法,实现框图如图2Profibus-DP主站系统结构框图之部件现场总线通信协议模块。
本发明实施方案中侧重高性能Profibus-DP主站通信协议的软件架构设计。硬件完全采用了现场可编程逻辑门阵列作为通信协议的主体硬件,用可编程逻辑门阵列搭建一个软核CPU(即FPGA软核)和一个IPcore(即FPGA硬核),软核CPU主要负责通信协议的应用层;IPcore主要实现数据拷贝、通信协议的物理层、数据链路层等。另外,IPcore内搭建的共享数据缓冲区、从站信息列表缓冲区用于软核CPU与IPcore内部进行消息的交互。
软核CPU具体实现了接收及解析通信协议配置和组态数据、并将解析出的总线参数集、从站配置参数集指针填充至IPcore的共享数据缓冲区和从站信息列表缓冲区中的对应位置;控制控制器CPU与IPcore之间的周期数据和诊断数据的交互;同时实现了非周期消息队列及非周期通信任务的处理。
IPcore具体实现主状态机模块,FDL状态机模块,组包解包模块,串行收发器模块等,并按照数据解析结果维护从站信息列表,执行控制器CPU与IPCore之间的周期数据和诊断数据的拷贝。
本发明实施的现场总线通信协议模块的软件运行流程见图3,主要包括:
现场总线通信协议模块上电后,首先进行系统配置初始化,初始化完毕后软核CPU即被启动。软核CPU启动后,接收控制器CPU下发的数据集并解析,并将解析出的总线参数和从站信息填充至共享数据缓冲区和从站信息列表缓冲区的对应位置中,并启动协议栈运行。软核CPU周期性的检测共享数据缓冲区内的协议栈运行状态,当协议栈运行状态指示协议栈正常运行后,软核CPU查询控制器CPU是否有非周期通信任务,如果有,会将非周期通信任务填充至非周期消息队列中,并查询是否有非周期应答消息,如果有非周期应答消息,则进行处理(即将非周期应答消息发送至控制器CPU);同时,查询非周期消息队列内是否有非周期通信任务,如果有,则根据最先填充至非周期消息队列内的非周期通信任务填充非周期消息至共享数据缓冲区的非周期数据缓冲区,等待IPcore的处理及发送。如果在运行过程中,收到IPcore的中断信号,则软核CPU执行中断处理,控制IPcore将各个从站的周期应答消息拷贝至共享数据缓冲区的周期数据缓冲区。
IPcore接收到协议栈启动命令后,开始启动主状态机模块和FDL状态机模块,主状态机模块控制协议栈运行状态,FDL状态机模块检测从站信息列表并根据解析结果启动主站请求消息的打包,主站请求消息打包发送后等待接收应答消息,并根据解析出的应答消息来维护从站信息列表中的从站状态,如果解析出的应答消息是周期数据包或诊断数据包,则IPcore会将有效数据区拷贝至共享数据缓冲区的三重缓冲区(Triplebuffer)中,检测到最后一个配置的从站站点完成周期通信后,IPcore会产生中断信号,启动软核CPU控制Triplebuffer中的数据拷贝,通过Triplebuffer避免软核CPU和IPcore之间的数据拷贝冲突;同时FDL状态机模块跳转至非周期通信的处理,查询共享数据缓冲区的非周期数据缓冲区是否有有效的消息要处理,如果有,则执行处理并发送,并将收到的非周期应答信息填充至非周期数据缓冲区并置非周期应答标志,通知软核CPU执行非周期应答消息的处理。
如图2所示,软核CPU侧软件结构的核心部件为用户接口层的应用命令解析执行器,配置解析器、中断处理器、非周期消息队列及非周期任务处理器,其中:
应用命令解析执行器,主要负责接收协议应用层的消息并解析执行,包括工程配置信息、非周期任务等;
配置解析器,主要对接收到的工程配置信息进行解析,并将解析到的内容填充至共享数据缓冲区和从站信息列表中;
中断处理器,主要实现控制控制器CPU与IPcore之间的过程数据和诊断数据的拷贝;
非周期消息队列,主要执行非周期消息的缓存及读写操作;
非周期任务处理器,主要执行非周期应答消息的处理、检测非周期消息队列内是否有待发送的非周期消息,将待发送的非周期消息填充至共享数据缓冲区的非周期数据缓冲区,等待IPcore的处理。
IPcore的逻辑设计主要完成搭建共享数据缓冲区和从站信息列表缓冲区、主状态机模块、FDL状态机模块、组包解包模块、数据拷贝模块、采样时钟生成模块及串行收发器模块等,其中:
主状态机模块,主要管理通信协议的运行状态:DDLM_OFFLINE、DDLM_OPERATE、DDLM_STOP;
FDL状态机模块,主要按照从站信息列表解析结果实现通信协议的链路层状态,控制主从通信流程;
数据拷贝模块:主要执行共享数据缓冲区内的Triplebuffer周期数据区和诊断数据区的拷贝;
采样时钟生成模块,主要为接收采样提供时钟,保证高通信速率下的采样准确性;
异步收发器模块:实现串并、并串信号的转换。
其中,从站信息列表包括:从站站号、从站的输入输出数据在共享数据区的指针,输入输出数据长度,从站的通信状态机、从站是否处于被激活状态、有无诊断数据标志,诊断数据在共享数据的指针和长度、参数配置数据在共享数据缓冲区中的指针及长度。
采用本发明实施例实现的Profibus-DP主站协议的实现方法及系统,未采用通信协议专用芯片和ARM芯片,完全依托可编程逻辑门阵列本身资源并合理进行软件架构设计,对协议栈功能模块优化分配,相比之前的方案,提高了协议处理性能的同时大大提高了系统闭环控制性能,能轻松地实现Profibus-DP通信协议规定的最高传输速率,且能保持应用接口灵活性。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种Profibus-DP主站协议的实现系统,其特征在于,包括控制器CPU、FPGA软核和FPGA硬核,其中:
所述FPGA软核,连接在所述控制器CPU与所述FPGA硬核之间,用于实现Profibus-DP的用户层通信协议;
所述FPGA硬核,设置有与所述FPGA软核相连接的共享数据缓冲区,并通过Profibus总线与各个从站相连接,用于实现Profibus-DP的物理层及数据链路层通信协议。
2.根据权利要求1所述的实现系统,其特征在于,所述共享数据缓冲区包括周期数据缓冲区、非周期数据缓冲区及从站信息列表缓冲区。
3.根据权利要求2所述的实现系统,其特征在于,所述FPGA软核具体用于:
接收所述控制器CPU发送的总线参数和从站信息并解析,将解析出的总线参数和从站信息分别存储至非周期数据缓冲区及从站信息列表缓冲区,启动协议栈运行;查询所述控制器CPU是否有非周期通信任务,如果有,则将所述非周期通信任务填充至非周期数据缓冲区;并查询非周期数据缓冲区是否有非周期应答消息,如果有非周期应答消息,则将非周期应答消息发送至所述控制器CPU。
4.根据权利要求3所述的实现系统,其特征在于,所述FPGA软核还用于:接收所述FPGA硬核的中断信号,执行中断处理,所述中断处理为控制所述FPGA硬核将各个从站的周期应答消息拷贝至周期数据缓冲区。
5.根据权利要求2所述的实现系统,其特征在于,所述FPGA硬核具体用于:获取总线参数和从站信息,启动与各个从站之间的周期数据通信;接收各个从站的周期应答消息并维护从站状态;查询非周期数据缓冲区是否有非周期通信任务,如果有非周期通信任务,则根据非周期通信任务发送非周期消息至所述各个从站;接收所述从站的非周期应答消息,并填充至非周期数据缓冲区。
6.根据权利要求5所述的实现系统,其特征在于,所述FPGA硬核还用于:完成与所述各个从站之间的周期数据通信后,产生中断信号并发送至所述FPGA软核。
7.根据权利要求2所述的实现系统,其特征在于,所述从站信息列表中的从站信息包括:从站站号、从站的输入输出数据在共享数据缓冲区的指针、输入输出数据长度、从站的通信状态机、从站是否处于被组态激活状态、有无诊断数据标志、诊断数据在共享数据缓冲区的指针和长度、参数配置数据在共享数据缓冲区中的指针及长度。
8.根据权利要求1所述的实现系统,其特征在于,所述FPGA软核包括应用命令解析执行器、配置解析器、中断处理器、非周期消息队列和非周期任务处理器,其中:
所述应用命令解析执行器,用于接收所述控制器CPU发送的数据集,所述数据集包括总线参数、从站信息和非周期通信任务,将非周期通信任务填充至非周期消息队列;
所述配置解析器,用于对接收到的总线参数及从站信息进行解析,并将解析到的内容填充至共享数据缓冲区和从站信息列表中;
所述中断处理器,用于控制所述控制器CPU与所述FPGA硬核之间的周期应答消息的拷贝;
非周期消息队列,用于执行非周期通信任务的缓存及读写操作;
非周期任务处理器,用于执行非周期应答消息的处理,检测非周期消息队列内是否有非周期通信任务,如果有非周期通信任务,填充非周期通信任务至非周期数据缓冲区。
9.根据权利要求1所述的实现系统,其特征在于,所述FPGA硬核包括主状态机模块、现场总线数据链路层FDL状态机模块、组包解包模块、数据拷贝模块、采样时钟生成模块、串行收发器模块,其中:
主状态机模块,用于管理通信协议的运行状态;
FDL状态机模块,用于根据解析出的从站信息列表实现通信协议的链路层状态,控制主从通信流程;
组包解包模块,用于完成报文的组包发送及接收解析;
数据拷贝模块,用于接收所述FPGA软核的中断处理指令,将各个从站的周期应答消息拷贝至周期数据缓冲区;
采样时钟生成模块,用于为接收采样提供时钟;
串行收发器模块,用于实现串并、并串信号的转换;
所述共享数据缓冲区,用于缓存解析出的总线参数、接收的周期应答消息、非周期通信任务、非周期应答消息。
10.一种Profibus-DP主站协议的实现方法,其特征在于,所述Profibus-DP主站包括控制器CPU、FPGA软核和FPGA硬核,所述FPGA软核连接在所述控制器CPU与所述FPGA硬核之间,所述FPGA硬核设置与所述FPGA软核相连接的共享数据缓冲区,并通过Profibus总线与各个从站相连接,
所述实现方法包括:
通过所述FPGA软核实现Profibus-DP的用户层通信协议;
通过所述FPGA硬核实现Profibus-DP的物理层及数据链路层通信协议。
11.根据权利要求10所述的实现方法,其特征在于,所述共享数据缓冲区包括周期数据缓冲区、非周期数据缓冲区和从站信息列表缓冲区;所述实现方法具体包括:
所述FPGA软核接收控制器CPU发送的总线参数和从站信息并解析,将解析出的总线参数和从站信息分别存储至非周期数据缓冲区及从站信息列表缓冲区,启动协议栈运行;
所述FPGA硬核获取总线参数和从站信息,启动与各个从站之间的周期数据通信;接收各个从站的周期应答消息并维护从站状态。
12.根据权利要求11所述的实现方法,其特征在于,所述实现方法还包括:
所述FPGA硬核完成与各个从站之间的周期数据通信后,产生中断信号并发送至所述FPGA软核;
所述FPGA软核接收所述FPGA硬核的中断信号,执行中断处理,所述中断处理为控制所述FPGA硬核将各个从站的周期应答消息拷贝至周期数据缓冲区;
所述FPGA软核查询控制器CPU是否有非周期通信任务,如果有,则将所述非周期通信任务填充至非周期数据缓冲区。
13.根据权利要求11所述的实现方法,其特征在于,所述实现方法还包括:
所述FPGA硬核查询非周期数据缓冲区是否有非周期通信任务,如果有非周期通信任务,则根据非周期通信任务发送非周期消息至从站;
所述FPGA硬核接收从站的非周期应答消息,并填充至非周期数据缓冲区;
所述FPGA软核查询非周期数据缓冲区是否有非周期应答消息,如果有非周期应答消息,则将非周期应答消息发送至所述控制器CPU。
CN201910738728.7A 2019-08-12 2019-08-12 一种Profibus-DP主站协议的实现方法及系统 Active CN110519138B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910738728.7A CN110519138B (zh) 2019-08-12 2019-08-12 一种Profibus-DP主站协议的实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910738728.7A CN110519138B (zh) 2019-08-12 2019-08-12 一种Profibus-DP主站协议的实现方法及系统

Publications (2)

Publication Number Publication Date
CN110519138A true CN110519138A (zh) 2019-11-29
CN110519138B CN110519138B (zh) 2021-12-07

Family

ID=68625829

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910738728.7A Active CN110519138B (zh) 2019-08-12 2019-08-12 一种Profibus-DP主站协议的实现方法及系统

Country Status (1)

Country Link
CN (1) CN110519138B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111198841A (zh) * 2019-12-31 2020-05-26 上海华元创信软件有限公司 基于reworks系统的profibus_DP从站
CN112398714A (zh) * 2020-10-22 2021-02-23 北京和利时系统工程有限公司 一种背板总线主站、系统及其数据通信方法
CN113741360A (zh) * 2021-08-09 2021-12-03 北京和利时控制技术有限公司 一种工业控制网关、系统、控制方法和存储介质
CN114338273A (zh) * 2021-12-30 2022-04-12 上海钜成锐讯科技有限公司 一种基于fpga的profibus-dp从站控制系统
CN114726674A (zh) * 2022-04-06 2022-07-08 北京鼎实创新科技股份有限公司 一种基于fpga的profibus总线工艺数据提取方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008046696A2 (de) * 2006-10-17 2008-04-24 Endress+Hauser Gmbh+Co.Kg System zur flexiblen konfiguration von funktionsmodulen
CN101841542A (zh) * 2010-05-07 2010-09-22 北京鼎实创新科技有限公司 基于fpga技术实现profibus主站通信协议的方法
CN108650136A (zh) * 2018-05-17 2018-10-12 中工科安科技有限公司 一种实现Powerlink工业实时以太网通讯的主/从站卡的设计方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008046696A2 (de) * 2006-10-17 2008-04-24 Endress+Hauser Gmbh+Co.Kg System zur flexiblen konfiguration von funktionsmodulen
CN101841542A (zh) * 2010-05-07 2010-09-22 北京鼎实创新科技有限公司 基于fpga技术实现profibus主站通信协议的方法
CN108650136A (zh) * 2018-05-17 2018-10-12 中工科安科技有限公司 一种实现Powerlink工业实时以太网通讯的主/从站卡的设计方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LIZHI CUI等: ""On Profibus-DP slave station controller based on Nios II"", 《2011 INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND SERVICE SYSTEM (CSSS)》 *
夏继强等: ""PROFIBUS_DP主站网关设计及其关键技术"", 《北京航空航天大学学报》 *
李丽娜: ""基于ARM与FPGA的PROFIBUS-DP智能主站设计与实现"", 《中国仪器仪表》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111198841A (zh) * 2019-12-31 2020-05-26 上海华元创信软件有限公司 基于reworks系统的profibus_DP从站
CN111198841B (zh) * 2019-12-31 2024-05-31 上海华元创信软件有限公司 基于reworks系统的profibus_DP从站
CN112398714A (zh) * 2020-10-22 2021-02-23 北京和利时系统工程有限公司 一种背板总线主站、系统及其数据通信方法
CN113741360A (zh) * 2021-08-09 2021-12-03 北京和利时控制技术有限公司 一种工业控制网关、系统、控制方法和存储介质
CN113741360B (zh) * 2021-08-09 2023-09-29 北京和利时控制技术有限公司 一种工业控制网关、系统、控制方法和存储介质
CN114338273A (zh) * 2021-12-30 2022-04-12 上海钜成锐讯科技有限公司 一种基于fpga的profibus-dp从站控制系统
CN114726674A (zh) * 2022-04-06 2022-07-08 北京鼎实创新科技股份有限公司 一种基于fpga的profibus总线工艺数据提取方法
CN114726674B (zh) * 2022-04-06 2023-12-29 北京鼎实创新科技股份有限公司 一种基于fpga的profibus总线工艺数据提取方法

Also Published As

Publication number Publication date
CN110519138B (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
CN110519138A (zh) 一种Profibus-DP主站协议的实现方法及系统
TWI239187B (en) System and method for managing and validating remote keys which correspond to outstanding data transactions
CN101572702B (zh) 高速总线主从网络通信调度方法
CN103425106B (zh) 一种基于Linux的EtherCAT主/从站控制系统及方法
JP6317520B2 (ja) Cpciバスとisaバスとの間のプロトコル変換器およびその変換方法
CN109347884B (zh) 一种实时以太网到现场总线的转换方法及装置、存储介质
CN102231718B (zh) 一种EtherCAT与CAN通信的网关及其通信方法
CN103439866B (zh) 基于VxWorks的光刻机双工件台通信方法及装置
CN108351859A (zh) 用于端点设备的直接存储器存取
CN101719922A (zh) Profibus-dp工业现场总线与无线zigbee间的协议转换装置和方法
CN102664953B (zh) 基于hla的高通量分布式仿真支撑平台、系统及仿真方法
CN110658751B (zh) 一种EtherCAT现场总线控制系统的实现方法
CN106445855B (zh) 一种非对称处理系统下多核共用串口的方法及系统
CN102291337B (zh) EtherCAT协议与Profibus-DP协议通信转换的网关及其通信方法
CN103901814B (zh) 一种多轴运动数控系统
CN103685578A (zh) 主从设备的数据传输方法
CN102263709A (zh) 一种EtherCAT与RS485通信转换的网关及其通信方法
CN111008169B (zh) 一种低成本高速通信总线及其传输控制方法
CN103401866B (zh) 一种PowerLink工业以太网到Profibus-DP现场总线的转换装置
CN114095303B (zh) 通信设备、数据传输方法及电子设备
CN105955103A (zh) 基于s7协议的hmi与plc数据通信方法及设备
Truong et al. Control and implementation of positioning system with symmetrical topology for precision manufacturing
CN111988113B (zh) 一种EtherCAT协议和ASI协议通讯系统及方法
JP2015138503A (ja) Ssハブ及びusb3.0ハブ並びに情報処理機器
Xu et al. Design and implementation of mechatrolink-iii bus slave station based on sopc

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
GR01 Patent grant
GR01 Patent grant