--PAGE_BREAK--Использование памяти данных
Память данных пользователя состоит из 640 байт, которые составляют 160 (от 00Н до 9FН) четырехбайтовых страниц, как показано на рисунке 2.3. Как и для прочей периферии, доступ к этой памяти производится через SFR регистры. Группа из 4-х регистров (EDATA1-4) используется для хранения данных четырех байт страницы из последнего обращения. EADRL используется для хранения адреса страницы, куда будет осуществляться доступ. И, наконец, ECON – 8-разрядный регистр управления, в который записывается одна из пяти команд управления доступом к памяти, допускающие различные операции чтения, записи, стирания и верификации. Блок-схема регистрового интерфейса к памяти показана на рисунке 2.4.
Рисунок 2.3– Конфигурация FLASH/EE памяти пользователя
Рисунок 2.4 – Управление FLASH/EE памятью пользователя
Для управления памятью используется регистр ECON, который является интерпретатором команд и в него можно записать одну из пяти чтения, программирования и стирания, как указано в таблице 2.2.
Таблица 2.2– Регистр управления памятью ECON
При использовании данная память может быть запрограммирована в составе системы побайтно, при этом, она предварительно должна быть стерта страничными блоками. Типовой цикл доступа к FLASH/EE памяти включает в себя установку адреса страницы доступа EADRL SFR, запись данных для программирования в EDATA 1-4 (в случае чтения — не записываются) и, наконец, запись команды в ECON, инициирующей действие в соответствие с таблицей 2.2.Следует отметить, что заданный режим работы инициируется по записи слова команды в ECON SFR. При этом микропроцессорное ядро переходит в холостой режим и находится там до тех пор, пока выполнение команды не завершится.На практике это означает, что даже если режим работы с FLASH/EE памятью инициируется двумя машинными циклами (инструкция MOV для записи в ECON SFR), следующая инструкция будет выполнена только после окончания цикла обслуживания FLASH/EE памяти (т.е. спустя 250 мкс или 20 мс). Это означает, что ядро не будет обслуживать запросы на прерывание до тех пор, пока операция с FLASH/EE памятью не завершится, хотя функции управления ядра периферией будет выполняться, как, например, продолжение счета времени/событий Счетчиками/Таймерами на протяжении всего псевдохолостого режима.
Для программирования одного байта в FLASH/EE памяти необходимо чтобы сначала этот байт был стерт, т.е. в ячейке записано FFH. Вследствие особенности архитектуры FLASH/EE памяти, стирание можно производить только для 1 страницы (минимум 4-байта) при инициировании Команды Стирания.
Пример процесса побайтного программирования графически показан на рисунке 2.5. В этом примере во второй байт на странице 03Н пользовательской FLASH/EE памяти записывается код F3H. Однако страница 03Н уже содержит данные в четырех байтах, а пользователю требуется изменить только содержимое одного байта; всю страницу следует сначала прочитать с тем, чтобы можно было стереть содержимое этой страницы без потери данных. Затем новый байт записывается в EDATA SFR вслед за циклом стирания. Если попытаться начать цикл Программирования (ECON=02H), не выполняя цикла Стирания (ECON=05H), то в этом случае будут модифицированы только те разряды, которые содержат единицы, т.е. для правильной записи массива необходимо выполнить его предварительное стирание. Следует отметить, что циклы стирания страницы и всей памяти имеют одинаковую длительность – 20 мс.
Рисунок 2.5– Пример программирования байта памяти пользователя
Ассемблерный код приведенного примера выглядит следующим образом:
MOV EADRL, #03H; Установка указателя страницы MOV ECON, #01H; Команда чтения страницы MOV EDATA2, #0F3H; Запись нового байта MOV ECON, #02H; Команда стирания страницы MOV ECON, #05H; Команда программирования страницы
Использование прерываний
ADuC812 обеспечивает восемь источников и два уровня прерываний. В таблице 2.3 приводятся адреса векторов прерываний и уровни приоритетов.
Таблица 2.3 – Адреса векторов прерываний
Для обработки любого из прерываний следует предпринять следующие три действия:
1. Расположить процедуру обслуживания прерывания по адресу соответствующего прерывания.
2. Установить бит разрешения всех прерываний (ЕА) «1» в регистре IE SFR.
3. Установить бит разрешения индивидуального прерывания в «1» в IE или IE2 SFR.
Для разрешения и установки приоритета различных прерываний используются три регистра SFR.
Счетчик временных интервалов TIC
Важной особенностью прибора является наличие счетчика временных интервалов (TIC), позволяющего отсчитывать временные интервалы большие, чем способны стандартные таймеры – длительностью до 255 часов. Упрощенная схема TICпредставлена на рисунке 2.6.
Работа с TICосуществляется при помощи следующих регистров:
TIMECON– регистр управления TIC(назначение битов TIMECONи набор режимов работы представлены в таблице 2.4);
INTVAL– регистр пользовательского временного интервала;
HTHSEC– регистр сотых долей секунды (инкрементируется через каждую 1/128 секунды, после значения 127 сбрасывается, инкрементируя регистр SEC);
SEC— регистр секунд (после значения 59 сбрасывается, инкрементируя регистр MIN);
MIN– регистр минут (после значения 59 сбрасывается, инкрементируя регистр HR);
HOUR– регистр часов (сбрасывается на 0 после значения 23 или 255 – в зависимости от режима работы).
Рисунок 2.6 — Упрощенная схема TIC
Таблица 2.4– Назначение битов TIMECON
2.2 Выбор датчика давления
Цифровые датчики давления газов (или воздуха) серии ASDX [2] выпускаются в стандартных DIP корпусах и предоставляют информацию о чувствительности, температурном коэффициенте и нелинейности в цифровом виде.
Цифровые датчики давления калиброваны и, наряду со специальной микросхемой (ASIC), имеют схему температурной компенсации. Цифровой датчик давления поддерживает SPIсовместимый интерфейс, что делает его совместимым практически с любым микроконтроллером и микропроцессором.
Датчики давления имеют точность ±2,5% полной шкалы и предназначены для использования в корозионно-устойчивых неионногенных газовых средах, например, в воздухе или в сухих газах.
Датчики серии ASDX DO предназначены для измерений абсолютного, дифференциального и относительного давления в широком диапазоне до 100 psi, серия датчиков избыточного и дифференциального давления ASDXL DO измеряет малые давления в дюймах водяного столба.
Датчики абсолютного давления измеряют давление относительно внутреннего опорного значения. Датчики дифференциального давления измеряют давление, приложенное к разным сторонам измерительной диафрагмы и могут использоваться для измерений избыточного или дифференциального давления.
Особенности:
· абсолютные датчики давления
· датчики для измерения дифференциального и избыточного давления
· калиброванный и компенсированный выходной сигнал
· SPI— совместимый последовательный интерфейс
· диапазоны измеряемого давления 0…±5, 0…10, 0…±10 д.вод.ст.
· время отклика 8 мс
· стандартный DIP корпус
Таблица 2.5- серийные свойства
Внешний вид
Серия
Диапазон измеряемого давления
Метод измерения*
Напряжение питания, В пост. тока
Максимальная погрешность, %
ASDX DO
0…100 psi
А, Д, И
5,25
±2,0
ASDXL DO
±5" вод.ст. ±10" вод.ст. 0…10" вод.ст.
Д, И
5
±2,0
*А – абсолютное, И – избыточное (относительное), Р – разрежения, Д – дифференциальное
Основные характеристики представлены в таблице 2.6
Таблица 2.6
Параметр
ASDXL DO
ASDX DO
Макс. допустимое давление
3 PSI
100 PSI
Напряжение питания
4,75…5,25 В пост. тока
Макс. напряжение питания
6,5 В пост. тока
Потребляемый ток
6 мА
Выходной ток
2 мА
Высокий уровень входа
4,5 В
Низкий уровень входа
0,5 В
SCL частота
100 кГц
Виброустойчивость
10 g в диапазоне 20…2000 Гц
Добротность
1 млн. циклов в минуту
Температурная компенсация
0…85°С
Диапазон рабочих температур
-20…105°С
Выберем датчик ASDX100G24R-DO серии ASDX DO как предназначенный для измерений абсолютного, дифференциального и относительного давления в широком диапазоне до 100 psi.
Внешний вид датчика представлен на рисунке 2.7
Его параметры представлены в таблице 2.7
Таблица 2.7
Параметр
Обозначение
Условия
Min.
Typ.
Max.
Unit
Input High Level
VIH
4.5
–
1
Vs
Input Low Level
VIL
–
0.5
Vs
Output Low Level
VOL
Open Drain IOL = -4 mA
–
0.1
Vs
Pull up Current
VOH
Pin SCL and SDA
5
–
20
μA
Load Capacitance SDA
CL_SDA
-
–
400
pF
SCL clock frequency
fSCL
-
–
100
kHz
Bus free time between STOP and START condition
tBUF
4.7
–
–
μs
Hold time (repeated) START condition
tHD,STA
To first clock pulse
4.0
–
–
μs
LOW period of SCL
tLOW
4.7
–
–
μs
High period of SCL
tHIGH
4.0
–
–
μs
Setup time repeated START condition
tSU, STA
4.7
–
–
μs
Data hold time
tHD, DAT
–
–
ns
Data setup time
tSU, DAT
250
–
–
ns
Rise time of both SDA and SCL
tR
–
–
300
ns
Fall time of both SDA and SCL
–
–
300
ns
Setup time for STOP condition
tSU, STO
4
–
–
μs
Input filter spike suppression
tsp
Spikes on SDA or SCL of that length are suppressed
–
–
50
μs
продолжение
--PAGE_BREAK--2.3 Выбор датчика влажности
В настоящее время на практике для измерения относительной влажности применяется несколько технологий, использующих свойство различных структур изменять свои физические параметры[3] (емкость, сопротивление, проводимость и температуру) в зависимости от степени насыщения водяным паром. Каждой из этих технологий свойственны определенные достоинства и недостатки (точность, долговременная стабильность, время преобразования и т.д.). В таблице 2.8 приведен сравнительный анализ характеристик емкостных и резистивных датчиков относительной влажности, при производстве которых применяются различные материалы.
Таблица 2.8.
Технология производства HONEYWELL
Технологии производства других производителей
Активный материал
Термо- реактивный полимер
Термо- реактивный пластик
Термо- реактивный пластик
Однородный термо- пластик
Однородная триокись алюминия
Хлорид литиевая пленка
Испари- тельный психрометр
Подложка
керамическая или кремниевая
керамическая, кремниевая или стеклянная
полистирол или майлар
нет
нет
керамическая
нет
Изменяющийся параметр
емкость
емкость
емкость
сопро- тивление
сопро- тивление
прово- димость
темпе- ратура
Измеряемый параметр
% RH
% RH
% RH
% RH
% RH
% RH
Температура влажной и сухой колбы
Диапазон измерения
0…100 % RH
0…100 % RH
0…100 % RH
20…100 % RH
2…90 % RH
15…
20…100 % RH
Точность
±1,0…±5,0%
±3,0…±5,0%
±3,0…±5,0%
±3,0…±10,0%
±1,0…±5,0%
±5,0%
3,0…4,0%
Взаимозаменяемость
±2,0…±10,0% RH
±3,0…±20,0% RH
±2,0…±20,0% RH
±5,0…±25,0% RH
плохая
±30…±10,0% RH
отличная
Гистерезис
2,0…5,0%
2,0…5,0%
3,0…6,0%
очень высокий
высокий
Линейность
±1,0%
±1,0%
±2,0%
плохая
плохая
очень плохая
плохая
Время отклика
15,0…60,0 сек
15,0…90,0 сек
15,0…90,0 сек
2,0…5,0 мин
3,0…5,0 мин
3,0…5,0 мин
2,0…5,0 мин
Диапазон рабочих температур
-40…+185°C
-30…+190°C
-25…+100°C
+10…+40°C
-10…+75°C
-
0…+100°C
Температурный эффект
-0,0022%RH/°C
0,3/%RH/°C
>1,0/%RH/°C
>1,0/%RH/°C
>1,0/%RH/°C
Долговременная стабильность
±1,0%RH/5лет
±1,0%RH/1год
±1,0%RH/1год
±3,0%RH/1год
>1,0/%RH/°C
>1,0%RH/год
±0,1%RH/1год
Стойкость к загрязнению
отличная
хорошая
очень хорошая
очень хорошая
очень хорошая
±1,0/%RH/°C
очень хорошая
Стойкость к конденсату
отличная
очень хорошая
хорошая
очень хорошая
очень хорошая
очень хорошая
очень хорошая
Среди всех типов емкостные датчики, благодаря полному диапазону измерения, высокой точности и температурной стабильности, получили наибольшее распространение как для измерения влажности окружающего воздуха, так и применения в производственных процессах.
Компания Honeywell производит семейство емкостных датчиков влажности, применяя метод многослойной структуры (рис. 2.8), образуемой двумя плоскими платиновыми обкладками и диэлектрическим термореактивным полимером, заполняющим пространство между ними. Термореактивный полимер, по сравнению с термореактивной пластмассой, обеспечивает датчику более широкий диапазон рабочих температур и высокую химическую стойкость к таким агрессивным жидкостям и их парам, как изопропил, бензин, толуол и аммиак. В дополнение к этому датчики на основе термореактивного полимера имеют самый большой срок службы в этиленоксидных стерилизационных процессах.
Рисунок 2.8 Метод многослойной структуры, применяемый при изготовлении датчиков влажности
В процессе работы водяной пар проникает через верхнюю пористую обкладку конденсатора (рис. 2.8) и уравновешивается с окружающим газом. Одновременно эта обкладка защищает электрические процессы, протекающие в полимерном слое, от внешних физических воздействий (света и электромагнитного излучения). Слой полимера, покрывающий пористый платиновый электрод сверху, служит защитой конденсатора от пыли, грязи и масел. Такая мощная фильтрационная система, с одной стороны, обеспечивает датчику длительную бесперебойную работу в условиях сильной загрязненности окружающей среды, с другой — снижает время отклика.
Выходной сигнал любого (емкостного или резистивного) абсорбционного датчика влажности представляет собой функцию от температуры и влажности, поэтому для получения высокой точности измерения в широком диапазоне рабочих температур требуется температурная компенсация характеристики преобразования. Компенсация особенно необходима, когда датчик используется в индустриальном оборудовании для измерения влажности и точки росы. Именно для этих целей некоторые модели датчиков Honeywell имеют встроенный платиновый терморезистор сопротивлением 1000 Ом, который расположен с обратной стороны подложки (рис. 2.9).
Рисунок 2.9 Структура датчика влажности со встроенным платиновым датчиком температуры
Датчики влажности Honeywell — это интегрированные приборы. Помимо чувствительного элемента и термосенсора, на той же подложке расположена схема обработки сигнала, которая обеспечивает преобразование сигнала, его усиление и линеаризацию. Выходной сигнал датчика Honeywell является функцией от напряжения питания, окружающей температуры и влажности. Чем выше напряжение питание, тем больше размах выходного сигнала и, соответственно, чувствительность. Связь же между измеренной датчиком влажностью, истинной влажностью и температурой показана на объемной диаграмме (рис. 2.10).
Рисунок 2. 10 Связь между измеренной датчиком влажностью, истинной влажностью и температурой
Она легко аппроксимируется с помощью комбинации двух выражений:
Прямая наилучшего соответствия при 25 °C(жирная линия на диаграмме), описывается выражением Uвых = Uпит(0,0062 · (%RH25) + 0,16). Из этого уравнения определяется процент RH25 при температуре 25 °C.
Далее производится температурная коррекция и вычисляется истинное значение RH: RHистинная = (%RH25) · (1,0546 — 0,00216T), где T измеряется в °C.
Выражения выше соответствуют характеристикам реальных датчиков со следующими отклонениями:
Рисунок 2.11 Характеристики преобразования датчика влажности Honeywell при различных температурах
Особенности применения датчиков серии HIH-3602 [4]
Для работы в суровых климатических условиях и наиболее точного определения значения влажности вблизи точки росы фирма Honeywell выпускает серию HIH-3602 с модификациями. Датчики выпускаются в корпусе ТО-5, в который встроен датчик температуры, для модели HIH-3602-A это NTC термистор номиналом 100кОм, для HIH-3602-С платиновый датчик температуры номиналом 1кОм. Возможны ситуации, когда при высоком значении относительной влажности (более 95%) при понижении температуры возможна конденсация паров воды, что влечет за собой «залипание» показаний на уровне 100% относительной влажности. Для предотвращения этого случая в датчиках серии HIH-3602 предусмотрен гидрофобный фильтр, выполненный из специально обработанной нержавеющей стали. Вывести из «спящего» состояния также помогает подача на датчик несколько повышенного напряжения питания, однако при этом возможно некоторое смещение калибровки на 2…3 %. Сама по себе конденсация и последующее испарение влаги не оказывает влияния на калибровку датчиков.
Основные преимущества серии HIH-3602
— наличие встроенного датчика температуры
— корпус с гидрофобным фильтром
— каждый датчик снабжен паспортом с индивидуальными данными
— лазерная подгонка элементов
— высокая устойчивость к воздействию химических веществ (кроме паров ацетона или этанола).
Выберем датчик HIH-3602-L.
Таблица 2.9
2.4 Выбор индикатора
В данной задаче для вывода информации будет достаточно, чтобы ЖК экран позволял вывести до 8 символов. Таким требования удовлетворяет алфавитно-цифровой ЖК экран производства фирмы Hantronix HDM08111H-L[5], размером 8х1 символ. Размер каждого символа 5х10 пикселей.
Данный экран имеет встроенный контроллер HD44780 от фирмы Hitachi.
На рисунке 2.12приводятся размеры экрана и символов.
Рис. 2.12 – Размеры экрана и символов
В таблице 2.10 приведены назначения выводов ЖК экрана HDM08111H-L.
Таблица 2.10
Назначение выводов
№ вывода
Название
Функция
1
Vss
Общий (GND)
2
Vdd
Напряжение питания
3
Vo
Контрастность
4
RS
Команды/Данные
5
R/W
Чтение/запись
6
E
Выбор модуля
7
DB0
Линия данных 0
8
DB1
Линия данных 1
9
DB2
Линия данных 2
10
DB3
Линия данных 3
11
DB4
Линия данных 4
12
DB5
Линия данных 5
13
DB6
Линия данных 6
14
DB7
Линия данных 7
Для подсветки данного экрана будет использована светодиодная подсветка зеленого цвета. Данный тип подсветки долговечен – наработка до 50000 часов, не требует инвертора напряжения. Рабочий диапазон температур от -30С до +70С.
2.5 Контроллер ЖК экрана HitachiHD44780
Контроллер HD44780[6] фирмы Hitachiфактически является промышленным стандартом и широко применяется при производстве алфавитно-цифровых ЖКИ-модулей. Аналоги этого контроллера или совместимые с ним по интерфейсу и командному языку микросхемы, выпускают множество фирм, среди которых: Epson, Toshiba, Sanyo, Samsung, Philips. Еще большее число фирм производят ЖКИ-модули на базе данных контроллеров. Эти модули можно встретить в самых разнообразных устройствах: измерительных приборах, медицинском оборудовании, промышленном и технологическом оборудовании, офисной технике – принтерах, телефонах, факсимильных и копировальных аппаратах.
Алфавитно-цифровые ЖКИ-модули представляют собой недорогое и удобное решение, позволяющее сэкономить время и ресурсы при разработке новых изделий, при этом обеспечивают отображение большого объема информации при хорошей различимости и низком энергопотреблении. Возможность оснащения ЖКИ-модулей задней подсветкой позволяет эксплуатировать их в условиях с пониженной или нулевой освещенностью, а исполнение с расширенным диапазоном температур (-20°С...+70°С) в сложных эксплуатационных условиях, в том числе в переносной, полевой и даже, иногда, в бортовой аппаратуре.
Контроллер HD44780 потенциально может управлять 2-мя строками по 40 символов в каждой (для модулей с 4-мя строками по 40 символов используются два однотипных контроллера), при матрице символа 5x7 точек. Контроллера также поддерживает символы с матрицей 5x10 точек.
Существует несколько различных более-менее стандартных форматов ЖКИ-модулей (символов х строк): 8 х 2, 16 х 1, 16x2, 16 х 4, 20 х 1, 20 х 2, 20 х 4, 24 х 2, 40 х 2, 40 х 4. Встречаются и менее распространенные форматы: 8 х 1, 12 х 2, 32 х 2 и др., – принципиальных ограничений на комбинации и количество отображаемых символов контроллер не накладывает – модуль может иметь любое количество символов от 1 до 80, хотя в некоторых комбинациях программная адресация символов может оказаться не очень удобной.
В рамках одного формата могут производиться ЖКИ-модули нескольких конструктивов, отличающихся как габаритами ЖКИ (и, как следствие, размерами символов), так и размерами платы и посадки. Например, фирма Powertipпредлагает алфавитно-цифровые ЖКИ-модули 11-ти форматов (от 8 х 2 до 40 х 4) в 37-ми различных конструктивах, 16 х 1 в 6-ти, а модули формата 16 х 2 в 11-ти.
В рамках одного конструктива ЖКИ-модуль может иметь еще ряд модификаций. В частности, могут применяться несколько типов ЖКИ, отличающихся цветом фона и цветом символов, а также по применяемым ЖК-материалам и структуре: TN, STNи FSTNтипа. ЖКИ STNи FSTNтипа имеют более высокую стоимость, но одновременно обладают повышенной контрастностью и вдвое большим максимальным углом обзора, причем ЖКИ FSTNтипа имеют лучшие характеристики, чем STN.
ЖКИ-модули могут оснащаться задней подсветкой, размещаемой между ЖКИ и печатной платой, для чего ЖКИ производятся с полупрозрачным или прозрачным задним слоем (в последнем случае считывание информации возможно только при наличии подсветки). Собственно подсветка может быть реализована несколькими способами: с помощью электролюминесцентной панели, представляющей собой тонкую пленку, излучающую свет при прикладывании переменного тока повышенного напряжения порядка 100ч150В. Люминесцентной лампой с холодным катодам (также работающей при повышенном напряжении), излучение которой равномерно распределяется по всей площади ЖКИ с помощью отражателя или плоского световода. И третий вариант – подсветка на основе светодиодной матрицы.
Первые два способа подсветки обеспечивают высокую яркость и могут иметь белый тон свечения при относительно низком потреблении, потребуют наличия источника повышенного напряжения, что создает некоторые трудности при создании аппаратуры с автономным питанием. Напротив, светодиодная подсветка не требует высоковольтного источника (прямое падение напряжения составляет 4,2 В) и при использовании несложного источника тока позволит производить питание от источника с напряжением 5В. Кроме того, светодиодная подсветка имеет значительно большее (в десятки раз) время наработки, а также только она допустима к эксплуатации в расширенном диапазоне температур (-20°С..+70°С).
Для соединения ЖКИ-модуля с управляющей системой используется параллельная синхронная шина, насчитывающая 8 или 4 (выбирается программно) линий данных DB0...DB7, линию выбора операции R/W, линию выбора регистра RSи линию стробирования/синхронизации Е. Кроме линий управляющей шины имеются две линии для подачи напряжения питания 5В – GNDи Vсс, и линия для подачи напряжения питания драйвера ЖКИ – V.
Указанные выше названия линий шины являются стандартными, но существует множество различных вариантов расположения контактов у каждого конкретного конструктива ЖКИ-модуля. На самом деле, единственным реально стандартным вариантом расположения контактов является двухрядное 14-ти контактное поле, расположенное вертикальное левой части модуля, а также совпадающее с ним двухрядное 16-ти контактное поле, содержащее дополнительную пару контактов с подключенными к ней выводами питания подсветки. В любом случае, для получения достоверной информации необходимо воспользоваться соответствующей справочной литературой изготовителя модуля.
На начальном этапе необходимо подать питание на ЖКИ-модуль и добиться от него признаков работоспособности. Схема включения модуля, рассчитанного на стандартный диапазон температур, показана на рисунке 2.13а. Построечный резистор R1позволяет плавно менять напряжение питания драйвера ЖКИ, что приводит к изменению угла поворота жидких кристаллов. Этим резистором можно отрегулировать фактическую контрастность при некотором преимущественном угле наблюдения (снизу-вверх или сверху-вниз).К сожалению, включение в данную схему ЖКИ-модуля, рассчитанного на расширенный диапазон температур, не приведет к успеху, так как из-за особенностей применяемых в них ЖК-материалов, эти ЖКИ требуют повышенного напряжения питания и при питании напряжением 5В изображение либо будет отсутствовать совсем, либо будет слабоконтрастным. Для преодоления ситуации необходимо подать на вывод V0 отрицательное напряжение (напряжение на ЖКИ определяется разностью Vccи V), составляющее в предельном случае – 5В. Если в схеме отсутствует источник отрицательного напряжения, то не составляет труда собрать простейший преобразователь, например, по схеме на рисунке 2.13.
Рисунок 2.13 – Подача питания на ЖКИ-модуль
Для активизации ЖКИ-модуля подайте напряжение питания и повращайте движок резистора R1(рисунок 2.13). После окончания цикла внутренней инициализации модуль включается в режим развертки одной верхней строки. При изменении напряжения на выводе Vсегменты этой строки должны менять свое состояние от прозрачного до непрозрачного, что является свидетельством правильного подключения питания модуля и работоспособности контроллера и драйверов ЖКИ. Установите движок в такое положение, при котором изображение сегментов в верхней строке едва проступает на основном фоне ЖКИ. Теперь ЖКИ-модуль готов к приему и отображению информации. После того, как вы добьетесь отображения на индикаторе какого-либо текста, то сможете более точно отрегулировать изображение в соответствии с необходимой контрастностью и требуемым углом наблюдения. Для соединения модуля с управляющей системой можно выбрать один из двух вариантов: по 8-ми или 4-х разрядной шине. В первом случае потребуется 11 сигнальных линий, во втором – только 7. Сам процесс обмена также может быть организован двояко. Можно подключить ЖКИ-модуль к системной шине (если таковая имеется) и выполнить обмен в синхронном режиме с максимальной скоростью. Этому широко распространенному в прошлые годы способу присущ ряд недостатков. Во-первых, большинство современных устройств выполняется с применением однокристальных микро-ЭВМ без использования дополнительной внешней памяти и, как следствие, системная шина у этих устройств просто отсутствует. Во-вторых, в современных системах повышенной сложности и производительности, у которых присутствует дополнительная память и, естественно, системная шина, скорость операций на шине находится за пределами возможностей контроллера HD44780 (2 МГц при питании 5 В и 1 МГц при 3 В). Это может потребовать введения дополнительных схем для замедления скорости работы шины при выполнении операций обмена с ЖКИ-модулем. В-третьих, подключение к системной шине в большинстве случаев потребует вводить схемы дешифрации и формирования сигналов Е и R/W, что опять приведет к дополнительным затратам. Все сказанное выше не означает, что вариант с подключением к шине принципиально неэффективен. В какой-то конкретной системе этот способ, наоборот, может быть самым оптимальным. Кроме того, некоторые современные процессоры, имеют встроенные средства для формирования сигналов выборки (CS), с возможностью программно определить скорость обмена с каждым конкретным устройством.
Другой вариант – очень простой путь – обмен с ЖКИ-модулем выполняется чисто программными средствами, через порты ввода-вывода управляющей микро-ЭВМ. В дальнейшем мы сконцентрируем внимание именно на этом варианте, так как он позволяет рассмотреть общий случай, абстрагируясь от конкретной системы. Вариант соединения с системной шиной, напротив, требует рассмотрения конкретных устройств, поэтому в случае необходимости можно рекомендовать изучить временные диаграммы операций чтения и записи, приведенные на рисунках 2.16 и 2.17, а также значения временных параметров, приведенные в таблицах 2.13 и 2.14 и сконструировать соответствующие управляющие схемы.
Нaрисунке 2.15а приведена схема подключения ЖКИ-модуля с 8-ми разрядной шиной к некоторой абстрактной микро-ЭВМ XYZ. Эта микро-ЭВМ содержит два порта: 8-ми разрядный двунаправленный РАО…РА7, к которому подключена шина DBO...DB7 ЖКИ-модуля, и 3-х разрядный РВО… РВ2, к которому подключены линии управляющих сигналов: Е, RS,R/W. На рисунке 2.15б можно видеть схему подключения ЖКИ-модуля к этой же микро-ЭВМ в 4-х разрядном режиме. Обратите внимание, что для обмена в 4-х разрядном режиме используется старшая тетрада шины данных – DB4...DB7.
Рисунок 2.15 – Схема подключения
В соответствии с временной диаграммой (рис. 2.16 и 2.17) в исходном состоянии сигнал Е = 0, сигнал R/W= 0, значение сигнала RS– произвольное, шина данных DBO...DB7 в состоянии высокого импеданса (HI). Такое состояние управляющих сигналов (Е и R/W) должно поддерживаться все время в промежутках между операциями обмена с ЖКИ-модулем. Шина данных в эти моменты в принципе свободна, и может использоваться в мультиплексном режиме для каких-либо других целей, например, для сканирования матрицы клавиатуры. Естественно, необходимо позаботиться об исключении конфликтов на шине данных в момент совершения операций обмена с ЖКИ-модулем.
Последовательности действий, которые необходимо выполнять управляющей системе при совершении операций записи и чтения для 8-ми и 4-х разрядной шины приведены соответственно в таблицах 2.11- 2.14.
Таблица 2.11 – Операции записи для 8-ми разрядной шины
Таблица 2.12– Операции чтения для 8-ми разрядной шины
Таблица 2.13– Операция записи для 4-х разрядной шины
Таблица 2.14 – Операция чтения для 4-х разрядной шины
Рисунок 2.16– Временная диаграмма операции записи
Рисунок 2.17 – Временная диаграмма операции чтения
Приведенные в таблицах 2.11-2.14 операции подразумевают, что время выполнения каждого шага составляет не менее 250 нс. При использовании современных быстродействующих микро-ЭВМ это условие может быть легко нарушено, поэтому необходимо тщательно контролировать минимальные значения временных интервалов, чтобы они всегда находились в области допустимых значений, указанных в таблицах 2.15 и 2.16, и при необходимости вводить задержки.
Таблица 2.15 – Значения временных характеристик. Операция записи
Таблица 2.16 – Значения временных характеристик. Операция чтения
Описанные выше операции записи/чтения байта являются базовыми для осуществления обмена с ЖКИ-модулем. Реализация этих двух операций – единственное, что отличает процесс обмена по 8-ми разрядной шине от обмена по 4-х разрядной шине. Нaоснове этих двух операций, реализованных программно (когда модуль подключен к портам микро-ЭВМ), или аппаратно (когда модуль подключен к системной шине), строятся все виды операций программирования и управления.
Несколько слов о подключении ЖКИ-модулей формата 40 х 4. Эти модели содержат два контроллера НD44780 и фактически представляют собой два модуля 40 х 2. Для сокращения числа соединений все сигналы обоих контроллеров соединены параллельно, исключение составляет только сигнал Е, одновременно выполняющий роль тактового сигнала и сигнала выборки микросхемы CS, поэтому обмен с каждым из контроллеров ведется попеременно.
Перед началом рассмотрения принципов управления ЖКИ-модулем, обратимся к внутренней структуре контроллера HD44780, чтобы понять основные принципы построения ЖКИ-модулей на его основе. Эта информация позволит понять способы организации модулей различных форматов с точки зрения программной модели, а также мотивации конструкторов ЖКИ-модулей.
Упрощенная структурная схема контроллера приведена на рисунке 2.18. Можно сразу выделить основные элементы, с которыми приходится взаимодействовать при программном управлении: регистр данных (DR), регистр команд (IR), видеопамять (DDRAM), ОЗУ знакогенератора (CGRAM), счетчик адреса памяти (АС), флаг занятости контроллера.
Рисунок 2.18 – Упрощенная структурная схема контроллера HD44780
Другие элементы не являются объектом прямого взаимодействия с управляющей программой – они участвуют в процессе регенерации изображения на ЖКИ: знакогенератор, формирователь курсора, сдвиговые регистры и драйверы (напоминаем, что приведенная схема – упрощенная, и многие не важные для получения общей картины промежуточные элементы на ней опущены).
Управление контроллером ведется посредством интерфейса управляющей системы. Основными объектами взаимодействия являются регистры DRи IR. Выбор адресуемого регистра производится линией RS, если RS= 0 – адресуется регистр команд (IR), если RS= 1 – регистр данных (DR).
Данные через регистр DR, в зависимости от текущего режима, могут помещаться (или прочитываться) в видеопамять (DDRAM) или в ОЗУ знакогенератора (CGRAM) по текущему адресу, указываемому счетчиком адреса (АС). Информация, попадающая в регистр IR, интерпретируется устройством выполнения команд как управляющая последовательность. Прочтение регистра IRвозвращает в 7-ми младших разрядах текущее значение счетчика АС, а в старшем разряде флаг занятости (BF).
Видеопамять, имеющая общий объем 80 байтов, предназначена для хранения кодов символов, отображаемых на ЖКИ. Видеопамять организована в две строки по 40 символов в каждой. Эта привязка является жесткой и не подлежит изменению. Другими словами, независимо от того, сколько реальных строк будет иметь каждый конкретный ЖКИ-модуль, скажем, 80 х 1 или 20 х 4, адресация видеопамяти всегда производится как к двум строкам по 40 символов.
Будучи устройством с динамической индикацией, контроллер циклически производит обновление информации на ЖКИ. Сам ЖКИ организован как матрица, состоящая в зависимости от режима работы из 8-ми (одна строка символов 5x7 точек), 11-ти (одна строка символов 5x10 точек) или 16-ти (две строки символов 5x7 точек) строк по 2(Х) сегментов (когда строка насчитывает 40 символов) в каждой. Собственный драйвер контроллера HD44780 имеет только 40 выходов (SEG1...SEG40) и самостоятельно может поддерживать только 8-ми символьные ЖКИ. Это означает, что ЖКИ-модули форматов до 8x2 реализованы на одной единственной микросхеме HD44780, модули, имеющие большее количество символов, содержат дополнительные микросхемы драйверов, например, HD44100, каждая из которых дополнительно предоставляет управление еще 40-ка сегментами.
Особняком стоят ЖКИ-модули формата 16x1. Они также реализованы с помощью одной единственной микросхемы HD44780, но одна 16-ти символьная строка в них фактически составлена из двух 8-ми символьных. И хотя это усложняет программное управление, ведь строка оказывается логически разорванной посередине, тем не менее, экономически это оправдано, ибо позволило создать ЖКИ-модуль, содержащий всего одну микросхему. Другой вариант пространственной адресации встречается в 4-х строчных модулях. Из-за проблем разводки токоведущих дорожек, первая и вторая строки этих модулей являются таковыми как обычно, третья же является продолжением первой строки, а четвертая – второй.
У контроллера HD44780 существует набор внутренних флагов, определяющих режимы работы различных элементов контроллера (таблица 2.17). В таблице 2.18 приведены значения управляющих флагов непосредственно после подачи на ЖКИ-модуль напряжения питания. Переопределение значений флагов производится специальными командами, записываемыми в регистр IR, при этом комбинации старших битов определяют группу флагов или команду, а младшие содержат собственно флаг.
Таблица 2.17 – Флаги, управляющие работой контроллера HD44780
Таблица 2.18 – Значения управляющих флагов после подачи питания
Список управляющих комбинаций битов регистра IRи выполняемые ими команды приведены в таблице 2.19. Так как на момент включения ЖКИ-модуль ничего не отображает (флаг D= 0), то для того, чтобы вывести какой-либо текст необходимо, как минимум, включить отображение, установив флаг D= 1. Вот пример широко распространенной последовательности для инициализации ЖКИ-модуля: $38, $ОС, $06 (знак «$» перед числом указывает на шестнадцатеричное основание). $38 устанавливает режим отображения 2-х строк с матрицей 5x8 точек и работу с 8-ми разрядной шиной данных; $ОС включает отображение на экране ЖКИ-модуля, без отображения курсоров; $06 устанавливает режим автоматического перемещения курсора слева-направо после вывода каждого символа.
Таблица 2.19 – Управляющие комбинации битов регистра IR
Контроллер HD44780 поддерживает как операции записи так и операции чтения. Чтение регистра DRприводит к загрузке содержимого DDRAMили CGRAM, в зависимости от текущего режима, при этом курсор смещается на одну позицию, как и при записи. Чтение регистра IRвозвращает 8 значащих разрядов, причем в 7-ми младших содержится текущее значение счетчика АС (7 разрядов, если адресуется DDRAM, и 6 -если CGRAM), а в старшем – флаг занятости BF. Этот флаг имеет значение 1 когда контроллер занят и 0 – когда свободен. Необходимо учитывать, что большинство операций, выполняемых контроллером, занимают значительное время, около 40 мкс, а время выполнения некоторых доходит до единиц миллисекунд, поэтому цикл ожидания снятия флага BFдолжен обязательно присутствовать в программах драйвера ЖКИ-модуля и предшествовать совершению любой операции (естественно, кроме операции проверки флага BF), поэтому он весьма удобен для отечественных применений. Это свойство контроллеров фирмы Epsonобеспечило им заслуженную популярность на российском рынке, поэтому в последнее время основная масса импортируемых в нашу страну ЖКИ-модулей оснащены именно этим контроллером; в качестве примера в таблице 2.20 приведен набор символов этого контролера.
Один важный момент! После совершения операции записи или чтения DDRAMи появления после нее признака готовности (BF= 0), прочитанное в этом же цикле (вместе с флагом BF) значение АС скорее всего не будет достоверным. Дело в том, что между появлением признака готовности и вычислением контроллером нового значения АС существует некоторый временной интервал, составляющий около 4 мкс при тактовой частоте контроллера 270 кГц. Поэтому, если необходимо получить истинное значение АС, нужно совершить повторную операцию прочтения IRспустя не менее чем 4 мкс (если контроллер работает на частоте 270 кГц время ожидания необходимо пропорционально увеличить). Вывод на экран символа производится записью его кода в регистр DR. При этом символ размещается в DDRAMпо текущему адресу, указываемому АС, а значение АС увеличивается или уменьшается на 1. Чтобы произвести переустановку курсора на нужную позицию, необходимо присвоить АС соответствующее значение (см. таблицу 2.20). Здесь есть одна тонкость. Когда производится последовательная запись символов и в результате заполняется вся строка, курсор автоматически переходит на вторую строку, но если необходимо принудительно установить курсор, скажем, на начало второй строки, то будет неверным присвоить АС казалось бы логичное значение $28 (40), правильным является значение $40 (64). Значения адресов DDRAMв диапазоне $28...$3F(а равно и $68...$7F) являются неопределенными и результаты работы с ними могут быть непредсказуемыми. Необходимо учитывать, что контроллеры, устанавливаемые на ЖКИ-модули, могут иметь различные наборы символов, причем это может зависеть как от производителя контроллера, так и от модификации данной конкретной модели. Например, фирма Powertipвыпускает ЖКИ-модули с четырьмя базовыми модификациями наборов символов: японской, европейской, французской и русской.Более того, существует как минимум два варианта русского набора символов: контроллер фирмы Hitachi(Н2 по маркировке фирмы Powertip) и контроллер фирмы Epson(EHпо маркировке Powertip). Контроллер фирмы Hitachiобладает существенным недостатком – у него весьма ограниченный набор русских символов, фактически у него имеются только прописные русские буквы, и даже среди них отсутствует символ «Ф». Напротив, контроллер фирмы Epsonсодержит полный набор русских символов в прописном и строчном вариантах, поэтому он весьма удобен для отечественных применений. Это свойство контроллеров фирмы Epsonобеспечило им заслуженную популярность на российском рынке, поэтому в последнее время основная масса импортируемых в нашу страну ЖКИ-модулей оснащены именно этим контроллером; в качестве примера в таблице 2.19 приведен набор символов этого контролера.
Из допустимых для размещения в DDRAMкодов символы с кодами $(Х)...$07 (и их дубликат с кодами $08...$OF) имеют специальное назначение – это переопределяемые символы, графическое изображение которых может назначить сам потребитель, разместив соответствующую информацию в области CGRAM. Для программирования доступны 8 переопределяемых символов в режиме с матрицей 5x7 точек и 4 с матрицей 5 х 10 (в режиме 5x10 переопределяемые символы адресуются кодами DDRAMчерез один: $00, $02, $04, $06). Для кодирования матрицы используются горизонтально «уложенные» байты, пять младших битов которых несут информацию о рисунке (причем 1 означает, что сегмент будет включен), 4-й разряд каждого из 8-ми (или 11-ти в режиме 5x10) байтов матрицы определяет левую колонку символа, а 0-й – правую. Старшие три бита не используются, равно как и старшие пять байтов, составляющих полную область матрицы символа (16 байтов) в режиме 5x10 (обратите внимание, что матрица программируемых символов допускает использование полной высоты строки (8 строчек для режима 5 х 7 и 11 строчек для режима 5 х 10), то есть можно размещать точки в области подчеркивающего курсора). Чтобы определить собственный символ необходимо установить счетчик АС на адрес начала матрицы требуемого символа в CGRAM– $00, $08, $10 и т.д. ($00, $10, $20 для режима 5 х К) точек) – произвести перезапись всех байтов матрицы, начиная с верхней строки. После этого, записав в DDRAMкод запрограммированного символа: $00, $01, $02 ($00, $02, $04 для режима 5x10 точек), на экране в соответствующем месте будет отображаться переопределенный символ.
Таблица 2.20 – Таблица кодов символов контроллера Epson, набор «Russian»
Несколько слов о процессе инициализации ЖКИ-модуля. Производитель контроллера рекомендует выполнять следующую последовательность действий для инициализации. Выдержать паузу не менее 15 мс между установлением рабочего напряжения питания (> 4,5 В) и выполнением каких-либо операций с контроллером. Первой операцией выполнить команду, выбирающую разрядность шины (это должна быть команда $30 независимо от того, какой разрядности интерфейс вы собираетесь использовать в дальнейшем), причем перед выполнением этой операции не проверять значение флага BF. Далее опять выдержать паузу не менее 4,1 мс и повторить команду выбора разрядности шины, причем перед подачей команды вновь не производить проверку флага BF. Следующим шагом необходимо вновь выдержать паузу, на этот раз 100 мкс, и в третий раз повторить команду установления разрядности шины, вновь без проверки BF. Эти три операции являются инициализирующими и призваны вывести контроллер в исходный режим работы (то есть перевести в режим работы с 8-ми разрядной шиной) из любого состояния. Следом за ними нормальным порядком (без выдерживания пауз, но с проверкой флага BF) выполняется инициализация режимов работы с выдачей инициализирующей последовательности, аналогичной указанной в таблице 2.19 (содержащей в том числе команду выбора необходимой разрядности шины).
Необходимо помнить, что когда Вы объявляете режим работы с 4-х разрядной шиной, то есть выдаете команду $20, то делаете это обычно из 8-ми разрядного режима, который устанавливается автоматически после подачи напряжения питания, а значит вы не сможете адекватно объявить необходимое значение флагов N и F, располагающихся в младшей тетраде команды установки разрядности шины. Поэтому команду необходимо повторить в уже установившемся 4-х разрядном режиме путем последовательной передачи двух тетрад, то есть для 4-х разрядного режима образом.
продолжение
--PAGE_BREAK--