Физические аспекты передачи информации по шинам
Все устройства, использующие шину, электрически подсоединены к ее сигнальным линиям, представляющим собой электрические проводники. Меняя уровни напряжения на сигнальных линиях, ведущее устройство формирует на них информационные или управляющие сигналы. Когда ведущее устройство выставляет на сигнальной шине какой-то уровень напряжения, этот уровень может быть воспринят приемниками в любой точке линии.
Схему, меняющую напряжение на сигнальной шине, обычно называют драйвером (или возбудителем)шины. Таким драйвером может быть любая цифровая схема, на выходе которой имеется один из двух возможных уровней напряжения. При реализации шины предусматривается возможность отключения драйвера от сигнальной линии на период, когда он не использует шину. Один из возможных способов обеспечения подобного режима – применение драйвера, выход которого может находиться в одном из трех состояний: «высокий уровень напряжения» («high»), «низкий уровень напряжения» («low») и «отключен» («off»). Для перевода в состояние «off», эквивалентное отключению выхода драйвера от сигнальной линии, используется специальный вход драйвера. Режим «off» необходим для исключения возможности одновременного управления шиной двумя или более устройствами, в противном случае на линиях могут возникать пиковые выбросы напряжения или искаженные сигналы, которые кроме некорректной передачи информации могут привести к преждевременному отказу электронных компонентов. Совместное использование линии шины несколькими устройствами возможно также за счет подключения этой линии к выходу драйвера через резистор, соединенный с источником питания. Этот способ исключает электрические конфликты на шине.
Приемниками в операциях на шинах называют схемы, сравнивающие уровень сигнала на входе со стандартными значениями, формируемыми внутренними цепями приемников. По итогам сравнения приемник генерирует выходной сигнал, уровень которого соответствует одному из двух возможных логических значений – 1 или 0. Трансивер (приемопередатчик) содержит приемник и драйвер, причем выход драйвера и вход приемника сводятся в общую точку.
Из-за несовершенства физической реализации сигнальных линий фронты импульсов по мере распространения сигналов меняются, соответственно меняется и форма сигнала. Для каждой шины существует некое минимальное значение ширины импульса, при которой он способен дойти от одного конца к другому так, что его еще можно распознать. Эта ширина выступает в качестве основного ограничения на полосу пропускания данной шины, то есть на число импульсов, которые могут быть переданы по шине в единицу времени.
Рассматривая процесс распространения сигнала по сигнальной линии, необходимо учитывать четыре основных фактора: скорость распространения, отражение, эффекты перекрестного влияния, перекос.
Теоретическая граница скорости распространения сигнала по шине – это скорость света в свободном пространстве, то есть около 300 мм/нс. Реальная скорость распространения, определяемая физическими характеристиками сигнальных линий и нагрузкой, не превышает 70% скорости света.
По мере распространения по реальной линии сигнал преодолевает области с различным сопротивлением. Там, где оно меняется, сигнал не может оставаться постоянным, поскольку меняется соотношение между током и напряжением. Часть сигнала продолжает продвижение, а часть – отражается в противоположную сторону. Прямой и отраженный сигналы могут повторно отражаться, в результате чего на линии формируется сложный результирующий сигнал. В конце линии сигнал отражается назад, если только он не поглощен правильно подобранным согласующим резистором. Если на конце линии имеется правильно подобранный согласующий резистор, сигнал будет поглощен без отражения. Такие резисторы должны размещаться по обоим концам сигнальной линии. Однако на практике точное согласование значения сопротивления резисторов с характеристиками линии является крайне затруднительной задачей, поэтому отражение фактически всегда имеет место.
Распространяясь по линии, сигнал создает вокруг нее электростатическое и магнитное поля. Сигнальные линии в шине располагаются параллельно и в непосредственной близости одна от другой. Поля от близко расположенных линий перекрываются, приводя к тому, что сигнал на одной линии влияет на сигнал в другой. Этот эффект называют перекрестной помехой. Наиболее очевидный способ уменьшения эффекта перекрестной помехи – пространственное разнесение линий шины так, чтобы их поля не влияли на соседние линии, что для печатной платы ограниченного размера практически не реализуемо. К снижению эффектов перекрестного влияния ведет уменьшение взаимных емкости и индуктивности линий, чего можно добиться, разместив вблизи сигнальных линий «земляные» линии или включив в многослойную печатную плату «земляные» слои. Это, однако, приводит к нежелательному эффекту увеличения собственной емкости линий. Наиболее распространенный подход к снижению перекрестной помехи состоит в разделении линий изолятором с малой диэлектрической постоянной. При проектировании шин обычно используется комбинация перечисленных методов борьбы с перекрестной помехой.
При параллельной передаче по линиям шины битов адреса или данных сигналы на разных линиях достигают соответствующих приемников обычно не одновременно. Это явление именуется перекосом сигналов. Так, при передаче адресной информации, прежде чем реагировать на поступивший адрес, все ведомые должны знать, с какого момента его можно считать достоверным. При передаче данных имеет место еще более сложная ситуация, так как данные могут пересылаться в обоих направлениях. В транзакции чтения имеет место задержка на время, пока ведомое устройство ищет затребованные данные, и ведомый должен каким-то образом известить о моменте, когда данные можно считать достоверными.
Методы, позволяющие предусматривать возможный перекос и информировать о достоверности адреса, данных и управляющих сигналов, относят к протоколам шины. Практически используются два основных класса протоколов – синхронный и асинхронный.
В синхронном протоколе все сигналы «привязаны» к импульсам единого центрального генератора тактовых импульсов. Тактовые импульсы распространяются по специальной сигнальной линии и представляют собой регулярную последовательность чередующихся единиц и нулей. Один период такой последовательности называется тактовым периодом шины. Именно он определяет минимальный квант времени на шине (временной слот). Все подключенные к шине устройства могут считывать состояние тактовой линии, и все события на шине отсчитываются от начала тактового периода. Изменение управляющих сигналов на шине обычно совпадает с передним или задним фронтом тактового импульса, иными словами, момент смены состояния на синхронной шине известен заранее и определяется тактовыми импульсами.
Стартовый сигнал отмечает присутствие на линиях шины адресной или управляющей информации. Когда ведомое устройство распознает свой адрес и находит затребованные данные, оно помещает эти данные и информацию о состоянии на шину и сигнализирует об их присутствии на шине сигналом подтверждения. Операция записи выглядит сходно. Отличие состоит в том, что данные выдаются ведущим устройством в тактовом периоде, следующем за периодом выставления адреса, и остаются на шине до отправки ведомым устройством сигнала подтверждения и информации состояния. Отметим, что в каждой транзакции присутствуют элементы чтения и записи, и для каждого направления пересылки имеется свой сигнал подтверждения достоверности информации на шине. Сигналы управления и адрес всегда перемещаются от ведущего устройства. Информация состояния всегда поступает от ведомого устройства. Данные могут перемещаться в обоих направлениях.
Хотя скорость распространения сигналов в синхронном протоколе явно не фигурирует, она должна учитываться при проектировании шины. Тактовые импульсы обычно распространяются вдоль шины с обычной скоростью прохождения сигналов, и за счет определенных технических усилий можно добиться практически одновременной доставки тактовых импульсов к каждому разъему шины. Выбираться тактовая частота должна таким образом, чтобы сигнал от любой точки на шине мог достичь любой другой точки несколько раньше, чем завершится тактовый период, то есть шина должна допускать расхождение в моментах поступления тактовых импульсов. Поэтому, более короткие шины могут быть спроектированы на более высокую тактовую частоту.
Синхронные протоколы требуют меньше сигнальных линий, они проще для реализации и тестирования. Поскольку для реализации синхронного протокола практически не требуется дополнительной логики, эти шины могут быть быстрыми и дешевыми. С другой стороны, они менее гибки, поскольку привязаны к конкретной максимальной тактовой частоте и, следовательно, к конкретному уровню технологии. По этой причине существующие шины часто не в состоянии реализовать потенциал производительности подключаемых к ним новых устройств. Кроме того, из-за проблемы перекоса синхросигналов синхронные шины не могут быть длинными, а ведущий должен работать со скоростью самого медленного из участвующих в пересылке данных ведомых.
В асинхронном протоколе начало очередного события на шине определяется не тактовым импульсом, а предшествующим событием и следует непосредственно за этим событием. Каждая совокупность сигналов, помещаемых на шину, сопровождается соответствующим синхронизирующим сигналом – стробом.
В цикле асинхронной шины для подтверждения успешности транзакции используется двунаправленный обмен сигналами управления. Такая процедура называется квитированием установления связи или «рукопожатием» (handshake).
Как и в синхронных протоколах, в любой асинхронной транзакции присутствуют элементы чтения и записи: по отношению к управляющей информации выполняется операция записи, а к информации состояния – чтения. Данные синхронизируются и управляются, соответственно, как управляющая и статусная информация. Скорость асинхронной пересылки данных диктуется ведомым устройством, поскольку ведущему устройству для продолжения транзакции приходится ждать отклика. Асинхронные протоколы по своей сути являются самосинхронизирующимися, поэтому шину могут совместно использовать устройства с различным быстродействием, построенные на базе как устаревших, так и новых технологий. Шина автоматически адаптируется к требованиям устройств, обменивающихся информацией в данный момент. Таким образом, с развитием технологий к шине могут быть подсоединены более быстрые устройства. В отличие от синхронных систем для ускорения системы с асинхронной шиной не требуется замена на шине старых медленных устройств на быстрые новые. Однако перечисленные преимущества асинхронного протокола приводят к определенному повышению сложности аппаратуры.
Квитирование в асинхронных системах не всегда реализуется в полном объеме. Иногда транзакция на шине не может быть завершена стандартным образом, например, если ведущее устройство из-за программных ошибок обращается к несуществующей ячейке памяти. В этом случае ведомое устройство не отвечает соответствующим подтверждающим сигналом. Чтобы предотвратить бесконечное ожидание в шинах используется тайм-аут, то есть задается время, спустя которое при отсутствии отклика транзакция принудительно прекращается. Тайм-аут реализуется с помощью таймера, запускаемого ведущим одновременно с началом транзакции. Если таймер достигает предопределенного значения до поступления ответного сигнала, ведущий обязан прекратить начатую транзакцию. После тайм-аута необходимо восстановить состояние шины и вычислительного процесса. Тайм-ауты цикла данных, обычно означающие отказ оборудования, достаточно редки, поэтому время тайм-аута может быть весьма большим. С другой стороны, тайм-ауты по адресу возникают часто. Происходит это, например, когда программа инициализирует систему и проверяет, какие из устройств присутствуют на шине. При этом вполне реальна выдача на шину адреса несуществующего устройства. В спецификациях шин предписываются очень малые значения тайм-аута по адресу, из-за чего устройства декодирования адреса в ведомых устройствах должны быть весьма быстрыми, чтобы уложиться в отведенное время. Обычно как асинхронные реализуются шины ввода/вывода.
Обобщим особенности синхронного и асинхронного протоколов. Любой из протоколов предполагает информирование схем арбитража о занятости шины. В синхронном протоколе шина занята от начала стартового сигнала до завершения сигнала подтверждения, и специальный сигнал занятости шины не нужен. В асинхронном протоколе о занятости шины свидетельствуют адресный строб или сигнал подтверждения адреса. В асинхронной системе присутствует полная процедура квитирования установления связи, то есть во всех случаях оба устройства до удаления информации с шины должны прийти к соглашению. Таким образом, даже если одно из них построено на очень быстрых схемах, а другое – на очень медленных, взаимодействие все равно будет успешным. Синхронные системы квитируются частично за счет того, что ведомое устройство перед выдачей подтверждения может занимать под поиск нужных данных несколько тактовых периодов. С другой стороны, существует неявное требование, чтобы ведомый успел использовать или, по крайней мере, скопировать адрес и информацию управления за время одного тактового периода до их исчезновения с сигнальных линий. Необходимо также, чтобы и считывание данных ведущим устройством также происходило в пределах одного тактового периода, иначе эти данные будут утеряны. Для решения подобных проблем обычно используют дополнительную буферную память. Отметим также, что если ведомому устройству для завершения своей операции требуется время, лишь незначительно превышающее длительность тактового периода, транзакция все равно удлиняется на целый период. Это существенный недостаток по сравнению с асинхронным протоколом.
В обоих видах протоколов необходимо учитывать эффект перекоса сигналов. Максимальное значение времени перекоса равно разности времен прохождения сигналов по самой быстрой и самой медленной сигнальным линиям шины. В синхронных шинах перекос уже заложен в указанную в спецификации максимальную тактовую частоту, поэтому при проектировании устройств может не учитываться. Для асинхронных шин перекос необходимо принимать во внимание для каждой транзакции и для каждого устройства. Перед выставлением строба ведущее устройство выжидает в течение времени перекоса данных, считая от момента выставления на шину данных, так, что когда ведомый видит строб, он уже может считать данные достоверными. У ведомого устройства дополнительно возможен перекос сигналов на внутренних трактах данных. Компенсировать его можно введением принудительной задержки перед тем как использовать полученный сигнал стробирования. Когда ведомое устройство возвращает данные ведущему устройству, он должен после установки данных на шине (но до отправки сигнала подтверждения) выждать время перекоса. Учет перекоса может быть реализован как в ведущем, так и в ведомом устройстве, либо в том и другом, лишь бы была обеспечена необходимая общая задержка. Величина компенсирующей задержки зависит от технологии шины, а также физических свойств и длины ее сигнальных линий. В свою очередь, ведомые устройства должны самостоятельно отвечать за проблемы, связанные с их внутренними перекосами сигналов.
Дата добавления: 2015-12-17; просмотров: 1967;