Новые книги

В той отрасли, где мы работаем, библиотека DirectDraw появилась довольно давно. Во всяком случае, за это время она успела доказать свои возможности, и о ней было написано несколько книг. Как обычно, эти книги отличаются по своему качеству. Однако в основном это были добротные учебники, которые (как и многие книги о компьютерах) были написаны за три месяца авторами, изучавшими предмет по ходу дела. В результате большинство этих книг содержит лишь подготовительный материал. Теперь, когда библиотека DirectDraw подросла и обрела свою репутацию (во всяком случае, она старше других компонентов DirectX), настало время уйти от основ и познакомиться с ее некоторыми нетривиальными возможностями.

Эта книга начинается с того, на чем другие книги обычно заканчивались. Мы поговорим об основах DirectDraw, но лишь в общих чертах. Читатель — опытный программист, но незнакомый с DirectDraw — сможет с ходу войти в курс дела. Затем мы перейдем к другим темам, столь же интересным, сколь и полезным.

Цель этой книги — научить вас работать с DirectDraw, а не предоставить некоторую «структурную основу» или нестандартный API, который бы выполнял за вас всю работу. Демонстрационные программы написаны на C++ и используют MFC, но совсем не для того, чтобы скрыть все технические подробности. С++ и MFC — превосходные инструменты, потому что с их помощью любое приложение можно написать несколькими разными способами. Примеры для этой книги были написаны так, чтобы при этом получались структурированные и удобные для чтения проекты, которые наглядно показывают, что и почему происходит в программе.

Помимо DirectDraw, во многих примерах используется библиотека DirectInput. Строго говоря, при программировании графики для Windows можно обойтись и без DirectInput, но ей все же стоит воспользоваться. Она работает быстрее традиционных средств ввода Windows и к тому же входит в DirectX, так что для работы с ней не потребуется никаких дополнительных SDK.
Эта книга об экстремальном программировании. Экстремальное программирование, часто обозначаемое аббревиатурой «XP» – это упрощенная методика организации производства для небольших и средних по размеру команд разработчиков, занимающихся разработкой программного продукта в условиях неясных или быстро меняющихся требований. Данная книга предназначена для того, чтобы помочь вам определить, оправдано ли применение XP в вашей ситуации...

Функции уровня PMI

 

Функции уровня PMI

Функции, не зависящие от физической среды, представленные на рисунке 3.4, включают квартетную канальную шифрацию, кодирование 5B/6B, добавление к кадру преамбулы, начального и конечного ограничителей и передачу кадра на уровень PMD.

Рис. 3.4. Функции уровней PMI и PMD

Процесс квартетного распределения по каналам состоит в последовательном делении байтов МАС-кадра на порции данных по 5 бит (квинтеты), а также в последовательном распределении этих порций между четырьмя каналами, как это показано на рисунке 3.5.

Каждый из 4-х каналов представляет собой одну витую пару: канал 0 - пару, образованную контактами 1 и 2, канал 1 - пару 3 - 6, канал 2 - пару 4 - 5, канал 3 - пару 7 - 8. Двухпарные спецификации физического уровня PMD используют затем схему мультиплексирования, преобразующую 4 канала в 2 или 1.

Рис. 3.5. Распределение квинтетов по 4-м каналам

Шифрация данных состоит в случайном "перемешивании" квинтетов данных с целью исключения комбинаций из повторяющихся единиц или нулей. Перемешивание производится с помощью специальных устройств - скремблеров. Случайные наборы цифр уменьшают излучение радиоволн и взаимные наводки в кабеле.

Кодирование по схеме 5B/6B - это процесс отображения "перемешанных" квинтетов в заранее определенные 6-битовые коды. Этот процесс создает сбалансированные коды, содержащие равное количество единиц и нулей, что обеспечивает гарантированную синхронизацию приемника при изменениях входного сигнала.

Кодирование 5B/6B обеспечивает также контроль за ошибками при передаче, так как некорректные квинтеты, содержащие больше трех единиц или больше трех нулей, легко обнаружить.

На рисунке 3.6 приведен пример квинтетов данных, зашифрованных и преобразованных в символы 5B/6B. Поскольку существует только 16 сбалансированных символов, 32 комбинации, содержащиеся в квинтете, используют для своего представления два 6-ти битных символа, используемых по очереди для соблюдения баланса постоянного тока.

Рис. 3.6. Пример шифрации и кодирования квинтетов

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

Предыдущая глава | Оглавление | Следующая глава