Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
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. Запишите на Си программы для всех трех узлов в предыдущей задаче.
Примечания
1
таблица рис. 1.10 была дополнена авторами перевода с учетом выпущенных в 2005–2006 г.г. новых моделей МК семейства HCS12.