СИНОПСИС
loadrt hal_parport cfg="port_addr [type] [ [port_addr [type] .. .]"
ОПИСАНИЕ
The hal_parport component is a realtime component that provides connections from HAL via halpins to the physical pins of one or more parallel ports. It provides a read and write function to send and receive data to the attached parallel port(s).
The hal_parport component supports up to 8 physical parallel ports.
ОПЦИИ
- cfg="port_addr [type] [[port_addr [type] …]"
-
The cfg string tells hal_parport the address(es) of the parallel port(s) and whether the port(s) is/are used as an input or output port(s). Up to eight parallel ports are supported by the component.
Параметр port_addr строки конфигурации может быть либо физическим базовым адресом параллельного порта, либо указан как обнаруженный параллельный порт через драйвер Linux parport_pc. В этом случае port_addr 0 является первым параллельным портом, обнаруженным в системе, 1 является следующим и т. д.
The type parameter of the configuration string determines how the I/O bits of the port are used. There are four possible options and if none is specified will default to out.
- in
-
Sets the 8 bits of the data port to input. In this mode the parallel port has a total of 13 input pins and 4 output pins.
- out
-
Sets the 8 bits of the data port to output. In this mode the parallel port has a total of 5 input pins and 12 output pins.
- epp
-
This option is the same as setting to out, but can cause the computer to change the electrical characteristics of the port, see USAGE below.
- x
-
The option allows ports with open collectorts on the control group pins to be configured as inputs resulting in 8 output pins and 9 input pins, see USAGE below.
PINS
The pins created by the hal_parport component depends on how it is configured in the cfg="" string passed to it, see OPTIONS.
- parport.p.pin-n-out (bit)
-
Управляет физическим выходным контактом.
- parport.p.pin-n-in (bit)
-
Отслеживает физический входной контакт.
- parport.p.pin-n-in-not (bit)
-
Отслеживает физический входной контакт, но инвертированный.
Для каждого созданного контакта p — это номер порта, а n — это физический номер контакта в 25-контактном разъеме D-Sub.
Для каждого физического выходного контакта драйвер создает один контакт HAL, например: parport.0.pin-14-out.
Для каждого физического входного контакта драйвер создает два контакта HAL, например: parport.0.pin-12-in и parport.0.pin-12-in-not.
Контакт -in HAL имеет значение TRUE, если физический контакт имеет высокий уровень, и FALSE, если физический контакт имеет низкий уровень. Контакт -in-not HAL инвертирован и имеет значение FALSE, если на физическом контакте высокий уровень.
The following lists the input and output pins by the type setting used in the cfg="" string.
in: Pins 2,3,4,5,6,7,8,9,10,11,12,13,15 are input pins and pins 1,14,16 and 17 are output pins.
out/epp: Pins 10,11,12,13 and 15 are input pins and pins 1,2,3,4,5,6,7,8,9,14,16 and 17 are output pins.
x: Pins 1,10,11,12,13,14,15,16 and 17 are input pins and pins 2,3,4,5,6,7,8,9 are output pins. (See USAGE section.)
PARAMETERS
- parport.p.pin-<n>-out-invert (bit)
-
Inverts an output pin.
- parport.p.pin-<n>-out-reset (bit)
-
(only for out pins) TRUE if this pin should be reset when the .reset function is executed.
- parport.p.reset-time (u32)
-
The time (in nanoseconds) between a pin is set by write and reset by the reset function if it is enabled.
FUNCTIONS
- parport.p.read (funct)
-
Считывает физические входные контакты и обновляет контакты HAL -in и -in-not.
- parport.read-all (funct)
-
Reads physical input pins of all ports and updates HAL -in and -in-not pins.
- parport.p.write (funct)
-
Считывает контакты HAL -out порта номер p и обновляет физические выходные контакты этого порта.
- parport.write-all (funct)
-
Reads HAL -out pins of all ports and updates all physical output pins.
- parport.p.reset (funct)
-
Ожидает, пока reset-time не истечет с момента соответствующей записи, затем сбрасывает выводы до значений, указанных -out-reset и -out-invert настройкой. Сброс должен быть позже в том же потоке, что и запись. Если -out-reset TRUE, то функция сброса установит вывод на значение _ -out-invert_ . Это можно использовать вместе с stepgen’s doublefreq для создания одного шага за период. Stepspace stepgen для этого контакта должно быть установлено в 0, чтобы включить doublefreq.
ИСПОЛЬЗОВАНИЕ
Компонент hal_parport — это драйвер для традиционного параллельного порта ПК. Порт имеет в общей сложности 25 физических контактов, из которых 17 используются для сигналов. Исходный параллельный порт разделял эти контакты на три группы: данные, управление и состояние. Группа данных состоит из 8 выходных контактов, группа управления состоит из 4 выходных контактов, а группа состояния состоит из 5 входных контактов.
В начале 1990-х годов был представлен двунаправленный параллельный порт, который позволяет использовать группу данных для вывода или ввода. Драйвер HAL поддерживает двунаправленный порт и позволяет пользователю устанавливать группу данных как входную или выходную. Если порт настроен как "out", порт обеспечивает в общей сложности 12 выходов и 5 входов. Если он настроен как "in", он обеспечивает 4 выхода и 13 входов.
В некоторых параллельных портах контакты группы управления представляют собой открытые коллекторы, которые также могут быть переведены на низкий уровень с помощью внешнего затвора. На плате с управляющими контактами с открытым коллектором. Если настроено как "x", он обеспечивает 8 выходов и 9 входов.
В некоторых параллельных портах группа управления имеет двухтактные драйверы и не может использоваться в качестве входа.
- Примечание: HAL и открытые коллекторы
-
HAL не может автоматически определить, являются ли двунаправленные контакты режима x на самом деле открытыми коллекторами (ОК). В противном случае их нельзя использовать в качестве входов, и попытка перевести их на НИЗКИЙ уровень от внешнего источника может привести к повреждению оборудования.
Чтобы определить, имеет ли ваш порт контакты открытый коллектор, загрузите hal_parport в режиме x. Если устройство не подключено, HAL должен прочитать вывод как TRUE. Затем вставьте резистор сопротивлением 470 Ом от одного из управляющих контактов к GND. Если результирующее напряжение на выводе управления близко к 0 В, и HAL теперь считывает вывод как FALSE, то у вас есть порт OК. Если результирующее напряжение далеко от 0,0 В или HAL не считывает вывод как FALSE, то ваш порт нельзя использовать в режиме x.
The external hardware that drives the control pins should also use open collector gates (e.g., 74LS05).
На некоторых компьютерах настройки BIOS могут влиять на возможность использования режима x. Режим SPP, скорее всего, сработает.
Никакие другие комбинации не поддерживаются, и порт нельзя изменить с входа на выход после установки драйвера.
Драйвер parport может управлять до 8 портов (определенными параметром MAX_PORTS в hal_parport.c). Порты нумеруются начиная с нуля.
- Загрузка компонента hal_parport
-
Драйвер hal_parport — это компонент реального времени, поэтому его необходимо загрузить в поток реального времени с помощью loadrt. Строка конфигурации описывает используемые параллельные порты и (необязательно) их типы. Если строка конфигурации не описывает хотя бы один порт, это ошибка.
loadrt hal_parport cfg="port [type] [port [type] …]" - Указание порта
-
Числа ниже 16 относятся к параллельным портам, обнаруженным системой. Это самый простой способ настройки драйвера hal_parport, который взаимодействует с драйвером parport_pc в Linux, если он загружен. Порт 0 — это первый параллельный порт, обнаруженный в системе, порт 1 — следующий и так далее.
- Базовая конфигурация
-
При этом будет использоваться первый параллельный порт, обнаруженный Linux:
loadrt hal_parport cfg="0" - Использование адреса порта
-
Вместо этого адрес порта можно указать с помощью шестнадцатеричной записи 0x, а затем адрес.+ loadrt hal_parport cfg="0x378"
- Указание типа порта
-
For each parallel port handled by the hal_parport driver, a type can optionally be specified. The type is one of in, out, epp, or x.
If the type is not specified, the default is out.
Тип epp аналогичен out, но драйвер hal_parport запрашивает переключение порта в режим EPP. Драйвер hal_parport не использует протокол шины EPP, но в некоторых системах режим EPP изменяет электрические характеристики порта таким образом, что некоторые аппаратные средства могут работать лучше. Известно, что генератор подкачки Gecko G540 требует этого на некоторых параллельных портах.
See the Note above about mode x.
- Пример с двумя параллельными портами
-
Это активирует два обнаруженных системой параллельных порта: первый в режиме вывода, а второй в режиме ввода:
loadrt hal_parport cfg="0 out 1 in" - Functions single port
-
Вам также необходимо указать LinuxCNC, как запускать функции чтения и записи..
addf parport.read-all base-thread
addf parport.write-all base-thread - Functions multiple ports
-
Вы можете указать LinuxCNC запустить функции чтения и записи для всех подключенных портов..
addf parport.0.read base-thread
addf parport.0.write base-thread
Отдельные функции предусмотрены для ситуаций, когда один порт необходимо обновить в очень быстром потоке, а другие порты можно обновить в более медленном потоке для экономии времени процессора. Вероятно, не очень хорошая идея использовать одновременно функцию -all и отдельную функцию.
СМОТРИТЕ ТАКЖЕ
Parallel Port Driver (Hardware Drivers Section of LinuxCNC Docs), PCI Parallel Port Example (Hardware Examples Section of LinuxCNC Docs)
АВТОР
This man page written by Joe Hildreth as part of the LinuxCNC project. Most of this information was taken from the parallel-port docs located in the Hardware Drivers section of the documentation. To the best of our knowledge that documentation was written by Sebastian Kuzminsky and Chris Radek.