
- •Тверской государственный технический университет
- •Периферийные устройства эвм
- •Введение
- •1. Интерфейс rs-232c
- •1.1. Интерфейс rs-232c – cом-порт
- •1.1.1. Протокол rs-232c
- •Управление потоком данных
- •Системная поддержка Com-портов
- •Использование cом-портов
- •1.1.5. Непосредственное подключение устройств
- •1.2. Программируемый последовательный интерфейс
- •Связь компьютера с микроконтроллером
- •1.3.1. Протокол обмена
- •Работа с com-портом на низком уровне
- •Микросхемы асинхронных приемопередатчиков и особенности работы с ними
- •1.4.2. Структура регистров уапп 16550a
- •1.4.3. Описание регистров уапп 16550a
- •1.4.4. Примеры работы с последовательным портом на низком уровне
- •1.4.5. Аппаратное подтверждение связи
- •1.4.6. Проблемы передачи данных
- •1.4.7. Переполнение регистра-приемника
- •1.4.8. Использование функций bios
- •1.4.9. Использование функций Windows api
- •2.1. Классификация модемов
- •2.2. Устройство модемов
- •2.3. Подключение модема через интерфейс rs-232
- •Модемные протоколы и стандарты. Виды протоколов. Протоколы взаимодействия и модуляции
- •Команды управления модемами (ат-язык). Наборы ат-команд
- •2.5.1. Основные команды модема
- •2.5.2. Стандартный набор ответов модема
- •2.6.1. Локальный аналоговый тест
- •2.6.2. Локальный аналоговый тест с самодиагностикой
- •2.6.3. Локальный цифровой тест
- •2.6.4. Удаленный цифровой тест
- •2.6.5. Удаленный цифровой тест с самодиагностикой
- •2.7. Назначение и использование s-регистров модема
- •2.8. Режимы работы модема. Сообщения и ответы модема
- •2.9. Протоколы передачи файлов
- •2.10. XDsl – модемы
- •Клавиатура
- •3.1. Основные параметры, классификация, принципы работы
- •3.2. Скан-коды
- •3.3. Интерфейс клавиатуры
- •4. Видеосистема компьютера
- •4.1. Классификация и характеристики мониторов
- •4.2. Видеоадаптер
- •4.2.1. История видеоадаптеров
- •4.2.2. Компоненты видеоадаптера
- •Принтер
- •5.1. Классификация принтеров и технологий печати
- •5.1.1. Матричный принтер
- •5.1.2. Струйный принтер
- •5.1.3 Лазерный принтер
- •5.2.Описание lpt-порта
- •5.3. Язык описания страниц
- •5.4.1. Поддержка pcl
- •Лабораторная работа №1 «Изучение интерфейс rs-232»
- •Лабораторная работа № 2 «Определение и анализ качественных характеристик модема»
- •Лабораторная работа №3 «Изучение взаимодействия клавиатуры и компьютера»
- •Пример выполнения лабораторной работы
- •1. Включить сканирование клавиатуры.
- •2. Сбросить на начальные установки контроллер клавиатуры.
- •3. Установить:
- •5. Послать подтверждение контроллером клавиатуры.
- •6. Послать Эхо-запрос компьютером.
- •7. Ответить на Эхо-запрос контроллером.
- •8. Подготовить строку в скан-кодах для ввода в компьютер фразы «There Can Be».
- •9. Запретить сканирование клавиатуры.
- •Варианты заданий Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Лабораторная работа №4 «Изучение режимов работы видеокарты»
- •Выполнение
- •Варианты заданий Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Лабораторная работа № 5 «Управление печатью с помощью языка описания страниц»
- •Описание работы с программой
- •Варианты заданий Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Библиографический список
- •Оглавление
- •Периферийные устройства эвм
- •170026, Г. Тверь, наб. Афанасия Никитина, 22
1.4.4. Примеры работы с последовательным портом на низком уровне
Работа с последовательным портом на низком уровне аналогична работе с параллельным – вначале определяем базовый адрес порта, затем работаем с его регистрами. Главная отличительная особенность состоит в необходимости установки параметров COM-порта перед началом работы.
Приведем пример программы настройки параметров порта (скорость 4800 Кбод, 1 стоп-бит, четность, 8 бит/слово):
mov ax, 40h
mov es, ax ; в es - сегмент = 0040h
mov dx, es:[00] ; dx = базовый адрес порта COM1
mov COM1_adr, dx ; запомнили адрес порта COM1 в переменной
add dx, 3 ; DX=адресу регистра управления
mov al, 80h ; Установили бит DLAB - настройка делителя
out dx, al ; Рабочая скорость - 4800 Кбод
dec dx
dec dx ; DX=адресу старшего байта делителя скорости
mov al, 0
out dx, al
dec dx ; DX=адресу младшего байта делителя скорости
mov al, 18h ; Установка младшего байта делителя
out dx, al
add dx, 3 ; DX=адресу регистра управления
mov al, 00011011b ; DLAB=0, четность, 1 стоп-бит, 8 бит/слово
out dx, al
dec dx
dec dx ; DX=адресу регистра разрешения прерываний
mov al, 00h ; Прерывания запрещены.
out dx, al
Пример чтения байта с ожиданием без использования прерываний:
mov dx, COM1_adr ; DX=базовому адресу COM1
add dx, 5 ; DX=адресу регистра состояния
Wait:
in al, dx ; чтение байта состояния
test al, 01h ; Бит 1="1" (принят байт)
jz wait ; Нет - ждем
sub dx, 5 ; DX=адресу регистра приемника
in al, dx ; чтение принятого байта.
Пример передачи байта из AH (без контроля готовности приемника):
mov dx, COM1_adr ; DX=базовому адресу COM1
add dx, 5 ; DX=адресу регистра состояния
Wait:
in al, dx ; чтение байта состояния
test al, 40h ; Бит 6=1 (готов к передаче очередного байта)
jz wait ; Нет - ждем
sub dx, 5 ; DX=адресу регистра передатчика
mov al, ah
out dx, al ; Передача.
Асинхронная последовательная передача данных
Перед тем как использовать CОМ-порт, необходимо понять принцип асинхронной передачи. Данные передаются через последовательный порт порциями в один бит за единицу времени. В этом состоит отличие последовательного порта от параллельного, который осуществляет передачу данных порциями в один байт за единицу времени. Передача данных называется асинхронной потому, что длина интервала времени между передачей очередного байта информации (по 1 биту за единицу времени) не имеет никакого значения. Поэтому основными являются синхронизация и последовательность передачи цепочки бит, которые в конечном итоге составляют байт или другую информационную единицу.
Каждый байт данных, передаваемых через последовательный порт, состоит из последовательности сигнальных битов:
1. Один стартовый бит.
2. Восемь битов данных (в некоторых случаях 7).
3. Необязательный бит четности.
4. Один или два конечных бита.
Между передачей каждого байта может проходить некоторый промежуток времени.
Время простоя канала передачи для этого режима довольно велико. Младший бит передаваемой «порции» данных имеет нулевое значение, старший бит, завершающий очередную «порцию» данных, принимает значение, равное единице. Старший бит сигнализирует о начале передачи нового байта, который считывается в канал за один цикл, начиная с младшего бита. Биты данных передаются вслед за необязательным битом четности. В конце пересылаются один или два бита, сигнализирующих о конце очередной «порции» данных, считанных за один цикл. Завершающие (конечные) биты определяют минимальное время между передачей двух байтов. Обычно число завершающих битов не имеет большого значения, поэтому вы можете использовать либо один, либо два завершающих бита в зависимости от того, какое их число используют передающий и принимающий порты.
Бит четности, если он присутствует в передаваемом сообщении, используется для контроля корректности передачи и поиска ошибок. Контроль передачи может проводиться как на четность (контрольный разряд равен сумме по модулю двух информационных разрядов, и общее число единичных разрядов четно), так и на нечетность (контрольный разряд не равен сумме по модулю двух информационных разрядов, и общее число единичных разрядов нечетно).
Скорость передачи битов по каналу измеряется в бодах (бит в секунду). Наименьшей скоростью передачи информации считается 300 бод. Эта скорость передачи использовалась в старых модемах (сейчас большинство модемов позволяют достигать скорости передачи от 1200 до 56 000 бод). Семейство компьютеров IBM PC поддерживают скорость передачи данных до 115 200 бод.
Сигналов, предусмотренных CОМ-интерфейсом, намного больше, чем будет указано в данной работе. Это обусловлено тем, что он первоначально разрабатывался как устройство поддержки модема. В связи с этим, если порт используется совместно с другими устройствами, то многие из его сигналов просто в этом случае не нужны. Эти сигналы используются для установления протокола аппаратного уровня между модемом и компьютером при условиях: 1) компьютер еще не передавал информацию, но уже готов к ее передаче; 2) передача данных от модема к компьютеру еще не осуществлялась.
Ошибка кадрирования ( ошибка, возникающая при передаче порции данных, передаваемой канальным уровнем сетевого взаимодействия) фиксируется в случае, если частоты синхpонизиpующих импульсов двух портов значительно отличаются друг от друга. Как вы можете догадаться, последовательный порт после того, как он обнаружил стартовый бит, выделяет pегистp ввода, который за каждый цикл считывает один бит. Длина этого цикла определяется скоростью передачи данных. Однако время нахождения бита в peгистpe определяется тактовой частотой системы. Если частота компьютеpа-пpиемника недостаточна для покрытия частоты компьютеpа-источника, то происходит потеря полученного бита (так как pегистp занят), в связи с чем и pегистpиpуется ошибка кадрирования (framing error).