Устройство управления GSM-модулем SIM900

Задание

Нужна программа для контролера ATmega328p, который подключен к GSM-модулю SIM900.

Алгориртм работы такой:

1)При входящем звонке с номера, который записан на симке в позиции 1 или 2, или 3 - ответ (команда АТА в сериал порт). Если номер на симке не сохранен - сброс (команда АТН0).

2)При появлении сигнала на контакте ATmega (номер пина любой) длительностью больше 1 сек модуль набирает телефон на симке. Сначала набирается номер в позиции 1, если нет ответа - набирает еще раз. Если ответа нет после второй попытки набора, то набирается номер на симке в позиции 2 и т.д.

3)При исходящем звонке, когда на звонок ответили, модуль должен воспроизвести запись (файл amr). Запись amr-файла происходит заранее с микрофона и сохраняется на модуле SIM900. Воспроизведение включается АТ-командой (так же, как и ответ на звонок или сброс).

4)Изначально на аудиовыходе модуля SIM900 стоит микросхема-декодер сигнала DTMF, которая при разговоре улавливает сигнал нажатия клавиш телефона и на соответствующих выходах микросхемы появляются логическая "1". Это нужно для управления нагрузками. Сам модуль SIM900 тоже умеет декодировать эти сигналы и атмега будет получать команды при нажатии клавиш на телефоне (сигнал приходит в виде +DTMF:1 или +DTMF:2. Эти сигналы говорят о нажатии клавиш 1 или 2 соответственно). Было бы замечательно отказаться от дополнительной микросхемы на выходе SIM900, а ее функции переложить на атмегу, то есть: при нажатии на кнопку 1 на пине атмеги повляется сигнал лог.1, при нажатии на кнопку 2 - на другом пине лог.1 Всего будет 4 нагрузки для управления, то есть атмега должна обрабатывать клавиши 1,2,3,4.

Модель устройства в протеусе

Использовался виртуальный COM-порт для работы и программа COM Port Toolkit 3.7

Модуль управления SIM900

Заказать программу