[发明专利]一种基于FPGA的POWERLINK从站帧缓存管理系统有效
申请号: | 201510577314.2 | 申请日: | 2015-09-11 |
公开(公告)号: | CN105162786B | 公开(公告)日: | 2018-05-22 |
发明(设计)人: | 宋宝;唐小琦;张航天;王源;颜外平;谢远龙;徐健;周向东;陈天航 | 申请(专利权)人: | 华中科技大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/863 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga powerlink 缓存 管理 系统 | ||
1.一种基于FPGA的POWERLINK从站帧缓存管理系统,其特征在于,在FPGA内部实现数据帧类型检测模块、数据帧缓存管理模块,使用FPGA内部块RAM作为帧缓存区,在数据帧接收过程中由数据帧类型检测模块对当前帧的帧类型进行识别,并将帧类型识别结果传递给数据帧缓存管理模块,数据帧缓存管理模块根据帧类型识别结果决定存储下一个帧的缓存区序列号,并且缓存区序列号将当前数据帧存入相应的缓存区中,其中:数据帧类型检测模块和数据帧缓存管理模块使用VHDL语言编写,在FPGA内部以硬件逻辑门的形式实现,帧缓存区域使用FPGA内部提供的RAM存储块,模块之间通过FPGA内部的导线资源进行信息的传递,数据帧类型检测模块向数据帧缓存管理模块提供帧类型信息;
每个缓存区有两种状态,锁定和解锁,处于锁定状态的缓存区无法接收数据帧,只能被读取;处于解锁状态的缓存区可以被任意读写,缓存区的状态由数据帧缓存管理模块确定,系统复位之后,所有缓存区的状态均为解锁状态。
2.如权利要求1所述的系统,其特征在于,所述数据帧类型检测模块具体用于:
首先对目的地址进行检测,C_DLL_MULTICAST_ASND和C_DLL_MULTICAST_PRES分别为POWERLINK通信行规规定的SDO帧和Pres帧应具有的目的地址,如果数据帧的目的地址与这两者中的某一个相同,则进继续判断这个数据帧的具体类型;如果帧的目的地址与从站的本地MAC地址相同,则进行接下来的检测判断该帧是否为Preq帧;
对于通过目的地址检测的数据帧,进行以太网类型的检测,POWERLINK通信行规规定的以太网类型的数值为C_DLL_ETHERTYPE_EPL,符合要求的数据帧继续对其目的进行检测;
目的等于本地NODE ID的数据帧,认为是SDO帧或者Preq帧;接下来对这两种帧的源进行检测,如果源的数值等于C_ADR_MN_DEF_NODE_ID,则目的地址为C_DLL_MULTICAST_ASND的为SDO帧,目的地址为本地MAC地址的为Preq帧;
目的等于C_ADR_BROADCAST的数据帧,对其源进行检测,如果源的数值为交叉通信从站ID,即与该从站进行交叉通信的从站的ID,则认为该帧的类型为Pres。
3.如权利要求1或2所述的系统,其特征在于,所述数据帧缓存管理模块具体包括5个寄存器,其中,寄存器CurRxBufReg用于保存当前帧所在缓存区的区号,寄存器NextRxBufReg保存下一个数据帧应当处于的缓存区的区号,寄存器PreqBufReg、寄存器PresBufReg、寄存器SdoBufReg分别用于保存当前Preq帧、Pres帧、SDO帧所在的缓存区区号。
4.如权利要求3所述的系统,其特征在于,所述数据帧缓存管理模块具体用于:
当系统复位或者最近数据帧接收完毕之后,首先将NextRxBufReg的值赋给CurRxBufReg;
根据数据帧类型检测模块提供的结果,更新PreqBufReg,PresBufReg,SdoBufReg中的数值:如果帧类型为Preq,则将CurRxBufReg的值赋给CurRxBufReg;如果帧类型为Pres,则将CurRxBufReg的值赋给PresBufReg;如果帧类型为Sdo,则将CurRxBufReg的值赋给SdoBufReg;如果帧类型不属于上述三种类型的任意一种,则不进行PreqBufReg,PresBufReg,SdoBufReg的更新;
在上述三种寄存器的值更新完成之后,更新NextRxBufReg中的数值,NextRxBufReg的取值为所有的帧缓存区区号当中,不存在于PreqBufReg,PresBufReg,SdoBufReg三个缓存区中的所有区号中,数值最小的区号。
5.如权利要求1或2所述的系统,其特征在于,PreqBufReg、PresBufReg、SdoBufReg中保存的是当前被锁定的缓存区的序号,如果为0,表示当前没有缓存区被锁定,如果某一缓存区的序号不在这三个寄存器当中,表明该缓存区没有被锁定,系统复位后,CurRxBufReg中的值为1,NextRxBufReg中的值为1,PreqBufReg、PresBufReg、SdoBufReg中的值为0。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510577314.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:浓溶液稀释装置
- 下一篇:厚浆型砂壁状涂料的搅拌装置