Однако для реализации на практике возможности выбора оптимального МК необходима достаточно глубокая проработка алгоритма управления, оценка объема исполняемой программы и числа линий сопряжения с объектом на этапе выбора МК. Допущенные на данном этапе просчеты могут впоследствии привести к необходимости смены модели МК и повторной разводки печатной платы макета контроллера. В таких условиях целесообразно выполнять предварительное моделирование основных элементов прикладной программы с использованием программно-логической модели выбранного МК.
На этапе разработки структуры контроллера окончательно определяется состав имеющихся и подлежащих разработке аппаратных модулей, протоколы обмена между модулями, типы разъемов. Выполняется предварительная проработка конструкции контроллера. В части программного обеспечения определяются состав и связи программных модулей, язык программирования. На этом же этапе осуществляется выбор средств проектирования и отладки.
1.2 Разработка и отладка аппаратных средств
После разработки структуры аппаратных и программных средств дальнейшая работа над контроллером может быть распараллелена. Разработка аппаратных средств включает в себя разработку общей принципиальной схемы, разводку топологии плат, монтаж макета и его автономную отладку. На этапе ввода принципиальной схемы и разработки топологии используются, как правило, распространенные системы проектирования типа "ACCEL EDA" или "OrCad".
1.3 Разработка и отладка программного обеспечения
Содержание этапов разработки программного обеспечения, его трансляции и отладки на моделях существенно зависит от используемых системных средств. В настоящее время ресурсы 8-разрядных МК достаточны для поддержки программирования на языках высокого уровня. Это позволяет использовать все преимущества структурного программирования, разрабатывать программное обеспечение с использованием раздельно транслируемых модулей. Одновременно продолжают широко использоваться языки низкого уровня типа ассемблера, особенно при необходимости обеспечения контролируемых интервалов времени. Задачи предварительной обработки данных часто требуют использования вычислений с плавающей точкой, трансцендентных функций.
В настоящее время самым мощным средством разработки программного обеспечения для МК являются интегрированные среды разработки, имеющие в своем составе менеджер проектов, текстовый редактор и симулятор, а также допускающие подключение компиляторов языков высокого уровня типа Паскаль или Си. При этом необходимо иметь в виду, что архитектура многих 8-разрядных МК вследствие малого количества ресурсов, страничного распределения памяти, неудобной индексной адресации и некоторых других архитектурных ограничений не обеспечивает компилятору возможности генерировать эффективный код.
Для проверки и отладки программного обеспечения используются так называемые программные симуляторы, предоставляющие пользователю возможность выполнять разработанную программу на программно-логической модели МК. Программные симуляторы распространяются, как правило, бесплатно и сконфигурированы сразу на несколько МК одного семейства. Выбор конкретного типа МК среди моделей семейства обеспечивает соответствующая опция меню конфигурации симулятора. При этом моделируется работа ЦП, всех портов ввода/вывода, прерываний и другой периферии. Карта памяти моделируемого МК загружается в симулятор автоматически, отладка ведется в символьных обозначениях регистров.
Загрузив программу в симулятор, пользователь имеет возможность запускать ее в пошаговом или непрерывном режимах, задавать условные или безусловные точки останова, контролировать и свободно модифицировать содержимое ячеек памяти и регистров симулируемого МК.
1.4 Методы и средства совместной отладки аппаратных и программных средств
Этап совместной отладки аппаратных и программных средств в реальном масштабе времени является самым трудоемким и требует использования инструментальных средств отладки. К числу основных инструментальных средств отладки относятся:
- внутрисхемные эмуляторы;
- платы развития (оценочные платы);
- мониторы отладки;
- эмуляторы ПЗУ.
Внутрисхемный эмулятор – программно-аппаратное средство, способное заменить эмулируемый МК в реальной схеме.
Внутрисхемный эмулятор – это наиболее мощное и универсальное отладочное средство, которое делает процесс функционирования отлаживаемого контроллера прозрачным, т.е. легко контролируемым, произвольно управляемым и модифицируемым.
Платы развития, или, как принято их называть в зарубежной литературе, оценочные платы (Evaluation Boards), являются своего рода конструкторами для макетирования электронных устройств. Обычно это печатная плата с установленным на ней МК и всей необходимой ему стандартной периферией. На этой плате также устанавливают схемы связи с внешним компьютером. Как правило, там же имеется свободное поле для монтажа прикладных схем пользователя. Иногда предусмотрена уже готовая разводка для установки дополнительных устройств, рекомендуемых фирмой. Например, ПЗУ, ОЗУ, ЖКИ- дисплей, клавиатура, АЦП и др.
Эмулятор ПЗУ – программно-аппаратное средство, позволяющее замещать ПЗУ на отлаживаемой плате, и подставляющее вместо него ОЗУ, в которое может быть загружена программа с компьютера через один из стандартных каналов связи. Это устройство позволяет пользователю избежать многократных циклов перепрограммирования ПЗУ. Эмулируемая память доступна для просмотра и модификации, но контроль над внутренними управляющими регистрами МК был до недавнего времени невозможен.
В последнее время появились модели интеллектуальных эмуляторов ПЗУ, которые позволяют "заглядывать" внутрь МК на плате пользователя.
Этап совместной отладки аппаратных и программных средств в реальном масштабе времени завершается, когда аппаратура и программное обеспечение совместно обеспечивают выполнение всех шагов алгоритма работы системы. В конце этапа отлаженная программа заносится с помощью программатора в энергонезависимую память МК, и проверяется работа контроллера без эмулятора.
1.5 Солнечные часы
Солнечные часы – старинный прибор для измерения времени по Солнцу. Вероятно, это древнейший научный инструмент, дошедший до нас без изменений и представляющий первое применение человеком его знаний о движении небесных тел.
Хотя известны самые разнообразные солнечные часы, все их можно разделить на несколько основных типов. Наиболее распространены часы горизонтального типа; их можно увидеть во многих парках и садах. Часы с вертикальным циферблатом обычно встречаются на стенах, ориентированных по сторонам света. Повернутый циферблат делают у вертикальных часов, размещенных на стенах, которые не ориентированы по сторонам света. А отклоненный и склоненный циферблаты наклонены соответственно от наблюдателя и к нему. Обычно они встречаются на многосторонних часах, объединяющих в себе три или более циферблатов и часто имеющих форму куба; их размещают на крышах и гребнях стен, ориентированных по сторонам света. Повернуто-отклоненный и повернуто-склоненный циферблаты размещают на неориентированных по сторонам света зданиях. У экваториальных и полярных часов плоскости циферблатов параллельны соответственно плоскости экватора и полярной оси. Армиллярные часы имеют экваториальный циферблат; их часто используют для декоративных целей. Они содержат от двух до десяти колец, представляющих большие круги земной и небесной сфер. Часовые деления нанесены внутри экваториального круга, а отбрасывающим тень гномоном служит стержень, представляющий полярную ось.
Рисунок 1.2 – Простейшие солнечные часы
Египетские солнечные часы.
Древнейшие из известных ныне солнечных часов были изготовлены около 1500 до н.э. Они сделаны из камня в форме бруска длиной около 30 см с вертикальным Т-образным навершием на одном конце. Время отсчитывалось по засечкам, нанесенным на бруске через неравные интервалы. Часы выставлялись горизонтально по отвесу. Т-образный конец утром поворачивали к востоку, а после обеда – к западу. Тень от верхней кромки «Т» указывала время. Эти и другие древние солнечные приборы показывали «неравные часы», образующиеся в результате деления времени от восхода до заката Солнца на фиксированное число частей. Поскольку длительность светового дня в течение года меняется, менялась и длина часа: летом он был длиннее, а зимой – короче.
Типичны садовые часы (Рис.1.3). Они показывают истинное солнечное время, которое отличается от поясного времени по-разному в различные сезоны года. «Гномон» – общее название для отбрасывающего тень индикатора, а «указатель» – это тот край гномона, по которому ведется отсчет. Для точного измерения времени угол между указателем и горизонтальным циферблатом должен быть равен географической широте места.
Сделать такие часы было несложно. Многие из них имели часовые линии для определенных дней года, разделенных примерно месяцем, а также для дат равноденствий и солнцестояний. Часовые отметки на каждый день получали, соединяя точки, на которые ложилась в данный час тень, отброшенная гномоном в дни равноденствий и солнцестояний.
Примерно в начале христианской эры был открыт принцип наклонного гномона, позволившего ввести «равные часы», обеспечившие более точное хранение времени. Было обнаружено, что если стержень гномона направить на полюс мира, то он как бы станет осью той параллельной экватору окружности, по которой обращается Солнце. Разделив ее на 24 равные части, получили часы одинаковой длительности. После этого изготовление точных и равномерно идущих солнечных часов стало простым геометрическим и тригонометрическим занятием.