ЖУРНАЛ «СТА» №3/2006
используя делители соответствующего класса для приведения аналоговых сиг- налов к стандартному диапазону и дис- кретных сигналов к уровню TTL. Пла- ты снабжены встроенной защитой от перегрузки аналоговых входных кана- лов (максимально допустимое напря- жение составляет 35 В). В состав уст- ройства включены две такие платы, что полностью покрывает потребности в аналоговых каналах. Недостающие ка- налы дискретного ввода и необходи- мые каналы дискретного вывода (ин- дикационные светодиоды) реализуют- ся через порт LPT центрального про- цессора. Блоксхема устройства приведена на рис. 3. Внутренняя конструкция устройства представляет собой «этажерку» из че- тырёх покупных плат формата РС/104, располагающихся на плате приёма и нормализации сигналов собственной разработки. Эта плата имеет размеры 172 × 96 мм и является базовой платой устройства. На ней установлены DC/DCпреобразователь напряжения TEN 102411 (Traco Electronics AG) и резисторные делители напряжения для нормализации входных сигналов. Со- ответственно плата выполняет следую- щие функции: ● преобразование бортового питания (+27 В) в напряжение +5 В для пита- ния плат формата РС/104; ● приём сигналов с входных разъёмов; ● приведение диапазона изменения аналоговых сигналов к стандартному (от –10 до +10 В), воспринимаемому платами DMMNAXT; ● приведение входных дискретных сиг- налов к стандартному TTLуровню для их ввода в платы DMMNAXT и порт LPT центрального процессора. На этой же плате размещены сиг- нальные светодиоды, индицирующие наличие напряжений +27 В и +5 В. Устройство скомпоновано в корпусе собственной разработки, имеющем съёмную крышку и специальное окно в ней для доступа к флэшдиску. На пе- редней стороне корпуса установлены два герметичных входных разъёма: ● ОНЦ50 для сигналов аналогового ввода; ● ОНЦ32 для сигналов дискретного ввода и выходного сигнала готовно- сти, а также для подключения борто- вого питания и интерфейса RS232. Внешний вид устройства со снятой крышкой показан на рис. 4. На рисун- ке хорошо видны адаптер переносимо- го носителя CompactFlashTM, входные разъёмы и предохранитель на передней панели устройства. П РОГРАММНОЕ ОБЕСПЕЧЕНИЕ БОРТОВОЙ ЧАСТИ При разработке программного обес- печения бортовой части (самого ре- гистратора) была принята идеология использования только стандартных возможностей, предоставляемых аппа- ратурой и операционными системами. Иначе говоря, возможности програм- мирования на уровне BIOS не исполь- зовались. Построение программного обеспече- ния выполнялось с учётом особенно- стей записи данных на диск CompactFlash™. Носитель использо- вался как стандартный жёсткий диск, данные сохранялись в виде файла. Экс- перименты показали, что непосредст- венно съём данных одного такта, их преобразование и запись на носитель занимает около 4 мс и вполне уклады- вается в заданный тактовый промежу- ток (1/16 с = 62,5 мс). Однако одним из требований к уст- ройству было сохранение информации при неожиданном (аварийном) отклю- чении питания. Это привело к необхо- димости регулярно (каждую секунду) выполнять закрытие файла. Операция закрытия файла занимает существенно большее время, чем просто запись дан- ных, и зачастую общее время обработ- ки и записи данных превышает такто- вый промежуток. Для решения данной проблемы на регистраторе применялась операцион- ная система MSDOS с использовани- ем многозадачного ядра реального вре- мени RTKernel 4.5 компании On Time. RTKernel представляет собой мощ- ную мультизадачную систему реально- го времени, предназначенную для раз- работки программного обеспечения управления технологическими и вы- числительными процессами, испол- няющегося в среде MSDOS персо- нальных ЭВМ или IBM PC совмести- мых контроллеров с открытой архитек- турой. RTKernel является набором библио- тек, которые могут быть скомпилиро- ваны с прикладной программой. В со- став RTKernel входят многочисленные функции и процедуры управления за- дачами, семафорами и прерываниями, а также средства обмена данными меж- ду задачами. Важной особенностью па- кета является возможность изменения значения временного интервала гене- рации программного прерывания по таймеру от 0,1 до 55 мс. Запуск на ис- полнение задач RTKernel производит- ся из единственной программы, кото- рая содержит ядро, необходимые драй- веры и все задачи. Данная программа может выполняться в любой вычисли- тельной системе, содержащей опера- ционную систему MSDOS. Хотя про- грамма, в которой используется RTKernel, и обладает свойствами, ха- рактерными для мультизадачных сис- тем реального времени, она попреж- нему остаётся приложением MSDOS. Программное обеспечение бортово- го регистратора реализовано в рамках пакета Turbo Pascal 6.0, дополненного процедурами RTKernel 4.5. Основная программа (объём исполняемого фай- ла около 55 килобайт) объединяет в се- бе три независимые задачи: ● задачу приёма данных из порта RS232 («Приём из порта»); ● задачу съёма и обработки данных («Подготовка данных»); ● задачу записи данных на переноси- мый носитель («Запись данных»). Задача приёма данных из порта RS232 имеет наивысший приоритет. Она постоянно находится в состоянии ожидания поступления данных от внешнего источника и в случае их по- явления прерывает любую другую зада- чу, принимает и запоминает данные из порта. Данные принимаются побайт- но, поэтому другие задачи практически не испытывают задержек. Задача съёма и обработки данных имеет высокий приоритет. Она запус- кается строго по таймеру через 62,5 мс (16 раз в секунду) и выполняет чтение данных с аналоговых и дискретных входов, их обработку и упаковку в за- данную структуру (размер структуры – 80 байт). Снятые данные записывают- ся в хвост очереди сообщений. 40 СТА 3/2006 РАЗ РА БО Т КИ / А В ИАЦИ Я www.cta.ru Рис. 4. Внешний вид конструкции устройства со снятой крышкой
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy