Реализация протокола TCP/IP средствами микропроцессорных средств

Исследование дополнительных возможностей малогабаритных устройств, позволяющих выполнять функции сетевых серверов, управляемых микроконтроллерами. Использование цифровых портов ввода/вывода в AVR. Краткая характеристика протоколов. Особенности Nut/OS.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 22.09.2012
Размер файла 540,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

ВВЕДЕНИЕ

Тема моей дипломной работы: «Реализация протокола TCP/IP средствами микропроцессорных средств».

В рамках дипломной работы передо мной стоит задача внести изменения в Ethernet мини-модуль, присоединить к нему устройство сбора информации, передать полученные с устройства данные посредством Web-интерфейса по протоколу TCP/IP на клиентскую машину.

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

Для исследования использован Ethernet мини-модуль mmnet101-b, включающий в себя два контроллера: Atmega128 и Lan91c111. Мини-модуль использует операционную систему Nut/OS.

Основные задачи:

1. Изучение стека протокола TCP/IP

2. Изучение Ethernet модуля LAN91C111

3. Изучение операционной системы Nut/OS и её возможностей

4. Изучение мини-модуля MMNET101-B

5. Сборка ядра Nut/OS с учетом особенностей поставленной задачи

6. Доработка ядра Nut/OS для внесения возможности принимать сигнал внешних устройств

7. Написание клиентской программы посредством Web технологий

8. Разработка Web интерфейса к операционной системе Nut/OS

MMNET101-B

MMNET101-B представляет собой модуль с функциями Web-сервера, позволяющий организовывать удаленные процессы измерения и контроля для встраиваемых устройств посредством сети на основе Ethernet и стека протоколов TCP/IP. Модуль построен на базе высокоскоростного Ethernet-контроллера LAN91C111 и микроконтроллера ATmega128.

LAN91C111

Однокристальный скоростной Ethernet-контроллер со встроенным PHY, аппаратно реализующий стек протоколов TCP/IP и имеющий возможность работы в качестве MAC-RAW канала для программного стека протоколов TCP/IP (Web, Email, FTP, Telnet) на внешнем хосте.

NUT/OS

Nut/OS - Операционная система реального времени (RTOS - Real-Time Operating System)

Основная задача

Успеть среагировать на события, происходящие на оборудовании

На что ориентирована

Обработка внешних событий

Как позиционируется

Инструмент для создания конкретного аппаратно-программного комплекса реального времени

Кому предназначена

Квалифицированный разработчик

Архитектура операционной системы

Рис. 1 Архитектура операционной системы

Nut/OS имеет монолитную архитектуру, т.е. OS определяется как набор модулей, взаимодействующих между собой внутри ядра системы и предоставляющих прикладному ПО входные интерфейсы для обращений к аппаратуре. Основной недостаток этого принципа построения ОС заключается в плохой предсказуемости ее поведения, вызванной сложным взаимодействием модулей между собой.

Особенности Nut/OS

- Открытый код

- Модульная конструкция

- Многопоточность(Cooperative multithreading)

- Динамическое управление памятью

- Поддержка таймера

- Функции ввода / вывода потока(-Stream I/O functions)

- Поддержка файловой системы

малогабаритный сервер микроконтроллер протокол

Макросы доступа к портам в Nut/OS

Использование цифровых портов ввода/вывода в AVR

Чтение данных цифрового порта состоит из 2 шагов:

1. Установка необходимого регистра порта в режим ввода.

2. Чтение данных порта ввода.

Пример чтения значений всех 8 битов порта PORTB:

#include <compiler.h> /* Совместимость платформ. */

unsigned char val;

outb(DDRB, 0x00); /* Установить все 8 битов порта PORTB для ввода.*/

val = inb(PINB); /* Чтение значений всех 8 битов порта PORTB в переменную.*/

Запись данных в цифровой порт состоит из 2 шагов.

1. Установка необходимого регистра порта в режим вывода.

2. Запись данных в порт.

Пример записи значений всех 8 битов порта PORTB:

#include <compiler.h>

