реклама на сайте
подробности

 
 
> Передача сигнала по оптическому каналу
L47
сообщение Jun 4 2014, 00:02
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 28-05-14
Пользователь №: 81 793



Здравствуйте,
Уважаемые форумчане, прошу помочь в вопросе:

как передать сигнал низкой частоты посредством SFP модуля с детерминированностью по времени и ошибкой в пределах 3-5 нс, ?
- при сигнале несущей 100МГц и необходимости выделения чистых (в пределах 2 нс джиттера) 100МГц на приемнике.

имеется ПЛИС Cyclone II, MAX II, Cyclone IV, ПО Quartus 7.2

в данное время тестирую все на Cyclone II terasic DE2
- генерирую 100МГц и импульс 10нс, пропускаю их через XOR.

- на приемнике задействую PLL Cyclone II, увеличиваю постоянную времени фильтра для увеличения времени реакции PLL,
выделяю несущую и сравниваю ее же с входным сигналом, сигнал выделяется, но с дополнительным импульсом, причиной которого видимо является реакция выделенной с PLL несущей частоты на изменение входного сигнала.

в правильном направлении ли я двигаюсь? есть ли какие-либо другие варианты решения?


Прикрепленное изображение

желтым - выход PLL (с задержкой)
синим - вход PLL


Прикрепленное изображение

желтым - результат сравнения выделенного сигнала с входным
синим - вход PLL

настройки PLL:
altpll_component.operation_mode = "NORMAL"
altpll_component.LOOP_FILTER_C = 20
altpll_component.m = 10
altpll_component.n = 1
altpll_component.c0_high = 5
altpll_component.c0_low = 5


Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 24)
des00
сообщение Jun 4 2014, 01:21
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



поставить что-то вроде ADN2816ACPZ


--------------------
Go to the top of the page
 
+Quote Post
vadimp61
сообщение Jun 4 2014, 01:48
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 599
Регистрация: 28-08-08
Из: Ростов папа
Пользователь №: 39 872



Примените манчестерское кодирование на частоте 100-622Мгц например.
Есть еще оптомодули, но не SFP работающие от DC до 5Мбод, но они по скорости не пойдут.

Сообщение отредактировал vadimp61 - Jun 4 2014, 01:49
Go to the top of the page
 
+Quote Post
L47
сообщение Jun 4 2014, 06:56
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 28-05-14
Пользователь №: 81 793



Цитата(vadimp61 @ Jun 4 2014, 15:58) *
Примените манчестерское кодирование на частоте 100-622Мгц например.
Есть еще оптомодули, но не SFP работающие от DC до 5Мбод, но они по скорости не пойдут.

предел для cyclone II c6 PLL out Fmax = 500MHz,
то бишь выставляю клок на 500 МГц, считываю по каждому фронту состояние входа - > декодирую, получаю точность в пределах 2 нс?, попробую. спасибо за советы
Go to the top of the page
 
+Quote Post
vadimp61
сообщение Jun 4 2014, 08:03
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 599
Регистрация: 28-08-08
Из: Ростов папа
Пользователь №: 39 872



Цитата(L47 @ Jun 4 2014, 15:06) *
предел для cyclone II c6 PLL out Fmax = 500MHz,
то бишь выставляю клок на 500 МГц, считываю по каждому фронту состояние входа - > декодирую, получаю точность в пределах 2 нс?, попробую. спасибо за советы

Закодируйте свой медленный сигнал с помощью манчестерского кода, то есть фронтами 500 Мгц тактовой, то получите точность повторения своего медленного сигнала 1/250000000 то есть 4 нс.
На SFP нельзя подавать постоянную составляющую.
Тут обсуждали
http://electronix.ru/forum/index.php?showtopic=112002
Go to the top of the page
 
+Quote Post
L47
сообщение Jun 4 2014, 10:06
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 28-05-14
Пользователь №: 81 793



Цитата(des00 @ Jun 4 2014, 15:31) *
поставить что-то вроде ADN2816ACPZ

к сожалению нету возможности дополнительно приобретать МС, но спасибо за совет,
по аналогии с этой CDR микросхемой ведь можно реализовать на cyclone II? или те параметры фильтра PLL что я установил - уже предел?

Цитата(vadimp61 @ Jun 4 2014, 22:13) *
Закодируйте свой медленный сигнал с помощью манчестерского кода, то есть фронтами 500 Мгц тактовой, то получите точность повторения своего медленного сигнала 1/250000000 то есть 4 нс.
На SFP нельзя подавать постоянную составляющую.
Тут обсуждали
http://electronix.ru/forum/index.php?showtopic=112002

