基于FPGA实现的上位机与InterBus模块的通讯结构及通讯方法与流程

文档序号:15981561发布日期:2018-11-17 00:23阅读:296来源:国知局

本发明涉及通信接口设计领域,具体而言,涉及一种基于fpga实现的上位机与interbus模块的通讯结构及通讯方法。

背景技术

工业现场领域设备和设备之间的通信,存在着大量的数据交互,以及不同类型的总线接口,其中一种interbus总线协议,它是一个传感器/调节器总线系统,特别适用于工业用途,能够提供从控制级设备至底层限定开关的一致的网络互联,尤其是应用于机器人通讯过程,机器人与工控机之间的通讯是通过interbus总线完成的,例如phoenix的ibspciri-lk就是实现这种功能,但这种接口存在传输时间比长,传输速率比低,延时抖动大等问题。

pci-express(peripheralcomponentinterconnectexpress)是一种高速串行计算机扩展总线标准,旨在替代旧的pci,pci-x和agp总线标准,属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,现有技术中interbus无法直接连接pcie,本技术方案旨在构建interbus与pcie之间的通讯,缩短数据传输时间和抖动时间。



技术实现要素:

为了解决上述问题,本发明提出了一种fpga实现的上位机与interbus模块的通讯结构及通讯方法,可以大大的缩短了传输时间和抖动时间,现有技术中整块板卡链路传输时间为10~20毫秒,抖动时间为10毫秒左右,本方案中数据链路传输时间仅为1~2毫秒,抖动时间仅1毫秒左右。

本方案如下:一种基于fpga实现的上位机与interbus模块的通讯结构,包括pcie接口、fpga主板以及interbus模块,所述pcie接口连接fpga主板和上位机的pcie插槽;

所述interbus模块与带有interbus插口的外接设备实现通讯,其包括dpram并行接口模块,所述dpram并行接口模块连接所述fpga主板;

所述上位机将包含指令的数据包经pcie接口传送至fpga主板,所述fpga主板对接收到的所述上位机发出的数据包进行解包,再经dpram并行接口模块传输至interbus模块,所述interbus模块将接收到的数据包按照需要封包后传输至外接设备;

或者,所述外接设备将包含指令的数据包传输至interbus模块,所述interbus模块将接收到的数据包进行解包,经dpram并行接口模块传输至fpga主板,所述fpga主板对接收到的所述dpram并行接口模块传输的数据包进行解析,然后按照所需的格式进行封包,并能将封包后的数据经pcie接口传输至上位机。

进一步,所述fpga主板包含pcieip核和对pcieip核的控制单元;

所述pcieip核内实现了三层协议,分别为事务层(tlp)、数据链路层(dllp)和物理层(pl);

所述pcieip核的控制单元包括基于tlp的解包模块和封包模块,用于实现对数据包的解包功能和tlp封包功能;

进一步,所述上位机通过pcie接口完成对fpga主板的信息配置和数据的读操作,fpga主板通过pcie接口完成中断产生和数据写操作。

进一步,dpram并行接口模块的信号包括输出使能(oe)、片选使能(ce)、读写选择(r/w)、数据输入输出(i/o0~7)、地址信号(a0~a10)、中断信号(int)以及忙信号(busy);上述信号分为两组,一组供interbus模块使用,另一组供pcie模块使用。

进一步,所述dpram并行接口模块的读时序实现方式为:先给出地址信号,随后给出片选和输出使能信号;在满足芯片使能访问时间后无效片选和输出使能信号,同时读取出有效数据,完成一次读操作;

所述dpram并行接口模块的写时序的实现方式为:先给出地址、数据、输出使能和片选使能信号,在等待地址建立时间后,选择写有效信号。

进一步,所述interbus模块还包括控制器模块、interbus总线解析/发送模块;所述控制器模块分别与interbus总线解析/发送模块、dpram并行接口模块相连;所述interbus总线解析/发送模块连接外界设备的interbus接口。

进一步,所述interbus总线解析/发送模块接收外部设备发出的外界设备数据包,并传输到所述控制器模块,控制器模块通过内部总线把数据写入到dpram并行接口模块中,并通知fpga主板通过dpram并行接口模块的并行接口将数据取走。

一种基于fpga实现的上位机与interbus模块的通讯方法,包含如下步骤:

1)当外接设备向interbus模块发送数据包时,由interbus模块通过内部总线把数据写入到dpram中,fpga主板通过dpram并行接口模块将数据包取走;

2)fpga主板接收到数据包后,先对msi中断信号封包并将中断信号通过pcie接口发送到上位机,上位机收到msi中断信号后,发读包命令,fpga主板解析出所述读包命令后,对所述数据包进行解包,然后按照应答tlp包的格式打包数据,通过pcie接口发送到上位机,上位机解析数据包内容,获取外接设备发送来的数据信息;

或者包含如下步骤:

①上位机发送数据tlp包到fpga主板,fpga接收到所述数据tlp包后,根据tlp写内存包格式解析出所述数据tlp包,并按照interbus模块的dpram并口时序要求发送数据到interbus模块内;

②所述interbus模块将接收到的数据按照需要封包后传输至外接设备。

进一步,在系统初始上电时,上位机通过pcie接口发送配置信息到fpga主板;

fpga主板对接收到的数据解包,解析出配置信息,根据编码格式判断所述配置信息是对interbus模块的初始化配置信息还是对fpga主板的初始化配置信息;

如果是对interbus模块的初始化配置信息,则按照interbus模块的时序将配置信息发送到interbus模块内;

如果是对fpga主板的初始化配置信息,则直接对fpga主板进行配置;

fpga主板和interbus模块按照上位机发出的配置信息,完成模块配置。

进一步,所述对fpga主板的初始化配置信息包括触发方式、数据长度、pcie空间寄存器参数;

所述对interbus模块的初始化配置为一个配置流程,这个流程包括以下几步:启动初始化、检测应答信号、发送任意总线初始化、检测应答信号、发送结束初始化及检测应答信号。

与现有技术相比,本发明的通讯设计充分利用pcie传输速率高、时间短,fpga的设计灵活,可扩展性好等特点,可以大大的缩短了传输时间和抖动时间。现有技术中整块板卡链路传输时间为10~20毫秒,抖动时间为10毫秒左右,本方案中数据链路传输时间为1~2毫秒,抖动时间1毫秒左右。

附图说明

图1是本通讯结构系统框图;

图2是本通讯方法流程图。

具体实施方式

为了更好的阐释本发明内容,采用以下实施例做具体阐述:

参见图1、图2,一种基于fpga实现的上位机与interbus模块的通讯结构,包括pcie接口、fpga主板以及interbus模块,pcie接口连接fpga主板和上位机的pcie插槽;

interbus模块与带有interbus插口的外接设备实现通讯,其包括dpram并行接口模块,dpram并行接口模块连接fpga主板;

上位机将包含指令的数据包经pcie接口传送至fpga主板,fpga主板对接收到的上位机发出的数据包进行解包,再经dpram并行接口模块传输至interbus模块,interbus模块将接收到的数据包按照需要封包后传输至外接设备;

或者,外接设备将包含指令的数据包传输至interbus模块,interbus模块将接收到的数据包进行解包,经dpram并行接口模块传输至fpga主板,fpga主板对接收到的dpram并行接口模块传输的数据包进行解析,然后按照所需的格式进行封包,并能将封包后的数据经pcie接口传输至上位机。

本实施例中,外接设备为机器人interbus主站模块;

进一步,fpga主板包含pcieip核和对pcieip核的控制单元;

pcieip核内实现了三层协议,分别为事务层(tlp)、数据链路层(dllp)和物理层(pl);

pcieip核的控制单元包括基于tlp的解包模块和封包模块,用于实现对数据包的解包功能和tlp封包功能;

上位机通过pcie接口完成对fpga主板的信息配置和数据的读操作,fpga主板通过pcie接口完成中断产生和数据写操作。

进一步,dpram并行接口模块的信号包括输出使能(oe)、片选使能(ce)、读写选择(r/w)、数据输入输出(i/o0~7)、地址信号(a0~a10)、中断信号(int)以及忙信号(busy);上述信号分为两组,一组供interbus模块使用,另一组供pcie模块使用。

进一步,dpram并行接口模块的读时序实现方式为:先给出地址信号,随后给出片选和输出使能信号;在满足芯片使能访问时间后无效片选和输出使能信号,同时读取出有效数据,完成一次读操作;

dpram并行接口模块的写时序的实现方式为:先给出地址、数据、输出使能和片选使能信号,在等待地址建立时间后,选择写有效信号。

进一步,interbus模块还包括控制器模块、interbus总线解析/发送模块;控制器模块分别与interbus总线解析/发送模块、dpram并行接口模块相连;interbus总线解析/发送模块连接外界设备(机器人interbus主站模块)的interbus接口。

进一步,interbus总线解析/发送模块接收外部设备发出的外界设备数据包,并传输到控制器模块,控制器模块通过内部总线把数据写入到dpram并行接口模块中,并通知fpga主板通过dpram并行接口模块的并行接口将数据取走。

如图2,一种基于fpga实现的上位机与interbus模块的通讯方法,包含如下步骤:

在系统初始上电时,上位机通过pcie接口发送配置信息到fpga主板;

fpga主板对接收到的数据解包,解析出配置信息,根据编码格式判断配置信息是对interbus模块的初始化配置信息还是对fpga主板的初始化配置信息;

如果是对interbus模块的初始化配置信息,则按照interbus模块的时序将配置信息发送到interbus模块内;

如果是对fpga主板的初始化配置信息,则直接对fpga主板进行配置;

fpga主板和interbus模块按照上位机发出的配置信息,完成模块配置。

进一步,对fpga主板的初始化配置信息包括触发方式、数据长度、pcie空间寄存器参数;

对interbus模块的初始化配置为一个配置流程,这个流程包括以下几步:启动初始化、检测应答信号、发送任意总线初始化、检测应答信号、发送结束初始化及检测应答信号。

初始化完成后,1)当外接设备(机器人interbus主站模块)向interbus模块发送数据包时,由interbus模块通过内部总线把数据写入到dpram中,fpga主板通过dpram并行接口模块将数据包取走;

2)fpga主板接收到数据包后,先对msi中断信号封包并将中断信号通过pcie接口发送到上位机,上位机收到msi中断信号后,发读包命令,fpga主板解析出读包命令后,对数据包进行解包,然后按照应答tlp包的格式打包数据,通过pcie接口发送到上位机,上位机解析数据包内容,获取机器人interbus主站模块发送来的数据信息;

当上位机解析机器人interbus主站模块发来的数据包,需要进行应答时,会有如下步骤:

①上位机发送数据tlp包到fpga主板,fpga接收到数据tlp包后,根据tlp写内存包格式解析出数据tlp包,并按照interbus模块的dpram并口时序要求发送数据到interbus模块内;

②interbus模块将接收到的数据按照需要封包后传输至机器人interbus主站模块,完成一次数据应答。

为了方便解释和精确限定所附权利要求,术语“上”、“下”、“内”和“外”被用于参考附图中所显示的这些特征的位置来描述示例性实施方式的特征。前面对本发明具体示例性实施方案所呈现的描述是出于说明和描述的目的。前面的描述并不想要成为毫无遗漏的,也不是想要把本发明限制为所公开的精确形式,显然,根据上述教导很多改变和变化都是可能的。选择示例性实施方案并进行描述是为了解释本发明的特定原理及其实际应用,从而使得本领域的其它技术人员能够实现并利用本发明的各种示例性实施方案及其不同选择形式和修改形式。本发明的范围旨在由所附权利要求书及其等价形式所限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1