- •1Понятие порта
- •2Последовательные Com-порты
- •2.1Настройка сом-порта.
- •2.2Работа с сom-портом из-под Win32
- •Настройка порта
- •Параллельные lpt-порты
- •3Пример применения
- •Требования к программному обеспечению
- •Входные данные Исходные данные и условия от устройства взвешивания
- •Перечень входной информации
- •Выходная информация
- •Алгоритм получения окончательного значения веса
- •Другие применения на производстве
- •4Usb и 1394 (I.Link) FireWare - новые интерфейсы ввода-вывода
2.1Настройка сом-порта.
Открыв окно свойств порта и выбрав вкладку Настройка, увидим множество опций (рис. 4).
Рис.4 – Окно настройки com-порта
Скорость — в этом пункте выбираем скорость обмена между устройством и ПК.
Биты данных — сколько бит передавать за один раз (между старт-битом и стоп-битом).
Четность — выбор способа контроля четности. При передаче к числу добавляется еще один бит, дополняющий количество единиц в числе до четного или нечетного (это уже как выбрано в режиме передачи). Этот бит становится младшим разрядом передаваемого числа и принимает значение 1, если у нас нечетное число единиц, и 0, если четное. При проверке на четность, в случае если мы приняли нечетное число единиц (при проверке на нечетность — наоборот), порт передает устройству информацию об ошибке и просит повторить передачу.
Стоповые биты — количество стоп-бит, необходимых для правильного распознавания конца байта.
Управление потоком — выбор режима управления потоком (аппаратного или программного). В режиме программного управления, при определении ошибки, требуется некоторое время, чтобы отправить сигнал XOFF и приостановить прием, но за это время может произойти передача нескольких байт, которые будут утеряны (в случае отсутствия буфера принимаемых данных).
В пункте Дополнительно можно выбрать объем буферов FIFO либо отключить их вообще (что не рекомендуется).
Совет. Если у вас все нормально работает, не меняйте настройки, стоящие по умолчанию! Менять их необходимо тогда, когда этого требует устройство (о чем, наверняка, будет подробно сказано в инструкции к нему).
Таблица 2 – Ресурсы com-портов
Номер COM порта |
Используемые адреса |
Номер IRQ |
COM1 |
3F8h - 3FFh |
IRQ4 |
COM2 |
2F8h - 2FFh |
IRQ3 |
COM3 |
3E8h - 3EFh |
IRQ4 |
COM4 |
2E8h - 2EFh |
IRQ3 |
2.2Работа с сom-портом из-под Win32
С портами из-под Win32 работают так же, как и с обычными файлами, используя при этом всего несколько специфичных функций WinAPI. Однако коммуникационный порт — это не совсем обычный файл. Для него, например, нельзя выполнить позиционирование файлового указателя, или же создать порт, если таковой отсутствует.
Любая работа с портом начинается с его открытия. Для этого используется файловая функция WinAPI.
C последовательными портами в Win32 работают как с файлами. Причем используют только функции API Win32.
Начинается работа с открытия порта как файла, причем для асинхронного режима ввода-вывода возможен только один вариант:
HANDLE handle = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, NULL, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
Других вариантов быть не может, поэтому не будем рассматривать параметры этой функции подробно, единственное, что можно сделать — это заменить “COM1” на “COM2”.
При успешном открытии порта функция возвращает дескриптор handle, с которым и будем работать в дальнейшем. При неудачном открытии порта функция вернет значение INVALID_HANDLE_VALUE.
