
Согласование импедансов: симуляторы и симуляция. Часть 1
Согласование импедансов: переходные процессы и переходные отверстия
У любителей электроники, разобравшихся в общих чертах в процессах отражения сигнала от концов линии передачи, неизбежно возникает ряд вопросов, связанных с выбором номиналов согласующих резисторов. При согласовании на стороне источника, выбор резисторов порождает две задачи: определение волнового сопротивления линии и определение внутреннего сопротивления источника сигнала. Обе задачи решаются с помощью симуляторов. Об особенностях их применения и пойдёт речь в данных статьях.
В качестве объекта симуляции используем ту же самую микросхему 5M80ZE64C5N, что применялась в предыдущей статье. Для симуляции нам потребуется модель выходного буфера микросхемы. У данной микросхемы на сайте производителя имеются две принципиально разные модели: HSPICE (осталась только на японской версии сайта) и IBIS. Концепция модели HSPICE подразумевает, что модель содержит в себе характеристики транзисторов из которых состоит выходной буфер и список соединений данных транзисторов. В открытом виде эта информация является коммерческой тайной. Поэтому модель HSPICE для данной микросхемы зашифрована алгоритмом DES и может быть просимулирована только весьма дорогим программным обеспечением компании Synopsys. Модель IBIS же представляет из себя набор вольт-амперных и переходных (реакция выходного буфера на фронт, пришедший изнутри микросхемы) характеристик. Модель IBIS не несёт данных о внутренней структуре буфера, поэтому она распространяется в открытом виде и может быть просимулирована различными пакетами, в том числе — бесплатными.
Одним из таких бесплатных пакетов является MicroCap. Его возможности не позволяют органично встроиться в процесс промышленного проектирования печатных плат. Однако, он достаточно прост в использовании и вполне подойдёт для оценочной симуляции любительских изделий.

Создадим в MicroCap несложную схему. После установки пакета и создания новой схемы («File→New→Schematic File») добавим в неё выходной буфер. Для этого:
Откроем в навигаторе компонентов вкладку «Search».
Укажем в поиске «IBIS».
Выберем в списке IBIS_Output3. Данный буфер имеет три контакта: вход, выход и переключение в состояние HiZ. Также в списке имеется буфер IBIS_Output5 — в нём добавлены контакты питания и земли. Кроме того, при помощи IBIS можно моделировать и входы микросхемы. Но пока ограничимся наиболее простым вариантом.
Щелкнем по полю схемы изображением буфера — откроются два окна.
Укажем путь к модели IBIS.
Поставим переключатель «View by» в положение «Model».
Выберем в списке модель «max5_ttl33_io_d16» — выход 16мА, LVTTL.
Так как список нельзя расширить, а названия моделей достаточно длинные, то их можно уточнять в основной таблице.
Нажмём «Ок» и продолжим.

Добавим на схему линию передачи. Для этого:
Поищем компонент «TLine».
Выберем единственный найденный компонент.
Добавим его на схему — откроется окно его свойств.
В этом окне дважды щёлкнем по строчке «MODEL=».
Откроется окно для ввода названия модели линии передачи. Введём любое название.
Убедимся, что тип длинной линии установлен в положение «Ideal».
Введём волновое сопротивление линии.
Введём задержку распространения «3.43n». Согласно моим измерениям, сигнал в кабеле RG-174 распространяется со скоростью 17,5см/нс. Соответственно, для длины 60см задержка распространения составит 3,43нс. Важное замечание: я регулярно забываю ставить «n», указывающий на «нано» и долго ищу причину, по которой на симуляции нет никаких сигналов. Не повторяйте моих ошибок :)

Теперь добавим на схему источник прямоугольных импульсов. Для этого:
Найдём компонент «Pulse Source».
Поместим его на схему.
Как и в предыдущем случае, дважды щёлкнем по строчке «MODEL=» и введём любое название модели.
Введём напряжения логического нуля и логической единицы. Выход нашего буфера инвертирован, поэтому «VONE» сделаем равным нулю, а «VZERO» — 3,3 вольтам.
Зададим временны́е характеристики сигнала так, чтобы получились прямоугольные импульсы с частотой 1 мегагерц и заполнением 50/50:
P1 = 100n
P2 = 100.1n
P3 = 600n
P4 = 600.1n
P5 = 1000n
Их смысл представлен на схеме ниже.


Последние штрихи.
Возьмём на панели сверху зе́мли и разместим их на схеме. Оба конца экрана линии передачи должны быть заземлены на схеме. Возьмём на той же панели резисторы и конденсатор. Конденсатор нужен для имитации входной ёмкости осциллографа. Для MSOX4154A она приблизительно равна 8 пикофарадам. Резистор будет имитировать мегоомный вход осциллографа. В процессе симуляции именно на этом резисторе будет измеряться напряжение.
Важный момент: в MicroCap резисторы полярны. Если мы возьмём в меню второй сверху резистор (вместо четвёртого сверху), график будет начерчен вниз от 0 вольт до -3,3 вольт. Сами номиналы вписываются в поле «Value» после того, как в свойствах элемента выделена строка «RESISTANCE» или «CAPACITANCE».
Меню с выбором направления резистора скрывает кнопку «Чертить провода». Воспользуемся данной кнопкой, чтобы соединить элементы на схеме.
Теперь настроим симуляцию. После того, как мы выберем пункт меню «Analysis→Transient...» у нас откроется следующее окно:

Установим параметр «Maximum Run Time» в 1000n (просимулируем 1 микросекунду) и параметр «Maximum Time Step» в 10p (максимальный шаг симуляции 10 пикосекунд, избыточно точно, но пускай будет так).
Установим в первой строке таблицы выводимых графиков в поле «Y Expression» параметр, который будем симулировать — напряжение на резисторе R1. Для этого впишем туда «v(r1)», автодополнение в процессе набора предложит нам этот вариант.
Поставим курсор на вторую строку и удалим её нажав вверху окна кнопку «Delete». Затем также удалим третью строку.
Нажмём кнопку «Run» для начала симуляции.

Насколько данная симуляция точна? Наложим данный график на реальную осциллограмму.

Совпадение не идеальное, но весьма близкое к реальности. Попробуем согласовать источник и линию на симуляторе.

Добавим на схему согласующий резистор.
Выберем параметр «RESISTANCE=».
Впишем номинал 27 Ом и запустим симуляцию.

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

Для вычисления которого можно воспользоваться бесплатным калькулятором «Saturn PCB Design Toolkit»:
Откроем в нём вкладку «Conductor Impedance».
Выберем тип линии (её сечение будет изображено на картинке) — копланарная линия.
Введём геометрические параметры.
Диэлектрическая проницаемость текстолита FR4 указана по умолчанию верно — 4,6.
Нажмём «Solve» и получим результат… отличающийся от реальности приблизительно на 10%.
Описанных инструментов будет достаточно для многих любительских проектов. Однако, не исключено, что после прочтения данной статьи могли остаться вопросы. К примеру:
Как посчитать импеданс линии на плате точнее, чем +/-10% ?
Является ли проводник на заглавной картинке копланарной линией?
Отличается ли скорость распространения сигнала по коаксиальному кабелю RG-174 и по текстолиту FR4?
В следующей части я постараюсь прямо или косвенно ответить на эти и другие вопросы, рассмотрев пакеты симуляции, за которые платят деньги.