RAM, ROM & MCU tests in embedded applications

Я нисколько в этом не сомневаюсь...

Да уж полтора десятка годков прошло... где те доки... Хотя вот выловил...

formatting link
"Модули контроллера имеют встроенную самодиагностику программных и аппаратных средств с непрерывным контролем" Слово "непрерывный" заметил? Там есть ссылка на "Руководство по эксплуатации контроллера ТК-20РС" Полюбопытствуй раздел 5 "Действия в экстремальных ситуациях".

Правильное действие при контролируемом отказе (используется именно термин "отказ") - это отключение выходов. А это ловится аварийными блокировками.

Что помню по Микродату: Отказывал 2-мя способами: 1) Индицировал "ОТКАЗ" и честно выключал выходы. 2) Фиксировал выходы в последнем состоянии и ни на что не реагировал.

Что помню по Прокону: 1) Без причин не отказывал. 2) Често индицировал номер выползшего из корзины модуля, по лени не подтянутый винтом :)

Флешей в те времена не было. Окончательная программа шилась в РФ-ку. А до этого рабочая программа хранилась в ОЗУ с батарейной подпиткой. Иногда она терялась и приходилось по новой набивать...

Какие результаты? Что наловила проверка?

Микродат мы не ставили, а Проконы работали. Может нам с заводов не обо всем сообщали... Боровичи, Киров, Бийск, Hоводвинск...

<< Поцелуй мой *б*л*е*с*т*я*щ*и*й* зад... << ... (c) Bender [8E] Dmitry Kuznetsov, Moscow,
formatting link
Беговая Черепаха] [Team LEXX] *
Reply to
Dmitry Kuznetsov
Loading thread data ...

У нас из-за неисправности привода (не ЧПУ) шариковая пара винт-гайка на максимальной скорости долетела ло конца и слегка заклинила - ломиком отворачили :) но, главное, аварийный концевик все же сработал и ничего не сломалось. Потом его малость передвинули с учетом нового опыта ;) А вообще-то, действительно бывает, что во время наладок иногда концевики блокируют... что може вылится в такой вот случай :O

Пока! << Пора промочить перышки... Перышек много - времени мало... Dmitry Kuznetsov, Moscow,

formatting link
Ducks] [Team Беговая Черепаха] [Team LEXX] [Team TV6] Resistance

*
Reply to
Dmitry Kuznetsov

??? Электроника, естественно, меняется, но некоторые решения могут очень долго оставаться современными...

Разработчикам универсальных устройств типа PLC ничего не известно об конкретном назначении систем на их базе и они ориентируются на на общий случай.

Реализация конкретных правильных действий лежит на разработчике системы (интеграторе).

Принцип простой - Отключенное состояние контроллера не должно приводить к созданию на объекте опасных технологических ситуаций.

<< Поцелуй мой *б*л*е*с*т*я*щ*и*й* зад... << ... (c) Bender [8E] Dmitry Kuznetsov, Moscow,
formatting link
Беговая Черепаха] [Team LEXX] *
Reply to
Dmitry Kuznetsov
Reply to
Michael Tulupov

Sat Mar 19 2005 09:52, Michael Tulupov wrote to Alex Gavrikov:

AG>>>> Hаиболее пpостые тесты "шахматы", "бегущая единица/ноль". MT>>> Подскажи RTFM по тестам ОЗУ. В инете или ещё где. AG>> Если так надо спpошу... - есть pыбные места.

MT> Hу имелось в виду формальное описание алгоритмов либо примеры MT> на С/С++/Pascal/Asm/всё что угодно.... MT> Вот хотя бы вышеописанных "шахмат". MT> С "бегущей единицей" я уже по смыслу догадался ;-) MT> MT> У меня есть давнее желание сделать аппаратный тест ОЗУ в фоне. MT> Допустим, пусть контроллер DRAM в фоне гоняет тест, MT> пока на шине (у меня AMBA) нет запросов....... MT> Или посадить ещё одного мастера специально для этого. MT> Вот мне и интересны стандартные тесты - посмотреть, что проще MT> переложить на HDL и далее на железо....

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

"Шахматы" - один из самых простых тестов, его нетрудно сделать неразрушающим. В этом случае за один заход тестируется небольшой участок памяти, содержимое которого сначала сохраняется в отведенном для этой цели буфере, а потом восстанавливается. В тестируемый участок сначала записываются чередующиееся байты (для памяти с байтной организацией) 0х55 и 0хАА, а потом проверяются. После этого комбинация меняется на обратную, 0хАА и 0х55, и тоже проверяется. Этот тест имеет смысл для проверки "слипания" соседних разрядов данных и утечек между соседними ячейками динамической памяти.

"Бегущая волна" (или "бегущий фронт") позволяет выявить "слипание" адресных шин. Обычно делается разрушающим, на всю память. Сначала память заполняется нулями. Потом в первую ячейку записывается 0xFF, при этом проверяется что в эту ячейку 0xFF записалось, а из следующей за ней все еще читается 0. Затем

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

"Простое число" тоже проверяет адреса. Выбирается какое-нибудь не очень маленькое простое число, например, 13. Память заполняется числами от счетчика с таким периодом (например, 1,2,3,...,12,13,1,2,3... и т.д.), затем проверяется.

Можно "волну" скомбинировать с "шахматами", и т.п., уж на что фантазии хватит. Ссылок не приведу. Этими тестами я увлекался в другой жизни, лет 20 назад, источники не помню. "В общем виде" задача тестирования вполне зубодробительная (максимум выявления ошибок при заданных ресурсах; при самотестировании все еще более усложняется), но в то время авторы больше нажимали на эмпирику и здравый смысл, что имхо правильно.

Пока, Алексей

Reply to
Alex Kouznetsov

Sat Mar 19 2005 12:06, Alex Kouznetsov wrote to Michael Tulupov:

AK> Ссылок не приведу. Этими тестами я увлекался в другой жизни, лет 20 AK> назад, источники не помню.

PS: Покопавшись в памяти, вспомнил фамилию автора хорошей книги - Лонгботтом. Благо, запоминающаяся фимилия ;-) После недолгого гугления что-то выловилось: Лонгботтом Р. Надежность вычислительных систем. - М.: Энергоатомиздат, 1985. - С. 283.

Пока, Алексей

Reply to
Alex Kouznetsov

Sat Mar 19 2005 11:23, Vitaly Mihno wrote to Alex Kouznetsov:

AK>> Рассказывали мне пpо случай в ЭHИМСе в 80-х, когда после сбоя AK>> контpоллеpа "pоботизиpованный" кpан сошел с pельсов и пpоломил стену AK>> эдания, где его испытывали. Если бы контpоллеp выключился, кpан бы AK>> пpосто встал.

VM> Конечные выключатели? VM> Огpаничители?

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

Пока, Алексей

Reply to
Alex Kouznetsov
Reply to
George Shepelev
Reply to
Alexander Torres
Reply to
George Shepelev
Reply to
Alexander Torres
Reply to
George Shepelev
Reply to
George Shepelev
Reply to
Alexander Torres
Reply to
George Shepelev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.