|
stm32 передать в ком поток 49мБит, в какую сторону думать? |
|
|
|
Nov 24 2017, 19:55
|
Местный
  
Группа: Свой
Сообщений: 366
Регистрация: 5-09-06
Из: Санкт-Петербург
Пользователь №: 20 107

|
Уважаемые,
до этого меня устраивала скорость около 4 мбит на f405 через usb fs. сейчас возникла необходимость передавать в комп примерно 50-60 мбит.
Я накапливаю эти данные в проц через 2 SPI и система работает следующим образом: * ОСи нет. * каждые 16мс по одному SPI накапливается 8*8*16*2 = 4кБайт * по второму 3*2*960*16 = 92160 байт. оба SPI синхронизированы, поэтому я знаю когда мне надо данные вычитывать и передавать. И вот по этому событию (прерыванию от дма) я хочу передавать данные в комп.
Принимать от компа данные... ну может байт 60 раз в секунду.
Поток, который надо (92160 + 4096)*8*62.5 = 48.128 мегабит (теоретически) + еще чуть-чуть.
Необходимо выбрать транспорт. * USB FS отпадает. Хотя и хорошо работает вплоть (я пробовал) до 4мБит. * Поскольку мне необходимо использовать двойной буфер + буфер для отправки данных, то мне нужно минимум 300к памяти. * А это только Н7. * поскольку у меня места мало, то могу использовать только 100 или (хуже) 144 -х ногие корпуса. А в них нет USB HS. * Внешний PHY для USB HS у меня плохо влезает, конфликтует с другими девайсами и сильно по корпусу раскидан. За сим: * Я думаю в сторону изернета. * из доступных примеров я нашел только реализацию на LAN1820/1842. Там тоже все ноги по корпусу раскиданы, но его я смог его развести. * но я не нашел внятных примеров как оно работает.
Поскольку у Н7 косяк - нет физики HS, то, похоже, хоть и с внешним MII, ETH выигрывает.
За сим вопросы: 1. LwIP без оси работает? Надеюсь, что да. 2. Если да, то операция записи в сокет сколько за раз данных проглотит? (в BSD машинах оно может втянуть в ядро сразу все за один вызов write() или send() а потом само передавать) 3. Если оно в таком виде работает, то можно ли в LwIP, открыть сразу 2 сокета (разные порты) и типа слушать их чем-то типа select() ? 4. И вообще, 50МБит получится?
Я проискал посмотрел, но кроме общих слов ничего внятного не нашел...
Заранее благодарю.
|
|
|
|
|
 |
Ответов
|
Nov 25 2017, 13:37
|
Местный
  
Группа: Свой
Сообщений: 366
Регистрация: 5-09-06
Из: Санкт-Петербург
Пользователь №: 20 107

|
Цитата(jcxz @ Nov 25 2017, 15:37)  Обработку IP до уровня UDP можно и самому написать, без сторонних костылей. Без DHCP. можно. Но! 1. надо быстро. 2. надо еще заморочиться с драйвером физуровня. на компе, винде, сырые сокеты простыми способами не поддерживаются. Так кто-нибудь вообще пробовал?
|
|
|
|
|
Nov 25 2017, 14:47
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
QUOTE (diwil @ Nov 25 2017, 15:37)  можно. Но! 1. надо быстро. 2. надо еще заморочиться с драйвером физуровня.
на компе, винде, сырые сокеты простыми способами не поддерживаются.
Так кто-нибудь вообще пробовал? Я просто оставлю это здесь.
Bootcore.zip ( 13.33 килобайт )
Кол-во скачиваний: 50На самом деле это tftp-бутлоадер для LPC1768. В нем есть ARP, ICMP (на пинг отвечает) и UDP (ибо сам tftp по UDP бегает). Переделываете под свои нужды всякие InitEMAC()/ETH_Out() и отпиливаете все, что в ветке switch(udp.tftp_rq.opcode), ибо это уже TFTP. Крайне сложная цепочка функций SendUDP -> SendIP -> ETH_Out - вот это Ваше все будет. Для красоты не забудьте выбросить там лишнее копирование. Ну а по поводу настоящего прибора - у меня тут многоканальный аудиоинтерфейс живет на Ethernet'е (проц LPC1768/100МГц), 16 каналов на вход, 16 на выход, 48кГц, 32 бита. Т.е. 25Мбит/с в каждую сторону. По TCP живет, шлет данные в обе стороны один раз в миллисекунду, с полноценной реализацией Fast Retransmit в обе стороны, так что джиттер в случае потери пакета не превышает 500мкс. И до 100% загрузки процессора там очень и очень далеко.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Nov 25 2017, 15:17
|
Местный
  
