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

 
 
 
Reply to this topicStart new topic
> Camera Link Base
Alexey_Rostov
сообщение Jun 22 2015, 19:56
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Здравствуйте. Подскажите кто работал с протоколом Camera link Base. Не совсем ясно следующее:
Сделал сериализатор, чтобы отправить данные с платы на фреймграббер.
На вход сериализатора поступают данные 28 бит (байты с port A, B, C и FVAL, DVAL, LVAL и SPARE). На выходе по clk7x данные сериализуются по 4-м сигналам.

Как правильно разложить входной 28-битный сигнал по 4-м сигналам? Просто выдавать последовательно в первый tx_data[6.. 0], во второй tx_data[13.. 7] и т.д.?

Какой клок выдавать по LVDS clk1x или clk7x?

Сообщение отредактировал farbius - Jun 22 2015, 20:06
Go to the top of the page
 
+Quote Post
aat_81
сообщение Jun 23 2015, 06:17
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 148
Регистрация: 2-11-06
Из: N.Novgorod
Пользователь №: 21 891



Цитата(farbius @ Jun 22 2015, 22:56) *
Здравствуйте. Подскажите кто работал с протоколом Camera link Base. Не совсем ясно следующее:
Сделал сериализатор, чтобы отправить данные с платы на фреймграббер.
На вход сериализатора поступают данные 28 бит (байты с port A, B, C и FVAL, DVAL, LVAL и SPARE). На выходе по clk7x данные сериализуются по 4-м сигналам.

Как правильно разложить входной 28-битный сигнал по 4-м сигналам? Просто выдавать последовательно в первый tx_data[6.. 0], во второй tx_data[13.. 7] и т.д.?

Какой клок выдавать по LVDS clk1x или clk7x?

Правильно разложить вот так:
o_lval <= s_x_serdes_data(18);
o_fval <= s_x_serdes_data(19);
o_dval <= s_x_serdes_data(20);
o_spare <= s_x_serdes_data(27);
o_porta <= s_x_serdes_data(22) & s_x_serdes_data(21) & s_x_serdes_data(5 downto 0);
o_portb <= s_x_serdes_data(24) & s_x_serdes_data(23) & s_x_serdes_data(11 downto 6);
o_portc <= s_x_serdes_data(26) & s_x_serdes_data(25) & s_x_serdes_data(17 downto 12);

Ну а клок понятное дело clk1x.
Это для фреймграббера. В обратную сторону аналогично но клок уже будет clk7x
Go to the top of the page
 
+Quote Post
Alexey_Rostov
сообщение Jun 23 2015, 06:43
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Цитата(aat_81 @ Jun 23 2015, 09:17) *
Правильно разложить вот так:
o_lval <= s_x_serdes_data(18);
o_fval <= s_x_serdes_data(19);
o_dval <= s_x_serdes_data(20);
o_spare <= s_x_serdes_data(27);
o_porta <= s_x_serdes_data(22) & s_x_serdes_data(21) & s_x_serdes_data(5 downto 0);
o_portb <= s_x_serdes_data(24) & s_x_serdes_data(23) & s_x_serdes_data(11 downto 6);
o_portc <= s_x_serdes_data(26) & s_x_serdes_data(25) & s_x_serdes_data(17 downto 12);


Спасибо. Можно немного по подробнее. Постараюсь уточнить вопрос. Я понял следующее сигналы с o_porta, o_portb, o_portc, o_lval , o_fval, o_spare собираются в 28 битный сигнал s_x_serdes_data, который меняется по клоку clk1x. Причем каждый бит s_x_serdes_data соответствует определенному биту из сигналов o_porta, o_portb, o_portc, o_lval , o_fval, o_spare(как вы описали выше). По clk7x данный сигнал раскладывается по 4-м линиям, например tx_A, tx_B, tx_C, tx_D.

Вопрос вот в чем: как последовательно во времени раскладывается s_x_serdes_data по 4-м линиям?

Например
в tx_A выдаю s_x_serdes_data(0), s_x_serdes_data(1), s_x_serdes_data(2), s_x_serdes_data(3), s_x_serdes_data(4),..., s_x_serdes_data(6)
в тоже время в tx_B выдаю s_x_serdes_data(7), s_x_serdes_data(8), s_x_serdes_data(9), s_x_serdes_data(10), s_x_serdes_data(11),..., s_x_serdes_data(13)
и т.д.

или как то иначе?
Go to the top of the page
 
+Quote Post
aat_81
сообщение Jun 23 2015, 12:11
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 148
Регистрация: 2-11-06
Из: N.Novgorod
Пользователь №: 21 891



Рекомендую посмотреть этот документ. В нем есть подробное описание как работает OSERDESE2 с временными диаграммами.
Go to the top of the page
 
+Quote Post
Alexey_Rostov
сообщение Sep 2 2015, 13:31
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Каким образом необходимо раскладывать 28 бит по четырем линиям? В частности интересуют служебные сигналы FVAL, LVAL, DVAL.
В разных источниках указано по разному, например

https://en.wikipedia.org/wiki/Camera_Link#Signal_data
http://www.volkerschatz.com/hardware/clink.html
Служебные сигналы подаются в X3 +/-.

https://en.wikipedia.org/wiki/File:Camera_l...rialization.jpg
Служебные сигналы подаются в X2 +/-.



Go to the top of the page
 
+Quote Post
Andrew Su
сообщение Sep 4 2015, 16:22
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 301
Регистрация: 18-09-07
Из: Украина
Пользователь №: 30 647



Цитата(farbius @ Sep 2 2015, 16:31) *
Каким образом необходимо раскладывать 28 бит по четырем линиям? В частности интересуют служебные сигналы FVAL, LVAL, DVAL.
В разных источниках указано по разному, например

https://en.wikipedia.org/wiki/Camera_Link#Signal_data
http://www.volkerschatz.com/hardware/clink.html
Служебные сигналы подаются в X3 +/-.

https://en.wikipedia.org/wiki/File:Camera_l...rialization.jpg
Служебные сигналы подаются в X2 +/-.

Добрый день.
Надеюсь, вам это пригодится.
Удачи.
Прикрепленные файлы
Прикрепленный файл  CameraLinkOfficial.pdf ( 289.73 килобайт ) Кол-во скачиваний: 34
 
Go to the top of the page
 
+Quote Post
Alexey_Rostov
сообщение Sep 4 2015, 17:10
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Цитата(Andrew Su @ Sep 4 2015, 19:22) *
Добрый день.
Надеюсь, вам это пригодится.
Удачи.

Спасибо. Все получилось. Проблема была не в раскладке сигнала.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 15:42
Рейтинг@Mail.ru


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