Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1страница 2 ... страница 7страница 8




ВВЕДЕНИЕ
В 2006 году автором было издано учебное пособие «Периферийные устройства вычислительных систем», в котором отражались вопросы: 1) роли и места ПУ в вычислительных системах; 2) организации обмена данными в ЭВМ; 3) назначения, принцип действия, структуры и программирования последовательного и параллельного интерфейсов; 4) построения шин PCI и USB; 5) подключения ПУ к ЭВМ посредством указанных интерфейсов и шин.

В это пособие не вошли материалы, посвящённые конкретным ПУ, таким как: клавиатура, принтеры, видеосистемы, внешние запоминающие устройства на магнитных и оптических дисках, интерфейсы для их подключения и ряд сопутствующих вопросов, отражающих проблему повышения надёжности этих устройств (“холодный” и “горячий” ремонт накопителей, RAID-массивы и т.д.).

Данная работа «ИНТЕРФЕЙСЫ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ» (Периферийные устройства. Часть 2) предназначена для восполнения этого пробела.

1. Клавиатура

1.1. Структурная схема клавиатуры AT

Главным устройством ввода большинства компьютерных систем является клавиатура. Вся клавиатура IBM для больших ЭВМ и для микро-ЭВМ PC 3270 реализуется по емкостной технологии. Механика и электроника емкостной клавиатуры сложна и соответственно дорога. Более дешевой является жестко-контактная клавиатура, но она не так долговечна как емкостная. IBM разработала конструкцию клавиатуры, позволяющую взаимодействовать с ПК без использования соединительных проводов. Здесь используется ИК-линия связи.

Структурная схема клавиатуры AT приведена на рис. 1.1а, а фрагмент её матрицы на рис. 1.1б. Алгоритм работы может быть кратко описан в следующем виде:

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



Рис. 1.1а. Структурная схема клавиатуры AT

В клавиатуре установлен буфер емкостью 16 байт, в который заносятся данные при слишком быстрых или одновременных нажатиях. Затем эти данные в соответствующей последовательности передаются в систему. Обычно при нажатии клавиш возникает эффект дребезжания, т.е. контакт устанавливается не сразу, а после нескольких кратковременных замыканий и размыканий.

Рис. 1.1б. Фрагмент матрицы клавиатуры

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

Для приема и передачи данных между клавиатурой и компьютером используются линии DATA и CLOCK. Передача данных из клавиатуры производится в синхронном последовательном коде (рис. 1.2):



  • старт-бит (всегда 0);

  • 8 бит данных (скэн-код);

  • бит нечетности (дополняет число единиц в посылке до нечетного);

  • стоп-бит (всегда 1).

Рис. 1.2. Временная диаграмма передачи данных из клавиатуры


Частота импульсов на линии Clock составляет 10 - 20 кГц. Данные действительны в момент перепада 1-0 на линии Clock. Линии Clock и Data являются двунаправленными с резистивной нагрузкой и могут непосредственно соединяться с выводами портов микроконтроллера. По тем же линиям Clock и Data происходит передача команд и данных из контроллера в клавиатуру. Команды клавиатуры служат для управления режимом работы, для запроса повторной передачи, инициализации и диагностики.

В AT можно управлять клавиатурой, при этом можно изменять частоту повторения кода нажатой клавиши и задержку перехода в режим повторения. По умолчанию частота повторения равна 10 Гц. Задержка равна 0.5 с.

По сигналу ЗПр1 (запрос прерывания 1) процессор переходит к п/п обработки прерываний Int 9h.

Американский стандарт расположения клавиш – QWERTY, но существуют и другие варианты расположения клавиш.



Скэн-код - (порядковый номер клавиши) изображается однобайтовым числом. Он выдается в буферный регистр из регистра сдвига интерфейса клавиатуры, при этом формируется сигнал прерывания клавиатуры IRQ1. Процессор по этому запросу переходит на выполнение процедуры прерывания , которая анализирует скэн-код (рис.1.3):

