CN202771418U - 高精度网卡接收时间的记录装置 - Google Patents
高精度网卡接收时间的记录装置 Download PDFInfo
- Publication number
- CN202771418U CN202771418U CN 201220360884 CN201220360884U CN202771418U CN 202771418 U CN202771418 U CN 202771418U CN 201220360884 CN201220360884 CN 201220360884 CN 201220360884 U CN201220360884 U CN 201220360884U CN 202771418 U CN202771418 U CN 202771418U
- Authority
- CN
- China
- Prior art keywords
- counter
- time
- frequency divider
- microsecond
- cpu
- 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.)
- Expired - Lifetime
Links
Images
Abstract
本实用新型提供一种高精度网卡接收时间的记录装置,包括第一分频器、第二分频器、时间发生器、FIFO缓冲器、配置寄存器、有源钟振以及整形电路;所述第一分频器和第二分频器均连接至所述有源钟振,所述时间发生器由相互连接的年月日时分秒计数器、0.1微秒计数器以及时间记录器组成;所述第一分频器连接所述0.1微秒计数器,所述第二分频器连接所述年月日时分秒计数器和所述0.1微秒计数器,所述整形电路和所述FIFO缓冲器均连接所述时间记录器,所述配置寄存器连接所述年月日时分秒计数器。本实用新型在网卡产生数据接收中断的同时,立即记录该中断所对应的时标,记录时间精度高,且降低了CPU占用率。
Description
【技术领域】
本实用新型涉及一种高精度网卡接收时间的记录装置。
【背景技术】
现有网卡收包时间的测量方法,采用CPU软处理的方式,具体为:网卡芯片收到数据包后,会产生中断,CPU在响应中断后,判断收到的数据包是否正确,并记录下CPU响应中断时的时间。这个响应时间来自CPU内部一个定时器的时间。从网卡中断到CPU响应终端这两个动作间的时间被忽略了,这个时间值受CPU负载影响非常大,随CPU负载率的变化而变化,CPU运行负担重时,容易出现记录时间偏差大的问题,而且测量时间值是随机的。如果CPU是ARM类型的CPU,这个时间能达到几十到几百微秒,如果是DSP类型的CPU,则时间也会达到几到几十微秒。对于数据包间隔时间只有几百微秒的情况来说,误差几十微秒是难以容忍的。
【实用新型内容】
本实用新型要解决的技术问题,在于提供一种高精度网卡接收时间的记录装置。
本实用新型是这样实现的:
高精度网卡接收时间的记录装置,包括第一分频器、第二分频器、时间发生器、FIFO缓冲器、配置寄存器、有源钟振以及整形电路;所述第一分频器和第二分频器均连接至所述有源钟振,所述时间发生器由相互连接的年月日时分秒计数器、0.1微秒计数器以及时间记录器组成;所述第一分频器连接所述0.1微秒计数器,所述第二分频器连接所述年月日时分秒计数器和所述0.1微秒计数器,所述整形电路和所述FIFO缓冲器均连接所述时间记录器,所述配置寄存器连接所述年月日时分秒计数器。
进一步地,本实用新型还包括用于接收外部秒脉冲信号的脉冲宽度计数器,所述脉冲宽度计数器通过补偿倍频器连接所述0.1微秒计数器,通过所述配置寄存器设置所述时间发生器的驱动时钟来自所述有源钟振或来自外部秒脉冲信号。
进一步地,CPU通过16位总线访问所述记录装置。
本实用新型具有如下优点:
通过0.1微秒计数器和年月日时分秒计数器使记录装置的时间发生器产生微秒级的时标信息,在网卡产生数据接收中断的同时,时间记录器立即记录该中断所对应的时标,这个时标包括年、月、日、时、分、秒、微秒信息,送入FIFO缓冲器,这样即使CPU没有立即响应该中断,该中断所对应的时标已经完整的记录下来。CPU在响应中断的时候,读取数据包内容,同时读取时间记录器内部FIFO即可获得对应数据包的精确时标,这个时标精度优于0.1微秒(分辨率16.67纳秒)。
通过本实用新型的记录装置记录网卡接收时间不再依赖CPU因此CPU代码的调整变化对实际的测量精度没有影响。即使原来使用实时性很差的ARM CPU,采用本实用新型记录方法后,同样可以得到非常高的时间精度,且CPU不再需要额外开销时间变量,并且能够自动更新,降低了CPU占用率,因此CPU也不再需要开销一个定时器来获得微秒量级的信息。
【附图说明】
下面参照附图结合实施例对本实用新型作进一步的说明。
图1为本实用新型的电原理图。
图2为本实用新型的流程示意图。
【具体实施方式】
请参阅图1和图2所示,对本实用新型一较佳实施例进行详细阐述。
高精度网卡接收时间的记录装置,包括第一分频器、第二分频器、时间发生器、FIFO缓冲器、配置寄存器、有源钟振以及整形电路;所述第一分频器和第二分频器均连接至所述有源钟振,所述时间发生器由相互连接的年月日时分秒计数器、0.1微秒计数器以及时间记录器组成;所述第一分频器连接所述0.1微秒计数器,所述第二分频器连接所述年月日时分秒计数器和所述0.1微秒计数器,所述整形电路和所述FIFO缓冲器均连接所述时间记录器,所述配置寄存器连接所述年月日时分秒计数器。本实施例还包括用于接收外部秒脉冲信号的脉冲宽度计数器,所述脉冲宽度计数器通过补偿倍频器连接所述0.1微秒计数器,所述配置寄存器设置所述时间发生器的驱动时钟来自所述有源钟振或来自外部秒脉冲信号。CPU通过16位总线访问所述记录装置。
请参阅图2,本实用新型的工作原理如下:
步骤1、网卡在收到数据包时,数据接收中断从低电平跳变到高电平,所述整形电路捕获该上升沿信号并输出一单脉冲触发信号;当内部有源钟振为60MHz钟振时,所述脉冲信号的宽度为16.67纳秒;
步骤2、所述单脉冲触发信号触发所述时间发生器中的时间记录器,所述时间记录器立即将所述时间发生器的当前时间记录为一时标信息,然后再将所述时标信息发送至FIFO缓冲区;所述时标信息精确到微秒;所述时间记录器可以把时标信息组帧成4个字(双字节)的时标,第一字为低16位微秒信息,第二字高8位微秒信息和年信息,第三字为秒和分信息,第四字为月日时信息,所述组帧方式可自定义。所述FIFO缓冲区可以是1KbyteFIFO,能够存储250个时标信息;
步骤3、CPU通过总线读取数据包的内容,同时CPU通过总线访问所述FIFO缓冲区,读取所述时标信息,获得网卡接收所述数据包的时间,即获得对应所述数据包的时标信息。所述总线可以是16位总线,CPU与所述FIFO缓冲区采用16位并行总线的方式进行通讯时,其中包括10位地址线、16位数据线、1个片选线、1个写使能、1个读使能信号。4个字的时标信息CPU只需要通过总线访问四次FIFO缓冲区即可获得。CPU还通过总线从网卡读取数据包,然后整合数据包内容和网卡接收数据包的时间,传给系统。
在本实施例中,所述时间发生器通过一年月日时分秒计数器和一0.1微秒计数器产生精度为0.1微秒的时间。所述年月日时分秒计数器能够从2000年1月1日0时0分0秒计数到2099年12月31日23时59分59秒,包含多个60进制和24进制计数器,所述计数器设计上能够自动识别闰年,如果为闰年,则自动增加2月29日。所述时间发生器中年月日时分秒计数器的当前时间由一配置寄存器配置,CPU可通过总线访问所述配置寄存器配置当前时间。同时,所述年月日时分秒计数器和0.1微秒计数器的驱动时钟可以来自内部有源钟振或外部秒脉冲信号,通过所述配置寄存器设置驱动时钟的来源:内部有源钟振或外部秒脉冲信号。
现以内部有源钟振为60MHz的高稳定度钟振为例,其精度为0.5PPM,相当于1秒钟的时间,最多偏差0.5微秒,有源钟振自身由于环境因素带来的漂移非常小。
当所述年月日时分秒计数器和0.1微秒计数器的驱动时钟来自内部有源钟振时:所述0.1微秒计数器的驱动时钟是所述内部有源钟振经第一分频器产生的10MHz的信号,当所述内部有源钟振为60MHz的钟振时,所述第一分频器为六分频器,所述10MHz的信号使得一个计数值正好对应0.1微秒;所述年月日时分秒计数器的驱动时钟是所述内部有源钟振经第二分频器产生的内部秒脉冲信号,所述第二分频器为60000000分频器,即将60MHz时钟变成1Hz时钟,即内部秒脉冲信号。当所述年月日时分秒计数器的当前时间设置成功后,在内部秒脉冲驱动下自动更新计数。当内部秒脉冲信号到来时,所述0.1微秒计数器清零。
当所述年月日时分秒计数器和0.1微秒计数器的驱动时钟来自外部秒脉冲信号时:所述0.1微秒计数器的驱动时钟是所述外部秒脉冲信号依次经过脉冲宽度计数器和补偿倍频器后产生的10MHz信号;所述脉冲宽度计数器获取外部秒脉冲信号两个上升沿之间的间隔时间(即秒脉冲时间宽度)在60MHz时钟驱动下的计数值。假如外部秒脉冲信号与内部秒脉冲信号一致,则计数值为60000000;如果外部秒脉冲宽度比内部秒脉冲宽度宽1微秒,1/0.01667=60,则计数值为60000060;如果外部秒脉冲宽度比内部秒脉冲宽度窄1微秒,则计数值为59999940。所述补偿倍频器,根据脉冲宽度计数器的值,将外部秒脉冲信号,补偿倍频成10MHz信号。如果计数值刚好为60000000,则倍频器在60MHz时钟驱动下自动计数到6后,就输出一个脉冲,因此对应一秒钟,有10000000个秒脉冲。如果计数值为60000060,这个值除以10000000得到的值是6.000006,不是整数,不能按普通的方式进行处理。因此补偿倍频器每间隔1000000次计数时,就把计数宽度改成7,其他时候仍使用宽度6,这样最终一秒钟仍然输出1000000个秒冲。因此,所述补偿倍频器的输出是一个脉冲间隔(上一个脉冲与下一个脉冲的时间宽度)可调的10MHz信号,是通过外部秒脉冲宽度计算还原出来的。
当所述年月日时分秒计数器的当前时间设置成功后,在内部秒脉冲信号或外部秒脉冲驱动下自动更新计数。当内部秒脉冲信号或外部秒脉冲信号到来时,所述年月日时分秒计数器使时钟跳过1秒,且将所述0.1微秒计数器清零,从0微秒开始计时。
需要说明的是,在本实用新型实施前,需要进行初始化工作,首先通过CPU访问总线对配置寄存器进行配置,配置寄存器再将当前时间配置到所述年月日时分秒计数器,然后通过配置寄存器设置驱动时间的来源,最后打开所述年月日时分秒计数器和0.1微秒计数器。对于网卡,首先要初始化网卡寄存器,再清所述FIFO缓冲区,然后打开网卡接收中断。
本实用新型通过0.1微秒计数器和年月日时分秒计数器使记录装置的时间发生器产生微秒级的时标信息,在网卡产生数据接收中断的同时,时间记录器立即记录该中断所对应的时标,这个时标包括年、月、日、时、分、秒、微秒信息,送入FIFO缓冲器,这样即使CPU没有立即响应该中断,该中断所对应的时标已经完整的记录下来。CPU在响应中断的时候,读取数据包内容,同时读取时间记录器内部FIFO即可获得对应数据包的精确时标,这个时标精度优于0.1微秒(分辨率16.67纳秒)。
通过本实用新型的记录装置记录网卡接收时间不再依赖CPU,因此CPU代码的调整变化对实际的测量精度没有影响。即使原来使用实时性很差的ARM CPU,采用本实用新型记录方法后,同样可以得到非常高的时间精度,且CPU不再需要额外开销时间变量,并且能够自动更新,降低了CPU占用率,因此CPU也不再需要开销一个定时器来获得微秒量级的信息。
虽然以上描述了本实用新型的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本实用新型的范围的限定,熟悉本领域的技术人员在依照本实用新型的精神所作的等效的修饰以及变化,都应当涵盖在本实用新型的权利要求所保护的范围内。
Claims (3)
1.高精度网卡接收时间的记录装置,其特征在于:包括第一分频器、第二分频器、时间发生器、FIFO缓冲器、配置寄存器、有源钟振以及整形电路;所述第一分频器和第二分频器均连接至所述有源钟振,所述时间发生器由相互连接的年月日时分秒计数器、0.1微秒计数器以及时间记录器组成;所述第一分频器连接所述0.1微秒计数器,所述第二分频器连接所述年月日时分秒计数器和所述0.1微秒计数器,所述整形电路和所述FIFO缓冲器均连接所述时间记录器,所述配置寄存器连接所述年月日时分秒计数器。
2.根据权利要求1所述的高精度网卡接收时间的记录装置,其特征在于:还包括用于接收外部秒脉冲信号的脉冲宽度计数器,所述脉冲宽度计数器通过补偿倍频器连接所述0.1微秒计数器,通过所述配置寄存器设置所述时间发生器的驱动时钟来自所述有源钟振或来自外部秒脉冲信号。
3.根据权利要求1所述的高精度网卡接收时间的记录装置,其特征在于:CPU通过16位总线访问所述记录装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201220360884 CN202771418U (zh) | 2012-07-24 | 2012-07-24 | 高精度网卡接收时间的记录装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201220360884 CN202771418U (zh) | 2012-07-24 | 2012-07-24 | 高精度网卡接收时间的记录装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN202771418U true CN202771418U (zh) | 2013-03-06 |
Family
ID=47777979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201220360884 Expired - Lifetime CN202771418U (zh) | 2012-07-24 | 2012-07-24 | 高精度网卡接收时间的记录装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN202771418U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650616A (zh) * | 2021-01-05 | 2021-04-13 | 上海擎昆信息科技有限公司 | 一种中断检测方法、装置和系统 |
-
2012
- 2012-07-24 CN CN 201220360884 patent/CN202771418U/zh not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650616A (zh) * | 2021-01-05 | 2021-04-13 | 上海擎昆信息科技有限公司 | 一种中断检测方法、装置和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106154816B (zh) | 一种自动装置高精度守时方法 | |
CN104393981B (zh) | 一种多路测量数据并行的时间标记方法及系统 | |
CN102012671A (zh) | 一种简约多模式的高稳卫星时钟装置 | |
CN110928176B (zh) | 一种支持多种授时技术的多功能授时设备 | |
US8458506B2 (en) | Real time clock and method for recording data in real time clock | |
CN110535551B (zh) | 一种电力系统中故障录波采样数据的同步方法及系统 | |
CN202771418U (zh) | 高精度网卡接收时间的记录装置 | |
CN102855172B (zh) | 高精度记录网卡接收时间的方法 | |
CN106444351A (zh) | 多源解码授时系统及其工作方法 | |
CN207281290U (zh) | 一种时间监测装置 | |
CN107643116B (zh) | 一种水表转速标定方法、系统及装置 | |
CN102254569B (zh) | 四倍数据速率qdr控制器及其实现方法 | |
CN212364801U (zh) | 烟感探测器mcu的rtc校准电路 | |
CN105843768B (zh) | 一种单线通信多次可编程存储器烧录方法及基于该方法的烧录装置 | |
CN112511156B (zh) | 一种脉冲计量及存储方法 | |
CN109167736B (zh) | 高均匀度的数据包发包方法及装置 | |
CN203587987U (zh) | 一种新型多通道计时仪 | |
CN105139533A (zh) | 具有阶梯计价功能的远传智能燃气表 | |
CN105222846A (zh) | 物联网智能水表阶梯计价的实现方法 | |
CN101303662B (zh) | 一种实现风机转速采集的方法及装置 | |
CN113805463B (zh) | 一种空调定时时间校准的方法 | |
CN103699103B (zh) | 分散控制系统中事件顺序记录的方法 | |
CN208171165U (zh) | 用于传感器装置的位移测量系统 | |
CN112578413A (zh) | 一种定时同步计时方法、装置及异地同步计时系统 | |
CN107819563A (zh) | 时间同步装置和脉搏波传导速度的测量系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20130306 |