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

Пособие HCS12 & Elvis II v.7.01

.pdf
Скачиваний:
223
Добавлен:
03.05.2015
Размер:
4.14 Mб
Скачать

Посредством неё осуществляется выход из подпрограммы. В результате этого из стека извлекается адрес и по нему возобновляется исполнение основной программы (т.е. с адреса команды, которая следует за BSR / JSR).

Инструкция CALL используется для вызова подпрограммы из расширенной памяти. Т.е. в том случае, если объём адресного пространства больше 64К (максимальный адрес больше $FFFF). Выход из подпрограммы будет осуществляться с помощью директивы RTC. Для программной совместимости сделано так, что инструкции CALL и RTC выполняются корректно, даже если в устройстве способности к расширенной адресации.

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

Команда программного прерывания (SWI) вызывает синхронную обработку события. Таким образом, можно воспользоваться обычной подпрограммой как программой прерывания. При выполнении команды SWI автоматически помещается в стек адрес возврата. Затем туда же загружаются регистры CCR, A, В, X, Y. После этого осуществляется переход по адресу, который указан в ячейках памяти $FFF6 и $FFF7 сегмента векторов прерывания.

Выполнение команды SWI позволяет вызвать прерывание без поступления запроса на прерывание. Эта инструкция не подавляется глобальными битами прерываний I и X в регистре CCR . Поэтому программное прерывание часто называют немаскируемым. Его выполнение по команде SWI влечёт за собой установку флага I в единицу. Если программное прерывание началось, то маскируемые прерывания автоматически запрещаются до тех пор, пока бит I равен нулю. При выходе из подпрограммы прерывания команда RTI восстановит значения регистров центрального процессора, и МК продолжит выполнение прикладной программы с команды, которая была следующей за командой SWI (аналогично как и в случаях с командами BSR / JSR).

Табл. 1.15. Команды вызова подпрограмм и обслуживания прерываний

 

Мнемокод

Операция

Выполняемое

Способ

Влияние на

 

действие

адресации

признаки

 

 

 

 

 

Вызов подпрограммы

SP ← (SP) − 2,

 

 

 

 

 

 

 

 

 

записанной по адресу,

M(SP) : M(SP)+1

 

(CCR) = const

BSR

rel

код смещения которого

REL

указан во втором байте

 

 

 

команды.

RTNH : RTNL,

 

 

 

 

 

 

 

 

 

 

PC ← (PC) + rel

 

 

 

 

Вызов подпрограммы.

SP ← (SP) − 2,

 

 

JSR

adr

Адрес подпрограммы

M(SP) : M(SP)+1

DIR, EXT

 

хранится в ячейке

 

JSR

opr,r

памяти (ОЗУ или ПЗУ).

IDX, IDX1, IDX2

(CCR) = const

JSR [opr,r]

Адрес ячейки задан

RTNH : RTNL,

[IDX2]

 

JSR

[D,r]

используемым в команде

 

[D,IDX]

 

 

 

способом адресации.

PC ← Subroutine

 

 

 

 

 

Address

 

 

 

 

Возврат из

PCH : PCL

 

 

RTS

 

подпрограммы.

 

 

 

Адрес возврата

(M(SP) : M(SP)+1),

INH

(CCR) = const

 

 

загружается из стека в

 

 

 

 

 

счетчик команд.

SP ← (SP) + 2

 

 

41

 

 

Вызов подпрограммы из

(SP) ← SP − 2,

 

 

 

 

M(SP) : M(SP)+1

 

 

 

 

расширенной памяти.

 

 

CALL

adr

Адрес подпрограммы

EXT

 

хранится в ячейке

RTNH : RTNL,

 

CALL

opr,r

памяти (ОЗУ или ПЗУ).

 

IDX, IDX1, IDX2

(CCR) = const

CALL

[opr,r]

Адрес ячейки задан

SP ← SP − 1,

[IDX2]

 

CALL

[D,r]

используемым в команде

M(SP) ← (PPAGE),

[D,IDX]

 

 

 

способом адресации.

PPAGE ← page,

 

 

 

 

 

PC ← Subroutine

 

 

 

 

 

Address

 

 

 

 

Возврат из

(M(SP)) ← PPAGE

 

 

 

 

SP ← (SP) + 1

 

 

 

 

подпрограммы,

 

 

 

RTC

 

вызванной по команде

PCH : PCL

INH

(CCR) = const

 

CALL. Адрес возврата

 

 

 

 

 

 

загружается из стека в

(M(SP) : M(SP)+1),

 

 

 

 

счетчик команд.

SP ← (SP) + 2

 

 

 

 

 

 

 

 

 

 

SP ← SP − 2

 

 

 

 

 

M(SP) : M(SP)+1

 

 

 

 

 

 

 

 

 

 

RTNH : RTNL

 

 

 

 

 

SP ← SP − 2

 

 

 

 

 

M(SP) : M(SP)+1

 

 

 

 

 

 

 

 

 

 

YH : YL

 

 

 

 

Программное

SP ← SP − 2

 

 

SWI

 

M(SP) : M(SP)+1

INH

I = 1

 

прерывание.

 

 

 

 

 

 

 

 

XH : XL

 

 

 

 

 

SP ← SP − 2

 

 

 

 

 

M(SP) : M(SP)+1

 

 

 

 

 

 

 

 

 

 

B : A

 

 

 

 

 

SP ← SP − 1

 

 

 

 

 

M(SP) ← CCR

 

 

 

 

 

I ← 1

 

 

 

 

 

PC ← (SWI Vector)

 

 

42

 

 

CCR ← (M(SP))

 

 

 

 

SP ← SP + 1

 

 

 

 

B : A

 

 

 

 

 

 

 

 

(M(SP) : M(SP)+1)

 

 

 

 

SP ← SP + 2

 

 

 

 

XH : XL

 

 

 

Возврат из прерывания.

 

 

 

(M(SP) : M(SP)+1)

 

(CCR) = var,

RTI

Восстанавливается

 

 

 

INH

X только

содержимое регистров

SP ← SP + 4

 

 

1 → 0

 

CPU и счетчика команд.

 

 

 

PCH : PCL

 

 

 

 

 

 

 

 

 

 

 

 

(M(SP) : M(SP)+1)

 

 

 

 

SP ← SP − 2

 

 

 

 

YH : YL

 

 

 

 

 

 

 

 

(M(SP) : M(SP)+1)

 

 

 

 

SP ← SP + 4

 

 

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

Как видно из табл. 1.14., существует две команды перевода микроконтроллера в режим пониженного энергопотребления.

Инструкция STOP помещает в стек адрес возврата и содержимое регистров ЦП, а затем выключает систему тактирования.

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

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

 

Табл. 1.16. Команды вызова подпрограмм и обслуживания прерываний

Мнемокод

Операция

Выполняемое

Способ

Влияние на

действие

адресации

признаки

 

 

WAI

Переводит МК в режим

I ← 0

INH

I = 0, после

ожидания (wait mode)

выхода

STOP

Переводит МК в режим

Остановка системы

INH

остановки (stop mode)

тактирования

43

2.Микроконтроллер MC9S12C128

2.1.Общая характеристика

Вданном лабораторном практикуме Вами будет детально изучаться однокристальный 16-разрядный микроконтроллер семейства HCS12: MC9S12C128.

Основные технические характеристики этого МК:

16-разрядное процессорное ядро HCS12.

Напряжение питания 2.97..5.5 В. В лабораторном макете составляет 5 В.

Развитая система тактирования. Тактирование микроконтроллера возможно как от внешних источников, так и от внутренних. В лабораторном стенде используется элемент, относящийся к первому типу: кварцевый резонатор. Частота тактового сигнала, который он генерирует, составляет 4 МГц. При этом частота внутренней шины микроконтроллера fBUS уменьшается вдвое и равна 2 МГц. Максимальное её значение для этой модели микроконтроллера составляет

