Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1676

.pdf
Скачиваний:
6
Добавлен:
30.04.2022
Размер:
1.72 Mб
Скачать

ли 2 выделенного регистра-аккумулятора.

9.Организация доступа к ОЗУ (банки, индексные регистры

ит.п.).

10.Организация стека, сохраняемый контекст.

11.Организация прерываний, источники.

12.Программирование (в системе): наличие, интерфейс.

Всоответствии с этим списком рассмотрим основные параметры и особенности восьмиразрядных семейств МК, выбранных для проектирования.

1.2.1. Семейство восьмиразрядных МК AVR

Данное семейство имеет Гарвардскую архитектуру с раздельными пространствами памяти команд (16-разрядных), данных и констант (EEPROM), ее система команд – RISC, разрядность АЛУ – 8, количество тактов на 1 команду (конвейерно) – 1, максимальная тактовая частота 20 МГц.

Главным блоком программной модели AVRмикроконтроллеров является регистровый файл из 32 регистров общего назначения (РОН) или оперативных регистров (R0–R31), непосредственно доступных ALU. Старшие регистры объединены парами и образуют три 16-разрядных регистра, предназначенных для косвенной адресации ячеек памяти Ортогональность РОН AVR является частичной (ограничения следует уточнять в документации, в частности команды, которые в качестве второго операнда имеют константу (SUBI, SBCI, ANDI, ORI, SBR, CBR), могут использовать в качестве первого операнда только регистры из второй половины регистрового файла), выделенного регистра-аккумулятора нет, в его качестве принято использовать R16 и R24. Для хранения оперативных данных помимо регистро-

2 Программная модель микроконтроллера представляет собой изображение и описание программно доступных ресурсов МК.

11

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

 

Память программ

000h

0000h

 

16 бит

F_END

 

 

S_END

Объем

Разрядность

FFFFh

Память данных

Регистры общего

назначения

Регистры

ввода/вывода

Внутреннее

статическое

ОЗУ

Внешнее

статическое ОЗУ

8 бит

Память констант

000h

8 бит

Е_END

Рис. 1 Как видно из рис. 1, помимо РОН, в это пространство

входят служебные регистры и регистры различных устройств ввода и вывода информации. При выполнении проекта следует рассмотреть состав и функции этих РВВ для каждого используемого блока, включая назначение и функционирование битов регистров управления и состояния. Пример – РВВ одного из таймеров AVR (табл. 1).

12

 

 

 

 

 

 

 

 

Таблица 1

 

 

 

 

 

 

 

 

 

 

 

Груп

 

Название

 

Функция

 

Содержит

 

 

па

 

 

 

 

 

 

 

 

 

 

 

TCNT1

 

Счетный регистр таймера/счетчика 1

 

текущий код

 

 

Регистры

 

 

 

 

 

 

(2 байта)

 

 

данных

 

 

 

 

 

(2 байта)

 

 

 

 

 

ICR1

 

Регистр захвата таймера/счетчика 1

 

защелкнутый

 

 

 

 

 

 

 

 

 

код (2 байта)

 

 

 

 

 

OCR1A

 

Регистр совпадения выхода A

 

заданный код

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OCR1B

 

Регистр совпадения выхода B

 

заданный код

 

 

 

 

 

 

 

 

 

(2 байта)

 

 

Ре-

 

TIFR

 

Регистр флагов событий таймеров /

 

биты прошед-

 

 

гистр

 

 

 

 

 

 

 

счетчиков

 

ших событий

 

 

 

 

 

 

 

 

состо-

 

 

 

 

 

 

 

 

яния

 

 

 

 

 

 

 

 

 

 

 

TCCR1A

 

Регистр управления А таймером/счет-

 

биты управле-

 

 

 

управления

 

 

 

чиком 1

 

ния

 

 

 

 

 

 

 

 

 

Регистры

 

TCCR1B

 

Регистр управления B таймером/счет-

 

биты управле-

 

 

 

 

 

 

 

чиком 1

 

ния

 

 

 

 

 

 

 

 

 

 

 

 

 

TIMSK

 

Регистр маски прерываний от таймеров

 

биты маски

 

 

 

 

 

 

 

/ счетчиков

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SREG

 

Регистр состояния процессора – флаг

 

бит маски

 

 

 

 

 

 

 

разрешения прерываний I

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Стек МК AVR организован в памяти данных и управляется указателем SP, аппаратно в нем сохраняется только адрес возврата из подпрограммы. Стек также может использоваться программистом для временного хранения содержимого оперативных регистров (команды PUSH и POP). Система прерываний приоритетная – по коду адреса вектора прерываний, вложенные прерывания возможны, но аппаратно не поддерживаются. Источники прерываний как внешние, так и внутренние – от различных периферийных устройств МК. Программирование в системе возможно, интерфейсы JTAG, ISP.

13

1.2.2. Семейство восьмиразрядных МК PIC

Данное семейство также имеет Гарвардскую архитектуру с раздельными пространствами памяти команд (12-, 14или 16разрядных для разных линеек МК), данных и констант (EEPROM), Память данных PIC-контроллеров организована в виде регистрового файла объемом 32 – 128 байт, в котором от 7 до 16 регистров отведено для управления системой и обмена данными с внешними устройствами (рис. 2). В команде указывается только «внутрибанковский» адрес нужной ячейки памяти, а выбором банка управляют через особый служебный регистр выбора банка BSR. Текущий банк задается битами BSR[3:0] и выбирается с помощью дешифратора 4x16. Для изменения регистра BSR введена специальная команда. Младшие 128 адресов 0-го банка, отведенные под пользовательские регистры общего назначения (РОН), и старшие 128 регистров 15-го банка, хранящие РСН, названы банком быстрого доступа (Access bank). К ячейкам банка быстрого доступа можно обращаться напрямую, игнорируя установки регистра ВSR. У МК PIC сть регистраккумулятор для одного из операндов, причем можно выбрать, куда записать результат операции: в аккумулятор или в регистр второго операнда.

Система команд PIC – RISC, разрядность АЛУ – 8, количество тактов на 1 команду (конвейерно) – 4, максимальная тактовая частота 20 МГц. Стек реализован аппаратно. Его максимальная глубина составляет два или восемь уровней в зависимости от типа контроллера. Система прерываний имеет единый адрес вектора прерываний, источник прерывания кодируется в регистре управления прерываниями. Вложенные прерывания аппаратно не поддерживаются. Источники прерываний как внешние, так и внутренние – от различных периферийных устройств МК. Программирование в системе возможно, через специальный двухпроводной интерфейс.

14

Рис. 2

1.2.3. Семейство восьмиразрядных МК STM8S

Семейство восьмиразрядных МК STM8S (их достоинства см., например, в [33]) имеет Гарвардскую архитектуру с раздельными пространствами памяти команд (32-разрядных), данных и констант (EEPROM), аналогично AVR (см. рис. 1), но это разделение внутреннее. Для программиста же процессор является фон Неймановским (Принстонским) и позволяет использовать еди-

15

ное адресное пространство. Система команд STM8 – CISC, разрядность АЛУ – 8, количество тактов на 1 команду (конвейерно)

– 1-2, максимальная тактовая частота 24 МГц (для основной массы моделей 16 МГц). Количество и организация внутренних регистров общего назначения – 6, есть аккумулятор, но непосредственная работа с этими регистрами не предусмотрена, а выполняется через транслятор с языка Си, как и с различными видами памяти. ОЗУ занимает до 6 кбайт, флэш-память до 128 кбайт, EEPROM – до 2 кбайт. Стек организован в памяти данных, начинается с RAM END, растет в сторону уменьшения адресов и управляется указателем SP, глубина его фиксирована (например, для STM8S103F3 513 байт). Аппаратно в стеке сохраняется регистровый контекст, включая адрес возврата из подпрограммы. Система прерываний четырехуровневая, сохранение контекста занимает 9 циклов тактового сигнала. Доступна технология, позволяющая при возникновении очереди прерываний не возвращаться в основную программу, а сразу переходить в обработку следующего прерывания. Источники прерываний как внешние (5 внешних прерываний — по одному прерыванию на порт вводавывода), так и внутренние – от различных периферийных устройств МК – плюс три немаскируемых прерывания RESET, TRAP (программное прерывание) и TLI (аппаратное по фронту или срезу сигнала на выделенном пине). Программирование в системе возможно от программатора ST-Link по одно-

проводному протоколу SWIM (Single Wire Interface Module).

Язык программирования – Си, при наличии собственной библиотеки firmware library это позволяет не изучать имена битов и байтов различных периферийных устройств МК. Возможно также программирование на ассемблере, но это сложный процесс, не освоенный большинством пользователей. Сказывается также малое количество доступных (особенно русскоязычных) информационных источников. На первом этапе освоения можно рекомендовать пособие [33].

16

1.2.4. Параметры и особенности конкретных моделей МК

Представляется, что в перечень существенных параметров

иособенностей конкретных моделей МК (после выбора для ВУ

иНУ) следует включить следующее.

13.Память констант (или пересылка из памяти программ

впамять данных)

14.Память программ: тип и размер – слов x разрядов

15.ОЗУ, байт

16.Наличие DMA

17.Порты ввода/вывода:

общее кол-во разрядов

организация переключения направлений «ввод/вывод»

номиналы токов выхода «втек./вытек»

управление вводом (подтягивающие резисторы, триггеры Шмитта)

18.Последовательный интерфейс, тип(ы) – реал/виртуал.

19.Компаратор

20.АЦП – тип, кол-во каналов

21.ЦАП – кол-во каналов

22.ШИМ – кол-во каналов

23.Таймеры, их разрядность и функции (многофункциональные, реального времени…)

24.Контроллеры ЖК индикаторов и светодиодной матрицы – реал/виртуал

25.Сторожевой таймер (WDT)

26.Режимы Power Down & SLEEP …

27.Перезапуск по сбою питания, сброс по спаду напряжения питания

17

1.3.Существенные параметры и особенности различных

последовательных интерфейсов

Как сказано выше, в проект включены задания на проектирование многопроцессорной МПСУ на базе наиболее широко распространенных МК. Такие системы состоят из узлов, в каждом из которых организуется микроконтроллерная система управления МКСУ, основой которой является микроконтроллер. МКСУ поддерживает локальную шину, нагрузочная способность которой позволяет подключать несколько модулей связи с объектом (цифровой ввод/вывод, аналоговый ввод/вывод, силовые модули). Каждое такое образование объединяется с себе подобными через унифицированный интерфейс. Требования к такому интерфейсу подробнее рассмотрены ниже, но основное из них –

разнесение МКСУ по конструкции объекта с тем, чтобы каж-

дая находилась в максимальной близости к исполнительным элементам – диктует выбор интерфейсов с малым числом проводов, т.е. последовательных. К последовательному интерфейсу может подключаться N локальных СУ (рис. 3), при необходимости в канал интерфейса встраивают буферный повторитель для повышения нагрузочной способности. В типичных системах такого типа пропускная способность шины, связывающей МКСУ друг с другом, не является критическим параметром. Основное – помехозащищенность, безошибочность передачи информации. В частности, целесообразно при проектировании интерфейсов использовать гальваническую развязку. Существенны также минимальное число линий связи и минимальная стоимость. Требование подключения множества устройств можно ограничить, даже с учетом нескольких процессов, обслуживаемых одним модулем. Типичным значением можно считать около 20 адресов.

18

 

 

 

 

 

 

 

 

В локальную сеть ВУ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СУ ВУ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ИС ВУ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Локальная

 

 

сеть НУ

 

 

 

 

 

 

 

. . .

 

 

 

 

. . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЛСУ 1

ЛСУ k

 

ЛСУ N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 3

Такая локальная сеть (нижний уровень) подключается к системе управления верхнего уровня. Последняя должна иметь соответствующий сетевой интерфейс, а также обладать дополнительными интерфейсными средствами (ИС ВУ) для включения в сеть следующего, более высокого уровня.

В задании на проектирование будет выдан один из двух типов интерфейсов на верхний уровень – RS-485 или CAN, и одни из трех вариантов межконтроллерного интерфейса – RS-485, I2C, SPI. Рассмотрим основные особенности архитектуры каждого из перечисленных интерфейсов.

1.3.1. Стандарт RS-485

RS-485 — это номер стандарта физического уровня для асинхронного интерфейса, впервые принятого Ассоциацией электронной промышленности (EIA). Стандарт RS-485 обеспечивает обмен данными между несколькими устройствами по одной двухпроводной линии связи в полудуплексном режиме. Он широко используется в промышленности при создании АСУ ТП. При этом обычно используется в формате протокола Modbus/RTU.

Его основными достоинствами являются:

19

двусторонний обмен данными (в полу дуплексном режиме) ведется всего по одной витой паре проводов (рис. 4);

количество соединяемых устройств, подключаемых к одной линии интерфейса, зависит от типа примененных в устройстве приемопередатчиков: один передатчик рассчитан на управление 32 стандартными приемниками;

RS-485 обеспечивает передачу данных со скоростью до 10 Мбит/с, причём максимальная дальность зависит от скорости: при скорости 10 Мбит/с максимальная длина линии

— 120 м, при скорости 100 кбит/с — 1200 м;

стандарт не нормирует формат информационных кадров и протокол обмена.

Рис. 4 На рис. 4 показано соединение трех устройств с интерфей-

сом RS-485 по двухпроводной схеме, все устройства подключаются к одной витой паре одинаково: прямые выходы к одному проводу, инверсные – к другому. В качестве приемопередатчиков (трансиверов) А, В, С следует выбрать одну из специальных микросхем типа MAX485, подключаемых между выводами МК, поддерживающими протокол RS-232, и локальной сетью. Сигна-

20