Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Богода отчеты / floppy_1_chast

.docx
Скачиваний:
23
Добавлен:
09.06.2015
Размер:
406.38 Кб
Скачать

Московский государственный университет

путей сообщения (МИИТ)

Институт управления и информационных технологий

Кафедра “Вычислительные системы и сети”

Отчёт

по циклу лабораторных работ

Лабораторная работа «FLOPPY»

по дисциплине

“Интерфейсы периферийных устройств”

Выполнил студент группы УВМ-411 Меркулов С.Р

Преподаватель Богодистова Е.С.

Москва-2014

ЦИКЛ ЛАБОРАТОРНЫХ РАБОТ

Функционирование дисковой подсистемы на примере контроллера и накопителя на гибких магнитных дисках”

Цель цикла лабораторных работ – изучение и практическое освоение принципов построения и работы контроллера и накопителя гибких дисков на физическом уровне (уровне работы с регистрами БИС и портами адаптеров).

В современном ПК контроллер НГМД выполняется в интегрированном виде на системной плате. Однако сохраняется трехуровневая структура управления, включающая ядро ПК, контроллер и логику управления самих накопителей.

Основными функциями контроллера НГМД являются: управление позиционированием головок в накопителе, организация размещения информации на носителе, выполнение функциональных операций (запись, чтение, проверка) над информационными блоками, последовательно-параллельное преобразование информации, обнаружение и коррекция ошибок в данных, организация обмена с ядром, проверка работоспособности как накопителей, так и собственного оборудования. Уже на ранних этапах развития ПК технические характеристики НГМД, стандартизация носителей, методов записи и интерфейсов накопителей позволили создать практически полнофункциональные БИС контроллеров гибких дисков (КГД) типа Intel8272. Для реализации адаптеров с использованием таких БИС необходимы дополнительные микросхемы.

Для взаимодействия с ЦП в адаптере, помимо внутренних регистров (данных и состояния) БИС КГД, используется дополнительный регистр управления (РУ).

Структура адаптера НГМД

АК - адресный компаратор

БССИ - блок связи с системным интерфейсом

РгУ - регистр управления

Ф - формирователи сигналов интерфейса НГМД

БС - блок синхронизации

БЗп - блок записи

БЧт - блок чтения

IRQ - Interruption Request

DRQ - DMA Request

Структура БИС КГД intl 8272

(БШД – буфер шины данных, БССИ – блок связи с системным интерфейсом)

Структурная схема БИС КГД intel 82078

Программистская модель адаптера НГМД

БИС 82072 и адаптера НГМД на базе БИС 8272 (без регистра 3F7H)

Расшифровка обозначений рис. …:

3F2H - Рг. Управления (вывод)

3F4H - Рг. Состояния (осн.) (ввод)

3F5H - Рг. Данных (ввод/вывод) Показать связи с нгмд

3F7H - Рг. Скор. (вывод)/Рг. СДоп (ввод)

Отличия для AT и выше:

1) может быть только Выбор Н0, Выбор Н1;

Вкл. двиг. 0, Вкл. двиг. 1;

2) плюс РгСкорости передачи данных /РгСостДополнит.

управления скоростью вращения

(300 или 360 об/мин)

3) степень интеграции (БИС КГД включает БС,

БЗп, БЧт)

Характеристики дисковода A

┌───────┬──────┬─────────┬────────────────────────────────┬──────┬

│ Смеще-│ Раз-│ │ │1,44 │

│ ние,│ мер,│ Имя поля│ Описание │MБайт │

│ байт │ байт │ │ │ (A) │

├───────┼──────┼─────────┼────────────────────────────────┼──────┼

│ 0 │ 1 │ srt_hut │ Биты 0-3: │ AFh │

│ │ │ │ SRT(Step Rate Time)-задержка │ │

│ │ │ │ для переключения головок. │ │

│ │ │ │ Биты 4-7: │ │

│ │ │ │ Задержка разгрузки головки. │ │

├───────┼──────┼─────────┼────────────────────────────────┼──────┼

│ 1 │ 1 │ dma_hlt │ Бит 0: │ 02h │

│ │ │ │ Значение этого бита,равное 0, │ │

│ │ │ │ о том,что используется прямой │ │

