2_2_Rpz (Готовый курсовой проект 10)

2017-12-28СтудИзба

Описание файла

Файл "2_2_Rpz" внутри архива находится в следующих папках: Готовый курсовой проект 10, kursa4-seti. Документ из архива "Готовый курсовой проект 10", который расположен в категории "". Всё это находится в предмете "сетевые технологии" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "сетевые технологии" в общих файлах.

Онлайн просмотр документа "2_2_Rpz"

Текст из документа "2_2_Rpz"

Московский государственный технический университет им. Н.Э.Баумана

_________________________________________________________________

Утверждаю:

Галкин В.А.

"__"_____________2015 г.

Курсовая работа по дисциплине

«Сетевые технологии»

«Локальная безадаптерная сеть»

Пояснительная записка

(вид документа)

писчая бумага

(вид носителя)

14

(количество листов)

ИСПОЛНИТЕЛИ:

студенты группы ИУ5-XX

XXX

XXX

XXX

"___"_________2015 г.



Москва - 2015

________________________________________________________________

Содержание

1. Введение 2

2. Требования к программе 2

3. Определение структуры программного продукта 2

4. Физический уровень 2

5. Настройка COM-порта средствами C# 5

6. Канальный уровень. 9

7. Прикладной уровень. 12

Введение

Данная программа, выполненная в рамках курсовой работы по предмету «Сетевые технологии», предназначена для организации обмена текстовыми сообщениями между соединёнными с помощью интерфейса RS232C компьютерами. Программы позволяет обмениваться компьютерам, соединенным через COM-порты, текстовыми сообщениями и делать широковещательную рассылку при наличии на компьютерах установленной программы.

Требования к программе

К программе предъявляются следующие требования. Программа должна:

  1. устанавливать соединение между компьютерами и контролировать его целостность;

  2. обеспечивать правильность передачи и приема данных с помощью алгоритма кодирования пакета по алгоритму Хэмминга;

  3. обеспечивать функцию передачи сообщений.

  4. обеспечивать функцию широковещательной отправки сообщений.

Программа должна выполняться под управлением OS Windows XP или выше. Поэтому было решено выполнить реализацию программы с помощью среды разработки MS Visual Studio 2012.

Определение структуры программного продукта

При взаимодействии компьютеров между собой выделаются несколько уровней: нижний уровень должен обеспечивать соединение компьютера со средой передачи, а верхний – обеспечить интерфейс пользователя. Программа разбивается на три уровня: физический, канальный и прикладной (см. Приложение «Структурная схема программы»).

- Физический уровень предназначен для сопряжения компьютера со средой передачи.

- Канальный уровень занимается установлением и поддержанием соединения, формированием и проверкой пакетов обмена протоколов верхних модулей.

- Прикладной уровень занимается выполнением задач программы.

Физический уровень

Функции физического уровня

Основными функциями физического уровня являются:

  1. Задание параметров COM-порта.

  2. Установление физического канала.

  3. Разъединение физического канала.

  4. Передача информации из буфера в интерфейс.

  5. Прием информации и ее накопление в буфере.

Описание физического уровня.

Последовательная передача данных означает, что данные передаются по единственной линии. При этом биты байта данных передаются по очереди с использованием одного провода. Для синхронизации группе битов данных обычно предшествует специальный стартовый бит, после группы битов следуют бит проверки на четность и один или два стоповых бита. Иногда бит проверки на четность может отсутствовать.

Из рисунка видно, что исходное состояние линии последовательной передачи данных – уровень логической 1. Это состояние линии называют отмеченным – MARK. Когда начинается передача данных, уровень линии переходит в 0. Это состояние линии называют пустым – SPACE. Если линия находится в таком состоянии больше определенного времени, считается, что линия перешла в состояние разрыва связи – BREAK.

Стартовый бит START сигнализирует о начале передачи данных. Далее передаются биты данных, вначале младшие, затем старшие.

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

