DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Передача даних через USB-порт

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра електронних обчислювальних машин

Інформація про роботу

Рік:
2014
Тип роботи:
Лабораторна робота
Предмет:
Периферійні пристрої
Група:
КН-11
Коротко про документ

Про що ця робота

Лабораторна робота присвячена вивченню процесу передачі даних через інтерфейс USB. У ході роботи розроблено програму на C++ з використанням .NET для взаємодії з USB-пристроями.

У роботі розглядаються

  • USB-порт
  • Передача даних
  • Периферійні пристрої
  • Інтерфейс USB
  • Програмування на C++
  • Windows Forms

Зміст і розділи

  1. Мета
  2. Теоретичні відомості
  3. Хід роботи
  4. Висновок
  5. Додаток 1: Текст програми
  6. Додаток 2: Скріншоти робочої програми
Для кого:Студенти технічних спеціальностей вищих навчальних закладів
Викладачі:Не вказано

Ключові поняття

USBпослідовна шинаінтерфейсNRZIC++Visual StudioWindows Formsфайлова система

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ, МОЛОДІ ТА СПОРТУ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  Лабораторна робота (5-8) з дисципліни " Периферійні пристрої " На тему: «Передача даних через USB-порт» Львів 2012р. Мета: ознайомитися з процесом передачі даних через послідовний інтерфейс USB. Теоретичні відомості: USB (англ. Universal Serial Bus, абревіатура читається ю-ес-бі) — укр. універсальна послідовна шина, призначена для з'єднання периферійних пристроїв. Шина USB представляє собою послідовний інтерфейс передачі даних для середньошвидкісних та низькошвидкісних периферійних пристроїв. Для передачі даних використовується диференціальна напруга до 3 В (з метою зниження впливу шуму) і схема кодування NRZI (що позбавляє від необхідності виділяти додаткову пару провідників під тактовий сигнал). Всі концентратори повинні підтримувати на своїх витікаючих портах пристрої обох типів, не дозволяючи високошвидкісному трафіку досягати низькошвидкісних пристроїв. Слід також відзначити, що різними виробниками пропонувалися специфікації, що описують інтерфейс різних апаратних реалізацій контроллера USB. USB 1.0 Версія представлена в січні 1995 року. Технічні характеристики: високошвидкісне з'єднання — 12 Мбіт/с максимальна довжина кабеля для високошвидкісного з'єднання — 3 м низькошвидкісне з'єднання — 1,5 Мбіт/с максимальна довжина кабеля для низькошвидкісного з'єднання — 5 м максимальна кількість пристроїв підімкнення (враховуючи концентратори) — 127 можливість підключення пристроїв з різними швидкостями обміну інформацією напруга живлення для переферійних пристроїв — 5 В максимальний струм споживання на один пристрій — 500 мA USB 1.1 Випущено в вересні 1998. Виправлені проблеми виявлені у версії 1.0, в основному пов'язані з концентраторами. Інтерфейс USB 1.1 декларує два режими: 1)низькошвидкісний підканал (пропускна спроможність - 1,5 Мбіт/с), призначений для таких пристроїв, як миші і клавіатури; 2)високопродуктивний канал, що забезпечує максимальну пропускну спроможність 12 Мбіт/с, що може використовуватися для підключення зовнішніх накопичувачів або пристроїв обробки і передачі аудио- і відеоінформації. USB 2.0 Версія випущена в квітні 2000 року. USB 2.0 відрізняється від USB 1.1 лише швидкістю передачі, яка зросла та незначними змінами в протоколі передачі даних для режиму Hi-speed (480 Мбіт/сек). Існує три швидкості роботи пристроїв USB 2.0: Low-speed 10—1500 Кбіт/c (використовується для інтерактивних пристроїв: клавіатури, мишки, джойстики) Full-speed 0,5—12 Мбіт/с (аудіо/відео пристрої) Hi-speed 25—480 Мбіт/с (відео пристрої, пристрої зберігання інформації) В дійсності ж хоча швидкість USB 2.0 і може досягати 480Мбит/с, пристрої типу жорстких дисків чи взагалі будь-які інші носії інформації ніколи не досягають її по шині USB, хоча і могли б. Це можна пояснити доволі просто, шина USB має доволі велику затримку між запитом на передачу інформацію і саме самою передачею даних («довгий ping»). Наприклад шина FireWire забезпечує максимальну швидкість у 400 Мбіт/с, тобто на 80Мбіт/с меньше чим у USB, дозволяє досягнути більшої швидкості обміну даними з носіями інформації. комп'ютера, який в потрібний момент може і не виявитися під руками. Хід роботи: Дана програма написана на базі .NET, з використанням мови С++. Для створення проекту використовується Visual Studio 2008. Для створення форми були виконані наступні дії. 1.File -> New -> Project 2. Так як вибрана мова С++ використовуємо компілятор CLR, та шаблон Windows Forms Application, вказується назва проекту та місце його зберігання. 3.Далі використовуємо стандартні налаштування. 4.Потім додаємо на форму потрібні контроли. За допомогою панелі параметри налаштовуємо їх початкові параметри. Подвійним натисканням на певному контролі зявляється можливість написати процедуру на дану подію(так програмуються кнопки для натискання). На подію внесення тексту в textBox та richTextBox, також описуємо певні процедури. І створюємо подібне вікно. 5. Далі пишемо процедури, які розширюють можливості процедур різних подій. В результаті отримуємо програму для передачі данних через порт USB. Текст програми міститься у Додатку. Висновок: На даній лабораторній роботі, я написав програму яка через порт USB створює файл та дає можливість записувати та дописувати інформацію в файл. Та ознайомився з процесом передачі даних через порт. Додаток 1: Текст програми #pragma once #include"windows.h" namespace USBport { using namespace System; using namespace System::IO; using namespace System::Text; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; public ref class Form1 : public System::Windows::Forms::Form{ public: Form1(void){ InitializeComponent();} private: System::Windows::Forms::TextBox^ textBox1; private: System::Windows::Forms::Button^ button2; private: System::Windows::Forms::RichTextBox^ richTextBox1; private: System::Windows::Forms::Button^ button3; public: private: System::Windows::Forms::Timer^ timer1; public: static char* DT=new char[250]; protected: ~Form1() {if (components){ delete components;} }private: System::Windows::Forms::ComboBox^ comboBox1; private: System::Windows::Forms::Button^ button1; private: System::ComponentModel::IContainer^ components; protected: private: #pragma region Windows Form Designer generated code void InitializeComponent(void) #pragma endregion String^ CharToSysString(char* ch) {String^ str; str = gcnew String(ch); return str;} private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { if (File::Exists(comboBox1->Text+"\\"+textBox1->Text)!=true) { FileStream^ fs=File::Create(comboBox1->Text+"\\"+textBox1->Text); fs->Close();}; StreamWriter^ sw = File::AppendText(comboBox1->Text+"\\"+textBox1->Text); for(int nI=0; nI<richTextBox1->Lines->Length; nI++) sw->Write(richTextBox1->Lines[nI]+"\r\n"); sw->Close();} private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) { richTextBox1->Clear(); String^ STR="Start"; FileStream^ sw = File::OpenRead(comboBox1->Text+"\\"+textBox1->Text); array<Byte>^b = gcnew array<Byte>(1024); UTF8Encoding^ temp = gcnew UTF8Encoding( true );while ( sw->Read( b, 0, b->Length ) > 0 ) richTextBox1->AppendText( temp->GetString( b ) ); sw->Close(); } private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { FileStream^ fs=File::Create(comboBox1->Text+"\\"+textBox1->Text); fs->Close(); StreamWriter^ sw = gcnew StreamWriter(comboBox1->Text+"\\"+textBox1->Text); for(int nI=0; nI<richTextBox1->Lines->Length; nI++) sw->Write(richTextBox1->Lines[nI]+"\r\n"); sw->Close();} private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) { DT[1]=':'; DT[2]='\0'; String^ str; str = comboBox1->Text; comboBox1->Text=""; comboBox1->Items->Clear(); for (int nI=0; nI<25; nI++){ DT[0] = char(65+nI); if (GetDriveTypeA(DT)==2){ comboBox1->Items->Add(CharToSysString(DT)); if(str==CharToSysString(DT)) comboBox1->Text=str;}} if((comboBox1->Text=="")&&(comboBox1->Items->Count!=0)) comboBox1->Text = comboBox1->Items[0]->ToString(); if(comboBox1->Text==""){ button1->Enabled=false; button2->Enabled=false; button3->Enabled=false;}else if((textBox1->Text=="")||(comboBox1->Text=="")) { button1->Enabled=false; button2->Enabled=false; button3->Enabled=false; } else { button3->Enabled=true; if(richTextBox1->Lines->Length!=0) { button1->Enabled=true; button2->Enabled=true;} }} private: System::Void richTextBox1_KeyPress(System::Object^ sender, System::Windows::Forms::KeyPressEventArgs^ e) { if((richTextBox1->Lines->Length==0)||(textBox1->Text=="")||(comboBox1->Text=="")) { button1->Enabled=false; button2->Enabled=false; } else { button1->Enabled=true; button2->Enabled=true; }} private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) { if((textBox1->Text=="")||(comboBox1->Text=="")) { button1->Enabled=false; button2->Enabled=false; button3->Enabled=false; } else { button3->Enabled=true; if(richTextBox1->Lines->Length!=0){ button1->Enabled=true; button2->Enabled=true;}}}};} Додаток 2: Скріншоти робочої програми: Рис1: Пошук пристроїв підключених до USB  Рис2: Відкриття файлу Hello.txt  Рис3: Вміст текстового файлу  Рис4: ASCII та NRZI кодування даних  Рис5: Підключення сторонніх пристроїв (не накопичувачів)- USB мишка 
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!