Кіріспе
Компьютерде дәл уақытты сақтайтын тізбек.
Нақты уақыт сағаты (RTC) – уақыттың өтуін өлшейтін электрондық құрылғы (көбінесе интегралды схема түрінде). Бұл термин көбінесе жеке компьютерлерде, серверлерде және кіріктірілген жүйелерде қолданылса да, RTC күннің дәл уақытын сақтау қажеттілігі туындайтын кез келген электрондық құрылғыда кездеседі.
Терминология
Нақты уақыт сағаты термині, уақытты адамдар түсінетін бірліктермен есептемей, тек цифрлық электрониканы басқаратын сигналдар ғана болатын қарапайым аппараттық сағаттармен шатасуды болдырмау үшін қолданылады. RTC-ні, үш әріпті аббревиатурасы ортақ болғанымен, күннің уақытына тікелей қатысы жоқ нақты уақытты есептеумен шатастыруға болмайды.
Қуат көзі
RTC-лерде көбінесе қосымша қуат көзі болады, сондықтан негізгі қуат көзі өшірілген не қолжетімді болмаған кезде уақытты сақтап тұру мүмкін. Бұл қосымша қуат көзі әдетте ескі жүйелерде литий батареясы болса, жаңа жүйелерде суперконденсатор қолданылады, себебі оларды қайта зарядтауға болады және тікелей пайдандыруға да мүмкіндік бар. Қосымша қуат көзі батареямен сақталатын жадқа (RAM) да қуат беруге қабілетті.
Уақыт
Көптеген RTC-лер кристалл осцилляторын қолданады, бірақ кейбіреулерінде қуат желісінің жиілігін пайдалану мүмкіндігі бар. Кристалл жиілігі әдетте 32,768 кГц құрайды. Типтік кристалл RTC-нің дәлдік сипаттамалары ±100-ден ±20 миллион бөлікке дейін (күнде 8,6 - 1,7 секунд) ауытқуды құрайды, бірақ температураға түзетілген RTC интегралдық схемалары 5 миллион бөлікке дейін дәлдікпен жұмыс істей алады. Іс жүзінде, бұл аспандық навигацияны жүзеге асыру үшін жеткілікті, бұл хронометрдің дәстүрлі міндеті. 2011 жылы чиптік өлшемдегі атомдық сағаттар қолжетімді болды. Олар әлдеқайда қымбатқа түсетін және көп қуатты қажет ететін болса да (120 мВт-қа қарсы <1 мкВт), уақытты 50 триллион бөлікке дейін сақтайды (5).
Typical crystal RTC accuracy specifications are from ±100 to ±20 parts per million (8.6 to 1.7 seconds per day), but temperature compensated RTC ICs are available accurate to less than 5 parts per million. In practical terms, this is good enough to perform celestial navigation, the classic task of a chronometer. In 2011, chip scale atomic clocks became available. Although vastly more expensive and power hungry (120 mW vs. <1 μW), they keep time within 50 parts per trillion (5).
Мысалдар
Көптеген интегралдық схема өндірушілері RTC-лерді шығарады, оның ішінде Epson, Intersil, IDT, Maxim, NXP Semiconductors, Texas Instruments, STMicroelectronics және Ricoh. Бір тақталы компьютерлерде жиі қолданылатын RTC – Maxim Integrated DS1307. RTC 1984 жылы IBM PC/AT моделі арқылы дербес компьютерлерге енгізілді, ол Motorola MC146818 RTC-ні пайдаланды. Кейіннен Dallas Semiconductor компаниясы осыған үйлесімді RTC-лерді жасады, олар көне дербес компьютерлерде көп қолданылды және ерекше қара батарея қақпағы мен жібек басылған логотипі болғандықтан аналық платаларда оңай табады. Дербес компьютерлердегі RTC үшін стандартты CMOS интерфейсі қолжетімді. Жаңа компьютер жүйелерінде RTC оңтүстік көпір чипіне енгізілген. Кейбір микроконтроллерлерде кіріктірілген нақты уақыт сағаты болады, әдетте көптеген басқа мүмкіндіктері мен перифериялық құрылғылары бар модельдерде ғана.
Радиоға негізделген RTC
Кейбір заманауи компьютерлер сағат туралы ақпаратты цифрлық радио арқылы алады және оны уақыт стандарттарын сақтау үшін пайдаланады. Екі кең таралған әдіс бар: Көптеген ұялы телефон протоколдары (мысалы, LTE) тікелей ағымдағы жергілікті уақытты ұсынады. Егер интернет радиосы қолжетімді болса, компьютер желілік уақыт протоколын пайдалана алады. Жергілікті уақыт серверлері ретінде қолданылатын компьютерлер кейде GPS немесе ұлттық стандарттау ұйымы таратып отыратын өте төмен жиілікті радиосигналдарды (яғни радиосағатты) пайдаланады.
Бағдарламалық негіздегі RTC
Келесі жүйе кіріктірілген жүйелер бағдарламашыларына жақсы танымал, олар кейде RTC-ді ондай жетіспейтін жүйелерде құрастыруы керек. Көптеген компьютерлерде кварц кристалдарынан немесе керамикалық резонаторлардан келетін уақыт сигналдарын пайдаланатын бір немесе бірнеше аппараттық таймерлер бар. Бұл абсолютті уақыт белгісі дәл емес (миллионға 100 бөліктен артық), бірақ өте қайталанатын (көбінесе 1 ppm-ден аз). Бағдарламалық жасақтама оларды дәл RTC-ге айналдыра алады. Жабдықты таймер тарихи RTC-ді еліктейтін, мысалы, 50 Гц-ті кезеңдік үзіліс шығара алады (төменде қараңыз). Алайда, ол математиканы уақыт тізбегін дәлдікке реттеу үшін қолданады: уақыт = уақыт + жылдамдық. "Уақыт" айнымалысы тұрақтыдан, әдетте екіден артық болған кезде, номиналды, есептелген сағаттық уақыт (мысалы, секундының 1/50-і үшін) "уақыттан" алынып тасталады және сағаттың уақыт тізбегі бағдарламалық жасақтамасы секундтың, секундтың және т.б. есебін жүргізеді. Уақыт пен жылдамдық үшін 32 биттік айнымалылар бар, "жылдамдық" математикалық ажыратылуы миллиардқа бір бөліктен асып түседі. Сағат дәлдікті сақтайды, өйткені ол кез-келген уақытта секундының үлес бөлігін өткізіп жібереді немесе екі үлес бөлігін қосады. Шағын секіру ("життер") RTC-нің барлық нақты қолданулары үшін байқалмайды. Бұл жүйенің күрделілігі "жылдамдық" айнымалысының бірден түзетілген мәнін анықтау. Ең қарапайым жүйе сағаттың екі параметрінің арасындағы RTC уақытын және анықтама уақытын қадағалайды және "жылдамдықты" табу үшін анықтама уақытын RTC уақытына бөледі. Интернет уақыты көбінесе 20 миллисекундтан кем емес, сондықтан 8000 немесе одан да көп секунд (2,2 немесе одан да көп сағат) арақашықтықты орнату әдетте қырық миллисекундты (немесе одан да аз) қателікті хронометр сияқты дәлдікті алу үшін миллионға 5 бөлікке дейін бөлуге болады. Бұл жүйенің негізгі күрделілігі - күнді және уақытты секундтар санына аудару, бірақ әдістері жақсы белгілі. Егер RTC бірлік сөндірілген кезде жұмыс істесе, әдетте RTC екі жылдамдықпен жұмыс істейді, бірі бірлік қосылғанда, екіншісі сөндірілгенде. Себебі температура мен электр қуатының кернеуі әр мемлекетте бірдей. Осы жағдайларды реттеу үшін бағдарламалық қамтамасыз ету екі жылдамдықты есептейді. Біріншіден, бағдарламалық қамтамасыз ету сағаттың соңғы үш рет орнатылған аралықтағы екі аралық үшін RTC уақытын, анықтама уақытын, қосылған және сөндірілген секундтарды тіркейді. Осыны пайдаланып, ол екі интервалдың дәлдігін өлшеуі мүмкін, әр интервалдың қосылу және сөндіру секундтарының әртүрлі үлестірілуі бар. Жылдамдық есебі екі сызықтық теңдеуді екі жылдамдықты есептеу үшін шешеді, бірі қосылу үшін, екіншісі сөндіру үшін. Басқа тәсіл осциллятордың температурасын электрондық термометрмен (мысалы, терморезистор және аналогты-цифрлық түрлендіргіш) өлшейді және "жылдамдықты" минутқа бір рет есептеу үшін полиномиалды қолданады. Бұларға жиілікті бірнеше температурада өлшейтін калибрлеуді, содан кейін температура теңдеуін табу үшін сызықтық регрессияны қажет етеді. Жүйедегі ең көп таралған кварц кристалдары SC кесінді кристалдары болып табылады, ал олардың температурадағы жылдамдығы 3-ші дәрежелі полиномиямен сипатталуы мүмкін. Осыларды калибрлеу үшін жиілік төрт температурада өлшенеді. Сағаттарда және көптеген RTC компоненттерінде қолданылатын жалпы дифференциалдық стильдегі кристаллдар температураның параболалық (2-дәрежелі) теңдеулеріне ие және оларды тек 3 өлшеммен калибрлеуге болады. МЭМС осцилляторлары механикалық құрылымына байланысты 3-ші және 5-ші дәрежелі полиномиалдардан өзгереді, сондықтан төрт-алты калибрлеу өлшемін қажет етеді. Мұндай тәсіл коммерциялық RTC интегралдық схемаларында қолданылуы мүмкін, бірақ тиімді жоғары жылдамдықты өндірудің нақты әдістері құпия болып табылады.
time = time + rate. When the "time" variable exceeds a constant, usually a power of two, the nominal, calculated clock time (say, for 1/50 of a second) is subtracted from "time", and the clock's timing chain software is invoked to count fractions of seconds, seconds, etc. With 32 bit variables for time and rate, the mathematical resolution of "rate" can exceed one part per billion. The clock remains accurate because it will occasionally skip a fraction of a second, or increment by two fractions. The tiny skip ("jitter") is imperceptible for almost all real uses of an RTC. The complexity with this system is determining the instantaneous corrected value for the variable "rate". The simplest system tracks RTC time and reference time between two settings of the clock, and divides reference time by RTC time to find "rate". Internet time is often accurate to less than 20 milliseconds, so 8000 or more seconds (2.2 or more hours) of separation between settings can usually divide the forty milliseconds (or less) of error to less than 5 parts per million to get chronometer like accuracy. The main complexity with this system is converting dates and times to counts of seconds, but methods are well known. If the RTC runs when a unit is off, usually the RTC will run at two rates, one when the unit is on and another when off. This is because the temperature and power supply voltage in each state is consistent. To adjust for these states, the software calculates two rates. First, software records the RTC time, reference time, on seconds and off seconds for the two intervals between the last three times that the clock is set. Using this, it can measure the accuracy of the two intervals, with each interval having a different distribution of on and off seconds. The rate math solves two linear equations to calculate two rates, one for on and the other for off. Another approach measures the temperature of the oscillator with an electronic thermometer, (e. g. a thermistor and analog to digital converter) and uses a polynomial to calculate "rate" about once per minute. These require a calibration that measures the frequency at several temperatures, and then a linear regression to find the equation of temperature. The most common quartz crystals in a system are SC cut crystals, and their rates over temperature can be characterized with a 3rd degree polynomial. So, to calibrate these, the frequency is measured at four temperatures. The common tuning fork style crystals used in watches and many RTC components have parabolic (2nd degree) equations of temperature, and can be calibrated with only 3 measurements. MEMS oscillators vary, from 3rd degree to fifth degree polynomials, depending on their mechanical design, and so need from four to six calibration measurements. Something like this approach might be used in commercial RTC ICs, but the actual methods of efficient high speed manufacturing are proprietary.