Pull to refresh

Comments 62

>Например, многократная запись в одну и ту же ячейку flash-памяти рано или поздно приводит к исчерпанию ресурса ячейки
С недавнего времени в микроконтроллерах ставят ECC для флеш-памяти, так что ресурс исчерпается не так быстро, но зато всей памяти.
Вы имели в виду ремаппинг? ECC это, вроде, коррекция ошибок.
Про ремаппинг не уверен, а ECC уже ставят.
Ремаппинг тоже есть.
Например, у самых простых STM8 вообще вся память общая — даже код от данных отделяется на этапе прошивки и можно их гонять по кристаллу как угодно.
Но ведь это забота программиста — следить за равномерной нагрузкой на память?
Ни в коем случае!

Поверьте, у программистов есть масса гораздо более интересных и нужных задач, чем слежение за равномерной нагрузкой на память или подобное низкоуровневое копошение. Если бы программисты не стремились возводить все более высокоуровневые конструкции и средства программирования, то до сих пор бы всё в машинных кодах вводили бы с перфокарт, и компьютеры использовались бы только для расчета траекторий баллистических ракет.

А по теме — за равномерной нагрузкой на память должен следить специальный драйвер (однажды написанный), но никак не программист в каждом проекте.
ECC конечно полезен, но не может многократно увеличить время работы с перезаписью.

По мере увеличения кол-ва циклов перезаписи, запись становится все более «нестойкой» (т.е. данные начинают быстрее пропадать при работе под повышенной температурой), и ECC тут проблему не решит, ошибки тупо очень быстро вылезут за границы того, что ECC может исправить.
>Проанализировав схему устройства на жесткой логике, можно восстановить весь алгоритм его работы. Проделать то же самое с микроконтроллерным устройством на порядок сложнее.
Я не в теме. Т.е. скорее будет доступна полная схема устройства(того, которое на жесткой логике), чем исходник прошивки?
Поясню, что имелось в виду. Допустим, у вас есть устройство на обычных цифровых микросхемах. У вас возникли подозрения, не делает ли оно что-либо в тайне от вас. Проведя пару дней в компании с тестером и лупой вы сможете составить схему подозреваемого девайса и проанализировать, как он работает.
Если же устройство на контроллерах, то не получив его прошивку (а лучше исходник), ничего определенного сказать нельзя. Извлечь же прошивку из современных кристаллов, если разработчик не хочет этого, крайне сложно. Разобраться в ней — тоже то еще удовольствие.
В реальности же вы увидите допустим 10 корпусов без маркировки или с уникальной маркировкой. Что дальше делать? Да, можно микросхемы вскрыть и по слоям анализировать, но это фантастические деньги.

А у микроконтроллеров, даже защищенных, прошивка во многих случаях сливается намного меньшими усилиями.
Если это заказные микросхемы, вопросов нет. В них можно напихать чего угодно, и их фиг проанализируешь. Но и изготовителю разработка и изготовление кристаллов влетит в копеечку.
А если это типовые м/с, их идентифицировать куда проще, логический анализатор в помощь.
смд-компоненты, 5 слойная плата, маркировка сошкурена, плата залита в компаунд, в верхнем слое которого штук 50 проводков толщиной с волос, что-то коммутирующих на плате. с неделю назад попалось.

анализируй это(с)
Тогда уж можно вспомнить советские военные приборы с системой самоуничтожения при вскрытии. В лучшем случае это нож, перерубавший все соединения между платами, в худшем — шашка тротила.
У нормально защищенных контроллеров доступа ни к чтению ни к записи нет вообще :)

Да и не понимаю к чем это?
Мы ведь говорим о пользователях, зачем им знать как это работает?
Да и в сервис центрах это ни к чему, пусть получают прошитый чип запаивают.
Да, согласен что пользователям не нужно. Вообще, зачастую с 0 разработать проще.

А так, у защищенных контроллеров часто или бит защиты сбросить можно физически (УФ лазером), или непосредственно с кристалла вычитывать прошивку. За ваши деньги любой каприз.
видел рекламу конторы, которая берется сбросить lock-fuse на атмеловских контроллерах. 20к за один, вроде
Не все контроллеры одинаково защищены.
По работе знаком с фрискейловскими контроллерами, защита может быть такая:
в энергозависимой памяти ключ, которым расшифровываются остальные блоки с кодом и данными, при перепаде температуры/тактовой частоты/питания/внешнем вмешательстве(настраивается) питаение отключается, ключ утерян раз и навсегда а дальше читай не читай ничего не расшифруешь)
так он не выключается?
Например, запитан от литиевой батарейки, впаянной в плату. То есть полностью не выключается, да.
верно, и сам ее заряжает, если его подключают по USB например
Не нравится контроллеры с флешем? Берите с PROM, однократно программируемые.
Или сразу на заводе заказывайте с прошивкой маской, там вообще железобетонное программирование.
А как быть с EEPROM? Несмотря на заявленное космическое число циклов перезаписи, убить ее при должном рукожопии старании легко. Расскажу поучительную историю.
В одной из автомагнитол (фирму и модель, к сожалению, не вспомню) текущий уровень громкости записывался в EEPROM, на случай отключения питания. Ну и хорошо, казалось бы! Но запись велась не просто при каждом изменении громкости, а по каждому «тику» энкодера (громкость там регулировалась крутилкой). Один раз покрутил ручку — считай 10-20 циклов записи. За день — несколько сотен наберется. За год — сотня тысяч. За 1-2 года даже самая качественная память зажучивалась насмерть, причем в одной ячейке.
использовать правильно, как с ней еще быть? )
Знаю, знаю, моторолловский контроллер в Audi ;-)
Если мозгов нет, никакое железо не поможет.

Сейчас конечно есть и FRAM. Но в случае магнитолы можно было бы и в SRAM аккуратно держать.
>> «Чё, — спрашиваю, — таймер отработал?»

Убил бы гада.
Знаем одного такого монополиста по системам кондиционирования daikin.
это он молодой, глупый. был бы умнее — не палился бы, и свозил домой релюшку.
а если в офисе, на еще на компе заказчика — закладки после пару «ремонтов» вычисляются.
Нужно было к ночи отремонтировать по сценарию. Но вообще да.
Привёз бы запасную, раз такой хитрый.
Что это такое вы тут развели?! То есть, вы на стороне этого парня? Считаете ли вы, что в порядке вещей, делать технику, которая ломается сразу после окончания гарантии или ремонтировать так, чтобы через какое-то время к вам снова обратились? Вам нравится то, что врачи и фармацевты вас также «лечат»?
«За изобретение ставлю пять, а по предмету — неуд.»
То, что парень — жулик, не вызывает никаких сомнений. По морде — самое мягкое из того, что он заслуживает.
С другой стороны, это не мешает порадоваться его смекалке и пообсуждать технические детали. Точно так же можно восхищаться мастерством профессиональных взломщиков, несмотря на то, что они преступники.
Собственно, сейчас почти все «ломается после окончания гарантии». Надежные вещи производить невыгодно.
Это понятно! Но разве это нормально — не выпускать вещи с «запасом прочности»? Представьте, окажешься вот так один на один с этой вещью в какой-нибудь экстремальной ситуации… Например, на страховочном тросе в горах, который после двух лет использования не держит никакую нагрузку (о чем производитель, естественно, не распространяется)… Или в какой-нибудь подобной…
Еще бы это до проклятых капиталистов производителей из суверенного Китая дошло :)
ну, с гарантией — оно и стоить будет дороже.
Речь не о гарантии на дерьмовую продукцию, а о продукции, которой эта гарантия даже не потребуется.
А разве «выгода» — единственный весомый фактор? Особенно когда речь идет о жизни и здоровье. Разве нормально, когда принципы копроэкономики проникают во все сферы? Когда «не так выгодно» лечить вас от болезней, «не так выгодно» продавать еду, которая не вызывает рак и другие проблемы, «не так выгодно» давать малому бизнесу возможности для развития, «не так выгодно» развивать экономику страны, и т.п.

Где здесь ответственность перед обществом?
да ладно, проснитесь. вы живете не в идеальном мире
лечить от болезней выгоднее, потому что за это платят деньги. если лечить плохо — пострадает репутация, это невыгодно.
продавать еду, не вызывающую рак выгоднее, потому что живой покупатель купит еще.
давать малому бизнесу возможность развиваться выгодно, потому что город получает рабочие места и налоги. правда выгодно это городу и стране, поэтому заводы малый бизнес мало поддерживают)

причем тут ответственность? я когда продаю себя(свой труд, знания и тд) в последнюю очередь думаю о ответственности, а в первую о выгоде.
Такое производится и существует почти во всех сегментах.
Иногда попадаются неадекватные заказчики, которые говорят: почему голая LCD панель индустриального применения стоит как мой ноутбук такого же размера?
так может оно штучное, откуда вторую взять?
Ваша статья сводится к этому:
микроконроллеры супер, но если крувые руки — будут проблемы )

непонятно с чем вы сравниваете микроконтроллеры. надежность, неудобство… это по сравнению с чем? Вы же сами написали «для многих задач контроллеры — единственная альтернатива, и заменить их нечем»… для многих это 99%, если применили микроконтроллер, значит на дискретных элементах это сделать было нельзя.

>> Снижение надежности
наборот, мало элементов, все в цифре, сделал грамотную схему (чаще просто скопировал стандартное решение) и прошивку и будет работать годами. Выбрать по каталогу контроллер с требуемым уровнем защиты, поставить где надо экраны. в аналоговых системах с этим еще сложнее. правильные руки решают.

>> Функциональная перегруженность и неудобные интерфейсы
перегруженность плохо? ну не используйте то чем не пользуетесь и все, часть кристала просто не работает, ничего при это не тратя. Зато это делаем контролллеры дешевыми, вместо того чтобы производить 1000 разных моделей, у производителя их 10. Интерфейсы все удобные и стандартные, один раз изучил как работает последовательный порт или АЦП/ЦАП и все. А где удобные интерфейсы?

>> Недокументированные функции
это не проблемы контроллеров, это опять кривость рук, то что портят принтеры и АЭС в этом виноваты разработчики, которые позволили так сделать.

От человеческого фактора никуда не деться.

>> микроконроллеры супер, но если кривые руки — будут проблемы
Суть статьи — обратить внимание на не для всех очевидные вещи, дать информацию к размышлению, а в конечном итоге — возможно, уменьшить количество этих самых «кривых рук».
Микроконтроллеры пихают везде, только не всегда задумываются как их объединять. Например — в стиральных машинках, электроплитах сейчас электроники по самое небалуйся. А вот стоило бы поставить сетевой интерфейс (+10$, ну даже 20$ к стоимости готового изделия погоды не сделают) и как бы резко стало удобней! Комфорки с недавних пор сами определяют когда вода закипела, машинки — когда все постиралось… Сидишь за компом — опаньки, нотификейшн — закипела вода на комфорке №3, пошел закинул пельменей. Снова закипела вода на комфорке №3 — через 3 минуты пошел выключил…
Или борщ готовишь — закипело — с компа понизил мощность плиты, а то и выключил… Еще вариант — едешь домой с работы/ВУЗа — с телефона включаешь плиту на разогрев еды или находясь в центре города включаешь стирку, чтоб к приходу домой постиралось…
Знать бы кому слать такие идеи, даже за бесплатно — лишь бы реализовали…
На самом деле, эти идеи уже давно реализованы. Текущий ступор внедрения базируется на стандартах и нормах безопасности эксплуатации бытовых приборов. Пока не будут пересмотрены стандарты и правила 70-х годов, не бывать возможности внедрения централизованного управления приборами от производителя.

Еще в 2006 году видел на заводе Siemens сетевые интерфейсы для бытового оборудования. Причем, тогда разговор шел об интерфейсе Profi Bus — личной разработке корпорации.

