Микропроцессоры и микроконтроллеры

 
 
 
«Обучение программированию не может научить быть экспертом, также как и изучение кистей и красок не может превратить кого-либо в художника.»
Eric S. Raymond
Русский | Українська


Микропроцессоры и микроконтроллеры :: Статьи :: Современный автоответчик на базе ARM.Часть вторая

Современный автоответчик на базе ARM.Часть вторая

Общие сообщения, а также сообщения, записанные после паузы, хранятся в почтовом ящике 0. Сообщения записываются до свершения одного из трех событий: достижения программируемого максимального времени записи (в этом случае абонент будет извещен коротким сигналом, что система разъединится); кто-то повесил трубку (таким образом прервав сообщение); или обнаружено, что трубку повесил абонент

Автоответчик

(по краткому прерыванию тока в линии или тональному сигналу). После того как сообщение будет записано, адресат извещается по электронной почте и его зеленый светодиод (0, 1, 2 или 3) начинает медленно мигать. Это означает, что по крайней мере есть одно не-прослушанное сообщение.

Пользователь, например, Джулия, может прослушать свои сообщения, если система находится в режиме локального прослушивания. Передняя панель достаточно легка в применении. Джулия может нажать свою кнопку и прослушать сообщения одно за другим. В конце сообщения раздается короткий сигнал. И с этого момента имеется тройной интервал времени, чтобы сохранить или стереть сообщение. Если Джулия нажимает кнопку и удерживает ее в течение секунды, то самое последнее прослушанное сообщение будет стерто.

Полагаю, что самый интересный режим — это режим интернет-доступа. Просто набрав IP-адрес домашней сети, к которой подключен ТАМ-ТАМ, Джулия сможет принять адресованные ей сообщения. Данной процедуре приема присуща одна проблема, так как интернет-провайдеры не позволяют пользователям, не имеющим учетной записи, запускать в своей сети веб-серверы. Вот почему провайдеры часто фильтруют IP-адреса, присвоенные таким сетям, и блокируют подключения к 80 порту. Чтобы обойти данное ограничение, я сконструировал ТАМ-ТАМ с веб-сервером, запускающимся через порт 8000.

Кроме того, я присоединился к службе, позволяющей мне указывать мой веб-сервер и иметь к нему свободный доступ через свой собственный порт. Собственный сервер ТАМ-ТАМ, запускающийся через 8000 порт, может быть доступен откуда угодно по адресу tamtam.hostredirect.com (hostredirect.com — просто пример). IP-адрес поддерживается в актуальном состоянии в DNS-cep-верах благодаря маленькой утили-

те, запущенной на моем компьютере. Компания, предложившая этот сервис, подробно объяснила, каким образом может быть обеспечено выполнение этой утилиты на другой платформе, а значит, теоретически она может быть подсоединена к ТАМ-ТАМ.

ОБЗОР СИСТЕМЫ

ТАМ-ТАМ построен на базе микроконтроллера LPC2138 (см. рис. 3). Микропроцессор разделяет ресурсы своей шины SPI с устройством чтения карт SD/MMC и Ethernet-контроллером фирмы Microchip Technology ENC28J60. (Я пользовался флэш-картой Kingston Technology Elite Pro SD/MMC, но вы можете взять любую другую.) Две линии выбора кристалла указывают шине SPI, переключиться ей к карте флэш-памяти или сетевому интерфейсу (см. рис. 4).

Индивидуальные линии ввода/вывода общего назначения управляют светодиодами и переключателями передней панели. Встроенный АЦП, подключенный непосредственно к интерфейсу, служит для записи входящих сообщений. ЦАП используется для вывода сообщений на локальный громкоговоритель или в телефонную линию. С ftp-сайта Circuit Cellar можно скачать полное описание схемы.

Изначально я сконструировал некоторые из подсистем с помощью макетной платы Keil МСВ2130. Убедившись, что проект претендует на успех, я разработал печатную плату.

ЧЕТЫРЕХКОНТАКТНЫЙ ETHERNET

Мне повезло в том, что я приобрел ранний образец микросхемы контроллера Ethernet ENC28J60. Это устройство интересно тем, что с его помощью очень легко добавить Ethernet-связь к миниатюрному процессору, поскольку в нем содержится SPI. Я выбрал этот интерфейс, потому что он в нем используется только четыре вывода: вход (SPI IN), выход (SPI OUT),

Автоответчик

тактовый генератор (CLOCK) и выбор кристалла (CHIP SELECT). ENC28J60 содержит в себе два настраиваемых драйвера светодио-дов. Я использовал по умолчанию конфигурацию, в которой индикация обнаружения несущей частоты осуществляется с помощью одного светодиода, а индикация трафика — с помощью другого. С целью отладки я установил све-тодиоды на монтажной плате, но их нет на внешней стороне корпуса. Сама микросхема требует только два дополнительных компонента: развязывающий конденсатор для внутреннего стабилизатора и резистор смещения.

В начале я планировал разработать для нового экземпляра новый драйвер. Но моя задача была облегчена, потому что микросхема работала в точности согласно описанию, несмотря на все предостережения поставщика, что это один из первых образцов.