ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
523349 Топик полностью
Ljutik1 (17.06.2014 17:16, просмотров: 238) KLIM83 ответил Ljutik1 на Люди, помогите с настройками CAN AT90CAN128
помогите с CAN Никогда не сталкивался с CANом, потому достаточно чайницкие вопросы. Есть некое ТЗ, по которому контроллер должен принимать пакеты с определенными адресами и отвечать на запросы с определенных адресов. процессор AT90CAN32 Правильно ли я себе представляю алгоритм: 1. Нужно включить прерывание по приходу пакета. Можно ли организовать маску, чтобы сразу отсечь ненужные пакеты (в сети предполагается достаточно много сторонней информации)? Наверно, для этого служат регистры CANIDM1-4. Но чего-то не понимаю, как они работают. 2. По возникновению прерывания проверяю регистры CANIDT1-4 на соответствие требуемого идентификатора 3. Если идентификатор соответствует, то получаю данные в регистре CANMSG. Опять же, в пакете может быть до 8 байт - где остальные байты брать? 4. Для отправки пакета заполняю идентификатор в регистры CANIDT1-4 и первый байт данных в CANMSG. Куда остальные 7 байт пихать? Наверно, за это отвечает бит AINC в регистре CANPAGE 5. Чет не соображу, как начать передачу данных 6. Правильно ли я понимаю, что возможно всего 15 вариантов маски, по которым можно настроить прерывания. Номер маски задается в регистре CANPAGE, после чего следует заполнять регистры CANIDM1-4. Если да, то как работает маска? По полному совпадению или какая-то логическая функция? Пока писал вопрос, понимания стало чуть больше. Тем не менее, очень надеюсь на помощь...