Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

На тему- Дослідження режимів функціонування інтерфейсу USB

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 9.11.2024

PAGE   \* MERGEFORMAT 5

Міністерство освіти І науки України

національний університет “Львівська політехніка”

Кафедра ЕОМ

Лабораторні роботи 5 - 8 з периферійних пристроїв

На тему:

"Дослідження режимів функціонування інтерфейсу USB"

Виконав:

студент групи КІ-31

Громов А. С.

 Прийняв:

Миц А.М.

Львів – 2011


Зміст

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

2. Короткі теоретичні відомості............................................................................3

3. Хід роботи...........................................................................................................4

4. Висновки.............................................................................................................4

5. Текст програми (у додатку)...............................................................................

6. Демонстрація програми на комп’ютері...........................................................4


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

Ознайомитися з процесом передачі даних через послідовний інтерфейс USB. Ознайомитися з процесом створення програми передавача даних через послідовний USB інтерфейс. Ознайомитися з процесом створення елементів програми для сканування USB-портів на наявність підключених пристроїв до послідовного USB інтерфейсу. Ознайомитися з процесом створення та налаштування основних параметрів програми передачі даних через послідовний USB інтерфейс. Ознайомитися з процесом формування та передачі посимвольних даних у графічному представленні в схемі кодування NRZI через послідовний USB інтерфейс.

2. Короткі теоретичні відомості

USB (англ. Universal Serial Bus, абревіатура читається ю-ес-бі) — укр. універсальна послідовна шина, призначена для з'єднання периферійних пристроїв. Шина USB представляє собою послідовний інтерфейс передачі даних для середньошвидкісних та низькошвидкісних периферійних пристроїв. Для високошвидкісних пристроїв на сьогодні кращим вважається FireWire. USB-кабель представляє собою дві виті пари: по одній парі відбувається передача даних в кожному напрямку (диференціальне включення), а інша пара використовується для живлення периферійного пристрою (+5 В). Завдяки вбудованим лініям живлення, що запезпечують струм до 500 мА, USB часто дозволяє використовувати пристрої без власного блоку живлення (якщо ці пристрої споживають струм потужністю не більше 500 мА). До одного контролера шини USB можно під'єднати до 127 пристроїв через ланцюжок концентраторів (вони використовують топологію «зірка»). На відміну від багатьох інших стандартних роз’ємів, для USB характерні довговічність та механічна міцність. Інтерфейс USB є послідовною, напівдуплексною, двонаправленою шиною. Шина дозволяє підключити до ПК до 127 фізичних пристроїв. Кожен фізичний пристрій може, у свою чергу, складатися з декількох логічних (наприклад, клавіатура з вбудованим манипулятором-трекболом). Кабельна розводка USB починається з вузла (host). Хост володіє інтегрованим кореневим концентратором (root hub), який надає декілька роз'ємів USB для підключення зовнішніх пристроїв. Потім кабелі йдуть до інших пристроїв USB, які також можуть бути концентраторами, і  функціональних компонентів (наприклад, модем або акустична система). Концентратори часто вбудовуються в монітори і клавіатури (які є типовими

складеними пристроями). Концентратори можуть містити до семи "витікаючих"

портів. Для передачі сигналів шина USB використовує чотирипровідною інтерфейс. Одна пара провідників ("+5В" і "загальний") призначена для живлення периферійних пристроїв з навантаженням до 500 мА. Дані передаються по іншій парі ("D+" "D-"). Для передачі даних використовується диференціальна напруга до 3 В (з метою зниження впливу шуму) і схема кодування NRZI (що позбавляє від необхідності виділяти додаткову пару провідників під тактовий сигнал).

3. Хід роботи

Створюємо новий проект MFC у середовищі Microsoft Visual Studio 2008. Обираємо створення проекту в діалоговому вікні. У вікні вставляю поля (Edit) для вводу імені файлу та введення повідомлення, яке запишеться в цей файл. Також додаю елемент ComboBox, який позволяє обрати необхідний USB-пристрій. Додаю кнопки для оновлення списку USB-пристроїв та для надсилання повідомлення.

4. Висновки

Виконуючи цю лабораторну роботу я освоїв основи роботи з USB-портом. Навчився відправляти та отримувати дані з USB-порта. Освоїв як створюється передаваємий сигнал відповідно до даних, що передаються.

5. Текст програми (у додатку)

6. Демонстрація програми на комп’ютері


PP_GROMOV_lab2Dlg.h

// PP_Gromov_lab2Dlg.h : файл заголовка

//

#pragma once

#include "afxwin.h"

// диалоговое окно CPP_Gromov_lab2Dlg

class CPP_Gromov_lab2Dlg : public CDialog

{

// Создание

public:

CPP_Gromov_lab2Dlg(CWnd* pParent = NULL); // стандартный конструктор

// Данные диалогового окна

 enum { IDD = IDD_PP_GROMOV_LAB2_DIALOG };

 protected:

 virtual void DoDataExchange(CDataExchange* pDX); // поддержка DDX/DDV

// Реализация

protected:

HICON m_hIcon;

 // Созданные функции схемы сообщений

 virtual BOOL OnInitDialog();

afx_msg void OnSysCommand(UINT nID, LPARAM lParam);

afx_msg void OnPaint();

afx_msg HCURSOR OnQueryDragIcon();

DECLARE_MESSAGE_MAP()

public:

afx_msg void OnBnClickedButton1();

CComboBox combo1;

CString myString;

afx_msg void OnBnClickedButton2();

CString mySource;

};

PP_GROMOV_lab2Dlg.cpp

// PP_Gromov_lab2Dlg.cpp : файл реализации

//

#include "stdafx.h"

#include "PP_Gromov_lab2.h"

#include "PP_Gromov_lab2Dlg.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// Диалоговое окно CAboutDlg используется для описания сведений о приложении

class CAboutDlg : public CDialog

{

public:

CAboutDlg();

// Данные диалогового окна

 enum { IDD = IDD_ABOUTBOX };

 protected:

 virtual void DoDataExchange(CDataExchange* pDX);    // поддержка DDX/DDV

// Реализация

protected:

DECLARE_MESSAGE_MAP()

};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)

{

}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

END_MESSAGE_MAP()

// диалоговое окно CPP_Gromov_lab2Dlg

CPP_Gromov_lab2Dlg::CPP_Gromov_lab2Dlg(CWnd* pParent /*=NULL*/)

: CDialog(CPP_Gromov_lab2Dlg::IDD, pParent)

, myString(_T(""))

, mySource(_T("ENTER_HERE_NAME_OF_FILE.TXT"))

{

 

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

void CPP_Gromov_lab2Dlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

DDX_Control(pDX, IDC_COMBO1, combo1);

DDX_Text(pDX, IDC_EDIT1, myString);

DDX_Text(pDX, IDC_EDIT2, mySource);

}

BEGIN_MESSAGE_MAP(CPP_Gromov_lab2Dlg, CDialog)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

 //}}AFX_MSG_MAP

ON_BN_CLICKED(IDC_BUTTON1, &CPP_Gromov_lab2Dlg::OnBnClickedButton1)

ON_BN_CLICKED(IDC_BUTTON2, &CPP_Gromov_lab2Dlg::OnBnClickedButton2)

END_MESSAGE_MAP()

// обработчики сообщений CPP_Gromov_lab2Dlg

BOOL CPP_Gromov_lab2Dlg::OnInitDialog()

{

CDialog::OnInitDialog();

 // Добавление пункта ''О программе...'' в системное меню.

 // IDM_ABOUTBOX должен быть в пределах системной команды.

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

 if (pSysMenu != NULL)

{

 CString strAboutMenu;

 strAboutMenu.LoadString(IDS_ABOUTBOX);

 if (!strAboutMenu.IsEmpty())

 {

  pSysMenu->AppendMenu(MF_SEPARATOR);

  pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

 }

}

 // Задает значок для этого диалогового окна. Среда делает это автоматически,

 //  если главное окно приложения не является диалоговым

SetIcon(m_hIcon, TRUE);   // Крупный значок

SetIcon(m_hIcon, FALSE);  // Мелкий значок

 // TODO: добавьте дополнительную инициализацию

 char driver[3] = "A:";

 for (; driver[0] < 91; driver[0]++)

 if(GetDriveTypeA(driver)==2)

  combo1.AddString((LPCTSTR) driver);

 

 return TRUE;  // возврат значения TRUE, если фокус не передан элементу управления

}

void CPP_Gromov_lab2Dlg::OnSysCommand(UINT nID, LPARAM lParam)

{

 if ((nID & 0xFFF0) == IDM_ABOUTBOX)

{

 CAboutDlg dlgAbout;

 dlgAbout.DoModal();

}

 else

{

 CDialog::OnSysCommand(nID, lParam);

}

}

// При добавлении кнопки свертывания в диалоговое окно нужно воспользоваться приведенным ниже кодом,

//  чтобы нарисовать значок. Для приложений MFC, использующих модель документов или представлений,

