ЭЛЕКТРОННАЯ"ЗАПИСНАЯ КНИЖКА"


С. КУЛЕШОВ, г. Курган

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

Принципиальная схема устройства показана на рис. 1. Его основа - PIC-контроллер PIC16F84 (DD1). Текст хранится в микросхеме DS1 энергонезависимой Flash-памяти с последовательным интерфейсом I2С (см. статью А. Долгого "Микросхемы памяти с интерфейсом I2С. Особенности и применение" в"Радио", 2001,№ 2,с.24-26; № 3, с. 25, 26). Посредством этого интерфейса, реализованного программно, микроконтроллер DD1 читает информацию из DS1 и передает ее на жидкокристаллический (ЖК) индикатор HG1. Перед чтением или записью каждого байта в ячейку памяти микросхемы DS1 передается адрес этой ячейки. Это несколько замедляет работу, но предотвращает проблемы, связанные с разным размером страницы памяти, которые могут возникать при использовании микросхем разных фирм. Кроме собственно ЖК индикатора, ITM-1602ATR/R (HG1) имеет в своем составе контроллер HD44780, который организует обмен данными с микроконтроллером DD1, имеет знакогенератор для вывода символов и отвечает за отображение информации на экране. Для сокращения числа используемых портов микроконтроллера DD1 обмен с HG1 ведется по четырехбитному интерфейсу, при котором восьмибитные данные передаются тетрадами в два этапа. При таком режиме работы выводы DBO-DB3 индикатора не используются.

cif-2o21.gif
Рис. 1

Управляют "записной книжкой" с помощью кнопок SB1-SB3: первые две служат для прокрутки текста и перемещения курсора меню, а третья - для вызова меню и подтверждения выбора его пунктов. Поскольку все линии порта В, являющиеся входными, подключены к источнику питания через резисторы, необходимости во внешних резисторах, "подтягивающих" порты RB5-RB7 к линии питания.

Так как от устройства не требуется высокой точности отсчета временных интервалов, в качестве частотозадающих элементов тактового генератора микроконтроллера DD1 используется RC-цепь (R3C1). Генератор работает только при обращении микроконтроллера к памяти или ЖК индикатору, во время ожидания нажатия кнопки он отключен и микроконтроллер находится в режиме пониженного энергопотребления.

При включении питания на экране индикатора на короткое время появляется заставка, после чего устройство переходит в режим меню. Теперь, перемещая курсор кнопками SB1 ("<-"), SB2 ("->") и подтверждая команду кнопкой SB3 ("*"), можно перейти в режим чтения (пункт "R"), в "спящий" режим (пункт "S"), установить курсор в начало текста (пункт "Н") или в его конец (пункт "Е"). В этом режиме на экране отображается также текущая позиция текста в шестнадцатиричной форме. При чтении текст "листают" кнопками SB1 и SB2, возврат в меню осуществляется кнопкой SB3. Подстроечный резистор R5 служит для регулировки контрастности изображения на индикаторе HG1. Из "спящего" режима устройство выводят нажатием любой кнопки.

Для обмена информацией между "записной книжкой" и компьютером служит специальная программа, с помощью которой можно передавать текст как из компьютера в устройство, так и наоборот. Программа представляет собой упрощенный текстовый редактор с возможностью загрузки текста в "записную книжку" и выгрузки из нее. Для загрузки текста в устройство необходимо с помощью меню "Файл-Открыть" открыть текстовый файл в ASCII формате, а затем, возможно, произведя некоторые изменения этого текста в окне редактора, с помощью меню "Е-Book->3акачать" запустить процесс загрузки. Текст для загрузки можно подготовить в любом другом текстовом редакторе, а затем через буфер обмена Windows скопировать его в окно редактора программы. Выгрузка текста из "записной книжки" производится через меню "Е-Book->Скачать". После этого текст может быть сохранен в ASCII файл или через буфер обмена перенесен в другую программу. Параметры работы программы (номер LPT порта и объем памяти "записной книжки") изменяют через меню "Настройки-" Параметры".

Обмен производится через кабель-адаптер, схема которого приведена на рис. 2. Вилку ХР1 подключают к параллельному (LPT) порту компьютера.

cif-2o22.gif
Рис. 2

На транзисторах VT1, VT2 реализована функция элемента с открытым коллектором, которая требуется для работы с шиной I2С. Линии SCL и SDA подключены к входным линиям LPT порта (соответственно контакты 13 и 12) для обеспечения контроля состояния первой и приема данных по второй со стороны компьютера.

При работе с компьютером шина I2С функционирует в режиме "Multi Master". Для разрешения конфликтов на ней используется следующий алгоритм: перед тем, как любое из master-устройств собирается произвести обмен с памятью, оно в течение некоторого времени следит за уровнем сигнала на линии SCL. Если в течение этого времени на ней не было уровня логического нуля, master-устройство начинает обмен с памятью. В противном случае оно продолжает отслеживать состояние линии SCL. Поскольку такой алгоритм не всегда способен устранить конфликты, нажимать кнопки "записной книжки" во время обмена информацией с компьютером не рекомендуется.

Питание на микросхему DS1 и индикатор HG1 поступает через порт RB4 микроконтроллера DD1. Это позволяет переводить устройство в "спящий" режим программным способом. При этом питание подается только на микроконтроллер, который также переходит в "спящий" режим (тактовый генератор выключается), и потребляемый устройством ток уменьшается до значения, не превышающего десятка микроампер. Возврат в режим чтения, как отмечалось, производится нажатием любой кнопки устройства. При этом контроллер выходит из "спящего" режима, подает питание на микросхему памяти и индикатор и проводит процедуру инициализации последнего. После этого можно продолжать читать "книжку" с той позиции, которая была текущей в момент перевода устройства в "спящий" режим.

Большинство деталей устройства смонтировано на печатной плате, изготовленной в соответствии с рис. 3.

cif-2o24.gif
Рис. 3

В устройстве допустимо применение микроконтроллера PIC16F84 или PIC16F84A в любом исполнении. DS1 - любая микросхема с интерфейсом I2C из ряда АТ24С01 -АТ24С512 (объем памяти от 128 байт до 64 Кбайт) фирмы ATMEL или других производителей. При этом для каждой микросхемы используют свой вариант прошивки контроллера. В принципе, можно применить от одной до восьми микросхем памяти, задавая для каждой в зависимости от их типа уникальный адрес с помощью адресных входов АО-A3, но при этом потребуется корректировка программы контроллера. Исходные тексты и коды "прошивки" ПЗУ PIC-контроллера для индикатора 2х16 и различных микросхем памяти из указанного ряда, а также программа для работы с "записной книжкой" находятся на ftp-сервере редакции в Интернете (<ftp:// ftp.радио.ru/pub/2002/02/e-book>). Коды программы для микросхемы АТ24С512 приведены в таблице. ЖК индикатор HG1 - двустрочный (по 16 символов в строке) фирмы Intech с русским знакогенератором. Можно применить и другие одно- и двустрочные индикаторы этой фирмы или им подобные других фирм, контроллер которых совместим с HD44780. При этом в программе микроконтроллера нужно скорректировать значения переменных width и height. В случае использования индикаторов с большим числом строк потребуется более серьезная модификация программы.

Индикаторы с контроллером НТ44780 выпускаются с различными знакогенераторами. Если не удастся приобрести индикатор с русским знакогенератором, при вводе текста допустимо заменять русские буквы похожими по написанию латинскими либо использовать транслитерацию (писать русские слова латинскими буквами). Эта возможность предусмотрена в программе. При передаче текста в "записную книжку" символы автоматически заменяются на указанные пользователем. Таблицу замены символов можно изменить через меню "Настройки->Параметры" программы.

При программировании микроконтроллера DD1 нужно установить следующие значения бит в конфигурационном слове: тип генератора (OSC) - RC, сторожевой таймер (WDT) - выключен, задержка после включения питания (PWRTE) - разрешена.

Для питания устройства требуется напряжение 4...5 В (три гальванических элемента типоразмера ААА или четыре дисковых аккумулятора Д-0,1). Работоспособность сохраняется при снижении напряжения батареи до 3 В, однако считывание информации с ЖК индикатора в этом случае затрудняется.

В качестве розетки XS1 (см. рис. 1) в устройстве применен разъем от стереофонических головных телефонов, используемый в импортной аппаратуре. Вилка ХР1 (см. рис. 2) - компьютерная DB-25M. Транзисторы VT1, VT2 (любые кремниевые маломощные структуры п-р-п) и резисторы R1, R2 смонтированы навесным способом внутри вилки ХР1. Длина соединительного кабеля - не более 2 м.


Радио 2/2002, с.22-23