Информационные технологииStfw.Ru 🔍
🕛

Программирование аппаратных средств периферийных устройств.

Конечным звеном средств програмной поддержки ПУ в силу специфичности физических принципов их реализации неизбежно являются узкоспециализированные программы низкого уровня. Из-за того, что пр
Конечным звеном средств програмной поддержки ПУ в силу специфичности физических принципов их реализации неизбежно являются узкоспециализированные программы низкого уровня. Из-за того, что программирование на таком уровне сложно даже для общесистемных, не говоря уже о прикладных программистах, имеется тенденция к повышению уровня средств программирования ПУ за счет маскирования специфики ПУ на уровне так называемого firmware( внутреннего программного обеспечения –ВПО). Примером может служить маскирование функций непосредственного управления дисковыми накопителями на уровне внутренних команд дисковых контроллеров WD2010, 8272 и др.
Однако на уровень регистров контроллеров выходят только специализированные программы. В настоящее время ПУ как правило, программируются на уровне функций системной BIOS, а программы более высокого уровня вообще используют стандартные функции ОС.
Использование интерфейса SCSI еще более повышает уровень программирования ПУ за счет использования определенного стандартом набора команд общего вида. Для прикладного програмиста использование стандартных функций BIOS становится при этом практически невозможным.
Однако как элемент управления устройством они, естественно, сохраняются на уровне ВПО контроллера ПУ и реализуется либо локальнам микропроцессором (МП) контроллера, либо микроконтроллером, встроенным в базовую БИС контроллера ПУ.
В целях сохранения наработанных программных средств управления электроникой ПУ, в настоящее время широко используется эмуляция стандартных интерфейсов ПУ, предполагающая преобразование логических адресов SCSI в физические адреса конкретного устройства. Примером может служить контроллер SmartConnex/ISA фирмы Distributed Proccessing Е Technology. Он использует интерфейс известного дискового контроллера WD1003 фирмы Western Digital, в результате чего компьютер “видит” контроллер как обычное устройство, совместимое с интерфейсом ST-506.
Реально эмуляцию интерфейса выполняет невидимый для пользователя драйвер, запоминаемый при форматировании в последнем блоке НМД. Соответствующие драйверы имеются для наиболее распространенных ОС (MS-DOS, OS/2, Xenix/Unix, Novell NetWare). Установка контроллера SmartConnex в систему осуществляется с помощью специальной утилить, поставляемой фирмой.
В известных контроллерах WD 33C92/93 фирмы Western Digital имеется даже встроенная команда преобразования форматов логических адресов в физические.
Таким образом, для реализации различных ПУ в стандарте SCSI могут использоваться фрагменты готовых программ, поддерживающие такие стандартные функции управления ПУ в MS-DOS, как INT 13, INT 11 и др.
Следует отметить, что такой подход, видимо не в полной мере соответствует идеологии SCSI, и в перспективе будут использоваться специальные программы непосредственного управления SCSI устройством на базе SCSI-команд.

Также по теме:
Новые программы для Windows, Linux и Android.