Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: схема анализа сигналов
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Цифровые схемы, высокоскоростные ЦС
rezuk
необходимо для реализации на плис схемку, которая сможет анализировать пришедшие цифровые сигналы на ножки на предмет того кто раньше пришел(имеется ввиду из данных сигналов).
Проблема в том что, детекторы аналоговых каналов, цифровые импульсы которых потом и приходят в плис, срабатывают одновременно от одного входящего сигнала (пролазы межканальные или черт их знает что), по идее должен сработать только детектор того канала в который пришел сигнал, но т.к. сигнал сильный, а фильтры широкополосны появляются подрабатывния детекторов в других каналах.
Есть ли какие-нибудь идеи таких схем или подскажите книжку где искать... спасибо!
kovigor
Цитата(rezuk @ Jul 14 2013, 18:26) *
по идее должен сработать только детектор того канала в который пришел сигнал, но т.к. сигнал сильный, а фильтры широкополосны появляются подрабатывния детекторов в других каналах.

Есть идея. Даже две.
Первая - нужно бороться именно с этим "подрабатыванием", все остальное - потом. Пока вы не выясните причину этого эффекта, двигаться дальше нет смысла.
Вторая - нужно формулировать ваши вопросы и описания так, чтобы они были четкими и ясными. Из вашего описания ничего невозможно понять. Хоть бы структурную схемку вашей системы набросали и частотный диапазон сигналов привели ...
rezuk
все что можно было сделать чтобы побороть "подрабатывания" уже сделано.
Я объяснил достаточно чтобы понять что нужно реализовать на плис, а с железом уже ничего нельзя сделать, к сожалению
kovigor
Цитата(rezuk @ Jul 14 2013, 21:54) *
все что можно было сделать чтобы побороть "подрабатывания" уже сделано.
Я объяснил достаточно чтобы понять что нужно реализовать на плис, а с железом уже ничего нельзя сделать, к сожалению

Значит, не все, раз не побороли. Почему с железом нельзя ничего сделать ?
Объяснение небрежное, из коего ровным счетом ничего понять нельзя. Хотите считать его нормальным ? Считайте ...
P.S. Простите, если вы решали задачу так же качественно, как писали запрос на форум, то легко понять, почему ваша система работает именно так ...
_Vova
Цитата
детекторы аналоговых каналов, цифровые импульсы которых потом и приходят в плис, срабатывают одновременно

вы хотите различать эти импульсы во времени?
если
Цитата
с железом уже ничего нельзя сделать, к сожалению
, то ПЛИС тут ни чём не поможет и со всей задачей уже ничего нельзя сделать,
п.с. расскажите лучше про аналоговые сигналы и детекторы
Fujitser
Так они срабатывают одновременно или нет, всё таки?
Если нет, то на плис можно сделать так, например:

wire in_a, in_b;

reg a_r; // сработал первый датчик!
reg b_r; //сработал второй датчик!
reg state; // 0- на старт, внимание, марш!
// 1 - есть победитель !
always@(posedge clk)
begin
...
if(!state & in_a & !in_b)
begin
a_r <= 1'b1;
state <= 1'b1;
end
if(!state & !in_a & in_b)
begin
b_r <= 1'b1;
state <= 1'b1;
end
end
rezuk
Цитата(kovigor @ Jul 15 2013, 01:25) *
Значит, не все, раз не побороли. Почему с железом нельзя ничего сделать ?
Объяснение небрежное, из коего ровным счетом ничего понять нельзя. Хотите считать его нормальным ? Считайте ...
P.S. Простите, если вы решали задачу так же качественно, как писали запрос на форум, то легко понять, почему ваша система работает именно так ...

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

Цитата(_Vova @ Jul 15 2013, 08:09) *
вы хотите различать эти импульсы во времени?
если , то ПЛИС тут ни чём не поможет и со всей задачей уже ничего нельзя сделать,
п.с. расскажите лучше про аналоговые сигналы и детекторы

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

Цитата(Fujitser @ Jul 15 2013, 17:32) *
Так они срабатывают одновременно или нет, всё таки?
Если нет, то на плис можно сделать так, например:

wire in_a, in_b;

reg a_r; // сработал первый датчик!
reg b_r; //сработал второй датчик!
reg state; // 0- на старт, внимание, марш!
// 1 - есть победитель !
always@(posedge clk)
begin
...
if(!state & in_a & !in_b)
begin
a_r <= 1'b1;
state <= 1'b1;
end
if(!state & !in_a & in_b)
begin
b_r <= 1'b1;
state <= 1'b1;
end
end

Спасибо за схемку, но для её реализации нужна большая "clk" сотни МГц.
Сейчас схема работает без подрабатываний для 2-х каналов от простейшего RS триггера с небольшими наворотами.
krux
Цитата
Да, во времени. Точно сказать не могу, но разброс между фронтами сигналов может исчисляться единицами нс, а может и пс. К сожалению измерить нет возможности.

Фронты сигналов, приходящие на ПЛИС, привязаны к какой-либо тактовой сетке?
если нет, тогда в ПЛИС делать нечего.
rezuk
Цитата(krux @ Jul 15 2013, 22:29) *
Фронты сигналов, приходящие на ПЛИС, привязаны к какой-либо тактовой сетке?
если нет, тогда в ПЛИС делать нечего.

нет не привязана по приходу ни к какой частоте.

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

Код
module videlyalka(input DATAIN, CLR, CLOCK, output DATAOUT);
   reg [4:0] sr1_q, sr2_q;
    reg fd1_q, fd2_q;
    wire clr1, clr2;
    
    assign clr11 = (|sr2_q) | CLR;
    
    always @(posedge CLOCK or posedge clr11)  begin    
       if(clr11) sr1_q <= 5'b0;
        else      sr1_q <= {sr1_q[3:0], DATAIN};    
   end
    
    assign clr12 = clr11 | sr1_q[4];
    
    always @(posedge CLOCK or posedge clr12)  begin    
       if(clr12) fd1_q <= 1'b0;    
        else      fd1_q <= DATAIN;    
   end
  
    assign clr21 = (|sr1_q) | CLR;

    always @(negedge CLOCK or posedge clr21)  begin    
       if(clr21) sr2_q <= 5'b0;
        else      sr2_q <= {sr2_q[3:0], DATAIN};    
   end

      assign clr22 = clr21 | sr2_q[4];

    always @(negedge CLOCK or posedge clr22)  begin    
       if(clr22) fd2_q <= 1'b0;    
        else      fd2_q <= DATAIN;    
   end
  
    assign DATAOUT = fd1_q | fd2_q;
endmodule
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.