Анализ перекрестных помех между трассировками PCB

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

Создайте трассировки

trace1 = traceLine;
trace1.Length = [10 5*sqrt(2) 10 5*sqrt(2) 10]*1e-3;
trace1.Angle  = [0 45 0 -45 0];
trace1.Width  = 3e-3;
trace1.Corner = "Miter";
trace2 = copy(trace1);
trace2.Length = [11 6*sqrt(2) 6 6*sqrt(2) 11]*1e-3;
trace2 = translate(trace2, [0,-5e-3,0]);
trace = trace1 + trace2 ;
figure;
show(trace);

Figure contains an axes object. The axes object contains 2 objects of type patch. This object represents PEC.

Создайте компонент PCB

Используйте pcbComponent создать стек PCB для формы. Для создания стека PCB трассировка, созданная выше, используется в качестве верхнего слоя. Средний слой является диэлектриком, и нижний слой является наземной плоскостью. Используйте dielectric объект создать диэлектрик Тефлона. Используйте traceRectangular объект создать прямоугольную наземную плоскость. Присвойте трассировку, диэлектрик (d), и groundplane к Layers свойство pcbComponent. Присвойте FeedLocations в концах трассировки и визуализируют его.

pcb = pcbComponent;
d = dielectric('Teflon');
groundplane = traceRectangular('Length', 40e-3,'Width',40e-3,'Center',[40e-3/2,0]);
pcb.Layers = {trace,d,groundplane};
pcb.FeedLocations = [0,0,1,3;40e-3,0,1,3;40e-3,-5e-3,1,3;0e-3,-5e-3,1,3];
pcb.BoardShape = groundplane;
pcb.FeedDiameter = trace1.Width/2;
figure;
show(pcb);

Figure contains an axes object. The axes object with title pcbComponent element contains 9 objects of type patch, surface. These objects represent PEC, feed, Teflon.

Используйте current функционируйте, чтобы построить распределение тока на трассировке

figure;
current(pcb,1e9,'scale','log');

Figure contains an axes object. The axes object with title Current distribution (log) contains 5 objects of type patch.

Используйте layout функционируйте, чтобы показать размещение pcbComponent.

figure;
layout(pcb);

Figure contains an axes object. The axes object with title PCB Component Layout contains 8 objects of type line, text. These objects represent Board Shape, Layer1, Layer3, Feed.

Используйте sparameters функция, чтобы вычислить степень утечки от Трассировки 1, чтобы Проследить 2.

spar = sparameters(pcb,linspace(0.1e9,10e9,51));
figure;
rfplot(spar,2,1);
hold on 
rfplot(spar,3,1);
rfplot(spar,4,1);

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent dB(S_{21}), dB(S_{31}), dB(S_{41}).

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

Увеличьте интервал между трассировками

trace1 = traceLine;
trace1.Length = [10 5*sqrt(2) 10 5*sqrt(2) 10]*1e-3;
trace1.Angle  = [0 45 0 -45 0];
trace1.Width  = 3e-3;
trace1.Corner = "Sharp";
trace2 = copy(trace1);
trace2.Length = [11 6*sqrt(2) 6 6*sqrt(2) 11]*1e-3;
trace2 = translate(trace2, [0,-10e-3,0]);
trace = trace1 + trace2 ;
figure;
show(trace);

Figure contains an axes object. The axes object contains 2 objects of type patch. This object represents PEC.

Создайте компонент PCB

Обновите свойства созданного ранее и визуализируйте его.

groundplane = traceRectangular('Length', 40e-3,'Width',40e-3,'Center',[40e-3/2,0]);
pcb.Layers = {trace,d,groundplane};
pcb.FeedLocations = [0,0,1,3;40e-3,0,1,3;40e-3,-10e-3,1,3;0e-3,-10e-3,1,3];
figure;
show(pcb);

Figure contains an axes object. The axes object with title pcbComponent element contains 9 objects of type patch, surface. These objects represent PEC, feed, Teflon.

Используйте current функционируйте, чтобы построить распределение тока на трассировке.

figure;
current(pcb,1e9,'scale','log');

Figure contains an axes object. The axes object with title Current distribution (log) contains 5 objects of type patch.

Используйте layout функционируйте, чтобы показать размещение pcbComponent.

figure;
layout(pcb);

Figure contains an axes object. The axes object with title PCB Component Layout contains 8 objects of type line, text. These objects represent Board Shape, Layer1, Layer3, Feed.

Используйте sparameters функция, чтобы вычислить степень утечки от Трассировки 1, чтобы Проследить 2.

spar = sparameters(pcb,linspace(0.1e9,10e9,101));
figure;
rfplot(spar,2,1);
hold on 
rfplot(spar,3,1);
rfplot(spar,4,1);

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent dB(S_{21}), dB(S_{31}), dB(S_{41}).

Когда интервал между трассировками удвоен до 10 мм, связь также уменьшает приблизительно на 10 дБ и достигает меньше чем к-25 дБ.

Постройте перекрестные помехи вызванное напряжение

Задайте импульсный сигнал со временем нарастания и временем спада и используйте timeresp функционируйте, чтобы построить выходной сигнал в порте 2 для входного сигнала импульса.

sampleTime = 1e-9;
t = (0:999)'*sampleTime;
input = [0.05*(0:20)';ones(1,78)'; 0.05*(20:-1:0)'; zeros(1,80)'];
input = repmat(input,5,1);
fit   = rationalfit(spar);
output = timeresp(fit(3,1),input,sampleTime);
figure;
yyaxis left;
plot(t,input);
yyaxis right;
plot(t,output);
title('Crosstalk between the Traces');
xlabel('Time (sec)');
ylabel('Voltage (volts)');
legend('Vinput','Output','Location','SouthWest');

Figure contains an axes object. The axes object with title Crosstalk between the Traces contains 2 objects of type line. These objects represent Vinput, Output.

Величина выходного сигнала составляет приблизительно 0,1 мВ, как замечено по результату.

Ссылки

1) https://incompliancemag.com/article/visualizing-crosstalk-in-pcbs/

2) Основные принципы целостности сигнала, Altera