│ │ │ │ доступ к памяти; │ │

│ │ │ │ Биты 1-7: │ │

│ │ │ │ Время загрузки головок HLT- │ │

│ │ │ │интервал между сигналом загруз- │ │

│ │ │ │ ки головок и началом операции │ │

│ │ │ │ чтения или записи. │ │

├───────┼──────┼─────────┼────────────────────────────────┼──────┼

│ 2 │ 1 │motor_w │ Задержка перед выключением │ 25h │

│ │ │ │ двигателя. │ │

├───────┼──────┼─────────┼────────────────────────────────┼──────┼

│ 3 │ 1 │sec_size │ Код размера сектора в байтах: │ 02h │

│ │ │ │ 0 - 128; 1 - 256; │ │

│ │ │ │ 2 - 512; 3 - 1024. │ │

├───────┼──────┼─────────┼────────────────────────────────┼──────┼

│ 4 │ 1 │ eot │ Номер последнего сектора на │ 12h │

│ │ │ │ дорожке. │ │

├───────┼──────┼─────────┼────────────────────────────────┼──────┼

│ 5 │ 1 │ gap_rw │ Длина межсекторного промежутка │ 1Bh │

│ │ │ │ для чтения или записи. │ │

├───────┼──────┼─────────┼────────────────────────────────┼──────┼

│ 6 │ 1 │ dtl │Максимальная длина передаваемых │ FFh │

│ │ │ │ данных.Используется,когда не │ │

│ │ │ │ задана длина сектора. │ │

├───────┼──────┼─────────┼────────────────────────────────┼──────┼

│ 7 │ 1 │ gap_f │ Длина межсеторного промежуткa │ 6Ch │

│ │ │ │ для операции форматирования. │ │

├───────┼──────┼─────────┼────────────────────────────────┼──────┼

│ 8 │ 1 │fill_char│ Байт-заполнитель для формати- │ │

│ │ │ │рования,обычно используется F6H │ F6h │

├───────┼──────┼─────────┼────────────────────────────────┼──────┼

│ 9 │ 1 │ hst │ Время установки головки │ 0Fh │

├───────┼──────┼─────────┼────────────────────────────────┼──────┼

│ 10 │ 1 │mot_start│ Время запуска двигателя │ 08h │

└───────┴──────┴─────────┴────────────────────────────────┴──────┴

В системе команд используются следующие значения:

┌───────────┬──────────────────────────────────────────────┐

│Обозначение│ Описание │

├───────────┼──────────────────────────────────────────────┤

│ MFM │ Двойная(HD,DD)/одинарная(SD) плотность записи│

│ MT │ Двухсторонняя операция │

│ SK │ Пропуск удаленных данных │

│ │ │

│ HDS │ Номер головки для двухстороннего НГМД │

│ DS1,DS2 │ Номер выбираемого НГМД │

│ │ │

│ C │ Номер цилиндра │

│ H │ Номер головки │

│ R │ Номер сектора │

│ N │ Код размера сектора в байтах │

│ │ │

│ EOT │ Номер последнего сектора на дорожке │

│ │ (количество секторов) │

│ GPL │ Длина межсекторного промежутка │

│ │ для операции "Чтения" или "Записи" │

│ │ │

│ PCN │ Номер цилиндра,который выдается после │

│ │ выполнения операции "Чтения состояния │

│ │ прерывания" │

│ │ │

│ GPL_F │ Длина межсекторного промежутка для │

│ │ операции "Форматирования". │

│ SC │ Число форматируемых сектров │

│ FILL_CHAR │ Байт-заполнитель для форматирования │

│ │ │

│ SRT │ Время шага в миллисекундах │

│ HUT │ Время разгрузки головки │

│ HLT │ Время загрузки головки │

│ ND │ Режим прерывания │

│ DTL │ Максимальная длина данных при N=0 │

│ STP │ Шаг сканирования │

└───────────┴──────────────────────────────────────────────┘

ЧАСТЬ 1. Освоение команд контроллера НГМД

В данной части все студенты выполняют однотипные действия для своих значений параметров.

1.1. Выбрать дисковод, если есть необходимость.

1.2. Установить скорость передачи данных, соответствующую Вашему накопителю.

1.3 Выполнить опцию программы "Диск \ Включить мотор" и убедиться в правильности работы дисковода.

1.4 Выполнить опцию программы "Диск \ Выключить мотор" и убедиться в правильности работы дисковода.

1.5. Выполнить опцию программы " Сброс и откат".

ТЕСТ → ЧТЕНИЕ СОСТОЯНИЯ ПРЕРЫВАНИЯ

ST0 = 00100000

SE = 1 → Завершена команда "Поиск"

PCN= 00000000

ТЕСТ → ЧТЕНИЕ СОСТОЯНИЯ НАКОПИТЕЛЯ

ST3 = 00111000

RDY=1 → НГМД готов к работе

T0 = 1 → Головка установлена на нулевую дорожку

TS = 1 → Используется режим двухсторонней записи

1.6. Установить время загрузки и разгрузки головки, время шага и режим прерывания, выполнив команду "Указать".

ТЕСТ → УКАЗАТЬ

КОП = 00000011

1 = 10101111 → srt_hut

2 = 00000010 → dma_hlt

1.7. Произвести откат головок на цилиндр 0, выполнив команду "Рекалибровка".

ТЕСТ → РЕКАЛИБРОВКА

КОП1 = 00000111

КОП2= 00000010

1.8. Установить головку Н на дорожку 1, выполнив "Поиск".

ТЕСТ → ПОИСК

КОП1 = 00001111

КОП2 = 00000000

С = 00000001

ТЕСТ → ЧТЕНИЕ СОСТОЯНИЯ ПРЕРЫВАНИЯ

ST0 = 00100000

SE = 1 → Завершена команда "Поиск"

PCN= 00000001

1.9. Прочитать сектор R дорожки C, выполнив "Чтение данных".

ТЕСТ → ЧТЕНИЕ → ЧТЕНИЕ ДАННЫХ

КОП1= 01000110

КОП2= 00000000

С = 00001011

H = 00000000

R = 00001011

N = 00000010

EOT = 00010010

GPL = 00011011

DTL = 11111111

ST0 = 00000000

ST1 = 00000000

ST2 = 00000000

нулевые значения этих регистров говорят о том, что операция чтения завершена успешно

С = 00000001 - номер дорожки (1)

H = 00000000 - номер головки

R = 00000010 - номер сектора ( стал 2 )

N = 00000010 - код размера сектора (02 для 512 байт - стандартно)

1.10. Отформатировать дорожку, выполнив команду "Форматирование" со стандартными параметрами.

ТЕСТ → ФОРМАТИРОВАНИЕ

КОП1 = 01001101

КОП2 = 00000000

N = 00000010

SC = 00010010 - номер последнего сектора на дорожке

GPL_F = 01101100 - длина межсекторного промежутка для операции форматирования

Fill Char =11110110 - байт-заполнитель для форматирования

ST0 = 00000000

ST1 = 00000000

ST2 = 00000000

С = 00000001

H = 00000100

R = 00010010

N = 00000010

1.11. Прочитать дорожку C, выполнив "Чтение дорожки".

ТЕСТ → ЧТЕНИЕ → ЧТЕНИЕ ДОРОЖКИ

КОП1= 01000010

КОП2= 00000000

С = 00000001

H = 00000000

R = 00000001

N = 00000010

EOT = 00010010

GPL = 00011011

DTL = 11111111

ST0 = 00000000

ST1 = 00000000

ST2 = 00000000

С = 00000001

H = 00000000

R = 00000001

N = 00000010

1.12. Записать в сектор R дорожки свое имя, фамилию, группу.

КОП1= 01000101

КОП2= 00000000

С = 00001011

H = 00000000

R = 00000111

N = 00000010

EOT = 00010010

GPL = 00011011

DTL = 11111111

1.13. Прочитать сектор R дорожки C, выполнив "Чтение данных" и сравнить записанные и считанные данные. Продемонстрировать результаты данного пункта преподавателю.

КОП1= 01000110

КОП2= 00000000

С = 00001011

H = 00000000

R = 00000111

N = 00000010

EOT = 00010010

GPL = 00011011

DTL = 11111111

Соседние файлы в папке Богода отчеты