Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоргалка / мусу / МПгос-2012-2013.doc
Скачиваний:
35
Добавлен:
26.01.2019
Размер:
292.86 Кб
Скачать

8. Разработка программного обеспечения микропроцессорной системы.

На основе общего алгоритма работы (схемы программы) микропроцессорной системы разрабатываются алгоритмы или схемы программ работы каждого контроллера и ЭВМ верхнего уровня, если она есть в системе, в соответствии с выполняемыми ими функциями.

Определяется использование стандартных функций той или иной операционной системы или операционной системы реального времени (ОС РВ), функций программы монитор контроллера, функций библиотек стандартных подпрограмм.

Использование ОС РВ в контроллере или ЭВМ ВУ позволяет регламентировать наибольшее время реакции контроллера на те или иные внешние события, осуществлять параллельное слежение за несколькими событиями одновременно в строго определенных временных рамках (планировщик реального времени). В настоящее время используются следующие исполнительные ОС РВ: RTX, OS9, LinxOS, QNX и др.

При разработке алгоритмов осуществляется разбивка на подпрограммы, подпрограммы обработки прерываний.

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

  • расчета разностных уравнений (передаточных функций);

  • расчета логических функций и выходных значений конечных логических автоматов;

  • реализации арифметических функций с плавающей точкой (операции умножения, деления);

  • реализации основных математических функций (синус, косинус, радикал и тому подобные);

  • реализации быстрого преобразования Фурье;

  • устранения дребезга контактных датчиков и др.

При этом могут разрабатываться схема программ и схема взаимодействия программ системы, на которой отображаются все основные составные части ПО и их размещение на контроллерах и ЭВМ системы.

Разрабатывается таблица распределения основных переменных и констант в памяти контроллера с указанием имени, размещения в памяти и их назначения.

Если в системе реализуются взаимодействия между контроллерами, ЭВМ, то может разрабатываться протокол взаимодействия, форматы передаваемых сообщений (кадры). При этом могут использоваться модификации стандартных протоколов: HDLC, SDLC, Profibus-DP, CAN, CSMA/CD, TSP/IP.

Определяется язык программирования контроллера, инструментальной среды разработки и отладки программного обеспечения. Следует иметь в виду, что при программировании на языках высокого уровня объем получаемого программного кода может получиться значительно больше, чем при программировании той же функции на языке низкого уровня. И время выполнения полученного кода может оказаться в этом случае существенно больше.

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

К данному обеспечению можно отнести среды ISAGraf (для систем фирм PEP, Motorola), UltraLogic (Octogon Systems), HI+ (Motorola), Vision (Siemens, Intel), Studio-96 (Intel), Genesis (Motorola, Intel), Step7-Micro/Win (Siemens-Simatic) и др.

Ряд сред разработки программного обеспечения (ISAGraf, UltraLogic, Genesis, Matlab) поддерживают языки визуального графического программирования: язык последовательных логических схем, язык функциональных блоковых диаграмм, язык релейных диаграмм и др. В этом случае написание программы заменяется составлением той или иной графической схемы, которая затем автоматически компилируется в язык высокого уровня (Си) или коды микропроцессорного устройства.

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

Программное обеспечение ЭВМ верхнего уровня системы разрабатывается с использованием языков высокого уровня (Си, Паскаль) или языков визуального программирования (Delphi, C++ Builder) в среде ОС типа Windows, OS/2. При этом реализуются функции распределенных СУБД, алгоритмы экспертных систем и другие требуемые функции управления и контроля. При разработке могут использоваться системы разработки и управления распределенными базами данных типа Paradox, Oracle.

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

В МПС используется программирование на языке ассемблера. Это язык программирования в мнемокодах команд и программа-транслятор, переводящая (транслирующая) мнемокоды в машинные коды, считываемые микропроцессором из памяти программ, дешифрируемые и выполняемые. Процесс перевода в машинные коды - ассемблирование. Программа на языке ассемблера содержит два типа выражений: команды, транслируемые в машинные коды; директивы, управляющие ходом трансляции. Выражение имеет вид: {(метка)}: (мнемокод) {(операнд)}{,}{(операнд)} {; комментарий}. Метка является символическим адресом команды. Метками обозначаются команды, к которым надо выполнять переход с помощью команд переходов или вызовов подпрограмм. Мнемокод идентифицирует команду ассемблера. Для мнемокодов используют сокращенные или полные английские слова, передающие значения основной функции команды. Операнды отделяются запятыми. Если заданы два операнда, то первый из них - источник, второй - приемник информации. Команда может содержать различное количество операндов разных типов. Комментарии игнорируются в процессе трансляции и используются для документирования программы. Программа на языке ассемблера называется начальной программой или начальным программным модулем. Ассемблирование выполняет программа-транслятор (TASM.COM). В зависимости от установок, задаваемых пользователем, программа переводит начальный модуль в один из двух программных модулей: командный модуль (файл с расширением СОМ) или объектный модуль (файл с расширением OBJ). Командный модуль содержит машинные коды команд с абсолютными адресами и выполняется МП. Первый оператор командного модуля - директива ORG 100H (начало), которая располагает первую команду программы в сегменте кодов со смещением 100Н. Заканчиваться программа должна командой ret. Последняя строка программы - директива end. Объектный модуль содержит машинные коды команд с относительными адресами, выполняется МП после замены относительных адресов на абсолютные с помощью программы-компоновщика (LINK.EXE, генерирующая модуль с расширением ехе (ЕХЕ - файл или ЕХЕ - программу)). Программа-компоновщик объединяет объектный модуль с библиотечными модулями (объектные файлы, которые содержат наиболее распространенные подпрограммы; размещаются в специальном системном файле).

При ассемблировании программа-транслятор генерирует листинг и файл листинга программы. Листинг - это отображения на дисплее или бумаге текстов начального программного модуля, программного модуля и сообщений, которые указывают на ошибки программирования, связанные с нарушением правил записи выражений. Директивы предназначены для управления процессом ассемблирования и формирования листинга. Язык ассемблера содержит основные директивы: начала и конца сегмента segment и ends; начала и конца процедуры proc и endp; назначения сегментов assume; начала org; распределения и инициирования памяти db, dw, dd; завершения программы end; метки label. Программно-доступные регистры (или программную модель). Пример программы.

Команда определяет операцию, которую выполняет МП над данными и содержит информацию о том, где будет помещен результат операции, а также об адресе следующей команды. Формат команды - состав, назначение и расположение полей кода команды; содержит операционную (код операции) и адресную части (информация об адресах операндов, результате операции и следующей команде). Длина формата команды определяет скорость ее выполнения и зависит от способа адресации операндов. Существуют следующие способы адресации. Прямая – адрес операнда указан непосредственно в команде. Косвенная – указывается регистр, в котором хранится адрес ячейки памяти, содержащей операнд. Непосредственная – операнд содержится во втором и третьем байтах команды. Регистровая (неявная) - команда указывает на регистр или пару регистров, в которых записаны данные. Стековая - адрес определяется указателем стека. Кроме перечисленных, существуют способы адресации: автоинкрементная (автодекрементная), страничная, индексная, относительная.

Различают группы команд МП: 1. Команды передачи данных. 2. Команды ввода/вывода. 3. Команды обработки информации (арифметические, логические, сдвиг, сравнение, десятичная коррекция). 4. Команды управления порядком выполнения программы (переход, вызов подпрограмм, возврат из подпрограмм, прерывания). 5. Команды задания режимов работы МП. В течение времени выполнения команды – командного цикла – ЦП выполняет следующие действия: 1. Выставляет адрес команды на ША. 2. Получает код команды из памяти и дешифрует его. 3. Вычисляет адрес операнда и считывает данные. 4. Выполняет операцию, определенную командой. 5. Воспринимает внешние управляющие сигналы, например, запрос прерываний. 6. Генерирует сигналы состояния и управления, необходимые для работы памяти и УВВ. Процесс выполнения команды в МПC можно разбить на 2 фазы: фаза выборки кода команды, фаза ее исполнения. Фаза выборки кода команды: адрес команды из счетчика команд (СК) выставляется на ША, затем происходит выборка кода команды из ПЗУ и передача его через ШК или ШД в РгК ЦП. После этого производится дешифрация этого кода в ДШК. В соответствии с кодом команды УУ вырабатывает последовательность управляющих сигналов, необходимых для выполнения этой команды. Фаза выполнения команды начинается с подготовки операндов, которая заключается в определении местоположения операндов. Затем ЦП переходит к выполнению операции, заданной кодом команды. В это время в СК формируется адрес следующей команды, и операция повторяется. Примеры команд, пример программы на языке Ассемблер.

Соседние файлы в папке мусу