Почему драйвер модема загружается и используется с Linux-машины для связи с ардуино?

usb

Как только я подключаю arduino к своей машине с Linux, получается следующий ответ (через dmesg):

[ 7250.906241] perf: interrupt took too long (2504 > 2500), lowering kernel.perf_event_max_sample_rate to 79750
[ 9517.599165] usb 1-3: new full-speed USB device number 5 using xhci_hcd
[ 9517.749504] usb 1-3: New USB device found, idVendor=2341, idProduct=0043, bcdDevice= 0.01
[ 9517.749510] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 9517.749513] usb 1-3: Manufacturer: Arduino (www.arduino.cc)
[ 9517.749516] usb 1-3: SerialNumber: 7533131313335170A061
[ 9517.780753] cdc_acm 1-3:1.0: ttyACM0: USB ACM device
[ 9517.781046] usbcore: registered new interface driver cdc_acm
[ 9517.781047] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

Мое внимание привлекла последняя строка из dmesg:

[ 9517.781047] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

Кроме того, насколько я помню, для связи с Arduino мой пользователь должен быть в группе dialout. Означает ли это, что протокол связи модема используется для связи с/на arduino для связи через USB?

, 👍0

Обсуждение

вопросы по linux принадлежат https://unix.stackexchange.com/questions, а не здесь, @jsotola

@jsotola Я не согласен. Хотя ответ находится в домене Linux, вопрос сам по себе заключается в том, существует ли «какой-то модемный протокол» между ПК и Arduino., @orithena


1 ответ


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

2

Ответ на этот вопрос лежит в истории.

Было время, когда основным назначением последовательного порта (RS-232/UART) было "вызов"; т.е. он имел последовательное соединение с модемом, факсимильным аппаратом или мейнфреймом. Как бы то ни было, основная функция заключалась в обеспечении соединения для передачи данных с внешним миром, возможно, взимая плату за телефонную линию. Итак, все наоборот, чем вы догадались: компьютер связывался с модемом, используя последовательный протокол с именем RS-232 или UART.

Поэтому все последовательные порты защищены от доступа, за исключением группы пользователей "dialout". Это было сохранено по умолчанию даже для эмулируемых и виртуальных последовательных портов, таких как, например, последовательный порт через USB.

,

Итак, если я хочу, чтобы мой arduino эмулировал модем, будет ли стандартная USB-связь arduino (Arduino UNO) считаться той, которую также используют модемы?, @Dimitrios Desyllas

@DimitriosDesyllas Да. «Последовательное соединение» — это просто двунаправленный канал для отправки и получения байтов. Что означают эти байты, зависит от программ на обоих концах, и не имеет значения, является ли это соединение классическим последовательным портом, эмулированным портом Serial-over-USB или чем-то еще. Все, что нужно вашей программе дозвона модема, это "модем подключен к последовательному порту /dev/ttyS0". Номеронабиратель просто отправляет серию «AT-команд» на последовательную линию, ждет, пока модем подключится и подтвердит, а затем предполагает, что та же самая последовательная линия теперь подключена к месту назначения., @orithena