4.6 Преобразователь уровней DS275
Микросхема DS275, производимая фирмой Dallas Semiconductor, это питаемый от линии TX/RX драйвер интерфейса RS232 полностью совместимый со стандартной реализацией RS232.
Рисунок 4.6.1 – Распиновка микросхемы DS275
Микросхема была выбрана в качестве преобразователя уровней, т.к. имеет ряд очевидных преимуществ:
Питается от линий RX/TX COM-порта
Работа в асинхронном полно дуплексном режиме
Не требует для работы внешних элементов, например конденсаторов (в отличие от аналога – MAX232)
Рисунок 4.6.2 – Пример включения микросхемы
Технические характеристики микросхемы:
Напряжение питания – 5/12В
Напряжение на выходе - ±15В
Рабочий диапазон температур – 0С…+70С
4.7 Стабилизаторы LM78L05 и LM78L12
Рисунок 4.7.1 – Распиновка регулятора напряжения LM78LXX
Для питания проектируемого устройства были выбраны широко распространённые стабилизаторы напряжения производства фирмы National Semiconductor LM78L05 и LM78L12, рассчитанные на 5 и на 12 вольт соответственно. Оба стабилизатора являются линейными регуляторами напряжения положительной полярности и обладают схожими техническими характеристиками:
-
Выходное напряжение меняется на ±5% в зависимости от температуры (см. рис. 4.7.2)
-
Выходной ток – до 100мА
-
Встроенная термозащита
-
Встроенный ограничитель по току
-
Доступен в различных корпусах (TO-92, SO-8, различные SMD корпуса и др.)
-
Не требует внешних компонентов
-
Напряжение выхода 5 и 12 В
Рисунок 4.7.1 – Температурная характеристика стабилизатора
5 Разработка схемы алгоритма и управляющей программы
5.1 Алгоритм функции main
5.2 Алгоритм функции updateServo
5.3 Алгоритм функции updateEncoders
5.4 Алгоритм функции updateTask
5.5 Алгоритм функции reportStatus
5.6 Исходный код управляющей программы
Исходный код, представленный в приложении Б к настоящей работе, полностью реализует функции разработанного устройства управления манипулятором с 6-ю степенями свободы. Код программы написан на языке С для микро контроллера AVR ATmega64 производства фирмы Atmel, но может с небольшими модификациями использоваться и на других аналогичных микро контроллерах.
Описание протокола обмена данными между управляющей ЭВМ и микро контроллером. Микро контроллер хранит нужные значения задержек ШИМ для каждого из сервоприводов в массиве pwm. Периодически МК читает этот массив и подаёт импульсы соответствующей длинны на ЦАП. Если управляющая ЭВМ передаёт команду на изменение углов поворота сервоприводов, то она формирует кадр. Кадр состоит из начального байта ‘B’ (0 позиция), стоп-байта ‘E’ (7-я позиция) и шести промежуточных байтов. Каждый из промежуточных байтов соответствует задержке ШИМ. Полученные байты заносятся в массив pwm.
Периодически МК отправляет управляющей ЭВМ текущее значение углов поворота каждого из валов. Информация снимается с энкодеров и после обработки АЦП обрабатывается в функции updateServo(). Обработанная информация сохраняется в массиве enc. Периодически МК формирует кадр из начального байта ‘B’, шести значений массива enc и стоп-байта ‘E’. Кадр отправляется по последовательному порту на управляющую ЭВМ. Поскольку отправка и получение данных может осуществляться асинхронно, то никакие данные не будут потеряны. При получении байта данных от ЭВМ вызывается обработчик прерывания, который сохраняет полученный символ в буфер.
Для обмена данными с ЭВМ устанавливается бодрейт 9600 бод/сек. с контролем чётности. Т. о., при возникновении аппаратной ошибки или влиянии помехи пакет с данными будет отброшен и не произойдёт ошибки управления и регулирования.
Код был написан в среде Code Vision AVR и скомпилирован компилятором WinAVR. Написанная программа была проверена, отлажена и полностью готова к использованию.
Код программы приведён в приложении Б к данной работе.
|