9.3.1. Протокол can
Протокол CAN был первоначально создан для автомобильных прикладных решений. Но вскоре концепции и преимущества CAN привлекли внимание разработчиков из других областей промышленности, и этот протокол стал одним из самых распространенных методов работы с сетями для небольших распределенных систем реального времени. Мы проведем здесь лишь краткое рассмотрение этого протокола; более подробную информацию читатели могут найти в дополнительной литературе, приведенной в конце этой главы.
Последняя редакция протокола CAN (версия 2.0) состоит из двух частей: части A (стандартный формат) и В (расширенный формат). Часть A представлена следующими тремя уровнями: объектным, уровнем передачи и физическим уровнем. Объектный уровень является связующим звеном между уровнем передачи и прикладной программой, выполняемой центральным процессором МК. На этом уровне происходят все программные обработки CAN-сообщений. Уровень передачи обеспечивает полное соответствие сообщения стандартному протоколу обмена, в то время, как на физическом уровне происходит реальная передача сигналов сообщения.
Часть В версии 2.0 протокола касается уровня передачи данных и физического уровня. Уровень передачи данных в свою очередь включает в себя подуровень управления логическими связями LLC (Logical Link Control) и подуровень управления доступом к среде MAC (Medium Access Control). Совокупность функций, выполняемых подуровнями LLC, MAC и физическим уровнем, соответствует функциям объектного уровня, уровня передачи и физического уровня для части A протокола CAN 2.0. На рис. 9.2 показаны части A и B протокола CAN 2.0. В дальнейшем мы будем в равной степени использовать термины из частей A и B протокола CAN 2.0.
Рис. 9.2. Соответствие терминов модели ISO/OSI для протоколов CAN 2.0 A/B
Уникальным свойством протокола CAN является то, что при работе с сообщениями не указываются адреса узла отправителя и узла получателя. Вместо этого, в каждое сообщение вставляется идентификатор, который позволяет этому сообщению быть принятым любым узлом сети CAN без всякого изменения содержимого передаваемых кадров. Это также означает, что одно и то же сообщение может быть одновременно принято несколькими узлами, позволяя осуществлять так называемый широковещательный режим или мультикастинг. Протокол CAN содержит прямую методику арбитража и сложные механизмы обнаружения ошибок. Он поддерживает также энергосберегающие режимы для узлов: спящий режим и режим пробуждения.
Данные в CAN передаются короткими сообщениями — кадрами стандартного формата. В CAN существуют четыре типа сообщений: кадр данных, кадр удаленного запроса, кадр ошибки и кадр перегрузки. Проведем короткий обзор этих типов кадров.
Кадр данных содержит семь полей, показанных на рис. 9.3. Поле старта состоит из одного активного бита (логический нуль). Получающий узел использует этот бит, чтобы синхронизировать начало получения кадра данных. Поле арбитража содержит идентификационный номер сообщения, который используется принимающим узлом для принятия решения о приеме данного конкретного кадра данных.
Рис. 9.3. Кадр данных CAN
Идентификатор содержит 11 для стандартного формата и 29 бит расширенного формата кадра данных. Поле арбитража также содержит бит удаленного запроса передачи (RTR), который используется, чтобы отличить кадр данных от кадра удаленного запроса. Для кадра данных этот бит должен быть доминантным (логический нуль), для кадра удаленного запроса — рецессивным (логическая 1).
Поле управления содержит четыре бита, которые определяют длину данных в байтах. Длина данных определяется четырьмя отдельными битами, позволяя устанавливать значение от одного до восьми байт. Поскольку рецессивный бит соответствует передаче логической 1, то четыре активных бита в этом поле информируют о длине поля данных, равной 0. Поле данных содержит фактическое сообщение кадра передачи. Старший бит каждого байта передается первым. Поле проверки данных содержит контрольное число, которое используется принимающим узлом для проверки отсутствия ошибок в принятом кадре. Контрольное число формируется по специальным правилам (CRC код), с которыми читатель может подробно ознакомиться в литературе, приведенной в конце главы. Поле подтверждения (ACK) содержит два бита. Передающий узел в поле подтверждения выставляет две 1. Если прием данных завершился успешно, то принимающий узел в первом бите выставляет на шину 0. Передающий узел в процессе передачи осуществляет считывание состояния шины. Поэтому наличие доминантного уровня 0 в первом бите поля подтверждения будет воспринято им как подтверждение приема данных. Первый бит поля подтверждения называется ACK-Slot, второй ACK-Delimiter. Поле конца кадра представляет собой последовательность из семи единичных битов, которые свидетельствуют об окончании кадра.
Кадр удаленного запроса используется принимающими узлами, чтобы запросить повторную передачу кадра данных. Кадр удаленного запроса идентичен кадру данных за исключением того, что он не содержит поля данных. Для того, чтобы принимающий узел мог отличить кадр удаленного запроса от кадра данных, в поле арбитража предусмотрен специальный бит RTR. Рецессивное состояние бита RTR (логическая 1) обозначает кадр удаленного запроса, а доминантное состояние (логический 0) — кадр данных.
Кадр ошибки, представленный на рис. 9.4, информирует узлы сети о том, что на шине CAN произошла ошибка. Каждый кадр ошибки состоит из поля признака ошибки и поля разделителя ошибки. Поле признака ошибки содержит либо активные флаги ошибки (шесть доминантных бит), либо пассивные флаги ошибки (шесть рецессивных бит). Мы дадим определение понятиям активных и пассивных ошибок в разделе обработки ошибок. Следует заметить, что в системах с многочисленными узлами на шине CAN число доминантных бит в признаке ошибки может увеличиваться до 12. Это необходимо, чтобы все компоненты системы могли использовать флаги ошибки. Поле разделителя ошибки состоит из восьми рецессивных бит.
Рис. 9.4. Кадр ошибки CAN
Кадр перегрузки, как показано в рис. 9.5, имеет тот же формат, что и кадр ошибки. Флаг перегрузки составлен из шести доминантных бит. Биты флага перегрузки устанавливаются, когда:
• принимающий узел не может обработать корректные кадры за выделенное время, и требует задержки;
• на интервале паузы появился доминантный бит.
Рис. 9.5. Кадр перегрузки CAN
Кадры данных и удаленного запроса на шине CAN отделяются от других кадров интервалами паузы, которые состоят, по крайней мере, из трех рецессивных бит. Разделитель перегрузки составлен из восьми рецессивных бит.
Обработка ошибок. Во время передачи сообщения по CAN шине могут происходить ошибки. Когда активным (передающим сообщение) или пассивным (принимающим) узлом системы обнаружена ошибка, соответствующий узел выставляет на шину кадр ошибки, рассмотренный выше. Если активный узел передает кадр ошибки, флаг ошибки называется активным флагом ошибки; если ошибка зафиксирована в пассивном узле, то и флаг называется пассивным. Имеются пять типов ошибок, которые могут вызывать передачу кадра ошибки: ошибка разряда (1), ошибка заполнения (2), ошибка избыточности (3), ошибка формы (4) и ошибка подтверждения (5).
Ошибка разряда происходит, когда передающий узел обнаруживает несоответствие выставляемого на шину бита и реального состояния шины в тот же момент времени. Флаг ошибки заполнения устанавливается, когда контроллер CAN обнаруживает в передаваемом кадре шесть последовательных доминантных или шесть последовательных рецессивных бит. Ошибка контроля происходит, когда значение контрольного числа CRC, вычисленное приемником, не соответствует контрольному числу CRC, полученному в конце передачи. Ошибка формы фиксируется, когда в одном из полей кадра содержатся недопустимые биты. И наконец, ошибка подтверждения происходит, когда отсутствует доминантный бит в поле ACK-Slot.
Синхронизация бита. На рис. 9.6 показано, что интервал времени передачи одного бита по шине CAN разбивается на четыре временных сегмента: сегмент синхронизации, сегмент распространения, сегмент буфера фазы 1 и сегмент буфера фазы 2. На интервале первого сегмента появляется фронт, который используется, чтобы синхронизировать узлы, подключенные к шине. Выборка логического состояния бита производится после окончания сегмента буфера фазы 1 (точка выборки). Сегмент времени распространения учитывает задержку передатчика и приемника и время распространения сигнала по шине. Сегменты фазы 1 и 2 могут увеличиваться или уменьшаться по длительности посредством программных уставок при инициализации. Такое решение позволяет увеличить надежность передачи данных по шине.
Рис. 9.6. Номинальные сегменты времени передачи бита
- Встраиваемые системы Проектирование приложений на микроконтроллерах семейства 68hc12/hcs12 с применением языка с с. Ф. Баррет
- Предисловие
- Структура книги
- Учебные системы
- Целевая аудитория
- Благодарности
- Глава 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. Прерывания
- Немаскируемые прерывания
- Маскируемые прерывания
- Вопросы для самопроверки
- 3. Каково различие между прерываниями по входам
- 4. Как организовать подсистему прерывания с несколькими внешними запросами для мк семейства 68hc12/hcs12, используя лишь один вход внешнего прерывания
- 4.10.3. Вектора исключений
- 4.10.4. Система приоритетов для исключений
- 1. Внешний сброс по входу
- 5. Немаскируемое прерывание по входу
- Вопросы для самопроверки
- 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. Регистры для управления счетчиком временной базы
- Регистр управления модулем таймера
- Регистр счетчика временной базы
- Регистр масок таймера 2
- 4.14.4. Каналы захвата/сравнения
- Режим входного захвата
- Вопросы для самопроверки
- Режим выходного сравнения
- Канал 7 в режиме выходного сравнения
- Регистры для управления каналами захвата/сравнения
- Регистры управления таймером 3 и 4
- Регистр масок таймера 1
- Регистр масок таймера 2
- Регистр флагов таймера 1
- Регистр флагов таймера 2
- Регистры данных каналов захвата/сравнения
- Вопросы для самопроверки
- Примеры работы с таймером
- Измерение частоты и периода логического сигнала
- Генерация импульсной последовательности
- Генерация импульсной последовательности с использованием прерывания
- 4.14.5. Счетчик событий
- Режимы работы счетчика
- Регистры управления счетчиком событий
- Регистр управления счетчиком событий
- Регистр флагов счетчика событий
- Регистр текущего состояния счетчика событий
- Пример использования счетчика событий
- 4.15. Модуль меток реального времени
- Пример использования модуля меток реального времени
- 4.16. Модуль таймера ect в составе мк мc68hc12be32 и hcs12
- 4.16.1. Небуферированные каналы входного захвата
- 4.16.2. Буферированные каналы входного захвата
- 4.16.3. Особенности счетчиков событий
- 4.16.4. Регистры управления модуля est
- Регистр управления порядком перезаписи
- Регистр управления режимом входного захвата
- Регистр управления счетчиком задержки
- Регистр управления 16-разрядным вычитающим счетчиком
- Регистр коэффициента счета вычитающего счетчика
- Регистр флагов вычитающего счетчика
- 4.17. Обмен информацией в последовательном коде: многофункциональный последовательный интерфейс
- 4.17.1. Термины последовательного обмена
- Вопросы для самопроверки
- 4.18. Контроллер асинхронного обмена sci
- Вопросы для самопроверки
- 4.18.1. Передатчик контроллера sci
- 4.18.2. Приемник контроллера sci
- 4.18.3. Регистры контроллера sci
- Регистры скорости обмена sCxBdh и sCxBdl
- Регистры управления sCxCr1 и sCxCr2
- Регистры состояния sCxSr1 и sCxSr2
- Регистры данных sCxDrh и sCxDrl
- Вопросы для самопроверки
- 4.18.4. Алгоритмы программного обслуживания контроллера sci
- 4.18.5. Пример программирования контроллера sci
- 4.19. Синхронный последовательный интерфейс spi
- 4.19.1 Концепция интерфейса spiФункциональная схема обмена между двумя контроллерами spi
- 4.19.2. Алгоритмы работы контроллера spi
- Вопросы для самопроверки
- 4.19.3. Регистры контроллера spi
- Регистр скорости обмена sPxBr
- Регистры управления sPxCr1 и sPxCr2
- Регистр данных spCxDr
- Регистр данных порта s
- Регистр направления передачи порта s
- Вопросы для самопроверки
- 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
- Группа регистров управления
- Регистры управления atdctl0 и atdctl1
- Регистр управления atdctl2
- Регистр управления atdctl3
- Регистр управления atdctl4Формат регистра atdctl4
- Регистр управления atdctl5
- Вопросы для самопроверки
- Регистр состояния atdstat
- Регистр данных порта portad
- Регистры результата adr0h…adr7h
- Вопросы для самопроверки
- Тестовый регистр atdtest
- 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
- Регистр состояния atdstat0
- Регистр состояния atdstat1
- Регистр разрешения цифрового входа порта atddien
- 4.24. Подсистема широтно-импульсной модуляции
- 4.24.1. Структура модуля pwm
- 4.24.2. Режимы центрированной и фронтовой шим
- 4.24.3. Система тактирования
- 4.24.4. Регистры модуля pwm
- Регистр конфигурации pwclk
- Регистр конфигурации pwpol
- Регистр разрешения работы каналов pwen
- Регистр дополнительного делителя pwpres
- Регистры делителей pwscnt0/pwscnt1 и pwscal0/pwscal0
- Регистры счетчика каналов pwcnTx
- Регистры периода каналов pwpeRx
- Регистры коэффициента заполнения каналов pwdtYxФормат регистров коэффициента заполнения pwdtYx
- Регистры коэффициента заполнения каналов pwdtYx
- Регистр управления pwctl
- Регистр специальных режимов pwtst
- Регистры работы с портом p
- 4.24.5. Примеры программирования модуля pwm
- Инициализация модуля pwm, пример 1
- Инициализация модуля pwm, пример 2
- 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
- Подсистема прерывания контроллера 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. Вопросы и задания Основные
- Более сложные
- Исследовательские