sonyps4.ru

Шифраторы и дешифраторы. Структурная схема декодера

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

Когда мы слышим слово шифратор или дешифратор, то в голову приходят фразы из шпионских фильмов. Что-то вроде: расшифруйте депешу и зашифруйте ответ.

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

Шифраторы.

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

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

Поскольку все действия в калькуляторе выполняются с двоичными числами (вспомним основы цифровой электроники), то после клавиатуры стоит шифратор, который преобразует вводимые числа в двоичную форму.

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

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

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

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

Дешифраторы.

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

Или таким.

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

Простейший пример . Вы не раз видели цифровой семисегментный индикатор, например, светодиодный. На нём отображаются десятичные цифры и числа к которым мы привыкли с детства (1, 2, 3, 4...). Но, как известно, цифровая электроника работает с двоичными числами, которые представляют комбинацию 0 и 1. Что же преобразовало двоичный код в десятичный и подало результат на цифровой семисегментный индикатор? Наверное, вы уже догадались, что это сделал дешифратор.

Работу дешифратора можно оценить вживую, если собрать несложную схему, которая состоит из микросхемы-дешифратора К176ИД2 и светодиодного семисегментного индикатора, который ещё называют «восьмёркой». Взгляните на схему, по ней легче разобраться, как работает дешифратор. Для быстрой сборки схемы можно использовать беспаечную макетную плату .

Для справки. Микросхема К176ИД2 разрабатывалась для управления 7-ми сегментным светодиодным индикатором. Эта микросхема способна преобразовать двоичный код от 0000 до 1001 , что соответствует десятичным цифрам от 0 до 9 (одна декада). Остальные, более старшие комбинации просто не отображаются. Выводы C, S, K являются вспомогательными.

У микросхемы К176ИД2 есть четыре входа (1, 2, 4, 8). Их ещё иногда обозначают D0 - D3 . На эти входы подаётся параллельный двоичный код (например, 0001). В данном случае, двоичный код имеет 4 разряда. Микросхема преобразует код так, что на выходах (a - g ) появляются сигналы, которые и формируют на семисегментном индикаторе десятичные цифры и числа, к которым мы привыкли. Так как дешифратор К176ИД2 способен отобразить десятичные цифры в интервале от 0 до 9, то на индикаторе мы увидим только их.

Ко входам дешифратора К176ИД2 подключены 4 тумблера (S1 - S4), с помощью которых на дешифратор можно подать параллельный двоичный код. Например, при замыкании тумблера S1 на 5 вывод микросхемы подаётся логическая единица. Если же разомкнуть контакты тумблера S1 - это будет соответствовать логическому нулю. С помощью тумблеров мы сможем вручную устанавливать на входах микросхемы логическую 1 или 0. Думаю, с этим всё понятно.

На схеме показано, как на входы дешифратора DD1 подан код 0101. На светодиодном индикаторе отобразится цифра 5. Если замкнуть только тумблер S4, то на индикаторе отобразится цифра 8. Чтобы записать число от 0 до 9 в двоичном коде достаточно четырёх разрядов: a 3 * 8 + a 2 * 4 + a 1 * 2 + a 0 * 1 , где a 0 - a 3 , - это цифры из системы счисления (0 или 1).

Представим число 0101 в десятичном виде 0101 = 0*8 + 1*4 + 0*2 + 1*1 = 4 + 1 = 5 . Теперь взглянем на схему и увидим, что вес разряда соответствует цифре, на которую умножается 0 или 1 в формуле.

Дешифратор на базе технологии ТТЛ - К155ИД1 использовался в своё время для управления газоразрядным цифровым индикатором типа ИН8, ИН12, которые были очень востребованы в 70-е годы, так как светодиодные низковольтные индикаторы ещё были очень большой редкостью.

Всё изменилось в 80-е годы. Можно было свободно приобрести семисегментные светодиодные матрицы (индикаторы) и среди радиолюбителей прокатился бум сборки электронных часов. Самодельные электронные часы не собрал для дома только ленивый.

Кодер: Кодер программист, специализирующийся на кодировании написании исходного кода по заданным спецификациям. Кодер одна из двух компонент кодека (пары кодер декодер). «Кодер» фантастический фильм режиссёра Винченцо Натали. «Кодеры»… … Википедия

кодер - КОДЕР, а, м. Программист, занимающийся написанием программного кода, а также пренебр. о посредственном, бездарном программисте. Типичный совковый кодер. Из речи программистов … Словарь русского арго

Сущ., кол во синонимов: 6 it шник (6) айтишник (10) информатик (6) … Словарь синонимов

кодер - Устройство, осуществляющее кодирование. [Сборник рекомендуемых терминов. Выпуск 94. Теория передачи информации. Академия наук СССР. Комитет технической терминологии. 1979 г.] Тематики теория передачи информации EN coder …

кодер - kodavimo įtaisas statusas T sritis automatika atitikmenys: angl. code device; coder; coding device; encoder vok. Codierer, m; Kodierer, m; Kodierungseinrichtung, f; Kodierungsgerät, n; Verschlüßler, m; Verschlüsseler, m rus. кодер, m; кодирующее… … Automatikos terminų žodynas

кодер - к одер, а … Русский орфографический словарь

кодер - Syn: шифратор … Тезаурус русской деловой лексики

кодер - а, ч., спец. Пристрій, який виконує кодування … Український тлумачний словник

кодер - Устройство, осуществляющее кодирование … Политехнический терминологический толковый словарь

кодер ИКМ - кодер Устройство, предназначенное для осуществления квантования и кодирования отсчетов сигнала электросвязи при ИКМ. Примечание Аналогично кодеру ИКМ получают свои названия и определения другие кодеры, например кодер ДИКМ. [ГОСТ 22670 77]… … Справочник технического переводчика

Книги

  • Электроника: логические микросхемы, усилители и датчики для начинающих , Платт Чарльз. Обучение в ходе экспериментов. В книге "Электроника для начинающих" был представлен мир электроники и изложены его основные понятия. Теперь вы готовы перейти к следующему этапу - разработке…
  • Электроника. Логические микросхемы, усилители и датчики для начинающих , Платт Ч.. Обучение в ходе экспериментов. . В книге "Электроника для начинающих" был представлен мир электроники и изложены его основные понятия. Теперь вы готовы перейти к следующему этапу -…

В русском языке появилось так много слов за последний 20 лет, что знать их всех просто невозможно. С активным развитием интернета начали возникать и новые профессии. Причем над одним и тем же делом могут работать люди разных специальностей. Конечно, обычный человек не обязан разбираться во всем подряд. Особенно в том, что ему неинтересно. Но если вы как-то связаны с программированием, то однозначно захотите знать, что такое кодер.

Предпосылка

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

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

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

Два лагеря

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

Представители второго лагеря считали несколько иначе. По их мнению, программист - это продвинутый специалист, которого можно назвать архитектором. А вот кодер - это программист начального уровня.

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

Универсальность

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

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

Оскорбление

Конечно, глупо было бы полагать, что форумчане и завсегдатаи интернета идеально поделились на два лагеря. Были и те, кто выдвигал свои безумные теории. О них стоит вкратце упомянуть. Итак, в погоне за единым определением появлялись обидные и не очень толкования.

Кодер - это быдлокодер. Вот такое странное мнение удалось найти в сети. Не трудно догадаться, что объяснение этой специальности довольно оскорбительное. Некоторые посчитали, что кодер - это не профессионал своего дела. Он лишь «страдает» над неоптимизированным кодом, который пишет с ошибками. У кодера нет опыта, он - возомнивший себя программистом неуч.

Творчество

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

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

Происхождение

Чтобы не путаться в мнениях и решить, чем кодер отличается от программиста, можно зайти с другой стороны. Как уже упоминалось выше, это два заимствованных слова. Значит, у них есть перевод, которой даст четкие определения.

Оказывается, английский не очень помогает в решении этого вопроса. Будь-то «programmer», «coder» или «developer», в русском все равно оказывается, что это программист. То есть с лингвистической точки зрения это синонимы.

Есть предположение, что изначально слово «кодер» стали использовать, потому что оно короче и его легче и быстрее писать. А мы знаем, что русский язык стремится стать проще. Так понятия «кодер» и «программист» в один момент слились.

Необходимость

Вообще, проблема русского языка состоит как раз в том, что часто в нем появляются слова, которые не имеют практического смысла. То есть, был себе программист, никого не трогал, и вдруг, слово стало трудно писать, и решили использовать его синоним «кодер». Это простая замена слов, которая не принесла в язык нового понятия, а лишь упростила имеющееся.

В доказательство этого мнения можно напомнить и об использовании «программера». Оказывается, что некоторые пользователи для себя решили, что именно так правильно использовать название этой профессии. В итоге мы получаем то, что люди в последнее время используют либо привычные слова, либо новомодные.

Уровень квалификации

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

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

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

Вообще, кодировщик и кодер - это не просто синонимы. Это одно и то же понятие, поскольку первое и второе на английском будет «coder». Так, мы возвращаемся снова к тому, что кодер - это просто исполнитель, а программист - идейный вдохновитель и в некоторых случаях руководитель.

Принципиальная электрическая схема кодера Хэмминга

