Главная Статьи IgorPlugUSB - USB приемник ДУ для компьютера. ч4
 
   
Главная
Новости
Статьи
FAQ
Конкурсы
Форум
Ссылки

Получать новости
на E-mail:











 
IgorPlugUSB - USB приемник ДУ для компьютера. ч4
Автор: Rimlyanin   
03.06.2008 03:10
В этой части перевода статьи Implementation USB into microcontroller: IgorPlug-USB (AVR) (Внедрение USB в микроконтроллер: IgorPlug-USB (AVR)), речь пойдет о подключении приемника инфракрасного дистанционного управления компьютером IgorPlugUSB и установке драйверов.

Установка устройства IgorPlug-USB (AVR):

Для успешной коммуникации между устройством USB и компьютером, устройству необходим драйвер. Этот драйвер запрашивается операционной системой при первом подключении IgorPlug-USB (AVR) в порт USB компьютера. В будущем, этот драйвер, вероятно, не будет необходим: возможно изменение во встроенном программном обеспечении, тогда устройство станет стандартным классом USB (СКРЫТЫЙ класс, Класс памяти...), — для этих классов есть драйвера, встроенные в операционную систему. Преимущество собственного драйвера в том, что мы контролируем поведение драйвера. Я делаю выбор в пользу "собственного" драйвера только из-за возможности изучения, "как он работает" и главным образом за простоту внедрения во встроенное программное обеспечение устройства.

Следующие изображения показывают операции установки устройства (и установки драйвера) на первом включении IgorPlug-USB (AVR) в порт USB. Драйвер — одинаковый для Windows98, WindowsME, Windows2000 и WindowsXP (не подходит для Windows95):

Вначале для windows XP:

Windows находит устройство IgorPlug-USB (AVR).

 Выберите установку из нашего списка драйверов.

 Здесь просматриваем папки с установочными файлами (файл INF и СИСТЕМНЫЙ драйвер).

 Windows делает некоторые необходимые изменения.

 Драйвер не имеет цифровой подписи от Microsoft — но мы не останавливаем установку.

 Windows делает резервную копию (для безопасного восстановления ;-)).

 И в случае когда Windows не находит СИСТЕМНЫЙ драйвер,... ...

 …тогда мы показываем правильный путь к драйверу.

 И установка закончена:

 

И для Windows98:

То же самое как и для WindowsXP, только в другой визуальной форме.

 

 

 

 

 

 После удачной установки мы можем видеть устройство в "Менеджере устройства":

Менеджер Устройства для WindowsXP:

 

 

 

 Менеджер Устройства для Windows98:

 

 

 

 

Программная поддержка:

Как я уже упоминал — для правильной работы устройства необходим драйвер, который запрашивается операционной системой в процессе установки. Этот драйвер я написал в Microsoft Windows2000 DDK (среда средств создания драйверов), (и имеет некоторые усовершенствования по сравнению со старым драйвером). Название этого драйвера — "IgorPlug.sys", он включен в установочный пакет.

Для установки необходим установочный описательный файл INF. Когда Windows запрашивает этот файл в процессе установки устройства, мы должны просмотреть папку с этим файлом INF, если у нас запросят расположение драйвера. В этом файле содержится установочная информация для данного устройства – и в соответствии с этой информацией будет установлен драйвер – и, в конечном итоге, последуют другие действия. Я создал этот файл INF согласно файлу шаблона из книги о USB. Поскольку каждому устройству USB должен быть задан номер продавца (VID) от USB-организации(USB-IF), то я «позаимствовал» этот номер у компании Atmel (я надеюсь, что Atme1 простят мне это — поскольку я не буду платить примерно 1500 US$ за получение номера), и я внедряю его в микропроцессор и в файл INF. Название этого файла — "IgorPlug.inf" и он включен в установочный пакет. Таким образом для установки устройства понадобятся только два файла ("IgorPlug.sys" и "IgorPlug.inf").

Таким образом, мы успешно установили устройство IgorPlug-USB (AVR). И теперь мы можем приступить к его тестированию. Для этой цели я написал библиотеку DLL "IgorUSB.dll", которая содержит функции, выполняемые устройством IgorPlug-USB (AVR). Эта библиотека DLL взаимодействует с драйвером " IgorPlug.sys "и обеспечивает сериализацию потока данных (когда мы используем DLL от нескольких потоков или приложений). Библиотека DLL для доступа к устройству изначально открыта для программистов: экспортируемые функции от DLL опубликованы.

Следующие изображения иллюстрируют информацию о библиотеке DLL и СИСТЕМНОМ драйвере, как это было отображено для WindowsXP:

 

В итоге, я создал приложение — программу “от AVR к USB", которая показывает все функции устройства IgorPlug-USB (AVR), вызывая функции библиотеки DLL "IgorUSB.dll".

Функции программы:

  • - настройка и чтение 8-битового порта данных (см. описание схемы),
  • - управление потоком битов данных порта и считывание состояния этого потока данных
  • - управление выходным напряжением на выводах разъема данных (допустимое напряжение или высокий ввод импеданса) и считывание этого состояния
  • - чтение состояния уровня данных на выводах (обновляется каждые 200ms)
  • - установка диодов LED, которые связаны с выводами данных через резисторы (катод на заземлении, необходимо установить все биты как выводы)
  • - чтение данных от всего СППЗУ
  • - запись данных на все СППЗУ
  • - запись — передача данных на последовательную линию микропроцессора
  • - получение символа (ов) от последовательной линии (запрос каждые 100ms)
  • - изменение скорости пересылки данных в бодах последовательной линии (недопустимая скорость пересылки данных в бодах — скорость пересылки данных в бодах с ошибкой большей чем 4 % — отображается как сводное число (номер), о неудачной установке сообщает красный цвет в поле скорости пересылки данных в бодах)
  • - считывание настоящей внутренней скорости пересылки данных в бодах (запрос каждые 100ms)
  • - получение осциллоскопического отчета инфракрасного кода, полученного во внутренний буфер микропроцессора(обновление каждые 50ms)
    (полученный инфракрасный код, отображен в графической форме на осциллографе — его декодирование должно сделать другое приложение)
    (в течение получения инфракрасного кода — этот код передается также по последовательной линии, но "на лету" – необходимо установить высокую скорость пересылки данных в бодах RS232, поэтому после включения, скорость пересылки данных — 57600 бодов)

 

Следующее изображение показывает функции демонстрационной программы от AVR к USB и его свойства (в стиле WindowsXP):

 

 

Содержание 

Tags:
 
 




Последние комментарии

   
 

© 2010-2024 www.modding.kh.ua Копирование авторских текстов и фотографий возможно только с письменного разрешения администрации сайта.

bigmir)net TOP 100 Яндекс.Метрика

 
 
 
Харьковский моддинг сайт https://modding.kh.ua/