Интернет магазин китайских планшетных компьютеров



Компьютеры - Последовательный порт - Программный доступ к СОМ-порту

22 января 2011


Оглавление:
1. Последовательный порт
2. Назначение
3. Разъемы
4. Аппаратура
5. Программный доступ к СОМ-порту
6. Нуль-модемный кабель



UNIX

COM-порты в операционной системе Unix — это файлы символьных устройств. Обычно эти файлы располагаются в каталоге /dev и называются

  • ttyS0, ttyS1, ttyS2 и т. д. в Linux
  • ttyd0, ttyd1, ttyd2 и т. д. в FreeBSD
  • ttya, ttyb, ttyc и т. д. в Solaris
  • ttyf1, ttyf2, ttyf3 и т. д. в IRIX
  • tty1p0, tty2p0, tty3p0 и т. д. в HP-UX
  • tty01, tty02, tty03 и т. д. в Digital Unix
  • ser1, ser2, ser3 и т. д. в QNX

Для программного доступа к СОМ-порту необходимо открыть на чтение/запись соответствующий файл и сделать вызовы специальных функций tcgetattr и tcsetattr. Также может потребоваться сделать вызовы ioctl с определенными параметрами. После этого при записи в файл данные будут отправляться через порт, а при чтении программа будет получать уже принятые данные из буфера СОМ-порта.

Устроиства с именами "ttyxx" используются как серверные, т.е. приложение, открывшее данное устройство, обычно ожидает входящего звонка от модема. Классическим таким приложением, используемым по умолчанию, является getty, которая ожидает входящего звонка, далее настраивает COM-порт в соответствии с файлами конфигурации, выводит туда "login:", принимает имя пользователя и запускает как потомка команду "login ИмяПользователя", со стандартным вводом и выводом, перенаправленными в COM-порт. Эта команда в свою очередь запрашивает и проверяет пароль, и в случае успеха запускает default user shell, прописанный в файле /etc/passwd.

Эта технология исторически возникла в 1970ые годы, когда под ОС UNIX использовались компьютеры вроде PDP-11 или VAX, позволяющие подключение многих терминалов для работы многих пользователей. Терминалы - а значит, и весь интерфейс пользователя - при этом подключались через сериальные порты, с возможностью подключения вместо терминала модема и дальнейшего дозвона на компьютер по телефону. До сих пор в UNIX-подобных ОС существует терминальный стек, и обычно 3 реализации терминалов - сериальный порт, консоль текстового режима экрана+клавиатура, и "обратная петля" в один из открытых файлов управляющего приложения.

Клиентские устройства сериального порта, предназначенные для совершения звонков вовне, в многих UNIX называются cuaxx.

Так как сериальный порт в UNIX доступен только через терминальный стек, он может быть управляющим терминалом для процессов и групп, на уровне ядра поддерживать редактирование последней введенной строки клавишами стрелочек, и т.д. Для отключения этой возможности с целью превращения устройства в "трубу" для потока байт необходимы вызовы ioctl.

Windows

COM-порты в операционной системе Windows — это именованные каналы для передачи данных, называемые обычно COM1, COM2 и т. д. по порядку обнаружения драйверов соответствующих устройств. Например, для обмена информации через Bluetooth многие драйверы представляются операционной системе как COM-порт, и резервируют похожее имя. Следует также отметить, что организация взаимодействия по последовательному порту с точки зрения программирования реализуется значительно легче, чем другие способы.

Для каждого порта в реестре имеется раздел. Эти разделы имеют такие имена:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial10000

где последнее значение “Serial10000” - уникальный номер для каждого нового добавленного в систему COM-порта, для второго – “Serial10001” и т.д

Для связи с устройствами, поддерживающими Bluetooth, некоторым программам на компьютере пользователя требуется COM-порт.

К программам, использующим COM-порты для поддержки связи с помощью технологии беспроводного подключения Bluetooth, непосредственно разработанных фирмой Microsoft, относятся:

  • HotSync, используемый в ручных компьютерах
  • ActiveSync, используемый в карманных ПК
  • Microsoft Streets and Trips 2002

OS/2

Имеющийся драйвер COM.SYS поддерживает только 4 COM-порта, каждый из которых должен иметь свою линию прерываний. Для обслуживания COM-портов с общей линией прерывания необходимо воспользоваться драйвером SIO.



Просмотров: 7468


<<< Последовательное соединение (информатика)
Сигналы последовательных портов >>>