1) если это скэн-код переключателей CAPS/Lock; Num Lock; Scroll Lock или клавиш сдвига, то изменение статуса записывается в баты статуса в память;

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

Рис. 1.3. Преобразование скэн-кода процедурой прерывания Int 9h


Статус хранится в младших адресах памяти в ячейках 417h 418h. Нажали клавишу Shift, ROM-BIOS устанавливает в этих байтах определенный бит. Как только ROM-BIOS получает скэн-код возврата клавиши Shift, она переключает разряд состояния назад.

1.2. Типы кодов клавиатуры

Имеются два типа кодов символов: коды ASCII и расширенные коды.



1.2.1. Коды ASCII - байтовые числа, соответствующие расширенному набору кодов ASCII для IBM PC. В него входят:

 символы пишущей машинки - 48 шт;

 32 управляющих кода, которые используются для передачи команд ПУ и не выводятся на экран дисплея, однако каждый из них имеет соответствующий символ, который может быть выведен на дисплей с использованием прямой адресации дисплейной памяти.

1.2.2. Расширенные коды - этот набор кодов присвоен клавишам или комбинациям клавиш, которые не имеют представляющие их символы ASCII:

 функциональные клавиши;

 комбинации с клавишей Alt и т.д.

1.2.3. Дополнительные коды ASCII

Дополнительные коды ASCII можно получить при прямом вводе с клавиатуры, который осуществляется путем ввода десятичного кода символа ASCII с дополнительной цифровой клавиатуры, находящейся справа, при нажатой клавише Alt. [Alt - число на дополнительной клавиатуре]. Этот метод позволяет вводить любые коды ASCII от CHR (1)-CHR (255). Единственный код, который нельзя ввести напрямую, это CHR (0), так как он является префиксным.



1.3. Форматы данных клавиатуры

После того, как действие клавиатуры оттранслировано, оно записывается в пару байтов в буфере ROM-BIOS. Младший из этих байтов мы назовем главным байтом, а старший - вспомогательным.



1.3.1. Клавиши ASCII

  • При «обычном» вводе. Главный байт содержит ASCII-код. Вспомогательный байт содержит скэн-код.

  • В случае прямого ввода кодов ASCII. Главный байт содержит ASCII-код. Вспомогательный байт содержит 0.

1.3.2. Специальные клавиши

  • Главный байт содержит 0.

  • Вспомогательный байт содержит код специальных клавиш в соответствии с таблицей расширенных кодов.

Существует несколько комбинаций клавиш для выполнения специальных функций, они не генерируют скэн-коды это: ; ; .

    • Повторение действия клавиш и повторяющиеся клавиши

Нажимаем на клавишу и держим ее больше 0.5 сек, тогда автоматически будет генерироваться скэн-код этой клавиши с частотой 10 раз в сек., причем только скэн-код нажатия ее. Это дает возможность в драйвере прерывания 9 упростить алгоритм распознавания: 1) нажатия клавиши (одиночное), 2) повторение автоматическое. Если повторение автоматическое, то:

  1. если была нажата литера, то она будет передаваться в вызвавшую ее программу в виде серии;

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

Примером повторяющихся клавиш являются Shift (левый) и Shift (правый). ROM-BIOS транслирует эти повторяющиеся клавиши в одни и те же коды символов ASCII. В случае, если это имеет значение, ROM-BIOS может сообщать нашей программе и разницу между ними. Это делается по скэн-коду, который находится в старшем байте. Что касается двух клавиш Shift, то каждая из них устанавливает в байте состояния регистра свой разряд. По этим разрядам можно определить нажатую клавишу.

1.4. Процедуры ОС для работы с клавиатурой

Операционная система позволяет выполнять различные процедуры прерывания INT 21h для чтения кодов из буфера клавиатуры, включая средства для получения сразу целой строки, причём номер процедуры задаётся в регистре AH:

AH=1 - ввод символа с клавиатуры с эхом на дисплей;

AH=7 - ввод символа с клавиатуры без эха и без проверки Ctrl+Break;

AH=8 - ввод символа с клавиатуры без эха с проверкой Ctrl+Break;

AH=А - ввод с клавиатуры с буферизацией;

AH=В - проверка наличия ввода с клавиатуры;

AH=С - очистка буфера ввода с клавиатуры;

AH=6, DL=FFh - ввод символа с клавиатуры без ожидания.


    • Прерывание клавиатуры. [INT 9h]

Алгоритм прерывания клавиатуры Int 9h представлен на рис. 1.4.

Рис. 1.4. Алгоритм прерывания клавиатуры Int 9h



    • Управление клавиатурой

Операции с клавиатурой и набор данных клавиатуры, с которыми работает ROM-BIOS, используют область данных в младших адресах памяти с 417h-472h, 0040:0017-0040:0072, а также ячейки 412h и 488h (табл. 1.1).

Таблица 1.1



Байты состояния







Бит

Клавиша

если 1, то:

0040:0017

7

INSERT

режим вставки включен




6

Caps Lock

режим Caps Lock включен




5

Num Lock

режим Num Lock включен




4

Scroll Lock

режим Scroll Lock включен




3

Alt

клавиша нажата




2

Ctrl

клавиша нажата




1

левый Shift

клавиша нажата




0

правый Shift

клавиша нажата

0040:0018

7

INSERT

клавиша нажата




6

Caps Lock

клавиша нажата




5

Num Lock

клавиша нажата




4

Scroll Lock

клавиша нажата




3

Ctrl-Num Lock

режим Ctrl-Num Lock включен

1.5. Буфер клавиатуры

На рис. 1.5 изображена структура кольцевого буфера клавиатуры, расположенного в области данных BIOS. Он содержит 32 байта, причём каждому нажатию соответствуют 2 байта в буфере. Например, если была нажата литера, то чётный байт содержит ASCII-код, а нечётный байт - скэн-код. Если была нажата дополнительная клавиша, то чётный байт содержит ASCII-код, а нечётный байт содержит 0. Если была нажата функциональная клавиша, то чётный байт содержит 0, а нечётный байт - ASCII-код.

Кольцевой буфер клавиатуры организован как очередь, поэтому он имеет указатель на голову HP и на хвост TP. Каждый размером в 2 байта.

На рис. 1.6 приведены блок-схемы алгоритмов записи и считывания в/из кольцевого буфера. Они показывают, что запись осуществляется программой ROM-BIOS, управляющей TP (указателем “хвоста”), а считывание программой Int_21h, управляющей HP (указателем “головы”).



Рис. 1.5. Кольцевой буфер клавиатуры


Рис. 1.6. Блок-схемы алгоритмов записи и считывания в/из кольцевого буфера

Состояния буфера определяются следующими условиями:

1. Буфер пустой, если - (НР)=(ТР)

2. Буфер полон, если:

а) (НР)=(ТР)+2 или (ТР)=(НР)-2 во всех случаях, за исключением случая;

б) (НР)=30 (1Е), когда (ТР)=60 (3С).

Для инициализации буфера необходимо выполнить условие (ТР)=(НР).



1.6. USB клавиатура

Клавиатура ПК фактически представляет собой небольшой компьютер, связанный с основной системой одним из двух способов:

 с помощью стандартного разъема клавиатуры и специального последовательного канала передачи данных;

 через порт USB.

Клавиатура, подключенная к порту USB, работает практически так же, как и при подключении к традиционному порту DIN или mini-DIN. Микросхемы контроллера, установленные в клавиатуре, используются для получения и интерпретации данных перед тем, как они будут переданы через порт USB в систему. Некоторые микросхемы включают в себя логическую часть концентратора USB, что позволяет клавиатуре работать непосредственно в качестве концентратора USB.

При получении данных от клавиатуры порт USB передает их на 8042 совместимый контроллер, который обрабатывает данные так же, как и любую другую информацию клавиатуры.

Описанный процесс осуществляется уже после загрузки Windows. Но что же происходит в том случае, если пользователю приходится обращаться к клавиатуре при работе в командной строке или при конфигурировании системной BIOS? Как уже отмечалось, для работы с клавиатурой USB в режиме MS DOS необходимо осуществить поддержку технологии USB Legacy в базовой системе ввода-вывода. BIOS, поддерживающая USB Legacy, позволяет выполнить следующие задачи:

1) конфигурирование главного контроллера;

2) подключение клавиатуры и мыши USB;

3) настройка планировщика главного контроллера;

4) направление данных, вводимых с клавиатуры или мыши USB, на контроллер клавиатуры 8042.

После загрузки системы драйвер (главного контроллера USB) берет управление клавиатурой на себя, отправляя команду StopBIOS подпрограмме BIOS, которая непосредственно “руководит” клавиатурой. При перезагрузке компьютера в режиме MS DOS главный контроллер USB отправляет команду StartBIOS для повторного запуска той же подпрограммы BIOS.

Клавиатура USB, начиная с того момента, как контроллер клавиатуры 8042 принимает отправленные сигналы, работает аналогично стандартным клавиатурам. При этом управление клавиатурой осуществляется на уровне BIOS (параметры BIOS, необходимые для работы с клавиатурой USB, должны быть корректно заданы). Как уже отмечалось, в некоторых случаях для обеспечения соответствующей поддержки клавиатуры USB может понадобиться обновленная версия BIOS. Кроме этого, используемые наборы микросхем системной логики должны поддерживать режим USB Legacy.



1.7. Примеры программирования

Рассмотрим примеры 2-х программ:



1. Очистка буфера клавиатуры

Средний уровень:

; очистка буфера перед ожиданием нажатия клавиши

MOV AH, 0CH ; очистка

MOV AL, 1 ; ввод символа с эхом на дисплей

INT 21H ; чистим буфер, ждем ввода.

Низкий уровень:

; выравниваем значения указателей на голову и хвост

CLT ; запрещаем прерывания

SUB AX, AX ; обнуляем АХ

MOV ES, AX ; добавочный сегмент с начала памяти

MOV AL, ES:[41Ah] ; в AL посылаем указатель на голову буфера

MOV ES:[41Ch], AL ; посылаем его в указатель хвоста

STI ; разрешение прерывания.



2. Ожидание ввода символа без вывода на экран

Средний уровень:

; получаем введенный символ

MOV AH, 7 ; номер функции

INT 21H ; ожидаем ввод символа

CMP AL, 0 ; проверка на расширенный код

JE EXT_COD ; если да, то на процедуру EXT_COD, иначе – код

;символа в AL.

; процедура обработки расширенных кодов:

EXT_COD : INT 21H ; берем второй байт кода

CMP AL, 75 ; проверяем на

JNE C_R ; если нет, то следующая проверка

JMP CUR_LEFT ; если да, то на процедуру

C_R: CMP AL, 77 ; сравниваем дальше и т.д.



;Сводная таблица расширенных кодов:

Значение второго байта:

75

77

79 END
Контрольные вопросы


  1. Куда передаёт скэн-код нажатой клавиши процессор клавиатуры при сканировании матрицы клавиатуры?

  2. Что делает прерывание клавиатуры Int 9h?

2. Устройства печати

2.1. Классификация и основные требования к ПчУ

Печатающие устройства (ПчУ) являются устройствами вывода текстовой информации. ПчУ принято классифицировать по:

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

 способу формирования изображения, в соответствии с которым принято все ПчУ делить на знакопечатающие или полнопрофильные, для которых изображение выводимых символов непрерывно, и знакосинтезирующие, матричные, в которых изображение формируется из более мелких элементов (точек, штрихов) в процессе вывода;

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

Требования к ПчУ многочисленны и порой противоречивы. Основными являются:

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

Качество изображения принято оценивать контрастностью и разрешающей способностью.



Контрастность D определяет различие в отражающих свойствах наиболее тёмного (светлого) участка изображения и фона.
D=lg(Фпф)/Фп,

где Фп - отражённый световой поток от единицы поверхности участка изображения, а Фф - поверхности фона.



Разрешающая способность R определяет максимальное число различных элементов изображения на единице длины. Отметим, что разрешающая способность невооружённого глаза человека на расстоянии наилучшего видения (около 25 см) составляет 6.3 линии/мм.

2.2. Технологии печатающих устройств и способы регистрации

В случае цветного монитора используется аддитивная модель (addition-сложение) образования цвета или RGB (Red, Green, Blue).

В принтерах используется субтрактивная модель образования цвета (subtraction-вычитание).

Первичными цветами для цветных принтеров являются: зелёно-голубой (cyan), светло-красный (magenta) и жёлтый (yellow). Смешивание всех трёх цветов субтрактивной модели даёт чёрный цвет. В некоторых принтерах для получения истинно чёрного цвета используется отдельный чёрный краситель (black), поэтому такая модель цветообразования называется также CMY или CMYK.

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

На сегодняшний день используются следующие технологии для цветной печати. Они реализуются в ударных (“игольчатых”) матричных принтерах (dot matrix), в струйных принтерах с жидкими чернилами (liquid ink-jet), в принтерах с термопереносом восковой мастики (thermal wax transfer), в принтерах с термосублимацией красителя (dye sublimation), в струйных принтерах с изменением фазы красителя (phase-change ink-jet) и в цветных лазерных принтерах (colour laser).

2.2.1. Ударный способ

Используется многоцветная лента при ударном способе регистрации.



Недостатки: скорость печати мала, небольшой выбор палитры.

Достоинства: надёжность, низкая стоимость, возможность печати на обычной бумаге.

2.2.2. Струйная технология

Струйная технология печати на сегодняшний день самая распространённая для реализации цветных устройств.

Струйные чернильные принтеры подразделяются на устройства непрерывного действия (continuous drop, continuous jet) и дискретного действия (drop on demand).

К основным достоинствам continuous jet относится возможность воспроизведения широкой палитры цветов с высоким качеством, однако при невысокой скорости печати стоимость подобных цветных принтеров достигает нескольких десятков тысяч долларов. Принцип действия принтеров continuous jet напоминает работу видеосистемы с ЭЛТ. Распыляемая струя заряженных частичек красителя подобно пучку электронов в ЭЛТ проходит через отклоняющую систему конденсаторов и, попадая на бумагу, “рисует” изображение текста, рисунков и т.д.

Струйные принтеры дискретного действия опять же делятся на две категории: основанной на нагревании чернил и основанной на действии пьезо-эффекта.

В технологии с нагреванием чернил (“пузырьковой ” технологии bubble-jet или thermal ink-jet) используются терморезисторы, которые при пропускании тока за несколько микросекунд нагреваются до 500 градусов. Образуется чернильный паровой пузырь, который старается вытолкнуть через выходное отверстие сопла каплю жидких чернил. При отключении тока тонкоплёночный резистор также быстро остывает, паровой пузырь, уменьшаясь в размерах, “подсасывает” через входное отверстие сопла новую порцию чернил, которые занимают место ”выстреленной” капли. Цветные принтеры от фирм Cannon и HP используют именно эту технологию.

В технологии, основанной на действии пьезо-эффекта (piezo), для управления соплом используют диафрагму, соединённую с пьезо-элементом. Подобный метод используется компаниями Epson, Brother, Dataproducts, Tektronix.

Устройства дискретного действия (drop on demand) достаточно дешевы (500 долларов), позволяют получать широкую гамму цветов. Однако, как правило, требуют специальной бумаги, чтобы избежать растекания чернил.

Цветные струйные принтеры CMYK имеют следующие технические характеристики (табл. 2.1):

Таблица 2.1



Модель принтера

Cannon BJC-70

HP Desk Jet 660C

Epson Stylus Colour

Параметры

Число сопел

(монохр./цветных)



64/64

48/48

64/48

Максимальное разрешение, dpi

360/360

600/600

720/720

Память (стандартная/максим.), MB

0.035/0.035

0.512/0.512

_

Скорость печати в черновом режиме, (страниц/мин)/cps

4/(150-200)

4/(150-200)

8/(300-400)

2.2.3. Технология термопереноса восковой мастики (Thermal wax transfer)

Термопластичное красящее вещество, нанесённое на тонкой подложке, попадает на бумагу именно в том месте, где нагревательными элементами (аналогами игл) печатающей головки обеспечивается должная температура - C.



2.2.4. Технология термосублимации красителя (Dye sublimation)

Эта технология близка к технологии термопереноса, только в этом случае, при нагреве красителя до 400 градусов, краситель переходит из твёрдого состояния в газообразное, минуя жидкую фазу, и осаждается на бумаге. Такая технология позволяет точно определить пропорции красителя. Например, 19% Cyan, 65% Magenta, 34 % Yellow. Комбинацией цветов можно набрать практически любую цветовую палитру. Данная технология обеспечивает практически фотографическое качество получаемого изображения. Основное ограничение - высокая стоимость каждой копии изображения.



2.2.5. Технология изменения фазы красителя (Phase-change ink-jet)

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



2.2.6. Электрофотографический способ лазерных принтеров (Colour laser)

В лазерных принтерах используется электрофотографический принцип создания изображения (такой же, как и в копировальных машинах Xerox). Лазер формирует электронное изображение светочувствительной фотоприёмной ленте (барабане) последовательно для каждого цвета тонера (CMYK), т.е. принтер, работающий в монохромном режиме со скоростью 8 стр./мин., в цветном режиме обеспечит только 2 стр./мин.



следующая страница>


Учебное пособие «Периферийные устройства вычислительных систем»

Пу в вычислительных системах; 2 организации обмена данными в эвм; 3 назначения, принцип действия, структуры и программирования последовательного и параллельного интерфейсов; 4 пост

1420.14kb.

10 10 2014
8 стр.


Компьютер Периферийные устройства пэвм

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

35.13kb.

14 10 2014
1 стр.


Периферийных устройств

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

46.93kb.

14 10 2014
1 стр.


Методические указания к лабораторной работе №3 по дисциплине «Периферийные устройства» курск 2000

Управление режимами печати ударно-матричного принтера: Методические указания к лабораторной работе по дисциплине "Периферийные устройства" для студентов специальности 2201/ Курск г

214.71kb.

18 12 2014
1 стр.


Дисциплина: Периферийные устройства Визуальный вывод информации. Индикаторные устройства

Свыше 70% информации представляется оператору в знаковой или изобразительной форме с помощью устройств отображения информации

320.62kb.

10 10 2014
1 стр.


Опд. Ф. 11 «Сети ЭВМ и Телекоммуникации»

Режимы работ и архитектуры вычислительных систем. Эволюция способов доступа к вычислительным ресурсам. Переход от элементов телеобработки к сетевым технологиям. Классификация инфор

44.66kb.

11 10 2014
1 стр.


Учебное пособие Согласно Федеральному компоненту

Хрестоматия по философии: Учебное пособие / Отв ред и сост. А. А. Радугин. – Москва: Центр, 2001.– 416с

4277.23kb.

15 12 2014
23 стр.


Учебное пособие разработал

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

3083.57kb.

17 12 2014
32 стр.