
Богода отчеты / floppy_1_chast
.docxМосковский государственный университет
путей сообщения (МИИТ)
Институт управления и информационных технологий
Кафедра “Вычислительные системы и сети”
Отчёт
по циклу лабораторных работ
Лабораторная работа «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