用于实现以太网报文发送的方法及装置的制造方法_2

文档序号:9250964阅读:来源:国知局
U开销非常小,或者在CPU处理能力条件下,相对开销较小,可以在中断中完全处理。2、报文处理量较大,需要拆分帧报文处理运算。在普通任务中,可以预先处理帧报文的内容,提前生成下一帧报文数据的净荷,在帧中断中进行帧报文的剩余处理,例如加上报文头(以太网格式,包括目的媒体访问控制地址,源媒体访问控制地址,报文类型(指定帧报文属于哪一种以太网报文类型),例如历史用户数据报协议(User Datagram Protocol, UDP)报文,传输控制协议(Transmiss1n Control Protocol, TCP)报文,广播报文和/或组播报文等,设置自定义的数据域标志位(数据长度域,自定义标志域一一标记这个报文是帧中断发出的以太网报文,其他特殊标志域等),根据现场情况,计算并根据需要改写报文净荷中相关数据。
[0041]步骤3、帧报文的发送不交网络任务处理。在帧中断服务程序中完成发送。本步骤包含以下两个显著特征:1、帧报文发送不交给网络处理任务来完成。发送帧报文不去等待网络处理任务调度就绪。避免调度任务时带来的报文发送延时。2、发送报文的动作在帧中断引起中断服务程序中完成,不脱离这个中断,即来即发,保证报文发送的及时性。
[0042]步骤4、帧报文发送时,需要借助FPGA的以太网发送模块,启动发送。中断服务程序尽量减少耗时。这里帧中断服务程序主要的耗时时间一是帧报文处理时间,已在前面步骤2中解决。二是搬运帧报文数据到FPGA中耗时。可以有以下途径完成报文数据:1、FPGA搬运数据以常规方式进行时,以PowerPC 8313为例,总线时钟为41.25M,一次访问4个时钟周期,总线宽度是4个byte (32位),每次访问时间间隔4个时钟周期,以长包(1588个byte),搬运总共耗时(1588/4) * (4+4)个时钟周期,大约80us。2、以用户编程机制(User-Programmable Machines,UPM)方式进行时,提前编辑好CPU读写FPGA时序波形配置到片选时序控制中。同上例,总线时钟和其他时钟不变,连续猝发16次方式访问,两次猝发之间时间间隔忽略不计。则搬运数据时间需要(1588/4) *4个时钟周期,大约为40个US0 3、采用直接内存访问(Direct Memory Access,DMA)通道搬运帧报文数据,DMA通道的目的地址为FPGA片内存储帧报文的缓存。源地址为内存中存储帧报文的缓存地址。搬运内存长度为帧报文的长度。
[0043]步骤5、写入帧报文数据到FPGA缓存之后,启动FPGA以太网报文发送。通过写入一个FPGA以太网发送寄存器某一位“I”启动发送。当发送结束后,这一位被FPGA内部逻辑清零。如果这一位为“1”,则前一个帧报文没有发完,当前的帧报文不能写入FPGA缓存发送。
[0044]发送报文是FPGA把缓存中的数据进行并串转换,并根据实际网络速率适配为底层物理信号的过程。速率可选为10M,100M,1000M等。以太网物理信号的驱动可以使用FPGA本身自带的SGMII,GMII,MII等接口模块完成,也可以使用外接的物理层(Phy)驱动芯片和物理电平转换驱动器。
[0045]步骤6、启动报文发送后,有两种方式退出帧中断服务程序。一种是写入FPGA以太网发送寄存器相关位(bit)后,直接退出中断服务程序。在外部查询发送寄存器的相关位是否自清零。或者由FPGA发送完帧报文后给CPU —个中断,指明当前的帧报文已经发送完成。另一种方式启动报文发送后,先不退出中断,查询FPGA的发送寄存器的相关位,如果相关位被自清零,则认为报文发送完成,退出中断。
[0046]以上所述仅是本发明的【具体实施方式】,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种用于实现以太网报文发送的方法,其特征在于,该方法包括: 接收到帧中断信号后,进入以下帧中断处理过程,所述帧中断为CPU中断: 生成帧报文; 在帧中断程序中将所述帧报文写入集成电路芯片; 启动所述集成电路芯片发送帧报文。2.根据权利要求1所述的方法,其特征在于,所述接收到帧中断信号后,生成帧报文包括: 在接收到所述帧中断信号之前,预先处理所述帧报文的内容; 当接收到所述帧中断信号之后,在帧中断程序中进行所述帧报文的剩余处理。3.根据权利要求1所述的方法,其特征在于,所述将所述帧报文写入集成电路芯片包括: 以通用片选机制方式将所述帧报文写入集成电路芯片; 或者,以用户编程机制方式将所述帧报文写入集成电路芯片; 或者,采用直接内存访问通道将所述帧报文写入集成电路芯片。4.根据权利要求1所述的方法,其特征在于,所述启动所述集成电路芯片发送帧报文包括: 向所述集成电路芯片的以太网发送寄存器写入发送指令。5.根据权利要求1所述的方法,其特征在于,该方法还包括: 查询所述集成电路芯片是否发送完所述帧报文。6.根据权利要求5所述的方法,其特征在于,所述查询所述集成电路芯片是否发送完所述帧报文包括: 查询所述集成电路芯片的以太网发送寄存器的相关位是否被自清零,如果被自清零,则所述帧报文发送完成;否则,所述帧报文未发送完成; 或者,是否接收到来自所述集成电路芯片的中断,如果接收到,则所述帧报文发送完成;否则,所述帧报文未发送完成。7.根据权利要求1至6任一项所述的方法,其特征在于,所述集成电路芯片包括:现场可编程门阵列和/或复杂可编程逻辑器件。8.一种用于实现以太网报文发送的装置,其特征在于,该装置包括: 生成模块,用于接收到帧中断信号后,在帧中断处理过程中生成帧报文,所述帧中断为CPU中断; 写入模块,用于在所述帧中断处理过程中的帧中断程序中将所述帧报文写入集成电路芯片; 启动模块,用于在所述帧中断处理过程中启动所述集成电路芯片发送帧报文。9.根据权利要求8所述的装置,其特征在于,所述生成模块包括: 预处理子模块,用于在接收到所述帧中断信号之前,预先处理所述帧报文的内容;后处理子模块,用于当接收到所述帧中断信号之后,在帧中断程序中进行所述帧报文的剩余处理。10.根据权利要求8所述的装置,其特征在于,所述写入模块包括: 第一写入子模块,用于以通用片选机制方式将所述帧报文写入集成电路芯片; 或者,第二写入子模块,用于以用户编程机制方式将所述帧报文写入集成电路芯片; 或者,第三写入子模块,用于采用直接内存访问通道将所述帧报文写入集成电路芯片。11.根据权利要求8所述的装置,其特征在于,该装置还包括: 查询模块,用于查询所述集成电路芯片是否发送完所述帧报文。12.根据权利要求11所述的装置,其特征在于,所述查询模块包括: 查询子模块,用于查询所述集成电路芯片的以太网发送寄存器的相关位是否被自清零; 判断子模块,用于根据所述查询子模块的查询结果,如果被自清零,则所述帧报文发送完成;否则,所述帧报文未发送完成。13.根据权利要求11所述的装置,其特征在于,所述查询模块包括: 接收子模块,用于来自所述集成电路芯片的中断; 判断子模块,用于根据所述接收子模块的接收结果,如果接收到,则所述帧报文发送完成;否则,所述帧报文未发送完成。14.根据权利要求8至13任一项所述的装置,其特征在于:该装置集成于中央处理单元中。
【专利摘要】本发明公开用于实现以太网报文发送的方法及装置,该方法包括:接收到帧中断信号后,生成帧报文;将所述帧报文写入集成电路芯片;启动所述集成电路芯片发送帧报文。对于发生中断后就需要及时发送响应的以太网报文的情况,例如定时的4.615ms帧中断、突发的随机中断、其他定时速率的中断或者事件等,都可以保证以太网报文发送的及时性,保证业务的稳定性。
【IPC分类】H04L12/721, H04L12/28, H04L12/951
【公开号】CN104967580
【申请号】CN201510192346
【发明人】许炜
【申请人】中兴通讯股份有限公司
【公开日】2015年10月7日
【申请日】2009年9月27日
【公告号】CN101695045A
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1