Устройства управления роботами, схемотехника и программирование (М. Предко, 2004). Устройства управления роботами, схемотехника и программирование. Устройствауправления роботамисхемотехника и микроконтроллеров picmicro
Скачать 6.79 Mb.
|
4.3. МАКЕТИРОВАНИЕ УСТРОЙСТВ НА ОСНОВЕ МИКРОКОНТРОЛЛЕРОВ PICMICRO Работая над книгой, я ни на секунду не пожалел о том, что выбрал для своих про- ектов микроконтроллер PIC16F627. Вы увидите, что с этим МК очень легко рабо- тать, а современные инструментальные средства MPLAB IDE и PICC Lite пре- вращают эту работу в истинное удовольствие, позволяя реализовывать достаточно сложные устройства, нисколько не уступающие по своим возможностям коммер- ческому программному обеспечению. Но сначала перечислим необходимый набор инструментов, который пригодит- ся для реализации любой из описанных в этой книге конструкций. Вам потребу- ется рабочий стол для размещения персонального компьютера (включая монитор, клавиатуру и мышь); программатор для загрузки программ в микроконтроллер; место для макетирования устройств (защищенное от воздействия электричества); цифровой измерительный прибор (мультиметр). По возможнос- ти следует располагать компьютер и программатор вблизи от того места, где вы будете выполнять макетирование своих устройств. Итак, чтобы повторить конструкции, приведенные в этой главе, вам потребу- ется: • персональный компьютер; • программатор для микроконтроллера PIC16F627; • цифровой мультиметр; • источник питания +5 В; • макетная плата; • набор монтажных проводов; 138 Устройства управления роботами • кусачки; • приспособление для зачистки проводов; • остроносые плоскогубцы; • небольшая отвертка с плоским наконечником; • два (или больше) микроконтроллера PIC16F627. Персональный компьютер должен иметь: • процессор не ниже Pentium II, 200 • 64 Мб оперативной памяти; видеоадаптер поддерживающий разрешение экрана не ниже 1024x768, объем видеопамяти по крайней мере 2 Мб; • мышь; • параллельный порт для подключения программатора; • последовательный порт (используется в некоторых конструкциях). На вашем жестком диске должны быть установлены: • операционная система Microsoft Windows • Web-браузер (MS Internet Explorer или Netscape Navigator); • Adobe Acrobat Reader (для чтения документации в формате PDF); • связь с Internet; • интегрированная среда разработки программ MPLAB; • компилятор Lite. При выборе программатора (если вы почему-либо не желаете использовать тот, что описан в предыдущей главе) имейте в виду, что большинство программато- ров, рассчитанных на работу с микроконтроллерами PIC16C84/PIC16F84/ PIC16F84A должны без всяких модификаций работать и с PIC16F627. Если желаете поэкспериментировать с другими микроконтроллерами PIC- рекомендую приобрести программатор PICSTART Plus фирмы Microchip. Он постоянно модифицируется, чтобы поддерживать все новые и новые типы микроконтроллеров На рис. показан внешний вид простой платы для макетирования электрон- ных схем. Отверстия печатной платы должны быть рассчитаны на установку кор- пусов микросхем DIP (dual inline package - корпус с двухрядным расположением выводов). Если вы имеете некоторый опыт работы с высокочастотными схемами, то знаете, что разъемы универсальных макетных плат имеют значительную пара- зитную емкость и не рассчитаны на работу с высокочастотными сигналами (больше 10 МГц). К счастью, все описанные здесь устройства работают на более низких частотах. Здесь автор явно завышает требования к аппаратному обеспечению. Все описанные в книге програм- мы работают даже на с памятью 16 Мб. - Прим. Подключение к микроконтроллеру периферийных устройств 139 Рис. Плата макетирования Однако я не советую использовать макетные платы в окончательных конструкци- ях. Они недолго выдержат вибрацию двигателей, используемых для перемещения робота; к тому же на них собирается очень много пыли, которая может нарушить работу устройства. Отвертка с плоским наконечником может использоваться для извлечения мик- росхем из специально предназначенных для них панелек. Но еще лучше приме- нять разъем ZIF (с «нулевым» усилием), который может оказаться весьма доро- гим, но позволяет производить демонтаж микросхем без особых хлопот и, что самое главное, без риска повредить их выводы. Отвертка также может пригодиться для подачи сигнала сброса на вход _MCLR микроконтроллера. С ее помощью можно быстро закоротить этот вывод на массу (вывод Vss), не применяя для этого никаких дополнительных проводов. Но, чтобы воспользоваться этим способом, вы должны предварительно соединить вывод _MCLR с положительной шиной питания (вывод через резистор сопротивле- нием около кОм (если, как обычно, соединить их непосредственно друг с другом, то при соединении вывода _MCLR с массой произойдет короткое замыкание). Иногда потребуется по крайней мере два одинаковых микроконтроллера PIC- 16F627, чтобы иметь возможность оценить влияние некоторых изменений в управ- ляющей программе на поведение робота. Разумеется, для этого хватило бы одного но в этом случае вы не смогли бы наблюдать особенности их работы одновре- менно. Кроме того, следует ожидать, что рано или поздно ваши эксперименты закончатся повреждением одного из микроконтроллеров - тогда наличие запас- ной микросхемы позволит не делать перерыва для похода в магазин. Все описанные в книге устройства могут быть проверены с помощью цифро- вого мультиметра. Разумеется, вы можете также использовать логический проб- ник, осциллограф, логический анализатор или даже внутрисхемный эмулятор. Это поможет вам лучше понять работу приведенных здесь электронных схем. 140 Устройства управления роботами Для большинства устройств требуется один источник напряжения питания +5 В. Потребляемый ток не превышает 100 Если бы не двигатели или ультразвуко- вой дальномер, то во всех конструкциях можно было бы использовать 9-вольто- элемент питания с интегральным стабилизатором 78L05 или четыре никель- кадмиевых батарейки, включенных последовательно. Не забывайте выключать источник питания во время подключения или от- ключения микросхем (в том числе и самого микроконтроллера). Разумеется, для этого достаточно вытащить одну из батареек, но лучше использовать спе- циальный выключатель, установленный в разрыве положительной шины пи- тания. Для выполнения соединений между элементами схемы следует использо- вать провод минимальной длины. Это облегчит поиск ошибок в схеме, а также уменьшит влияние электромагнитных наводок. На рис. 4.2 показана базовая схема, на основе которой будут выполнены все описанные в книге конструкции. В боль- шинстве случаев неважно, какой микро- контроллер используется: PIC16F84 или PIC16F627. Мы будем особо отмечать случаи, когда нам придется использовать функции, имеющиеся только у PIC- 16F627. Печатная плата и размещение компонентов на рис. 4.3. В схеме могут быть использованы бые конденсаторы емкостью 0,1 мкФ. Ре- комендую вам по возможности брать тан- таловые конденсаторы, рассчитанные на напряжение или Я предпочитаю располагать обе шины питания (Vcc и Gnd) у каждого края ма- кетной платы. Обратите внимание, что одноименные шины на разных концах платы соединены друг с другом. При подключении элементов следует стараться, чтобы провода питания были минимально возможной длины и чтобы разноимен- ные провода ни в коем случае не пересекались. На рис. 4.3 также показано место размещения микроконтроллера, обозначен- ное особым образом (при помощи отрезка монтажного провода). Этот способ сто- ит применять во всех случаях, когда не используются специальные панельки для микросхем. Рис. 4.2. Базовая схема подключения микроконтроллера ? Здесь и далее все рисунки с изображениями макетных как и в оригинале, на 10-15% мень- ше натуральной величины. Читатель без труда может вычислить реальные размеры, используя тот факт, что расстояние между соседними выводами микросхем должно составлять 2,5 мм. - Прим. Здесь и далее, если кварцевый резонатор не имеет встроенных конденсаторов, то следует исполь- зовать два внешних конденсатора емкостью по 15 пФ каждый, как показано на рис. 3.23. - Прим. перев. Подключение к микроконтроллеру периферийных устройств 141 Vcc Рис. 4.3. Рисунок печатной платы и размещение компонентов базовой схемы 4.4. КОММУНИКАЦИИ Можно перечислить несколько причин, по которым возникает необходимость в информацией между процессорами (одним из которых или сразу обо- ими может оказаться микроконтроллер). Самые распространенные из них: • отладка программ микроконтроллера; • мониторинг операций, выполняемых роботом; • реализация интерфейсных функций с помощью отдельного микроконтроллера. Существует несколько способов загрузки и размещения программ для управ- работой автоматических устройств. Самый очевидный - это программиро- вание самого микроконтроллера, но может также использоваться метод, типичный для персональных компьютеров, когда в памяти микроконтроллера располагается только специальная программа-загрузчик, а основное программное обеспечение размещается во внешней оперативной памяти. В последнем случае программа обычно загружается в память с использованием какого-нибудь последовательно- го интерфейса, например RS-232, работой которого управляет специальная про- грамма-монитор. Заметим, что способ загрузки и хранения программы не влияет на методы ее проектирования, поэтому описанные в этой книге приемы разработ- ки программного обеспечения будут действенны в любом случае. Обычно при использовании микроконтроллеров PIC16F84 или PIC16F627 управляющее устройство размещается внутри робота, а не снаружи. Для внутрисхем- ного программирования микроконтроллера необходимо, чтобы выводы RB6 и RB7 во время загрузки программы в память микроконтроллера были отключены от основной схемы и подключены к программатору. Для этого разумно использо- вать переключатель, установленный на плате. Кроме того, желательно, чтобы про- граммирующее напряжение подавалось от какого-либо внешнего источника. 142 Устройства управления роботами Связь микроконтроллера с компьютером необходима для загрузки программ, а также для работы внутрисхемного эмулятора Emulator - ICE). Обыч- но в этом случае используется стандартный последовательный протокол RS-232. Кроме широкой распространенности, еще одно преимущество его применения при отладке автоматических устройств заключается в том, что он использует до- статочно высоковольтные цифровые уровни, устойчивые к помехам, возникаю- щим при включении-отключении двигателей. Если в некоторых случаях затруд- нительно обеспечить проводное подключение мобильного робота к компьютеру, то последовательный протокол обмена информацией можно реализовать с ис- пользованием радиосвязи. Что касается мониторинга состояния робота, то я бы рекомендовал воздер- жаться от применения компьютеров в этом случае. Хорошо продуманное разме- щение нескольких светодиодных индикаторов на самом роботе может оказаться полезнее, чем компьютерный дисплей. Кроме того, подобное решение проблемы исключает необходимость обеспечения связи робота с компьютером. Жидкокри- сталлический дисплей для этих целей менее пригоден, так как при настройке по- движного механизма большую часть времени он будет находиться под к вам, и вы не сможете прочитать то, что на нем отображается. Заметим, что индикация текущего состояния программы — не то же самое, что и ее отладка. Ведь в первом случае вы не можете на время приостановить выпол- нение программы и тем более взять на себя функции по управлению роботом, как в процессе пошаговой отладки Наконец, связь между контроллерами может потребоваться для управления различными периферийными устройствами. Часто при этом используется интер- фейс PC (синхронный последовательный протокол) или RS-485 (обладающий отличной устойчивостью к помехам). Следует воздержаться от искушения заставить микроконтроллер делать сразу две вещи - выполнять какую-либо операцию с периферийным устройством и обмениваться информацией с компьютером или другим микроконтроллером. В противном случае либо передаваемая информация окажется некорректной (в ре- зультате выполнения операции с периферийным устройством изменится текущее состояние), либо при передаче произойдет потеря или искажение данных из-за того, что микроконтроллеру придется отвлекаться и окажутся нарушенными дли- тельности промежутков времени между моментами изменения сигналов, опреде- ляемые протоколом В результате многочасовых экспериментов над своими устройствами я выра- ботал следующие общие рекомендации по методам реализации межпроцессорно- го обмена информацией: • скорость обмена некритична для большинства приложений, поэтому обычно вполне достаточно Кбит/с в случае использования RS-232 или несколь- ко больше для Ethernet и других сетевых протоколов. Но даже при таких ско- ростях не следует стремиться к максимальному использованию пропускной способности канала связи. На более низких скоростях передачи улучшается помехоустойчивость, снижается потребляемая мощность и уменьшаются электромагнитные наводки; Подключение к микроконтроллеру периферийных устройств 143 связь с локальными периферийными устройствами должна иметь более вы- сокий приоритет, чем с удаленными; при реализации межпроцессорной связи следует стремиться к максимальной надежности и помехоустойчивости. Все соединения должны быть надежно про- паяны или монтаж накруткой должен быть высокого качества, чтобы снизить сопротивление соединительных проводов. Ненадежная связь может стать при- чиной многочасовых безуспешных попыток найти неисправность в программе. 4.5. РЕАЛИЗАЦИЯ ИНТЕРФЕЙСА RS-232 Интерфейс RS-232 получил широкое распространение; он достаточно надежен и прост в реализации. Поэтому в большинстве микроконтроллеров есть встроен- ные средства, обеспечивающие связь с другими устройствами на основе данного интерфейса. При этом используется кодирование сигналов по методу NRZ, кото- рый уже упоминался в главе 3. Программное обеспечение для реализации после- довательного обмена информацией с персональным компьютерами широко до- ступно, соответствующие функции поддерживаются интерфейсами прикладных программ (API) всех известных операционных систем. Обычно применяется протокол 8-N-1, что означает 8-разрядные без бита четности (No parity), один бит. Проверка на четность не проводит- ся, поскольку современные компьютеры в большинстве случаев позволяют осу- ществить достаточно надежную передачу данных на разумных скоростях. На рис. 4.4 показано, как обычно реализуется последовательная связь с исполь- зованием интерфейса RS-232. Рис. 4.4. Передача данных двумя компьютерами с использованием модемов Согласно стандарту на интерфейс RS-232, по исполняемым функциям разли- чают два типа оборудования. Оконечное оборудование обработки данных (Data Terminal Equipment, DTE) — это компьютеры, сканеры, принтеры, плоттеры и дру- гие устройства, передающие и/или принимающие данные. Оборудование передачи данных (Data Communication Equipment, DCE) - это модем и другие устройства, обеспечивающие прием и/или передачу данных. К сожалению, стандарт RS-232 разрабатывался достаточно давно, когда аппарат- ные средства были довольно примитивны и не слишком надежны, поэтому некото- рые недостатки этого интерфейса достались нам в наследство с тех старых времен. 144 Устройства управления роботами Прежде всего, это цифровые уровни, кодирующие двоичные состояния. Они от- личаются от стандартных уровней ТТЛ или микросхем. Логическая едини- ца передается напряжением в диапазоне от -5 до -12 В, а логический нуль - от +5 до +12 В (рис. 4.5). Так как при передаче наблюдается затухание сигнала, то на при- емной стороне порог переключения снижен до -3 и +3 В соответственно. Рис. 4.5. логические уровни сигналов интерфейса RS-232 В результате возникает необходимость использования дополнительных аппа- ратных средств, с помощью которых на передающей стороне уровни сигналов, вырабатываемые в микроконтроллере, переводятся в уровни интерфейса RS-232, а на приемной стороне осуществляют обратное преобразование. Чуть ниже мы опишем несколько способов решения этой проблемы. Наша задача облегчается тем, что многие реализации интерфейса RS-232 в современных компьютерах мо- гут работать со стандартными уровнями пятивольтовой ТТЛ/КМОП логики. На задней панели вашего персонального компьютера вы можете увидеть стан- дартный 25- или 9-контактный разъем-вилку последовательного пор- та для подключения внешних Назначение контактов разъемов обоих типов показано на рис. 4.6. DB-25 (вилка) DB-9 (вилка) Рис. 4.6. последовательного порта и к 145 Рис. 4.7. Передача по трем линиям интерфейса RS-232 В большинстве современных устройств (и не только радиолюбительских) линии подтвержде- ния не используются. Они были добавлены в стандарт, когда средства межкомпьютерных коммуникаций еще не отличались высокой на- дежностью. Сейчас в большинстве случаев до- статочно трех линий, показанных на рис. 4.7. Проверка того, что коммуникационный ка- бель вставлен в разъем, и имитация сигналов подтверждения обеспечиваются простым за- мыканием двух пар линий: (Data Ter- minal Ready - готовность DTE к работе) и DSR (Data Set Ready - готовность DCE к работе), а также RTS (Request to Send - запрос на пе- редачу) и CTS (Clear to Send - готовность DCE к приему данных). Линии DCD (Data Carrier Detected - несущая обнаружена) и (Ring Indicator - индикатор вызова) при этом не используются. Так как линии запроса/подтверждения соединены, то сигналы подтверждения готовности приему данных вырабатываются автоматически, простым дублиро- ванием сигналов запроса, поэтому программное обеспечение может теперь не за- ботиться о реализации протокола квитирования (handshaking). Обращаем ваше внимание на то, что DTE и DCE должны иметь общую «зем- лю» (Ground - Gnd), иначе приемник не сможет распознать передаваемые логи- ческие уровни. Однако сигнальная «земля» ни в коем случае не должна быть со- единена с «землей» источника питания или корпусом устройства. В противном случае через эту линию будет протекать слишком большой ток. Даже если резуль- татом не явится поломка интерфейсных устройств, то наверняка заметно сместят- ся принимаемые электрические что приведет к искажению информации. Чтобы избежать возможных неприятностей, перед питания с по- мощью омметра следует убедиться, что сопротивление между нулевой шиной источника питания и сигнальной «землей» достаточно велико (сотни килоом). Стандартные скорости обмена через интерфейс RS-232 составляют 300, 2400 или 9600 бит/с. Передача информации на малых скоростях использовалась рань- ше для телетайпов, потому что механическим устройствам требовалось много времени на печать одного символа. Нетрудно заметить, что стандартные скорости отличаются друг от друга в число раз, являющееся степенью двойки. Например, 9600 - это пятикратно увеличенное вдвое число 300. Такое соглашение удобно для аппаратной реализации приемопередатчиков Для изменения скорости передачи или приема в этом случае достаточно всего лишь изменить рабочий коэффициент делителя тактовой частоты. Если ваш микроконтроллер не имеет встроенного модуля USART, то всегда можно восполь- зоваться его программной реализацией, имеющейся в стандартной библиотеке При большом токе согласно закону Ома на соединительных проводах падает заметное напряжение. - Прим. 146 Устройства управления роботами компилятора Lite. Может показаться, что самостоятельная программная реализация последовательного протокола связи - не такая уж простая задача, но дело существенно облегчается благодаря тому, что в алгоритме вычисления за- держки, требуемой для передачи одного бита информации, мистическим образом возникает число 13. Если для определения задержки, необходимой для передачи одного бита, вы захотите найти число, обратное к величине стандартной скорости передачи дан- ных, то обнаружите, что искомый период, выраженный в микросекундах, делится на число 13 (с небольшой погрешностью). А это означает, что любая стандартная скорость передачи, определенная в интерфейсе RS-232, может быть реализована уже при частоте тактирования, не превышающей 1 МГц. Рассмотрим пример. Пусть частота системного тактового генератора составля- ет 20 МГц и требуется вести передачу со скоростью 9600 бит/с. Тогда для опреде- ления числа командных циклов, в течение которых будет передаваться каждый бит информации, надо выполнить следующие действия: 1. Разделить на скорость передачи, чтобы найти период в микросекундах. Для скорости 9600 бит/с получим около 104 мкс/бит. 2. Разделить найденный период на 13. Для нашего примера получим число 8. Если тактовый генератор работает на частоте 20 МГц, то период тактовых импульсов равен 50 следовательно, один командный цикл длится 50 х 4 = 200 Значит, за 1 мкс выполняется пять командных циклов. Тогда количество команд- ных циклов, которые пройдут за время передачи одного бита (то есть за 104 5 командных х 13 х 8 мкс/бит = 520 командных циклов/бит = 520 х 4 тактов/бит = 1280 тактов/бит. Но почти то же самое получается и без использования операции деления: 20 х 13 х 5 мкс/бит = 1300 тактов/бит. Для реализации интерфейса RS-232 в ваших конструкциях обычно удобнее всего использовать 9-контактный разъем и стандартный кабель. Это избавляет от необходимости следить за правильной распайкой кабеля. Соединение двух пар контактов запроса/подтверждения, как показано на рис. 4.7, желательно выпол- нять внутри самого устройства, а не внутри кабеля или, тем более, со стороны персонального компьютера. В этом случае и кабель, и последовательный порт компьютера не требуют какой-либо переделки и их можно будет использовать для работы с другими устройствами. Теперь обсудим способы согласования уровней интерфейса RS-232 и обычных микросхем. При этом нам не потребуется дополнительный источник Если отвлечься от мистики, то формула для вычисления периода передачи одного бита (в команд- ных циклах) довольно проста: n = F / (4V), где F - тактовая частота, Гц; V - скорость передачи, бит/с. Что касается числа 13, то предоставляем читателю самому проверить, появляется ли оно в выклад- ках при других тактовых частотах и на других стандартных скоростях передачи. - Прим. перев. Подключение к микроконтроллеру периферийных устройств 147 питания для формирования напряжения ±12 В, так как большинство устройств прекрасно работает при обычном для цифровых микросхем напряжении +5 В. наиболее распространенный способ преобразования уровней основан на использовании микросхемы МАХ232 (рис. 4.8). в Процессор Интерфейс |