Site Loader

NiXIE: КАШАК Nixie clock ИН-14

 Автор: КАШАК

Лампа: ИН-14,ИН-12

Схема: есть (ATmega8)

Плата:есть   ( Sprint-Layout 6 )

Прошивка:есть

Исходник:есть 

Описание: есть


Особенности: 

 Схема:

         В данной статье речь пойдет об изготовлении оригинальных и необычных часов. Их необыкновенность заключается в том, что индикация времени осуществляется при помощи цифровых индикаторных ламп. Таких ламп когда-то было выпущено огромное количество, как у нас, так и за рубежом. Использовались они во многих устройствах начиная от часов и заканчивая измерительной техникой. Но после появления светодиодных индикаторов лампы постепенно вышли из употребления. И вот, благодаря развитию микропроцессорной техники стало возможным создание часов с относительно простой схемой на цифровых индикаторных лампах.

 Думаю, не лишним будет сказать, что в основном использовались лампы двух типов люминесцентные и газоразрядные. К преимуществам люминесцентных индикаторов следует отнести низкое рабочее напряжение и наличие нескольких разрядов в одной лампе (хотя среди газоразрядных тоже встречаются такие экземпляры, но найти их значительно сложнее). Но все плюсы данного типа ламп перекрывает один огромный минус – наличие люминофора, который со временем выгорает, и свечение тускнеет или прекращается. По этой причине нельзя использовать б/у лампы.
Газоразрядные индикаторы избавлены от этого недостатка, т.к. в них светится газовый разряд. По сути, этот тип ламп представляет собой неоновую лампу с несколькими катодами. Благодаря этому рок службы у газоразрядных индикаторов гораздо выше. Кроме этого одинаково хорошо работают и новые и б/у лампы (а часто б/у работают лучше). Без недостатков все же не обошлось, рабочее напряжение газоразрядных индикаторов больше 100 В. Но решить вопрос с напряжение гораздо проще, чем с выгорающим люминофором.
В интернете такие часы распространены под названием NIXIE CLOCK.

 Итак, на счет конструктивных особенностей вроде все понятно, теперь приступим к проектированию схемы наших часов. Начнем с проектирования высоковольтного источника напряжения. Тут есть два пути. Первый – применить трансформатор со вторичной обмоткой на 110-120 В. Но такой трансформатор будет либо слишком громоздкий, либо его придется мотать самому, перспектива так себе. Да и напряжение регулировать проблематично. Второй путь – собрать step up преобразователь. Ну тут уж плюсов побольше будет, во-первых он займет мало места, во-вторых в нем присутствует защита от КЗ и в-третьих можно легко регулировать напряжение на выходе. В общем, есть все, что для счастья надо. Я выбрал второй путь, т.к. искать трансформатор и обмоточный провод никакого желания не было, да и миниатюрности хотелось. Преобразователь решено было собирать на MC34063, т.к. был опыт работы с ней. Получилась вот такая схема:

          Следующим этапом разработки было проектирование схемы включения ламп. В принципе управление лампами ничем не отличается от управления семисегментными индикаторами за исключением высокого напряжения. Т.е. достаточно подать положительное напряжение на анод, и соединить с минусом питания соответствующий катод. На этом этапе требуется решить две задачи: согласование уровней МК (5В) и ламп (170В), и переключение катодов ламп (именно они являются цифрами). После некоторого времени размышлений и экспериментов была создана вот такая схема(

улыбнуло, т.к. это давно уже типовая схема анодного ключа для ГРИ) для управления анодами ламп:

А управление катодами осуществляется очень легко, для этого придумали специальную микросхему К155ИД1. Правда, они давно сняты с производства (на самом деле ее до сих пор можно заказать на заводе в Белоруссии, крупной партией), как и лампы (на забугорных аукционах уже появились самодельные лампы), но купить их не составляет проблем. Т.е. для управления катодами требуется всего лишь подключить их к соответствующим выводам микросхемы и подать на вход данные в двоичном формате.

Да, чуть не забыл, питается она от 5В., ну очень удобная штуковина. Индикацию было решено сделать динамической т.к. в противном случае пришлось бы ставить К155ИД1 на каждую лампу, а их будет 6 штук. Общая схема получилась такой:

Под каждой лампой я установил яркий светодиод красного цвета свечения, так красивее.
          Самое сложное позади, осталось разработать схему “мозга” часов. Для этого я выбрал микроконтроллер Mega8. Ну а дальше все совсем легко, просто берем и подключаем к нему все так, как нам удобно. В итоге в схеме часов появились 3 кнопки для управления, микросхема часов реального времени DS1307, цифровой термометр DS18B20, и пара транзисторов для управления подсветкой. Для удобства анодные ключи подключаем на один порт, в данном случае это порт С. В собранном виде это выглядит вот так:

 

На плате есть небольшая ошибка, но в приложенных файлах плат она исправлена. Проводами подпаян разъем для прошивки МК, после прошивки устройства его следует отпаять.

А вот так все это выглядит целиком в собранном виде:

Теперь осталось всего лишь написать прошивку для микроконтроллера, что и было сделано. Функционал получился следующий:
Отображение времени, даты и температуры. При кратковременном нажатии кнопки MENU происходит смена режима отображения.


1 режим — только время.
2 режим — время 2 мин. дата 10 сек.
3 режим — время 2 мин. температура 10 сек.
4 режим — время 2 мин. дата 10 сек. температура 10 сек.
При удержании включается настройка времени и даты, переход по настройкам по нажатию кнопки MENU
Максимальное количество датчиков DS18B20 – 2 . Если температура не нужна, можно их вообще не ставить, на работу часов это никак не повлияет. Горячего подключения датчико не предусмотрено.
При кратковременном нажатии на кнопку UP включается дата на 2 сек. При удержании включается/выключается подсветка.

При кратковременном нажатии на кнопку DOWN включается температура на 2 сек.
С 00:00 до 7:00 яркость понижена.
Работает все это дело вот так:

 К проекту прилагаются исходники прошивки. Код содержит комментарии так что изменить функционал будет не трудно. Программа написана в Eclipse, но код без каких-либо изменений компилируется в AVR Studio. МК работает от внутреннего генератора на частоте 8МГц. Фьюзы выставляются вот так:

А в шестнадцатеричном виде вот так:

HIGH: D9

,

LOW: D4

Также прилагаются платы с исправленными ошибками.
Данные часы работают в течение месяца. Никаких проблем в работе выявлено не было. Стабилизатор LM7805 и транзистор преобразователя едва теплые. Трансформатор нагревается градусов до 40, поэтому если планируется установка часов в корпус без вентиляционных отверстий, трансформатор придется взять большей мощности.

В моих часах он обеспечивает ток в районе 200мА. Точность хода сильно зависит от примененного кварца на 32,768 КГц. Кварц, купленный в магазине, ставить не желательно. Наилучшие результаты показали кварцы из материнских плат и мобильных телефонов.
Кроме ламп, использованных в моей схеме, можно устанавливать любые другие газоразрядные индикаторы. Для этого придется изменить разводку платы, а для некоторых ламп напряжение повышающего преобразователя и резисторы на анодах.
Внимание: устройство содержит источник высокого напряжения!!! Ток небольшой, но достаточно ощутимый!!! Поэтому при работе с устройством следует соблюдать осторожность!!!

Фото часов повторенных Appll:

 

 Фото следующей модификации часов:


Плата

Исходник прошивка 

Проект протеус для этих часов.

Модификации часов под разные лампы:

Для 4 ламп, вроде с глюком, — пропущу.

Плата под ИН-12

Плата и подписанными элементами под ИН-12

Прошивка исходник под ИН-12

Ссылка первоисточник: тыц

Ссылка на сайт Паяльник. (условия распространения материала)

Желающие что то добавить\изменить пишут мне в мыло.

Пробная прошивка.

Часы на газоразрядных индикаторах #1 (ИН-12)

Уже каждый третий радиолюбитель собрал себе нынче модные часы на газоразрядных индикаторах. Я решил не отставать и тоже их собрать. Схем в интернете полно, как классических, со статической индикацией, так и с динамической. В моих часах будет использоваться последняя схема управления индикаторами. Это сделано для уменьшения количества микросхем и для облегчения трассировки платы. Впрочем, с моими стратегическими запасами микросхем К155ИД1 можно было бы сделать даже статическую хоть на 8 ламп. Лампы — ИН-12. Почему? Во-первых, у меня их штук двадцать. Во-вторых, мне так захотелось 🙂 В дальнем будущем планирую изготовить часы на лампах ИН-8-2, для которых ПП будет заказана на производстве. Короче, все серьезно. В сверхдальних планах часы на ИН-2. Четырех ламповые.

Ну-с, перейдем к делу. Сначала была разработана общая плата, на которой было все. И питание, и логика, и преобразователь. Но потом я нашел в нашей радиолаборатории при кружке деревянный корпус от конденсаторной батареи 64-года:

Пришлось переработать плату, ибо она не влезала. Да и плату я загубил, забыв в УЗ ванне в спирте… Новая концепция: несколько отдельных плат, которые влезут в корпус. Схема осталась та же, просто конструкция стала блочной. Вот, например, уже изготовленный блок питания:

Блок питания линейный. В часы приходит 220 вольт через тумблер и предохранитель. Дальше ток идет через трансформатор ТС-4-1, вытащенный из убитого Океана-209, в диодный мост. Где-то вольт 18-20 попадает через кондеры на кренки, выдающие 5 и 12 вольт. 5 вольт нужно для питания логики, а 12В для питания преобразователя 12->180В выполненного на той же плате. Наружу 12 вольт не выходит. ШИМ для преобразователя берется с платы логики, с МК Atmega8. Так как блок линейный, то ему нужен радиатор. Силовой транзистор сидят на нем через изолирующие прокладки и вставки. Дело в том, что на корпусе у силового транзистора аж 180 вольт, а у кренок — земля.

Изначально часы предполагались как четырехламповые, из-за чего было куплено 5 оптотранзисторов. Но ведь корпус такой огромный, тут только 6 ламп! Так как схема уже сделана, вытравлена и запаяна, то нужно придумать какой-нибудь костыль. Ну я и придумал. Сделал плату счетчик на советских микрухах — к155ие2 и ла3 и дешифратор ИД1. Плата получилась сложная, двух сторонняя. Заказал ее у китайцев, на производстве. Схема управляется импульсами: тактовый — прибавляет единицу, сброс — обнуляет, и питание. Вот что получилось:

Начальная обработка корпуса состояла в сверлении отверстий под лампы. Для этого была проведена разметка. Сверление производилось в гараже, на станке сверлом 22,6. Окончательная обработка делалась напильником.

Следующим этапом нужно было заделать все лишние отверстия в корпусе. Там были выводы конденсаторов. В отверстия вбивались обмазанные клеем китайские палочки, обрезались и сушились. Вот как это происходило:

Потом наждачкой корпус был зачищен со всех сторон, останется загрунтовать его и покрасить. Нужно было как-то продумать крепление ламп. Нужно утопить их внутрь. Итак, я выпилил из тонкой фанеры пластинку длинной 24 см с прорезью под лампы по центру. Короче, обвел железное крепление самих ламп, которым они крепились в приборе. Чтобы сделать эту «деталь», пришлось вспомнить ручной лобзик, много лет пылящийся без дела, закупиться пилками для него (80р) и выпилить. Как оказалось, пилить лобзиком я еще не разучился, что не может не радовать. Моей ручной сверлилкой были просверлены отверстия под болты для ламповых панелей. Закручены панели на их родные болты от прибора с гайками. Саму деталь можно легко приклеить изнутри. Но это позже. Вид:

Программирование. Весьма специфический этап. Тот момент, когда твой девайс оживает с залитием прошивки, которую прежде долго и муторно писал в Atmel Studio 6. С прошивкой было множество трудностей, часы никак не хотели работать так как надо. На индикаторы выводилась ерунда, динамическая индикация не работала. А все оказалось просто и банально — я неправильно работал с портами, совсем неправильно. Обнулял не правильно, из-за чего выводилось не то, что нужно. Так или иначе, с индикацией разобрался, но связи с микросхемой часов реального времени не было. Пришлось разбираться с шиной I2C и даташитом на DS3231…

Доперев до того, что перед выводом на лампы, информацию о цифре нужно перекодировать в десятичный формат из двоично-десятичного, часы заработали. Какова была моя радость и восхищение, когда вместо 16 после 9-ти шла 10-ка! Причасные поймут. Итак, код отрабатывает. Часы идут.

