LightElf (04.09.2015 12:08 - 12:14, просмотров: 281) ответил Shatun_ на Так ведь фишка мультимастера в железе в том, что коллизии решаются на аппаратном уровне, либо как минимум в железе мониторы коллизий. По крайней мере когда я делал мультимастер для I2C, было все легко и не принужденно. А как быть в случае с ЛИНом?
У LIN есть физический уровень, который допускает коллизии (потому как открытый коллектор). И есть логический, который заточен под single master. Берете физику и на нее сверху кладете свою логику, с шахматами и балеринами. CSMA/CD и фсе такое. 1. Ждем IDLE на линии
2. Начинаем передавать и одновременно слушать. Если слышим не то, что передаем - значиццо коллизия. Прекращаем передачу, делаем паузу случайной длины (или в зависимости от приоритета), возвращаемся к пункту 1.
Не надо делать мне как лучше, оставьте мне как хорошо