Рис. 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 В.
Проектируемая система должна уметь делать следующее:
• Станция должна периодически, один раз в 15 мин. передавать по радиоканалу информацию об измеренных значениях величин с выхода датчиков. Если скорость ветра превышает установленное значение, защитная панель станции должна автоматически закрывать окно солнечной батареи (рис. 2.10).
Рис. 2.10. Портативная метеостанция
• Измеритель уровня осадков должен периодически очищаться.
• Кроме передачи информации об измеренных значениях с выхода датчиков, аналогичная информация должна отображаться на местном жидкокристаллическом индикаторе.
Разработайте структуру функций для управления такой станцией. Разработка передатчика не является Вашей задачей, Вы должны лишь подготовить собранные данные для передачи по радиоканалу.
3. Выберите один из домашних приборов, которые управляются встроенным контроллером. Разработайте структуру функций управления для одного из этих приложений. Выберите прибор из списка: микроволновая печь, холодильник, музыкальный центр.
4. Разработайте диаграмму действий UML для выбранного домашнего прибора.