Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Микропроцессорные системы управления электроприводами и технологическими комплексами. Учебное пособие
.pdf
ным, т. е. ухудшается разрешение. При этом реально достижимое разрешение описывается эффективной разрядностью (effective number of
bits, ENOB), которая меньше, чем реальная разрядность АЦП. При
преобразовании сильно зашумлённого сигнала младшие разряды выходного кода практически бесполезны, так как содержат шум. Для достижения заявленной разрядности отношение сигнал/шум входного
сигнала должно быть примерно 6
дБ на каждый бит разрядности (6 дБ
соответствует двукратному изменению уровня сигнала).
Имеется несколько источников погрешности АЦП. Ошибки квантования и (считая, что АЦП должен быть линейным) нелинейности
присущи любому аналого-цифровому преобразованию. Кроме того,
существуют так называемые апертурные ошибки, которые являются
следствием тактового генератора, они проявляются при преобразовании сигнала в
целом (а не одного отсчёта).
Эти ошибки измеряются в единицах, называемых МЗР – младший
значащий разряд. В приведённом выше примере восьмибитного двоичного АЦП ошибка в 1 МЗР составляет 1/256 от полного диапазона
сигнала, т. е. 0,4 %.
Рассмотрим работу микросхемы AD9200. Данные АЦП обладают
следующими отличительными особенностями:
АЦП выполнена по технологии КМОП (комплементарная струк-
тура металл-оксид – полупроводник);
разрядность АЦП – 10 бит;
максимальная частота выборок – 20 MSPS;
микросхема AD920 совместима по выводам с АЦП AD876;
мощность рассеивания – 80 мВт при U
+3 В;
пит
напряжение питания от 2,7 В до 5,5 В;
дифференциальная нелинейность – 005 LSB;
наличие режима «Выключено»;
выход с тремя состояниями;
индикатор перегрузки;
встроенная функция памяти смещения;
встроенный регулируемый источник опорного напряжения;
скоростные выборки до 135 МГц.
Микросхема AD920 имеет встроенный усилитель выборок и хранения и источник опорного напряжения. Преобразователь имеет возможность коррекции ошибок, обеспечивает необходимую производительность и гарантирует код без пропусков во всём температурном диапазоне. Пользователь может выбрать широкий диапазон изменения ам-
61

плитуды и смещения входного сигнала, а также его вид – униполярный
или дифференциальный.
Встроенные усилители выборок и хранения выполняют решение
двух задач: подачу полной шкалы входных сигналов на последовательный преобразователь и выборки однополярных сигналов. Переменные входные сигналы могут быть сдвинутыми на определённую
заранее величину с помощью встроенной фиксирующей цепи.
9200 располагает встроенным программируемым источником
AD
опорного напряжения. Внешний источник опорного напряжения может потребоваться для снижения ошибок по постоянному току и температурной стабильности.
Вход тактовой частоты используется для управления циклами преобразования. Сигнал перегрузки показывает, что входной сигнал находится за пределами допустимой шкалы, при этом специальный бит показывает
знак перегрузки, означающий, где лежит входной сигнал, а
именно ниже или выше допустимого диапазона.
АЦП специфицированы как для индустриального (от –40 °С до
+85 °С) так и коммерческого (от 0 °С до +70 °С) диапазона температур.
Основные параметры АЦП типа AD9200 сведены в табл. 2.3.
Таблица 2.3
Параметры АЦП типа AD9200
Разрешающая способность, бит 10
Частота выборок (макс.), kSPS 20 000
Каналы, шт. 1
Интерфейс обмена информацией SPI
Диапазон измеряемого напряжения VIN, В от 0,5 до 2,5
Источник опорного напряжения V
DNL (макс.),+/- LSB 1
INL (макс.),+/- LSB 2
Ослабление сигнала SNR, дБ 56
Ослабление сигнала THD, дБ –58
Напряжение питания: AVDD, В от 2,7 до 5,5
Ток потребления ICC, мА 26,6
Мощность рассеивания PD, Вт 0,08
Диапазон температур TA, °C от –40 до 85
Тип корпуса SSOP-28
Внешний
REF
62

Далее представлены разработанный фрагмент кода функции записи
и функции чтения данных для микросхемы аналого-цифрового преобразователя AD7708 на языке Си. При этом был использован последовательный интерфейс SPI.
Функция чтения регистра АЦП
//Вход: name_reg – имя регистра АЦП
//Выход: значение прочитанного регистра
unsigned char ReadRegADC ( unsigned char name_reg )
{
SELECT_ADC();// Выбор микросхемы
ExchangeBySPI(name_reg | READ);//выбор регистра для работы
name_reg=ExchangeBySPI(0X00);
return name_reg;
DESELECT_ADC();/Отключение микросхемы
}
Функция инициализации микросхемы АЦП
//Выход: TRUE – инициализация прошла успешно
// FALSE – ошибка инициализации
unsigned char Init_ADC( void )
{
const unsigned char b1=0x45,c1=0b00001111,d1=0b00000011;
unsigned char a,b,c,d;
SELECT_ADC();// Выбор микросхемы
ExchangeBySPI(IO_CONTROL_R | WRITE);//выбор регистра для
//работы
ExchangeBySPI(0x00);//запись данных в регистр, т.е
. ничего
//там не меняем – нам он не интерисует
ExchangeBySPI(FILTER_R | WRITE);//выбор регистра для
//работы
63

ExchangeBySPI(0x45);//запись данных в регистр//0b01000101
ExchangeBySPI(ADC_CONTROL_R | WRITE);//выбор регистра
//для работы
ExchangeBySPI(0b00001111);//запись данных в
// регистр//0b00001111 1 канал, униполяр, 2,56В
ExchangeBySPI(MODE_R | WRITE);//выбор регистра для
// работы – непрерывное преобразование
ExchangeBySPI(0b00000011);//запись данных в регистр DESELECT_ADC( );/Отключение микросхемы
//read for control
SELECT_ADC();// Выбор микросхемы
ExchangeBySPI(IO_CONTROL_R | READ);//выбор регистра для
//работы
a=(unsigned char)ExchangeBySPI(0x00);//запись данных в регистр
ExchangeBySPI(FILTER_R | READ);//выбор регистра для работы
b=(unsigned char)ExchangeBySPI(0x00);//
запись данных в
//регистр//0b01000101
ExchangeBySPI(ADC_CONTROL_R | READ);//выбор регистра
//для работы
c=(unsigned char)ExchangeBySPI(0x00);//запись данных в
//регистр//0b00001111 1 канал, униполяр, 2,56В
ExchangeBySPI(MODE_R | READ);//выбор регистра для работы
//- непрерывное преобразование
d=(unsigned char)ExchangeBySPI(0x00);//запись данных в ре-
гистр
DESELECT_ADC();//Отключение микросхемы
if ( (b1==b) & (c1==c) & (d1==d) ) return 1;//проверка
// настройки
}
64

2.4. Жидкокристаллические индикаторы
Жидкокристаллические индикаторы (ЖКИ) предназначены для
отображения текстовой и графической информации. Существует множество различных ЖКИ, но наиболее простыми в освоении являются
текстовые дисплеи на основе контроллера HD44780, которые стали дефакто стандартом на символьные дисплеи.
Аналоги этого контроллера или совместимые с ним по интерфейсу
и командному языку микросхемы выпускает множество фирм, среди
которых Epson, Toshiba, Samsung, Philips, Sanyo
личество фирм выпускают ЖКИ-модули на базе данных контроллеров.
Такие модули можно встретить в следующих устройствах: измерительные приборы, медицинское оборудование, промышленное и технологическое оборудование, офисная техника – принтеры, факсы, телефоны и другие.
Текстовые ЖКИ являются недорогим и удобным решением, позво-
ляющим сэкономить время и ресурсы
при разработке новых изделий.
При этом обеспечивается отображение большого объёма информации
при хорошей различимости и низком энергопотреблении. ЖКИ, оснащённые задней подсветкой, позволяют эксплуатировать их в условиях
с пониженной или нулевой освещённостью, а исполнение с расширенным диапазоном температур (–20 °С… +70 °С) – в сложных эксплуатационных условиях, в том числе переносной, полевой
бортовой аппаратуре.
Контроллер HD44780 может управлять двумя строками по сорок
символов в каждой при матрице 5
символы с матрицей 5
10 точек. Сегодня можно приобрести ЖКИ со
7 точек. Также поддерживаются
следующим количеством соотношений символов и строк: 8
16
2, 16 4, 20 1, 20 2, 20 4, 24 2, 40 2, 40 4
и другие.
Для соединения ЖКИ-модуля с управляющей системой используется параллельная синхронная шина, насчитывающая восемь или четыре (выбирается программно) вывода данных DB0…DB7, вывод выбора операции R/W, вывод выбора регистра RS и вывод стробирования/синхронизации Е. Необходимо обеспечить напряжение питания
дисплея V
и отдельно драйвера V0.
CC
[4]. Еще большее ко-
и даже иногда в
2, 16 1,
65

На первом этапе необходимо подать на ЖКИ-модуль питание и добиться от него признаков работоспособности. Схема включения модуля, рассчитанного на стандартный диапазон, показана на рис. 2.13.
Подстроечный резистор R1 позволят плавно задавать напряжение
драйвера, что приводит к изменению угла поворота жидких кристаллов. Этим резистором можно отрегулировать фактическую контраст-
при некотором преимущественном угле наблюдения (снизу-
ность
вверх или сверху-вниз).
Дисплеи на основе контроллера hd44780 характеризуются:
– встроенным знакосинтезатором, для вывода символа достаточно
записать его код в соответствующую область (DDRAM) памяти кон-
троллера;
– параллельным интерфейсом с четырьмя или восьмью линиями
данных, с тремя управляющими линиями;
– возможностью загружать в память знакосинтезатора
(CGRAM)
произвольные символы.
Рис. 2.13. Схема подключения ЖКИ модуля
В табл. 2.4 представлены коды команд.
66

Коды команд текстового дисплея
Таблица 2.4
№
п/п
1 Очистить дисплей 0 0 0 0 0 0 0 1
2 Переход в начало экра-
3 Выбирается направле-
4 Выбирается режим
5 Команда сдвига курсо-
6 Определение парамет-
7 Присвоение счетчику
8 Присвоение счетчику
Название команд Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0 0 0 0 0 0 1 0
на
0 0 0 0 0 1 I/D S
ние сдвига курсора или
экрана
0 0 0 0 1 D C B
отображения
0 0 0 1 S/C R/L – –
ра / экрана
0 0 1 DL N F – –
ров развертки и ширины шины данных
0 1 AG AG AG AG AG AG
АС адреса в области
CGRAM
1 AD AD AD AD AD AD AD
АС адреса в области
DDRAM
Функциональная схема дисплея на основе контроллера HD44780
показана на рис. 2.14. На схеме отмечены: регистр данных (DR), ре-
гистр команд (IR), видеопамять (DDRAM), ОЗУ знакогенератора
(CGRAM), счётчик адреса памяти (АС), флаг занятости контроллера
и др.
Управление контроллером ведётся посредством интерфейса управляющей системы. Основными объектами взаимодействия являются
регистры DR и IR.
Выбор адресуемого регистра производится линией RS, если RS = 0 адресуется регистр команд IR, иначе – регистр данных DR. Данные через регистр DR в зависимости от текущего режима
могут помещаться в видеопамять DDRAM или в ОЗУ знакогенератора
67

CGRAM по текущему адресу, указываемому счётчиком адреса АС. Информация, попадающая в регистр IR, интерпретируется устройством
выполнения команд как управляющая последовательность. Прочтение
регистра IR возвращает в семи младших разрядах текущее значение
счётчика АС, а в старшем разряде – флаг занятости (BF).
Видеопамять, имеющая общий объём 80 байтов, предназначена для
хранения кодов символов, отображённых
на ЖКИ. Видеопамять организована в две строки по сорок символов в каждой. Эта привязка является жёсткой и не подлежит изменению, т.е. независимо от того,
сколько строк будет иметь каждый конкретный ЖКИ-модуль – 80
или 20
4, адресация видеопамяти всегда производится как к двум
1
строкам по 40 символов.
Рис. 2.14. Функциональная схема дисплея на основе контроллера HD44780
По сути, ЖКИ-модуль является устройством с динамической индикацией и циклически производит обновление информации. Контроллер
HD44780 содержит набор внутренних флагов, определяющих режимы
работы различных элементов контроллера. В табл. 2.5 приведены зна-
68

чения управляющих флагов непосредственно после подачи напряжения питания. Переопределение значений флагов производится специальными командами, записываемыми в регистр IR, при этом комбинации старших битов определяют группу флагов или команду, а младшие
содержат собственно флаги.
Таблица 2.5
Флаги, управляющие работой контроллера HD44780
Бит Назначение
I/D
S
S/C
R/L
D/L
N
F
D Наличие изображения: 0 – выключен, 1 – включен
C Курсор в виде подчёркивания: 0 – выключен, 1 – включен
B
Режим смещения счётчика адреса АС, 0 – уменьшение, 1 – увеличение
Флаг режима сдвига содержимого экрана. 0 – сдвиг экрана не
производится, 1 – после записи в DDRAM очередного кода экран
сдвигается в направлении, определённом флагом I/D: 0 – вправо,
1 – влево. При сдвиге не производится изменение содержимого
DDRAM, изменяются только внутренние указатели расположения видимого начала строки в DDRAM
Флаг-команда, производящая вместе с флагом R/L операцию
сдвига содержимого экрана (так же, как и в предыдущем случае,
без изменений в DDRAM) или курсора. Определяет объект смещения: 0 – сдвигается курсор, 1 – сдвигается экран
Флаг-команда, производящая вместе с флагом S/C операцию
сдвига экрана или курсора. Уточняет направление сдвига: 0 –
влево, 1 – вправо
Флаг, определяющий ширину шины данных: 0 – четыре разряда,
1 – восемь разрядов
Режим развертки изображения на ЖКИ: 0 – одна строка, 1 – две
строки
Размер матрицы символов 0 5 8 точек, 1 – 5 10 точек
Курсор в виде мерцающего знакоместа: 0 – выключен, 1 – включен
Контроллер HD44780 поддерживает как операции записи, так и
операции чтения. Чтение регистра DR приводит к загрузке содержимого DDRAM или CGRAM в зависимости от текущего режима, при этом
курсор смещается на одну позицию, как и при записи. Чтение
регистра IR возвращает восемь значащих разрядов, причем в семи
69

младших содержится текущее значение счетчика АС (семь разрядов,
если адресуется DDRAM, и шесть, если CGRAM), а в старшем флаг занятости BF. Этот флаг имеет значение 1, когда контроллер занят, и 0,
когда контроллер свободен. Необходимо учитывать, что большинство
операций, выполняемых контроллером, занимают значительное время,
около 40 мкс, а время выполнения некоторых операций доходит
до
единиц миллисекунд, поэтому цикл ожидания снятия флага BF должен
обязательно присутствовать в программах драйвера ЖКИ-модуля и
предшествовать совершению любой операции (кроме операций проверки флага BF).
После совершения операции записи или чтения DDRAM и появления после нее признака готовности (BF = 0) прочитанное в том же цикле (вместе
с флагом BF) значение АС, вероятнее всего, не будет достоверным, поскольку между появлением признака готовности и вычислением контроллером нового значения АС существует некоторый временной интервал (составляющий около 4 мкс при тактовой частоте
контроллера 270 кГц). Поэтому, если необходимо получить истинное
значение АС, нужно совершить повторную операцию чтения спустя
4 мкс.
Вывод на экран символа производится записью его кода в регистр DR. При этом символ размещается в DDRAM по текущему адресу, указанному АС, а значение АС увеличивается или уменьшается
на единицу.
Для того чтобы произвести переустановку курсора на нужную позицию, необходимо присвоить АС соответствующее значение. При
этом нужно учитывать
такую особенность: когда производится последовательная запись символов и в результате заполняется вся строка,
курсор автоматически переходит на вторую строку, но если необходимо принудительно установить курсор, например на начало второй
строки, то будет неверным присвоить АС значение $28(40), правильным является значение $40(64). Значения адресов DDRAM в диапазоне
$28…3FF и $68…$7F являются
неопределенными и результаты рабо-
ты с ними могут быть непредсказуемыми.
Кроме того, контроллеры, устанавливаемые на ЖКИ-модули, могут
иметь различные наборы символов, причем это зависит как от производителя контроллера, так и от модификации набора символов: японской, европейской, русской и французской. Существует как минимум
два варианта набора символов: контроллер
фирмы Hitachi (H2 – по
маркировке фирмы Powertip) и контроллер фирмы Epson (EH – по
маркировке фирмы Powertip). Недостаток контроллеров фирмы
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