20 МГц;

Резидентная память программ (ПЗУ). Её объем равен 128K = 131072 ячеек (128

КБ). Память выполнена по технологии flash с эмуляцией EEPROM, число циклов записи/стирания составляет не менее 100000.

Резидентная память данных (ОЗУ). Объём составляет 4 КБ.

Общее число выводов микроконтроллера – 40. Тип корпуса – QFP (Quad Flat Package).

На кристалле микроконтроллера имеются следующие периферийные модули:

Порты ввода/вывода. Всего доступно 9 портов, более подробное их описание приведено в табл. 2.1.;

Модуль таймера TIM с 16-разрядным счетчиком временной базы и восемью каналами IC/OC/PWM.

Встроенный аналого-цифровой преобразователь ATD. Число каналов оцифровки равно 8, разрядность – 10 бит.

Последовательные интерфейсы: синхронный SPI и асинхронный SCI, а также модуль CAN со скоростью до 1 Мбит/с.

Модуль обработки внешних прерываний INT.

Сторожевой таймер COP.

Модуль неразрушающей отладки BDM с однопроводным интерфейсом связи с ПК.

44

Табл. 2.1. Порты микроконтроллера MC9S12C128

Название

Имена ножек

Функции ножек

Краткое описание

Порт A

PA[7:0]

ADDR[15:8] / DATA[15:8] / GPIO

Ввод/вывод общего назначения

или шины адреса/данных в

 

 

 

расширенных режимах работы МК.

 

 

 

Ввод/вывод общего назначения

Порт B

PB[7:0]

ADDR[7:0] / DATA[7:0] / GPIO

или шины адреса/данных в

 

 

 

расширенных режимах работы МК.

Порт AD

PAD[7:0]

ATD[7:0]

Аналоговые входы АЦП.

 

PE7

NOACC / XCLKS / GPIO

Ввод/вывод общего назначения

 

PE6

IPIPE1 / MODB / GPIO

или альтернативные функции.

 

PE5

IPIPE0 / MODB / GPIO

 

Порт E

PE4

ECLK / GPIO

 

PE3

LSTRB / TAGLO / GPIO

 

 

 

 

PE2

R/W / GPIO

 

 

PE1

IRQ / GPI

 

 

PE0

XIRQ / GPI

 

Порт J

PJ[7:0]

GPIO

Ввод/вывод общего назначения с

функцией KBI.

 

 

 

 

PM5

SCK

Тактовый сигнал модуля SPI.

 

PM4

MOSI

Передающая ножка модуля SPI.

 

PM3

SS

Линия выбора МК в качестве

Порт M

ведомого (модуль SPI).

 

 

 

PM2

MISO

Принимающая ножка модуля SPI.

 

PM1

TXCAN

Передающая ножка модуля CAN.

 

PM0

RXCAN

Принимающая ножка модуля CAN.

 

PP[7:0]

PWM[5:0]

Выходы модуля ШИМ.

Порт P

GPIO[7:0]

Ввод/вывод общего назначения с

 

функцией KBI.

 

 

 

 

PP6

ROMON

Входной сигнал ROMON.

 

 

 

Выходы модуля ШИМ

 

 

PWM[4:0]

(подключаются с помощью записи

Порт T

PT[7:0]

 

в регистр MODRR)

 

 

IOC[7:0]

Каналы таймера

 

 

GPIO

Ввод/вывод общего назначения

 

PS3

GPIO

Ввод/вывод общего назначения

 

PS2

GPIO

Ввод/вывод общего назначения

Порт S

PS1

TXD

Передающая ножка модуля SCI.

GPIO

Ввод/вывод общего назначения

 

 

 

PS0

RXD

Принимающая ножка модуля SCI.

 

GPIO

Ввод/вывод общего назначения

 

 

