Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_i_otvety_MPT.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
3.94 Mб
Скачать

21. Микроконтроллеры подсемейства pic18: общая характеристика, особенности архитектуры и системы команд.

Компания Microchip выпускает семейство 8-разрядных микроконтроллеров PIC18, которое идеально подходит для приложений, требующих быстродействия 10-16 MIPS, с объемом памяти программ до 128 Кбайт, корпусах от 18 до 100 выводов.

Семейство PIC18 обладает следующими отличительными чертами:

    • эффективное кодирование на языке Си;

    • 16-разрядные слова программ;

    • встроенные АЦП и программируемый генератор;

    • векторная приоритетная система прерываний (высокий и низкий приоритеты);

Семейство PIC18 имеет МК с аппаратной поддержкой современных интерфейсов:

  1. Интегрированный полноскоростной USB 2.0 с возможностью передачи данных со скоростью до 12 Mбит/сек.

  2. Высокоскоростной последовательный протокол CAN с гарантированной доставкой данных для приложений, требующих высокую надежность и скорость до 1 Мбайт/сек.

  3. Интегрированный Ethernet интерфейс для контроля и управления удаленными объектами, объединенными в общую сеть.

  4. Встроенный драйвер ЖКИ, позволяющий управлять различными типами жидкокристаллических индикаторов с возможностью работы в режиме микропотребления.

Выпускаются МК двух вариантов: PIC18Cxxx и PIC18Fxxx. PIC18C имеют однократно программируемую память программ (OTPROM). PIC18F имеют флэш-память программ (Flash-ROM). Оба этих варианта МК могут быть запрограммированы непосредственно в устройстве с помощью последовательного программирования всего по трем проводам.

Основные особенности семейства PIC18 следующие.

Организация памяти

В PIC18 реализовано 3 типа памяти: память программ, память данных, память данных EEPROM.

Память программ адресуется с помощью 21-разрядного счетчика команд PC, что позволяет иметь адресное пространство 2 Мбайта. Однако, выпускаемые МК имеют объем программной памяти в диапазоне от 16 до 128 Кбайт. В отличие от PIC16, PIC17 память программ PIC18 адресуется побайтно. Команды в памяти занимают 2 байта (однословные) или 4 байта (двухсловные), что редко. Команды имеют только четные адреса, поэтому младший бит PC всегда равен 0. Область памяти выше 2000000h отведена под идентификационные номера, регистры калибровки и конфигурации. При выполнении программы можно прочитать содержимое программной памяти, используя команду TBLRD.

Память данных организована как массив 8-разрядных регистров (регистровый файл), каждый из которых имеет 12-разрядный адрес. Все адресное пространство 4096 байт разделено на 16 банков объемом по 256 байт. Номер адресуемого банка содержится в четырех младших битах регистра выбора банка BSR. Характерной особенностью PIC18 является то, что все регистры специальных функций (РСФ) размещены только в банке 15, причем занимают его старшую (по адресации) половину. В банках 0 – 14 (их количество определяется конкретным типом МК) располагаются регистры общего назначения (РОН).

Чтобы гарантировать быстрый доступ к наиболее часто используемым данным и к РСФ без использования регистра BSR, в PIC18 применено оригинальное решение под условным названием «банк доступа» (Access Bank). В этот банк включены 128 регистра РОН из младшей половины банка 0 и старшая половина регистров из банка 15, т.е. все РСФ. Специальный «бит доступа к памяти» (a = 0) в коде команды показывает, что старшие разряды адреса игнорируются и обращение идет к банку доступа, а содержимое BSR не используется. Глобальные переменные помещаются именно в банк доступа, тем самым существенно повышается производительность работы компиляторов языка Си.

Объем стека в PIC18 существенно расширен и составляет массив из 31 ячейки памяти по 21 биту в каждой. Также добавлены команды непосредственной работы со стеком PUSH и POP, которые позволяют программно сохранять в стеке оперативные данные. Очень полезной архитектурной особенностью PIC18 является наличие теневого «быстрого» стека. Этот стек используется подпрограммой обработки прерывания высокого уровня для запоминания содержимого регистров STATUS, WREG, BSR. Если прерывания не используются, то теневой стек можно использовать для сохранения регистров STATUS, WREG, BSR при вызове подпрограммы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]