Главная страница
Навигация по странице:

  • 10000 11000 0001 0010 0010 1110 17 10001

  • Цифровые измерительные устройства. Цифровые Измерительные Устройства. Цифровые измерительные устройства теоретические основы цифровой измерительной техники


    Скачать 1.94 Mb.
    НазваниеЦифровые измерительные устройства теоретические основы цифровой измерительной техники
    АнкорЦифровые измерительные устройства
    Дата26.02.2022
    Размер1.94 Mb.
    Формат файлаpdf
    Имя файлаЦифровые Измерительные Устройства.pdf
    ТипУчебное пособие
    #374765
    страница7 из 22
    1   2   3   4   5   6   7   8   9   10   ...   22
    a, b, c, d,
    e расположены равномерно по углу. Четыре приведенных на рисунке примера взаимного расположения шкалы и воспринимающих элементов (в реальных датчиках положения, наоборот, обычно неподвижны воспринимающие элементы, а кодированная шкала перемещается) ясно показывают: всегда два воспринимающих элемента, либо смежные, либо установленные через один, будут воспринимать единицы, а три остальные – нули. Таких кодовых комбинаций существует ровно десять. Заметим, что коды, все комбинации которых содержат одно и то же число единиц, иногда называют кодами
    постоянного веса.
    На рис. 2.6, б изображен другой пример получения десяти кодовых комбинаций с одной замкнутой в кольцо кодированной дорожки (на рисунке снова дана ее развертка). На этот раз воспринимающие элементы a, b, c, d, e
    устанавливаются не равномерно по окружности, а рядом, на смежных участках шкалы. Получающийся код называют по фамилиям его авторов кодом
    Либау – Крейга.
    При перемещении шкалы влево относительно воспринимающих элементов исходная кодовая комбинация 00000 переходит в
    00001, затем в 00011; 00111; 01111 и 11111 (справа налево как бы проходит
    «волна единиц»); при дальнейшем движении возникает и проходит справа налево такая же «волна нулей», заканчивающаяся последней комбинацией
    10000.
    Таким образом, одним из свойств кодов, представляющих интерес для
    ЦИТ, является возможность получения нескольких двоичных разрядов с одной дорожки кодированной шкалы.
    Другое важное свойство – взвешенность кодов, т.е. возможность присвоения каждому i-му двоичному разряду кодовой таблицы такого весового
    коэффициента, или, короче, веса m
    i
    , что для любой кодовой комбинации ее числовое значение найдется по формуле (см. раздел 1.5.1):
    Напомним, что здесь и далее самому правому (младшему) разряду кодовой комбинации приписан номер i = 1; самому левому разряду – номер
    i = n; символ α
    i
    обозначает двоичную переменную; число N понимается как целое. В литературе иногда используется обратная нумерация, счет разрядов часто начинают не с единицы, а с нуля, а в некоторых случаях изображаемое число рассматривают как дробное (нормализованное).
    Разумеется, не следует путать свойство взвешенности кодов со свойством постоянства веса комбинаций, которое присуще, например, упомянутому выше коду «2 из 5». Это совершенно различные свойства.
    Как уже говорилось выше в разделе 1.5, важность взвешенных кодов определяется тем, что они позволяют использовать физическую аддитивность таких величин, как ток, сопротивление, проводимость, масса и др. для построения ЦАП и АЦП. При этом выходная величина ЦАП, – например, ток, – получается как сумма токов, заранее подогнанных (естественно, с некоторыми
    1

    =
    =
    n
    i
    i
    i
    m
    N
    α

    45
    погрешностями) в соответствии с весами разрядов используемого кода.
    Говорилось также и о том, что натуральный двоичный код является взвешенным, и веса его разрядов составляют
    Другие системы весов чаще всего бывают нужны в случаях, когда ЦСИ управляется человеком (если это калибратор) или формирует цифровой отсчет для человека (если это вольтметр, частотомер и т.п.). Для человека привычна десятичная система счисления; компромиссом между этой привычкой и удобством использования двоичных элементов внутри ЦСИ является использование двоично-кодированных десятичных систем счисления, или иначе
    двоично-десятичных кодов.
    В двоично-десятичном коде число изображается последовательностью десятичных цифр, но каждая цифра кодируется двоичными символами.
    Поэтому для описания двоично-десятичного кода обычно достаточно представить таблицу кодирования десятичных цифр от 0 до 9.
    В табл. 2.2 представлено несколько таких кодов. Все они – четырехбитовые (тетрадные); коды с избыточным числом битов используются реже (заметим, что выше на рис. 2.6 были даны два примера пятибитовых двоично-десятичных кодов).
    Наиболее естественным способом кодирования десятичных цифр является представление соответствующих однозначных чисел натуральным двоичным кодом. Так строится двоично-десятичный код 8421 (столбец B
    1
    в табл. 2.2). Например, число 1945 в этом коде запишется (потетрадно) следующим образом: 0001 1001 0100 0101. Последовательность весов битов в этой записи, слева направо: 8000; 4000; 2000; 1000; 800; 400; 200; 100; 80; 40; 20;
    10; 8; 4; 2; 1. Видно, что только последняя четверка весовых коэффициентов совпадает с весами натурального двоичного кода.
    Недостатком кода 8421 применительно к таким устройствам, как ЦАП по рис. 1.10, является избыточная сумма весовых коэффициентов, равная 15: для кодирования цифр от 0 до 9 достаточна сумма весов 9. Избыточная сумма весов увеличивает погрешность ЦАП (или АЦП на его основе). Исследовано и
    2 1

    =
    i
    i
    m
    Таблица 2.2.
    8421 2421 2421 2421 7421 8421+3
    N
    B
    1
    B
    2
    B
    3
    B
    4
    B
    5
    B
    6
    0 0000 0000 0000 0000 0000 0011 1 0001 0001 0001 0001 0001 0100 2 0010 0010 1000 0010 0010 0101 3 0011 0011 1001 0011 0011 0110 4 0100 0100 1010 0100 0100 0111 5 0101 0101 1011 1011 0101 1000 6 0110 0110 1100 1100 0110 1001 7 0111 0111 1101 1101 1000 1010 8 1000 1110 1110 1110 1001 1011 9 1001 1111 1111 1111 1010 1100

    46
    испробовано на практике большое число различных двоично-десятичных кодов с суммой весов, равной 9. Из них наибольшее распространение получили коды с весами 2421. Вообще говоря, любая четырехбитовая комбинация с весами битов
    2421 может быть расшифрована как десятичная цифра; однако чаще определенным образом отбирают 10 разрешенных комбинаций, считая остальные шесть запрещенными.
    В табл. 2.2 представлены разрешенные комбинации трех различных кодов 2421.
    В столбце B
    2
    приведен код 2421, удобный для использования в счетчиках импульсов: недвоичный переход от 0111 к 1110 просто реализуется с помощью
    «обратной связи» со старшего триггера счетчика на два предыдущих.
    Столбец B
    3
    представляет код 2421, удобный для цифроаналоговых преобразователей цифровых вольтметров: недвоичный переход между 0001 и
    1000, приводящий к раннему появлению «старшей» двойки, облегчает обеспечение однозначности формирования кодового представления цифр в процессе преобразования методом «последовательных приближений».
    Столбец B
    4
    изображает самодополняющийся код 2421, или код Айкена,
    по фамилии Говарда Айкена, разработчика американских электромеханических вычислительных машин Марк-1 и Марк-2 (первый проект Айкена – 1937 г.; завершение машины Марк-2 –
    1947 г.).
    Самодополняемость есть свойство двоично-десятичного кода, заключающееся в том, что инверсия всех битов комбинации, изображающей однозначное число x, превращает ее в комбинацию, изображающую число 9 – x.
    По таблице легко проверить, что для всех комбинаций кода Айкена это верно.
    В столбце B
    5
    табл. 2.2 приведен код 7421, замечательный тем, что ни одна из его комбинаций не содержит более двух единиц. Это облегчает обнаружение некоторых сбоев (см. ниже раздел 2.2.7).
    Наконец, в столбце B
    6
    представлен невзвешенный код с избытком 3, или
    код Штибица, по фамилии немецкого разработчика ранних вычислительных машин. Этот код получается путем арифметического прибавления к комбинациям кода 8421 комбинации 0011, изображающей число 3. Нетрудно видеть, что код Штибица тоже обладает свойством самодополняемости.
    Нужно отметить, что не всегда неоднозначность изображения чисел
    (свойственная всем взвешенным кодам с весовыми коэффициентами, уменьшенными по сравнению с двоичными весами 2
    i-1
    ) рассматривается как нежелательная. Примером намеренного введения и использования такой неоднозначности является система счисления, построенная на числах
    Фибоначчи. Ряд Фибоначчи строится следующим образом: первые два числа равны 1, каждое следующее получается суммированием двух предыдущих: 1;
    1; 2; 3; 5; 8; 13; 21; 34 и т.д. Ошибка в любом разряде кода с такими весами, заключающаяся в замене в этом разряде единицы нулем, может быть скомпенсирована единицами в двух смежных более младших разрядах.
    Еще одно свойство кодов, которое зачастую оказывает решающее влияние на их выбор, называется однопеременностью. Код для изображения чисел называют однопеременным или иногда соседним, если комбинации, соответствующие смежным (соседним) числам, различаются только в одном разряде. Натуральный двоичный код не является однопеременным: например, комбинации 01111111 и 10000000, изображающие соседние числа 127 и 128, различаются в восьми разрядах – в семи младших разрядах получаются переходы 0 → 1 и в одном старшем 1 → 0.

    47
    Прежде, чем рассматривать сами однопеременные коды, займемся обоснованием целесообразности их применения.
    Устройства, работающие в неоднопеременных кодах, могут давать сбои в ситуациях, когда требуется слежение за непрерывно изменяющейся кодированной величиной и возможно считывание кода в произвольный момент процесса его изменения. Такие ситуации чаще всего возникают при измерениях во временной и пространственной областях. Например, рассмотрим устройство
    датирования событий, состоящее из опорного генератора (источника импульсной временной шкалы), счетчика импульсов шкалы и регистра, в который переписывается кодовая комбинация со счетчика в момент появления датируемого события. Если сигнал события приходит в момент смены кодовой комбинации в счетчике, возможна запись в регистр ложной комбинации, не совпадающей ни с предыдущей, ни с последующей комбинацией счетчика.
    Другой пример – цифровые весы с кодированным диском, установленным на месте поворачивающейся стрелки аналоговых весов. Если диск кодирован натуральным двоичным кодом (по аналогии с рейкой, изображенной на рис. 1.21, а раздела 1.5.5), то возможно попадание воспринимающих элементов на линию смены сразу нескольких разрядов кода (далее будем называть ее
    опасной границей). Это, с учетом конечных размеров воспринимающих элементов и допусков на их установку, опять-таки может привести к считыванию ложной комбинации. Если одновременно изменяются все разряды кода, то, вообще говоря, может быть получена любая ложная комбинация, включая «все нули» и «все единицы».
    Описанное явление принято называть неоднозначностью считывания кода.
    Во временной области проблема неоднозначности довольно легко решается с помощью приема, называемого тактированием: импульс датируемого события замещается ближайшим следующим за ним импульсом тактовой последовательности, смещенной по отношению к последовательности импульсов временной шкалы.
    В цифровых весах тоже применялись устройства механического смещения кодированного диска, исключавшие возможность попадания воспринимающих элементов на опасные границы. Однако механические устройства громоздки и медленны; более удобным способом исключения неоднозначности является расщепление воспринимающих элементов всех разрядов, кроме младшего (рис. 2.7).
    α
    1
    α
    2
    α
    3
    α
    4
    Ряд B Ряд A
    α = 0
    α = 1
    Рис. 2.7.

    48
    На рис. 2.7 повторено изображение кодированной рейки по рис. 1.21, а, но с расщепленными воспринимающими элементами (щетками) трех старших разрядов, сдвинутыми от линии считывания вправо (вперед) и влево (назад) на
    половину протяженности участка младшего разряда. Щетка младшего разряда на рисунке находится на опасной границе кодовых комбинаций. Однако, в зависимости от ее случайного смещения относительно номинального положения, с нее может быть считан как «0», так и «1». Сигнал α
    1
    = 0 указывает на то, что младшая щетка сошла с опасной границы в сторону возрастания кодового отсчета. Значит, для надежного получения остальных разрядов нужно их считывать со щеток опережающего ряда A. Напротив, при α
    1
    = 1 нужно считывать остальные разряды со щеток отстающего ряда B. Это легко выразить формулой, годящейся для всех i > 1:
    Расположение воспринимающих элементов по рисунку 2.7 называют
    U-расположением по виду узора, образуемого щетками. Применяют также
    V-расположение, при котором смещение щеток каждого (i + 1)-го разряда относительно линии считывания удваивается по сравнению со смещением щеток i-го разряда. При этом формула становится незначительно сложнее:
    Коды, получающиеся непосредственно с воспринимающих элементов при их U- или V-расположении, называют двоично-сдвинутыми кодами.
    Расщепление воспринимающих элементов устраняет проблему неоднозначности считывания кода и широко применяется на практике, хотя и усложняет конструкцию преобразователей. Более экономичным решением
    оказывается применение однопеременных кодов: у этих кодов нет опасных
    границ между кодовыми комбинациями.
    Заметим, что однопеременные коды полезны также в случаях, когда последовательно меняющиеся кодовые комбинации требуется непрерывно
    дешифрировать, т.е. преобразовывать в код «один из n» (см. табл. 2.1).
    Неоднопеременные коды в этой ситуации могут давать на выходе дешифратора короткие паразитные выбросы из-за неодновременного изменения отдельных битов дешифрируемой комбинации. Применение однопеременных кодов гарантирует отсутствие выбросов.
    Двоичный однопеременный код строится обычно с использованием
    принципа отражения. Этот общий (выходящий за рамки теории кодов) инженерный принцип можно сформулировать так: если после «рабочего»
    изменения какого-либо сигнала происходит скачкообразное возвращение в
    исходное состояние, и этот скачок почему-либо вреден, его можно заменить
    «рабочим» же изменением сигнала в противоположном (отраженном)
    направлении. В данном случае одна или несколько накапливающихся единиц кода скачкообразно переходят в нули; значит, «вертикальную»
    (рассматриваемую в пределах одного или нескольких смежных столбцов) последовательность изменения той части разрядов, скачкообразное изменение которой должно быть устранено, следует отразить относительно места, где мог бы произойти скачок. Такой код называется отраженным или рефлексным.
    Ниже в табл. 2.3 приведены некоторые коды для первых 20 целых неотрицательных чисел N. В колонке натурального двоичного кода
    (неоднопеременного) жирным шрифтом выделены группы битов, изменяющихся одновременно при переходе от одной комбинации к соседней.
    1 1
    iB
    iA
    i
    α
    α
    α
    α
    α

    =
    1 1
    iB
    i
    iA
    i
    i
    α
    α
    α
    α
    α



    =

    49
    Для построения отраженного однопеременного кода на каждом таком переходе должно происходить отражение «вертикального цикла» изменения групп битов.
    Таблица 2.3
    Двоичные коды Двоично-десятичные однопеременные коды
    Младшие тетрады
    N
    Нату- ральный
    Грея
    Старшая тетрада
    B
    1
    B
    2
    B
    3
    При- меч.
    0 00000 00000 0000 0000 0000 0000 1 00001 00001 0000 0001 0001 0001 2 00010 00011 0000 0011 0011 0011 3 00011 00010 0000 0010 0010 1011 4 00100 00110 0000 0110 0110 1111 5 00101 00111 0000 1110 1110 0111 6 00110 00101 0000 1010 1111 0110 7 00111 00100 0000 1011 1101 0100 8 01000 01100 0000 1001 1100 1100 9 01001 01101 0000 1000 1000 1000
    То же далее во все х
    «че тн ы
    х» циклах
    10 01010 01111 0001 1000 1000 1000 11 01011 01110 0001 1001 1100 1001 12 01100 01010 0001 1011 1101 1011 13 01101 01011 0001 1010 1111 0011 14 01110 01001 0001 1110 1110 0111 15 01111
    01000 0001 0110 0110 1111 16 10000
    11000 0001 0010 0010 1110 17 10001 11001 0001 0011 0011 1100 18 10010 11011 0001 0001 0001 0100 19 10011 11010 0001 0000 0000 0000
    То же далее во все х
    «не че тных
    » циклах
    Чтобы не иметь дело с большим числом отражений малых групп битов, удобнее рассматривать отражения постепенно укрупняющихся групп: при переходе от N = 1 к N = 2 отражается цикл изменения одного младшего бита (рис. 2.8, а); при переходе от N = 3 к N = 4 – цикл изменения двух младших битов (рис. 2.8, б); при переходе от N = 7 к N = 8 – цикл изменения трех младших битов
    (рис. 2.8, в), причем из рисунка 2.8 видно, что последний содержит один «прямой» и один
    «отраженный» цикл изменения двух младших битов и вдвое большее число чередующихся циклов изменения одного младшего бита.
    Аналогично, при переходе от N = 15 к N = 16 отражается цикл изменения четырех младших битов, и т.д. Построенный таким образом код
    0 1
    00 01 11 10 000 001 011 010 110 111 101 100 а) б) в)
    Рис. 2.8.

    50
    называют кодом Грея; в соответствующей колонке табл. 2.3 подчеркиваниями отмечены только что рассмотренные «линии отражения».
    Рисунок рейки, кодированной этим кодом, был приведен выше на рис. 1.21, б раздела 1.5.5: на нем с первого взгляда видно отсутствие опасных границ. Отметим также, что два сигнала, получаемых от периодической шкалы по рис. 1.22, образуют двухразрядный код Грея.
    После считывания комбинации кода Грея с какого-либо устройства ее часто преобразуют в более удобный код, обычно – натуральный двоичный
    (попытки выполнять вычисления в коде Грея делались, но были оставлены).
    Алгоритм такого преобразования основывается на том, что признаком принадлежности какого-либо бита комбинации «прямому» или «отраженному» циклу изменения этого разряда кода является число единиц в более старших
    разрядах. Если оно четное (в частности, нулевое), то цикл «прямой»; если нечетное – «отраженный». Отсюда следует очень простой алгоритм: нужно перебирать все разряды комбинации кода Грея, начиная со старшего разряда, и по ходу перебора суммировать их значения по модулю 2, выписывая каждый получающийся результат. Например. комбинация кода Грея 01110001 переходит в комбинацию натурального двоичного кода 01011110: старший разряд (в данном примере 0) всегда сохраняется; затем последовательное суммирование трех единиц по модулю 2 дает 101; последняя полученная к этому моменту единица не меняется при суммировании трех последующих нулей, но дает 0 при суммировании единицы младшего разряда.
    Код Грея является невзвешенным, но его разрядам можно приписать
    знакопеременные веса ±(
    1   2   3   4   5   6   7   8   9   10   ...   22


    написать администратору сайта