Группа: Свой
Сообщений: 366
Регистрация: 5-09-06
Из: Санкт-Петербург
Пользователь №: 20 107

|
Цитата(Rst7 @ Nov 25 2017, 17:47)  Я просто оставлю это здесь.
Bootcore.zip ( 13.33 килобайт )
Кол-во скачиваний: 50На самом деле это tftp-бутлоадер для LPC1768. В нем есть ARP, ICMP (на пинг отвечает) и UDP (ибо сам tftp по UDP бегает). Переделываете под свои нужды всякие InitEMAC()/ETH_Out() и отпиливаете все, что в ветке switch(udp.tftp_rq.opcode), ибо это уже TFTP. Крайне сложная цепочка функций SendUDP -> SendIP -> ETH_Out - вот это Ваше все будет. Для красоты не забудьте выбросить там лишнее копирование. Ну а по поводу настоящего прибора - у меня тут многоканальный аудиоинтерфейс живет на Ethernet'е (проц LPC1768/100МГц), 16 каналов на вход, 16 на выход, 48кГц, 32 бита. Т.е. 25Мбит/с в каждую сторону. По TCP живет, шлет данные в обе стороны один раз в миллисекунду, с полноценной реализацией Fast Retransmit в обе стороны, так что джиттер в случае потери пакета не превышает 500мкс. И до 100% загрузки процессора там очень и очень далеко. о! то что нужно. примного благодарен
|
|
|
|
Сообщений в этой теме
diwil stm32 передать в ком поток 49мБит Nov 24 2017, 19:55 Студент заборстроительного Обсуждалось уже много раз. Поиском что ли не умеет... Nov 24 2017, 20:02 diwil Цитата(Студент заборстроительного @ Nov 24 20... Nov 24 2017, 20:29 esaulenka У меня в закладках есть вот эта тема: https://elec... Nov 24 2017, 20:13 mantech Цитата(diwil @ Nov 24 2017, 22:55) За сим... Nov 24 2017, 21:23 diwil Цитата(mantech @ Nov 25 2017, 00:23) Каки... Nov 24 2017, 21:34  Огурцов через spi пролезет, через ethernet и lwip - вряд л... Nov 24 2017, 21:59  jcxz Цитата(diwil @ Nov 24 2017, 23:34) а каки... Nov 24 2017, 22:03 Огурцов Цитата(diwil @ Nov 24 2017, 19:55) поскол... Nov 24 2017, 22:06 _pv а FT2232H не справится ли с задачей забирания данн... Nov 24 2017, 23:09 jcxz Цитата(_pv @ Nov 25 2017, 01:09) и вместо... Nov 24 2017, 23:14  _pv Цитата(jcxz @ Nov 25 2017, 06:14) А в чём... Nov 24 2017, 23:44   jcxz Цитата(_pv @ Nov 25 2017, 01:44) драйвера... Nov 25 2017, 12:37    _pv Цитата(jcxz @ Nov 25 2017, 19:37) Диаграм... Nov 25 2017, 13:14 diwil Цитата(diwil @ Nov 24 2017, 22:55) 2. Есл... Nov 25 2017, 10:35 AVR Цитата(diwil @ Nov 25 2017, 13:35) или ес... Nov 25 2017, 11:12  Огурцов Цитата(AVR @ Nov 25 2017, 12:12) UDP прот... Nov 25 2017, 18:28 _pv Цитата(diwil @ Nov 25 2017, 20:37) Так кт... Nov 25 2017, 13:55 jcxz Цитата(diwil @ Nov 25 2017, 15:37) Так кт... Nov 25 2017, 14:20  ig_z QUOTE (Rst7 @ Nov 25 2017, 16:47) Ну а по... Nov 25 2017, 20:45   Rst7 QUOTE (ig_z @ Nov 25 2017, 22:45)
А мож... Nov 25 2017, 21:11    ig_z QUOTE (Rst7 @ Nov 25 2017, 23:11) Да, там... Nov 25 2017, 22:15 Rst7 QUOTE о! то что нужно.
примного благодарен
Н... Nov 25 2017, 20:39 Rst7 QUOTE То есть частота периферии кратна 48к. Красив... Nov 25 2017, 23:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|