6848

Програмування зовнішніх пристроїв

Лабораторная работа

Информатика, кибернетика и программирование

Програмування зовнішніх пристроїв Мета роботи: Навчитись розробляти програми виводу/вводу інформації через інтерфейс USB, а також використовувати функції третіх фірм. Хід виконання роботи Вивчити будову інтерфейса USB (наприклад, М.Гук Интерфейс...

Украинкский

2013-01-08

60.01 KB

20 чел.

Програмування зовнішніх пристроїв

Мета роботи: Навчитись розробляти програми виводу/вводу інформації через інтерфейс USB, а також використовувати функції третіх фірм.

Хід виконання роботи

1. Вивчити будову інтерфейса USB (наприклад, М.Гук «Интерфейсы персонального компьютера. Справочник»), ознайомитись з мікросхемою перетворювача USB-Parallel FT245 фірми FTDI Chip.

2. Ознайомитись з функціями для роботи з мікросхемою FT245, функціями роботи з таймером, функцією затримки та побітовими операціями і операціями зсуву.

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

При здачі роботи отримати новий алгоритм і зробити необхідні зміни в програмі.

4. Підготувати звіт.

Короткий опис інтерфейсу USB

Як відомо, все менше сучасних комп’ютерів оснащується паралельними та послідовними інтерфейсами для під’єднання переферійних пристроїв, а їх місце займає інтерфейс USB (Univesal Serial Bus – універсальна послідовна шина).

USB – це послідовний протокол та фізичне з’єднання, що передає всі дані по витій парі проводів. Інша пара забезпечує живлення пристрою. Для сучасної версії протоколу (USB 2.0) пристрої підтримують наступні режими передачі:

  1.  Low speed: 10—1500 кбіт/c (використовується для інтерактивних пристроїв: клавіатури, мишки, джойстики)
  2.  Full speed: 0,5—12 Мбіт/с (аудіо/відео пристрої)
  3.  High speed: 25—480 Мбіт/с (відеопристрої, пристрої зберігання інформації)

Для під’єднання периферійних пристроїв використовуються роз’єми типу А (Standard A) та В (Standard B).

Зовнішній вигляд

Номер контакта

Позначення

Колір проводу

1

VBus

червоний

2

D-

білий

3

D+

зелений

4

GND

чорний

Для живлення периферійних пристроїв використовуються проводи VBus – ланцюг +5 В та GND – ланцюг «корпуса». Будь-який пристрій може отримувати по шині струм до 100 мА, а при видачі спеціального запиту споживання може бути збільшене максимум до 500 мА. Дані передаються по проводам D+ и D- диференційно, тобто станам 0 та 1 відповідає різниця напруг між цими проводами 200 мВ при напрузі на D+ або D-  більше 2,8 В. Окрім того, ці проводи використовуються для ініціалізації режиму передачі (шляхом підтягування одного з сигнальних проводів до VBus через резистор 1,5 кОм).

В лінійках сучасних мікроконтролерів та мікропроцесорів існують окремі мікросхеми, що мають вбудовані приймач-передавачі USB. В разі відсутності вбудованого приймач-передавача для організації зв’язку між периферійним пристроєм та персональним комп’ютером можуть використовуватись спеціалізовані мікросхеми, наприклад, для перетворення USB-пакетів в паралельний код використовується мікросхема FT245, для в послідовний протокол RS232 – мікросхема FT232.

Короткий опис функцій для роботи з мікросхемою FT245

Оскільки написання драйверів для роботи з шиною USB під керуванням операційної системи Windows складне навіть для професійних програмістів, будемо використовувати драйвери, розроблені фірмою FTDI Chip (http://www.ftdichip.com/Drivers/D2XX.htm). Найбільш часто використовуються наступні функції (див. специфікацію), прототипи яких описані у файлі FTD2XX.h:

FT_STATUS FT_ListDevices(PVOID pvArg1,PVOID pvArg2, DWORD dwFlags);

FT_STATUS FT_Open(int iDevice, FT_HANDLE *ftHandle);

FT_STATUS FT_Close(FT_HANDLE ftHandle);

FT_STATUS FT_Write(FT_HANDLE ftHandle, LPVOID lpBuffer,

 DWORD dwBytesToWrite, LPDWORD lpdwBytesWritten);

FT_STATUS FT_Read(FT_HANDLE ftHandle, LPVOID lpBuffer,

 DWORD dwBytesToRead, LPDWORD lpdwBytesReturned);

FT_STATUS FT_ResetDevice(FT_HANDLE ftHandle);

FT_STATUS FT_Purge(FT_HANDLE ftHandle, DWORD dwMask);

FT_STATUS FT_SetTimeouts(FT_HANDLE ftHandle, DWORD dwReadTimeout,

 DWORD dwWriteTimeout);

FT_ListDevices() повертає інформацію про пристрої FTDI, що підключені на даний момент до комп’ютера; в найпростішому випадку функція повертає дані про кількість пристроїв. Перед тим як передавати дані, необхідно відкрити пристрій за допомогою функції FT_Open(), що повертає дескриптор (унікальний номер), який використовується в подальшому всіма функціями для ідентифікації пристрою. Якщо пристрій був відкритий успішно, дані можна передавати і приймати за допомогою функцій FT_Write() та FT_Read(). В кінці сеансу зв’язку пристрій необхідно закрити, використовуючи функцію FT_Close().

Додаткові функції, що використовуються при роботі з мікросхемою FT245:

FT_ResetDevice() – виконує ініціалізацію мікросхеми наново;

FT_Purge() – очищує буфери прийому та/або передачі;

FT_SetTimeouts() – встановлює час очікування виконання операції читання/запису;

Додаткові відомості

При читанні даних інколи виникає необхідність виділяти біти, що відповідають за певний стан зовнішнього пристрою. Для виділення потрібного біта зручно використовувати побітові операції І, АБО та побітову інверсію, а також так звані маски. Маскою називається число, що дозволяє виділити значення певних бітів в байті (або встановити в байті певні біти, не змінюючи інші). Наприклад, щоб виконати певні дії в залежності від значення п’ятого біта з байта, записаного в змінній status, можна виконати таку перевірку:

#define MASK 32

..................

if(status & MASK==1)

 /* дії_при_встановленому_біті */

else

/* дії_при_скинутому_біті  */

оскільки 25=32.

Щоб встановити третій біт, не змінюючи значення інших, можна скористатись операцією побітового АБО:

#define MASK 8

..................

status=status | MASK; /* третій біт стане рівним 1 */

Для проведення лабораторних робіт використовується макет, зібраний за схемою, що наведена на рисунку. До виводів портів через опори номіналом 2 кОм під’єднані світлодіоди.

При передачі байта на відповідні світлодіоди подається напруга. Щоб подати напругу на окремі світлодіоди, потрібно за допомогою функції FT_Write() передати число, що “відповідає” за них (маску). Наприклад, щоб засвітити світлодіод №5, на порт потрібно видати число 25=32. Якщо необхідно подати живлення на декілька світлодіодів, потрібно в порт записати суму масок: для одночасного загоряння світлодіодів №2 та №6 потрібно видати в порт число 22+26=4+64=68.

Зауваження:

1) Щоб використати описи типів даних, які знаходяться в заголовочному файлі FTD2XX.h, необхідно включити у вихідний код заголовочний файл windows.h.

2) Для зборки виконуваного модуля необхідно включити в проект бібліотеку FTD2XX.lib.

3) Оскільки мікросхема FT245 призначена для роботи з мікроконтролерами, який підтверджує прийом даних, а при односторонній передачі даних таке підтвердження неможливе, перед новою передачею даних необхідно очистити буфер прийому.

4) Функція затримки delay() відсутня в C++ Builder. Замість неї необхідно використовувати аналогічну функцію Sleep().

Завдання

Написати програму для роботи з інтерфейсом USB. Необхідно створити 4 функції для роботи з світлодіодами: 3 функції задають послідовність загоряння діодів за допомогою побітових операцій (наприклад, одна функція змушує діоди блимати, друга – засвічує діоди послідовно так, що вогник «біжить» в один бік, третя – два вогника разом – в інший) і передаються в якості параметра в четверту, що працює з портом (подає напругу на світлодіоди).

Створити меню вибору послідовності загоряння діодів. Передбачити можливість повернення в меню під час блимання світлодіодів при натисканні кнопки на клавіатурі. На екрані повинне дублюватись число, що виводиться в порт.

Зміст звіту:

1. Мета роботи.

2. Схема електрична принципова зовнішнього пристрою.

3. Алгоритми функцій, що задають послідовність загоряння світлодіодів


 

А также другие работы, которые могут Вас заинтересовать

39690. Поднастройка станков. Автоматическое управление точностью в процессе обработки 134 KB
  Автоматическое управление точностью в процессе обработки Для обеспечения требуемой точности обработки партии заготовок недостаточно правильно осуществить настройку станка. Под влиянием погрешностей в процессе обработки происходит смещение поля рассеивания размеров деталей к границе допуска. Задача состоит в том чтобы обеспечить необходимую точность обработки в пределах поля допуска и иметь наименьшее количество поднастроек. Для повышения точности и производительности обработки необходимо или уменьшать составляющие погрешности обработки т.
39691. Анализ точности методами математической статистики 149.5 KB
  Систематические постоянные погрешности могут быть выявлены измерением деталей после обработки и их влияние может быть уменьшено технологическими мерами. Кривые распределения и оценка точности на их основе Статистический метод оценки точности применяется в условиях производства большого количества деталей. Для его применения необходимо произвести выборку деталей из обрабатываемых на исследуемой операции. По результатам измерения деталей выборки строится опытная кривая распределения к которой по критерию согласия подбирается теоретический...
39692. Вибрации при механической обработке 55 KB
  Наибольшее влияние на процессы резания оказывают вынужденные колебания и автоколебания. В отличие от вынужденных колебаний автоколебания начинаются одновременно с началом процесса резания и прекращаются с его окончанием. Причиной возникновения автоколебаний является сам процесс резания Переменная сила поддерживающая колебания создается и управляется процессом резания и при его прекращении исчезает. Автоколебания возникают в связи с непостоянством сил резания вследствие изменения сил трения стружки по передней поверхности режущего...
39693. Особенности проектирования технологических процессов механической обработки для ГПС без использования ПР 39 KB
  Заготовки устанавливаются и закрепляются в приспособлениях которые в виде различных наладок монтируются на палетах. Наладчик комплектует наладку и устанавливает заготовки в соответствии со схемой установки транслируемой системой управления ГПС на экран терминала участка комплектации. Наиболее приемлемы три варианта обработки: сохранение на окончательно обработанной заготовке одной необработанной поверхности для базирования закрепления и обработки заготовок за один установ; предварительная обработка вне ГПС на участке подготовки баз...
39694. Точность и надежность обработки заготовок в ГПС 43.5 KB
  На основании оценки надежности технологических систем производится: оптимизация технологических маршрутов операций и режимов обработки; выбор средств технологического оснащения; установление периодичности замены режущего инструмента; установление такта выпуска изделий. При ужесточении этих требований например для квалитетов IT5 и IT6 возрастает роль составляющих погрешностей обработки обусловленных ошибками начальной настройки инструмента его износа тепловыми деформациями технологической системы ошибками установки инструмента...
39695. ТЕХНОЛОГИЯ ПРОИЗВОДСТВА ДЕТАЛЕЙ МАШИН В ГИБКИХ ПРОИЗВОДСТВЕННЫХ СИСТЕМАХ 111.5 KB
  Опыт внедрения гибких автоматизированных систем в механообработке показывает возможность снижения трудоемкости обработки заготовок в несколько раз; сокращения обслуживающего персонала; увеличения выпуска продукции за счет повышения загрузки оборудования сокращения сроков и стоимости подготовки производства. К основным преимуществам гибких производственных систем механообработки относится: резкое увеличение производительности труда в процессе изготовления единичной и мелкосерийной продукции; быстрое реагирование на изменение требований...
39696. Особенности проектирования технологических процессов для ГПС 114 KB
  Дальнейший анализ заготовок обработка которых предполагается в ГПС производится в следующей последовательности: анализ возможности унификации конструктивных элементов и параметров деталей подготовка предложений по отработке конструкций на технологичность; анализ возможности получения заготовок более прогрессивными методами формообразования в целях уменьшения трудоемкости механообработки расхода материалов улучшения качества изделий и подготовка предложений по переводу технологии на прогрессивные методы получения заготовок; ...
39697. Технология изготовления деталей машин 147 KB
  Технологическая база поверхности центровых отверстий или наружные цилиндрические поверхности вала. Технологическая база наружная поверхность и торец прутка. Технологическая база отверстие на оправке. Технологическая база черная поверхность обода или ступицы и торец Выполняется в зависимости от конструкции и типа производства на токарном револьверном или карусельном станке.
39698. ТЕХНОЛОГИЯ СБОРКИ ИЗДЕЛИЙ И ИЗГОТОВЛЕНИЯ ДЕТАЛЕЙ 414.5 KB
  Значение сборки при изготовлении машин Сборка является заключительным этапом изготовления машин и в значительной степени определяет ее эксплуатационные качества. Одни и те же детали соединенные при разных условиях сборки могут значительно изменять долговечность их службы. Технологические процессы изготовления деталей в большинстве случаев подчинены технологии сборки машины.