Если используется бит четности P, то передается и он. Бит четности имеет такое значение, чтобы в пакете битов общее количество единиц (или нулей) было четно или нечетно, в зависимости от установки регистров порта. Этот бит служит для обнаружения ошибок, которые могут возникнуть при передаче данных из-за помех на линии. Приемное устройство заново вычисляет четность данных и сравнивает результат с принятым битом четности. Если четность не совпала, то считается, что данные переданы с ошибкой. Конечно, такой алгоритм не дает стопроцентной гарантии обнаружения ошибок. Так, если при передаче данных изменилось четное число битов, то четность сохраняется, и ошибка не будет обнаружена. Поэтому на практике применяют более сложные методы обнаружения ошибок.

В самом конце передаются один или два стоповых бита STOP, завершающих передачу байта. Затем до прихода следующего стартового бита линия снова переходит в состояние MARK.

Использование бита четности, стартовых и стоповых битов определяют формат передачи данных. Очевидно, что передатчик и приемник должны использовать один и тот же формат данных, иначе обмен будет невозможен.

Другая важная характеристика – скорость передачи данных. Она также должна быть одинаковой для передатчика и приемника.

Скорость передачи данных обычно измеряется в бодах.

Иногда используется другой термин – биты в секунду (bps). Здесь имеется в виду эффективная скорость передачи данных, без учета служебных битов.

Интерфейс RS232C описывает несимметричный интерфейс, работающий в режиме последовательного обмена двоичными данными. Интерфейс поддерживает как асинхронный, так и синхронный режимы работы.

Последовательная передача данных означает, что данные передаются по единственной линии. При этом биты байта данных передаются по очереди с использованием одного провода. Интерфейс называется несимметричным, если для всех цепей обмена интерфейса используется один общий возвратный провод – сигнальная «земля».

Интерфейс 9-ти контактный разъем.

Номер контакта

Обозначение

Назначение

Обозначение CCITT

1

DCD

Обнаружение несущей

109

2

RD

Принимаемые данные

104

3

TD

Отправляемые данные

103

4

DTR

Готовность терминала к работе

108/2

5

SG

Земля сигнала (схемная)

102

6

DSR

Готовность DCE

107

7

RTS

Запрос передачи

105

8

TD

Отправляемые данные

103

9

RI

Индикатор вызова

125

В интерфейсе реализован биполярный потенциальный код на линиях между DTE и DCE. Напряжения сигналов в цепях обмена симметричны по отношению к уровню сигнальной «земли» и составляют не менее +3В для двоичного нуля и не более -3В для двоичной единицы.

Каждый байт данных сопровождается специальными сигналами «старт» – стартовый бит и «стоп» – стоповый бит. Сигнал «старт» имеет продолжительность в один тактовый интервал, а сигнал «стоп» может длиться один, полтора или два такта.

При синхронной передаче данных через интерфейс передаются сигналы синхронизации, без которых компьютер не может правильно интерпретировать потенциальный код, поступающий по линии RD.

Нуль-модемный интерфейс.

Обмен сигналами между адаптером компьютера и модемом (или 2-м компьютером присоединенным к исходному посредством кабеля стандарта RS-232C) строится по стандартному сценарию, в котором каждый сигнал генерируется сторонами лишь после наступления определенных условий. Такая процедура обмена информацией называется запрос/ответным режимом, или “рукопожатием” (handshaking). Большинство из приведенных в таблице сигналов как раз и нужны для аппаратной реализации “рукопожатия” между адаптером и модемом.

Обмен сигналами между сторонами интерфейса RS-232C выглядит так:

  1. компьютер после включения питания выставляет сигнал DTR, который постоянно удерживается активным. Если модем включен в электросеть и исправен, он отвечает компьютеру сигналом DSR. Этот сигнал служит подтверждением того, что DTR принят, и информирует компьютер о готовности модема к приему информации;

  2. если компьютер получил сигнал DSR и хочет передать данные, он выставляет сигнал RTS;

  3. если модем готов принимать данные, он отвечает сигналом CTS. Он служит для компьютера подтверждением того, что RTS получен модемом и модем готов принять данные от компьютера. С этого момента адаптер может бит за битом передавать информацию по линии TD;

  4. получив байт данных, модем может сбросить свой сигнал CTS, информируя компьютер о необходимости “притормозить” передачу следующего байта, например, из-за переполнения внутреннего буфера; программа компьютера, обнаружив сброс CTS, прекращает передачу данных, ожидая повторного появления CTS.

  5. Когда модему необходимо передать данные в компьютер, он (модем) выставляет сигнал на разъеме 8 – DCD. Программа компьютера, принимающая данные, обнаружив этот сигнал, читает приемный регистр, в который сдвиговый регистр “собрал” биты, принятые по линии приема данных RD. Когда для связи используются только приведенные в таблице данные, компьютер не может попросить модем “повременить” с передачей следующего байта. Как следствие, существует опасность переопределения помещенного ранее в приемном регистре байта данных вновь “собранным” байтом. Поэтому при приеме информации компьютер должен очень быстро освобождать приемный регистр адаптера. В полном наборе сигналов RS-232C есть линии, которые могут аппаратно “приостановить” модем.

