SigSim. Интегрированная среда отладки алгоритмов для микроконтроллеров

Последнее обновление: 8 сентября 2000

Идея создания программы подобного типа назревала у меня давно. Особенно остро я почувствовал потребность в ней, когда разрабатывал систему LinkEmw, где мне пришлось писать алгоритм фазовой автоподстройки частоты для микроконтроллера. Сложность состояла в том, что требовалось не только учесть особенности микроконтроллера и его аппаратные ограничения, но также прогнозировать характеристики переходного процесса регулирования и влияние различных помех. Структура программы вырисовывась так - хотелось бы иметь программируемый генератор сигналов любой формы, собственно блок описания алгоритма и осциллограф, на котором можно посмотреть результаты работы алгоритма применительно к заданному входному сигналу. В принципе, эту задачу можно было бы решать, использую такие универсальные программы как Mathcad, но там мне бы пришлось обходить трудности, связанные визуализацией результатов длительных переходных процессов, поэтому я решил создать специализированную программу, тем более, что реализация представлялась мне весьма несложной. Такова история создания SigSim.

Программа SigSim предназначена для моделирования сигналов и алгоритмов их обработки (фильтрации). Основное ее назначение - создание и отладка алгоритмов обработки сигналов для микроконтроллеров с учетом разрядности и скорости аналогоцифровых преобразователей, разрядности и возможностей микроконтроллеров. Программа включает две подсистемы.

Интегрированная среда

Используется для написания и компиляции алгоритмов на языке Object Pascal (язык, используемый в Delphi)

Редактор

Многолучевой многоэкранный осциллограф

Используется для наблюдения результатов моделирования

Осциллограф

Последовательность работы

Для моделирования в программе SigSim нужно выполнить следующие действия:

  1. определение объектов сигналов и их алгоритмов,
  2. задание интервала времени моделирования и кванта времени и старт моделирования. Квант времени (или иными словами - шаг моделирования), это разница между двумя соседними последовательными дискретными моментами времени. При моделировании SigSim создает массив значений всех сигналов для всех моментов времени в пределах указанного интервала путем циклического вызова порождающих функций,
  3. наблюдение и анализ результатов моделирования. SigSim отображает все сигналы на экране многолучевого осциллографа.

Структура системы выглядит так:

Структура программы

где: Si - входное воздействие, зависящее от времени. Кроме этого, воздействие Si может зависеть от других воздействий. Fi - функционал, вырабатываемый блоком обработки. Функционал может зависеть от одного, нескольких или всех входных воздействий и от времени. Кроме того, функционал Fi может зависеть от других функционалов.

Программа SigSim позволяет определить алгоритмы формирования всех сигналов: как входных воздействий, так и функционалов. Алгоритмы записывается на языке Object Pascal. Каждый сигнал определяется как объект, непоследственно наследуемый от TObject. Минимальный объект должен содержать переменную Value и процедуру Make, которая принимает один аргумент - текущее значение времени и устанавливает значение Value, равное значению сигнала для текущего момента времени. Кроме обязательных Value и Make, объект может содержать собственные локальные данные и методы.

На основе классов-алгоритмов SigSim синтезирует текстовый файл - законченный программный модуль и вызывает компилятор языка Object Pascal. Готовая DLL динамически загружается программой SigSim, после чего запускается главная функция DLL, создающая все объекты-сигналы и организующая процесс вызова функций Make. Результатом работы DLL является заполненный массив значений всех сигналов, который визуализируется в многолучевом осциллографе. Подробности о использовании компилятора можно посмотреть в работе LinkИспользование компилятора Delphi (dcc32.exe) в прикладных программах.

Download

Downloadsigsim.zip - Программа SigSim (447K).

Архив содержит полнофункциональную свободно распространяемую программу SigSim версии 1.13.

Для установки программы нужно:

  1. распаковать архив sigsim.zip в какой-нибудь каталог,
  2. так как компилятор dcc32 в архив не входит, то нужно взять его из поставки Delphi 4 или 5. Скопируйте файлы dcc32.exe, system.dcu и sysinit.dcu в подкаталог Bin