Почему драйвер модема загружается и используется с Linux-машины для связи с ардуино?
Как только я подключаю 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?
1 ответ
Лучший ответ:
Ответ на этот вопрос лежит в истории.
Было время, когда основным назначением последовательного порта (RS-232/UART) было "вызов"; т.е. он имел последовательное соединение с модемом, факсимильным аппаратом или мейнфреймом. Как бы то ни было, основная функция заключалась в обеспечении соединения для передачи данных с внешним миром, возможно, взимая плату за телефонную линию. Итак, все наоборот, чем вы догадались: компьютер связывался с модемом, используя последовательный протокол с именем RS-232 или UART.
Поэтому все последовательные порты защищены от доступа, за исключением группы пользователей "dialout". Это было сохранено по умолчанию даже для эмулируемых и виртуальных последовательных портов, таких как, например, последовательный порт через USB.
Итак, если я хочу, чтобы мой arduino эмулировал модем, будет ли стандартная USB-связь arduino (Arduino UNO) считаться той, которую также используют модемы?, @Dimitrios Desyllas
@DimitriosDesyllas Да. «Последовательное соединение» — это просто двунаправленный канал для отправки и получения байтов. Что означают эти байты, зависит от программ на обоих концах, и не имеет значения, является ли это соединение классическим последовательным портом, эмулированным портом Serial-over-USB или чем-то еще. Все, что нужно вашей программе дозвона модема, это "модем подключен к последовательному порту /dev/ttyS0". Номеронабиратель просто отправляет серию «AT-команд» на последовательную линию, ждет, пока модем подключится и подтвердит, а затем предполагает, что та же самая последовательная линия теперь подключена к месту назначения., @orithena
- Первая настройка - отказ в доступе к usb-порту - ubuntu 14.04
- Почему я получаю avrdude: stk500v2_ReceiveMessage(): timeout error when uploading to Arduino Mega?
- Может ли Arduino взаимодействовать с USB-устройствами без USB-хост-экрана?
- Если USB дает 5 В, как Arduino может подавать 5 В на контакт 5 В? (И еще вопрос)
- Максимальная последовательная скорость CH340
- Можно ли использовать внешний источник питания и USB одновременно на Arduino?
- Эмуляция стандартного периферийного USB-устройства Mifare с помощью RFID-RC522
- Можно ли загрузить скетч Arduino через последовательный порт (RX) вместо USB?
вопросы по linux принадлежат https://unix.stackexchange.com/questions, а не здесь, @jsotola
@jsotola Я не согласен. Хотя ответ находится в домене Linux, вопрос сам по себе заключается в том, существует ли «какой-то модемный протокол» между ПК и Arduino., @orithena