WWVB часы на основе PIC

Январь 5, 2007, Категория: Схемы на МК · Оставить комментарий

Введение

В сети доступно множество версий разработок самодельных WWVB часов.
Коммерческие «атомные» часы недороги и широко распространены, но я
решил попробовать себя в разработке таких часов чтобы лучше разобраться
в приеме WWVB и немного изучить программирование PIC микроконтроллера.
Мои часы не самые простые, но они неплохо работают и, я думаю, в них вы
найдете несколько уникальных особенностей.

WWVB часы на основе PIC    803F3494F74EC0FFE037C1FF35E9DCA82006 min vs

Особенности WWVB часов

  • Прием данных WWVB из эфира.
  • Автоматическая синхронизация внутреннего времени с временем WWVB.
  • Поддержка локального времени в отсутствие сигнала WWVB.
  • Данная
    версия для запрограммирована стандартного тихоокеанского времени.
    Предусмотрена автоматическая корректировка для летнего времени.
  • 6-ти разрядный дисплей для часов, минут и секунд, состоящий из семисегментных светодиодных индикаторов.
  • Индикатор синхронизации с WWVB.
  • Отображение времени в 12 часовом формате.
  • Микроконтроллер PIC16F628.
  • ПО написанное на С.
  • Все
    утилиты (редактор схем, компилятор С, ПО для разработки печатной платы,
    PIC программатор распространяются свободно и доступны для загрузки в
    сети.

Полное описание и спецификацию для WWVB радиовещания можно найти на
сайте tf.nist.gov/general/pdf/1383.pdf, документ #432. WWVB сигнал
передается на несущей частоте 60 кГц, которая модулируется по амплитуде
кадром временного кода, обновляемым раз в минуту. Скорость передачи
данных 1 бит в секунду. Кадр данных содержит биты синхронизации,
календарную дату, коррекцию UT1, високосный год и секунду коорекции.
Часы, представленные здесь, декодируют только данные времени и
корректировки летнего времени. При необходимости программное
обеспечение легко может быть переделано для декодирования других
информационных бит. Низкочастотный WWVB сигнал слаб и его прием может
быть проблематичным. Время появления сигнала различается в зависимости
от расположения и атмосферных условий. Наилучший прием обычно ночью,
между 8 вечера и 4 утра. Пользоваться часами просто: включите питание и
дождитесь приема WWVB сигнала. Когда часы примут целый, не содержащий
ошибок кадр данных, время автоматически будет скорректировано. После
начальной коррекции времени часы будут работать даже при потере WWVB
сигнала.

Описание схемы

WWVB часы на основе PIC    803F3494F74EC0FFE037C1FF35E9DCA82057 min vs

Как показано на схеме, сердцем этих часов является микроконтроллер
PIC16F628, работающий на частоте 4 МГц. Декодированные данные времени
последовательно выводятся из портов микроконтроллера (RA0 – RA3) на
семисегментные драйверы/дешифраторы по четырехбитной шине данных.
Данные выводятся последовательно как секунды, десятки секунд, минуты,
десятки минут, часы и десятки часов. Выходы микроконтроллера (RB1, RB2,
RB3) коммутируют 10 мкс строб импульс из порта RB4 поочередно на каждый
семисегментный драйвер/дешифратор, чтобы записать информацию с шины
данных. Отображаемые значения секунд и десятков секунд обновляются раз
в секунду. Минуты, десятки минут, часы и десятки часов обновляются раз
в минуту. Дисплей состоит из одиночных красно-оранжевых светодиодных
семи сегментных индикаторов. Десятичные точки на индикаторах
используются для формирования двоеточий чтобы разделить секунды минуты
и часы. Индикаторы десятков секунд и десятков минут смонтированы вверх
ногами, чтобы сформировать верхние точки двоеточия. WWVB приемник фирмы
C-MAX модель CMMR-6 поставляется вместе с ферритовой антенной. Выходные
данные приемника поступают в микроконтроллер через порт RB0.

Конструкция

Я собрал двое таких часов, одни используя проводные соединения и
другие на печатных платах. Обе версии работают хорошо. Только держите
приемник подальше от источников помех и по возможности укоротите
провода, чтобы минимизировать индуктивность. Я заметил также, что
приемник чувствителен к магнитным полям, производимым источниками
питания. Поэтому я использовал сетевой адаптер на 9 В 200 мА, а не
внутренний источник в корпусе часов.

WWVB часы на основе PIC    803F3494F74EC0FFE037C1FF35E9DCA82058 min vs

WWVB часы на основе PIC    803F3494F74EC0FFE037C1FF35E9DCA82059 min vs

Описание программы

Для разработки программы я использовал компилятор С от Source Boost. Он свободно доступен по адресу www.sourceboost.com.

Программа управляется прерываниями от Таймера 2 PIC контроллера.
Таймер сконфигурирован таким образом, чтобы генерировать 32 прерывания
в секунду, которые используются как для оцифровки сигнала приемника,
так и для поддержки автономного времени. Принимаемые данные выбираются
32 раза в секунду. Программа взаимно коррелирует входные данные с
хранящимися образцами «идеальных» нулей, единиц и импульсов
синхронизации. Начало кадра определяется по двум последовательным битам
синхронизации в последовательности. Когда они обнаруживаются, данные
секунд сбрасываются в ноль, и последующие биты определяются как единицы
и нули, из которых выделяются данные часов и минут. Декодируются только
данные, относящиеся к времени. Биты в кадре, не содержащие информации о
времени, игнорируются. Взаимно корреляционный алгоритм обнаружения бит
синхронизации требует наличия не мене 31 выборки входного сигнала при
32 выборках хранимого идеального сигнала.

Десятичная точка на индикаторе секунд загорается, при обнаружении
сигнала синхронизации и гаснет при потере сигнала. Для детектирования
бит нулей и единиц требуется не менее 28 выборок входного сигнала при
32 выборках хранимого идеального сигнала. Если любой из детектируемых
бит не обнаружен, или не прошел порог корреляции, целый кадр
игнорируется и запускается новый поиск бит синхронизации кадра. Когда
биты синхронизации и все данные времени в кадре успешно определены,
данные корректируются для Стандартного Тихоокеанского времени и летнего
времени. Для правильной коррекции в других временных зонах программа
должна быть изменена. Время так же корректируется с учетом задержки
возникающей при приеме WWVB сигнала, поскольку передаваемые данные
времени соответствуют моменту начала кадра. Полностью
откорректированное время преобразуется в 12 часовой формат, затем им
обновляется внутреннее время. В отсутствии WWVB сигнала внутреннее
время отсчитывается микроконтроллером, с точностью, определяемой его
кварцевым резонатором. Так продолжается до тех пор, пока не будет
принят следующий кадр данных WWVB. Программа для PIC16F628 написана с
использованием WIN PIC.

Перечень компонентов

Обозначение на схеме

Описание

Назначение

Производитель

       

IC1

PIC16F628

микроконтроллер

Microchip

IC2…IC7

4511N

двоично-десятичный
семисегментный дешифратор

разные

IC8

74HCT138

декодер 3-8

разные

IC9

7805

стабилизатор 5 В

разные

R1…R42

150 Ом 1/8 Вт

резистор

разные

R43, R51

10 кОм 1/8 Вт

резистор

разные

R44…48

270 Ом 1/8 Вт

резистор

разные

Q1

4 МГц

кварцевый резонатор

разные

C1, C2

20 пФ, 50 В

конденсатор

разные

C3, C4, C6

0.1 мкФ, 50 В

конденсатор

разные

C7

10 мкФ, 35 В

конденсатор

разные

Приемный модуль с антенной

CMMR-6

 

CMAX

LED1…LED6

LDS-CA14RI

одиночный 7 сегментный
светодиодный индикатор

Lumex


От редактора

Возможности приема сигналов WWVB на территории России обсуждаются здесь.

Несомненно, будет полезно ознакомиться и с этой статьей.


Автор: Bruce Craig

Связь с автором: Нет данных

Веб сайт автора: Нет данных

Прислал: Нет данных

Источник: http://www.rlocman.ru

Доп материалы, файлы к устройству (схеме):

Схема, Исходники, Прошивка

Tags:

Related Posts

Устройство управления на микроконтроллере PIC16F84

Этот проект был задуман и реализован еще до того как в продаже появились новые недорогие микроконтроллеры PIC16F628 , имеющие встроенный последовательный интерфейс. Может быть сегодня этот проект уже не актуален,…….



Контроллер доступа на электронных ключах i-Button (DS1990)

Устройство собрано на микроконтроллере ATtiny2313, к которому подключена внешняя энергонезависимая память EEPROM – 24C16. Доступны исходники, проверена работа “на железе”. Контроллер доступа работает с ключами типа DS1990, поддерживает до 500…….



USB термометр

Давно у меня родилась идея сделать , однако нужды не было, и идея покоилась. Както у друга в гостях заметил пару USB флешек. Одна была дохлая и досталась мне нахаляву……..



Цифровая кость

Наверное у каждого есть маленькие родственники – дети. Ребёнок рано или поздно начинает осваивать счёт. Обучение наиболее эффективно проводить в форме игры. Для этих целей существуют различные настольные игры, в…….



WAV-плеер на микроконтроллере ATtiny85

Данный WAV-плеер собран на микроконтроллере AVR ATtiny85  (можно использовать ATtiny25/45/85 серии). У микроконтроллеров этой серии всего восемь ножек и два ШИМ (Fast PWM) с несущей 250kHz. Для управления картой памяти…….