Программы управления внешними устройствами что это

Вопрос 20 — Программные средства управления внешними устройствами. Драйвер – назначение и структура

Драйвер устройства — это программа, которая построена по определенным правилам и обеспечивают правильную работу устройств. Правила определяют специальную структуру программы драйвера устройств.

С помощью драйверов устройств операционная система управляет периферийным оборудованием компьютера.

Взаимодействие OС с драйвером При вызове операционной системой драйвера она передает ему пакет данных. Такой пакет данных называется заголовком запроса. Он содержит сведения о том, что необходимо делать драйверу и где найти необходимые данные. Например, если необходимо записать символ в последовательный порт, то нужно указать команду записи и записываемый символ (данные), т.е. OС должна передать драйверу команду и данные.

длина пакета, т.е. длина в байтах конкретного заголовка запроса;

номер команды (код);

слово состояния — 16 битовое слово, каждый бит которого несет информацию об успешном или (конкретно) неуспешном окончании

4. Периферийные устройства.

зарезервировано для ОС;

адреса данных — зависит от команды, находящейся в 3-ем элементе

Таким образом, заголовок запроса представляет пакет данных переменной длины. Первый элемент содержит длину заголовка запроса. Во втором — находится номер устройства и используется тогда, когда к контроллеру подключено несколько устройств. Код команды, содержащийся в третьем элементе, сообщает драйверу, какие действия необходимо предпринять.

Четвертый элемент служит индикатором состояния. Шестой — является полем данных, длина его зависит от команды, которая находится в третье элементе.

Операционная система автоматически создает заголовок запроса, когда прикладная программа (программа пользователя) осуществляет запрос на обслуживание, требующий использование драйвера устройства.

Структура программы драйвера

Программа драйвера устройства состоит из пяти следующих частей.

Источник: studfile.net

Программы управления внешними устройствами что это

Ускоряет систему, реестр и доступ в Интернет. Оптимизирует, чистит и исправляет все проблемы с ПК в 1 клик. Выявляет и удаляет шпионские и рекламные модули.
Программа — победитель многих конкурсов. Подробнее

USB Device Tree Viewer — бесплатная утилита, которая предоставит расширенную информацию о всех подключенных устройствах через USB порты. Производит основные действия управления, а также корректно отключает устройство или производит перезагрузку соединения.

get_app7 847 | Бесплатная |

AutoHotkey — приложение для автоматизации процессов до одного клика. Настраивайте клавиатуру и мышь на «горячие» клавиши, используйте автозамену, создавайте пользовательские формы ввода. Позволяет переназначить любые клавиши и кнопки на любых устройствах.

Машечкин И. В. — Операционные системы — Управление внешними устройствами

get_app323 088 | Бесплатная |

FinePrint — отличный инструмент для редактирования различных типов документов и вывода их на печать. Присутствует предварительный просмотр перед печатью, создание фирменных бланков и пр. Результат можно сохранить в формате bmp, tiff, emf или jpeg.

get_app98 859 | Условно-бесплатная |

VueScan — приложение, которое позволяет изменить стандартный интерфейс сканера на альтернативный, благодаря чему пользователи определенных моделей сканеров получат дополнительный функционал.

get_app219 230 | Условно-бесплатная |

USBDeview — небольшая программка, которая выведет список всех USB устройств (флеш-карта, мобильный телефон, принтер и т.д.), когда-либо подключаемых к Вашему компьютеру.

get_app207 555 | Бесплатная |

DevManView является альтернативой стандартному компоненту Windows Диспетчер устройств, который отображает список всех устройств и их свойств.

get_app10 071 | Бесплатная |

ScanPapyrus — программа для автоматического сканирования бумажных носителей (документы, книги, журналы и т.п.) и сохранения их в один файл PDF, DOCX или в несколько файлов JPEG, TIFF, PNG, BMP.

get_app9 604 | Условно-бесплатная |

Полезное приложение для владельцев девайсов от Garmin. Приложение позволяет обновлять карты, делать резервное копирование всех данных на случай их потери, делиться маршрутами с другими пользователями, устанавливать обновления программного обеспечения.

get_app374 | Бесплатная |

Бесплатная и удобная в использования программа для получения максимальной отдачи от ваших устройств SteelSeries, как например клавиатур, мышей, наушников, ковриков и пр. Позволяет управлять динамическими визуальными эффектами подсветки, настройки звучания.

get_app767 | Бесплатная |

PaperScan — универсальная программа для сканирования различных документов. Отличительной особенностью данного инструмента является возможность управления любым сканером, в том числе и сетевыми сканерами (TWAIN или WIA протоколы).

