Я немного запутался в требованиях к высокоскоростному USB 2.0.
USB 2.0. максимальная скорость высокоскоростной передачи данных составляет 480 Мбит/с. Итак, насколько я понимаю, чтобы полностью использовать эту скорость передачи данных, следует использовать IC (uC или FPGA) с частотой не менее 480 МГц.
Но, например, микроконтроллеры серии STM32 F4 обеспечивают высокоскоростную поддержку USB 2.0, хотя максимальная частота, на которой они работают, составляет 180 МГц.
Также Atmel SAM3U поддерживает высокоскоростной USB, несмотря на абсолютную максимальную частоту 192 МГц.
Как так?
Для Atmel я заметил, что у них есть дополнительные часы 480 МГц только для USB. Это еще больше сбивает с толку, поскольку, если микроконтроллер поддерживает только 192 МГц, как он должен взаимодействовать с внутренним периферийным устройством USB, работающим на частоте 480 МГц?
Для STM32 это тоже странно, в их программном обеспечении CubeMX кажется, что они запускают USB с тактовой частотой 48 МГц. Поискал в даташите, нашел только упоминание
Бит 15 PHYLPCS:
Выбор маломощных часов PHY. Этот бит выбирает режим PHY 480 МГц или 48 МГц (с низким энергопотреблением). В режимах FS и LS PHY обычно может работать на тактовой частоте 48 МГц для экономии энергии.
0: внутренняя тактовая частота 480 МГц
1: внешняя тактовая частота 48 МГц
В режиме 480 МГц интерфейс UTMI работает на частоте 60 или 30 МГц, в зависимости от того, выбрана ли разрядность данных 8 или 16 бит. В режиме 48 МГц интерфейс UTMI работает на частоте 48 МГц в режимах FS и LS.
Поэтому я предполагаю, что он использует тактовую частоту 48 МГц для генерации 480 МГц через PLL. Но опять же - если сам микроконтроллер может работать только до 180 МГц - какой смысл в 480 МГц USB?
FPGA еще более запутанны (многие работают на частотах ниже 480 МГц), но я еще не проводил много исследований по FPGA, поэтому я не буду ничего спрашивать (но если вы можете дать несколько советов / просветить о FPGA - пожалуйста, я интересует).
Вопрос в том, если мы используем микроконтроллер 180 МГц и хотим передавать данные с периферийным устройством USB 480 МГц - как он соответствует частоте? Что это за процесс?
Обратите внимание, что скорость передачи данных USB составляет 480 Мбит / с, в то время как данные ИБП обычно имеют разрядность 8 или 32 бита. Таким образом, скорость передачи системных данных снижается только до 60 или 15 МГц. Контроллеры USB используют аппаратный доступ к памяти UP (также известный как прямой доступ к памяти или «управление шиной») для передачи блоков данных между системной памятью и USB PHY (приемопередатчиком физического уровня). Передачи выполняются в 8- или 16-битном параллельном формате, а PHY выполняет преобразование из параллельного в последовательный. В системе обычно имеется множество буферов «эластичности» (FIFO) для предоставления когерентных пакетов USB в полном соответствии с заданными скоростями передачи данных.
Скорость подготовки системой буферов памяти для чтения/записи зависит от общей пропускной способности процессора, поэтому низкопроизводительные процессоры могут не достичь максимальной пропускной способности USB.
Р Драст
Евгений Ш.
НаукаСамовар
jw_