Meloci.ru

По какой шине передается адрес порта

ЧТО ТАКОЕ ШИНА ДАННЫХ? ДЛЯ ЧЕГО ОНА ПРЕДНАЗНАЧЕНА?

Шина данныхэто основная шина, ради которой и создается вся система. Количество ее разрядов (линий связи) определяет скорость и эффективность информационного обмена, а также максимально возможное количество команд.Шина данных всегда двунаправленная, так как предполагает передачу информации в обоих направлениях. Наиболее часто встречающийся тип выходного каскада для линий этой шины — выход с тремя состояниями.Обычно шина данных имеет 8, 16, 32 или 64 разряда. Понятно, что за один цикл обмена по 64-разрядной шине может передаваться 8 байт информации, а по 8-разрядной — только один байт. Разрядность шины данных определяет и разрядность всей магистрали. Например, когда говорят о 32-разрядной системной магистрали, подразумевается, что она имеет 32-разрядную шину данных.

Шина адресавторая по важности шина, которая определяет максимально возможную сложность микропроцессорной системы, то есть допустимый объем памяти и, следовательно, максимально возможный размер программы и максимально возможный объем запоминаемых данных.Количество адресов, обеспечиваемых шиной адреса, определяется как 2* N , где N — количество разрядов. Например, 16-разрядная шина адреса обеспечивает 65 536 адресов. Разрядность шины адреса обычно кратна 4 и может достигать 32 и даже 64.Шина адреса может быть однонаправленной (когда магистралью всегда управляет только процессор) или двунаправленной (когда процессор может временно передавать управление магистралью другому устройству, например контроллеру ПДП). Наиболее часто используются типы выходных каскадов с тремя состояниями или обычные ТТЛ (с двумя состояниями).

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

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

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

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

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

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

* Строб записи (вывода), который определяет момент времени, когда

устройство-исполнитель может принимать данные, выставленный

процессором на шину данных;

* Строб чтения (ввода), который определяет момент времени, когда

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

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

  • * При синхронном обмене процессор заканчивает обмен данными самостоятельно, через раз и навсегда установленный временной интервал выдержки (tВЫД), то есть без учета интересов устройства-исполнителя;
  • * При асинхронном обмене процессор заканчивает обмен только тогда,

когда устройство-исполнитель подтверждает выполнение операции специальным сигналом (так называемый режим handshake-рукопожатие).

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

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

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

Шина USB

Спецификация USB была разработана консорциумом компаний, включая Intel и Microsoft. Целью нового стандарта было обеспечение организации недорогой среднескоростной шины в таких областях применения, как передача цифровых изображений, компьютерная телефония и мультимедийные игры. Текущими версиями спецификации USB является версии 2.0 (во вторую заложены более высокие скоростные характеристики).

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

Устройства USB могут быть подключены 5-метровым кабелем (а практически – и более длинным). Использование USB-хаба (hub – концентратор) позволяет увеличить дальность размещения устройств от хост-контроллера, а так же количество устройств, подключаемых к одной шине USB. Последовательно можно подключить до пяти хабов, обеспечив длину соединения 30 метров. К хост-контроллеру можно подключить до 127 устройств, шинный адрес которых устанавливается динамически при подключении устройств.

На рисунке 1 приведен пример конфигурации сети USB-устройств:

Рис. 1 Сеть USB-устройств

Работа программиста, создающего драйвер внешнего (не находящегося на материнской плате) USB устройства сводится к тому, чтобы воспользоваться программным интерфейсом системных драйверов шины USB, общение с которым происходит при помощи пакетов, называемых URB (USB Request Block) пакетами. Работа с регистрами USB контроллеров на материнской плате теперь стала уделом узкого круга специалистов – разработчиков материнских плат и операционных систем. Всем остальным разработчикам USB-устройств в операционной системе Windows предлагается достаточно развитый программный интерфейс WDM-драйверов, которые берут на себя все аппаратно-ориентированные операции.

Читать еще:  Как продлить срок службы шин

Внутренняя организация шины USB

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

Система USB разделяется на три логических уровня с определенными правилами взаимодействия. Устройство USB содержит интерфейсную, логическую и функциональную части. Хост тоже делится на три части: интерфейсную, системную и программное обеспечение. Каждая часть отвечает только за определенный круг задач. Логическое и реальное взаимодействие между ними показано на рисунке 2.

Рис. 2. Взаимодействие компонентов USB

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

· уровень клиентского программного обеспечения в хосте – обычно представляется драйвером устройства USB, обеспечивает взаимодействие пользователя с операционной системой с одной стороны и системным драйвером с другой;

· уровень системного программного обеспечения USB в хосте (USBD, Universal Serial Bus Driver) – управляет нумерацией устройств на шине, управляет распределением пропускной способности шины и мощности питания, обрабатывает запросы пользовательских драйверов;

· хост-контроллер интерфейса шины USB (HCD, Host Controller Driver) – преобразует запросы ввода / вывода в структуры данных, по которым хост-контроллер выполняет физические транзакции, работает с регистрами хост-контроллера.

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

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

– пакет IRP, указывающий тип необходимой операции. Непосредственной обработкой запроса занимается системный драйвер USB.

Уровень системного драйвера USB необходим для управления ресурсами USB. Он отвечает за выполнение следующих действий:

· распределение полосы пропускания шины USB;

· назначение логических адресов устройств каждому физическому USB-устройству;

Логическое устройство USB представляет собой набор независимых конечных точек, с которыми клиентское программное обеспечение обменивается информацией. Каждому логическому устройству USB назначается свой адрес, уникальный на данной шине USB. Каждая конечная точка логического устройства идентифицируется своим номером и направлением передачи (IN – передача к хосту, OUT – от хоста).

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

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

· планирует исполнение полученных транзакций, добавляя их к списку транзакций;

· извлекает из списка очередную транзакцию и передает ее уровню хост-контроллера интерфейса шины USB;

· отслеживает состояние каждой транзакции вплоть до ее завершения.

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

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

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

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

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

· получает данные, посылаемые клиентским уровнем хоста из конечных точек каналов данных нижележащего уровня логического USB-устройства;

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

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

Рис. 3. Уровни передачи данных

Конечная точка (Endpoint) – это часть USB-устройства, которая имеет уникальный идентификатор и является получателем или отправителем информации, передаваемой по шине USB. Проще говоря, это буфер, сохраняющий несколько байт. Обычно это блок данных в памяти или регистр микроконтроллера. Данные, хранящиеся в конечной точке, могут быть либо принятыми данными, либо данными, ожидающими передачу. Хост также имеет буфер для приема и передачи данных, но хост не имеет конечных точек.

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

· частота доступа к шине;

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

· требуемая ширина полосы пропускания канала;

· номер конечной точки;

· способ обработки ошибок;

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

· используемый конечной точкой тип посылок;

· направление передачи данных.

Любое USB-устройство имеет конечную точку с нулевым номером (Endpoint Zero). Эта точка позволяет хосту опрашивать устройство с целью определения его типа и параметров, выполнять инициализацию и конфигурирование устройства.

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

Нулевая точка устройства доступна после того, как устройство подключено к шине, включено и получило сигнал сброса по шине (bus reset). Все остальные конечные точки после включения питания или сброса находятся в неопределенном состоянии и недоступны для работы до тех пор, пока хост не выполнит процедуру конфигурирования устройства.

Адресация и доступ к шине

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

Читать еще:  При какой минимальной величине остаточной глубины рисунка протектора шин

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

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

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

Достоверность передачи

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

Для обнаружения ошибок приняты следующие меры:

o передатчик сравнивает каждый бит на шине с переданным битом для подтверждения правильности передачи на уровне битов;

o выполняется контроль циклическим избыточным кодом (CRC – Cyclic Redundancy Check);

o используется бит-стаффинг (см. выше);

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

Механизм обнаружения ошибок характеризуется такими свойствами:

o обнаруживаются все глобальные ошибки;

o обнаруживаются все ошибки, вносимые передатчиком;

o в сообщении обнаруживаются до 5 случайно распределенных ошибок;

o в сообщениях обнаруживается пакет следующих друг за другом ошибок длиной до 15 бит;

o обнаруживаются ошибки четности.

Вероятность наличия в сообщении необнаруженных ошибок составляет менее .

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

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

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

Передача сообщений

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

Существует 4 различных типа фреймов:

o DATA FRAME – “фрейм данных” – переносит данные от передатчика к приемнику;

o REMOTE FRAME – “дистанционный фрейм” (фрейм вызова) – передается одним из устройств для того, чтобы получить от другого устройства данные в формате DATA FRAME с тем же идентификатором, что и в REMOTE FRAME;

o ERROR FRAME – “фрейм ошибок” – передается любым устройством, обнаружившим ошибку на шине;

o OVERLOAD FRAME – “фрейм перегрузки” – используется для запроса дополнительной задержки между предыдущими и последующими данными.

Фрейм данных состоит из следующих полей (рис. 2.22): начало фрейма (Start Of Frame), поле арбитража (Arbitration Field), поле контроля (Control Field), поле данных (Data Field), поле циклического избыточного кода (CRC Field), поле уведомления о приеме (ACKnowledgement Field) и поле конца фрейма (End Of Frame). Поле данных может иметь нулевую длину.

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

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

Формат поля арбитража различается для стандартного и расширенного формата фрейма. В стандартном фрейме поле арбитража состоит из идентификатора длинной 11 бит и RTR-бита (Remote Transmission Request – “запрос дистанционной передачи”).

В расширенном формате поле арбитража имеет идентификатор длиной 29 бит, SRR-бит (Substitute Remote Request – “заменяющий RTR-бит”),IDE-бит (Identifier Extension Bit – “бит идентификации расширенного формата”) и RTR-бит. Поле идентификатора в расширенном формате состоит из базового идентификатора и расширенного идентификатора. Базовый идентификатор определяет приоритет расширенного фрейма. RTR-бит служит для того, чтобы отличить фрейм данных от фрейма вызова. IDE-бит служит для различения стандартного и расширенного формата фреймов.

Рис. 2.22. Структура фрейма данных

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

Поле данных состоит из данных, которые должны быть переданы фреймом данных. Он может иметь длину от 0 до 8 байт по 8 бит каждый. Данные передаются младшим разрядом вперед.

Поле CRC содержит циклический избыточный код, служащий для обнаружения ошибок во всех предшествующих ему полях фрейма, включая бит начала фрейма. Поле CRC оканчивается CRC-разделителем (рецессивное состояние) длиной в 1 бит. Стандарт CAN устанавливает алгоритм вычисления CRC. Биты стаффинга перед вычислением удаляются.

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

Конец фрейма представляет собой последовательность из семи рецессивных бит.

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

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

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

o перегрузка приемника, которая требует увеличить паузу между принимаемыми им фреймами;

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

Пауза между фреймами

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

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

Читать еще:  Как ремонтировать грыжу на шине

Фильтрация сообщений

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

Валидация сообщений

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

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

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

В CAN рассматривается 5 типов ошибок:

o ошибки передачи бита (контролируется уровень на шине и сравнивает с передаваемым. Ошибка обнаруживается во время передачи одного бита);

o ошибка стаффинга (обнаруживается при отсутствии бита стаффинга в 6-й позиции последовательности одинаковых битов);

o ошибка формата (обнаруживается, если при заранее фиксированном формате фрейма поле с известным значением битов содержит неправильные биты);

o ошибка уведомления (обнаруживается трансивером, если он не находит доминантное состояние в поле уведомления о получении).

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

ЧТО ТАКОЕ ШИНА ДАННЫХ? ДЛЯ ЧЕГО ОНА ПРЕДНАЗНАЧЕНА?

Шина данныхэто основная шина, ради которой и создается вся система. Количество ее разрядов (линий связи) определяет скорость и эффективность информационного обмена, а также максимально возможное количество команд.Шина данных всегда двунаправленная, так как предполагает передачу информации в обоих направлениях. Наиболее часто встречающийся тип выходного каскада для линий этой шины — выход с тремя состояниями.Обычно шина данных имеет 8, 16, 32 или 64 разряда. Понятно, что за один цикл обмена по 64-разрядной шине может передаваться 8 байт информации, а по 8-разрядной — только один байт. Разрядность шины данных определяет и разрядность всей магистрали. Например, когда говорят о 32-разрядной системной магистрали, подразумевается, что она имеет 32-разрядную шину данных.

Шина адресавторая по важности шина, которая определяет максимально возможную сложность микропроцессорной системы, то есть допустимый объем памяти и, следовательно, максимально возможный размер программы и максимально возможный объем запоминаемых данных.Количество адресов, обеспечиваемых шиной адреса, определяется как 2* N , где N — количество разрядов. Например, 16-разрядная шина адреса обеспечивает 65 536 адресов. Разрядность шины адреса обычно кратна 4 и может достигать 32 и даже 64.Шина адреса может быть однонаправленной (когда магистралью всегда управляет только процессор) или двунаправленной (когда процессор может временно передавать управление магистралью другому устройству, например контроллеру ПДП). Наиболее часто используются типы выходных каскадов с тремя состояниями или обычные ТТЛ (с двумя состояниями).

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

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

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

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

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

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

* Строб записи (вывода), который определяет момент времени, когда

устройство-исполнитель может принимать данные, выставленный

процессором на шину данных;

* Строб чтения (ввода), который определяет момент времени, когда

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

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

  • * При синхронном обмене процессор заканчивает обмен данными самостоятельно, через раз и навсегда установленный временной интервал выдержки (tВЫД), то есть без учета интересов устройства-исполнителя;
  • * При асинхронном обмене процессор заканчивает обмен только тогда,

когда устройство-исполнитель подтверждает выполнение операции специальным сигналом (так называемый режим handshake-рукопожатие).

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

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

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

Ссылка на основную публикацию
Adblock
detector