|
|
  |
Сериальные протоколы |
|
|
|
Sep 23 2008, 08:18
|

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

|
Здравствуй, господа знатоки! Подскажите, пожалуйста, какие последовательные протоколы можно реализовать для связи между микросхемами ПЛИС, расположенными на разных платах, стоящих в общей стойке? Дано:1) FLEX10KA 2) Расстояние между ПЛИС: не более 50 см 3) Связь по двум линиям: эрикс, тэикс (каждая - LVDS) Надо:1) Скорость не менее 1 Мбод, лучше всего - 5 Мбод  P.S. В принципе, [а]синхронность работы приемопередатчика не имеет значения. Однако, можно ли применять синхронные протоколы, такие, как например, HDLC, если имеется ОБЩАЯ синхронизация всех плат от единого такта (очень стабильного порядка 100 МГц)?
Сообщение отредактировал maailmankaikkeus - Sep 23 2008, 08:26
--------------------
Все может быть, и все быть может. И все, что может - может быть. Но одного лишь быть не может - того, чего не может быть.
|
|
|
|
|
Sep 23 2008, 10:09
|

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

|
Цитата(WEST128 @ Sep 23 2008, 15:35)  Можно, если есть уверенность в том, что длина пути клока от источника до каждой микросхемы одинакова (на ваших частотах разница меньше 1-2 см). Если же это не так, то можно воспользоваться сдвигом фазы PLL (если есть, с вашими микросхемами не работал). К сожалению, когда придумали камень FLEX, такой вещи как PLL еще не придумали  Не думаю, что несколько сантиметров будут играть существенную роль на нескольких мегагерцах. Какие еще подобные протоколы существуют, которые можно реализовать в камне?!
--------------------
Все может быть, и все быть может. И все, что может - может быть. Но одного лишь быть не может - того, чего не может быть.
|
|
|
|
|
Sep 23 2008, 10:55
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Цитата(maailmankaikkeus @ Sep 23 2008, 12:18)  Дано:1) FLEX10KA 2) Расстояние между ПЛИС: не более 50 см 3) Связь по двум линиям: эрикс, тэикс (каждая - LVDS) Надо:1) Скорость не менее 1 Мбод, лучше всего - 5 Мбод  У Вас есть приемники передатчики LVDS на два сигнала RX, TX. (У старых флексов таких буферов нет) Ну что тут можно кроме асинхронного придумать типа старт - данные - стоп.
|
|
|
|
|
Sep 24 2008, 02:41
|

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

|
Цитата(sazh @ Sep 23 2008, 17:55)  У Вас есть приемники передатчики LVDS на два сигнала RX, TX. (У старых флексов таких буферов нет) Ну что тут можно кроме асинхронного придумать типа старт - данные - стоп. А может, можно  Вдруг есть какой-нибудь opencore типа синхронного HDLC на opencores.org (c которым разбираюсь). Зачем зря ручками писать такие сложные вещи?  Вдруг кто-нибудь знает еще что-нибудь? Ну даже пусть если асинхронный старый-добрый УАРТ взять, существуют ли их high speed (более чем 1Мбод) модификации?
--------------------
Все может быть, и все быть может. И все, что может - может быть. Но одного лишь быть не может - того, чего не может быть.
|
|
|
|
|
Sep 24 2008, 04:52
|

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

|
Цитата(maailmankaikkeus @ Sep 24 2008, 11:41)  А может, можно  Вдруг есть какой-нибудь opencore типа синхронного HDLC на opencores.org (c которым разбираюсь). Зачем зря ручками писать такие сложные вещи?  Вдруг кто-нибудь знает еще что-нибудь? Ну даже пусть если асинхронный старый-добрый УАРТ взять, существуют ли их high speed (более чем 1Мбод) модификации? ну видимо стоит смотреть в сторону http://en.wikipedia.org/wiki/Differential_...hester_encodingMrYuran опередил
--------------------
Cogito ergo sum
|
|
|
|
|
Sep 24 2008, 07:08
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Цитата(maailmankaikkeus @ Sep 24 2008, 06:41)  А может, можно  Вдруг есть какой-нибудь opencore типа синхронного HDLC на opencores.org (c которым разбираюсь). Зачем зря ручками писать такие сложные вещи?  Вдруг кто-нибудь знает еще что-нибудь? Ну даже пусть если асинхронный старый-добрый УАРТ взять, существуют ли их 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. А вообще по идее сначала выбирают необходимый протокол, а затем реализуют, а не наоброт. Если добавить к линии данных еще хотя бы линию клока и линию строба данных, так вообще пара строчек описания.
|
|
|
|
|
Sep 24 2008, 07:57
|

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

|
Спасибо за линки! Цитата(sazh @ Sep 24 2008, 14:08)  А вообще по идее сначала выбирают необходимый протокол, а затем реализуют, а не наоброт. Истинная правда, но то ли руки из жопы, то ли пушок еще не сошел, не знаю  Взрослеем, однако Цитата(sazh @ Sep 24 2008, 14:08)  Если добавить к линии данных еще хотя бы линию клока и линию строба данных, так вообще пара строчек описания. Дык нету! Есть только по одному туда и сюда. Манчестер, в принципе, при наличиии LVDS, можно себе повзолить. Однако, проблема даже не столько в синхронизации, а в создании контроллера передачи данных сетевого уровня (по двум линиям) с фрэймингом, CRC, FIFO, обранужением ошибок, повторной передачей и пр. вкусностями, который бы работал не через жопу. А то год назад пробовал сделать подобную обвязку на UART. Кое-как оно завелось на 115200 и то с клоком не выше 5 МГц и тучей глюков. Например, если добавляю строчку типа "wire НИКОГДА_НЕИСПОЛЬЗУЕМЫЙ_В_ПРОЕКТЕ_ПРОВОД" и оно уже не работает. Ибо писать код надо правильно. Не умею. Поэтому хочется скачать чего-нибудь готовое и работающее, особенно если кто-то уже юзал.
Сообщение отредактировал maailmankaikkeus - Sep 24 2008, 07:59
--------------------
Все может быть, и все быть может. И все, что может - может быть. Но одного лишь быть не может - того, чего не может быть.
|
|
|
|
|
Sep 24 2008, 09:47
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Цитата(maailmankaikkeus @ Sep 24 2008, 11:57)  Спасибо за линки! Истинная правда, но то ли руки из жопы, то ли пушок еще не сошел, не знаю  Взрослеем, однако Дык нету! Есть только по одному туда и сюда. Манчестер, в принципе, при наличиии LVDS, можно себе повзолить. Однако, проблема даже не столько в синхронизации, а в создании контроллера передачи данных сетевого уровня (по двум линиям) с фрэймингом, CRC, FIFO, обранужением ошибок, повторной передачей и пр. вкусностями, который бы работал не через жопу. А то год назад пробовал сделать подобную обвязку на UART. Кое-как оно завелось на 115200 и то с клоком не выше 5 МГц и тучей глюков. Например, если добавляю строчку типа "wire НИКОГДА_НЕИСПОЛЬЗУЕМЫЙ_В_ПРОЕКТЕ_ПРОВОД" и оно уже не работает. Ибо писать код надо правильно. Не умею. Поэтому хочется скачать чего-нибудь готовое и работающее, особенно если кто-то уже юзал. И это все на устаревшей серии, которая то и ресурсов для такого не имеет. Это Вам надо в раздел интерфейсов конференции. Если UART не написали, то и все Выше перечисленное под вопросом. Вот выкладывал UART. Может поможет. (Частоту любую можно поставить) http://electronix.ru/forum/index.php?showt...mp;#entry425957
|
|
|
|
|
Sep 27 2008, 20:09
|

Участник

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

|
Мы для подобных случаев используем I2C подобный протокол, а в качестве носителя драйвера RS485. Хотя можно подобрать и посовременней.
--------------------
Обойденные грабли - недополученный опыт!
|
|
|
|
|
Oct 3 2008, 19:33
|

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

|
Цитата(maailmankaikkeus @ Sep 23 2008, 14:09)  К сожалению, когда придумали камень FLEX, такой вещи как PLL еще не придумали  Не думаю, что несколько сантиметров будут играть существенную роль на нескольких мегагерцах. Какие еще подобные протоколы существуют, которые можно реализовать в камне?! FLEX10KE есть с PLL, на конце буковка 'x'  Мы применяем связки FLEX10KE->MAX9112---->MAX9159->FLEX10KE (LVDS) Работает отлично, протокол свой(подобный MIL-STD-1553), частота 66МГц. Также имели дело с читым MIL-STD-1553, модуль алгоритма полностью в плис APEX, физика на микросхемах HOLT IC.
Сообщение отредактировал Splice - Oct 3 2008, 19:44
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|