Можно ли реализовать хост на stm32 (без аппаратной поддержки) только программным кодом для записи данных на флешку? В интернете информации по этому вопросу не нашел. Есть устройство реализации, но нет хоста. Изучаю спецификацию usb для ответа, но пока плохо в ней разбираюсь.
Почему функция хоста не может быть реализована с аппаратным обеспечением только для устройства? Потому что USB не симметричен относительно хоста и устройств.
На стороне устройства функция USB заключается в поддержке основного протокола USB, называемого «SIE», Serial Interface Engine. Этот механизм включает в себя способность устройства ПОЛУЧАТЬ запросы хоста, начиная с «канала по умолчанию», и правильно отвечать, получая данные с ответом ACK или отправляя данные и ожидая подтверждения хостом ACK для завершения транзакций. Из-за временных ограничений USB (время отклика 1,7 мкс) заключительный этап управляющей транзакции не может быть реализован программными средствами, и большинство частей механизмов SIE устройств кодируются аппаратно. Другие функции SIE заключаются в том, чтобы принять назначение адреса и принять/включить конфигурацию, которая завершает фазу перечисления протокола подключения USB. Затем SIE поддерживает базовые входные/выходные/другие каналы в рамках тех же ограничений протокола. Короче говоря, функция устройства - ОТВЕЧАТЬ.
Из-за этих аппаратных ограничений невозможно использовать механизм устройства для функции хоста, главным образом потому, что функции хоста полностью противоположны функциям устройства. Обработка шины следует за очень разными конечными автоматами. Хост должен ГЕНЕРИРОВАТЬ периодические пакеты кадров и ИНИЦИАТИРОВАТЬ все транзакции. А затем обеспечить плавный поток данных, и все это обычно делается с использованием аппаратного обеспечения прямого доступа к памяти. Хост должен обеспечивать функцию питания порта и функцию сброса порта, которой нет в реализациях устройства.
Это основные причины, по которым MCU разработаны с отдельными аппаратными контроллерами хоста и устройства.
Евгений Ш.
Джейсен
никита богатых
Маркус Мюллер
никита богатых
Крис Стрэттон
никита богатых
никита богатых
Крис Стрэттон
Маркус Мюллер
Крис Стрэттон
Маркус Мюллер