Главная » Просмотр файлов » Проектирование устройств сопряжения

Проектирование устройств сопряжения (1083567), страница 23

Файл №1083567 Проектирование устройств сопряжения (Книга Разработка устройств сопряжения по микропроцессорной технике) 23 страницаПроектирование устройств сопряжения (1083567) страница 232018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 23)

Наиболее просто проблема разрешается в том случае, если в качестве центрального процессора удаленного контроллера применена однокристальная микроЭВМ, уже содержащая Универсальный асинхронный последовательный приемопередатчик (УАПП). В качестве примера такой микроЭВМ можно упомянуть микросхему КР1816ВЕ31. Более того, возможно, что выбор подобной микроЭВМ как раз и обусловлен наличием в ней встроенного последовательного порта. Ясно, что построение преобразователя кода в данном случае сводится к задействованию встроенного ресурса в соответствии со спецификациями на примененную микросхему.

Если же центральный процессор контроллера не обладает встроенным УАПП или его использование по каким-либо причинам невозможно, а также в случае, когда требуется несколько каналов последовательного ввода-вывода, преобразователи кодов выполняются на основе специализированных внешних интегральных схем.

Одной из них является ныне безнадежно устаревшая микросхема программируемого универсального синхронно-асинхронного приемопередатчика 18251 (КР580ВВ51). Она содержит шинный интерфейс и собственно преобразователь кода. Микросхема требует двух внешних задающих генераторов частоты (один из которых задает скорость передачи, а другой формирует внутренние тактирующие импульсы), что является ее очевидным недостатком. Эта микросхема подробно описана во множестве книг, посвященных построению микропроцессорных структур, но сейчас уже практически нигде не используется.

Дальнейшим развитием идей, реализованных при проектировании указанного УАПП, являются микросхема i8250 (ее аналог — микросхема КР1847ВВ2 Минского объединения "Интеграл") и совпадающие с нею по цоколевке и назначению основных регистров ИМС TL16C450 и TL16C550 фирмы Texas Instruments (последняя содержит стеки FIFO размером по 16 байт для передающей и приемной частей).

На рис. 4.10 приведены назначение выводов ИМС i8250 для корпуса DIP-40 и одна из возможных типовых схем включения. Подробное описание внутренней структуры этой микросхемы и порядка обмена с ней можно найти во многих книгах или в интерактивном справочнике TechHelp! (с которым жизнь разработчика приложений для IBM-совместимых персональных компьютеров становится чуть-чуть проще). Краткое описание форматов обмена с данной микросхемой, входящей в состав компьютера, приведено в приложении.

Еще одним, хотя и довольно экзотическим, способом построения преобразователя кода можно воспользоваться, если нежелательно применение дополнительных микросхем, а вычислительные возможности центрального процессора задействованы не полностью (правда, еще потребуются как минимум два разряда параллельного интерфейса по одному на ввод и на вывод информации).

Рис. 4.10. Назначение выводов и одна из типовых схем включения микросхемы 18250.

Способ заключается в чисто программном преобразовании кодов при считывании (либо при выводе) информации через какой-нибудь из свободных разрядов параллельного интерфейса используемой микроЭВМ.

Ниже приведен фрагмент программы для однокристальной микроЭВМ КР1816ВЕ31, осуществляющий ввод одного бита входной последовательности. Предполагается, что регистр DPTR содержит адрес параллельного порта ввода информации, сигнал R х ТТЛ соответствует разряду D0. Отсчет берется трижды, чтобы уменьшить возможное влияние помех (рис. 4.11).

Рис. 4.11. Программный опрос входного сигнала RS-232C.

INBIT:

CLR R0 ;очистка регистра результата

MOV R1,#3 ;инициализация счетчика отсчетов

BITLP:

MOVX A,@DPTR ;ввод состояния сигналов RRC

;выделение D0 (флаг CARRY - D0)

JC ZERO ;анализ состояния сигнала

ONE:

INC R0 ;единичное состояние

SJMP WAIT

ZERO:

DEC R0 ;нулевое состояние

WAIT:

LCALL WDTIME ;пауза до следующего отсчета

DJNZ R1,BITLP ;подсчет количества отсчетов

RET

Решение о состоянии информационного сигнала RxD принимается на основе анализа знака содержимого регистра R0.

