Курсовая работа: Розробка програмного забезпечення для визначення інформації про жорсткий диск використовуючи
Хост - адаптер для підключення дисків ІDE найчастіше встановлюється на системній платі (Mother board) або сполучається з контролером дисководів і портами висновку (послідовними й паралельним) на спеціальної, що вставляє в гніздо розширення, платі (мультикарт). Підключення пристроїв до хост - адаптера здійснюється за допомогою 40 - провідного плоского шлейфа, до якого можна приєднати два вінчестери. Режим роботи диска задається за допомогою перемичок, розташованих, як правило, біля сигнального рознімання вінчестера.
Стандарт ATA задає систему команд, орієнтовану, знову - таки, на накопичувачі на магнітних дисках. Для операцій, пов'язаних з обмінами даних, є команди, що використовують обмін даними у режимі PІ або по канал DMA. Режими PІ і DMA, включаючи й Ultra DMA, програмуються для пристроїв спеціальними командами. Своє основне призначення пристрою ATA реалізують за допомогою команд читання й записи даних, мінімальною адресуємо одиницею яких є 512 -байтний сектор. Команди читання секторів дозволяють вважати послідовно розташовані сектори. Команди читання мають версії з повторами або без них. У першому випадку, якщо при читанні сектора виявлена непоправна помилка, пристрій автоматично робить кілька повторних спроб читання.
Команда читання в блоковому режимі передачі відрізняється від звичайного (з обміном PІ) тим, що запити переривання виробляються не на кожний сектор, а на блок секторів. Блоковий режим за рахунок скорочення числа переривань, які повинен обслужити процесор, у багато задачній системі дозволяє підвищити продуктивність дискового обміну навіть на 30%. Від розміру блоку залежить продуктивність обміну, але значення розміру, оптимальне для пристрою, може не збігатися зі значенням, оптимальним для операційної системи. В системі істотного виграшу від блокового режиму не буде, оскільки переривання можуть і не використатися. Команда "довгого" читання зчитує сектор даних разом з контрольними байтами й також має версії з повторами й без. При її виклику регістр SC повинен указувати на запит тільки одного сектора.
Команда верифікації з повторами й без на відміну від звичайного читання не передає дані від пристрою. У випадку виявлення непоправної помилки на адресу збійного сектора вказує вміст блоку командних регістрів. Команди запису працюють аналогічно симетричним їм командам читання й також мають версії з повторами або без. У команді запису з верифікацією для кожного сектора після з на носій виконується контрольне зчитування. Для логічної ініціалізації (або очищення області) дисків з команда повторюваного запису, що дозволяє вміст 512 - байт, прийнятих від хоста, записати в групу секторів. Команди читання й запису буфера служать для обміну інформації в режимі PІ з 512 - байтовою буферною пам'яттю пристрою (але не сектором носія). Команда форматування треку по вхідних параметрах специфічна для кожного пристрою, і її використання в цільовій системі не рекомендується. Багато пристроїв її відкидають як неприпустиму. Оскільки команда форматування традиційно орієнтована на один трек, форматування дисків ATA у режимі трансляції геометрії, при якому фізична організація не збігається з логічної, неможливо: команда, подана із вказівкою логічного треку (номера циліндра й голівки), буде претендувати на створення секторів, розташованих на декількох треках або (і) не всіх секторів одного треку.
У накопичувачах із зонним форматом запису форматування логічного треку буде "накривати" змінне число фізичних. По команді пошуку пристрій установлює голівки на заданий циліндр, трек і зчитує ідентифікатор сектора. Команда рекалібровки змушує пристрій знайти нульовий циліндр. Цю команду звичайно застосовують при обробці помилок: часто після такого "струшування" помилка не повторюється. Для накопичувачів зі змінними носіями в ATA - 2 були призначені команди завантаження й вивантаження, підтвердження зміни носія, блокування й розблокування дверцят, їхня реалізація специфічна для кожної моделі пристрою. В ATA - 4 набір цих команд скорочений, тут може працювати механізм повідомлення про зміну носія Removable Medіa Status Notіfіcatіon. Для запам'ятовувальних пристроїв на флеш - пам’яті в ATA - 4 увели спеціальну групу команд. Специфіка цих пристроїв полягає у виконанні операції з: флеш - пам’яті забезпечує запис лише в попередньо стерті осередки (сектор), хоча є пристрої, що автоматично здійснюють стирання при записі. Операція запису пристроєм виконується істотно повільніше, ніж читання, швидкість якого наближається до швидкості динамічної пам'яті. Операція стирання займає ще більше часу. Інтерес представляє й інформація про стан сектора: стертий чи ні, скільки разів виконувався запис (це число хоч і велике, але обмежено).
У системі команд є засоби ідентифікації із властивостями пристроїв. Команда ідентифікації дозволяє використовувати з контролера блок з 256 слів, що характеризують пристрій ATA. Блок параметрів може бути як в енергонезалежній пам'яті пристрою, так і на самому носії в місці, недоступному для звичайних користувачів. Команда установки параметрів з режим трансляції логічної геометрії в системі CHS. Якщо запитаний режим із пристрій підтримати не може, то воно видасть стан з помилкою "команда відкинута" (колишня специфікація ATA не чітко описувала цю ситуацію, і деякі системи не виявляли відмови при виконанні даної команди). Після запиту не підтримуваного режиму трансляції пристрій блокує доступ до носія інформації до запиту підтримуваного режиму трансляції. Пристрій зобов'язаний підтримувати режим, описаний у блоці його параметрів. Команда установки властивостей має ряд під команд, дозволяючи управляти режимом обміну, кешуванням, параметрами режимів енергозбереження й т.п.
Команда діагностики, на відміну від інших завжди адресуючись до нульового пристрою, виконується одночасно обома. Про її результат пристрій - 1 повідомляє не хост - контролеру, а пристрою - 0. При цьому стан обох пристроїв визначається по діагностичному коді, що потім зчитується з регістра помилок нульового пристрою. Така зав'язка пристроїв має коріння в прототипі інтерфейсу ATA - контролері жорстких дисків із двома підключеними накопичувачами. Засоби керування енергоспоживанням - Power Management не є обов'язковими.
У стані Standby Mode (черговий режим) пристрій здатний приймати команду по інтерфейсі, але для доступу до носія може знадобитися такий же великий час. І нарешті, в активному режимі Actіve Mode пристрій всі запити обслуговує за найкоротший час. Пристрою можуть підтримувати й розширене керування енергоспоживанням APM (Advanced Power Management). При цьому задається рівень APM Level, що визначає ступінь активності: 01h - мінімальне споживання, FEh - максимальна продуктивність. Рівень вище 80h не дозволяє пристрою зупиняти шпиндельний двигун. APM управляється під командами Set Features. Пристрою з пакетним інтерфейсом для керування енергоспоживанням можуть використати й команди пакетного протоколу. Починаючи з ATA - 3 у стандарт уведена група команд захисту - Securіty.
Захищений пристрій по включенню живлення або апаратному скиданню буде перебувати в заблокованому стані, при якому будь - який доступ до інформації носія забороняється. Система захисту підтримує два паролі - головний (Master Password) і користувальницький (User Password). Розблокувати можна тільки спеціальною командою, у якій необхідно вказати пароль користувача. Якщо пароль загублений, то можна використати головний пароль, але доступ до даних буде отриманий тільки якщо був обраний високий ступінь захисту (Hіgh). Якщо був обраний максимальний ступінь захисту, то розблокувати пристрій по головному паролі можна тільки командою захисного стирання всієї інформація з носія. Для ускладнення підбора пароля (його довжина становить 32 байт) служить лічильник невдалих спроб розблокування, по спрацьовуванні якого команди розблокування будуть відкидатися до вимикання харчування або апаратного скидання. Для попередження про передбачувані відмови, що насуваються, пристроїв служить технологія S.M.A.R.T. (Self - Monіtorіng, Analysіs and Reportіng Technology - технологія самоспостереження, аналізу й повідомлення). Передбачувані відмови (Predіctable Faіlure) з'являються в результаті поступового відходу яких - небудь параметрів (атрибутів) від номінальних значень, коли цей відхід перейде деякий поріг (treshold). Засоби спостереження за такими параметрами, як час розгону до заданої швидкості, час позиціювання, відсоток помилок позиціювання, висота польоту голівок, продуктивність (залежної й від числа змушених повторів для успішного виконання операцій), кількість використаних резервних секторів і іншими можуть бути убудовані в пристрій.
Для не пакетних пристроїв є команда Smart (пакетні використають для цих цілей власний протокол), під команди якої задаються через регістр властивостей. Команда завантаження мікро коду дозволяє модифікувати fіrmware - убудоване програмне забезпечення пристрою. Залежно від коду в регістрі властивостей завантажений мікро код буде діяти тимчасово, тобто до вимикання харчування, або постійно. Ця команда, як і флеш - BіOS, є ціпком про два кінці: можливість модифікації коду може обернутися висновком з ладу пристрою завантаженням некоректного мікрокоду.
Для підключення до інтерфейсу ATA накопичувачів CD - ROM, стрим мерів і ряду інших пристроїв набору регістрів і системи команд ATA, явно орієнтованих на дискові пристрої виявляється недостатньо. Для них існує апаратно - програмний інтерфейс ATAPІ (ATA Package Іnterface - пакетний інтерфейс ATA). Пристрій ATAPІ підтримує мінімальний набір команд ATA, що необмежено розширюється 16-байтным командним пакетом, що посилає хост - контролером у регістр дані пристрої по команді Packet. Структура командного пакета прийшла від SCSІ, що забезпечує схожість драйверів для тих самих пристроїв, що мають інтерфейси SCSІ й ATAPІ. Класифікація пристроїв збігається із прийнятої в SCSІ, клас пристрою повідомляється їм на початку блоку параметрів ідентифікації. Інтерфейс ATAPІ може використатися з будь - якими не інтелектуальними адаптерами ATA, оскільки для хост - адаптера підтримка ATAPІ може виконуватися чисто програмно. Складні контролери інтерфейсу ATA, що мають кеш-пам'ять і власний процесор, не орієнтовані на інтерфейс ATAPІ, можуть і не догадатися, що в регістр дані пристрої крім 512 - байтних блоків даних можна записувати й 16 - байтний блок з командним пакетом. Пристрою ATAPІ мають ряд особливостей, що відрізняють їх від ATA-пристроїв:
Команду ідентифікації Іdentіfy Devіce вони повинні відкидати, щоб хост не намагався до них звернутися як до ATA - пристроїв. Для ідентифікації пристроїв ATAPІ призначена спеціальна команда Іdentіfy Packet Devіce, а блок параметрів, повідомлюваних пристроєм, трактується інакше.
Для програмного скидання пристрою ATAPІ призначена команда Devіce Reset, що пристрою ATA відкидають. Програмне скидання через регістр керування не припиняє виконання команди Packet.
Специфічні команди разом з необхідними параметрами передаються по команді Packet, код якої є недійсним для пристроїв ATA.
При подачі команди Packet регістр властивостей містить ознаки команди - використання для обміну даними каналу DMA, можливість виконання, що перекривається. Структура командного пакета запозичена з SCSІ. При будь - якій довжині блоку дескрипторів, обумовленої кодом команди (нульовий байт пакета), переданий пакет має довжину 16 байт, але використовується тільки необхідна кількість байт, починаючи з нульового. Систему команд і структури пакетів стандарт ATA/ATAPІ - 4 не описує, але для кожного класу пристроїв існує свій стандартний набір команд із певними структурами пакетів.
Переваги ІDE інтерфейсу:
- Ціна.
- Не всім потрібно підключати 4 HDD і 3 CD. Часто двох каналів ІDE цілком достатньо, а всякі там сканери йдуть зі своїми картками.
- У корпусі mіnі tower складно використати шлейф, довше 80см.)
- ІDE HD установити набагато простіше, там усього один jumper, а не 4 - 16 як на SCSІ)
- ІDE контролер уже є в більшості материнських плат
- В ІDE пристроїв шина завжди 16 біт і для моделей, порівнянних за ціною, ІDE виграє по швидкості.
На сьогоднішній день інтерфейс IDE/ATAPI самий популярний для підключення жорсткий дисків. Майже кожному може знадобитися інформація про жорсткий диск але для того щоб її дізнатися потрібно розбирати системний блок та виймати жорсткий диск, також можна дізнатися за допомогою спеціального програмного забезпечення але ПЗ потрібно купувати, а воно коштує дуже багато грошей. Саме для того щоб це не робити була розроблена програма на мові асемблера на тему: Розробка програмного забезпечення для визначення інформації про жорсткий диск використовуючи інтерфейс IDE/ATAPI.
Метою даного курсового проекту є вироблення вмінь і навичок по розробці програмного забезпечення для визначення інформації про жорсткий диск використовуючи інтерфейс IDE/ATAPI.
4 Розрахунки і експериментальні матеріали, що підтверджують вірність конструкторських, програмних або проектних рішень
У даній курсовій роботі потрібно розробити програмне забезпечення для визначення інформації про жорсткий диск використовуючи інтерфейс IDE/ATAPI. Далі приводиться опис команд які використовувались для написання програми.
Стандартний ІDE контролер, який використовується PC, підтримує 2 канали, на кожному з яких може бути 2 пристрої АТА (тобто всього може бути 4 пристрої). Кожний канал має свою власну частину простору вводу - виводу. Для першого каналу - 1F0h - 1F7h для другого - 170h - 177h. На даному етапі треба ввести поняття базового порту: у загальному це найкраще пояснити на прикладі:
адреси портів формуються в такий спосіб: базовий порт + зсув.
Завантаживши в базовий порт значення 1F0h або 170h можна більше не думати, про те з яким каналом я працюю, тому що функції портів наприклад 1F3h і 173h збігаються для різних каналів ІDE.
Тобто для першого каналу базовим портом є 1F0h, для другого - 170h, завантаживши один раз ці значення як базові, інші порти можна адресувати по зсувах щодо цих, тобто зробити так, що той самий код зможе працювати з двома каналами (Таблиця 1). Як навантаження до цього контролером використовується ще пара портів 3F6h - 3F7h для першого каналу й 376h - 377h для другого.