Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
29.07.2011, 10:46
|
|
Прохожий
Регистрация: 30.09.2005
Сообщений: 3
Сказал спасибо: 10
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Тестирование работоспособности контроллера
Здравствуйте, уважаемые знатоки.
Mega128 управляет некоторым тех.процессом. При зависании или выходе из строя процессора (или отдельных его блоков- например одного или нескольких портов), управление необходимо передать аналоговой схеме и зажечь большую красную лампу АВАРИЯ. Как оценить степень работоспособности камня? Сейчас в голову приходят только две идеи и обе пока не особо нравятся.
1. Дёргать ногой одного из портов в основном цикле и интегрировать получившийся меандр. Если камень жив и в сознании, то интегральный результат должен быть больше нуля, но меньше питания.
Минусы такого подхода - метод косвенный, мудрёная аналоговая схемотехника с двухполярным питанием, (несколькими операционниками?), (аналоговым компаратором?), конденсаторами и резисторами. Кроме того, если в алгоритме придётся чего-нибудь менять, соответственно дописывая строчки кода, то период меандра изменится...Да и вообще не хочется переходить к аналоговой схемотехнике...
2. Второй подход чисто цифровой. Источник тактирования процессора- внешний. Тактирующий меандр заводим дополнительно на вход внешнего, по отношению к процессору, цифрового счётчика-сумматора и накапливаем результат. В основном цикле процессора также циклически увеличиваем содержимое одного из регистров и выбрасываем в порт. При помощи цифрового компаратора (ещё один корпус на плате) сравниваем значение счётчика-сумматора со значением, полученным процессором, если совпадают - процессор жив-здоров, нет - принимай меры.
Получается тоже довольно мудрёно и опять те же два лишних корпуса на плате со своей обвязкой. Кроме того, появляются проблемы с синхронизацией счётных процессов (впрочем вполне технически решабельные).
Как принято решать вышеописанную задачу? Как оценить степень работоспособности процессора?
Понимаю, что проблема стара как мир, но процесс гугления, к сожалению, ничего внятного не дал.
Заранее благодарен.
Д.
P.S. Никаких других контроллеров, АСУ ТП и вообще никаких цифровых (принимающих решения) устройств в схемотехнике не предусмотрено по экономическим причинам. Т.е. нужна как можно более простая следящая за здоровьем контроллера схема, выдающая сигнал типа TRUE/FALSE.
|
|
|
Сказали "Спасибо" kudryvzev99
|
|
|
29.07.2011, 10:55
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Тестирование работоспособности контроллера
Это называется watchdog. Просто сейчас они все внутренние. А вам нужен внешний. Можете хоть на резисторе и конденсаторе сделать. Заряжать конденсатор мегаомным резистором, а транзистором быстро разряжать. Если зарядится больше половины питания - триггер сработал, схема переключилась. Вот вам и простейший пес.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо Easyrider83 за это сообщение:
|
|
|
29.07.2011, 10:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: Тестирование работоспособности контроллера
Классическая задача сторожевого таймера. На выводе процессора формируем импульсную последовательность, запускающую одновибратор. До тех пор, пока период выходных импульсов меньше времени работы одновибратора - на выходе одновибратора - 0 иначе - 1. Для надежности формирование сторожевых импульсов лучше всего выполнять в основном цикле в критичной по надежности секции. 2 дополнительные комманды большой задержки не внесут, но будет уверенность, что все работает. время работы одновибратора можно выбрать равным длительности 3-5 основных циклов, чтобы был запас по времени.
__________________
misterdi<@>i.ua
|
|
|
Эти 2 пользователя(ей) сказали Спасибо MisterDi за это сообщение:
|
|
|
29.07.2011, 11:22
|
|
Прописка
Регистрация: 11.10.2008
Сообщений: 132
Сказал спасибо: 8
Сказали Спасибо 35 раз(а) в 30 сообщении(ях)
|
Re: Тестирование работоспособности контроллера
Цитата:
|
1. Дёргать ногой одного из портов в основном цикле и интегрировать получившийся меандр. Если камень жив и в сознании, то интегральный результат должен быть больше нуля, но меньше питания.
Минусы такого подхода - метод косвенный, мудрёная аналоговая схемотехника с двухполярным питанием, (несколькими операционниками?), (аналоговым компаратором?), конденсаторами и резисторами. Кроме того, если в алгоритме придётся чего-нибудь менять, соответственно дописывая строчки кода, то период меандра изменится...Да и вообще не хочется переходить к аналоговой схемотехнике...
|
Не обязательно в основном цикле это делать, достаточно использовать один из таймером (или просто использовать уже задействованный) для генерации периода и по его прерыванию генерить меандр - нет зависимости от кода. Простейший аппаратный частотный компаратор реализуется посредством дифференцирующей цепочки и одновибратора - оч простая схема.
Можно и, наверно, рационально, так же использовать втроеный сторожевой таймер контроллера, например, который будет а)перезапускать контроллер в случае зависания, б)если в самое начало программы(там , где инициализация) добавить строчку дергаюшую ногу, которая будет сигнализировать внешним цепям о рестарте, соответствено получим это при зависании. Но тут нужно подумать, как разграничить случай включения устройства и случай его перезапуска от сторож таймера(я не помню, есть-ли в Мегах средства анализа причин сброса).
|
|
|
Эти 2 пользователя(ей) сказали Спасибо Nfc за это сообщение:
|
|
|
29.07.2011, 11:24
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Тестирование работоспособности контроллера
Сообщение от kudryvzev99
|
Как оценить степень работоспособности камня? Сейчас в голову приходят только две идеи и обе пока не особо нравятся.
|
Пройдитесь поиском по форуму на предмет мессаг testerplus... Здесь уже это обсуждалось... И мессаг пользователя tester на микрочипсю...
Вкратце... кто как... программные методы, железячные, вплоть до установки второго проца... всё зависит от степени требуемой надёжности...
|
|
|
Эти 2 пользователя(ей) сказали Спасибо st_1 за это сообщение:
|
|
|
29.07.2011, 11:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
|
Re: Тестирование работоспособности контроллера
Вочдог это конечно нужная штука, особенно при таких требованиях. Но вот представте такую ситуацию - выгорает порт управления ключем. Контроллер молотит себе, он в регистр битик ткнул, потом считал - вродь оно, а в реальности на порту сводка погоды на Марсе. Результат - полный макакай в рабочей зоне (макакай (кит.) - пи...ц по русски). Тут треба каждый ответственный пин проца контролировать другим пином. И орать если состояния не совпадут.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо _guardianangel за это сообщение:
|
|
|
29.07.2011, 12:32
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Тестирование работоспособности контроллера
Ну да... как-то так...
FLR10_seminar.pdf
|
|
|
Эти 4 пользователя(ей) сказали Спасибо st_1 за это сообщение:
|
|
|
29.07.2011, 13:00
|
|
Прописка
Регистрация: 09.12.2003
Сообщений: 116
Сказал спасибо: 5
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
|
Re: Тестирование работоспособности контроллера
Если походить к вопросу серьезно то тебе ее не решить.
Для этого нужно привлечь другого специалиста который на другой элементной базе сделает устройство контроля за твоей системой на предмет выхода параметров за границы диапазона.
Все что ты наизобретаешь работать будет но плохо.
Уровень твой квалификации не играет роли.
Тут просто нужен другой , свежий взгляд на вещи.
Есть отдельные разработчики которые могут в себе совместить разноплановые подходы и сделать все в одиночку, но они поверь таких вопросов не задают.
Из того что можно сделать самому и малой кровью.
1 ВНЕШНИЙ НИКАК НЕ ЗАВИСЯЩИЙ от проца вачдог.
2 Внешняя схема контороля аварийных состояний.
Работоспособность проца проверять смысла нет.
Как и ставит ловушки на неиспользуемые прерывания.
Но если по малолетству и скудости мастерства охота то пожалуйста ,
хуже не будет.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо PlainUser за это сообщение:
|
|
|
29.07.2011, 13:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,002
Сказал спасибо: 3,021
Сказали Спасибо 3,193 раз(а) в 2,165 сообщении(ях)
|
Re: Тестирование работоспособности контроллера
Сообщение от Nfc
|
Не обязательно в основном цикле это делать, достаточно использовать один из таймером (или просто использовать уже задействованный) для генерации периода и по его прерыванию генерить меандр - нет зависимости от кода.
|
И что? Случился по недосмотру или отсутствию сигнала от датчика вечный цикл, но прерывания-то продолжают идти и ничего не происходит из того, что должно произойти.
Не, прерывания - тупик.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо ForcePoint за это сообщение:
|
|
|
29.07.2011, 13:46
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Тестирование работоспособности контроллера
Простейший пес делается на каком-нибудь чахлом PIC10. Важно, я думаю, только питание ему свое сделать. Чтоб помеха по питанию только один камень свешивала. А в идеале опторазвязку обеспечить.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо Easyrider83 за это сообщение:
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:08.
|
|