Программное обеспечение управления автоматизированным комплексом многоканальной связи

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



? потоком с использованием программного обеспечения применяются специальные управляющие символы ASCII. Управлять потоком необходимо ввиду того, что иногда либо передатчик либо приемник не могут поддерживать скорость передачи и они должны иметь возможность информировать другую сторону о необходимости остановки на время, требуемое для того, чтобы отставшая сторона смогла догнать другую.

Предположим, что приемник имеет буфер для хранения поступающих символов. Как только буфер после заполнения закрывается, приемник может послать символ XOFF передатчику, сигнализируя, что передача должна быть приостановлена. Конечно, передатчик должен понять значение XOFF и прекратить передачу символов. Затем, когда приемник обработает символы и буфер освободится, тогда посылается символ XON, показывающий, что передача может быть продолжена. Эта схема управления потоком широко применяется ввиду ее простоты. Большинство связных программ предоставляют возможность дуплексной связи с управлением потоком, основанном на применении символов XON/XOFF.

1.5 Общие методы ввода/ вывода через коммуникационный порт

Существует два общих метода ввода/ вывода в любой вычислительной системе: упорядоченный и управляемый прерываниями. Упорядоченность относится к повторяющейся проверке состояния регистра устройства ввода/ вывода для инициализации требуемой транзакции. В упорядоченном вводе/ выводе программа, запрашивающая символ ввода, многократно iитывает состояние регистра в устройстве ввода/ вывода до тех пор, пока оно не покажет, что символ доступен для ввода. Когда состояние указывает, что имеется готовый для работы символ, программа iитывает его из соответствующего регистра устройства ввода/ вывода. Сходная последовательность ждать, до тех пор пока не готов, затем писать используется при выведении символов на устройство ввода/ вывода. Таким образом, дальнейшее выполнение программы приостанавливается до завершения выполнения операции ввода/ вывода.

Большой проблемой для упорядоченного ввода/ вывода через коммуникационный порт является то, что при скорости передачи выше 300 бод программе трудно что-либо сделать с получаемым символом кроме как отображать его на экране. Рассмотрим следующий пример. Предположим, что мы читаем символы со скоростью 300 бод и имеем следующие связные параметры: длина слова 7 бит, проверка на четность и один стоповый бит, который вместе со стартовым битом, добавляет до 10 бит на символ. Ожидается получать около 30 символов каждую секунду. После чтения символа программа имеет около 1/30 секунды для выполнения других операций. Чтобы не потерять какие-либо символы в это время следует снова начать упорядочение порта. Что произойдет, когда скорость возрастет до 9600 бод? Временной интервал между символами слишком мал для выведения символа на экран дисплея, не позволяет интерпретировать специальные символы и эмулировать терминал.

В подходе, основанном на управлении прерываниями, программа предоставляет возможность прерываниям устройства ввода/ вывода поступать непосредственно на центральный процессор, который продолжает выполнять свою работу, не связываясь с устройством. Когда устройство готово к вводу/ выводу, оно сигнализирует об этом центральному процессору посредством аппаратуры. Получив этот сигнал, центральный процессор сохраняет свое текущее состояние и вызывает подпрограмму обслуживания прерываний, адрес которой хранится в таблице векторов прерываний. Эта подпрограмма выполняет операцию ввода/ вывода, затем восстанавливает состояние машины и возвращается в прерванную программу. Также стоит учитывать регистр символов, поступающих в коммуникационный порт персонального компьютера. Организовав где-нибудь некоторые ячейки памяти, можно использовать простую подпрограмму обработки прерываний, которая быстро iитывает символ из коммуникационного порта и сохраняет его в следующей доступной ячейке памяти в буфере. Символы не будут утеряны в процессе iитывания и сохранения символа драйвером прерываний перед поступлением следующего символа. Эта несложная задача достаточно проста для выполнения в короткие временные интервалы между поступающими символами при скорости передачи 9600 бод. Прелесть этого метода заключается в том, что время обработки главной программой символов, хранящихся в буфере, не имеет значения. Конечно, существует риск переполнения буфера, но эта проблема может быть решена простым увеличением его размера. Если этот способ не очень хорош, то для избежания переполнения буфера можно использовать управление потоком с помощью XON/XOFF.

Из этих рассуждений становится очевидно, что управляемая прерываниями буферная связь с использованием управления потоком с помощью XON/XOFF, предпочтительнее упорядоченной связи.

1.5.1 Последовательный порт с точки зрения программиста

Скорость передачи в бодах определяется как 16битовый делитель тактовой частоты, используемой для последовательного адаптера. Значение делителя вычисляется по формуле

1,843,200

делитель =

16 Х скорость передачи в бодах

Чтобы установить скорость передачи в бодах, Вы должны проделать следующее:

  1. Установить в 1 наиболее значимый бит регистра управления линией.
  2. Загрузить младший и старший байты делителя соответственно в приемный буфер и регистр разрешения прерываний.
  3. Установить DLAB в 0 для обеспечения нормальной работы универсального асинхронного приемопередатчика. Copyright © 2008-2014 geum.ru   рубрикатор по предметам  рубрикатор по типам работ  пользовательское соглашение