get_app67 386 | Бесплатная |

Elcomsoft Phone Breaker — универсальный инструмент для извлечения данных пользователя из резервных копий устройств iOS, Windows Phone и BlackBerry, а также облачных сервисов iCloud и iCloud Drive.

get_app5 773 | Условно-бесплатная |

USB Analyzer — программа для мониторинга и анализа активности USB-устройств. Позволяет перехватывать, отображать, записывать и анализировать все входящие и исходящие данные между любыми USB-устройствами, подключенными к ПК.

get_app2 924 | Условно-бесплатная |

USB Monitor — Программа для перехвата данных в USB шине компьютера. Позволяет следить за потоком данных от USB устройства и обратно, вести лог с возможностью его воспроизведения и анализа.

Читайте также:
Appwizard что это за программа и нужна ли она на компьютере

get_app10 912 | Условно-бесплатная |

RiDoc — программа позволяет при помощи сканера получать электронные версии документов и производить приведение размеров электронных версий документов или графических файлов к предустановленному размеру, что позволяет существенно уменьшить размер.

get_app122 648 | Условно-бесплатная |

OK Print Watch — Программа представляет собой монитор и менеджер принтера.

get_app5 147 | Условно-бесплатная |

Источник: www.softportal.com

Управление файлами и внешними устройствами

Способность ОС к «экранированию» сложностей реальной аппаратуры очень ярко проявляется в одной из основных подсистем ОС — файловой системе. Операционная система виртуализирует отдельный набор данных, хранящихся на внешнем накопителе, в виде файла — простой неструктурированной последовательности байтов, имеющей символьное имя. Для удобства работы с данными файлы группируются в каталоги, которые, в свою очередь, образуют группы — каталоги более высокого уровня. Пользователь может с помощью ОС выполнять над файлами и каталогами такие действия, как поиск по имени, удаление, вывод содержимого на внешнее устройство (например, на дисплей), изменение и сохранение содержимого.

Чтобы представить большое количество наборов данных, разбросанных случайным образом по цилиндрам и поверхностям дисков различных типов, в виде хорошо всем знакомой и удобной иерархической структуры файлов и каталогов, операционная система должна решить множество задач. Файловая система ОС выполняет преобразование символьных имен файлов, с которыми работает пользователь или прикладной программист, в физические адреса данных на диске, организует совместный доступ к файлам, защищает их от несанкционированного доступа.

При выполнении своих функций файловая система тесно взаимодействует с подсистемой управления внешними устройствами, которая по запросам файловой системы осуществляет передачу данных между дисками и оперативной памятью.

Подсистема управления внешними устройствами, называемая также подсистемой ввода-вывода, исполняет роль интерфейса ко всем устройствам, подключенным к компьютеру. Спектр этих устройств очень обширен. Номенклатура выпускаемых накопителей на жестких, гибких и оптических дисках, принтеров, сканеров, мониторов, плоттеров, модемов, сетевых адаптеров и более специальных устройств ввода-вывода, таких как, например, аналого-цифровые преобразователи, может насчитывать сотни моделей. Эти модели могут существенно отличаться набором и последовательностью команд, с помощью которых осуществляется обмен информацией с процессором и памятью компьютера, скоростью работы, кодировкой передаваемых данных, возможностью совместного использования и множеством других деталей.

Программа, управляющая конкретной моделью внешнего устройства и учитывающая все его особенности, обычно называется драйвером этого устройства (от английского drive — управлять, вести). Драйвер может управлять единственной моделью устройства или же группой устройств определенного типа. Для пользователя очень важно, чтобы операционная система включала как можно больше разнообразных драйверов, так как это гарантирует возможность подключения к компьютеру большого числа внешних устройств различных производителей.

Защита данных и администрирование

Безопасность данных вычислительной системы обеспечивается средствами отказоустойчивости ОС, направленными на защиту от сбоев и отказов аппаратуры и ошибок программного обеспечения, а также средствами защиты от несанкционированного доступа. В последнем случае ОС защищает данные от ошибочного или злонамеренного поведения пользователей системы.

