реклама на сайте
подробности

 
 
> Многопроцессорные системы, Диагностирование зависания оборудования
fakel
сообщение May 16 2008, 06:09
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 16-04-06
Пользователь №: 16 164



Здравствуйте!
Хотелось бы узнать мнение разных людей по следующему вопросу.
Имеется многопроцессорная система (два платы: одна опрашивает оборудование, решает пару математических задач и записывает в RAM (по I2C) (Назавем его Процессорый модуль) второй платы. Во второй плате реализован MODBUS, что позволяет с удаленной машины считывать данные из RAM (Назавем его Модуль передачи данных)) Возникает следующая проблема: если зависает Процессорый модуль, в RAM Модуля передачи данных остается информация записанная туда Процессорным перед зависанием. Комп считывает данные из Модуля передачи данных как будто все нормально! (питание то на Модуле передачи данных осталось). Вопрос: как можно этого избежать?!

Я предлагаю следующее: Процессорый модуль постоянно изменяет 1 байт в RAM Модуля передачи данных (например банальный счетчик). Комп считывает RAM, смотрит изменяется ли этот байт (т.е. теперешнее значение отличается от предыдущего или нет) и если в течении 5 циклов значение не изменяется, то Процессорый модуль завис (ну или питание на нем пропало).

Может существует какой-то уже отработанный метод?!
Так же рад был бы узнать ваше мнение.

(Код меня не очень интересует smile.gif, напишу как-нибудь сам... интерес подход))))

Заранее спасибо!!!

P.S. Думал так же о том, чтобы снабжать данные временными метками... но в реализации это сложнее.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Nick_Shl
сообщение May 16 2008, 09:41
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 17-04-08
Пользователь №: 36 850



Цитата(fakel @ May 16 2008, 09:09) *
Имеется многопроцессорная система (два платы: одна опрашивает оборудование, решает пару математических задач и записывает в RAM (по I2C) (Назавем его Процессорый модуль) второй платы. Во второй плате реализован MODBUS, что позволяет с удаленной машины считывать данные из RAM (Назавем его Модуль передачи данных)) Возникает следующая проблема: если зависает Процессорый модуль, в RAM Модуля передачи данных остается информация записанная туда Процессорным перед зависанием. Комп считывает данные из Модуля передачи данных как будто все нормально! (питание то на Модуле передачи данных осталось). Вопрос: как можно этого избежать?!
Я конечно не спец, но мне кажется что идеология какая-то не правильная... А если комп опрашивать будет быстрее чем ПМ будет выдавать? По несколько раз одни и те же данные будем получать?
Как вариант завести флаг обновления. При записи ПМ в память определённую ячейку ставить в 1. А при пересылке на комп МПД будет её сбрасывать в 0. Правда в случае работы ПМ быстрее опросов - часть данных будет пропадать.
Кстати, можно подробнее как оно сделано? Не на одну же микросхему памяти два устройства повешены...
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение May 16 2008, 20:08
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Nick_Shl @ May 16 2008, 12:41) *
Я конечно не спец, но мне кажется что идеология какая-то не правильная...

Идеология вполне нормальная. По крайней мере не вижу никаких серьёзных перекосов. Короче - один из вариантов.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 04:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016