Informatics Point

Информатика и проектирование

Разработка управляющей программы для микроконтроллера HCS12

Около 55% проданных в мире процессоров приходится на 8ми битные микроконтроллеры. Более 4 млрд. 8ми битных микроконтроллеров продано в 2006. Они установлены в микроволновках, стиральных машинах, музыкальных центра. При этом они являются однокристальными компьютерами, со своим процессором, памятью, портами ввода-вывода.

Микроконтроллер - это однокристальная ЭВМ. В 1971 придумали разместить всю обвязку процессора (ОЗУ, контроллеры портов, ПЗУ и т.д.) на одном чипе. В 1980 intel уже выпускает первый микроконтроллер. На сегодняшний момент на чипе микроконтроллера содержится процессор, flash память для программ, объемом 1К - 256K; 32 B - 8KB SRAM (ОЗУ); 64 B - 4KB EEPROM. Тактовая частота 1 - 16 Мгц. Конечно же, цифры только примерные, всё зависит от производителя и модели. Таким образом, микроконтроллер имеет гарвардскую архитектуру, т.е. раздельные памяти данных и программ.

Несмотря на то, что микроконтроллер устройство довольно сложное, их использование значительно упрощает разработку электронных устройств. Аппаратные схемотехнические решения переносятся в плоскость программного кода. Реле в шкафу автоматики заменяется строкой на Си. Этим и достигается огромная гибкость, ведь большинство микроконтроллеров можно перепрошивать не вынимая из платы. Часы-будильник с функцией включения нагрузки (например чайника) в заданное время может быть аппаратно абсолютно таким же, как например блок управления микроволновкой, только программы будут различаться. Именно из-за этого, когда производитель не может себе позволить разработать специализированную микросхему он задает всю логику работы виде программы и зашивает ее в микроконтроллер.

Исторически основной язык - ассемблер. В частности КР1878ВЕ1 программируется только на ассемблере. Для других микроконтроллеров существую компиляторы для языка Си. Для atmelовских микроконтроллеров существует опенсорсный компилятор WinAVR (порт gcc). Также есть компилятор для бейсика Bascom AVR, и даже для языка Forth. Изначально архитектура микроконтроллеров AVR была оптимизирована для того, что бы программы, написанные на Си, выполнялись быстрее.

У микроконтроллера развитая система прерываний. Что бы не нагружать процессор постоянной проверкой состояния (завершилось ли преобразование АЦП, достиг ли счётчик таймера требуемого значения, поступил ли сигнал на порт) включаются прерывания на соответствующие события и пишутся обработчики прерывания. Программа микроконтроллера представляет собой бесконечный цикл.

Таким образом видно, что ничего сложного в микроконтроллерах нет, и практически каждый при желании может делать необходимые для себя гаджеты.

Семейство однокристальных микроконтроллеров HCS12

Компания Freescale Semiconductor (бывший сектор полупроводниковых компонентов компании Motorola) на протяжении многих лет является лидером в производстве полупроводниковых компонентов для встраиваемых приложений. Микроконтроллеры и интегрированные процессоры одна из основных групп её продукции. Freescale Semiconductor обладает одним из наиболее полных портфелей микроконтроллеров (МК) и микропроцессоров среди мировых производителей, непрерывно совершенствуя свой модельный ряд.

В настоящее время Freescale Semiconductor предоставляет разработчикам множество моделей микроконтроллеров и интегрированных процессоров в каждой из классификационных категорий микропроцессорной элементной базы:

Восьмиразрядные МК представлены семейством HCS08;

Шестнадцатиразрядные семействами HCS12(X) и DSP56800/E;

-разрядные семействами ColdFire, PowerPC и iMx.

Шестнадцатиразрядные МК компании Freescale Semiconductor представлены в настоящее время двумя семействами: HCS12(X) и DSP микроконтроллерами 56800 (DSP Digital Signal Processor процессор Цифровой Обработки Сигналов (ЦОС)).

Все модели МК семейства HCS12(X) обладают характерными отличительными признаками:

имеют экономичное 16-разрядное CISC процессорное ядро, которое позволяет производить операции над 8- и 16-разрядными операндами;

