Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Микропроцессорные системы управления электроприводами и технологическими комплексами. Учебное пособие
.pdf
Hitachi – ограниченный набор русских символов. У этого контроллера
имеются только прописные русские буквы, при этом среди них отсутствует символ «Ф». Контроллер фирмы Epson содержит полный набор
русских символов в прописном и строчном вариантах.
Из допустимых для размещения в DDRAM кодов символы с кодами
$00…$07 и $08…$0F имеют специальное назначение –
это переопределяемые символы, графическое изображение которых может назначить сам потребитель, разместив соответствующую информацию в области CGRAM. Для программирования доступны восемь переопределяемых символов в режиме с матрицей 5
5
10 (в режиме с матрицей 5 10 переопределяемые символы адре-
7 точек и четыре с матрицей
суются кодами DDRAM через один: $00, $02, $04, $06). Для кодирования матрицы используются горизонтально «уложенные» байты, пять
младших битов, которые несут информацию о рисунке (причем один
означает, что сегмент будет включен), 4-й разряд каждого из восьми
(или 11 в режиме 5
10) байтов матрицы определяют левую колонку
символа, а нулевой – правую. Старшие три бита не используются, так
же как и старшие пять байтов, составляющих полную область матрицы
символа (16 байтов) в режиме 5
10. Матрица программируемых сим-
волов допускает использование полной высоты строки (восемь строчек
для режима 5
7 и 11 строчек 5 10), т.е. можно размещать точки в
области подчеркивающего курсора. Для того чтобы определить собственный символ, необходимо установить счётчик АС на адрес начала
матрицы требуемого символа в CGRAM – $00, $08, $10 и т.д. ($00, $10,
$20 – для режима 5х10 строчек) – произвести перезапись всех байтов
матрицы, начиная с верхней строки. После этого, записав в DDRAM
программируемого символа: $00, $01 ($00, $02, $04 для режима
код
5
10 строчек), на экране в соответствующем месте будет отображать-
ся переопределенный символ.
При инициализации ЖКИ-модуля рекомендуется выполнять следующую последовательность действий. Обеспечивать паузу более
15 мс между установлением рабочего напряжения питания 4,5…5 В и
выполнением контроллером каких-либо операций. Первой операцией
необходимо выполнить команду, выбирающую разрядность шины
(команда $30, независимо от того,
какой разрядности будет использоваться в дальнейшем), при этом перед выполнением этой операции
вновь не производить проверки флага BF. Далее после паузы в 4,5 мс
повторить команду выбора разрядности шины, причем перед подачей
команды вновь не производить проверку BF. Затем вновь обеспечить
71

паузу 100 мкс, и в третий раз повторить команду установления разрядности шины, и снова без проверки BF. Перечисленные три операции
являются инициализирующими и призваны вывести контроллер в исходный режим работы (т.е. перевести в режим работы с восьмиразрядной шиной) из любого состояния. Далее без выдержки пауз, но с про
веркой флага BF выполняется инициализация режимов работы с выдачей инициализирующей последовательности.
Если объявляется режим работы с четырехразрядной шиной, т.е.
выдается команда $20, то делается это обычно из восьмиразрядного
режима, который устанавливается автоматически после подачи питания,
а значит, невозможно адекватно объявить необходимое значение
флагов N и F, располагающихся в младшей
тетраде команды установки
разрядности шины. Поэтому команду необходимо повторить в уже
установившемся четырехразрядном режиме путем последовательной
передачи двух тетрад, т.е. для четырехразрядного режима.
Рассотрим программную руссификацию текстовых ЖКИ-дисплеев.
Большая чать букв русского алфавита совпадает с буквами английского, осташиеся восемь символов можно обеспечить перепрограммированием, шаблоны которых загружаются в
ОЗУ знакогенератора
(далее – ЗГ). Итак, имеем: буквы «А», «В», «Е», «К», «М», «Н», «О»,
«Р», «С», «Т», «Х»; буква «З» похожа на цифру «3»; буква «Ь» – на
строчную букву «b»; букву «Ы» можно составить из двух символов;
букву «Ъ» можно составить из апострова «’» и буквы «b». Отсюда
остается 17 букв, из
них к восьми можно подобрать символы из ПЗУ
знакогонератора, которые отдалённо напоминают русские буквы и в
контексте могут быть понятны. Шаблоны букв «Б», «Г», «Д», «Ж»,
«И» («Й»), «Л», «П», «Я» необходимо записать в ОЗУ ЗГ с кодами от 0
до 7. Такой вариант является наиболее простым. Необходимо учесть,
что текст без
букв «Ё» и «Й» читается более сложнее и неэстетичен.
Таким образом, решение, при котором шаблоны недостающих букв
загружаются в знакогенератор динамически, позволяет достичь лучших результатов. После инициализации дисплея в ОЗУ ЗГ загружаются шаблоны букв, не имеющие эквивалента в ПЗУ ЗГ. При выводе
очередного символа на дисплей выполняется функция перекодировки
ASCII-кода в код дисплея. Этот алгоритм показа на рис. 2.15.
Данный алгоритм успешно выполняет вывод русских букв, если одновременно на дисплее присутствует не более восьми различных перепрограммируемых символов. Если таких символов больше, то для остальных будут выделены подобранные заменяющие символы из ПЗУ ЗГ.
-
72

