Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Лекции по ВМСиС - файл Конспект ВМСиС.doc


Лекции по ВМСиС
скачать (1388 kb.)

Доступные файлы (1):

Конспект ВМСиС.doc3441kb.07.05.2008 10:23скачать

содержание
Загрузка...

Конспект ВМСиС.doc

  1   2   3   4   5   6   7   8   9   ...   19
Реклама MarketGid:
Загрузка...
Курс лекций «Вычислительные машины, системы и сети»

Оглавление

Часть 1. Вычислительные машины. 3

Лекция 1. Структура вычислительной машины. 3

Лекция 2. Эволюция микрокомпьютеров. 21

Лекция 3. Машинная организация процессора 80286 29

Лекция 4. Операнды и режимы адресации операндов. 42

Лекция 5. Общая организация памяти. 51

Лекция 6. Прерывание микропроцессора в ЭВМ. 54

Лекция 7. Последовательный интерфейс RS–232C. 61

Лекция 8. Последовательный интерфейс СОМ-порт. 69

Лекция 9. Программируемый связной интерфейс. 77

Лекция 10. Передача данных между ЭВМ с помощью модемов. Типы и характеристики модемов.Набор АТ-команд. 85

Лекция 11. Программируемый периферийный интерфейс. 95

Лекция 12. Параллельный интерфейс:LPT-порт. Понюхов Е. В. 102

Лекция 13. Программируемые таймеры и счетчики событий. 114

Лекция 14. Универсальная последовательная шина USB. 121

Лекция 15. Протокол работы USB-шины. 133

Лекция 16. Интерфейс IEEE-1394 (FireWire). 148

Лекция 17. Организация прямого доступа к памяти. 151

Лекция 18. Устройства ввода ЭВМ. Клавиатура. 158

Лекция 19. Интерфейс ЭВМ с видеотерминалом. Видеоадаптер. Режимы изображений: текстовый и графический режимы. Видеопамять. Анимация изображений. 168

Лекция 20. Накопитель магнитных дисков: гибкий и жесткий. Структура дисков: дорожки, сектора, блоки. Обмен информации между ЭВМ и магнитными дисками. 176

Лекция 21. Сканер. Считывание изображения. Типы обрабатываемых изображений. Качество изображения. 181

Лекция 22. Назначение и функции операционной системы. 190

^ Часть 2. Вычислительные системы. 202

Лекция 23. Классификация систем параллельной обработки данных. 202

Лекция 24. Классификация мультипроцессорных систем по способу организации основной памяти. 211

Лекция 25. Обзор архитектур многопроцессорных вычислительных систем. 217

Лекция 26. Направление развития в высокопроизводительных вычислительных системах. 227

Лекция 27. Принципы построения телекоммуникационных вычислительных систем. 247

^ Часть 3. Вычислительные сети. 254

Лекция 28. Эталонная модель взаимодействия открытых систем. 254

Лекция 29. Локальные вычислительные сети. 264

Лекция 30. Беспроводные сети на основе службы GPRS. 279

Лекция 31. Беспроводные сети Radio-Ethernet. 287

Лекция 32. Беспроводные локальные сети на основе Wi-Fi - технологии. 294



^

Часть 1. Вычислительные машины.

Лекция 1. Структура вычислительной машины.


1.1 Общее устройство

Персональный компьютер (ПК, PC – Personal Computer) - устройство для программируемой обработки данных. PC позволяет проводить без участия человека сложные последовательности вычислительных операций.

Обычно персональные компьютеры состоят из устройств:

- системный блок (для размещения основных элементов компьютера)

- клавиатура (для ввода символов в компьютер)

- монитор (для отображения текстовой и графической информации)

1.2 Корпус PC

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

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

Хотя из частей компьютера корпус выглядит наименее эффектно, в нем располагаются все основные узлы компьютера

- Электронные схемы, управляющие работой компьютера (микропроцессор, оперативная память, контроллеры устройств и т. д.)

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

- Накопители (или дисководы) для гибких магнитных дисков, используемых для чтения и записи на гибкие магнитные диски (дискеты)

- Накопитель на жестком магнитном диске, предназначенный для чтения и записи на несъемный жесткий магнитный диск (винчестер)

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

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

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

Обычно на передней панели корпуса размещаются несколько кнопок (кнопка включения питания и кнопка Reset - сброс для перезапуска PC) и светодиодных индикаторов (LED - Light Emiting Diod) для индикации включения питания и работы винчестера. Иногда встречаются цифровые индикаторы частоты процессора.

Внутри на фронтальной панели корпуса расположен динамик (PC Speaker), который является стандартным средством подачи акустических сигналов.

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

^ Типы корпусов:

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

Desktop - (письменный стол) – до недавнего времени наиболее часто применяемый корпус. Самый большой недостаток – они занимаю много места на рабочем столе. Как правило ширина таких корпусов около 45 см. а высота – около 20 см.

Tower - (башня) – значительно экономит место на рабочем столе. Грубо говоря, это Desktop поставленный набок. Существует несколько модификаций таких корпусов отличающихся друг от друга по высоте: Mini-Tower (около 40 см. в высоту), Midi-Tower (около 50 см.), Big-Tower (около 60 см.).

^ Корпус типа АТХ - В июле 1995 г. корпорацией Intel была предложена новая спецификация на конструкцию корпуса PC (и материнской платы). В настоящее время эта спецификация принята всеми ведущими производителями PC. Появление спецификации АТХ обусловлено, с одной стороны, повышением требований к скорости работы процессора и, соответственно, теплорежиму внутри корпуса, а также увеличению количества микросхем на материнской плате (появление систем all-in-one, то есть когда на материнской карте интегрированы видео и звуковые карты, контроллеры приводов и др.). С другой стороны, появились требования более удобного и простого доступа к внутренним элементам PC. Если вы открывали крышку корпуса PC и устанавливали новые компоненты (карты расширения, винчестер и др.), то наверняка столкнулись с массой неудобств: кабели периферийных устройств перекрывают доступ к модулям памяти, CPU блокирует возможность установки полноразмерных карт в слоты расширения и пр.

Согласно стандарту АТХ материнская плата развернута на 90°, вследствие чего все слоты расширения становятся пригодными для использования полноразмерных плат, a CPU оказывается под блоком питания, и вентилятор блока питания дополнительно обдувает процессор.

Внешне корпус АТХ похож на корпус типа Desktop и Tower, однако:

- Корпус АТХ оборудован новым блоком питания, отличающимся от своих предшественников размерами, конструкцией и наличием нового разъема для подключения к материнской плате

- Все слоты расширения поддерживают полноразмерные платы

- Наличие интегрированных портов уменьшает количество кабелей и проводов внутри корпуса, что облегчает доступ к компонентам материнской платы

- Все порты ввода/вывода располагаются на одной стороне материнской платы в один ряд и выходят на заднюю стенку корпуса (здесь же могут размещаться видео, аудио и игровой порт)

- Разъемы интерфейсов дисководов и винчестеров расположены рядом с посадочными местами для 3,5" приводов, следовательно, можно использовать более короткие кабели

В настоящее время появилось большое количество ATX-корпусов типа Desktop, Mini-Tower, Tower.

^ 1.3 Материнская плата

Материнская плата является основной составной частью каждого PC. Это самостоятельный элемент, который управляет внутренними связями и взаимодействует через прерывания с другими внешними устройствами. В этом отношении материнская плата является элементом внутри PC, влияющим на общую производительность компьютера. Супербыстрый винчестер или высокопроизводительная графическая карта нисколько не смогут увеличить его производительность, если тормозится поток данных к материнской плате и от нее. Материнскую плату (Motherboard) также называют главной (Mainboard) или системной платой.

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

Существует восемь основных типоразмеров материнских плат:

- Baby-AT (стандартный)

- HalfSize (миниплата для Slimline корпуса)

- LPX (для корпусов с уменьшенной высотой и Slimline)

- Mini-LPX (для корпусов с уменьшенной высотой и Slimline)

- АТХ (для корпусов ATX)

- Mini-ATX (для корпусов ATX с уменьшенной высотой)

- NLX (дальнейшее развитие стандарта ATX)

Chipset - это набор микросхем, установленных на материнской плате для обеспечения работы CPU по обмену данными с периферийными устройствами. В настоящее время именно Chipset определяет как производительность, так и саму архитектуру материнской платы. Наиболее известные Chipset для материнских плат Pentium и Pentium Pro выпускаются фирмой Intel и имеют название Triton.

ROM BIOS - Элемент ROM BIOS (Read Only Memory - память только для чтения, ПЗУ; Basic Input Output System - базовая система ввода/вывода) часто называют просто BIOS. Аппаратно он представляет собой элемент памяти емкостью 64 Кб, установленный 28 ножками в разъем на материнский плате. Ведущими изготовителями ROM BIOS являются фирмы AMI, Award и Phoenix.

Функции, выполняемые системами BIOS одинаковы:

- Предоставляет операционной системе аппаратные драйверы и осуществляет сопряжение между материнской платой и остальными средствами PC; ROM BIOS должен соответствовать конкретной материнской плате

- Содержит тест проверки системы, так называемый POST (Power On Self Test), который при включении PC проверяет все важнейшие компоненты

- Содержит программу установки параметров BIOS и аппаратной конфигурации PC CMOS Setup (или просто Setup, служит для изменения опций конфигурации PC), а также некоторые возможные установки Chipset

1.4 Процессор

Стержень материнской платы — процессор, точнее главный процессор (Central Processing Unit, CPU). Подобные процессоры находятся не только в РС - в принципе процессором оборудована каждая современная стиральная машина или микроволновая печь. CPU регулирует, управляет и контролирует рабочий процесс. Однако материнскую плату составляет, естественно, не только процессор. Он находится в постоянном взаимодействии с другими элементами материнской платы до тех пор, пока PC включен.

Конечно же, процессоры отличаются друг от друга. В области PC имеется признанный лидер на рынке - фирма Intel, которая является (и была) "домашним" поставщиком CPU в IBM -совместимых PC. Известны еще две фирмы: это AMD и Cyrix. Процессоры, как и все электрические схемы, получили обозначение типов. Для PC обозначение CPU начинается с 80, затем следуют две или три цифры, которые при необходимости дополняются буквами или цифрами, указывающими тактовую частоту процессора. Перед типом процессора чаще всего имеется сокращение, идентифицирующее изготовителя. i80486DX-50 обозначает, например, процессор типа 80486, изготовленный фирмой Intel и работающий с тактовой скоростью 50 МГц. Микросхемы фирмы Advanced Micro Devices обозначаются префиксом AMD, а процессоры Cyrix маркируются как CX. При запуске PC эти буквы появляются на экране монитора перед номером типа процессора. Процессоры других изготовителей, установленные не как CPU, уже трудно идентифицировать. Обозначение "80" перед именем процессора часто опускают. При этом под контекстом "386" понимают не только процессор 80386, но и все периферийные микросхемы, расположенные на материнской плате.

Производительность CPU характеризуется следующими основными параметрами:

- Степень интеграции (показывает количество транзисторов на единицу площади)

- Внутренняя и внешняя разрядность обрабатываемых данных (количество одновременно обрабатываемых бит)

- Тактовая частота (частота, с которой процессор выполняет определенные операции) (периодический сигнал, используемый для временного согласования всех синхронных операций в устройствах вычислительной машины)

^ Типы процессоров

Исходный вариант компьютера IBM PC и модель IBM PC XT использовали микропроцессор Intel-8088. В начале 80-х годов эти микропроцессоры выпускались с тактовой частотой 4,77 МГц, затем были созданы модели с тактовой частотой 8, 10 и 12 МГц. Модели с увеличенной производительностью (тактовой частотой) иногда называются TURBO-XT. Сейчас микропроцессоры типа Intel-8088 производятся в небольших количествах, и для использования не в компьютере, а в различных специализированных устройствах.

Модель IBM PC AT использует более мощный микропроцессор Intel-80286, и ее производительность приблизительно в 4-5 раз больше, чем у IBM PC XT. Исходные варианты IBM PC AT работали на микропроцессорах с тактовой частотой от 12 до 25 МГц, т. е. работающие в 2-3 раза быстрее. Микропроцессор Intel-80286 имеет несколько больше возможностей по сравнению с Intel-8088, но эти дополнительные возможности используются очень редко, так что большинство программ, работающих на AT, будет работать и на XT. Сейчас микропроцессоры типа Intel-80286 также считаются устаревшими и для применения в компьютерах не производятся.

В 1988-1991 гг. большая часть выпускаемых компьютеров была основана на достаточно мощном микропроцессоре Intel-80386, разработанным фирмой Intel в 1985 г. Этот микропроцессор (называемый также 80386DX) работает в 2 раза быстрее, чем работал бы 80286 с той же тактовой частотой. Обычный диапазон тактовой частоты 80386DX - от 25 до 40 МГц. Кроме того, фирмой Intel был разработан также микропроцессор Intel-80386SX, он ненамного дороже Intel-80286, но обладает теми же возможностями, что и Intel-80386, только при более низком быстро действии (приблизительно в 1, 5-2 раза).

Микропроцессор Intel-80386 не только работает быстрее Intel-80286, но и имеет значительно больше возможностей, в частности, он содержит мощные средства для 32-разрядных операций (в отличие от 16-разрядных 80286 и 8088).

Эти средства активно используются производителями программного обеспечения, поэтому многие выпускаемые сейчас программы предназначены для использования только на компьютерах с микропроцессорами модели Intel-80386 или более старшей.

При создании микропроцессора Intel-80386 фирма Intel рассматривала его как самый передовой микропроцессор, обеспечивающий достаточную производительность для большинства решаемых задач. Однако получившая широчайшее распространение начиная с 1990-1991 гг. операционная оболочка Windows фирмы Microsoft резко увеличила требования к вычислительным ресурсам компьютера, и во многих случаях работа Windows-программ на компьютере с микропроцессором Intel-80386 оказалась слишком медленной. Поэтому в течение 1991-1992 гг. большинство производителей компьютеров переориентировались на использование более мощного микро процессора Intel-80486 (или 80486DX). Этот микропроцессор мало отличается от Intel-80386, но его производительность в 2-3 раза выше. Среди его особенностей следует отметить встроенную кэш-память и встроенный математический сопроцессор. Фирмой Intel также разработаны более дешевый, но менее производительный вариант -80486SX и более дорогие и более быстрые варианты -80486DX2 и DX4. Тактовая частота 80486 обычно находится в диапазоне 25-50 МГц, 80486DX2- 50-60 МГц, а DX4- до 100 МГц.

В 1993 г. фирмой Intel был выпущен новый микропроцессор Pentium (ранее анонсировавшийся под названием 80586). Этот микропроцессор еще более мощен, особенно при вычислениях над вещественными числами. Как и Intel-80486, он содержит встроенный математический сопроцессор, причем значительно более эффективный, чем у Intel-80486. Для увеличения производительности в Pentium применены и другие усовершенствования: более быстрая и более широкая магистраль передачи данных (шина данных), большой размер встроенной кэш-памяти, возможность выполнения двух инструкций одно временно и т. д. Тактовая частота выпускаемых микропроцессоров Pentium- от 60 до 233 МГц. При этом микропроцессоры Pentium работают в 1, 5-2 раза быстрее микропроцессоров типа 80486 с той же тактовой частотой, а для задач, требующих интенсивных вычислений над вещественными числами -в 3-4 раза быстрее.

В конце 1996 - начале 1997 годов Intel выпустила улучшенный процессор Pentium ММХ (MMX - Multimedia Extension). Хотя внешне он мало отличается от своего предшественника, архитектура команд претерпела сильные изменения. В наборе инструкций микросхемы появилось 57 новых. Они предназначены для выполнения задач, связанных с обработкой аудио-, видео-, графических и телекоммуникационных данных.

Чтобы разместить в корпусе существующего Pentium новые возможности, компании пришлось пойти на некоторые компромиссы, а именно - процессоры с ММХ не могут одновременно выполнять инструкции ММХ и операции с плавающей запятой, так как и для ММХ команд, и для чисел с плавающей запятой используются одни и те же регистры встроенного сопроцессора. А сделано это для сохранения полной совместимости Pentium ММХ с существующим программным обеспечением. Это не такая уж большая проблема, поскольку сопроцессор используют немногие программы. Однако если найдутся приложения, требующие от процессора частого переключения между операциями с плавающей запятой и ММХ, они будут выполняться на ММХ - процессоре медленнее, чем на обычном процессоре с той же тактовой частотой.

Корпорация Intel 7 мая 1997 года официально представила процессор Pentium II. Выпускаются варианты процессора с тактовой частотой 233 Мгц и 300 МГц, рассчитанные на питание 2.8 В.. Главной новостью стало то, что Pentium II не совместим с существующими материнскими платами для Pentium. Новый процессор будет монтироваться в S.E.C-картридже (Single Edge Contact). Полностью закрытый корпус картриджа защищает компоненты, теплоотводящая пластина позволяет использовать любые радиаторы для пассивного или активного теплоотвода. Благодаря этому тепловыделение для модели с тактовой частотой 233 МГц не превышает 38.2 Вт. Для сравнения: Pentium 200МГц выделяет 37.9 Вт. Картридж S.E.C будет вставляться в разъем Slot 1, предложенный Intel в качестве нового технологического стандарта форм-фактора компоновки компьютера.

В январе 1999 г. корпорация Intel официально представила свой микропроцессор для PC Pentium III. По словам представителя компании Сета Уолкера, Pentium III должен продвинуть технологию вперед сразу на нескольких фронтах, включая тактовую частоту (первые модели процессора будут работать на частоте 450 и 500 МГц), обработку графики, скорость и надежность работы с Интернетом. План дальнейшего развития семейства изделий Pentium III предусматривает переход с технологической нормы 0,25 мкм на 0,18 мкм (рабочее название соответствующего микропроцессора — Coppermine). Переход с 0,25 мкм на 0,18 мкм приведет к повышению его производительности и снижению потребляемой мощности. Это позволит довести быстродействие кристаллов до 600 МГц и выше. Тактовая частота первых 0,25-мкм процессоров Pentium III составит 450 и 500 МГц. В процессор добавлены новые инструкции. Этот набор команд с кодовым названием Katmai New Instructions нацелен на повышение производительности обработки графики. Кроме того, он поможет ускорить работу приложений видео, аудио, распознавания речи и других подобных технологий. В марте 2001 г. Intel выпустила процессор Xeon 900 МГц - он стал последним членом семейства Pentium III. Этот процессор оснащен 2-Мбайт кэшем второго уровня, что повышает его производительность.

В ноября 2000 г. корпорация Intel подтвердила свое намерение выпустить микропроцессор Pentium 4 и объявила об планах перевода массовых настольных PC с Pentium III на Pentium 4 уже к концу 2001 года. Процессор Pentium 4 построен на основе микроархитектуры Intel NetBurst. Это первая принципиально новая микроархитектура процессоров для настольных ПК, разработанная фирмой за последние пять лет, с тех пор как в 1995 году был выпущен процессор Pentium Pro с микроархитектурой P6. В архитектуре NetBurst используется несколько новых технологий: гиперконвейерная технология (Hyper Pipelined Technology) с глубиной конвейера, вдвое превышающей таковую в Pentium III; ядро быстрого выполнения (Rapid Execution Engine), повышающее производительность при работе с целочисленными данными за счет работы на удвоенной тактовой частоте по сравнению с частотой основного ядра; и кэш-память с отслеживанием выполнения (Execution Trace Cache), хранящая уже «декодированные» команды; таким образом устраняется задержка при анализе повторно исполняемых участков кода.

Процессор Pentium 4 содержит 42 млн транзисторов на кристалле, снабжен кэш-памятью объемом 256 Кбайт и имеет 144 новые инструкции — так называемые потоковые SIMD-расширения-2 (SSE2), ускоряющие обработку блоков данных с плавающей запятой. В качестве основы платформ на базе Pentium 4 применяется чипсет Intel 850. Это пока единственный набор микросхем на рынке, разработанный для нового процессора. Чипсет поддерживает двухканальную память Rambus Direct RAM (RDRAM) с пропускной способностью 1,6 Гбайт/с по каждому каналу и системную шину с тактовой частотой 400 МГц и пропускной способностью до 3,2 Гбайт/с. На самом деле тактовая частота системной шины равна 100 МГц, а за один такт выполняется четыре операции (аналогичное решение применяется в AGP 4x). Intel также представила первую системную плату ATX D850GB для настольных ПК на базе нового чипсета. В настоящее время выпускаются 1.4-, 1.5- и 1.7-ГГц версии Pentium 4. Они производятся по 0,18-микронной технологии.

По мнению ведущих аналитиков, в 2001 году производители микрочипов произведут переход 2-ГГц рубежа: новые технологии производства полупроводниковых микросхем, включая нанесение на полимерную пленку и сверхминиатюризацию, позволят производителям перейти рубеж в 2 ГГц.

^ Структура микропроцессора.

Микропроцессор-это полупроводниковое устройство, состоящее из одной или нескольких программно-управляемых БИС, включающих все средства, необходимые для обработки информации и управления, и рассчитанное на совместную работу с устройствами памяти и ввода-вывода информации.

Микропроцессор состоит из трех основных блоков:

- арифметически-логического

- блока регистров

- устройства управления

Арифметически-логическое устройство (АЛУ) - выполняет все арифметические и логические преобразования данных.

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

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

Количество разрядов в регистре определяется разрядностью микропроцессора

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

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

Регистр команд - служит для хранения команды, выполняемой в текущий момент времени.

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

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

Сопроцессор

Для выполнения арифметических операций с плавающей точкой имеется специальный арифметический процессор, называемый сопроцессором. В отличие от CPU он не управляет системой, а ждет команду CPU на выполнение арифметических вычислений и формирование результатов. Согласно заявлениям фирмы Intel по сравнению с CPU арифметический сопроцессор может уменьшить время выполнения арифметических операций, таких как умножение и возведение в степень, на 80% и более. Скорость выполнения сложения и вычитания, как правило, остается без изменения.

Сопроцессор является только обиходным названием для этого чипа. Полностью он называется математическим сопроцессором или Numeric Processing Unit (NPU) или Floating Point Processing Unit (FPU).

Наличие сопроцессора на материнской плате не является обязательным, поэтому на его месте может оказаться пустой разъем для дальнейшей установки сопроцессора. Исключением являются все CPU 486DX и выше - здесь сопроцессор интегрирован прямо в CPU.

В первую очередь область применения сопроцессоров - научно-технические приложения, связанные с выполнением большого количества арифметических операций. Однако это не является ограничением использования. Обычно NPU ускоряет работу любой программы - даже программы обработки текстов, так как работа с текстовыми блоками и модулями требует сложных вычислений. Также сопроцессор существенно ускоряет обработку графических изображений и выполнение программ CAD.

^ Оперативная память

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

Чтобы CPU мог выполнять программы, они должны быть загружены в оперативную память (в область памяти, доступную для программ пользователя). CPU имеет непосредственный доступ к данным, находящимся в оперативной памяти (Random Access Memory, RAM - память с произвольным доступом, ОЗУ), с другой же -"периферийной", или внешней, памятью (гибкими и жесткими дисками) процессор работает через буфер, являющийся разновидностью оперативной памяти, недоступной пользователю. Только после того, как программное обеспечение будет считано в RAM с внешнего носителя данных, возможна дальнейшая работа системы в целом. Оперативная память представляет собой самую быструю запоминающую среду компьютера. Принципиально имеет значение то, что информация может быть как записана в нее, так и считана.

Оперативная память имеет свои достоинства и недостатки:

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

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

Оперативная память принадлежит к категории динамической памяти, т. е. ее содержимое во время эксплуатации должно "освежаться" через определенные интервалы времени.

Запоминающим элементом динамической памяти является конденсатор, который может находиться в заряженном или разряженном состоянии. Если конденсатор заряжен, то в ячейку записана логическая 1. Если конденсатор разряжен, то в ячейку записан логический 0. В идеальном конденсаторе заряд может сохраняться неопределенно долго. В реальном конденсаторе существует ток утечки, поэтому записанная в динамическую память информация со временем будет утрачена, так как конденсаторы запоминающих элементов через несколько миллисекунд полностью разрядятся. Во избежание потери информации существует процесс регенерации памяти (Refresh).

Оперативная память представляет собой плату (за исключением старых моделей PC, где микросхемы устанавливались прямо в материнскую плату), длинной около 8-и см., на которой размещены микросхемы DRAM (Dynamic RAM). Такая плата называется модулем и устанавливается в соответствующие слоты материнской платы. Наибольшее распространение в последнее время получили DIMM-модули. Также имели место SIP и SIMM-модули. Модули вставляются в специально предназначенные для них слоты на материнской плате, называемые банками (Banks).

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

Логическое распределение оперативной памяти

Логическое распределение оперативной памяти определяется не только применяемой операционной системой, но и особенностями аппаратной реализации IBM-совместимых PC.

Можно выделить три важнейшие логические области оперативной памяти:

- Стандартная оперативная память (Conventional Memory) Важнейшая область памяти (первые 640 Кб). В ней расположена большая часть всех прикладных программ и данных.

- UMA (Upper Memory Area) Здесь находится информация, которая служит для сопряжения прикладных программ с различными картами расширений. (384 Кб расположенные между 640Кб и 1Мб)

- XMS (Extended Memory Specification) Вся память выше 1Мб. Используется Windows-приложениями

Контроллеры

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

Результаты выполнения программ также выводятся на внешние устройства - монитор, диски, принтер и т. д.

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

1. Для каждого внешнего устройства в компьютере имеется электронная схема, которая им управляет. Эта схема называется контроллером, или адаптером. Некоторые контроллеры (контроллер дисков) могут управлять сразу несколькими устройствами.

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

Шина представляет собой совокупность линий (проводов) по которым передается информация. Подробнее шины описаны ниже.

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

- Параллельные LPT1-LPT3

- Асинхронные последовательные COM1-COM4

Разъемы параллельных и последовательных портов расположены на обратной стороне корпуса PC.

Параллельные порты выполняют ввод и вывод с большой скоростью, чем последовательные (за счет использования большего числа проводов в кабеле). Принцип параллельной передачи данных подразумевает передачу восьми бит данных одновременно (параллельно) К параллельному порту обычно подключается принтер. (25-и контактный разъем)

