что такое манчестерский код
Манчестерский код. Часть 2. Декодирование данных.
Закодировав данные манчестерским кодом следуем по наиболее логичному пути, который ведет нас к процессу декодирования ) Поставим задачу взять непосредственно те самые данные, которые были сгенерированы в предыдущей статье, подать их на декодер и сверить полученный результат с исходной последовательностью.
За основу возьмем проект из уже упомянутой статьи и добавим в него функции для декодирования манчестерского кода. Сигнал генерируется на PA3, возьмем другой пин, и на него подадим этот сигнал физически замкнув ножки. Пусть будет PA4, почему бы нет:
Выбранный вывод настраиваем на генерацию прерываний при изменении уровня сигнала, по обоим фронтам сигнала, потому что нам нужны будут и передний и задний фронты для работы:
Помимо этого в CubeMx ничего добавлять или менять не потребуется, таймер будем использовать тот же, насколько я помню — TIM2.
Декодирование манчестерского кода.
Для начала пройдемся по физической сути процесса декодирования. Я его разбил на несколько этапов, что нам добавит наглядности и прозрачности в рассмотрении протекающих явлений. Итак, список такой:
Синхронизация по фронтам.
Берем рассмотренный нами манчестерский код:
Нижний сигнал мы будем принимать на входе контроллера. И, в целом, все просто — если передний фронт (переход от низкого уровня к высокому, 0 => 1), то это должно декодироваться в бит «1». Если задний фронт (переход от высокого уровня к низкому, 1 => 0), то это закодированный бит «0».
Но из графика очевидно, что нам нужно брать не все фронты, а вполне определенные, они помечены зеленой меткой. Напротив, изменения сигнала с красными метками мы должны пропускать.
Не проблема — зная период кодирования можно отфильтровать «ненужные» перепады, поскольку время между значимыми пепепадами гарантированно соответствует этому периоду. Поскольку в реальном мире все неидеально, длительности могут плавать, поэтому зададим величину в 75% от периода кодирования. Если время между фронтами больше, то работаем, если время меньше, пропускаем фронт.
Осталось определить отправную точку. То есть для того, чтобы использовать эту логику с длительностями и периодами, необходимо знать хотя бы один значимый фронт (с зеленой меткой), чтобы относительно него уже вести отсчет. Для этой цели послужит следующий механизм…
Опять же из графика можно заметить, что два перепада разного(!) направления, разделенные периодом кодирования, гарантированно являются значимыми. И не важно, передний ли это фронт после заднего или задний после переднего. В этих случаях получаем:
В итоге процесс, названный мной синхронизацией по фронтам, заключается в комбинации этих двух механизмов. Сначала ищем соседние фронты, разделенные периодом, и с разным направлением перепада. Затем относительно этих «верных» фронтов берем следующие, также разделенные временем, равным (в реальном мире примерно равным) периоду кодирования.
Синхронизация по данным.
Переходим ко второму этапу — синхронизации по данным. Снова отсылка к статье про манчестерское кодирование, где мы специально добавили к передаваемым данным байты синхрополя. Они необходимы для того, что определить, где начинаются информационные байты.
Здесь реализация будет заключаться в следующем. Возьмем 16-битную переменную, в которую будем последовательно, бит за битом, сохранять декодированные значения. Выглядит это все так:
После каждого нового бита сохраняем его в переменную, сдвигая принятые ранее биты. В результате, в определенный момент времени значение в этой переменной будет равно значению синхрополя. Именно этот момент нам и требуется отловить, чтобы в дальнейшем относительно него считывать последующие биты.
Синхронизировавшись таким образом по данным, начинаем третий этап, собственно, сохранение и анализ информационных, то есть полезных, данных.
Декодирование данных.
Здесь механизм все тот же — смотрим на фронты, разделенные периодом кодирования. Разница только в том, что сохранять их будем не в переменную со сдвигом, а в массив. Физически суть все та же, так что переходим к практической реализации.
Декодирование манчестерского кода на STM32.
Вход для данных мы активировали, поэтому сразу к делу. Работаем в тех же файлах:
По той же схеме, начинаем с добавления констант:
Я привожу здесь только то, что добавляется относительно текущего проекта с манчестерским кодированием. Полный код будет под спойлерами в конце статьи. Там же и ссылка на полный проект для STM32F103C8.
Итак, таймер у нас тот же, значит и период его такой же — 10 мкс. Рассчитываем по аналогии MANCH_DECODE_TIMER_MAX — это период кодирования, он же — длительность передачи одного бита. Кроме того, задаем порог, который мы обсудили, равный 75% от периода кодирования:
Объявляем возможные состояния декодера и, для удобства, фронтов сигнала:
Структура для хранения данных остается неизменной:
По поводу состояний декодера:
Теперь в файле manchester_code.c объявляем переменные (я опять же привожу только отличия относительно исходного проекта):
Все, в принципе, понятно из названий:
Следующий шаг, вспомогательные функции. Определение уровня на входе PA4:
Далее по аналогии с GetDataBit(), которую мы использовали при кодировании, создаем функцию SetDataBit(), выполняющую обратную операцию, то есть установку нужного бита в массиве данных data[] в структуре:
В callback’е по переполнению таймера пока добавляем только инкрементирование счетчика:
Весь основной функционал будет в прерывании по изменению уровня сигнала на PA4. Рассмотрим полный код, затем пройдемся по нему подробно:
Для начала определяем уровень сигнала на входе, что позволяет нам судить о фронте импульса:
На выходе из функции обновляем значение для предыдущего фронта:
Остальной функционал в switch (decodeState) и подчиняется тем алгоритмам и явлениям, которые мы обсудили в начале статьи:
В исходном состоянии запускаем процесс декодирования через флаг decodeData.active, что по сути приводит к тому, что в прерывании по таймеру начинается процесс инкрементирования счетчика decodeTimerCnt.
Ищем соседние фронты с разными перепадами, разделенные периодом кодирования. Для этого сравниваем счетчик с величиной порога MANCH_DECODE_TIMER_THRESHOLD. Если находим последовательные перепады передний фронт-задний фронт, то это означает, что декодированы биты «1» и «0», которые помещаем в decodeData.bitStream:
После выполнения этих операций:
Это соответствует тому, что сначала мы декодировали «1», затем «0». Аналогично при противоположных фронтах, только с другим значением:
На этом декодер готов перейти в следующее состояние:
Начинаем синхронизацию по данным. Для этого продолжаем заполнять decodeData.bitStream битами. Если обнаружили «1», то выставляем в «1» старший бит:
В случае «0» ничего не делаем, за счет сдвига получим требуемое значение:
Вот и все! Спокойно и непринужденно анализируем декодированные биты в ожидании совпадения со значением синхрополя:
В случае совпадения закидываем байты в decodeData.data[], обнуляем счетчики битов и байт, и переводим декодер в состояние DATA_SYNC.
После чего продолжаем делать то же самое, за исключением того, что биты записываем не в decodeData.bitStream, а в массив decodeData.data[] при помощи SetDataBit(). Естественно, этому сопутствует увеличение индексов текущих битов и байт.
Логика такая же, при декодировании бита «1» — выставляем его в массиве — SetDataBit(&decodeData, 1). Если «0», то ничего не требуется, нужный «0» окажется на своем месте за счет увеличения индекса текущего бита.
Когда количество декодированных байт равно максимальному количеству (MANCH_DATA_BYTES_NUM + MANCH_SYNC_BYTES_NUM), заданному в хэдере, останавливаем процесс:
В этом тестовом проекте у меня задано 10 байт — 8 информационных + 2 байта синхрополя.
По окончании декодирования вызываем callback MANCH_DataReadyCallback(), объявленный в этом же файле чуть выше:
Работает как и с колбэками из HAL, то есть эту функцию можно переопределить в другом файле и вставить свой код. Например, я добавил в main.c:
Вызывается еще одна вспомогательная функция из manchester_code.c, которая лишь переводит декодер в исходное состояние:
Осталось учесть один немаловажный нюанс. В данной форме процесс декодирования завершится только тогда, когда принято MANCH_BYTES_NUM байт. Если исходная посылка будет короче, то произойдет коллапс, данные перепутаются. Поэтому добавим еще одно условие, по которому декодирование признается завершенным. Если в течение некоторого интервала времени, гарантированно превышающего длительность кодирования, не было обнаружено изменений уровня на входе, то останавливаем работу. Я возьму время, равное 3-м периодам кодирования. Обновляем код прерывания по таймеру:
Теперь все в норме, тестируем. В main() у нас по-прежнему осуществляется манчестерское кодирование:
Для проверки декодирования встаем брейкпинтом на callback в main.c:
В результате в полученных данных получаем полное соответствие исходным данным 👍
И на этом заканчиваем работу с кодом Манчестер-II, надеюсь, все было понятно, тем не менее вопросы на форуме или в комментариях категорически приветствуются )
P. S. Да, кстати, здесь при декодировании мы использовали информацию о периоде кодирования, но эта величина не всегда известна. Если будет спрос и интерес, опишу как провести аналогичную деятельность по декодированию при отсутствии априорной информации о длительности передачи бита.
Манчестерский код
Манчестерский код был разработан, как усовершенствованный биполярный импульсный код. Манчестерский код также относится к самосинхронизирующимся кодам, но в отличие от биполярного кода имеет не три, а только два уровня, что обеспечивает лучшую помехозащищенность.
В манчестерском коде для кодирования единиц и нулей используется перепад потенциала, то есть фронт импульса. При манчестерском кодировании каждый такт делится на две части. Информация кодируется перепадами потенциала, происходящими в середине каждого такта. Это происходит следующим образом:
Рис. 5.14 Манчестерский код
5.2.7 Дифференциальный манчестерский (Differential Manchester) код.
Дифференциальный манчестерский код является разновидностью манчестерского кодирования. Середину тактового интервала линейного сигнала он использует только для синхронизации, и на ней всегда происходит смена уровня сигнала. Логические 0 и 1 передаются наличием или отсутствием смены уровня сигнала в начале тактового интервала соответственно (Рис. 5.16)
Рис. 5.16 Дифференциальный манчестерский код
Этот код обладает теми же самыми преимуществами и недостатками, что и манчестерский. Но, на практике используется именно дифференциальный манчестерский код.
Таким образом, манчестерский код раньше (когда высокоскоростные линии были большой роскошью для локальной сети) очень активно использовался в локальных сетях, из-за своей самосинхронизации и отсутствия постоянной составляющей. Он и сейчас находит широкое применение в оптоволоконных и электропроводных сетях. Однако в последнее время разработчики пришли к выводу, что лучше все-таки применять потенциальное кодирование, ликвидируя его недостатки с помощью средствами так называемого логического кодирования.
5.2.8 Потенциальный код 2B1Q
Рис. 5.17 Потенциальный код 2B1Q
Все рассмотренные нами выше схемы кодирования сигналов были битовыми. При битовом кодировании каждому биту соответствует значение сигнала, определяемое логикой протокола.
7. БАЗОВЫЕ СЕТЕВЫЕ ТЕХНОЛОГИИ.
Важно отметить, что канальный уровень имеет ограниченные возможности передавать данные между локальными сетями различных технологий. В частности, эта возможность связана с тем, что в этих технологиях используются адреса одинакового формата.
7.1.Эталонная модель локальных сетей.
7.1. 1.Комитет стандартов IEEE 802.x.
Существенный вклад в развитие стандартов по локальным компьютерным сетям внес Институт инженеров по электронике и радиоэлектронике (IEEE Institute of Electrical and Electronic Engineers) США. В рамках этого института в 1980 году был организован комитет 802, задачей которого является разработка стандартов по проектированию нижних уровней локальных вычислительных сетей. В рамках этого комитета были созданы подкомитеты 1-9, номера которых и были присвоены соответствующим стандартам. Помимо модели OSI существует модель IEEE Project 802, принятая в феврале 1980 г.(отсюда и 802 в названии). Прежде чем рассмотреть структуру стандарта IEEE 802.x давайте вернемся к истории и проследим, как же развивалось проектирование сетей, ведь не сразу же было решено и определено, какой протокол какой структуре сети отвечает
По мере роста популярности сетей стали расширяться области их применения. Локальные сети становились инструментом для ведения каких-либо переговоров, сделок. Локальные сети стали объединять все больше и больше компьютеров. Такие фирмы IBM, Datapoint Corporation, Xerox в то время трудились над созданием различных сетевых средств и технологий (аппаратных средств, кабельных систем и т.п.), которые разрабатывались в соответствии со своими собственными фирменными требованиями. Такая строгая монополизация разработок существовала довольно таки длительный период развития сетей. Каждая фирма разрабатывала сети под себя. Наблюдалось полное отсутствие каких-либо стандартов. Каждый видел свою сеть по-своему, одни производители учитывали какие-то особенности в проектировании сети, другие их упускали. Хотя все разрабатываемые технологии имели, конечно, и какие-то общие подходы и общие функции, ведь они занимались в целом одной задачей. Мало того, нужно сказать, что на то время не существовало даже модели сетевого взаимодействия OSI как таковой, то есть, существовавшие идеологии сетевого взаимодействия были в принципе различными. Поэтому в итоге, вместе в одной сети использовать продукты различных фирм было просто невозможно.
В общем, на данный момент неоднородность сетевых технологий возрастает в основном, только при необходимости объединения локальных и глобальных сетей. И хотя в последние годы и наметилась тенденция к сближению методов передачи данных, используемых в этих двух типах вычислительных сетей, но все-таки, остаются еще большие различия между ними. Поэтому в пределах одной корпоративной сети обычно используется большой набор разнообразных базовых топологий и задача объединения их всех в единую, прозрачную сеть, требует использования специальных методов и средств.
Очевидно, что в настоящее время проблемы использования в одной сети сетевых средств различных производителей уже не является такой острой проблемой. А стало это возможным, только благодаря созданию в свое время единой системы стандартизации. Именно этот шаг привел к тому, что сейчас разработчик сети не выдумывает свои средства взаимодействия различных сетевых технологий, он просто выбирает для каждой из используемых технологий, соответствующий стандарт и включает его в свою сеть.
Все выше сказанное было для того, чтобы обосновать проблему разработки единой, открытой системы стандартизации локальных сетей.
К созданию такой системы и приступил IEEE (Institute of Electrical and Electronic Engineers). Как уже говорилось в IEEE в 1980 году был организован специальный комитет 802 по стандартизации локальных сетей.
Давайте, еще раз определим задачи каждого из них при работе в локальных сетях. Физический уровень просто физически передает данные, которые представлены электрическими сигналами, по линиям связи. Канальный уровень сначала должен определить доступ к кабелю, а затем использовать свои соответствующие средства управления потоком данных, которые сгруппированы в определенную последовательность кадров, по этому кабелю. Таким образом, можно заметить, что вырисовывается некоторое разграничение обязанностей на одном уровне. Поэтому канальный уровень локальных сетей решили разделить на дополнительные два подуровня, которые часто называют также уровнями.
7.1.2 Подуровни канального уровня
— Логической передачи данных (Logical Link Control, LLC);
— Управления доступом к среде (Media Access Control, MAC).
Рис. 7.1 Подуровни канального уровня
Поскольку среда передачи данных в локальной сети общая, то существует проблема обеспечения доступа к сети.
Именно эту задачу отвели уровню MAC. Этот уровень должен обеспечивать корректное совместное использование общей среды сети. В современных локальных сетях используются несколько протоколов уровня MAC, они реализуют различные алгоритмы доступа к разделяемой среде.
Именно через уровень LLC сетевой протокол запрашивает у канального уровня нужную ему транспортную операцию с нужным качеством. Уровень LLC имеет несколько режимов работы, каждый из этих режимов определяет различное качество передачи кадров, например, один режим может восстанавливать потерянные или искаженные кадры, другой не обеспечивает таких процедур при управлении потоком кадров в сети. Уровень LLC еще называют уровнем управления логическим каналом сети. Очевидно, что в перечень забот уровня LLC абсолютно не входит, будет ли передача происходить в сети с одной общей шиной, или с кольцевой структурой сети. Эти вопросы не касаются режимов его работы. Он просто организовывает передачу кадров информации с необходимым качеством и не зависит от выбора конкретной технологии.
Все это описано в соответствующих стандартах IEEE 802.х. Стандарты IEEE 802.х имеют определенную структуру. Комитет 802 поделили на несколько подкомитетов, каждому из них дали строго определенные задачи по разработке сетевых стандартов, которые в целом бы представляли единую систему стандартизации. И сейчас, с развитием новых сетевых технологий, продолжают организовываться новые подкомитеты. Стандарты локальных сетей, определенные комитетом 802, делятся на данное время на 17 категорий, каждая из которых имеет свой номер. Мы остановимся на основных пяти стандартах, названия стандартов созвучны с соответствующим комитетом, занимающегося его разработкой.
7.2 Структура стандартов IEEE 802.x.
IEEE-802 можно рассматривать как уточнение и развитие модели OSI.
802.1 – Internetworking Этот стандарт содержит введение в стандарты и описание примитивов: общие определения локальных сетей, их свойств. Он обособлен от остальных и имеет общий для всех технологий характер.
Наиболее практически важными являются стандарты 802.1, которые описывают взаимодействие между собой различных технологий, а также стандарты по построению более сложных сетей на основе базовых топологий. Сюда входят такие важные стандарты, как:
стандарт 802. ID, описывающий логику работы моста/коммутатора,
стандарт 802.1Н, определяющий работу транслирующего моста, который может без маршрутизатора объединять сети различных технологий.
Сегодня набор стандартов, разработанных подкомитетом 802.1, продолжает расти. Например, недавно он пополнился важным стандартом 802.1Q, определяющим способ построения виртуальных локальных сетей VLAN в сетях на основе коммутаторов.
Комитет 802.2 В стандарте 802.2 описаны все, что касается протокола уровня управления логическим каналом LLC.
Остальные стандарты 802.3, 802.4, 802.5 и т.д. описывают технологии локальных сетей, которые появились в результате улучшений фирменных технологий, которые легли в их основу. Для каждого из этих стандартов определены спецификации физического уровня, определяющие среду передачи данных (коаксиальный кабель, витая пара или оптоволоконный кабель), ее параметры, а также методы кодирования информации для передачи по данной среде.
Так основные сетевые технологии Ethernet, Token Ring были разработаны и использовались еще до создания единой системы стандартов, затем они вошли в состав стандартов IEEE 802.х, и на их основе стали создавать новые, улучшенные технологии.
Стандарт 802.4 появился как обобщение технологии ArcNet компании Datapoint Corporation
Стандарт 802.5 в основном соответствует технологии Token Ring компании IBM.
В общем, историческое развитие стандартов выглядело следующим образом:
После того, как фирменные технологии вошли в состав стандартов IEEE 802.х они продолжали параллельно существовать. Например, технология ArcNet так до конца не была приведена в соответствие со стандартом 802.4 (теперь это делать поздно, так как где-то примерно с 1993 года производство оборудования ArcNet было свернуто).
Расхождения между технологией Token Ring и стандартом 802.5 тоже периодически возникают, так как компания IBM регулярно вносит усовершенствования в свою технологию, а комитет 802.5 не всегда успевает это отражать в своем стандарте.
Поздние стандарты уже разрабатывались не одной компанией, а группой заинтересованных компаний, а потом передавались в соответствующий подкомитет IEEE 802 для утверждения. Так произошло с такими новыми технологиями, как Fast Ethernet, 100VG-AnyLAN, Gigabit Ethernet. Группа заинтересованных компаний образовывала сначала небольшое объединение, а затем по мере развития работ к нему присоединялись другие компании, так что процесс принятия стандарта носил открытый характер.
Итак, давайте, перечислим первые пять подкомитетов комитета 802:
Стандарт 802.4 определяет метод доступа к шине с передачей маркера (Token bus network), прототип фирменный стандарт ArcNet;
С остальными комитетами (до 17-го) мы подробно не будем знакомиться. Кратко заметим следующее:
IEEE-802.6 – городская локальная сеть (Metropolitan Area Network MAN). IEEE-802.7 – широковещательная технология
IEEE-802.8 – оптоволоконная технология
IEEE-802.9 – интегрированные сети с возможностью передачи речи и данных
IEEE-802.10 – безопасность сетей.
IEEE-802.11 – беспроводная сеть
7.3 Сети Ethernet и Fast Ethernet
— Среда передачи – коаксиальный кабель,
— Скорость передачи – 10Мбит/с
— Максимальная длина – 5км
— Максимальное количество абонентов – 1024
— Длина сегмента сети – 500м
— Количество абонентов на одном сегменте – до 100
— Передача узкополосная, т.е без модуляции (моноканал)
В классической сети Ethernet применяется 50-омный коаксиальный кабель двух видов (толстый и тонкий). Однако с начала 90-х годов все большее распространение получает версия Ethernet, использующая в качестве среды передачи витые пары. Определен также стандарт для применения в сети оптоволоконного кабеля. В стандарты были внесены соответствующие добавления.
В Ethernet кроме стандартной топологии «шина» применяются также топологии типа «пассивная звезда» и «пассивное дерево». При этом предполагается использование репитеров и пассивных (репитерных) концентраторов, соединяющих между собой различные части (сегменты) сети (рис. 7.2). В качестве сегмента может выступать единичный абонент. Коаксиальный кабель используется для шинных сегментов, а витая пара и оптоволоконный кабель – для лучей пассивной звезды (для присоединения к концентратору одиночных компьютеров).
Рис. 7.2. Топология сети Ethernet
Доступ к сети Ethernet осуществляется по случайному методу CSMA/ CD, обеспечивающему полное равноправие абонентов. В сети используются пакеты переменной длины со структурой, представленной на рис. 7.3.
Длина кадра Ethernet (то есть пакета без преамбулы) должна быть не менее 512 битовых интервалов, или 51,2 мкс (именно такова предельная
величина двойного времени прохождения в сети). Предусмотрена индивидуальная, групповая и широковещательная адресация.
В пакет Ethernet входят следующие поля:
— Адрес получателя (приемника) и адрес отправителя (передатчика) включают по 6 байт и представляют собой MAC-адреса.
Рис. 7.3. Структура пакета сети Ethernet, (цифры показывают количество байт)
Таким образом, минимальная длина кадра (пакета без преамбулы) составляет 64 байта (512бит). Именно эта величина определяет максимально допустимую двойную задержку распространения сигнала по сети в 512 битовых интервалов (51,2 мкс для Ethernet, 5,12 мкс для Fast Ethernet). Стандарт предполагает, что преамбула может уменьшаться при прохождении пакета через различные сетевые устройства, поэтому она не учитывается. Максимальная длина кадра равна 1518 байтам (12144 бита, то есть 1214,4 мкс для Ethernet, 121,44 мкс для Fast Ethernet). Это важно для выбора размера буферной памяти сетевого оборудования и для оценки общей загруженности сети.
Для сети Ethernet, работающей на скорости 10 Мбит/с, стандарт определяет четыре основных типа среды передачи информации:
— 10BASE5 (толстый коаксиальный кабель);
— 10 BASE2 (тонкий коаксиальный кабель);
— 10BASE-T (витая пара);
— 10BASE-FL (оптоволоконный кабель).
7.3.2 Преемственность стандарта 802.3 и стандартов 802.3u и 802.12
В 1995 году появился стандарт на более быструю версию Ethernet, работающую на скорости 100 Мбит/с (так называемый Fast Ethernet, стандарт 1ЕЕЕ 802.3u), использующую в качестве среды передачи витую пару или оптоволоконный кабель. Появилась версия на скорость 1000 Мбит/с (Gigabit Ethernet, стандарт IEEE 802.3z). Поговорим немного о причинах перехода на Fast Ethernet.
Этой задачей серьезно заинтересовались многие ведущие лидер ы среди производителей сетевых технологий. В результате поисков и исследований на пути к решению задачи, специалисты разделились на два лагеря, что, в конечном итоге привело к появлению двух новых технологий — Fast Ethernet и 100VG-AnyLAN.
В 1992 году группа производителей сетевого оборудования, включая таких лидер ов технологии Ethernet, как SynOptics, 3Com и ряд других, образовали некоммерческое объединение Fast Ethernet Alliance для разработки стандарта новой технологии, которая должна была в максимально возможной степени сохранить особенности технологии Ethernet.
Второй лагерь возглавили компании Hewlett-PackardиAT&T, которые предложили воспользоваться удобным случаем для устранения некоторых известных недостатков технологии Ethernet.
В комитете 802 института IEEE в это же время была сформирована отдельная исследовательская группа для изучения потенциала новых высокоскоростных технологий. За период с конца 1992 года и по конец 1993 года группа IEEE провела серьезную работу над изучением всех 100-мегабитных решений, которые были предложены различными производителями. Группа IEEE 802 наряду с предложениями Fast Ethernet Alliance рассмотрела также и высокоскоростную технологию, предложенную компаниями Hewlett-Packard и AT&T.
В центре дискуссий была проблема сохранения случайного метода доступа CSMA/CD в новой технологии.
Название CSMA/CD можно разбить на две части:
— Carrier Sense Multiple Access
Сетевая технология, предложенная Fast Ethernet Alliance, сохранила метод CSMA/CD, и тем самым обеспечила согласованность сетей со скоростями 10 Мбит/с и 100 Мбит/с.
Осенью 1995 года обе технологии стали стандартами IEEE. Комитет IEEE 802.3 принял спецификацию Fast Ethernet в качестве стандарта 802.3u, который не является самостоятельным стандартом, а представляет собой дополнение к существующему стандарту 802.3 в виде глав с 21 по 30.
А комитет 802.12 в это же время принял новую технологию 100VG-AnyLAN, которая использует новый метод доступа Demand Priority. О ней мы поговорим несколько позже. А в этом разделе мы займемся изучением того, что же нового принесла технология Fast Ethernet
7.3.3 Технология Fast Ethernet
Главным коммерческим аргументом технологии Fast Ethernet стало то, что она базируется на наследуемой технологии Ethernet:
1. Так как в Fast Ethernet используется тот же метод передачи пакетов и кабельные системы совместимы, то для перехода к стандарту Fast Ethernet от стандарта Ethernet требуются меньшие капитальные вложения, чем для установки других видов высокоскоростных сетей.
2. Поскольку Fast Ethernet представляет собой продолжение стандарта Ethernet, все инструментальные средства и процедуры анализа работы сети, а также все программное обеспечение должны в данном стандарте сохранить работоспособность, следовательно, среда Fast Ethernet будет знакома администраторам сетей, имеющим опыт работы с Ethernet, а значит, обучение персонала займет меньше времени и обойдется существенно дешевле.
3. Решение оставить метод CSMA/CD без изменения принесло наибольшую практическую пользу новой технологии среды Fast Ethernet.
Итак, новая технология Fast Ethernet сохранила весь MAC уровень классического Ethernet, но пропускная способность была повышена до 100 Мбит/с., следовательно, поскольку пропускная способность увеличилась в 10 раз, то битовый интервал уменьшился в 10 раз, и стал теперь равен 0,01 мкс.
Поэтому в технологии Fast Ethernet время передачи кадра минимальной длины в битовых интервалах осталось тем же, но равным 5,75 мкс.
Ограничение на общую длину сети Fast Ethernet уменьшилось до 200 метров.
Увеличения пропускной способности при неизменном методе доступа в Fast Ethernet удалось достигнуть за счет усовершенствования средств физического уровня. Рассмотрим физический уровень технологии Fast Ethernet
Физический уровень технологии Fast Ethernet
Все отличия технологии Fast Ethernet от Ethernet сосредоточены на физическом уровне. Уровни MAC и LLC в Fast Ethernet остались абсолютно теми же, и их описывают прежние главы стандартов 802.3 и 802.2.
Технология Fast Ethernet использует три варианта кабельных систем:
— волоконно-оптический многомодовый кабель, используются два волокна;
— витая пара категории 5, используются две пары;
— витая пара категории 3, используются четыре пары.
Коаксиальный кабель, давший миру первую сеть Ethernet, в этот перечень вообще не попал. От коаксиальных кабелей стремятся избавиться все новые технологии. Поскольку на небольших расстояниях, витая пара категории 5 позволяет передавать данные с той же скоростью, что и коаксиальный кабель, а сеть при этом получается более дешевой и удобной в эксплуатации. На больших же расстояниях применяют оптическое волокно, которое обладает гораздо более широкой полосой пропускания, чем коаксиал, а стоимость сети получается ненамного выше, особенно если учесть высокие затраты на поиск и устранение неисправностей в крупной кабельной коаксиальной системе.
Сети Fast Ethernet всегда имеют иерархическую древовидную структуру, построенную на концентраторах, как и сети стандартов 10Base-T и 10Base-F, которые мы рассматривали в предыдущем разделе.
Таким образом, официальный стандарт 802.3u установил три различных спецификации для физического уровня Fast Ethernet и дал им следующие названия:
— 100Base-FX— для многомодового оптоволоконного кабеля, используются два волокна.
По сравнению с вариантами физической реализации Ethernet (10Base-5, 10Base-2, 10Base-T, 10Base-F), в технологии Fast Ethernet отличия одного варианта от другого намного глубже. Различные физические спецификации имеют различное количество проводников и различные методы кодирования.
Для всех трех стандартов Fast Ethernet справедливы следующие характеристики:
форматы кадров технологии Fast Ethernet практически не отличаются от форматов кадров технологий 10-мегабитного Ethernet.
межкадровый интервал (IPG) равен 0,96 мкс, а битовый интервал равен 10 нс, соответственно время передачи кадра минимальной длины равно 5,75 мкс. Все временные параметры алгоритма доступа (интервал отсрочки, время передачи кадра минимальной длины и т. п.) в битовых интервалах, остались прежними.
Для сравнения следующий рисунок показывает общее отличие кадров Fast Ethernet от кадров 10-мегабитного Ethernet.
Рис. 7.4 Форматы кадров Fast Ethernet и Ethernet
Рассмотрим физические спецификации, которые предложила технология Fast Ethernet.
Эта спецификация определяет работу протокола Fast Ethernet по многомодовому оптоволокну. Каждый узел соединяется с сетью двумя оптическими волокнами, идущими от приемника (Rх) и от передатчика (Тх).
Следует сразу отметить, что между спецификациями 100Base-FXи100Base-TX есть много общего, поэтому общие для этих двух спецификаций свойства мы будем рассматривать под обобщенным названием 100Base-FX/TX.
Вспомним некоторые особенности 4В/5В. При этом методе каждые 4 бита данных подуровня MAC (называемых символами) представляются 5 битами. Избыточный бит позволяет потом применить потенциальные коды при представлении каждого из пяти бит в виде электрических или оптических импульсов для непосредственной передачи по кабелю. Потенциальные коды по сравнению с манчестерскими кодами имеют более узкий спектр сигнала, а, следовательно, предъявляют меньшие требования к полосе пропускания кабеля. Но использовать «чистые» потенциальные коды для передачи данных невозможно использовать из-за плохой самосинхронизации приемника и источника данных: при передаче длинной последовательности единиц или нулей в течение долгого времени сигнал не изменяется и приемник не может определить момент чтения очередного бита. Применение избыточного кода решает проблему длительной последовательности нулей.
При использовании пяти бит для кодирования шестнадцати исходных 4-х битовых комбинаций, можно построить такую таблицу кодирования, в которой любой исходный 4-х битовый код представляется 5-ти битовым кодом с чередующимися нулями и единицами. Тем самым обеспечивается синхронизация приемника с передатчиком.
Так как из 32 возможных комбинаций 5-битовых порций для кодирования порций исходных данных нужно только 16, то остальные 16 комбинаций в коде 4В/5B используются в служебных целях.
Наличие служебных символов позволило использовать в спецификациях FX/TX схему непрерывного обмена сигналами между передатчиком и приемником и при свободном состоянии среды. И если в сетях Ethernet незанятое состояние среды означало полное отсутствие на ней импульсов информации. То для Fast Ethernet для обозначения незанятого состояния среды используется служебный символ Idle (11111), которыми постоянно обмениваются передатчик с приемником. Этот специфический символ (запрещенная комбинация) поддерживает синхронизм передатчика и приемника в периодах между передачами информации, а также позволяет контролировать общее физическое состояние линии.
Рис. 7.5 Обмен служебными символами Idle
Для отделения кадра Ethernet от символов Idle используется комбинация символов Start Delimiter (пара символов J (11000) и К (10001) кода 4В/5В, а после завершения кадра перед первым символом Idle вставляется символ Т. Надо отметить, что коды 4В/5В построены так, что гарантируют не более трех нулей подряд при любом сочетании бит в исходной информации, поэтому длительные последовательности нулей здесь исключены.
Рис. 7.5 Структура кадра для спецификаций 100Base-FX/TX.
Метод MLT3 еще более быстрый, по сравнению с методом NRZI, хотя и использует три уровня и он используется спецификации 100Base-ТX.
Принятую в качестве стандарта схему Auto-negotiation предложила первоначально компания National Semiconductor под названием NWay.
Всего в настоящее время определено 5 различных режимов работы, которые могут поддерживать устройства стандарта 100Base-TX или 100Base-T4 на витых парах:
— 100Base-TX full-duplex – работа с 2-мя витыми парами категории 5 (или Type 1A STP) в полнодуплексном режиме.
Переговорный процесс начинается, как только устройство (сетевой адаптер, концентратор, коммутатор) включается в сеть питания. Устройство, начавшее процесс auto-negotiation, посылает своему партнеру пачку специальных импульсов Fast Link Pulse burst (FLP). Эти импульсы содержат 8-битное слово, которое определяет, в каком режиме нужно установить взаимодействие. Если узел-партнер поддерживает функцию auto-negotuiation и также может поддерживать предложенный режим, он отвечает также пачкой импульсов FLP, в которой подтверждает данный режим, и на этом переговоры заканчиваются. Но, если же узел-партнер может поддерживать менее приоритетный режим, то он указывает его в ответе, и этот режим выбирается в качестве рабочего. Таким образом, всегда выбирается наиболее приоритетный общий режим узлов.
Спецификация 100Base-T4 появилась позже всех других спецификаций физического уровня Fast Ethernet. Спецификация 100Base-T4 была разработана для того, чтобы можно было использовать уже имеющуюся проводку на витой паре категории 3. Общую пропускную способность эта спецификация позволяет повысить за счет одновременной передачи потоков бит по всем 4 парам кабеля. Вместо кодирования 4В/5В в этом методе используется кодирование 8В/6Т, которое обладает более узким спектром сигнала и при скорости 33 Мбит/с укладывается в полосу 16 МГц витой пары категории 3 (при кодировании 4В/5В спектр сигнала в эту полосу не укладывается).
При методе кодирования 8В/6Т каждые 8 бит данных уровня MAC кодируются 6-ю троичными цифрами, то есть цифрами, имеющими три состояния. Каждая такая троичная цифра имеет длительность 40 нс. Группа из 6-ти троичных цифр затем передается на одну из трех передающих витых пар, независимо и последовательно. Четвертая пара всегда используется для прослушивания несущей частоты в целях обнаружения коллизии.
В заключение следует заметить, что сеть Ethernet благодаря мощной поддержке, высочайшему уровню стандартизации, огромным объемам выпуска технических средств резко выделяется среди других стандартных сетей, и поэтому любую другую сетевую технологию принято сравнивать именно с Ethernet.
Рис. 7.6 Подключение сетевого адаптера к концентратору по 100Base-T4
7.4. Технология Gigabit Ethernet (802.3z)
Для работы над согласованиями усилий в Gigabit Ethernet Alliance с самого начала вошли такие лидер ы сетевых разработок, как Bay Networks,Cisco Systems и 3Com. Всего за год своего существования количество участников Gigabit Ethernet Alliance существенно выросло и стало насчитывать более 100.
Первая версия стандарта Gigabit Ethernet была рассмотрена в январе 1997 года, а окончательно стандарт 802.3z был принят 29 июня 1998 года на заседании комитета IEEE 802.3.Работы по реализации Gigabit Ethernet на витой паре категории 5 были переданы специальному комитету 802.Заb, который окончательно принял стандарт 802.3ab в сентябре 1999 года.
Еще не дожидаясь принятия стандарта, 802.3z некоторые компании выпустили первое оборудование Gigabit Ethernet на оптоволоконном кабеле уже к лету 1997 года.
Как и при разработке стандарта Fast Ethernet, перед разработчиками стандарта Gigabit Ethernet была поставлена задача максимально сохранить простоту идей классической технологии Ethernet, но при этом достигнуть битовой скорости в 1000 Мбит/с.И нужно сразу отметить, что здесь пришлось принимать более кардинальные меры, чем просто изменение физической среды, как было у 100-мегабитного стандарта Fast Ethernet.
Такой огромный запас пропускной способности сети, предполагал большие перспективы по сокращению проблем, которые были сильно выражены в сетях Ethernet.
Разработчики технологии решили, что нижний уровень просто должен быстро передавать данные, а более сложные и более редко встречающиеся задачи (например, приоритезация трафика) должны передаваться верхним уровням.
Технология Gigabit Ethernet имеет много общего с технологиями Ethernet и Fast Ethernet:
— сохраняются все форматы кадров Ethernet.
— сохраняется метод доступа CSMA/CD.
— поддерживаются все основные виды кабелей, используемых в Ethernet и Fast Ethernet: волоконно-оптический, витая пара категории 5, а также коаксиальный.
Однако разработчики технологии Gigabit Ethernet внесли изменения не только в физический уровень, как это было в случае Fast Ethernet, но и в MAC уровень.
Перед разработчиками стандарта Gigabit Ethernet стояло несколько трудно разрешимых проблем:
1. Задача обеспечения нормального диаметра сети. Для выполнения критерия надежного распознавания коллизий в сетях Gigabit Ethernet с пропускной способностью 1000 Мб/с, а, следовательно битовым интервалом 100 нс, необходимое ограничение на длину кабеля, для разделяемой среды составит всего 25 м при сохранении размера кадров и всех параметров метода CSMA/CD неизменными. Необходимым же диаметром сети считается 200 м.
2. Задача достижения битовой скорости 1000 Мбит/с на основных типах кабелей. Даже для оптоволоконного кабеля достижение такой скорости представляет некоторые проблемы, т. к. технология Fibre Channel, физический уровень которой был взят за основу для оптоволоконной версии Gigabit Ethernet, обеспечивает скорость передачи данных всего в 800 Мбит/с. Битовая скорость этой технологии на линии хоть и равна примерно 1000 Мбит/с, но при методе кодирования 8В/10В, который она использует, полезная битовая скорость на 25 % меньше скорости импульсов на линии.
Рассмотрим, какие изменения в технологии Gigabit Ethernet претерпел MAC уровень Ethernet.
Для расширения максимального диаметра сети до 200 м был увеличен минимальный размер кадра (без учета преамбулы) с 64 до 512 байт или до 4096 bt. Соответственно, время двойного оборота теперь также можно было увеличить до 4095 bt, что делает допустимым диаметр сети около 200 м при использовании одного повторителя.
Давайте попытаемся рассчитать для оптоволоконной конфигурации сети необходимое значение PDV. Итак, при двойной задержке сигнала в 10bt/м оптоволоконные кабели длиной 100 м вносят вклад во время двойного оборота по 1000 bt (это справочные данные). Если повторитель и сетевые адаптеры будут вносить такие же задержки, как в технологии Fast Ethernet (данные для которых приводятся в лабораторных работах), то задержка повторителя в 1000 bt и пары сетевых адаптеров в 1000 bt дадут в сумме время двойного оборота 4000 bt, что меньше 4096 bt.
Для увеличения длины кадра до требуемой в новой технологии величины сетевой адаптер должен дополнить поле данных до длины 448 байт так называемым расширением (extention). Как мы уже отмечали, оптоволоконный Gigabit Ethernet использует метод кодирования 8В/10В. Поэтому расширение поля данных, осуществили за счет заполнения его запрещенными символами кода 8В/10В, которые невозможно принять за коды данных. Для сокращения накладных расходов при использовании слишком длинных кадров для передачи коротких квитанций разработчики стандарта разрешили конечным узлам передавать несколько кадров подряд, без передачи среды другим станциям.
Станция может передать подряд несколько кадров с общей длиной не более 65 536 бит или 8192 байт. Если станции нужно передать несколько небольших кадров, то она может не дополнять их до размера в 512 байт, а передавать подряд до исчерпания предела в 8192 байт (в этот предел входят все байты кадра, в том числе преамбула, заголовок, данные и контрольная сумма). Предел 8192 байт называется BurstLength. Если станция начала передавать кадр, и предел BurstLength был достигнут в середине кадра, то кадр разрешается передать до конца.
Увеличение «совмещенного» кадра до 8192 байт несколько задерживает доступ к разделяемой среде других станций, но при скорости 1000 Мбит/с эта задержка не столь существенна.
В стандарте 802.3z определены следующие типы физической среды:
— одномодовый волоконно-оптический кабель;
— многомодовый волоконно-оптический кабель 62,5/125 (62,5мкм-диаметр центрального проводника, 125-диаметр внешнего проводника;
— многомодовый волоконно-оптический кабель 50/125;
— двойной коаксиал с волновым сопротивлением 75 Ом.
Gigabit Ethernet на оптоволокне.
Многомодовый кабель Для передачи данных по традиционному для компьютерных сетей многомодовому волоконно-оптическому кабелю стандарт определяет применение излучателей (светодиодов), работающих на двух длинах волн: 1300 и 850 нм. Применение светодиодов с длиной волны 850 нм объясняется тем, что они намного дешевле, чем светодиоды, работающие на волне 1300 нм, хотя при этом максимальная длина кабеля уменьшается, так как затухание многомодового оптоволокна на волне 850 м более чем в два раза выше, чем на волне 1300 нм. Для многомодового оптоволокна стандарт 802.3z определил спецификации 1000Base-SX и 1000Base-LX.
1000Base-SX использует многомодовое оптоволокно с длиной волны 850 нм (S означает Short Wavelength, короткая волна)
Приведенные расстояния в 220 и 500 м рассчитаны для худшего по стандарту случая полосы пропускания многомодового кабеля, находящегося в пределах от 160 до 500 МГц/км. Реальные кабели обычно обладают значительно лучшими характеристиками, находящимися между 600 и 1000 МГц/км. В этом случае можно увеличить длину кабеля до примерно 800 м.
Одномодовый кабель Для спецификации 1000Base-LX в качестве источника излучения всегда применяется полупроводниковый лазер с длиной волны 1300 нм. Максимальная длина кабеля для одномодового волокна равна 5000 м.
Для присоединения лазерного трансивера к многомодовому кабелю необходимо использовать специальный адаптер.
Gigabit Ethernet на витой паре категории 5
Как нам известно, каждая пара кабеля категории 5 имеет гарантированную полосу пропускания до 100 МГц. Для передачи по такому кабелю данных со скоростью 1000 Мбит/с было решено организовать параллельную передачу одновременно по всем 4 парам кабеля
Это сразу уменьшило скорость передачи данных по каждой паре до 250 Мбит/с. Однако и для такой скорости необходимо было придумать метод кодирования, который имел бы спектр не выше 100 МГц. Кроме того, одновременное использование четырех пар на первый взгляд лишает сеть возможность распознавать коллизии. На оба эти возражения в стандарте 802.Заb найдены ответы.
Для распознавания коллизий разработчики спецификации 802.3аb применили технику, используемую в современных модемах. Вместо передачи по разным парам проводов или разнесения сигналов двух одновременно работающих навстречу передатчиков по диапазону частот оба передатчика работают навстречу друг другу по каждой из 4-х пар в одном и том же диапазоне частот, так как используют один и тот же потенциальный код РАМ5. Схема гибридной развязки позволяет приемнику и передатчику одного и того же узла использовать одновременно витую пару и для приема и для передачи (так же, как и в трансиверах коаксиального Ethernet).
Для отделения принимаемого сигнала от своего собственного приемник вычитает из результирующего сигнала известный ему свой сигнал.
Дата добавления: 2015-01-01 ; просмотров: 169 ; Нарушение авторских прав