Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Синтаксис языка универсального моделирования — условные графические обозначения различных типов операторов, которые позволяют составить блок схему алгоритма. Блок схема алгоритма — графическое изображение логической структуры алгоритма. Каждое действие алгоритма представляется в виде геометрической фигуры — условного графического обозначения оператора UML.
Основные типы операторов представлены на рис. 2.6. Программа начинается с оператора начального запуска и заканчивается оператором останова. Множество различных действий совершается под управлением программы в процессе ее выполнения. Каждое действие отображается оператором процесса, который производит изменение значения, формы представления или расположения данных. Оператор процесса может иметь любое количество входов, но только один выход. Переход от одного оператора к другому обозначается стрелкой. Если в процессе выполнения очередного действия производится анализ некоторого внешнего сигнала или внутреннего состояния программы с последующим выбором, по какому пути продолжить исполнения программы, то такое действие отображается условным оператором (другое название — оператор решения). Условный оператор имеет один вход и несколько выходов. После выполнения действий условного оператора программа может «избрать» только один путь. Поэтому условия, по которым определяется направление выхода из оператора решения, должны быть взаимоисключающими. Оператор слияния (поглощения), в соответствие со своим названием, позволяет соединить несколько отдельных ветвей алгоритма в одну. В завершение мы включили два оператора, которые характерны для структурного программирования. Это операторы ветвления и объединения, которые предназначены для отображения работы систем с параллельными вычислителями [2,3]. В качестве первого примера использования условных графических обозначений UML мы представили средствами универсального языка моделирования процесс структурного проектирования, блок схема алгоритма которого приведена на рис. 2.7. На рис. 2.8 тот же процесс представлен с большей степенью подробности, что немедленно привело к усложнению блок схемы алгоритма.
Рис. 2.6. Условные графические обозначения операторов универсального языка моделирования UML
Рис. 2.7. Блок схема алгоритма структурного проектирования
Рис. 2.8. Блок схема алгоритма разработки и тестирования программного обеспечения встраиваемой системы
2.8. Пример применения
Основная идея, которую мы стремились развить на протяжении всей этой главы, состоит в том, что подлежащая реализации большая задача должна быть разбита на ряд малых взаимосвязанных задач. Идея декомпозиции задач лежит в основе метода структурного проектирования, который в равной степени применим к проектированию, как аппаратных, так и программных средств, что делает его особенно полезным при разработке встраиваемых систем. Более того, этот метод может быть использован на этапе постановки задачи, который предшествует структурному проектированию аппаратных и программных средств системы.
В качестве темы дипломного проектирования одному из авторов этой книги было предложено разработать систему управления медицинским лазером для лечения различных расстройств зрения. Около шести месяцев он провел в библиотеке, изучая технологии лазерной глазной хирургии. В итоге, его представления о функциях контроллера управления хирургическим лазером изменились коренным образом в сторону их увеличения. Результаты своего исследования автор воплотил в структурной схеме рис. 2.9, которая отражает все возможные функции системы автоматизированного управления хирургическим лазером и их взаимосвязь в проекте. Обратите внимание, что в данном случае метод структурного проектирования использован для систематизации функций системы управления, когда задачи проектирования аппаратного и программного обеспечения системы еще не поставлены.
Рис. 2.9. Структура функций медицинского лазера
2.9. Заключение по главе 2
В этой главе мы провели сравнительный анализ преимуществ и недостатков языка ассемблер и языков программирования высокого уровня для разработки программного обеспечения встраиваемых систем. Среди языков высокого уровня мы сделали выбор в пользу языка Си, способного генерировать программный код, сравнимый по быстродействию и затратам памяти с кодом языка ассемблер. Мы установили, что оптимальный результат может быть получен при программировании встраиваемых систем одновременно на Си и на ассемблере. Мы кратко познакомились с методом структурного проектирования и универсальным языком моделирования UML. Мы также познакомились с применениями метода структурного проектирования для определения функций управления медицинским лазером и для разработки структуры программного обеспечения контроллера стереоусилителя. Мы кратко рассмотрели условные графические обозначения операторов UML и познакомились с примерами описания алгоритмов посредством составления блок схемы алгоритма из операторов UML.
2.10 Что еще почитать?
1. Dale, Nell, and Susan С. Lilly. Pascal Plus Data Structures. 4th ed. Englewood Cliffs, NJ: Jones and Bartlett, 1995.
2. Douglass, Bruce Powel. Real Time UML Developing Efficient Objects for Embedded Systems. 2nd ed. Boston: Addison Wesley, 2000.
3. Fowler, Martin, with Kendall Scott. «UML Distilled A Brief Guide to the Standard Object Modeling Language. 2nd ed. Boston: Addison Wesley, 2000.
4. Kobryn, Chris. «UML 2001.» Communications of the ACM 42, no. 10, (October 1999): 29–37.
5. МсСоnnасk, J. В., R. K. Morrow, H. F. Bare, R. J. Bums, and R. L. Rasmussen «The Complementary Roles of Laboratory Notebooks and Laboratory Reports.» Paper presented at the annual meeting of the American Society for Engineering Educators Toronto, Canada, 1990.
6. Pack, Daniel, and Steven Barrett. 68HC12: Theory and Applications. Upper Saddle River, NJ: Prentice Hall, 2002.
7. Page Jones, Meilir. The Practical Guide to Structured Systems Design. 2nd ed. Upper Saddle River, NJ: Yourdon Press, 1988.
8. Ritchie, Dennis M. «The Development of the С Language.» Paper presented at а meeting of the Association for Computing Machinery, Second History of Programming Languages Conference, Cambridge, МА, 1993.
9. Wakerly, John F. Digital Design Principles and Practices. 3rd ed. Upper Saddle River, NJ: Prentice Hall, 2000.
2.11 Вопросы и задания
1. Проведите сравнение достоинств и недостатков применения языка Си и языка ассемблер для программирования встраиваемых микропроцессорных систем.
2. Опишите следующие свойства метода структурного проектирования: переносимость, устойчивость, читабельность.
3. Какие другие компиляторы с языков высокого уровня, кроме компиляторов Си, Вы знаете? Укажите их источники в Internet.
4. Каковы основные причины быстрого распространения языка Си для программирования встраиваемых систем?
5. Что такое «черный ящик»?
6. Каково различие между структурой и блок схемой алгоритма?
Более сложные1. Преобразуйте блок схему алгоритма рис. 2.3 в диаграмму действия UML.
2. Что называют псевдокодированием?
3. Объясните различия между методами проектирования сверху вниз и снизу вверх?
4. Каковы различия между внешней и внутренней документацией?
5. Поясните необходимость ведения рабочей тетради.
Исследовательские1. Программно аппаратный дуализм встраиваемой микропроцессорной системы?
2. Представьте себе, что Вас попросили разработать портативную метеостанцию, которая может быть установлена в некотором удалении от центрального поста и будет сообщать этому посту состояние окружающей среды на месте размещения. Метеостанция оснащена следующими приборами:
• Анемометром — прибором для измерения скорости ветра. Анемометр представляет собой колесо с лопастями, которое вращается со скоростью, пропорциональной скорости ветра. Будем считать, что электронная схема анемометра выдает один импульс амплитудой 5 В на один оборот колеса.
• Барометром — прибором для измерения атмосферного давления. На аналоговом выходе электронного преобразователя сигнала барометра формируется напряжение в диапазоне 0…5,0 В. Давлению в 640 мм рт. ст. соответствует напряжение 0 В, давлению 810 мм рт. ст. — напряжение 5,0 В. Преобразователь обладает линейной передаточной характеристикой.
• Гигрометром — прибором для измерения влажности воздуха. Гигрометр также оснащен электронным преобразователем сигнала с линейной передаточной характеристикой. Относительной влажности 0% соответствует напряжение 0 В, влажности 100% — напряжение 5,0 В.
• Термометром — прибором для измерения температуры воздуха. Температуре 50°C соответствует напряжение 0 В, температуре +120°C — напряжение 5,0 В. Передаточная характеристика преобразователя сигнала — линейная.
• Флюгером — прибором для определения направления ветра. Напряжение на выходе электронного преобразователя прямо пропорционально углу поворота флюгера. Напряжение 0 В формируется при положении стрелки «север», далее напряжение линейно возрастает, при положении стрелки «юг» напряжение равно 2,5 В, и на повороте в 180 град. эл. продолжает линейно возрастать до 5,0 В.