Нуль-модемный интерфейс характерен для прямой связи компьютеров на небольшом расстоянии (длина кабеля до 15 метров). Для нормальной работы двух непосредственно соединенных компьютеров нуль-модемный кабель должен выполнять следующие соединения:

  1. RI-1 + DSR-1 — DTR-2;

  2. DTR-1 — RI-2 + DSR-2;

  3. CD-1 — CTS-2 + RTS-2;

  4. CTS-1 + RTS-1 — CD-2;

  5. RD-1 — TD-2;

  6. TD-1 — RD-2;

  7. SG-1 — SG-2;

Знак «+» обозначает соединение соответствующих контактов на одной стороне кабеля.

Настройка COM-порта средствами C#

Пространство имен System.IO.Ports предлагает широкие возможности по настройке COM-порта.

Описание класса SerialPort

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

Методы класса:

Имя

Описание

Close

Закрывает соединение порта, присваивает свойству IsOpen значение false и уничтожает внутренний объект Stream.

CreateObjRef

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject.)

DiscardInBuffer

Удаляет данные из буфера приема последовательного драйвера.

DiscardOutBuffer

Удаляет данные из буфера передачи последовательного драйвера.

Dispose()

Освобождает все ресурсы, используемые объектом Component. (Унаследовано от Component.)

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом SerialPort (при необходимости освобождает и управляемые ресурсы). (Переопределяет Component.Dispose(Boolean).)

Equals(Object)

Определяет, равен ли заданный объект Object текущему объекту Object. (Унаследовано от Object.)

Finalize

Освобождает неуправляемые ресурсы и выполняет другие операции очистки перед тем, как объект Component будет освобожден при сборке мусора. (Унаследовано от Component.)

GetHashCode

Играет роль хэш-функции для определенного типа. (Унаследовано от Object.)

GetLifetimeService

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject.)

GetPortNames

Получает массив имен последовательных портов для текущего компьютера.

GetService

Возвращает объект, представляющий службу, обеспечиваемую компонентом Component или его контейнером Container. (Унаследовано от Component.)

GetType

Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.)

InitializeLifetimeService

Возвращает объект обслуживания во время существования для управления политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject.)

MemberwiseClone

Создает неполную копию текущего объекта Object. (Унаследовано от Object.)

MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject. (Унаследовано от MarshalByRefObject.)

Open

Открывает новое соединение последовательного порта.

Read(Byte[], Int32, Int32)

Считывает из входного буфера SerialPort определенное число байтов и записывает их в байтовый массив, начиная с указанной позиции.

Read(Char[], Int32, Int32)

Считывает из входного буфера SerialPort определенное число символов и записывает их в символьный массив, начиная с указанной позиции.

ReadByte

Считывает из входного буфера SerialPort один байт в синхронном режиме.

ReadChar

Считывает из входного буфера SerialPort один символ в синхронном режиме.

ReadExisting

Считывает все непосредственно доступные байты в соответствии с кодировкой из потока и из входного буфера объекта SerialPort.

ReadLine

Считывает данные из входного буфера до значения NewLine.

ReadTo

Считывает из входного буфера строку до указанного значения value.

ToString

Возвращает строку String, содержащую имя компонента Component, если таковое имеется.Этот метод не следует переопределять. (Унаследовано от Component.)

Write(String)

Записывает указанную строку в последовательный порт.

Write(Byte[], Int32, Int32)

Записывает указанное число байтов в последовательный порт, используя данные из буфера.

Write(Char[], Int32, Int32)

Записывает указанное число символов в последовательный порт, используя данные из буфера.

WriteLine

