Протокол шины

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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