PDA

Просмотр полной версии : Синхронизация часов в радиоприемнике



Слесарь
26.12.2015, 20:30
Здравствуйте!

Если кто имел дело, подскажите, на какой сервер интернет лучше ориентироваться, в вопросе синхронизации часов?
Требуется точность до 1 сек.
Желательно с подробным описание протокола синхронизации.

Настольный интернет радиоприемник с часами и термометром. На базе МК. Аппаратная поддержка Ethernet, программная поддержка TCP/IP, HTTP.

Добавлено через 55 минут(ы):

Ага. Вот уже кто-то делал

http://www.microelemente.ro/MikroPascal/NTP_Clock.JPG

http://www.mikroe.com/forum/viewtopic.php?t=1816 4

Слесарь
26.12.2015, 20:48
Оказывается в моем проекте можно с легкостью включить поддержку протокола сетевого времени.

STACK_USE_SNTP_CLIEN T // Simple Network Time Protocol for obtaining current date/time from Internet

Присутствует в используемой мной библиотеке Microchip TCP/IP stack (http://www.microchip.com/forums/Findpost/720043). Осталось почитать как использовать....

Слесарь
11.03.2016, 21:43
Получаю от SNTP сервера "pool.ntp.org" количество секунд прошедших после 01-января-1970г. 00:00:00

1457719473 сек.
/31536000 = 46 лет.
/86400 = 16871 день.
/3600 = 404922 часов.
/60 = ... минут..


Зная все эти данные вычисляю текущее время для вывода на дисплей интернет радиоприемника, часы и минуты...

AMS
11.03.2016, 21:49
Требуется точность до 1 сек.
А для чего Вам такая точность?
На свидание опаздываете:smile:

UR5ZQV
12.03.2016, 00:03
Не, Слесарь опаздывает на свидание с тепловым насосом и расчетом коэфф. КИХ фильтра.

UT0UM
12.03.2016, 02:05
Получаю от SNTP сервера "pool.ntp.org" количество секунд прошедших после 01-января-1970г. 00:00:00

1457719473 сек.
/31536000 = 46 лет.
...

а высокосные года вы учитывали?
в них же секунд больше

Александр Макеев
12.03.2016, 07:41
И в определённые года добавляли ещё по 1 секунде...

Слесарь
12.03.2016, 18:01
а высокосные года вы учитывали?
в них же секунд больше

Да. Собираюсь найти что то типа CTime для МК где все учтено...


А для чего Вам такая точность?
На свидание опаздываете:smile:

Ага... Буду тестить один из кривых радиолюбительских протоколов связи, требующий синхронизации времени.

Слесарь
13.03.2016, 15:10
secondsUTC = secondsUTC + ( 3 * 3600 ); // коррекция на местное время +3 часв

deys = secondsUTC / 86400; // сколько прошло часов от 01-Jan-1970 00:00:00
hour = secondsUTC / 3600; // сколько часов ...
min = secondsUTC / 60; // сколько минут ...

// текушее время, часы минуты.
hour = hour - (deys * 24);
min = min - (((deys * 24) + hour ) * 60);

На сегодняшний день задача получить текущую дату не стоит, чуть позже так же буду думать...

UR5ZQV
13.03.2016, 16:25
Слесарь, Вы по какому календарю определяете свое месторасположение во временно-пространственном континнуме, по Григорианскому (от "Ветхого" или "Нового" Заветов) или по астрономическому (с учетом ЧТО и ОТО, или без оных). Я предпочитаю систему Барона Мюнхгаузена (в лице Олега Янковского), если 32 июля раз в 1000 лет никому не нужно, на что его почитатели с печалью сказали, смотря, на что он выпадает, если на понедельник 13, на фига нам лишний понедельник, а у меня по понедельникам жалование выдают.

Слесарь
13.03.2016, 16:30
Вы по какому календарю определяете


* Simple Network Time Protocol (SNTP) Client Version 3
* Module for Microchip TCP/IP Stack
* -Locates an NTP Server from public site using DNS
* -Requests UTC time using SNTP and updates SNTPTime structure
* periodically, according to NTP_QUERY_INTERVAL value
* - Reference: RFC 1305
*
******************** ******************** ******************** *********
* FileName: SNTP.c
* Dependencies: UDP, ARP, DNS, Tick
* Processor: PIC18, PIC24F, PIC24H, dsPIC30F, dsPIC33F, PIC32
* Compiler: Microchip C32 v1.05 or higher
* Microchip C30 v3.12 or higher
* Microchip C18 v3.30 or higher
* HI-TECH PICC-18 PRO 9.63PL2 or higher
* Company: Microchip Technology, Inc.