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. Алгоритми функцій, що задають послідовність загоряння світлодіодів


 

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

49053. Цифровая система передачи непрерывных сообщений 614.5 KB
  Краткое описание процесса преобразвания сигнала от источника сообщения. Источник сообщений выдает на выходе непрерывный сигнал t который пeредаётся в формирователь первичного сигнала для преобразования в первичный электрический сигнал bt. Количество уровней квантования L определяется исходя из ошибки квантования пикфактора сигнала и отношения сигнал шум. Далее сигнал bикмt передается в модулятор это преобразование цифрового сигнала в аналоговый ut.
49054. Прогнозирование ДТП 205 KB
  Основные модели и стратегии Перспективы метода компьютерного моделирования Основные модели и стратегии Искусственный интеллект это научная отрасль занимающаяся исследованием и моделированием естественного интеллекта человека. Естественный интеллект человека является очень сложным объектом исследований и его моделирование осуществляется на разных уровнях абстрагирования...
49055. ПРОГНОЗИРОВАНИЕ КОТИРОВОК АКЦИЙ С ИСПОЛЬЗОВАНИЕМ НЕЙРОСЕТИ 253 KB
  Сущность акций Факторы влияющие на котировки акций Прогнозирование котировок акций с применением Нейросимулятора
49056. ЦИФРОВЫЕ СИСТЕМЫ ПЕРЕДАЧИ НЕПРИРЫВНЫХ СООБЩЕНИЙ 2.06 MB
  Вид модуляции сигнала во второй ступени ЧМ. С учётом заданного вида модуляции сигнала определить его параметры характеризующие форму и требуемое значение полосы пропускания приёмного устройства. По полученному значению вероятности ошибки по формулам потенциальной помехоустойчивости найти минимальное значение отношения мощностей сигнала и помехи необходимое для обеспечения допустимого уровня искажения кода за счёт действия помех. Рассчитать требуемое значение полосы приёмника при использовании сложного сигнала.
49057. Расчет проходной (методической) печи 23.07 MB
  Определение основных размеров печи. Проходные методические печи чаще всего принимаются для нагрева слитков металла перед прокаткой для придания им пластичности. В зоне сжигания топлива температура максимальная на 100200оС выше конечной температуры нагрева металла к концу печи она уменьшается. При нагреве тонких изделий время нагрева могло бы быть уменьшено при поддержании высокой температуры по всей длине печи.
49058. ПРОЕКТИРОВАНИЕ ВОЛОКОННО-ОПТИЧЕСКОЙ ЛИНИИ СВЯЗИ НОВОСИБИРСК – КРАСНОЯРСК 814.5 KB
  Разработана линейная часть волоконно-оптической системы передачи данных со следующими параметрами: скоростью передачи 136264 Мбит с; рабочей длиной волны 1550 нм; протяженностью трассы 761 км; вероятность ошибки BER не более 1010; энергетическим бюджетом в 40 дБ; избыточностью системы 27; коэффициентом готовности 0.Скорость передачи определяется исходя из п. Волоконная оптика: компоненты системы передачи измерения.
49059. Создание новой нейросистемы (разработанной в программе разработчиков Borland Delphi 2006) 870 KB
  Нейронные сети. Нейронные сети и нейрокомпьютеры - это одно из направлений компьютерной индустрии в основе которого лежит идея создания искусственных интеллектуальных устройств по образу и подобию человеческого мозга1. Искусственные нейронные сети представляют собой устройства использующие огромное число элементарных условных рефлексов называемых по имени недавно умершего канадского физиолога синапсами Хебба. Уже сейчас искусственные нейронные сети применяются для решения очень многих задач обработки изображений управления роботами и...
49060. Сканирующая туннельная микроскопия 1.64 MB
  История создания сканирующего туннельного микроскопа Сканирующие элементы зондовых микроскопов Недостатки пьезокерамики Устройства для прецизионных перемещений зонда и образца Шаговые электродвигатели Шаговые пьезодвигатели Измерительные методики СТМ Топографический режим Токовый режим Туннельная спектроскопия ВАХ контакта металлметалл ВАХ контакта металл полупроводник ВАХ контакта...
49061. Изготовление зубьев ковша экскаватора с применением стали 110Г13Л 604 KB
  Разработка технологического процесса термической обработки стали. Расшифруйте состав и определите группу стали по назначению; объясните назначения введения Mn в эту сталь; назначьте режим термической обработки и опешите структуру после термообработки. Совершенство производства выпуск современных разнообразных машиностроительных конструкций инструмента специальных приборов и машин невозможны без дальнейшего развития производства...