Методика разработки прикладных программ
При разработке ППП для микроконтроллеров используется метод декомпозиции, при котором вся задача последовательно разделяется на меньшие функциональные модули, каждый из которых можно анализировать, разрабатывать и отлаживать отдельно от других. При выполнении прикладной программы в микроконтроллере управление передается от одного функционального модуля к другому. Схема связности этих функциональных модулей, каждый из которых реализует некоторую завершенную процедуру, образует общую блок-схему алгоритма (БСА) прикладной программы. Это разделение задачи на модули и субмодули выполняется последовательно до такого уровня, когда разработка БСА модуля становится простым (даже тривиальным) делом. Метод последовательной декомпозиции обладает достаточной гибкостью, что позволяет привести в соответствие степень детализации БСА модуля со сложностью реализуемой процедуры. Язык графических образов БСА можно использовать на любом уровне детализации описания модулей вплоть до того, что каждому оператору БСА будет соответствовать единственная команда МП.
Разработка БСА функционального модуля прикладной программы имеет ярко выраженный итеративный характер, то есть требует многократных проб, прежде чем возникнет уверенность, что алгоритм реализации процедуры правильный и завершенный. Вне зависимости от функционального назначения процедуры при разработке ее БСА необходимо придерживаться следующей очередности работы.
1. Определить, что должен делать модуль. (Это уже было сделано при разработке системной БСА, но теперь разработчик имеет дело с фрагментом прикладной программы, а не с целой программой и, следовательно, может потребоваться доопределение и уточнение целевого назначения процедуры).
2. Определить способы получения модулем исходных данных (от датчиков через порты ввода или из таблиц в памяти, или через рабочие регистры). Для реализации ввода исходных данных в БСА модуля необходимо включить соответствующие операторы.
3. Определить необходимость какой-либо предварительной обработки введенных исходных данных (маскирование, сдвиг, масштабирование, перекодировка). Если до использования «сырых» данных требуется их предобработка, то в БСА модуля включаются соответствующие операторы.
4. Определить способ преобразования входных данных в требуемые выходные. Используя операторы процедур и условные операторы принятия решений, отобразить на языке БСА выбранный способ содержательной обработки исходных данных.
5. Определить способы выдачи из модуля обработанных данных (передать в память или в вызываемую подпрограмму, или в порты вывода). Необходимые действия отобразить в БСА.
6. Определить необходимость какой-либо постобработки выводимых данных (изменение формата, перекодировка, масштабирование, маскирование). Ввести в БСА операторы подготовки данных для вывода из модуля.
7. Вернуться к п. 1 настоящего перечня работ и проанализировать полученные результаты. Выполнить итеративную корректировку БСА с целью сделать ее простой, логичной, стройной и обладающей четким графическим образом.
8. Проверить работоспособность алгоритма на бумаге путем подстановки в него действительных данных. Убедиться в его сходимости и результативности.
9. Рассмотреть предельные случаи и попытаться определить для информационных объектов, с которыми оперирует алгоритм, граничные значения, за пределами которых он теряет свойства конечности, сходимости или результативности. (Особое внимание при этом следует уделить анализу возможных ситуаций переполнения разрядной сетки МП, изменению знака результата операции, деления на переменную, которая может принять нулевое значение.)
10. Провести мысленный эксперимент по определению работоспособности алгоритма в реальном масштабе времени. Стохастические события, происходящие в объекте управления, могут оказать влияние на работу алгоритма. Самому тщательному анализу следует подвергнуть реакцию алгоритма на возможные прерывания с целью определения критических операторов, которые необходимо защитить от прерываний. Кроме того, в ходе этого мысленного эксперимента следует проанализировать логику алгоритма с целью определения таких последовательностей операторов, при выполнении которых микроконтроллер может «не заметить» кратковременных событий в объекте управления. При обнаружении таких ситуаций в БСА следует ввести коррективы.
Такое последовательное использование описанной поэтапной процедуры проектирования алгоритмов для микроконтроллеров, составляющей основу метода систематического проектирования, обеспечивает получение работоспособных прикладных программ. Дисциплинированное следование этой поэтапной процедуре проектирования ПО (даже для простейших задач) обеспечивает успех проекта.
Преобразование разработанного алгоритма в исходный текст программы – дело относительно несложное. Но прежде чем приступить к написанию программы, необходимо специфицировать память и выбрать язык программирования.
Спецификация памяти (и рабочих регистров) заключается в определении адреса первой команды прикладной программы, действительных начальных адресов стека, таблиц данных, буферных зон передачи параметров между процедурами, подпрограмм и т.д. При этом следует помнить, что в микроконтроллерах память программ и память данных чаще всего физически и логически разделены: программы и константы хранятся в блоке ПЗУ, а переменные – в блоке ОЗУ. Также необходимо учитывать высокие требования по быстродействию, предъявляемые к микроконтроллерам. Это обусловлено тем, что в реальных условиях большинство прикладных задач управления объектами должны решаться в реальном времени. А это, в свою очередь, предъявляет определенные требования на используемые языки программирования. Наиболее предпочтительным с точки зрения быстродействия является язык Ассемблера.
Таким образом, т.к. большинство прикладных задач управления объектами должны решаться в реальном времени, то к МП-технике предъявляются высокие требования по быстродействию. Поэтому основным языковым средством написания прикладных программ еще долгое время будет оставаться язык ассемблера МП.
Заключение:
1. Интерфейс - совокупность унифицированных аппаратурных, программных и конструктивных средств, необходимых для реализации взаимодействия различных функциональных элементов в автоматических системах сбора и обработки информации.
2. Проектирование МПС (в том числе и микроконтроллеров) подразумевает разработку как аппаратный, так и программных средств. Устройства сравнения (компараторы) сравнивают уровни напряжений, и выходной сигнал при этом изменяется скачком.
Замечания и предложения по содержанию лекции