Первым рубежом обороны при защите данных от несанкционированного доступа является процедура логического входа. Операционная система должна убедиться, что в систему пытается войти пользователь, вход которого разрешен администратором. Функции защиты ОС вообще очень тесно связаны с функциями администрирования, так как именно администратор определяет права пользователей при их обращении к разным ресурсам системы — файлам, каталогам, принтерам, сканерам и т. п. Кроме того, администратор ограничивает возможности пользователей в выполнении тех или иных системных действий. Например, пользователю может быть запрещено выполнять процедуру завершения работы ОС, устанавливать системное время, завершать чужие процессы, создавать учетные записи пользователей, изменять права доступа к некоторым каталогам и файлам. Администратор может также урезать возможности пользовательского интерфейса, убрав, например, некоторые пункты из меню операционной системы, выводимого на дисплей пользователя.

Обработка исключений.

Неформально исключение – это аномальное событие, прерывающее выполнение программы. Термины «исключение» и «прерывание» в большинстве случаев являются синонимами.

Прерывания являются основной движущей силой любой операционной систе­мы. Периодические прерывания от таймера вызывают смену процессов в мультипрограммной ОС, а прерывания от устройств ввода-вывода управляют потоками данных, которыми вычислительная система обменивается с внешним миром.

Система пре­рываний переводит процессор на выполнение потока команд, отличного от того, который выполнялся до сих пор, с последующим возвратом к исходному коду. Из сказанного можно сделать вывод о том, что механизм прерываний очень похож на механизм выполнения процедур. Это на самом деле так, хотя ме­жду этими механизмами имеется важное отличие.

Переключение по прерыва­нию отличается от переключения, которое происходит по команде безусловно­го или условного перехода, предусмотренной программистом в потоке команд приложения. Переход по команде происходит в заранее определенных програм­мистом точках программы в зависимости от исходных данных, обрабатываемых программой. Прерывание же происходит в произвольной точке потока команд программы, которую программист не может прогнозировать. Прерывание возни­кает либо в зависимости от внешних по отношению к процессу выполнения про­граммы событий, либо при появлении непредвиденных аварийных ситуаций в процессе выполнения данной программы. Сходство же прерываний с процеду­рами состоит в том, что в обоих случаях выполняется некоторая подпрограмма, обрабатывающая специальную ситуацию, а затем продолжается выполнение ос­новной ветви программы.

Читайте также:
Ansel что это за программа

В зависимости от источника прерывания делятся на три больших класса:

Внешние (аппаратные) прерывания могут возникать в результате действий пользователя или оператора за терминалом или же в результате поступления сигналов от аппарат­ных устройств – сигналов завершения операций ввода-вывода, вырабатываемых контроллерами внешних устройств компьютера, такими, как принтер или нако­питель на жестких дисках, или же сигналов от датчиков управляемых компьюте­ром технических объектов. Внешние прерывания называют также аппаратными, отражая тот факт, что прерывание возникает вследствие подачи некоторой аппа­ратурой (например, контроллером принтера) электрического сигнала, который передается (возможно, проходя через другие блоки компьютера, например кон­троллер прерываний) на специальный вход прерывания процессора. Данный класс прерываний является асинхронным по отношению к потоку инструкций преры­ваемой программы. Аппаратура процессора работает так, что асинхронные пре­рывания возникают между выполнением двух соседних инструкций, при этом система после обработки прерывания продолжает выполнение процесса уже на­чиная со следующей инструкции.

Внутренние прерывания, называемые также исключениями (exception), происхо­дят синхронно выполнению программы при появлении аварийной ситуации в ходе исполнения некоторой инструкции программы. Примерами исключений явля­ются деление на нуль, ошибки защиты памяти, обращения по несуществующему адресу, попытка выполнить привилегированную инструкцию в пользовательском режиме и т. п. Исключения возникают непосредственно в ходе выполнения так­тов команды (“внутри” выполнения).

Программные прерывания отличаются от предыдущих двух классов тем, что они по своей сути не являются “истинными” прерываниями. Программное прерыва­ние возникает при выполнении особой команды процессора, выполнение которой имитирует прерывание, т.е. переход на новую последовательность инструк­ций. Причины использования программных прерываний вместо обычных инст­рукций вызова процедур будут изложены ниже, после рассмотрения механизма прерываний.

Прерываниям приписывается приоритет, с помощью которого они ранжируются по степени важности и срочности. О прерываниях, имеющих одинаковое значе­ние приоритета, говорят, что они относятся к одному уровню приоритета преры­ваний.

Прерывания обычно обрабатываются модулями операционной системы, так как действия, выполняемые по прерыванию, относятся к управлению разделяемыми ресурсами вычислительной системы – принтером, диском, таймером, процессо­ром и т. п. Процедуры, вызываемые по прерываниям, обычно называют обработ­чиками прерываний, или процедурами обслуживания прерываний (Interrupt Service Routine, ISR). Аппаратные прерывания обрабатываются драйверами соответствую­щих внешних устройств, исключения – специальными модулями ядра, а про­граммные прерывания – процедурами ОС, обслуживающими системные вызовы. Кроме этих модулей, в операционной системе может находиться так называемый диспетчер прерываний, который координирует работу отдельных обработчиков прерываний.

Источник: megaobuchalka.ru

Управляем нагрузкой по USB с помощью ПК и ATMega8

В наше время все больше находят применение устройства, позволяющие управлять нагрузками с помощью ПК. Обычно это некий коммутатор силовых нагрузок, подключаемый к компьютеру и специальное программное обеспечение.

Встречаются готовые образцы, которые позволяют управлять нагрузками удаленно через интернет, например, давая возможность включать свет, ТЭНы в бане, различные клапаны и т.д. Современные технологии позволяют делать устройства миниатюрными и быстродействующими.
Описанное в статье устройство создавалось в рамках учебного курса университета в виде курсового проекта, поэтому начну с самого начала.

Камрад, рассмотри датагорские рекомендации

Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.

↑ Анализ

Для решения задачи я решил применить микроконтроллер, который должен иметь на борту приемопередатчик UART и минимум три свободных порта для трёх каналов управления (количество их может быть увеличено и зависит от числа нагрузок). Вполне подходящим оказался микроконтроллер семейства AVR — ATMega8, как самый распространенный и недорогой.

Для создания связи устройства через USB-порт с ПК я использовал аппаратный преобразователь USB-UART с использованием микросхемы FT232RL.

↑ Схема структурная

Структурную схему можно представить в следующем виде:

Тут все очень просто и почти не требует пояснения. Вся электрическая часть устройства состоит из следующих элементов:
a) Блок управления включения/выключения нагрузки
b) Микроконтроллер
c) Преобразователь USB – UART
d) ПК и программа управления устройством

После подключения устройства к ПК пользователь запускает программу управления устройством. При удачном подключении от устройства придёт сообщение, после чего можно будет управлять нагрузкой. Данные о включении или выключении выводятся в окне программы.

↑ Схема электрическая принципиальная

Связь с компьютером осуществляется с помощью преобразователя USB-UART на FT232RL, для чего используется выводы 3 и 4 порта D микроконтроллера, соответствующие сигналам RxD и TxD. Схема подключения осуществляется согласно документации на FT-232RL и ATMega8. Кварцевый резонатор имеет частоту 7.3728 Мгц. Управление нагрузкой осуществляется с помощью гальванически развязанного ключа на симисторе BT138-600 и оптопаре MOC3061. Такого ключа достаточно для нагрузки до 12А.
Схема выглядит следующим образом:

Исключён фрагмент. Полный вариант доступен меценатам и полноправным членам сообщества.

DD1 — ATMega8
DD2 — FT232RL
R1 — 10K
R2-R4 — 470R
R5,R7,R9 — 200R
R6,R8,R10 — 470K
C1-C3 — 22pF
C4 — 0.1mF
Z1 — 7.3728MHz
D1-D3 — MOC3061
T1-T3 — BT138-600E
X1 — DS1107, USB-A вилка на кабель
X2 — B5B-XH-A, вилка прямая на плату
X3 — клеммник барьерный DG25C-B-08P-13-00A(H)

Читайте также:
Программа free cam 8 для чего нужна

↑ А как же это все должно работать?

Подойдя к стадии написания программного обеспечения для МК я задался вопросом, а как же это все будет работать. Немного подумав, я решил, что алгоритм работы должен выглядеть следующим образом:

После включения микроконтроллера (его подключения к ПК), инициализируется его работа, устанавливается режим работы приемо-передатчика UART, после чего разрешаются прерывания и МК ждет приема данных от программы, запущенной на ПК.

При запуске программы и удачном подключении устройства, программа обменивается с МК данными иполучает сообщение об удачном подключении. При повторном подключении программы к уже включенной плате, устройство посылает сообщение о количестве и номере включенных устройств.
Работает МК в режиме ожидания, пока не произойдет прерывание по приему данных. Описанный выше цикл повторяется бесконечно, пока включено питание устройства.

↑ Прошивка для МК

Программа, отвечающая за работу МК написана с использованием WinAVR и отлаживалась виртуально на ПК при помощи пакета ISIS 7 Professional. Увидеть исходный код и получить готовую прошивку можно скачав архив внизу статьи.
Если кому-то будет интересен результат компиляции кода, то он представлен ниже:

> «make.exe» all
——— begin ———
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Size before:
AVR Memory Usage
—————-
Device: atmega8