Еще один стопор прогресса — отсутствие универсальных интерфейсов. Каждая компания заинтересована проталкивать свой собственный стандарт, в итоге техника разных производителей оказывается несовместима.
В ближайшем будущем — намечается тенденция перехода на Industrial Ethernet, по крайней мере, у ведущих производителей пром. оборудования.
Реализация-то не сложная. А вот представь если сбой, или, не дай бог, кто-то взломает систему, тогда можно удалённо устроить пожар в твоей квартире.
Чисто теоретически и циски взломать можно… Для такого есть защита от взломов — предварительная авторизация, сертификаты, файлы ключей, https/ssl/ssh, ограничения по MAC, IMEI, № телефона, e-mail, скан сетчатки глаза камерой телефона и чем угодно еще — в наше время идентификаторов у девайсов очень много…
Взлом циски влечет за собой, теоретически, материальные потери.
Взлом системы управления домом — возможные человеческие жертвы.
Не задумывались, почему даже в самых современных газовых плитах от Siemens, напичканных электроникой, управление главной функцией, горелкой, до сих пор «аналоговое», с прямым приводом вентиля от рукоятки управления?
Я имел в виду именно электроплиты, пардон что не уточнил в исходном посте. Газовые плиты, вроде бы, еще не умеют определять закипела вода или нет =)
А на тех же газовых, если мне не изменяет память, была система отключения подачи газа при отсутствии огня, или что-то в таком духе — на случай если жидкость горелку зальет… В таком случае оповещение на компьютер/телефон тоже было бы к стати…
Почему бы не доверить контроллеру закрывать газ в нужный момент? Без физической возможности его случайно открыть.
ИМХО: потому что для производителя газовых плит — это громадная ответственность, несоизмеримая с прибылью от внедрения. Тут на карту маркетинга поставлена цена человеческой жизни. Если ты внедряешь функцию автоматического перекрытия газа, ты должен ее сертифицировать, получить разрешения и тп.

Теперь, представьте ситуацию. Не дай Бог, контроллер, по какой-то причине, не отработал закрытие газа в нужный момент. Как следствие, погибла семья. Дальше — продолжать?

Отсутствие функционала автоматизированного управления потенциально-опасными для жизни потребителя функциями устройств — уберегает производителя от громадных неприятностей, связанных с возможными сбоями в этом функционале. На карте стоит человеческая жизнь. А не просто — потеря данных.
деобфусцировать, и только потом проводить анализ

Зачастую это приходится делать даже когда исходник на руках, спасибо «низкому порогу входа».
Насчет недокументированных функций. Рассказывал один знакомый инженер старой закалки об «антиотладочных» функциях в электронных устройствах. Фотоэлементы, паутина проводников, рвущихся при вскрытии корпуса, убитые элементы, запаянные в рабочую схему (при поиске неисправности заменяем пробитый диод работоспособным и выжигаем оставшуюся схему), элементы в нестандартном включении. Очень помогало в сохранении ноу-хау и куска хлеба с маслом в условиях дикой перестройки и дичайшего капитализьма.
Практически на всех промышленных объектах — микропроцессорные системы управления обязаны дублироваться полностью «ручным управлением». Причем, «ручное управление» — привилегированное. С одной стороны — это тормозит прогресс, с другой — обеспечивает безопасность.

На ответственных узлах широко используются дублирующие системы, например, из двух контроллеров, работающих в «унисон». При возникновении внештатной ситуации на одном из контроллеров — управление берет на себя второй, отключая сбойный.

ИМХО, человечество еще не готово полностью положиться на микропроцессорные системы управления. Может, оно пока и к лучшему.
Ну чаще всего оно не полностью дублируется ручным управлением, в ручную можно нажать лишь кнопку аварийной остановки или отрубить электричество/газ/воду. Все остальное делается лишь посредством изменения настроек управляющего контроллера.
Что-то здесь не обсуждают проблему паленых прошивок, а ведь это — достаточно серьезная проблема. Если в ПК программа может управлять лишь небольшой долей аппаратной части (и то, там предусмотрена куча защит ), то в девайсе на основе МК прошивка может управлять всей схемой. Небольшое изменение прошивки вполне может сжечь порт, а то и весь узел. В большинстве случаев крутые фирмы-производители добавляют в конструкцию различные защитные элементы, а вот с фирмами поменьше все куда сложнее: захотел пользователь обновить ПО, конкуренты подсунули паленку и всё — нету какого-нибудь дорогущего контроллера. И вариант переустановки ОС, как на ПК, здесь не прокатит.
Так не надо прошивку от конкурентов тянуть.
Ага, а вирусы на ПК устанавливаются исключительно по желанию пользователя.
В большинстве случаев именно так. Пользователь — самое слабое место в системе информационной безопасности.
Sign up to leave a comment.

Articles