outb(DDRB,0xFF); /* Установка регистра порта PORTB для вывода.*/

outb(PORTB,0x00); /* Установка всех битов порта PORTB в низкое (0000 0000).*/

outb(PORTB,0xFF); /* Установка всех битов порта PORTB в высокое (1111 1111)*/

"Родные" команды доступа к портам ввода/вывода AVR

При просмотре примеров AVR не для Nut/OS, можно заметить, что нет никаких определенных макросов ввода и вывода. Большинство компиляторов для AVR позволяют использовать порты ввода - вывода как переменные C.

К примеру, установка четырех старших бит порта PORTB на вывод и установка четыре младших бита для ввода может быть записана так:

/* Пример 1 */

DDRB = 0xF0;

/* В следующем строке кода показано изменение значения первого бита из четырех старших бит порта */

/* PORTB на 1, остальные остаются неизмененными. */

/* значение до операции с портом -> 0000 0000*/

PORTB |= 0x10; /* PORTB = PORTB | 0b00010000*/

/* значение после -> 0001 0000*/

Данный метод можно применять и в своих приложениях для Nut/OS. Однако этот путь доступа к портам не полностью машинонезависимый, и поэтому в Nut/OS предпочтительней использовать макросы ввода и вывода, вот так:

/* Пример 2 */

outb(DDRB, 0xF0);

outb(PORTB, inb(PORTB) | 0x10);

Однако, второй пример не может быть точно оттранслирован в тех же самых машинных инструкциях как в примере 1,в котором PORTB используется как переменная C. Поэтому на определенных портах CPU в состоянии изменить отдельные биты одной командой. Использование inb() и outb() заставляет компилятор генерировать три машинные инструкции.

1. Чтение байта из порта PORTB

2. Установка 4 бита в единицу

3. Запись байта обратно в порт PORTB

Для разрешения данной проблемы в Nut/OS существуют два дополнительных макроса для установки либо очистки одиночного бита. Установка и сброс 4 бита порта PORTB может быть записана так:

sbi(PORTB, 4);/* Установка 4 бита в 1 */

сbi(PORTB, 4);/* Установка 4 бита в 0 */

TCP/IP

Инкапсуляция

Когда приложение посылает данные с использованием ТСР, данные опускаются вниз по стеку протоколов, проходя через каждый уровень, до тех пор пока они не будут отправлены в виде потока битов по сети. Каждый уровень добавляет свою информацию к данным путем пристыковки заголовков. На рисунке 2 показан этот процесс. Блок данных, который ТСР посылает в IР, называется ТСР сегментом. Блок данных, который IР посылает в сетевой интерфейс, называется IР датаграммой. Поток битов, который передается по Ethernet, называется фреймом (frame).

Рис. 2 Инкапсуляция

Структура стека TCP/IP

Краткая характеристика протоколов

Так как стек TCP/IP был разработан до появления модели взаимодействия открытых систем ISO/OSI, то, хотя он также имеет многоуровневую структуру, соответствие уровней стека TCP/IP уровням модели OSI достаточно условно.

Протоколы TCP/IP делятся на 4 уровня

Самый нижний (уровень IV) соответствует физическому и канальному уровням модели OSI. Этот уровень в протоколах TCP/IP не регламентируется, но поддерживает все популярные стандарты физического и канального уровня: для локальных сетей это Ethernet, Token Ring, FDDI, Fast Ethernet, 100VG-AnyLAN, для глобальных сетей - протоколы соединений "точка-точка" SLIP и PPP, протоколы территориальных сетей с коммутацией пакетов X.25, frame relay. Разработана также специальная спецификация, определяющая использование технологии ATM в качестве транспорта канального уровня. Обычно при появлении новой технологии локальных или глобальных сетей она быстро включается в стек TCP/IP за счет разработки соответствующего RFC, определяющего метод инкапсуляции пакетов IP в ее кадры.

Следующий уровень (уровень III) - это уровень межсетевого взаимодействия, который занимается передачей пакетов с использованием различных транспортных технологий локальных сетей, территориальных сетей, линий специальной связи и т. п.

