6848

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

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

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

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

Украинкский

2013-01-08

60.01 KB

19 чел.

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

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


 

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

75207. Социолингвистика как раздел языкознания 28.5 KB
  Проблематика и базовые понятия социолингвистики: Языковое варьирование Языковые контакты Языковая ситуация Литературный язык Проблематику нередко подразделяют на : Микросоциолингвистику изучающую использование говорящими языковых единиц в рамках отдельных речевых актов в ходе межличностного общения Макросоциолингвистику объектом изучения которой выступают целые языки и их варианты выполняющие различные общественные функции Различают также Синхроническую социолингвистику изучающую социальное функционирование языка на определенном...
75208. Типы письма. Специфика иероглифического типа письма 24.94 KB
  Письмо условная семиотическая система; искусственное образование созданное человеком. Звуковой язык естественный письмо искусственная система. Существовали различные системы письма Начертательное письмо зарождается как пиктография. письмо рисунками.
75209. Билингвизм и диглоссия 27.5 KB
  Билингвизм и диглоссия Билингвизм – явление встречается и описывается в плане синхронии и диахронии на территории одного народа функционируют 2 и более языков. Это достаточно редкое явление. В целом как явление очень распространено.
75211. Понятие субстрата, суперстрата и адстрата 41.5 KB
  Каждое из этих понятий явлений оказывается связанным с историческими событиями народа который владел этим языком. Результат – это кардинальное изменение языков которые они затрагивают: изменяется грамматический строй словарный состав фонетический строй...
75212. КУЛЬТУРА США В КОНЦЕ XVIII – СЕРЕДИНЕ XIX ВЕКОВ 16.1 KB
  Период развития американской культуры между Гражданской и первой мировой войной отличался напряженностью. Писатели архитекторы и художники XIX в. Одна из самых значительных фигур в американской литературе XIX века Марк Твен выдающийся сатирик мастер как реалистической прозы Приключения Тома Сойера Приключения Гекльберри Финна.
75213. Национальный язык. Формы его существования и образования 34 KB
  Национальный язык. Формы его существования и образования Национальный язык – это важнейшая форма. Каждый национальный язык состоит из основной его части – литературного языка и развитых диалектов. Диалекты: Территориальные на определенной территории могли стать национальными языками как провансальский язык на юге Франции.
75214. КУЛЬТУРА И НАУКА США ПОСЛЕ ВТОРОЙ МИРОВОЙ ВОЙНЫ. СОВРЕМЕННАЯ НАУКА И КУЛЬТУРА США 19.68 KB
  КУЛЬТУРА И НАУКА США ПОСЛЕ ВТОРОЙ МИРОВОЙ ВОЙНЫ. СОВРЕМЕННАЯ НАУКА И КУЛЬТУРА США После Второй мировой войны центр мирового искусства переместился из Парижа в НьюЙорк. Кино главный вид искусства и всей культуры США. Классическая музыка в США находится на высоком уровне.