При необходимости можно изменить выводимый текст так, чтобы
избежать подобных ситуаций.
Рис. 2.15. Алгоритм перекодировки ASCII-кода в код дисплея
73

В табл. 2.6 показано соответствие между кодом символа в ОЗУ
данных, адресом шаблона в ОЗУ ЗГ и шаблоном символа
Таблица 2.6
Соответствие между кодом символа в ОЗУ данных, адресом шаблона
в ОЗУ ЗГ и шаблоном символа
Код символав ОЗУ
данных
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
0 0 0 0 х 0 0 0
0 0 0 0 х 0 0 1
……………………….
0 0 0 0 х 0 1 1
Адрес в ОЗУ ЗГ
0 0 0
0 0 1
0 1 0
0 0 0 0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0 0
0 0 1
0 1 0
0 0 1 0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0 0
0 0 1
0 1 0
1 1 1 0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
х х х 1 1 1 1 1
1 0 0 0 0
1 0 0 0 0
«Б» 1 1 1 1 0
1 0 0 0 1
1 0 0 0 1
1 1 1 1 0
х х х 0 0 0 0 0
х х х 1 0 0 0 1
1 0 0 0 1
1 0 0 1 1
«И» 1 0 1 0 1
1 1 0 0 1
1 0 0 0 1
1 0 0 0 1
х х х 0 0 0 0 0
х х х 1 1 1 1 1
1 0 0 0 1
1 0 0 0 1
«П» 1 0 0 0 1
1 0 0 0 1
1 0 0 0 1
1 0 0 0 1
х х х 0 0 0 0 0
Шаблон
(данные в ОЗУ ЗГ)
74

Далее в качестве примера представлен программный код формирования нового символа.
/***********************************************************
genereta new simbol
***********************************************************/
void lcd_New_simbol_b ( uint8_t data )
{
unsigned char LCD_CGRAM_ST=0B00000000;
unsigned char LCD_DDRAM_ST=0B00000000;
lcd_write((1<<LCD_CGRAM)+LCD_CGRAM_ST,0);//0 –
//INSTRUCTION
lcd_write(0b000
lcd_write(0b000
lcd_write(0b000
lcd_write(0b000
lcd_write(0b000
lcd_write(0b000
lcd_write(0b000
11111,1);
10000,1);
10000,1);
11110,1);
10001,1);
10001,1);
11110,1);
lcd_write(0b00000000,1);
lcd_write((1<<LCD_DDRAM)+LCD_DDRAM_ST,0);
}
75

3. МЕТОДИЧЕСКИЕ ОСНОВЫ ВЫБОРА
ТИПА МИКРОКОНТРОЛЛЕРА
Выбор микроконтроллера. Самыми широко используемыми яв-
ляются микроконтроллеры (МК) фирм: Atmel [2], Microchip [2], Free-
scale [3], Siemens [4], Analog Devices [5] и др. МК названных произво-
дителей имеют много общего, поэтому для рационального выбора типа
МК следует чётко сформулировать требования, предъявляемые к решаемой задачи. Выбираемый микроконтроллер должен отвечать жёстким требованиям, поэтому необходимо обратить внимание на следу
ющие параметры.
1. Количество входных и выходных по отношению к МК сигналов
должно быть на 10 % больше расчётного значения.
2. Тип сигналов (аналоговый либо дискретный) должен соответствовать поставленной задаче. Для обработки аналоговых сигналов
можно использовать интегрированный в микроконтроллер аналогоцифровой преобразователь. Однако можно использовать и внешний
преобразователь аналогового сигнала в цифровой [12].
3. Количество доступных прерываний должно отвечать поставленной задаче. Время отклика прерывания (промежуток времени от момента события, вызвавшего прерывание, до момента начала выполнения первой команды) должно быть минимальным.
4. Разрядность микроконтроллеров. Разрядность: 8, 16 или 32?
Расширенные возможности и универсальность восьмиразрядных микроконтроллеров привели к интересной ситуации на рынке. Некоторым
производителям, которые отказались
32-разрядных семейств, в настоящее время во многих приложениях
приходится конкурировать с решениями на основе восьмиразрядных
МК. На микроконтроллерах с более высокой разрядностью можно реализовать все то, что и на восьмиразрядных МК. Однако возникает вопрос, насколько это эффективно? К сожалению, в большинстве случаев
это менее эффективный подход.
от таких МК в пользу 16 - и
-
76

Восьмиразрядные микроконтроллеры предназначены для взаимодействия с простыми устройствами, такими как переключатели, кнопки, различные датчики, небольшие дисплеи и индикаторы, клавиатуры.
Плотность кода для устройства на основе восьмиразрядного МК
намного ниже, чем для 16- или 32-разрядного процессора. Большинство 32-разрядных микроконтроллеров оптимизировано для работы на
более высоких частотах. Они более чувствительны к
шуму и имеют
более высокое энергопотребление.
В целом классификация рынка МК по емкости шины данных
слишком примитивна. Существует ряд приложений, где приходится
искать компромисс между степенью интеграции, потреблением, вычислительной эффективностью, стойкостью и стоимостью.
Как правило, 32-разрядные МК лучше подходят для программноориентированных приложений с машинным интерфейсом, в которых
главное –
это высокая вычислительная способность, а также работа
в режиме реального времени и многопоточность. Для аппаратноориентированных приложений, в которых требуется детерминированность поведения, низкое потребление в режиме ожидания, хорошие электрические характеристики и наличие интерфейса пользователя, лучшим решением по-прежнему является восьмиразрядный МК [9].
5. Микроконтроллер должен иметь достаточный уровень
надёжно-
сти, помехозащищённости. Однако не все производители обладают
такими технологиями, способными достичь необходимого качества.
Выявить некачественные микроконтроллеры на этапе покупки практически невозможно, но тем не менее этот факт присутствует.
6. Высокая производительность, необходимая для большого количества обрабатываемой информации. Производительность микроконтроллера напрямую зависит как от максимальной тактовой часто-
, так и от его архитектуры.
ты
7. Объём внутренней памяти данных и программ должен позволить
реализовать поставленную задачу. Оценить необходимый объем памяти на первоначальном этапе, не имея опыта, практически невозможно.
В идеальном случае программа управления составляется с помощью
отладочных модулей, например, для МК фирмы ATMEL разработан
модуль STK600. По окончании разработки
программного алгоритма
размер памяти становится очевидным.
8. Тип корпуса микроконтроллера. При проектировании макетного
образца часто подходит микроконтроллер в корпусе DIP (Dual In-line
77

Package). Данный корпус имеет прямоугольную форму с двумя рядами
выводов по длинным сторонам. При проектировании серийного изделия – TQFP (Thin Quad Flat Pack) – семейство корпусов микросхем,
имеющих планарные выводы, расположенные по всем четырём сторонам. Микросхемы в таких корпусах предназначены только для поверхностного монтажа.
9. Тип источника тактового сигнала. Многие микроконтроллеры
имеют интегрированные
тактовые генераторы на различные частоты.
Таким образом, в некоторых случаях можно использовать внутренние
тактовые генераторы импульсов, что позволит сократить время проектирования платы и сэкономить место на плате.
10. Тип коммуникационных интерфейсов. Выше было отмечено,
что в микроконтроллерах распространены такие интерфейсы, как
Two Wire Interface – модуль двухпроводного интерфейса;
TWI –
USART – Universal Synchronous Asynchronous Receiver-Transmitter –
универсальный синхронный/асинхронный приёмопередатчик; JTAG
(Joint Test Action Group – интерфейс для подключения сложных циф-
ровых микросхем или устройств уровня печатной платы к стандартной
аппаратуре тестирования и отладки); SPI (Serial Peripheral Interface) –
последовательный периферийный интерфейс – последовательный синхронный стандарт передачи данных и др.
11. Развитая программная поддержка программирования и отладки
программы как виртуально, так и внутрисхемно
. Внутрисхемная отладка расширяет возможности отладки тем, что позволяет наблюдать
внутренние локальные и глобальные переменные.
12. Диапазон рабочих температур, влажности, запылённости должен быть достаточно широк. Например, температурные диапазоны
подразделяются:
– на коммерческие: от 0 °С до +70 °С,
– промышленные: от –40 °С до +85 °С,
– автомобильные: от –40 °С до +125 °С.
13. Цена и срок поставки играют немаловажную роль. В отдельных
случаях наиболее недорогой микроконтроллер может позволить снизить общую стоимость системы.
14. Опыт работы с данным типом микроконтроллеров позволяет
сократить время разработки.
15. Возможность расширения системы, а также возможность перехода в дальнейшем на другие микроконтроллеры.
78

16. Литературная поддержка, охватывающая широкий набор пе-
чатных материалов, которые могут помочь сделать правильный выбор.
Она включает в себя:
выпуски производителя, такие как технические описания и ре-
комендации по применению, а также издания, доступные в местном
книжном магазине и/или библиотеке;
издания из местного магазина и/или библиотеки не только ука-
зывают на популярность производителя/микроконтроллера, но и публикуют беспристрастные мнения, если они высказаны независимыми
от производителя авторами.
При разработке устройства управления необходимо закладывать
запас по количеству периферийных устройств (аналоговых и дискретных входов-выходов; таймеров, счетчиков и т.п.) до
10 %.
Рассмотрим примеры выбора микроконтроллеров.
Пример 1. Необходимо выбрать микроконтроллер для вновь раз-
рабатываемого терморегулятора. Терморегуляторы компании ОВЕН,
зарекомендовавшие себя с хорошей стороны, имеют достаточно полный функционал. Внешний вид регулятора температуры ОВЕН 2ТРМ
показан на рис. 3.1.
Рис. 3.1. Внешний вид регулятора
температуры ОВЕН 2ТРМ
Видим, что терморегулятор содержит: четырехразрядный семисегментный индикатор, три светодиода, три кнопки, два канала измерения
аналогового сигнала и два релейных выхода. Таким образом, при реализации динамического способа управления семисегмантными индикаторами достаточно 12 дискретных выхода; для обеспечения двухка-
79

нальной оцифровки требуется четыре аналоговых входа, для организации обмена информацией через UART необходимо два вывода микроконтроллера, общее количество требуемых входов-выходов приведено
в табл. 3.1.
Таблица 3.1
Определение количества входов
Назначение Количество входов / выходов
Количество дискретных входов 4
Количество дискретных выходов 18
Количество аналоговых входов 4
Всего выводов 26
10 %-й запас 2
Итого с учётом запаса 28
Данным требованиям удовлетворяют как минимум два различных
микроконтроллера (табл. 3.2).
Таблица 3.2
К выбору микроконтроллеров
Параметры ATMEGA 16 PIC18F4420
Количество свободных входов-выходов* 28 28
Стоимость, руб. 200 692
Программное обеспечение, по пятибал-
льной системе
Возможность внутрисхемной отладки Есть Есть
Быстродействие, MPS (миллион опера-
ций в секунду)
Память типа EEPROM, kbyte Есть, 4 Есть, 0.256
* Для микроконтроллера ATMEGA 16 четыре вывода зарезервировано под
интерфейс JTAG для возможности внутрисхемной отладки и программирования.
80
5 4
16 40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
