Предлагаемая конструкция электронных часов отличается от всех, опубликованных ранее, тем, что не ведет автономного счета времени, а получает сведения о нем, принимая радиосигналы со спутников навигационной системы GPS. Это гарантирует постоянную и высокую точность показаний. Их не приходится корректировать даже после временного отключения питания.
Сегодня рядовым радиолюбителям стали доступны модули GPS-приемников многих фирм. Кроме своих прямых функций — выдачи пользователю информации о его координатах, скорости и направлении движения, — они сообщают ему точное время и дату. Это дает возможность построить на базе такого модуля часы, всегда показывающие правильное время и идущие с недостижимой для часов с обычным кварцевым резонатором точностью. Нужно отметить, что стоимость приемных GPS-модулей пока довольно высока (около 1000 руб.). К тому же устанавливать их необходимо таким образом, чтобы в поле зрения антенны модуля находилось как можно больше открытого неба. Это делает целесообразным их применение лишь в стационарных уличных часах либо в первичных часах, управляющих большим числом вторичных.
Рассматриваемая конструкция рассчитана именно на стационарную установку и имеет выходы, предназначенные для подключения светодиодных или на лампах накаливания семиэлементных индикаторов большого размера и яркости. В часах применен модуль LS20061, который его производитель фирма Locosys называет "GPS smart antenna". Внешний вид модуля в натуральную величину (со стороны антенны и со стороны установки элементов) показан на рис. 1, там же приведена нумерация контактных площадок для подключения внешних цепей. Толщина модуля не превышает 8 мм.
На основании принятой от навигационных спутников информации модуль, согласно протоколу NMEA, раз в секунду выдает текстовые (в кодах ASCII) сообщения последовательным кодом со скоростью 9600 Бод. Каждый передаваемый байт (символ) сопровождается стартовым и одним стоповым импульсами без контроля четности. Уровни информационных сигналов — ТТЛ. Интересующая нас информация о времени содержится в строках, формат которых приведен в таблице.
Более подробную информацию о модуле LS20061 и его аналогах можно найти в Интернете по адресам <http://www.locosystech.com/download/module/LS2006x_datasheet_v1.0.pdf>, <
http://www.efo.ru/cgi-bin/go?2692>.
Схема GPS-часов изображена на рис. 2. К разъему Х1, кроме GPS-моду-ля U1, подключают датчик температуры DS1820 (ВК1) и условно представленный контактами S1 датчик сигнала, по которому принудительно уменьшается яркость индикаторов. На этот же разъем подают стабилизированное напряжение 5 В, питающее все узлы часов, кроме индикаторов. Длина соединительных проводов от разъема Х1 к датчикам может достигать 10 м, причем сигнальные цепи, идущие к модулю U1, должны быть экранированы.
Учтите, что номинальное напряжение питания модуля U1 — 3,3 В, а максимальное — 5 В. Хотя примененный в часах микроконтроллер PIC16F876A работоспособен и при напряжении 3,3 В, амплитуда формируемых им сигналов в этом случае оказывается недостаточной для управления полевыми транзисторами. Это и вынудило повысить общее напряжение питания до 5 В. Его стабилизатор нужно выбирать с "минусовым” допуском, поскольку превышение номинального значения опасно для GPS-модуля.
Потребление от источника напряжения 5 В — не более 50 мА.
Прибор рассчитан на управление четырехразрядным семиэлементным цифровым индикатором. Если он светодиодный с общими анодами элементов, то катодные цепи одноименных элементов всех разрядов соединяют вместе и подключают к разъему Х2. Буквенные обозначения элементов индикатора традиционны, за исключением буквы h, которой обозначены элементы, формирующие знак "плюс" при отображении температуры, а также светодиоды, образующие точки между значениями часов и минут. Анодные цепи индикаторов подключают к винтовым зажимам ХТЗ (старший разряд) — ХТ6 (младший разряд). Подобным образом подключают и семиэлементные индикаторы на лампах накаливания.
На винтовые зажимы ХТ1 и ХТ2 подают напряжение питания индикаторов U
инд. В зависимости от типа и схемы соединения светоизлучающих приборов (светодиодов или ламп накаливания) это напряжение и потребляемый от его источника ток могут быть разными. Примененные в устройстве мощные полевые транзисторы способны без дополнительного отвода тепла коммутировать ток до 3,7 А (по каждому выходу) при напряжении до 30 В. В реальных часах с цифрами высотой 60 см ток достигал 1 А на элемент при напряжении 24 В. Каждый элемент состоял из нескольких параллельных светодиодных цепей с ограничительными резисторами в каждой из них.
Блок управления часов собран на печатной плате, изображенной на рис. 3. Залитые точки на схеме расположения элементов на верхней стороне платы — межслойные перемычки.
Программа микроконтроллера DD1 содержит три основных блока: индикации, работы с GPS-модулем и обслуживания датчика температуры.
Индикация — динамическая с интервалом смены разрядов 1 мс. В сумерки и ночью яркость индикаторов снижается соответственно в два и в четыре раза за счет изменения скважности управляющих импульсов. Моменты снижения и восстановления яркости микроконтроллер вычисляет на основании заложенной в программу информации о времени захода и восхода Солнца. Снижение яркости происходит и при замыкании контактов S1.
Вывод на индикатор значений различных величин происходит поочередно: время (4 с), дата (2 с), температура (2 с). Затем цикл повторяется. Значения часов и минут разделяются двумя точками, а числа и месяца — одной. Температура отображается в таком порядке (слева направо): плюс или минус, две значащие цифры, знак градуса (включены элементы a, b, f, g).
Прием информации от GPS-модуля происходит по прерываниям от встроенного USART микроконтроллера. Принятые символы заносятся в буфер до приема кода "перевод строки" (0х0А). После этого проверяются заголовок, обязательные символы и корректность принятой информации. После успешной проверки принятые значения времени и даты становятся текущими. Поправка, превращающая UTC в местное время, вносится программно. Аналогичным образом происходит переключение с летнего времени на зимнее и обратно. В программе заложено отображение московского времени (UTC+3 ч зимой и UTC+4 ч летом). Она правильно вычисляет моменты переключения до 2020 г. Далее без корректировки программы оно будет происходить 29 марта и 29 октября.
Для других часовых поясов в программу необходимо внести поправку, равную разности местного и московского времени в целых часах со знаком плюс при перемещении на восток Значение этой поправки присваивают константе MY_hour в одной из первых строк исходного текста программы, после чего компилируют его заново. Можно обойтись и без повторной компиляции, если перед загрузкой кодов в программную память микроконтроллера внести нужное значение непосредственно в буфер программатора по адресу 0x2DA (первоначально оно нулевое). Учтите, что этот адрес "байтовый", используемый в НЕХ-файлах и в некоторых программаторах. Для тех программаторов, например IC-Prog, которые отображают содержимое программной памяти в виде двухбайтных слов, поправку нужно внести в младший байт слова по адресу 0x16D.
Необходимо отметить, что ход часов прекращается при отсутствии сигналов GPS в результате недостаточного числа спутников в зоне видимости или подругой причине. Практика показала, что это случается очень редко и не может считаться существенным недостатком Подпрограмма обслуживания датчика температуры DS1820 разбита на этапы, выполнение каждого из которых укладывается в 1 мс. Она инициализирует, а затем периодически опрашивает датчик, получая текущие значения температуры для вывода на индикатор.
Материал взят из: Журнала Радио 2008 №4
В архиве Прошивка, Исходный код на ASM и разводка печатной платы
gpsclock.rar [92,29 Kb] (cкачиваний: 341)