EvaluaTIng the accuracy of Maxim real-time clocks (RTCs) can be simplified using the modern personal computer (PC), an Internet connection, and RTC evaluation software. Whether you use a Maxim evaluation kit and its associated software to evaluate the accuracy of a Maxim real-time clock, or use your own software and hardware configuration, you can take advantage of the easy methods presented here for long-term accuracy testing of RTCs. RTC Evaluation SoftwareFigure 1 shows the main screen of typical Maxim RTC evaluation software. The "offset 1 sec" in the current-time display section of the screen is computed as offset = RTC time - PC time. This is now an easy and convenient way to keep track of the difference between the RTC time and PC time and thus allows for long-term accuracy testing of the RTC.
Figure 1. The main screen of typical Maxim RTC evaluation software.
When reading the RTC, the timekeeping registers are latched during a burst read. Even though the RTC evaluation software reads the timekeeping registers approximately four times per second, the best guaranteed resolution is 1 second, as all four reads could happen inside of a 1-second update. Therefore, an initial offset calculation of ±1 second is within the resolution of the setup when testing for long-term RTC accuracy.
The only issue now is the accuracy of the standard that the RTC time is being compared against, the PC clock. PC Time AccuracyAs most of us know, PC clocks are not particularly good at keeping accurate time. Simple clocks like a wristwatch and most of the clocks in your home keep better time than a standard PC clock.
Each PC contains two clocks. Although they are known by several different names, we will call them the "hardware clock" and the "software clock." The software clock runs when the PC is turned on and stops when the PC is turned off. The hardware clock uses a backup battery and continues to run even when the PC is turned off.
An Intel 8254 timer-counter (or functionally equivalent device) generates the software clock. This timer-counter generates an interrupt every 54.936 milliseconds, or about 18.2 times per second. The PC BIOS (basic input output system) contains a software routine that counts the interrupt requests and generates a time-of-day clock that can be read or set by other software programs. For example, the operating system might use the time-of-day information from the software clock to date and stamp files.
The software clock is a poor timekeeper. Any change in the interrupt-request rates causes the clock to gain or lose time. If the PC is left on for long periods of time, the software clock can be off by large amounts. A minute or more per day that the PC was left on is not an uncommon error rate. It is also possible for an ill-behaved software program to use the timer-counter for another purpose and change the interrupt rate. This could cause the software clock to rapidly gain or lose time.
When the PC is turned off, the software clock stops running and loses all of its time-of-day information. For this reason, a hardware clock is also necessary. The hardware clock is either a separate real-time clock or a RTC function integrated into the PC's chipset. The hardware clock is updated once per second and does not resolve to fractions of a second. Its timing accuracy is determined by the quality of the crystal oscillator it uses as its time base. A typical crystal usually is less than $1 in single quantities, with an initial frequency error of greater than ±20ppm, which will translate to greater than ±1.7 seconds per day. In actual operation, with temperature effects included, most hardware clocks gain or lose 5 to 15 seconds per day.
When the PC is turned off, the hardware clock runs from a battery. When the computer is turned back on, the software clock starts running again and sets itself (within 1 second) to the hardware clock. Although the hardware and software clocks are synchronized at power-up, they run at different rates and will gain or lose time relative to each other while the computer is running.
As you can see, neither the software nor the hardware PC clock is suitable as an accurate timekeeping reference. Fortunately, there are easy ways to solve this PC timekeeping accuracy problem. One of the easiest is to synchronize the PC clock to an Internet service. Internet Time-Setting ServicesIf your PC is connected to the Internet, you can synchronize its clock to an Internet time server. The process requires an active Internet connection and client software.
Internet time servers use several standard timing protocols. The major three are Time Protocol, Daytime Protocol, and Network Time Protocol (NTP). The time servers are continually listening for timing requests sent using any of these protocols. When the server receives a request, it sends time to your computer in the appropriate format. The protocol depends upon the type of client software used. Most client software requests that the time be sent using either the Daytime Protocol or NTP. Client software that uses the Simple Network Time Protocol (SNTP) makes the same timing request as an NTP client, but does less processing and provides less accuracy. Table 1 summarizes the protocols and their port assignments.
Table 1. Internet Time Protocols
tcp/ip, udp/ip
tcp/ip, udp/ip
udp/ip
NIST (National Institute of Standards and Technology) operates an Internet Time Service from Boulder, Colorado, using multiple servers distributed around the country. The NIST servers distribute time using the Time, Daytime, and NTP formats.
For a current list of IP addresses for the NIST servers and sample client software (Daytime Protocol) that can be downloaded see the following: http://www.boulder.nist.gov/timefreq/service/its.htm.
NIST also maintains a listing of other client software packages for a variety of computers at: http://www.boulder.nist.gov/timefreq/general/softwarelist.htm.
UTC and NIST Time Coordinated Universal Time (UTC) is a stable reference frequency used for counting seconds. The frequency, or rate, of UTC is computed by the International Bureau of Weights and Measures (BIPM), based near Paris, France. The BIPM uses a weighted average from about 250 atomic clocks located in about 50 national laboratories to construct a time scale called International Atomic Time (TAI). Once TAI is corrected for leap seconds, it becomes UTC, or the official world time scale. NIST distributes a real-time version of UTC called UTC(NIST), a time scale referenced to atomic oscillators located in Boulder, Colorado, to the public through their time and frequency services. At its source, UTC(NIST) is kept in as close agreement as possible with other national and international standards (typically within a few nanoseconds).
Other Accurate Time AlternativesIf your computer is not connected to the Internet, NIST also provides Dial-Up Time Setting Service through a standard telephone line and analog modem. This service is called Automated Computer Time Service (ACTS). With calibration, ACTS can set a computer clock with an uncertainty of less than 10 milliseconds.
For more information about ACTS and to obtain software, see the following: http://www.boulder.nist.gov/timefreq/service/acts.htm.
Alternately, you can get accurate time, all the time, by using a radio clock. Some are stand-alone devices with a digital time display. These can often be interfaced to the PC with a serial connection. For a list of radio clock manufacturers, see the following: http://www.boulder.nist.gov/timefreq/general/receiverlist.htm.
A last alternative for calibrating your PC clock, and the least desirable in terms of ease of use, is to use a regular voice phone line service to check the current accurate time. Such a service is provided by the Time Service Department, U.S. Naval Observatory, Washington, D.C. The Land Line Voice Time, without delay, is 900-410-TIME (50 cents the first minute, 45 cents a minute thereafter). NIST time can be accessed over the voice phone line at (303) 499-7111.
NISTIME 32: 32-Bit TCP Time ClientThe main screen for the NIST TCP Time Client is shown in Figure 2. Selecting the Now option in the Query Server drop-down menu will cause the current NIST time to be obtained and the difference between the PC clock and NIST time computed, as shown in Figure 3. Clicking on OK performs an adjustment of the PC clock to match NIST time. A verification of adjustment then appears, as in Figure 4. Clicking on OK will remove this screen and return control to the main screen for the NISTIME 32. If you are performing several cycles of calibration to reduce the PC clock error in comparison to the NIST standard, you will need to wait between calibrations until the message in the main screen changes from "No server selected" to a line typically like "Server 2 selected using tcp port 13." At that time, another calibration can be performed.
Figure 2. NISTIME 32 main screen.
Figure 3. NIST time vs. PC time comparison screen.
Figure 4. Verification of PC clock adjustment screen. Accuracy Evaluation Example: MAX6901 Equipment and ConditionsEvaluation System:
MAX6901EVSYS
- RTC hardware evaluation board
- MAXSMBUS module (PC parallel port to 3-wire serial conversion)
- RTC evaluation software
NISTIME 32
Frequency Counter:
Tektronix CMC251
- Typical frequency is 32.768kHz, 0V to +5V swing, 40% duty cycle
- Channel-A period measurement
- Pre-scale = IN
- Gate = X1000
- Typical display reads 30.51758µ;s
- Accuracy of reading is calculated to be ±0.418PPM
76°F to 78°F
Initial ConditionsThe MAX6901 evaluation board was run using the default of VCC = +5V. The initial frequency measurement was taken using the CMC251. The measured time period of the MAX6901 timekeeping oscillator was 30.51748µ;s.
Calculate how long it takes to reach a 1-second error due to initial crystal tolerance (assume temperature effects are negligible):
finitial = 32768 - (1/Tinitial)Therefore, the RTC will take about 3.6 days to reach an error of +1 second. Because the RTC software measures RTC error against the PC clock's error, and the PC clock is usually wrong, the PC clock must be corrected using an Internet time-setting service before comparing the RTC against the PC clock. The procedure is outlined below.
finitial = 32768 - (1/30.51748µ;s) = -0.105361Hz
tinitial = {[1/[(f + finitial)/32768]] - 1s}/1s
tinitial = {[1/[(32768Hz - 0.105361Hz)/32768]] - 1}/1s = +3.215µ;s/s
t1sec_error = 1/tinitial
t1sec_error = 1/3.215µ;s = 311041.99s = 86.4hr = 3.6days
Procedure
- Install MAX6901 evaluation software.
- Install NISTIME 32 software.
- Connect the MAX6901EVKIT to a +12V supply; leave supply off.
- Connect a parallel PC cable to the MAXSMBUS board.
- Plug the MAX6901EVKIT into the MAXSMBUS board.
- Turn on the +12V supply.
- Start the MAX6901 evaluation software, and stop cyclic burst reads.
- Start NISTIME 32 software, and update the PC clock until the error between the PC clock and NIST time is less than 0.4 seconds. This may take more than one iteration to accomplish.
- In the MAX6901 evaluation software main window, click on "Set from computer's clock."
- Confirm that the offset is no more than 1 second.
- Each and every time the accuracy of the RTC is to be checked, you must repeat Step 8. If the MAX6901 evaluation software is stopped and the parallel-port cable disconnected, then when the RTC time is checked you must reconnect the parallel-port cable and restart the MAX6901 evaluation software. Do not click on "Set from computer's clock" on this restart, or you will need to start the accuracy test from the beginning.
- Note: When checking the RTC time accuracy, it is recommended that all other Windows programs be exited so as to minimize errors in the PC clock after calibration.
Table 2. MAX6901 RTC Accuracy Data
______________________
ReferencesLombardi, Michael (Time and Frequency Division, National Institute of Standards and Technology), Computer Time Synchronization
NIST Time and Frequency FAQ (Precise Time)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)