Автор работы: Пользователь скрыл имя, 08 Сентября 2013 в 14:04, курсовая работа
Выпускаемые накопители информации представляют собой гамму запоминающих устройств с различным принципом действия физическими и технически эксплуатационными характеристиками. Основным свойством и назначением накопителей информации является ее хранение и воспроизведение. Запоминающие устройства принято делить на виды и категории в связи с их принципами функционирования, эксплуатационно-техническими, физическими, программными и другими характеристиками.
Введение 4
1. Жесткий диск и принцип его работы 5
2. Интерфейс IDE/ATA 7
2.1 Эволюция интерфейса 7
2.2 Адресация устройств 8
2.3 Назначение контактов разъема 9
2.4 Сигналы интерфейса ATA IDE 10
2.5 Протокол взаимодействия хоста и устройства 15
2.6 Протоколы и режимы передачи данных 18
3. Алгоритм, реализующий интерфейс IDE 22
4. Программа для работы с жестким диском 24
Библиографический список 27
RESET (Devicereset) – сброс устройства (инвертированный сигнал сброса системной шины). Сигнал длительностью не менее 25 мкс вырабатывается после установления питающих напряжений.
DA[2:0] (DeviceAddress) – три младших бита системной шины адреса, используемые для выбора регистров устройств.
DD[15:0] (DeviceData) – двунаправленная 16-битная шина данных между адаптером и устройствами. При 8-битных обменах используются младшие биты D[7:0].
DIOR (Device I/O Read) – строб чтения портов ввода/вывода. Данные фиксируются по положительному перепаду сигнала.
DIOW (Device I/O Write) – строб записи портов ввода/вывода. Данные фиксируются по положительному перепаду сигнала.
IORDY (I/O channelready) – готовность устройства завершить цикл обмена. Низким уровнем сигнала во время цикла обмена устройство может ввести такты ожидания шины. Сигнал требуется при обмене в PIO MODE 3 и выше.
IOCS16 – разрешение 16-битных операций. Обращение ко всем регистрам, кроме регистра данных, всегда 8-битное. Для РЮ MODE 0, 1, 2 при активном сигнале обращения 16-битные, при неактивном – 8-битные. Для РЮ MODE 3, 4 и DMA все обмены 16-битные, кроме дополнительных байт (выходящих за границу 512-байтного сектора) «длинного» считывания и записи.
DMARQ (DMA ReQuest) – запрос обмена по каналу DMA (сигнал необязательный). При разрешении обмена сигнал (высокий уровень) вводится устройством по готовности к обмену. Введя сигнал DMARQ, устройство должно дождаться подтверждения от хост-адаптера сигналом DMACK, после чего может снять запрос DMARQ. Для очередной передачи запрос должен быть введен снова. В режиме Multi-Word DMA запрос может удерживаться на время передачи всех данных. Выход должен быть тристабильным, в активном состоянии (0 или 1) он может быть только у выбранного устройства во время работы с DMA. В АТА-1 для этого сигнала мог использоваться как тристабильный, так и стандартный ТТЛ-выход. Работа на одной шине устройств с разнотипными выходами DMARQ может привести к конфликтам.
DMACK (DMA aCKnowledge) – подтверждение DMA. Сигнал вырабатывается хост-адаптером как подтверждение цикла передачи. Передача слова данных управляется сигналами DIOR или DIOW. Во время обмена по каналу DMA сигналы IOCS16, CS0 и CS1 не используются, обмен всегда производится 16-битными словами.
INTRQ (Device interrupt) – запроспрерывания.Выход должен быть тристабильным, активный сигнал (логическую 1) вырабатывает только выбранное устройство, когда у него имеется необслуженный запрос прерывания и его вырабатывание не запрещено битом nIEN в регистре DeviceControl. Запрос сбрасывается по сигналу RESET, установке бита SRST в регистре DeviceControl, записи в регистр команд или чтении регистра состояния. При обменах РЮ запрос устанавливается в начале передачи каждого блока (сектора или группы секторов при многосекторных операциях). Исключения: по командам FormatTrack, WriteSector(S), WriteBuffer и WriteLong в начале передачи первого блока данных запрос прерывания не вырабатывается. При обменах DMA запрос прерывания вырабатывается только по завершении операции.
CSO (ChipSelect 0) – сигнал выбора блока командных регистров (CommandBlockRegisters). Для первого канала он вырабатывается при наличии на системной шине адреса порта ввода/вывода в диапазоне lFOh–lF7h (сигнал также называют CS1FX#).
CS1 (ChipSelect 1) – выбор блока управляющих регистров (ControlBlockRegisters). Для первого канала он вырабатывается при наличии на системной шине адреса порта ввода/вывода в диапазоне 3F6h-3F7h (часто этот сигнал называется CS3FX;.
PDIAG (Passeddiagnostics) – сигнал о прохождении диагностики. Ведущее устройство наблюдает за этим сигналом, который ведомое устройство должно выработать в ответ на сброс или команду диагностики. Если ведомое устройство обнаружено (по сигналу DASP), ведущее устройство ожидает сигнал в течение 31с после сброса и 6 с после команды диагностики. Если за это время сигнал не появился, ведущее устройство отмечает этот факт установкой бита 7 регистра ошибок. Если ведомое устройство не обнаружено, ведущее обнуляет регистр состояния ведомого устройства и сообщает свое состояние сразу после завершения собственной самодиагностики. Сигнал служит только для связи двух устройств и хост-адаптером не используется.
CBUD (Cable assembly type identifier) – идентификациятипакабеля.В 80-проводной сборке контакт 34 на разъеме хост-адаптера соединяется с шиной GND, а контакты 34 разъемов устройств соединяются между собой, но связи с разъемом хост-адаптера не имеют. После прохождения сброса (когда сигнал PDIAG снимается) хост может определить наличие 80-проводного кабеля по низкому" уровню сигнала.
DASP (DeviceActive, SlavePresent) – сигнал двойного назначения: индикатор активности устройства и присутствия ведомого устройства. Устройства имеют выход типа «открытый коллектор» с нагрузочным резистором 10 кОм к шине +5 В. После сброса по сигналу RESET или при инициализации по включении питания оба устройства в течение 1 мс должны деактивировать этот сигнал, после чего не позже чем через 400 мс его вводит ведомое устройство для сообщения о своем присутствии. Ведущее устройство не активирует этот сигнал в течение 450 мс. Сигнал деактивируется ведомым устройством после получения им команды или через 31с автрматически (смотря что произойдет раньше). После этого сигнал может быть введен любым устройством как индикатор активности. Адаптер использует этот сигнал для включения светодиодного индикатора доступа к диску.
SPSYNC/CSEL (
При использовании режима Ultra DMA четыре линии получают новое назначение сигналов:
Обычный протокол взаимодействия хоста с устройством выглядит следующим образом:
Для команд, не требующих передачи данных (ND):
Для команд данного типа, кроме шести вышеперечисленных пунктов стандартного взаимодействия хоста и устройства, выполняется ещё одна.
Единичное значение бита BSY может промелькнуть между шагами 6 и 7 так быстро, что хост его не зафиксирует, но для фиксации факта выполнения команды или ее части и предназначен запрос прерывания.
Для команд, требующих чтения данных в режиме PIO (PI):
Для команд данного типа, кроме шести вышеперечисленных пунктов стандартного взаимодействия хоста и устройства, выполняются ещё несколько.
Для операций записи данных после шага 6 для устройства начинается активная фаза записи на носитель, что отмечается установкой бита BSY.
Для команд, требующих записи данных в режиме PIO (PO и P):
Для команд данного типа, кроме шести вышеперечисленных пунктов стандартного взаимодействия хоста и устройства, выполняются ещё несколько.
Программа общается с устройствами АТА через регистры, используя инструкции ввода/вывода IN и OUT. Для передачи данных с максимальной скоростью применяют программный доступ к регистру данных или DMA. Тип обмена задается командой. Программный доступ обязателен для всех устройств. Команды режима DMA устройствами могут не поддерживаться.
Программный доступ PIO (ProgrammedInput/Output) выполняется в виде следующих друг за другом операций чтения или записи в пространстве ввода/вывода по адресу регистра данных. В отличие от программно-управляемого ввода/вывода, применяемого, например, для общения с LPT-портом, передача блока данных в режиме PIO производится без программного опроса какого-либо бита готовности для передачи каждого слова. Готовность устройства проверяется перед началом передачи блока, после чего хост производит серию операций в определенном темпе. Темп определяется выбранным режимом PIO Mode (Таблица 2).