摘要: 本应用笔记给出了达拉斯半导体DS1994内存/时间iButton精确测量时间的技术。
本应用说明详细介绍了使用达拉斯半导体DS1994内存/时间进行精确时间测量的技术按钮。通过使用实时时钟(RTC)和附加的非易失性SRAM来存储校准常数,可以显著提高计时精度。每当计时器复位时,改进的校准常数可以存储在非易失性SRAM中,以便连续复位自适应提高精度。当读取计时器时,这些常量与未校正的时基一起提供给微处理器程序,该程序计算并显示更准确的时间。这样,温度,初始校准,石英老化和冲击历史误差的实际影响可以最小化。
对时间测量精度的第一个要求是由于需要根据天文测量来确定海上的经度。由于地球自转,4秒的时间测量误差会产生1角分的经度误差,或者在纬度接近30度的地方产生1英里的经度误差。要确定一艘船的位置,精确到一英里以内,就必须有一台好的六分仪和一个能够在4秒内给出正确时间的计时器,即使在海上航行了许多天。
第一个能提供所需精度的航海天文钟是精密的机械装置。这些仪器不能直接提供准确的时间。取而代之的是,在陆地上对计时器进行仔细的表征,以确定它的快慢,以及误差如何取决于温度和其他环境因素。每个计时器都提供了自己独特的一套表征数据,这些数据可以在海上使用,从仪器提供的未校正时间计算出正确的时间。
一个现代的,便宜的石英数字手表现在优于最好的早期航海天文钟。通过仔细的表征和校正计算,可以从现代石英表获得高度的精度。由于实际原因,对早期计时学非常重要的校正计算很少在现代计时器上进行。因此,腕表、电脑时钟或其他石英计时器在未经校正的情况下,每天可能会增加或减少一秒或更多。正确执行的校正计算可以大大减少这种错误。微处理器和微控制器现在可以相对容易地执行此计算,允许微处理器控制的计时设备实现精度的显着增加。
石英晶体控制时计的误差来源如下:
石英振荡器的振荡频率取决于温度。典型的32.768kHz腕表晶体的频率与温度成二次关系,最大频率发生在“室温”(25°C)附近。
石英振荡器的振荡频率在一定程度上取决于构成振荡电路的电路元件的值。校准误差是指在工厂对电路元件进行调整(微调)时产生的误差,该误差会导致II中所述的最大频率。A以上的值必须大于或小于预期值。
石英晶体在制造过程中产生机械应力,影响其振荡频率。在晶体寿命期间,这些应力会自发地放松,导致频率缓慢而长期的变化。
剧烈的机械冲击可以使石英晶体中的现有应力突然松弛或产生新的应力。这导致晶体频率的阶跃函数变化,随后随着时间的推移,新的应力模式随之松弛。
振荡频率随时间和冲击历史的变化是不可预测的,因此不受自动校正的影响。然而,在频率发生变化后进行重新校准可以消除这些影响,直到它们再次发生。因此,对实际计时精度的两个最重要的影响是振荡频率的温度依赖性和工厂校准误差。
温度效应的重要性可能因环境的不同而有很大差异。连续佩戴的腕表暴露在几乎恒定的温度环境中。在这种情况下,观测到的误差几乎完全是由于校准误差。即使手表晚上放在梳妆台上,它仍然会经历每天的平均温度环境,每天的平均温度几乎是恒定的。另一方面,一个计时器暴露在每天和季节性的极端室外温度下,预计会表现出更大的温度效应。
原则上,校准误差可以任意小。然而,在制造环境中,由于几个原因,非常精确地校准是不切实际的。手表有机械调整修剪振荡器有反弹和蠕变,限制精度,他们可以设置。一个更重要的因素是,非常精确的校准需要很长一段时间来执行,因为计时器需要时间来积累可测量的误差。因此,室内使用的手表和水晶控制计时器几乎完全受到校准不精确的限制。
如上所述,室内水晶控制计时器精度的主要限制是其出厂校准的精度。像早期的航海天文钟一样,该装置能够非常精确地测量时间,但不直接显示准确的时间。为了达到期望的精度,有必要确定校正系数,然后执行校正计算以确定校正时间。这种更正采用以下形式:
修正时间=未修正时间+(未修正时间- A) / B
上式中,A、B值为表征得到的修正系数。设置计时器并确定A和B的值,步骤如下:
在初始时间T1,将计时器与高度精确的时间标准同步。为此,美国国家标准与技术研究所(NIST)提供了宽带业务(5mhz、10mhz和15mhz的WWV)和9600bps调制解调器线路(303-494-4774)。设系数A等于时间T1。
等待很长一段时间,以允许未校正时间内的错误累积。延迟几天到一个星期可以获得良好的效果,但延迟时间越长效果越好。在较长的延迟时间内,计时器应暴露在平均温度环境中,以便稍后使用。
在高精度时间标准提供的稍后时间T2,从计时器上读取未校正的时间T,并解出系数B的下式。
B = (t - t1) / (t2 - t)
既然已经确定了系数A和B,那么可以通过使用表征中得到的A和B的值应用校正方程,从任何未校正的时间测量中计算校正时间。注意,B的值可以是正的,也可以是负的,这取决于计时器的运行速度是快还是慢。还应该注意的是,B的值可以看作是一个大整数(有符号整数)。
上面所描述的更正虽然原理上很简单,但由于实际的时间单位(年、月、日、时、分、秒)是以一种复杂的方式联系在一起的,这一事实使其变得复杂。例如,为了确定T - T1,有必要找出T1表示的日期和时间与T表示的日期和时间之间的总秒数。为了便于校正计算,非常希望计时员以单一标准单位(例如秒)测量时间。UNIX操作系统就是这样一个标准,在这个标准中,时间被保存为从1970年1月1日开始经过的总秒数。使用这个标准,可以很容易地用长整数运算进行校正计算。
DS1994内存/时间我由达拉斯半导体制造的按钮是一种小型的,密封的,内部供电的计时装置,具有512字节的非易失性RAM存储器和许多专门的计时功能。DS1994的数据传输是通过使用达拉斯半导体1-Wire 数据通信协议的单个串行数据线完成的。DS1994有几个特点,使其特别适用于上述类型的校正计算:
DS1994在一个5字节的寄存器中积累日期/时间信息,作为从某个任意参考日期开始的每秒256分之一的数字。(为了与UNIX操作系统兼容,建议使用参考日期1970年1月1日。)这种日期/时间格式是执行上述校正计算的理想格式,也可以很容易地确定一周中的哪一天。应用校正后,可以很容易地将校正后的日期和时间转换为更标准的格式(MM/DD/YYYY, HH:MM:SS)。
校正系数A和B可以存储在DS1994的非易失性RAM存储器中。这种模块化提供了制造优势,因为DS1994可以表征并加载其a和B系数,然后用作组装最终计时产品的组件。没有必要在执行DS1994的准确表征所需的相对较长时间内捆绑整个产品。这种模块化也便于维修或更换。
DS1994的振荡频率在出厂时是固定的。固定频率电路提供长期稳定性,优于机械修整元件,因为它在修整调整中没有机械松弛效应。
由于1线接口,DS1994可以很容易地位于与产品的其余部分有一定距离的地方。当产品本身产生可能影响计时器准确性的热量时,这一点很重要。(对于需要极高精度的应用,计时器本身保存在恒温烤箱中,DS1994的包装和1-Wire接口简化了产品设计。)
达拉斯半导体公司为DS5000(英特尔8051兼容微控制器)开发了一个演示程序,该程序计算从表征DS1994校正的时间,并将结果显示在LCD显示器上。使用该程序和正确表征的DS1994,并将a和B系数存储在其非易失性存储器中,在两个月的时间内,在室内观察到6个月内1秒的精度。还开发了表征ds1994、计算和存储校正系数的PC程序。PC程序通过DS9097 COM端口适配器和DS9092与ds1994通信我按钮探针。适配器和探头连接到PC的任何RS232C串行端口,PC只需用探头触摸即可将数据读写到DS1994。这个演示集中的程序描述如下。
这是一个PC程序,执行第III.1节中描述的校准步骤。T1从PC的DOS时钟中获取。由于PC通常具有较差的计时精度,因此有必要首先将PC时钟与NIST标准同步,以便它可以用作辅助时间标准。(这种同步可以用9600或更快的bps电话调制解调器和MS DOS实用程序TIMESET来完成,可以从生命科学软件公司(Life Sciences Software)获得,地址是华盛顿州斯坦伍德市邮政信箱587号,电话360-387-9788。1992年10月27日《PC杂志》上有一个类似的程序WTIME,作为微软Windows的免费实用程序。)要设置DS1994时间和第一次校正系数A,输入
SETTIME <com端口号;时区偏移>
在DOS提示符下,然后用探针触摸DS1994。com端口号>为DS9097适配器所连接的COM口编号。时区偏移>是所需偏移的小时数,如果PC设置为夏令时,则输入-1。程序设置DS1994中的时间寄存器和A系数,响应“日期和时间成功设置”并终止。
这是一个PC程序,执行第III.3节中描述的校准步骤。在使用CalTime程序之前,应该允许ds1994在使用它们的典型环境中保持几天或几周。T2从PC的DOS时钟中获取。同样,有必要首先将PC时钟与NIST标准同步,以便它可以用作辅助标准。要计算和设置第二个修正系数B,请键入
com端口号>时区偏移>
在DOS提示符下,然后用探针触摸DS1994。程序设置DS1994中的B系数,响应“日期和时间已成功校准”并终止。
这是一个用于DS5000微控制器的程序,它从DS1994读取时间和校正系数,计算校正,并在附带的LCD显示器上显示校正时间,日期,星期几和日光/标准时间指示器。(为了避免夏令时的问题,程序从DS1994读取标准时间,并在夏令时生效时自动将其转换为夏令时。)程序用KSC Pascal编写,并按照KSC推荐的方式将日立LCD控制器连接到DS5000上,将基址从6000十六进制改为0000十六进制。该程序可以用KSC软件系统的SYSTEM51 (Ver 3.10)软件开发系统编译,该软件开发系统位于丹麦Ballerup, Ludvig Holsteins Alle 137, DK-2750,电话(Int. 45) 44 97 69 11,传真(Int. 45) 44 97 96 12。
这是一个PC程序,使用串行端口适配器读取DS1994并显示已校正和未校正的时间值,校准常数和测量误差。要读取DS1994并显示这些结果,请键入
READTIME <com端口号>时区偏移>
在DOS提示符下,然后用探针触摸DS1994。程序显示未校正的日期和时间、校正后的日期和时间、校正和未校正时间之间的秒差、校正系数A和B的值、当前DOS时间以及校正后的时间和当前DOS时间之间的秒差。
请注意,在上述所有程序中,A和B的值存储在DS1994的“时钟页”中未使用的实时警报和间隔时间警报寄存器中。这样做是为了将512字节的非易失性RAM内存保留给其他可能的用途。A和B的值可以在将来的任何时候分别通过SetTime和CalTime程序独立重置。
为了研究校准过程的有效性,将一组50份ds1994分为五组,每组10份。所有部件的第一个校准点都用SetTime设置为上午11:50。中央标准时间1992年7月14日。A、B、C、D和E五组中的每一组在不同的时间段后重新校准。用CalTime为各组设置第二个校准点如下:
1992年7月16日上午11点50分,A组。B组在1992年7月22日上午9:30 CST。C组,1992年7月29日CST下午3:40。D组,1992年8月3日上午9点10分。1992年8月13日上午7点35分,E组。
当这些部件不被读取或校准时,它们就被放在装有空调的办公环境中的书桌抽屉里。1992年9月15日上午11时50分,用ReadTime对所有部分进行了读取,并以秒为单位将修正后的时间误差制成表格,如下表所示:
部分# | A组 | B组 | C组 | D组 | E组 |
1 | 0.62 | 0.63 | 0.56 | -0.29 | 0.05 * |
2 | 2.38 | 1.31 | 0.48 | -0.09 * | 0.13 * |
3. | 3.03 | 0.74 | 0.20 * | -0.30 | 0.21 |
4 | 2.41 | 0.50 | 0.13 * | -0.07 * | -0.02 * |
5 | 2.79 | 0.81 | 0.79 | 0.01 * | -0.08 * |
6 | 1.02 | 0.43 | 0.21 * | 0.02 * | 0.08 * |
7 | 2.20 | 0.95 | 0.16 * | 0.04 * | 0.23 |
8 | 1.20 | 0.67 | 0.48 | 0.09 * | 0.04 * |
9 | 1.12 | 0.29 * | 0.07 * | 0.22 * | 0.19 |
10 | 1.79 | 1.3 | 0.76 | 0.07 * | -0.32 |
的意思是 | 1.856 | 0.770 | 0.384 | -0.030 | 0.051 |
Std.Dev。 | 0.827 | 0.355 | 0.265 | 0.164 | 0.165 |
天卡尔。 | 2.00 | 7.90 | 15.16 | 19.89 | 29.82 |
天空闲 | 61.00 | 55.10 | 47.84 | 43.11 | 33.18 |
上表中的“Days cal”表示第一个校准点与第二个校准点之间的天数,“Days Idle”表示从第二个校准点到9月15日最后一次测量的天数。
请注意,用星号标记的修正时间表示每年误差小于2秒。校准时间较短的部件显示出较大的误差和较大的标准偏差,这表明端点校准不准确和短期温度波动的影响。(相比之下,50个ds1994的未校正时间平均误差为526秒/年,标准差为210秒/年。)
最后一次测量是在1993年7月14日上午11点50分进行的,距首次观测一年之后。未校正的时间显示平均误差为550.6秒,标准偏差为207.8秒,与上述两个月的测量一致。在百万分率(ppm)中,这是17.5 ppm±6.6 ppm。五组校正时间的平均误差如下:
A组: | 26.83秒±6.81秒 | (0.85 PPM±0.22 PPM) |
B组: | 22.91秒±6.94秒 | (0.73 PPM±0.22 PPM) |
C组: | 18.30秒±3.83秒 | (0.58 PPM±0.12 PPM) |
D组: | 15.48秒±2.81秒 | (0.49 PPM±0.09 PPM) |
E组: | 15.94秒±3.70秒 | (0.51 PPM±0.12 PPM) |
虽然不像两个月期间的测量那么精确,但这些精度仍然令人印象深刻。校正后的偏差都在同一个方向上,这表明存储这些部件的环境的温度可能发生了季节性变化。正如预期的那样,校准周期最短的组(A组)误差最大。D组和E组校正后的平均误差比未校正后的平均误差小35倍。
通过使用带有附加非易失性SRAM的实时时钟来存储校准常数,可以显著提高计时精度。每当计时器复位时,改进的校准常数可以存储在非易失性SRAM中,以便连续复位自适应提高精度。当读取计时器时,这些常量与未校正的时基一起提供给微处理器程序,该程序计算并显示更准确的时间。如果计时器通过从指定的参考时间计算秒数来保持时间,那么简单的程序代码可以快速计算出更准确的补偿时间。这样,温度,初始校准,石英老化和冲击历史误差的实际影响可以最小化。实验数据表明,在两个月的时间内,每年的精度可达到±2秒,全年的精度约为16秒。要获得上述程序的副本,有关演示电路的进一步信息以及如何获取组件的信息,请联系Dallas Semiconductor(972) 371-6824或在以下地址打开支持请求。
DS1994和DS2404不再推荐用于新设计。
社群二维码
关注“华强商城“微信公众号
Copyright 2010-2023 hqbuy.com,Inc.All right reserved. 服务热线:400-830-6691 粤ICP备05106676号 经营许可证:粤B2-20210308