Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
С. Ф. Храпский ВССиТ.doc
Скачиваний:
175
Добавлен:
21.05.2015
Размер:
4.76 Mб
Скачать

5.3. Физические аспекты передачи информации по шинам

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

Схему, меняющую напряжение на сигнальной шине, обычно называют драйве­ром (или возбудителем) шины. Таким драйвером может быть любая цифровая схема, на выходе которой имеется один из двух воз­можных уровней напряжения. При реализации шины предусматривается возможность отключения драйвера от сигнальной линии на период, когда он не использует шину. Один из возможных способов обеспечения подобного режима – применение драйвера, вы­ход которого может находиться в одном из трех состояний: «высокий уровень на­пряжения» («high»), «низкий уровень напряжения» («low») и «отключен» («off»). Для перевода в состояние «off», эквивалентное отключению выхода драйвера от сиг­нальной линии, используется специальный вход драйвера. Режим «off» необхо­дим для исключения возможности одновременного управления шиной двумя или более устройствами, в противном случае на линиях могут возникать пиковые вы­бросы напряжения или искаженные сигналы, которые кроме некорректной пере­дачи информации могут привести к преждевременному отказу электронных ком­понентов. Совместное использование линии шины несколькими устройствами возможно также за счет подключения этой линии к выходу драйвера через резистор, соединен­ный с источником питания. Этот способ исключает электрические конфлик­ты на шине.

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

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

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

Теоретическая граница скорости распространения сигнала по шине – это скорость света в свободном пространстве, то есть около 300 мм/нс. Реальная скорость распространения, определя­емая физическими характеристиками сигнальных линий и нагрузкой, не превышает 70% скорости света.

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

Распространяясь по линии, сигнал создает вокруг нее электростатическое и ма­гнитное поля. Сигнальные линии в шине располагаются параллельно и в непо­средственной близости одна от другой. Поля от близко расположенных линий пе­рекрываются, приводя к тому, что сигнал на одной линии влияет на сигнал в другой. Этот эффект называют перекрестной помехой. Наиболее очевидный способ уменьшения эффекта перекрестной помехи – про­странственное разнесение линий шины так, чтобы их поля не влияли на соседние линии, что для печатной платы ограниченного размера практически не реализуемо. К снижению эффектов перекрестного влияния ведет уменьшение взаимных емкости и индуктивности линий, чего можно добиться, разместив вблизи сигнальных линий «земляные» линии или включив в многослойную печатную плату «земляные» слои. Это, одна­ко, приводит к нежелательному эффекту увеличения собственной емкости линий. Наиболее распространенный подход к снижению перекрестной помехи состоит в разделении линий изолятором с малой диэлектрической постоянной. При проектировании шин обычно используется комбинация перечисленных мето­дов борьбы с перекрестной помехой.

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

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

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

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

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

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

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

В цикле асинхронной шины для подтверждения успешности транзакции ис­пользуется двунаправленный обмен сигналами управления. Такая процедура называется квитированием установления связиили «рукопожатием»(handshake).

Как и в синхронных протоколах, в любой асинхронной транзакции присутствуют элементы чтения и записи: по отношению к управляющей информации вы­полняется операция записи, а к информации состояния – чтения. Данные синхро­низируются и управляются, соответственно, как управляющая и статусная инфор­мация. Скорость асинхронной пересылки данных диктуется ведомым устройством, поскольку ве­дущему устройству для продолжения транзакции приходится ждать отклика. Асинхронные протоколы по своей сути являются самосинхронизирующимися, поэтому шину могут совместно использовать устройства с различным быстродействием, постро­енные на базе как устаревших, так и новых технологий. Шина автоматически адапти­руется к требованиям устройств, обменивающихся информацией в данный момент. Таким образом, с развитием технологий к шине могут быть подсоединены более быстрые устройства. В отли­чие от синхронных систем для ускорения системы с асинхронной шиной не требу­ется замена на шине старых медленных устройств на быстрые новые. Однако перечисленные преимущества асинхронного протокола приводят к определенному повышению сложности аппаратуры.

Квитирование в асинхронных системах не всегда реализуется в полном объеме. Иногда транзакция на шине не может быть завершена стандартным образом, на­пример, если ведущее устройство из-за программных ошибок обращается к несуществующей ячейке памяти. В этом случае ведомое устройство не отвечает соответствующим подтверждающим сигналом. Чтобы предотвратить бесконечное ожидание в ши­нах используется тайм-аут, то есть задается время, спустя которое при отсутствии отклика транзакция принудительно прекращается. Тайм-аут реализуется с по­мощью таймера, запускаемого ведущим одновременно с началом транзакции. Если таймер достигает предопределенного значения до поступления ответного сигнала, ведущий обязан прекратить начатую транзакцию. После тайм-аута необходимо восстановить состояние шины и вычислительного процесса. Тайм-ауты цикла данных, обычно означающие отказ оборудования, достаточ­но редки, поэтому время тайм-аута может быть весьма большим. С другой сторо­ны, тайм-ауты по адресу возникают часто. Происходит это, например, когда про­грамма инициализирует систему и проверяет, какие из устройств присутствуют на шине. При этом вполне реальна выдача на шину адреса несуществующего устройства. В спецификациях шин предписываются очень малые значения тайм-аута по адресу, из-за чего устройства декодирования адреса в ведомых устройствах долж­ны быть весьма быстрыми, чтобы уложиться в отведенное время. Обычно как асинхронные реализуются шины ввода/вывода.

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

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