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

  • 6.6. МОДЕРНИЗАЦИЯ УСТРОЙСТВ

  • ПРИЛОЖЕНИЕ 1 Глоссарий

  • Графический интерфейс пользователя (GUI, Graphic User Interface)

  • Десятичное число

  • ЖКИ (LCD, Liquid Crystal Display)

  • Интерпретатор

  • Катод

  • Кварцевый резонатор

  • КМОП логика (CMOS)

  • Компаратор

  • Конкатенация

  • Кулон

  • Устройства управления роботами, схемотехника и программирование (М. Предко, 2004). Устройства управления роботами, схемотехника и программирование. Устройствауправления роботамисхемотехника и микроконтроллеров picmicro


    Скачать 6.79 Mb.
    НазваниеУстройствауправления роботамисхемотехника и микроконтроллеров picmicro
    АнкорУстройства управления роботами, схемотехника и программирование (М. Предко, 2004).pdf
    Дата29.08.2017
    Размер6.79 Mb.
    Формат файлаpdf
    Имя файлаУстройства управления роботами, схемотехника и программирование .pdf
    ТипРеферат
    #8441
    КатегорияПромышленность. Энергетика
    страница30 из 33
    1   ...   25   26   27   28   29   30   31   32   33
    6.4. ИСПЫТАНИЯ РОБОТА
    Разработчику следует определить список испытаний, которые должен пройти робот, прежде чем можно будет сказать, что работа закончена и готова к тому,
    чтобы вынести ее на суд зрителей. Типичный список испытаний выглядит следу- ющим образом:
    • проверка стабильности работы во всех режимах (в том числе при пуске-оста- нове двигателей) при крайних значениях напряжения питания (4,75 и 5,25 В);
    • проверка начальной инициализации при включении питания и готовности выполнения команд пользователя;
    • проверка правильности выполнения команд пользователя;
    • проверка правильности работы датчиков.

    362 Устройства управления роботами
    Кроме того, возможно, придется позаботиться о разработке необходимой доку- ментации, расчете надежности работы всех узлов и даже о тестировании разрабо- танной конструкции на соответствие санитарным и прочим требованиям и нормам.
    Хотя большинство микроконтроллеров сохраняет свою работоспособность при изменении напряжения питания в более широких пределах, чем указано выше, не стоит забывать и о других электронных компонентах, многие из которых выдер- живают только небольшие колебания напряжения питания (±5%).
    Помните о соблюдении мер безопасности. Разумеется, маленький робот не сможет причинить вреда окружающим, но он может разбиться сам, упав со стола,
    если вы вдруг потеряете над ним контроль.
    По этой причине я советую всегда предусматривать какой-либо метод бло- кировки колес, который предохранит робота от поломки, если вы вдруг забуде- те выключить напряжение питания, так как даже полностью отлаженное устрой- ство может неожиданно убежать от вас, случайно получив сигнал от светового датчика.
    Во многих случаях при тестировании схемы недостаточно одного логического пробника. Идеальный вариант - использование осциллографа и логического ана- лизатора, позволяющее проверить правильность всех выходных сигналов при всех возможных значениях входных.
    По роду занятий я почти всю жизнь проверял правильность работы тех или иных устройств, поэтому вопрос о тестировании мне наиболее близок. К сожале- нию, даже самое добросовестное тестирование не дает полной гарантии работо- способности устройства во всех обстоятельствах: всегда существует огромное ко- личество вариантов возможных неисправностей.
    При тестировании в первую очередь надо убедиться, что на предусмотренные значения входных сигналов ваше устройство реагирует правильно. Следует кон- тролировать значение этих входных сигналов, так как всегда может оказаться, что странности в поведении робота обусловлены не ошибкой в программе, а случай- ным отблеском, попавшим на световой датчик.
    Если значения входных сигналов или служебных переменных управляющей программы вышли за допустимые пределы, то робот должен остановиться и ка- ким-либо образом сигнализировать о возникшей проблеме. В наших проектах мы не использовали сторожевой таймер, но в реальных конструкциях он бывает весь- ма полезным, позволяя сформировать сигнал сброса микроконтроллера, если управляющая программа зависла и команда сброса сторожевого таймера не вы- полнилась вовремя.
    Ваш проект должен быть подробно документирован. В противном случае вряд ли кто-нибудь захочет его реализовать. Разумеется, вся документация должна быть доступна в электронном виде. Самым простым и переносимым для элект- ронных документов является обычный текстовый формат ASCII. Но если необ- ходимо включение в текст рисунков, графиков, схем и/или формул, то лучшим решением будут доступные на всех компьютерных платформах гипертекстовый формат HTML и формат PDF фирмы Adobe.

    Проектирование автоматических устройств 363
    6.5. ПОИСК ОШИБОК
    Вместо термина отладка (debug), который традиционно ассоциируется с несколь- ко небрежным и не слишком вдумчивым процессом устранения ошибок в программах, я предпочитаю использовать более солидное выражение анализ оши-
    бок (failure analysis). Интересно, как простая замена технического термина сразу смещает акценты: не поиск «жучков», а структурированный анализ проблемы, по- зволяющий локализовать и устранить источник неправильной работы устройства!
    Вместо того чтобы вслепую заменять все элементы подряд, надеясь, что очередной замены устройство вдруг начнет работать правильно, примите к сведе- нию следующий алгоритм:
    • четко сформулируйте, в чем заключается проблема;
    • рассмотрите возможные варианты причин неправильной работы;
    • разработайте план истинной причины и ее устранения.
    Разработчик должен уметь провести подобный анализ в разнообразных ситу- ациях, в том числе и в самых крайних случаях, когда кажется, что устройство со- всем не работает или работает «практически правильно».
    Когда еще нет никаких идей по поводу того, что именно вызывает проблему,
    следует проверить логические уровни на всех элементах схемы. На данном этапе я обычно использую простой логический пробник. Если такое исследование не прояснило ситуацию, то, возможно, придется взять в руки авометр и проверить уровни напряжений на аналоговых и цифровых входах и выходах. Следует запи- сывать все результаты измерений.
    Проверяя работу встроенного тактового генератора, надо помнить, что допол- нительная емкость, вносимая логическим пробником, может нарушить процесс генерации и вызовет зависание программы. Чтобы убедиться в том, что програм- ма все еще выполняется, следует инициализировать выполнение какой-нибудь простой процедуры с четко видимым внешним эффектом (например, миганием светодиода).
    От вас требуется предельное внимание. Мне стыдно признаться, сколько раз я готов был воскликнуть «Эврика!» и тут же обнаруживал, что проверяю не ту ножку микросхемы. После того как все замеры сделаны, отложите устройство в сторону и проанализируйте, значения каких сигналов оказались вне ожидаемо- го диапазона.
    Любое несоответствие объясняется одой из двух причин: либо внешнее устрой- ство подает на данный вывод неправильный сигнал, либо управляющая програм- ма формирует на нем неправильное значение. Чтобы выяснить, с каким именно вариантом вы имеете дело, можно использовать омметр, проверяя с его помощью сопротивление между данным выводом и массой до и после его отключения от остальной схемы. К сожалению, для отключения вывода может потребоваться паяльник.
    Следует соблюдать максимальную объективность, стараясь не делать слишком поспешных предположений относительно того, что привело к возникновению

    364 Устройства управления роботами ошибки. Неверно определив причину, люди начинают искать только подтвержде- ния своей догадки, пропуская все остальные возможные варианты.
    После проверки схемы можно приступать к тестированию программного обес- печения. Прежде всего я рекомендую вынуть микроконтроллер из схемы и прове- рить прошивку РПЗУ с помощью программатора. Обратите внимание на правиль- ность слова конфигурации, проверив, корректно ли установлен тип тактового генератора, не разрешена ли случайно работа сторожевого таймера и т.п.
    Если все в порядке, переходите к самой программе. При этом не следует забы- вать о необходимости подробно записывать все действия - как ни удивительно,
    это сэкономит много времени.
    Например, если проблемы возникли с последовательным интерфейсом пере- дачи данных, выясните, связана ли проблема с временными задержками, значе- ниями отдельных битов или их количеством. После того как ситуация стала более определенной, можно выполнить моделирование работы программы с помощью симулятора, чтобы в еще большей степени локализовать источник неправильного поведения робота.
    Теперь требуется выяснить, что стало причиной ошибки. Для этого может по- требоваться мысленный эксперимент, в ходе которого вы должны представить себе во всех подробностях, как и что происходит в управляющей программе и са- мой схеме в тот или иной момент.
    Следует понимать, что причин неисправности может быть сразу несколько.
    Работая над своими конструкциями, я не раз сталкивался со случаями, когда на- считывалось до пяти различных источников проблем, которые мешали правиль- ной работе устройства.
    Поэтому не следует быть слишком ленивым. Поверьте, во многих случаях вы только сэкономите время, если сделаете шаг немного в сторону и начнете с отлад- ки более простого приложения, где должна будет проявиться одна из имеющихся проблем. Тогда можно будет без помех изучить ситуацию и опробовать различ- ные варианты решения, после чего опять вернуться к сложному проекту.
    6.6. МОДЕРНИЗАЦИЯ УСТРОЙСТВ
    После того как ваша схема, наконец, заработает, вы захотите добавить к ней но- вые периферийные устройства и разнообразные функции. При этом у вас, скорее всего, не возникнет особых проблем с электроникой или механическими частями.
    Самым сложным, как правило, оказывается перераспределение аппаратных ресур- сов, встроенных в микроконтроллер. Речь идет о памяти программ и данных, тай- мерах, обработчиках прерываний, блоках формирования
    Другая проблема возникает, когда вы хотите заимствовать для своего проек- та программный код из какого-либо источника (например, Internet). В таком случае оказывается, что различные участки кода написаны с использованием

    Проектирование автоматических устройств 365
    разных стилей и методик, поэтому может потребоваться кардинально перерабо- тать программу, чтобы заставить все это работать вместе. '
    Если приложение спроектировано правильно, то внесение необходимых изме- нений - не слишком сложная задача, но в противном случае проще написать все заново, чем пытаться как-то исправить отдельные фрагменты.
    Уже в самом начале работы над проектом желательно закладывать в него воз- можность модификации. Своего рода образцом правильной разработки приложе- ний могут служить примеры, приведенные в главе 4, где для реализации механи- ческих и электронных интерфейсов мы использовали прерывания от таймера,
    срабатывающего каждую миллисекунду.
    При проектировании биологического кода надо помнить, что для его правиль- ной работы в промежутке между запросами на прерывание следует оставлять по крайней мере 25% всех командных циклов, таким образом, отводя для выполне- ния обработчика прерываний не более 75% времени. Сложные вычисления нельзя реализовывать в процедуре обработки прерываний - их надо выносить в основ- ную программу.
    В идеале различные интерфейсные функции должны использовать разные аппаратные средства. Мы нарушили это правило лишь однажды, когда рассмат- ривали приемник команд дистанционного управления, который использовал тот же инфракрасный детектор, что и обнаружитель объектов.
    Применяя чужие разработки, не следует пытаться использовать в своем про- екте программный код, для которого не имеется исходного текста. Дело в том, что в новом окружении даже самая правильная программа может потребовать некото- рых переделок, а это невозможно, если имеется только объектный код.
    Все описанные в данной книге устройства мы реализовали с использованием только одного микроконтроллера, но при модернизации уже имеющихся схем наилучшее решение иногда заключается в добавлении еще одного контроллера.
    Поэтому никогда не помешает оставить свободными какие-нибудь два вывода,
    которые затем пригодятся для обеспечения их взаимосвязи. Две линии нужны для реализации синхронного обмена, так как в этом случае не требуется загружать таймеры обоих микроконтроллеров.
    Даже если в схеме использовано несколько микроконтроллеров, желательно,
    чтобы только один из них выполнял биологический код. В противном случае про- граммное обеспечение заметно усложняется, поскольку требуется обеспечить вза- имодействие отдельных частей биологического кода, выполняемого на разных процессорах. Кроме того, отладить такое распределенное приложение будет не очень-то просто.
    И последнее замечание: не забывайте, что следует отключать двигатели на то время, пока микроконтроллер работает с периферийными устройствами. В тече- ние опроса инфракрасных, световых и звуковых датчиков надо стремиться к тому,
    чтобы уровень помех был минимальным.

    ПРИЛОЖЕНИЕ 1
    Глоссарий
    Здесь приведен список всех использованных в книге терминов и расшифровка аббревиатур.
    Адрес — порядковый номер регистра, ячейки памяти команд или данных в пределах пространства памяти процессора.
    Адресное пространство - диапазон возможных адресов ячеек памяти или пор- тов ввода-вывода, с которыми может работать процессор.
    Активные элементы - интегральные микросхемы, транзисторы и другие эле- менты электронных схем, для функционирования которых требуется внешний источник энергии.
    Ампер - величина силы тока: 1 А = 1 Кл / 1 с. См. Кулон.
    Аналоговый сигнал - сигнал, который может принимать любые значения в некотором диапазоне.
    Анод - положительный электрод. См. Катод.
    Асинхронная последовательная передача - метод обмена данными, в кото- ром передача сообщений происходит побитно (по одной линии) и не использует- ся дополнительная линия для передачи импульсов синхронизации.
    Ассемблер - инструментальное программное средство, с помощью которого исходный текст программы, написанной на языке низкого уровня, преобразуется в объектный файл.
    АЦП, аналого-цифровой преобразователь (ADC,
    Con- verter) - микросхема, предназначенная для преобразования входного аналогово- го напряжения в цифровое представление. См. ЦАП.
    Биполярные логические схемы - логические схемы, выполненные на базе биполярных транзисторов (единичные устройства или интегрированные сборки).
    См. n-p-п транзистор, p-n-р транзистор.
    Битовая маска - набор битов, используемый для установки/сброса отдельных разрядов некоторого двоичного числа.
    Внутрисхемное программирование
    Programming) - загрузка программы в микроконтроллер без его извлечения из целевой схемы.
    Восьмеричное число - число, представленное в позиционной системе счисле- ния по основанию 8.
    Гарвардская архитектура - архитектура процессора, имеющего раздельные шины для подключения памяти команд и памяти данных.
    Герц - единица измерения частоты: 1 Гц = 1

    Приложение 1 367
    Гистерезис - зависимость передаточной характеристики от направления менения входного сигнала. Обычно используется для фильтрации шумов в циф- ровых схемах.
    Графический интерфейс пользователя (GUI, Graphic User Interface) - про- стой, ориентированный на непрофессионального пользователя интерфейс ввода- вывода информации, который задействует экран, клавиатуру и мышь.
    Двоичные числа - числа, представленные в позиционной системе счисления по основанию 2. Например, десятичное число 37 = 32 + 4 + 1 = + + 2° = 10101.
    - логическая микросхема, используемая для передачи вход- ного сигнала на одну из нескольких выходных линий. См. Мультиплексор.
    Десятичное число - число, представленное в позиционной системе счисления по основанию 10.
    Дребезг механических контактов - эффект, заключающийся в появлении многочисленных ложных всплесков сигнала при коммутации механических пере- ключателей.
    ЖКИ (LCD, Liquid Crystal Display) - жидкокристаллический индикатор,
    используемый для отображения информации (обычно символьной).
    Защита от дребезга - устранение ложных всплесков возникающих при коммутации механических переключателей.
    Интерпретатор - программа, предназначенная для непосредственного вы- полнения исходного текста приложения (без его предварительной компиля- ции).
    Инфракрасный свет
    infrared) - свет, имеющий длину волны 760 нм и бо- лее, невидимый для человеческого глаза.
    Катод — отрицательный электрод. См. Анод.
    Катушка индуктивности - проволочная обмотка, предназначенная для хране- ния энергии магнитного поля. Часто используется для генерации или фильтра- ции электрических сигналов.
    Кварцевый резонатор - устройство, используемое для генерации тактовых импульсов с точно заданной частотой.
    Керамический резонатор - устройство, используемое для генерации тактовых импульсов определенной частоты (обычно с меньшей точностью, чем у кварцево- го резонатора).
    КМОП логика (CMOS) - тип логических микросхем, основанных на исполь- зовании п- и униполярных транзисторов.
    Командный цикл - период времени (всегда кратный длительности тактового цикла), в течение которого выполняется одна машинная команда процессора.
    Компаратор - электронное устройство с двумя входами, которое использует- ся для сравнения напряжений.
    Компилятор - инструментальное программное средство, предназначенное для преобразования исходного текста программы в объектный код.
    Компоновщик (linker) - инструментальное программное средство, предназна- ченное для объединения нескольких объектных модулей и/или библиотек и фор- мирования исполняемого файла.

    368 Устройства управления роботами
    Конденсатор - устройство для сохранения электрического заряда. Часто исполь- зуется в электронных схемах для фильтрации сигналов. Существуют керамические,
    электролитические и др. конденсаторы;
    и электролитические являются поляризованными, то есть при их подключении необходимо соблюдать полярность. Короткий вывод поляризованного конденсатора — это катод (отрица- тельный электрод).
    Конечный автомат — аппаратное устройство или логическая модель системы с конечным набором возможных состояний. Переходы между состояниями осу- ществляются при выполнении заданных условий и отображаются с помощью гра- фа переходов (состояний).
    Конкатенация - объединение двух битовых или строковых последовательно- стей.
    Константа - числовое значение, которое не может быть изменено в программе.
    Кросс-ассемблер - инструментальное программное средство, позволяющее производить ассемблирование исходного текста программы, написанной для дру- гой аппаратной платформы. См. Ассемблер.
    Кросс-компилятор - инструментальное программное средство, позволяющее производить компиляцию исходного текста программы, написанной для другой аппаратной платформы. См. Компилятор.
    Кулон - единица электрического заряда:
    =
    См. Ампер.
    Логический анализатор - инструмент для проверки работы логических схем.
    Логический вентиль (логический элемент) - электронная схема, используе- мая для выполнения логических операций.
    1   ...   25   26   27   28   29   30   31   32   33


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