yaworsky (19.07.2009 22:01, просмотров: 143) ответил yaworsky на Помогите советом -- нужен простой протокол обмена сообщениями по общей шине, мульти-мастер, минимум сигнальных линий (идеально -- 1-wire), арбитраж по типу CAN. Дальность порядка 100м. Может есть какой стандарт чтобы велосипед не изобретать?
Всем спасибо, но хотелось бы обойтись и без контроллера CAN. Вот что думаю -- использовать физический уровень 1-wire и слоты записи. В сообщении первым идет адрес источника, используется для арбитража. Перед началом передачи слота проверяем шину, если 0 -- арбитраж проигран. Если передаем 1, проверяем шину и если на ней 0 вместо 1 -- несколько девайсов начали передачу слота и кто-то передает 0, значит арбитраж проигран. Все девайсы в любом случае слушат шину и контролируют целостность сообщения по завершаюшему CRC. Если кто обнаруживает ошибку -- выставляет на шине 0, передающий девайс это проверяет и если надо повторяет передачу. Собственно, вкратце и все. Да, между сообщениями должен быть интервал для синхронизации, ну и между слотами время лимитируем. Точные тайминги в процессе реализации определим.
Чем еще такой вариант привлекает -- легко чистый 1-wire как опцию поддерживать. Для первоначального конфигурирования например полезно, да и само по себе неплохо.
Мысль что кто-то это уже сделал так и вертится но и мы тож велосипедисты бывалые.