2.2. Карта памяти

На рис. 2.2 показано удобное для понимания распределение адресного пространства, но не устанавливаемое в микроконтроллере после его сброса. Видно, что свободно назначаемые области регистров специальных функций и ОЗУ в любом случае перекроют часть адресов ПЗУ.

45

0x0000

Область регистров специальных функций (1K)

 

Можно назначить на любой диапазон адресов

 

0x03FF

размером в 2K

 

0x0000

 

 

Flash с эмуляцией EEPROM (16K)

0x3FFF

 

 

0x3000

ОЗУ (4K)

 

Можно назначить на любой диапазон адресов

 

0x3FFF

размером в 4K

 

0x4000

 

 

Flash с эмуляцией EEPROM (16K)

0x7FFF

0x8000

Окно страницы памяти (16K)

Всего доступно 8 страниц по 16K flash EEPROM

 

0xBFFF

 

 

0xC000

 

 

Flash с эмуляцией EEPROM (16K)

 

 

 

 

0xFFFF

 

 

0xFF00

 

Векторы прерываний

 

0XFFFF

 

 

 

 

Рис. 2.2. Распределение адресного пространства микроконтроллера MC9S12C128

По умолчанию карта памяти выглядит следующим образом:

0x0000

Область регистров специальных функций (1K)

 

Можно назначить на любой диапазон адресов

 

0x03FF

размером в 2K

 

0x0000

ОЗУ (4K)

 

Можно назначить на любой диапазон адресов

 

0x0FFF

размером в 4K

 

0x0000

 

 

Flash с эмуляцией EEPROM (16K)

0x3FFF

 

 

0x4000

 

 

Flash с эмуляцией EEPROM (16K)

0x7FFF

0x8000

Окно страницы памяти (16K)

Всего доступно 8 страниц по 16K flash EEPROM

0xBFFF

 

0xC000

 

Flash с эмуляцией EEPROM (16K)

 

0xFFFF

 

0xFF00

Векторы прерываний и сброса

0XFFFF

 

Рис. 2.3. Распределение адресного пространства микроконтроллера MC9S12C128 после сброса

46

Из рис. 2.3 видно, что пространство регистров специальных функций наложится не только на область ПЗУ, но и займёт часть адресов ОЗУ. Поэтому будет доступно только 3 КБ оперативной памяти по адресам $0400..$0x0FFF (3K адресов).

2.3. Цоколёвка выводов корпуса

Расположение выводов микроконтроллера MC9S12C128, выполненного в корпусе 80QFP, представлено на рис. 2.4.

Некоторые выводы микроконтроллера имеют несколько названий, разделённых символом “/”. Такое обозначение указывает на наличие у ножки так называемых альтернативных функций. Т.е. вывод может выполнять одну из нескольких функций по выбору программиста. Первый из перечисленных возле ножки режимов автоматически назначается аппаратными средствами микроконтроллера после включения напряжения.

Рис. 2.4. Разводка выводов микроконтроллера

47

3.Лабораторный стенд ELVIS_S12C128

3.1.Общая характеристика стенда

Внешний вид лабораторного стенда ELVIS_ S12C128 представлен на рис. 3.1. Конструктивно стенд состоит из трех плат с электронными компонентами.

Плата CSMB12С128 предназначена для начального обучения основам микропроцессорной техники на 16-разрядных микроконтроллерах компании Freescale Semiconductor. На ней установлена изучаемая ИС типа MC9S12C128, а также смонтирован интерфейс отладки и программирования Turbo BDM Light USB. Благодаря такуму решению можно загружать разрабатываемое ПО непосредственно в микроконтроллер, позволяя ему исполнять этот код, и наблюдать за этим процессом на экране монитора ПК. Плата CSMB12С128 также содержит небольшое количество устройств ввода/вывода информации. Это позволяет на начальном этапе обучения использовать её отдельно от двух других плат для лабораторных экспериментов.

Вторая плата – это универсальная платформа PBMCUSLK. Она используется для изучения микроконтроллеров различных типов от компании Freescale Semiconductor. Платформа несёт на себе систему стабилизированного питания 5.0 и 3.0 В, интерфейс отладки Turbo BDM Light USB, различные исполнительные устройства. Также плата PBMCUSLK имеет дополнительные устройства ввода/вывода, что несколько расширяет интерфейс между пользователем и изучаемым микроконтроллером. Платформа PBMCUSLK не может быть использована как самостоятельное устройство, а только в комплекте с платой CSMB12С128 или иной аналогичной.

Серый модуль в основании конструкции – это учебный стенд Elvis II компании National Instruments. Он содержит в себе электронную схему, которая позволяет осуществить сопряжение платы PBMCUSLK с виртуальными инструментами, созданными в среде LabVIEW. Очень удобно их использовать в качестве управляющих сигналов для микроконтроллера.

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

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

Плата CSMB12С128 + ПК. Два компонента соединяются друг с другом с помощью кабеля USB. При этом плата CSMB12С128 питается от ПК через этот же интерфейс (рис. 3.1).

Плата CSMB12С128 + платформа PBMCUSLK + ПК. Первый компонент устанавливается в специальный разъём второго. Питание платы CSMB12С128 при этом осуществляется через встроенный стабилизатор универсальной платформы. Последняя, в свою очередь, потребляет энергию или из электрической сети через адаптер ~ 220 В / 9 В, или через интерфейс USB, по которому также осуществляется связь с ПК (рис. 3.11).

Плата CSMB12С128 + плата PBMCUSLK + платформа ELVIS + ПК. Питание всех компонентов стенда осуществляется от адаптера, прилагаемому к платформе Elvis II (рис. 3.14). Связь с компьютером осуществляется с помощью двух USBкабелей: один отвечает за управление виртуальными приборами, а другой – за отладку микроконтроллера.

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

48

Строго говоря, существует ещё и четвертый вариант проведения экспериментов с микроконтроллером MC9S12C128. Это работа в режиме полной программной симуляции с использованием виртуальных устройств ввода/вывода. О технике создания такого рода элементов Вы узнаете в разделе 4.7 данного пособия.

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

Рис. 3.1. Внешний вид стенда ELVIS_S12C128

3.2. Плата микроконтроллера

Плата CSMB12С128 лабораторного стенда несёт на себе следующие устройства:

Однокристальный микроконтроллер MC9S12C128 в корпусе QFP в 80

выводами.

Интерфейс отладки и программирования Turbo BDM Light USB со встроенным стабилизатором напряжения питания микроконтроллера. Адаптер BDM выполнен на основе микроконтроллера MC908JB16FAE, который расположен на обратной стороне платы CSMB12C128.

4 светодиода (LED1..LED4). Активным уровнем, зажигающим эти элементы, является логический ноль.

4 переключателя (SW3-1..SW3-4). Их схемотехническое устройство не предусматривает аппаратной защиты от дребезга. Предполагается, что при необходимости студент исполнит эти функции на программном уровне.

2 нефиксируемые кнопки (SW1 и SW2). Их схемотехническое устройство не предусматривает аппаратной защиты от дребезга. Предполагается, что при необходимости студент исполнит эти функции на программном уровне.

1 потенциометр (RV1). Позволяет задать аналоговый уровень напряжения на входе 5 порта AD микроконтроллера.

49

1 фотодатчик (RZ1). Выполнен на основе фототранзистора. Сигнал с него усиливается операционным усилителем и поступает в аналоговом виде на ножку 4 порта AD микроконтроллера.

Интерфейс RS-232 для изучения передачи данных между микроконтроллером и компьютером по последовательному асинхронному интерфейсу.

Внешний вид платы CSMB12С128 представлен на рис. 3.2.

Рис. 3.2. Внешний вид платы CSMB12С128

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

50