Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ARM:интегрированные интерфейсы
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Виталий_Ж
Мучает вопрос. собираюсь начать изучать АРМы.но вот не пойму, для чего нужны встроенные контроллеры интерфейсов (USB например), когда можно взять микроконтроллер попроще, и внешний контроллер интерфейса (например PDIusb) ? заранее спасибо, просьба не смеяться
KnightIgor
Цитата(Виталий_Ж @ Jan 6 2012, 10:59) *
Мучает вопрос. собираюсь начать изучать АРМы.но вот не пойму, для чего нужны встроенные контроллеры интерфейсов (USB например), когда можно взять микроконтроллер попроще, и внешний контроллер интерфейса (например PDIusb) ? заранее спасибо, просьба не смеяться

На вкус и цвет...
Во-первых, есть всякие микроконтроллеры, и попроще тоже.
Во-вторых, интегрирование значительно упрощает готовое устройство: меньше внешних связей, проще и компактнее печатная плата, номенклатура компонентов короче, меньшее потребление, и т.п.
aaarrr
Внешние контроллеры увеличивают bom cost, габариты и потребление. Чем дальше, тем выгоднее во всех смыслах использовать интегрированную периферию.
Виталий_Ж
Цитата
На вкус и цвет...
Во-первых, есть всякие микроконтроллеры, и попроще тоже.
Во-вторых, интегрирование значительно упрощает готовое устройство: меньше внешних связей, проще и компактнее печатная плата, номенклатура компонентов короче, меньшее потребление, и т.п.

Внешние контроллеры увеличивают bom cost, габариты и потребление. Чем дальше, тем выгоднее во всех смыслах использовать интегрированную периферию.

а по скорости эти два варианта (встроенный и не встроенный) не сильно разнятся? вроде как если проц напрямую обращается к контроллеру без внешних портов - то должно быть по быстрее?
И, может быть, во встроенных контроллерах больше возможностей для их конфигурации (программным путем)?

и вот еще- уже есть микрухи USB 3.0, в микроконтролллерах пока такой поддержки нет..
aaarrr
Если брать для примера интерфейсы класса FS USB, то скорости будут в большинстве случаев сопоставимы, а вот нагрузка на ядро МК будет меньше в случае внутреннего исполнения (шире и быстрее шины, может наличествовать DMA и т.д).

Цитата(Виталий_Ж @ Jan 6 2012, 14:39) *
и вот еще- уже есть микрухи USB 3.0, в микроконтролллерах пока такой поддержки нет..

И вряд ли будет: зачем иметь интерфейс, полоса которого заведомо многократно превышает возможности ядра и прочей периферии?
AlexandrY
Цитата(Виталий_Ж @ Jan 6 2012, 11:59) *
Мучает вопрос. собираюсь начать изучать АРМы.но вот не пойму, для чего нужны встроенные контроллеры интерфейсов (USB например), когда можно взять микроконтроллер попроще, и внешний контроллер интерфейса (например PDIusb) ? заранее спасибо, просьба не смеяться


В ARM-ах есть такая вещь как шинные матрицы которые освобождают системную шину процессора от обмена с быстрой периферией.
В некоторых чипах вообще отдельные шины между контроллерами и памятью или между отдельными контроллерами.
Это даже не столько скорость повышает сколько надежность обмена.

Но если пытаться выжать из инвестиций в определенное семейство микроконтроллеров, то приходится использовать внешние контроллеры, но чаще для более медленных потоков чем USB HS и лучше чтобы они были тоже микроконтроллерами. В этом смысле PDIUSB вполне в тему.
Виталий_Ж
Цитата(aaarrr @ Jan 6 2012, 13:53) *
Если брать для примера интерфейсы класса FS USB, то скорости будут в большинстве случаев сопоставимы, а вот нагрузка на ядро МК будет меньше в случае внутреннего исполнения (шире и быстрее шины, может наличествовать DMA и т.д).


И вряд ли будет: зачем иметь интерфейс, полоса которого заведомо многократно превышает возможности ядра и прочей периферии?

а что значит "шире шины"?
почему у АРМов такая сравнительно низкая частота, ведь процы для компа давно работают на гигагерцах?
а для чего тогда в АРМы ставят USB 480 Мбит/сек , когда частота АРМа порой меньше 100 Мгц?
aaarrr
Цитата(Виталий_Ж @ Jan 6 2012, 18:36) *
а что значит "шире шины"?

Для внутренних пересылок используются полные 32 бита. Внешние устройства редко бывают "шире" 16.

Цитата(Виталий_Ж @ Jan 6 2012, 18:36) *
почему у АРМов такая сравнительно низкая частота, ведь процы для компа давно работают на гигагерцах?

Смотря у каких. Cortex-A9 тоже работает на гигагерцах. Другое дело, что далеко не всегда эти гигагерцы востребованы,
а платить за них приходится и в прямом (деньги) и в переносном (потребление) смыслах.

Цитата(Виталий_Ж @ Jan 6 2012, 18:36) *
а для чего тогда в АРМы ставят USB 480 Мбит/сек , когда частота АРМа порой меньше 100 Мгц?

