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

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

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

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

outportb(CONTROL, DIVISOR);

//Запись младшего и старшего байт делителя:

outportb(LOW_DIV, В_9600);

outportb(HIGH_DIV, B_9600 >> 8);

//Запись управляющего слова, соответствующего выбранному режиму:

outportb(CONTROL, BIT_8+STOP_2+NOPARITY);

//Запрет прерываний:

outportb(INT_REG, 0);

}

Теперь приведем текст функции передачи байта:

int out_sym(int symbol)

{

long timeout;

timeout=clock();

//Ожидаем окончания передачи предыдущего байта, ]

//следя за временем передачи:

do

{

if((clock() - timeout) == 3)

return -1; //Время истекло

while ((inportb(STATUS) & DATA_OUT) == 0);

//Предыдущий байт передан успешно, передаем дальше:

outportb(OUT_REG, symbol);

}

return 0;

}

Функция clock(), описанная в файле TIME.H, возвращает значение системной переменной, которая увеличивается на 1 каждые 55 мс (по прерываниям от системного таймера). Таким образом, возврат по условию ((clock()-timeout) == 3) означает невозможность передать предыдущий символ за время, большее 110 мс, что с избытком превосходит время, необходимое для передачи байта даже при работе на скорости 110 бит/с. Такая ситуация может возникнуть если, например, отвалился провод, по которому на микросхему УАПП поступает тактовая частота, или она (микросхема) сгорела на работе да так, что бит DATA_OUT постоянно находится в состоянии 0.

Немногим сложнее выглядит функция приема байта:

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

{

long tmp;

tmp=clock();

//Ожидаем приема байта, следя за временем:

do

{

if((clock() - tmp) >= timeout)

return 1; //Время истекло

*error_code=inportb(STATUS);

} while ((*error_code & DATA_IN) == 0);

//Может, была ошибка при приеме?

if((*error_code & (FRAME_ERR+OVERRUN)) != 0)

{

//Тогда возвращаем соответствующий код:

return 2;

}

else

{

*symbol=inportb(IN_REG); return 0;

}

}

Для надежного приема байта отнюдь не следует безмерно увеличивать значение timeout (например, до одной недели), поскольку если всего лишь не подсоединен разъем RS-232C, выйти из программы окажется невозможно.

Напишем небольшую программу, которая будет проводить внутренний тест передачи-приема вводимых с клавиатуры символов. Параметром запуска будет служить номер последовательного порта 1 - СОМ1, 2-СОМ2. По умолчанию будем работать с портом СОМ 1.

#include <stdio.h>

#include <time.h>

#include <stdlib.h>

#include "serial.h"

#define ESC 27

main(int argc, char *argv[])

{

int tmpint, //Переменная для всяких нужд

symbol, //Символ для передачи

symbol2, //Символ для приема

error_code; //Код ошибки для функции in_sym()

if(argc == 1) //Если нет параметров

{

BASE=0x3F8;

}

else //Если есть:

{

sscanf(argv[1], "%d", tmpint);

if(tmpint == 1)

{

BASE=0x3F8;

}

else

{

BASE=0x2F8;

}

}

//Инициализируем порт

init_ser();

//Переводим его в режим внутреннего теста:

outportb(MODEM, LOOPBACK);

//"Вечный" цикл:

while(1)

{

symbol=getch();

if(symbol == ESC) exit(0);

if(out_sym(symbol) != 0)

{

printf("\nОшибка передачи !");

exit(1);

}

else

{

if(in_sym(&symbol2, 10, &error_code) != 0)

{

printf("\nОшибка приема !");

exit(2);

}

else //Т.е. нет ошибки приема

{

printf("\nПередано: %02Х Принято %02Х", symbol, symbol2);

}

}

} /* конец вечного цикла while */

} /* конец функции main */

4.6. Отладка контроллеров на базе однокристальной микроЭВМ

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

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

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

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

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

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

Рис. 2.14. Структурная схема эмулятора ППЗУ.

