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

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

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

Т. Ремизевич Д. Доброхотов

Лабораторный практикум «Шестнадцатиразрядные микроконтроллеры семейства HCS12»

Москва • 2009

Содержание

 

1. СЕМЕЙСТВО ОДНОКРИСТАЛЬНЫХ МИКРОКОНТРОЛЛЕРОВ HCS12 ............................................

4

1.1. Общая характеристика семейства.....................................................................................

4

1.2. Программно-логическая модель процессора HCS12 ....................................................

14

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

16

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

16

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

16

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

17

1.3.4. Прямая расширенная адресация EXT......................................................................

17

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

18

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

18

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

22

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

23

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

26

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

31

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

34

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

35

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

40

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

43

2. МИКРОКОНТРОЛЛЕР MC9S12C128.............................................................................................................

44

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

44

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

45

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

47

3. ЛАБОРАТОРНЫЙ СТЕНД ELVIS_S12C128.................................................................................................

48

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

48

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

49

3.3. Плата CSMB12C128 + плата PBMCUSLK.....................................................................

54

3.4. Плата CSMB12C128 + плата PBMCUSLK + платформа ELVIS II ..............................

58

3.5. Контроллер HD44780 для ЖКИ......................................................................................

62

4. БАЗОВЫЕ НАВЫКИ РАБОТЫ В СРЕДЕ ПРОГРАММНОГО ПАКЕТА CODEWARRIOR................

68

4.1. Общая характеристика среды разработки......................................................................

68

4.2. Техника создания проекта в среде CodeWarrior............................................................

70

4.3. Создание исходного текста программы на языке ассемблера.....................................

74

4.4. Отладка проекта в среде CodeWarrior ............................................................................

80

4.5. Работа с окнами интерфейса отладчика.........................................................................

83

4.5.1. Окно исходного кода Source.....................................................................................

83

4.5.2. Окно регистров ЦП Register .....................................................................................

85

4.5.3. Окно регистров ЦП Register .....................................................................................

86

4.5.4. Окно Data ...................................................................................................................

87

4.5.5. Окно Assembly ............................................................................................................

89

4.6. Полезные навыки отладки...............................................................................................

90

4.6.1. Действия в окне Memory ...........................................................................................

90

4.6.2. Окно Command. Полезные команды в окне Command...........................................

92

4.6.3. Работа с командным файлом....................................................................................

93

4.7. Виртуальные устройства ввода/вывода..........................................................................

97

4.8. Псевдокоманды и методика их использования для создания программ ..................

103

5. ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО КУРСУ «ШЕСТНАДЦАТИРАЗРЯДНЫЕ

 

МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА HCS12» .........................................................................................

108

Лабораторная работа № 1 .....................................................................................................

108

 

2

Архитектура МК MC68HC12. Знакомство с технологией отладки программы в среде

 

CodeWarrior Development Studio ..........................................................................................

108

Лабораторная работа № 2 .....................................................................................................

117

Способы адресации операндов. Команды загрузки и пересылки данных.......................

117

Лабораторная работа № 3 .....................................................................................................

122

Арифметические команды. Команды сложения и вычитания..........................................

122

Лабораторная работа № 4 .....................................................................................................

126

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

126

Лабораторная работа № 5 .....................................................................................................

130

Команды условных и безусловных переходов. Работа с массивами................................

130

Лабораторная работа № 6 .....................................................................................................

134

Порты ввода/вывода и работа с ними..................................................................................

134

Лабораторная работа № 7 .....................................................................................................

139

Подсистема счётчика временных интервалов....................................................................

139

Лабораторная работа № 8 .....................................................................................................

144

Модуль аналого-цифрового преобразователя ....................................................................

144

6. ДОПОЛНИТЕЛЬНЫЕ ЛАБОРАТОРНЫЕ РАБОТЫ ПО ИЗУЧЕНИЮ ЯДРА HCS12......................

149

Лабораторная работа № 9 .....................................................................................................

149

Расширенные способы индексной адресации.....................................................................

149

Лабораторная работа № 10 ...................................................................................................

152

Расширение системы команд «классического» Ассемблера.............................................

152

7. ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО ИЗУЧЕНИЮ ПЕРИФЕРИЙНЫХ МОДУЛЕЙ МК

 

MC9S12C128 С ПРИМЕНЕНИЕМ ЯЗЫКА C..................................................................................................

154

Введение. Содержание лабораторного практикума и методика проведения занятий....

154

Набор виртуальных приборов стенда ELVIS II, используемых в практикуме ...............

156

Лабораторная работа №1 ......................................................................................................

