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

 
 
> Выбор ПЛИС для мультиплексора, 8UART в SPI или 2 UART
drum1987
сообщение Apr 22 2013, 06:56
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 255
Регистрация: 3-02-09
Из: Омск
Пользователь №: 44 323



Добрый день!

Появилась задача мультиплексировать 8 UART со скоростью 1Мбит/с. Внутренне понимаю, что нужна ПЛИС для решения задачи, но поскольку никогда с ними не работал, то оценить под какую можель нужно заложиться не знаю. на другой стороне есть 1 SPI или 2 UART(до 5 Мбит/с). входы мультиплексора необходимо иметь с триггером Шмидта.

Знающие люди - помогите.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 29)
Methane
сообщение Apr 22 2013, 07:05
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(drum1987 @ Apr 22 2013, 09:56) *
Добрый день!

Появилась задача мультиплексировать 8 UART со скоростью 1Мбит/с. Внутренне понимаю, что нужна ПЛИС для решения задачи, но поскольку никогда с ними не работал, то оценить под какую можель нужно заложиться не знаю. на другой стороне есть 1 SPI или 2 UART(до 5 Мбит/с). входы мультиплексора необходимо иметь с триггером Шмидта.

Знающие люди - помогите.

А что значит "мультиплексировать"? Если уже есть UART а надо просто подключать к нему 1 из 8 портов, то самая дешевая CPLD подойдет. Хотя я бы взяли чегонить из 74HC
Go to the top of the page
 
+Quote Post
drum1987
сообщение Apr 22 2013, 07:14
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 255
Регистрация: 3-02-09
Из: Омск
Пользователь №: 44 323



Нужно одновременно принимать и передавать во все 8 уартов. Тоесть не просто коммутировать нужный вход с выходом, а делать чтото вроде TDMA.
Go to the top of the page
 
+Quote Post
Methane
сообщение Apr 22 2013, 07:17
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(drum1987 @ Apr 22 2013, 10:14) *
Нужно одновременно принимать и передавать во все 8 уартов. Тоесть не просто коммутировать нужный вход с выходом, а делать чтото вроде TDMA.

На одной и тойже скорости или на разных? Что есть кроме SPI?
Go to the top of the page
 
+Quote Post
drum1987
сообщение Apr 22 2013, 07:24
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 255
Регистрация: 3-02-09
Из: Омск
Пользователь №: 44 323



8 uart каждый на 1 мгц (1Мбит/с). Есть spi или 2 uart
Go to the top of the page
 
+Quote Post
iosifk
сообщение Apr 22 2013, 07:32
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(drum1987 @ Apr 22 2013, 10:56) *
Добрый день!

Появилась задача мультиплексировать 8 UART со скоростью 1Мбит/с. Внутренне понимаю, что нужна ПЛИС для решения задачи, но поскольку никогда с ними не работал, то оценить под какую можель нужно заложиться не знаю. на другой стороне есть 1 SPI или 2 UART(до 5 Мбит/с). входы мультиплексора необходимо иметь с триггером Шмидта.

И это еще не все, как говорят рекламисты...
Если 8 потоков данных на входе и 1 на выходе, то нужно, чтобы все данные со входа пролезли на выход...
А как, если 8х1=8 1Мбит/с, а на выходе есть только 5 ??? Но и это еще не все... Кроме скорости передачи есть еще Стартовые, Стоповые, Паритеты. И их соответственно надо пересчитать "от входа к выходу"...
Как часто на входе общий поток на входе превысит выходной и насколько? Этим же определяется буфер FIFO... И он определит "емкость" кристалла и его стоимость. Либо FIFO надо делать внешнее. И тогда сложность проекта резко увеличится, ибо надо будет либо ставить 8 FIFO, либо делать разборку, какой байт от какого канала записан.
И как получатель потока поймет из какого канала передавался байт?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Methane
сообщение Apr 22 2013, 07:38
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(drum1987 @ Apr 22 2013, 10:24) *
8 uart каждый на 1 мгц (1Мбит/с). Есть spi или 2 uart

Ищите через что еще можно данные передать. Ну там вход, через который можно дернуть за прерывание и шину адресса/данных, это классика. Иначе геморой себе сделаете на пустом месте грандиозный.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Apr 22 2013, 07:48
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Methane @ Apr 22 2013, 11:38) *
Иначе геморой себе сделаете на пустом месте грандиозный.

Присоединяюсь!
И могу точно сказать, что если что-то сразу кажется некрасивым, как в этом случае, то это значит, что задача поставлена НЕ ВЕРНО!
У Вас что за данные? Это непрерывные потоки видео? Или сбор информации о медленном объекте? А в таком случае, зачем нужны такие скорости? И почему не сделать распределенную обработку? 8 дешевых микроконтроллеров будут дешевле, чем "мультиплексор на ПЛИС"...
Так что начните с "Гайки М3" и постарайтесь пересмотреть задачу....


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
_pv
сообщение Apr 22 2013, 07:52
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



http://www.maximintegrated.com/datasheet/index.mvp/id/6560
Go to the top of the page
 
+Quote Post
Victor®
сообщение Apr 22 2013, 07:55
Сообщение #10


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(iosifk @ Apr 22 2013, 10:48) *
Присоединяюсь!
И могу точно сказать, что если что-то сразу кажется некрасивым, как в этом случае, то это значит, что задача поставлена НЕ ВЕРНО!


Согласен.
Почему бы не посмотреть в сторону RS-485 (c Modbus или Profibus, например)?


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post
drum1987
сообщение Apr 22 2013, 07:57
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 255
Регистрация: 3-02-09
Из: Омск
Пользователь №: 44 323



Пересматривать задачу у меня не получится - она у меня уже есть. Попробую описать ее подробнее:
Есть 8 датчиков, которые срабатывают одновременно и дают N бит со скоростью 1Мбит/с. N~200-400. Задача мультиплексора свести все эти потоки в один с добавлением адреса откуда что пришло.
Запуск осуществляется мультиплексором путем передачи данных в датчики.
На другой стороне есть либо 2 UART, но большей скорости(5Мбит/с), либо SPI (30Мбит/с). UART нужен в режиме RX, TX. Ничего больше не надо.

Датчики конкретные уже есть - у них uart и накрутить туда rs485 или чтото другое я не могу...

MAX14830 по температуре не подходит...надо до 105.

Сообщение отредактировал drum1987 - Apr 22 2013, 08:04
Go to the top of the page
 
+Quote Post
Methane
сообщение Apr 22 2013, 08:06
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(drum1987 @ Apr 22 2013, 10:57) *
Пересматривать задачу у меня не получится - она у меня уже есть. Попробую описать ее подробнее:
Есть 8 датчиков, которые срабатывают одновременно и дают N бит со скоростью 1Мбит/с. N~200-400. Задача мультиплексора свести все эти потоки в один с добавлением адреса откуда что пришло.
Запуск осуществляется мультиплексором путем передачи данных в датчики.
На другой стороне есть либо 2 UART, но большей скорости(5Мбит/с), либо SPI (30Мбит/с).

Датчики конкретные уже есть - у них uart и накрутить туда rs485 или чтото другое я не могу...

Тоесть вам надо сформировать аппаратно запрос со всех датчиков, потом принять все, на одинаковой скорости как я понял, и слить в контроллер? Тогда все проще. Делаете SPI мастер, который будет опрашивать контроллер, и если есть запрос, то формировать свой запрос на датчики. Потом декодировать, и сливать в контроллер уже готовую информацию. Тогда все красиво получится. Если есть SPI с ПДП, как в AVR32UC то вообще замечательно будет.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Apr 22 2013, 08:15
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(drum1987 @ Apr 22 2013, 11:57) *
Пересматривать задачу у меня не получится - она у меня уже есть. Попробую описать ее подробнее:
Есть 8 датчиков, которые срабатывают одновременно и дают N бит со скоростью 1Мбит/с. N~200-400.


Это типичная ошибка "программиста"...
Давайте еще раз и внимательно.
Есть физический объект. Он меняет свои параметры, которые передаются датчикам. Как быстро объект может менять свои параметры? Ну, например температура объекта массой 100 кГ скорее всего не изменится за 10 сек, если только речь не идет о камере сгорания в ракете. Так какой тогда смысл гнать информацию в "центр" на скорости в 1Мбит??? Кто опрашивает датчики и как часто? Или они сами гонят данные в "центр"?
Если информация, поступающая от датчиков имеет локальные алгоритмы обработки, например фильтрация шумов или сравнение с уставкой, то в таком случае делается распределенная обработка, при этом поток данных в "центр" значительно уменьшается. И все разнесенные обработчики подключаются к единому интерфейсу... У меня на сайте есть статья про "Квадригу"...



--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
drum1987
сообщение Apr 22 2013, 08:15
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 255
Регистрация: 3-02-09
Из: Омск
Пользователь №: 44 323



Methane
Именно так мне и нужно, просто нужно оценить какую ПЛИС надо для этого

