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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Десять УАРТов, гулять так гулять
pvman
сообщение Dec 13 2017, 09:41
Сообщение #1


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

Группа: Участник
Сообщений: 168
Регистрация: 4-07-08
Из: Россия
Пользователь №: 38 751



Здравствуйте, коллеги!
Для одной задачи нужно собрать девайс с 10 уартами.
Уменьшить количество не получается, т.к. нужно работать с этими потоками,
смешивать из них данные и т.д.
Понадобится как минимум два контроллера STM32, у которых по 6 уартов на борту.
Как осуществить обмен между ними? Есть ли грамотные решения для быстрого доступа к данным другого мк?

скорость по уартам - 250килобит/с
Go to the top of the page
 
+Quote Post
krux
сообщение Dec 13 2017, 09:42
Сообщение #2


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

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



смотря что и как смешивать, и с какими временнЫми (мин, макс) задержками.
имхо, так похоже, что это будет нормальная задача для ПЛИС.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
x893
сообщение Dec 13 2017, 09:53
Сообщение #3


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

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Грамотные решения всегда есть.
на бумажке умножаем 250 х 6 = 1500
Исходя из этого и пляшем.
Go to the top of the page
 
+Quote Post
V_N
сообщение Dec 13 2017, 09:58
Сообщение #4


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

Группа: Свой
Сообщений: 162
Регистрация: 12-01-09
Из: Харьков
Пользователь №: 43 270



STM32 с FSMC ( например STM32F217) + FPGA ( например EP3C25E144I7N )
Go to the top of the page
 
+Quote Post
Den64
сообщение Dec 13 2017, 10:10
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 584
Регистрация: 22-11-07
Из: Курская область
Пользователь №: 32 571



Цитата(pvman @ Dec 13 2017, 12:41) *
Понадобится как минимум два контроллера STM32, у которых по 6 уартов на борту.
Как осуществить обмен между ними?

SPI
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 13 2017, 10:46
Сообщение #6


Гуру
******

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



Цитата(pvman @ Dec 13 2017, 12:41) *
Для одной задачи нужно собрать девайс с 10 уартами.

Понадобится как минимум два контроллера STM32, у которых по 6 уартов на борту.
Как осуществить обмен между ними? Есть ли грамотные решения для быстрого доступа к данным другого мк?

скорость по уартам - 250килобит/с

Вопросов достаточно...
10 УАРТов, и что данные так и прут потоком?
Тогда применяя 2 процессора - считаем. С одной стороны на каждый подвешено 5 УАРТов и надо данные от них получать. А с другой стороны надо получать еще столько же данных из второго процессора и еще столько же туда отдать. Ну это если алгоритм требует полной картины. И при этом, данные от входов могут идти потоком, но данные между процессорами потребуют либо аппаратных сигналов, стробирующих кадры, либо при программной синхронизации потребуется протокол передачи данных. Сборка данных в кадры и разборка полученных данных. Да еще метки времени, наверняка и они понадобятся....
И мне кажется, что весь процессор на это и рухнет...

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

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
x893
сообщение Dec 13 2017, 11:28
Сообщение #7


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

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



MAX14830 + STM32 (если так хочется) и никаких вопросов и гемора с FPGA.
P.S. Телепатия конечно помогла бы. Но какой вопрос- такой и ответ
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 13 2017, 11:46
Сообщение #8


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(pvman @ Dec 13 2017, 11:41) *
Как осуществить обмен между ними? Есть ли грамотные решения для быстрого доступа к данным другого мк?
скорость по уартам - 250килобит/с

На i.MX RT1050 можно сделать минимум 16-ть UART-ов на базе Flexible I/O
Это не считая 8-и встроенных нативных UART-ов
Go to the top of the page
 
+Quote Post
GefarD
сообщение Dec 13 2017, 11:51
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 363
Регистрация: 27-11-10
Пользователь №: 61 209



Последовательно не хотите подключать?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 13 2017, 11:54
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Если нужно много UART-ов да ещё с большой скоростью, то STM32 пожалуй будет самым худшим выбором. Ну разве, что немного лучше чем AVR biggrin.gif
Хотя если "без куба - никуда", то тут уже ничего не попишешь.... laughing.gif
Go to the top of the page
 
+Quote Post
@Ark
сообщение Dec 13 2017, 11:55
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 688
Регистрация: 13-05-16
Пользователь №: 91 710



Цитата(pvman @ Dec 13 2017, 12:41) *
Здравствуйте, коллеги!
Для одной задачи нужно собрать девайс с 10 уартами...

Чтобы получить толковые советы, вам придется раскрыть постановку задачи.
Когда вся картина будет понята, тогда и можно будет предлагать решения.
Сейчас слишком много неизвестных подробностей, которые кардинально могут все изменить...

Сообщение отредактировал @Ark - Dec 13 2017, 11:56
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 13 2017, 12:01
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Nuvoton семейство NUC970 - даташит говорит о 10 полноценных UART-ах (!).
Полноценные - это значит имеющие FIFO. 6 из них - глубиной 64 байта, 4 - глубиной 16 байт.
Сколько выведено на пины - нужно смотреть конкретный корпус.
Tiva (tm4c129) - 8 полноценных UART-ов (16-byte FIFO) + ещё 2 можно эмулировать программно.
Go to the top of the page
 
+Quote Post
mantech
сообщение Dec 15 2017, 12:10
Сообщение #13


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(jcxz @ Dec 13 2017, 15:01) *
Nuvoton семейство NUC970 - даташит говорит о 10 полноценных UART-ах (!).


Есть минус - внешняя флешка.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 15 2017, 14:37
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(mantech @ Dec 15 2017, 14:10) *
Есть минус - внешняя флешка.

Этот минус ничтожен по сравнению с необходимостью ставить 2 МК (как собирается автор), писать в них две прошивки, писать между ними обмен и т.п.
Go to the top of the page
 
+Quote Post
x893
сообщение Dec 15 2017, 15:37
Сообщение #15


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

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Вот бы посмотреть видео как будет создаваться программа для NU....
Начиная от монтажа на плату и заканчивая обменом данными.

P.S. Видимо простой вариант с MAX14830 не подходит по уровню геморроя.
Go to the top of the page
 
+Quote Post
pvman
сообщение Dec 15 2017, 19:17
Сообщение #16


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

Группа: Участник
Сообщений: 168
Регистрация: 4-07-08
Из: Россия
Пользователь №: 38 751



всем спасибо за ответы.
MAX14830 не очень подходит, т.к. нет произвольного доступа к данным соседнего МК, придется городить протокол, не впишусь во временные рамки..
Вариант с плис, возможно будет разумным решением, но я не соображаю в verilog. (
250килобит/с, нужно писать пакеты каждого в свой массив и перекидывать с некоторыми изменениями (несложными) в другой поток.
грубо говоря - коммутатор потоков

Сообщение отредактировал pvman - Dec 15 2017, 19:18
Go to the top of the page
 
+Quote Post
@Ark
сообщение Dec 15 2017, 19:24
Сообщение #17


Знающий
****

Группа: Участник
Сообщений: 688
Регистрация: 13-05-16
Пользователь №: 91 710



Цитата(pvman @ Dec 15 2017, 22:17) *
Вариант с плис, возможно будет разумным решением...

Go to the top of the page
 
+Quote Post
gosha-z
сообщение Dec 15 2017, 19:42
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 30-10-05
Пользователь №: 10 288



Цитата(pvman @ Dec 15 2017, 22:17) *
MAX14830 не очень подходит, т.к. нет произвольного доступа к данным соседнего МК, придется городить протокол, не впишусь во временные рамки..

Протокол чего с чем? MAX14830 - это 4 UARTа на i2c/spi, никакого микроконтроллера, обрабатывайте что хотите и как хотите.
Go to the top of the page
 
+Quote Post
x893
сообщение Dec 15 2017, 19:57
Сообщение #19


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

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Вот и я тоже не понял про соседний МК.
Но с FPGA конечно пафосно и денег больше.
Go to the top of the page
 
+Quote Post
mantech
сообщение Dec 15 2017, 20:12
Сообщение #20


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(x893 @ Dec 15 2017, 18:37) *
Вот бы посмотреть видео как будет создаваться программа для NU....
Начиная от монтажа на плату и заканчивая обменом данными.


Да вообще-то так же, как и для СТМ, только писать прогу через программатор во внешнюю флеш или на сд-карту..
Go to the top of the page
 
+Quote Post
Plain
сообщение Dec 15 2017, 20:28
Сообщение #21


Гуру
******

Группа: Участник
Сообщений: 6 776
Регистрация: 5-03-09
Из: Москва
Пользователь №: 45 710



Цитата(pvman @ Dec 15 2017, 22:17) *
250килобит/с, нужно писать пакеты каждого в свой массив и перекидывать с некоторыми изменениями (несложными) в другой поток. грубо говоря - коммутатор потоков

Ну если таки всплыло ещё и 10 неких массивов, то даже если и к 10-й странице темы не всплывёт их размер, то 10 микроконтроллеров с одинаковыми программами.
Go to the top of the page
 
+Quote Post
x893
сообщение Dec 15 2017, 21:10
Сообщение #22


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

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Тут одному гуру разработок нужно было 20 Мбит/сек между двумя МК обмениваться.
Но при расчетах на счетах оказалось, что реальная скорость 500 Кбит/сек.
Наверное и здесь такая же ситуация. Нужно 10, но хватит и 2-х. Остальные про запас.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 16 2017, 14:12
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(mantech @ Dec 15 2017, 22:12) *
Да вообще-то так же, как и для СТМ, только писать прогу через программатор во внешнюю флеш или на сд-карту..

Не нужен программатор. При отладке - загрузка через JTAG. И в состав программы включить функцию прошивки себя во внешнюю флешь.
Написание/отладка/поддержка программы для одного МК будет на порядок проще чем то же самое для связки из двух МК, пускай даже одинаковых.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 16 2017, 16:23
Сообщение #24


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(jcxz @ Dec 16 2017, 14:12) *
Не нужен программатор. При отладке - загрузка через JTAG. И в состав программы включить функцию прошивки себя во внешнюю флешь.

вот именно, пусть один мк программирует другие

Цитата(jcxz @ Dec 16 2017, 14:12) *
Написание/отладка/поддержка программы для одного МК будет на порядок проще чем то же самое для связки из двух МК, пускай даже одинаковых.

если функции разделены, то два разных - не сложнее
два одинаковых - проще в два раза
десять одинаковых - проще в десять раз
Go to the top of the page
 
+Quote Post
skripach
сообщение Dec 17 2017, 08:10
Сообщение #25


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



У Renesas полно контроллеров имеющих 10 - 18 юартов, например.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Dec 17 2017, 08:20
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



..

Сообщение отредактировал blackfin - Dec 17 2017, 10:10
Причина редактирования: Войны не будет. Флуд будет просто удаляться.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 17 2017, 08:28
Сообщение #27


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(skripach @ Dec 17 2017, 10:10) *
У Renesas полно контроллеров имеющих 10 - 18 юартов, например.

Посмотрите внимательней там.
UART-ы там без FIFO, а у DMA всего 7-мь каналов.
UART-ы разные по функциональности.
Как вы с этим будете бороться?
Go to the top of the page
 
+Quote Post
skripach
сообщение Dec 17 2017, 09:30
Сообщение #28


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата(AlexandrY @ Dec 17 2017, 11:28) *
Посмотрите внимательней там.
UART-ы там без FIFO, а у DMA всего 7-мь каналов.
UART-ы разные по функциональности.
Как вы с этим будете бороться?

Я никак не буду, ТС просил 10 юартов я Renesas дал их ему.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 17 2017, 12:35
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(skripach @ Dec 17 2017, 11:30) *
Я никак не буду, ТС просил 10 юартов я Renesas дал их ему.

25*10*2=500кГц - средняя частота прерываний при непрерывных потоках по всем UART-ам если без FIFO и без DMA.
Сможет ТС реализовать такую работу на 120МГц да ещё и как он хочет - с некоторыми модификациями данных?
Я сомневаюсь.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 17 2017, 12:56
Сообщение #30


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(jcxz @ Dec 17 2017, 13:35) *
на 120МГц

легко, 10 камней - это уже 1200 мгц
Go to the top of the page
 
+Quote Post
razrab83
сообщение Dec 21 2017, 09:45
Сообщение #31


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 5-05-17
Пользователь №: 96 902



Цитата(pvman @ Dec 15 2017, 20:17) *
Вариант с плис, возможно будет разумным решением, но я не соображаю в verilog. (
Можно решить эту задачу на плис не зная верилог. Собрать в плис (в гуях галочками) процессор (в некоторых ядро уже встроено) и всю периферию включить в процессор. Хоть 10, хоть 20 уартов, лишь бы мяса у плис хватило. И внешний процессор не нужен.
Go to the top of the page
 
+Quote Post
pvman
сообщение Dec 21 2017, 10:51
Сообщение #32


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

Группа: Участник
Сообщений: 168
Регистрация: 4-07-08
Из: Россия
Пользователь №: 38 751



Цитата(razrab83 @ Dec 21 2017, 12:45) *
Можно решить эту задачу на плис не зная верилог. Собрать в плис (в гуях галочками) процессор (в некоторых ядро уже встроено) и всю периферию включить в процессор. Хоть 10, хоть 20 уартов, лишь бы мяса у плис хватило. И внешний процессор не нужен.

сколько такая плис будет стоить? может там цена космос )
Go to the top of the page
 
+Quote Post
k155la3
сообщение Dec 23 2017, 12:35
Сообщение #33


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

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(pvman @ Dec 13 2017, 12:41) *
(1) Здравствуйте, коллеги!
Для одной задачи нужно собрать девайс с 10 уартами.
. . .
(2) скорость по уартам - 250килобит/с

(1) Если есть хоть какая-то аналогия с коммутацией пакетов (тобишь свичем)
То предлагаю рассмотреть такую структуру:
- канал UART входит на "контроллер канала" (по кол-ву каналов, преобразователь "тупого" UART во внутрисхемную "пакетную" скоростную шину)
- мощный процессор для обработки пакетов по внутрисхемной шине.

(2) свичи как-то умудряются работать с 100 Мбит и более
Go to the top of the page
 
+Quote Post
mantech
сообщение Dec 23 2017, 13:32
Сообщение #34


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(pvman @ Dec 21 2017, 13:51) *
сколько такая плис будет стоить? может там цена космос )


