一种基于FPGA的多工业相机数据调度装置的制作方法

文档序号:16518333发布日期:2019-01-05 09:47阅读:208来源:国知局
一种基于FPGA的多工业相机数据调度装置的制作方法

本发明属于数据传输技术领域,具体涉及一种协助工业机器人运作的基于fpga的多工业相机数据调度装置。



背景技术:

随着技术水平和产业要求不断提高,基于工业机器人的柔性视觉系统应用越来越广泛。工业相机安装至工业机器人的法兰末端,当工业机器人运动时,相机也随之运动。为了提高数据的传输效率,工业相机通常采用千兆以太网进行通讯,而且一台工业机器人往往有多台工业相机与之配合。传统的工业相机图像传输方式将单个相机采集到的图像经过单根以太网线路进行传输,现场布线复杂、成本高。以太网线缆受到拖拽容易磨损、断裂,由此引发数据丢失等问题严重影响正常工业生产。工业相机在与上位机进行实时数据传输的同时尽可能的减少现场布线,从而降低数据传输线路的出错几率对系统稳定运行具有重要意义。



技术实现要素:

本发明针对当前工业机器人多工业相机图像采集和传输方面的不足,提出一种协助工业机器人运作的基于fpga的多工业相机数据调度智能装置。利用fpga作为中间过渡单元,采用改进的数据循环调度方法将多条以太网线路的图像数据经过fpga的处理后通过一条千兆以太网线路传输到pc上位机,使得工业相机在与上位机进行实时数据传输的同时尽可能的减少现场布线,从而降低数据传输线路的出错几率,对系统稳定运行具有重要意义。

本发明是通过以下技术方案实现的:

一种基于fpga的多工业相机数据调度装置,其包括多路海量数据输入单元、多路数据存储单元、数据传输控制单元、数据发送单元、控制指令接收单元;

所述多路海量数据输入单元的输入端分别通过千兆以太网线路与多个工业相机一一对应连接,多路海量数据输入单元的输出端与多路数据存储单元一一对应连接;

所述数据传输控制单元用于控制数据的传输以及对上位机控制指令的响应,数据传输控制单元包括发送控制单元、控制指令解读单元、相机数据调度器和大容量数据存储器,其中,所述相机数据调度器与多路数据存储单元连接,所述大容量数据存储器与相机数据调度器连接,所述发送控制单元与相机数据调度器连接,发送控制单元还与数据发送单元连接,相机数据调度器负责将多路数据存储单元的数据发送给发送控制单元,由发送控制单元根据标准的以太网传输协议生成标准的数据包发送给数据发送单元;控制指令解读单元与控制指令接收单元连接,控制指令解读单元还与所述相机数据调度器连接,控制指令解读单元负责解读制指令接收单元传送过来的pc对相机的控制指令生并成相应的控制信号以及将控制信号传输给相机数据调度器;

所述数据发送单元与phy连接,负责将已存储的数据向目的地发送;

所述控制指令接收单元与phy连接,负责对上位机发送的控制命令数据包进行接收和解包。

在上述技术方案中,所述四路数据存储单元由四个大小相等的异步fifo构成,用于存储工业相机的图像数据。

在上述技术方案中,fifo和相机数据调度器之间的数据传输采用单级轮询调度算法,相机数据调度器对fifo的存储状态进行循环检测,当检测某一个fifo已存入的数据多于其自身存储容量的一半时,此时如果网络空闲,相机数据调度器调取对应fifo中数据供数据发送单元发送;如果此时网络被占用,则相机数据调度器不会对fifo中数据做调度操作,一旦网络空闲,才开始发送此fifo中的数据;如果fifo中的数据已经达到总存储容量的2/3,网络仍然被占用,则该fifo中的数据将会被转移到大容量数据存储单元中,并记录其第一帧和最后一帧数据在大容量数据存储单元中的位置;相机数据调度器会对传输过数据fifo进行记录:采用一个两位计数器,每有一个fifo传输数据完成,计数器加一,当计数器数值变为11时,相机数据调度器会对大容量数据存储单元进行检测,当检测到大容量数据存储单元中有数据存在,则相机数据调度器会调度大容量数据存储单元中的数据进行传输,同时计数器清零;传输完成后,相机数据调度器继续对四个fifo循环检测。

在上述技术方案中,发送控制单元又分为发送数据包生成单元和发送流量控制单元,发送数据包生成单元负责根据标准的以太网传输协议生成标准的数据包,包括协议封装单元和校验码生成模单元;发送流量控制单元负责产生并发送pause帧,负责完成数据通路的控制以及控制帧的重传。

在上述技术方案中,控制指令解读单元内部含有指令表,其接收到控制指令后,控制指令解读单元会将控制指令与指令表比对,从而生成相应的控制信号;控制信号通过线路k_ctrl传输给相机数据调度器。进一步的说,当相机数据调度器收到控制指令解读单元的控制指令后,首先检测对应通路是否在大容量数据存储器中存有数据,如果有数据存在大容量数据存储器则优先发送该存储器中数据,如果对应通路没有存储在大容量数据存储器的数据,则调取对应通路fifo中的数据进行传输。

在上述技术方案中,控制指令接收单元主要由接收状态机、crc单元和地址过滤单元组成。

在上述技术方案中,所述多工业相机数据调度装置还包括寄存器,寄存器包括接收功能相关寄存器、发送功能相关寄存器、流量控制功能相关的寄存器、rgmii管理功能相关寄存器和中断相关寄存器等。接收功能相关寄存器负责按照标准的以太网传输协议判断接收的控制命令包是否满足规定允许的最大帧、最小帧长度,本站点mac地址以及判断是否允许接收超长帧等;发送功能相关寄存器主要负责规定最小帧间间隔时间,最大允许重传次数,是否允许发送等功能;流量控制功能相关寄存器主要负责规定是否发送pause帧;rgmii管理功能相关寄存器提供phy寄存器地址、规定数据传输方式等;中断相关寄存器负责提供中断状态寄存器、中断屏蔽寄存器和中断清除寄存器。

在上述技术方案中,所述多工业相机数据调度装置还包括rgmii管理模块,rgmii管理模块用于连接工业以太网的phy层和mac层,rgmii管理模块负责响应和清除主机的读/写phy设备的命令,同时产生数据通路的控制信号;总线接口单元负责fpga内嵌的arm核与其他总线接口单元的通信与调配。

本发明的优点和有益效果为:

本发明利用fpga作为中间过渡单元,采用改进的数据循环调度方法将多条以太网线路的图像数据经过fpga的处理后通过一条千兆以太网线路传输到pc上位机,使得工业相机在与上位机进行实时数据传输的同时尽可能的减少现场布线,从而降低数据传输线路的出错几率,对系统稳定运行具有重要意义。

附图说明

图1是本发明的总体架构图。

图2是本发明的ip核系统结构图。

图3是本发明的四路数据存储单元的结构示意图。

图4是本发明的数据传输控制单元的结构示意图。

图5是本发明的数据调取算法实现流程图。

图6是数据包生成流图。

图7是发送状态机的状态转移图。

图8是本发明的控制指令接收单元的结构示意图。

对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据以上附图获得其他的相关附图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合具体实施例进一步说明本发明的技术方案。

一种协助工业机器人运作的基于fpga的多工业相机数据调度装置,其利用fpga作为中间过渡单元,采用数据循环调度方法将多条以太网线路(本实施例以四条线路为例)的图像数据经过fpga的处理后通过一条千兆以太网线路传输到pc上位机。系统的总体架构如图1所示。

下面具体介绍所述fpga的结构:其包括四路海量数据输入单元、四路数据存储单元、数据传输控制单元、数据发送单元、控制指令接收单元、rgmii管理单元以及寄存器/中断模块和时钟管理模块。

所述四路海量数据输入单元的输入端分别通过千兆以太网线路与四个工业相机一一对应连接,四路海量数据输入单元的输出端与四路数据存储单元一一对应连接,当工业相机发送数据时,四路海量数据输入单元负责对工业相机的数据包进行接收,同时对接收到的数据包进行解析,提取出数据包中包含的图像数据并对应存储到四路数据存储单元中。

参见附图3,所述四路数据存储单元由四个大小相等的异步fifo构成,用于存储工业相机的图像数据。

所述数据传输控制单元与四路数据存储单元连接并且与数据发送单元、控制指令接收单元连接,是连接上下两层的重要数据通路,用于控制数据的传输以及对上位机控制指令的响应。具体来讲,参见附图4,数据传输控制单元分为发送控制单元、控制指令解读单元、相机数据调度器和大容量数据存储器,其中:

所述相机数据调度器与四路数据存储单元的四个fifo连接,参见附图4,data_0、1、2、3为相机数据调度器与四个fifo的数据通路,大容量数据存储器还与相机数据调度器连接;fifo和相机数据调度器之间的数据传输采用单级轮询调度算法,根据fifo的状态和允许读信号对fifo进行数据输出,四路海量数据输入单元将图像数据传输到对应的fifo中,相机数据调度器对fifo的存储状态进行循环检测,当检测某一个fifo已存入的数据多于其自身存储容量的一半时,此时如果网络空闲(网络状态根据phy进行判断,通过crs线路将网络空闲状态反馈给数据发送单元,数据发送单元再通过tx_ctrl反馈给数据传输控制单元的发送控制单元,发送控制单元在通过tx_val反馈给相机数据调度器),相机数据调度器调取对应fifo中数据供数据发送单元发送;如果此时网络被占用(网络状态由phy进行判断,通过col线路将网络占用状态反馈给数据发送单元,数据发送单元再通过tx_ctrl反馈给数据传输控制单元的发送控制单元,发送控制单元在通过tx_val反馈给相机数据调度器),则相机数据调度器不会对fifo中数据做调度操作,一旦网络空闲,才开始发送此fifo中的数据;如果fifo中的数据已经达到总存储容量的2/3,网络仍然被占用,则该fifo中的数据将会被转移到大容量数据存储单元中,并记录其第一帧和最后一帧数据在大容量数据存储单元中的位置;相机数据调度器会对传输过数据fifo进行记录:采用一个两位计数器,每有一个fifo传输数据完成,计数器加一,当计数器数值变为11时,相机数据调度器会对大容量数据存储单元进行检测,当检测到大容量数据存储单元中有数据存在,则相机数据调度器会调度大容量数据存储单元中的数据进行传输,同时计数器清零。传输完成后,相机数据调度器继续对四个fifo循环检测,算法实现流程图如图5所示

所述发送控制单元通过data线路、tx_val线路与相机数据调度器连接(data为传输数据通路,tx_val为传输控制单元发送给相机数据调度器的传输使能信号),发送控制单元还通过tx_data线路、tx_status线路、tx_ctrl线路与数据发送单元连接(tx_data用于传输待发送数据,tx_ctrl用于传输控制信号,tx_status用于获取数据发送单元的传输状态);发送控制单元具有响应控制信号、生成发送数据包和对发送流量控制的功能,发送控制单元又分为发送数据包生成单元和发送流量控制单元。发送数据包生成单元负责根据标准的以太网传输协议生成标准的数据包,包括协议封装单元和校验码生成模单元,数据包生成流图如图6所示;发送流量控制单元负责产生并发送pause帧,负责完成数据通路的控制以及控制帧的重传。

控制指令解读单元通过rx_data线路、rx_status线路、rx_ctrl线路与控制指令接收单元连接(rx_data用于传输待发送数据,rx_status用于获取控制指令接收单元的传输状态,rx_ctrl用于传输控制信号),控制指令解读单元还通过k_ctrl线路与所述相机数据调度器连接,控制指令解读单元负责解读制指令接收单元传送过来的pc对系统的控制指令生并成相应的控制信号以及将控制信号传输给相机数据调度器。进一步的说,控制指令解读单元内部含有指令表,其接收到控制指令后,控制指令解读单元会将控制指令与指令表比对,从而生成相应的控制信号,控制信号通过线路k_ctrl传输给相机数据调度器,由相机数据调度器响应该控制信号对相应fifo进行调取数据操作(所述控制信号是用于控制相机数据调度器的数据调取,以实现上位机强制控制调取某一指定工业相机的拍摄数据)。进一步的说,当相机数据调度器收到控制指令解读单元的控制指令后,首先检测对应通路是否在大容量数据存储器中存有数据,如果有数据存在大容量数据存储器则优先发送该存储器中数据,如果对应通路没有存储在大容量数据存储器的数据,则调取对应通路fifo中的数据进行传输。

所述数据发送单元通过col线路、crs线路、tx_en线路、tx_er线路和txd[7:0]线路与phy连接(col为冲突指示信号,col有效时表示phy检测到网络处于占用状态;crs为载波指示信号,crs有效时表示phy检测到网络为空闲状态;tx_en发送数据有效信号,tx_er发送数据出错信号,txd[7:0]发送数据),所述数据发送单元主要由发送状态机构成,负责将已存储的数据向目的地发送。发送状态机用来完成标准以太网mac协议规定的数据帧发送流程。发送状态机由idle_z(网络空闲状态)、ipg_z(帧间间隙计时状态)、data_z(发送数据状态)、jam_z(网络阻塞状态)、defer_z(延迟状态)等状态构成,状态转移图如图7所示。下面对各个状态进行详细说明:

defer_z状态是数据交互系统的最初状态,同时也是系统在每次传递完数据要回到的初始状态。系统复位之后,发送模块自动进入defer_z状态,并且一直保持监听信号状态。当检测到网络空闲时,进入ipg_z帧间间隙计时状态,一个帧间间隔后,系统进入idle_z(网络空闲状态)。

idle_z网络空闲状态下当检测到有数据需要发送时系统直接进入data_z状态发送数据。

jam_z(阻塞状态)的作用是在网络内部发生冲突时或者工业相机数据供给中断后发送4字节的阻塞码,并直接进入defer_z进行延迟。

ipg_z(帧间间隙计时状态)用于数据传输过程中帧与帧之间空闲计时以及当监听状态结束时插入一个帧间间隔。

参见附图8,所述控制指令接收单元通过rd_val线路、rd_er线路、rxd[7:0]线路与phy连接(rd_val接收有效信号,rd_er接收出错信号,rxd[7:0]接收数据),控制指令接收单元负责对上位机发送的控制命令数据包进行接收和解包。控制指令接收单元主要由接收状态机、crc单元和地址过滤单元组成。接收状态机是控制指令接收单元的控制中枢,不仅要完成接收状态机的转移控制,还要协调crc单元及地址过滤单元的正常工作。crc单元根据ieee802.3所规定的的crc_32算法完成帧序列校验。

进一步的说,当接收状态机检测到指令包有效时(在有数据进入系统时,接收状态机首先开始接收控制指令前序码,之后接收帧起始定界符,并根据数据大小计数器的值选择系统接下来的状态,如果数值大于96个bite时间,状态机认定为数据有效),进入包接收状态,在接收过程中接收状态机协调crc校验和地址过滤单元的工作。

接收状态机通过crc_init初始化crc单元,通过crc_en使能crc单元并将待校验数据通过crc_data线路发送出去,crc单元在校验完成后将校验结果通过crc_result发送给接收状态机;

地址过滤单元用来判断控制指令包的地址是否有效,接收状态机先通过dmac_addr_en使能地址过滤单元,然后通过dmac_addr将待检测地址发送给地址过滤单元。地址过滤单元检测地址有效时会通过frmtype_val发送地址有效信号并将匹配结果通过frmtype发送给接收状态机;

接收状态机将符合标准的控制指令通过rx_data存入到控制指令解读单元的接收缓存器中,同时接收状态机通过rx_ctrl控制接收缓存器的存储。

寄存器/中断模块用来监听实时海量数据交互系统工作过程中的各种状态信息并进行相应的响应操作。寄存器包括接收功能相关寄存器(即上位机对工业相机的控制指令相关寄存器)、发送功能相关寄存器(即发送工业相机生成的数据包的相关寄存器)、流量控制功能相关的寄存器、rgmii管理功能相关寄存器和中断相关寄存器等。接收功能相关寄存器负责按照标准的以太网传输协议判断接收的控制命令包是否满足规定允许的最大帧、最小帧长度,本站点mac地址以及判断是否允许接收超长帧等;发送功能相关寄存器主要负责规定最小帧间间隔时间,最大允许重传次数,是否允许发送等功能;流量控制功能相关寄存器主要负责规定是否发送pause帧;rgmii管理功能相关寄存器提供phy寄存器地址、规定数据传输方式等;中断相关寄存器负责提供中断状态寄存器、中断屏蔽寄存器和中断清除寄存器。

rgmii管理模块用于连接工业以太网的phy层和mac层。rgmii管理模块负责响应和清除主机的读/写phy设备的命令,同时产生数据通路的控制信号。总线接口单元负责fpga内嵌的arm核与其他总线接口单元的通信与调配。

系统的稳步运行需要有稳定的时钟,时钟管理模块负责为系统提供准确的时钟。

以上对本发明做了示例性的描述,应该说明的是,在不脱离本发明的核心的情况下,任何简单的变形、修改或者其他本领域技术人员能够不花费创造性劳动的等同替换均落入本发明的保护范围。

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