Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ НА ГОСы (все ответы).doc
Скачиваний:
20
Добавлен:
14.08.2019
Размер:
1.93 Mб
Скачать

3. Основные концепции графического программирования в сапр. Краткий обзор (сапр)

Термин программирование на компьютере (computer programming) раньше озна­чал написание «сочинения» на языке компьютерных команд в соответствии с предопределенными правилами грамматики. В ответ на вводимые числа выпол­няемое «сочинение» порождало ожидаемые числа и символы на терминале или в файле данных. В наши дни на входе и выходе «сочинений» все чаще находит­ся графическая информация. Такое программирование называется графическим (graphics programming), а область его применения — компьютерной графикой (computer graphics}.

Помимо основного программного обеспечения, необходимого для обычного про­граммирования (операционная система, редактор и компилятор), графическое программирование требует наличия специальных графических программ. Гра­фические программы делятся на два класса: драйверы устройств и графические библиотеки.

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

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

Такую графическую программу при переходе на другое графическое устройство придется переписывать с использованием новых команд драйвера. Более того, команды драйвера устройства весьма примитивны, поэтому такая программа была бы очень длинной, если бы она должна была решать какую-либо сложную задачу. К тому же программа эта получилась бы плохо читаемой.

Программисты предпочитают писать программы на языках высокого уровня. Графическое программирование не могло стать исключением, особенно если представить все неудобства, связанные с использованием команд драйвера низ­кого уровня. Поэтому с графическими устройствами стали поставляться библио­теки, получившие название графических (graphics libraries). Графическая библио­тека, как, например, и математическая, представляет собой набор подпрограмм, предназначенных для решения определенных задач. Конкретная подпрограмма может изображать на экране прямую, круг или иной объект. Графическая биб­лиотека основывается на командах драйвера устройства (рис. 6). Каждая под­программа создается с использованием поддерживаемого набора команд драй­вера. Например, подпрограмма, изображающая круг, может быть составлена из отдельных команд драйвера, рисующих на экране точки или короткие отрезки.

Рис. 6 Использование графической библиотеки

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

Чтобы обойти эту проблему, разработчики графических библиотек могли бы использовать одинаковые наборы подпрограмм с одинаковыми названиями, аргументами и возможностями. (На практике каждая подпрограмма реализует­ся разработчиками по-разному.) Тогда графические программы не требовали бы изменения на уровне исходного кода даже при изменении графических уст­ройств. Одним из примеров такого подхода является графическая система CORE, предложенная в 1977 г. группой SIGGRAPH (Special Interest Group on Compu­ter Graphics) Ассоциации вычислительной техники (Association for Computing Machinery — ACM). Однако графическая система CORE не предоставляет дос­таточного набора команд для использования всех возможностей растровых уст­ройств, потому что эти устройства не были широко распространены во времена разработки системы. Примерно в то же время Международная организация по стандартизации (International Standards Organization — ISO) разработала систе­му графического ядра (Graphics Kernel System — GKS). GKS считается стандар­том в двухмерной графике, а позже эта система была расширена до GKS-3D с поддержкой трехмерной графики.

И у CORE, и у GKS есть определенные недостатки в отношении динамическо­го отображения и гибкого взаимодействия с пользователем. Поэтому организа­ция ISO предложила еще один стандарт, получивший название Иерархическая система программирования интерактивной графики (Programmer's Hierarchical Interactive Graphics System — PHIGS). Этот стандарт стал стандартом де-факто для большинства графических рабочих станций. Затем он был расширен и полу­чил название «расширение PHIGS для X» (PHIGS extension to X — РЕХ), пото­му что в него были включены функции работы с окнами системы X window. Гра­фические программы, написанные на РЕХ, в сетевой среде могут использоваться независимо от типа рабочей станции. Это достоинство было унаследовано от системы X window, о которой будет коротко рассказано в конце главы. Коммер­ческая графическая библиотека OpenGL развивалась независимо от организа­ций по стандартизации, однако с течением времени она набирает все большую популярность благодаря гибкости в управлении рабочими станциями и персо­нальными компьютерами в сетевой среде. OpenGL — расширение графической библиотеки GL (фирменной графической библиотеки для компьютеров Silicon Graphics). Благодаря популярности компьютеров Silicon Graphics в областях, связанных с компьютерной графикой, библиотека OpenGL постепенно приобре­тает статус графического стандарта де-факто.

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 19

1. Комбинационные схемы: дешифратор, мультиплексор, аналоговый ключ. (СХЕМОТЕХНИКА)

Комбинационными схемами называют логические схемы, у которых значения выходных сигналов полностью определяются входными в любой момент времени. Любую КС можно представить в виде схемы из базисных логических функций, например, в булевом базисе.

Дешифратор или декодер (далее - DC от англ. decoder) – это цифровой узел, преобразующий двоичный код на входе в унитарный код на выходе. Активный уровень имеется только на том выходе, номер которого соответствует входному коду (адресу). Полный дешифратор имеет n входов и 2n выходов и называется n 2n . Каждый выход реализует один минтерм.

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

Обычно DC имеют также вход разрешения Е (от англ. enable – разрешение), часто называемом также «строб». При отсутствии разрешения все выходы неактивны.

Практически все DC на ИМС имеют инверсные выходы и один или несколько входов разрешения. Микросхемы обозначаются буквами ИД.

Дешифратор с инверсными выходами и входом Е легко можно построить, модифицировав схему на рис. 32. Необходимо просто вместо ЛЭ «2И» использовать ЛЭ «3И-НЕ». На все третьи входы элементов И необходимо подать сигнал Е (если необходимо – с инверсией).

В виде ИМС выпускаются DC «2 х 4», «3 х 8» и «4 х 16».

На рис. 33 показана ИМС 555ИД4 – два дешифратора «2 х 4» с общими адресными входами и раздельными входами управления. 555ИД5 отличается от нее тем, что имеет выходы с ОК. На рис. 34 изображена ИМС 555ИД7 – дешифратор «3 х 8», на рис. 35 – 1533ИД3 – дешифратор «4 х 16». Аналогичная ИМС 555ИД19 имеет выходы с ОК.

Входы разрешения объединены по схеме И. Легко понять, что для разрешения на 555ИД7 необходимо подать комбинацию 001 и т. д. При любых других комбинациях на всех выходах будут единицы.

Существуют также ИМС дешифраторов, имеющих выходы с тремя состояниями.

Неполный дешифратор

Неполным дешифратором называется дешифратор, имеющий n входов и меньше, чем 2n выходов, т. е. реализующий не все минтермы.

Наибольшее распространение имеют двоично-десятичные дешифраторы «4 х 10», выпускаемые в виде ИМС.

На рис. 37 изображена ИМС 555ИД6 ( КМОП-аналог – 561ИД1). Аналогичная ИМС 555ИД10 имеет выходы с ОК. Среди зарубежных ИМС встречаются дешифраторы с тремя состояниями выходов. Существуют также специальные дешифраторы для управления светодиодными индикаторами. Эти ИМС будут рассмотрены в следующих разделах.

Мультиплексор (multiplexer) осуществляет подключение к одному выходу одного из 2n входных сигналов, номер которого определяется входным n-разрядным кодом (адресом). Иногда мультиплексор наз. селектором, т. к. он осуществляет выбор (селекцию) одного из входных сигналов.

На рис. 44 показана схема про-стейшего мультиплексора «2 в 1» с инверсией сигнала. Если управлящий сигнал (SELECT) SE = 0, то разрешено прохождение сигнала от входа «0» и запрещено прохождение сигнала от входа «1». При SE = 1 – наоборот.

Более общая схема, иллюстрирующая принцип построения мультиплексоров, изображена на рис. 45. Это – мультиплексор «4 в 1» с инверсным выходом DO (data output – выходные данные) и входом разрешения Е. Условное обозначение и таблица истинности данного мультиплексора показаны на рис. 46.

В виде ИМС выпускаются мультиплексоры «2 в 1», «4 в 1», «8 в 1» и «16 в 1». Обозначаются микросхемы буквами КП. В среднем поле ИМС ставится обозначение MS или MX (иногда MUX). Многие ИМС выпускаются в нескольких вариантах: с инверсией, с тремя состояниями выходов (вместо входа E – вход CS).

На рис. 47 показана ИМС 555КП11, называемая «4 мультиплексора «2 в 1» с тремя состояниями выходов». 555КП14 отличается тем, что имеет инверсные выходы, а 555КП16 – не имеет третьего состояния (вместо CS – вход Е).

На рис. 48 изображена ИМС 555КП12: 2 мультиплексора «4х1» с тремя состояниями выходов. 555КП17 отличается тем, что имеет инверсные выходы, а 555КП2 – тем, что не имеет третьего состояния.

На рис. 49 изображена ИМС 555КП15 – мультиплексор «8х1» с прямым и инверсным выходами. 555КП7 отличается тем, что не имеет выходов с тремя состояниями.

Распространена также ИМС 155КП1 – мультиплексор «16х1» с инверсным выходом и входом разрешения.

Аналоговый ключ является одним из базовых элементов в сериях КМОП. Условное изображение ключа показано на рис. 53. При CS=1 контакты X и Y замкнуты, при CS=0 – разомкнуты. Часто в литературе разомкнутое состояние ключа не считают третьим состоянием, а вход управления обозначают буквой V или E.

Микросхемы ключей обозначаются буквами КТ (коммутатор тока), КН (коммутатор напряжения) или КП (прочие).

Микросхемы 143КТ1, 176КТ1, 561КТ3, 590КН2, 590КН5 содержат 4 изображенных ключа и отличаются электрическими параметрами.