Часы идущие по GPS » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки
Опрос

Сколько лет вы занимаетесь программированием PIC микроконтроллеров?


от 0-1 года
1-3 года
3-5 лет
5-10 лет
более 10


Последние материалы
  • Тестовая плата для отладки программ на микроконтроллере PIC18F4550
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Электронная "Незабудка" для забывчивых
  • Популярные материалы
    Случайная книга
    Часы идущие по GPS
    Автор публикации: alex Просмотров: 7769 Добавлен: 25-07-2012, 20:05 Комментарии: 0

         Предлагаемая конструкция электронных часов отличается от всех, опубликованных ранее, тем, что не ведет автономного счета времени, а получает сведения о нем, принимая радиосигналы со спутников навигационной системы 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)

    Комментарии