Проектирование автобуса - мастер на одном конце или посередине?

В данный момент выкладываю шину данных (изначально на макетке), и мне интересно, есть ли "правильный" способ ее выложить. У меня есть ЦП, выступающий в роли мастера шины, и ряд устройств (ОЗУ, ПЗУ, ввод-вывод и т. д.), подключенных к шине.

Здесь речь идет о тактовой частоте процессора не более нескольких МГц — ничего невероятно быстрого.

Лучше ли иметь ведущее устройство шины на одном конце шины (например):

введите описание изображения здесь

или это нормально, чтобы мастер шины находился между другими устройствами (например)?

введите описание изображения здесь

При тех скоростях, о которых мы говорим, есть ли какая-то разница? Я могу предвидеть возможные проблемы при гораздо более высоких тактовых частотах, но, скажем, 4 МГц, следует ли мне думать об этом соображении дизайна?

Тот факт, что вы находитесь на макетной плате, вероятно, является более серьезной проблемой, чем то, как подключена шина.
Да, но когда я перехожу от макетной платы к медной оболочке, должен ли я учитывать размещение своих компонентов по отношению к расположению шины определенным образом?
Я думаю, что я пытался донести мысль, что если это работает на макетной плате, то, безусловно, будет работать и на печатной плате.
На частоте 4 МГц вам может сойти с рук практически все, макетная плата, проволочная обмотка и практически любая разводка печатной платы, о которой вы можете подумать, при условии, что вы на самом деле не будете изо всех сил создавать чрезмерно длинные прогоны. Если вы просто подвешиваете логические устройства вместе на расстоянии одного или двух футов друг от друга, реактивного сопротивления просто не будет достаточно, чтобы о нем беспокоиться.

Ответы (3)

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

Если скорость и/или длина шины увеличились настолько, что она стала линией передачи (модель с сосредоточенными параметрами больше не работает), то вам придется иметь дело с ней как с таковой. Есть разные вещи, которые нужно делать, в зависимости от того, насколько далеко вы находитесь на территории линии электропередачи. Общие первые шаги - убедиться, что шина представляет собой только одну линию с короткими ответвлениями (например, без звезды) и заделка концов. Иногда достаточно просто добавить маломощные резисторы к каждому драйверу шины. Диоды для ограничения перерегулирования и недорегулирования могут помочь. Однако, если все это сделано правильно, все равно не имеет значения, находится ли мастер (предположительно, водитель автобуса?) в середине или на одном из концов.

У Kellenjb есть мнение о макетировании, но здесь могут помочь плоские кабели с чередующимися основаниями.
Эмпирическое правило гласит, что вы начинаете получать эффекты линии передачи, если длина трассы/провода превышает 1/10 длины волны. Синус 4 МГц имеет длину волны 75 м, но вам понадобится несколько гармоник, чтобы получить приличные края. 20 МГц означает длину волны 15 м, поэтому ожидайте влияния линии передачи от ± 1,5 м. Это будет намного длиннее, чем ваша проводка, поэтому я не ожидаю проблем, где бы вы ни разместили мастер.
Если ваша шина использует подтягивающие/понижающие резисторы, рекомендуется разместить их в конце.

+1 за указание на гармоники. должны держать эти края достаточно квадратными.

На частоте 4 МГц у вас есть время цикла 250 нс.

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

Чтобы получить задержку 62 нс, вам потребуется трасса длиной 930 см (15 см на 1 нс).

Так что, пока все ваши части находятся в одном здании, у вас все будет хорошо в любом случае.

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

Является ли это правило 1/4 произвольным или на чем оно основано? Вы говорите о задержке, но линии передачи — это нечто большее; тогда мы говорим об отражениях, характеристическом сопротивлении и групповой задержке.
@stevenvh: Правило 1/4, вероятно, проистекает из нескольких факторов: (1) Если выборка фронтов производится на фронте тактовой частоты, противоположной моменту их изменения (предпочтительный сценарий, когда передатчик данных подает тактовую частоту), перекос в 1/4 цикла по-прежнему оставляет на приемнике полную 1/4 цикла выборки/времени удержания. Перекос в 0,49 цикла оставил бы только 0,01 цикла для выборки/хранения; (2) любой отраженный сигнал будет отражаться от обоих концов линии к концу полупериода, поэтому, если какой-либо конец хорошо поглощает отражения, к этому моменту сигнал должен быть чистым.
@supercat Отлично
@BarsMonster: я забыл упомянуть, что с SPI, возможно, придется сократить время значительно ниже 1/4 распространения. Если мастер SPI ожидает зафиксировать полученные данные на фронте тактового сигнала, противоположном тому, куда их отправит ведомый передатчик, то в течение 1/2 цикла ведущего, генерирующего каждый активный фронт тактового сигнала, сигнал должен достичь ведомого, ведомый должен генерировать ответ, и ответ должен достичь мастера. Если бы время распространения составляло, например, 0,24 цикла, осталось бы только 0,02 цикла как для ответа ведомого, так и для требований времени установки ведущего.