Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОРТЫ_ЛЕКЦИЯ_2011.DOC
Скачиваний:
9
Добавлен:
09.09.2019
Размер:
320.51 Кб
Скачать

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.