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

 
 
 
Reply to this topicStart new topic
> Сериальные протоколы
maailmankaikkeus
сообщение Sep 23 2008, 08:18
Сообщение #1


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

Группа: Validating
Сообщений: 91
Регистрация: 23-09-08
Из: г. Томск
Пользователь №: 40 409



Здравствуй, господа знатоки!

Подскажите, пожалуйста, какие последовательные протоколы можно реализовать для связи между микросхемами ПЛИС, расположенными на разных платах, стоящих в общей стойке?

Дано:
1) FLEX10KA
2) Расстояние между ПЛИС: не более 50 см
3) Связь по двум линиям: эрикс, тэикс (каждая - LVDS)

Надо:
1) Скорость не менее 1 Мбод, лучше всего - 5 Мбод smile.gif

P.S. В принципе, [а]синхронность работы приемопередатчика не имеет значения. Однако, можно ли применять синхронные протоколы, такие, как например, HDLC, если имеется ОБЩАЯ синхронизация всех плат от единого такта (очень стабильного порядка 100 МГц)?

Сообщение отредактировал maailmankaikkeus - Sep 23 2008, 08:26


--------------------
Все может быть, и все быть может. И все, что может - может быть. Но одного лишь быть не может - того, чего не может быть.
Go to the top of the page
 
+Quote Post
WEST128
сообщение Sep 23 2008, 08:35
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 13-10-06
Из: Россия, Томск
Пользователь №: 21 291



Можно, если есть уверенность в том, что длина пути клока от источника до каждой микросхемы одинакова (на ваших частотах разница меньше 1-2 см). Если же это не так, то можно воспользоваться сдвигом фазы PLL (если есть, с вашими микросхемами не работал).
Go to the top of the page
 
+Quote Post
maailmankaikkeus
сообщение Sep 23 2008, 10:09
Сообщение #3


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

Группа: Validating
Сообщений: 91
Регистрация: 23-09-08
Из: г. Томск
Пользователь №: 40 409



Цитата(WEST128 @ Sep 23 2008, 15:35) *
Можно, если есть уверенность в том, что длина пути клока от источника до каждой микросхемы одинакова (на ваших частотах разница меньше 1-2 см). Если же это не так, то можно воспользоваться сдвигом фазы PLL (если есть, с вашими микросхемами не работал).


К сожалению, когда придумали камень FLEX, такой вещи как PLL еще не придумали smile.gif
Не думаю, что несколько сантиметров будут играть существенную роль на нескольких мегагерцах.

Какие еще подобные протоколы существуют, которые можно реализовать в камне?!


--------------------
Все может быть, и все быть может. И все, что может - может быть. Но одного лишь быть не может - того, чего не может быть.
Go to the top of the page
 
+Quote Post
sazh
сообщение Sep 23 2008, 10:55
Сообщение #4


Гуру
******

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



Цитата(maailmankaikkeus @ Sep 23 2008, 12:18) *
Дано:
1) FLEX10KA
2) Расстояние между ПЛИС: не более 50 см
3) Связь по двум линиям: эрикс, тэикс (каждая - LVDS)

Надо:
1) Скорость не менее 1 Мбод, лучше всего - 5 Мбод smile.gif


У Вас есть приемники передатчики LVDS на два сигнала RX, TX. (У старых флексов таких буферов нет)
Ну что тут можно кроме асинхронного придумать типа старт - данные - стоп.
Go to the top of the page
 
+Quote Post
maailmankaikkeus
сообщение Sep 24 2008, 02:41
Сообщение #5


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

Группа: Validating
Сообщений: 91
Регистрация: 23-09-08
Из: г. Томск
Пользователь №: 40 409



Цитата(sazh @ Sep 23 2008, 17:55) *
У Вас есть приемники передатчики LVDS на два сигнала RX, TX. (У старых флексов таких буферов нет)
Ну что тут можно кроме асинхронного придумать типа старт - данные - стоп.


А может, можно smile.gif
Вдруг есть какой-нибудь opencore типа синхронного HDLC на opencores.org (c которым разбираюсь). Зачем зря ручками писать такие сложные вещи? smile.gif Вдруг кто-нибудь знает еще что-нибудь?
Ну даже пусть если асинхронный старый-добрый УАРТ взять, существуют ли их high speed (более чем 1Мбод) модификации?


--------------------
Все может быть, и все быть может. И все, что может - может быть. Но одного лишь быть не может - того, чего не может быть.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Sep 24 2008, 04:36
Сообщение #6


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Есть такая замечательная штука - маньчестер называется. (M-II).
Самосинхронизируется, реализация - проще пареной репы.
А уж на него вешайте чё угодно.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Postoroniy_V
сообщение Sep 24 2008, 04:52
Сообщение #7


МедвеД Инженер I
****

Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951



Цитата(maailmankaikkeus @ Sep 24 2008, 11:41) *
А может, можно smile.gif
Вдруг есть какой-нибудь opencore типа синхронного HDLC на opencores.org (c которым разбираюсь). Зачем зря ручками писать такие сложные вещи? smile.gif Вдруг кто-нибудь знает еще что-нибудь?
Ну даже пусть если асинхронный старый-добрый УАРТ взять, существуют ли их high speed (более чем 1Мбод) модификации?

ну видимо стоит смотреть в сторону
http://en.wikipedia.org/wiki/Differential_...hester_encoding

MrYuran опередил smile.gif


--------------------
Cogito ergo sum
Go to the top of the page
 
+Quote Post
sazh
сообщение Sep 24 2008, 07:08
Сообщение #8


Гуру
******

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



Цитата(maailmankaikkeus @ Sep 24 2008, 06:41) *
А может, можно smile.gif
Вдруг есть какой-нибудь opencore типа синхронного HDLC на opencores.org (c которым разбираюсь). Зачем зря ручками писать такие сложные вещи? smile.gif Вдруг кто-нибудь знает еще что-нибудь?
Ну даже пусть если асинхронный старый-добрый УАРТ взять, существуют ли их high speed (более чем 1Мбод) модификации?


Значит HDLC - это легко, а УАРТ сложно. И причем тут high speed на частоте 5 мГц. Это уж от драйверов приемника передатчика зависит. RS -232. RS -429
Манчестер - дорогое удовольствие. Там принципиально нужно два ЦИФРОВЫХ сигнала, преобразованных драйвером из линии, для качественного выделения синхроимпульса (искаженный манчестер). И пропускная способность канала должна быть удвоенной относительно необходимой.
Гораздо проще каналы SpaceWire (Там данные сопровождаются стробом. Фактически тот же манчестер но на несущей). Посмотрите документ Альтеры an.332 pdf
The purpose of this reference design is to demonstrate that Altera
Stratix™ and Cyclone™ devices are suitable in performance to
implement link-port interfaces to Analog Devices DSPs.
А вообще по идее сначала выбирают необходимый протокол, а затем реализуют, а не наоброт.
Если добавить к линии данных еще хотя бы линию клока и линию строба данных, так вообще пара строчек описания.
Прикрепленные файлы
Прикрепленный файл  gorb_ds.zip ( 348.17 килобайт ) Кол-во скачиваний: 96
 
Go to the top of the page
 
+Quote Post
maailmankaikkeus
сообщение Sep 24 2008, 07:57
Сообщение #9


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

Группа: Validating
Сообщений: 91
Регистрация: 23-09-08
Из: г. Томск
Пользователь №: 40 409



Спасибо за линки!

Цитата(sazh @ Sep 24 2008, 14:08) *
А вообще по идее сначала выбирают необходимый протокол, а затем реализуют, а не наоброт.


Истинная правда, но то ли руки из жопы, то ли пушок еще не сошел, не знаю smile.gif Взрослеем, однако

Цитата(sazh @ Sep 24 2008, 14:08) *
Если добавить к линии данных еще хотя бы линию клока и линию строба данных, так вообще пара строчек описания.


Дык нету! Есть только по одному туда и сюда.


Манчестер, в принципе, при наличиии LVDS, можно себе повзолить.
Однако, проблема даже не столько в синхронизации, а в создании контроллера передачи данных сетевого уровня (по двум линиям) с фрэймингом, CRC, FIFO, обранужением ошибок, повторной передачей и пр. вкусностями, который бы работал не через жопу. А то год назад пробовал сделать подобную обвязку на UART. Кое-как оно завелось на 115200 и то с клоком не выше 5 МГц и тучей глюков. Например, если добавляю строчку типа "wire НИКОГДА_НЕИСПОЛЬЗУЕМЫЙ_В_ПРОЕКТЕ_ПРОВОД" и оно уже не работает. Ибо писать код надо правильно. Не умею. Поэтому хочется скачать чего-нибудь готовое и работающее, особенно если кто-то уже юзал.

Сообщение отредактировал maailmankaikkeus - Sep 24 2008, 07:59


--------------------
Все может быть, и все быть может. И все, что может - может быть. Но одного лишь быть не может - того, чего не может быть.
Go to the top of the page
 
+Quote Post
sazh
сообщение Sep 24 2008, 09:47
Сообщение #10


Гуру
******

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



Цитата(maailmankaikkeus @ Sep 24 2008, 11:57) *
Спасибо за линки!
Истинная правда, но то ли руки из жопы, то ли пушок еще не сошел, не знаю smile.gif Взрослеем, однако
Дык нету! Есть только по одному туда и сюда.
Манчестер, в принципе, при наличиии LVDS, можно себе повзолить.
Однако, проблема даже не столько в синхронизации, а в создании контроллера передачи данных сетевого уровня (по двум линиям) с фрэймингом, CRC, FIFO, обранужением ошибок, повторной передачей и пр. вкусностями, который бы работал не через жопу. А то год назад пробовал сделать подобную обвязку на UART. Кое-как оно завелось на 115200 и то с клоком не выше 5 МГц и тучей глюков. Например, если добавляю строчку типа "wire НИКОГДА_НЕИСПОЛЬЗУЕМЫЙ_В_ПРОЕКТЕ_ПРОВОД" и оно уже не работает. Ибо писать код надо правильно. Не умею. Поэтому хочется скачать чего-нибудь готовое и работающее, особенно если кто-то уже юзал.


И это все на устаревшей серии, которая то и ресурсов для такого не имеет.
Это Вам надо в раздел интерфейсов конференции.
Если UART не написали, то и все Выше перечисленное под вопросом.

Вот выкладывал UART. Может поможет. (Частоту любую можно поставить)
http://electronix.ru/forum/index.php?showt...mp;#entry425957
Go to the top of the page
 
+Quote Post
AndruB
сообщение Sep 27 2008, 20:09
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 61
Регистрация: 31-07-07
Из: Москва
Пользователь №: 29 490



Мы для подобных случаев используем I2C подобный протокол, а в качестве носителя драйвера RS485.
Хотя можно подобрать и посовременней.


--------------------
Обойденные грабли - недополученный опыт!
Go to the top of the page
 
+Quote Post
Splice
сообщение Oct 3 2008, 19:33
Сообщение #12





Группа:
Сообщений: 10
Регистрация: 3-03-05
Из: МО, Жуковский
Пользователь №: 3 045



Цитата(maailmankaikkeus @ Sep 23 2008, 14:09) *
К сожалению, когда придумали камень FLEX, такой вещи как PLL еще не придумали smile.gif
Не думаю, что несколько сантиметров будут играть существенную роль на нескольких мегагерцах.

Какие еще подобные протоколы существуют, которые можно реализовать в камне?!

FLEX10KE есть с PLL, на конце буковка 'x' smile.gif
Мы применяем связки FLEX10KE->MAX9112---->MAX9159->FLEX10KE (LVDS)
Работает отлично, протокол свой(подобный MIL-STD-1553), частота 66МГц. laughing.gif
Также имели дело с читым MIL-STD-1553, модуль алгоритма полностью в плис APEX, физика на микросхемах HOLT IC.

Сообщение отредактировал Splice - Oct 3 2008, 19:44
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 18:49
Рейтинг@Mail.ru


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