В качестве основного протокола сетевого уровня (в терминах модели OSI) в стеке используется протокол IP, который изначально проектировался как протокол передачи пакетов в составных сетях, состоящих из большого количества локальных сетей, объединенных как локальными, так и глобальными связями. Поэтому протокол IP хорошо работает в сетях со сложной топологией, рационально используя наличие в них подсистем и экономно расходуя пропускную способность низкоскоростных линий связи. Протокол IP является дейтаграммным протоколом, то есть он не гарантирует доставку пакетов до узла назначения, но старается это сделать.

К уровню межсетевого взаимодействия относятся и все протоколы, связанные с составлением и модификацией таблиц маршрутизации, такие как протоколы сбора маршрутной информации RIP (Routing Internet Protocol) и OSPF (Open Shortest Path First), а также протокол межсетевых управляющих сообщений ICMP (Internet Control Message Protocol). Последний протокол предназначен для обмена информацией об ошибках между маршрутизаторами сети и узлом - источником пакета. С помощью специальных пакетов ICMP сообщается о невозможности доставки пакета, о превышении времени жизни или продолжительности сборки пакета из фрагментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т.п.

Следующий уровень (уровень II) называется основным. На этом уровне функционируют протокол управления передачей TCP (Transmission Control Protocol) и протокол дейтаграмм пользователя UDP (User Datagram Protocol). Протокол TCP обеспечивает надежную передачу сообщений между удаленными прикладными процессами за счет образования виртуальных соединений. Протокол UDP обеспечивает передачу прикладных пакетов дейтаграммным способом, как и IP, и выполняет только функции связующего звена между сетевым протоколом и многочисленными прикладными процессами.

Верхний уровень (уровень I) называется прикладным. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и сервисов прикладного уровня. К ним относятся такие широко используемые протоколы, как протокол копирования файлов FTP, протокол эмуляции терминала telnet, почтовый протокол SMTP, используемый в электронной почте сети Internet, гипертекстовые сервисы доступа к удаленной информации, такие как WWW и многие другие. Остановимся несколько подробнее на некоторых из них.

Протокол пересылки файлов FTP (File Transfer Protocol) реализует удаленный доступ к файлу.

Для того, чтобы обеспечить надежную передачу, FTP использует в качестве транспорта протокол с установлением соединений - TCP. Кроме пересылки файлов протокол FTP предлагает и другие услуги. Так, пользователю предоставляется возможность интерактивной работы с удаленной машиной, например, он может распечатать содержимое ее каталогов. Наконец, FTP выполняет аутентификацию пользователей. Прежде, чем получить доступ к файлу, в соответствии с протоколом пользователи должны сообщить свое имя и пароль. Для доступа к публичным каталогам FTP-архивов Internet парольная аутентификация не требуется, и ее обходят за счет использования для такого доступа предопределенного имени пользователя Anonymous.

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

Протокол SNMP (Simple Network Management Protocol) используется для организации сетевого управления. Изначально протокол SNMP был разработан для удаленного контроля и управления маршрутизаторами Internet, которые традиционно часто называют также шлюзами. С ростом популярности протокол SNMP стали применять и для управления любым коммуникационным оборудованием - концентраторами, мостами, сетевыми адаптерами и т.д. и т.п. Проблема управления в протоколе SNMP разделяется на две задачи.

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

Вторая задача связана с контролируемыми переменными, характеризующими состояние управляемого устройства. Стандарты регламентируют, какие данные должны сохраняться и накапливаться в устройствах, имена этих данных и синтаксис этих имен. В стандарте SNMP определена спецификация информационной базы данных управления сетью. Эта спецификация, известная как база данных MIB (Management Information Base), определяет те элементы данных, которые управляемое устройство должно сохранять, и допустимые операции над ними.

Модель Клиент-Сервер

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

Можно подразделить серверы на два класса: последовательные и конкурентные. В нашем случае используется конкурентный сервер.

Рис. 3 Блок-схема работы конкурентного сервера.

