Семейства микроконтроллеров PIC16/17, страница 2

PIC16C8x

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

Кроме вышеперечисленных достоинств, этот микроконтроллер имеет и недостаток – максимум тактовой частоты ограничен 10 МГц.

PIC17Cxx

Микроконтроллеры серии PIC17Cxx являются новейшей разработкой и имеют следующие характеристики:

  разрядность команд увеличена до 16 бит;

  максимальная тактовая частота увеличена до 25 МГц;

  введена возможность аппаратного наращивания;

  максимальная емкость памяти программ – до 8к слов;

  память данных до 454 байт;

  количество таймеров увеличено до 4;

  16-уровневый аппаратный стек;

Архитектура микроконтроллеров PIC

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

В микроконтроллерах применена Гарвардская архитектура, заключающаяся в разделении памяти программ и памяти данных, в отличие от архитектуры фон Неймана, где программа и данные хранятся в общей памяти. Такое построение позволило:

  сделать память программ и память данных разной разрядности, при этом любая команда вместе со всеми требующимися для нее данными занимает одно слово в памяти программ;

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

В микроконтроллере реализован двухстадийный конвейер, распараллелив стадии выполнения текущей команды и выборки следующей команды из памяти. При этом выполнение команды происходит за один машинный цикл – 4 такта, за исключением команд перехода, когда естественная последовательность выбора команд нарушается, и для выбора следующей команды необходим еще один машинный цикл. Таким образом, на команду перехода затрачивается два цикла.

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

Существует также регистр флагов, доступ к которому может происходить таким же образом, как и к любому другому регистру. Он содержит всего три флага, устанавливаемых в результате операций: флаг нуля Z, флаг переноса C и флаг промежуточного переноса DC. Выставляются эти флаги по результату работы АЛУ, независимо от того, куда направляется результат (см. предыдущий абзац).

В системе команд отсутствуют команды условных переходов в их традиционном понимании (например, если флаг Z установлен, то переход по адресу xxxx). Вместо этого существуют команды проверки любого бита произвольного регистра (если бит b регистра rr установлен (сброшен), то пропустить следующую команду). В случае необходимости условного перехода по результату арифметико-логической операции, в качестве регистра указывается STATUS, и из него выбирается необходимый бит.

Система прерываний:

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

Хотя, в общем случае, система с опросом флагов прерываний от устройств с единым вектором прерываний неэффективна из-за большого времени, необходимого для определения источника; однако, в случае практического применения микроконтроллера PIC обычно нет необходимости использовать большое количество устройств одновременно, так что количество возможных источников прерывания значительно сокращается, делая систему достаточно эффективной.

Применение микроконтроллеров PIC

Область применения микроконтроллеров PIC чрезвычайно широка, что объясняется их низкой стоимостью, высокой производительностью, большим набором встроенных периферийных устройств, низкой потребляемой мощностью, широким диапазоном климатических условий, простотой программирования. Они применяются в устройствах сбора и обработки информации, системах управления объектами. В качестве примеров можно привести: мышь Microsoft (PIC16C58), системы управления электрическими двигателями и ДВС, «таежные устройства» и др.