имеют встроенный модуль flash-памяти программ. МК семейства HCS12 и HCS12X обладают модулем flash-памяти третьего поколения (по классификации компании Freescale Semiconductor;

большинство моделей семейства HCS12(X) содержат на кристалле специальный модуль flash ПЗУ с функцией эмуляции EEPROM;

все МК семейства HCS12(X) позволяют реализовать режимы программирования и отладки в системе, благодаря наличию на кристалле модуля внутрисхемной отладки BDM.

Рисунок 1 - Обобщенная структура МК семейства HCS12Cxxx

Обобщенная структура МК семейства HCS12X представлена на рисунке 1. Все МК этого семейства обладают двухпроцессорным ядром. Основной процессор CPUS12X выполнен с использованием архитектуры CISC, длина обрабатываемого слова 16-бит. Второй процессор XGATE дополнительный, имеет RISC-архитектуру, частота шины до 100 МГц, оперирует также с 16-разрядными словами. Основной процессор в составе ядра CPU12X претерпел существенные изменения по отношению к предыдущей версии CPUS12. Добавлены новые команды, существенно улучшены режимы энергопотребления.

Способы адресации

Для выборки операндов из памяти МК семейства HCS12 используют следующие способы адресации:

внутренняя или неявная (INH - Inherent);

непосредственная (IMM - Immediate);

прямая (DIR - Direct):

прямая расширенная (EXT - Extended);

относительная (REL - Relative):

индексная (IDX - Indexed).

Внутренняя или неявная адресация INH

К инструкциям с неявной адресацией относятся команды, которые не требуют для своего выполнения каких либо операндов, например, команда STOP или команда возврата из прерывания RTI.

Неявную адресацию имеют инструкции, которые содержат адрес операнда в коде команды. Все команды с неявной адресацией имеют длину в 1 байт и состоят только из кода операции.

Непосредственная адресация IMM

Код операции команды с непосредственной адресацией размещается в первом байте. Сразу же за кодом операции следуют байты данных. Эти данные не могут быть изменены в ходе выполнения программы, т. к. они расположены непосредственно в памяти программ, т.е. в ПЗУ.

Прямая адресация DIR

Команды с прямой адресацией имеют длину 2 байта. Первый байт предназначен для кода команды, второй байт содержит адрес ячейки памяти, где хранится операнд. Так как МК семейства HCS12 имеют адресное пространство, превышающее диапазон $00..$FF, то во втором байте команды задается только младший байт адреса, а старший автоматически определяется как $00.

Прямая расширенная адресация ЕХТ

Адресное поле команд с прямой расширенной адресацией занимает 2 байта. В поле операнда командной строки указывается полный адрес ячейки памяти, где хранится операнд. Команды с прямой расширенной адресацией позволяют работать со всем адресным пространством МК.

Относительная адресация REL

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

Индексная адресация IDX

В командах с индексной адресацией адрес операнда определяется по содержимому двухбайтового индексного регистра X или Y, указателя стека SP или программного счётчика PC.

Система команд

Исходный текст программы на языке Ассемблера состоит из строк, каждая из которых соответствует одной команде.

Команды загрузки и пересылки данных

Команды этой группы осуществляют перемещение данных между ячейками памяти и регистрами центрального процессора. Отличительная особенность команд загрузки и пересылки установка признаков нуля Z и знака N в соответствии со значением перемещаемого числа.

Арифметические команды

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

Логические команды и операции сдвига

Данную группу образуют команды, которые выполняют операции логического И, ИЛИ, Исключающего ИЛИ, различные операции сдвига, операции взятия обратного и дополнительного кода. Следует обратить внимание на специальные команды установки признаков без изменения содержимого тестируемых регистров и ячеек памяти (TST и BIT). Все логические команды модифицируют флаги в регистре кода состояния.

Команды битовых операций

Наличие команд битовых операций позволяет существенно сократить управляющие программы по объему кода и времени выполнения.

Команды ветвления

Инструкции ветвления вызывают изменение исполняемой последовательности команд, если выполняются определённые условия. Т.е. с помощью них можно осуществлять переходы между фрагментами программы, тем самым, пропуская или выполняя дополнительные операции. Ядро CPU 12 использует три вида ветвлений: короткие, длинные, по битовым условиям.

Команды вызова подпрограмм

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

Команды перехода в режимы пониженного энергопотребления

Существует две команды перевода микроконтроллера в режим пониженного энергопотребления. Инструкция STOP помещает в стек адрес возврата и содержимое регистров ЦП, а затем выключает систему тактирования. Команда WAI также отправляет в стек адрес возврата и содержимое регистров ЦП. После этого микроконтроллер начинает ожидать поступления запроса на прерывание. При этом система тактирования остаётся включённой.

Для выхода из любого из двух режимов требуется, чтобы произошло прерывание или сброс.

    Лучшие статьи по информатике

    Телефонный номеронабиратель
    Первые микроконтроллеры компании MICROCHIP PIC16C5x появились в конце 80-х годов и благодаря своей высокой производительности и низкой стоимости составили с ...

    Разработка цикловой системы управления промышленным роботом
    Электроника - это область науки и техники, которая занимается изучением физических основ функционирования, исследованием, разработкой и применением приборо ...

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

    Меню сайта