Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
- Название:Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
- Автор:
- Жанр:
- Издательство:Издательский дом «ДМК-пресс»
- Год:2007
- Город:Москва
- ISBN:5-9706-0034-2
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С краткое содержание
В книге последовательно рассматриваются все этапы создания встраиваемых систем на микроконтроллерах с применением современных технологий проектирования. Задумав эту книгу, авторы поставили перед собой задачу научить читателя искусству создания реальных устройств управления на однокристальных микроконтроллерах.
Издание содержит материал, охватывающий все вопросы проектирования, включает множество заданий для самостоятельной работы, примеры программирования, примеры аппаратных решений и эксперименты по исследованию работы различных подсистем микроконтроллеров.
Данная книга является прекрасным учебным пособием для студентов старших курсов технических университетов, которые предполагают связать свою профессиональную деятельность с проектированием и внедрением встраиваемых микропроцессорных систем. Книга также будет полезна разработчикам радиоэлектронной аппаратуры на микроконтроллерах.
Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Флаги SFTRES, SLPAK и CSWAI регистра CMCR0 используются, чтобы выбрать один из четырех режимов работы msCAN12 (нормальный, программного сброса, спящий и выключения). Мы обсудим эти режимы в следующих трех разделах. Поскольку ЦП микроконтроллера 68HC12 может работать в трех режимах (рабочем, ожидания и останова), имеются 12 возможных комбинаций режимов функционирования ЦП и модуля msCAN12. Четыре из этих 12 комбинаций не могут быть реализованы.
Когда ЦП функционирует в рабочем режиме, модуль msCAN12 может функционировать в спящем режиме, режиме программного сброса или в нормальном режиме. Режим выключения не допускается. ЦП может выбрать один из режимов msCAN12, конфигурируя три бита регистра CMCR0 следующим образом:
• Спящий режим: CSWAI = 0 или 1, SLPAK = 1 и SFTRES = 0;
• Режим программного сброса: CSWAI = 0 или 1, SLPAK = 0 и SFTRES = 1;
• Нормальный режим: CSWAI = 0 или 1, SLPAK = 0 и SFTRES = 0.
Обратите внимание, что бит SLPAK предназначен только для чтения и не может быть изменен под управлением программы. Чтобы установить или очистить бит SLPAK, Вы должны установить или очистить бит SLPRQ (бит 1) регистра CMCR0.
Когда ЦП функционирует в режиме ожидания, модуль msCAN12 может функционировать в любом из четырех режимов. Следующие конфигурации из трех битов в регистре CMCR0 используются, чтобы назначить один из нижеперечисленных режимов:
• Режим выключения: CSWAI = 1, SLPAK = 0 или 1 и SFTRES = 0 или 1,
• Спящий режим: CSWAI = 0, SLPAK = 1 и SFTRES = 0,
• Режим программного сброса: CSWAI = 0, SLPAK = 0, и SFTRES = 1,
• Нормальный режим: CSWAI = 0, SLPAK = 0 и SFTRES = 0.
И наконец, когда ЦП функционирует в режиме останова, контроллер msCAN12 может находиться только в выключенном режиме. Когда ЦП вводит режим останова, то независимо от состояния битов CSWAI, SLPAK, и SFTRES регистра CMCR0, модуль msCAN12 вынужден перейти в режим выключения. Все другие режимы для модуля msCAN12 при этом невозможны.
Спящий режим msCAN12. Когда 68HC12 не вовлечен в активный обмен информацией с другими узлами сети, а ЦП функционирует в активном режиме либо в режиме ожидания, модуль msCAN12 может находиться в спящем режиме, переводя бит SLPAK в состояние логической 1. Еще раз повторим, что бит SLPAK устанавливается или очищается, битом SLPRQ регистра CMCR0. При этом внутренний таймер модуля msCAN12 останавливается. Модуль MsCAN12 переходит в спящий режим немедленно после того, как установлен бит SLPAK. Исключение составляют два следующих случая:
• когда при установке бита SLPAK модуль msCAN12 передает данные, он переходит в спящий режим только после того, как передача данных заканчивается;
• когда модуль получает данные, когда устанавливается бит SLPAK, прием данных должен быть закончен прежде, чем модуль перейдет в спящий режим.
Модуль msCAN12 выходит из спящего режима, если происходит одно из трех следующих событий:
• выполняется команда ЦП очистить бит SPLPRQ, вызывающая сброс бита SLPAK;
• выполняется команда ЦП установить бит SFTRES;
• на шине CAN появляются данные, предназначенные для соответствующего контроллера.
Режим программного сброса msCAN12. Этот режим используется, чтобы конфигурировать модуль msCAN12 при инициализации. При этом прекращается любая активность CAN и по командам ЦП изменяется конфигурация регистров msCAN12, регистров фильтра, и регистров, управляющих синхронизацией. Обычно перед переводом в режим программного сброса, модуль должен находиться в спящем режиме. В противном случае могут возникнуть ошибки, связанные с тем, что любая передача или прием данных могут быть прерваны при переходе контроллера msCAN12 в режим сброса, как только бит SFTRES будет установлен.
Режим отключения msCAN12. Режим отключения должен использоваться только для того, чтобы полностью или временно прекратить связь по CAN. Как и в случае режима мягкого сброса, необходимо переводить msCAN12 в режим отключения из спящего режима.
Модуль входит в режим отключения либо при переходе ЦП в режим останова, либо при установке бита CSWAI, в то время как ЦП работает в режиме ожидания.
Когда модуль msCAN12 переходит в этот режим, любая передача или прием данных немедленно прерывается.
Подсистема передатчика. Как только ЦП микроконтроллера 68HC12 создаст сообщение, передатчик модуля msCAN12 должен корректно переслать его в сеть CAN. Рассмотрим структуру подсистемы передатчика.
Адрес | Имя Регистра |
---|---|
0150 | Регистр идентификатора 0 |
0151 | Регистр идентификатора 1 |
0152 | Регистр идентификатора 2 |
0153 | Регистр идентификатора 3 |
0154 | Регистр сегмента данных 0 |
0155 | Регистр сегмента данных 1 |
0156 | Регистр сегмента данных 2 |
0157 | Регистр сегмента данных 3 |
0158 | Регистр сегмента данных 4 |
0159 | Регистр сегмента данных 5 |
015A | Регистр сегмента данных 6 |
015B | Регистр сегмента данных 7 |
015C | Регистр длины данных |
Передающий буфер 0
Адрес | Имя Регистра |
---|---|
0160 | Регистр идентификатора 0 |
0161 | Регистр идентификатора 1 |
0162 | Регистр идентификатора 2 |
0163 | Регистр идентификатора 3 |
0164 | Регистр сегмента данных 0 |
0165 | Регистр сегмента данных 1 |
0166 | Регистр сегмента данных 2 |
0167 | Регистр сегмента данных 3 |
0168 | Регистр сегмента данных 4 |
0169 | Регистр сегмента данных 5 |
016A | Регистр сегмента данных 6 |
016B | Регистр сегмента данных 7 |
016C | Регистр длины данных |
Передающий буфер 1
Адрес | Имя Регистра |
---|---|
0170 | Регистр идентификатора 0 |
0171 | Регистр идентификатора 1 |
0172 | Регистр идентификатора 2 |
0173 | Регистр идентификатора 3 |
0174 | Регистр сегмента данных 0 |
0175 | Регистр сегмента данных 1 |
0176 | Регистр сегмента данных 2 |
0177 | Регистр сегмента данных 3 |
0178 | Регистр сегмента данных 4 |
0179 | Регистр сегмента данных 5 |
017A | Регистр сегмента данных 6 |
017B | Регистр сегмента данных 7 |
017C | Регистр длины данных |
Передающий буфер 2
Рис. 9.8.Структура буферов передачи модуля msCAN12
Как показано на рис. 9.8, передающий модуль msCAN12, содержит три 13-байтовых буфера. Все они имеют идентичную структуру данных, в которой первые четыре байта формируют идентификатор формата сообщения, следующие восемь байтов содержат фактическое сообщение, а последний байт определяет длину сообщения.

а)

б)
Рис. 9.9.Формат регистров идентификатора IDR0, IDR1, IDR2, и IDR3
Читать дальшеИнтервал:
Закладка: