Последовательные и параллельные шины

По способу передачи сигнала все шины можно разделить на последовательные и параллельные.

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

- Линии для обмена данными (шина данных);

- Линии для адресации данных (шина адреса);

- Линии для управления данными (шина управления);

Для каждой из этих шин вводится понятие ширины. В параллельных шинах понятие «ширина шины» соответствует её разрядности – количеству сигнальных линий, или, другими словами, количеству одновременно передаваемых («выставляемых на шину») битов информации. Сигнал на каждой линии может принимать два значения 0 и 1 (линия с двумя состояниями). Сигналом для старта и завершения цикла приёма/передачи данных служит внешний синхросигнал.

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

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

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

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

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

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

скорость передачи данных = тактовая частота * разрядность * [2..4]

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

                             
    Будет передано
                             
   
                             
           
                             
           
                             
           
                             
           
                             
           
                             
           
                             
                             
Синхросигнал                            
                             
                             
Рисунок Работа параллельной шины, сигналы на линии данных

 

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

Шина адреса — вторая по важности шина, которая определяет максимально возможную сложность микропроцессорной системы, то есть допустимый объем памяти и, следовательно, максимально возможный размер программы и максимально возможный объем запоминаемых данных. Количество адресов, обеспечиваемых шиной адреса, определяется как N =2I , где I, – количество разрядов. Разрядность шины адреса обычно кратна 4 и может достигать 64. Шина адреса может быть однонаправленной (когда магистралью всегда управляет только процессор) или двунаправленной (когда процессор может временно передавать управление магистралью другому устройству).

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

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

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

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

 

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

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

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

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

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

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

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

Рисунок Синхронный и асинхронный обмен.

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

Линии шины управления могут быть как однонаправленными, так и двунаправленными.

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

В качестве примера приведем описание обмена для последовательного интерфейса RS-232.

Данные передаются пакетами по одному байту (8 бит). Вначале передаётся стартовый бит, противоположной полярности состоянию незанятой линии, после чего передаётся непосредственно кадр полезной информации – 8 бит. Увидев стартовый бит, приемник выжидает интервал T1 и считывает первый бит, потом через интервалы T2 считывает остальные информационные биты. Последний бит — стоповый бит, говорящий о том, что передача завершена. Очень важно, чтобы тактовые частоты приемника и передатчика были одинаковыми, допустимое расхождение - не более 10%.

Рисунок Работа последовательной шины, формат данных RS-232

Последовательные шины – не обязательно значит «однобитные», здесь возможны и 2, и 8, и 32 бит ширины при сохранении присущей последовательным шинам пакетной передачи данных, то есть в пакете импульсов данные, адрес, другая служебная информация разделены на логическом уровне.

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

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