Методы управления потоком данных при использовании UART.
Связной софт, работающий с интерфейсом RS-232C, использует 2 метода управления потоком:
Ø аппартное (hardware), когда соответствующие команды остановки или возобновления передачи передаются по отдельным линиям интерфейса RS-232: CTS и RTS (которые специально для этого и предназначены).
Ø програмное (software ), когда соответствующие коды остановки или возобновления передачи встраиваются в поток данных.
Программный метод позволяет обходиться минимумом проводов (впервые был применен в телетайпах). Командами управления являются управляющие символы. Этот метод еще называется Xon/Xoff по названию кодов команд. Код Xon разрешает, а Xoff запрещает передачу. Заметим, что коды формирует не UART, а софт. В ASCII кодировке коды представляют собой символы DC1 (Хоn, код 17) и DC3 (Xoff, код 19).
Аппаратный метод использует сигналы CTS и RTS (интерфейса RS-232C).
Недостатком программного метода является необходимость кодировать символы Xon/Xoff, когда они встречаются в бинарном файле. Так, например, вынужден поступать протокол Z-modem.
2.4. Единое задание управлением потока в Windows 95.
В Windows 95 достаточно указать управление потоком в панели настройки модема, и оно синхронно воспримется и новыми связными программами и модемом. В настройке для объектов HT можно (но не нужно) изменять это управление. Выход на нужную панель управления осуществляется так:
- через управляющую панель выйти на список модемов. Затем выбрать модем и последовательно нажимать: кнопку Свойства(модема)/вкладку Соединения/кнопку Дополнительно.
Выключенная опция USE FLOW CONTROL (использовать управление потоком)означает, что никакое управление не используется. Включение этой опции делает доступными две радиокнопки:
HARDWARE (RTS/CTS) - Аппаратное управление.
SOFTWARE XON/XOFF - Программное управление.
2.5. Лабораторная работа № 2
АППАРАТНАЯ РЕАЛИЗАЦИЯ ИНТЕРФЕЙСА RS-232.
КОНФИГУРИРОВАНИЕ COM-ПОРТОВ В WINDOWS 95
Цель работы:
-изучение аппаратной реализации интерфейса RS – 232;
-изучение возможности связи ПК через последовательный канал средствами Windows 95.
Порядок выполнения работы:
ВНИМАНИЕ! Любые операции, связанные с подключением или отключением соединительных кабелей от/к ПК осуществляйте на обесточенном оборудовании.
После выполнения подключения/отключения приборов и оборудования последующее включение ПК возможно только после контроля преподавателя.
Подготовка к работе
- изучить порядок проведения работы и методические материалы, приведенные в приложении 2;
- получить у лаборанта необходимое оборудование, приборы и комплектующие.
Ход работы
-порты в WINDOWS 95
- Просмотр числа доступных COM портов в Windows 95.
Раскройте окно Панель управления/Система/Устройства/Порты COM и LPT.
Просмотрите информацию, которая появится, и определите состав портов компьютера, а также их текущие установки.
Полученные данные внесите в отчет по лабораторной работе.
- Просмотр типа UART.
В Windows 95 просматривать типы UART можно только при подключенном модеме, при его тестировании. Без модема это можно сделать, используя утилиту msd. exe.
Перенесите утилиту msd. exe в Windows 95. Запустите и определите тип UART. Полученные данные внесите в отчет по лабораторной работе.
- Конфигурирование COM портов в Windows 95.
Раскройте окно Панель управления/Система/Устройства/Порты COM и LPT.
Выделите нужный порт и нажмите кнопку Свойства. Выберите Установки порта. Откроется панель с полями для установки параметров. Установите на свободном порту, куда будет подключен нуль-модем, конфигурацию 8N1 и скорость 19200. Определите необходимо или нет сейчас управление потоком и можно ли его выставить в универсальное значение Hardware (аппаратное).
- Установка размеров буферов UART в Windows 95.
Для доступа к панели настройки, на панели Свойства : последовательный порт СОМ1 /COM2 выбрать Дополнительно. Откроется панель, на которой верхний ползунок регулирует приемный буфер, нижний - передающий, флажок USE разрешает само использование буферов.
Меньший (максимальный) размер для принимающего буфера объясняется тем, что 2 байта оставляются резервными, чтобы учесть инерционность программы (после выдачи прерывания) и не затереть новыми данными старые.
ЗАМЕЧАНИЯ!!! Установки действуют только для UART с буфером (16550). Правильнее было бы блокировать вывод панели, если UART не имеет буферов. Обычно умалчиваемые значения, являются оптимальными и нет необходимости, что либо регулировать.
- Выключить компьютеры. Соединить два компьютера нуль-модемом.
Работа со встроенной терминальтой HyperTerminal 95:
- Раскрыть окно Программы/Стандартные/Программы связи. Выбрать программу связи HYPERTERM.
Вначале появляется эмблема HyperTerminal, свидетельствующая о его загрузке. Затем появляется панель задания соединения (Connection Description).
- Ввести в поле Name название объекта соединения (например, DIRECT2-38, что означает, что это прямое соединение через COM порт номер 2 на скорости 38.
Далее следует выбрать одну из двух десятков пиктограмм. Появится панель задания телефона (Phone Number) .
Вначале все поля доступны, а верхние два заполнены телефонными кода ми, заданными при установке Windows95. Если предполагается использовать телефон, то в эти поля и в поле Phone Number нужно было бы ввести коды и номер телефона удаленного модема. При определении прямого соединения этого можно не делать.
- Поле CONNECT USING (использовать соединение) нужно заполнить из раскрывающегося списка. В этом списке будут все установленные модемы, а также прямые соединения для каждого порта. Следует выбрать прямое соединение для нужного COM2. В результате остальные поля, связанные с телефонной сетью, станут недоступны. После заполнения панели появится панель настройки выбранного порта.
- Выберите стандартную конфигурацию порта, скорость 38,4 (можно и больше, если позволяют UART местного порта и порта компьютера напарника по нуль-модему). Установите одинаковый формат фрейма. Выберите стандартный - 8N1.
Появиться окно HyperTerminal с именем созданного соединения. Если после этого выйти из программы и подтвердить сохранение, то новое соединение добавится в папку.
Название соединения и его параметры внесите в отчет по лабораторной работе.
Замечание. Таким образом, каждое соединение содержит, наряду с параметрами соединения номер порта и его индивидуальную конфигурацию. Та конфигурация порта, которая задается в Windows 95, используется для инициализации порта при загрузке ОС. Ее же будет использовать "чистый" HT. При загрузке HT вызовом соединения происходит индивидуальная переконфигурация порта, определяемая этим соединением. Если же был выбран встроенный порт, который уже установлен и который использует стандартное прерывание, то больше ничего настраивать не надо и все готово к прямому соединению. Для перехода к другому соединению следует, не выгружая HT, открыть новое соединение. Если же все еще установлено соединение с другой стороной, то появится окно предупреждения и далее следует либо разорвать соединение, либо отменить переход к новому соединению.
- Настроить для соединения HT на тип терминала (ANSY или TTY).
- Задать размер буфера обратной прокрутки.
- Установить режим локального эха.
- Включить автоматический перенос строк.
- Нажать клавишу 1 и сгенерировать строку. Пронаблюдать их появление
на экране локального и удаленного компьютеров.
- Настроить один из компьютеров на другую скорость порта и снова сгенерировать
цифровую строку. Охарактеризовать появление символов на локальном и удаленном компьютерах. Объяснить результат наблюдения и вывод внести в отчет по лабораторной работе.
- Посылка текстового файла на удаленный экран.
Замечание. Это полезно, например, когда вы хотите оставить сообщение на BBS. Вместо того, чтобы лихорадочно его набирать во время сеанса, да еще в слабеньком встроенном редакторе.
Существует одна особенность, а именно на кодировку кириллицы действует следующее ограничение: на DOS терминал следует посылать файлы в альтернативной кодировке, а на Windows терминал - в Windows кодировке кириллицы.
В большинстве терминальт посылка осуществляется по той же схеме, как и посылка любых файлов. Просто выбирается протокол ASCII передачи файлов. В HT для этого выделен отдельный пункт меню:
TRANSFER/_ SEND TEXT FILE (ПЕРЕДАЧА/_ ПОСЛАТЬ ТЕКСТОВЫЙ ФАЙЛ).
-Задайте файл и протокол и нажатием кнопки SEND отправте его на компьютер напарника.
-Захват в файл вывода на экран.
Терминальты обычно позволяют записывать все, что появляется на экране, в файл для последующего анализа. Это позволяет сохранить значительно больше, чем позволяет буфер обратной прокрутки, который располагается в памяти, а не на диске. Так как такое сохранение представляет собой дисковую операцию, то предварительно нужно включить управление потоком, чтобы не потерять данные.
Для выполнения захвата следует:
Выполнить пункт меню Transfer/_Capture Text (Передача/_Захват текста). Появиться файловая панель для назначения файла.
- Включить кнопкой START запись в файл.
- Для временного прекращения записи нужно выполнить
TRANSFER /_CAPTURE
TEXT/_ PAUSE.
- Для возобновления записи - TRANSFER /_CAPTURE TEXT/_ RESUME.
- Для полного прекращения записи нужно выполнить TRANSFER/CAPTURE TEXT/_ STOP.
- Для параллельного вывода на принтер выполнить TRANSFER/_CAPTURE TO
PRINTER.
- Для прекращения печати надо снова выполнить указанный пункт.
- Отмените связь компьютеров, выключите ПК и разберите собранную схему; оцените полученные результаты и сделайте необходимые выводы.
Вопросы для подготовки к работе.
1.Глобальные и локальные параметры связи.
2.Понятие хоста и терминала.
3.Типы терминалов.
4.Структурная схема адаптера RS-232.
5.БИС UART. Назначение, типы.
6.Преимущества буферных UART.
7.Управление потоком данных.
8.Методы управления потоком данных
3. Программирование БИC UART
3.1. Основные регистры БИС UART
Для организации последовательной передачи в персональных компьютерах используется БИС UART. Микросхема UART преобразует параллельный код, получаемый от центрального процессора, в последовательный поток символов со служебными битами и выдает этот поток в последовательный канал связи с различной скоростью, а также выполняет обратное преобразование. Передаваемая и принимаемая информация при необходимости может контролироваться на четность (нечетность).
UART программируется на выполнение почти всех применяющихся в настоящее время протоколов последовательной передачи данных.
БИС 8250 имеет 10 программно-доступных регистров, с помощью которых управляется или контролируется последовательный порт. Доступ к этим регистрам осуществляется через семь адресов портов с номерами 3F8H-3FEH (или 2F8H - 2FEH). Адреса портов отсчитываются от базового адреса. Базовый адрес - это двухбайтовый адрес порта, который является младшим из группы адресов портов, дающих доступ к UART. Базовые адреса портов коммуникации хранятся в области данных BIOS по адресу 0040:0000 для COM1 и 0040:0002 для 1 имеет базовый адрес 3F8H, а COM2-2F8H. Если по перечисленным адресам записан 0, это свидетельствует об отсутствии адаптера. Одни и те же адреса портов могут соответствовать различным внутренним регистрам в зависимости от направления передачи информации и значения бита 7 регистра управления линией, который является единственным регистром с адресом порта 3FBH.
В таблице 3.1.представлены внутренние регистры адаптера последовательной связи.
Таблица 3.1.
Внутренние регистры адаптера последовательной связи.
Адрес порта | Состояние бита 7 В 3FBH | Описание |
3F8H | OUT, бит 7 =0 | Регистр данных передатчика |
3F8H | IN, бит 7 =0 | Регистр данных приемника |
3F8H | OUT, бит 7 =1 | Делитель скорости обмена (младший) |
3F9H | IN, бит 7 =1 | Делитель скорости обмена (старший) |
3F9H | OUT, бит 7 =0 | Регистр разрешения прерывания |
3FAH | IN | Регистр идентификации прерывания |
3FBH | OUT | Регистр управления линией |
3FCH | OUT | Регистр управления модемом |
3FDH | IN | Регистр состояния линии |
3FEH | IN | Регистр состояния модема |
Регистры данных передатчика и приёмника хранят соответственно символ для передачи и последний принятый символ. Регистры управления и состояния линии инициализируют и управляют линией связи, используя скорость обмена, задаваемую двумя делителями скорости обмена. Регистры управления и состояния модема используются только для связи через модем, а регистры, связанные с прерываниями, используются только в процедурах, управляемых прерываниями.
Далее подробно описываются внутренние регистры адаптера, не используемые при управляемых прерываниями переносах информации.
РЕГИСТРЫ ДАННЫХ 3F8H
Использование регистра данных зависит от состояния регистра управления линией 3FBH и выполняемой операции доступа к порту (чтение или запись).Если адаптер передаёт или принимает информацию, в бите 7 регистра 3FBH должен быть записан 0. В этом случае запись байта в порт с номером 3F8H помещает данные в регистр данных передатчика. Отсюда они без каких-либо дополнительных управляющих воздействий передаются в сдвиговый регистр, который формирует слово информации и бит за битом выдаёт его в интерфейс. Чтение байта из внутреннего регистра 3F8H возвращает последний принятый адаптером байт данных.
РЕГИСТРЫ ДЕЛИТЕЛЯ ЧАСТОТЫ 3F8H И 3F9H
Если бит регистра управления линией 3FBH установлен в 1, то в этом случае порты с номерами 3F8H и 3F9H используются как защёлки для так называемого делителя скорости обмена. Делитель скорости обмена - это число, полученное делением частоты внутреннего источника синхронизации (1843200Гц) стандартной микросхемы 8250 на скорость обмена умноженную на 16.
Скорость обмена 300 бод и ниже требует двухбайтового числа для делителя. Старший байт посылается в 3F9H (или 2F9H), а младший - в 3F8H (2F8H).
Таблица 3.2.
Соответствие регистров делителя частоты и скоростей обмена
Скорость обмена | Делитель | 3F9H | 3F8H |
110 150 300 600 1200 1800 2400 3600 4800 9600 19200 38400 57600 115200 | 1040 768 384 192 96 64 48 32 24 12 6 3 2 1 | 04H 03H 01H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H | 17H 00H 80H C0H 60H 40H 30H 20H 18H 0CH 06H 03H 02H 01H |
ВНУТРЕННИЙ РЕГИСТР СОСТОЯНИЯ МОДЕМА 3FEH
Опрашивая регистр, компьютер отслеживает все изменения состояния модема, что позволяет определить возможность передачи байта (наличие сигнала CTS), необходимость приема информации (наличие сигнала DCD) и т. п. Четыре старших бита регистра показывают уровень напряжения на соответствующей линии интерфейса RS232, а четыре оставшихся - наличие изменения уровня напряжения с момента последнего чтения содержимого, так как любое чтение регистра обнуляет эти биты. Использование отдельных битов регистра приведено в таблице 3.3.
Таблица 3.3.
Использование отдельных битов регистра состояния модема 3FEH
Бит | Описание (если бит равен единице) |
7 6 5 4 3 2 1 0 | Сигнал на линии DCD Сигнал на линии RI Сигнал на линии DSR Сигнал на линии CTS Изменение на линии DCD Изменение на линии RI Изменение на линии DSR Изменение на линии CTS |
ВНУТРЕННИЙ РЕГИСТР УПРАВЛЕНИЯ ЛИНИЕЙ 3FBH.
Используется для задания формата слова, передаваемого по интерфейсу, и некоторых дополнительных особенностей передачи или приема данных. Назначение его битов приведено в таблице 3.4.
Таблица 3.4.
Назначение битов внутреннего регистра управления линией 3FBH.
Бит | Описание |
7 | Выбор содержимого в портах 3F8H и 3F9H: =0 - порт 3F8H используется для доступа к регистрам данных, а порт 3F9H для доступа к регистру разрешения прерываний; =1 - порты 3F8H и 3F9H используются для доступа к делителю частоты; |
6 | =0 - обычное функционирование адаптера; =1 - вызывает посылку в интерфейс сигнала BREAK. |
5,4,3 | Выбор способа контроля по четности: =xx0 - отсутствие бита контроля по четности; =001 - бит контроля формируется по четному паритету; =011 - бит контроля формируется по нечетному паритету; =101 - бит контроля равен 1; =111 - бит контроля равен 0. |
2 | Число стоп-битов: =0 -1 стоп-бит; =1 -2 стоп-бита |
1,0 | Длина слова: =00 - 5 бит; =01 - 6 бит; =10 - 7 бит; =11 - 8 бит |
ВНУТРЕННИЙ РЕГИСТР СОСТОЯНИЯ ЛИНИИ 3FDH.
Регистр сообщает информацию о состоянии как модема, так и тракта приёма(передачи) адаптера. Биты регистра состояния линии представлены в табл.3.5.
Таблица 3.5.
Биты регистра состояния линии 3FDH.
Бит | Описание (если бит равен единице) |
7 6 5 4 3 2 1 0 | Всегда 0 Сдвиговый регистр передатчика пуст Буферный регистр передатчика пуст Принят BREAK Ошибка кадрирования(рассинхронизация передатчика и приёмника) Ошибка паритета Ошибка переопределения данных Готовность принятых данных |
Компьютер постоянно опрашивает порты данных и состояния для определения момента чтения принятого байта либо записи в порт данных очередного передаваемого байта. Постоянный опрос необходим вследствие того, что как при приеме, так и при передаче буферизуется только один байт данных и возможно его переопределение вновь поступающими данными.
Однако бесконечный цикл опроса превращает компьютер лишь в простейшую коммуникационную станцию, не способную выполнять какие-либо другие действия. Более предпочтительным является метод организации асинхронной связи, управляемый прерываниями. Технически адаптер последовательной связи позволяет генерировать прерывания при программируемых условиях.
В случае управляемой прерываниями асинхронной связи используются описанные ниже внутренние регистры.
ВНУТРЕННИЙ РЕГИСТР РАЗРЕШЕНИЯ ПРЕРЫВАНИЙ 3F9H.
Аппаратура адаптера последовательной связи может генерировать запросы аппаратных прерываний при возникновении в адаптере одной или нескольких ситуаций четырёх возможных типов (табл.3.6.)
Таблица 3.6.
Биты регистра разрешения прерываний.
Бит | Описание(если бит равен 1) |
7-4 3 2 1 30 | Не используются Разрешена генерация запроса прерывания при изменении значения регистра состояния модема 3FEH. Разрешена генерация запроса прерывания при изменении значения регистра состояния линии 3FDH Разрешена генерация запроса прерывания в случае, когда пуст регистр передачи данных Разрешена генерация запроса прерывания в случае готовности принятых данных |
Запись в порт с номером 3F8H байта 00 запрещает генерацию запроса прерывания для всех возможных ситуаций. Запись значения 0FH напротив разрешает генерацию запроса прерывания для всех типов ситуаций.
ВНУТРЕННИЙ РЕГИСТР ИДЕНТИФИКАЦИИ ПРЕРЫВАНИЙ 3FAH.
Это - только читаемый внутренний регистр, позволяющий программе-обработчику прерывания определить причину, по которой сгенерировано прерывание.
Таблица 3.7.
Биты регистра идентификации прерываний
Бит Описание
7-3 Не используются
2-1 Идентификатор причины прерывания:
=00 - прерывания по причине изменения регистра состояния
модема.
=01 - пуст регистр данных передатчика;
=10 - готовность данных в приёмном регистре
=11 - прерывание по причине изменения регистра состояния
линии:
либо установка бита ошибки, либо выделено условие BREAK.
0 =0 - прерывание не обработано(ожидающее обработки прерывание)
=1 - нет активных прерываний
Нули в битах 2-0 свидетельствуют о наличии ещё не обслуженного прерывания, возникшего по причине изменения в линиях интерфейса RS232, например, из-за появления сигнала DSR. Устранение причины соответствующего прерывания выполняется чтением или записью соответствующего случаю регистра. Например, чтение регистра состояния модема "сбрасывает" условие прерывания и, если не происходит нового изменения состояния линий, прерывание по причине изменения состояния модема не генерируется. Аналогично запись байта в регистр данных передатчика "сбрасывает" прерывание из-за того, что этот регистр пуст. Чтение внутреннего регистра данных приёмника "сбрасывает" прерывание по причине готовности данных.
Возможно одновременное возникновение причин для разных типов прерываний, и в этом случае аппаратура адаптера, выполняющая генерацию прерываний, упорядочивает их по приоритету. Прерывание в связи с изменением в регистре состояния модема всегда будет иметь наивысший приоритет. Следующим по приоритету является прерывание по причине готовности принятых данных. После него генерируется прерывание из-за опустевшего регистра данных передатчика. И, наконец, наименьший приоритет имеет прерывание по причине изменения состояния линии.
ВНУТРЕННИЙ РЕГИСТР УПРАВЛЕНИЯ МОДЕМОМ 3FСH.
Строго говоря, этот регистр управляет работой не модема, а адаптера последовательной связи.
Таблица 3.8
Биты регистра управления модемом.
Бит Описание(если бит равен 1)
7-5 Не используются
4 Запуск автономного теста адаптера последовательной связи (LOOP)
3 Разрешает прерывание от адаптера (OUT2)
2 Определяемый пользователем запрос прерывания (OUT1)
1 Устанавливает сигнал на линии интерфейса RTS
0 Устанавливает сигнал на линии интерфейса DTR
3.2. Использование последовательного порта: передача файлов и простейшие ЛВC
Непохожий на более пpостой паpаллельный поpт, последовательный поpт, как ни что более подвеpжен целому семейству pазличных типов ошибок пеpедачи данных. Пpоблема усложняется тем, что сигнал "подтвеpждение связи", котоpый помогает коppектно выполнять соответствующую пеpедачу данных применительно к последовательному поpту часто пеpедается "мимо" шины кабеля, связывающего последовательный поpт и внешнее устpойство. Однако, несмотpя на эти пpоблемы последовательный поpт используется шиpе, так как именно он позволяет использовать самый дешевый путь для соединения двух устpойств.
Цель этой работы - дать основы работы с последовательным поpтом, включая инициализацию, пеpедачу и пpием данных, а также обсудить наиболее общие ошибки, возникающие во вpемя pаботы с последовательным поpтом.
Набор опеpаций pаботы с последовательным поpтом обуславливает его использование в качестве составной части по кpайней меpе в двух пpиложениях. Во-пеpвых, это пpогpамма пеpесылки файла, котоpая может использоваться для передачи pазличных типов файлов (включая двоичные файлы) между двумя компьютеpами. Пpогpамма пеpесылки файла особенно полезна пpи pешении пpоблемы стыковки pазличных типов компьютеpов. Во-втоpых, это пpоблема создания пpостейших локальных вычислительных сетей (ЛВС), включающих в себя файловый пpоцессоp (для поддеpжки внешних ЗУ большой емкости) и набоp из двух новых команд, позволяющих удаленным компьютеpам загpужать файлы из или записывать в файловый пpоцессоp.
Непосpедственная пеpедача данных из последовательного поpта выполняется после того, как монитоp обнаpужит сигнал «очистка-для-посылка» (CTS), отпpавленный из поpта-пpиемника. Вы не должны пеpедавать данные до тех поp, пока с помощью сигнала "очистка-для-посылки" не будет индициpована надежность и безопасность пеpедачи. Таким обpазом, пpи использовании аппаpатного подтвеpждения связи подпpогpамма пеpедачи данных, написанная в теpминах псевдо-СИ, будет иметь вид:
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 |


