高精度记录网卡接收时间的方法技术

技术编号:8161465 阅读:217 留言:0更新日期:2013-01-07 19:29
本发明专利技术提供一种高精度记录网卡接收时间的方法,首先网卡在收到数据包时,数据接收中断从低电平跳变到高电平,一整形电路捕获该上升沿信号并输出一单脉冲触发信号;其次,所述单脉冲触发信号触发一时间发生器中的时间记录器,所述时间记录器立即将所述时间发生器的当前时间记录为一时标信息,然后再将所述时标信息发送至FIFO缓冲区;最后CPU通过总线读取数据包的内容,同时CPU通过总线访问所述FIFO缓冲区,读取所述时标信息,获得网卡接收所述数据包的时间,即获得对应所述数据包的时标信息。本发明专利技术在网卡产生数据接收中断的同时,立即记录该中断所对应的时标,记录时间精度高,且降低了CPU占用率。

【技术实现步骤摘要】

本专利技术涉及ー种。背景技木现有网卡收包时间的測量方法,采用CPU软处理的方式,具体为网卡芯片收到数据包后,会产生中断,CPU在响应中断后,判断收到的数据包是否正确,并记录下CPU响应中断时的时间。这个响应时间来自CPU内部一个定时器的时间。从网卡中断到CPU响应终端这两个动作间的时间被忽略了,这个时间值受CPU负载影响非常大,随CPU负载率的变化而变化,CPU运行负担重时,容易出现记录时间偏差大的问题,而且測量时间值是随机的。如果CPU是ARM类型的CPU,这个时间能达到几十到几百微秒,如果是DSP类型的CPU,则时间也会达到几到几十微秒。对于数据包间隔时间只有几百微秒的情况来说,误差几十微秒是难以容忍的。
技术实现思路
本专利技术要解决的技术问题,在于提供ー种。本专利技术是这样实现的,包括如下步骤步骤I、网卡在收到数据包时,数据接收中断从低电平跳变到高电平,一整形电路捕获该上升沿信号并输出ー单脉冲触发信号;步骤2、所述单脉冲触发信号触发ー时间发生器中的时间记录器,所述时间记录器立即将所述时间发生器的当前时间记录为ー时标信息,然后再将所述时标信息发送至FIFO缓冲区;所述时标信息精确到微秒;步骤3、CPU通过总线读取数据包的内容,同时CPU通过总线访问所述FIFO缓冲区,读取所述时标信息,获得网卡接收所述数据包的时间,即获得对应所述数据包的时标信O进ー步地,所述时间发生器通过一年月日时分秒计数器和一 O. I微秒计数器产生精度为O. I微秒的时间;所述时间发生器中年月日时分秒计数器的当前时间由一配置寄存器配置,CPU通过总线访问所述配置寄存器配置当前时间;同时,所述年月日时分秒计数器和O. I微秒计数器的驱动时钟来自内部有源钟振或外部秒脉冲信号,通过所述配置寄存器设置驱动时钟的来源内部有源钟振或外部秒脉冲信号。进ー步地,所述年月日时分秒计数器和O. I微秒计数器的驱动时钟来自内部有源钟振时,所述O. I微秒计数器的驱动时钟是所述内部有源钟振经第一分频器产生的IOMHz的信号,所述年月日时分秒计数器的驱动时钟是所述内部有源钟振经第二分频器产生的内部秒脉冲信号;当内部秒脉冲信号到来时,所述O. I微秒计数器清零。进ー步地,所述年月日时分秒计数器和O. I微秒计数器的驱动时钟来自外部秒脉冲信号时,所述O. I微秒计数器的驱动时钟是所述外部秒脉冲信号依次经过脉冲宽度计数器和补偿倍频器后产生的IOMhz信号,所述年月日时分秒计数器的驱动时钟由外部秒脉冲信号直接提供。进ー步地,所述总线为16位并行总线。本专利技术具有如下优点在网卡产生数据接收中断的同时,立即记录该中断所对应的时标,这个时标包括年、月、日、时、分、秒、微秒信息,送入FIFO缓冲区,这样即使CPU没有立即响应该中断,该中断所对应的时标已经完整的记录下来。CPU在响应中断的时候,读取数据包内容,同时读取时间记录器内部FIFO即可获得对应数据包的精确时标,这个时标精度优于O. I微秒(分辨率16. 67纳秒)。 本专利技术记录网卡接收时间不再依赖CPU,因此CPU代码的调整变化对实际的測量精度没有影响。即使原来使用实时性很差的ARM CPU,采用本专利技术记录方法后,同样可以得到非常高的时间精度,且CPU不再需要额外开销时间变量,并且能够自动更新,降低了 CPU占用率,因此CPU也不再需要开销ー个定时器来获得微秒量级的信息。附图说明下面參照附图结合实施例对本专利技术作进ー步的说明。图I为本专利技术的示意图。图2为本专利技术的流程示意图。具体实施方式请參阅图I和图2所示,对本专利技术进行详细阐述。,包括如下步骤步骤I、网卡在收到数据包时,数据接收中断从低电平跳变到高电平,一整形电路捕获该上升沿信号并输出ー单脉冲触发信号;当内部有源钟振为60MHz钟振时,所述脉冲信号的宽度为16. 67纳秒;步骤2、所述单脉冲触发信号触发ー时间发生器中的时间记录器,所述时间记录器立即将所述时间发生器的当前时间记录为ー时标信息,然后再将所述时标信息发送至FIFO缓冲区;所述时标信息精确到微秒;所述时间记录器可以把时标信息组帧成4个字(双字节)的时标,第一字为低16位微秒信息,第二字高8位微秒信息和年信息,第三字为秒和分信息,第四字为月日时信息,所述组帧方式可自定义。所述FIFO缓冲区可以是IKbyteFIFO,能够存储250个时标信息;步骤3、CPU通过总线读取数据包的内容,同时CPU通过总线访问所述FIFO缓冲区,读取所述时标信息,获得网卡接收所述数据包的时间,即获得对应所述数据包的时标信息。所述总线可以是16位总线,CPU与所述FIFO缓冲区采用16位并行总线的方式进行通讯时,其中包括10位地址线、16位数据线、I个片选线、I个写使能、I个读使能信号。4个字的时标信息CPU只需要通过总线访问四次FIFO缓冲区即可获得。CPU还通过总线从网卡读取数据包,然后整合数据包内容和网卡接收数据包的时间,传给系统。在本实施例中,所述时间发生器通过一年月日时分秒计数器和一 0. I微秒计数器产生精度为0. I微秒的时间。所述年月日时分秒计数器能够从2000年I月I日O时O分O秒计数到2099年12月31日23时59分59秒,包含多个60进制和24进制计数器,所述计数器设计上能够自动识别闰年,如果为闰年,则自动増加2月29日。所述时间发生器中年月日时分秒计数器的当前时间由一配置寄存器配置,CPU可通过总线访问所述配置寄存器配置当前时间。同时,所述年月日时分秒计数器和O. I微秒计数器的驱动时钟可以来自内部有源钟振或外部秒脉冲信号,通过所述配置寄存器设置驱动时钟的来源内部有源钟振或外部秒脉冲信号。现以内部有源钟振为60MHz的高稳定度钟振为例,其精度为O. 5PPM,相当于I秒钟的时间,最多偏差O. 5微秒,有源钟振自身由于环境因素带来的漂移非常小。当所述年月日时分秒计数器和O. I微秒计数器的驱动时钟来自内部有源钟振时所述O. I微秒计数器的驱动时钟是所述内部有源钟振经第一分频器产生的IOMHz的信号,当所述内部有源钟振为60MHz的钟振时,所述第一分频器为六分频器,所述IOMHz的信号使得ー个计数值正好对应O. I微秒;所述年月日时分秒计数器的驱动时钟是所述内部有源钟振经第二分频器产生的内部秒脉冲信号,所述第二分频器为60000000分频器,即将60MHz时钟变成IHz时钟,即内部秒脉冲信号。当所述年月日时分秒计数器的当前时间设置成功后,在内部秒脉冲驱动下自动更新计数。当内部秒脉冲信号到来时,所述O. I微秒计数器清零。当所述年月日时分秒计数器和O. I微秒计数器的驱动时钟来自外部秒脉冲信号时所述O. I微秒计数器的驱动时钟是所述外部秒脉冲信号依次经过脉冲宽度计数器和补偿倍频器后产生的IOMhz信号;所述脉冲宽度计数器获取外部秒脉冲信号两个上升沿之间的间隔时间(即秒脉冲时间宽度)在60MHz时钟驱动下的计数值。假如外部秒脉冲信号与内部秒脉冲信号一致,则计数值为60000000 ;如果外部秒脉冲宽度比内部秒脉冲宽度宽I微秒,1/0. 01667=60,则计数值为60000060 ;如果外部秒脉冲宽度比内部秒脉冲宽度窄I微秒,则计数值为59999940。所述补偿倍频器,根据脉冲宽度计数器的值,将外部秒脉冲信号,本文档来自技高网...

【技术保护点】
高精度记录网卡接收时间的方法,其特征在于:包括如下步骤:步骤1、网卡在收到数据包时,数据接收中断从低电平跳变到高电平,一整形电路捕获该上升沿信号并输出一单脉冲触发信号;步骤2、所述单脉冲触发信号触发一时间发生器中的时间记录器,所述时间记录器立即将所述时间发生器的当前时间记录为一时标信息,然后再将所述时标信息发送至FIFO缓冲区;所述时标信息精确到微秒;步骤3、CPU通过总线读取数据包的内容,同时CPU通过总线访问所述FIFO缓冲区,读取所述时标信息,获得网卡接收所述数据包的时间,即获得对应所述数据包的时标信息。

【技术特征摘要】

【专利技术属性】
技术研发人员:倪时龙王云茂陈晶
申请(专利权)人:福建亿榕信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1