iosifk
Да чтож вы так то...у меня есть задание 1 Мбит/с я не могу спорить с этим. А там как оно получилось уже не особо важно.

Сообщение отредактировал drum1987 - Apr 22 2013, 08:18
Go to the top of the page
 
+Quote Post
Methane
сообщение Apr 22 2013, 08:40
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(drum1987 @ Apr 22 2013, 11:15) *
Methane
Именно так мне и нужно, просто нужно оценить какую ПЛИС надо для этого

Любая подойдет. Если именно ПЛИС. И на процессор место останется. Вообще вы можете начать писать проект на HDL, потом собрать его для разных ПЛИС, посмотреть сколько ресурсов оно занимает.
Go to the top of the page
 
+Quote Post
_pv
сообщение Apr 22 2013, 08:47
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(drum1987 @ Apr 22 2013, 14:57) *
MAX14830 по температуре не подходит...надо до 105.

с этого и надо было начинать sm.gif
у nxp еще есть spi - uart расцирители SC16IS752, вроде с инустриальными температурами. только там по два уарта.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Apr 22 2013, 10:49
Сообщение #17


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(_pv @ Apr 22 2013, 12:47) *
с этого и надо было начинать sm.gif

Согласен! Начинать и надо было с этого.
Итак, если датчики работают в режиме "запрос-ответ", то Вам и ПЛИС не нужна.
По входу 2 раза по 4-И они будут работать как "ИЛИ по нулю"...
А по выходу 4 раза по 2-ИЛИ, они будут работать как "И по нулю"...
Итого 2 корпуса логики и к ним преобразователи уровней. А уж логику можно подобрать на требуемую температуру куда как легче, чем CPLD...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
drum1987
сообщение Apr 22 2013, 11:36
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 255
Регистрация: 3-02-09
Из: Омск
Пользователь №: 44 323



Дело в том что запрос нужно(крайне желательно) слать одновременно на все. После этого датчики тоже ответят "одновременно"(во всяком случае с наложением точно), так вот эти данные и нужно запихать в один более скоростной порт(SPI) и выдать поочереди
Go to the top of the page
 
+Quote Post
Methane
сообщение Apr 22 2013, 11:41
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(drum1987 @ Apr 22 2013, 14:36) *
Дело в том что запрос нужно(крайне желательно) слать одновременно на все. После этого датчики тоже ответят "одновременно"(во всяком случае с наложением точно), так вот эти данные и нужно запихать в один более скоростной порт(SPI) и выдать поочереди

Ну вот и купите плату с самой дешевой плисиной. Прицепите к ней 8 преобразователей уровня, таких которые RS232 на мегабите потянут. Сформируйте на ней запросный код. Скопом убедитесь что модули отвечают. Той же ПЛИСиной примите данные. С помощью квартуса убидитесь что данные приняты правильно. По SPI перегоните данные в контроллер.
Go to the top of the page
 
+Quote Post
MaslovVG
сообщение Apr 22 2013, 11:58
Сообщение #20


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

Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134



Цитата(drum1987 @ Apr 22 2013, 15:36) *
Дело в том что запрос нужно(крайне желательно) слать одновременно на все. После этого датчики тоже ответят "одновременно"(во всяком случае с наложением точно), так вот эти данные и нужно запихать в один более скоростной порт(SPI) и выдать поочереди

В таком случае вам нужно реализовать в ПЛИС восемь УАРТ два буфера озу на 8 пакетов каждый, какой нибудь контроллер для упаковки пакетов и еще быстрый канал передачи на верхний уровень.
Если устройство единичное я бы взял одноплатный промышленный РС навесил на него расширители до 8-УАРТ и плясал в этой конфигурации.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Apr 22 2013, 12:17
Сообщение #21


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



drum1987
Пауза между передачами будет? Время для перепаковки у Вас будет?
Т.е. вначале все приняли - перепаковали - все передали. И так по кругу, если есть пауза между передачами c host... Какой объем данных Вы получаете?
Или нужен полный реалтайм и перепаковка делается "на проходе"?


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
drum1987
сообщение Apr 22 2013, 12:28
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 255
Регистрация: 3-02-09
Из: Омск
Пользователь №: 44 323



Цитата(Methane @ Apr 22 2013, 18:41) *
Ну вот и купите плату с самой дешевой плисиной. Прицепите к ней 8 преобразователей уровня, таких которые RS232 на мегабите потянут. Сформируйте на ней запросный код. Скопом убедитесь что модули отвечают. Той же ПЛИСиной примите данные. С помощью квартуса убидитесь что данные приняты правильно. По SPI перегоните данные в контроллер.

Так посоветуйте мне ПЛИС smile3046.gif я именно это и прошу

Цитата(Maverick @ Apr 22 2013, 19:17) *
drum1987
Пауза между передачами будет? Время для перепаковки у Вас будет?
Т.е. вначале все приняли - перепаковали - все передали. И так по кругу, если есть пауза между передачами c host... Какой объем данных Вы получаете?
Или нужен полный реалтайм и перепаковка делается "на проходе"?

Время есть между посылками
Go to the top of the page
 
+Quote Post
Methane
сообщение Apr 22 2013, 12:31
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(drum1987 @ Apr 22 2013, 15:28) *
Так посоветуйте мне ПЛИС smile3046.gif я именно это и прошу


Ну откуда я знаю что в Омске есть, кроме водки медведев и балалаек. Циклон Альтеровский к примеру есть? Судя по потому что вы рассказываете, даже в самый дохлый влезет.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Apr 22 2013, 12:39
Сообщение #24


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(drum1987 @ Apr 22 2013, 15:28) *
Так посоветуйте мне ПЛИС smile3046.gif я именно это и прошу
Время есть между посылками

Выбирайте любую FPGA, смотрите на количество блочной памяти, она Вам понадобиться для организации буфера (фифо)...
Смотрите циклон у альтеры, или спартан у хилых...
Тут Вам решать цена/сроки покупки/где покупать...


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Apr 22 2013, 14:41
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(drum1987 @ Apr 22 2013, 19:28) *
Время есть между посылками

Каков средний битрейт на каждый канал?
На входе - честный RS232 (с 12-вольтовыми уровнями)? Тогда преобразователи (на такую скорость и температурный диапазон) из RS232 в TTL/CMOS влетят вам в копеечку.
ПЛИС подойдёт почти любая из дешёвых.
Go to the top of the page
 
+Quote Post
maksimp
сообщение Apr 23 2013, 03:12
Сообщение #26


Местный
***

Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023



Вам нужно будет сделать 8 UARTов, результат передавать по SPI. Полудплексный UART - это около 60 ячееек ПЛИС. Ячейка - это триггер плюс входная логика. Полудуплексный - это который передавать и принимать одновременно не умеет. Полнодуплексный, который умеет передавать и принимать одновременно, займёт несколько больше ячеек.
Если полудуплексных вам достаточно, то нужно 60*8=480 ячеек. Запас в 2 раза очень желательно. То есть не менее 1000 ячеек.
Выбирать можно например из семейства max2 от Altera, чтобы не нужно было ставить конфигурационное ПЗУ отдельно.
Тогда EPM1270 подойдёт наверное, а EPM570 не подойдёт.
Но сначала всё равно лучше сделать программу ПЛИС, и только потом плату разводить.
Go to the top of the page
 
+Quote Post
Methane
сообщение Apr 23 2013, 03:25
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(maksimp @ Apr 23 2013, 06:12) *
Выбирать можно например из семейства max2 от Altera, чтобы не нужно было ставить конфигурационное ПЗУ отдельно.

Я бы все же посоветовал начинать с FPGA. Там и ресурсов для всяких анализаторов гораздо больше, и память есть, и кол-во циклов перезаписи не ограниченное.
Go to the top of the page
 
+Quote Post
vladec
сообщение Apr 23 2013, 06:56
Сообщение #28


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

Группа: Свой
Сообщений: 1 167
Регистрация: 3-10-05
Из: Москва
Пользователь №: 9 158



У Xilinx, посмотрите, например, XC3S200A-VQ100, в ней же можно также организовать и микроконтроллер на ядре PicoBlaze, все должно поместиться
Go to the top of the page
 
+Quote Post
drum1987
сообщение Apr 23 2013, 07:10
Сообщение #29


Местный
***

Группа: Участник
Сообщений: 255
Регистрация: 3-02-09
Из: Омск
Пользователь №: 44 323



Уровни там 3,3В так что согласовывать уровни не надо...

Спасибо всем за ответы касательно ПЛИС. Сел за изучение спартана (в конторе есть опыт с ксайлинкс).
Go to the top of the page
 
+Quote Post
Methane
сообщение Apr 23 2013, 07:50
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(drum1987 @ Apr 23 2013, 10:10) *
Уровни там 3,3В так что согласовывать уровни не надо...

Альтера не рекомендует 3.3 использовать. Сейчас все больше на 2.5 или вообще 1.8 переходят.
Go to the top of the page
 
+Quote Post

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

 


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


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