Когда мне приспичило сделать GSM-сигнализацию в машину, я наметил для использования ATMEGA8535 и Siemens 35/45 (на оригинальность не претендую
...) и выделил (по крайней мере для себя) три основные проблемы:
1) Неработоспособность телефона на отрицательных температурах;
2) Деградация аккумулятора при постоянном заряде;
3) Автоотключение при неиспользовании (вроде как 3 дня), возможное зависание и т.п.
Первая проблема запросто обходится термостабилизацией. Скорее всего, будет достаточно даже просто термоизоляции, а разогрев обеспечит стабилизатор напряжения. Между делом контролирую напряжение аккумулятора машины и запрещаю термостатирование при его глубоком разряде; ну и шлю об этом дизастере СМС, конечно.
Вторая и третья проблемы решаются в комплексе (и для C45 это решается довольно легко, КМК) патчами прошивки телефона. Ставятся патчи автоматического включения телефона при подключении зарядного устройства и патч отключения "On Air". Так что автоматический перезапуск телефона обеспечивается легко.
Для управления зарядом/разрядом достаточно контролировать заряженность аккумулятора (запрос у телефона величины заряда; этот же процесс обеспечит и контроль "незавешенности": нет ответа = телефон завис) и выполнять отслеживание нахождения аккумулятора телефона в режиме заряд/разряд.
Все срабатывания пишутся в переменную, которая работает как битовое шранилище-шедулер. Ставит бит подпрограмма, обнаруживающая тревогу в каком-то шлейфе, причем какждый бит может быть установлен не более одного раза в один сеанс тревоги (то есть сигналка не засыпет бесконечными сообщениями о том, что открыта дверь водителя). Сеанс тревоги может считаться оконченным только после того, как все биты в шедулере сброшены. Сбрасывает биты подпрограмма-почтальон, только после получения от телефона "ОК" на отправку данной SMS. Почтальон сканирует шедулер всегда в одном направлении и всегда с начала, так что у тревог есть приоритеты (например, открытый капот приоритетнее глубокого разряда АКБ).
По правде сказать проект заморожен год назад перед самым "выливанием в железо" - подопытный телефон призван для несения семейной службы.
Схему/исходники не прикладываю, ибо проект сырой и до железа не доведенный (хотя все шуршало/слало SMS при моделировании в Протеусе; связь с телефоном делалась или по шнурку, или по блютусу), но, если интересно, могу выложить. А пока вот - блок-схема управления зарядом и описание функций (на цвета в ней особенно внимания не обращайте; это мои заморочки - что сделано, что осталось, что стало не актуально).
Прикрепленный файл:
9084299.zip