
- •Тверской государственный технический университет
- •Периферийные устройства эвм
- •Введение
- •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.3.1. Протокол обмена
Обычно программное обеспечение для компьютера и для микроконтроллера разрабатывают разные специалисты или группы специалистов.
Протокол обмена должен содержать всю необходимую информацию для разработки обеих программ так, чтобы независимо созданные программы, удовлетворяющие всем требованиям протокола, могли быть в кратчайший срок стыкованы друг с другом.
В протоколе должны быть учтены все тонкости совместной работы программ, а его положения – быть четкими и не допускать возможности различного толкования. В то же время нет смысла перегружать протокол, например, переписывая из стандарта RS-232 требования к электрическим параметрам сигнала.
Ниже приводится пример протокола обмена с поясняющими комментариями, достаточными для понимания смысла решения поставленной задачи.
Общие положения
Обмен информацией выполняется асинхронными сериями в соответствии с требованиями интерфейса RS-232. Электрические характеристики сигнала также должны соответствовать требованиям интерфейса RS-232C.
Данные передаются сообщениями. Сообщения состоят из 5…134 байт и требуют передачи не чаще одного раза в секунду.
Каждый байт сообщения, состоящий из 8 информационных бит, передается в составе группы из 11 бит. Группа начинается стартовым битом, затем передаются 8 информационных бит, за ними следуют бит четности и стоп-бит.
Параметры передаваемых групп:
- скорость передачи 115200 бит/с;
- 8 информационных бит;
- проверка на нечетность;
- стоп-бит.
Структура сообщения
Сообщения имеют следующий вид: 5A CMD <байты данных> СSH CSL, где 5А – стартовый байт, CMD – байт команды, <байты данных> – их количество зависит от байта команды, CSH и CSL – 2 байта контрольной суммы.
Контрольная сумма получается суммированием всех байтов сообщения в сумматоре длиной в 2 байта. В зависимости от команды старший байт контрольной суммы CSH может не передаваться.
Передаваемые сообщения
В тексте сообщений неизменяемые байты записаны в шестнадцатеричном формате, изменяемые – как подчеркнутые трехсимвольные переменные:
1. Команда ТЕСТ RS-232: 5А 20 00 00 00 00 7А.
2. Ответ на команду ТЕСТ RS-232: 5A 20 CRH CRL CSL, где CRH и CRL – два байта контрольной суммы содержимого памяти программ контроллера, а CSL – младший байт контрольной суммы команды.
3. Команда ПЕРЕДАТЬ БЛОК 128 байт в контроллер: 5A 21 00 00 B00…BFF CSH CSL, где B00…BFF – 128 байт данных, передаваемых из компьютера, а CSH и CSL – два байта контрольной суммы команды.
4. Ответ на команду ПЕРЕДАТЬ БЛОК: 5A 21 00 00 7B.
5. Команда ЗАПРОС БЛОКА 128 байт из контроллера: 5A 22 00 00 00 00 7C.
6. Ответ на команду ЗАПРОС БЛОКА: 5A 22 00 00 B0…BFF CSH CSL, где B00…BFF – 128 байт данных, передаваемых из ОЗУ контроллера, а CSH и CSL – два байта контрольной суммы команды.
7. Команда ОЧИСТИТЬ ОЗУ: 5A 23 00 00 00 00 7D.
8. Ответ на команду ОЧИСТИТЬ ОЗУ: 5A 23 00 00 7D.
9. Команда ЗАПОЛНИТЬ ОЗУ: 5A 24 FIL 00 00 CSH CSL, где FIL – байт, которым заполняется ОЗУ.
10. Ответ на команду ОЧИСТИТЬ ОЗУ: 5A 24 00 00 7E.
11. Сообщение контроллера об ошибках: 5A 0C ERR 00 CSL, где ERR – код ошибки (E0 – ошибка четности, если первый байт команды не 5A, E1 – ошибка контрольной суммы команды, E2 – неизвестная команда), а CSL – младший байт контрольной суммы.
И микроконтроллер, и компьютер проверяют поступающие сообщения, в том числе и на их длину. Проще проверять длину сообщений, когда для одного источника она одинакова. В нашем устройстве команды компьютера имеют длину в 7 байт, а ответы микроконтроллера – 5 байт. Исключения составляют сообщения, содержащие блоки данных. Их длина составляет 134 байта.
Программа для микроконтроллера
Как организовать прием команд, описанных в протоколе обмена? Предположим, все команды содержат одинаковое количество байт, например 7. Тогда после приема первого байта надо принять еще шесть байт, а затем начать обработку принятой последовательности.
Что произойдет при такой организации, если прием первого байта был вызван помехой? Микроконтроллер при этом просто зависнет, ожидая следующих шести байт, а часть следующей команды будет воспринята как продолжение предыдущей. Если длина команд различна, то, приняв первый байт, надо продолжать прием в течение времени, достаточного для приема самой длинной команды, предусмотренной протоколом обмена, а по истечении этого времени проанализировать принятую последовательность.
Поэтому для избежания этой коллизии имеет смысл организовать программу для микроконтроллера следующим образом: после необходимой инициализации программа будет выполнять бесконечный цикл, ожидая прерывания после приема первого байта данных по каналу RS-232. Обработчик прерывания окончания приема символа UART запустит таймер Т0 и вызовет выполнение подпрограммы приема последовательности байтов. Завершение счета таймера Т0 прекратит выполнение подпрограммы приема и инициализирует выполнение ряда подпрограмм анализа принятой последовательности, распознавания команды, ее обработки и передачи ответа микроконтроллером по каналу RS-232.