Универсальный последовательный порт |
Главная / ЭКВМ / Техническая информация / Функции |
9. Универсальный последовательный порт9.1. Описание9.1.1. Универсальный последовательный порт предназначен для организации обмена данными с внешними устройствами по интерфейсу Стык С2 (RS-232C). 9.1.2. Порт содержит буфер передаваемых данных, буфер принятых данных, регистры данных, настройки и управления. Режим работы порта - полудуплексный, то есть передача и приём данных могут быть выполнены только по очереди, но не одновременно. 9.1.3. Для подключения внешних устройств используется разъемы ИПС и ВУ, розетка DB-9 и вилка DB-25 соответственно. Распайка разъемов соответствует стандартной распайке для интерфейса RS-232C. При этом, на розетку DB-9 выведены только сигналы RxD, TxD и GND, на вилку DB-25 дополнительно выведен сигнал DTR, остальные сигналы, предусмотренные протоколом, не формируются и не используются. Примечание. Сигнал DTR позволяет, при помощи дополнительного устройства, подключаемого к ЭВМ, сформировать сигналы интерфейса RS-485. При отсутствии активности по сигналу TxD линия находится в "третьем" (высокоомном) состоянии, что позволяет подключать несколько устройств параллельно на одну линию, образуя многоточечное соединение. 9.2. Регистры настроек универсального последовательного порта9.2.1. Описание Все регистры настроек доступны по чтению и записи. Занесение данных и чтение состояния регистров настроек производится при обращении к соответствующим регистрам памяти ЭВМ. При записи данных производится ограничение числа, находящегося в регистре X стека. При чтении - стек ЭВМ поднимается, в регистр X стека заносится значение, записанное в регистр ранее. 9.2.2. Разрешение универсального последовательного порта (R9070) Доступ к регистру обеспечивается при обращении к регистру памяти данных с адресом 9070. При записи числа 1 универсальный последовательный порт разрешен, при записи числа 0 - запрещен. Если доступ программы пользователя к порту запрещен, во время работы программы к ЭВМ через последовательный порт может быть выполнено обращение средствами удалённого доступа. 9.2.3. Скорость обмена (R9071) Запись и считывание скорости обмена данными производится при обращении к регистру памяти с адресом 9071. Содержимое регистра может принимать значения от 0 до 13 (см. табл. 6). Таблица 6
9.2.4. Режим обмена (R9072) Установление и считывание значения обеспечивается при обращении к регистру памяти с адресом 9072. При записи числа 0 устанавливается режим обмена восьмибитной последовательностью данных, при записи числа 1 - режим обмена девятитибитной последовательностью. Режим девятибитной последовательности может быть использован для организации контроля чётности/нечётности данных или формирования дополнительного стоп-бита при обмене восьмибитовыми данными. 9.2.5. Время ожидания при приеме данных (R9073) Время ожидания при приёме данных устанавливается и считывается при обращении к регистру памяти с адресом 9073. Время ожидания может принимать значения от 0 до 255. Записанное число определяет время ожидания второй и последующих посылок (байтов или девятибитных последовательностей) при приеме сообщения. Каждая единица соответствует времени 1,25 мс. При записи числа ноль время не проверяется, задержка между посылками в принимаемом пакете может быть любой. 9.2.6. Режим автоматического приёма (R9074) Состояние режима автоматического приёма устанавливается и считывается при обращении к регистру памяти с адресом 9074. При записи числа 0 устанавливается режим автоматического включения приёма после окончания передачи, при записи числа 1 - режим автоматического приёма запрещен. 9.2.7. Время ожидания ответа (R9078) Время ожидания ответа устанавливается и считывается при обращении к регистру памяти с адресом 9078. Время ожидания может принимать значения от 0 до 255. Записанное число определяет время ожидания первой посылки (байтов или девятибитных последовательностей) при приеме сообщения. Каждая единица соответствует времени 1,25 мс. При записи числа ноль время не проверяется, и задержка перед приемом первой посылки не ограничивается. 9.3. Регистры данных универсального последовательного порта9.3.1. Индексный регистр буфера передачи (R9080) Регистр памяти с адресом 9080 задает смещение относительно начала буфера передачи при записи и чтении данных в буфер. Может принимать значения от 0 до 255 Регистр доступен по записи и чтению. 9.3.2. Индексный регистр буфера приема (R9085) Регистр памяти с адресом 9085 задает смещение относительно начала буфера приема при записи и чтении данных в буфер приема. Может принимать значения от 0 до 255. Регистр доступен по записи и чтению. 9.3.3. Счётчик принятых и переданных посылок (R9075) Регистр памяти с адресом 9075 содержит счётчик принятых и переданных посылок. Содержимое регистра автоматически увеличивается на единицу при приёме или передаче одной посылки. Содержимое счётчика обнуляется при переполнении свыше числа 255 и при переключении порта с передачи на прием и обратно. Запись в регистр с указанным номером не изменяет состояние счетчика посылок. 9.3.4. Текущее значение времени ожидания ответа (R9079) Регистр памяти с адресом 9079 содержит время, оставшееся до окончания ожидания ответа. В момент начала автоматического приёма регистр инициализируется содержимым регистра с адресом 9078. Далее содержимое регистра уменьшается на единицу каждые 1,25 мс до достижения нулевого значения. Чтение текущего значения времени ожидания ответа производится при выполнении команды чтения из регистра памяти с адресом 9079. При этом, при обращении к регистру стек поднимается, текущее значение времени ожидания заносится в регистр X стека. Операция записи по адресу 9079 не изменяет стек ЭВМ и текущее значение времени ожидания. 9.4. Функции универсального последовательного порта9.4.1. Запись и чтение данных в буфер передачи (R9081-R9084) Буфер передачи состоит из двух частей - байтового буфера и буфера девятого бита. Запись и чтение данных из каждой части буфера передачи производится отдельно. Операция чтения и записи байтовой части буфера передачи производится при обращении к регистрам памяти с адресами 9081 и 9082. При записи содержимое регистра X стека преобразуется в целое, ограничивается до значения 255 и записывается в байтовый буфер в ячейку, смещенную относительно начала на число, записанное в индексный регистр буфера передачи (см. п. 9.3.1). При чтении стек поднимается, содержимое ячейки записывается в регистр X стека. Кроме этого, при обращении к регистру памяти данных с адресом 9082, после выполнения операции чтения или записи содержимого ячейки буфера, производится автоматическое увеличение содержимого индексного регистра буфера передачи на единицу. При достижении максимального значения, содержимое индексного регистра обнуляется. Операция чтения и записи в буфер девятого бита буфера передачи производится при обращении к регистрам памяти данных с адресами 9083 и 9084 и выполняется аналогично операции обращения к байтовой части буфера передачи (к регистрам памяти данных с адресами 9081 и 9082 соответственно). Число ограничивается до значения 1. 9.4.2. Запись и чтение данных в буфер приема (R9086-R9089) Буфер приема устроен аналогично буферу передачи. Запись и чтение данных в буфер приема производится аналогично записи и чтению данных в буфер передачи по п. 9.4.1. При этом, для обращения к байтовой части буфера приема используются регистры памяти с адресами 9086 и 9087, для обращения к девятому биту буфера приема используются регистры памяти с адресами 9088 и 9089. Смещение задает число, записанное в индексном регистре буфера приема (см. п. 9.3.2). 9.4.3. Передача данных (R9077) Передача данных по последовательному порту начинается после выполнения операции записи в регистр памяти с адресом 9077. При выполнении команды значение регистра X стека преобразуется в целое число, ограничивается до 255 и заносится в регистр передачи. Если число не равно нулю, то счетчик посылок (см. п. 9.3.3) обнуляется, число из буфера передачи заносится в устройство ввода-вывода ЭВМ и передаётся в последовательный порт. При этом смещением для загрузки числа из буфера передачи в порт служит счетчик посылок. После передачи одной посылки число в регистре передачи уменьшается на единицу, счетчик посылок увеличивает свое значение на единицу, после чего цикл повторяется. Передача длится до тех пор, пока число в регистре передачи не станет равным нулю. Текущее значение числа в регистре передачи можно прочитать при выполнении операции чтения из регистра памяти с адресом 9077. При этом стек поднимается, содержимое регистра передачи заносится в регистр X стека. Аналогичным образом можно прочитать число переданных байтов. Для этого необходимо выполнить операцию чтения из регистра счетчика переданных посылок (см. п. 9.3.3). 9.4.4. Прием данных (R9076) Прием данных по последовательному порту начинается после установки разрешения приема. Для этого в регистр памяти с адресом 9076 записывают число 1, при этом счетчик посылок (см. п. 9.3.3) обнуляется, а устройство ввода-вывода ЭВМ переходит в режим приема данных от последовательного порта. Запись в указанный регистр числа 0 запрещает прием. Каждая принятая посылка заносится в буфер приема, после чего значение счетчика посылок (см. п. 9.3.3) увеличивается на единицу. Смещением для загрузки числа в буфер приема из приемника порта служит счетчик посылок. Если количество принятых посылок превышает 255, счетчик обнуляется, и буфер начинает заполняться с начала. Время ожидания первой посылки не ограничивается, если прием инициирован записью в регистр, а не начался автоматически после окончания передачи. После приема первой и каждой последующей посылки включается временная задержка, установленная в соответствии с п. 9.2.5. После окончания задержки значение в регистре разрешения приёма сбрасывается, прием автоматически завершается. Текущее значение числа принятых посылок можно считать из регистра счетчика посылок. Прием данных начинается автоматически сразу после окончания передачи, если не установлен запрет автоматического приема в соответствии с п. 9.2.6. Время ожидания первой посылки в этом случае устанавливается в соответствии с п. 9.2.7. |
||||||||||||||||||||||||||||||
НПП "СЕМИКО" (383) 271-01-25 (многоканальный) |