Добрый день!
Имеется задача: обеспечить интерфейс между ПО на компьютере и большим количеством дискретных вводов и выводов(около 300 вводов и примерно столько-же выводов), некоторого количества 7-сегментных индикаторов (12 штук по 5 разрядов), небольшим (8) - аналоговых входов, и десятка ШИМов (управление электромоторами).
Требования по таймингу - от нажатия на кнопку до срабатывания функции ПО на компьютере - макс. 100 мс, в обратную сторону - то-же.
Вокруг бродят магнитные поля от мощных сервоприводов.
Напряжение питания всей сети ввода-вывода - желательно одно, желательно - 12 вольт.
Из элементной базы - мне близки AVRы и ARM7 от Atmel, из языка - С, с ассемблером не дружу лет 10, крайний раз писал на нём под х51.
Дискретный ввод-вывод планировал делать цепочками сдвиговых регистров, ШИМ - ШИМом контроллера, аналоговый ввод - АЦП AVRов.
Особых требований по стоимости решения нет, поэтому я как буриданов осёл мечусь между IP, RS-232 over IP, RS-485 и вот наткнулся на CAN, а точнее - на чип MCP25050, и стало мне хорошо-хорошо
Вопрос такой: где стоит начать читать про CAN, и стоит ли вообще ввязываться в новую тему (как я понимаю, оптимально будет и контроллер использовать микрочиповский, что для меня - вновье).
Заранее благодарен!