на счет SFP и передачи низкой частоты - на наших модулях мешает лишь внутрикорпусный буферный ОУ фотодиода развязанный внутри емкостями, а светодиод может работать в режиме постоянного тока.

вроде как задержки в кодировании сигнала быть не должно :

*_*_*_*_*_*_ тактовый
______**____ импульс
*_*_*__**_*_ XOR = манчестер

задержка может быть при декодировании, и чем выше частота декодера манчестера - тем меньше ошибка, или я в чем то ошибаюсь?


Go to the top of the page
 
+Quote Post
des00
сообщение Jun 4 2014, 10:25
Сообщение #7


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(L47 @ Jun 4 2014, 21:16) *
к сожалению нету возможности дополнительно приобретать МС, но спасибо за совет,
по аналогии с этой CDR микросхемой ведь можно реализовать на cyclone II? или те параметры фильтра PLL что я установил - уже предел?

ИМХО, если вам нужно
Цитата
при сигнале несущей 100МГц и необходимости выделения чистых (в пределах 2 нс джиттера) 100МГц на приемнике.

получить чистый синус с низким джиттером, то я бы поставил внешний CDR с узкой петлей. Затем положим у вас данные 100 килобит, повторяем каждый бит 1000 раз, получаем 100мегабит. Пропускаем через короткий скремблер, получаем высокочастотное заполнение. И данные передали низкие и CDR помогли (переходов будет много).

Делать CDR на альтеровской PLL я бы не стал, не для того создавалась. Как вариант сделать цифровую петлю ФАПЧ, она позволит вам получить "чистый" клок, но без внешнего гуна это будет дрожащий строб валидности данных.


--------------------
Go to the top of the page
 
+Quote Post
vadimp61
сообщение Jun 4 2014, 15:02
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 599
Регистрация: 28-08-08
Из: Ростов папа
Пользователь №: 39 872



Цитата(des00 @ Jun 4 2014, 18:35) *
ИМХО, если вам нужно

получить чистый синус с низким джиттером, то я бы поставил внешний CDR с узкой петлей. Затем положим у вас данные 100 килобит, повторяем каждый бит 1000 раз, получаем 100мегабит. Пропускаем через короткий скремблер, получаем высокочастотное заполнение. И данные передали низкие и CDR помогли (переходов будет много).

Делать CDR на альтеровской PLL я бы не стал, не для того создавалась. Как вариант сделать цифровую петлю ФАПЧ, она позволит вам получить "чистый" клок, но без внешнего гуна это будет дрожащий строб валидности данных.

Я так понял что ТС надо передавать одиночные TTL импульсы с минимальной задержкой на восстановление, а не чистый синус.
Ждем пояснения от ТС.
Go to the top of the page
 
+Quote Post
L47
сообщение Jun 4 2014, 18:23
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 28-05-14
Пользователь №: 81 793



Цитата(vadimp61 @ Jun 5 2014, 05:12) *
Я так понял что ТС надо передавать одиночные TTL импульсы с минимальной задержкой на восстановление, а не чистый синус.
Ждем пояснения от ТС.

Да, задачей является
- передать одиночный импульс раз в 100мкс (10кГц) и раз в секунду (PPS),
- выделить на приемнике помимо сигнальных импульсов - тактовую частоту 100МГц,
- обеспечить возможность различия импульсов 10кГц и PPS.
- обеспечить детерминированность времени декодирования сигнала.
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 4 2014, 22:22
Сообщение #10


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(L47 @ Jun 5 2014, 06:33) *
Да, задачей является
- передать одиночный импульс раз в 100мкс (10кГц) и раз в секунду (PPS),
- выделить на приемнике помимо сигнальных импульсов - тактовую частоту 100МГц,
- обеспечить возможность различия импульсов 10кГц и PPS.
- обеспечить детерминированность времени декодирования сигнала.

поток 100 мегабит, пропущенный через мультипликативный скремблер на который подана 1ца, передача 10КГц - импульс с уровнем 0 длительностью 3 такта, 1Гц импульс с уровнем 0 длительностью 7 тактов. На приемнике обратный путь. Селекция по длительности импульса.

1. На постоянке лазер работать будет не долго, держать его постоянно включенным не рекомендуется. Деградирует. Еще не забывайте про стандарты безопасности, там светить после включения, если нет оптики, постоянно нельзя.
2. Высокая частота -> много переходов -> проще сделать CDR. И CDR лучше взять внешний, специализированный под использование с оптическими модулями.


--------------------
Go to the top of the page
 
+Quote Post
vadimp61
сообщение Jun 5 2014, 02:45
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 599
Регистрация: 28-08-08
Из: Ростов папа
Пользователь №: 39 872



Цитата(L47 @ Jun 5 2014, 02:33) *
Да, задачей является
- передать одиночный импульс раз в 100мкс (10кГц) и раз в секунду (PPS),
- выделить на приемнике помимо сигнальных импульсов - тактовую частоту 100МГц,
- обеспечить возможность различия импульсов 10кГц и PPS.
- обеспечить детерминированность времени декодирования сигнала.


Берите оптомодуль от AVAGO, он искажает импульс по длительности не более 4 нс
Зачем? может просто сгенерить синхронную принимаемым импульсам?
Прикрепленные файлы
Прикрепленный файл  AV02_0176EN_DS_HFBR_x4xxZ_2013_06_26_2C0__1_.pdf ( 709.17 килобайт ) Кол-во скачиваний: 38
 
Go to the top of the page
 
+Quote Post
krux
сообщение Jun 5 2014, 05:46
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



имхо, задачу можно разделить на две:
1) передача частоты с малым джиттером
2) передача данных с коррекцией по времени

1) решается при помощи внешней PLL с нужной полосой (для телекома например - классика жанра это что-то типа DS3102)
2) решается при помощи закольцовывания передаваемых синхронизирующих бит данных на приемнике, вычислении round-trip time и введением коррекции на передатчике. (как в связке CPRI BBU/RRH)


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
L47
сообщение Jul 24 2014, 08:58
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 28-05-14
Пользователь №: 81 793



Проблема решена на CycloneIV следующим образом:
на передатчике:
с передатчика отправляется сигнал 100МГц с вырезанным в момент прихода PPS импульсом:

assign tx = pps ? 0 : clk_1;

время прихода pps относительно фронта clk подтягивается с помощью задержки:

lcell delay (.in(clk), .out(clk_1));

на приемнике:

генерируются 2 тактовые частоты с помощью ФАПЧ с частотой 400МГц, одна с отклонением на 90 град.
введен 1 счетчик по переднему фронту и 2-й счетчик по заднему фронту тактовой частоты 400МГц синхронно сбрасывающийся по приходу фронта принимаемой частоты 100МГц
аналогичные счетчики введены для частоты сдвинутой на 90 град.
коэфф. счета счетчиков равен трем
при срабатывании хотя бы двух из всех четырех счетчиков в приемнике формируется сигнал PPS, в результате получаем джиттер в пределах 1,25нс

для интереса также было испытано при генерировании двух тактовых частот по 1 ГГц, результат давал джиттер около 0.5 нс
также имеется возможность уменьшить джиттер добавлением частот с меньшим отклонением по углу.

остались некоторые вопросы:
1. планируется все таки использовать CDR, каковы на практике CDR встроенные в плис например Cyclone IV GX? имются ли какие -либо подводные камни? какие рабочие частоты? (на сколько я понимаю они оптимизированы под стандарты передачи данных)
2. реализовывал ли кто-либо White-rabbit синхронизацию?, если да то поделитесь пожалуйста ссылкой или соображениями по принципам реализации синхронизации до единиц наносекунд.
3. возможно есть какие-либо недочеты/ошибки в коде, прошу дать знать.



приемник:
пример с использованием несущей в 24МГц:

Код
/*Обнаружение PPS и восстановление частоты*/

//Параметр - число тактов от обнаруженного заднего фронта mdi, при превышении значения >
parameter n_c = 9; // > обнаружение PPS
parameter n_cnt = 16; // > сброс счетчика, чем больше тем шире восстановленный импульс в clk_r
parameter n_c_p =8; // > запуск на восстановления импульса, может срабатывать не только в момент прихода PPS, вносит ошибку в восстановленную частоту
//при изменении параметра проверить размер счетчика на соответствие


//Обнаружение тактированием от 400МГц_0град

reg [4:0] p = 0; //счетчик переднего фронта
reg [4:0] n = 0; //счетчик заднего фронта

always @(posedge clk_ref) //счет передних фронтов, когда mdi = 0
begin
if(!mdi)
    if(p < n_cnt)
        begin
        p <= p + 1'b1;
        end
    else
        begin
        p <= 0;
        end
else p <= 0;
end

always @(negedge clk_ref) //счет задних фронтов, когда mdi = 0
begin
if(!mdi)
    if(n < n_cnt)
        begin
        n <= n + 1'b1;
        end
    else
        begin
        n <= 0;
        end
else n <= 0;
end
/////////////////////////////////////

//Обнаружение тактированием от 400МГц_90град

reg [4:0] p_2 = 0;//счетчик переднего фронта
reg [4:0] n_2 = 0;//счетчик заднего фронта

always @(posedge clk_ref_2) //счет передних фронтов, когда mdi = 0
begin
if(!mdi)
    if(p_2 < n_cnt)
        begin
        p_2 <= p_2 + 1'b1;
        end
    else
        begin
        p_2 <= 0;
        end
else p_2 <= 0;
end

always @(negedge clk_ref_2) //счет задних фронтов, когда mdi = 0
begin
if(!mdi)
    if(n_2 < n_cnt)
        begin
        n_2 <= n_2 + 1'b1;
        end
    else
        begin
        n_2 <= 0;
        end
else n_2 <= 0;
end


//Обнаружение PPS (если хотябы два будут больше чем n_c PPS = 1)
assign data = ((p_2 > n_c)&&(n_2 > n_c))||((p > n_c)&&(n > n_c))||((n > n_c)&&(n_2 > n_c))||((p > n_c)&&(n_2 > n_c))||((p > n_c)&&(p_2 > n_c))||((n > n_c)&&(p_2 > n_c));
//Обнаружение вырезаного импульса (если хотябы два будут больше чем n_c_p pulse = 1)  
assign pulse = ((p_2 > n_c_p)&&(n_2 > n_c_p))||((p > n_c_p)&&(n > n_c_p))||((n > n_c_p)&&(n_2 > n_c_p))||((p > n_c_p)&&(n_2 > n_c_p))||((p > n_c_p)&&(p_2 > n_c_p))||((n > n_c_p)&&(p_2 > n_c_p));

//Восстановление частоты (восстановление срезанного импульса)
assign clk_r = pulse? pulse : mdi;

/*-----------------------------*/
Go to the top of the page
 
+Quote Post
DuHast
сообщение Jul 25 2014, 17:09
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 314
Регистрация: 13-07-06
Из: Москва
Пользователь №: 18 797



Цитата(L47 @ Jul 24 2014, 12:58) *
остались некоторые вопросы:
1. планируется все таки использовать CDR, каковы на практике CDR встроенные в плис например Cyclone IV GX? имются ли какие -либо подводные камни? какие рабочие частоты? (на сколько я понимаю они оптимизированы под стандарты передачи данных)


В Циклонах стоят не CDR а SecDes работающие на скоростях от 600 Mbps. Ваше решение - внешний CDR.
Go to the top of the page
 
+Quote Post
L47
сообщение Jul 26 2014, 01:43
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 28-05-14
Пользователь №: 81 793



Цитата(DuHast @ Jul 26 2014, 03:09) *
В Циклонах стоят не CDR а SecDes работающие на скоростях от 600 Mbps. Ваше решение - внешний CDR.




Цитата
Receives the serial data stream and feeds the stream to the channel PLL
if you configure the channel PLL as a CDR

http://www.altera.com/literature/hb/cyclon...e5_handbook.pdf


Go to the top of the page
 
+Quote Post
DuHast
сообщение Jul 27 2014, 05:12
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 314
Регистрация: 13-07-06
Из: Москва
Пользователь №: 18 797



Все равно получения в этом CDR частота затем используется с работе SerDes'а и не может быть меньше 600МГц.
Go to the top of the page
 
+Quote Post
L47
сообщение Aug 7 2014, 11:57
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 28-05-14
Пользователь №: 81 793



Выявилась проблема в методе, мной выше описанном:

генерирую 2 частоты PLL-ом по 400МГц, одна на 90 град смещена,
ищу вырезанный импульс (PPS) в несущей частоте 24 МГц,

в случае когда вывожу найденный PPS таким способом:

Код
assign data = (p > n_c) || (n > n_c) || (p_2 > n_c) || (n_2 > n_c);


на выводе data появляются помехи,
в случае отдельного вывода:

Код
assign pps_p = p > n_c;
assign pps_n = n > n_c;
assign pps_p_2 = p_2 > n_c;
assign pps_n_2 = n_2 > n_c;


- помех нет, выводится PPS

в случае использования счетчика на 5: (в выше изложенном использовался счетчик на 4)
Код
reg [4:0] p = 0;

при попытке вывода pps по отдельности - т.е. "pps_p = p > n_c;" - тоже выдает шум вместо сигнала PPS.

склоняюсь к тому что связано это с внутренними наводками на счетчик, так ли это?
Go to the top of the page
 
+Quote Post
Mindworker
сообщение Dec 9 2014, 14:15
Сообщение #18





Группа: Новичок
Сообщений: 3
Регистрация: 6-12-14
Пользователь №: 84 009



Подскажите, пожайлуста, в чем проблема: на выходе ножки ПЛИС на частоте 125МГц нет меандра, вместо этого появляется синусоподобный сигнал.
Частоту формировал на PLL и DCM внутри ПЛИС, потом выводил на ножку.
Тактовая частота генератора 100МГц, на плате не меандр.
Мне необходимо получить меандр на 125МГц, что я не так делаю?
Go to the top of the page
 
+Quote Post
Maverick
сообщение Dec 9 2014, 14:24
Сообщение #19


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Mindworker @ Dec 9 2014, 16:15) *
Подскажите, пожайлуста, в чем проблема: на выходе ножки ПЛИС на частоте 125МГц нет меандра, вместо этого появляется синусоподобный сигнал.
Частоту формировал на PLL и DCM внутри ПЛИС, потом выводил на ножку.
Тактовая частота генератора 100МГц, на плате не меандр.
Мне необходимо получить меандр на 125МГц, что я не так делаю?

как подключен осцилограф/анализатор?
какой осцилограф/анализатор? полоса, частота дискретизации позволяет?


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Mindworker
сообщение Dec 9 2014, 17:38
Сообщение #20





Группа: Новичок
Сообщений: 3
Регистрация: 6-12-14
Пользователь №: 84 009



Цитата(Maverick @ Dec 9 2014, 14:24) *
как подключен осцилограф/анализатор?
какой осцилограф/анализатор? полоса, частота дискретизации позволяет?

Осциллограф Tektronix TDS2042C. Полоса = 200МГц, частота дискретизации = 2GS/s. Одна беда он был до этого не заземлен, но потом заземлил и та же картина.
Пробники с 10-ми делителями.
Go to the top of the page
 
+Quote Post
ZASADA
сообщение Dec 9 2014, 18:52
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 738
Регистрация: 13-01-11
Из: Минск
Пользователь №: 62 210



а полоса пробника?
а как подключаете пробник, какова длина земляного провода?
Go to the top of the page
 
+Quote Post
Maverick
сообщение Dec 9 2014, 19:07
Сообщение #22


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Mindworker @ Dec 9 2014, 19:38) *
Осциллограф Tektronix TDS2042C. Полоса = 200МГц, частота дискретизации = 2GS/s. Одна беда он был до этого не заземлен, но потом заземлил и та же картина.
Пробники с 10-ми делителями.

признаюсь честно даже с длиной провода земли буквально 2-3 см я не видел на таком осциллографе идеального меандра при частотах выше 20-30 МГц...


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Alex11
сообщение Dec 10 2014, 00:27
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Наверно, TDS2024C? Далее. 200 МГц полосы предполагают передачу синуса 200 МГц, что приблизительно соответствует длительности фронта 2.5 нс. Соответственно, на 125 МГц с периодом 8 нс будем иметь два фронтв по 2.5 нс и два плоских участка по 1.5 нс. Если еще учесть, что делители к нему не пропускают 200 МГц, то реально будет все еще хуже. Чтобы посмотреть что-то похожее на правду нужен осциллограф не хуже TDS30xx и активный пробник с полосой не менее гига. Тогда увидите меандр.
Go to the top of the page
 
+Quote Post
Mindworker
сообщение Dec 10 2014, 06:47
Сообщение #24





Группа: Новичок
Сообщений: 3
Регистрация: 6-12-14
Пользователь №: 84 009



Все понял, всем спасибо за ответы и комментарии. Пойдем просить новый осциллограф biggrin.gif
Go to the top of the page
 
+Quote Post
Leka
сообщение Dec 10 2014, 08:10
Сообщение #25


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Цитата(Mindworker @ Dec 10 2014, 10:47) *
Все понял, всем спасибо за ответы и комментарии. Пойдем просить новый осциллограф biggrin.gif

Нужен не новый осциллограф cranky.gif , а Z0 пробник.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 05:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01614 секунд с 7
ELECTRONIX ©2004-2016