ЖУРНАЛ СТА 3/2009

П РОГ РАММНОЕ ОБ Е СП Е Ч Е НИ Е / СИС Т ЕМЫ Р Е АЛ Ь НОГО В Р ЕМЕ НИ команде ведущего, арбитр осуществляет контроль занятости шины. Устройства VME могут быть реализованы разными способами. Одной из возможностей яв- ляется использование поддержки VME на уровне кристалла. Такое решение предлагает фирма Tundra Semiconduc- tors. Вся логика работы VME реализу- ется в микросхеме, которая представляет собой мост PCI/X-VME. То есть со сто- роны PCI устройство VME выступает как стандартное PCI/X-устройство. Для сопряжения с VME делается необходи- мый согласующий «обвес». Такой подход позволяет использовать возможности VME в современных компьютерах на базе PCI/X. О СОБЕННОСТИ ПОДДЕРЖКИ VME- МОДУЛЯ FASTWEL™ CPC600 В QNX N EUTRINO Именно такая реализация и легла в основу модуля FASTWEL™ CPC600 (рис. 1), выпускаемого российской НПФ «Доломант». На примере этого модуля расскажем о поддержке VME в про- мышленных компьютерах, функциони- рующих под управлением ОС РВ QNX Neutrino. Модуль одноплатного компьютера CPC600 имеет интегрированную микро- схему Tsi148 (Tundra Semiconductors) и обеспечивает все основные современ- ные возможности шины VME: до 64 раз- рядов шины адреса и данных, поддержку всех трёх логических типов режима ра- боты, DMA и пр. Поддержка VME-модуля CPC600 в ОС РВ QNX Neutrino хотя и основана на классической QNX-технологии менед- жеров ресурсов, но имеет некоторые ин- тересные особенности. Поскольку QNX Neutrino имеет мо- дульную архитектуру [1], то менеджеры ресурсов, обеспечивающие поддержку аппаратуры, реализуются как обычная программа с функцией main(). Суть та- кой программы заключается в том, чтобы, с одной стороны, поддержать определённое оборудование и, с дру- гой стороны, предоставить пользова- тельским программам POSIX-интер- фейс ввода-вывода. Другими словами, обычно менеджер имеет два программ- ных интерфейса: POSIX-интерфейс прикладного программирования (API) для пользовательских программ и си- стемный интерфейс для драйверов устройств (рис. 2). Таким образом, на менеджер ресурсов возлагается боль- шая часть логики работы, включающая учёт использования аппаратных средств, выделение памяти и прочие управленческие задачи. В то же время менеджер, как правило, не знает спе- цифики реализации конкретного ап- паратного устройства (регистры ввода- вывода, адреса регионов памяти и т.д.) и использует для доступа непосред- ственно к аппаратуре callback-функ- ции, содержимое которых реализует драйвер конкретного устройства. А пользовательским программам ре- зультаты работы выдаются через уни- версальный и об- щ е и з в е с т н ы й POS I X - и н т е р - фейс [2]. Практиче ски вся поддержка ап- паратуры в QNX Neutrino реализована подобным образом, хотя есть и исклю- чения. К таким исключениям отно- сится и реализация поддержки VME. Менеджер VME (программа io-vme ) са- мостоятельно реализует особенности функционирования чипа Tsi148 (моста PCI/X-VME) внутри себя и предостав- ляет программный интерфейс для драй- веров VME-устройств (плат ввода-вы- вода, памяти и пр.). По сути дела, драй- веры VME-устройств эквивалентны пользовательским приложениям на рис. 2. Драйверами же они называются потому, что в коде этих программ со- держится аппаратно зависимая состав- ляющая (адреса, регистры VME-устрой- ства). Структурная схема менеджера VME представлена на рис. 3. Менеджер поддерживает ряд основ- ных возможностей чипа Tsi148 на плат- форме FASTWEL™ CPC600-02. На те- кущий момент в режиме мастера шины поддерживается вся доступная адреса- ция: A16, A24, A32 и A64. Для ввода- вывода данных по шине VME конт- роллер использует так называемые окна – диапазоны памяти, через кото- рые доступны VME-устройства. Име- ется возможность одновременного ис- пользования всех восьми окон ввода- вывода через API менеджера в режиме мастера шины. Также можно устано- вить любой режим передачи данных: за один цикл, блоком, мультиблоком, 2eVME, 2eSST – установка нужного режима зависит от количества переда- ваемых данных и представлена по воз- растанию объёма. Допускается выбор режима доступа к шине как superuser или user. Менеджер io-vme поддерживает обра- ботку по прерываниям IRQ7...IRQ1 и 83 CTA 3/2009 www.cta.ru Процесс 2 Процесс 3 POSIX API Процесс 1 Модули .so Программное обеспечение Аппаратные средства Менеджер Интерфейс драйверов Драйвер 1 Драйвер 2 Драйвер 3 Устройство 1 Устройство 2 Устройство 3 Рис. 2. Структурная схема менеджера ресурсов ОС РВ QNX Neutrino Драйвер платы ввода вывода Драйвер платы рефлективной памяти Модули .sо Программное обеспечение Аппаратные средства Интерфейс драйверов устройств VME Менеджер TSI148 (Мост PCI/X VME) Процесс 1 Рис. 3. Структурная схема менеджера VME для QNX Neutrino © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy