ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
11 июля
385097 Топик полностью
fk0, легенда (04.02.2013 01:04, просмотров: 283) ответил whale на вот представь у тебя 10 дивайсов и все на одной шине и2с сидят, тут происходит гамма-всплеск на солнце и 10-й дивайс попадает под облучений в результате чаго и2с на нем виснет намертво, заодно отрубая от сети и все остальные 9 дивайсов.
По шине I2C фирмой Philips (NXP) очень много чего наработано и там есть готовые решения на многие случаи жизни. Не нужно изобретать велосипед с квадратными колёсами. И оптическая развязка есть (не нужная в данном случае, оптика это больше от дурости, да и где её на такие скорости найдёшь, не пассивная явно), и хот-свап, и мультиплексоры/хабы, усилители, преобразователи уровня. И стоит возможно посмотреть и почитать, что есть уже готового. Это из общих соображений. Из области электроники: чисто электрически I2C может не работать, если один из 10-и микроконтроллеров не питается, например (притягивают шину к GND через защитные диоды, как минимум). Но это далеко не во всех МК так. В МК любительского уровня, вроде, именно так. В более приличных схема защиты выводов I2C делается по-другому (и 5V tolerant). В остальном достаточно, скорей, грамотного использования watchdog в MCU (нет программы, испорченная прошивка и т.п. -- reset и шине не мешает). Как бороться с питанием -- сегментировать шину с автоматическим отключением нерабочих сегментов. У филипса есть готовый ответ как. Возможно, это слишком сложно и дорого и проще будет продублировать выходы-входы MCU транзисторами, транзисторы есть по 2 шт. разной проводимости со встроенными резисторами в мелких совсем корпусах. И, кстати, в таком случае с конденсаторами же тоже полная херня получится. Вход МК коротит конденсатором на землю -- сигнал ослаблен до нерабочего состояния. За что боролись? В других шинах, пример, LINBUS, трансивер умеет таймаут (и CAN тоже) и самоотключается. И без питания никак не мешает, от шины ток не потребляет. Вот и всё решение. И, возможно, если там только МК, то лучше LINBUS.
[ZX]