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

Автор: Пользователь скрыл имя, 27 Декабря 2012 в 09:08, курсовая работа

Описание работы

USB (англ. Universal Serial Bus, абревіатура читається ю-ес-бі) — укр. універсальна послідовна шина, призначена для з'єднання периферійних пристроїв. Шина USB представляє собою послідовний інтерфейс передачі даних для середньошвидкісних та низькошвидкісних периферійних пристроїв. Для високошвидкісних пристроїв на сьогодні кращим вважається FireWire. USB-кабель представляє собою дві виті пари: по одній парі відбувається передача даних в кожному напрямку (диференціальне включення), а інша пара використовується для живлення периферійного пристрою (+5 В).

Работа содержит 1 файл

Kuts_5_8_PP.doc

— 3.27 Мб (Скачать)

Рис.1

2.Програма в робочому вигляді  (Рис. 2)

 

 

Рис. 2

 

 

 

Графіки передачі посимвольних даних прізвища Куць в системі кодування NRZI.

 

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

 

 

 

Додаток

Лістинг програми:

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

using System.Runtime.InteropServices;

 

namespace Kuts_USB

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

            MyInit();

        }

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]

        public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);

        const int WM_DeviceChange = 0x219; //что-то связанное с usb

        const int DBT_DEVICEARRIVAL = 0x8000; //устройство подключено

        const int DBT_DEVICEREMOVECOMPLETE = 0x8004; // устройство отключено

 

        protected override void WndProc(ref Message m)

        {

            base.WndProc(ref m);

 

            if (m.Msg == WM_DeviceChange)

            {

                if (m.WParam.ToInt32() == DBT_DEVICEARRIVAL)

                {

 

                    {

                        {

 

                        }

                    }

 

 

 

                 

 

 

 

  MessageBox.Show("Новий пристрій знайдено!");

 

                }

                if (m.WParam.ToInt32() == DBT_DEVICEREMOVECOMPLETE)

                {

                  

                    MessageBox.Show("Пристрій вилучено");

                }

              

                base.WndProc(ref m);

               

                if (m.Msg == WM_DeviceChange)

                {

                    if (m.WParam.ToInt32() == DBT_DEVICEREMOVECOMPLETE)

                    {

 

                        DriveInfo[] driveinfo = DriveInfo.GetDrives();

                        comboBox2.Items.Clear();

                        foreach (DriveInfo drive in driveinfo)

                        {

                            if ((drive.IsReady == true))

                            {

                                if (drive.DriveType.ToString() == "Removable")

                                    comboBox2.Items.Add(drive.Name.ToString());

 

                            }

                            comboBox2.Text = "";

                            richTextBox1.Text = "";

                            {

                            }

 

 

 

                        }

                    }

                }

            }

        }

          

          

       

 

        private void MyInit()

        {

 

            DriveInfo[] pff = DriveInfo.GetDrives();

            foreach (DriveInfo driveinfo in pff)

            {

                if ((driveinfo.IsReady == true) && (driveinfo.DriveType == DriveType.Removable))

                {

                    if (driveinfo.DriveType.ToString() == "Removable")

                        comboBox2.Items.Add(driveinfo.Name);

                    comboBox2.SelectedIndex = 0;

 

                }

 

 

            }

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

 

            Stream myStream = null;

            OpenFileDialog openFileDialog1 = new OpenFileDialog();

openFileDialog1.InitialDirectory = textBox1.Text.ToString();

 

            openFileDialog1.Filter = "txt files (*.txt)|*.txt";

            openFileDialog1.FilterIndex = 2;

            openFileDialog1.RestoreDirectory = true;

           

 

 

            if (openFileDialog1.ShowDialog() == DialogResult.OK)

            {

                try

                {

                    if ((myStream = openFileDialog1.OpenFile()) != null)

                    {

                        using (myStream)

                        {

                            TextReader read = new StreamReader(openFileDialog1.FileName);

                            richTextBox1.Text = read.ReadToEnd();

                            toolStripStatusLabel1.Text = "Шлях до файлу:  " + openFileDialog1.FileName;

                            read.Close();

 

 

                        }

                    }

                }

                catch (Exception ex)

                {

                    MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);

                }

            }

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            Stream myStream;

            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

 

            saveFileDialog1.Filter = "txt files (*.txt)|*.txt";

            saveFileDialog1.FilterIndex = 2;

            saveFileDialog1.RestoreDirectory = true;

 

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)

            {

                if ((myStream = saveFileDialog1.OpenFile()) != null)

                {

 

                    myStream.Close();

                    File.WriteAllText(@saveFileDialog1.FileName, richTextBox1.Text.ToString());

                }

            }

        }

 

        private void открытьToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Stream myStream = null;

            OpenFileDialog openFileDialog1 = new OpenFileDialog();

 

            openFileDialog1.InitialDirectory = comboBox2.Items[comboBox2.SelectedIndex].ToString();

            openFileDialog1.Filter = "txt files (*.txt)|*.txt";

            openFileDialog1.FilterIndex = 2;

            openFileDialog1.RestoreDirectory = true;

 

            if (openFileDialog1.ShowDialog() == DialogResult.OK)

            {

                try

                {

                    if ((myStream = openFileDialog1.OpenFile()) != null)

                    {

                        using (myStream)

                        {

                            TextReader read = new StreamReader(openFileDialog1.FileName);

                            richTextBox1.Text = read.ReadToEnd();

                            read.Close();

 

                        }

                    }

                }

                catch (Exception ex)

                {

                    MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);

                }

            }

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            DriveInfo[] driveinfo = DriveInfo.GetDrives();

            comboBox2.Items.Clear();

            foreach (DriveInfo drive in driveinfo)

            {

                if ((drive.IsReady == true))

                {

                    if (drive.DriveType.ToString() == "Removable")

                        comboBox2.Items.Add(drive.Name.ToString());

 

                }

                comboBox2.Text = "";

                richTextBox1.Text = "";

               

                label1.Text = "";

                label2.Text = "";

                label4.Text = "";

                label5.Text = "";

                label6.Text = "";

                label7.Text = "";

                label8.Text = "";

                label9.Text = "";

                textBox1.Text = "";

                textBox2.Text = "";

                listBox1.Items.Clear();

                toolStripStatusLabel1.Text = "";

                progressBar1.Value = 0;

            }

        }

 

        private void toolStripStatusLabel1_Click(object sender, EventArgs e)

        {

 

        }

 

        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)

        {

            Drive_Info = new System.IO.DriveInfo(comboBox2.Text);

            label1.Text = Drive_Info.Name;

            if (Drive_Info.IsReady)

            {

               

               

                label4.Text = Drive_Info.DriveFormat;

                label5.Text = Drive_Info.DriveType.ToString();

                label6.Text =  Drive_Info.RootDirectory.FullName;

                label2.Text = comboBox2.SelectedItem.ToString() + "*.txt";

                label8.Text =  + (Drive_Info.TotalFreeSpace / 1024 / 1024) + " Mb";

                long usedSpace = 0;

                usedSpace = Drive_Info.TotalSize - Drive_Info.TotalFreeSpace;

                label9.Text = (usedSpace / 1024 ) + " Kb";

                textBox3.Text = (usedSpace / 1024) + "";

                label7.Text = + (Drive_Info.TotalSize / 1024 ) + " Mb";

                textBox1.Text = comboBox2.SelectedItem.ToString();

                textBox2.Text = comboBox2.SelectedItem.ToString();

                richTextBox1.Text = "";

                listBox1.Items.Clear();

 

               

                progressBar1.Maximum = 3956440;

                progressBar1.Minimum = 0;

                 progressBar1.Value = Convert.ToInt32(textBox3.Text);

 

                DirectoryInfo dir = new DirectoryInfo(textBox1.Text.ToString());

                foreach (FileInfo files in dir.GetFiles("*.txt"))

                {

                    listBox1.Items.Add(files.Name);

                }

 

            }

        }

 

        private void button4_Click(object sender, EventArgs e)

        {

            {

                DriveInfo[] drives = DriveInfo.GetDrives();

                foreach (DriveInfo drive in drives)

                {

                    if ((drive.IsReady == true) && (drive.DriveType == DriveType.Removable))

                    {

                        openFileDialog1.InitialDirectory = comboBox2.Text.ToString();

                                          

 

 

                    }

 

                }

 

            }

        }

 

        private void button5_Click(object sender, EventArgs e)

 

