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