//  это автоматически выполняется рабочей средой.

void CPP_Gromov_lab2Dlg::OnPaint()

{

 if (IsIconic())

{

 CPaintDC dc(this); // контекст устройства для рисования

 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

 // Выравнивание значка по центру клиентского прямоугольника

 int cxIcon = GetSystemMetrics(SM_CXICON);

 int cyIcon = GetSystemMetrics(SM_CYICON);

 CRect rect;

 GetClientRect(&rect);

 int x = (rect.Width() - cxIcon + 1) / 2;

 int y = (rect.Height() - cyIcon + 1) / 2;

 // Нарисуйте значок

 dc.DrawIcon(x, y, m_hIcon);

}

 else

{

 CDialog::OnPaint();

}

}

// Система вызывает эту функцию для получения отображения курсора при перемещении

//  свернутого окна.

HCURSOR CPP_Gromov_lab2Dlg::OnQueryDragIcon()

{

 return static_cast<HCURSOR>(m_hIcon);

}

void CPP_Gromov_lab2Dlg::OnBnClickedButton1()

{

 char driver[3] = "A:";

 for (; driver[0] < 91; driver[0]++)

 if(GetDriveTypeA(driver)==2)

  combo1.AddString((LPCTSTR) driver);

 

 // TODO: добавьте свой код обработчика уведомлений

}

void CPP_Gromov_lab2Dlg::OnBnClickedButton2()

{

UpdateData();

DWORD dwBytesWritten;

CString My_Data = myString;

CString D1;

combo1.GetLBText(combo1.GetCurSel(), D1);

 int DR_T = GetDriveTypeA(D1);

 if  (DR_T == 2) // якщо флеш-пам'ять, то

{

 CString My_File;

 My_File += D1;   // "H:"

 My_File += "\\";  // "H:\"

 My_File += mySource; // "H:\\MyFile.txt"

 HANDLE hFile;

 hFile=CreateFileA(My_File, GENERIC_READ|GENERIC_WRITE , 0, NULL, OPEN_ALWAYS, 0, NULL);

 if(hFile == INVALID_HANDLE_VALUE)

 {

  //  QMessageBox * err1 = new QMessageBox(QMessageBox::Critical,"Error","Can`t write file");

  //  qWarning("open() - CreateFileA Error code: %ld", GetLastError());

  //err1->show();

  //return;

  MessageBox("Error");

 }

 int len1 = My_Data.GetLength();

 WriteFile(hFile, My_Data, len1, &dwBytesWritten, NULL);

 CloseHandle(hFile);

}

 else

 MessageBox("Error");

 // TODO: добавьте свой код обработчика уведомлений

}




1. тема с s степенями свободы Как выглядит общее решение уравнений колебаний системы с 2 степенями свободы зави
2. .5 Отношения собственности как фундаментальные правила игры.
3. ГЕНЕЗИС 1998 Переводчик Екатерина Патяева Научный редактор Альбина Локтионова Художник Виктор Топылин.
4. Тема- Изучение методов дискретного описания непрерывных звеньев Вариант 3 Д
5.  ВВЕДЕНИЕ 2 ПОНЯТИЕ И ПРИЗНАКИ СОУЧАСТИЯ В ПРЕСТУПЛЕНИИ 2
6. тематика Наука о человеке переживают сегодня общий кризис
7. Понятие и классификация юридических лиц
8. тема трудового права Трудовые отношения- общая характеристика
9. Статья- Преступления по Вавилонскому Талмуду
10. Особо охраняемые природные территории это участки земли водной поверхности и воздушного пространства на
11. темах отсчета Поскольку скорость движения есть величина относительная зависящая от выбора системы отсч
12. Лабораторная работа Выполнил- Патрышев А
13. роскошных синтезов.html
14. Си шарп основным постулатом которого является высказывание- всякая сущность есть объект
15. XII РЕСПУБЛИКА БУРЯТИЯ ЗАКОН О ГОСУДАРСТВЕННОЙ МОЛОДЕЖНОЙ ПОЛИТИКЕ В РЕСПУБЛИКЕ БУРЯТИЯ
16. В класса Сафонова Александра Костюченко Александра Забалуева Анастасия
17. ны соединения состоящие только из атомов углерода и водорода в которых все атомы связаны простыми с
18. правовые и процессуальноправовые
19. реферат дисертації на здобуття наукового ступеня кандидата філологічних наук ІваноФранківс
20. Трактат о живописи великого итальянского художника Леонардо да Винчи 1452~1519 составлен на основе его много