Записывает указанную строку и значение NewLine в выходной буфер.

Свойства класса:

Имя

Описание

BaseStream

Получает базовый объект Stream для объекта SerialPort.

BaudRate

Получает или задает скорость передачи для последовательного порта (в бодах).

BreakState

Получает или задает состояние сигнала разрыва.

BytesToRead

Получает число байтов данных, находящихся в буфере приема.

BytesToWrite

Получает число байтов данных, находящихся в буфере отправки.

CanRaiseEvents

Возвращает значение, показывающее, может ли компонент вызывать событие. (Унаследовано от Component.)

CDHolding

Получает состояние линии обнаружения несущей для порта.

Container

Возвращает контейнер IContainer, содержащий компонент Component. (Унаследовано от Component.)

CtsHolding

Получает состояние линии готовности к приему.

DataBits

Получает или задает стандартное число битов данных в байте.

DesignMode

Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время. (Унаследовано от Component.)

DiscardNull

Получает или задает значение, показывающее, игнорируются ли пустые байты (NULL), передаваемые между портом и буфером приема.

DsrHolding

Получает или задает состояние сигнала готовности данных (DSR).

DtrEnable

Получает или задает значение, включающее поддержку сигнала готовности терминала (DTR) в сеансе последовательной связи.

Encoding

Получает или задает кодировку байтов для преобразования текста до и после передачи.

Events

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component. (Унаследовано от Component.)

Handshake

Получает или задает протокол установления связи для передачи данных через последовательный порт.

IsOpen

Получает значение, указывающее состояние объекта SerialPort — открыт или закрыт.

NewLine

Получает или задает значение, используемое для интерпретации окончания вызова методов ReadLine и WriteLine.

Parity

Получает или задает протокол контроля четности.

ParityReplace

Получает или задает байт, которым заменяются недопустимые байты потока данных при обнаружении ошибок четности.

PortName

Получает или задает последовательный порт, в частности, любой из доступных портов COM.

ReadBufferSize

Получает или задает размер входного буфера SerialPort.

ReadTimeout

Получает или задает срок ожидания в миллисекундах для завершения операции чтения.

ReceivedBytesThreshold

Получает или задает число байтов, содержащихся во внутреннем входном буфере перед наступлением события DataReceived.

RtsEnable

Получает или задает значение, показывающее, включен ли сигнал запроса передачи (RTS) в сеансе последовательной связи.

Site

Получает или задает экземпляр ISite для компонента Component. (Унаследовано от Component.)

StopBits

Получает или задает стандартное число стоповых битов в байте.

WriteBufferSize

Получает или задает размер выходного буфера последовательного порта.

WriteTimeout

Получает или задает срок ожидания в миллисекундах для завершения операции записи.

События класса:

Имя

Описание

DataReceived

Представляет метод обработки события получения данных для объекта SerialPort.

Disposed

Происходит при удалении компонента вызовом метода Dispose. (Унаследовано от Component.)

ErrorReceived

Представляет метод обработки события ошибки объекта SerialPort.

PinChanged

Представляет метод для обработки события изменения последовательной линии объекта SerialPort.

    1. Описание класса CommunicationManager

Поля класса:

Имя

Описание

Start

Стартовый бит, равный 0xFF

CurrentUser

Текущий пользователь программы

LinkActive

Активность соединения

TextBox1

Текстовый контрол, в который записывается чат

TextBox2

Текстовый контрол, в который записывается служебная информация

Users

Пользователи, которым необходимо переслать сообщение

_coder

Экземпляр класса Heming

_messageColor

Цвет текста

Перечисления класса:

Имя

Описание

MessageType

Содержит типы сообщений.

FrameType

Содержит типы кадров

Методы класса:

Имя

Описание

FrameAnalysis

Анализирует типы входных кадров

WriteData

Записывает указанную строку и тип кадра в последовательный порт.

DisplayData

Отображает данные с последовательного порта на экране

CharToInt

Переводит символ типа char в его числовое представление

    1. Описание класса Heming

Методы класса:

Имя

Описание

CodeString

Кодирует строку типа string при помощи алгоритма Хемминга

DeCodeString

Декодирует набор байтов в строку типа string, основываясь на алгоритме Хемминга

5.4 Описание класса Settings

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее