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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Вопрос по возможной скорости передачи через USB
Aldaris
сообщение Oct 26 2010, 17:54
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 10-07-10
Из: Москва
Пользователь №: 58 386



Здравствуйте!
Хочу поэкспереметировать со скоростной передачей через USB-устройство(пусть это будет Mass Storage Device). Решил, что возьму контроллер с модулем High-Speed USB. Только одну вещь не могу понять. Скорость передачи данных по USB максимум(пусть и теоретический) 480 Мбит/с, и действительно модуль тактируется от PLL 480 MHz. Однако сам процессор имеет тактовую частоту 60 МГц. Предположим, что в эксперименте МК выступает в роли моста - получает данные по USB и выдает их в последовательный порт. Получается, что узким местом становится последовательный порт контроллера и скорость будет только максимум 60 Мбит/с?
Если это действительно так, то может стоит для таких целей брать ПЛИС? Будет ли с ней результат лучше?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Oct 26 2010, 18:09
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Ну, объем трафика от High-Speed мышки или клавиатуры вполне по COM-порту (как я понял, о нем и речь) пропихнуть можно. А вот для какого-нибудь принтера или видеоадаптера такой номер уже не пройдет. Я одного не пойму. Зачем данные с USB в COM - порт (там 115200 бит, а не 60 МБит, кстати говоря) транслировать ? Или я не понял задачу ?

Сообщение отредактировал IgorKossak - Oct 26 2010, 18:51
Причина редактирования: бездумное цитирование
Go to the top of the page
 
+Quote Post
Aldaris
сообщение Oct 26 2010, 18:50
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 10-07-10
Из: Москва
Пользователь №: 58 386



Цитата
Зачем данные с USB в COM - порт (там 115200 бит, а не 60 МБит, кстати говоря) транслировать ?

Задача не в COM-порт вывести, а из поля данных пакета USB перегнать данные побитово последовательно на один из GPIO контроллера. И выжать при этом скорость побольше.
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 26 2010, 19:28
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Aldaris @ Oct 26 2010, 23:54) *
Получается, что узким местом становится последовательный порт контроллера и скорость будет только максимум 60 Мбит/с?
Разница между каналом USB и внутренней шиной МК в том, что в канале данные последовательные, а в МК они уже параллельные. Соответственно, если сравнивать втупую, то МК производительнее скорости последовательной шины на разрядность своей внутренней шины данных. Только ваша задумка с 480Мбит/с "тухлая" изначально. Это теоретическая скорость передачи. Не добьетесь вы такой скорости. Тем более для класса Mass Storage. Лучше USB FlashDrive имеют скорость чтения порядка 30МБ/с.
Go to the top of the page
 
+Quote Post
Aldaris
сообщение Oct 27 2010, 07:04
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 10-07-10
Из: Москва
Пользователь №: 58 386



Цитата
МК производительнее скорости последовательной шины на разрядность своей внутренней шины данных.

Это-то понятно. Вопрос в том, может ли МК выдать на свои пины поток данных, сравнимый со скоростью потока данных через USB.
Цитата
Только ваша задумка с 480Мбит/с "тухлая" изначально.

А я и написал, что эта скорость недостижима.
Что вообще можно сказать про контроллер LPC3143? В нем, например, есть контроллер NAND памяти, который вроде как параллельный. Может его можно использовать?
Go to the top of the page
 
+Quote Post
SergeyDDD
сообщение Oct 27 2010, 07:11
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 231
Регистрация: 7-12-06
Из: Киев
Пользователь №: 23 248



Цитата(Aldaris @ Oct 26 2010, 21:50) *
Задача не в COM-порт вывести, а из поля данных пакета USB перегнать данные побитово последовательно на один из GPIO контроллера. И выжать при этом скорость побольше.


Как правило в контроллерах где присутствует High-Speed USB должен быть еще и DMA.
И передачей данных из USB в другую периферию должен заниматься именно он.
А перегонять данные на GPIO не получится, та как низкоскоростная периферийная шина не даст.
Тут или шина внешней памяти + ПЛИС или другая скоростная периферия передачи данных. Например SDIO
Go to the top of the page
 
+Quote Post
kovigor
сообщение Oct 27 2010, 07:58
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Aldaris @ Oct 26 2010, 21:50) *
Задача не в COM-порт вывести, а из поля данных пакета USB перегнать данные побитово последовательно на один из GPIO контроллера. И выжать при этом скорость побольше.


Задача абсолютно надуманная. Интересно, для чего это нужно ? Просто для самообучения ? Нереализуемо это, присоединяюсь к ответившим ранее. На Full Speed еще можно попробовать, и то почти наверняка ничего не выйдет, а на High Speed - никак ...

Сообщение отредактировал kovigor - Oct 27 2010, 07:59
Go to the top of the page
 
+Quote Post
Aldaris
сообщение Oct 27 2010, 08:21
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 10-07-10
Из: Москва
Пользователь №: 58 386



Ну необязательно на GPIO. Просто нужно получить поток данных на выходе контроллера, пусть даже на параллельной шине.
Спасибо SergeyDDD за способ с DMA и параллельной периферией. Думаю, он позволит повысить скорость.
И все же...Интересно, будет ли реализация на ПЛИСе лучше, чем на контроллере?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Oct 27 2010, 08:34
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Aldaris @ Oct 27 2010, 11:21) *
Спасибо SergeyDDD за способ с DMA и параллельной периферией. Думаю, он позволит повысить скорость.
И все же...Интересно, будет ли реализация на ПЛИСе лучше, чем на контроллере?


Да, так должно получиться. Только это будет связка МК + ПЛИС. Пихать USB в ПЛИС, наверное, нет смысла. Кстати, а почему бы не взять МК с USB High Speed + Gigabit Ethernet, если несущественно, на какой именно интерфейс транслировать USB - трафик ?
Go to the top of the page
 
+Quote Post
Aldaris
сообщение Oct 27 2010, 08:46
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 10-07-10
Из: Москва
Пользователь №: 58 386



Цитата
Только это будет связка МК + ПЛИС.

Только ПЛИС вы имеете в виду поставить для сериализации данных с параллельного порта? Тогда это наверно лучшее решение, т.к. все равно данные на выходе буду на ПЛИСе обрабатывать.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Oct 27 2010, 08:51
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Aldaris @ Oct 27 2010, 11:46) *
Только ПЛИС вы имеете в виду поставить для сериализации данных с параллельного порта? Тогда это наверно лучшее решение, т.к. все равно данные на выходе буду на ПЛИСе обрабатывать.


Например. Подключить ПЛИС к МК, например, на правах внешнего 32-разрядного статического ОЗУ (или другим подходящим способом), например, к тому же ARM9, и писать в ПЛИС данные, точно так же, как вы бы писали их в ОЗУ. Но я не представляю себе, чем вы будете перерабатывать такой интенсивный последовательный поток с выхода ПЛИС ?
Go to the top of the page
 
+Quote Post
Aldaris
сообщение Oct 27 2010, 09:13
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 10-07-10
Из: Москва
Пользователь №: 58 386



Цитата
...чем вы будете перерабатывать такой интенсивный последовательный поток с выхода ПЛИС ?

На самом деле выход в итоге не будет именно последовательным. Планируется просто писать данные на скоростную флэш память.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Oct 27 2010, 09:24
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Aldaris @ Oct 27 2010, 12:13) *
На самом деле выход в итоге не будет именно последовательным. Планируется просто писать данные на скоростную флэш память.

Тогда ПЛИС не нужна. Нужен только МК с USB - дивайсом и хостом, оба HS. К хосту подключаете обычную флешку. Дивайсом подключаетесь к источнику данных, принимаете данные, перерабатываете внутри МК, например, шифруете или делаете что-то еще, и сбрасываете на флэшку. Только рекомендую все это отладить на FS, там отладка сильно упрощается и захватывать поток на шине гораздо проще и дешевле. Полезным может оказаться даже обычный осциллограф. Ладно, я все равно вашей задачи не знаю, посему могу вам только подсказать возможные варианты ...
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 27 2010, 11:58
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(SergeyDDD @ Oct 27 2010, 13:11) *
Как правило в контроллерах где присутствует High-Speed USB должен быть еще и DMA.
И передачей данных из USB в другую периферию должен заниматься именно он.
DMA имеет смысл, когда для него в МК имеется отдельная шина.
Цитата(Aldaris @ Oct 27 2010, 15:13) *
На самом деле выход в итоге не будет именно последовательным. Планируется просто писать данные на скоростную флэш память.
Поймите, что USB это всего лишь интерфейс, способ связи. Причем не из самых простых. Есть и другие способы передачи информации. Следует рассмотреть задачу на другом уровне абстракий. Более высоком. И лишь потом спускаться на уровень интерфейса передачи данных.
Go to the top of the page
 
+Quote Post
SergeyDDD
сообщение Oct 27 2010, 12:30
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 231
Регистрация: 7-12-06
Из: Киев
Пользователь №: 23 248



Цитата(rezident @ Oct 27 2010, 14:58) *
DMA имеет смысл, когда для него в МК имеется отдельная шина.


Что значит отдельная шина?
Как правило DMA мастером висит на "Multi-Layer AHB" шине, так же как и процессорное ядро, только на своем уровне
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th June 2025 - 22:16
Рейтинг@Mail.ru


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