|
Сериальные протоколы |
|
|
|
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: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, 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
--------------------
Все может быть, и все быть может. И все, что может - может быть. Но одного лишь быть не может - того, чего не может быть.
|
|
|
|
Сообщений в этой теме
maailmankaikkeus Сериальные протоколы Sep 23 2008, 08:18 WEST128 Можно, если есть уверенность в том, что длина пути... Sep 23 2008, 08:35 maailmankaikkeus Цитата(WEST128 @ Sep 23 2008, 15:35) Можн... Sep 23 2008, 10:09  Splice Цитата(maailmankaikkeus @ Sep 23 2008, 14... Oct 3 2008, 19:33  Postoroniy_V Цитата(maailmankaikkeus @ Sep 24 2008, 11... Sep 24 2008, 04:52    sazh Цитата(maailmankaikkeus @ Sep 24 2008, 11... Sep 24 2008, 09:47 MrYuran Есть такая замечательная штука - маньчестер называ... Sep 24 2008, 04:36 AndruB Мы для подобных случаев используем I2C подобный пр... Sep 27 2008, 20:09
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|