Структура эмулятора (рис. 2.14) помимо собственно микросхемы ОЗУ объемом 32 К х 8 содержит интерфейсную часть (ИЧ), 15-разрядный регистр адреса, 16-разрядный двухканальный мультиплексор адреса и сигнала выбора ОЗУ и два 8-разрядных буфера данных. Схема работает в одном из двух возможных режимов (сигнал РЕЖИМ): записи информации из компьютера в ОЗУ и эмуляция ППЗУ.

В режиме записи информации ОЗУ находится в состоянии записи, мультиплексор пропускает на свои выходы код адреса ОЗУ с регистра адреса, нижний (по схеме) буфер данных открыт и пропускает на входы данных ОЗУ данные с ИЧ, верхний (выходной) буфер данных закрыт. Для записи каждой ячейки ОЗУ сначала в регистр адреса по сигналам ЗА1 и ЗА2 записывается адрес этой ячейки, а затем в нее производится запись данных по сигналу ЗД.

В режиме эмуляции ОЗУ переводится в режим чтения, мультиплексор пропускает адрес и сигнал CS с отлаживаемого контроллера, нижний буфер данных закрыт, а верхний (выходной) передает данные из ОЗУ на отлаживаемый контроллер. То есть ОЗУ выступает в качестве ППЗУ.

Сопряжение эмулятора с компьютером можно осуществлять различными способами: через ISA, через Centronics и даже через RS-232С (так как протокол обмена предельно прост, и скорость обмена с компьютером абсолютно некритична). Стоит отметить, что для отладки самой схемы эмулятора весьма полезной оказывается возможность проверки правильности информации, записанной в ОЗУ. Для реализации этого режима требуется использовать двунаправленный буфер данных для обмена с ИЧ. Но схема эмулятора при этом несколько усложнится, и протокол обмена с ней уже не будет настолько простым.

Приложения

Приложение 1. Габаритные размеры платы ISA

На рис. П.1 приведены габаритные размеры платы ISA, a также размеры всех разъемов и вырезов платы. Отметим, что на рисунке указана только максимальная длина платы, но эта длина может изменяться и ограничена она снизу только размерами одного разъема (правого по рисунку) для 8-битных устройств или размерами двух разъемов для 16-битных устройств.

Расстояния между центрами печатных проводников контактов разъемов должны составлять 2,54 мм.

Платы должны изготавливаться из фольгированного стеклотекстолита толщиной 1,6 мм (отклонение не больше 0,2 мм). Коробление платы не должно превышать 1,3 мм на всей длине платы. Максимальная высота компонентов на собранной плате не должна превышать 10 мм.

Рис. П.1. Размеры печатной платы ISA (все размеры в миллиметрах).

Приложение 2. Другие интерфейсы компьютера типа IBM PC

Системная магистраль EISA

Магистраль EISA (Extended Industry Standard Architecture) была предложена в 1989 году рядом наиболее крупных производителей компьютеров типа IBM PC (AST, Compaq, Epson, Hewlett-Packard, NEC, Olivetti, Tandy, Wise и Zenith). Необходимость разработки такой магистрали стала ясной, когда выяснилось, что быстродействие магистрали ISA становится сдерживающим фактором на пути повышения производительности компьютеров на базе новых процессоров (i80386, i486 и т.д.). Компьютеры нового поколения должны были обеспечивать 32-разрядный обмен, в том числе в режиме ПДП, автоматическую конфигурацию системы и некоторые другие возможности, недоступные для ISA. Фирма IBM предлагала для этих целей свою магистраль MCA (Micro Channel Architecture), которая однако была полностью несовместима (как по сигналам, так и по разъему) с ISA, что предполагало полный отказ от всех изготавливавшихся ранее плат расширения.

EISA явилась не революционным, как МСА, а эволюционным шагом в развитии архитектуры, что обеспечило ей гораздо больше шансов на развитие. Она, с одной стороны, имела все преимущества высокопроизводительной 32-разрядной шины, а с другой стороны, была полностью совместима с ISA "сверху вниз" и не требовала перехода на совершенно новую элементную базу. Вообще говоря, новую магистраль предполагалось использовать, в первую очередь, в высокоскоростных файл-серверах, но ее достоинства обеспечили ей более широкий спектр применения.

Разработчики новой магистрали позаботились не только об информационной и электрической, но и о конструктивной совместимости с ISA. Разъем EISA состоит из двух рядов контактов, один из которых (верхний) предназначен для сигналов ISA, а другой (нижний) — для дополнительных сигналов EISA. Поэтому в EISA-разъемы можно вставлять также 8- или 16-разрядные ISA-платы.

EISA имеет 32 разряда адресной шины, что позволяет адре совать до 4 Гбайт памяти. Предельная скорость передачи информации по ней в специально предусмотренном так называемом пакетном режиме может достигать 33 Мбайт/с. На магистрали может находиться несколько задатчиков, включая, конечно, центральный процессор, контроллер ПДП, контроллер регенерации динамической памяти. Управление предоставлением магистрали централизованно выполняется специальным арбитром по циклическому принципу. Для арбитража используются особые линии магистрали, индивидуальные для каждого разъема расширения (всего таких разъемов не может быть более 15).

По сравнению с ISA в EISA добавлено несколько новых сигналов:

ВЕ0 ... ВЕЗ — разрешение байтов;

М/IO — память/устройство ввода/вывода — признак типа цикла обмена;

-START — идентификация начала цикла магистрали;

-CMD — разрешение управления временной диаграммой цикла магистрали;

-MS BURST — признак групповой (пакетной) передачи от за-датчика;

-SL BURST — признак групповой (пакетной) передачи от исполнителя;

-ЕХ32, ЕХ16 — признак 32- и 16-разрядных данных;

EXRDY — идентификация окончания цикла магистрали текущим задатчиком;

-MREQ k — признак запроса на захват магистрали от k-го потенциального задатчика (возможно объединение запросов по ИЛИ). Сигнал индивидуален для каждого из 15 разъемов расширения магистрали;

-MACK k — признак разрешения на захват магистрали k-му задатчику. Сигнал индивидуален для каждого из 15 разъемов расширения магистрали;

D16 ... D31 — дополнительные разряды данных;

LA2 ... LA16, LA24 ... LA31 — дополнительные разряды адреса (не фиксируемые до конца цикла, как и LA17 ... LA23 в ISA), распределение дополнительных сигналов по нижней части магистрального разъема EISA представлено в табл. П.1. Специальные механические ключи, устанавливаемые в нижней части разъема, обеспечивают возможность правильного использования ISA- и EISA-совместимых модулей.

Контакт

Сигнал

А1

-CMD

А2

-START

A3

EXRDY

А4

ЕХ32

А5

GND

А6

Kod

А7

EX16

А8

-SL BURST

А9

-MS BURST

А10

W/R

А11

GND

А12

RES

А13

RES

А14

RES

А15

GND

А16

Kod

А17

BE1

А18

LA31

А19

GND

А20

LA30

А21

LA28

А22

LA27

А23

LA25

А24

GND

А25

Kod

А26

LA15

А27

LA13

А28

LA12

А29

LA11

А30

GND

А31

LA9

В1

GND

В2

+5 В

ВЗ

+5 В

В4

X

В5

X

В6

Kod

В7

X

В8

X

В9

+ 12 В

В10

М/IO

В11

LOCK

В12

RES

В13

GND

В14

RES

В15

ВЕ3

В16

Kod

В17

BE2

В18

ВЕ0

В19

GND

В20

+5 В

В21

LA29

В22

GND

В23

LA26

В24

LA24

В25

Kod

В26

LA16

В27

LAM

В28

+5 В

В29

+5 В

В30

GND

В31

LA10

С1

LA7

С2

GND

СЗ

LA4

С4

LA3

С5

GND

С6

Kod

С7

D17

С8

D19

С9

D20

С10

D22

С11

GND

С12

D25

С13

D26

С14

D28

С15

Kod

С16

GND

С17

D30

С18

D31

С19

MREQ k*

D1

LA8

D2

LA6

D3

LA5

D4

+5 В

D5

LA2

D6

Kod

D7

D16

D8

D18

D9

GND

D10

D21

D11

D23

D12

D24

D13

GND

D14

D27

D15

Kod

D16

D29

D17

+5 В

D18

+5 В

D19

MACK k*

Табл. П.1. Дополнительные контакты разъема EISA (Kod — ключ, RES — резерв, X — географическая адресация, * — раздельные линии для каждого разъема магистрали).

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

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

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

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