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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Передача данных - что выбрать?, ASI?
RHnd
сообщение Aug 15 2008, 12:10
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Спешно и неожиданно поставили задачу: есть два циклона, между ними два провода - общий и для передачи информации. Необходимо обеспечить передачу информации от одного к другому. Скорость - около 15 МБит. Средний объем информации для одного сеанса - около 2 Гб (т.е. сеанс длится минут 20). Нужно обеспечить всякие там помехозащищенности, подтверждение приема, перезапрос блока при необходимости и т.п. - т.е. канал будет полудуплексный. "Руководитель" проекта выдает набор слов "ASI, кодирование 8 в 10, манчестер, нужно было еще вчера".
Я глянул описание мегафункции ASI от альтеры - что-то там очень много чего, высокие частоты и т.п. - не уверен, что подходит для данной задачи.
Ах, еще момент. Потенциально, эти два провода между циклонами будут заменены радиоканалом.

Вообщем, подскажите, пожалуйста, с какой стороны подступиться, в сторону каких протоколов, готовых решений или мегафункций смотреть? Время поджимает, буду благодарен за любую помощь и советы.

Заранее спасибо!
help.gif
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Aug 15 2008, 13:06
Сообщение #2


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Вопрос, хотите ли вы сразу на плате сделать точно то, что будет в радиоканале. Ибо 15 мегабод по радиоканалу - не столь очевидная, как может показаться на первый взгляд, задача: это WiFi, фактически. А потому, если ответ положительный - то с пролистывания док по WiFi я бы и начал, чтобы вообще представить, как такие задачи примерно могут быть решены. Если ответ отрицательный - канал по плате можно считать безпомеховым, и реализация любого самоизобретенного протокола не составит труда.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 15 2008, 13:40
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(DmitryR @ Aug 15 2008, 17:06) *
Вопрос, хотите ли вы сразу на плате сделать точно то, что будет в радиоканале.

Хороший вопрос. Будем считать, что пока нет. однако, канал на плате - не безпомеховый. Точнее, это провод некоторой длины между двумя платами.Соответственно, помехозащищенность и полудуплекс нужны. Можно изобретать свое, но хотелось бы не тратить время и по максимуму использовать готовые решения. Или, хотя бы, известные подходы.
По радио - к тому моменту, когда точно решат его ставить, можно будет постепенно понижать скорость передачи покуда не заработает. Да и потом, я на данный момент понятия не имею, что там за радио аппаратура будет. Если будет.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 16 2008, 07:10
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Неужели никто не решал похожих задач передачи информации? Поделитесь опытом, какие решения использовали? help.gif
Go to the top of the page
 
+Quote Post
maxfox2k
сообщение Aug 18 2008, 02:46
Сообщение #5


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

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



Цитата(RHnd @ Aug 15 2008, 16:40) *
однако, канал на плате - не безпомеховый. Точнее, это провод некоторой длины между двумя платами.Соответственно, помехозащищенность и полудуплекс нужны. Можно изобретать свое, но хотелось бы не тратить время и по максимуму использовать готовые решения. Или, хотя бы, известные подходы.

ethernet
Go to the top of the page
 
+Quote Post
slog
сообщение Aug 18 2008, 08:15
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Делал связь между 2-мя FPGA на 12 мегабит в полудуплексе. Физически через RS-485 метров на 10. Протокол самопальный. На основе RS-232 приёмников-передатчиков. Посылающий данные отправляет пакет стандартной структуры - заголовок, данные, CRC. Принимающий контролирует CRC и отправляет в ответ подтверждение. Никаких процессоров, готовых мегафункций и дополнительных кодировок не использовал, просто RS-232 приёмник-передатчик и автомат состояний.
Работает.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
alexander55
сообщение Aug 19 2008, 07:03
Сообщение #7


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(slog @ Aug 18 2008, 12:15) *
Делал связь между 2-мя FPGA на 12 мегабит в полудуплексе. Физически через RS-485 метров на 10.

Это надежное решение. С помехозащищенностью все хорошо.
Go to the top of the page
 
+Quote Post
ASN
сообщение Aug 19 2008, 17:30
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326



RHnd
Использовал передачу между двумя FPGA одному проводу на основе UART.Скорость - 10 Мбит через оптическую развязку. Можно было и больше, но не потребовалось. Работало надёжно. IMHO, кодировка 8/10 нужна при максимальном использовании полосы пропускания.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 19 2008, 20:37
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Всем большое спасибо!

Вообщем, решил делать на основе юарт. Планирую 15MHz в лини, в камне 75MHz - мажоритирование 3 из 5.

А пока я развлекаюсь, поясните мне, пожалуйста, а что такое 8-10 и для чего оно толком нужно? Как я понял из описание на альтеровскую мегафункцию, это кодирование просто позволяет в целом выровнять количество нулей и единиц. А зачем?
Go to the top of the page
 
+Quote Post
Postoroniy_V
сообщение Aug 20 2008, 01:19
Сообщение #10


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

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



Цитата(RHnd @ Aug 20 2008, 05:37) *
.....
А пока я развлекаюсь, поясните мне, пожалуйста, а что такое 8-10 и для чего оно толком нужно? Как я понял из описание на альтеровскую мегафункцию, это кодирование просто позволяет в целом выровнять количество нулей и единиц. А зачем?

тут коротенько http://en.wikipedia.org/wiki/8B10B


--------------------
Cogito ergo sum
Go to the top of the page
 
+Quote Post
Syberian
сообщение Aug 22 2008, 02:44
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 29-12-06
Из: Омск
Пользователь №: 23 999



Цитата(Postoroniy_V @ Aug 20 2008, 04:19) *
тут коротенько http://en.wikipedia.org/wiki/8B10B


мегафункция 8-10 есть в Квартусе. Избыточное кодирование с коррекцией ошибок.
Ее надо сериализировать и тупо туды-сюды по каналу гонять.
Проблемы в передаче данных, как тут уже упоминали, вылезут, и делать это непросто.
Если отойти от концепции Ви-Фи, имеем типичную задачу полудуплекса с коллизиями, задержками, арбитражом и проч. "прелестями". В случае радиоканала будем иметь еще и чудовищный джиттер + дефрейминг + помехи.

Предлагаю пакетную реализацию с подтверждениями. Естественно, покадрово. Разруливание коллизий - как в Ethernet, задержками на случайный квант.
Опыта, как сотворить все это чисто на ПЛИС, не имею. Я бы присоветовал использовать ПЛИС как PHY-адаптер со всякими коррекциями, манчестером и проч., а пакетирование проводить на DSP...
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 22 2008, 04:51
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(Syberian @ Aug 22 2008, 06:44) *
мегафункция 8-10 есть в Квартусе. Избыточное кодирование с коррекцией ошибок.

Она разве с коррекцией?
Цитата(Syberian @ Aug 22 2008, 06:44) *
Если отойти от концепции Ви-Фи, имеем типичную задачу полудуплекса с коллизиями, задержками, арбитражом и проч. "прелестями". В случае радиоканала будем иметь еще и чудовищный джиттер + дефрейминг + помехи.

Я весьма слаб в терминологии. Мне казалось, что задача арбитража возникает когда к одному ресурсу одновременно пытаются обратиться несколько потребителей. Где может возникнуть арбитраж при передаче point-to-point?
И что такое дефрейминг? 05.gif
Цитата(Syberian @ Aug 22 2008, 06:44) *
Предлагаю пакетную реализацию с подтверждениями. Естественно, покадрово. Разруливание коллизий - как в Ethernet, задержками на случайный квант.

Плохо как без терминологии-то. sad.gif Я собираюсь передавать весь объем данных порезав на куски по 128 (примерно) байт. К каждому куску добавляется CRC, на каждый кусок получается подтверждение. Кроме того, в начале каждого куска есть заголовок, покозывающий, что а) это кусок данных и б) номер этого куска в общем объеме (желательно по условиям задачи иметь возможность передавать только интересующую часть данных). Так же есть посылки без данных, только команды - сообщить статус и т.п.. Естественно, со своим CRC и с подтверждением. Так вот, мне казалось, что такие посылки и есть пакеты. С подтверждениями. Что тогда значит 'покадровость'?

Как я понимаю, коллизии это когда, скажем, оба поинта пытаются одновременно начать передачу? В моем случае это исключено - в конкретный момент только одно устройство из двух может инициировать сессию.
Цитата(Syberian @ Aug 22 2008, 06:44) *
Опыта, как сотворить все это чисто на ПЛИС, не имею. Я бы присоветовал использовать ПЛИС как PHY-адаптер со всякими коррекциями, манчестером и проч., а пакетирование проводить на DSP...

Не, мне это все надо засунуть в оставшиеся 3000 ячеек циклона, никакими дсп там и не пахнет. smile.gif
Кстати, на сколько реальна задача по объему?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Aug 22 2008, 05:39
Сообщение #13


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(RHnd @ Aug 22 2008, 08:51) *
Не, мне это все надо засунуть в оставшиеся 3000 ячеек циклона, никакими дсп там и не пахнет. smile.gif
Кстати, на сколько реальна задача по объему?

Если у вас осталось ВСЕГО 3000 ячеек, то есть использовать все вы не сможете, так как довольно трудно забить ПЛИС на 100%, то у вас могут возникнуть проблемы даже с проводной реализацией, а о радио и речи быть не может.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Aug 22 2008, 06:12
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Да не, не все так страшно. Там камень на 6k, из них около 1.5 тысяч займет другая часть проекта, а в оставшееся и надо засунуть приемо-передатчик. Вот я и прикинул - при наполнении камня процентов на 80 можно рассчитывать на 3k элементов. Плюс, свободно несколько килобайт памяти и pll.
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Aug 22 2008, 06:59
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(RHnd @ Aug 15 2008, 17:40) *
Хороший вопрос. Будем считать, что пока нет. однако, канал на плате - не безпомеховый. Точнее, это провод некоторой длины между двумя платами.Соответственно, помехозащищенность и полудуплекс нужны. Можно изобретать свое, но хотелось бы не тратить время и по максимуму использовать готовые решения. Или, хотя бы, известные подходы.


Какой длинны будет провод? Как сделано питание двух плат? От разных источников или от одного? Какой тип провода вы собираетесь использовать?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th August 2025 - 20:08
Рейтинг@Mail.ru


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