Сделал частичную шпаклевку для устранения дефектов корпуса в виде трещин, ямок и царапин. Высохнет — обработаем шкуркой, покрасим и можно устанавливать часы в корпус. Неужели.

Покрасил корпус в черный цвет. Теперь, когда высохнет, надо будет смонтировать начинку в корпусе и все. 🙂

Когда корпус был готов, я стал разбираться с работой секунд. Они не работали. Был очень странный баг: секунды обнуляются, идут, но в определенный момент начинается случайный перебор всех значений счетчика и, как следствие, работать секунды адекватно не могут. Сначала я думал, что проблема аппаратная. Поэтому я напаял блокировочные конденсаторы на К155ИЕ2 и К155ЛА3. Поставил диод в цепь сброса, так как мне показалось, что выход И-НЕ, который сбрасывает счетчик при достижении 60 секунд будет конфликтовать с пином микроконтроллера. Напаял. Ничего не поменялось. Стал грешить на провода. Убираю провода — пересчета нет, но нет и счета. Итак, ошибка в программе.

Сразу скажу сущность решения проблемы. У меня появилась мысль. А что, если ИЕ2 считает не по фронту, а по спаду? Начал спрашивать людей — все говорят, что логично по фронту. Стал читать интернет. Вычитал, что таки по спаду. Полный надежд побежал править код, поменял две строчки кода местами — заливаю прошивку и… оно работает! Всегда нужно бороться с предрассудками, истина — в технической документации и журналах «Радио». Все работает, можно устанавливать электронику в корпус и завершать проект.

Внутри все прикручено мелкими саморезами. Плата логики и плата с DS3231 приклеены на термоклей. Для крепления трансформатора была вырезана полоска, чтобы закрепить тр-р.

Сзади все просто. Вентиляционные отверстия, кнопки задания времени и разъем питания, совмещенный с держателем предохранителя.

Итак. Проект часов на лампах ИН-12 завершен! Часы собраны, функционируют.

Материалы

 (54Kb) Печатные платы проекта в формате Sprint Layout 6
 (2Kb) Прошивка для микроконтроллера


Домой — Статьи

Что такое тактовые сигналы в цифровых схемах и как они генерируются? | Блог о симметрии

О Тайлер Войцехович

Тайлер Войцехович (Tyler Wojciechowicz) — инженер по приложениям в Symmetry Electronics. Он имеет степень бакалавра электротехники в Инженерной школе Милуоки и восьмилетний практический опыт работы инженером-электриком. Он специализируется на приложениях IoT, микроконтроллерах, встроенном программировании, синхронизации, датчиках и управлении питанием. На своей нынешней должности он тесно сотрудничает с отделами продаж на местах, чтобы дать рекомендации по оптимальной замене деталей, предложениям продуктов и инструментам продаж. Он имеет большой опыт в разработке руководств по эксплуатации, эталонных проектов, учебных пособий, матриц сравнения продуктов и маркетинговых кампаний для авторитетных поставщиков на различных рынках.

Компоненты синхронизации являются одними из самых распространенных компонентов в электронике. Они необходимы почти в каждой сложной конструкции, и вся наша электроника не будет работать без них. Ранее мы обсуждали, как спроектировать дерево часов, но понимание того, как работают часы, имеет решающее значение для понимания того, как работает ваш дизайн. В конце концов, это не волшебство, и когда дело доходит до этого, это на самом деле довольно просто.

В этой статье я объясню, какие существуют виды компонентов синхронизации и почему часы так важны в цифровых электрических схемах. Продолжайте читать, чтобы узнать, почему часы необходимы в цифровых схемах.


Что такое тактовый сигнал?

Мы можем определить тактовый сигнал как особый тип сигнала, который колеблется между высоким и низким состоянием. Сигнал действует как метроном, которому цифровая схема следует во времени, чтобы координировать свою последовательность действий. Цифровые схемы полагаются на тактовые сигналы, чтобы знать, когда и как выполнять запрограммированные функции.

Если часы в дизайне подобны сердцу животного, то сигналы часов — это биения сердца, которые поддерживают движение системы.


Как формируются тактовые сигналы?

Существуют различные способы получения тактового сигнала, но все они начинаются с кварцевого резонатора . Кристаллический резонатор обычно называют кристаллом . Для работы кристаллы объединяются со схемой усилителя для подачи напряжения на электрод рядом с кристаллом или на него.

Кристалл кварца представляет собой крошечную прорезь кварца, каждая из двух поверхностей которой металлизирована и соединена электрическим соединением. Важно, чтобы физический размер и форма кристалла кварца были точно вырезаны, потому что это определяет частоту колебаний, производимых кристаллом. После того, как кристалл вырезан и сформирован, его нельзя использовать ни на какой другой частоте. Кристаллы кварца используются чаще, поскольку частота, генерируемая кристаллами кварца, более устойчива к изменениям температуры. Если бы вместо этого использовался внутренний RC-резонатор, изменения температуры повлияли бы на поведение генератора, что привело бы к изменениям выходной частоты.


Кварцевый генератор

Кварцевые резонаторы имеют синусоидальный выходной сигнал и обычно используются, если целевая ИС имеет встроенный генератор и встроенные контуры фазовой автоподстройки частоты (ФАПЧ) для внутренней синхронизации. Когда кварцевый генератор и колебательный контур объединены в одном корпусе, его обычно называют кварцевым генератором . Этот кварцевый пьезоэлектрический генератор выдает полезный колебательный сигнал, чаще всего прямоугольную волну с коэффициентом заполнения 50%. Обычно этот тактовый сигнал фиксируется на постоянной частоте, и синхронизация может активироваться либо по переднему, либо по заднему фронту каждого тактового цикла.


Тактовый генератор

Тактовый генератор сочетает в себе генератор с одним или несколькими PLL, выходными делителями и выходными буферами. Генераторы тактовых импульсов и буферы тактовых импульсов полезны, когда требуется несколько частот, а все целевые ИС находятся на одной плате или в одной ПЛИС. В некоторых приложениях FPGA/ASIC имеют несколько временных областей для пути данных, уровня управления и интерфейса контроллера памяти, и, как следствие, требуют нескольких уникальных эталонных частот. В большинстве случаев осциллятор является внешним по отношению к тактовому генератору, хотя становится все более распространенным, когда генераторы объединяются в один корпус с тактовым генератором, чтобы объединить стоимость материалов и сложность, наряду с другими преимуществами. Существует множество различных типов генераторов тактовых импульсов, и каждый из них оптимизирован для различных показателей производительности и стоимости в зависимости от приложения.


Синхронные и автономные схемы:

Для систем и их комбинаций различных подсистем может потребоваться автономная или синхронная временная архитектура.

Если система работает в автономном режиме , можно использовать независимые часы без каких-либо специальных требований по фазовой синхронизации или синхронизации. Примеры включают стандартные процессоры, контроллеры памяти, SoC и периферийные компоненты (например, USB, коммутаторы PCI Express).

Примером сложной ИС, с которой все знакомы, может быть микроконтроллер. Микроконтроллеры полагаются на часы от кварцевого генератора, за исключением случаев, когда они используются в асинхронных схемах, например, в случае асинхронных процессоров. Наиболее распространенные микроконтроллеры содержат внутренний RC-генератор, который достаточно хорош для таких вещей, как связь через UART, хотя внешние кварцевые генераторы необходимы для других типов связи, таких как USB или Ethernet.

И наоборот, синхронные системы синхронизации требуют непрерывной связи и синхронизации на уровне сети во всех связанных системах. В этих приложениях часы на основе PLL с низкой пропускной способностью обеспечивают фильтрацию джиттера, чтобы гарантировать сохранение синхронизации на уровне сети. Например, синхронизация всех эталонных часов SerDes (сериализация-десериализация) с высокоточными сетевыми эталонными часами (например, Stratum 3 или GPS) гарантирует синхронизацию на всех узлах системы.

Примеры деревьев синхронных часов включают оптическую транспортную сеть (OTN), SONET/SDH, мобильную транспортную сеть, синхронный Ethernet и передачу видео HD SDI. Однако существуют различные приложения, требующие точной частоты или времени помимо связи. Некоторые приложения требуют длительной синхронизации между двумя подсистемами, не связанными друг с другом. Если бы осциллятор, используемый в качестве основы для часов реального времени, отклонялся всего на 0,1%, через неделю часы отставали бы почти на 10 минут. Также может потребоваться долгосрочная точность без необходимости знать реальное время.

Например, предположим, что вы хотите, чтобы несколько модулей Bluetooth просыпались один раз в час для обмена данными в течение нескольких секунд, а затем снова переходили в спящий режим, чтобы сохранить заряд батареи. Стандартный осциллятор на 20 ppm будет отключаться всего на доли секунды в час, тогда как резонатор с 1% RC может отключаться на полминуты. Если используется резонатор RC, модули Bluetooth должны оставаться включенными в течение более длительных периодов времени, чтобы общаться друг с другом, что приводит к трате энергии батареи.


Внутренние и внешние генераторы:

Внутренние генераторы обычно используются для обеспечения синхронизации микроконтроллеров, не требующих точной синхронизации. Внутренние генераторы достаточно хороши для низкоскоростной связи UART, хотя внешние кристаллы и генераторы необходимы для протоколов связи, таких как CAN, USB или Ethernet, которые предъявляют более строгие требования к точности синхронизации.

Использование внешнего генератора позволяет использовать более широкий диапазон частот, где внутренний генератор (генераторы) обычно имеет одну частоту с несколькими вариантами тактового предделителя. В электронике время — это свойство, которое можно точно и недорого измерить, поэтому часто проблема сводится к измерению времени или созданию импульсов с точной синхронизацией.

Некоторые преимущества внешних часов и генераторов включают:

  • Точность — внутренние часы не точны и могут зависеть от шума -температурные приложения или где температура сильно варьируется. При изменении температуры частота колебаний может оставаться относительно неизменной.
  • Скорость — внутренние генераторы могут не достигать максимальной скорости ИС, в этом случае требуется внешний генератор
  • Напряжение. Скорость внутреннего генератора может зависеть от напряжения, при котором он работает. Если осциллятор управляет оборудованием, которое может генерировать радиочастотные помехи, добавление переменного напряжения на его управляющий вход может рассредоточить спектр помех, приблизив его к идеальному. В этом примере только внешний генератор с регулятором напряжения может обеспечить эту возможность.
  • Требуется несколько тактовых импульсов — если многие подсистемы должны работать синхронно и связаны друг с другом, можно использовать один внешний тактовый генератор для замены свободного генератора каждой подсистемы. — работающий синхронизирующий компонент
В этой таблице приведены характеристики различных компонентов синхронизации.

Function

Crystal

XO

Clock Generator

Clock Buffer

Jitter Attenuator

Автономный режим

No

Yes

Yes

Yes

Yes

Synchronous operation

No

No

Yes

Да

Да

Умножение часов

Нет

5 5 5 50002 Yes

No

Yes

Clock division

No

No

Yes

Yes

Yes

Очистка джиттера

Нет

Нет

Нет

Нет

910105

2 Да0141

Design complexity

Low

Low

Medium

Low

Medium

Integration

Low

Low

High

High

High

Основные функции, упрощающие проектирование дерева часов

Small form factor

Any-frequency, any-output

Formal/level translation

Any-frequency clock synthesis

Placement next to IC

Format перевод

Интегрированный выходной микс

Интегрированный контурный фильтр

   

Бесперебойное переключение между тактовыми частотами

Output voltage translation

Hitless switching

   

VDD level translation

Synchronous output clock disable

Hold over on lock loss

 

Silicon Labs является предпочтительным поставщиком высококачественных компонентов синхронизации.

Silicon Labs предлагает различные генераторы, генераторы тактовых импульсов, аттенюаторы джиттера и буферы тактовых импульсов для различных нужд проектирования.

Зачем использовать часы Silicon Labs?

  • Гарантированная сквозная характеристика джиттера
  • Простое взаимодействие
  • Упрощенная закупка доступны

 

Используете ПЛИС?

Silicon Labs предоставляет эталонные проекты для Broadcom, Cavium, Intel/Altera, NXP/Freescale, Xilinx, Marvell и Lattice.

 

В интернет-магазине Symmetry вы можете найти широкий спектр решений для синхронизации, отвечающих вашим потребностям. Symmetry Electronics является авторизованным дистрибьютором Silicon Labs.

 

Читать другие похожие сообщения от Symmetry Electronics:

О Тайлер Войцехович

Тайлер Войцехович (Tyler Wojciechowicz) — инженер по приложениям в Symmetry Electronics. Он имеет степень бакалавра электротехники в Инженерной школе Милуоки и восьмилетний практический опыт работы инженером-электриком. Он специализируется на приложениях IoT, микроконтроллерах, встроенном программировании, синхронизации, датчиках и управлении питанием. На своей нынешней должности он тесно сотрудничает с отделами продаж на местах, чтобы дать рекомендации по оптимальной замене деталей, предложениям продуктов и инструментам продаж. Он имеет большой опыт в разработке руководств по эксплуатации, эталонных проектов, учебных пособий, матриц сравнения продуктов и маркетинговых кампаний для авторитетных поставщиков на различных рынках.

Аппаратное обеспечение — часы и восстановление данных

Аппаратное обеспечение – часы и восстановление данных

Джон Харрингтон Комментарии

Восстановление часов и данных — важная функция физического уровня современных аппаратных коммутаторов и маршрутизаторов. Возможно, вам не по душе копаться в электронных компонентах маршрутизатора, но восстановление тактовой частоты является фундаментальным строительным блоком для других функций сетевого оборудования. Например, для эффективного преобразования последовательных данных в параллельные требуются надежные часы и восстановление данных (CDR). Трудно понять последовательное преобразование в параллельное или преобразование сигнала, не изучив предварительно CDR.

С точки зрения MAC-уровня передатчика скорость передачи 10GBase-R составляет 10 Гбит/с. (10Gbase-R здесь относится к SR, LRM, LR, ER и т. д.) Однако на физической линии скорость передачи составляет 10,3125 Гбит/с. Канал 10Gbase-R использует кодирование 64b/66b, которое делит данные уровня 2, полученные от уровня MAC, на 64-битные блоки и вставляет дополнительные 2 бита заголовка перед каждым блоком. Эти накладные расходы не расходуют доступную полосу пропускания. Вместо этого передатчик использует «разгон» и передает закодированный битовый поток, используя тактовую частоту 10,3125 кГц. Эти дополнительные биты удаляются принимающими цепями физического уровня, поэтому линейное кодирование и разгон не видны на уровне MAC. Кроличья нора в кодировке 64b/66b гораздо глубже, но пока хорошо знать, что существует кодировка 64b/66b.
В цифровом приемнике 10GBase-R полученный сигнал интерпретируется путем выборки формы сигнала прямо в середине ожидаемого битового периода. Чтобы выровнять эту выборку и правильно декодировать полученный сигнал как единицу или ноль, вам необходимо иметь тактовый сигнал приема, который работает на той же частоте и фазе, что и тактовый генератор передатчика. К сожалению, вы не можете просто установить тот же генератор 10,3125 кГц в ресивер и покончить с этим. Нет… это было бы слишком просто….

Загвоздка в том, что ни один генератор не совершенен. Стандарт 802.3 10G обеспечивает точность часов в пределах +/- 0,01 процента. Поэтому вполне вероятно, что часы передачи и приема будут рассинхронизированы. Это называется тактовым или частотным дрейфом. Несовпадение тактовых импульсов приведет к потере битов из-за проскальзывания или ложной интерпретации битов, когда приемник производит выборку в неправильной точке формы сигнала, путая «единицу» с «нулем» или наоборот.
На приведенной ниже диаграмме показано, что тактовый сигнал Rx (красный) работает быстрее, чем тактовый сигнал Tx и сигнал данных. Хотя фазы первых переходов 0-1 совпадают по фазе между двумя сигналами, в течение нескольких тактов они полностью противофазны. Да, это преувеличение, но это реальная проблема.

Даже если часы Tx и Rx работают на одной и той же частоте, их все равно необходимо выровнять, чтобы их фазы совпадали. Вы можете увидеть диаграмму ниже, показывающую, что часы работают на одной частоте, но не совпадают по фазе друг с другом, что снова приводит к неправильной выборке принятого сигнала.

«У него….. захват нас! – Он увлекает меня. Проклятье. Мустанг, это пугало вокруг меня»

