Управление выходами компьютера. Простое управление приборами с компьютера. Управление приборами через сом-порт компьютера
2. ПРОГРАММИРОВАНИЕ LPT-ПОРТА
2.1. Установка драйвера giveio sys
2:2. Управление состоянием линий LPT-порта
2.3. Схема стенда для отладки программы
2.4. Сопряжение микроконтроллера с LPT-портом
2.5. Аппаратно-программные средства снятия вольт-амперных характеристик полупроводниковых приборов
2.5.1. Снятие вольт-амперных характеристик биполярных транзисторов
2.5.2. Снятие вольтамперных характеристик полевых транзисторов
2.5.3. Снятие вольт-амперных характеристик диодов
2.5.4. Снятие вольт-амперных характеристик стабилитронов
2.5.5. Блок управления
2.5.6. Описание программных средств
3 ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ
3.1. Аппаратная организация порта
3.2. Интерфейс RS-232C
3.3. Электрический интерфейс
3.4. Управление потоком передачи
3.4. Интерфейс «токовая петля»
3.6. Инфракрасный интерфейс
3.7. Интерфейс MIDI
3.8. Конфигурирование СОМ-портов
3.9. Использование СОМ-портов
3.10. Неисправности и тестирование СОМ-портов
3.10.1. Проверка конфигурирования
3.10.2. Функциональное тестирование
3.11. Программирование UART для микроконтроллеров
3.11.1. Передача данных
3 11.2. Прием данных
3.11.3. Управление UART
3.11.4. Бод-генсратор (Baud Rate Generator)
3.12. Сопряжение компьютера с микроконтроллером по СОМ-порту
3.13. Программа для микроконтроллера
4. ПРОГРАММИРОВАНИЕ СОМ-ПОРТОВ
4.1. Открытие порта
3.2. Настройка параметров порта
4.3. Настройка тайм-аутов
4.4. Использование стандартного диалога настроек порта
4.5. Прием и передача данных
4.6. Использование потоков
5. ШИНА USB
5.1. Аппаратная организация шины
5.2. Преобразователи USB-FIFO
5.3. Подключение микросхемы FT245BM к USB
5.4. Преобразователи USB-RS232
5.5. Подключение микросхемы FT232BM к USB
6. ПРОГРАММИРОВАНИЕ USB-ШИНЫ
6.1. Установка драйверов
6.2 .Определение подключенных устройств. Получение информации об устройстве
6.3. Организация обмена данными
6.4. Программа для контроллера AVR
6.5. Использование тайм-аутов
6.6. Программирование устройств на базе FT232
6.7. Программирование EEPROM
6.8. Коды ошибок при работе с USB
7. ОБЗОР ПРОГРАММНЫХ СРЕДСТВ ДЛЯ РАБОТЫ С ПОРТАМИ
7.1. Proteus
7.2. SCADA-снстемы
7.2.1. Принцип работы SCADA систем
7.2.2. Система Genie
7.3. Teiminat
7.4. Wtnscope
8. ПРИНЦИПЫ ОРГАНИЗАЦИИ СЕТЕВЫХ КОММУНИКАЦИЙ
8.1. Использование Windows Sockets
8.2. Инициализация Winsock
8.3. Создание гнезда и открытие соединения
8.4. Отправление и получение сообщений
8.5. Управление процессом генерации сообщений
8.6. Пример разработки программы
ПРИЛОЖЕНИЯ
ЛИТЕРАТУРА
Издательство: Олди-плюс
Год издания: 2008
Страниц: 380
ISBN: 978-966-8447-51-8
Язык: русский
Формат: PDF
Размер: 8,5 Мб
Скачать: Рябенький В.М. Компьютерное управление внешними устройствами через стандартные интерфейсы
П. ВЫСОЧАНСКИЙ, г. Рыбница, Приднестровье, Молдавия
У стройство компьютерного управления различными приборами, схема которого показана на рис. 1, функционально подобно описанному в , но подключается к USB-порту компьютера, который (в отличие от СОМ-порта) сегодня есть в каждом из них. Единственная микросхема устройства - распространенный микроконтроллер ATmega8. Он необходим для организации связи по шине USB. Хотя в нем и отсутствует специализированный аппаратный модуль, эта функция выполняется программно.
Резистор R1, подключенный между положительным выводом источника питания и линией D-шины USB, переводит ее в низкоскоростной режим LS со скоростью обмена 1,5 Мбит/с, что и позволяет расшифровывать посылки компьютера программным способом. Резисторы R4 и R5 устраняют переходные процессы, возникающие при обмене информацией, что увеличивает стабильность работы. Конденсатор С1 блокирует импульсные помехи в цепи питания, что также улучшает стабильность работы устройства. Диоды VD1 и VD2 служат для понижения напряжения питания микроконтроллера приблизительно до 3,6 В - это требуется для согласования уровней с шиной USB. Сигналы управления приборами формируются на выходах РВО-РВ5 и РСО, РС1 микроконтроллера. Высокий логический уровень - напряжение около 3,4 В. Напряжение низкого уровня близко к нулю. К выходам можно подключать приборы, потребляющие ток не более 10 мА (от каждого выхода). Если требуются большие значения тока или напряжения, то следует использовать узлы согласования, показанные в на рис. 5 и 6.
Устройство собрано на макетной плате, печатная не разрабатывалась. Применены резисторы МЛТ, конденсаторы С2 и СЗ - керамические высокочастотные, С1 - К50-35 или аналогичный импортный. Диоды кремниевые с падением напряжения на переходе около 0,7 В.
Программа для микроконтроллера разработана в среде Bascom-AVR версии 1.12.0.0. Для работы с шиной USB использована библиотека swusb.LBX, которая выполняет программное декодирование сигналов USB в режиме реального времени. Полученный в результате компиляции код программы из файла с расширением HEX следует загрузить во FLASH-память микроконтроллера. Для этого был использован программатор совместно со встроенной в Bascom-AVR утилитой. Состояние разрядов конфигурации микроконтроллера должно соответствовать показанному на рис. 2.
При первом подключении устройства к компьютеру операционная система обнаружит новое USB HID совместимое устройство с именем "uniUSB" и установит необходимые драйверы. Через несколько секунд устройство настроено и готово к использованию. Для работы с ним была создана программа UniUSB. Она представлена в двух вариантах: для 32-разрядных (х86) и 64-разрядных (х64) операционных систем семейства Windows. Работа 32-разрядной версии проверена в операционных системах Windows 98, Windows XP, Windows 7, а 64-разрядной - только в Windows ХРх64.
Программа UniUSB написана на языке PureBasic (версия 4.31) с использованием библиотеки пользовательских функций HIDJJb, поддерживающей работу с USB HID устройствами. Внешний вид окна программы показан на рис. 3.
В одной папке с ее исполняемым файлом должен находиться файл, называющийся UniUSB_KOfl.txt или UniCOM_KOfl.txt. Последний вариант необходим для совместимости с программой UniCOM, предложенной в . В этом файле хранится сценарий управления внешними приборами. При запуске программы данные из файла загружаются в таблицу, расположенную в главном окне, а при завершении работы сохраняются в файле. Щелчок левой кнопкой мыши по ячейкам таблицы позволяет изменять их состояние: 1 - высокий логический уровень, 0 или пусто - низкий логический уровень.
Для добавления или удаления столбца таблицы нужно по ней щелкнуть правой кнопкой мыши и в появившемся меню выбрать требуемое действие.
При подключении устройства к USB-порту программа обнаружит его и активирует кнопку > , расположенную в верхней части окна на панели инструментов. Нажатием на эту кнопку запускают процесс перебора столбцов таблицы и установки указанных в них состояний выходов. Для большей наглядности слева от таблицы подсвечиваются номера выходов, на которых в данный момент установлен высокий логический уровень. Скорость перебора (время в миллисекундах между переходами от столбца к столбцу) задают в поле "Скорость, мс".
Учтите, операционная система Windows - многозадачная! Это означает, что процессорное время делится между множеством иногда скрытых от пользователя процессов, которые выполняются по очереди с учетом установленных в системе приоритетов. Поэтому не стоит ожидать большой точности выдерживания интервалов времени менее 100 мс.
Для кратковременной остановки перебора столбцов используйте кнопку JB. Повторное нажатие на нее продолжит перебор с места остановки. Кнопка ■ полностью прекращает перебор столбцов таблицы. Если в процессе обмена информацией между компьютером и устройством произойдет сбой либо устройство будет отключено от разъема USB компьютера, программа сообщит об ошибке, выведя в строке состояния соответствующее сообщение.
Компьютер, некоторые детали, инструменты любой желающий сможет организовать простое управление бытовыми приборами с этого компьютера. Множество приборов используемых в быту имеют множество функций, например большинство современных телевизоров могут показывать некоторое количество разных каналов, у вентилятора м.б. некоторое количество разных режимов работы и т.д. Для того чтобы сделать такое сложное управление как например переключение каналов или режимов работы, помимо перечисленного выше понадобятся дополнительные знания, детали и инструменты но сделать простое включение и выключение под силу каждому кто это перечисленное имеет. Arduino связывается с компьютером через USB порт, передачу информации с компьютера на Arduino можно осуществлять через среду разработки для Arduino (называется Arduino IDE) которую можно скачать с страницы на официальном сайте Arduino . Существует множество разнообразных модулей для взаимодействия Arduino с внешним миром, например специальный модуль с блоком реле для коммутации нагрузок, при использовании таких модулей работа сильно упрощается, здесь же мы рассмотрим самостоятельное изготовление модуля с одним реле для включение/выключения бытовых приборов, при необходимости можно изготовить более одного такого модуля и использовать их с одним Arduino тем самым сделав возможным простое управление множеством бытовых приборов. Arduino (любое) имеет некоторое количество выводов общего назначения которые обозначаются, на плате, просто цифрами или цифрами с волнистым знаком "~". Подключив Arduino к компьютеру и записав в него (в Ардуино) специальный скетч (программа для Arduino) можно с этого компьютера через программу "Arduino IDE" управлять этими выводами делая на них высокое напряжение (примерно +5В (HIGH)) или низкое (примерно 0В (LOW)). Также на Arduino есть вывод "GND" (на плате так и обозначен). Если на одном из выводов общего назначения высокое напряжение то подключив что либо проводящее ток между этим выводом и выводом "GND" через то что подключено потечёт электрический ток и величина этого тока будет зависеть от сопротивления этого предмета и рассчитать её можно по , т.е. чем меньше сопротивление том больше ток, но если сопротивление будет слишком низким то через Arduino потечёт слишком большой ток и оно перегорит. Максимальный ток который может выдать вывод общего назначения Arduino может быть разным в зависимости от используемого в нём микроконтроллера но обычно это 40мА = 0.04А - этого может быть недостаточно для того чтобы включить реле которое будет включать прибор (приборы) поэтому для усиления тока необходимо использовать дополнительный элемент например биполярный транзистор. Биполярный транзистор имеет три вывода: эмиттер, коллектор, база. Максимальный ток транзистора также ограничен как и у Ардуино и обычно он больше, например у популярного КТ315 максимальный ток равен 100мА = 0.1А. Биполярные транзисторы бывают двух типов n-p-n и p-n-p использовать можно оба типа но по разному и далее рассмотрим использование транзистора КТ315 тип которого n-p-n. Для того чтобы транзистор усилил ток из Ардуино необходимо соединить его базу с выводом Ардуино ЧЕРЕЗ РЕЗИСТОР сопротивлением 1кОм (на резисторе м.б. написано 1к), эмиттер этого транзистора соединить с "GND" Arduino и минусом питания или "GND" источника питания напряжение которого равно напряжению обмотки имеющегося реле (допустим 12В) один из выводов обмотки реле соединить с коллектором транзистора другой с плюсом источника питания (+12В допустим) и ещё одной не влияющей на усиление но ОЧЕНЬ важной деталью является диод который нужно соединить анодом с коллектором и катодом с плюсом источника питания (+12В). Если диод импортный то на скорее всего на его корпусе будет светлая полоса - она указывает на катод, другой вывод диода это анод. Оставшиеся выводы реле - это выводы его контактов, если их два и они не замкнуты то при подаче достаточного тока на обмотку реле эти контакты замкнуться, их нужно соединить последовательно с прибором и это последовательное соединение можно втыкать в розетку, тогда при замыкании контактов на прибор поступит 220В и он включиться. Описанное выше можно изобразить на картинке:
Рисунок 1 - Управление прибором с компьютера
Это нестандартная схема для лучшего понимания, обычно используют схемы такие:
Рисунок 2 - Управление прибором с компьютера
Хотя в этой схеме тоже присутствует нестандартное обозначение платы Ардуино. На рисунке обозначено Arduino UNO (можно заказать по этой ссылке http://ali.pub/1v22bh) но можно использовать и любое другое. Соединения можно делать например на макетной плате и проводами или пайкой. После того как всё правильно соединено и проверено можно подключить Ардуино по USB к компьютеру и загрузить в неё скетч:
Char pc_code=0;
Void setup()
{
pinMode(2, OUTPUT);
Serial.begin(9600);
}
Void loop()
{
if (Serial.available() > 0)
{
pc_code = Serial.read();
if(pc_code=="a")
{
digitalWrite(2, HIGH);
}
else if(pc_code=="b")
{
digitalWrite(2, LOW);
}
}
}
О том как правильно настроить Ардуино и загрузить в неё скетч уже описано на странице . Далее для включения прибора необходимо на Ардуино отослать символ "a" для выключения символ "b". Для того чтобы отослать символ на ардуино можно, в среде Arduino IDE, войти по вкладке Инструменты-Монитор последовательного порта и в появившемся окне в верхнем текстовом поле вписывать символы и отсылать нажатием кнопки "отправить" символ придёт на ардуино и для данного случая если отослать символ "a" то прибор включиться, если "b" то соответственно выключиться. Если Ардуино не принимает символы то нужно в правом нижнем углу окна монитора последовательного порта установить такую же скорость какая прописана в скетче т.е. 9600 бод. Для того чтобы включать 2 прибора можно немного изменить скетч:
Char pc_code=0;
Void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
Serial.begin(9600);
}
Void loop()
{
if (Serial.available() > 0)
{
pc_code = Serial.read();
if(pc_code=="a")
{
digitalWrite(2, HIGH);
}
else if(pc_code=="b")
{
digitalWrite(2, LOW);
}
else if(pc_code=="c")
{
digitalWrite(3, HIGH);
}
else if(pc_code=="d")
{
digitalWrite(3, LOW);
Скорость переключения |
|
Выбор COM-порта |
|
Кнопка старт и пауза (включение порта) |
|
Кнопка стоп (отключение порта) |
|
Кнопка настройки выходов |
|
Кнопки ручного управления входами (1, 2, 3) |
|
Кнопка очистки таблицы |
|
Кнопка вызова справки |
|
Кнопка выхода из программы |
|
Индикаторы, имитирующие работу выходов |
|
Сетка таблицы со значениями (пустые ячейки |
Для управления нагрузкой в схемах с постоянным напряжением, например 24В, можно использовать любые мощные составные транзисторы - в нашем случае КТ829.
Для коммутации переменного тока 220В проще всего использовать так называемый полупроводниковый ключ переменного тока, который имеет на входе оптодрайвер с детектором нуля фазы, что обеспечивает гальваническую развязку.
Для увеличения коммутируемого тока симистор устанавливается на радиатор. Обратите внимание - в высоковольтной части использованы сопротивления мощностью 0,5 Вт.
Не забывайте о технике безопасности - во время работы коммутатора не касайтесь оголенных элементов, а при перепайке деталей и проводов отключите коммутатор от сети.
Плата выполнена из одностороннего фольгированного текстолита. Размер платы 30х25мм. На плате под корпусом микросхемы впаяна перемычка. В целях защиты от перегрева микросхемы во время пайки использована 16-контактная панель под микросхему.
Для управления выходами (светодиодами), устройство достаточно соединить с ПК 4х проводным шнуром. Шнур распаивается на стандартный разъем к COM-порту - розетку DB9.
Сигнал +5В для общего провода цифровых входов берётся из схемы устройства. Сопротивления в линиях цифровых входов можно распаять в корпусе розетки DB9.
К цифровым входам можно подключить кнопки, тумблера, микропереключатели.
Справочная информация
Основой устройства является доступная микросхема 74hc595, представляющая собой последовательный регистр сдвига с выходной блокировкой. Для управления этой микросхемой достаточно трёх сигнальных линий. В нашем случае сигналы инициируются в программе управления UniCOM и выдаются через интерфейс RS-232 (COM-порт). В качестве сигнальных линий в этом интерфейсе использованы линии 9-контактного разъема: RTS - 7 контакт, DTR - 4 контакт и TxD - 3 контакт.
Принцип работы микросхемы 74hc595 заключается в последовательной записи логических сигналов высокого и низкого уровней, подаваемых на вход DS (14 ножка). Запись осуществляется задним фронтом (переход из лог. 1 в лог. 0) на входе SH_CP (11 ножка). Вывод записанных данных происходит также задним фронтом, но на входе ST_CP (12 ножка). Таким образом, на ножках 1-7 и 15 появляются уровни последних восьми записанных сигналов.
Высокому уровню сигнала на выходах (ножки 1-7 и 15) соответствует напряжение питания микросхемы - в нашем случае +5 Вольт, а низкому уровню соответствует 0 Вольт. Сигналы на выходах являются статическими, т.е. неизменными до тех пор, пока не придёт очередной импульс на вход ST_CP (12 ножка). Необходимо отметить, что снижение напряжения питания ниже минимального уровня ведет к сбросу сигналов на выходах. Согласно документации на микросхему, минимальное напряжение питания составляет 2 вольта.
Сопряжение интерфейса RS-232 с микросхемой 74hc595 сделано посредством стабилитронов на 5,1В. Согласно спецификации на RS-232 высокий уровень сигнала лежит в диапазоне от +3 до +25В, что позволяет нам организовать обратную связь с программой управления UniCOM.
Управление устройствами через USB-порт компьютера.
П. ВЫСОЧАНСКИЙ, г. Рыбница, Приднестровье, Молдавия
Устройство компьютерного управления различными приборами, схема которого показана на рис. 1, функционально подобно описанному в , но подключается к USB-порту компьютера, который (в отличие от СОМ-порта) сегодня есть в каждом из них. Единственная микросхема устройства - распространенный микроконтроллер ATmega8. Он необходим для организации связи по шине USB. Хотя в нем и отсутствует специализированный аппаратный модуль, эта функция выполняется программно.
Резистор R1, подключенный между положительным выводом источника питания и линией D-шины USB, переводит ее в низкоскоростной режим LS со скоростью обмена 1,5 Мбит/с, что и позволяет расшифровывать посыпки компьютера программным способом. Резисторы R4 и В5 устраняют переходные процессы, возникающие при обмене информацией, что увеличивает стабильность работы. Конденсатор С1 блокирует импульсные помехи в цепи питания, что также улучшает стабильность работы устройства. Диоды VD1 и VD2 служат для понижения напряжения питания микроконтроллера приблизительно до 3,6 В - это требуетсядля согласования уровнен с шиной USB.
Сигналы управления приборами формируются на выходах РВ0-РВ5 и РСО, РС1 микроконтроллера. Высокий логический уровень - напряжение около 3,4 В.
Напряжение низкого уровня близко к нулю. К выходам можно подключать приборы, потребляющие ток не более 10 мА (от каждого выхода). Если требуются большие значения тока или напряжения, то следует использовать узлы согласования, показанные в на рис. 5 и 6. Устройство собрано на макетной плате, печатная не разрабатывалась Применены резисторы МЛТ, конденсаторы С2 и СЗ - керамические высокочастотные, С1 - К50-35 или аналогичный импортный. Диоды кремниевые с падением напряжения на переходе около 0,7 В. Программа для микроконтроллера разработана в среде Bascom-AVR версии 1.12.0.0. Для работы с шиной USB использована библиотека swusb.LBX, которая выполняет программное декодирование сигналов USB в режиме реального времени. Полученный в результате компиляции код программы из файла с расширением HEX следует загрузить во FLASH-память микроконтроллера. Для этого был использован программатор совместно со встроенной в Bascom-AVR утилитой. Состояние разрядов конфигурации микроконтроллера должно соответствовать показанному на рис.2
При первом подключении устройства к компьютеру операционная система обнаружит новое USB HID совместимое устройство с именем "uniUSB" и установит необходимые драйверы. Через несколько секунд устройство настроено и готово к использованию. Для работы с ним была создана программа UniUSB. Она представлена в двух вариантах: для 32-разрядных (х86) и 64-разрядных (х64) операционных систем семейства Windows. Работа 32-разрядной версии проверена в операционных: Windows 98, Windows XP, Windows 7, а 64-разрядной - только в Windows XP х64. Программа UniUSB написана иа языке PureBasic (версия 4.31) с использованием библиотеки пользовательских функций HID Lib, поддерживающей работу с USB HID устройствами. Внешний вид окна программы показан на Рис.3
В одной папке с ее исполняемым файлом должен находиться файл, называющийся UniUSB_код.txt или UniCOM_код.txt. Последний вариант необходим для совместимости с программой UniCOM, предложенной в . В этом файле хранится сценарий управления внешними приборами. При запуске программы данные из файла загружаются в таблицу, расположенную в главном окне, а при завершении работы сохраняются в файле. Щелчок левой кнопкой мыши по ячейкам таблицы позволяет изменять их состояние: 1 - высокий логический уровень, 0 или пусто - низкий логический уровень. Для добавления или удаления столбца таблицы нужно по ней щелкнуть правой кнопкой мыши и в появившемся меню выбрать требуемое действие. При подключении устройства к USB-порту программа обнаружит его и активирует кнопку, расположенную в верхней части окна на панели инструментов. Нажатием на эту кнопку запускают процесс перебора столбцов таблицы и установки указанных в них состояний выходов. Для большей наглядности слева от таблицы подсвечиваются номера выходов, на которых в данный момент установлен высокий логический уровень. Скорость перебора (время в миллисекундах между переходами от столбца к столбцу) задают в поле "Скорость, мс". Учтите, операционная система Windows -- многозадачная! Это означает, что процессорное время делится между множеством иногда скрытых от пользователя процессов, которые выполняются по очереди с учетом установленных в системе приоритетов. По этому не стоит ожидать большой точности выдерживания интервалов времени менее 100 мс.
Для кратковременной остановки перебора столбцов используйте кнопку, Повторное нажатие на нее продолжит перебор с места остановки. Кнопка полностью прекращает перебор столбцов таблицы. Если в процессе обмена информацией между компьютером и устройством произойдет сбой либо устройство будет отключено от разъема USB компьютера, программа сообщит об ошибке, выведя в строке состояния соответствующее сообщение.
ЛИТЕРАТУРА
1. Носов Т. Управление приборами через СОМ-порт компьютера - Радио, 2007, № 11,с.61,62.
2. Рыжков A. US-программатор микроконтроллеров AVR и AT89S, совместимый с AVR910. - Радио, 2008, № 7, с. 28, 29.
По материалам журнала "Радио 2`2011"
Скачать прошивку микроконтроллера и программу для PC можно