При последовательной передаче данных биты передаются (или принимаются) один за другим. К последовательным портам подключаются модемы, мыши и др. (9-и, реже 25-и контактный разъем)

Шины

CPU и Chipset едва ли можно было использовать, если бы информация не циркулировала между отдельными элементами и устройствами. Проще сказать, что в распоряжении системы есть несколько линий, которые связывают элементы между собой. Эти линии обмена данными называют шиной (Bus).

Важнейшей характеристикой шины является так называемая разрядность шины (иногда говорят ширина шины), которая определяет количество данных, параллельно "проходящих" через нее (8, 16, 32 и 64 бит).

Шины по функциональному назначению делятся на три категории:

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

- адресная шина. Служит для передачи адресов памяти.

- шина управления (системная шина). Управляет обменом данными, определяет какие данные куда необходимо доставить.

Существует несколько типов шин различающихся техническими возможностями:

- ISA – первая 8-ми разрядная шина.

- AT Bus – 16-и разрядная шина, ставшая расширением шины ISA

- MCA – 32-х разрядная. Скорость передачи данных – до 20 Мб/с

- EISA – дальнейшее развитие шины ISA. Эта 32-х разрядная шина обеспечивала до 33 Мб/с

- VESA – расширение шины ISA для обмена видеоданными. Имела 32 разряда

- PCI – в основе этой шины заложены абсолютно новые принципы. Эта 32-х разрядная шина обеспечивала скорость передачи данных до 132 Мб/с (PCI 1.0) и до 264 Мб/с. в 64-х разрядной PCI 2.0

- USB – универсальная шина для подключения периферийных устройств (клавиатура, мышь, принтер и т.д.) Скорость передачи данных 12 Мб/с.

К шинам через специальные разъемы (слоты расширения) подключаются карты расширения, такие как графический адаптер, звуковые карты и т.д. В системе может насчитываться 5 – 8 таких слотов. Все они внешне отличаются друг от друга в соответствие с типом шины. Наиболее распространены в PC шины PCI (для высокоскоростных устройств) и шины ISA (для клавиатуры, мыши, звуковой карты и т.д.).

^ 1.5 Устройства хранения данных

Очевидно, что помимо оперативной памяти необходимо оснащать компьютер еще и другими устройствами памяти, рассчитанными на долговременное хранение данных. К ним относятся дискеты, винчестеры, CD-ROM и др. Укажем важнейшие достоинства и недостатки таких запоминающих устройств.

Время доступа к информации для этих запоминающих устройств составляет миллисекунды, а для элементов оперативной памяти — наносекунды.

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

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

Дисководы

Дисководы (Floppy Disk Drive, FDD) являются старейшими периферийными устройствами PC. В качестве носителя информации в них применяются дискеты (Floppy) диаметрами 3,5" и размерами 5,25". Дискета представляет собой гибкий лавсановый диск, на который нанесено магнитное покрытие.

Информация на дискете запоминается путем изменения ее намагниченности. Изменение поля ориентирует магнитные частицы дискеты в направлении север-юг или юг—север. Так представляются логические состояния "1" или "О".

Дискеты различаются друг от друга по своей емкости, то есть количеству информации, которое на них можно записать. Трехдюймовые дискеты чаще всего имеют емкость 1,44 Мбайта, хотя встречаются старые дискеты емкостью 720 Кбайт. Пятидюймовые дискеты чаще всего имеют емкость 360 Кбайт (обозначение - Double Side /Double Density, DS/DD) или 1,2 Мбайта (Double Side/High Density, DS/HD).

Однако дискеты не предоставляют свой теоретический объем полностью в наше распоряжение. Операционная система с целью манипулирования данными должна резервировать определенные области. Нулевая дорожка нулевой стороны первого сектора - это так называемый Boot-сектор (загрузочный). В этом месте загрузочной (системной) дискеты, содержащей компоненты операционной системы, находится программа для загрузки системы. Таблица размещения файлов FAT (File Allocation Table) помещается два раза подряд (с копией) и требует также определенное количество секторов. Эта таблица необходима для того, чтобы система могла узнать, какая информация располагается на дискете и в каких областях она находится. Таким образом, FAT содержит как бы опись дискеты. В FAT отмечается каждое изменение состояния данных дискеты.

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

Винчестеры

Первый винчестер, также называемый накопителем на жестких дисках (Hard Disk Drive, HDD), установленный в PC, имел "колоссальную" емкость 10 Мб, а еще недавно PC были оснащены стандартными винчестерами Seagate ST225 емкостью 21 Мб. В настоящее время уже возможно приобрести винчестеры емкостью 70 Гб. Можно только удивляться крайне быстрым темпам развития этих аппаратных средств.

По сравнению с дискетами винчестеры имеют два важнейших достоинства и один незначительный недостаток:

- Емкость винчестеров едва ли можно сравнивать с емкостью дискет. Так, для того чтобы сохранить данные объемом 420 Мб, потребуется около 290 дискет 3,5" HD

- Время доступа для винчестеров на порядок меньше, чем для приводов дискет

- Винчестеры предназначены для стационарной установки в PC. Обычно они извлекаются из корпуса PC только при замене

В принципе жесткие диски подобны дискетам. В них информация также записывается на магнитный слой диска. Однако этот диск, в отличие от дискет, сделан из жесткого материала, чаще всего алюминия (отсюда и название Hard disk). В корпусе из прессованного алюминия (41,6*101*146) объединены такие элементы винчестера, как управляющий двигатель, носитель информации (диски), головки чтения/записи и электроника.

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

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

^ Приводы CD-ROM

CD (Compact Disk - компакт-диск), пришедшие из области аудиоаппаратуры, были модифицированы для применения в PC и в настоящее время уже уверенно вошли в стандартную комплектацию современных компьютеров.

CD-ROM (Compact Disk Read Only Memory) имеет ряд достоинств и недостатков:

- По сравнению с винчестерами CD значительно надежнее в транспортировке

- CD-ROM имеет огромную емкость. Объем данных достигают 500-700 Мб

- CD-ROM практически не изнашивается (при соответствующей эксплуатации)

- Основной недостаток относится к методам обработки информации. CD-ROM является накопителем, предназначенным только для чтения данных - носитель не позволяет записывать информацию на него (необходим пишущий CD-WORM - Write once-Read many)

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

Компакт-диск представляет собой металлизированный пластмассовый диск диаметром 110 мм и толщиной 1,2 мм. На верхнюю сторону наносится светоотражающий алюминиевый слой, который покрыт защитным лаком для предотвращения повреждений.

CD-WORM (Write once-Read many) дают возможность однократной записи информации на CD. Такие CD, в основном, применяются там, где однократно должны запоминаться большие объемы данных и потом уже не изменяться, например, для целей архивации.

Устройства записи CD-WORM, или CD-ROM-Recorder, "прожигают" чистые диски CD-ROM, нанося на них до 650 Мб данных (74 минуты звучания цифрового аудио).

После этого CD-ROM можно использовать в любом стандартном приводе CD-ROM. С помощью CD-ROM-Recorder можно создавать собственные аудиодиски, делать резервные копии винчестера и т.д.

^

Лекция 2. Эволюция микрокомпьютеров.


Введение.

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

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

^ 1.1.Основные направления эволюции микрокомпьютеров.

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

^ Уменьшение размеров. В 50-х гг. двадцатого столетия все электронные устройства, от радиоприемников и телевизоров до компьютеров, были построены на громоздких электронных лампах. Компьютеры этого периода иногда называют ЭВМ первого поколения, а примерами их служат модели 650 и 704 фирмы IBM. Эти компьютеры устанавливались в больших помещениях и состояли из нескольких стоек с электронным оборудованием. К концу 50-х гг. электронные лампы начали заменять транзисторами и другими твердотельными приборами. Компьютеры, выполненные по новой технологии, стали называть ЭВМ второго поколения (примерами их служат системы машины 7090 фирмы IBM и В5500 фирмы Burroughs).

В 60-х гг. дискретные электронные элементы (транзисторы, резисторы и др.) были объединены в более сложные электронные компоненты, названные интегральными схемами. Интегральная схема изготавливается на кремниевой пластинке, размеры которой меньше размеров почтовой марки. Пластинка монтируется в корпусе со многими выводами ("сороконожка"), который можно встроить в систему. Такая интегральная схема называется чипом (кристаллом). Компьютеры, построенные на интегральных схемах, относятся к ЭВМ третьего поколения (системы IBM 360, GE 635 и Burroughs 6700). Технология интегральных схем продолжала совершенствоваться, и в начале 70-х гг. многие компоненты ЭВМ удалось разместить в одной микросхеме (микропроцессоры 4004 и 8008 фирмы Intel). Появился термин компьютер на кристалле.

Компьютеры на кристалле называются микрокомпьютерами и микропроцессорами. Хотя этим терминам иногда придается одинаковый смысл, между ними имеется различие. Микропроцессор - это одна микросхема, содержащая схемы управления и арифметические устройства компьютера, но в ней нет памяти и устройств ввода-вывода. Микрокомпьютер - это законченная система, содержащая микропроцессор, микросхемы памяти и устройства ввода-вывода. Иногда вся система реализуется на одном кристалле (микросхема 8048 фирмы Intel), и тогда получается однокристальный микрокомпьютер.

^ Расширение возможностей. Эра микропроцессоров началась в 1971 г. с появлением микросхем 4004 и 8008 фирмы Intel. Они относятся к микропроцессорам первого поколения. Обе эти микросхемы разрабатывались для специализированных применений: 4004 - для калькулятора, а 8008 -для терминала. Оба микропроцессора считались в то время занимательной новинкой и всерьез не воспринимались. Но к 1974 г., когда микропроцессор 8008 был модифицирован в микропроцессор второго поколения 8080, на них обратила внимание компьютерная промышленность. Микросхема 8080 была первым микропроцессором, специально разработанным для множества применений; она быстро стала "стандартным" микропроцессором.

Теперь микропроцессор стал выполнять вычислительные задачи старых и громоздких компьютеров и оказался по стоимости доступным даже для любителей. Многие фирмы выпускали микропроцессор 8080 по лицензиям, а некоторые из них предложили улучшенный его вариант (микропроцессор Z80 фирмы Zilog). В 1976 г. появился модернизированный вариант микропроцессора 8080 - микросхема 8085 фирмы Intel. Однако до 1978 г. базовая структура микропроцессора 8080 оставалась неизменной.

В 1978 г. фирма Intel выпустила микропроцессор 8086. Это был первый микропроцессор, который работал с данными длиной 16 бит (микропроцессор 8080 работает с 8-битными данными). Вскоре еще две фирмы объявили о своих 16-битных микропроцессорах: фирма Motorola выпустила микропроцессор М68000, а фирма Zilog - микропроцессор Z8000. Все эти микропроцессоры образовали третье поколение микропроцессоров.

В 1979 г. был выпущен 8-битный вариант 8086 - микропроцессор 8088. Через два года фирма IBM вышла на рынок персональных компьютеров и использовала его в своем первом изделии - персональном компьютере IBM PC. Благодаря такой мощной поддержке микропроцессоры 8086 и 8088 стали наиболее популярными.

Семейство микропроцессоров 8086 продолжало развиваться. В 1983 г. фирма Intel разработала усовершенствованные модификации - процессоры 80186 и 80188. В этом же году был объявлен процессор 80286, который стал крупным шагом вперед по сравнению с микропроцессором 8086. Через год этот процессор был встроен в персональный компьютер фирмы IBM следующего поколения - IBM PC/AT.

Сделаем замечание по названиям процессоров. Фирма Intel называет процессоры - iАРХ186, iАРХ188 и iАРХ286. Однако вне ее их называют -80186, 80188 и 80286; этого же будем придерживаться и мы, хотя имеют хождение и сокращенные названия процессоров - 186,188 и 286.

Параллельно с расширением сферы применения микропроцессоров развивались и специализированные микропроцессоры. Под сопроцессором понимается подчиненный процессор, выполняющий специализированные функции для процессора широкого назначения. Первым популярным сопроцессором оказался 8087, который выполняет вычисления с плавающей точкой для микропроцессоров 8086 и 8088. С появлением процессоров 80186 и 80188 он стал применяться и с ними. Но поскольку в процессор 80286 встроен другой интерфейс с сопроцессором, для него потребовалось модифицировать сопроцессор 8087. Таким усовершенствованным сопроцес­сором стала микросхема 80287 (другие названия ее 287 и iАРХ287).
^ 1.2. Основные сведения о компьютерах. Предполагается, что читатели знакомы с принципами построения компьютеров, поэтому мы дадим здесь только краткий обзор. Компьютер получает данные от устройств ввода, обрабатывает их и передает окончательные результаты в устройство вывода. Выполняемая обработка определяется последовательностью команд (инструкций), называемой программой. Программа хранится в памяти компьютера.

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

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

1) посылает сигналы в память, запрашивая передачу двух значений;

2) суммирует полученные значения;

3) посылает сигнал в память о том, чтобы она приняла результат сложения.

Память - это совокупность последовательных ячеек, каждая из которых имеет уникальный адрес. Каждая ячейка состоит из последовательности бит. Значения бит (0 или 1) образуют содержимое ячейки.

Регистры, как и память, используются для хранения промежуточных результатов. Но они находятся в составе процессора, поэтому получать значения из регистров проще и быстрее, чем из памяти. Флажки внутри процессора применяются для регистрации того, что в нем происходит. Есть два вида флажков: одни из них (флажки состояния) фиксируют информацию об особенностях ранее выполненных команд, а другие (флажки управления) управляют действиями процессора. Пример флажка состояния - флажок, показывающий, не является ли результат для компьютера слишком большим. Примером флажка управления служит флажок, заставляющий компьютер выполнять команды с меньшей скоростью. Может оказаться, что флажок одновременно является и флажком состояния, и флажком управления; примером может служить флажок NT процессора 80286.

^ 1.3. Представление чисел. Мы привыкли представлять целые числа в виде последовательностей десятичных цифр, например 365: три сотни, шесть десятков и пять единиц. Такое представление называется представлением с основанием десять. Целые числа в компьютерах обычно представляются последовательностями двоичных цифр (бит), например 11010. Такое представление в двоичной системе обозначает: 1 - шестнадцать, 1 - восемь, 0 - четыре, 1 - два и 0 -нуль. Двоичные числа можно складывать, вычитать, умножать и делить, не превращая их в десятичные, если помнить о том, что 1 плюс 1 равно 10 (1 -два и 0 - нуль), а не 2. Приведем пример:

+1001 (двоичное представление девяти)

0101 (двоичное представление пяти)

1110 (двоичное представление четырнадцати)

Конечно, мы запутаемся в длинных последовательностях двоичных цифр, но компьютеры в них не путаются. Например, 10110101 есть двоичное представление десятичного числа 181. Чтобы упростить действия с двоич­ными числами, их цифры группируют по четыре бита. После этого каждая группа представляется одним символом в соответствии с табл. 1.1. Например, число 10110101 сокращенно записывается как В5. Такое представление называется шестнадцатеричным числом; если бы мы рождались с шестнадцатью пальцами на руках, то пользовались бы именно такими числами.





Таблица 1.1 Шестнадцатеричное представление




Группа из 4 бит

Шестнадцатеричная цифра

Значение

0000

0

Нуль

0001

1

Один

0010

2

Два

0011

3

Три

0100

4

Четыре

0101

5

Пять

0110

6

Шесть

0111

7

Семь

1000

8

Восемь

1001

9

Девять

1010

10

Десять

1011

11

Одиннадцать

1100

12

Двенадцать

1101

13

Тринадцать

1110

14

Четырнадцать

1111

15

Пятнадцать


Двоичная запись очень удобна для представления положительных чисел и нуля. Но при переходе к отрицательным числам потребуется дополнительный механизм для указания знака числа. Проще всего использовать для знака старший (левый) бит числа, например:

0000 0100 (обозначает +4)

1000 0100 (обозначает -4)

0111 1111 (обозначает +127)

1111 1111 (обозначает -127)

У такого представления, называемого прямым кодом, имеется один серьезный недостаток: для него потребуются специальные арифметические правила. Покажем это на примере использования двоичной арифметики для вычитания +1 из 0 с ожидаемым получением -1:

-0000 0000 (0 в прямом коде)

0000 0001 (+1 в прямом коде)

1111 1111 (-127 в прямом коде)

При использовании для знаковых чисел (как и для беззнаковых) обычной двоичной арифметики требуется особое представление знаковых чисел, в котором 11111111 представляет -1, а не -127. Кроме того, вычитание +1 из -1 должно давать -2. Выполним это вычитание, чтобы посмотреть, как должно выглядеть -2:

11111111 (это -1)

00000001 (вычитаем +1)

11111110 (и называем это -2)

Рассмотренное представление называется дополнительным кодом; в этом коде операции сложения и вычитания дают правильный результат в дополнительном коде, например:

+00000011 (+3 в дополнительном коде)

11111110 (-2 в дополнительном коде)

0000 0001 (+1 в дополнительном коде)

В дополнительном коде старший бит неотрицательного (положительно­го или нулевого) числа содержит 0, а отрицательного числа -1. Следовательно, как и в прямом коде, этот бит является знаковым.

Знак числа в дополнительном коде можно изменить, если изменить (инвертировать) значение каждого бита и прибавить +1. Например, мы можем получить представление -5 в дополнительном коде из представления +5 в дополнительном коде следующим образом:

+00000101 (+5 в дополнительном коде)

11111010 (+5 с измененными битами)

0000 0001 (+1 в дополнительном коде)

11111011 (- 5 в дополнительном коде)

Необходимо очень осторожно подходить к увеличению длины чисел представленных в дополнительном коде. Бели 8-битное число в дополнительном коде расширяется до 16 бит (например, для сложения с 16-битным числом в дополнительном коде), нужно подумать, что же поместить в левые 8 бит.

Предположим, что мы хотим прибавить число 0000 0001 (+1 в дополнительном коде) к 0000 0000 0000 0011 (+3 в дополнительном коде). Наверное, ни у кого не возникает сомнений в том, что здесь следует просто добавить в числе +1 восемь нулей с левой стороны, а затем сложить:

+0000 0000 0000 0011 (+3 в дополнительном коде)

0000 0000 0000 0001 (+1 в дополнительном коде)

0000 0000 0000 0100 (+4 в дополнительном коде)

Однако при необходимости прибавить число 1111 1111 (-1 в дополнительном коде) к числу 0000 0000 0000 0011 (+3 в дополнительном коде) следует добавить к числу -1 слева восемь единиц (добавление нулей превратило бы -1 в положительное число). После этого производится сложение:

+0000 0000 0000 0011 (+3 в дополнительном коде)

1111 1111 1111 1111 (-1 в дополнительном коде)

0000 0000 0000 0010 (+2 в дополнительном коде)

Следовательно, расширение 8-битного числа в 16-битное выглядит так:


Значение

8-битное представление

16-битное представление

+1

0000 0001

0000 0000 0000 0001

-1

1111 1111

1111 1111 1111 1111


Таким образом, для расширения числа в дополнительном коде необхо­димо ввести новые биты слева и поместить в каждый из них значение знакового бита. Этот процесс называется расширением со знаком.
Заключение. Познакомившись с компьютерами и представлением чисел, мы готовы к изучению конкретного процессора 80286. В следующей лекции мы рассмотрим его машинную организацию.
^

Лекция 3. Машинная организация процессора 80286


1.1. Введение.

Один из способов изучения компьютера заключается в рассмотрении его функциональных компонентов. Описание этих компонентов и их взаимодействия иногда называется архитектурой компьютера. В понятие архитектуры входят число регистров и их функции, объем подключаемой памяти, способы ее адресации и средства ввода-вывода.

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

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

Процессор 80286 имеет четыре набора регистров: регистры общего назначения для хранения промежуточных результатов; указательные и индексные регистры для локализации информации в определенных областях памяти; сегментные регистры, которые служат для задания этих областей памяти; в последний набор входит указатель команды. Кроме того, в процессоре находится девять флажков, фиксирующих текущее состояние и управляющих его работой. Процессор может обращаться более чем к 1 млн. байт памяти (и намного больше в виртуальном режиме) и более чем к 65 000 входных и выходных портов

Типичные команды компьютера локализуют операнды (т.е. обрабатываемые данные), выполняют операцию над значениями операндов и помещают результат в указанное место. В зависимости от команды операнды и результат могут находиться в памяти или регистрах. Средства их локализации называются режимами адресации операндов; они будут рассмотрены позже.

^ 2.2. Структура памяти.

Память системы, работающей в реальном режиме, образуют 220 (при­мерно 1 млн.) 8-битных величин, называемых байтами. Каждому байту назначен уникальный адрес (беззнаковое число) из диапазона от 0 до 220 -- 1 (от 00000 до FFFFF в шестнадцатеричной системе счисления), что показано на рис. 2.1. В виртуальном режиме размер памяти расширяется до 224 (16 млн.) байт.

Л
юбые два смежных (или соседних) байта в памяти образуют слово. У каждого из двух байт в слове есть свой адрес и меньший из них принимается за адрес слова. Примеры слов показаны на рис. 2.2.

С
лово состоит из 16 бит. Байт с большим адресом содержит старшие биты слова, а байт с меньшим адресом - младшие. Сначала такая ситуация кажется вполне естественной: конечно же, старший байт должен иметь больший адрес. Но когда память рассматривается как последовательность байт, простирающаяся от наименьшего адреса к наибольшему, оказывается, что процессор хранит слова "наоборот", что показано на рис. 2.3.

^ 2.3. Сегментация памяти.

Поскольку процессор 80286 может адресовать до 220 байт (и намного больше в виртуальном режиме), можно было бы ожидать, что внутри него адреса байт и слов должны быть представлены 20-битными величинами. Однако процессор рассчитан на 16-битную арифметику, поэтому длина адресных объектов ограничена 16 битами. Следовательно, для построения адресов необходим какой-то дополнительный механизм.

В реальном режиме память 1 Мбайт состоит из нескольких сегментов, каждый из которых содержит самое большее 216 (64К) байт. Сегменты начинаются по адресам, кратным 16, т.е. имеющим четыре нулевых младших бита. В любой момент времени программа может обращаться к четырем сегментам, которые называются текущим сегментом кода, текущим сегментом данных, текущим сегментом стека и текущим дополнительным сегментом (он обычно отводится для данных). Каждый текущий сегмент идентифицируется путем размещения старших 16 бит адреса его первого байта в одном из четырех специальных сегментных регистров. Отметим, что сегменты могут перекрываться, как видно на рис. 2.4.





Предположим, например, что в 16-битном сегментном регистре кода содержится число С018. Это значит, что сегмент кода начинается по адресу байта С0180 и простирается на 216 (1000016) байт. Следовательно, последний байт сегмента кода имеет адрес D017F.

Мы обращаемся к байтам или словам внутри сегмента с помощью 16-битного внутрисегментного смещения. Процессор образует 20-битный адрес байта или слова, суммируя 16-битное смещение с содержимым 16-битного сегментного регистра, к которому "пристроены" четыре младших нуля (рис. 2.5.). В предыдущем примере байт с адресом CFFFF находится внутри текущего сегмента кода, т.е. он имеет смещение FE7F (CFFFF -С0180) в сегменте, как показано на рис. 2.6.

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

^ 2.4. Структура ввода-вывода.

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

Процессор может обращаться к 216 (64К) 8-битным портам примерно так же, как к байтам памяти. Каждому 8-битному порту назначен уникальный адрес из диапазона от 0 до 216 - 1. Любые два смежных 8-битных порта можно считать 16-битным портом аналогично слову памяти.

2.5. Регистры.

Процессор имеет 13 16-битных регистров и 9 однобитных флажков (флажки NT и IOPL предназначены только для виртуального режима). Мы разделим регистры на четыре набора: три набора содержат по четыре регистра, а непосредственно недоступный программисту указатель команды образует отдельный набор. Регистры и флажки показаны на рис. 2.7. Регистры общего назначения служат, в основном, для хранения операндов арифметических и логических операций; указательные и индексные регистры предназначены для хранения внутрисегментных смещений, а сегментные регистры определяют начальные адреса сегментов.

^ Регистры общего назначения. В процессоре, не имеющем регистров общего назначения (РОН), каждая команда должна считывать свои операнды из памяти и возвращать результат также в память. Однако на обращение к памяти расходуется время, которое можно уменьшить, если временно хранить часто используемые операнды и результаты в более быстро доступном месте. Таким местом и являются регистры общего назначения.





РОНы в процессоре 80286 представлены 16-битными регистрами АХ, ВХ, СХ и DX. Младшую и старшую половины каждого РОНа можно использовать либо отдельно (как два 8-битных регистра), либо совместно (как один 16-битный регистр). В связи с этим каждой половине РОНа дано свое название: младшие (Low) половины называются AL, BL, CL и DL, а старшие (High) - АН, ВН, СН и DH. Двойственный характер РОНов позволяет одинаково легко оперировать байтами и словами.

Большей частью содержимое РОНов единообразно участвует в арифметических и логических операциях. Например, по команде ADD (сложить) можно прибавить содержимое любого 8- или 16 битного РОНа к содержимому любого другого РОНа такого же размера и сохранить результат в любом из них. Однако в некоторых командах функции РОНов специализированы. Например, в цепочечных командах регистр СХ должен хранить число элементов цепочки; для этого нельзя привлекать регистры АХ, ВХ и DX. Такая специализация предопределяет описательное название регистра СХ - СЧЕТЧИК. Специальные функции регистров АХ, ВХ и DX объясняют их названия: АККУМУЛЯТОР, БАЗА и ДАННЫЕ.

Специализация РОНов затрудняет изучение процессора из-за необходимости помнить специальные правила. Она же несколько увеличивает длину программ, так как до выполнения некоторых команд приходится пересылать данные из одного РОНа в другой. Однако рассмотрим разработку программы для процессора, в котором все РОНы одинаковы. Чтобы следить за ее выполнением, нам, вероятно, придется организовать программу так, чтобы определенные данные всегда находились в конкретных регистрах. Например, можно договориться всегда использовать регистр СХ для учета числа - элементов цепочки. Тогда нам никогда не придется пересылать размер цепочки в регистр СХ, так как он всегда будет там. Но поскольку цепочечная команда в нашем гипотетическом процессоре может получать размер цепочки из любого РОНа, каждая цепочечная команда должна указывать, где находится размер цепочки. Для этого придется, либо увеличить длину каждой цепочечной команды (два байта вместо одного), либо ввести больше однобайтных цепочечных команд. Первое решение прямо ведет к увеличению программы, а второе имеет такие же последствия. Действительно, всего может быть только 256 однобайтных команд, и увеличение числа однобайтных цепочечных команд заставит удлинить другие однобайтные команды до двух байт. Таким образом, специализация РОНов в некоторых командах уменьшает длину программы.

^ Указательные и индексные регистры. Команда с обращением к ячейке памяти может прямо указать адрес этой ячейки, но прямой адрес увеличивает длину команды и размер программы (кода). Если адреса часто используемых ячеек хранить в специальных регистрах, то в команде адрес можно не указывать, а определить регистр, в котором находится адрес. Такие регистры иногда называются указательными или индексными. Данное использование регистров напоминает сокращенный набор номеров телефонов. Вы можете позвонить любому человеку в городе, набирая семизначный номер его телефона. Но, если телефонная компания предлагает такой сервис, можно поместить часто используемые номера абонентов в "регистры". После этого для соединения с нужным абонентом набираются одна или две цифры, определяющие регистр.

К указательным и индексным регистрам процессора 80286 относятся 16-битные регистры SP, BP, SI и DI, которые обычно содержат внутрисегментные смещения. Например, в команде ADD один из операндов может находиться в текущем сегменте, данных со смещением, содержащимся в одном из указательных или индексных регистров, скажем SI.

Помимо сокращения длины команд, рассматриваемые регистры выполняют еще одну (возможно, более важную функцию): они позволяют командам обращаться к ячейкам, смещения которых являются результатом предыдущих вычислений в ходе выполнения программы. Такие вычисления часто требуются (особенно в программах на языках высокого уровня) для того, чтобы установить смещения переменных. Требуемые вычисления можно осуществить в РОНах, а затем переслать результат в указательный или индексный регистр для использования его как смещения. Если устранить подобные пересылки, программы будут короче. Поэтому содержимое указательных и индексных регистров может участвовать в арифметических и логических операциях наряду с 16-битными РОНами. Например, в упомянутой выше команде ADD вторым операндом может быть содержимое регистра SI.

Рассматриваемые регистры имеют некоторые различия, что и объясняет их разделение на указательные и индексные. Указательные регистры SI и DI предназначены для удобного доступа к данным в текущем сегменте данных, а базовые регистры SP и ВР - в текущем сегменте стека. Использование сегмента стека как "области данных" дает некоторое преимущество в реализации языков высокого уровня (см. далее). Поэтому, если сегмент явно не указан, смещения в базовых регистрах относятся к текущему сегменту стека, а смещения в индексных регистрах обычно относятся к сегменту данных. (Слово "обычно" подразумевает исключения, о которых речь пойдет далее.) Если, например, в команде ADD смещение одного из операндов находится в регистре SI, то считается, что операнд содержится в сегменте данных, но можно явно определить и другой сегмент.

В некоторых командах учитывается различие между двумя базовыми регистрами SP и ВР. Например, в командах PUSH и POP смещение верхнего элемента стека берется из регистра SP, что объясняет его название УКАЗАТЕЛЬ СТЕКА. Использовать для этой цели регистр ВР нельзя. Этот регистр содержит смещение "базы" области данных в сегменте стека, поэтому и называется УКАЗАТЕЛЕМ БАЗЫ.

Кроме того, в цепочечных командах существует различие между индексными регистрами SI и DI. Предполагается, что смещение операн­да-источника содержится в регистре SI, а операнда-приемника - в регистре DI. Этим объясняется название этих регистров ИНДЕКС ИСТОЧНИКА и ИНДЕКС ПРИЕМНИКА. Функции регистров SI и DI в цепочечных командах изменить нельзя. Например, команда пересылки цепочки передает цепочку из текущего сегмента данных со смещением из регистра SI в текущий дополнительный сегмент со смещением из регистра DI; регистры SI и DI в команде явно не указываются. (Цепочка-приемник находится в дополнительном сегменте, а не в сегменте данных, поэтому у каждой цепочки есть свой сегмент и длина ее может доходить до 216 байт.)

^ Сегментные регистры. Напомним, что в реальном режиме память состоит из 1М байт, но адреса, содержащиеся в командах и в указательных и индексных регистрах, имеют длину всего 16 бит. Они не могут адресо­вать всю память, а являются смещениями в каком-то конкретном сегменте емкостью 64 Кбайт. Но в каком же?

В процессоре 80286 для задания текущих сегментов предназначены четыре 16-битных сегментных регистра CS, DS, SS и ES. Каждый регистр идентифицирует конкретный текущий сегмент и функции их совершенно различны: CS идентифицирует текущий сегмент кода, DS - текущий сегмент данных, SS - текущий сегмент стека и ES - текущий дополнительный сегмент (данных).

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

Выборки всех команд осуществляются из текущего сегмента кода, поэтому нужен регистр, содержащий смещение следующей выполняемой команды в текущем сегменте кода. Эту функцию выполняет регистр IP -УКАЗАТЕЛЬ КОМАНДЫ. Если, например, регистр CS содержит 1FF7, а регистр IP - 003А, то следующая выполняемая команда выбирается из ячейки 1FFАА:

+1FF70 (начальный адрес сегмента кода)

003А (смещение в регистре IP)

1FFАА (адрес следующей команды)

Напомним, что для образования адреса памяти к содержимому регистра CS "пристраивается" шестнадцатеричная цифра 0 (см. рис. 2.5).

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

если в вычислении смещения участвует указательный регистр, то привлекается текущий сегмент стека;

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

Указание префикса в цепочечной команде может повлиять только на операнд-источник; операнд-приёмник всегда находится в текущем дополнительном сегменте. Указание префикса в цепочечной команде может повлиять только на операнд-источник; операнд-приемник всегда находится в текущем дополнительном сегменте.

Рассмотрим команду ADD, один из операндов которой находится в сегменте данных, а смещение содержится в регистре SI. Команда должна указать регистр SI в своем поле операнда, но может не определять регистр DS. При выполнении команды процессор знает, что для локализации операнда необходимо использовать содержимое регистров DS и SI. Теперь обратимся к команде ADD, один из операндов которой находится в сегменте кода (им, например, может быть константа), а смещение содержится в регистре SI. Команда ADD, как и раньше, должна определить регистр SI в поле операнда; при выполнении же команды ей должен предшествовать байт префикса, идентифицирующий регистр CS.

Флажки. Процессор 80286 имеет 9 флажков, которые применяются для регистрации состояния (флажки состояния) и управления действиями процессора (флажки управления). Флажки состояния обычно устанавливаются после выполнения арифметических и логических команд, отражая определенные свойства их результатов. К ним относятся:

флажок переноса CF, показывающий перенос из старшего бита;

флажок вспомогательного переноса AF, фиксирующий перенос из четырех младших бит;

флажок переполнения OF, определяющий выход знакового результата за границы диапазона;

флажок нуля ZF, показывающий нулевой результат команды;

флажок знака SF, регистрирующий отрицательный результат;

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

К флажкам управления относятся флажок направления DF (показывает направление прохождения цепочек в цепочечных командах), флажок разрешения прерываний IF (разрешает или запрещает восприятие прерываний по входу INTR) и флажок трассировки TF (переводит процессор в пошаговый режим для отладки программы).

^

Лекция 4. Операнды и режимы адресации операндов.


Команды обычно выполняют операции над одним или двумя операнда­ми. Например, команда ADD прибавляет значение одного операнда к значению второго операнда и запоминает результат в одном из них. Команда инкремента INC прибавляет 1 к значению единственного операнда и сохраняет результат на месте операнда. Теперь нам нужно детально рассмотреть, как команда определяет свои операнды, т.е. режимы адресации операндов.

^ Один операнд. Обратимся к команде, которая определяет единствен­ный операнд, например к команде INC. Обычно она применяется для инкремента указательного или индексного регистра при вычислении смещений, а также





- 16-битного РОНа в арифметических операциях. С такими операндами команда принимает очень простую однобайтную форму, показанную на рис. 2.8. Она имеет 3-битное поле reg, определяющее один из восьми 16-битных регистров. Кодирование регистров в поле reg показано в первых двух столбцах табл. 2.1.




Таблица 2.1 Кодирование регистров







16-битный регистр

8-битный регистр

000

AX

AL

001

CX

CL

010

DX

DL

011

BX

BL

100

SP

AH

101

BP

CH

110

SI

DH

111

DI

BH

Остальные 5 бит команды определяют операцию и называются кодом операции (КОП). Например, у команды INC код операции равен 01000. На рис. 2.9 показана команда, которая производит инкремент содержимого регистра ВР. Такой способ адресации операнда иногда называется регистровым режимом. В табл. 2.2 показаны все режимы адресации операндов.





^ Таблица 2.2 Режимы адресации операндов

НЕПОСРЕДСТВЕННЫЙ

РЕГИСТРОВЫЙ

^ ПРЯМАЯ АДРЕСАЦИЯ ПАМЯТИ

КОСВЕННАЯ АДРЕСАЦИЯ ПАМЯТИ

Базовый регистр

Индексный регистр

Базовый регистр + индексный регистр

Базовый регистр + смещение

индексный регистр + смещение

Базовый регистр + индексный регистр + смещение





В наиболее общей форме команда INC может произвести инкремент содержимого любого РОНа, указательного или индексного регистра (8 или 16 бит) и любого байта или слова памяти. Эта форма длиной в два байта показана на рис. 2.10. Теперь поле КОП расщеплено на две части: семь бит его находятся в первом байте, а три - во втором. Код операции команды INC в такой форме равен 1111111 000. Однобитное поле w определяет длину операнда: если w = 0, операнда имеет 8 бит, а при w = 1 - 16 бит. Поле mod показывает, находится ли операнд в регистре или памяти. Если mod = 11, операнд содержится в регистре, а три остальные комбинации поля mod относятся к памяти. Когда операнд - в регистре, поле rпоказывает конкретный регистр; а если операнд - в памяти, это же поле определяет, где именно он находится (сокращение rобозначает регистр/память).




Вначале рассмотрим случай, когда операнд находится в регистре (mod = 11). Кодирование регистров в поле rпоказано в табл. 2.1. По существу, мы имеем второй вариант регистрового режима адресации операндов. На рис. 2.11 приведена команда инкремента содержимого регистра CL. Для доступа к 8-битному регистру требуется более длинная форма команды INC.




Теперь обратимся к случаю, когда операнд находится в памяти (mod = = 00, 0, 10). Этот режим иногда называется косвенной адресацией памяти, f так как операнд содержится в памяти, но смещение явно не указано. Вместо этого оно получается суммированием довольно странных на первый взгляд значений. (Удобство такого режима мы пояснили в разд. 1.7.) Смещение равно сумме не более трех слагаемых: 16-битного значения (оно называется смещением в команде), содержимого индексного регистра (SI, DI или никакого), определенного в команде, и содержимого базового регистра (SP, ВР или никакого), указанного в команде. Поле rидентифицирует базовый и индексный регистры в соответствии с табл. 2.3, а поле mod определяет смещение в Команде (см. табл. 2.4). Образованный результат локализует операнд внутри сегмента. Операнд находится в текущем сегменте данных (но если в вычислении смещения участвует регистр ВР, операнд находится в текущем сегменте стека). Конечно, для образования 20-битного (24-битного в виртуальном режиме) адреса памяти потребуется еще одно сложение с привлечением сегментного регистра.




Таблица 2.3 ^ Базовый и индексный регистры, определяемые полем r/т для операндов в памяти (mod  11)




Поле r

Базовый регистр

Индексный регистр

000

BX


SI

001

BX

DI

010

BP

SI

011

BP

DI

100

НЕТ

SI

101

НЕТ

DI

110

BP

НЕТ

111

BX

НЕТ

Если mod = 00 и r/m ==110, см. примечание к табл. 2.4




















Таблица 2.4 ^ Смещение в команде, определяемые полем mod для операндов в памяти (mod  11)




mod

Смещение в команде

Пояснение

00

Нуль (16 бит)




01

8-битное содержимое следующего байта команды расширяется со знаком до 16 бит

Команда имеет дополнительный байт

10

16-битное содержимое двух следующих байт команды (сначала младший, а затем старший байты)

Команда имеет два дополнительных байта

Если mod = 00 и r/m = 110, то:

Табл 2.3 и 2.4 непременимы;

Команда содержит два дополнительных байта. В этих байтах находятся все смещения в сегменте (сначала младший, а затем старший байты)








В качестве примера рассмотрим команду, показанную на рис. 2.12. Поле кода операции содержит 1111111 000 и определяет команду INC. Поле w = 1 показывает длину операнда 16 бит. Поле mod = 01 и операнд, следовательно, находится в памяти; кроме того, смещение в команде из следующего байта необходимо расширить со знаком до 16 бит: 0000 0000 0101 1100.




Поле r= 100, поэтому со смещением в команде следует просуммировать содержимое регистра SI (пусть оно равно 1010 0000 1000 0110);

+1010 0000 1000 0110 (содержимое SI)

0000 0000 0101 1100 (смещение в команде)

1010 0000 1110 0010 (результат)

Так как в вычислениях не участвует регистр ВР, операнд находится в текущем сегменте данных. Предположим, что регистр DS содержит 1111 0000 1111 0000 и процессор работает в реальном режиме. Тогда адрес операнда в памяти равен:

+1111 0000 1111 0000 (сегмент)

1010 0000 1110 0010 (смещение в сегменте)

1111 1010 1111 1110 0010 (адрес памяти)

Д
лина операнда 16 бит (w = 1), поэтому им является содержимое двух байт с адресами 1111 1010 1111 1110 0010 (младший) и 1111 1010 1111 1110 0011
(старший).
Операнд не обязательно должен находиться только в текущих сегментах данных и стека. Его можно считывать из любого сегмента, введя перед командой однобайтный префикс, обозначающий сегментный регистр (рис. 2.13). На рис. 2.14 показана та же команда, что и на рис. 2.12, но теперь операнд находится в текущем дополнительном сегменте.





Мы рассмотрели задание смещения операнда в памяти с помощью базового и/или индексного регистров, но часто операнд находится в фиксированной ячейке одного из сегментов. В этом случае целесообразно определить все смещение непосредственно в команде. Такой режим адресации операндов называется прямой адресацией памяти: смещение находится в двух байтах самой команды (конечно, "наоборот"). Как обычно, команда должна определить также код операции и сам факт прямой адресации памяти. Было бы удобно использовать для указания режима комбинацию бит в полях mod и r/т. К сожалению, все комбинации уже исчерпаны для косвенной адресации памяти и регистровой адресации, поэтому для нашей цели придется привлечь какую-то редко используемую комбинацию. Такой комбинацией оказалась mod = 00 и r= 110. Как пример, на рис. 2.15 показана команда, которая производит инкремент байта со смещением 0101 1010 1111 0000 в текущем сегменте данных. Для прямой адресации пришлось пожертвовать косвенной адресацией через ВР (без индексного регистра и с нулевым смещением в команде), но ее можно реализовать, указав mod = 01 и введя дополнительный байт для нулевого смещения в команде.

^ Два операнда. Разобравшись с однооперандными командами, обратимся к командам, имеющим два операнда, например ADD. Мы уже говорили, что эта команда берет значение одного операнда, прибавляет его к значению второго операнда и запоминает результат на месте любого операнда. Если разрешить нахождение обоих операндов в памяти, в команде потребовались бы поля mod и rдля каждого из них. Чтобы сократить длину команд, было решено, что, по крайней мере, один из операндов должен быть в регистре. Тогда в команде потребуются поля mod и rтолько для одного операнда, а для другого достаточно поля reg (рис. 2.16).




Поле w показывает, являются операнды байтами (w = 0) или словами (w = 1). В команде появилось также новое поле d (приемник); если d = 0, результат запоминается в операнде, определяемом полями mod и r/т, a если d - 1 - в операнде, определяемом полем reg. Операнд, в котором запоминается результат, называется приемником, а другой операнд назы­вается источником.

В качестве примера рассмотрим команду ADD, показанную на рис. 2.17. Она имеет код операции 000000. Поле w = 0 показывает, что оба операнда являются байтами. Определяемым полем reg операндом оказывается регистр СН. Поле mod = 11 означает, что поля mod и rопределяют регистр, а поле rконкретизирует регистр BL. Поле d = 1 показывает запись результата в операнд, определяемый полем reg, т.е. в регистр СН. Следовательно, команда прибавляет содержимое регистра BL (источника) к содержимому регистра СН (приемника) и помещает результат в СН.

Одним из операндов в двухоперандной команде может быть константа, содержащаяся в самой команде как непосредственный операнд. Этим достигаются два преимущества: уменьшается требуемая память (не нужно хранить адрес данных и сами данные) и процессор быстрее получает данные.

П

римером команды с непосредственным операндом служит команда MOV (переслать). Она часто применяется для загрузки константы в регистр. Здесь непосредственный операнд можно определить полем reg, и команда приобретает простую форму, показанную на рис. 2.18. Поле w по-прежнему задает длину операнда 8 (w = 0) или 16 (w = 1) бит; в первом случае непосредственный операнд занимает один байт в команде, а во втором — два байта. Как пример, на рис. 2.19 представлена команда, которая передает значение 1111 0000 0000 1111 в регистр DI.

В

несколько более сложной команде операнд-приемник определяется полями mod и rвместо поля reg, поэтому в команде появляется дополнительный байт (рис. 2.20). Показанная на рис. 2.21 команда передает значение 1111 0000 0000 1111 в слово, находящееся в сегменте данных со смещением из регистра DI.

Так как двух операндная команда имеет только одно поле w, оба операнда должны иметь длину 8 или 16 бит. Однако часто непосредственные операнды являются небольшими числами и не требуют 16 бит. Это утверждение особенно справедливо для команд сложения, вычитания и сравнения, хотя для операндов логических команд оно обычно не выдерживается. Следовательно, можно уменьшить размер команд с непосредственными операндами, если не отводить 16 бит для хранения небольших чисел. Поэтому в некоторых командах (сложение, вычитание и сравнение) введен бит s (s означает "с расширением знака"). Он занимает место бита d, так как в командах с непосредственными операндами возможно только одно направление. Поле s имеет смысл только для 16-битных операндов (w = 1) и показывает, содержатся ли в команде все 16 бит непосредственного операнда (s = 0) или только 8 бит (s = 1), которые должны расширяться со знаком до 16 бит для образования 16-битного операнда. Такая форма команды иллюстрируется рис. 2.22. Соответствующий пример показан на рис. 2.23. Здесь к содержимому слова в памяти прибавляется значение 0000 0000 0000 1111 и результат помещается в это же слово. Слово находится в сегменте данных, а смещение его берется из регистра DI. Отметим, что благодаря биту s экономится один байт.





^

Лекция 5. Общая организация памяти.


Память вычислительной системы обычно состоит из одной или нескольких печатных плат, которые подключены к системной шине. На каждой плате находится модуль, адресуемый старшими битами шины адреса. Как показано на рис. 101, в большинстве систем имеются модули ПЗУ и ЗУПВ. Однако следует указать, что в малых системах типа контроллеров могут быть только ПЗУ, а сама память находится на той же печатной плате (и даже в одной и той же микросхеме), что и процессор.



Рис 101 Общая организация памяти



Рис 102 Типичный модуль памяти
Общий вид модуля памяти представлен на рис 102 В его состав входят интерфейс и набор микросхем памяти, каждая из которых содержит массив запоминающих элементов; запоминающий элемент может хранить 1 бит К элементам в микросхеме можно обращаться отдельно или группами, но в любом случае соблюдаются следующие отношения



I говорит что микросхема памяти имеет организацию М х N, если она содержит М групп из N элементов, а модуль имеет организацию К х L, если он содержит К слов длиной L бит каждое. Для иллюстрации введенных определении на рис 10 3 приведены несколько модулей, реализованных на основе типичных микросхем памяти

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

Стоимость модуля обычно складывается из двух компонент, одна из которых не зависит oт размера модуля и называется накладными расходами, а вторая пропорциональна размеру и называется инкрементной стоимостью Накладные расходы в основном связаны с электроникой обрамления, а инкрементная стоимость соотносится со стоимостью микросхем Обе компоненты зависят от числа контактных соединений и сложности печатной платы Следовательно, микросхемы с большей емкостью требуют меньше служебных приборов и обеспечивают выигрыш в стоимости Так как накладные расходы почти не зависят от емкости модуля, но должны учитываться в каждом модуле, предпочтительнее реализовать память заданной емкости, используя минимум модулей Еще одним фактором, учитываемым в накладных расхо­дах, является стоимость блока питания Чем меньше число напряжений пита­ния, тем менее сложной становится разработка блока питания и платы

Быстродействие памяти характеризуется временем обращения (или доступа) , которое определяется как временной интервал от момента поступления



Рис 103 Типичные массивы микросхем памяти

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

Потребляемая энергия очень важна для микросхем которые должны работать oт аккумуляторов или солнечных элементов (например, на космических объектах). Определяющим фактором для потребляемой каждым запоминающим элементом энергии является применяемая технология. Наиболее часто память с минимальным потреблением энергии производится по КМОП-технологии. Основной ее недостаток связан с увеличением площади кристалла для каждого запоминающего элемента, что уменьшает емкость микросхемы. К сожалению, потребляемая энергия и быстродействие связаны пропорциональной зависимостью, поэтому оптимизировать оба эти показателя сложно и дорого. Сейчас наиболее хороший компромисс между быстродействием, потреблением энергии и емкостью обеспечивает высококачественная МОП-технология.

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

Энергонезависимость и возможности доступа во многом определяются условиями применения. Если применение не требует энергонезависимости, нет никаких причин обеспечивать ее. Когда же требуется энергонезависимое ЗУПВ, приходится использовать ферритовую память, а для полупроводниковой памяти вводить резервное питание По возможности следует как можно шире применять ПЗУ как наименее дорогие, энергонезависимые, надежные и помехоустойчивые устройства, обладающие высокой плотностью упаковки

^

Лекция 6. Прерывание микропроцессора в ЭВМ.



Архитектура и организация ЭВМ

Рассматриваются основные вопросы, связанные с организацией работы ЭВМ при обработке прерываний, а также особенности системы прерываний в персональной ЭВМ.

^ Организация обработки прерываний в ЭВМ

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

Механизм прерывания обеспечивается соответствующими аппаратно-программными средствами компьютера.

Любая особая ситуация, вызывающая прерывание, сопровождается сигналом, называемым запросом прерывания (ЗП). Запросы прерываний от внешних устройств поступают в процессор по специальным линиям, а запросы, возникающие в процессе выполнения программы, поступают непосредственно изнутри микропроцессора. Механизмы обработки прерываний обоих типов схожи. Рассмотрим функционирование компьютера при появлении сигнала запроса прерывания, опираясь в основном на обработку аппаратных прерываний (рис 1).



Рис. 1.  Выполнение прерывания в компьютере: tр - время реакции процессора на запрос прерывания; tс - время сохранения состояния прерываемой программы и вызова обработчика прерывания; tв - время восстановления прерванной программы
После появления сигнала запроса прерывания ЭВМ переходит к выполнению программы - обработчика прерывания. Обработчик выполняет те действия, которые необходимы в связи с возникшей особой ситуацией. Например, такой ситуацией может быть нажатие клавиши на клавиатуре компьютера. Тогда обработчик должен передать код нажатой клавиши из контроллера клавиатуры в процессор и, возможно, проанализировать этот код. По окончании работы обработчика управление передается прерванной программе.

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

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

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

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

Время реакции определяется для запроса с наивысшим приоритетом.

Глубина прерывания - максимальное число программ, которые могут прерывать друг друга. Глубина прерывания обычно совпадает с числом уровней приоритетов, распознаваемых системой прерываний. Работа системы прерываний при различной глубине прерываний (n) представлена на (рис 2).Здесь предполагается, что с увеличением номера запроса прерывания увеличивается его приоритет.



Рис. 2.  Работа системы прерываний при различной глубине прерываний

Без учета времени реакции, а также времени запоминания и времени восстановления:

t11+t12=t1,

t21+t22=t2.
Прерывания делятся на аппаратные и программные

Аппаратные прерывания используются для организации взаимодействия с внешними устройствами. Запросы аппаратных прерываний поступают на специальные входы микропроцессора. Они бывают:

  1. маскируемые, которые могут быть замаскированы программными средствами компьютера;

  2. немаскируемые, запрос от которых таким образом замаскирован быть не может.

Программные прерывания вызываются следующими ситуациями:

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

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

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

При поступлении запроса прерывания компьютер выполняет следующую последовательность действий:

  1. определение наиболее приоритетного незамаскированного запроса на прерывание (если одновременно поступило несколько запросов);

  2. определение типа выбранного запроса;

  3. сохранение текущего состояния счетчика команд и регистра флагов;

  4. определение адреса обработчика прерывания по типу прерывания и передача управления первой команде этого обработчика;

  5. выполнение программы - обработчика прерывания;

  6. восстановление сохраненных значений счетчика команд и регистра флагов прерванной программы;

  7. продолжение выполнения прерванной программы.

Этапы 1-4 выполняются аппаратными средствами ЭВМ автоматически при появлении запроса прерывания. Этап 6 также выполняется аппаратно по команде возврата из обработчика прерывания.

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

Распознавание наличия сигналов запроса прерывания и определение наиболее приоритетного из них может проводиться различными методами. Рассмотрим один из них.

^ Цепочечная однотактная система определения приоритета запроса прерывания

На рис. 3 приведена схема, обеспечивающая получение номера наиболее приоритетного запроса прерывания из присутствующих в компьютере на момент подачи сигнала опроса ("дейзи-цепочка")

Данная схема используется для анализа запросов аппаратных прерываний. Приоритет запросов прерываний (ЗПi) уменьшается с уменьшением номера запроса. В тот момент, когда компьютер должен определить наличие и приоритет внешнего аппаратного прерывания (обычно после окончания выполнения каждой команды), процессор выдает сигнал опроса. Если на входе ЗП3 присутствует сигнал высокого уровня (есть запрос), то на элементе 11 формируется общий сигнал наличия запроса прерывания и дальнейшее прохождение сигнала опроса блокируется. Если ЗП3=0, то анализируется сигнал ЗП2 и так далее. На шифраторе (элемент 12) формируется номер поступившего запроса прерывания.

Этот номер передается в процессор лишь при наличии общего сигнала запроса прерывания.

Такая структура позволяет быстро анализировать наличие сигнала запроса прерывания и определять наиболее приоритетный запрос из нескольких присутствующих в данный момент. Распределение приоритетов запросов прерываний внешних устройств осуществляется путем их физической коммутации по отношению к процессору. Указание приоритетов - жесткое и не может быть программно изменено. Изменение приоритетов возможно только путем физической перекоммутации устройств.



^ Рис. 3.  Схема определения номера наиболее приоритетного запроса прерывания

Обработка прерываний в персональной ЭВМ

Микропроцессоры типа х86 имеют два входа запросов внешних аппаратных прерываний:

  • NMI - немаскируемое прерывание, используется обычно для запросов прерываний по нарушению питания;

  • INT - маскируемое прерывание, запрос от которого можно программным образом замаскировать путем сброса флага IF в регистре флагов.



Рис. 4.  Структура контроллера приоритетных прерываний

Единственный вход запроса маскируемых прерываний микропроцессора не позволяет подключить к нему напрямую сигналы запросов от большого числа различных внешних устройств, которые входят в состав современного компьютера: таймера, клавиатуры, "мыши", принтера, сетевой карты и т.д. Для их подключения к одному входу INT микропроцессора используется контроллер приоритетных прерываний (рис. 4). Его функции:

  • восприятие и фиксация запросов прерываний от внешних устройств;

  • определение незамаскированных запросов среди поступивших запросов;

  • проведение арбитража: выделение наиболее приоритетного запроса из незамаскированных запросов в соответствии с установленным механизмом назначения приоритетов;

  • сравнение приоритета выделенного запроса с приоритетом запроса, который в данный момент может обрабатываться в микропроцессоре, формирование сигнала запроса на вход INT микропроцессора в случае, если приоритет нового запроса выше;

  • передача в микропроцессор по шине данных типа прерывания, выбранного в процессе арбитража, для запуска соответствующей программы - обработчика прерывания; это действие выполняется по сигналу разрешения прерывания INTA от микропроцессора, который выдается в случае, если прерывания в регистре флагов микропроцессора не замаскированы (IF=1).

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



Рис. 5.  Структура таблицы векторов прерываний

Обращение к элементам таблицы осуществляется по 8-разрядному коду - типу

прерывания (таблица 1)

Таблица 14.1.

^ Тип прерывания

Источник прерывания

0

Деление на 0

1

Пошаговый режим выполнения программы

2

Запрос по входу NMI

· · ·

8

Запрос по входу IRQ0 (системный таймер)

9

Запрос по входу IRQ1 (контроллер клавиатуры)

· · ·

11

Отсутствие сегмента в оперативной памяти

· · ·

255

Пользовательское прерывание


Различные источники задают тип прерывания по-разному:

  • программные прерывания вводят его изнутри процессора или содержат его в номере команды INT n;

  • аппаратные маскируемые прерывания вводят его от контроллера приоритетных прерываний по шине данных;

немаскируемому аппаратному прерыванию назначен тип 2.
^

Лекция 7. Последовательный интерфейс RS–232C.


Микропроцессорная система без средств ввода и вывода оказывается бесполезной. Характеристики и объемы ввода и вывода в системе определяются, в первую очередь, спецификой ее применения — например, в микропроцессорной системе управления некоторым промышленным процессом не требуется клавиатура и дисплей, так как почти наверняка ее дистанционно программирует и контролирует главный микрокомпьютер (с использованием последовательной линии RS–232C).

Поскольку данные обычно представлены на шине микропроцессора в параллельной форме (байтами, словами), их последовательный ввод–вывод оказывается несколько сложным. Для последовательного ввода потребуется средства преобразования последовательных входных данных в параллельные данные, которые можно поместить на шину. С другой стороны, для последовательного вывода необходимы средства преобразования параллельных данных, представленных на шине, в последовательные выходные данные. В первом случае преобразование осуществляется регистром сдвига с последовательным входом и параллельным выходом (SIPO), а во втором — регистром сдвига с параллельным входом и последовательным выходом (PISO).

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

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

D0–D7 — входные–выходные линии данных, подключаемые непосредственно к шине процессора;

RXD — принимаемые данные (входные последовательные данные);

TXD — передаваемые данные (выходные последовательные данные);

CTS — сброс передачи. На этой линии периферийное устройство формирует сигнал низкого уровня, когда оно готово воспринимать информацию от процессора;

RTS — запрос передачи. На эту линию микропроцессорная система выдает сигнал низкого уровня, когда она намерена передавать данные в периферийное устройство.

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

^ Общие сведения о интерфейсе RS–232C

Интерфейс RS–232C является наиболее широко распространенной стандартной последовательной связью между микрокомпьютерами и периферийными устройствами. Интерфейс, определенный стандартом Ассоциации электронной промышленности (EIA), подразумевает наличие оборудования двух видов: терминального DTE и связного DCE.

Чтобы не составить неправильного представления об интерфейсе RS–232C, необходимо отчетливо понимать различие между этими видами оборудования. Терминальное оборудование, например микрокомпьютер, может посылать и (или) принимать данные по последовательному интерфейсу. Оно как бы оканчивает (terminate) последовательную линию. Связное оборудование — устройства, которые могут упростить передачу данных совместно с терминальным оборудованием. Наглядным примером связного оборудования служит модем (модулятор–демодулятор). Он оказывается соединительным звеном в последовательной цепочке между компьютером и телефонной линией.

Различие между терминальными и связными устройствами довольно расплывчато, поэтому возникают некоторые сложности в понимании того, к какому типу оборудования относится то или иное устройство. Рассмотрим ситуацию с принтером. К какому оборудованию его отнести? Как связать два компьютера, когда они оба действуют как терминальное оборудование. Для ответа на эти вопросы следует рассмотреть физическое соединение устройств. Произведя незначительные изменения в линиях интерфейса RS–232C, можно заставить связное оборудование функционировать как терминальное. Чтобы разобраться в том, как это сделать, нужно проанализировать функции сигналов интерфейса RS–232C (таблица 1).

Таблица 1. Функции сигнальных линий интерфейса RS–232C.


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

Сокращение

Направление

Полное название

1

FG



Основная или защитная земля

2

TD (TXD)

К DCE

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

3

RD (RXD)

К DTE

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

4

RTS

К DCE

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

5

CTS

К DTE

Сброс передачи

6

DSR

К DTE

Готовность модема

7

SG



Сигнальная земля

8

DCD

К DTE

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

9



К DTE

(Положительное контрольное напряжение)

10



К DTE

(Отрицательное контрольное напряжение)

11

QM

К DTE

Режим выравнивания

12

SDCD

К DTE

Обнаружение несущей вторичных данных

13

SCTS

К DTE

Вторичный сброс передачи

14

STD

К DCE

Вторичные передаваемые данные

15

TC

К DTE

Синхронизация передатчика

16

SRD

К DTE

Вторичные принимаемые данные

17

RC

К DTE

Синхронизация приемника

18

DCR

К DCE

Разделенная синхронизация приемника

19

SRTS

К DCE

Вторичный запрос передачи

20

DTR

К DCE

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

21

SQ

К DTE

Качество сигнала

22

RI

К DTE

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

23



К DCE

(Селектор скорости данных)

24

TC

К DCE

Внешняя синхронизация передатчика

25



К DCE

(Занятость)


Примечания:

  1. Линии 11, 18, 25 обычно считают незаземленными. Приведенная в таблице спецификация относится к спецификациям Bell 113B и 208A.

  2. Линии 9 и 10 используются для контроля отрицательного (MARK) и положительного (SPACE) уровней напряжения.

  3. Во избежание путаницы между RD (Read — считывать) и RD (Received Data — принимаемые данные) будут использоваться обозначения RXD и TXD, а не RD и TD.


Стандартный последовательный порт RS–232C имеет форму 25–контактного разъема типа D (рис 1).



Рис. 1. Назначение линий 25–контактного разъема типа D для интерфейса RS–232C
Терминальное оборудование обычно оснащено разъемом со штырьками, а связное — разъемом с отверстиями (но могут быть и исключения).

Сигналы интерфейса RS–232C подразделяются на следующие классы.

^ Последовательные данные (например, TXD, RXD). Интерфейс RS–232C обеспечивает два независимых последовательных канала данных: первичный (главный) и вторичный (вспомогательный). Оба канала могут работать в дуплексном режиме, т.е. одновременно осуществляют передачу и прием информации.

^ Управляющие сигналы квитирования (например, RTS, CTS). Сигналы квитирования — средство, с помощью которого обмен сигналами позволяет DTE начать диалог с DCE до фактической передачи или приема данных по последовательной линии связи.

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

На практике вспомогательный канал RS–232C применяется редко, и в асинхронном режиме вместо 25 линий используются 9 линий (таблица 2).
Таблица 2. Основные линии интерфейса RS–232C.

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

Сигнал

Выполняемая функция

1

FG

Подключение земли к стойке или шасси оборудования

2

TXD

Последовательные данные, передаваемые от DTE к DCE

3

RXD

Последовательные данные, принимаемые DTE от DCE

4

RTS

Требование DTE послать данные к DCE

5

CTS

Готовность DCE принимать данные от DTE

6

DSR

Сообщение DCE о том, что связь установлена

7

SG

Возвратный тракт общего сигнала (земли)

8

DCD

DTE работает и DCE может подключится к каналу связи


Виды сигналов

В большинстве схем, содержащих интерфейс RS–232C, данные передаются асинхронно, т.е. в виде последовательности пакета данных. Каждый пакет содержит один символ кода ASCII, причем информация в пакете достаточна для его декодирования без отдельного сигнала синхронизации.

Символы кода ASCII представляются семью битами, например буква ^ А имеет код 1000001. Чтобы передать букву А по интерфейсу RS–232C, необходимо ввести дополнительные биты, обозначающие начало и конец пакета. Кроме того, желательно добавить лишний бит для простого контроля ошибок по паритету (четности).

Наиболее широко распространен формат, включающий в себя один стартовый бит, один бит паритета и два стоповых бита. Начало пакета данных всегда отмечает низкий уровень стартового бита. После него следует 7 бит данных символа кода ASCII. Бит четности содержит 1 или 0 так, чтобы общее число единиц в 8–битной группе было нечетным. Последним передаются два стоповых бита, представленных высоким уровнем напряжения. Эквивалентный ТТЛ–сигнал при передаче буквы А показан на рис. 2.


Рис. 2. Представление кода буквы А сигнальными уровнями ТТЛ.
Таким образом, полное асинхронно передаваемое слово состоит из 11 бит (фактически данные содержат только 7 бит) и записывается в виде 01000001011.

Используемые в интерфейсе RS–232C уровни сигналов отличаются от уровней сигналов, действующих в компьютере. Логический 0 (SPACE) представляется положительным напряжением в диапазоне от +3 до +25 В, логическая 1 (MARK) — отрицательным напряжением в диапазоне от –3 до –25 В. На рис. 3 показан сигнал в том виде, в каком он существует на линиях TXD и RXD интерфейса RS–232C.



Рис. 3. Вид кода буквы А на сигнальных линиях TXD и RXD.
Сдвиг уровня, т.е. преобразование ТТЛ–уровней в уровни интерфейса RS–232C и наоборот производится специальными микросхемами драйвера линии и приемника линии.

На рис. 4 представлен типичный микрокомпьютерный интерфейс RS–232C. Программируемая микросхема DD1 последовательного ввода осуществляет параллельно–последовательные и последовательно–параллельные преобразования данных. Микросхемы DD2 и DD3 производят сдвиг уровней для трех выходных сигналов TXD, RTS, DTR, а микросхема DD4 — для трех входных сигналов RXD, CTS, DSR. Микросхемы DD2 и DD3 требуют напряжения питания ±12 В.



Рис. 4. Типичная схема интерфейса RS–232C.
Разработано несколько новых стандартов, направленных на устранение недостатков первоначальных спецификаций интерфейса RS–232C. Среди них можно отметить интерфейс RS–422 (балансная система, допускающая импеданс линии до 50 Ом), RS–423 (небалансная система с минимальным импедансом линии 450 Ом) и RS–449 (стандарт с высокой скоростью передачи данных, в котором несколько изменены функции схем и применяется 37–контактный разъем типа D).

^ Тестовое оборудование для интерфейса RS–232C

Соединители. Эти дешевые устройства упрощают перекрестные соединения сигнальных линий интерфейса RS–232C. Они обычно оснащаются двумя разъемами типа D (или ленточными кабелями, имеющими розетку и вставку), и все линии проводятся к той области, куда можно вставить перемычки. Такие устройства включаются последовательно с линиями интерфейса RS–232C, и затем проверяются различные комбинации подключений.

^ Трансформаторы разъема. Обычно эти приспособления имеют разъем RS–232C со штырьками на одной стороне и разъем с отверстиями на другой стороне.

Пустые модемы. Как и предыдущие устройства, пустые модемы включаются последовательно в тракт данных интерфейса RS–232C. Их функции заключаются в изменении сигнальных линий таким образом, чтобы превратить DTE в DCE.

Линейные мониторы. Мониторы индицируют логические состояния (в терминах MARK и SPACE) наиболее распространенных сигнальных линий данных и квитирования. С их помощью пользователь получает информацию о том, какие сигналы в системе присутствуют и активны.

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

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

^

Лекция 8. Последовательный интерфейс СОМ-порт.


Последовательный интерфейс СОМ-порт (Communication Port - коммуникационный порт) появился в первых моделях IBM PC. Он был реализован на микросхеме асинхронного приемопередатчика Intel 8250. Порт имел поддержку BIOS (/Л/Т 74/?), однако широко применялось (и применяется) взаимодействие с портом на уровне регистров. Поэтому во всех PC совместимых компьютерах для последовательного интерфейса применяют микросхемы приемопередатчиков, совместимые с i8250. В ряде отечественных PC-совместимых (почти) компьютеров для последовательного интерфейса применялась микросхема КР580ВВ51 - аналог 18251. Однако эта микросхема является универсальным синхронно-асинхронным приемопередатчиком (УСАПП или USART - Universal Asynchronous Receiver-Transmitter). Совместимости с PC на уровне регистров СОМ-порта такие компьютеры не имеют. Хорошо, если у соответствующих компьютеров имеется "честный" драйвер BIOS /Л/Т 14h, а не заглушка, возвращающая состояние модема "всегда готов" и ничего не делающая. Совместимость на уровне регистров СОМ-порта считается необходимой. Многие разработчики коммуникационных пакетов предлагают работу и через BIOS /Л/Т 14h, однако на высоких скоростях это неэффективно. Говоря о СОМ-порте PC, по умолчанию будем подразумевать совместимость регистровой модели с i8250 и реализацию асинхронного интерфейса RS-232C.
^ Использование СОМ-портов

СОМ-порты чаще всего применяют для подключения манипуляторов (мышь, трекбол). В этом случае порт используется в режиме последовательного ввода; питание производится от интерфейса. Мышь с последовательным интерфейсом - Serial Mouse -может подключаться к любому исправному порту. Для согласования разъемов порта и мыши возможно применение переходника DB-9S-DB-25P или DB-25S-DB-9P. Для мыши требуется прерывание, для порта СОМ1 - IRQ4, для COM2 - IRQ3. Жесткая привязка номера IRQ к номеру порта обусловлена свойствами драйверов. Каждое событие - перемещение мыши или нажатие-отпускание кнопки – кодируется двоичной посылкой по интерфейсу RS-232C. Применяется асинхронная передача; двуполярное питание обеспечивается от управляющих линий интерфейса (табл. 2.3).

Две разновидности Serial Mouse - MS-Mouse и PC-Mouse (Mouse Systems Mouse) - требуют соответствующих драйверов, многие мыши имеют переключатель MS/PC. Мышь с "чужим" драйвером либо не отзывается, либо "скачет" загадочным образом. Эти разновидности используют различные форматы посылок: при одинаковой скорости 1200 бит/с, одном стоп-бите и отсутствии контроля четности Microsoft Mouse использует 7 бит данных, a PC-Mouse - 8 бит. Мышь посылает пакет при каждом изменении состояния - перемещении, нажатии или отпускании кнопки. Пакет, передаваемый MS-Mouse, состоит из трех байт (табл. 2.4). PC-Mouse передает 5 байт (табл. 2.5). Здесь LB (Left Buttom), MB (Middle Buttom) и RB (Right Buttom) означают состояние левой, средней и правой кнопок, Х[7:0] и Y[7:0] - биты относительного перемещения мыши с момента предыдущей посылки по координатам Х и Y. Положительным значениям соответствует перемещение по координате Х вправо, а по координате Y вниз для MS-Mouse и вверх для PC-Mouse. Отсюда становятся понятными беспорядочные перемещения курсора на экране при несоответствии драйвера типу мыши.


Биты

D6

D5

D4

D3

02

01

00

1-й байт

1

LB

RB

Y7

Y6

Х7

Х6

2-й байт

0

Х5

Х4

ХЗ

Х2

Х1

хо

3-й байт

0

Y5

Y4

Y3

Y2

Y1

YO

Биты

07

06

05

04

03

02

01

DO

1-й байт

1

о

о

0

о

LB

MB

RB

2-й байт

Х7

Х6

Х5

Х4

ХЗ

Х2

Х1

ХО

3-й байт

Y7

Y6

Y5

Y4

Y3

Y2

Y1

YO

4-й байт

Совпадает со 2-м байтом

5-й байт

Совпадает с 3-м байтом



Для подключения внешних модемов используется полный(9-проводный) кабель АПД-АКД, схема которого приведена на рис. 2.7. Этот же кабель используется для согласования разъемов (по количеству контактов); возможно применение переходников 9-25, предназначенных для мышей. Для работы коммуникационного ПО обычно требуется использование прерываний, но здесь есть свобода выбора номера (адреса) порта и линии прерывания. Если предполагается работа на скоростях 9600 бит/с и выше, то СОМ-порт должен быть реализован на микросхеме UART 16550A или совместимой. Возможности работы с использованием FIFO-буферов и обмена по каналам DMA зависят от коммуникационного ПО.

Для связи двух компьютеров, удаленных друг от друга на небольшое расстояние, используют и непосредственное соединение их СОМ-портов нуль-модемным кабелем (рис. 2.8). Использование программ типа Norton Commander или Interink MS-DOS позволяет обмениваться файлами со скоростью до 115,2 Кбит/с без применения аппаратных прерываний. Это же соединение может использоваться и сетевым пакетом Lantastic, предоставляющим более развитый сервис.

Подключение принтеров и плоттеров к СОМ-порту требует применения кабеля, соответствующего выбранному протоколу управления потоком: программному XON/XOFF или аппаратному RTS/CTS. Схемы кабелей приведены на рис. 2.10 и 2.12. Аппаратный протокол предпочтительнее. Прерывания при выводе средствами DOS (командами COPY или PRINT) не используются.

СОМ-порт используется для подключения электронных ключей (Security Devices), предназначенных для защиты от нелицензированного использования ПО. Эти устройства могут быть как "прозрачными", позволяя воспользоваться тем же портом для подключения периферии, так и полностью занимающими порт.

СОМ-порт при наличии соответствующей программной поддержки позволяет превратить PC в терминал, эмулируя систему команд распространенных специализированных терминалов (VT-52, VT-100 и т. д.). Простейший терминал получается, если замкнуть друг на друга функции BIOS обслуживания СОМ-порта (INT 14h), телетайпного вывода (/Л/Т 10h) и клавиатурного ввода (INT 16h). Однако такой терминал будет работать лишь на малых скоростях обмена (если,конечно, его делать не на Pentium), поскольку функции BIOS хоть и универсальны, но не слишком быстры.

Интерфейс RS-232C широко распространен в различных ПУ и терминалах. СОМ-порт может использоваться и как двунаправленный интерфейс, у которого имеется 3 программноуправляемые выходные линии и 4 программно-читаемые входные линии с двуполярными сигналами. Их использование определяется разработчиком. Существует, например, схема однобитного широтно-импульсного преобразователя, позволяющего записывать звуковой сигнал на диск PC, используя входную линию СОМ-порта. Воспроизведение этой записи через обычный динамик PC позволяет передать речь. В настоящее время, когда звуковая карта стала почти обязательным устройством PC, это не впечатляет, но когда то такое решение было интересным.

СОМ-порт используют для беспроводных коммуникаций с применением излучателей и приемников инфракрасного диапазона - ^ IR (Infra Red) Connection. Этот интерфейс позволяет осуществлять связь между парой устройств, удаленных на расстояние, достигающее нескольких метров. Различают инфракрасные системы низкой (до 115,2 Кбит/с), средней (1,152 Мбит/с) и высокой (4 Мбит/с) скорости. Низкоскоростные системы служат для обмена короткими сообщениями, высокоскоростные - для обмена файлами между компьютерами, подключения к компьютерной сети, вывода на принтер, проекционный аппарат и т. п. Ожидаются более высокие скорости обмена, которые позволят передавать "живое видео". В 1993 году создана ассоциация разработчиков систем инфракрасной передачи данных IrDA (Infrared Data Association), призванная обеспечить совместимость оборудования от различных производителей. В настоящее время действует стандарт IrDA 1.1. Имеются собственные системы фирм Hewlett Packard - HP-SIR (Hewlett Packard Slow Infra Red) - и Sharp - ASK (Amplitude Shifted Keyed IR). Основные характеристики интерфейсов следующие:

  • IrDA SIR (Slow Infra Red), HP-SIR - 9,6-115,2 Кбит/с;

  • IrDA MIR (Middle Infra Red) - 1,2 Мбит/с;

  • IrDA FIR (Fast Infra Red) - 4 Мбит/с;

  • + Sharp ASK - 9,6-57,6 Кбит/с.

На скоростях до 115 200 бит/с для инфракрасной связи используются UART, совместимые с 16450/16550. В современных системных платах на использование инфракрасной связи может конфигурироваться порт COM2. В этом случае на переднюю панель компьютера устанавливается внешний приемопередатчик - "инфракрасный глаз", который подключается к разъему IR-Connector системной платы.

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

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

^ 2.6. Функциональное тестирование В первом приближении СОМ-порт можно проверить диагностической программой (Checkit) без использования заглушек. Этот режим тестирования проверяет микросхему

UART (внутренний диагностический режим) и вырабатывание прерываний, но не входные и выходные буферные микросхемы, которые являются более частыми источниками неприятностей. Если тест не проходит, причину следует искать или в конфликте адресов/прерываний, или в самой микросхеме UART. Для более достоверного тестирования рекомендуется использовать внешнюю заглушку, подключаемую к разъему СОМ порта (рис. 2.17). В отличие от LPT-порта у СОМ-порта количество входных сигналов превышает количество выходных, что позволяет выполнить полную проверку всех цепей. Заглушка соединяет выход приемника со входом передатчика. Обязательная для всех схем заглушек перемычка RTSCTS позволяет работать передатчику - без нее символы не смогут передаваться. Выходной сигнал DTR обычно используют для проверки входных линий DSR, DCD и RI.

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

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

2. Проверить напряжение на выходах TD, RTS и DTR: после аппаратного сброса на выходе TD должен быть отрицательный потенциал около -12 В (по крайней мере ниже -5 В), а на выходах RTS и DTR - такой же положительный. Если этих потенциалов нет, возможна ошибка подключения разъема к плате через шлейф. Распространенные варианты:

  • шлейф не подключен;

  • шлейф подключен неправильно (разъем перевернут или вставлен со смещением);

  • раскладка шлейфа не соответствует разъему платы.

Первые два варианта проверяются при внимательном осмотре, третий же может потребовать некоторых усилий. В табл. 2.1 приведены три варианта раскладки 10-проводного шлейфа разъема СОМ-порта, известных автору; для СОМ-портов на системных платах возможно существование и других. Теоретически шлейф должен поставляться в соответствии с разъемом платы, на которой расположен порт.

Если дело в ошибочной раскладке, то эти три выходных сигнала удастся обнаружить на других контактах разъемов (на входных контактах потенциал совсем небольшой). Если эти сигналы обнаружить не удалось, очевидно, вышли из строя буферные формирователи.
^ Функции BIOS для СОМ-портов

В процессе начального тестирования POST BIOS проверяет наличие последовательных портов (регистров UART 8250 или совместимых) по стандартным адресам и помещает базовые адреса обнаруженных портов в ячейки BIOS Data Area 0:0400, 0402, 0404, 0406. Эти ячейки хранят адреса портов с логическими именами СОМ 1-COM4. Нулевое значение адреса является признаком отсутствия порта с данным номером. В ячейки 0:047С, 047D, 047Е, 047F заносятся константы, задающие тайм-аут для портов.

Обнаруженные порты инициализируются на скорость обмена 2400 бит/с, 7 бит данных с контролем на четность (even), 1 стоп-бит. Управляющие сигналы интерфейса DTR и RTS переводятся в исходное состояние ("выключено" положительное напряжение).

Порты поддерживаются сервисом BIOS INT 14h, который обеспечивает следующие функции:

  • ООЬ - инициализация (установка скорости обмена и формата посылок, заданных регистром ^ AL; запрет источников прерываний). На сигналы DTR и RTS влияния не оказывает (после аппаратного сброса они пассивны).

  • Olh - вывод символа из регистра AL (без аппаратных прерываний). Активируются сигналы DTR и RTS, и после освобождения регистра THR в него помещается выводимый символ. Если за заданное время регистр не освобождается, фиксируется ошибка тайм-аута и функция завершается.

  • 02h - ввод символа (без аппаратных прерываний). Активируется только сигнал DTR (RTS переходит в пассивное состояние), и ожидается готовность принятых данных, принятый символ помещается в регистр AL. Если за заданное время данные не получены, функция завершается с ошибкой тайм-аута.

  • 03h - опрос состояния модема и линии (чтение регистров MSR и LSR). Эту гарантированно быструю функцию обычно вызывают перед функциями ввода/вывода во избежание риска ожидания тайм-аута.

При вызове ^ INT 14h номер функции задается в регистре АН, номер порта (0-3) - в регистре DX(0 - СОМ 1, 1 - COM2...). При возврате из функций 0,1 и 3 регистр АН содержит байт состояния линии (регистр LSR), AL - байт состояния модема (MSR). При возврате из функции 2 нулевое значение бита 7 регистра АН указывает на наличие принятого символа в регистре AL', ненулевое значение бита 7 - на ошибку приема, которую можно уточнить функцией 3.
^ СОМ-порт и РпР

Современные ПУ, подключаемые к СОМ-порту, могут поддерживать спецификацию РпР. Основная задача ОС заключается в идентификации подключенного устройства, для чего разработан несложный протокол, реализуемый на любых СОМ-портах чисто программным способом (рис. 2.18):



Рис. 2.18. Запрос идентификатора устройства РпР

1. Порт инициализируется с состоянием линий DTR=OA/, RTS=OFF, TXD=Mark - состояние покоя (Idle).

2. Некоторое время (0,2 с) ожидается появление сигнала DSR, которое указало бы на наличие устройства, подключенного к порту. В простейшем случае устройство имеет на разъеме перемычку DTR-DSR, обеспечивающую указанный ответ. Если устройство обнаружено, выполняются манипуляции управляющими сигналами DTR и RTS для получения информации от устройства. Если ответ не получен, ОС, поддерживающая динамическое реконфигурирование, периодически опрашивает состояние порта для обнаружения новых устройств.

3. Порт программируется на режим 1200 бит/с, 7 бит данных, без паритета, 1 стоп-бит, и на 0,2 с снимается сигнал DTR. После этого устанавливается DTR=1, а еще через 0,2 с устанавливается и RTS=1.

4. В течение 0,2 с ожидается приход первого символа от устройства. По приходе символа начинается прием идентификатора (см. ниже). Если за это время символ не пришел (рис. 2.18), выполняется вторая попытка опроса (см. п. 5), несколько отличающаяся от первой.

5. На 0,2 с снимаются оба сигнала (DTR=0 и RTS=0), после чего они оба устанавливаются (DTR=1 и RTS==1).

6. В течение 0,2 с ожидается приход первого символа от устройства, по приходе символа начинается прием идентификатора (см. ниже). Если за это время символ не пришел, то в зависимости от состояния сигнала DSR переходят к проверке отключения Verify Disconnect (при DSR^O) или в дежурное состояние Connect Idle (при DSR=1).

7. В дежурном состоянии ^ Connect Idle устанавливается DTR=1, RTS=0, порт программируется на режим 300 бит/с, 7 бит данных, без паритета, 1 стоп-бит. Если в этом состоянии обнаружится DSR=0, ОС следует уведомить об отключении устройства.

Посимвольный прием идентификатора устройства имеет ограничения по тайм-ауту в 0,2 с на символ, а также общее ограничение в 2,2 с, позволяющее принять строку длиной до 256 символов. Строка идентификатора РпР должна иметь маркеры начала (28h или 08h) и конца (29h или 09h), между которыми располагается тело идентификатора в стандартизованном формате. Перед маркером начала может находиться до 16 символов, не относящихся к идентификатору РпР. Если за первые 0,2 с ожидания символа (шаг 4 или 6) маркер начала не пришел, или же сработал тайм-аут, а маркер конца не получен, или же какой-либо символ принят с ошибкой, происходит переход в состояние Connect Idle. Если получена корректная строка идентификатора, она передается ОС.

Для проверки отключения (Verify Disconnect) устанавливается DTR=1, RTS=0 и через 5 с проверяется состояние сигнала DSR. При DSR=1 происходит переход в состояние Connect Idle (см. п. 7), при DSR^O происходит переход в состояние Disconnect Idle, в котором система может периодически опрашивать сигнал DSR для обнаружения подключения устройства.

Описанный механизм разрабатывался фирмой Microsoft с учетом совместимости с не РпР устройствами - невозможность их вывода из строя и устойчивость системы к сообщениям, не являющимся РпР идентификаторами. Например, обычная Microsoft Mouse при включении питания от интерфейса ответит ASCII-символом "М" (трехкнопочная - строкой "МЗ").

^

Лекция 9. Программируемый связной интерфейс.


Как пример устройства последовательного интерфейса, рассмотрим микросхему 8251А программируемого связного интерфейса, схема которой представлена на рис. 9.13. Эту микросхему можно запрограммировать для асинхронной или синхронной передачи. Буферные регистры входных и выходных данных разделяют порт с одним и тем же адресом. Последовательный двоичный поток со входа RxD вводится в регистр сдвига приемника, а затем биты данных передаются в буферный регистр входных данных, а оттуда в процессор. Выводимые биты данных процессор помещает в буферный регистр выходных данных, затем они передаются в регистр сдвига передатчика и вместе с битами синхронизации — на выход TxD. Содержимое регистра режима, который инициализируется выполняемой программой, определяет синхронный или асинхронный режим и формат передаваемых и принимаемых символов. Регистр управления, который также устанавливается программой, координирует работу интерфейса, а регистр состояния обеспечивает программе определенную информацию. Для синхронной связи необходимы регистры для хранения символов синхронизации.



Рис. 9.13. Последовательный связной интерфейс 8251А
Несмотря на то, что процессор может адресовать семь регистров микросхемы, она ассоциируется с адресами всего двух портов. Вход C/D подключается к линии адреса АО и она дифференцирует адреса двух портов. Микросхема интерпретирует сигналы C/D RD и WR в соответствии с табл. 9.1.

^ Таблица 9.1

Интерпретация сигналов управления




Остальные комбинации сигналов переводят тристабильные выходы D7-DO в высокоимпедансное состояние.

Выбор регистров режима, управления или символа синхронизации зависит от последовательности обращения, схема которой представлена на рис. 9.14. После аппаратного сброса или приказа с установленным в 1 битом сброса следующий вывод с АО = 1 (т. е. с C/D = 1, RD = 1 и WR = 0) предназначен для регистра режима. Форматы регистра режима для асинхронного и синхронного случаев показаны на рис. 9.15. Если два младших бита режима содержат нули, интерфейс переводится в синхронный режим и старший бит определяет число символов синхронизации. При этом следующие один или два байта, выводимые с АО = 1, становятся символами синхронизации. Если два младших бита режима не равны 0, интерфейс работает в асинхронном режиме. В любом случае все последу­ющие байты до другого сброса направляются в регистр управления (если АО = 1) или в буферный регистр выходных данных (если АО = 0).

В синхронном режиме скорости в бодах передатчика и приемника, равные частотам сдвига регистров сдвига, совпадают с частотами сигналов на входах ТхС и RxC соответственно. При работе в асинхронном режиме три оставшиеся комбинации младших бит в регистре режимов определяют множитель скорости. Взаимосвязь между частотами Т\С и RxC входов синхронизации и скоростями в бодах передатчика и приемника имеет следующий вид

частота синхронизации = множитель X скорость в бодах.



Рис. 9.14. Схема размещения выводимых байт.

Когда младшие биты регистра режима содержат 10 и скорости в бодах передатчика и приемника равны 300 и 1200, частота на входе ТхС должна быть 4800 Гц, а на входе RxC - 19,2 кГц

В обоих режимах биты 2 и 3 показывают число информационных бит в каждом символе, бит 4 определяет наличие или отсутствие бита паритета, а бит 5 - тип паритета (не­четный или четный). В асинхронном режиме два старших бита показывают число стоповых бит. Для синхронного режима бит 6 показывает, каким является сигнал SYNDET-входным или выходным, а бит 7 задает число символов синхронизации



Рис. 9.15. Форматы регистра режима: асинхронный (а) и синхронный (б)

Если контакт SYNDET служит выходом, его сигнал становится активным, когда обнаружено соответствие входного двоичного потока и символа (ов) синхронизации. Когда же поиск символов синхронизации осуществляется внешним устройством, на вход SYNDET подается сигнал о фиксации соответствия. Этот же контакт, но только в каче­стве выхода применяется и при асинхронной работе. Сигнал на этом выходе называется сигналом обнаружения разрыва и он высоким уровнем отмечает прием символа, состоящего из одних нулей.

Формат регистра управления приведен на рис. 9.16. Бит 0 этого регистра должен содержать 1 до вывода данных, а бит 2 должен быть в состоянии 1 до приема данных. Программный ответ модему осуществляется установкой в 1 бита 1, так как при этом на выходе DTR формируется 0, а инверсия DTR обычно подключается к линии CD модема. Состояние 1 бита 3 формирует TxD = 0, вызывая передачу символов разрыва.

Рис. 9.16. Формат регистра управления

Примечание. Во всех случаях действие предпринимается, когда бит установлен в 1

Установка в 1 бита 4 вызывает сброс всех бит ошибок в регистре состояния. Бит 5 применяется для выдачи сигнала "запрос передачи" (RTS) в модем. Если инверсия сигнала на кон­такте RTS подключена к линии СА модема, то загрузка 1 в бит 5 вызывает высокий уровень на линии СА. Установка бита 6 в состояние 1 вызывает реинициализацию 8251А и переход к последовательности сброса (т. е. осуществляется возврат в начало схемы на рис. 9.14 и следующий вывод производится в регистр режима). Бит 7 применяется толь­ко в синхронном режиме; установка его в 1 заставляет 8251А начать поиск символа (ов) синхронизации

На рис. 9.17 показаны типичные схемы подключения к модемам для асинхронной и синхронной передач. При синхронной передаче предполагается, что синхронизацией управляет модем и его связное оборудование. Кроме того, если это же оборудование применяется для обнаружения символа (ов) синхронизации, оно информирует 8251А об их обнаружении по линии SYNDET. С другой стороны, если символ (ы) синхронизации отыскивает сам 8251А, он может использовать линию SYNDET, чтобы сообщить модему об успешном поиске Для удовлетворения требований стандарта RS-232-C необходимы драйверы и приемники, преобразующие ТТЛ-совместимые сигналы TxD и RxD в требуемые уровни напряжения (см рис. 9.10)

Ниже приведен программный фрагмент, который инициализирует регистр режима и содержит приказ разрешения передатчика и запуска асинхронной передачи со следую­щим форматом: 7 бит символа, бит четного паритета и 2 стоповых бита.

MOV AL,11111010B

OUT 51H,AL

MOV AL,00110011B

OUT 51H,AL

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

Следующий фрагмент переводит 8251А в синхронный режим и заставляет его начать поиск двух смежных символов синхронизации:

MOV AL,00111000B

OUT 51H,AL

MOV A1_,16H

OUT 51H,AL

MOV AL,10010100B

OUT 51H,AL 338



Можно также использовать для выбора скорости - линия модема СН

б)

Рис. 9.17. Подключения микросхемы 8251А к асинхронному (а) и синхронному (б) мо­дему Примечание. Подключения линий управления зависят от спецификаций модема

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

Формат регистра состояния приведен на рис. 9.18. Биты 1, 2 и 6 отражают состояния сигналов RxRDY, TxE и SYNDET. Бит TxRDY показывает, что буфер выходных данных



Рис. 9.18. Формат регистра состояния

пустой. В отличие от контакта TxRDY на этот бит не влияет входной сигнал CTS или бит управления TxEN. Бит RxRDY показывает, что символ принят и готов для ввода в процессор. Биты TxRDY и RxRDY можно использовать для программного ввода-вывода, а сигналы с соответствующих контактов можно подключить к линиям запросов прерываний для организации ввода-вывода по прерываниям. Бит TxRDY автоматически сбрасывается, когда имеется символ для передачи, а бит RxRDY - когда установивший его символ введен процессором. Бит 2 показывает, что регистр сдвига передатчика ожидает загрузки символа из буферного регистра выходных данных. В синхронной передаче, пока этот бит установлен, передатчик будет брать данные из регистров символов синхронизации до загрузки данных в буферный регистр выходных данных. Биты 3, 4 и 5 показывают ошибки паритета, перегрузки и кадра. Когда обнаруживается ошибка, соответствующий ей бит устанавливается в 1. Если инверсию выхода DSR подключить к линии СС, то бит 7 отражает состояние модема - он устанавливается в 1, когда модем включен и находится в рабочем режиме.

На рис. 9.19 приведена типичная программа, в которой используется программный ввод-вывод для ввода 80 символов из 8251А (адрес буферного регистра данных равен 0050) и размещения их в буфере памяти, начинающегося с LINE. Внутренний цикл непрерывно проверяет бит RxRDY до тех пор, пока он не устанавливается символом, принятым в буферный регистр входных данных. Затем новый принятый символ

Рис. 9.19. Ввод строки символов через интерфейс 8251А

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

Ввод символа автоматически сбрасывает бит RxRDY, поэтому если другой символ не принят до начала внутреннего цикла, внутренний цикл должен повторяться до тех пор, пока следующий входной символ не установит RxRDY = 1. Если входные символы имеют меньше 8 бит, неиспользуемые старшие биты в буферном регистре данных всегда возвращаются в состояние 0. Бит паритета не передается в процессор, поэтому контроль ошибок паритета можно осуществить только по состоянию бита ошибки паритета в регистре состояния. Когда при выводе длина символов меньше 8 бит, ненужные старшие биты в буферном регистре выходных данных игнорируются.


^

Лекция 10. Передача данных между ЭВМ с помощью модемов. Типы и характеристики модемов.Набор АТ-команд.



Редкий серьезный деловой человек, профессиональный программист или системный оператор может представить себе полноценную работу без использования такого мощного, оперативного и удобного сочетания как обычная телефонная линия, модем и компьютерная сеть. В то время как первые две составляющие всего лишь техническая сторона новой организации информационного обмена между пользователями, компьютерная сеть - это та глобальная идея, объединяющая разрозненных обладателей компьютеров и модемов, систематизирующая и управляющая хаотически предъявляемыми требованиями и запросами по быстрому информационному обслуживанию, моментальной обработкой коммерческих предложений, услугами личной конфиденциальной переписки и т.д. и т.п. Сейчас, в условиях многократно возрастающих каждый год информационных потоков, уже практически невозможно вообразить четкое взаимодействие банковских структур, торговых и посреднических фирм, государственных учреждений и других организаций без современной вычислительной техники и компьютерных сетей. В противном случае пришлось бы содержать гигантский штат обработчиков бумажных документов и курьеров, причем надежность и быстрота функционирования такой системы все равно была бы значительно ниже предоставляемой модемной связью и компьютерными сетями. А ведь каждая минута задержки в пересылке важных информационных сообщений может вылиться в весьма ощутимые денежные потери и имиджевые крахи.

Без модема немыслима система электронных коммуникаций. Это устройство позволяет включиться в увлекательный, а сегодня, используя последние изобретения мира телекоммуникаций, уже и просто жизненно необходимый, мир информационных потоков, электронных баз данных, электронной почты, электронных справочников, электронных досок объявлений и многого другого. Возможности получения и обмена информацией с помощью модемов уже сегодня трудно переоценить, а то, что ждет нас завтра, мы не можем себе даже вообразить. Электронное письмо, посланное по электронной почте в любую точку земного шара, дойдет до адресата меньше, чем за два часа. Мы можем поместить какое-либо объявление или рекламу в систему телеконференции вашей сети электронной почты и эту информацию через сутки узнает весь мир (если, конечно, этого очень захотеть). Посредством модема можно, например, из Москвы подключиться напрямую к серверу в Нью-Йорке и работать с информационными базами данных, которые он содержит. Наконец, мы можем послать факс. Уже сегодня ни одна солидная брокерская контора не может обойтись без оперативного получения и передачи информации с использованием компьютерных каналов связи и, как следствие, модемов.

Основной задачей модема является преобразование исходной цифровой информации в вид, пригодный для передачи по каналу связи, и обратное преобразование на приеме. Вид модуляции и метод построения модема в значительной степени определяют скорость передачи данных и эффективность использования канала связи. Применительно к передаче данных по телефонным каналам, виды модуляции, используемые в модемах, регламентируются Международным союзом электросвязи (МСЭ-Т). В Рекомендациях МСЭ-Т определены основные технические характеристики модема, такие, как форма спектра передаваемого сигнала, структура настроечной комбинации, образующий полином скремблера (дескремблера) и другие параметры, обеспечивающие совместимость модемов, выпускаемых разными изготовителями.

Качество работы модема определяется способностью противодействовать мешающим факторам, а, именно:

- Гауссовскому шуму;

- межсимвольной интерференции, вызванной не идеальностью передаточной функции канала связи;

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

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

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

- адаптивного корректора сигнала для уменьшения межсимвольной интерференции в принимаемом сигнале;

- дискретного (или цифрового) формирователя спектра сигнала на передаче (в качестве его дополнительной функции может быть введение предыскажений с целью компенсации межсимвольной интерференции);

- скремблера (на передаче) и дескремблера (на приеме) для преобразования исходной последовательности данных в псевдослучайную и обратного преобразования на приеме;

- системы компенсации флуктуаций фазы несущей частоты,

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

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

- поочередной передачи в каждом из направлений (полудуплексный режим);

- частотного разделения направлений передачи (дуплексный режим: симметричный или асимметричный - в зависимости от равенства или неравенства скоростей передачи в разных направлениях);

- одновременной передачи в обоих направлениях с подавлением на приеме отраженного сигнала собственного передатчика (дуплексный режим с эхо компенсацией).

Модемы классифицируются, в основном, по величине скорости и типу канала, для которого они предназначены (арендованный или коммутируемый). Совместимость модемов разных изготовителей обеспечивается соответствием их нормам международных Рекомендаций серии V Международного союза электросвязи (МСЭ-Т).

Итак, модемом называется устройство, способное осуществлять МОдуляцию и ДЕМодуляцию информационных сигналов (МОДЕМ). Собственно работа модулятора модема заключается в том, что поток битов из компьютера преобразуется в аналоговые сигналы, пригодные для передачи по телефонному каналу связи. Понятно, что демодулятор модема выполняет обратную задачу.

Таким образом, данные, подлежащие передаче, преобразуются в аналоговый сигнал модулятором модема "передающего" компьютера. Принимающий модем, находящиеся на противоположном конце линии, "слушает" передаваемый сигнал и преобразует его обратно в цифровой при помощи демодулятора. После того, как эта работа выполнена, информация может передаваться в принимающий компьютер. Режим работы, когда передача данных осуществляется только в одном направлении, называется полудуплексным (half duplex). Вообще говоря, оба компьютера, как правило, могут одновременно обмениваться информацией в обе стороны. Этот режим работы называется полным дуплексом, или просто дуплексом (full duplex).

Можно выделить некоторые основные этапы работы модема. Первым делом модем принимает данные, поступающие из компьютера, после чего разделяет их на исполняемые команды и информацию, которую надо передать в линию. Сразу же заметим, что большинство современных модемов используют так называемый набор команд AT. (сокращение от слова ATtentin).

АТ-команды

Практически каждый модем рекламируется как Hayes-совместимый, т. е. понимающий большинство команд языка AT, разработанного компанией Hayes в 70-е годы. Чтобы использовать модем, вам не обязательно знать команды AT, но иногда применение правильной инструкции способно дать модему "второе дыхание". Имейте в виду, что не все команды работают со всеми модемами, а каждая конкретная модель поддерживает лишь основные команды языка Hayes и имеет набор своих собственных (и весьма полезных) команд. Подробная информация об этом содержится в документации на модем и на Web-сервере поставщика. Чтобы воспользоваться командами AT, запустите утилиту Hyper Terminal или Терминал, входящий в пакет Norton Commander 5.0.

AT - команды

AT

начало (префикс) командной строки. После получения этой команды модем автоматически подстраивает скорость передачи и формат знака к параметрам терминала.

A

ручной ответ. Команда переключает модем из командного режима на режим ожидания сигнала несущей вызывающего модема. После получения сигнала несущей, модем реализует процедуру положительного ответа на вызов и действует как переключенный на процедуру автоматического ответа. Если модем работает на выделенных линиях связи, то отвечает несущей без указания частоты. В этом случае если автоматический ответ (auto-answer) выключен (S0=0) и происходит вызов, то для получения связи надо передать команду ATA.

A/

модем повторяет предыдущую командную строку. Команда подается без префикса (AT) и нажатия.

Bn

выбор коммуникационного стандарта:

n = 0 CCITT V.21, V.22, V.22bis,

n = 1 BELL 103/202A.

Ds

автоматический набор номера.

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

Команда состоит из телефонного номера, в состав которого могут входить следующие управляющие параметры:

s = P обозначает, что цифры телефонного номера идущие после символа P модем должен набирать импульсно (используются символы 0-9).

s = T обозначает, что цифры телефонного номера идущие после символа T модем должен набирать частотой (разрешено использовать символы 0-9, A-D, * а также #).

s = , обозначает перерыв перед набором следующей цифры (2s).

s = ; если применяется как последний знак в командной строке, то модем после набора номера переходит в командный режим работы.

s = @ модем ожидает 5-секундной тишины на линии, если она не появится в течении 30s (содержимое регистра S7), модем отключается, и отвечает NO ANSWER.

s = ! если знак ! стоит перед знаками последовательности набора, модем переходит в состояние ON HOOK (кладет трубку) на 0,5s, а затем снова перейдет в состояние OFF HOOK (снимает трубку).

s = S модем набирает телефонный номер записанный в памяти EEROM.

s = R при записи как последний символ в командной строке, устанавливает модем после набора номера в режим answer, но только в том случае, если модем звонит к модему originate.

s = W модем ожидает ответ станции (длинный гудок) перед дальнейшим набором телефонного номера (например выход на автоматическую междугороднюю связь).

En

местное эхо ON/OFF.

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

Команда E0 блокирует эту функцию.

n = 0 эхо выключено,

n = 1 эхо включено

Hn

управление линией.

Команда используется прежде всего при окончании телефонной связи:

n = 0 отключение модема от линии,

n = 1 подключение модема на линию.

In

производственный код и контрольная сумма:

n = 0 сообщение сода продукта,

n = 1 подсчет контрольной суммы программы содержащейся в ROM (EPROM),

n = 2 модем проверяет состояние внутренней памяти ROM и возвращает сообщение OK или ERROR.

Ln

установка громкости сигнала встроенного динамика (громкоговорителя).

n = 0,1 низкая

n = 2 средняя

n = 3 высокая

Mn

управление динамиком (громкоговорителем).

n = 0 динамик выключен,

n = 1 динамик включен только во время набора номера и выключается после обнаружения несущей,

n = 2 динамик включен все время,

n = 3 динамик включается после набора последней цифры номера и выключается после обнаружения несущей отвечающего модема.

Qn

управление ответом модема.

n = 0 ответ включен,

n = 1 ответ выключен.

Независимо от состояния Q0 или Q1 модем всегда сообщает содержание S-регистров, код продукта, контрольную сумму и результаты теста (смотри команды S, I, а также &T).

O

после прохождения команды, модем настраивается на режим передачи данных и отвечает CONNECT (если до этого он находился в командном режиме работы).

Sr

управление S-регистрами.

Sr?

считывание содержимого S-регистра номер r.

Sr=nnn

ввод числового параметра nnn в S-регистр номер r.

Все команды модифицируют содержимое одного или более S-регистров. Некоторые S-регистры содержат временные параметры, которые можно поменять только командой S.

Vn

выбор вида ответа модема.

n = 0 ответ цифровым кодом,

n = 1 ответ в символьном виде на английском языке.




Стандартный набор ответов модема


Ответ в символьном виде

Ответ цифровым кодом

Значение ответа

OK

0

Модем выполнил команду

CONNECT

1

Модем подключен со скоростью 300bps. После команды X0 возможна работа со скоростью 600, 1200, 2400 bps.

RING

2

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

^ NO CARRIER

3

Модем потерял несущую или не получил ответ от удаленного модема.

ERROR

4

Ошибка в командной строке. Командная строка длиннее 40 символов, или ошибка в контрольной сумме (смотри команду L2).

CONNECT 1200

5

Модем подключен со скоростью 1200 bps, (смотри команды X1, X2, X3, X4).

^ NO DIALTONE

6

Отсутствие сигнала станции коммутации (смотри команды X2, X4).

BUSY

7

Номер (канал) занят.

^ NO ANSWER

8

Ответ получается в случае использования в командной строке управляющего символа @ и если не выполнено условие - 5s тишины (см команду D).

CONNECT 600

9

Модем подключен со скоростью 600 bps, (смотри команды X1, X2, X3, X4).

CONNECT 2400

10

Модем подключен со скоростью 2400 bps, (смотри команды X1, X2, X3, X4).


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

Модем выполняется либо в виде внешнего устройства, которое одним выходом подсоединяется к телефонной линии, а другим к стандартному COM-поpту компьютера (pазъём RS232), либо в виде обыкновенной печатной платы, которая устанавливается на общую шину компьютеpа. Внутренние варианты модемов могут быть пpиспособлены как к обычной ISA, так и к PCI шинам.

Контpоллеp модема - это, как правило, специализированный микрокомпьютер типа SC1107 или SC1108, содеpжащий восьмиpазpядное АЛУ, ПЗУ в 8 Кбайт, ОЗУ 128 байт, таймеp, командный pегистp, контpоллеp пpеpываний, стек, поpт ввода/вывода. Если плата модема пpисоединена к системной шине ПК, то пpименяется "паpаллельный" контpоллеp SC1107. Если же плата pаботает с компьютеpом посpедством RS232, то используется "последовательный" контpоллеp SC1108. В некотоpых констpукциях pоль контpоллеpа выполняет пpоцессоp 8031 с внешним ПЗУ (i2732,2764) и микpосхемой 74LS373.

Модемы могут отличаться друг от друга, например, по методам модуляции. Ведь, как известно, у одного и того же сигнала, определяемого во времени, можно модулировать амплитуду, частоту и фазу. Наиболее известны три метода модуляции: FSK (Frequency Shift Keying), PSK (Phase Shift Keying) и QAM (Quadrature Amplitude Modulation). FSK является разновидностью частотной модуляции (ЧМ), а PSK - фазовой (ФМ).

FSK использует четыре выделенные частоты. Пpи пеpедаче инфоpмации сигнал частотой 1070 Гц интерпретируется как логический нуль, а сигнал частотой 1270 Гц - как логическая единица. Пpи приеме нуль соответствует сигналу 2025 Гц, а единица - 2225 Гц.

PSK использует две частоты: для передачи данных - 2400 Гц, для приема - 1200 Гц. Данные пеpедаются по два бита, пpи этом кодиpовка осуществляется посpедством сдвига фазы сигнала. Используются следующие сдвиги фазы для кодиpовки: 0 гpадусов для сочетания битов 00, 90 гpадусов для 01, 180 гpадусов для 10, 270 гpадусов для 11.

В методе квадратной амплитудной модуляции QAM одновременно изменяются фаза и амплитуда сигнала, что позволяет передавать большее количество информации. В современных модемах используется так называемая модуляция с решёточным кодированием TCQAM (Trellis Coded QAM), или просто TCM.

Одной из основных характеристик модема является скорость модуляции, которая определяет физическую скорость передачи данных без учёта исправления ошибок и сжатия данных. Единицей измерения этого параметра является количество бит в секунду. Скорость модуляции не следует путать с пропускной способностью канала, которая может быть меньше или больше скорости модуляции в зависимости от качества линии, применения коррекции ошибок и сжатия передаваемых данных.

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

^ МОДЕМ КАК СРЕДСТВО СВЯЗИ МЕЖДУ КОМПЬЮТЕРАМИ

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

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

В рамках предприятия, небольшого города или просто ограниченной местности возможно создание обычной локальной сети на базе стандаpтов Ethernet или Arcnet и их объединение посредством стандартных кабелей. Hо когда pечь заходит о соединении компьютеров, находящихся на расстоянии многих тысяч километров друг от друга, то мгновенно встает вполне разумный вопрос: а почему бы не использовать такое стаpое и пpовеpенное сpедство коммуникации, как телефонные линии? Ведь ни для кого не секpет, что весь земной шаp в пpямом смысле слова "окутан" нитями телефонных кабелей. Вот тогда и потребовалось это устройство МОдуляции/ДЕМодуляции, которое могло бы переводить информацию в сигналы определенной частоты. Впеpвые такое устройство было представлено разработчиками и стандартизовано МККТТ в 1964 году.

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

Если мы хотим оперативно передать какой-то файл нашему другу или сотруднику во Владивостоке, то можно поступить двумя способами. Кто-то предпочтет записать этот файл на дискету, купить билет на самолет, нанять КУРЬЕРА и поручить ему доставить эту дискету по такому-то адресу. А кто-то разумно решит приобрести модем марки COURIER фирмы U.S.Robotics и в считанные минуты, используя присутствующую в каждом приличном учреждении телефонную линию, передать всю необходимую во Владивостоке информацию. Для этого, помимо телефонной линии, необходимо иметь лишь, также присуствующий в каждом приличном учреждении, компьютер и простейшую коммуникационную программу.

ЗАКЛЮЧЕНИЕ

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

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

В массовом производстве был освоен выпуск модемов для коммутируемых каналов на скоростях 14400 бит/с и 28800 бит/с. (что практически совпадает с теоретической границей скорости передачи). Благодаря применению в модемах защиты от ошибок, обеспечивается высокая достоверность передачи, а за счет введения функции сжатия данных - фактические скорости передачи до 57600 бит/с. Эти факторы, наряду с сохраняющимся значительным объемом использования аналоговых телефонных каналов, обусловили быстрое развитие разработки, производства и применения модемов.

^

Лекция 11. Программируемый периферийный интерфейс.


Примером параллельного интерфейса служит микросхема 8255А программируемого периферийного интерфейса. Как показано на рис. 9.21, она имеет регистр управления и три отдельно адресуемых порта A, B и С. Обращение к 8255А определяет сигнал CS, а направление обращения - сигналы RD и WR. Адресуемый регистр определяют сигналы на входах А1 и АО. Следовательно, младший адрес порта, назначаемый 8255А, должен быть кратным 4. Полная адресация 8255А содержится в табл 9.2

^ Таблица 9.2

Адресация микросхемы 8255А




Так как биты порта С иногда используются как биты управления, 8255А спроектирован так, что в них можно выводить по отдельности, пользуясь командой установки/сброса. Когда 8255А принимает байт, направляемый в его регистр управления, он анализирует бит 7 данных. Если этот бит содержит 1, данные передаются в регистр управления; если же бит 7=0, данные считаются командой установки/сброса и применяются для установки или сброса определяемого командой бита порта С. Биты 3-1 дают номер изменяемого бита, а бит 0 показывает сброс или установку. Остальные биты не используются.

Биты трех портов выведены на контакты, которые подключаются к устройству ввода-вывода. Они разделены на группы А и В, причем группу А образуют биты порта А и 4 старших бита порта С, а группу В - порт В и 4 младших бита порта С. Группа А может работать в трех режимах (0, 1, 2), а группа В - в двух режимах (0 и 1). Режимы определяются содержимым регистра управления, формат которого приведен на рис. 9.22.



Рис. 9.21. Схема интерфейса 8255А

Режим 0. В этом режиме группа разделяется на два набора. В группе А этими наборами являются порт А и старшие 4 бита порта С, а в группе В - порт В и младшие биты порта С. Каждый набор можно использовать для ввода или вывода, но не для двунаправленных передач. Биты D4, D3, D1 и DO в регистре управления определяют, какие наборы предназначены для ввода, а какие - для вывода. Эти биты ассоциируются с наборами следующим образом:



Рис. 9 22. Формат регистра управления микросхемы 8255А

D4 порт A

D3 старшая половина порта С,

D1 - порт В,

DO - младшая половина порта С

Если бит содержит 0, соответствующий набор применяется для вывода, а в противном случае для ввода

Режим 1. Когда в этом режиме работает группа A, порт А используется для ввода или вывода в соответствии с битом D4 (D4 = 1 указывает ввод), а старшая половина порта С применяется для сигналов квитирования и управления.

При вводе старшим битам пота С назначены следующие названия и определения:

РС4 STBA - сигнал 0 на этом контакте заставляет РА7-РАО "стробироваться" в порт А.

РС5 IВFA — показывает, что входной буфер заполнен. Устанавливается в 1, когда порт А содержит данные, которые еще не введены в процессор. Когда действует сигнал 0, устройство может вводить в интерфейс новый байт.

РС6, РС7 - применяются для вывода сигналов управления в устройство или ввода состояния из устройства. Если бит D3 в регистре управления содержит 0, эти линии выходные; в противном случае - входные.

При выводе:

РС4, РС5 - выполняют те же функции, что и РС6, РС7 при вводе.

РС7 ОВFA - показывает, что выходной буфер заполнен. Формирует сигнал 0 в устройство, когда порт А выводит в устройство новые данные.

РС6 АСКA - устройство подает 0 на этот вход, когда оно восприняло данные из порта А.

В режиме 1 с группой А ассоциируется РСЗ, обозначаемый INTRA. Этот сигнал применяется как линия запроса прерывания и подключается к одной из линий IR системной шины. При вводе в порт А на этом выходе формируется сигнал 1, когда новые данные помещаются в порт А (т. е. им управляет РС4), и сигнал 0, когда процессор считывает данные. При выводе на выходе INTRA формируется сигнал 1, когда содержимое порта А воспринято устройством, и сигнал 0, когда процессор загружает новые данные. Если группа В находится в режиме 1, порт В является входным или выходным в зависимости от состояния бита D1 регистра управления (D1 = 1 определяет порт В входным). При вводе РС2 и РС1 обозначаются STBB и IBFB; они выполняют для группы В те же функции, что и сигналы STBA и IВFA для группы А. Аналогично при выводе РС1 и РС2 обозначаются OBFB и АСКB. Выход РС0 превращается в INTRB и используется аналогично INTRA. Разрешением прерываний для группы А управляют РС4 в режиме ввода и РС6 в режиме вывода. Например, в режиме ввода прерывание для группы А разрешается установкой РС4 и запрещается сбросом РС4 с помощью команды установки/сброса. Аналогично разрешением прерываний для группы В управляет установка/сброс РС2.

Режим 2. В данном режиме может работать только группа А, хотя в ней для генерирования запросов прерываний используется РСЗ. В режиме 2 порт А становится двунаправленным, а 4 старших бита порта С определяются следующим образом:

РС4 STBA сигнал 0 на этой линии заставляет данные с РА7-РАО стробироваться в порт А.

РС5 IВFA - формируется сигнал 1, когда в порт А загружаются новые данные 1 с линий РА7-РАО, и сигнал 0, когда процессор считывает данные.

РС6 АСКA - показывает, что устройство готово воспринимать данные с линий РА7-РАО.

PC7 OBFA – формирует сигнал 0, когда процессор загружает в порт A новые данные, а сигнал 0, когда данные принягы устройством.

Когда гpyппа А находится в режиме 2, группа В может работать в peжиме 0 или 1. Если группа В находится в режима 0 только РС2 - РC0 можно использовать для ввода или вывода, так как PC3 служит запросом прерываний для группы A. Обычно если группа A работает в режиме 2, РС2 – РC0 подгключаются к контактам управления и состояния устройства, которое подсоединено к линиям порта A. Для этих же целей может применяться порт B.

Во всех тех режимах порт С отражает сигналы на линиях РС7-РСО и его можно считать командой IN.

9 2.2 Пример использования

На рис. 9.23 показано возможное подключение микросхемы 8255А к аналого-цифровой и цифро-аналоговой подсистемам. Так во время аналого-цифрового преобразования аналоговое напряжение должно оставаться неизменным, необходима схема выборки и сохранения. Группа А работает на ввод в режиме 1. Преобразование инициируется сигналом на выходе РС7, это стимулирует преобразователь выдать сигнал занятости. Линия занятости подключена на .вход управления выборкой и сохранением (S/H) и на вход одновибратора, запускаемого спадающим фронтом. Пока сигнал занятости имеет высокий уровень, схема выборки и сохранения поддерживает постоянный выход, а когда в конце преобразования сигнал занятости снимается, запускается одновибратор. Его выход инвертируется и подается на вход SТВA (РС4) микросхемы 8255А. Он заставляет цифровой отсчет стробироваться в порт А. В цифро-аналоговой части подсистемы порт В работает как выходной в режиме 0; он подключен непосредственно на двоичный вход цифро-аналогового преобразователя. Квитирование здесь не применяется.

Предположим, что порты А, В и С и регистр управления имеют адреса FFF8, FFF9 FFFA и FFFB. Тогда команды

MOV AL, 10110000В

OUT DX, AL

заставляют порт А работать в режиме 1, порт В - в режиме 0, а РС7 быть выходом. Следующий фрагмент формирует импульс на входе запуска аналого-цифрового преобразователя.

^ MOV DX, OFFFBH

MOV AL, 00001111B

OUT DX, AL

MOV AL, 00001110B

OUT DX, AL

Здесь первая команда загружает в регистр DX адрес, ассоциируемый с командой установки/сброса, который coвпадает с адресом регистра управления Следующие две команды формируют сигнал PC7 = 1, а последние две - сигнал РС7 = 0. Фрагмент программного ввода преобразованных данных имеет вид

^ MOV DX.OFFFAH

AGAIN; IN AL,DX

TEST AL.,001OOOOOB

JZ AGAIN

MOV DX. OFFF8H

IN AL, DX



Рис. 9.23. Интерфейс аналого-цифровой и цифро-аналоговой подсистем с применением микросхемы 8255А

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

MOV DX, OFFF9H

OUT DX, AL

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

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


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

MOV CX, N

IDLE NOP

LOOP IDLE

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

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

На рис 9.23 показаны только 8-битные преобразователи, имеющие разрешающую способность 1 из 256. Если диапазон входного или выходного напряжений равен -10 . . . +10 В, разрешающая способность составляет

20/256= 0,078В.

Для улучшения разрешающей способности применяются 10-, 12- или 14-битные преобразователи. В этом случае приходится пользоваться комбинацией портов А и С или В и С или параллельно включать две микросхемы 8255А.
^

Лекция 12. Параллельный интерфейс:LPT-порт. Понюхов Е. В.


Порт параллельного интерфейса был введен в PC для подключения принтера —LP'T-порт (Line PrinTer — построчный принтер).

Адаптер параллельного интерфейса представляет собой набор регистров, расположенных в пространстве ввода/вывода. Регистры порта адресуются относительно базового адреса порта, стандартными значениями которого являются 386h, 378h и 278h. Порт имеет внешнюю 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов.

BIOS поддерживает до четырех LPT-портов (LPT1-LPT4) своим сервисом — прерыванием INT 17h, обеспечивающим через них связь с принтерами по интерфейсу Centronics. Этим сервисом BIOS осуществляет вывод символа, инициализацию интерфейса и принтера, а также опрос состояния принтера.

^ Интерфейс Centronics

Понятие Centronics относится как к набору сигналов и протоколу взаимодействия, так и к 36-контактному разъему, устанавливаемому на принтерах. Назначение сигналов приведено в табл. 1.

^ Таблица 1.

Сигналы интерфейса Centronics



Сигнал

I/O*

Контакт

Назначение

Strobe

I

1

Строб данных. Данные фиксируются по низкому уровню сигнала

Data [0:7]

I

2-9

Линии данных. Data 0 (контакт 2) — младший бит

Actt

0

10

Acknowledge — импульс подтверждения приема байта (запрос на прием сле­дующего). Может использоваться для формирования запроса прерывания

Busy

0

11

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

PaperEnd

0

12

Высокий уровень сигнализирует о конце бумаги

Select

0

13

Сигнализирует о включении принтера

Auto LF#

I

14

Автоматический перевод строки.

Еггог

0

32

Ошибка: конец бумаги, состояние OFF-Line или внутренняя ошибка принтера

Imt#

I

31

Инициализация

Slot In#

I

36

Выбор принтера (низким уровнем). При высоком уровне принтер не воспринимает остальные сигналы интерфейса

GND

-

19-30 33

Общий провод интерфейса

* I/O

Задает

Направление

(вход/выход) применительно к принтеру.


Интерфейс Centronics поддерживается большинством принтеров с параллельным интерфейсом, его отечественным аналогом является интерфейс ИРПР-М.
^ Традиционный LPT-порт

Традиционный порт SPP (Standard Parallel Port) является однонаправленным портом, на базе которого программно реализуется протокол обмена Centronics. Порт обеспечивает возможность вырабатывания запроса аппаратного прерывания по импульсу на входе АСК#. Сигналы порта выводятся на разъем DB-25S (розетка), установленный непосредственно на плате адаптера (или системной плате) или соединяемый с ней плоским шлейфом. Название и назначение сигналов разъема порта (табл. 2) соответствуют интерфейсу Centronics.

Таблица 2.

Разъем стандартного LPT-порта


Контакт DB-25S

Провод шлейфа

Назначение

I/O*

Reg.Bit**

Сигнал

1

1

0/1

CR: 0\

Strobe#

2

3

0(1)

DR:0

Data 0

3

5

0(1)

DR: 1

Data 1

4

7

0(1)

DR: 2

Data 2

5

9

0(1)

DR:3

Data 3

6

11

0(1)

DR: 4

Data 4

7

13

0(1)

DR:5

Data 5

8

15

0(1)

DR:6

Data 6

9

17

0(1)

DR:7

Data 7

10

19

I

SR: 6

Ack#

11

21

I

SR: 7\

Busy

12

23

I

SR: 5

PaperEnd

13

25

I

SR: 4

Select

14

2

0/1

CR: 1\

Auto LF#

15

4

I

SR: 3

Error#

16

6

0/1

CR: 2

Init#

17

8

0/1

CR:3\

Select In#

18-25

10, 12, 14, 16

18, 20, 22, 24, 26

-

-


* I/O задает направление передачи (вход/выход) сигнала порта; 0/I обозначает выходные линии, состояние которых считывается при чтении из соответствующих портов вывода.

** Символом «\» отмечены инвертированные сигналы (1 в регистре соответствует низкому уровню линии).

*** Вход Ack# соединен резистором (10 кОм) с питанием +5 В.

Стандартный порт имеет три 8-битных регистра, расположенных по соседним адресам в пространстве ввода/вывода, начиная с базового адреса порта (BASE).

Data Register (DR) — регистр данных, адрес= BASE. Данные, записанные в этот порт, выводятся на выходные линии интерфейса. Данные, считанные из этого регистра, в зависимости от схемотехники адаптера соответствуют либо ранее записанным данным, либо сигналам на тех же линиях.

Status Register (SR) — регистр состояния, представляющий собой 5-битный порт ввода сигналов состояния принтера (биты SR.4-SR.7), адрес= BASE+1. Бит SR.7 инвертируется — низкому уровню сигнала соответствует единичному значению бита в регистре, и наоборот.

Control Register (CR) — регистр управления, адрес=ВА5Е+2. Как и регистр данных, этот 4-битный порт вывода допускает запись и чтение (биты 0-3), но его выходной буфер обычно имеет тип открытый коллектор. Это позволяет более корректно использовать линии данного регистра как входные при программировании их в высокий уровень. Биты О, 1, 3 инвертируются — единичному значению в регистре соответствует низкий уровень сигнала, и наоборот.

Запрос аппаратного прерывания (обычно IRQ7 или IRQ5) вырабатывается по отрицательному перепаду сигнала на выводе 10 разъема интерфейса (АСК#) при установке CR.4=1. Прерывание вырабатывается, когда принтер подтверждает прием предыдущего байта.

Процедура вывода байта по интерфейсу Centronics через стандартный порт включает следующие шаги (в скобках приведено требуемое количество шинных операций процессора):

Вывод байта в регистр данных (1 цикл IOWR#).

Ввод из регистра состояния и проверка готовности устройства (бит SR.7 — сигнал BUSY).

По получении готовности выводом в регистр управления устанавливается строб данных, а следующим выводом строб снимается (2 цикла IOWRff).

Стандартный порт сильно асимметричен — при наличии 12 линий (и бит), нормально работающих на вывод, на ввод работает только 5 линий состояния. Если необходима симметричная двунаправленная связь, на всех стандартных портах работоспособен режим полубайтного обмена — Nibble Mode. В этом режиме, называемом также и Hewlett Packard Bitronics, одновременно передаются 4 бита данных, пятая линия используется для квитирования.

^ Функции BIOS для LPT-порта

BIOS обеспечивает поддержку LPT-порта, необходимую для организации вывода по интерфейсу Centronics.

В процессе начального тестирования POST BIOS проверяет наличие параллельных портов по адресам ЗВСЬ, 378h и 278h и помещает базовые адреса обнаруженных портов в ячейки BIOS DATA AREA 0:0408h, 040Ah, 040СП, 040ЕП. Эти ячейки хранят адреса портов с логическими именами LPT1-LPT4. В ячейки 0:0478, 0479, 047А, 047В заносятся константы, задающие выдержку тайм-аута для этих портов.

Поиск портов обычно ведется по базовому адресу. Если считанный байт совпал с записанным, считается, что найден LPT-порт, и его адрес помещают в ячейку BIOS DATA AREA. Адрес порта LPT4 BIOS самостоятельно установить не может, поскольку в списке стандартных адресов поиска имеются только три вышеуказанных.

Обнаруженные порты инициализируются — записью в регистр управления формируется и снимается сигнал Initff, после чего записывается значение 00h, соответствующее исходному состоянию сигналов интерфейса.

Программное прерывание BIOS I NT 17h обеспечивает следующие функции поддержки LPT-порта:

00h — вывод символа из регистра AL по протоколу Centronics. Данные помещаются в выходной регистр и после готовности принтера формируется строб.

01h — инициализаия интерфейса и принтера.

02h — опрос состояния принтера.

При вызове INT 17h номер функции задается в регистре АН, номер порта — в регистре DX (0 — LPT1, 1 — LPT2...). При возврате после любой функции регистр АН содержит код состояния — биты регистра состояния SR[7:3] (биты 6 и 3 инвертированы) и флаг тайм-аута в бите 0. Флаг тайм-аута устанавливается при неудачной попытке вывода символа.

^ Расширения параллельного порта

Недостатки стандартного порта частично устраняют новые типы портов, появившихся в компьютерах семейства PS/2.

Двунаправленный порт 1 (Typel parallel port) — интерфейс, введенный с PS/2. Такой порт кроме стандартного режима может работать в режиме ввода или двунаправленном. Протокол обмена формируется программно, а для указания направления передачи в регистр управления порта введен специальный бит: при CR.5=0 буфер данных работает на вывод, при CR.5=1 — на ввод.

Порт с прямым доступом к памяти (Type 3 DMA parallel port) применялся в PS/2 моделей 57, 90, 95. Этот тип был введен для повышения пропускной способности и разгрузки процессора при выводе на принтер. Программе, работающей с данным портом, требовалось только задать блок данных в памяти, подлежащих выводу, и вывод по протоколу Centronics производился без участия процессора.

^ Физический и электрический интерфейс

Стандарт IEEE 1284 определяет физические характеристики приемников и передатчиков сигналов.

К передатчикам предъявляются следующие требования:

Уровни сигналов без нагрузки не должны выходить за пределы -0,5... +5,5 В.

Уровни сигналов при токе нагрузки 14 мА должны быть не ниже +2,4 В для высокого уровня (voh) и не выше +0,4 В для низкого уровня (vol) на постоянном токе.

Выходной импеданс ro, измеренный на разъеме, должен составлять 50(±)5 Ом на уровне voh-vol. Для обеспечения заданного импеданса в некоторых случаях используют последовательные резисторы в выходных цепях передатчика. Согласование импеданса передатчика и кабеля снижает уровень импульсных помех.

Скорость нарастания (спада) импульса должна находиться в пределах 0,05-0,4 В/нс.

^ Режимы передачи данных

Стандарт IEEE 1284 определяет пять режимов обмена, один из которых полностью соответствует традиционному стандартному программно-управляемому выводу по протоколу Centronics. Остальные режимы используются для расширения функциональных возможностей и повышения производительности интерфейса. Стандарт определяет способ согласования режима, по которому программное обеспечение может определить режим, доступный и хосту (в нашем случае это PC), и периферийному устройству.

Режимы нестандартных портов, реализующих протокол обмена Centronics аппаратно («Fast Centronics, «Parallel Port FIFO Mode»), могут и не являться режимами IEE1284, несмотря на наличие в них черт ЕРР и ЕСР.

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

Хост — компьютер, обладающий параллельным портом.

ПУ — периферийное устройство, подключаемое к этому порту (им может оказаться и другой компьютер). В обозначениях сигналов Ptr обозначает передающее периферийное устройство.

Прямой канал — канал вывода данных от хоста в ПУ.

Обратный канал канал ввода данных в хост из ПУ.
^ Полубайтный режим ввода — Nibble Mode

Режим полубайтного обмена является наиболее общим решением задачи двунаправленного обмена данными, поскольку может работать на всех стандартных (традиционных) портах. Все эти порты имеют 5 линий ввода состояния, используя которые периферийное устройство может посылать в PC байт тетрадами (nibble — полубайт, 4 бита) за два приема. Назначение сигналов порта приведено в табл 4.

Таблица 4.

Сигналы LPT-порта в полубайтном режиме ввода


Контакт

Сигнал SPP

I/O

Использование сигнала при приеме данных в Nibble Mode

14

AUTOFEED#

0

HostBusy — сигнал квитирования. Низкий уровень означает готов­ность к приему тетрады, высокий подтверждает прием тетрады

17

SELECTIN»

0

Высокий уровень указывает на обмен в режиме IEEE 1284 (в режиме SPP уровень низкий)

10

АСК#

'

PtrClk. Низкий уровень означает действительность тетрады, переход в высокий — ответ на сигнал HostBusy

11

BUSY

I

Прием бита данных 3, затем бита 7

12

РЕ

I

Прием бита данных 2, затем бита 6

13

SELECT

I

Прием бита данных 1, затем бита 5

15

ERRORS

I

Прием бита данных 0, затем бита 4


Прием байта данных в полубайтном режиме состоит из следующих фаз:

1. Хост сигнализирует о готовности приема данных установкой низкого уровня на линии HostBusy.

2. ПУ в ответ помещает тетраду на входные линии состояния.

3. ПУ сигнализирует о действительности тетрады установкой низкого уровня на линии PtrClk.

4. Хост устанавливает высокий уровень на линии HostBusy, указывая на заня­тость приемом и обработкой тетрады.

5. ПУ отвечает установкой высокого уровня на линии PtrCLk.

6. Шаги 1-5 повторяются для второй тетрады.

Полубайтный режим работает на всех портах со скоростью обмена не выше 50 Кбайт/с. Его применяют в тех случаях, когда прием данных от устройства производится в небольших объемах (например, для связи с принтерами).

Двунаправленный байтный режим Byte Mode

Данный режим обеспечивает прием данных с использованием двунаправленного порта, у которого выходной буфер данных может отключаться установкой бита CR.5=1. Как и в стандартном и в полубайтном режиме, данный режим является программно-управляемым — все сигналы квитирования анализируются и устанавливаются программным драйвером. Назначение сигналов порта приведено в табл. 5.

Таблица 5.

Сигналы LPT-порта в байтном режиме ввода/вывода

Контакт

Сигнал SPP

Имя в Byte Mode

I/O

Описание

1

STROBES

HostClk

0

Импульс (низкого уровня) подтверждает прием байта в конце каждого цикла

14

AUTOFEED#

HostBusy

0

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

17

SELECT-IN»

1284Active

0

Высокий уровень указывает на обмен в режиме IEEE 1284. (В режиме SPP уровень низкий)

16

INIT#

INIT#

0

Не используется, установлен высокий уровень

10

АСКй

Ptrtik



Устанавливается в низкий уровень для инди­кации действительности данных на линиях DATA[7:0]. В низкий уровень устанавливается в ответ на сигнал HostBusy

11

BUSY

PtrBusy

I

Состояние занятости прямого канала

12

РЕ

AckDataReq*

I

Устанавливается ПУ для указания на наличие обратного канала передачи*

13

SELECT

Xflag*

I

Флаг расширяемости*

15

ERRORS

DataAvau#*

I

Устанавливается ПУ для указания на наличие обратного канала передачи*

2-9

DATA[7:0]

DATA[7:0]

I/0

Двунаправленный (прямой и обратный) канал данных


Прием байта данных в байтном режиме состоит из следующих фаз:

1. Хост сигнализирует о готовности приема данных установкой низкого уровня на линии HostBusy.

2. ПУ в ответ помещает байт данных на линии DATA[7:0].

3. ПУ сигнализирует о действительности байта установкой низкого уровня на линии PtrClk.

4. Хост устанавливает высокий уровень на линии HostBusy, указывая на занятость приемом и обработкой байта.

5. ПУ отвечает установкой высокого уровня на линии PtrClk.

6. Хост подтверждает прием байта импульсом HostClk.

7. Шаги 1-6 повторяются для каждого следующего байта.

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

Режим ЕРР

Протокол ЕРР (Enhanced Parallel Port — улучшенный параллельный порт) предназначен для повышения производительности обмена по параллельному порту. ЕРР был реализован в чипсете Intel 386SL (микросхема 82360) и используется как дополнительный протокол параллельного порта.

Протокол ЕРР обеспечивает четыре типа циклов обмена:

Цикл записи данных.

Цикл чтения данных.

Цикл записи адреса.

Цикл чтения адреса.

Адресные циклы могут быть использованы для передачи адресной, канальной и управляющей информации. Циклы обмена данными явно отличаются от адресных циклов применяемыми стробирующими сигналами. Назначение сигналов порта ЕРР и их связь с сигналами SPP приведены в табл. 6.

Таблица 6.

Сигналы LPT-порта в режиме ввода/вывода ЕРР


Контакт

Сигнал SPP

Имя в ЕРР

I/O

Описание

1

STROBE»

WRITE»

0

Низкий уровень — признак цикла записи, высокий — чтения

14

AUTOFEEDff

DATASTB#

0

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

17

SELECTING

ADDRSTB#

0

Строб адреса. Низкий уровень устанавливается в адресных циклах

16

INIT#

RESETS

0

Сброс ПУ (низким уровнем)

Контакт

Сигнал SPP

Имя в ЕРР

I/O

Описание

10

АСК#

INTR#

I

Прерывание от ПУ

11

BUSY

WAIT»

I

Сигнал квитирования. Низкий уровень разрешает начало цикла (установку строба в низкий уровень), переход в высокий — разрешает завершение цикла (снятие строба)

2-9

D[8:0]

AD[8:0]

I/O

Двунаправленная шина адреса/данных

12

РЕ

AckDataReq*

I

Используется по усмотрению разработчика перифе­рии

13

SELECT

Xflag*

I

Используется по усмотрению разработчика перифе­рии

15

ERROR

DataAvaiW*

I

Используется по усмотрению разработчика перифе­рии


ЕРР-порт имеет расширенный набор регистров (табл. 7), который занимает в пространстве ввода/вывода 5-8 смежных байт.

Таблица 7.

Регистры ЕРР-порта


Имя регистра

Смещение

Режим

R/W

Описание

SPP Data Port

+0

SPP/EPP

W

Регистр данных стандартного порта

SPP Status Port

+1

SPP/EPP

R

Регистр состояния стандартного порта

SPP Control Port

+2

SPP/EPP

W

Регистр управления стандартного порта

EPP Address Port

+3

EPP

R/W

Регистр адреса ЕРР. Чтение или запись в него гене­рирует связанный цикл чтения или записи адреса ЕРР

EPP Data Port

+4

EPP

R/W

Регистр данных ЕРР. Чтение (запись) генерирует свя­занный цикл чтения (записи) данных ЕРР

Not Defined

+5...+7

EPP

N/A

В некоторых контроллерах могут использоваться для 16-32-битных операций ввода/вывода


В отличие от программно-управляемых режимов, описанных выше, внешние сигналы ЕРР-порта (как информационные, так и сигналы квитирования) для каждого цикла обмена формируются аппаратно по одной операции записи или чтения в регистр порта.

Главной отличительной чертой ЕРР является выполнение внешней передачи во время одного процессорного цикла ввода/вывода. Это позволяет достигать высоких скоростей обмена (0,5-2 Мбайт/с). Периферийное устройство, подключенное к параллельному порту ЕРР, может работать на уровне производительности устройства, подключаемого через слот ISA. Периферийное устройство может регулировать длительность всех фаз обмена с помощью всего лишь одного сигнала WAIT#. Протокол автоматически подстраивается и под длину кабеля — вносимые задержки только приведут к удлинению цикла.

«ЗАВИСАНИЕ» процессора на шинном цикле обмена препятствует механизм тайм-аутов PC, который принудительно завершает любой цикл обмена, длящийся более 15 мкс.

С программной точки зрения контроллер ЕРР-порта выглядит достаточно просто (см. табл.7). К трем регистрам стандартного порта, имеющим смещение 0, 1 и 2 относительно базового адреса порта, добавлены два регистра (ЕРР Address Port и ЕРР Data Port), чтение и запись в которые вызывает генерацию связанных внешних циклов.

Назначение регистров стандартного порта сохранено, что обеспечивает совместимость ЕРР-порта с периферийными устройствами и программным обеспечением, рассчитанными на применение программно-управляемого обмена. Поскольку сигналы квитирования адаптером вырабатываются аппаратно, при записи в регистр управления CR биты 0, 1 и 3, соответствующие сигналам STROBES, AUTOFEEDS и SELECTING, должны иметь нулевые значения. В противном случае программное вмешательство может нарушить последовательность квитирования. Некоторые адаптеры имеют специальные средства защиты (ЕРР Protect), при включении которых программная модификация этих бит блокируется.

^ Конфигурирование LPT-портов

Управление параллельным портом разделяется на два этапа — предварительное конфигурирование (Setup) аппаратных средств порта и текущее (оперативное) переключение режимов работы прикладным или системным ПО. Оперативное переключение возможно только в пределах режимов, разрешенных при конфигурировании. Таким образом обеспечивается возможность согласования аппаратуры и программного обеспечения и блокирования ложных переключении, вызванных некорректными действиями программы.

Способ и возможности конфигурирования LPT-портов зависят от его исполнения и местоположения. Порт, расположенный на плате расширения (обычно на мультикарте), устанавливаемой в слот ISA или ISA+VLB, обычно конфигурируется джамперами на самой плате. Порт, расположенный на системной плате, обычно конфигурируется через BIOS Setup.

Конфигурированию подлежат следующие параметры:

Базовый адрес, который может иметь значение 3BCh, 378h и 278h. При инициализации BIOS проверяет наличие портов по адресам именно в этом порядке и, соответственно, присваивает обнаруженным портам логические имена LPT1, LPT2, LPT3. Адрес 3BCh имеет адаптер порта, расположенный на плате MDA или HGC. Большинство портов по умолчанию конфигурируется на адрес 378h и может переключаться на 278h.

Используемая линия запроса прерывания: для LPT1 обычно используется IRQ7, для LPT2 — IRQ5.

^ Использование параллельных портов

Наиболее распространенным применением LPT-порта является, естественно, подключение принтера. Практически все принтеры могут работать с портом в режиме SPP, но применение расширенных режимов дает дополнительные преимущества:

Двунаправленный режим (Bi-Di) дает дополнительные возможности для сообщения состояния и параметров принтера. Скоростные режимы (Fast Centronics) существенно повышают производительность практически любого принтера (особенно лазерного), но могут потребовать более качественного кабеля.

Режим ЕСР потенциально самый эффективный, и он имеет системную поддержку во всех вариантах Windows. Из распространенных семейств ЕСР поддерживают принтеры HP DeskJet моделей BXX, LaserJet начиная с 4-го, современные модели фирмы Lexmark требуют применения кабеля по частотным свойствам соответствующего IEEE 1284.

Простейший вариант кабеля подключения принтера — 18-проводный кабель с неперевитыми проводами с успехом может использоваться для работы порта в режиме SPP.

Идеальным вариантом являются кабели, в которых все сигнальные линии перевиты с общими проводами и заключены в общий экран — то, что требует IEEE 1248. Такие кабели гарантированно работают на скоростях до 2 Мбайт/с, и допускается их длина до 10 метров.

Для связи двух компьютеров по параллельному интерфейсу применяются различные варианты кабелей, зависящие от режимов используемых портов. Самый простой способ (и самый медленный обмен) обеспечивает режим полубайтного обмена Nibble Mode, работающий на всех (исправных) портах. Для этого режима в кабеле достаточно иметь 10 сигнальных и один общий провод.

Подключение сканера к LPT-порту эффективно, только если порт обеспечивает хотя бы двунаправленный режим (Bi-Di), поскольку в основном здесь используется ввод. Но лучше использовать порт ECP, если этот режим поддерживается сканером.

Подключение внешних накопителей (lomega Zip Drive, CD-ROM), адаптеров ЛВС и других симметричных устройств ввода/вывода имеет общую специфику. Большинство таких устройств способно работать в любом из режимов порта, что обеспечивает их неограниченное применение на любых компьютерах.

^ Неисправности и тестирование параллельных портов

Тестирование параллельных портов целесообразно начинать с проверки их наличия в системе. Список адресов установленных портов обычно появляется в таблице заставки, выводимой BIOS на экран перед загрузкой ОС. Кроме этой таблицы, список можно посмотреть и с помощью тестовых программ или прямо в BIOS DATA AREA с помощью любого отладчика.

Если BIOS обнаруживает меньше портов, чем установлено физически, скорее всего, каким-либо двум портам присвоен один адрес. Программное тестирование порта без диагностической заглушки (Loop Back) не покажет ошибок, поскольку при этом читаются данные выходных регистров, а они у всех конфликтующих (по отдельности исправных портов) совпадут. Именно такое тестирование и производит BIOS при проверке на наличие портов. Разбираться с такой ситуацией имеет смысл последовательно устанавливая порты и наблюдая за адресами, появляющимися в списке.

Если физически установлен только один порт и его не обнаруживает BIOS, то либо он отключен при конфигурировании, либо вышел из строя скорее всего из-за нарушений правил подключения.

Тестирование портов с помощью диагностических программ позволяет проверить их выходные регистры, а при использовании специальных заглушек — и входные линии. Поскольку количество выходных линий порта (12) и входных (5) различно, то полная проверка порта с помощью пассивной заглушки принципиально невозможна. Разные программы тестирования требуют применения специально на них ориентированных заглушек (рис. 1),



Рис. 1. Схема заглушки для тестирования LPT-порта программой Checkit
Большинство неприятностей при работе с LPT-портами доставляют разъемы и кабели. Для проверки порта, кабеля и принтера можно воспользоваться специальными тестами из популярных диагностических программ (Checkit, PCCheck и т. п.), а можно вывести на принтер какой-либо символьный файл.

Если вывод файла с точки зрения DOS проходит (копирование файла на устройство с именем LPTn или PRN проходит быстро и успешно), а принтер (исправный) не напечатал ни одного символа — скорее всего, это обрыв (неконтакт в разъеме) цепи STROBES.

Если принтер по своему индикатору находится в состоянии On Line, a появляется сообщение о его неготовности (Not Ready Error), то причину следует искать в линии Busy.

Если принтер искажает информацию при печати, возможен обрыв (или замыкание) линий данных. В этом случае удобно воспользоваться файлом, содержащим последовательность кодов всех печатных символов (его можно создать с помощью простой программы, написанной даже на языке Basic, — ее текст приведен ниже).

10 OPEN "bincod.chr" FOR OUTPUT AS #1

20 FORJ=2T015

30 FOR 1=0 ТО 15

^ 40 PRINT#1, CHR$(16*J+I);

50 NEXT I 60 PRINT#1,

70 NEXTJ

80 CLOSE #1

90 END

Файл BINCOD.CHR, созданный данной программой, представляет собой таблицу всех печатных символов (управляющие коды пропущены), расположенных по 16 символов в строке. Если файл печатается с повтором некоторых символов или их групп, по периодичности повтора можно легко вычислить оборванный провод данных интерфейса. Этот же файл удобно использовать для проверки аппаратной руссификации принтера.

Если принтер, подключенный к порту, в стандартном режиме (SPP) печатает нормально, а при переходе на ЕСР начинаются сбои, следует проверить кабель — соответствует ли он требованиям IEEE 1284. Кабели с неперевитыми проводами нормально работают на скоростях 50-100 Кбайт/с, но при скорости 1-2 Мбайт/с, обеспечиваемой ЕСР, они могут не работать, особенно при длине более 2 метров.

Если при установке драйвера РпР-принтера появилось сообщение о необходимости применения «двунаправленного кабеля», проверьте наличие связи контакта 17 разъема DB-25 с контактом 36 разъема Centronics.

Аппаратные прерывания от LPT-порта используются далеко не всегда. Неисправности, связанные с цепью прерывания от порта, проявляются не часто. Однако по-настоящему многозадачные ОС (например, сервер NetWare) стараются работать с портом именно по прерываниям. Тестировать линию прерывания можно, только подключив к порту периферийное устройство или специальную заглушку.
^

Лекция 13. Программируемые таймеры и счетчики событий.


Довольно часто требуется устройство формирования временных интервалов для процессора и внешних устройств, подсчета внешних событий и ввода показаний в процессор, а также генерирования внешней синхронизации, которую может программировать процессор. Такое устройство называется программируемым интервальным таймером/счетчиком событий. Некоторыми областями применение такого устройства являются:

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

вывод точных временных сигналов с программируемыми периодами в устройство ввода-вывода (например, в аналого-цифровой преобразователь);

программируемая генерация скорости передачи в бодах;

измерение временной задержки между внешними событиями;

подсчет числа появлений событий во внешнем эксперименте и ввод показания в компьютер;



Рис. 9.25. Типичный интервальный таймер/счетчик событий

прерывание процессора после появления запрограммированного числа внешних событий.

Типичная организация интервального таймера/счетчика событий показана на рис. 9.25. Слева находятся четыре доступных компьютеру регистра: два верхних являются выходними портами, а два нижних - входными. Сам счетчик прямо процессору не доступен, но может инициализироваться из регистра начального счета и считывается посредством передачи его содержимого в выходной регистр счетчика. Счетчик запускается с начального значения и отсчитывает до 0. Вход CLK определяет скорость счета, сигнал GATE разрешает и запрещает вход CLK и, возможно, выполняет другие функции, а выход OUT-становится активным при достижении счетчиком 0 или, возможно, при подаче сиг-нала АТЕ. Выход OUT подключается к линии запроса прерывания в системной шине, поэтому прерывание возникает при достижении счетчиком 0; его же можно подключить к устройству ввода-вывода для инициирования необходимых действий.

Устройство вводит значение в регистр начального счета, передает его в счетчик и выполняет счет "назад" (т. е. вычитание) импульсами со входа CLK. Текущее содержимое счетчика в любой момент можно ввести в процессор, не нарушая работы счетчика, посредством передачи его в выходной регистр счетчика с последующим считыванием из этого регистра. При буферировании содержимого счетчика не требуется вводить его в процессор немедленно. Индикация нуля в счетчике обычно фиксируется на выходе OUT и в одном бите регистра состояния. Поэтому для обнаружения нуля допускается применять Программный ввод-вывод и ввод-вывод по прерываниям.

Регистр управления определяет режим работы и выполняет другие функции. Режим точно определяет, что происходит при достижении счетчиком 0 и (или) при подаче сигнала на вход GATE. Возможными действиями являются:

вход GATE применяется для разрешения и запрещения входа CLK;

вход GATE вызывает реинициализацию счетчика;

[ i. вход GATE прекращает счет и формирует высокий уровень на выходе OUT;

- при достижении 0 счетчик выдает сигнал OUT и останавливается;

при достижении 0 счетчик выдает сигнал OUT и автоматически реинициализируется из регистра начального счета.

Режимы могут также определяться комбинациями перечисленных возможностей. Рассмотрим, например, применение интервального таймера в операционной системе разделением времени. В этом случае на вход CLK подаются сигналы синхронизации, ) выход OUT подключается к линии запроса прерывания, возможно, немаскируемой прерывания. Вход GATE здесь не требуется. При включении системы в регистр начального счета загружается значение

начальный счет == частота синхронизации Х Т,

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

9.3.1 Программируемый интервальный таймер

На рис. 9.26 представлена схема интервального таймера/счетчика событий 8254 фирмы Intel. В нем имеются три одинаковые счетные схемы со своими входами CLK и GATE и выходом OUT. Каждая схема имеет регистр управления и состояния, регистр счетчика (CR) для приема начального счета, счетного элемента (СЕ) , который выполняет счет, но непосредственно процессору недоступен, и выходного регистра-защелки (OL) для фиксации содержимого СЕ, так что его может считать процессор. Полагается, что CR, СЕ и OL представляют собой пары 8-битных регистров. (Реальные схемы несколько отличаются от приведенных, но для программиста рисунок абсолютно точен.)

Обращения к регистрам производятся в соответствии с табл. 9.3.

^ Таблица 9.3

Обращения к регистрам таймера/счетчика 8254




Все остальные комбинации приводят к тому, что линии данных переводятся в высокоимпедансное состояние. Когда А1 = АО = 1, выполнение записи в регистр управления или выдачи приказа зависит от старшего бита выводимого байта. В последних трех комбинациях считывание OL или регистра состояния определяет предыдущий приказ.

Имеются два вида приказов. Приказ фиксации счетчика заставляет соответствующий OL зафиксировать содержимое СЕ счетчика, определяемого двумя старшими битами приказа. Приказ обратного считывания фиксирует комбинацию СЕ или "готовит" комбинацию регистров состояния для считывания. Подготовка регистра состояния означает



Рис. 9.26. Схема таймера/счетчика 8254

его считывание, когда в следующей операции считывания осуществляется ввод из счетчика. Состояния 00, 01 и 10 двух старших бит показывают приказ фиксации счетчика, а состояние 11 - приказ обратного считывания. В приказе фиксации биты 5 и 4 должны быть нулевыми, а остальные биты не используются. Приказ обратного считывания имеет следующий формат:



Если бит COUNT = 0, фиксируются СЕ всех счетчиков, биты CNT которых содержат 1. если, например, CNTO = CNT2 = 1 и CNT1 = 0, то СЕ в счетчиках 0 и 2 фиксируются, "»в счетчике 1 не фиксируется. Аналогично STAT = 0 вызывает подготовку регистров



Рис 9 27 Регистры управления и состояния счетчиков

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

Форматы регистров управления и состояния показаны на рис. 9.27. Если два старших бита равны 1, они задают приказ обратного считывания; в противном случае они опреде­ляют счетчик. Если указан счетчик и биты 5-4 содержат нули, то имеет место приказ фиксации, который направляется в регистр управления выбираемого старшими битами счетчика. Когда же комбинация в битах 5-4 отличается от 00, она указывает тип ввода из OL или вывода в CR. Комбинация 01 идентифицирует операции считывания/записи из (в) OL^/CR, комбинация 10 - из (в) OLix/CRv» и комбинация 11 - выполнение операций парами (первый байт из (в) OLi /CRi и второй из (в) OLn/CR^i) Запись одного байта в CR вызывает сброс другого байта Биты 1, 2 и 3 определяют режим, а бит 0 определяет формат счета.

Таймер/счетчик имеет следующие режимы работы (через N обозначен начальный счет)

Режим 0 (прерывания по концу счета) . Сигнал GATE = 1 разрешает счет, a GATE = О запрещает счет, причем GATE не влияет на выход OUT. Содержимое CR передается в СЕ по первому импульсу CLK после того, как процессор осуществил запись в CR, независимо от сигнала на входе GATE Импульс, который загружает СЕ, не учитывается при сче­те На выходе OUT формируется низкий уровень при записи в регистр управления, который сохраняется до достижения счетчиком 0. Режим 0 предназначен в основном для счета событий.

Режим 1 (аппаратно перезапускаемый одновибратор). После загрузки значения N в CR переход 0 -* 1 на входе GATE вызывает загрузку СЕ, переход 1 -»0 на выходе OUT и запускает счет. Когда счетчик достигает 0, на выходе OUT формируется высокий уровень; таким образом, результатом является отрицательный импульс на выходе OUT с продолжительностью N периодов синхронизации

Режим 2 (гчрч' v-и^й nil ерьиышй таймер) После загрузки значения N в CR следующий импульс синхронизации осуществляет передачу из CR в СЕ. На выходе OUT возникает переход 1 -^ 0. когда счетчик достигает 0 низкий уровень сохраняется в течение одною импульса CJ-K Згпсм на выходе OUT. появляется высокий уровень, производится повторная загрузка СЕ из CR, в результате на выходе 01Л появляется отрицательный импульс через N тактов синхронизации Сигнал GAU --- 1 разрешает счет, а GATi U запрещаег Переход 0 " 1 на входе GAJ 1 вызывает реинициализацию счета следующим импульсом синхронизации. Данный pt-л.л vi применяется для реализации периодического интервального таймера

Режим 3 (генератор прямоугольного сигнала). Аналогичен режиму 2, но на выходе От формируется низкий уровень при достижении половины начального счета; этот уровень сохраняется до достижения счетчиком 0. Как и прежде, сигнал GATE разрешает и запрещает счет, а его переход 0 -* 1 реинициализирует счет Этот режим применяется в генераторах, определяющих скорость передачи в бодах.

Режим 4 (программно-запускаемый строб) . Аналогичен режиму 0, но на выходе OUT в процессе счета действую высокий уровень, а при достижении счетчиком 0 появляется отрицательный импульс с продолжительностью в один такт синхронизации

Режим 5 (аппаратно-запускаемый строб с перезапуском) После загрузки CR переход 0 ^ 1 на входе GATF вызывает передачу из CR в СЕ следующим импульсом CLK. В процессе счета на выходе OUT действует высокий уровень, а при достижении счетчиком 0 формируется отрицательный импульс с продолжительностью в один период CLK Сигнал GATE может в любой момент времени реинициализировать счет.

Начальное значение счета 0 во всех режимах интерпретируется как 216 или Ю4 в зависимости от формата счета. Мы привели общие принципы работы микросхемы 8254, а подробное описание содержится в фирменных материалах.
^

Лекция 14. Универсальная последовательная шина USB.


Толковый словарь по вычислительным системам определяет понятие интерфейс (interface) как границу раздела двух систем, устройств или программ; элементы соединения и вспомогательные схемы управления, используемые для соединения устройств. Мы же поговорим о интерфейсах, позволяющих подключать к персональным (и не только) компьютерам разнообразные периферийные устройства и их контроллеры. По способу передачи информации интерфейсы подразделяются на параллельные и последовательные. В параллельном интерфейсе все биты передаваемого слова (обычно байта) выставляются и передаются по соответствующим параллельно идущим проводам одновременно. В PC традиционно используется параллельный интерфейс Centronics, реализуемый LPT-портами. В последовательном же интерфейсе биты передаются друг за другом, обычно по одной линии. СОМ порты PC обеспечивают последовательный интерфейс в соответствии со стандартом RS-232C. При рассмотрении интерфейсов важным параметром является пропускная способность.

В архитектуре современных компьютеров все большее значение приобретают внешние шины, служащие для подключения различных устройств. Сегодня это могут быть, например, внешние жесткие диски, CD-, DVD-устройства, сканеры, принтеры, цифровые камеры и прочее.

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

^ 2.Шина USB.Общая характеристика.

USB (Universal Serial Bus — универсальная последовательная шина) является промышленным стандартом расширения архитектуры PC, ориентированным на интеграцию с телефонией и устройствами бытовой электроники. Версия 1.0 была опубликована в январе 1996 года. Архитектура USB определяется следующими критериями:

  • Легко реализуемое расширение периферии PC.

  • Дешевое решение, поддерживающее скорость передачи до 12 Mбит/с.

  • Полная поддержка в реальном времени передачи аудио и (сжатых) видеоданных.

  • Гибкость протокола смешанной передачи изохронных данных и асинхронных сообщений.

  • Интеграция с выпускаемыми устройствами.

  • Доступность в PC всех конфигураций и размеров.

  • Обеспечение стандартного интерфейса, способного быстро завоевать рынок.

  • Создание новых классов устройств, расширяющих PC.

  • С точки зрения конечного пользователя, привлекательны следующие черты USB:

  • Простота кабельной системы и подключений.

  • Скрытие подробностей электрического подключения от конечного пользователя.

  • Самоидентифицирующиеся ПУ, автоматическая связь устройств с драйверами и конфигурирование.

  • Возможность динамического подключения и конфигурирования ПУ.

С середины 1996 года выпускаются PC со встроенным контроллером USB, реализуемым чипсетом. Уже появились модемы, клавиатуры, сканеры, динамики и другие устройства ввода/вывода с поддержкой USB, а также мониторов с USB-адаптерами - они играют роль концентраторов для подключения других устройств.

^ Структура USB

USB обеспечивает одновременный обмен данными между хост-компьютером и множеством периферийных устройств (ПУ). Распределение пропускной способности шины между ПУ планируется хостом и реализуется им с помощью посылки маркеров. Шина позволяет подключать, конфигурировать, использовать и отключать устройства во время работы хоста и самих устройств.

Ниже приводится авторский вариант перевода терминов из спецификации "Universal Serial Bus Specification", опубликованной Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom. Более подробную и оперативную информацию можно найти по адресу:

Устройства (Device) USB могут являться хабами, функциями или их комбинацией. Хаб (Hub) обеспечивает дополнительные точки подключения устройств к шине. Функции (Function) USB предоставляют системе дополнительные возможности, например подключение к ISDN, цифровой джойстик, акустические колонки с цифровым интерфейсом и т. п. Устройство USB должно иметь интерфейс USB, обеспечивающий полную поддержку протокола USB, выполнение стандартных операций (конфигурирование и сброс) и предоставление информации, описывающей устройство. Многие устройства, подключаемые к USB, имеют в своем составе и хаб, и функции. Работой всей системы USB управляет хост-контроллер (Host Controller), являющийся программно-аппаратной подсистемой хост-компьютера.

Физическое соединение устройств осуществляется по топологии многоярусной звезды. Центром каждой звезды является хаб, каждый кабельный сегмент соединяет две точки - хаб с другим хабом или с функцией. В системе имеется один (и только один) хост-контроллер, расположенный в вершине пирамиды устройств и хабов. Хост-контроллер интегрируется с корневым хабом (Root Hub), обеспечивающим одну или несколько точек подключения - портов. Контроллер USB, входящий в состав чипсетов, обычно имеет встроенный двухпортовый хаб. Логически устройство, подключенное к любому хабу USB и сконфигурированное (см. ниже), может рассматриваться как непосредственно подключенное к хост-контроллеру.

Функции представляют собой устройства, способные передавать или принимать данные или управляющую информацию по шине. Типично функции представляют собой отдельные ПУ с кабелем, подключаемым к порту хаба. Физически в одном корпусе может быть несколько функций со встроенным хабом, обеспечивающим их подключение к одному порту. Эти комбинированные устройства для хоста являются хабами с постоянно подключенными устройствами-функциями.

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

Примерами функций являются:

  • Указатели - мышь, планшет, световое перо.

  • Устройства ввода - клавиатура или сканер.

  • Устройство вывода - принтер, звуковые колонки (цифровые).

  • Телефонный адаптер ISDN.

Хаб - ключевой элемент системы РпР в архитектуре USB. Хаб является кабельным концентратором. Точки подключения называются портами хаба. Каждый хаб преобразует одну точку подключения в их множество. Архитектура допускает соединение нескольких хабов.

У каждого хаба имеется один восходящий порт (Upstream Port), предназначенный для подключения к хосту или хабу верхнего уровня. Остальные порты являются нисходящими (Downstream Ports), предназначенными для подключения функций или хабов нижнего уровня. Хаб может распознать подключение устройств к портам или отключение от них и управлять подачей питания на их сегменты. Каждый из портов может быть разрешен или запрещен и сконфигурирован на полную или ограниченную скорость обмена. Хаб обеспечивает изоляцию сегментов с низкой скоростью от высокоскоростных.

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



Система USB разделяется на три уровня с определенными правилами взаимодействия. Устройство USB содержит интерфейсную часть, часть устройства и функциональную часть. Хост тоже делится на три части - интерфейсную, системную и ПО устройства. Каждая часть отвечает только за определенный круг задач, логическое и реальное взаимодействие между ними иллюстрирует рис. 7.1.

В рассматриваемую структуру входят следующие элементы:

  • Физическое устройство USB - устройство на шине, выполняющее функции, интересующие конечного пользователя.

  • Client SW - ПО, соответствующее конкретному устройству, исполняемое на хост-компьютере. Может являться составной частью ОС или специальным продуктом.

  • USB System SW - системная поддержка USB, независимая от конкретных устройств и клиентского ПО.

  • USB Host Controller - аппаратные и программные средства для подключения устройств USB к хост-компьютеру.

^ 3.Физический интерфейс

Стандарт USB определяет электрические и механические спецификации шины. Информационные сигналы и питающее напряжение 5 В передаются по четырехпроводному кабелю. Используется дифференциальный способ передачи сигналов D+ и D- по двум проводам. Уровни сигналов передатчиков в статическом режиме должны быть ниже 0,3 В (низкий уровень) или выше 2,8 В (высокий уровень). Приемники выдерживают входное напряжение в пределах - 0,5...+3,8 В. Передатчики должны уметь переходить в высокоимпедансное состояние для двунаправленной полудуплексной передачи по одной паре проводов.

Передача по двум проводам в USB не ограничивается дифференциальными сигналами. Кроме дифференциального приемника каждое устройство имеет линейные приемники сигналов D+ и D-, а передатчики этих линий управляются индивидуально. Это позволяет различать более двух состояний линии, используемых для организации аппаратного интерфейса. Состояния Diff0 и Diff1 определяются по разности потенциалов на линиях D+ и D- более 200 мВ при условии, что на одной из них потенциал выше порога срабатывания VSE. Состояние, при котором на обоих входах D+ и D- присутствует низкий уровень, называется линейным нулем (SEO - Single-Ended Zero). Интерфейс определяет следующие состояния:

  • Data J State и Data К State - состояния передаваемого бита (или просто J и К), определяются через состояния Diff0 и Diff1.

  • Idle State - пауза на шине.

  • Resume State - сигнал "пробуждения" для вывода устройства из "спящего" режима.

  • Start of Packet (SOP) - начало пакета (переход из Idle State в К).

  • End of Packet (EOP) - конец пакета.

  • Disconnect - устройство отключено от порта.

  • Connect - устройство подключено к порту.

  • Reset - сброс устройства.

Состояния определяются сочетаниями дифференциальных и линейных сигналов; для полной и низкой скоростей состояния DiffO и Diff1 имеют противоположное назначение.
В декодировании состояний Disconnect, Connect и Reset учитывается время нахождения линий (более 2,5 мс) в определенных состояниях.

Шина имеет два режима передачи. Полная скорость передачи сигналов USB составляет 12 Мбит/с, низкая - 1,5 Мбит/с. Для полной скорости используется экранированная витая пара с импедансом 90 Ом и длиной сегмента до 5 м, для низкой - невитой неэкранированньгй кабель до 3 м. Низкоскоростные кабели и устройства дешевле высокоскоростных. Одна и та же система может одновременно использовать оба режима; переключение для устройств осуществляется прозрачно.

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

на линиях D+ и D-, смещаемых нагрузочными резисторами R2 приемопередатчиков (см. рис. 7.2 и 7.3)

Сигналы синхронизации кодируются вместе с данными по методу NRZI (Non Return to Zero Invert), его работу иллюстрирует рис. 7.4. Каждому пакету предшествует поле синхронизации SYNC, позволяющее приемнику настроиться на частоту передатчика. Кабель также имеет линии VBus и GND для передачи питающего напряжения 5 В к устройствам.

Сечение проводников выбирается в соответствии с длиной сегмента для обеспечения гарантированного уровня сигнала и питающего напряжения. Стандарт определяет два типа разъемов (см. табл. 7.1 и рис. 7.5).

Разъемы типа "А" применяются для подключения к хабам (Upstream Connector). Вилки устанавливаются на кабелях, не отсоединяемых от устройств (например, клавиатура, мышь и т. п.). Гнезда устанавливаются на нисходящих портах (Downstream Port) хабов. Разъемы типа "В" (Downstream Connector) устанавливаются на устройствах, от которых соединительный кабель может отсоединяться (принтеры и сканеры). Ответная часть (вилка) устанавливается на соединительном кабеле, противоположный конец которого имеет вилку типа "А".

Разъемы типов "А" и "В" различаются механически (рис. 7.5), что исключает недопустимые петлевые соединения портов хабов. Четырехконтактные разъемы имеют ключи, исключающие неправильное присоединение. Конструкция разъемов обеспечивает позднее соединение и раннее отсоединение сигнальных цепей по сравнению с питающими. Для распознавания разъема USB на корпусе устройства ставится стандартное символическое обозначение.

Рис. 7.5. Гнезда USB: а - типа "А", б - типа "В", в - символическое обозначение

Питание устройств USB возможно от кабеля (Bus-Powered Devices) или от собственного блока питания (Self-Powered Devices). Хост обеспечивает питанием непосредственно подключенные к нему ПУ. Каждый хаб, в свою очередь, обеспечивает питание устройств, подключенных к его нисходящим портам. При некоторых ограничениях топологии допускается применение хабов, питающихся от шины. На рис. 7.6 приведен пример схемы соединения устройств USB.

Здесь клавиатура, перо и мышь могут питаться от шины.

USB поддерживает как однонаправленные, так и двунаправленные режимы связи. Передача данных производится между ПО хоста и конечной точкой устройства. Устройство может иметь несколько конечных точек, связь с каждой из них (канал) устанавливается независимо.

Архитектура USB допускает четыре базовых типа передачи данных:

  • Управляющие посылки (Control Transfers), используемые для конфигурирования во время подключения и в процессе работы для управления устройствами. Протокол обеспечивает гарантированную доставку данных. Длина поля данных управляющей посылки не превышает 64 байт на полной скорости и 8 байт на низкой.

  • Сплошные передачи (Bulk Data Transfers) сравнительно больших пакетов без жестких требований ко времени доставки. Передачи занимают всю свободную полосу пропускания шины. Пакеты имеют поле данных размером 8, 16, 32 или 64 байт. Приоритет этих передач самый низкий, они могут приостанавливаться при большой загрузке шины. Допускаются только на полной скорости передачи.

  • Прерывания (Interrupt) - короткие (до 64 байт на полной скорости, до 8 байт на низкой) передачи типа вводимых символов или координат. Прерывания имеют спонтанный характер и должны обслуживаться не медленнее, чем того требует устройство. Предел времени обслуживания устанавливается в диапазоне 1-255 мс для полной скорости и 10-255 мс - для низкой.

  • Изохронные передачи (Isochronous Transfers) - непрерывные передачи в реальном времени, занимающие предварительно согласованную часть пропускной способности шины и имеющие заданную задержку доставки. В случае обнаружения ошибки изохронные данные передаются без повтора - недействительные пакеты игнорируются. Пример - цифровая передача голоса. Пропускная способность определяется требованиями к качеству передачи, а задержка доставки может быть критичной, например, при реализации телеконференций.

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

Архитектура USВ предусматривает внутреннюю буферизацию всех устройств, причем чем большей полосы пропускания требует устройство, тем больше должен быть его буфер. USB должна обеспечивать обмен с такой скоростью, чтобы задержка данных в устройстве, вызванная буферизацией, не превышала нескольких миллисекунд.

Изохронные передачи классифицируются по способу синхронизации конечных точек - источников или получателей данных - с системой: различают асинхронный, синхронный и адаптивный классы устройств, каждому из которых соответствует свой тип канала USB.

Протокол

Все обмены (транзакции) по USB состоят из трех пакетов. Каждая транзакция планируется и начинается по инициативе контроллера, который посылает пакет-аркер (Token Packet). Он описывает тип и направление передачи, адрес ус-тройства USB и номер конечной точки. В каждой транзакции возможен обмен только между адресуемым устройством (его конечной точкой) и хостом. Адресуемое маркером устройство распознает свой адрес и готовится к обмену. Источник данных (определенный маркером) передает пакет данных (или уведомление об отсутствии данных, предназначенных для передачи). После успешного приема пакета приемник данных посылает пакет подтверждения (Handshake Packet).

Планирование транзакций обеспечивает управление поточными каналами. На аппаратном уровне использование отказа от транзакции (NAck) при недопустимой интенсивности передачи предохраняет буферы от переполнения сверху и снизу. Маркеры отвергнутых транзакций повторно передаются в свободное для шины время. Управление потоками позволяет гибко планировать обслуживание одновременных разнородных потоков данных.

Устойчивость к ошибкам обеспечивают следующие свойства USB:

  • Высокое качество сигналов, достигаемое благодаря дифференциальным приемникам/передатчикам и экранированным кабелям.

  • Защита полей управления и данных CRC-кодами.

  • Обнаружение подключения и отключения устройств и конфигурирование ресурсов на системном уровне.

  • Самовосстановление протокола с тайм-аутом при потере пакетов.

  • Управление потоком для обеспечения изохронности и управления аппаратными буферами.

  • Независимость функций от неудачных обменов с другими функциями.

Для обнаружения ошибок передачи каждый пакет имеет контрольные поля CRC-кодов, позволяющие обнаруживать все одиночные и двойные битовые ошибки. Аппаратные средства обнаруживают ошибки передачи, а контроллер автоматически производит трехкратную попытку передачи. Если повторы безуспешны, сообщение об ошибке передается клиентскому ПО.

^ Устройства USB - функции и хабы

Возможности шины USB позволяют использовать ее для подключения разнообразных устройств. Не касаясь "полезных" свойств ПУ, остановимся на их интерфейсной части, связанной с шиной USB. Все устройства должны поддерживать набор общих операций, перечисленных ниже. Динамическое подключение и отключение. Эти события отслеживаются хабом, который сообщает о них хост-контроллеру и выполняет сброс подключенного устройства. Устройство после сигнала сброса должно отзываться на нулевой адрес, при этом оно не сконфигурировано и не приостановлено. После назначения адреса, за которое отвечает хост-контроллер, устройство должно отзываться только на свой уникальный адрес.

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

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

Управление энергопотреблением является весьма развитой функцией USB. Для устройств, питающихся от шины, мощность ограничена. Любое устройство при подключении не должно потреблять от шины ток, превышающий 100 мА. Рабочий ток (не более 500 мА) заявляется в конфигурации, и если хаб не сможет обеспечить устройству заявленный ток, оно не конфигурируется и, следовательно, не может быть использовано.

Устройство USB должно поддерживать приостановку (Suspended Mode), в котором его потребляемый ток не превышает 500 мкА. Устройство должно автоматически приостанавливаться при прекращении активности шины.

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

Хаб в USB выполняет коммутацию сигналов и выдачу питающего напряжения, а также отслеживает состояние подключенных к нему устройств, уведомляя хост об изменениях. Хаб состоит из двух частей - контроллера (Hub Controller) и повторителя (Hub Repeater). Повтори Повторитель представляет собой управляемый ключ, соединяющий выходной порт со входным. Он имеет средства поддержки сброса и приостановки передачи сигналов. Контроллер содержит регистры для взаимодействия с хостом. Доступ к регистрам осуществляется по специфическим командам обращения к хабу. Команды позволяют конфигурировать хаб, управлять нисходящими портами и наблюдать их состояние.

Нисходящие (Downstream) порты хабов могут находиться в следующих состояниях:

  • Powered (питание отключено) - на порт не подается питание (возможно только для хабов, коммутирующих питание). Выходные буферы переводятся в высокоимпедансное состояние, входные сигналы игнорируются.

  • Disconnected (отсоединен) - порт не передает сигналы ни в одном направлении, но способен обнаружить подключение устройства (по отсутствию состояния SEO в течение 2,5 мкс). Тогда порт переходит в состояние Disabled, а по уровням входных сигналов {DiffO или Diff1 в состоянии Idle) он определяет скорость подключенного устройства.

  • Disabled (запрещен) - порт передает только сигнал сброса (по команде от контроллера), сигналы от порта (кроме обнаружения отключения) не воспринимаются. По обнаружении отключения (2,5 мкс состояния SEO) порт переходит в состояние Disconnect, а если отключение обнаружено "спящим" хабом, контроллеру будет послан сигнал Resume.

  • Enabled (разрешен) - порт передает сигналы в обоих направлениях. По команде контроллера или по обнаружении ошибки кадра порт переходит в состояние Disabled, а по обнаружении отключения - в состояние Disconnect.

  • Suspended (приостановлен) - порт передает сигнал перевода в состояние останова ("спящий" режим). Если хаб находится в активном состоянии, сигналы через порт не пропускаются ни в одном направлении. Однако "спящий" хаб воспринимает сигналы смены состояния незапрещенных портов, подавая "пробуждающие" сигналы от активизировавшегося устройства даже через цепочку "спящих" хабов. Состояние каждого порта идентифицируется контроллером хаба с помощью отдельных регистров. Имеется общий регистр, биты которого отражают факт изменения состояния каждого порта (фиксируемый во время EOF). Это позволяет хост-контроллеру быстро узнать состояние хаба, а в случае обнаружения изменений специальными транзакциями уточнить состояние.

Хост-контроллер

Хост-компьютер общается с устройствами через контроллер. Хост имеет следующие обязанности:

  • обнаружение подключения и отсоединения устройств USB;

  • манипулирование потоком управления между устройствами и хостом;

  • управление потоками данных;

  • сбор статистики;

  • обеспечение энергосбережения подключенными ПУ.

  • Системное ПО контроллера управляет взаимодействием между устройствами и их ПО, функционирующим на хост-компьютере, для согласования:

  • нумерации и конфигурации устройств;

  • изохронных передач данных;

  • асинхронных передач данных;

  • управления энергопотреблением;

  • информации об управлении устройствами и шиной.


^

Лекция 15. Протокол работы USB-шины.


Общие сведения об USB-шине

У любого компьютера, выпущенного в последнее время, вы обязательно обнаружите либо на лицевой панели, либо на задней стенке разъем USB. Шина USB (Universal Serial Bus) первоначально была разработана для обеспечения легкого подключения компьютера к телефонным линиям и расширения числа портов. Первая версия стандарта (версия 1.0) была выпущена в январе 1996 года. Сейчас в основном используется версия 1.1. Стандарт USB 1.1 вполне удовлетворяет всем требованиям при работе с низко-скоростными устройствами, вроде мышей и клавиатур, и даже с устройствами, работающими на средних скоростях, вроде Ethernet-адаптеров (10 Mbit/sec) или устройств бытовой электроники (таких, как цифровые камеры и MP3-плейеры), которые пересылают только несколько мегабайт данных. Но если на периферийное устройство или в обратном направлении необходимо пересылать большие объемы информации (примеры - жесткие диски, видеокамеры высокого разрешения, или одновременное использование нескольких сетевых адаптеров стандарта 100BaseT), то скорости, обеспечиваемые USB 1.1, уже недостаточны. Поэтому в 1999 году была разработана версия 2.0 стандарта USB, обеспечивающая более высокие скорости обмена данными.

Современные компьютеры обычно имеют контроллер USB-шины, установленный на материнской плате. Для USB версии 1.1 было разработано два типа таких контроллеров, отличающихся интерфейсом взаимодействия с USB-устройствами: OHCI (Open Host Controller Interface) фирмы Compaq и UHCI (Universal Host Controller Interface) фирмы Intel. Оба типа имеют примерно одинаковые возможности и USB-устройства работают с обоими типами контроллеров. Аппаратная часть UHCI-контроллеров проще, а значит, они дешевле, но зато требуют более сложных драйверов, что увеличивает нагрузку на процессор. Версия 2.0 стандарта USB использует улучшенный вариант интерфейса - EHCI (Enhanced Host Controller Interface).

Стандарт USB предусматривает строгую иерархию устройств, управляемых основным хостом, и использование протокола master/slave для управления подключаемыми устройствами. На один USB-разъем могут быть последовательно подключены до 127 устройств. Но непосредственно подключать одно устройство к другому нельзя, поскольку питание таких устройств осуществляется по той же шине. Поэтому для подключения дополнительных устройств используются специальные хабы, обеспечивающие снабжение этих устройств необходимой энергией. В результате USB-устройства образуют как бы дерево, каждая не конечная вершина которого является хабом. Поскольку любой обмен данными инициируется только хостом, и периферийные устройства не могут начать взаимодействие, исключена возможность коллизий, вследствие чего снижается стоимость устройств. Правда, такое решение приводит к некоторому снижению производительности. В результате USB-устройства версии 1.1 могут работать в двух режимах: так называемом low speed, обеспечивающем скорость передачи данных до 1.5 Mбит/сек, и full speed, в котором скорость передачи данных может составлять 12 Мбит/сек. Это только теоретический предел, а реально производительность шины даже в идеальных условиях не превышает 8,5 Мбит/сек., а в среднем составляет около 2 Мбит/сек.

Интерфейс EHCI, используемый в устройствах версии 2, обеспечивает режим работы high speed, для которого скорость передачи данных может достигать 480 Мбит/сек. Для того чтобы USB-устройства могли обмениваться данными с такой скоростью, и хост-контроллер и само устройство должны соответствовать стандарту USB 2.0 и обеспечивать работу с интерфейсом EHCI. Однако хост-контроллеры 2.0 успешно работают с устройствами версии 1.1. И наоборот, вполне можно подключать устройства USB 2.0 к хосту (и к хабам) версии USB 1.1 и они будут прекрасно работать, но со скоростью не более 12, а не 480 Мбит/сек.

В настоящее время разработан широкий спектр устройств, подключаемых по шине USB. Это клавиатуры, мыши, джойстики, игровые приставки, сканеры, модемы, принтеры, цифровые камеры, устройства хранения информации – дисководы гибких и жестких дисков, дисководы Zip, LS120 и CD-ROM. Очень перспективный и интересный класс таких устройств образуют накопители на основе Flash-памяти [1].

^ Физическая среда

Шина USB, обладает полосой пропускания 1,5 или 12 Мбит/с.

USB-кабель состоит из 4 проводников:

- два провода формируют витую пару, применяемую в дифференциальных передачах данных;

- остальные два представляют собой линии питания и заземления устройств, не имеющих собственного питания 5 В постоянного напряжения.

USB стандарт предполагает два вида кабеля и два варианта разъемов. High-speed (высокоскоростные) кабели, для связи 12Mb в секунду, лучше экранированы, чем их менее дорогие 1.5 Mb заменители. Каждый кабель имеет "А" разъем на одной стороне и "B" на другой. Рисунок 1 показывает как "А" разъемы подсоединяются к исходящему, а "В" к нисходящему. Таким образом два типа физически различны и невозможно подключить их неправильно.


Рис 1. USB топологоия "подключение звездой"
USB шина позволяет подключать до 127 устройств. Использование такого количества устройств возможно при многоуровневом каскадировании. Наглядно это объясняет следующий рисунок:



Это первая архитектурная особенность шины USB: ее логическая топология - многоуровневая звезда.



Самым верхним уровнем является корневой концентратор, который обычно совмещается с USB контроллером. Если функции контроллера понятны, то концентратор - устройство для периферийных интерфейсов не привычное. В данном случае его функция такая же, что и концентраторов сетей передачи данных - добавление новых портов для подключения большего числа устройств. Ничего большего, чем просто разветвитель.

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

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

Физическая топология шины - звезда



Это объясняется тем, что каждый концентратор обеспечивает прозрачно для хоста соединение с устройством.

Отношения клиентского программного обеспечения и USB устройств: в отличие от привычных старых интерфейсов, где взаимодействие можно было (и нужно) осуществлять обращаясь к устройству по конкретным физическим адресам памяти и портам ввода вывода, USB предоставляет для взаимодействия программный интерфейс и только его, позволяя клиентскому ПО существовать в отрыве от конкретного подключенного к шине устройства и его конфигурации. Для клиентской программы USB - это лишь набор функций.



Хост, как уже было сказано ранее, программно-аппаратный комплекс.

В обязанности хоста входит:

  • Слежение за подключением и отключением устройств

  • Организация управляющих потоков между USB-устройством и хостом.

  • Организация потоков данных между USB-устройством и хостом

  • Контроль состояния устроств и ведение статистики активности

  • Снабжение подключенных устройств электропитанием

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

Программные функции (перечисление устройств и их конфигурирование, управление энергопотреблением, процессами передачи, устройствами на шине и самой шиной) возложены на операционную систему. Первой популярной операционной системой, в которой поддержка USB реализована была в полном объеме стала Windows 98 Second Edition. Некоторые устройства могут быть работоспособными и под более ранними версиями (98 без SE, и изредка 95), но далеко не все и не всегда.

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



Хаб должен следить за подключением и отключением устройств, уведомляя хост об изменениях, управлять питанием портов. В концентраторе стандарта USB 2.0 можно выделить 3 функциональных блока: контроллер, повторитель, транслятор транзакций. Контроллер отвечает за соединения с хостом. Понятие повторитель в USB несколько отличается от принятого в сетях передачи данных. Его обязанность - соединять входной и какой-то нужный из выходных портов. Транслятор транзакций появился лишь в USB 2.0 и нужен, как всегда, из соображений совместимости с предыдущими версиями. Вкратце его суть в том, что бы обеспечивать максимальную скорость соединения с хостом. Подключенное к высокоскоростному (USB 2.0) порту старое медленное (USB 1.1) устройство съедало бы значительную часть времени, а следовательно и полезной пропускной способности шины, ведя обмен с хостом на низкой скорости (почему так происходит мы выясним позже при рассмотрении механизма обмена данными хост-устройство). Как метод борьбы транслятор транзакций буферизирует поступающий с медленного порта кадр, а затем на максимальной скорости передает его хосту, или же буферизирует получаемый на максимальной скорости кадр от хоста, передавая его затем устройству на меньшей, приемлемой для него скорости. Помимо разветвления и трансляции транзакций хаб должен осуществлять конфигурирование портов и слежение за корректным функционированием подключенных к ним устройств. Нужно сказать также, что при использовании старых и новых концентраторов вместе возможно создание неоптимальных с точки зрения производительности конфигураций. Для того что бы избежать создания узких мест в своей цепи, подключайте низкоскоростные устройства к низкоскоростным хабам, которые в свою очередь делайте последними уровнями ветвления и не подключайте их в середину высокоскоростной цепочки.

^ Описание протоколов используемых при передаче данных

Структура USB пакета

В отличие от аналогичных последовательных интерфейсов, где формат посылаемых данных не имеет четко организованной структуры, для USB шины разграничены различные слои протоколов.

Каждая USB транзакция состоит из следующих частей:

  • Признак пакета (Заголовок определяющий что далее будет следовать)

  • Пакет данных (Опционально)

  • Пакет статуса транзакции (Используется для подтверждения нормального завершения транзакции и обеспечения коррекции ошибок при передаче)

Мастером на USB шине является хост. Он и является инициатором всех транзакций. Первым передаваемым пакетом является Признак (Token Packet). Он генерируется хостом для определения что будет следовать далее, какая это будет транзакция: чтение или запись, к какому устройству и конечной точке будет обращение. Следующим пакетом, как обычно, следует пакет данных (Data Packet). И в завершении транзакции следует пакет статуса (Status Packet), который либо подтверждает успешное принятие данных, либо указывает что конечная точка приостановлена (STALL) или не готова принимать данные.

^ Поля USB пакета

Данные по USB шине всегда передаются младшими битами вперед. USB пакет состоит из следующих полей:

  • Поле синхронизации (Sync Field)

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

  • ^ Поле идентификатора пакета (PID Field)

Идентификатор пакета следует непосредственно после поля синхронизации в каждом передаваемом USB пакете. PID состоит из четырехбитного типа пакета, следующего за четырехбитным проверочным полем как показано на рисунке 4.

(LSB)

 

 

 

 

 

 

(MSB)

PID0

PID1

PID2

PID3

PID0

PID1

PID2

PID3
  1   2   3   4   5   6   7   8   9   ...   19



Скачать файл (1388 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru