1 ПК1 выставляет сигнал DTR. На ПК2 этот сигнал приходит на линию DSR, связанную с прерыванием;
2 По мере готовности ПК2 выставляет сигнал на линию DTR;
3 ПК1 записывает в параллельный регистр байт информации и выставляет сигнал RTS (готов передать). ПК2 получает этот сигнал по линии CTS, и, если его входной буфер свободен, то выставляет свой сигнал RTS;
4 ПК1, имея два активных сигнала, начинает передачу, данные переписываются в сдвиговый регистр, дополняются битом паритета и выдвигаются через определённые интервалы; при этом сигнал RTS сбрасывается;
5 ПК2 получает посылку, сбрасывает свой сигнал RTS, после чего переписывает содержимое из последовательного регистра в параллельный регистр и передаёт в процессор;
6 ПК1: если есть информация для передачи, то переписывает информацию в регистр, выставляет сигнал RTS;
7 ПК2 анализирует принятый байт, выполняет действия, заложенные программой и по готовности программы опять анализирует DSR и CTS. Если они активны, то обмен продолжается.
8 ПК1 после передачи последней посылки снимает сигналы RTS и DSR.
9 ПК2 анализирует сигналы линий DSR и CTS. Если они сброшены, то тоже снимает свой сигнал DTR.
Функции получения информации при обмене данными всегда применяются в приложениях, где необходимо осуществить настройку параметров до начала приема или передачи.
Основные информационные функции обмена по последовательному порту RS-232С:
GetCommTimeouts;
GetCommProperties;
GetCommState.
Данные функции позволяют получить следующую информацию:
а) временные характеристики обмена:
время, в течение которого должен быть получен следующий символ при приеме;
время, в миллисекундах, на каждый принимаемый символ;
время, в миллисекундах, прибавляемое к общему времени приема;
время, в миллисекундах, на каждый передаваемый символ;
время, в миллисекундах, прибавляемое к общему времени передачи;
б) свойства устройства обмена:
тип устройства;
версия пакета;
максимальный размер внутреннего буфера для передачи в байтах;
размер внутреннего буфера для передачи в байтах;
максимальный размер внутреннего буфера для приема в байтах;
размер внутреннего буфера для приема в байтах;
максимальная скорость передачи в битах на секунду (bps);
поддерживаемые режимы и возможности;
устанавливаемые параметры;
устанавливаемые скорости передачи;
поддерживаемые количества информационных бит;
поддерживаемые количества стоповых бит;
поддерживаемые паритеты;
в) параметры текущего сеанса связи:
текущая скорость передачи в bps;
количество информационных бит;
количество стоповых битов;
значение символа XON для приема и передачи;
значение символа XOFF для приема и передачи;
значение символа замещающий байты при ошибке;
значение символа "конец вводимых данных";
значение символа "конец вводимых данных";
значение символа "событие" и т.д.
Необходимо отметить, что обмен данными между двумя устройствами по последовательному порту будет корректно осуществляться только в том случае, когда передатчик на одной стороне и приемник на противоположной стороне имеет идентичные параметры настройки.
Настройка параметров, так же как передача и прием осуществляется с использованием управляющих функций. Основные управляющие функции Win32 API для обмена по последовательному порту:
SetCommTimeouts;
SetCommState;
WriteFile;
ReadFile.
Для работы с данными функциями потребуются обслуживающие функции, которыми являются CreateFile (открытие устройства) и CloseHandle (закрытие устройства).
Приведенные функции позволяют осуществить следующие действия:
а) изменение временных характеристик обмена: изменение времени, в течение которого должен быть получен следующий символ при приеме;
изменение времени, в миллисекундах, на каждый принимаемый символ;
изменение времени, в миллисекундах, прибавляемое к общему времени приема;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.