Одним из наиболее популярных вариантов микроконтроллеров семейства HCS12 является MC9S12DP256. В этом разделе мы опишем дополнительные свойства модуля контроллера msCAN12 в составе MC9S12DP256.
Основные изменения обсуждаемого модуля по сравнению с ранее рассмотренным состоят в следующем:
• число буферов в приемном модуле увеличивается с двух до пяти;
• осуществляется более жесткое программное управление передачей из трех передающих буферов;
• увеличивается число управляющих регистров;
• добавлен режим «только прослушивание»;
• добавлена возможность установки временных меток для сообщений;
• удалена функция совмещения линий универсального порта с линиями входа/выхода контроллера CAN;
• уменьшено пространство памяти, используемое модулем msCAN (от 128 до 64 однобайтовых ячеек памяти).
Рассмотрим кратко каждое из перечисленных изменений. Двухбуферная структура контроллера CAN в HC12 часто вызывает запаздывание реакции сетевых узлов, когда от шины поступают несколько сообщений. Чтобы исправить этот недостаток, модуль msCAN12 в составе MC9S12DP256 дополнили пятью структурами данных типа очереди (FIFO — «первым пришел, первым вышел»).
Число передающих буферов (3), не изменилось, но появилась дополнительная управляющая структура. В новых контроллерах msCAN12 один передающий буфер из трех выбирается посредством установки бита передачи TXi в регистре выбора передающего буфера (i — номер желательного буфера). Напомним, что ранее рассмотренном контроллере msCAN12 передающий буфер выбирается на основе информации о приоритете. Это изменение уменьшило физическое адресное пространство, выделенное для передающего буфера и упростило доступ к буферам передач.
В дополнение к функциональным изменениям в существующих девяти регистрах управления, контроллер MC9S12DP256 msCAN содержит три дополнительных регистра: регистр выбора передающего буфера msCAN (CANTBSEL), регистры старшего байта и младшего байта временной метки (TSRH:TSRL).
Режим «только для прослушивания» (LISTEN) позволяет программисту устанавливать контроллер CAN в рецессивное состояние на все время пока принимаются достоверные данные и кадры удаленного запроса. Контроллер CAN может быть запрограммирован на работу в таком режиме путем установки бита LISTEN в регистре управления 1 msCAN12. Дополнительная возможность присваивать временную метку каждому сообщению, упомянутая в предыдущем параграфе, позволяет программисту легко отслеживать передаваемые и получаемые сообщения. Исключение порта регистров CAN не позволяет использовать его для создания универсального порта входов–выходов (I/O). Однако исключение этого порта делает контроллер CAN более компактным, а для создания порта входов/выходов можно использовать другие порты контроллера MC9S12DP256.
В результате изменений, которые мы перечислили, карта памяти, контроллера msCAN12 в микроконтроллера MC9S12DP256 изменится в соответствии с рис. 9.31.
Рис. 9.31. Карты памяти для контроллеров CAN в HC12 и MC9S12DP256
9.5. Пример программирования контроллера msCAN Схема включения аппаратных средств для двух отладочных плат Axiom
Рис. 9.32.
В этом разделе, мы рассмотрим простое применение, в котором два МК семейства 68HC12 объединяются в CAN сеть при помощи своих встроенных модулей msCAN12. Сначала мы покажем используемые в примере аппаратные средства (рис. 9.32), а затем представим программы, необходимые для работы обоих контроллеров. Для этого применения, мы выбрали отладочную плату Axiom CMD912 с микроконтроллером MC9S12DP256. Специальная плата была выбрана, чтобы воспользоваться преимуществами трансивера CAN, встроенного в ИС PCA82C259 компании Philips. Каждая плата должна выполнять собственную программу, чтобы реализовать простую связь между двумя msCAN модулями. Первая из программ, показанных ниже, является файлом заголовков (header file) 68hc9s12dp256.h, который содержит описания адресов регистров. Показан только фрагмент этого файла, относящийся к нашим программам CAN.
#define _REG_BASE 0
#define P(off) *(unsigned char volatile *)(_REG_BASE + off)
#define COPCTL _P(0x3C) /*управление сторожевым таймером */
#define CAN0CTL0 _P(0x0140) /*управляющий регистр 0 */
#define CAN0CTL1 _P(0x0141) /*CAN0 регистр управления 1 */
#define CAN0BTR0 _P(0x0142) /*CAN0 регистр синхронизации 0 */
#define CAN0BTR1 _P(0x0143) /*CAN0 регистр синхронизации 1 */
#define CAN0RFLG _P(0x0144) /*CAN0 флаги приема */
#define CAN0TFLG _P(0x0146) /*CAN0 флаги передачи */
#define CAN0TBEL _P(0x014A) /*CAN0 выбор передающего буфера */
#define CAN01DM0 _P(0x0154) /*CAN0 регистр маскирования идентификаторов 0*/
#define CAN01DM1 _P(0x0155) /*CAN0 регистр маскирования идентификаторов 1*/
#define CAN01DM2 _P(0x0156) /*CAN0 регистр маскирования идентификаторов 2*/
#define CAN0IDM3 _P(0x0157) /*CAN0 регистр маскирования идентификаторов 3*/
#define CAN0IDM4 _P(0x015C) /*CAN0 регистр маскирования идентификаторов 4*/
#define CAN0IDM5 _P(0x015D) /*CAN0 регистр маскирования идентификаторов 5*/
#define CAN0IDM6 _P(0x015E) /*CAN0 регистр маскирования идентификаторов 6*/
#define CAN0IDM7 _P(0x015F) /*CAN0 регистр маскирования идентификаторов 7*/
#define CAHORXFG0 _P(0x0160) /*основной буфер RX CAN0 */
#define CAN0RXFG1 _P(0x0161) /*основной буфер RX CAN0 */
#define CAN0RXFG2 _P(0x0162) /*основной буфер RX CAN0 */
#define CAN0RXFG3 _P(0x0163) /*основной буфер RX CAN0 */
#define CAN0RXFG4 _P(0x0164) /*основной буфер RX CAN0 */
#define CAN0RXFG5 _P(0x0165) /*основной буфер RX CAN0 */
#define CAN0RXFG6 _P(0x0166) /*основной буфер RX CAN0 */
#define CAN0RXFG7 _P(0x0167) /*основной буфер RX CAN0 */
#define CAN0RXFG8 _P(0x0168) /*основной буфер RX CAN0 */
#define CAN0RXFG9 _P(0x0169) /*основной буфер RX CAN0 */
#define CAN0RXFGA _P(0x016A) /*основной буфер RX CAN0 */
#define CAM0RXFGB _P(0x016B) /*основной буфер RX CAN0 */
#define CAN0RXFGC _P(0x016C) /*основной буфер RX CAN0 */
#define CAN0RXFGD _P(0x016D) /*основной буфер RX CAN0 */
#define CAN0RXFGE _P(0x016E) /*основной буфер RX CAN0 */
#define CAN0RXFGF _P(0x016F) /*основной буфер RX CAN0 */
#define CAN0TXFG0 _P(0x0170) /*основной буфер TX CAN0 */
#define CAN0TXFG1 _P(0x0171) /*основной буфер TX CAN0 */
#define CAN0TXFG2 _P(0x0172) /*основной буфер TX CAN0 */
#define CAN0TXFG3 _P(0x0173) /*основной буфер TX CAN0 */
#define CAN0TXFG4 _P(0x0174) /*основной буфер TX CAN0 */
#define CAN0TXFG5 _P(0x0175) /*основной буфер TX CAN0 */
#define CAN0TXFG6 _P(0x0176) /*основной буфер TX CAN0 */
#define CAN0TXFG7 _P(0x0177) /*основной буфер TX CAN0 */
#define CAM0TXFG8 _P(0x0178) /*основной буфер TX CAN0 */
#define CAN0TXFG9 _P(0x0179) /*основной буфер TX CAN0 */
#define CAN0TXFGA _P(0x017A) /*основной буфер TX CAN0 */
#define CAN0TXFGB _P(0x017B) /*основной буфер TX CAN0 */
#define CAN0TXFGC _P(0x017C) /*основной буфер TX CAN0 */
#define CAN0TXFGD _P(0x017D) /*основной буфер TX CAN0 */
#define CAN0TXFGE _P(0x017E) /*основной буфер TX CAN0 */
#define CAN0TXFGF _P(0x017F) /*основной буфер TX CAN0 */
/********************************************************************/
Следующая программа выполняется контроллером первой платы, показанной в верхней части рис. 9.32. Эта программа инициализирует связь, а затем непрерывно посылает в сеть 8-байтовый блок данных ($01, $02, $03, $04, $05, $06, $07, и $08).
/********************************************************************/
/* CANONE.C Эта программа запускает плату 68HC12 и связывает ее с другой*/
/* платой 68HC12 с помощью контроллера CAN */
/* Авторы: Даниэль Пак и Стив Барретт */
/* Дата создания: 29 июля 2004 */
Оглавление
-
ПРЕДИСЛОВИЕ
-
Структура книги
-
Учебные системы
-
Целевая аудитория
-
Благодарности
-
Глава 1 ПЕРВОЕ ЗНАКОМСТВО СО ВСТРАИВАЕМЫМИ СИСТЕМАМИ
-
1.1. Что такое встраиваемая система?
-
1.2. Особенности встраиваемых систем
-
1.2.1. Работа в реальном времени
-
1.2.2. Миниатюризация размеров и процесс тестирования
-
1.2.3. Минимизация энергии потребления
-
1.2.4. Интерфейс пользователя и интерфейс сопряжения с объектом
-
1.2.5. Многозадачность
-
1.2.6. Минимизация стоимости
-
1.2.7. Ограничение объема памяти
-
1.2.8. Программно–аппаратный дуализм
-
1.3. Введение в микроконтроллеры семейства 68HC12 и HCS12
-
1.4 Микроконтроллеры HCS12
-
1.4.1. Семейство HCS12
-
1.4.2. Обозначения МК
-
1.4.3. Модельный ряд HCS12
-
1.5. Заключение по главе 1
-
1.6. Вопросы и задания
-
Глава 2 ПРОГРАММИРОВАНИЕ ВСТРАИВАЕМЫХ СИСТЕМ И СТРУКТУРНОЕ ПРОЕКТИРОВАНИЕ
-
2.1. Почему мы программируем микроконтроллеры на Си?
-
2.2. Преимущества программирования на языке ассемблер
-
2.3. Преимущества языков высокого уровня
-
2.3.1. Выбираем язык высокого уровня для программирования встраиваемых систем
-
2.3.2. Краткая история языка Си
-
2.4. Оптимальная стратегия — программирование на Си и на ассемблере
-
2.5. Структурное проектирование
-
2.5.1. Основные положения метода структурного проектирования
-
2.5.2. Документирование программ
-
2.5.3. Как язык Си соотносится со структурным проектированием
-
2.6. Рабочие тетради
-
2.6.1. Порядок ведения записей
-
2.6.2. Содержание записей
-
2.7. Блок схемы алгоритмов
-
2.8. Пример применения
-
2.9. Заключение по главе 2
-
2.10 Что ещ е почитать?
-
2.11 Вопросы и задания
-
Глава 3 ОСНОВЫ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ НА СИ
-
3.1. Введение в программирование на Си
-
3.1.1. Глобальные и локальные переменные
-
3.2. Типы данных в Си
-
3.3. Операторы языка Си
-
3.4. Функции
-
3.4.1. Что такое функция?
-
3.4.2. Основная программа
-
3.4.3. Прототипы функций
-
3.4.4. Описание функций
-
3.4.5. Вызов функций, передача параметров, возврат полученных значений
-
3.5. Файлы заголовков
-
3.6. Директивы компилятора
-
3.6.1. Директивы условной компиляции
-
3.7. Конструкции программирования
-
3.8. Операторы для организации программных циклов
-
3.8.1. Оператор FOR
-
3.8.2. Оператор WHILE
-
3.8.3. Оператор DO-WHILE
-
3.9. Операторы принятия решения
-
3.9.1. Оператор IF
-
3.9.2. Оператор IF-ELSE
-
3.9.3. Оператор IF-ELSE IF-ELSE
-
3.9.4. Оператор SWITCH
-
3.10. Массивы
-
3.11. Указатели
-
3.12. Структуры
-
3.13. Процесс программирования и отладки микропроцессорной системы
-
3.13.1. Технология создания программного кода
-
3.13.2. Режим отладки BDM
-
3.13.3. Аппаратные и программные средства отладчика P & E от компании PEMICRO
-
3.13.4. Эмуляторы
-
3.13.5. Логические анализаторы
-
3.14. Особенности компилятора и ассемблера
-
***
-
3.15. Заключение по главе 3
-
3.16. Что еще почитать?
-
3.17. Вопросы и задания
-
Глава 4 МИКРОКОНТРОЛЛЕРЫ 68HC12 И HCS12: АРХИТЕКТУРА И ПРОГРАММИРОВАНИЕ
-
4.1. Аппаратные средства микроконтроллеров семейства 68HC12
-
***
-
4.2. Аппаратные средства МК семейства HCS12
-
4.3. Режимы работы МК семейства 68HC12/HCS12
-
4.3.1. Рабочие режимы
-
4.3.2. Режимы работы отладочной платы M68EVB912B32
-
4.4. Назначение выводов МК
-
4.5. Регистры специальных функций МК
-
4.5.1. Виртуальный адрес блока регистров
-
4.6. Порты ввода/вывода
-
4.6.1. Спецификация портов ввода/вывода
-
4.7. Подсистема памяти МК B32
-
4.7.1. Карта памяти МК B32
-
4.7.2. Изменение адресов в карте памяти МК
-
4.8. Подсистема памяти МК DP256
-
4.9. Состояния сброса и прерывания МК
-
4.9.1. Реакция МК на внешние события
-
4.10. Состояния сброса и прерывания в МК 68HC12
-
4.10.1. Состояние сброса МК
-
4.10.2. Прерывания
-
4.10.3. Вектора исключений
-
4.10.4. Система приоритетов для исключений
-
4.10.5. Регистры подсистемы прерывания
-
4.11. Процесс перехода к подпрограмме прерывания
-
4.12. Оформление подпрограммы прерывания на Си
-
4.13. Система тактирования
-
4.13.1.Система тактирования отладочной платы MC68HC912B32EVB
-
4.14. Подсистема реального времени — модуль таймера
-
4.14.1. Структура модуля таймера
-
4.14.2. Счетчик временной базы
-
4.14.3. Регистры для управления счетчиком временной базы
-
4.14.4. Каналы захвата/сравнения
-
4.14.5. Счетчик событий
-
4.15. Модуль меток реального времени
-
4.16. Модуль таймера ECT в составе МК МC68HC12BE32 и HCS12
-
4.16.1. Небуферированные каналы входного захвата
-
4.16.2. Буферированные каналы входного захвата
-
4.16.3. Особенности счетчиков событий
-
4.16.4. Регистры управления модуля EST
-
4.17. Обмен информацией в последовательном коде: многофункциональный последовательный интерфейс
-
4.17.1. Термины последовательного обмена
-
4.18. Контроллер асинхронного обмена SCI
-
4.18.1. Передатчик контроллера SCI
-
4.18.2. Приемник контроллера SCI
-
4.18.3. Регистры контроллера SCI
-
4.18.4. Алгоритмы программного об служивания контроллера SCI
-
4.18.5. Пример программирования контроллера SCI
-
4.19. Синхронный последовательный интерфейс SPI
-
4.19.1 Концепция интерфейса SPIФункциональная схема обмена между двумя контроллерами SPI
-
4.19.2. Алгоритмы работы контроллера SPI
-
4.19.3. Регистры контроллера SPI
-
4.19.4. Алгоритмы программного обслуживания контроллера SPI
-
4.19.5 Периферийные ИС с интерфейсом SPI
-
4.20. Введение в теорию аналого-цифрового преобразования
-
4.20.1. Частота дискретизации сигнала
-
4.20.2. Представление аналоговой величины в цифровом коде
-
4.20.3.Квантование по уровню и разрешающая способность
-
4.20.4 Скорость потока данных оцифровки
-
4.21. Принцип действия АЦП
-
4.21.1. АЦП последовательного приближения
-
4.22. Подсистема аналого-цифрового преобразования МК 68HC12
-
4.22.1 Структура и порядок функционирования
-
4.22.2. Регистры управления модуля ATD
-
4.22.3. Пример программирования модуля ATD
-
4.22.4. Обслуживание прерываний от модуля ATD
-
4.23. Особенности модуля ATD в составе МК семейства HCS12
-
4.23.1. Выбор разрядности АЦП
-
4.23.2. Представление результата измерения
-
4.23.3. Запуск измерительной последовательности от внешнего сигнала
-
4.23.4. Программируемое число преобразований в измерительной последовательности
-
4.23.5. Увеличение числа аналоговых входов
-
4.23.6. Регистры модуля ATD HCS12
-
4.24. Подсистема широтно-импульсной модуляции
-
4.24.1. Структура модуля PWM
-
4.24.2. Режимы центрированной и фронтовой ШИМ
-
4.24.3. Система тактирования
-
4.24.4. Регистры модуля PWM
-
4.24.5. Примеры программирования модуля PWM
-
4.25. Ограничение энергии потребления
-
4.25.1. Как остановить МК 68HC12
-
4.25.2. Как вывести МК 68HC12 из состояния пониженного энергопотребления
-
4.26. Советы по использованию платы отладки MC68EVB912B32
-
4.27. Заключение по главе 4
-
4.28. Что еще почитать?
-
4.29. Вопросы и задания
-
Глава 5 ОСНОВЫ СОПРЯЖЕНИЯ МК С УСТРОЙСТВАМИ ВВОДА/ВЫВОДА
-
5.1. Электрические характеристики МК 68HC12
-
5.1.1. Нагрузочные характеристики
-
5.1.2. Что произойдет, если Вы должным образом не учтете электрические характеристики периферийных ИС?
-
5.1.3. Входные и выходные характеристики логических элементов
-
5.2. Устройства дискретного ввода: кнопки, переключатели, клавиатуры
-
5.2.1. Кнопки и переключатели
-
5.2.2. DIP переключатели
-
5.2.3. Клавиатуры
-
5.3. Устройства индикации: светодиоды, семисегментные индикаторы, индикаторы логического выхода с тремя состояниями
-
5.3.1. Светодиоды
-
5.3.2. Семисегментные индикаторы
-
5.3.3. Индикаторы для логического выхода с тремя состояниями
-
5.4. Программное обслуживание дискретных входов и выходов
-
5.5. Подавление механического дребезга контактов переключателей
-
5.5.1. Аппаратная защита от механического дребезга контактов
-
5.5.2. Программная защита от механического дребезга контактов
-
5.5.3. Пример программной защиты
-
5.6. Жидкокристаллические индикаторы
-
5.6.1. Краткие сведения о жидкокристаллических индикаторах
-
5.6.2. Сопряжение МК с символьным ЖК индикатором
-
5.6.3 Сопряжение МК с графическим ЖК дисплеем
-
5.7. Управление электрическим двигателем
-
5.7.1. Силовые полупроводниковые ключи
-
5.7.2. Оптоэлектронная потенциальная развязка
-
5.7.3. Инвертор напряжения
-
5.8. Кодовый замок
-
5.8.1. Схема подключения периферийных устройств
-
5.8.2. Программа управления
-
5.9. Интерфейс МК с аналоговыми датчиками
-
5.10. Интерфейс RS-232
-
5.11. Заключение по главе 5
-
5.12. Что еще почитать?
-
5.13. Вопросы и задания
-
Глава 6 ДОБРО ПОЖАЛОВАТЬ В РЕАЛЬНЫЙ МИР!
-
6.1. Ужасные истории об ошибках проектирования
-
6.1.1. Случай квадратичного генератора
-
6.1.2. Случай таймера для лазерного излучения
-
6.2. Правила обращения с микросхемой 68НС12 и рекомендации по проектированию
-
6.2.1. Рекомендации по обращению со CMOS
-
6.2.2. Рекомендации по проектированию на CMOS
-
6.3. Исследование помех
-
6.3.1. Что такое помехи
-
6.3.2. Электромагнитная совместимость
-
6.3.3. Спецификации системы помех — не будем крепки задним умом!
-
6.3.4. Методы снижения помех
-
6.4. Защитное программирование
-
6.5. Методики испытаний на наличие помех
-
6.5.1. Обнаружение помех
-
6.5.2. Испытание на чувствительность к помехам
-
6.5.3. Испытания на электромагнитную совместимость
-
6.6. Управление энергопотреблением
-
6.6.1. Параметры потребляемой мощности для микроконтроллера 68HC12
-
6.6.2. Типы батарей
-
6.6.3. Емкость батарей
-
6.6.4. Стабилизация напряжения
-
6.6.5. Схемы супервизора для микропроцессора
-
6.6.6. Меры энергосбережения
-
6.7. Заключение по главе 6
-
6.8. Что еще прочитать?
-
6.9. Вопросы и задания
-
Глава 7 ПРИМЕРЫ ВСТРОЕННЫХ СИСТЕМ УПРАВЛЕНИЯ
-
7.1. Система привода робота, движущегося вдоль стенок лабиринта
-
7.1.1. Описание проекта
-
7.1.2. Подсистемы 68HC12, используемые в проекте
-
7.1.3. Компоненты системы
-
7.1.4. Структура программы и блок-схема алгоритма
-
7.1.5. Программный код
-
7.2. Лазерный проектор
-
7.2.1. Описание проекта
-
7.2.2. Подсистемы 68HC12 используемые в проекте
-
7.2.3. Описание некоторых компонентов системы
-
7.2.4. Аппаратные средства
-
7.2.5. Структура программы и блок-схема алгоритма
-
7.2.6. Программный код
-
7.2.7. Испытания устройства
-
7.2.8. Заключительные испытания системы управления
-
7.3. Цифровой вольтметр
-
7.3.1. Описание проекта
-
7.3.2. Системы 68HC12 используемые в проекте
-
7.3.3. Расчет интерфейса модуля ATD
-
7.3.4. Структура программы и блок-схема алгор итма
-
7.3.5. Программа управления
-
7.3.6. Измерение неэлектрических величин
-
7.4. Стабилизация скорости вращения двигателя с использованием оптического тахометра
-
7.4.1. Описание проекта
-
7.4.2. Немного теории
-
7.4.3. Анализ
-
7.4.4. Структура программы и блок-схема алгоритма
-
7.4.5. Программный код
-
7.4.6. Испытания
-
7.5. Парящий робот
-
7.5.1. Описание проекта
-
7.5.2. Системы HCS12 используемые в проекте
-
7.5.3. Теоретическое обсуждение
-
7.5.4. Структура программы и блок-схема алгоритма
-
7.5.5. Программный код
-
7.5.6. Некоторые комментарии
-
7.6. Система защиты компьютера, основанная на нечеткой логике
-
7.6.1. Описание проекта
-
7.6.2. Использование системы HCS12
-
7.6.3. Основы теории
-
7.6.4. Структура программы и блок-схема алгоритма
-
7.6.5. Описание системы
-
7.6.6. Обсуждение проекта
-
7.6.7. Программный код
-
7.6.8. Некоторые комментарии
-
7.7. Электронная версия игры в «15»
-
7.7.1. Описание проекта
-
7.7.2. Системы HCS12 используемые в проекте
-
7.7.3. Основы теории
-
7.7.4. Схемное решение, структура программы и блок-схема алгоритма
-
7.7.5. О компонентах системы
-
7.7.6. Программный код
-
7.7.7. Некоторые комментарии
-
7.8. Программирование резидентного Flash ПЗУ микроконтроллера B32 в составе платы отладки MC68HC912B32EVB
-
7.9. Заключение по главе 7
-
7.10. Что еще прочитать?
-
7.11. Вопросы и задания
-
Глава 8 ОПЕРАЦИОННЫЕ СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ
-
8.1. Рассказ: официант — «живая» операционная система реального времени
-
8.2. Что является целью ОСРВ?
-
8.3. Обзор концепций
-
8.3.1. Требования к динамическому распределению RAM
-
8.3.2. Динамическое распределение памяти
-
8.3.3. Структуры данных
-
8.4. Основные понятия
-
8.4.1. Что такое задача?
-
8.4.2. Управление задачами
-
8.4.3. Компоненты многозадачных систем
-
8.5. Типы операционных систем реального времени
-
8.5.1. Системы с циклическим опросом
-
8.5.2. Циклический опрос с прерываниями
-
8.5.3. Карусельные системы
-
8.5.4. Смешанные системы
-
8.5.5. Системы с управлением по прерыванию
-
8.5.6. Кооперативная многозадачность
-
8.5.7. Многозадачные системы с преимущественным приоритетом
-
8.6. Проблемы ОСРВ
-
8.6.1. Конкуренция
-
8.6.2. Повторная входимость
-
8.6.3. Межзадачные связи
-
8.6.4. Безопасность, проверка и безотказная работа
-
8.6.5. Главный вопрос
-
8.7. Выполнение операционной системы реального времени
-
8.8. Пример применения: ОСРВ циклического опроса
-
8.8.1. Краткий обзор проекта
-
8.8.2. Пример кода
-
8.8.3. Испытание контроллера усилителя
-
8.9. Другая прикладная программа: цикл опроса с прерываниями
-
8.10. Сложное прикладное устройство: имитатор ОСРВ
-
8.10.1. Краткий обзор проекта
-
8.10.2. Типовой код
-
8.11.Заключение по главе 8
-
8.12. Что еще почитать?
-
8.13. Вопросы и задания
-
Глава 9 РАСПРЕДЕЛЕННЫЕ СЕТИ С ИНТЕРФЕЙСОМ msCAN
-
9.1. Компьютерные сети
-
9.2. Промышленные сети
-
9.3. Сети с протоколом CAN
-
9.3.1. Протокол CAN
-
9.3.2. Модуль контроллера последовательного обмена msCAN12
-
9.3.3. Проблемы синхронизации
-
9.3.4. Конфигурирование модуля msCAN12 для работы в сети
-
9.4. Различия между контроллерами msCAN в составе 68HC12 и HCS12
-
9.5. Пример программирования контроллера msCAN Схема включения аппаратных средств для двух отладочных плат Axiom
-
9.6. Контроллер последовательного обмена BDLC
-
9.7. Заключение по главе 9
-
9.8. Что еще почитать?
-
9.9. Вопросы и задания
-
Примечания