Принципиальная электрическая схема кодера Хэмминга с поэлементным формированием проверочных элементов кода (7,4) приведена на рисунке 5. Эта схема построена в соответствии с выражениями, полученными в п. 3.6 или в соответствии с проверочной матрицей данного кода записанной в п. 3.8. Кодер включает в себя: сдвигающий регистр, осуществляющий преобразование параллельного кода в последовательный, и логические элементы сложения по модулю два, которые осуществляющие формирование проверочных символов. Количество этих элементов определяется количеством проверочных элементов кодовой комбинации.

Рисунок 5 - Принципиальная электрическая схема кодера Хэмминга (7,4)

Принципиальная электрическая схема декодера Хэмминга

Декодер Хэмминга должен не только произвести проверку на верность принятой комбинации, но и при наличии ошибки должен осуществить ее исправление, поэтому декодер содержит две части: схему определения синдрома и схему исправления ошибки. Кроме того декодер содержит регистр, который служит для преобразования последовательного кода в параллельный. Принципиальная электрическая схема декодера представлена на рисунке 6. Схема определения синдрома кода состоит из логических элементов сложения по модулю два. В них осуществляется определение проверочных символов b i ’’ в соответствии с принятыми информационными символами a i ’ и проверочной матрицей. В следующих сумматорах по модулю два осуществляется сложение принятых проверочных элементов с полученными на приеме, в результате чего получают синдром кода С i . Схема исправления ошибки состоит из логических элементов И, в которых формируется сигнал ошибки для ошибочного разряда, и логических элементов сложения по модулю два, в которых и осуществляется исправление ошибочного разряда (его инвертирование). Количество элементов И и сумматоров по модулю два определяется количеством информационных элементов кодовой комбинации, т. к. ошибка в проверочной части не приводит к искажению сообщения и в дальнейшей обработке эта часть не участвует. Элементы НЕ, на входах элементов И предотвращают формирование ложных сигналов ошибки для элементов а 1 , а 2 и а а при появлении синдрома вида 111.

Рисунок 6 - Принципиальная электрическая схема декодера Хэмминга (7,4)

Принципиальная электрическая схема кодера циклического кода

Принципиальная электрическая схема кодера циклического кода (7,4) приведена на рисунке 7.

Рисунок 7 - Принципиальная электрическая схема кодера циклического кода (7,4)

Кодер построен на многотактном фильтре (МФ) в качестве которого используется регистр. Количество D-триггеров в МФ соответствует степени порождающего полинома. Также в состав МФ входят логические элементы сложения по модулю два, их количество на один меньше ненулевых членов порождающего полинома. Данные элементы располагаются на месте нулевого члена порождающего полинома и после триггера соответствующего члену х 0 . В данной схеме МФ соответствует полиному G(x)=х 3 +х 2 +х 0 . Также в схему кодера входит два ключа в качестве которых используются логические элементы И, тактового RS-триггера и логического элемента ИЛИ.

Формирование кодовой комбинации на выходе схемы происходит за 7 тактов. За первые четыре такта на выход поступают информационные разряды: тактовые импульсы подаются на установочный вход единицы «S» RS-триггера, в результате чего открывается ключ К1 и входные информационные разряды через элемент ИЛИ поступают на выход. Одновременно информационные разряды поступают в МФ где осуществляется вычисление проверочных разрядов. С пятого по седьмой такты формируются проверочные разряды. При этом тактовые импульсы подаются на установочный вход нуля «R» RS-триггера. Ключ К1 закрывается а К2 открывается и проверочные разряды из МФ через К2 и элемент ИЛИ поступают на выход.

Принципиальная электрическая схема декодера циклического кода

Принципиальная электрическая схема декодера циклического кода (7,4) представлена на рисунке 8.

Рисунок 8 - Принципиальная электрическая схема декодера циклического кода (7,4)

Данный декодер способен только обнаруживать ошибки и не способен их исправлять. В его состав входят так же как и в кодер тактовый RS-триггер, два ключа К1 и К2, элемент формирования ошибки ИЛИ и декодирующий регистр, принцип построения которого аналогичен построения МФ кодера. Кроме того устройство содержит буферный регистр состоящий из D-триггеров и логических элементов И у которых один из входов инверсный.

За первые четыре такта информационные разряды поступающей кодовой комбинации, через К1, записываются в буферный регистр: Тактовые импульсы поступают на установочный вход единицы «S» RS-триггера и К1 открывается. Одновременно разряды кодовой комбинации поступают в декодирующий регистр, где вычисляется синдром. Если синдром кода не равен нулю, то схема или формирует сигнал ошибки «1», который поступает на вход К2. За 5 -7 такты открывается К2 и закрывается К1. В случае ошибки на входе и выходе К2 действуют единицы, а следовательно логические элементы И в схеме буферного регистра закрыты и информация хранимая в регистре стирается. Если же комбинация принята верно, т. е. синдром равен нулю, то информационные разряды поступают на выход декодера и используются для дальнейшей обработки.

Принципиальная электрическая схема декодера мажоритарного циклического кода

Принципиальная электрическая схема декодера мажоритарного кода (7,3) представлена на рисунке 9.

Рисунок 9 - Принципиальная электрическая схема декодера циклического мажоритарного кода (7,4)

Декодер включает в себя буферный регистр и схему вычисления линейных выражений. Количество ячеек буферного регистра соответствует разрядности кодовой комбинации Bip(x). Схема вычисления линейных выражений содержит логические элементы сложения по модулю два и мажоритарные элементы (М). Количество логических элементов соответствует количеству линейных выражений кода, а количество мажоритарных элементов соответствует разрядности информационной части комбинации, т. е. разрядности Ai(x).

В начале цикла вся кодовая комбинация Bip(x)’ через ключ (К) записывается в ячейки буферного регистра, причем, старший разряд а 1 ’ записывается в триггер Т1, а 2 ’ в Т2, а 3 ’ в Т3, а 4 ’ в Т4, b 1 ’ в Т5, b 2 ’ в Т6, b 3 ’ в Т7. Затем ключ размыкается и происходит вычисление линейных выражений для всех информационных символов. Результаты вычисления поступают в мажоритарные элементы. Кроме этих выражений в соответствующие мажоритарные элементы поступают символы тех разрядов, для которых определяются линейные выражения. Мажоритарные элементы выносят решения о принятых символах а i . Затем информационная комбинация Аi(х) поступает на выход декодера.

Целесообразность использования регистров сдвига для построения циклических кодеров и декодеров объясняется структурой циклических кодов. При несистематическом кодировании циклических кодов для формирования кодового слова с надо соответствующий информационный многочлен умножить на фиксированный порождающий многочлен Эту операцию можно реализовать на КИО-фильтре над Такой кодер для (15, 11)-кода Хэмминга представлен на рис. 6.1.3. Для кодирования непрерывного потока информационных битов последовательностью слов (15, 11)-кода Хэмминга информационная последовательность просто разбивается на блоки но 11 битов, каждый блок дополняется «прокладкой» из четырех нулей, а результирующий поток битов пропускается через КИО-фильтр. На выходе получается последовательность непересекающихся 15-битовых слов кода Хэмминга Такой кодер, показанный на рис. 6.14, очень прост, но кодовые слова оказываются несистематическими.

Для получения слов кода в систематическом виде надо воспользоваться другим кодером. Поместим информационные биты в старшие разряды кодового слова и подберем проверочные символы так, чтобы получить допустимое кодовое слово. Кодовое слово записывается в виде

Для реализации систематического кодера используется цепь деления на Для (15, 11)-кода Хэмминга

соответствующее устройство показано на рис. 6.15. Одиннадцать информационных битов, занимающих старшие разряды, вводятся слева в цепь деления на Умножение на учитывается временем работы цепи. Первый бит понимается как коэффициент при Деление не начинается до тех пор, пока не выполнены четыре тактовых сдвига, так что первые четыре бита оказываются записанными в разрядах регистра сдвига. Поэтому ниже цепи деления в устройство включен буфер из четырех разрядов, так, что первые четыре бита начинают поступать в канал одновременно с началом деления. После 11 тактов работы все 11 информационных битов поданы в канал, деление закончено и

Рис. 6.13. Несистематический кодер для (15, 11)-кола Хэмминга.

Рис. 6. 14. Кодирование длинного потока битов.

Рис. 6.15. Систематический кодер для (15, 11)-кода Хэмминга.

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

Можно несколько ускорить кодирование, удалив первые четыре такта. Такой кодер изображен на рис. 6.16. Чтобы понять эту схему, нужно заметить, что поступающие информационные символы не вводятся немедленно для выполнения деления на , а поступают тогда, когда необходимо сформировать сигнал обратной связи. Таким образом, обратная связь в устройстве на рис. 6.16 такова же, как и в устройстве на рис. 6.15. Далее, так как последние биты многочлена всегда равны нулю, то ничего не случится, если мы прибавим их к остатку от деления. Таким образом, остаток, вычисляемый устройством на рис. 6.16, равен остатку, вычисляемому устройством на рис. 6.15, но вычисление происходит только за 15 тактов, что, конечно, удобнее.

Рис. 6.16. Другой систематический кочер для (15, 11)-кода Хэмминга.

Теперь обратимся к декодеру. В канал поступаю! коэффициенты многочлена с К ним прибавляется многочлен ошибок На выходе канала принимаемся многочлен

В § 5.2 была описана очень простая но идее процедура декодирования, основанная на просмотре таблицы. Принятая последовательность делится на и остаток отделения полагается равным синдромному многочлену. Синдромный многочлен используется для выбора из таблицы оценки для многочлена ошибки. В двоичном случае синдром можно использовать непосредственно как адрес хранящейся в таблице оценки вектора ошибок



Загрузка...