Потому что FS все же бывает тесен, даже для ARM'а с частотой меньше 100МГц.
sonycman
Цитата(Виталий_Ж @ Jan 6 2012, 18:36) *
а для чего тогда в АРМы ставят USB 480 Мбит/сек , когда частота АРМа порой меньше 100 Мгц?

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

В этом свете жалкий мегабайт, который на максимуме можно выжать из USB FS, становится просто смешным sm.gif

Цитата(aaarrr @ Jan 6 2012, 19:14) *
Потому что FS все же бывает тесен, даже для ARM'а с частотой меньше 100МГц.

Я до сих пор не могу понять, почему ST не стали интегрировать трансивер USB HS в свою замечательную серию STM32F2xx?
Лепят аж несколько контроллеров, но вот с трансивером всё очень скромно... тьфу cranky.gif
LWW
Цитата(Виталий_Ж @ Jan 6 2012, 18:36) *
а для чего тогда в АРМы ставят USB 480 Мбит/сек , когда частота АРМа порой меньше 100 Мгц?


480 = 60 мегабайт в сек. А кортексы имею частоту выборки из памяти до 180 и больше МБ/сек. Пусть все 480 он не обыграет, но полюбэ это лучше, чем 12 мбит.

Поэтому и ставят 480. Смысл есть.
shide_3
Цитата(aaarrr @ Jan 6 2012, 13:53) *
И вряд ли будет: зачем иметь интерфейс, полоса которого заведомо многократно превышает возможности ядра и прочей периферии?

а как же EZ-USB FX3 от Cypress? там внутри ARM926 с частотой 200 мгц
aaarrr
Цитата(shide_3 @ Mar 4 2013, 23:19) *
а как же EZ-USB FX3 от Cypress? там внутри ARM926 с частотой 200 мгц

...который отнюдь не предназначен для обработки данных. Максимум - добавить заголовок в пакете.
А основное его дело - настроить GPIF, USB и DMA между ними, а потом лениво реагировать на события.
Ну, USB 2.0 хостом еще управлять, который туда зачем-то добавили.

На FX2 для тех же примерно целей поставлено ядро 8051, которому тоже поток USB 2.0 не по зубам.
shide_3
Цитата(aaarrr @ Mar 4 2013, 23:27) *
...который отнюдь не предназначен для обработки данных. Максимум - добавить заголовок в пакете.
А основное его дело - настроить GPIF, USB и DMA между ними, а потом лениво реагировать на события.
Ну, USB 2.0 хостом еще управлять, который туда зачем-то добавили.

На FX2 для тех же примерно целей поставлено ядро 8051, которому тоже поток USB 2.0 не по зубам.

тогда почему бы им не впендюрить туда не ARM9, а Cortex A9 или A11, чтоб уж точно хватило?
toweroff
Цитата(shide_3 @ Mar 5 2013, 21:56) *
тогда почему бы им не впендюрить туда не ARM9, а Cortex A9 или A11, чтоб уж точно хватило?

Вы согласны платить за интерфейсную микорсхему такую цену?
aaarrr
Цитата(shide_3 @ Mar 5 2013, 21:56) *
тогда почему бы им не впендюрить туда не ARM9, а Cortex A9 или A11, чтоб уж точно хватило?

Потому что нужды нет: это периферийный контроллер, собственное ядро там "чтобы было".
Не USB существует для процессора в данном случае, а процессор для USB.
Aner
Встроенные контроллеры интерфейсов сильно приятно упрощают решение задачи. Казалось бы простой I2C, что мастер, что слейв, а сколько гемра вносит в обработку, если его делать на пинах проца, без внутренней инжины. Еще эти интерфейсы привязаны к протоколам, характеру потоковой обработки данных. Отъедается часть ресурсов, если это делать программно. Не желательно это все обрабатывать программно. Если есть возможность поддержать инжиновую регистровую структуру аппаратно на кристале.
Kaligooola
По поводу хоста USB 2.0 в Cypress FX3. Он там нужен по стандарту USB 3.0. Для обеспечения обратной совместимости с устройствами USB 2.0. Так как скорости 4,8 Гбит/с достигаются на отдельных диф парах TX-RX. Samsung-овские ARM Cortex-A9/15 имеют встроенный контроллер USB 3.0. Вместо PCIe у их "одноклассников".
Отдельный контроллер это дополнительное место на плате, дополнительное питание иногда, обвязка и прочее. Дополнительная инициализация, обслуживание и прочее.
Если он лишний в данной задаче, то можно выбрать другой контроллер для своей задачи или использовать другие функции данного порта.

Большая пропускная способность на шине USB может понадобится при передаче накопленных данных. Так например ОС хоста не может мгновенно по каждому требованию обрабатывать данный от нашего контроллера, для этого используем буфер, и отсылаем данные "когда путь свободен".
aaarrr
Цитата(Kaligooola @ Mar 10 2013, 15:38) *
По поводу хоста USB 2.0 в Cypress FX3. Он там нужен по стандарту USB 3.0.

FX3 - это Super Speed Device, наличие USB HS хоста для этого класса устройств спецификация не требует.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.