openFileDialog1.InitialDirectory = textBox1.Text.ToString();

            TextReader read = new StreamReader(textBox1.Text);

            richTextBox1.Text = read.ReadToEnd();

            read.Close();

            toolStripStatusLabel1.Text = "Шлях до файлу:  " + textBox1.Text ;

                  }

 

        private void button6_Click(object sender, EventArgs e)

       

        private void Form1_Load(object sender, EventArgs e)

        {

            System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives();

            for (int i = 0; i <= drives.Length - 1; i++)

           

        }

 

        private void button6_Click_1(object sender, EventArgs e)

        {

            SaveFileDialog saveFile1 = new SaveFileDialog();

            saveFile1.DefaultExt = "*.txt";

            saveFile1.Filter = "Text files|*.txt";

           if (saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK &&

                saveFile1.FileName.Length > 0)

            {

                using (StreamWriter sw = new StreamWriter(saveFile1.FileName, true))

                {

                    sw.WriteLine(richTextBox1.Text);

                    sw.Close();

                }

            }

        }

        public DriveInfo Drive_Info { get; set; }

 

        private void button7_Click(object sender, EventArgs e)

       

        private void button8_Click(object sender, EventArgs e)

        {

            StreamWriter sw = new StreamWriter(textBox2.Text.ToString());

            sw.WriteLine(richTextBox1.Text);

            sw.Close();

            MessageBox.Show("Файл  " + textBox2.Text.ToString() + "  збережено",

            "Зберегти файл",

            MessageBoxButtons.OK,

            MessageBoxIcon.Exclamation,

            MessageBoxDefaultButton.Button1);

        }

 

         

 

 

   

 


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