9.7. Заключение по главе 9
В этой главе, мы рассмотрели основы связи между встраиваемыми микроконтроллерными системами, соответствующие протоколу локальных промышленных сетей Bosch CAN 2.0A и CAN 2.0B. Мы познакомились с аппаратными и программными средствами периферийного модуля последовательного обмена msCAN в составе микроконтроллеров семейства 68HC12, а также с более простым модулем последовательного обмена BDLC 68HC12. Мы обсудили проблемы синхронизации, связанные с CAN протоколом, регистры, используемые в контроллерах msCAN12, алгоритмы программного обслуживания буферов для приема и передачи сообщений по CAN. Привели ряд простых демонстрационных программ по инициализации на прием и передачу модуля msCAN12.
9.8. Что еще почитать?
1. Motorola, Inc. «HC12-M68HC12B Family Advance Information, M68HC12B/D», 2000.
2. Motorola, Inc. «CAN-Bosch Controller Area Network (CAN) Version 2.0,» Protocol Standard, BCANPSV2.0/D, Rev. 3, 1998.
3. Motorola, Inc. «The msCAN on the MC9S12DP256 Compared with the msCAN on the HC12 Family,» AN2011/D, Rev. 1, 01/2002.
4. Motorola, Inc. «Scalable Controller Area Network (msCAN) Interrupts», AN2283/D, Rev. 0, 08/2002.
5. Motorola, Inc. «VPW J1850 Multiplexing and Motorola's Byte Data Link Controller (BDLC) Module,» 1998.
9.9. Вопросы и задания
1. Сравните распределенную систему управления систему из нескольких автономных встраиваемых систем.
2. Расшифруйте следующие аббревиатуры: WAN, LAN, SAN, CAN.
3. Дайте короткое определение понятия «протокол».
4. Сколько уровней ISO существует в протоколе CAN версии 2.0/A?
5. Сколько уровней ISO существует в протоколе CAN версии 2.0/В?
6. Какие биты являются доминантными и рецессивными в CAN протоколе?
7. Перечислите возможные типы кадров, передающихся по CAN шине.
8. Перечислите возможные режимы работы контроллера последовательного обмена msCAN12.
9. В контроллере последовательного обмена заполнены три буфера передатчика.
Как контроллер msCAN12 решает, содержимое какого буфера передать первым?
1. CAN протокол не использует в сообщении адресов передающего и принимающего узлов. Как образом узел сети определяет, принимать сообщение, появившееся на шине, или нет?
2. Опишите механизм синхронизации приема бита, используемый в протоколе CAN с целью повышения надежности приема.
3. Опишите процесс передачи сообщения на шину CAN аппаратными и программными средствами контроллера msCAN12.
4. Опишите процесс, приема сообщения с шины CAN при использовании контроллера msCAN12.
5. Запишите на Си фрагмент программного кода, который загружает в буфер 0 подсистемы передатчика произвольное кодовое сообщение для контроллера CAN.
6. Запишите на Си фрагмент программного кода, который сначала опрашивает флаг состояния заполнения буфера 0 передатчика, а затем, когда буфер освободится, загружает в него новое произвольное сообщение.
7. Запишите на Си фрагмент программного кода, позволяющий конфигурировать подсистему приемника контроллера msCAN12 так, чтобы он получал любое сообщение с номерами идентификатора «2003» и «1995».
8. Запишите на Си фрагмент программного кода, который создает сообщение об ошибке, когда переполняется регистр счетчика ошибок приема. Используйте программу обработки прерываний, связанную с регистром счетчика ошибок, чтобы установить в передающий буфер 0 сообщение «Error».
1. Нарисуйте схему аппаратного подключения для сети CAN с тремя узлами (A, B и C), использующую соответствующие приемопередатчики.
2. По техническому условию требуется, чтобы узел А передал сообщение с числовым значением узлу В, узел В добавил к этому значению 1 и переслал результат узлу C, а узел С еще раз добавил 1 к полученному значению и переслал полученный результат снова узлу А. Этот процесс должен быть периодическим. Узел А начинает весь процесс с нулевого начального значения. Нарисуйте блок-схему, выполняющую эту задачу.
3. Запишите на Си программы для всех трех узлов в предыдущей задаче.