以太网数据包与多个dsp串口数据转发的方法和系统的制作方法

文档序号:7617940阅读:238来源:国知局
专利名称:以太网数据包与多个dsp串口数据转发的方法和系统的制作方法
技术领域
本发明涉及一种基于现场可编程门阵列FPGA(Field Programmable Gate Array)实现以太网媒体面控制器MAC(Media Access Controller)地址数据包与数字信号处理器DSP(DigitalSignal Processor)串口的数据转发的方法和系统。
背景技术
MAC定义了以太网的媒体面控制器的标准,可以处理线速100Mbps(bit per second)的数据流量。
媒体面标准接口MII(Media Independent Interface)定义了以太网的媒体面控制器MAC和物理层PHY(Physical Layer)连接总线的标准。MII接口使用4bit数据宽度,字节级控制方式,最高操作频率为25MHz,支持单个物理层器件连接,达到线速100Mbps。
MII接口总线的时钟是由PHY从线路时钟上恢复出来的,PHY产生接收和发送端口的25MHz的时钟。
MII接口总线操作时,由数据的发送者控制操作的过程。当PHY向MAC发送数据时,PHY会有效接收使能信号,同时同步于接收时钟产生数据。当MAC向PHY发送数据时,MAC会有效发送使能信号,同时同步于发送时钟产生数据。
DSP是通用数字信号处理器的简称。数字信号处理是一种将现实世界中的连续信号转换为计算机能够处理的信息的过程,DSP完成数字信号处理的核心运算功能。
带有缓冲能力的多通道串口McBSP(Multichannel Buffered Serial Ports)是DSP处理器的外围串行接口,为DSP提供处理数据的输入、输出串行通道。
时分复用串行通道TDM(Time Divided Multichannel)是DSP串行接口的工作模式。
FPGA继承了专用集成电路ASIC(Application Specific Integrated Circuit)的大规模、高集成度、高可靠性的优点,又克服了普通ASIC设计周期长、投资大、灵活性差的缺点,逐步成为复杂数字硬件电路设计的理想首选。FPGA内部灵活的逻辑资源可完成总线转换的逻辑功能,丰富的块存储器资源适用于在总线转换中进行数据缓存。
单个DSP的McBSP接口的数据流量低于MII接口的流量。当设计多个DSP的低速McBSP复接到一个ETHERNET的MAC控制器时,需要考虑发送数据的缓冲问题。在发送方向多路McBSP的数据是同时到达FPGA的,而MAC帧数据是以顺序的过程从FPGA中发出,必然存在当前发送的McBSP数据占据MII总线,所以其他的McBSP数据需要进行缓冲。在接收方向MAC帧数据是以顺序的过程进入FPGA的,然后同时向McBSP发送数据,必然存在当前接收的MII数据无法及时的从McBSP发出,所以需要对MII的数据进行缓冲。
通过中央处理器CPU(Central Procession Unit)管理FPGA,可以对FPGA内部寄存器进行动态配置,建立不同的MAC地址数据包选路功能。

发明内容
本发明的目的是提供一种基于FPGA实现以太网MAC地址数据包与多个DSP串口的数据转发的方法和系统。以克服当前的MAC层芯片和DSP串行口总线接口不匹配,不能直接相连以及普通桥接芯片不能灵活实现的问题。
实现本发明所要解决的技术问题而采取的技术方案概括如下提供一种基于FPGA实现以太网MAC地址数据包与多个DSP串口的数据转发的方法,其数据流处理可概括为两个方向从媒体面标准接口MII接收媒体面控制器MAC包数据,根据MAC包的地址进行数据包的路由,存储,校验,并串转换,选择相应通用数字信号处理器DSP的带有缓冲能力的多通道串口McBSP进行串行数据的转发;从多个DSP的McBSP端口接收到串行数据后,校验,串并转换,在DSP内部进行MAC包封装后,从MII端口以MAC包结构转发。
上述方法中,主要可分为以下两个方向的处理1、MAC数据包从MII接口(总线工作频率25MHz、4bit数据宽度、单PHY模式)接收,经过FPGA的处理、路由和并串转换,转换为多路McBSP(总线工作频率25MHz、串行数据、1帧256个数据位)的串行数据输出。具体为(1)MAC帧接收模块检测到数据输入后,判断MAC帧前导码是否正确,进行4bit数据的移位合并为8bit的字节数据;(2)MAC帧接收模块根据目标MAC地址,选择和MAC地址对应的FIFO进行数据存储;(3)MAC帧接收模块进行MAC帧的CRC校验判断,校验正确后置位相应MAC接收标志,然后产生中断通知内核控制模块相应的数据包在FIFO中有效;(4)如果MAC帧接收模块进行MAC帧的CRC校验失败,丢弃这个MAC帧,相应的FIFO指针位置还原;(5)内核控制模块接收到MAC帧接收模块的中断后,查询相应的MAC接收标志,使能对应的TDM帧接收模块的TDM接收标志;(6)TDM帧接收模块检查TDM接收标志有效后,对相应的FIFO缓冲区中的数据进行并串转换,封装串行数据的头部标志、尾部异或校验标志,向DSP的McBSP端口发送数据。
2、多路McBSP(总线工作频率25MHz、串行数据、1帧256个数据位)从串行口接收,经过FPGA的串并转换、存储、封装MAC帧结构,转换为MAC数据包从MII接口(总线工作频率25MHz、4bit数据宽度、单PHY模式)发送。具体为(1)TDM帧发送模块从McBSP端口接收串行数据后,判断前导码是否正确,进行串行数据移位合并为8bit的字节数据;(2)TDM帧发送模块把8bit的字节数据依次写入对应的FIFO中;(3)TDM帧发送模块进行数据的异或校验,校验正确后置位相应TDM发送标志,然后产生中断通知内核控制模块相应的数据包在FIFO中有效;(4)如果TDM帧发送模块进行串行数据的异或校验失败,丢弃这个串行帧,相应的FIFO指针位置还原;(5)内核控制模块接收到TDM帧发送模块的中断后,查询相应的TDM发送标志,使能对应的MAC帧发送模块的MAC发送标志;(6)MAC帧发送模块轮询MAC帧发送模块,然后根据MAC发送标志对相应的FIFO缓冲区的数据进行8bit移位转换为4bit的MII接口数据,同时封装头部标志,尾部CRC校验标志,向MII接口总线发送MAC包数据。
提供一种基于FPGA实现以太网MAC地址数据包与DSP串口的数据转发的系统,它主要包括MAC帧接收模块、TDM帧接收模块、内核控制模块、MAC帧发送模块、TDM帧发送模块、CPU输入控制模块、锁相环控制模块和冲突检测模块;其中MAC帧接收模块连接以太网的MII总线接口和内部的接收缓冲FIFO阵列,处理MAC包的净荷提取、FIFO路由;TDM帧接收模块连接内部的接收缓冲FIFO阵列和DSP的McBSP接口,处理净荷数据的并串转换和串行数据的标志码插入;MAC帧发送模块连接以太网的MII总线接口和内部的发送缓冲FIFO阵列,处理FIFO路由、MAC包的组装;TDM帧发送模块连接DSP的McBSP接口和内部的发送缓冲FIFO阵列,处理净荷数据的串并转换和串行数据的标志码剥离;内核控制模块,连接FPGA内部的上述各个模块,处理FPGA内部的各个模块的中断,控制相关模块的工作使能;CPU输入控制模块处理外部CPU对FPGA内部功能模块的配置,从而动态的调整MAC的地址路由、通道的使能;锁相环控制模块用于FPGA内部功能模块的时钟同步;冲突检测模块用于以太网单工运行方式时冲突检测和数据重发的控制。
采用本发明的技术方案,不仅有效的完成了MII总线的MAC包数据和McBSP总线的串行数据之间的信号转换,而且可以根据配置实现一个MII总线向多个McBSP总线的数据转换。由于FPGA的灵活性,可以通过CPU动态配置MAC包转发的路由和流量控制以及McBSP端口的数量。


图1是本发明的逻辑功能框图;图2是MAC包数据向串行数据转换的处理过程图;图3是串行数据向MAC包数据转换的处理过程图。
具体实施例方式
下面将结合附图,说明本发明的具体实施方式

参照图1,本发明的系统主要包括八个功能子模块MAC帧接收模块、TDM帧接收模块、内核控制模块、MAC帧发送模块、TDM帧发送模块、CPU输入控制模块、锁相环控制模块和冲突检测模块。
本发明的方法从数据流转换的角度考虑,可分为以下两个方向的处理MAC包数据向串行数据转换的处理过程;串行数据向MAC包数据转换的处理过程。
图2示出了MAC包数据向串行数据转换的处理过程从MII接口接收、路由、存储、校验、并串转换和串行数据发送的过程。
图3示出了串行数据向MAC包数据转换的处理过程从McBSP接口接收、校验、串并转换、封装成MAC数据包、存储和MAC包数据发送的过程。
为了实现设计的数据流的处理过程,需要以下各模块完成相关的具体操作功能,每个模块间独立工作,通过内核控制模块来控制其他模块是否参与工作。具体操作如下MAC帧接收模块此模块连接以太网的MII总线接口和内部的接收缓冲FIFO阵列,处理MAC包的净荷提取、FIFO路由。主要工作过程如下●判断前导码是否正确;●根据不同的MAC地址要进行相应的缓冲区索引;●进入每个MAC地址对应的FIFO;●保留长度部分并且获取净荷数据;●当一个完整帧接收结束后,置位相应MAC的接收标志;●产生中断通知内核控制部分相应的数据包接收结束。
TDM帧接收模块此模块连接内部的接收缓冲FIFO阵列和DSP的McBSP接口,处理净荷数据的并串转换和串行数据的标志码插入。主要工作过程如下●判断接收缓冲FIFO不为空;●判断接收使能标志有效;
●从接收FIFO中读取数据;●同步于串口的时钟进行数据的并串转换;●McBSP串口进行数据的发送。
内核控制模块此模块处理FPGA内部的各个模块的中断,控制相关模块的工作使能。主要工作过程如下●响应MAC帧接收模块产生的中断,使能TDM帧接收模块对应的FIFO通道,从而TDM帧接收模块得到相应的数据;●响应TDM帧发送模块产生的中断,结合中断标志选择性使能对应的FIFO通道,从而MAC帧发送模块得到相应的数据。
MAC帧发送模块此模块连接以太网的MII总线接口和内部的发送缓冲FIFO阵列,处理FIFO路由、MAC包的组装。主要工作过程如下●判断发送的FIFO不为空;●判断MAC帧发送模块对应的发送使能标志有效;●读取FIFO中对应的数据;●组装MAC帧的头部标志;●向MII总线发送数据。
TDM帧发送模块此模块连接DSP的McBSP接口和内部的发送缓冲FIFO阵列,处理净荷数据的串并转换和串行数据的标志码剥离。主要工作过程如下●检测的串行口串行数据的前导码;●同步于TDM的时钟进行串并转换;●判断发送的FIFO不为满;●把转换后的数据写入发送的FIFO中;●剥离判断异或校验位;●接收到一个完整的数据帧;●产生一个中断通知内核控制模块。
CPU输入控制模块此模块处理外部控制CPU对FPGA内部功能模块的配置,从而动态的调整MAC的地址路由、通道的使能。主要工作过程如下●提供一个异步总线的操作接口;●地址译码选择内部的MAC地址寄存器;●动态的调整MAC地址寄存器的输出控制接收FIFO和TDM接收模块的选通;●动态的调整MAC地址寄存器的输出控制发送FIFO和TDM发送模块的选通。
锁相环控制模块此模块用于FPGA内部功能模块的时钟同步。主要工作过程如下●同步系统输入的50MHz的时钟,分频25MHz的时钟;
●产生MAC帧接收模块的25MHz的时钟;●产生MAC帧发送模块的25MHz的时钟;●产生TDM帧接收模块的25MHz的时钟;●产生TDM帧发送模块的25MHz的时钟;●产生内核控制模块的50MHz的时钟;●产生FIFO的50MHz的读写时钟。
冲突检测模块此模块用于以太网单工运行方式时冲突检测和数据重发的控制。主要工作过程如下●设置MAC的工作模式;●在单工模式有效前提下,检测MII总线的冲突信号;●发生冲突重新复位发送的FIFO指针;●重新进行MAC帧发送模块的发送过程。
由于本发明是基于FPGA实现的,故具有以下灵活特征首先,在MAC层提供了多个MAC地址向单个物理层芯片绑定的功能,简化了MAC的接口;其次,可以动态的调整FPGA内部的MAC和McBSP串口的映射关系,实现灵活的工作配置;最后,提供了多个DSP的McBSP串口的接入,可以根据实际需要进行裁减增加,多个DSP实现流量的分担处理。
综上所述,本发明提出了基于FPGA实现以太网MAC地址数据包与多个DSP串口的数据转发的方法和系统。以克服当前的MAC层芯片和DSP串行口总线接口不匹配,不能直接相连以及普通桥接芯片不能灵活实现的问题。本发明可实施的一个典型应用场合宽带码分多址系统WCDMA(Wideband Code Division Multiple Access)中,核心网进行自适应编解码AMR(Adaptive Multi-Rate)的业务流算法处理。在实际应用中,通过本设计实现多个DSP并行、负荷分担方式进行业务数据的分流处理。
尽管参照实施例对所公开的涉及一种基于FPGA实现以太网MAC地址数据包与多个DSP串口的数据转发的方法和系统进行了特别描述,本领域技术人员将能理解,在不偏离本发明的范围和精神的情况下,可以对它进行形式和细节的种种显而易见的修改。因此,以上描述的实施例是说明性的而不是限制性的,在不脱离本发明的精神和范围的情况下,所有的变化和修改都在本发明的范围之内。
权利要求
1.一种以太网数据包与多个DSP串口数据转发的方法,其特征在于,按数据流处理概括为以下两个方向从媒体面标准接口MII接收媒体面控制器MAC包数据,根据MAC包的地址进行数据包的路由,存储,校验,并串转换,选择相应通用数字信号处理器DSP的带有缓冲能力的多通道串口McBSP进行串行数据的转发;从多个DSP的McBSP端口接收到串行数据后,校验,串并转换,在DSP内部进行MAC包封装后,从MII端口以MAC包结构转发。
2.根据权利要求1所述的以太网数据包与多个DSP串口数据转发的方法,其特征在于,所述方法中,MAC数据包从MII接口接收,经过FPGA的处理、路由和并串转换,转换为多路McBSP的串行数据输出;具体为(1)MAC帧接收模块检测到数据输入后,判断MAC帧前导码是否正确,进行4bit数据的移位合并为8bit的字节数据;(2)MAC帧接收模块根据目标MAC地址,选择和MAC地址对应的FIFO进行数据存储;(3)MAC帧接收模块进行MAC帧的CRC校验判断,校验正确后置位相应MAC接收标志,然后产生中断通知内核控制模块相应的数据包在FIFO中有效;(4)如果MAC帧接收模块进行MAC帧的CRC校验失败,丢弃这个MAC帧,相应的FIFO指针位置还原;(5)内核控制模块接收到MAC帧接收模块的中断后,查询相应的MAC接收标志,使能对应的TDM帧接收模块的TDM接收标志;(6)TDM帧接收模块检查TDM接收标志有效后,对相应的FIFO缓冲区中的数据进行并串转换,封装串行数据的头部标志、尾部异或校验标志,向DSP的McBSP端口发送数据;多路McBSP从串行口接收,经过FPGA的串并转换、存储、封装MAC帧结构,转换为MAC数据包从MII接口发送;具体为(1)TDM帧发送模块从McBSP端口接收串行数据后,判断前导码是否正确,进行串行数据移位合并为8bit的字节数据;(2)TDM帧发送模块把8bit的字节数据依次写入对应的FIFO中;(3)TDM帧发送模块进行数据的异或校验,校验正确后置位相应TDM发送标志,然后产生中断通知内核控制模块相应的数据包在FIFO中有效;(4)如果TDM帧发送模块进行串行数据的异或校验失败,丢弃这个串行帧,相应的FIFO指针位置还原;(5)内核控制模块接收到TDM帧发送模块的中断后,查询相应的TDM发送标志,使能对应的MAC帧发送模块的MAC发送标志;(6)MAC帧发送模块轮询MAC帧发送模块,然后根据MAC发送标志对相应的FIFO缓冲区的数据进行8bit移位转换为4bit的MII接口数据,同时封装头部标志,尾部CRC校验标志,向MII接口总线发送MAC包数据。
3.一种以太网数据包与多个DSP串口数据转发的系统,其特征在于它主要包括MAC帧接收模块、TDM帧接收模块、内核控制模块、MAC帧发送模块、TDM帧发送模块、CPU输入控制模块、锁相环控制模块和冲突检测模块;其中MAC帧接收模块连接以太网的MII总线接口和内部的接收缓冲FIFO阵列;TDM帧接收模块连接内部的接收缓冲FIFO阵列和DSP的McBSP接口;MAC帧发送模块连接以太网的MII总线接口和内部的发送缓冲FIFO阵列;TDM帧发送模块连接DSP的McBSP接口和内部的发送缓冲FIFO阵列;内核控制模块,连接FPGA内部的上述各个模块;CPU输入控制模块处理外部CPU对FPGA内部功能模块的配置;锁相环控制模块用于FPGA内部功能模块的时钟同步;冲突检测模块用于以太网单工运行方式时冲突检测和数据重发的控制。
全文摘要
本发明涉及以太网数据包与多个DSP串口数据转发的方法和系统。其方法概括为两个方向从MII端口接收MAC包数据,根据其地址进行数据包的路由,存储,校验,并串转换,选择相应DSP的McBSP端口进行串行数据的转发;从多个DSP的McBSP端口接收到串行数据后,校验,串并转换,在DSP内部进行MAC包封装后,从MII端口以MAC包结构转发。其系统包括MAC帧接收模块、TDM帧接收模块、内核控制模块、MAC帧发送模块、TDM帧发送模块、CPU输入控制模块、锁相环控制模块和冲突检测模块。本发明完成了MII总线的MAC包数据和McBSP总线的串行数据之间的信号转换,且实现一个MII总线向多个McBSP总线的数据转换。
文档编号H04L12/56GK1863136SQ20051006921
公开日2006年11月15日 申请日期2005年5月12日 优先权日2005年5月12日
发明者王晋涛, 王洪斌 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1