[an error occurred while processing this directive]
|
есть задачка - сделать монитор CAN шины (например на TMS320C2407).
насколько сложно?
Совсем не сложно, всё аппаратно делает сам CAN-контроллер. Необходимо только правильно настроить регистры контроллера. Программы приема и передачи занимают примерно 10 строк кода на асме (каждая), да и то, если вызывать из Си.
может есть какие-то готовые app-notы или примеры такого кода
Я делал только на TMS320F2808, поэтому могу сказать только за него. Есть приличное описание – spru074d, пример spra876a и программы к нему на С spra876a.zip, достаточно, чтобы написать свою программу.
какие трудности могут быть
Трудности только в первой стыковке двух модулей – первый модуль посылает и принимает сообщения, второй осуществляет эхо – принимает сообщение и отправляет его обратно. Задача облегчается тем, что есть самопроверка (self test mode, bit STM=1 in CANMC register) без выхода наружу – можно передавать сообщения и принимать их, используя только один модуль.
где можно быстро и правильно прочитать про логическую организацию CAN, ну и если есть какие-то стандартные протоколы "овер-CAN" взглянуть на них
Для начала можно посмотреть здесь http://www.gaw.ru/html.cgi/txt/interface/can/can20a.htm и ыокруг. Потом надо посмотреть описания сан-ис разных производителей, потом можно посмотреть на описания драйверов шины – очень пользительно для понимания работы сана на физическом уровне. У меня за 3 месяца накопилось 25 мегов разной документации по кану – по-моему, больше, чем достаточно, чтобы стартовать.
сейчас хотелось бы понять - правильно ли я представляю процедуру
по синхроимпульсу определить "баудрэйт"
Непонятно, что такое синхроимпульс. Просто отловите осциллом одну картинку обмена по шине и измерьте длину одного импульса, который и даст Вам искомый битрейт.
запустить приемник на все мессажи, и складывать их в память потом нужно попытаться отловить нужные
Не совсем так. Ставите все мейлбоксы на прием, затем, скажем в SCC режиме, во всех масочных регистрах (LAM(0),LAM(3), CANGAM) ставите все единички, затем устанавливаете все АМЕ во всех MSGID – и вуаля! – принимаете все сообщения с кан-шины. Причем есть возможность принимать как 11-битные, так и 29-битные ID. Для приличия можно еще механизм подтверждения сообщений отключить.
если я ничего не упустил - то это проще чем с готовым разбираться...
Не факт, конечно, но у самопального кака есть определенные плюсы.
E-mail: info@telesys.ru