Запуск нового сервера на шаге К2 для обработки запроса клиента может выглядеть как создание нового процесса, задачи, в зависимости от того какая операционная система лежит в основе этого сервера. Новый сервер обрабатывает поступивший запрос клиента целиком. По завершении сервер уничтожается.

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

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

Заключение

На данном этапе работы мною было проделано:

1. Изучение стека протокола TCP/IP

2. Изучение Ethernet модуля LAN91C111

3. Изучение операционной системы Nut/OS и её возможностей

4. Изучение мини-модуля MMNET101-B

Список используемой литературы

1. Дуглас Э.К. TCP/IP крупным планом Э.К. Дуглас - С-П. Питер 2009. 37 с.

2. Дуглас Э.К. Разработка приложений типа клиент/сервер для Linux/POSIX Э.К. Дуглас, Л.С. Дэвид - С.-П. Издательский дом «Вильямс» 2002. 576 с.

3. Фейт С. TCP/IP: Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) / С. Фейт, перевод М.Кузьмин - М. Издательство «Лори» 2000. 450с.

4. Фред И. Сетевой и межсетевой обмен данными с микроконтроллером / И. Фред М. Издательский дом «Додэка-XXI» 2007. 369 c.

Размещено на Allbest.ru


Подобные документы

  • Использование стандартных библиотек Windows. Установка и настройка дополнительных устройств ввода/вывода. Использование камеры, динамиков, сканера, дисков и портов ввода/вывода. Драйверы внешних устройств. Безопасность данных в операционных системах.

    контрольная работа [1,8 M], добавлен 13.10.2022

  • Особенности применения светодиодной индикации в микроконтроллерных системах. Характеристика основных приемов программирования универсальных портов ввода-вывода микроконтроллеров AVR. Этапы проектирования елочной гирлянды с микроконтроллерным управлением.

    лабораторная работа [291,7 K], добавлен 17.11.2012

  • Использование программой функции ввода-вывода данных для реализации дружественного интерфейса с пользователем. Функции консоли и особенности их применения для обеспечения аккуратного ввода информации и упорядоченного вывода. Обзор стандартных функций.

    лабораторная работа [40,4 K], добавлен 06.07.2009

  • Описания сетевых протоколов прикладного уровня, позволяющих производить удалённое управление операционной системой. Основные характеристики протокола CMIP. Изучение особенностей Telnet, сетевого протокола для реализации текстового интерфейса по сети.

    реферат [47,0 K], добавлен 24.01.2014

  • Понятие системных ресурсов, конфликты, связанные с ресурсами IRQ и DMA. Использование портов ввода-вывода. Разновидности памяти и особенности ее распределения в рамках операционной системы. Назначение адресов памяти средствами Windows 9x/NT/2000.

    презентация [45,9 K], добавлен 27.08.2013

  • Отличительные особенности микроконтроллеров AVR семейства Mega. Характеристики процессора, подсистемы ввода-вывода. Архитектура ядра и организация памяти. Регистры общего назначения. Алгоритмы моделирования команд. Реализация модели внешнего устройства.

    курсовая работа [3,7 M], добавлен 24.06.2013

  • Общее устройство микропроцессора. Структура 64-битной подсистемы памяти. Селекция портов ввода/вывода. Особенности интерфейса микропроцессорных систем. Проектирование подсистемы памяти на базе Itanium 2. Расчёт информативности и необходимых объёмов.

    курсовая работа [3,7 M], добавлен 05.12.2012

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

    курсовая работа [307,1 K], добавлен 25.03.2012

  • Характеристика, разновидности, архитектура процессоров. Понятие интерфейса, описание видов шин, внешних запоминающих устройств, особенности конструкции. Специфика файловой системы устройства подсистемы ввода/вывода, достоинства, недостатки, база данных.

    курс лекций [747,0 K], добавлен 24.06.2009

  • Алгоритмы работы протокола STP. Статусы портов в протоколе SpanningTree. Виды, описание протоколов, агрегация каналов. Схемы возможных атак, способы обнаружения. Слияние-расхождение деревьев, локализованный отказ в обслуживании, спровоцированный сниффинг.

    курсовая работа [86,8 K], добавлен 07.04.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.