Вместо того, чтобы пытаться угадать точную частоту и фазу передатчика, почему бы не определить их по входящему сигналу? Это восстановление часов и данных (CDR). Функция CDR, встроенная в приемник, имеет собственный генератор и использует умный компонент, называемый контуром фазовой автоподстройки частоты (PLL), для калибровки генератора и его согласования с фазой и частотой входящего сигнала. В PLL есть «фазовый компаратор», который сравнивает фазу принимаемого сигнала с фазой гетеродина. Разница между двумя сигналами создает выходной сигнал, который приводит в действие генератор, управляемый напряжением (VCO). Этот вход управления VCO модифицирует генератор, чтобы он лучше соответствовал входящему сигналу, и подает локальный сигнал обратно в фазовый компаратор, чтобы снова начать процесс.
Я знаю, я теряю тебя, но мы закончили с сумасшедшей электроникой. Цепь обратной связи в конечном итоге синхронизирует гетеродин с фазой и частотой входящего сигнала. Вот и все. Как только ваши часы PLL «заблокированы», приемник может правильно рассчитать время выборки для восстановления переданных данных. Тем не менее, часы передатчика могут изменять свою частоту в зависимости от времени и температуры, поэтому PLL должен поддерживать эту синхронизацию, постоянно контролируя принимаемый сигнал.

Я замахнулся на важный элемент восстановления часов и данных — переходы между уровнями. Переход уровня — это изменение от единичного значения к нулевому значению и от нуля к единице. В приведенных выше примерах поток битов представлял собой идеалистическую прямоугольную волну 1-0-1-0-1-0. В реальном мире, если в принятом потоке данных нет переходов уровней (например, поток всех единиц или всех нулей), тогда PLL теряет способность определять тактовую частоту передатчика. Это называется «потеря блокировки». «Длина цикла» PLL — это мера того, как долго он может выдерживать отсутствие переходов, прежде чем потеряет синхронизацию.
Передаваемый сигнал необходимо каким-то образом изменить, чтобы помочь приемнику восстановить и сохранить синхронизацию часов. В 10Base-T Ethernet использовалось манчестерское кодирование, которое гарантировало переход уровня в течение каждого битового времени. К сожалению, он сделал это, удвоив тактовую частоту линии, используя два тактовых импульса для каждого передаваемого бита данных. Это 100% накладные расходы на линейное кодирование.
В 10GBase-R эта проблема решается линейным кодированием 64b/66b. Два служебных бита (или преамбулы) могут иметь только значения 0-1 или 1-0. Преамбула 0-1 означает, что следующий 64-битный блок содержит чистые данные, а преамбула 1-0 означает, что блок содержит некоторую управляющую информацию. Мы рассмотрим сигнализацию позже, но учтите, что шаблоны преамбулы 0-1 и 1-0 «гарантируют» переход уровня через каждые 64 бита. Таким образом, мы можем сказать, что 10GBase-R имеет максимальную 64-битную «длину выполнения». Накладные расходы на линейное кодирование составляют 3,125%, что более приемлемо, чем накладные расходы на манчестерское кодирование.
Кроме того, 64-битный блок «зашифрован» для обеспечения дальнейших переходов между уровнями. Это делается не только для восстановления тактовой частоты и делает очень вероятным то, что у вас будут переходы уровней в вашем потоке данных, поэтому хорошо иметь принудительные переходы из 2-битных преамбул.

Когда полученный последовательный битовый поток 10GBase-R должен быть передан на уровень MAC, он должен быть преобразован для передачи на уровень MAC с использованием 32-битного параллельного интерфейса интерфейса XGMII. Преобразователь Serial-in/Parallel-out (SIPO) должен выполнять здесь CDR. Восстановленные биты данных синхронизируются в 32-битном регистре с линейной скоростью. Восстановленные часы делятся на 32 и используются для синхронизации 32-битных слов на шине с уменьшенной скоростью передачи данных.
Иногда требуется выполнить CDR, даже если вы планируете повторно передать полученные последовательные данные как другой поток последовательных данных. Это форма переобучения, известная как повторное определение времени. Сигналы, передаваемые в канале, будут ослабляться (уменьшаться в размере) и искажаться (изменяться в форме) по мере их распространения, и, как обсуждалось в предыдущем посте, печатная плата представляет собой враждебную среду. Восстанавливая часы и данные, а затем регенерируя импульсы, вы можете продлить срок службы сигнала.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *