Почему USB-соединение называют последовательным соединением?
Кто-нибудь знает, почему Arduino называет USB-подключение последовательным? Когда я слышу последовательное подключение, я автоматически думаю о штыревом штыревом соединении, а не о USB-подключении. Также не уверен, является ли это термином Linux или просто особенностью Arduino.
@Datalink, 👍0
3 ответа
Как ответил @ratchetfreak, USB — это последовательная шина. Но есть и еще кое-что.
Микроконтроллер на платах Arduino имеет одно или несколько встроенных периферийных устройств, называемых UART
, что означает Универсальный асинхронный приемник-передатчик.
Это то, что ядро Arduino называет последовательным портом. Он использует тот же тип протокола, что и старые последовательные порты DB-9 на ПК и т. п., но на логических уровнях 5 В или 3,3 В. Сравните этот размах напряжения от 0 В до 5 В для обозначения логического низкого уровня и логического высокого уровня со стандартом RS-232 для старых последовательных портов ПК, которые используют размах от +12 В до -12 В для обозначения этого.
Но сегодня ПК не часто имеют старый последовательный порт RS-232. Вместо этого у них есть новый порт USB - Universal Serial Bus. На плате Arduino есть чип, который с одной стороны общается через USB с ПК и сообщает ПК, что он предоставляет эквивалент старого последовательного устройства COMPORT или /dev/ttyS*; а с другой стороны - через UART с микроконтроллером на плате Arduino.
Это как будто мы «эмулируем» старые последовательные порты ПК в программном обеспечении через новую шину USB, которая сама по себе является последовательной системой связи, хотя и гораздо более сложной, чем простой UART.
На большинстве Arduino Serial
— это не USB-подключение. Это UART (настоящее последовательное) соединение, которое используется для связи с адаптером USB-UART (часто сделанным из другого небольшого микроконтроллера, ATMega16U2). Только начиная с этого чипа это USB. Между основным микроконтроллером и этим чипом интерфейса USB это последовательный порт. Тот же последовательный порт, который вы получаете от контактов 0/1 (буквально: они жестко соединены вместе).
Действительно, первый прототип Arduino (выросший из проекта Wiring) вообще не имел USB — только Serial. Адаптер USB-UART был добавлен позже. Но он по-прежнему остается последовательным интерфейсом.
Почти все способы протоколов, используемых для связи на Arduino, являются последовательными. USB, UART, I2C, SPI. Последовательный означает один бит за раз, а другой способ - параллельная связь, которую раньше использовали принтеры. Это позволяло отправлять целый байт за один раз (было 8 линий данных). С ростом тактовой частоты больше не было необходимости иметь эти большие, громоздкие, дорогие кабели и разъемы. Так что параллельные соединения ушли из обычных компьютерных/электронных приложений.
- Arduino Uno не загружает код и перегревается
- Arduino Uno R3 не распознается Arduino IDE в Ubuntu 21.04
- Как программировать микрочипы напрямую через USB
- Последовательная связь Arduino и AVR через USB
- Serial.write без приемника
- Неверные символы в последовательном мониторе при подключении через USB 3.0
- Два адруино подключены к малине по usb, но один переподключается во время выполнения кода обработки
- Mac OSX Yosemite не отображает последовательные порты для Uno R3