Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Передать 40 мбит/с с устройства на ПК
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
-= Александр =-
Добрый день!

Появилась задача - передать из памяти в комп данные со скоростью не менее 40 мбит/с.
Из контроллеров умею только LPC и AVR. Что делать? Езернет у лпц слабоват. USB Hi-speed нету.
Как бы это по-проще сделать?
Подскажите какой-нить контроллер, желательно атмел или филипс, который это сможет.
Ну или какую-нить плату в компьютер с быстрым простым портом...
neiver
Самый простой способ, наверное всё-таки, Hi-Speed USB. Взять, например, FT2232HL.
prottoss
Цитата(neiver @ Mar 1 2012, 14:10) *
Самый простой способ, наверное всё-таки, Hi-Speed USB. Взять, например, FT2232HL.
Ага, а через RX/TX она протянет такую скорость???
-= Александр =-
Круто это FTDI эволюционировала! Пошел читать даташит. UART на такое точно не способен, но в ней же куча других интерфейсов. Интересно с какой реально скоростью она работает?
alag57
Цитата(-= Александр =- @ Mar 1 2012, 12:47) *
Езернет у лпц слабоват.


А так ли он слабоват? На 1768 4 заранее заполненных буфера с помощью DMA передаются
в цикле со скоростью больше 90Мбит.
neiver
Цитата(prottoss @ Mar 1 2012, 12:13) *
Ага, а через RX/TX она протянет такую скорость???

А parallel FIFO на что?
jcxz
CY7C68013A == USB High-speed + ядро x51
Интерфейс у неё - параллельный 8 или 16 бит
prottoss
Цитата(neiver @ Mar 1 2012, 14:56) *
А parallel FIFO на что?
Я не работал с FT2232 но подозреваю, что "parallel FIFO" это чистой воды "ногодрыгание", т.е на передачу одного бита нужно будет послать 5 команд по установке-сбросу соответствующих выводов GPIO.
-= Александр =-
В 245ой это было нормальное фифо. Никакого ногодрыганья там не наблюдалось, обычная параллельная шина со стробированием.
Вопрос не в этом: у кого она реально работала на высокой скорости?

Даташит обещает 12 МБИТ/сек для UART и от 25 МБАЙТ/сек для FIFO:

Цитата
The FT2232H supports a data transfer rate up to 12 Mbaud when configured as an
RS232/RS422/RS485 UART interface or greater than 25 Mbytes/second over a synchronous parallel FIFO
interface.


А блок ногодрыганья у нее отдельный и довольно медлительный:

Цитата
MPSSE.Multi-Purpose Synchronous Serial Engines (MPSSE), capable of speeds up to 30 Mbits/s, provides
flexible synchronous interface configurations.


Если она работает хоть в половину обещаных 25 мбайт/сек - это уже круто!

Цитата(jcxz @ Mar 1 2012, 13:07) *
CY7C68013A == USB High-speed + ядро x51


Не, 51ое ядро не знаю( Осваивать времени нету...

Цитата(alag57 @ Mar 1 2012, 12:53) *
А так ли он слабоват? На 1768 4 заранее заполненных буфера с помощью DMA передаются
в цикле со скоростью больше 90Мбит.


Из даташита:

Цитата
36 Mbps for the traffic generated by the Ethernet DMA function.


Не говоря уже о том что надо еще стек крутить и заголовки делать. 40 мегабит не успеет обработать.
Danis
Цитата(-= Александр =- @ Mar 1 2012, 11:47) *
Добрый день!
Подскажите какой-нить контроллер, желательно атмел или филипс, который это сможет.
Ну или какую-нить плату в компьютер с быстрым простым портом...


Привет, если денег не жалко, бери это:
Микросхема W5300 - однокристальный Ethernet-контроллер, аппаратно реализующий стек протоколов TCP/IP.
Преимущества:
-Высокая скорость обработки данных: более 50Мбит/с на прикладном уровне
-Сокращает время разработки конечного приложения
-Аппаратно реализованные MAC и PHY подуровни
-Возможно использование как на оборудовании с операционной системой, так и на оборудовании без операционной системы
-Не нужен драйвер USB для ПК, работаешь на уровне сокетов.

Подключай ее через параллельный порт или SPI(в твоем случае потребуется скоростной) к контроллеру и гони данные по UDP или TCP.


WIZ830MJ (WIZNET)
Описание
GDI
Цитата(-= Александр =- @ Mar 1 2012, 13:59) *
В 245ой это было нормальное фифо. Никакого ногодрыганья там не наблюдалось, обычная параллельная шина со стробированием.
Вопрос не в этом: у кого она реально работала на высокой скорости?

Я использовал FT245 в таком режиме, скорость передачи в ПК была около 1Мбайт/сек, т.е. около 8Мбит/сек. Ну, а больше никак и не получить, т.к. у нее только High-Speed USB, который 12мбит максимум.
kovigor
Цитата(-= Александр =- @ Mar 1 2012, 10:47) *
Добрый день!

Появилась задача - передать из памяти в комп данные со скоростью не менее 40 мбит/с.
Из контроллеров умею только LPC и AVR. Что делать? Езернет у лпц слабоват. USB Hi-speed нету.


1. USB HS. У того же LPC1850. Или у STM32F207 (я лично получал для Mass-Storage порядка 7-8 МБайт/Сек.). Или Ethernet, если нужна развязка.
2.Умею, не умею ... Так учитесь, чтобы безнадежно не отстать ...

А платы вот здесь можно глянуть. Авось, что и подойдет:
http://www.rudshel.ru/show/?id=114
Danis
Цитата(kovigor @ Mar 1 2012, 15:45) *
Или у STM32F207 (я лично получал для Mass-Storage порядка 7-8 МБайт/Сек.).

На сколько мне известно у STM32F207 нет USB HS физического уровня в чипе, ставили внешнюю микросхему?
kovigor
Цитата(Danis @ Mar 1 2012, 15:09) *
На сколько мне известно у STM32F207 нет USB HS физического уровня в чипе, ставили внешнюю микросхему?



Да. USB3300 ...

P.S. Вообще, можно даже и плату не делать. Купить готовый DevKit с требуемыми интерфейсами. Возможно, даже с предустановленным Linux'ом. И все сделать на нем, или хотя бы отладить
jcxz
Цитата(-= Александр =- @ Mar 1 2012, 16:59) *
Не, 51ое ядро не знаю( Осваивать времени нету...

Я тож не знаю, но ПО на него написал ;)
Там почти всё на си. Ядро x51 нужно тока для конфигурирования, обработки контрол-запросов (если нужно) и для медленных эндпоинтов, которые можно внутри обслуживать.
А для 2-х быстрых эндпоинтов там GPIF, временные диаграммы которого прописываются визуально в типа граф. редакторе.
Плюс - на ПК не нужно писать драйвер устройства - библиотека и драйвер Cypress даёт доступ к функциям API системного драйвера USB с уровня приложения (подключаешь библиотеку и пишешь весь обмен в приложении).
Плюс - все возможные типы передач, включая изохронную, плюс - нет ненужных надстроек и эмуляций а-ля COM-порт.
По-моему там даже есть примеры типа - прописываешь его в CY7C68013A и получаешь к примеру ATAPI через USB.

Хотя конечно если нужна гальваническая развязка, то - Ethernet....
-= Александр =-
В общем буду я W5300 ставить - время дороже. Параллельная шина сразу в TCP/IP как раз то что нужно.
Dir
Цитата(neiver @ Mar 1 2012, 10:10) *
Самый простой способ, наверное всё-таки, Hi-Speed USB. Взять, например, FT2232HL.


Или одноканальный и более бюджетный вариант FT232H

http://www.ftdichip.com/Products/ICs/FT232H.htm

В параллельных FIFO режимах позволяет прокачать до 8 и даже до 40 Мбайт/с. Только успевай загружать. Проще на сегодняшний день вряд ли есть. И стоит совcем недорого. и не дефицит.
Somber
У FT232H есть еще один большой плюс - бесплатные драйверы. Написание собственных драйверов довольно сложное и долгое занятие если нет опыта.
artur_off
Так, к слову, STM32F2xx имеет на борту HS USB. Хотя руки до него пока не добрались.
Да и ST предоставляется все необходимые либы и драйвера, так что старт может получится довольно быстрым.
vladisslav
Цитата(-= Александр =- @ Mar 1 2012, 13:59) *
Не, 51ое ядро не знаю( Осваивать времени нету...

Не нужно изучать команды ядра. Есть keil и sdcc, которые замечательно справляются. Если знаете avr и работали с v-usb, ничего особо сложного. У меня изучение заняло где-то неделю по пол-часа - час вечерами и вчера пол-дня на написание финальной прошивки и программки для хоста. Потом экспериментировал, пытаясь выжать максимальную скорость.
Получил 12.51 Мб/с при чтении NAND микросхемы (то есть еще нужно было отсылать команды, ждать готовность), то есть 100.08 мегабит, так что вам подойдет.
В сыром режиме 42-46 Мб/с, то есть 330-360 мбит.
На самом деле там все очень просто. У меня были проблемы только из-за невнимательного чтения TRM.
TRM:
http://www.cypress.com/?rID=38232
http://www.cypress.com/?docID=24599
Datasheet:
http://www.cypress.com/?rID=38801
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.