Проектирование микропроцессорной системы контроля и управления объектом. Общие принципы проектирования микропроцессорных систем, страница 2

Далее производится проверка электрического сопряжения элементов схемы, и при необходимости вводятся усилители, формирователи, преобразователи уровней и т.д. Затем составляются исходные варианты структурных, функциональных и принципиальных схем.

Выполнение второго этапа начинается с распределения адресного поля между ПЗУ, ОЗУ и портами ввода-вывода. Для обращения к памяти используют, как правило, метод страничной адресации, при котором младшие разряды шины адреса декодируются внутренними дешифраторами микросхем памяти, а старшие разряды используются для выбора страниц. Так, если микросхема ПЗУ или ОЗУ имеет информационную емкость  бит, то для адресации ее ячеек используются k линий ША – ,,…,. Для выбора страниц остается 16-k линий ША (в МПС на базе КР580). В простых МПС (типа микроконтроллеров), в которых емкость ПЗУ и ОЗУ составляет обычно несколько Кбайт, часто применяют двухстраничную адресацию. При этом выбор (селекция) ПЗУ и ОЗУ осуществляется с помощью одной из неиспользованных линий ША (например, при  выбирается ПЗУ, а при  выбирается ОЗУ).

Для адресации портов ввода-вывода используются разряды ,,…, ША. Использование одних и тех же адресов и линий ША для памяти и портов возможно, поскольку обращение к этим устройствам осуществляется с помощью разных команд МП, при этом генерируются разные управляющие сигналы, выполняющие селекцию устройств.

Если количество портов ввода или вывода не превышает восьми, то каждому порту ставится в соответствие одна из линий ША, по которой передается сигнал, выбирающий этот порт. Иными словами, каждый порт кодируется унитарным кодом. Такой метод селекции портов часто называют линейным выбором. Декодирование унитарного кода выполняется инверторами. Если портов в МПС более восьми, то они кодируются двоичным позиционным кодом, и для их выбора используются дешифраторы.

На втором этапе выделяются области ПЗУ для хранения основной программы, подпрограмм, констант и т.п. В ОЗУ выделяются области для запоминания поступающих из ВУ данных и промежуточных результатов, а также организации стека. Начало (вершина) стека располагается в последней ячейке ОЗУ.

На третьем этапе составляется программа работы устройства. При этом если решаемая задача простая (программа содержит до ста команд), используется язык Ассемблера выбранного МП, который позволяет непосредственно получить двоичные (“объектные”) коды команд, записываемые далее в ПЗУ. Если же задача достаточно сложная, то используется тот или иной язык высокого уровня (Бейсик, Паскаль, Си). Выбор языка определяется тем, какие имеются у разработчика средства отладки программ и их трансляции в машинные коды выбранного МП. Система команд МП позволяет, как правило, выполнить ту или иную операцию алгоритма множеством способов. Поэтому составленную программу, даже если она правильно решает поставленную задачу, необходимо тщательно проанализировать и по возможности оптимизировать с целью уменьшения емкости используемой памяти и времени выполнения.

При программировании простых МПС (типа микроконтроллеров) обычно используют язык Ассемблера. При отладке программ на ЭВМ, имеющих трансляторы с Ассемблера, программы необходимо дополнить соответствующими псевдокомандами [3].

Широкие возможности использования типовых решений на первом и втором этапах проектирования и ограниченные возможности на третьем этапе приводит к тому, что 70..90 % трудоемкости проектирования специализированной МПС приходится на третий этап.

Эффективным средством разработки программ для специализированных МПС (типа микроконтроллеров) является метод декомпозиции (или “нисходящего” проектирования), при котором вся задача последовательно разделяется на меньшие функциональные модули, каждый из которых можно анализировать, разрабатывать и отлаживать отдельно от других [1]. При выполнении программ в МПС управление передается от одного функционального модуля к другому. Схема связи этих функциональных модулей, каждый из которых реализует некоторую завершенную процедуру, образует общую структурную схему (блок-схему) алгоритма (БСА) программы. Это разделение задачи на модули и субмодули выполняется последовательно до такого уровня, когда разработка БСА модуля становится простым (даже тривиальным) делом. Язык графических образов БСА можно использовать на любом уровне детализации описания модулей вплоть до того, что каждому блоку БСА будет соответствовать единственная команда МП.