CN101938453A - 一种实现中央处理器与以太网进行数据传输的装置与方法 - Google Patents
一种实现中央处理器与以太网进行数据传输的装置与方法 Download PDFInfo
- Publication number
- CN101938453A CN101938453A CN2009100884232A CN200910088423A CN101938453A CN 101938453 A CN101938453 A CN 101938453A CN 2009100884232 A CN2009100884232 A CN 2009100884232A CN 200910088423 A CN200910088423 A CN 200910088423A CN 101938453 A CN101938453 A CN 101938453A
- Authority
- CN
- China
- Prior art keywords
- packet
- cpu
- ethernet
- module
- data
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种实现中央处理器(CPU)与以太网进行数据传输的装置,通过利用CPU的本地总线与逻辑模块相连,逻辑模块与以太网相连,在逻辑模块内进行发送和接收以太网数据包的处理,完成CPU与以太网的数据包的交互;本发明还同时公开了一种实现CPU接收以太网数据的方法和一种实现CPU向以太网发送数据的方法;采用本发明,能有效解决CPU中以太网接口资源不足的问题,以及CPU中没有集成以太网接口情况下的以太网数据包传输问题。
Description
技术领域
本发明涉及以太网数据传输技术,尤其涉及一种实现中央处理器(CPU)与以太网进行数据传输的装置与方法。
背景技术
随着电信级设备向着高集成化、微型化方向的发展,在嵌入式系统的设备中,一块单板上集成的功能越来越多,嵌入式系统中对各个业务单板的管理也逐渐变得越来越重要。在各个业务单板中,具有以太网接口的器件的应用越来越多,由于以太网具有稳定、技术成熟、应用广泛的优点,嵌入式系统中的主控板对各个业务单板的管理越来越多的通过以太网接口来完成。
具体的,现有的嵌入式系统中主控板通过以太网接口对各个业务单板的管理,如图1所示,该装置包括:主控板10、业务单板11~业务单板1N;其中,
主控板10,用于提供以太网接口和通过以太网接口管理系统中的业务单板11~业务单板1N;
业务单板11~业务单板1N,用于通过以太网接口与主控板10进行数据包传输,接收主控板10的管理。
进一步的,主控板10还包括:主控板CPU 101、三层交换芯片102;其中,
主控板CPU 101,用于发送或接收管理数据包;
三层交换芯片102,用于在网络层转发数据包和提供以太网接口。
进一步的,业务单板11中还包括:二层交换芯片110、物理层协议(PHY)芯片111、CPU 112;
二层交换芯片110,用于在以太网的数据链路层转发数据包,向网络层提供标准的数据接口;
PHY芯片111,用于传送与接收以太网数据包,并向数据链路层设备提供标准接口;
CPU 112,用于接收主控板管理业务单板的数据包和通过内部集成的以太网接口发送数据包。
主控板CPU 101通过外设组件互连标准(PCI)总线连接三层交换芯片102,三层交换芯片102分配给各个业务单板一个独立的以太网接口,包括以太网接口1~以太网接口N,业务单板11~业务单板1N通过该以太网接口,经过二层交换芯片110和PHY芯片111与内部CPU 112集成的以太网接口进行数据通信,完成主控板对各个业务单板的管理。
可以看出,现有方法中,业务单板内的CPU大都是通过集成以太网接口,用该接口与主控板进行通信,接受主控板的管理。这样做的缺点是:会大量占用业务单板内CPU的以太网接口资源;另外,如果小的业务单板内的CPU没有集成以太网接口,则将无法通过以太网接口去接受主控板的管理。
发明内容
有鉴于此,本发明的主要目的在于提供一种实现CPU与以太网进行数据传输的装置和方法,能有效解决CPU以太网接口资源不足的问题,以及CPU没有集成以太网接口时无法接受管理的问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种实现CPU与以太网进行数据传输的装置,包括:
逻辑模块,用于在接收以太网数据包时,对以太网数据包进行同步和定帧的处理,并通过CPU自身的本地总线传送给CPU;在发送CPU的数据包时,对CPU所要发送的数据包进行以太网帧格式的封装,并经过同步处理发送到以太网;
CPU,用于通过自身的本地总线接收逻辑模块处理过的以太网的数据包、或向逻辑模块发送带有以太网帧格式信息的数据包。
其中,所述逻辑模块进一步包括:
CPU接口模块,用于在CPU接收以太网数据包时,通过CPU自身的本地总线与CPU相连,传送并缓存接收模块中缓存的数据包,并向CPU请求中断;在发送CPU数据包时,接收并缓存CPU要发送的数据包;
控制模块,用于各种控制寄存器的控制;
接收模块,用于将同步处理模块接收到的数据包进行定帧、缓存处理,以及进行接收数据包的性能统计,并将处理后的数据包缓存;
发送模块,用于控制CPU接口模块,传输其中准备发送的数据包,并对数据包进行以太网帧格式的封装处理,以及发送数据包到同步处理模块;
同步处理模块,用于进行以太网时钟与逻辑模块时钟的切换处理,接收以太网帧格式的数据包,并将数据包传送给接收模块,或者将发送模块按照以太网帧格式封装的数据包,传送进以太网。
所述接收模块进一步包括:
接收数据包模块,用于对同步处理模块接收的以太网帧格式的数据包进行定帧处理、缓存和进行接收数据包性能的统计;
接收控制模块,用于将接收数据包模块中缓存的数据包缓存在与CPU接口模块进行交互的缓存中。
上述方案中,所述接收控制模块进一步包括:接收共享缓存,用于缓存接收缓存中的数据包;
所述接收数据包模块进一步包括:
接收协议处理模块,用于对同步处理模块接收到的以太网数据包进行定帧处理、即将接收到的以太网数据包进行解析;接收缓存,用于将定帧后的以太网数据包进行缓存和进行对接收数据包性能统计。
上述方案中,该装置进一步包括:
发送控制寄存器,用于全局使能控制,对所有模块进行工作或者非工作的控制;
接收控制寄存器,用于指示CPU接收缓存的状态;
清除中断控制寄存器,用于清除在CPU中断时接收控制寄存器的标志位。
本发明还提供了一种实现CPU接收以太网数据的方法,在CPU与以太网之间设置用于数据传输的逻辑模块,该方法还包括以下步骤:
逻辑模块将以太网时钟与自身时钟进行同步,并接收以太网帧格式的数据包;
对数据包进行定帧处理,将定帧后的数据包缓存在向CPU传送数据包的指定缓存中,并向CPU申请中断;
CPU响应中断,并通过自身的本地总线读取逻辑模块内缓存的定帧处理后的数据包。
上述方案中,所述进行同步处理具体为:逻辑模块通过提取以太网时钟的上升沿或下降沿,进行以太网时钟与逻辑模块时钟的切换的同步处理。
上述方案中,所述进行定帧处理具体为:解析数据包的数据、目的物理地址、源物理地址、标签协议标识、数据类型信息,以及对数据包进行循环校验,得到循环校验信息。
本发明又提供了一种实现CPU向以太网发送数据的方法,在CPU与以太网之间设置用于数据传输的逻辑模块,该方法还包括以下步骤:
CPU将所要发送的带有以太网帧格式信息的数据包通过本地总线,传送到逻辑模块用于发送数据包的缓存位置进行缓存;
逻辑模块将缓存的带有以太网帧格式信息的数据包进行以太网帧格式的封装,并在进行同步处理后,将经过以太网帧格式封装后的数据包向以太网发送。
其中,所述将数据包进行以太网帧格式的封装具体为:逻辑模块将数据包中带有以太网帧格式的信息按照以太网帧格式进行封装,所封装的信息包括数据包的数据、目的物理地址、源物理地址、标签协议标识、数据类型、循环校验信息。
其中,所述进行同步处理具体为:逻辑模块通过提取以太网时钟的上升沿或者下降沿,将逻辑模块时钟与以太网时钟的切换的处理。
本发明所提供的实现CPU与以太网进行数据传输的装置与方法,通过在CPU与以太网的PHY芯片之间设置用于数据包传输的逻辑模块,利用CPU自身的本地总线与逻辑模块相连,在逻辑模块内进行CPU接收以太网数据包和CPU向以太网发送数据包的处理,如此,能够有效解决业务单板的CPU中以太网接口资源不足、以及CPU中没有集成以太网接口时以太网数据包的传输问题。
附图说明
图1为现有嵌入式系统中主控板通过以太网接口对各个业务单板实现管理的结构示意图;
图2为本发明实现CPU与以太网进行数据传输的装置一实施例的结构示意图;
图3为图2所示装置中逻辑模块接收缓存的内部结构示意图;
图4为图2所示装置中逻辑模块CPU接收缓存的结构示意图;
图5为本发明CPU接收以太网数据的方法实现流程示意图;
图6为本发明CPU向以太网发送数据的方法实现流程示意图。
具体实施方式
本发明的基本思想是:在CPU与以太网的PHY芯片之间设置用于数据包传输的逻辑模块,利用逻辑模块与CPU自身的本地总线相连,在逻辑模块内进行接收以太网数据包的处理和向以太网发送数据包的处理,实现与以太网进行数据传输。
下面结合附图和具体实施例对本发明做进一步的详细说明。
图2为本发明实现CPU与以太网进行数据传输的装置的一实施例结构示意图,该装置包括:CPU 20、逻辑模块21;其中,
CPU 20,用于通过自身内部的本地总线接收经由逻辑模块21处理的以太网的数据包,并向逻辑模块21发送带有以太网帧格式信息的数据包;
逻辑模块21,用于在接收以太网数据包时,对以太网数据包进行同步和定帧处理,并通过CPU 20的本地总线传送给CPU 20;在接收CPU 20的带有以太网帧格式信息的数据包时,对CPU 20所要发送的数据包进行以太网帧格式的封装,并经过同步处理发送到以太网;
进一步的,该装置还包括PHY芯片21,用于传输以太网数据包。
该逻辑模块21进一步包括:CPU接口模块23、控制模块24、接收模块25、发送模块26、同步处理模块27;其中,
CPU接口模块23,用于在CPU接收以太网数据包时,通过CPU 20的本地总线与CPU 20相连,传送并缓存接收模块25中缓存的数据包,并向CPU 20请求中断;在CPU 20发送数据包时,接收并缓存CPU 20要发送的数据包;
控制模块24,用于控制各种控制寄存器,具体包括:发送控制寄存器、接收控制寄存器、清除中断控制寄存器;
接收模块25,用于将同步处理模块27接收到的数据包进行定帧、缓存处理,以及进行接收数据包的性能统计,并将处理后的数据包缓存;
发送模块26,用于控制CPU接口模块23,传输其中准备发送的数据包,并对数据包进行以太网帧格式的封装处理,以及发送数据包到同步处理模块27;
同步处理模块27,用于进行以太网时钟与逻辑模块时钟的切换处理,接收PHY芯片22传输的以太网帧格式的数据包,并将数据包传送给接收模块25;或者将发送模块26按照以太网帧格式封装的数据包,传送给PHY芯片22;
其中,接收模块25进一步包括:接收数据包模块251、接收控制模块252;
接收数据包模块251,用于对同步处理模块27接收的以太网帧格式的数据包进行定帧处理、缓存和进行接收数据包性能的统计;
接收控制模块252,用于将接收数据包模块251中缓存的数据包缓存在与CPU接口模块23进行交互的缓存中;其中,
接收数据包模块251进一步包括:接收协议处理模块253和接收缓存254;
接收协议处理模块253,用于对同步处理模块27接收到的以太网数据包进行定帧处理、即将接收到的以太网数据包进行解析;
接收缓存254,用于将定帧后的以太网数据包进行缓存和进行对接收数据包性能统计;
接收缓存254,如图3所示,进一步包括:数据寄存器组0、数据寄存器组1、数据寄存器组2、逻辑控制模块32、数据寄存器组接收数据标识寄存器31、数据寄存器组空标识寄存器33;其中,
数据寄存器组0、数据寄存器组1、数据寄存器组2,用于缓存接收到的数据;
逻辑控制模块32,用于对数据寄存器组接收数据标识寄存器31和数据寄存器组空标识寄存器33进行读写操作;
数据寄存器组接收数据标识寄存器31,用于标识数据寄存器组接收数据包的信息和接收数据包的长度信息;
数据寄存器组空标识寄存器33,用于标识数据寄存器组中为空的组的信息。
接收控制模块252进一步包括:接收共享缓存255,用于提供与CPU接口模块23进行交互的缓存;
CPU接口模块23进一步包括:CPU接收缓存231、CPU发送缓存232;
CPU接收缓存231,用于缓存接收共享缓存255中的数据包;
CPU发送缓存232,用于缓存CPU 20所要发送的数据包;
发送模块26进一步包括:发送控制模块261、发送数据包模块262;
发送控制模块261,用于控制CPU发送缓存232,将其中的数据包传输到发送数据包模块262并通知发送数据包模块262发送;
发送数据包模块262,用于对CPU发送缓存232中的数据包进行缓存、以太网帧格式的封装处理和性能统计,并将封装后的数据包发送到同步模块27;其中,
发送数据包模块262进一步包括:发送缓存263和发送协议处理模块264;
发送缓存263,用于对CPU发送缓存232中的数据包进行缓存;
发送协议处理模块264,用于对数据包进行以太网帧格式的封装和性能统计。
上述装置中,所需使用的寄存器包括:发送控制寄存器、接收控制寄存器、清除中断控制寄存器;其中,
发送控制寄存器,包括八个比特位,用于全局使能控制,即:对所有模块进行工作或者非工作的控制,以及对CPU发送缓存232的空闲指示;其中,第8位(bit7)为0时,表示上述所有模块非工作;bit7为1时,表示上述模块都正常工作,bit7在软件对寄存器初始化时设置为1;第1位(bit0)为CPU发送缓存232的空闲指示,当CPU发送缓存232有数据包时,bit0被修改为1,数据包发送完成后,bit0被修改为0。
接收控制寄存器,包括八个比特位,用于指示CPU接收缓存231的状态,其中,
第8位(bit7)为溢出标志位,bit7=1,表示CPU接收缓存231中的数据包溢出;bit7=0,表示CPU接收缓存231中的数据包没有溢出;
第2位(bit1),bit1=1,CPU接收缓存231中偏移地址为N~2N-1的区间有数据包;bit1=0,CPU接收缓存231中偏移地址为N~2N-1的区间没有数据包;
第1位(bit0),bit0=1,CPU接收缓存231中偏移地址为0~N-1的区间有数据包;bit0=0,CPU接收缓存231中偏移地址为0~N-1的区间没有数据包;
其他位,无效。
清除中断控制寄存器,包括八个比特位,用于要求控制模块24清除在CPU20中断时的接收控制寄存器的标志位,第1位为1(bit0=1),表示要求控制模块24清除在CPU 20中断时接收控制寄存器的标志位,bit0=0,表示没有要求控制模块24清除在CPU 20中断时的接收控制寄存器的标志位。
当逻辑模块21接收PHY芯片22的以太网数据包向CPU 20传送时,该装置还用到以下寄存器:
接收数据包的错误类型寄存器,用于记录接收数据包的错误类型;
接收数据包数量统计寄存器,用于统计接收数据包的数量。
基于上述模块结构,下面对逻辑模块21接收PHY芯片22数据向CPU 20传送,以及接收CPU 20的数据包向PHY芯片22传送分别进行具体阐述。
具体的,当逻辑模块21接收PHY芯片22的以太网数据包向CPU 20传送时:发送控制寄存器的bit7在初始化时设置为1,使所有模块进行工作,同步处理模块27通过提取以太网时钟的上升沿或下降沿,进行以太网时钟与逻辑模块21时钟切换的同步处理,并从PHY芯片22接收以太网帧格式的数据包,然后,同步处理模块27将以太网数据包传输到接收模块25中的接收数据包模块251;
接收数据包模块251中的接收协议处理模块253对接收的以太网数据包进行定帧处理,包括:解析数据包的数据、目的物理地址(目的MAC)、源物理地址(源MAC)、标签协议标识(TPID)、数据类型(TYPE)等信息,以及对数据包进行循环校验(CRC校验),得到CRC校验信息,并将经过定帧处理后的数据包写入接收缓存254中;接收缓存254对经过定帧处理后的数据包进行缓存,并进行接收数据包错误和接收数据包数量的统计,对成功接收数据包时,接收指示信号置1。具体为:
首先,接收缓存254中的逻辑控制模块32读取数据寄存器组空标识寄存器33,确定可以写入的空的数据寄存器组,然后逻辑控制模块32将经过定帧处理后的数据包缓存在该数据寄存器组中,同时,将缓存数据包的数据寄存器组的信息和数据包的长度信息写入数据寄存器组接收数据标识寄存器31中;如果接收的数据包的目的MAC、TPID、TPID或者CRC校验出现错误,接收缓存254中相应的性能统计寄存器将记录错误信息,即将数据包出现的错误信息记录在接收数据包的错误类型寄存器中,接收缓存254清除错误数据包;如果接收的数据包没有错误,则接收数据包数量统计寄存器加1,并将接收指示信号置为1。
在接收指示信号为1时,接收控制模块252读取接收缓存254中数据寄存器组接收数据标识寄存器31的数据寄存器组的信息和数据包的长度信息,按照读取到的信息,在接收共享缓存255的空满指示信息为非满时,接收控制模块252将接收缓存254中的数据包传输到其内部的接收共享缓存255中进行排队,并将接收指示信号置为0;当数据包传输完毕后,接收缓存254的逻辑控制模块32将被搬空的数据寄存器组的信息写入数据寄存器组空标识寄存器33,准备接收下一个以太网数据包;接收控制模块252将接收共享缓存255的空满指示信息传输到CPU接口模块23;
CPU接口模块23判断接收共享缓存255的空满指示信息,当接收共享缓存255的空满指示信息指示为非空时,CPU接口模块23查询接收控制寄存器的bit1~bit0,当bit1~bit0≠11时,说明CPU接收缓存231有空的缓存区间,则CPU接口模块23将接收共享缓存255中的数据包传送到CPU接口模块23的CPU接收缓存231中空的缓存区间,否则CPU接口模块23不进行传送操作,其中,CPU接收缓存231的结构如图4所示。
具体的,当接收控制寄存器的bit1~bit0=00时,说明CPU接收缓存231中偏移地址为0~2N-1的区间都为空,CPU接口模块23将接收共享缓存255中的数据包传送到CPU接收缓存231中偏移地址为0~N-1的区间,置接收控制寄存器的bit0=1,并且,向CPU 20请求中断;
当接收控制寄存器的bit1~bit0=01时,说明CPU 20正在处理CPU接收缓存231中偏移地址为0~N-1的区间的数据包,而偏移地址为N~2N-1的区间为空,CPU接口模块23将接收共享缓存255中的数据包传送到CPU接收缓存231中偏移地址为N~2N-1的区间,置接收控制寄存器的bit1=1,并且,向CPU20请求中断;
当接收控制寄存器的bit1~bit0=10时,说明CPU 20正在处理CPU接收缓存231中偏移地址为N~2N-1的区间的数据包,而偏移地址为0~N-1的区间为空,CPU接口模块23将接收共享缓存255中的数据包传送到CPU接收缓存231中偏移地址为0~N-1的区间,置接收控制寄存器的bit0=1,并且,向CPU 20请求中断。
CPU 20在接收到CPU接口模块23请求的中断后,进行中断处理:
首先,CPU 20读取接收控制寄存器的内容,其中,当接收控制寄存器bit7=0时,则CPU接收缓存231没有溢出,如果在接收控制寄存器的bit0=1时进入中断,则CPU 20读取CPU接收缓存231中偏移地址为0~N-1的区间的数据包,读取完成后,将清除中断控制寄存器的bit0置为1,清除中断。
当清除中断控制寄存器的bit0=1时,接收控制寄存器bit0在控制模块24控制下置为0,中断清除后,清除中断控制寄存器的bit0在控制模块24的控制下置为0,中断处理结束;如果在接收控制寄存器的bit1=1时进入中断,则CPU20读取CPU接收缓存231中偏移地址为N~2N-1的区间的数据包,读取完成后,将清除中断控制寄存器的bit1置为1,清除中断。
当清除中断控制寄存器的bit1=1时,接收控制寄存器bit1在控制模块24的控制下置为0,中断清除后,清除中断控制寄存器的bit1在控制模块24的控制下置为0,中断处理结束;在中断处理中,CPU 20一次只能处理一个中断,即按接收控制寄存器bit0和bit1被置1的先后顺序,进行上述相应的中断处理。
当逻辑模块21接收CPU 20的数据向PHY芯片22传送时:
该装置还用到以下寄存器:
长度错误统计信息寄存器,用于对发送数据包模块262对发送缓存263中的数据包出现长度信息错误的数量进行统计,每次出现加1;
发送数据包数量统计寄存器,用于对发送数据包的数量进行统计,每发送一个数据包加1。
具体的,当逻辑模块21接收CPU 20的数据包向PHY芯片22发送时,发送控制寄存器的bit7在初始化时设置为1,使所有模块进行工作。当CPU 20有数据包需要发送时,首先CPU 20查询发送控制寄存器,如果发送控制寄存器的bit7=1且bit0=0,说明逻辑模块21处于使能状态,CPU接口模块23的CPU发送缓存232中没有数据包,CPU 20将所要发送的带有以太网帧格式信息的数据包发送到CPU发送缓存232中,包括:数据包的数据、目的MAC、源MAC、TPID、TYPE等信息,发送完成后,控制模块24置发送控制寄存器的bit0=1;CPU发送缓存263将接收到的CPU 20发送的数据包进行缓存,并产生接收到数据包的长度信息;发送模块26中的发送控制模块261判断发送控制寄存器的bit0=1时,通知CPU发送缓存232,将缓存的数据包和数据包的长度信息传输到发送模块26中的发送数据包模块262,发送数据包模块262中的发送缓存263进行接收并缓存,传输完毕后,控制模块24置发送控制寄存器的bit0=0,发送控制模块261向发送数据包模块262发出传输完毕脉冲信号,控制模块24置发送控制寄存器的bit0=0。
发送数据包模块262在检测到发送控制模块261的传输完毕脉冲信号后,首先判断发送缓存263中的数据包的长度信息是否与CPU发送缓存232中接收到的数据包的长度信息相符,如果长度信息不相符,则清除发送缓存263中的数据包,长度错误统计信息寄存器加1,并通过控制模块24将发送控制寄存器的bit0置为0。
如果长度信息正确,则启动发送数据包模块262的发送协议处理模块264,发送协议处理模块264对发送缓存263中的数据包进行CRC校验,得到CRC校验信息,将发送缓存263中的数据包连同所得的CRC校验信息按照以太网帧格式进行封装,然后,发送到同步处理模块27,发送完毕后,通知发送数据包数量统计寄存器加1。
同步处理模块27接收到发送数据包模块262发来的以太网帧格式的数据包,同步处理模块27进行逻辑模块时钟与以太网时钟的切换的同步处理,将数据包发送给PHY芯片22,完成逻辑模块21接收CPU 20的数据包向PHY芯片22的发送。
基于上述装置,本发明在CPU通过逻辑模块接收以太网的数据包时,如图5所示,包括以下步骤:
步骤501:逻辑模块将以太网时钟与自身时钟进行同步,并接收以太网帧格式的数据包;
逻辑模块通过提取以太网时钟的上升沿或下降沿,进行以太网时钟与逻辑模块时钟的切换的同步处理,接收以太网帧格式的数据包。
步骤502:逻辑模块将缓存的数据包进行定帧处理,并将定帧后的数据包缓存在接收缓存中;
这里,逻辑模块将缓存的数据包进行定帧处理,包括:解析数据包的数据、目的MAC、源MAC、TPID、TYPE等信息,以及对数据包进行CRC校验,得到CRC校验信息;然后,将定帧后的数据包缓存在接收缓存中,置接收指示信号为1,并且,对接收的数据包的性能进行统计,包括:接收的数据包的错误类型的记录以及接收数据包数量的统计。
步骤503:逻辑模块控制接收缓存中的数据包传送到接收共享缓存中;
逻辑模块在接收指示信号为1时,控制接收缓存中的数据包在接收共享缓存的空满指示信息为非满时传送到接收共享缓存中,按照数据包被传送的先后顺序进行排队,并置接收指示信号为0。
步骤504:逻辑模块将接收共享缓存中的数据包传送到向CPU传送数据包的指定缓存中,并向CPU请求中断;
这里,逻辑模块在接收共享缓存的空满指示信息为非空时,将接收共享缓存中的数据包传送到向CPU传送数据包的指定缓存中,置该缓存的接收指示信号为1,并将该接收指示信号作为向CPU请求中断的标志,向CPU请求中断。
步骤505:CPU响应中断,通过本地总线读取缓存的定帧处理后的数据包;
这里,CPU接收到请求中断后,CPU响应中断,通过本地总线将状态寄存器指示的缓存位置的数据包读取到CPU中,并清除该状态寄存器的状态指示标志。
通过上述方法,可通过逻辑模块对以太网数据包经过同步处理和定帧,从而实现通过CPU本地总线接收以太网数据包。
基于上述装置,本发明在CPU通过逻辑模块向以太网发送数据包时,如图6所示,包括以下步骤:
步骤601:CPU将所要发送的带有以太网帧格式信息的数据包通过本地总线,传送到逻辑模块的指定位置进行缓存;
这里,CPU查询逻辑模块用于接收CPU发送数据包的缓存的控制寄存器,当该控制寄存器指示的缓存没有数据包时,CPU将所要发送的带有以太网帧格式信息的数据包,包括:数据包的数据、目的MAC、源MAC、TPID、TYPE等信息,通过本地总线传送到逻辑模块用于CPU发送发送数据包的缓存,该缓存接收数据包后,产生接收数据包的长度信息,并同时置控制寄存器的指示标志,表明缓存接收到数据包。
步骤602:逻辑模块将缓存的数据包传送到用于发送数据包的缓存位置;
这里,当控制寄存器的指示标志表示用于接收数据包的缓存有数据包时,逻辑模块将缓存的数据包和接收数据包的长度信息传送到用于发送数据包的缓存位置,并对该缓存位置的数据包的长度进行判断,如果与接收数据包的长度信息不相符,则将长度错误统计信息寄存器加1,如果与接收数据包的长度信息相符,对发送数据包数量统计寄存器加1。
步骤603:逻辑模块将缓存的数据包进行以太网帧格式的封装;
逻辑模块将步骤602中缓存的数据包先进行CRC校验,得到CRC校验的信息,然后将数据包的数据、目的MAC、源MAC、TPID、TYPE、CRC校验等信息按照以太网帧格式进行封装。
步骤604:逻辑模块进行同步处理,将经过以太网帧格式封装后的数据包向以太网发送;
逻辑模块通过提取以太网时钟的上升沿或者下降沿,进行逻辑模块时钟与以太网时钟的切换的处理,将封装后的数据包向以太网发送。
通过上述方法,可利用逻辑模块对CPU所要发送的带有以太网帧格式信息的数据包进行以太网帧格式的封装,并经过与以太网的同步处理,可以实现通过CPU本地总线接收以太网数据包。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种实现中央处理器CPU与以太网进行数据传输的装置,其特征在于,该装置包括:
逻辑模块,用于在接收以太网数据包时,对以太网数据包进行同步和定帧的处理,并通过CPU自身的本地总线传送给CPU;在发送CPU的数据包时,对CPU所要发送的数据包进行以太网帧格式的封装,并经过同步处理发送到以太网;
CPU,用于通过自身的本地总线接收逻辑模块处理过的以太网的数据包、或向逻辑模块发送带有以太网帧格式信息的数据包。
2.根据权利要求1所述的装置,其特征在于,所述逻辑模块进一步包括:
CPU接口模块,用于在CPU接收以太网数据包时,通过CPU自身的本地总线与CPU相连,传送并缓存接收模块中缓存的数据包,并向CPU请求中断;在发送CPU数据包时,接收并缓存CPU要发送的数据包;
控制模块,用于各种控制寄存器的控制;
接收模块,用于将同步处理模块接收到的数据包进行定帧、缓存处理,以及进行接收数据包的性能统计,并将处理后的数据包缓存;
发送模块,用于控制CPU接口模块,传输其中准备发送的数据包,并对数据包进行以太网帧格式的封装处理,以及发送数据包到同步处理模块;
同步处理模块,用于进行以太网时钟与逻辑模块时钟的切换处理,接收以太网帧格式的数据包,并将数据包传送给接收模块,或者将发送模块按照以太网帧格式封装的数据包,传送进以太网。
3.根据权利要求2所述的装置,其特征在于,所述接收模块进一步包括:
接收数据包模块,用于对同步处理模块接收的以太网帧格式的数据包进行定帧处理、缓存和进行接收数据包性能的统计;
接收控制模块,用于将接收数据包模块中缓存的数据包缓存在与CPU接口模块进行交互的缓存中。
4.根据权利要求1所述的装置,其特征在于,所述接收控制模块进一步包括:接收共享缓存,用于缓存接收缓存中的数据包;
所述接收数据包模块进一步包括:
接收协议处理模块,用于对同步处理模块接收到的以太网数据包进行定帧处理、即将接收到的以太网数据包进行解析;
接收缓存,用于将定帧后的以太网数据包进行缓存和进行对接收数据包性能统计。
5.根据权利要求1至4任一项所述的装置,其特征在于,该装置进一步包括:
发送控制寄存器,用于全局使能控制,对所有模块进行工作或者非工作的控制;
接收控制寄存器,用于指示CPU接收缓存的状态;
清除中断控制寄存器,用于清除在CPU中断时接收控制寄存器的标志位。
6.一种实现CPU接收以太网数据的方法,其特征在于,在CPU与以太网之间设置用于数据传输的逻辑模块,该方法还包括以下步骤:
逻辑模块将以太网时钟与自身时钟进行同步,并接收以太网帧格式的数据包;
对数据包进行定帧处理,将定帧后的数据包缓存在向CPU传送数据包的指定缓存中,并向CPU申请中断;
CPU响应中断,并通过自身的本地总线读取逻辑模块内缓存的定帧处理后的数据包。
7.根据权利要求6所述的方法,其特征在于,所述进行同步处理具体为:逻辑模块通过提取以太网时钟的上升沿或下降沿,进行以太网时钟与逻辑模块时钟的切换的同步处理。
8.根据权利要求6或7所述的方法,其特征在于,所述进行定帧处理具体为:解析数据包的数据、目的物理地址、源物理地址、标签协议标识、数据类型信息,以及对数据包进行循环校验,得到循环校验信息。
9.一种实现CPU向以太网发送数据的方法,其特征在于,在CPU与以太网之间设置用于数据传输的逻辑模块,该方法还包括以下步骤:
CPU将所要发送的带有以太网帧格式信息的数据包通过本地总线,传送到逻辑模块用于发送数据包的缓存位置进行缓存;
逻辑模块将缓存的带有以太网帧格式信息的数据包进行以太网帧格式的封装,并在进行同步处理后,将经过以太网帧格式封装后的数据包向以太网发送。
10.根据权利要求9所述的方法,其特征在于,所述将数据包进行以太网帧格式的封装具体为:逻辑模块将数据包中带有以太网帧格式的信息按照以太网帧格式进行封装,所封装的信息包括数据包的数据、目的物理地址、源物理地址、标签协议标识、数据类型、循环校验信息。
11.根据权利要求9或10所述的方法,其特征在于,所述进行同步处理具体为:逻辑模块通过提取以太网时钟的上升沿或者下降沿,将逻辑模块时钟与以太网时钟的切换的处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100884232A CN101938453A (zh) | 2009-06-29 | 2009-06-29 | 一种实现中央处理器与以太网进行数据传输的装置与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100884232A CN101938453A (zh) | 2009-06-29 | 2009-06-29 | 一种实现中央处理器与以太网进行数据传输的装置与方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101938453A true CN101938453A (zh) | 2011-01-05 |
Family
ID=43391588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100884232A Pending CN101938453A (zh) | 2009-06-29 | 2009-06-29 | 一种实现中央处理器与以太网进行数据传输的装置与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101938453A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103490961A (zh) * | 2013-09-05 | 2014-01-01 | 杭州华三通信技术有限公司 | 一种网络设备 |
CN104899166A (zh) * | 2014-03-05 | 2015-09-09 | 上海华虹集成电路有限责任公司 | Cbus总线数据接收装置及方法 |
CN105119691A (zh) * | 2015-07-21 | 2015-12-02 | 中国航天科工集团第三研究院第八三五七研究所 | 一种以太网点到点可靠传输的方法 |
CN108055231A (zh) * | 2017-10-25 | 2018-05-18 | 合肥润东通信科技股份有限公司 | 一种基于数据链路层的多cpu通讯系统及其通讯方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859022A (zh) * | 2006-03-24 | 2006-11-08 | 华为技术有限公司 | 通信设备及主控板和业务板主备倒换的实现方法 |
CN101188534A (zh) * | 2007-12-11 | 2008-05-28 | 中兴通讯股份有限公司 | 一种实现信令通讯网络和管理通讯网络通道的装置和方法 |
CN101222430A (zh) * | 2008-01-24 | 2008-07-16 | 中兴通讯股份有限公司 | 一种高速多协议数据传输系统和方法 |
US20080170509A1 (en) * | 2007-01-17 | 2008-07-17 | Broadcom Corporation | System and method for diagnosing a cabling infrastructure using a PHY |
-
2009
- 2009-06-29 CN CN2009100884232A patent/CN101938453A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859022A (zh) * | 2006-03-24 | 2006-11-08 | 华为技术有限公司 | 通信设备及主控板和业务板主备倒换的实现方法 |
US20080170509A1 (en) * | 2007-01-17 | 2008-07-17 | Broadcom Corporation | System and method for diagnosing a cabling infrastructure using a PHY |
CN101188534A (zh) * | 2007-12-11 | 2008-05-28 | 中兴通讯股份有限公司 | 一种实现信令通讯网络和管理通讯网络通道的装置和方法 |
CN101222430A (zh) * | 2008-01-24 | 2008-07-16 | 中兴通讯股份有限公司 | 一种高速多协议数据传输系统和方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103490961A (zh) * | 2013-09-05 | 2014-01-01 | 杭州华三通信技术有限公司 | 一种网络设备 |
CN103490961B (zh) * | 2013-09-05 | 2017-05-10 | 新华三技术有限公司 | 一种网络设备 |
CN104899166A (zh) * | 2014-03-05 | 2015-09-09 | 上海华虹集成电路有限责任公司 | Cbus总线数据接收装置及方法 |
CN104899166B (zh) * | 2014-03-05 | 2018-04-27 | 上海华虹集成电路有限责任公司 | Cbus总线数据接收装置及方法 |
CN105119691A (zh) * | 2015-07-21 | 2015-12-02 | 中国航天科工集团第三研究院第八三五七研究所 | 一种以太网点到点可靠传输的方法 |
CN105119691B (zh) * | 2015-07-21 | 2018-08-24 | 中国航天科工集团第三研究院第八三五七研究所 | 一种以太网点到点可靠传输的方法 |
CN108055231A (zh) * | 2017-10-25 | 2018-05-18 | 合肥润东通信科技股份有限公司 | 一种基于数据链路层的多cpu通讯系统及其通讯方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109857685B (zh) | 一种mpu与fpga扩展多串口的实现方法 | |
CN102866971B (zh) | 传输数据的装置、系统及方法 | |
CN103440219B (zh) | 一种通用总线转换桥ip核 | |
CN105357147B (zh) | 一种高速高可靠的片上网络适配单元 | |
CN105376129B (zh) | 一种1394总线事务层-链路层数据包发送电路及方法 | |
CN102420877B (zh) | 一种多模式高速智能异步串口通信模块及实现方法 | |
CN110213143A (zh) | 一种1553b总线ip核及监视系统 | |
CN2938595Y (zh) | 一种用于板间通信的高速串行接口装置 | |
CN102122652A (zh) | 封装体 | |
CN106598889A (zh) | 一种基于fpga夹层板的sata主控器 | |
CN113419780B (zh) | 一种基于fpga加速卡的dpdk驱动系统 | |
CN100452757C (zh) | 报文转发方法和装置 | |
JPH08116348A (ja) | 高速通信装置 | |
CN203151539U (zh) | 一种afdx端系统虚拟链路层ip核 | |
CN112131155B (zh) | 一种高扩展性的基于fpga的pcie事务层传输方法 | |
CN104679702A (zh) | 多路高速串行接口控制器 | |
CN106528486A (zh) | 一种串口数据交换的方法 | |
CN103685578B (zh) | 主从设备的数据传输方法 | |
CN101938453A (zh) | 一种实现中央处理器与以太网进行数据传输的装置与方法 | |
EP2389632B1 (en) | Communication protocol for sharing memory resources between components of a device | |
CN105991471A (zh) | 网络设备的流控方法和流控装置以及网络设备 | |
KR20170133236A (ko) | PCIe 장치들에서의 고속 입출력을 위한 스토리지 시스템, 방법 및 장치 | |
CN107957971A (zh) | 一种基于fpga的多处理器之间的通信系统及通信方法 | |
CN103516627B (zh) | 多芯片通信中数据包发送、接收的方法和装置 | |
CN1988501B (zh) | 利用fpga完成光传输设备嵌入式控制通道通信的实现装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110105 |