Аналогичным образом составляются подпрограммы ожидания стартового и стоповых битов, прием бита четности и т. п.

4.4. Проектирование устройств сопряжения для RS-232C

Рассмотрим кратко два примера реальных УС для связи через RS-232C.

Первое устройство предназначено для управления удаленным от компьютера объектом. Как уже отмечалось, в данном случае УС должно содержать в себе однокристальную микроЭВМ, которая и будет осуществлять как управление объектом (внешним устройством), так и обменом по линии связи RS-232C. Наиболее удобно при этом использовать микросхемы однокристальных микроЭВМ, имеющих вход и выход последовательного канала, например КР1830ВЕ31 Структурная схема УС на основе этой микросхемы (рис. 4.12) помимо стандартных элементов типовой схемы се включения (ОЗУ для хранения данных, ППЗУ для хранения микропрограмм, регистров для демультиплексирования адреса и данных, а также микросхемы параллельного порта для связи с внешними устройствами) содержит только уже рассмотренные ранее (рис. 4.2 и 4.3) узлы приемника RS-232С и передатчика RS-232C, осуществляющие требуемое преобразование уровней. Схема управления производит разделение адресного пространства микроЭВМ и выработку управляющих стробов обмена. Схема выработки сигнала сброса на рисунке не показана.

Рис. 4.12. Структурная схема УС на базе однокристальной микроЭВМ КР1830ВЕ31.

Мы не будем подробно останавливаться на структуре и особенностях работы КРШОВЕ31 и других однокристальных микроЭВМ. Информация об этом имеется в многочисленных справочниках. Отметим только, что, изменяя программное обеспечение, зашитое в ППЗУ, можно обеспечить выполнение самых различных алгоритмов управления широким спектром внешних устройств. Что касается аппаратуры, то здесь обычно используется стандартная схема включения, и разработчик УС должен только аккуратно ее повторить. Поэтому говорить об особенностях проектирования отдельных узлов УС данного типа не приходится.

Отметим, что универсальность схемы включения существенно облегчает труд разработчика, но нисколько не снижает важности процесса отладки УС. Отладка подобных универсальных контроллеров на основе однокристальных микроЭВМ имеет свои особенности, некоторые из них будут рассмотрены несколько позже, и существенно отличается от отладки УС на жесткой логике. В частности, здесь наиболее существенной частью процесса отладки становится составление нужной программы для зашивки в ППЗУ.

Вторая схема УС, которую мы рассмотрим, выполняет несколько иную функцию. Дело в том, что имеющихся обычно в составе компьютера двух последовательных портов (СОМ1 и COM2) в ряде случаев может оказаться недостаточно. Простейший пример — необходимость организации связи данного компьютера с несколькими другими компьютерами или с несколькими терминалами. Конечно, в такой ситуации можно приобрести и подключить нужное количество стандартных плат расширения, имеющих два последовательных порта и один параллельный, но подобное решение часто оказывается далеко не оптимальным, так как требует наличия свободных разъемов ISA и приводит к большой аппаратурной избыточности.

Предлагаемое УС (рис. 4.13) обеспечивает обмен компьютера с восемью портами интерфейса RS-232C и занимает всего одну стандартную плату расширения ISA. Для преобразования уровней в схеме УС использованы микросхемы передатчиков IFC1488 (рис. 4.4) и микросхемы приемников IFC1489 (рис. 4.5). В качестве преобразователей кодов применены микросхемы i8250 (схема включения приведена на рис. 4.10).

Рис. 4.13. 8-канальное УС для связи по интерфейсу RS-232C, ориентированное на сопряжение с ISA.

Выбор одного из восьми приемопередатчиков производится по сигналам Выбор 1 ... Выбор 8. Адресация внутренних регистров приемопередатчиков осуществляется трехразрядной адресной шиной. Данные передаются по 8-разрядной шине. Таким образом, в адресном пространстве устройств ввода/ вывода персонального компьютера данное УС занимает 64 адреса (8 окон по 8 адресов). Выходные сигналы прерываний всех приемопередатчиков подаются на интерфейсную часть УС и формируют единственный сигнал IRQ. Определение источника прерывания производится с помощью программного опроса сигналов INT1 ... INT8.

4.5. Разработка программного обеспечения для RS-232C

В качестве примера программирования последовательного порта приведем подпрограммы его инициализации и приема-передачи данных. Для начала определим некоторые постоянные, которые мы будем использовать в дальнейшем. Файл описаний (назовем его SERIAL.H) может выглядеть следующим образом:

//Определение адресов регистров порта

int BASE; //Базовый (первый)

// адрес блока

// регистров порта

#define OUT_REG BASE //Регистр передачи данных

#define IN_REG BASE //Регистр приема данных

#define LOW_DIV BASE //Младший байт делителя

#define HIGH_DIV BASE+1 //Старший байт делителя

#define INT_REG BASE+1 //Маска разрешенных прерываний

#define INT_ID_REG BASE+2 //Причина прерывания

#define CONTROL BASE+3 //Управляющее слово УАПП

#define MODEM BASE+4 //Регистр управления состоянием

//статических сигналов

#define STATUS BASE+5 //Состояние УАПП

#define M_STATUS BASE+6 //Состояние статических сигналов

//Определение основных констант

//Делители для различных скоростей передачи данных

//Скорость передачи — число после символов "В_":

#define B_110 1040

#define B_150 768

#define B_300 384

#define B_600 192

#define B_1200 96

#define B_2400 48

#define B_4800 24

#define B_9600 12

#define B_19200 6

#define B_38400 3

#define B_57600 2

#define B_115200 1

//Маски разрешенных прерываний:

#define DATA_REC 0x01 //Данные приняты

#define EMPTY_BUF 0x02 //Буфер передачи пуст

#define ERROR 0x04 //Ошибка при приеме данных

#define MODEM_INT 0x08 //Изменилось состояние

//статических сигналов

//Управляющие константы:

#define DIVISOR 0x80 //Бит управления

// доступом к регистрам

// записи делителя

#define BIT_5 0x00 //Длина посылки 5 бит

#define BIT_6 0x01 //Длина посылки 6 бит

#define BIT_7 0x02 //Длина посылки 7 бит

#define BIT_8 0x03 //Длина посылки 8 бит

#define STOP_1 0x00 //1 столовый бит

#define STOP_2 0x04 //2 стоповых бита

#define NOPARITY 0x00 //Нет контроля четности

#define EVEN 0x18 //Контроль четности

#define ODD 0x08 //Контроль нечетности

#define FIXPARITY 0x20 //Фиксация бита четности

#define DTR 0x01 //Управление линией DTR

#define RTS 0x02 //Управление линией RTS

#define OUT1 0x04 //Управление линией OUT1

#define OUT2 0x08 //Управление линией OUT2

#define LOOPBACK 0x10 //Управление внутренним тестом

//Маски готовности:

#define DATAJN 0x01 //Данные приняты

#define OVERRUN 0x02 //Переполнение

#define PARITY_ERR 0x04 //Ошибка четности

#define FRAME_ERR 0x08 //Ошибка формата посылки

#define DATA_OUT 0x20 //Готов к передаче

// Маски состояния статических сигналов:

#define CTS 0x10 //Состояние линии CTS

#define DSR 0x20 //Состояние линии DSR

#define R1 0x40 //Состояние линии RI

#define DCD 0x80 //Состояние линии DCD

//Определение функций:

void init_ser(void);

int out_sym(int symbol);

int in_sym(int *symbol, timeout, *error_code);

//Конец файла SERIAL.H

Функция инициализации последовательного порта init_ser() в данном примере не требует параметров, поскольку (так чаще всего и бывает) заранее известен режим работы микросхемы.

Функция передачи байта out_sym() в случае успешного завершения возвращает 0, в противном случае — 1.

Функция приема байта in_sym() в случае успешного приема возвращает 0, в случае же неуспеха — код ошибки равный 1, — если в течение ожидаемого времени данные не были приняты, 2 если байт данных был принят с ошибкой (байт состояния в этом случае присваивается переменной error_code).

Инициализируем последовательный порт для работы со скоростью 9600 бит/с, по опросу (все прерывания запрещены), статические сигналы управления не используются (применена трехпроводная линия связи), длина посылки 8 бит, стоповых битов 2, контроля четности нет. Следует обратить внимание на то, чтобы переменной BASE было присвоено верное значение ДО вызова любой из описанных выше функций.

void init_ser (void)

{

//Подготовка к записи делителя скорости передачи:

Характеристики

Тип файла
Документ
Размер
1,13 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Книга Разработка устройств сопряжения по микропроцессорной технике
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее