Найти в Дзене
Будни инженера

Что такое шина данных

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

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

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

Допустим, наша простая шина данных 8-разрядная, то есть имеет 8 проводников:

-2

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

D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 1 1 0

D0 - это младший разряд (младший бит), при записи двоичного числа он располагается как самый крайний справа.

D7 - это старший разряд (старший бит), при записи двоичного числа он располагается как самый крайний слева.

Конечно, внутри процессора, а тем более микроконтроллера, всё устроено более сложно, не так как на рисунке. Там есть специальные элементы, которые могут переключать сигналы с нуля на единицу и наоборот.

“Железо” работает таким образом, что уровни сигналов на шине не могут принимать каких-то промежуточных значений. Например, если напряжение питания 5 Вольт, то единицей будет +5В, а нулём - 0В. Но 2,5В на шине быть не может.

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

Например, может быть указано, что напряжение логического нуля лежит в пределах 0…10% от напряжения питания, а логической единицы - в пределах 80…100% от напряжения питания. Или 0…0,5 В принимается за логический ноль, а 4…5 В принимается за логическую единицу.

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

Но пока с шинами данных заканчиваем. Хорошего помаленьку…

Наука
7 млн интересуются