Может я чего-то упустил, предлагался проц с таким кол-вом уартов (NUC970). Чем он-то не подошел?
Go to the top of the page
 
+Quote Post
VCO
сообщение Dec 23 2017, 14:50
Сообщение #35


Voltage Control Output
******

Группа: Свой
Сообщений: 4 598
Регистрация: 21-07-09
Из: Kursk
Пользователь №: 51 436



Цитата(pvman @ Dec 15 2017, 22:17) *
Вариант с плис, возможно будет разумным решением, но я не соображаю в verilog. (

Да он там и не нужен. Достаточно знать схемотехнику UART. После этого можно просто нарисовать схемотехнику: Параллельный порт МК - 10 UART.
В режиме Shematic САПР для ПЛИС сами проверят схему, оптимизируют и сгенерируют код прошивки без участия HDL (аппаратных языков программирования) типа VHDL или Verilog.
Цитата(pvman @ Dec 21 2017, 13:51) *
сколько такая плис будет стоить? может там цена космос )

Если наша - дорого (это FPGA Intel(Altera) в нашем корпусе). Если импортная - то это CPLD от Xilinx, Altera или Lattice, стоят недорого biggrin.gif
Вся прелесть в том, что Вы можете начать проект на CPLD уже сейчас на бесплатном ПО от производителя, а затем определиться с минимально-достаточным кристаллом и корпусом rolleyes.gif


--------------------
Слово - не воробей, вылетит - не пощадит
Go to the top of the page
 
+Quote Post
krux
сообщение Dec 24 2017, 04:03
Сообщение #36


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

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



например, EP4CE22E22C8N ~1200руб в розницу, ~850руб крупный опт. (но это с оговорками, что наружу только 10 UART, и больше ничего не надо)
простейший с точки зрения реализации вариант - в qsys накидать систему с nios2 и 10 UART, запустить nios2 на 125 МГц, и дальше как на обычном MCU писать на обычных Сях. без всяких "внешних" MCU.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 24 2017, 07:58
Сообщение #37


Гуру
******

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



Цитата(pvman @ Dec 21 2017, 13:51) *
сколько такая плис будет стоить? может там цена космос )

Чтобы иметь 10 каналов UART не надо размещать 10 полноценных блоков...
На самом деле, в ПЛИС можно реализовать многоканальный вариант довольно легко. Скажем берем 10 регистров и только один командо-аппарат который чуть больше, чем для одного канала, и он общий для всех. Вот он по-очередно обмолачивает 10 каналов. Или можно взять 10 х 10 память и тот же командо-аппарат. Поскольку частота внутри ПЛИС значительно больше, чем у UART... Так что ресурсов это много не займет...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:32
Рейтинг@Mail.ru


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