Прочитал на днях совершенно офигительную сагу про поиск плавающей неисправности в автомобиле: http://nikolagrek.livejournal.com/146089.html
История поучительная, но я хочу взглянуть на нее под другим углом: как, желая улучшить продукт, в очередной раз убили его работоспособность.
CAN-шина электрически является всего лишь парой проводов, по которой передается дифференциальный сигнал. Соответственно, приемопередатчик - это микросхема, которая этот дифф. сигнал генерирует / принимает. Простейший приемопередатчик CAN представляет два операционных усилителя, объединенные в одном корпусе. Многие микросхемы CAN до сих пор имеют именно такую структуру, однако такие микрухи во время своей работы достаточно бодро потребляют электроэнергию, что не очень хорошо для применения в автомобилях, поэтому современные автомобильные микросхемы CAN представляют собой достаточно сложные устройства, со спящими режимами и т.д. Разумеется, параллельно оптимизировались размеры, техпроцессы и т.д. Казалось бы, все отлично, но есть один маленький нюанс. Как я уже сказал выше - старые микросхемы имели заметно бОльшее энергопотребление. Соответственно, для устойчивой передачи сигналов в линию приходилось закачивать больше энергии, и, соответственно, чтобы исказить этот сигнал, помехе тоже требовалась гораздо бОльшая мощность, нежели сейчас, даже при прочих равных. В итоге - стали получаться вышеупомянутые саги о поисках неисправностей.
Данная проблема на самом деле возникает очень часто, вот еще один пример из этой же серии: Дано: огромный перекресток, с кучей светофоров. Светофоры стояли сначала с обычными лампочками, потом - одни из ранних светодиодных, и наконец воткнули самые современные, ультранизкопотребляющие и т.д. И началась свистопляска: периодически вместо зеленого загорается красный (что полбеды), или вместо красного - зеленый (что гораздо хуже). Кажется, даже ДТП какое-то было, при котором оба участника ехали на зеленый сигнал светофора. При этом контроллер светофоров (это такой ящик, который висит на одном из столбов возле перекрестка и управляет всеми светофорами на нем), изготовленный другим производителем, никаких неисправностей не видит. На других перекрестках с этими светофорами тоже никаких проблем нет. Стали разбираться и экспериментировать - нифига не понятно: с контроллера все идет правильно, но глюки все равно возникают с завидной регулярностью. Проблема осложнялась тем, что это был один из центральных перекрестков крупного города, то есть, особо не поэкспериментируешь. Все участники процесса переводят стрелки друг на друга, и всячески себя выгораживают. Основной аргумент - "в остальных местах же нормально!".
В итоге выяснилось, что в погоне за оптимизацией внутрь светофора запихали слишком много мозгов. В обычный светофор от контроллера идет 4 провода: плюсы красного/желтого/зеленого, и общий минус. Соответственно, подали напряжение на "красный" - загорелся красный, и так далее. Надежность - атомная: чтобы зажечь "левый" сигнал, нужно навести на провода ТАКУЮ помеху, от которой вообще все вокруг начнет светиться, включая пешеходов. Но у такого подхода есть свой минус: приличное энергопотребление. Даже у светодиодного светофора приходится значительную часть потребляемой энергии рассеивать на токоограничивающих резисторах. Как снизить потребление светофора? Да очень просто: выкинуть нафиг эти резисторы, и управлять подачей питания на сигналы при помощи мозгов, встроенных в светофор. А то, что приходит по проводам - использовать, как информационные линии связи "какой сигнал включить". Ну и как источник первичной энергии, не связанный напрямую со светодиодами. В лабораторных условиях - все просто прекрасно, потребление примерно вдвое ниже, чем у конкурентов, можно давать рекламу, и закладывать в тендеры требования, которым никто другой не удовлетворяет. А вот в реальности... Допустим, у нас горит красный. Внезапно на линию "зеленый" приходит помеха. Так на линии "зеленого" напрямую потребителей не висит, помехе рассеиваться не на чем, и на "детектор сигналов" она приходит с достаточно высокой амплитудой (вольт в 100-150). Детектор видит, что "по зеленому проводу идет сигнал, надо зажечь зеленый", и зажигает его. Запитав от источника первичной энергии, который, в свою очередь, запитан от "красного" провода. Ну, и заодно вырубает красный - у нас же зеленый горит, детектор врать не может!!! В итоге - на перекрестке творится черт знает что. Чтобы все это выяснить, пришлось сначала полностью разобрать светофор, а потом еще и воспроизвести проблему на стенде при помощи специально собранного имитатора помех.
P.S. Источником помех являлся ближайший торгово-развлекательный центр, поэтому в других местах таких проблем не возникало.
P.P.S. Разумеется, подобные, шибко умные светофоры напрямую запрещены законодательством. Но, как говорится, "всем похуй", да и по ушам проехать проверяющим всегда можно.
История поучительная, но я хочу взглянуть на нее под другим углом: как, желая улучшить продукт, в очередной раз убили его работоспособность.
CAN-шина электрически является всего лишь парой проводов, по которой передается дифференциальный сигнал. Соответственно, приемопередатчик - это микросхема, которая этот дифф. сигнал генерирует / принимает. Простейший приемопередатчик CAN представляет два операционных усилителя, объединенные в одном корпусе. Многие микросхемы CAN до сих пор имеют именно такую структуру, однако такие микрухи во время своей работы достаточно бодро потребляют электроэнергию, что не очень хорошо для применения в автомобилях, поэтому современные автомобильные микросхемы CAN представляют собой достаточно сложные устройства, со спящими режимами и т.д. Разумеется, параллельно оптимизировались размеры, техпроцессы и т.д. Казалось бы, все отлично, но есть один маленький нюанс. Как я уже сказал выше - старые микросхемы имели заметно бОльшее энергопотребление. Соответственно, для устойчивой передачи сигналов в линию приходилось закачивать больше энергии, и, соответственно, чтобы исказить этот сигнал, помехе тоже требовалась гораздо бОльшая мощность, нежели сейчас, даже при прочих равных. В итоге - стали получаться вышеупомянутые саги о поисках неисправностей.
Данная проблема на самом деле возникает очень часто, вот еще один пример из этой же серии: Дано: огромный перекресток, с кучей светофоров. Светофоры стояли сначала с обычными лампочками, потом - одни из ранних светодиодных, и наконец воткнули самые современные, ультранизкопотребляющие и т.д. И началась свистопляска: периодически вместо зеленого загорается красный (что полбеды), или вместо красного - зеленый (что гораздо хуже). Кажется, даже ДТП какое-то было, при котором оба участника ехали на зеленый сигнал светофора. При этом контроллер светофоров (это такой ящик, который висит на одном из столбов возле перекрестка и управляет всеми светофорами на нем), изготовленный другим производителем, никаких неисправностей не видит. На других перекрестках с этими светофорами тоже никаких проблем нет. Стали разбираться и экспериментировать - нифига не понятно: с контроллера все идет правильно, но глюки все равно возникают с завидной регулярностью. Проблема осложнялась тем, что это был один из центральных перекрестков крупного города, то есть, особо не поэкспериментируешь. Все участники процесса переводят стрелки друг на друга, и всячески себя выгораживают. Основной аргумент - "в остальных местах же нормально!".
В итоге выяснилось, что в погоне за оптимизацией внутрь светофора запихали слишком много мозгов. В обычный светофор от контроллера идет 4 провода: плюсы красного/желтого/зеленого, и общий минус. Соответственно, подали напряжение на "красный" - загорелся красный, и так далее. Надежность - атомная: чтобы зажечь "левый" сигнал, нужно навести на провода ТАКУЮ помеху, от которой вообще все вокруг начнет светиться, включая пешеходов. Но у такого подхода есть свой минус: приличное энергопотребление. Даже у светодиодного светофора приходится значительную часть потребляемой энергии рассеивать на токоограничивающих резисторах. Как снизить потребление светофора? Да очень просто: выкинуть нафиг эти резисторы, и управлять подачей питания на сигналы при помощи мозгов, встроенных в светофор. А то, что приходит по проводам - использовать, как информационные линии связи "какой сигнал включить". Ну и как источник первичной энергии, не связанный напрямую со светодиодами. В лабораторных условиях - все просто прекрасно, потребление примерно вдвое ниже, чем у конкурентов, можно давать рекламу, и закладывать в тендеры требования, которым никто другой не удовлетворяет. А вот в реальности... Допустим, у нас горит красный. Внезапно на линию "зеленый" приходит помеха. Так на линии "зеленого" напрямую потребителей не висит, помехе рассеиваться не на чем, и на "детектор сигналов" она приходит с достаточно высокой амплитудой (вольт в 100-150). Детектор видит, что "по зеленому проводу идет сигнал, надо зажечь зеленый", и зажигает его. Запитав от источника первичной энергии, который, в свою очередь, запитан от "красного" провода. Ну, и заодно вырубает красный - у нас же зеленый горит, детектор врать не может!!! В итоге - на перекрестке творится черт знает что. Чтобы все это выяснить, пришлось сначала полностью разобрать светофор, а потом еще и воспроизвести проблему на стенде при помощи специально собранного имитатора помех.
P.S. Источником помех являлся ближайший торгово-развлекательный центр, поэтому в других местах таких проблем не возникало.
P.P.S. Разумеется, подобные, шибко умные светофоры напрямую запрещены законодательством. Но, как говорится, "всем похуй", да и по ушам проехать проверяющим всегда можно.