Program: 1666 bytes (20.3% Full)
(.text + .data + .bootloader)

dаta: 581 bytes (56.7% Full)
(.data + .bss + .noinit)

Compiling C: ra1.c
avr-gcc -c -mmcu=atmega8 -I. -gstabs -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./ra1.lst -std=gnu99 -MMD -MP -MF .dep/ra1.o.d ra1.c -o ra1.o

Linking: ra1.elf
avr-gcc -mmcu=atmega8 -I. -gstabs -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ra1.o -std=gnu99 -MMD -MP -MF .dep/ra1.elf.d ra1.o —output ra1.elf -Wl,-Map=ra1.map,—cref -lm

Creating load file for Flash: ra1.hex
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock ra1.elf ra1.hex

Creating load file for EEPROM: ra1.eep
avr-objcopy -j .eeprom —set-section-flags=.eeprom=»alloc,load»
—change-section-lma .eeprom=0 —no-change-warnings -O ihex ra1.elf ra1.eep || exit 0

Creating Extended Listing: ra1.lss
avr-objdump -h -S -z ra1.elf > ra1.lss

Creating Symbol Table: ra1.sym
avr-nm -n ra1.elf > ra1.sym

Converting to AVR Extended COFF: ra1.cof
avr-objcopy —debugging —change-section-address .data-0x800000 —change-section-address .bss-0x800000 —change-section-address .noinit-0x800000 —change-section-address .eeprom-0x810000 -O coff-ext-avr ra1.elf ra1.cof

Discarding local symbol outside any compilation unit: .do_copy_data_start
Discarding local symbol outside any compilation unit: .do_copy_data_loop
Discarding local symbol outside any compilation unit: .do_clear_bss_start
Discarding local symbol outside any compilation unit: .do_clear_bss_loop
avr-objcopy: —change-section-vma .eeprom+0xff7f0000 never used
avr-objcopy: —change-section-lma .eeprom+0xff7f0000 never used
avr-objcopy: —change-section-vma .noinit+0xff800000 never used
avr-objcopy: —change-section-lma .noinit+0xff800000 never used

Size after:
AVR Memory Usage
—————-
Device: atmega8

Program: 1666 bytes (20.3% Full)
(.text + .data + .bootloader)

dаta: 581 bytes (56.7% Full)
(.data + .bss + .noinit)

> Process Exit Code: 0
> Time Taken: 00:04

↑ Программа для ПК

Написание программы для ПК для меня было уже куда более интересным. Т.к. раньше мне уже доводилось встречаться с Delphi изначально был выбран он. Но дойдя до стадии использования в проекте объекта для работы с COM-портом встретился с проблемой (возможно сам не доглядел): ни в одной сборке студий я такой объект не обнаружил.
Тогда я взял самоучитель по С# и, посидев с ним 2 вечера после работы, приступил к написанию пробной версии программы. Внешне вышла она не очень привлекательной, но это не главное. Главное — работает!

В верхнем разделе меню я добавил небольшую справку о том, как должно быть сконфигурировано подключенное к ПК устройство.

В общем, программа получилась такой как я хотел, хотя осталась еще пара идей, которые хотелось бы реализовать позднее.
Для работы программы COM-порт необходимо настроить следующим образом:
Baund Rate — 9600
Data bits — 8
Stop Bits — 1

↑ Сборка

Проект был собран на монтажной плате, ПП не разрабатывалась. Прилагаю к статье файл модели в Proteus 7.6 SP4.

↑ Заключение

В заключении хочется сказать, что работа над проектом продолжается.
В планах:
• реализация FIFO,
• наращивание числа коммутаторов,
• доработка управляющего ПО

Спасибо за внимание!

↑ Файлы

Исходники и прошивка МК:
AVR.zip 70.42 Kb ⇣ 74

Наш файловый сервис предназначен для полноправных участников сообщества «Datagor Electronics».

Для получения файла зарегистрируйтесь и войдите на сайт с паролем.

Программа управления по USBдля Win:
USB-Controll.zip 26.83 Kb ⇣ 72

Наш файловый сервис предназначен для полноправных участников сообщества «Datagor Electronics».

Для получения файла зарегистрируйтесь и войдите на сайт с паролем.

Модель в Proteus 7.6 SP4:
All.zip 920.45 Kb ⇣ 60

Наш файловый сервис предназначен для полноправных участников сообщества «Datagor Electronics».

Для получения файла зарегистрируйтесь и войдите на сайт с паролем.

Источник: datagor.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru