Является ли протокол связи USB Arduino таким же, как и использование USB-модемов?

Arduino Uno использует для связи по USB по умолчанию либо микросхему FTDI в ранних версиях, либо микроконтроллер, который эмулирует/реплицирует связь микросхемы FTDI.

Этот тип связи USB такой же, как и модемы Conexxant CX930xx?

Чего я хочу добиться, так это эмулировать необходимые AT-команды с помощью библиотеки ATCommand для репликации набора команд AT-команд модема. Я хочу подражать следующим вещам:

  1. USB-связь модема
  2. Подмножество AT-команд, необходимых для включения/отключения входящего вызова с идентификатором вызывающего абонента
  3. Возврат "поддельного" входящий вызов с CallerId или без него в зависимости от предоставленных опций с ПК через AT-команды

С двумя последними я как-то справлюсь. Но я не знаю, использует ли существующий чип FTDI/микроконтроллер USB необходимые протоколы, которые также используют модемы. Я имею в виду, будет ли достаточно, если я просто заменю аппаратное обеспечение и идентификатор поставщика, или мне также нужно эмулировать другой тип связи USB?

Модем, который я хочу эмулировать, это: https://support .lenovo.com/us/en/solutions/pd003647-lenovo-usb-modem-overview

Чего я хочу добиться, так это имитировать входящий вызов вместо использования настоящего модема. Причина в том, что я хочу предоставить свои собственные данные настольному приложению, взаимодействующему с модемом, которое использует CallerId. Вместо того, чтобы использовать настоящий модем, я хотел бы иметь поддельный, где я мог бы эмулировать различные сценарии.

, 👍0

Обсуждение

О каком модеме идет речь. Они также делают модемы с интерфейсом RS232, с которыми было бы немного проще взаимодействовать. Я бы предложил использовать Mega, потому что у нее есть второй последовательный порт, другие платы тоже будут работать. Попробуйте эти ссылки, у них может быть что-то, что вам может понравиться: https://www.radi.com/modular29.htm или https://www.radi.com/modular51.htm, @Gil

Я говорю об этом модеме https://www.easytechnology.gr/plerophorike-kai-tablet/upologistes/diktuaka/exoterik-usb-fax-modem-me-anagnorise-kleseon-oem. Он USB-модем и используется для Приложения CallerId. Я хочу эмулировать его и отправлять на ПК поддельные входящие вызовы, как это сделал бы обычный модем., @Dimitrios Desyllas

для ОС ардуино выглядит как последовательный порт без подключенного модема, @jsotola


1 ответ


Лучший ответ:

1

Обычно USB-модемы используют два уровня связи, которые имеют отношение к вашей проблеме.

  1. Виртуальное устройство последовательной связи, известное как CDC/ACM, класс устройства связи и абстрактная модель управления соответственно.

  2. Протокол управления модемом, известный как набор команд Hayes, vulgo "набор команд AT", вверху этого.

Оба слоя обычно независимы друг от друга. Вы можете использовать виртуальную последовательную связь для любых других целей. И вы можете передавать команды и ответы Hayes по любому другому потоку связи.

Большинство устройств, совместимых с Arduino, показывают себя на ПК как CDC/ACM, вы можете проверить это, например, в Windows в диспетчере оборудования. Таким образом, для вас существует базовый транспортный уровень.

Но чтобы ответить на ваш конкретный вопрос: Нет, второй уровень (AT-команды) отсутствует. В этом нет необходимости для процесса загрузки или последовательного мониторинга.

Но вы можете написать скетч, реализующий тот набор команд, который вы хотели бы использовать в своем приложении.

,

Поэтому мне нужно изменить идентификатор поставщика в Uno Mega 16u2/8U2 и просто сделать так, чтобы он выглядел как любой модем, который я хочу, и через скетч на MEGA 328p, чтобы эмулировать правильную инструкцию команды AP;, @Dimitrios Desyllas

В комментарии выше предположим, что у меня уже есть скетч, эмулирующий набор команд Hayes., @Dimitrios Desyllas

Да, это должно сработать. Нужен ли приложению ПК или драйверу ПК этот конкретный VID/PID для приема устройства? CDC/ACM должен был быть независимым от VID/PID..., @the busybee

Ну, некоторые приложения, которые мне нужно использовать, могут потребовать этого (например, во время обнаружения модема)., @Dimitrios Desyllas