Linux просмотр портов связи
Обновлено: 24.11.2024
Linux называет свои последовательные порты в соответствии с традициями UNIX. Первый последовательный порт имеет имя файла /dev/ttyS0 , второй последовательный порт имеет имя файла /dev/ttyS1 и т. д.
Это отличается от традиции IBM PC. Первый последовательный порт называется COM1: , второй последовательный порт называется COM2: и так далее. На компьютере IBM PC/AT и его преемниках может быть до четырех последовательных портов.
Большинство загрузчиков имеют другую схему именования. Первый последовательный порт имеет номер 0 , второй последовательный порт имеет номер 1 и т. д.
Если в вашем дистрибутиве Linux используется диспетчер устройств devfs, у последовательных портов будет другое имя. Первый последовательный порт — /dev/tts/0 , второй последовательный порт — /dev/tts/1 и т. д.
В результате первый последовательный порт помечен как COM1: на шасси IBM PC; известен как /dev/ttyS0 в Linux; известен как /dev/tts/0 в Linux при настройке с помощью devfs ; и известен как порт 0 для многих загрузчиков.
В примерах в этом HOWTO используется этот первый последовательный порт, так как это тот последовательный порт, который захочет использовать большинство читателей.
Таблица 2-1. Несколько имен для одного и того же последовательного порта
IBM PC | Ядро Linux | Ядро Linux с devfs | Большинство загрузчиков | TR>
---|---|---|---|
COM1: | /dev/ttyS0 TD> | /dev/tts/0 | 0 |
COM2: | /dev/ttyS1 | /dev/tts/1 | 1 |
COM3: | /dev/ttyS2 | /dev/tts/2 | 2 |
COM4: | /dev/ttyS3 | /dev/tts/3 | 3 |
Таблица 2-2. Прерывания, используемые для портов IBM PC/AT RS-232
Устройство | Прерывание | Порт |
---|---|---|
/dev/ttyS0 | 4 | 0x3f8 |
/dev/ttyS1 | 3 | 0x2f8 |
/dev/ttyS2 | 4 | 0x3e8 |
/dev/ttyS3 | 3 | 0x2e8 |
Рисунок 2-1. Использование команды setserial в /etc/rc.serial для отключения последовательного порта /dev/ttyS2
Из исходного кода видно, что ограничение на совместное использование прерываний применимо ко всем компьютерным архитектурам, а не только к архитектуре Intel-32.
В зависимости от операционной системы Windows диспетчер устройств может находиться в разделе «Оборудование и звук». В разделе «Порты» найдите «USB Serial Port» или «USB Serial Bridge». Точное название зависит от используемого кабеля, но будет содержать слово «Serial».
Как найти последовательный порт в Linux?
Найти номер порта в Linux
- Откройте терминал и введите: ls /dev/tty* .
- Обратите внимание на номер порта, указанный для /dev/ttyUSB* или /dev/ttyACM* . Здесь номер порта представлен *.
- Используйте указанный порт в качестве последовательного порта в MATLAB®. Например: /dev/ttyUSB0 .
Как открыть последовательный терминал в Ubuntu?
Первая проверка с помощью dmesg | grep tty, если система распознает ваш адаптер. Затем попробуйте запустить minicom с помощью sudo minicom -s, перейдите в «Настройка последовательного порта» и измените первую строку на /dev/ttyUSB0. Не забудьте сохранить конфигурацию по умолчанию с помощью «Сохранить настройку как dfl». У меня это работает на Ubuntu 11.04 на VirtualBox.
Как вы убиваете порты?
Как завершить процесс, использующий порт на локальном хосте в Windows
- Запустите командную строку от имени администратора. Затем запустите приведенную ниже команду. netstat -ано | findstr : номер порта. …
- Затем вы выполняете эту команду после определения PID. taskkill /PID введите свой PIDздесь /F.
Как проверить, какие порты используются?
Чтобы проверить прослушиваемые порты и приложения с помощью Netstat:
Как узнать, работает ли мой последовательный порт?
Чтобы проверить правильность работы COM-порта компьютера, вы можете выполнить простой циклический тест. (В циклическом тесте сигнал отправляется с устройства и возвращается или возвращается обратно на устройство.) Для этого теста подключите последовательный кабель к COM-порту, который вы хотите протестировать. Затем замкните контакты 2 и 3 кабеля вместе.
Как найти COM-порт USB?
Вы можете проверить, какое устройство использует какой COM-порт в Диспетчере устройств. Он будет указан в списке скрытых устройств. В диспетчере устройств выберите «Вид» — «Показать скрытые устройства». Теперь, когда вы развернете раздел (PORTS) COM-порты, вы увидите все перечисленные там COM-порты.
Как выглядит последовательный порт?
Последовательный порт мужского пола и имеет либо 9, либо 25 контактов. Форма порта слегка D-образная. Последовательный компьютерный порт может использоваться для мыши, внешнего модема, сканера или другого программного обеспечения, например, для персонального помощника по обработке данных (КПК). … Только очень старые компьютеры имеют 25-контактный последовательный порт.
Как вывести список всех устройств в Linux?
Лучший способ перечислить что-либо в Linux — запомнить следующие команды ls:
- ls: список файлов в файловой системе.
- lsblk: список блочных устройств (например, дисководов).
- lspci: список устройств PCI.
- lsusb: список USB-устройств.
- lsdev: список всех устройств.
Как подключить Minicom к последовательному порту?
Настройка minicom для преобразователя USB-to-Serial
- Введите sudo minicom -s. Вы должны увидеть: …
- Дважды нажмите стрелку вниз. Вы должны увидеть:
- Нажмите Enter. …
- Нажмите A, установите последовательное устройство на /dev/ttyUSB0 и нажмите Enter.
- Нажмите E, установите для параметра Bps/Par/Bits значение 115200 8N1 и нажмите Enter.
- Нажимайте F до тех пор, пока аппаратное управление потоком не появится в No.
- Нажимайте G до тех пор, пока программное управление потоком не выберет "Нет".
- Нажмите Enter.
Что такое последовательные порты в Linux?
Linux использует ttySx для имени устройства с последовательным портом. Например, COM1 (имя DOS/Windows) — это ttyS0, COM2 — это ttyS1 и т. д. Последовательные порты на основе USB могут использовать имя, такое как ttySUSB0. Все эти устройства расположены в каталоге /dev/.
Как включить последовательную консоль в Linux?
- Выполните следующую команду, чтобы изменить файл конфигурации GRUB: Копировать. sudo vi /boot/grub/grub.conf.
- Добавьте следующее после строки, содержащей время ожидания: Копировать. серийный –unit=0 –speed=115200 терминал –timeout=5 последовательная консоль.
- Добавьте к каждой строке ядра следующее: Копировать. console=tty1 console=ttyS0,115200.
Как подключиться к последовательной консоли?
Нажмите на экземпляр, к которому хотите подключиться. В разделе «Удаленный доступ» нажмите «Подключиться к последовательной консоли», чтобы подключиться к порту по умолчанию (порт 1). Если вы хотите подключиться к другому последовательному порту, нажмите стрелку вниз рядом с кнопкой «Подключиться к последовательной консоли» и соответствующим образом измените номер порта.
Хотя современные ПК больше не оснащены физическим последовательным портом, многим устройствам по-прежнему требуется последовательная связь RS232 для взаимодействия с ними. С помощью адаптера RS232-to-USB вы можете легко подключить их к компьютеру. После подключения вы можете задаться вопросом: как контролировать последовательный порт в Linux? К счастью, существует несколько инструментов, как для терминала, так и с графическим интерфейсом. В этой статье я познакомлю вас с несколькими популярными программами для мониторинга последовательного порта в Linux.
Фон
Мышь моего первого ПК подключена к последовательному порту. Как и мой модем для подключения к моему интернет-провайдеру по телефонной линии. Но кому на самом деле все еще нужен последовательный порт во времена USB? Обычно те, кто работает с системами на базе микроконтроллеров. Вспомните Arduino, Atmel AVR, Microchip PIC, STM32 и т. д.
Все микроконтроллеры по-прежнему имеют подсистему UART. UART расшифровывается как универсальный асинхронный приемник/передача. UART позволяет этим встроенным устройствам последовательно взаимодействовать друг с другом (RS232/RS485/Modbus), а также с ПК. Для связи с таким устройством с помощью вашего ПК его периферийное устройство UART подключается к последовательному порту вашего ПК с помощью микросхемы переключения уровня RS232. Регулятор уровня RS232 регулирует уровни напряжения линий TX и RX (TTL) периферийного устройства UART в соответствии со спецификацией RS232.
Большинство ПК больше не поставляются с последовательным портом, но, к счастью, вы можете приобрести недорогой адаптер RS232-USB для подключения стандартного разъема RS232 SUB-D9 к USB-порту вашего ПК. Более того, последние разработки микроконтроллеров включают в себя всю электронику для этого на борту. Например с чипом FTDI FT232R. Таким образом, вы можете напрямую подключить плату к компьютеру с помощью стандартного USB-кабеля.
Независимо от того, какой метод вы используете для подключения устройства RS232 к компьютеру, оно отображается как последовательное устройство. В Windows это COM-порт, например COM1. В Linux он отображается как устройство терминал телетайпа (TTY), например /dev/ttyS0 , /dev/ttyUSB0 или /dev/ttyACM0 .
В этом учебном пособии объясняется, как с помощью Linux можно отслеживать данные о передаче данных через последовательный порт и даже взаимодействовать с ними. Обычно я использую это при отладке программного обеспечения микроконтроллера или для отправки команд микропрограмме, работающей на микроконтроллере.
Краткое введение в последовательную связь
Последовательный порт предлагает базовый интерфейс для связи с внешними устройствами. Он называется serial, потому что биты перемещаются по линии связи последовательно, то есть один бит за другим. Биты перемещаются с заданной скоростью, также известной как скорость передачи данных. Типичные настройки скорости передачи: 9600, 19200, 38400, 57600 и 115200 бит в секунду. Последовательная связь состоит из двух проводов, один для передачи (TX) и один для приема (RX) данных. Каждый провод имеет высокий логический уровень в состоянии простоя.
Для передачи полного байта передающая сторона сначала отправляет младший логический бит (стартовый бит), затем восемь битов данных и, наконец, еще один младший логический бит (стоповый бит). Это означает, что передача байтов на самом деле состоит из десяти битов. Эти стартовые и стоповые биты позволяют принимающей стороне синхронизироваться с потоком данных. Из-за отдельных проводов TX и RX данные могут передаваться в обоих направлениях одновременно, что также называется полнодуплексной связью.
Что вам нужно
Для этой статьи вам понадобятся две вещи:
- ПК с Linux, в идеале с установленной средой рабочего стола.
- Устройство, которое обменивается данными через RS232.
На самом деле ПК с Linux может быть чем угодно. Ваш ежедневный драйвер, Raspberry PI или виртуальная машина. Для этой статьи я решил использовать свой основной компьютер, на котором работает openSUSE Tumbleweed. Если у вас еще не установлен Linux, попробуйте настроить Ubuntu как виртуальную машину:
Для устройства, способного обмениваться данными по RS232, я выбрал старую добрую Arduino Uno. Как поклонник Linux, заинтересованный в мониторинге последовательного порта, у вас может даже заваляться один. Если нет, подумайте о том, чтобы получить его. Платы Arduino — это отличная возможность поэкспериментировать и предложить образовательный подход к встраиваемым системам.
Пример программы последовательной связи для Arduino Uno
Для этого урока я создал небольшой скетч для Arduino. Он делает следующее:
- Распечатывает меню выбора на последовательном порту.
- Затем ожидает ввода 1 или 2.
- Мигает встроенный светодиод с интервалом времени в зависимости от вашего выбора в меню.
Код эскиза:
В оставшейся части этой статьи предполагается, что вы загрузили этот скетч в Arduino Uno. Кроме того, предполагается, что вы подключили Arduino к USB-порту на вашем ПК с Linux. Кроме того, вы можете использовать любое другое устройство. Пока он передает ASCII назад и вперед, в целях тестирования. Обратитесь к этой статье для получения дополнительной информации об установке Arduino IDE в Linux, а также о создании и загрузке скетчей на плату Arduino.
Поиск устройства с последовательным портом в Linux
Принимая во внимание, что вы подключили устройство последовательной связи к компьютеру с помощью USB-кабеля, оно отображается как:
Где x обозначает число, зависящее от количества подключенных последовательных устройств.
Чтобы отслеживать последовательный порт, нам сначала нужно определить его имя устройства Linux. Выполните следующую команду, чтобы получить список:
Как вы можете видеть на снимке экрана выше, Arduino Uno отображается в моей системе как устройство /dev/ttyACM0. Это имя устройства, которое нужно указать при попытке контролировать последовательный порт на моем ПК с Linux.
Настройка разрешений для доступа к устройству с последовательным портом
Снимок экрана терминала из предыдущего раздела, на котором перечислены устройства последовательной связи, содержит более важную информацию. А именно, что только пользователь root или члены группы dialout имеют доступ к нему. Другими словами, вы должны добавить своего пользователя в группу dialout. В противном случае вы не сможете получить доступ к последовательному устройству /dev/ttyACM0.
Чтобы добавить своего пользователя в группу dialout , откройте терминал и выполните команду:
После этого запустите команду groups, чтобы убедиться, что ваш пользователь теперь входит в группу dialout . Возможно, вам придется сначала перезагрузить систему Linux, чтобы изменение группы активировалось.
Контролировать последовательный порт в Linux с терминала
Покончив с настройкой системы, мы можем продолжить фактическую часть мониторинга последовательного порта в вашей системе Linux. Мы начнем с того, что сделаем это непосредственно в терминале. Я предпочитаю использовать для этой цели программу screen.
Установка программы экрана
В моей системе openSUSE Tumbleweed программа установки автоматически установила экран.Я ненадолго запустил несколько виртуальных машин других дистрибутивов Linux. Только чтобы понять, что Debian, Ubuntu и Fedora не устанавливают экран по умолчанию. Не беспокойтесь, потому что здесь следуйте командам установки:
- Debian и Ubuntu: экран установки sudo apt
- Fedora: экран установки sudo dnf
- openSUSE: экран установки sudo zypper
Запуск программы экрана
Синтаксис для запуска screen для мониторинга последовательного порта в вашей системе Linux:
Как видно из предыдущего раздела, моя система Linux знает мой Arduino Uno как последовательное устройство с именем /dev/ttyACM0 . Кроме того, скетч, работающий на Arduino Uno, инициализирует последовательный интерфейс для скорости передачи данных (скорость связи) 9600 бит в секунду. Принимая во внимание эти параметры конфигурации, я запускаю экран с помощью этой команды:
После нажатия кнопки сброса на Arduino Uno появляется меню из примера программы. Это доказывает, что система Linux правильно получает данные от последовательного устройства Arduino Uno. Чтобы проверить, можем ли мы отправлять данные обратно в Arduino Uno, мы можем нажать 1 или 2 на клавиатуре. Встроенный светодиод должен начать мигать каждые 100 миллисекунд или 500 миллисекунд соответственно:
Закрытие программы экрана
На мой взгляд, экран отлично подходит для мониторинга последовательного порта в Linux. Единственная сложная и неинтуитивная часть — закрытие программы screen. Вы ожидаете, что CLTR + c поможет в этом или, возможно, ESC. К сожалению нет. Чтобы правильно закрыть экран, выполните следующие два шага:
Контролируйте последовательный порт в Linux с помощью приложения с графическим интерфейсом
Для тех, кому не нравится работать непосредственно в терминале Linux, приложение с графическим интерфейсом пользователя CuteCom предлагает надежную альтернативу.
Установка программы CuteCom
Установщик Linux не установил CuteCom по умолчанию. Ничего страшного, потому что мы можем быстро позаботиться об этом с помощью следующей команды установки:
- Debian и Ubuntu: sudo apt install cutecom
- Fedora: sudo dnf установить cutecom
- openSUSE: sudo zypper установить cutecom
Запуск программы CuteCom
Чтобы запустить CuteCom, найдите его средство запуска в меню приложений рабочего стола. Нажмите кнопку настройки в правом верхнем углу. Окно настроек раскрывается, где вы настраиваете эти параметры:
После этого вы можете нажать кнопку настройки еще раз, чтобы свернуть окно настроек. Когда CuteCom настроен на связь с Arduino Uno, продолжайте, нажав кнопку Открыть в пользовательском интерфейсе. Затем нажмите кнопку сброса на Arduino Uno, чтобы убедиться, что появилось меню из примера программы:
Зная, что прием данных работает, мы продолжаем тестировать передачу данных. Введите 1 или 2 в поле Ввод и нажмите клавишу ВВОД, чтобы отправить его. Затем встроенный светодиод должен начать мигать каждые 100 миллисекунд или 500 миллисекунд соответственно. Чтобы закрыть соединение с устройством последовательной связи, нажмите кнопку Закрыть в пользовательском интерфейсе.
Подведение итогов
Основной вопрос, на который дан ответ в статье, был следующим: как контролировать последовательный порт в Linux? Для этого были выбраны две программы. Тот, который работает непосредственно в терминале (экран), и тот, который поставляется с графическим пользовательским интерфейсом (CuteCom). В конце концов, все сводится к личным предпочтениям, чтобы решить, какой из них вы хотите использовать. Оба выполняют свою работу.
Что мне не понравилось в экране, так это то, что на нем немного сложнее понять, как выйти из программы. Сначала войдите в командный режим, нажав CLTR + a. Затем введите :quit и нажмите ENTER .
CuteCom предлагает удобный интерфейс. Единственное, что меня раздражает в CuteCom, это то, что вы не можете изменить шрифт. Я бы предпочел моноширинный шрифт по умолчанию.
Если вам не понравилась ни одна из этих программ, существуют альтернативы. Взгляните, например, на minicom и putty.
По следующим ссылкам можно найти другие статьи, связанные с последовательным портом и Arduino:
сообщить об этом объявлении
Порт — это логический объект, представляющий конечную точку связи и связанный с данным процессом или службой в операционной системе. В предыдущих статьях мы объяснили, как узнать список всех открытых портов в Linux и как проверить, доступны ли удаленные порты с помощью команды Netcat.
В этом кратком руководстве мы покажем различные способы поиска процесса/службы, прослушивающей определенный порт в Linux.
1. Использование команды netstat
Команда netstat (сетевая статистика) используется для отображения информации о сетевых подключениях, таблицах маршрутизации, статистике интерфейсов и т. д. Он доступен во всех Unix-подобных операционных системах, включая Linux, а также в ОС Windows.
Если он не установлен по умолчанию, используйте следующую команду для его установки.
После установки вы можете использовать его с командой grep, чтобы найти процесс или службу, прослушивающую определенный порт в Linux, следующим образом (укажите порт).
В приведенной выше команде флаги.
- l — указывает netstat показывать только прослушиваемые сокеты.
- t – указывает отображать TCP-подключения.
- n — показывает числовые адреса.
- p — включает отображение идентификатора процесса и имени процесса.
- grep -w — показывает точное совпадение строки (:80).
Примечание. Команда netstat устарела и заменена современной командой ss в Linux.
2. Использование команды lsof
Команда lsof (список открытых файлов) используется для вывода списка всех открытых файлов в системе Linux.
Чтобы установить его в своей системе, введите команду ниже.
Чтобы найти процесс/службу, прослушивающую определенный порт, введите (укажите порт).
3. Использование команды фьюзера
команда fuser показывает PID процессов, использующих указанные файлы или файловые системы в Linux.
Вы можете установить его следующим образом:
Вы можете найти процесс/службу, прослушивающую определенный порт, выполнив приведенную ниже команду (укажите порт).
Затем найдите имя процесса, используя номер PID с помощью команды ps, например так.
Вы также можете ознакомиться с этими полезными руководствами по процессам в Linux.
Вот и все! Знаете ли вы какие-либо другие способы найти процесс/службу, прослушивающую определенный порт в Linux, сообщите нам об этом через форму комментариев ниже.
Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.
Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:
TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.
Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.
Читайте также: