Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_лаб_ОТТ.doc
Скачиваний:
33
Добавлен:
23.11.2019
Размер:
13.25 Mб
Скачать

Лабораторная работа № 6 передача данных с использованием интерфейса usb

ЦЕЛЬ РАБОТЫ

Целью работы является изучение основ передачи информации между ПЭВМ и подключаемыми к нему устройствами, а также разработка простейшего ПО для ПЭВМ, выполняющего обмен данными с использованием интерфейса USB.

ЗАДАНИЕ К РАБОТЕ

1. Изучить возможности работы программной среды C++ Builder 6 с USB-контроллерами FTDI.

2. В программной среде C++ Builder 6 разработать ПО, осуществляющее обмен данными по интерфейсу USB;

3. Произвести передачу и прием данных с помощью разработанного ПО.

4. Сделать выводы по результатам работы.

ПОЯСНЕНИЯ К РАБОТЕ

Универсальная последовательная шина USB (Universal Serial Bus) разрабо­тана для подключения к компьютеру периферийных устройств различного класса. Данный интерфейс в настоящее время получил широкое распространение за счет удобства использования и достаточно высокого быстродействия. Устройства, подключаемые посредством интерфейса USB могут быть идентифицированы без перезагрузки компьютера. Данное свойство интерфейса USB известно как функция «Plug and Play». Интерфейс USB является промышленным стандартом расширения архитектуры ПЭВМ [1].

Интерфейс USB обеспечивает обмен данными между хост-компьютером [1] (как правило, это ПЭВМ) и множеством одновременно доступных периферийных устройств.

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

Обмен данными по интерфейсу USB осуществляется в трех скоростных режимах: режим низкой скорости - 1.5 Мбит/с, режим полной скорости - 12 Мбит/с, режим высокой скорости - 480 Мбит/с [1].

Обмен данными возможен только между ПЭВМ и устройством. Обмен данными между устройствами на шине напрямую, как правило, не допускается.

Физический интерфейс USB состоит из четырех проводников: 2 для питания внешнего устройства (VCC и GND) и 2 сигнальных проводника (DATA+ и DATA-). Через проводники питания передается постоянное напряжение приблизительно 5В с нагрузочной способностью до 500 мА. Уровни напряжения - дифференциальные: когда DATA+ имеет высокий уровень, тогда DATA- находится на низком уровне. Однако, имеются некоторые случаи, когда DATA+ и DATA- имеют один и тот же уровень, например, при EOP (конец пакета).

В соответствии со стандартом USB высокий уровень на сигнальных проводниках должен составлять 3,0…3,6В, при этом, напряжение питания шины USB, поступающее от ПЭВМ составляет 4.4…5.25 В.

Принцип определения подключения и отключения USB-устройства основан на контроле сопротивления линии USB.

Скорость передачи информации устройства, подключенного к конкретному USB-порту ПЭВМ определяется по уровням сигналов на линиях DATA+ и DATA-. У низкоскоростных USB-устройств между выводами DATA- и VCC подключен подтягивающий резистор. У полноскоростных устройств подтягивающий резистор подключается между выводами DATA+ и VCC.

Для работы интерфейса USB на стороне ПК также должен быть предусмотрен специальный драйвер устройства.

В целом реализация протокола интерфейса USB достаточно сложна. В большинстве случаев для разработки периферийных устройств используются выпускаемые промышленностью микросхемы USB-контроллеров. Они осуществляют преобразование интерфейса USB в какой-либо другой интерфейс (например, RS-232). Для организации обмена данными с разрабатываемым периферийным устройством, как правило, необходима разработка ПО для ПЭВМ. Большинство производителей USB-контроллеров поставляют набор динамических библиотек, необходимых для разработки ПО в различных программных средах.

ХОД РАБОТЫ

Для выполнения лабораторной работы используется ПЭВМ с операционной системой Windows XP/7 и стенд «USB», оснащенный USB-контроллером FTDI. Студентами разрабатывается ПО, состоящее из оконного приложения, выполняющего обмен по интерфейсу USB.

1. Собрать рабочее место для выполнения лабораторной работы согласно рис. 6.1;

Рис. 6.1

2. Запустить программную среду C++ Builder 6, создать новый проект (тип проекта - Application) [2];

3. Cохранить проект на жестком диске ПЭВМ используя пункт Save All меню File (рис. 6.2);

Рис. 6.2

4. Разместить на форме один компонент Memo, три компонента Button, один компонент OpenDialog, один компонент SaveDialog, три компонента Edit [3]. Далее будем использовать следующие имена компонентов: Memo1, Button1, Button2, Button3, OpenDialog1, SaveDialog1, Edit1, Edit2, Edit3 (примерный вид окна после размещения указанных компонентов показан на рис. 4.3);

Рис. 6.3

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

Для установки драйвера FTDI на компьютер необходимо вставить в привод CD-ROM установочный диск для комплекса МХ-01.

Если в системе драйвер FTDI не был установлен ранее, то при подсоединении включенного регистратора кабелем к порту USB компьютера в системной панели операционной системы должно появиться сообщение «Найдено новое оборудование: USB <-> Serial» (рис. 1.3).

Рис. 1.3

Через несколько секунд операционная система запустит программу «Мастер нового оборудования», и появится окно, представленное на рис. 1.4.

В появившемся окне следует выбрать пункт «Установка из указанного места» и нажать кнопку «Далее».

Рис. 1.4

В следующем окне (рис. 1.5) необходимо отметить пункт «Включить следующее место поиска», нажать кнопку «Обзор» и выбрать папку «X:\FTDI Driver\», где X – условное обозначение литеры привода CD-ROM, в котором находится установочный диск для комплекса МХ-01, и нажать кнопку «Далее».

Рис. 1.5

После этого Мастер установки оборудования произведет установку драйвера FTDI. Если в процессе установки появилось окно с сообщением «Установка этого программного обеспечения может нарушить работу системы» (рис. 1.6), то нажмите в этом окне кнопку «Все равно продолжить».

Рис. 1.6

По окончании установки драйвера должно появиться окно, показанное на рис. 1.7. При успешной установке драйвера в данном окне будет выведено сообщение «Мастер завершил установку программ для FTDI FT8U2XX Device».

Рис. 1.7

После закрытия этого окна нажатием кнопки «Готово», в системной панели операционной системы должно появиться сообщение «Новое оборудование установлено и готово к использованию», что также свидетельствует об успешной установке драйвера и готовности использования регистратора для обмена данными с компьютером через интерфейс USB. Вид данного сообщения продемонстрирован на рис. 1.8.

Рис. 1.8

ж) запустить программу «Диспетчер устройств» и в появившемся окне раскрыть список "КОНТРОЛЛЕРЫ USB". В списке устройств ПК должны появиться новые строки (см. рисунок 4):

- US232R;

- USB <-> Serial;

Рисунок 4

з) в окне диспетчера устройств нажать и отпустить правую кнопку «мыши» на строке US232R. Это приведет к появлению контекстного меню (рисунок 5);

Рисунок 5

и) в контекстном меню выбрать пункт "ОБНОВИТЬ ДРАЙВЕРЫ…". Это вызовет появление окна (рисунок 6);

Рисунок 6

к) в окне на рисунке 6 выбрать пункт "ВЫПОЛНИТЬ ПОИСК ДРАЙВЕРОВ НА ЭТОМ КОМПЬЮТЕРЕ". Результат выбора показан на рисунке 7;

Рисунок 7

л) в окне на рисунке 7 нажать и отпустить кнопку ОБЗОР и установить папку поиска драйверов устройства «X: \...\Drivers_FTDI_x86(32bit)», где X – условное обозначение литеры жесткого диска с разархивированной копией ПО, нажать кнопку "ДАЛЕЕ" и следовать указаниям на экране ПК;

м) в окне диспетчера устройств нажать и отпустить правую кнопку «мыши» на строке USB <-> Serial и повторить действия перечислений и)-л) п.2.1.1;

н) установку драйверов считать успешной при отсутствии в процессе программирования сообщений об ошибках. Закрыть программу «Диспетчер устройств»;

Подключение D2XX библиотеки к разрабатываемого приложению.

Чтобы можно было использовать функции библиотеки D2XX-драйверов предоставляемые фирмой FTDI нужно ее подключить к проекту. Для всех выпускаемых микросхем фирмой FTDI существуют разработанные драйвера устройств, которые можно скачать по адресу: http://www.ftdichip.com/Drivers/D2XX.htm

Для дальнейшей работы будут нужны и необходимы следующие файлы: Ftd2xx.dll, Ftd2xx.h, Ftd2xx.sys. Их надо скопировать в рабочую директорию разрабатываемого проекта - D:\BuilderWork. В эту же директорию из директории - C:\Program Files\Borland\CBuilder6\Bin, копируем файлы impdef.exe и implib.exe, которые помогут сформировать специальный файл библиотеки — Ftd2xx.lib для добавления его в проект и правильной работы приложения в целом.

Запускаем командный интерпретатор для наглядности и отслеживания всех сообщений. Пуск->Выполнить:

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

В результате этих действий получим два файла: Ftd2xx.def, Ftd2xx.lib. Таким образом, была подготовлена совместимая библиотека (Ftd2xx.lib) с той версией среды быстрой разработки приложений Borland C++ Builder, в котором разрабатывается проект.

Подключаем в проект данную библиотеку (Ftd2xx.lib) для этого выбираем в среде разработки меню - Project->Add to project:

В заголовочный файл формы (Video.h) проекта добавляется директива #include

"FTD2XX.h", которая подключает заголовочный файл динамической библиотеки. Компилятор и компоновщик среды быстрой разработки приложений теперь будут связывать функции, предназначенные для работы с USB устройством, с соответствующей динамической библиотекой (Ftd2xx.dll), которая в свою очередь, связывается с предварительно установленным драйвером устройства.

В данный момент разработки приложения, будут доступны все - Функции динамической подключаемой библиотеки, которые можно добавлять и использовать в разрабатываемом приложении для организации обмена между внешним устройством и персональным компьютером по интерфейсу USB 1.1.

ЛИТЕРАТУРА

1. Гук М. Аппаратные интерфейсы ПК. – СПб.: Питер, 2002. – 528 с.

2. Архангельский А. Я. Программирование в C++ Builder 6 – М.: Издательство Бином, 2003. – 1152 с.

3. Архангельский А. Я. C++ Builder 6. Справочное пособие. Книга 2. Классы и компоненты – М.: Бином-Пресс, 2002. – 528 с.