158

Режим входного захвата модуля таймера...........................................................................

158

Лабораторная работа №2 ......................................................................................................

167

ШИМ-модуль микроконтроллера........................................................................................

167

Лабораторная работа №3 ......................................................................................................

173

Генерация одиночных импульсов с заданными параметрами..........................................

173

Лабораторная работа №4 ......................................................................................................

182

Модуль аналого-цифрового преобразователя ....................................................................

182

Лабораторная работа №5 ......................................................................................................

186

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

186

Лабораторная работа №6 ......................................................................................................

190

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

190

3

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

HCS12

1.1. Общая характеристика семейства

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

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

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

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

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

Несмотря на широчайшее разнообразие МК в портфеле Freescale Semiconductor и на огромную дистанцию по сложности между простейшим 8-разрядным МК в шестивыводном корпусе и мощными 32-разрядными PowerPC в корпусах с 406 выводами, следует обратить внимание на одно общее для всей микроконтроллерной продукции

Freescale Semiconductor свойство:

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

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

Основные области использования МК семейства HCS12(X) – промышленная автоматика и автомобильная электроника. Специфика области применения определяет три особенности, которыми характеризуется семейство:

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

Наличие в составе большинства моделей МК значительной области EEPROM для хранения перепрограммируемых констант пользователя;

Напряжение питания большинства моделей семейства – 5.0 В, что позволяет обеспечить электрическую совместимость в автомобильных применениях.

В основе семейства HCS12(X) – CISC процессорное ядро CPU12. Под общим названием CPU12 следует, прежде всего, понимать программно-логическую модель центрального процессора, поскольку система тактирования, режимы энергосбережения и модуль внутрисхемной отладки в составе процессорного ядра постоянно совершенствуются. Многообразие способов адресации CPU12, возможность манипулирования битами в полном адресном пространстве ОЗУ, множество команд сравнения с выбором и размещением по заданному адресу минимального или максимального значения, обуславливают компактность исполняемого кода прикладной

4

программы. По этому показателю процессорное ядро CPU12 – одно из лучших среди 16разрядных процессоров.

Процессорное ядро CPU12 продолжает развиваться как в направлении совершенствования технологического процесса, сопровождающееся повышением частоты тактирования, так и в направлении совершенствования архитектуры, которое привело к появлению в составе ядра нового оригинального сопроцессора. В настоящее время в семействе HCS12(Х) имеется уже три модификации процессорного ядра:

Родоначальник семейства – процессор HC12 с частотой внутренней шины 8 МГц;

Наиболее активно используемый в настоящее время процессор HCS12 – 25 МГц;

Представленный в июне 2005 г. новый перспективный процессор HCS12X – 50 МГц с RISC-сопроцессором на 100 МГц. Модуль сопроцессора и прямого доступа к памяти SmartDMA XGATE способен выполнять быстрые пересылки

массивов данных в режиме “прозрачного” прямого доступа к памяти, который не

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

В соответствие с типом процессорного ядра пользователи МК от Freescale Semiconductor часто используют терминологию трех семейств: семейство HC12, семейство HCS12 и семейство HCS12X.

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

Имеют экономичное 16-разрядное CISC процессорное ядро, которое позволяет производить операции над 8- и 16-разрядными операндами. Максимальная частота внутренней шины составляет 8 МГц для HC12, 25 МГц - для HCS12, 50 МГц – для HCS12X. Нижняя граница частоты тактирования отсутствует, что позволяет иметь в составе процессорного ядра встроенный низкочастотный генератор тактирования, который предназначен для сохранения работоспособности системы в случае отказа внешнего высокочастотного тактового генератора. Система команд CPU12 включает 208 инструкций языка ассемблер, в том числе команды целочисленного умножения шестнадцатиразрядных операндов со знаком и без него, пять типов команд деления 16:16

и32:16 в целочисленном и дробном формате, команды выбора максимального и минимального числа, команды для осуществления операций нечеткой логики. Операции сложения или вычитания двухбайтовых чисел выполняются за 4 такта внутренней шины МК. CPU12 поддерживает 16 способов адресации, при этом исполнение каждой команды из группы арифметических или логических команд возможно с использованием по крайней мере 12 способов адресации. Процессоры, у которых все команды возможны со всеми способами адресации, принято называть ортогональными. Поэтому CPU12 по своим свойствам весьма близок к ортогональному. CPU12 имеет двухадресные команды, которые позволяют выполнять пересылки 8- и 16разрядных данных между двумя ячейками памяти или регистрами специальных функций минуя регистры центрального процессора.

Имеют встроенный модуль flash-памяти программ. МК семейства HCS12 и HCS12X обладают модулем flash-памяти третьего поколения (по классификации компании Freescale Semiconductor), которая выполнена по технологии 0.25 мкм. Модули flash-памяти третьего поколения выполняют операции стирания/программирования с использованием встроенного повышающего регулятора напряжения в полном диапазоне

температур (от −40 °C до +125 °C). Блок управления в составе модуля flash ПЗУ имеет встроенный конечный автомат, который обеспечивает всю последовательность действий по стиранию/программированию, включая формирование временных задержек, что обеспечивает высокую надежность записи данных и их длительное последующее хранение. Кроме того, упрощается внутрисхемное программирование, при котором

5

алгоритм программирования становится коротким. Гарантированное число циклов стирания/программирования в полном диапазоне температур равно 10000, время записи 256 КБ составляет около 5 сек. Резидентная flash-память МК разделена на четыре сегмента, возможно программирование одного сегмента из другого, т.е. не требуется загрузки фрагмента управляющей программы в ОЗУ.

Большинство моделей семейства HCS12(X) содержат на кристалле специальный модуль flash ПЗУ с функцией эмуляции EEPROM. Обычно это массив ячеек памяти, объемом 4 КБ или 2 КБ, которые доступны для чтения 16-разрядными словами. Стирание

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

Несмотря на то, что МК семейства HCS12(X) обладают резидентным ПЗУ значительного объема (до 512 КБ), многие модели имеют на кристалле модуль интерфейса внешней памяти EBUS, который позволяет адресовать дополнительную память программ

иданных. В большинстве моделей внешняя шина мультиплексированная, “занимает” линии трех 8-разрядных портов. Обращение к внешней памяти возможно как с использованием 16-разрядной магистрали данных (в формате 16 линий адреса мультиплексированы с 16 линиями данных плюс 8 линий для сигналов WR/RD и выбора страницы внешней памяти), так и с 8-разрядной магистралью данных (16 линий адреса/8 линий данных плюс те же 8 дополнительных линий).

Библиотека модулей семейства включает порты ввода/вывода с двунаправленными индивидуально программируемыми линиями; многофункциональный таймер с 16-разрядной временной базой, восемью каналами IC/OC и дополнительным счетчиком внешних событий; модуль 8-канального 10-разрядного АЦП последовательного приближения; модуль ШИМ общего назначения с независимой от таймера временной базой и программируемой разрешающей способностью в 8 или 16 бит; модуль ЦАП; другие специализированные модули.

Все МК имеют три режима энергопотребления: активный режим, в котором исполняется прикладная программа; режим ожидания (Wait), в котором останавливается тактирование центрального процессора, т.е. программа не выполняется, но продолжается тактирование всех периферийных модулей; режим останова (Stop), в котором прекращается тактирование ядра и всей периферии. В МК HCS12 и HCS12X число режимов энергосбережения расширено, введены дополнительные опции в режим ожидания, также введен режим псевдоостанова, выход из которого осуществляется также быстро, как из режима ожидания.

Все МК семейства HCS12(X) позволяют реализовать режимы программирования

иотладки в системе, благодаря наличию на кристалле модуля внутрисхемной отладки

BDM.

В настоящее время компания Freescale Semiconductor выпускает около 40 МК с процессорным ядром HCS12 (табл. 2.1). Причем процесс создания модельного ряда на основе различного набора стандартной периферии (таймеры, АЦП, контроллеры последовательного ввода/вывода, ШИМ модуляторы) можно считать завершенным. Последние модели семейства HCS12 выходят уже со специализированной периферией. МК с первой версией процессорного ядра HC12 продолжают выпускаться, однако новые российские разработки на их основе вряд ли целесообразны. При необходимости ознакомиться с их модельным рядом читатель может на сайте http://www.freescale.com.

Традиционно для Freeescale Semiconductor микроконтроллеры внутри одного семейства принято группировать в серии. МК одной серии обладают одним и тем же набором периферии, однако различаются объемами резидентной памяти и числом линий портов ввода/вывода. При разработке модельного ряда семейства HCS12 разработчики особо тщательно следили за совместимостью МК по выводам корпусов как внутри одной серии, так и между отдельными сериями (табл. 1.1). Тогда замена одной модели МК на

6

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

В настоящее время в семействе HCS12 – 6 серий МК. Серия А – МК общего применения с тремя типами относительно простых контроллеров последовательных интерфейсов. Серии С и CG – низкостоимостные модели, которые не имеют на кристалле EEPROM, но способны работать при пониженном напряжении питания. Серия D объединяет наибольшее число МК. Ориентирована на использование в CANприложениях. Обладает уникальными моделями, которые содержат до 5 CANконтроллеров на кристалле! Серия E – МК с модулем специализированного ШИМ генератора для управления электроприводом, который по функциональным возможностям не отличается от аналогичных генераторов в составе высокоскоростного DSP семейства 56F800/E. Серия H – специализированные МК для управления приборным панелями автомобилей, содержат драйверы шаговых двигателей стрелочных индикаторов и контроллер управления ЖК индикатором. Однако указанная производителем специализация не препятствует использованию этих МК в устройствах другого типа с многофункциональными приборными панелями. Три последних МК в табл. 1.1 – родоначальники новых серий. Среди них особенно интересен МК HC9S12NE64 c контроллером 10/100Mbit Ethernet на кристалле.

7

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

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

8

то время, как главным отличием МК нового семейства HCS12X является наличие в их составе нового модуля сопроцессора XGATE.

9

 

 

ПЗУ

 

 

ОЗУ,

 

 

EEPROM,

 

линийЧисло

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

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

 

 

 

 

 

 

 

 

 

 

Тип МК

 

FLASH,

 

 

байт

 

 

байт

 

 

 

 

 

 

байт

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Серия А

MC9S12A32

32000

4096

1024

91

IIC

 

 

 

 

 

 

 

 

 

59

2xSCI

MC9S12A64

65536

4096

1024

SPI

91

 

 

 

 

 

 

 

 

 

 

 

MC9S12A128

131072

8192

2048

59

 

MC9S12A128B

91

IIC

 

 

 

 

 

 

 

 

MC9S12A256B

26144

12288

4096

59

2xSCI

91

SPI

 

 

 

 

 

 

 

 

 

 

MC9S12A512

512000

4096

1024

59

 

Серия С

 

 

 

 

 

MC9S12C32

32000

2000

нет

60

CAN

 

 

 

 

 

MC9S12C64

64000

4000

нет

60

SCI

MC9S12C96

96000

4000

нет

60

SPI

MC9S12C128

128000

4000

нет

60

 

Серия D

 

 

 

 

 

MC9S12D32

32000

4096

1024

91

CAN

 

 

 

 

 

IIC

 

 

 

 

 

MC9S12D64

65536

4096

1024

59

2xSCI

91

SPI

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CAN

 

65536

4096

1024

59

IIC

MC9S12DJ64

J1850

91

 

 

 

 

2xSCI

 

 

 

 

 

 

 

 

 

 

SPI

 

 

 

 

 

Табл. 1.1. Модельный ряд МК семейства HCS12

Таймер, Число каналов/ разрядность

 

АЦП,

Число каналов/ разрядность

 

Модуль ШИМ, число каналов/ разрядность

 

 

Специальные

модули *

Частота шины CPU, МГц

Напряжение Питания, В

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8/16

 

8/10

 

4/16

 

 

 

 

25

5

 

 

 

 

8/8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4/16

 

 

 

 

 

 

 

 

8/16

 

8

 

7/8

 

 

 

 

25

5

 

 

 

 

 

 

 

8/8

 

 

 

 

 

 

 

 

8/16

 

8

 

4/16

 

 

EBUS

25

5

 

 

 

 

8/8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2/10

 

4/16

 

 

 

 

 

 

 

 

8/16

 

3/10

 

 

 

EBUS

25

5

 

 

 

 

8/8

 

 

 

 

 

 

8/10

 

 

 

 

 

 

 

 

 

8/16

 

 

 

 

 

 

 

 

 

 

 

 

16/10

 

7/8

 

 

 

 

25

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8/16

 

8/10

 

6/8

 

 

 

LVI

16

 

 

 

 

 

 

 

 

25

3.3

 

 

 

 

 

 

 

 

 

 

 

 

8/16

 

8

 

6/8

 

 

 

LVI

25

 

 

 

 

 

 

5.0

 

8/16

 

8

 

6/8

 

 

 

LVI

25

 

 

 

 

 

 

 

 

 

8/16

 

8

 

6/8

 

 

 

LVI

25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8/16

 

8/10

 

4/16

 

 

 

 

25

5.0

 

 

 

8/8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4/16

 

 

 

 

 

 

 

 

8/16

 

8/10

 

7/8

 

 

 

 

25

5.0

 

 

 

 

 

 

8/8

 

 

 

 

 

 

 

 

8/16

 

8/10

 

4/16

 

 

 

 

25

5.0

 

 

 

7/8

 

 

 

 

 

 

 

 

 

 

8/8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10