Читаем Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С полностью

• когда при установке бита 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

а) при использовании протокола CAN 2.0A

б) при использовании протокола CAN 2.0B


Перейти на страницу:

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных