Программное обеспечение системы сбора
-
Общая концепция ПО СС
Цифровая станция представляет собой законченную систему сбора сейсмических данных, которая может функционировать автономно в течении длительного времени. Для этого ЦСС выполнена в виде герметичного модуля, включающего в себя все необходимое для приема сигналов от датчиков, их предварительной обработки, оцифровки с привязкой к шкале единого мирового времени с высокой точностью, анализа полученных данных на предмет наличия события и сохранения данных в течении длительного времени. В зависимости от варианта исполнения (базовая или расширенная версия, версия для экстремальных климатических условий и др.) в качестве устройства накопления данных может использоваться жесткий или электронный диск. При этом время сохранения данных колеблется от 3-х часов до 30-и суток. ЦСС обеспечена автономным блоком питания, позволяющим работать от аккумуляторов напряжением 12 В, системой приема сигналов точного времени, средствами коммуникации, позволяющими производить удаленный доступ к ЦСС как для управления станцией, так и для получения данных, собранных ЦСС, в компьютер системы обработки для анализа.
Для обеспечения максимальной автономности ЦСС в качестве элементной базы были выбраны наименее потребляющие компоненты. Станция построена на модульном принципе, позволяющем с наименьшими затратами и проблемами производить ремонт и расширение оборудование, с применением наиболее распространенных комплектующих. Так, в качестве центрального процессора (ЦП), управляющего работой всей станции, был выбран процессор на базе Intel 286/386 серии C (низкопотребляющий).
В связи с этим ПО, разработанное для ЦСС, ориентировано на решение задач приема данных, привязки к шкале точного времени, анализа данных на наличие события, сохранения данных во внутреннем буфере и организации связи с компьютером системы обработки при обеспечении максимальной автономности ЦСС. В качестве управляющей операционной системы (ОС) была выбрана система MS-DOS V6.22 как наиболее распространенная, имеющая встроенную поддержку файловой системы, модули организации межкомпьютерной связи на основе MS LAN, пригодная для эксплуатации на ЭВМ с ограниченным набором ресурсов (машины класса PC 286). Для управления разнородными процессами ЦСС силами специалистов НПП “Геотех+” была написана многозадачная оболочка (модуль MLTTSK), реализующая вытесняюще-согласующий принцип межзадачного переключения с организацией межпроцессных каналов передачи информации, семафоров, полей разделяемой памяти - все, что присуще “большим” многозадачным ОС. Оболочка реализована в виде резидентного драйвера, имеющего точки входа (коммуникационные прерывания) для взаимодействия с задачами и процессами. Остальное ПО разработано так же с учетом принципа модульности и представляет собой набор резидентных процессов-драйверов, организующих реализацию конкретного процесса во взаимодействии с конкретным “железом”. Для управления этими процессами используется основная программа DASSNT.
Модульный принцип построения аппаратуры ЦСС обусловил организацию ПО также по модульному принципу. Это позволяет разделить ПО на аппаратно-зависимую и аппаратно-независимую части. Аппаратно-зависимая часть реализована в виде модулей (резидентных драйверов), обслуживающих конкретный тип аппаратуры. Аппаратно-независимая часть реализована в виде управляющей программы DASSNT.
-
Модуль управления аппаратурой приема сигналов от датчиков
Программный модуль Acardv80 предназначен для управления коэффициентами усиления аналоговой платы предварительной обработки сигнала и управления жидкокристаллическим индикатором (ЖКИ) на панели индикации. Коэффициент варьируется в пределах 1-256 и задается как степень по основанию 2 (0 соответствует коэффициенту усиления 1, 1 - 2, 2 - 4 и т. д.). Подробное описание коэффициентов усиления приведено в Приложении 4, работа ЖКИ описана в Приложении 3.
Пример командной строки для загрузки этих драйверов приведен ниже.
Acardv80 B0 B9
Модуль общается с программой по коммуникационному прерыванию B0(hex) для управления коэффициентами усиления и B9(hex) для управления ЖКИ.
-
Модуль контроля за работоспособностью станции
Для обеспечения устойчивой работоспособности станции и исключения “зависания” ПО сбора в ЦСС предусмотрена система контроля (WatchDog - “сторожевая собака”). При прекращении обращения в течении 1,5 - 3-х минут ПО к аппаратуре “сторожевой собаки” происходит принудительная перезагрузка компьютера с последующей инициализацией всех компонент. Драйвер работы с системой контроля Wdog позволяет производить программное управление аппаратурой “сторожевой собаки”. Пример командной строки для загрузки драйвера приведен ниже.
wdog B6
Модуль общается с программой по коммуникационному прерыванию B6(hex).
Для организации взаимодействия процессов внутри станции, синхронизации между ними, организации переключения между задачами разработана многозадачная оболочка Mlttsk. Она реализует вытесняюще-согласующий принцип межзадачного переключения с организацией межпроцессных каналов передачи информации, использование семафоров (при взаимодействии с модулем Semaphor), полей разделяемой памяти. Для исключения возможных проблем, связанных с нереентерабельностью (отсутствие повторно-входимости процедур) ОС MS-DOS, создан драйвер (модуль Sstmsrv), выполняющий по запросу обращения к ядру ОС. При этом исключается вероятность одновременного выполнения запросов к одной и той же процедуре. Пример командной строки для загрузки драйвера приведен ниже (см Рис. 1).
mlttsk
semaphor
sstmsrv
Рис. 1. Запуск многозадачной оболочки
Для общения с программой модули используют коммуникационное прерывание F5(hex) и F6(hex).
-
Модуль обслуживания внутренней системы ведения времени
Для обеспечения точной аппаратной привязки всех отсчетов ЦСС имеет встроенную систему ведения времени, которая сопровождается при наличии внешней системы времени с точностью до 10 мксек, а при ее отсутствии - до единиц мсек. Система инициализуется при старте и синхронизируется к 1-секундному импульсу, который выдается внешней системой времени. При отключении внешней системы система переводится в автономный режим, обеспечивая ЦСС оцифровку данных с заданной точностью. Для обслуживания данной системы используется модуль clockcnt. Пример командной строки для загрузки драйвера приведен ниже.
clockcnt BA
Модуль общается с программой по коммуникационному прерыванию BA(hex).
-
Модуль обслуживания системы ведения времени RTC
Для гарантированного запуска ЦСС в режиме отсутствия внешней системы ведения времени и при незапущенной внутренней системе ведения времени имеется модуль Rclock, позволяющий привязать поток цифровых данных к часам реального времени (RTC), встроенным в станционный компьютер. Пример командной строки для загрузки драйвера приведен ниже.
rclock AF
Модуль общается с программой по коммуникационному прерыванию AF(hex).
-
Модуль обслуживания приемника системы точного времени
Аппаратура является законченным модулем, который подключается к ЦСС через последовательный порт по интерфейсу RS-422C и имеет специальный протокол общения с компьютером. Общение производится по 2-му последовательному порту. При старте система опрашивает модуль о времени последнего включения, при положительном ответе сравнивает данные с установленными в системе и, при не совпадении, производит реинициализацию.. Пример командной строки для загрузки этих драйверов приведен ниже (см. Рис. 2).
bnu /P=2
Рис. 2. Запуск модулей обслуживания системы точного времени
Модуль общается с программой по коммуникационному прерыванию AE(hex).
-
Модуль управления системой автоподстройки частоты
Для синхронизации всех процессов внутри ЦСС и привязки оцифровки данных с максимальной точностью к шкале мирового времени в системе сбора используется дополнительная подстройка частоты по 1-секундному импульсу, выдаваемому внешней системой времени. Модуль работы с системой автоподстройки частоты Syncv3_2 обеспечивает непрерывное слежение за фазой поступающего импульса и синхронизацию внутренних генераторов. Пример командной строки для загрузки этих драйверов приведен ниже (см. Рис. 3).
syncv3_2 B1
setvys 0xB1 %SYSTEM%\syncr.vys
sncfst 0xB1
Рис. 3. Запуск модулей управления системой синхронизации
Программы Setvys и Sncfst проверяют текущую настройку констант системы синхронизации и, при необходимости, корректируют их.
Модуль общается с программой по коммуникационному прерыванию B1(hex).
-
Модуль приема оцифрованных данных
После предварительной обработки аналоговой платой сигналов датчиков производится их оцифровка. Результаты оцифровки в режиме DMA (Direct Memory Access - прямой доступ к памяти) заносятся в память процессора для дальнейшей обработки. Данные снабжаются заголовком, содержащим информацию от всех 3-х систем ведения времени, коэффициентами усиления и другой служебной информацией. Это позволяет точно идентифицировать блоки данных в модулях последующей обработки. Далее модуль подготовки данных DigitV1 отправляет блоки данных в основную программу для анализа на наличие события и другую обработку. Пример командной строки для загрузки драйвера приведен ниже.
digitv1 B2
Модуль общается с программой по коммуникационному прерыванию B2(hex).
-
Модуль управления системой калибровки датчиков
Для проведения проверки работоспособности маятников и полного сейсмического канала используются тестовые калибровочные сигналы, подаваемые в калибровочные катушки маятников. Для этих целей в ЦСС встроен ЦАП (цифро-аналоговый преобразователь), позволяющий под управлением программы сформировать практически любой калибровочный сигнал. Модуль управления калибровкой Calibdrv принимает из программы блоки сформированных сигналов и передает их на калибровочные катушки маятников. Описание формата калибровочных файлов приведено в Приложении 6. Пример командной строки для загрузки драйвера приведен ниже.
calibdrv B4
Модуль общается с программой по коммуникационному прерыванию B4(hex).
-
Модули управления жидкокристаллическим индикатором
Жидкокристаллический индикатор (ЖКИ) входит в состав ЦСС версий 3.1 и старше. Он предназначен для отображения состояния станции во время загрузки ПО и во время штатного режима. Подробно описание его работы приведено в Приложении 3. Работой ЖКИ на этапе загрузки ПО управляют два программных модуля:
ttstring - для отображения строки, набранной в качестве параметра,
ttfile - для отображения содержимого файла.
После загрузки ПО и выхода станции на штатный режим управлением ЖКИ занимается основная программа DASSNT. Взаимодействие происходит по коммуникационному прерыванию B9(hex).
-
Модуль проверки кольцевого дискового буфера
Цифровые данные, собираемые системой сбора, накапливаются в файловом кольцевом буфере. Он представляет собой множество файлов, имеющих одинаковые признаки для одного из потоков – непрерывного (PERMANENT) и триггерного (TRIGGER). Для удобства работы с набором файлов каждого потока в системе организованы дополнительные файлы-списки, содержащие справочную информацию о файлах потока (LFREQ.LAT - для непрерывного потока и HIFREQ.HAT - для триггерного). Для проверки соответствия данных, содержащихся в этих файлах, текущему состоянию файлового кольцевого буфера, используется программа ddatcall. Программа сравнивает содержимое файлов-описателей с содержимым каталога данных и при находжении несоответсвия удаляет записи в файлах описателях, для которых в каталоге данных нет соответствующих файлов данных, и файлы данных, для которых нет соответствующих записей в файлах описателях.
|