Цитата(Dog Pawlowa @ Dec 23 2006, 11:34)

Цитата(Snowmen @ Dec 22 2006, 21:02)

сразу прошу не бить…
Никто не собирается никого бить
Но структура системы не самая удачная, на мой взгляд.
Tini - вполне нормальная система, хотя и медленная.
Она должна быть ядром системы, и вся логика управления должна быть сосредоточена в ней.
Все прочие датчики и исполнительные устройства могут быть подключены по последовательному интерфейсу к Tini по какому-нибудь стандартному протоколу.
Мне кажется, что Вы идете по пути распределения интеллекта, а при нехватке опыта создания многопроцессорных систем Вы можете долго его накапливать.
Кстати, где Вы используете I2C? Он используется как внешний интерфейс? Он не очень помехоустойчивый.
Да я согласен Тини не ПК но для работы в медленых сетях она и предназначена...И поэтому логикой грузить ее не стоит. Тем более что параллельный порт у нее один. А делать расширенее на мой взгляд не оправдано. Добавить пару (даже на пару) логичеких микросхем и усложнить программы Тини? Какой смысл? Я просто в первом посте не описал структуру (он и так большой получился). На мой взгляд то что не требует НЕОДНОЗНАЧНОГО принятия решения надо оставить микроконтролерам
Структура:
1. Контроллер дискретных датчиков (Atmega16)
24 порта.
функции:
-отслеживание состояния и информирование системы о событии на портах
-ответ на запрос системы о своем состоянии.
-временые задержки включения датчиков
-отключенее (включение) отдельных портов
-проверка связи с системой (самодиагностика)
2. Контроллер исполнительных дискретных устройств (Atmega16)
-включение (отключение) портов
-ответ системе о своем сотояниии
-проверка связи с системой (самодиагностика)
3. Контроллер (назову его главный который и обеспечивает связь и подготовку информацию для Тини)
-связь с контролерами 1 и 2
-отслеживание 8 ми аналогових датчиков
-управление аналоговыми устройствами
-управление ЖКИ
-связь с DTMF (тональное управление с телефона)
-диагностика котроллеров 1 и 2
На мой взляд здесь оптимально Atmega32 (обьема ОЗУ больше)
Связь между микроконтроллерами и Тини (общая) - I2C. Посколько предполагается что все это находится в одном месте. Для связи с еще одним микроконтроллером (можно и не одним, это перспектива) управления электростанцией- CAN (Поставить микроконтроллеру 3 преобразователь TX<->CAN) или задействовать CAN Тини. Ну в общих чертах я вижу так.
По поводу многопроцесорных систем:
На мой взгляд проще написать отладить каждый узел системы отдельно (тем более что он становиться законченым узлом) нежели ломать голову где же рвет программма и программа ли? Я убедился что экономя $4 убиваешь несколько вечеров работы. А самое главное что чем сложнее программа тем больше вероятность баггов которые не всегда обнаружишь ( не все связи между подпрограммами и прерываниями можно предусмотреть, я убедился в этом с USART наконец его победил!). Одним словом мой хоть и не большой опыт программирования убедил меня в том что отказ (технический) нескольких микроконтроллеров имеет меньшую вероятность нежели скрытые багги программы (ну может я плохой програмист... Но я и не претендую на профи). Для меня такой путь кажется проще, я не говорю что он эффективный...