Цифровые измерительные устройства. Цифровые Измерительные Устройства. Цифровые измерительные устройства теоретические основы цифровой измерительной техники
Скачать 1.94 Mb.
|
Ω как единица сопротивления, µ как десятичная приставка «микро». Разработан список обозначений единиц и десятичных приставок с использованием только прописных латинских букв; в частности, вместо Ω пишется OHM, вместо µ – U (если от µ оторвать начальный «хвостик», получается нечто похожее на латинское u, чем в английских текстах широко пользуются, заменяя µ на u). Наряду с этим, предложен способ обозначения единиц с помощью формул размерности, вообще исключающий применение буквенных символов или каких-либо иных комбинаций кода ASCII. 2.2.6. Согласование кодов при сопряжении средств цифровой измерительной техники с вычислительными средствами АЦП и ЦАП, как правило, обмениваются данными с микроконтроллерами; цифровые приборы могут включаться в измерительные системы и обмениваться данными с компьютером; все это требует согласования форматов данных и способов их кодирования. Для цифровых приборов до сих пор считалось предпочтительным выражение данных в виде символьных строк кода ASCII, который был рассмотрен выше в разделе 2.2.5, при этом удобно использовать десятичную систему счисления. Стандартные преобразования символьных строк выполняет компьютер. Поэтому ниже речь пойдет в основном о согласовании АЦП и ЦАП с микроконтроллерами. В ходе развития вычислительной техники были испробованы различные способы кодирования чисел. Вначале использовались двоично-десятичные коды; позже были попытки построения вычислительных устройств в коде Грея. Большое внимание привлекала так называемая система остаточных классов или «код вычетов». В этой системе некоторое число N выражается в виде совокупности остатков от деления его на заранее заданные попарно взаимно простые модули. Например, если подать пачку импульсов на параллельно включенные входы счетчиков на 3, 7 и 11, то при числе N импульсов в пачке, меньшем, чем 3*7*11 = 231, состояния счетчиков позволят однозначно восстановить число N. Достоинствами «кода вычетов» являются высокая скорость выполнения операций сложения и возможность введения избыточных модулей, обеспечивающих работоспособность устройства при частичных отказах. Однако в микроконтроллерах и компьютерах массового применения для изображения целых чисел используется почти исключительно либо беззнаковый двоичный код, либо, если числа могут менять знак, дополнительный двоичный код. При изображении дробных чисел с фиксированной двоичной точкой 60 положение последней предполагается между знаковым разрядом и следующим за ним старшим разрядом дробной части. В простейшем случае совпадения разрядности АЦП или ЦАП с разрядностью микроконтроллера и использования параллельного интерфейса единственное, что может потребоваться – это инверсия знакового разряда для перехода от смещенного кода АЦП к дополнительному коду микроконтроллера (или, наоборот, от дополнительного кода микроконтроллера к смещенному коду ЦАП). При использовании последовательного интерфейса следует обращать внимание на порядок следования битов. Почти все микросхемы АЦП (а также и ЦАП) при обмене данными по последовательному каналу посылают (или соответственно принимают) первым старший бит; а во многих микроконтроллерах, в частности, типа 8051, принят обратный порядок – обмен младшим битом вперед. При их сопряжении приходится в микроконтроллере программно изменять порядок расположения битов в слове, посылаемом в регистр передатчика или получаемом из приемника последовательного канала. Некоторые АЦП, ЦАП и контроллеры допускают изменение порядка следования передаваемых битов; этой возможностью нужно уметь пользоваться. Довольно типичной является ситуация различия разрядностей АЦП и микроконтроллера. На рис. 2.13 показаны два варианта расположения данных 12-разрядного АЦП (D00 – младший, D11 – старший бит) в двух словах 8-разрядного или в одном слове 16-разрядного контроллера. Расположение по рис. 2.13, а называется выравниванием влево; остающиеся младшие разряды при этом обычно заполняются нулями. Чаще используется выравнивание вправо, показанное (для знакопеременных данных, выраженных в дополнительном коде) на рис. 2.13, б. Для того, чтобы контроллер правильно воспринял знакопеременные данные, значения битов старших разрядов должны совпадать со значением бита знакового разряда АЦП (на рис. 2.13 это D11). Операция присвоения старшим битам слова в контроллере значения бита знакового разряда АЦП может быть выполнена как аппаратно, так и программно; ее называют распространением (или расширением) знака. а) D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00 0 0 0 0 D11 D11 D11 D11 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00 б) Рис. 2.13. 61 2.2.7. О выборе кодов для передачи данных При передаче данных от АЦП или к ЦАП, даже в пределах одной платы, прежде всего учитываются соображения экономии проводов, которые заставляют преимущественно (если не требуется очень высокого быстродействия) использовать последовательные коды. При передаче на значительные расстояния, начиная от единиц и десятков метров и кончая километрами, выбор последовательных кодов становится однозначным. При таких расстояниях приходится уделять много внимания выбору информативного параметра сигнала (ток, напряжение, частота и т.д.) и диапазона его изменения, т.е. физическим характеристикам кода. Не вдаваясь в подробности, отметим только, что даже при передаче двоичных символов «0» и «1» определенными уровнями напряжения, эти уровни часто целесообразно выбирать (и это закреплено стандартами) отличающимися от обычных для логических элементов. Выше в разделе 2.2.2 было сказано. что изображение двоичных символов «0» и «1» заданными уровнями напряжения обычно не называют кодом; однако при сравнении различных способов изображения двоичных символов приходится и этот простейший способ именовать кодом. В частности, если, как в схемотехнике ТТЛ или КМОП, двоичный сигнал не меняет полярности, а только переключается между сравнительно низким (близким к нулю) и сравнительно высоким уровнями, то это называют униполярным кодом без возвращения к нулю. Если «0» изображается напряжением одной полярности (например, положительным), а «1» – напряжением другой полярности, как в стандарте RS 232, то это называют полярным кодом без возвращения к нулю. Чтобы перейти от него к коду с возвращением к нулю (RZ), нужно вставить между символами отрезки сигнала с напряжением, равным нулю. В коде без возвращения к нулю с инверсией (NRZI) «0» изображается изменением уровня (инверсией) по отношению к предыдущему символу. а «1» – тем же уровнем, что и предыдущий символ. При наличии разделительных трансформаторов в цепях передачи данных система кодирования должна быть такой, чтобы сигнал не содержал постоянной составляющей. Этому требованию удовлетворяет, например, код Манчестер-2, или биполярный фазоманипулированный код без возвращения к нулю (рис. 2.14). t t 0 t 0 3t 0 3t 0 «0» «1» Синхросигналы Рис. 2.14. 62 В этом коде логический «0» изображается перепадом сигнала внутри битового интервала t 0 в положительном направлении, логическая «1» – перепадом в отрицательном направлении, а кроме того, используются два различных синхросигнала, каждый из которых занимает три битовых интервала. Код Манчестер-2 (как и некоторые другие коды, используемые для последовательной передачи информации) является самосинхронизирующимся; это значит, что он не требует отдельной линии для передачи вспомогательной последовательности тактовых импульсов (необходимая информация содержится в самих данных). Фазоразностное кодирование отличается тем, что «1» в каком-либо битовом интервале изображается перепадом того же направления, что в предыдущем интервале, а «0» – перепадом противоположного направления. Примером стандарта передачи измерительных данных с использованием частотной манипуляции для изображения двоичных символов может служить протокол HART (Highway Addressable Remote Transducer), в соответствии с которым «0» изображается сигналом с частотой 2200 Гц, а «1» – сигналом с частотой 1200 Гц. Естественно, сами по себе АЦП и ЦАП в этом и во всех других случаях выдают или принимают сигналы стандартных логических уровней; более сложные способы кодирования реализуются в специальных согласующих устройствах. Что касается логической структуры кодов, используемых для передачи измерительных данных, то здесь приходится учитывать, помимо других факторов, необходимость различения информации различного рода (команд, адресов устройств, собственно данных), а также возможность искажений при передаче, что требует введения дополнительных проверочных символов. Различать команды, адреса и данные проще всего при использовании кода ASСII, в котором служебные символы, цифры и буквы изображаются различными комбинациями. Если же требуется передавать команды, адреса и двоичные данные с произвольными значениями байтов по одной и той же, например, последовательной магистрали, то возможность выделения особого формата для команд и адресов, как правило, пропадает, так как байт данных может совпасть с любым байтом команды или адреса. В этой ситуации иногда искусственно разбивают байты данных на полубайты и передают их как шестнадцатеричные цифры в коде ASCII (с включением символов от «:» до «?», как было сказано в разделе2.2.5). Чащевстречается различение не по формату, а по порядку следования байтов, для чего этот порядок жестко устанавливают (вплоть до международной стандартизации). При небольших расстояниях признак команды может передаваться по отдельной линии; иногда в качестве такого признака используют – не по прямому назначению! – бит проверки на четность (паритета). Своеобразный способ различения команд и данных реализуется в коде Манчестер-2 благодаря наличию двух разных синхросигналов (см. рис. 2.14). Один из них (левый на рисунке) используется как синхросигнал команд и другой служебной информации, другой (правый) – как синхросигнал данных. Проблема защиты от искажений далеко выходит за рамки курса «Цифровые измерительные устройства»; в этой области разработана серьезная математическая теория. Отметим только, что в простейших случаях используют защиту по четности, а при большей вероятности искажений или более строгим требованиям к верности передачи число проверочных символов, дополняющих 63 блок данных и вычисляемых по определенным правилам, доводят до 8 или даже до 16. Если по принятым правилам построения сообщения на некоторых местах должны стоять определенные символы (как, например, «стоповый бит» при старт-стопной передаче), их искажение должно быть воспринято как ошибка. Особо следует выделить ситуации, когда можно ожидать искажений не в линии передачи, а в самом АЦ преобразователе, и есть возможность эти искажения обнаружить или даже исправить благодаря избыточности кодирования. Примеры этих, довольно разнообразных ситуаций по существу уже были даны в разделе 2.2.3. Код «два из пяти» был приведен в разделе 2.2.3 как образец кода постоянного веса. Одинаковое число единиц во всех комбинациях такого кода позволяет обнаружить любые ошибки (например, вызванные потерей контакта между щеткой и шкалой), за исключением маловероятных переходов одинакового количества нулей в единицы и единиц в нули. В коде Либау – Крейга нетрудно обнаружить ошибки, вызывающие «нарушение сплошности» последовательностей нулей и единиц в кодовой комбинации. В коде 7421 легко обнаруживаются ошибки, вызывающие появление трех и более единиц в кодовой комбинации. По такому числу единиц выявляются почти все запрещенные комбинации этого кода, за исключением одной только комбинации 1100. Отметим, однако, что для любого однозначного тетрадного кода несложно построить логическую цепь, выявляющую все шесть его запрещенных комбинаций, так что код 7421 в этом отношении отнюдь не уникален. Интересными диагностическими возможностями обладает код с избытком 3. В таблице этого кода отсутствуют (являются запрещенными) комбинации 0000 и 1111. Это как раз те комбинации, появление которых может быть связано с серьезной неисправностью АЦ преобразователя, например, отсутствием питания или обрывом соединительного кабеля. Другие тетрадные коды, у которых одна или обе эти комбинации разрешены (например, все взвешенные коды с суммой весов 9), имея то же число запрещенных комбинаций, не позволяют отличить аварийную ситуацию от нормальной. Особыми свойствами обладает код с весами, равными числам Фибоначчи: 1; 1; 2; 3; 5; 8; 13 и т.д. Предположим, что в таком коде построен ЦАП, а затем на основе последнего – АЦП последовательных приближений (по типу структуры, показанной на рис. 1.12 раздела 1.5.1), формирующий результат бит за битом в порядке уменьшения весов разрядов. Ошибочное несрабатывание компаратора на любом такте работы АЦП вызовет замену единицы в соответствующем разряде результата нулем. Но эта ошибка будет скомпенсирована на следующих тактах путем формирования двух единиц подряд. Следует подчеркнуть, что код Фибоначчи исправляет только односторонние ошибки (замену «1» на «0»), и только в случае. если они не идут подряд. Противоположные ошибки не исправляются. Поэтому возможности кода Фибоначчи не следует преувеличивать. Если качество измерения как процесса получения информации характеризуется погрешностью, то характеристикой качества процесса ее передачи является вероятность необнаруженных искажений определенных элементов сообщений в заданных условиях работы канала передачи. При 64 проектировании измерительных систем эту характеристику по возможности следует оценивать. Упражнения к разделу 2.2. У2.2.1. Если и параллельный АЦП, и преобразователь углового положения с кодированным диском реализуют алгоритм считывания, то как объяснить то обстоятельство, что параллельный АЦП требует 2 n компараторов (где, как обычно, n – число двоичных разрядов кода), а преобразователь с кодированным диском – только n воспринимающих элементов? У2.2.2. Ответьте на вопросы: - являются ли взвешенными (если да, укажите веса разрядов) следующие коды: единичный, «один из n», «k ↔ k + 1», «два из пяти», Либау – Крейга; код в виде «елочки» по рис. 2.10? - какие из перечисленных кодов являются однопеременными? - какие из кодов таблицы 2.1 непосредственно замыкаются в кольцо или могут быть дополнены (если могут – дополните их!) до замыкания в кольцо? У2.2.3. Напишите формулы, соответствующие правилам изображения чисел, не используемым в тексте данного пособия: - для нахождения целого числа N по значениям битов α i изображающей его двоичной n-разрядной кодовой комбинации, если принять для ее младшего разряда i = 0 (а для старшего соответственно i = n – 1); - для нахождения числа r, являющегося правильной дробью, по значениям битов α i изображающей его двоичной n-разрядной кодовой комбинации, если принять для ее старшего разряда i = 1 (соответственно получится m 1 = ½ ), а для младшего i = n. У2.2.4. В разделе 2.2.3. сказано, что «для описания двоично-десятичного кода обычно достаточно представить таблицу кодирования десятичных цифр от 0 до 9». Найдите и объясните приведенный в этом же разделе пример, показывающий, что не всегда этого достаточно. У2.2.5. Подкрепите расчетом утверждение о том, что недостатком кода 8421 применительно к ЦАП (и АЦП на их основе) является избыточная сумма весовых коэффициентов. Для этого рассмотрите две партии двоично- десятичных ЦАП с источниками тока, одна из которых выполнена в коде 8421, а другая в коде 2421. Пусть погрешности подгонки всех токов представляют собой независимые случайные величины. Тогда суммарная погрешность преобразования в некоторой точке диапазона, являющаяся систематической для каждого экземпляра ЦАП, будет случайной при рассмотрении каждой партии в целом. Проверьте, будет ли погрешность при максимальном выходном сигнале в первой партии больше, чем во второй (а если больше, то во сколько раз), если относительные среднеквадратичные значения подгонки всех токов равны между собой. У2.2.6. В столбце B 2 таблицы 2.2 приведен код 2421, удобный для использования в счетчиках импульсов. Структура дорожки младшего разряда 65 этого кода говорит о том, что работающий в нем счетчик может быть разбит на две секции: счетчик на 2 (триггер младшего разряда) и счетчик на 5 (три старших триггера). Ответьте на вопрос: какими станут веса разрядов, если эти секции поменять местами? У2.2.7. Составьте таблицу какого-либо из возможных самодополняющихся кодов с весами 5211. У2.2.8. Ответьте на вопрос: возможно ли (а если возможно, то как) построить ЦАП, работающий в невзвешенном коде Штибица? У2.2.9. Объясните формулу преобразования сигналов для V- расположения воспринимающих элементов в датчиках положения; составьте логическую схему преобразователя кодов. Заодно проверьте, не могут ли двоично-сдвинутые коды дать ошибочные результаты при расположении щетки младшего разряда не на опасной границе? У2.2.10. Постройте комбинационные логические цепи для преобразования кодов: - параллельного единичного, получаемого с семи компараторов АЦП считывания (см. раздел 1.5.3), в трехразрядный код Грея; - кода в виде «елочки» по рис. 2.10 в два сдвинутых меандра, по типу сигналов устройства, показанного на рис. 1.22. Примечания к У2.2.10: 1. Обе эти задачи взяты из практики: первая из них решалась при построении быстродействующего АЦП «сверточного» типа; вторая – при разработке одного из устройств интерполяции для датчика перемещений с синусно-косинусным преобразователем. 2. Формально каждая задача сводится к нахождению трех логических функций; в первой задаче семь, а во второй – восемь аргументов, что затрудняет применение простейших методов синтеза логических цепей. Практически удобно решать обе задачи с использованием диаграмм по типу рис. 2.9 и 2.10. 3. Прежде, чем решать вторую задачу, проверьте, может ли она вообще иметь решение: два сдвинутых меандра имеют в сумме четыре перепада, поэтому общее число перепадов сигналов исходного кода на его периоде должно делиться на 4; кроме того, эти перепады должны располагаться равномерно на оси абсцисс. У2.2.11. Изобразите число «минус единица» в восьмиразрядном дополнительном коде Грея. У2.2.12. При описании фазового представления кодов в разделе 2.2.3 были определены значения двоичной переменной α i при |