Которых отдельных случаев. Их глав ное различие разрешение дисплея



Скачать 135.97 Kb.
Pdf просмотр
Дата02.03.2017
Размер135.97 Kb.
Просмотров252
Скачиваний0
которых отдельных случаев. Их главное различие — разрешение дисплея
(табл. 1).
В
ВЕДЕНИЕ
В настоящий момент в промышленности, на транспорте, в медицинских и контрольно измерительных приборах,
в системах автоматизации производственных процессов и еще во многих областях человеческой деятельности для отображения информации все чаще применяются плоскопанельные электролюминесцентные дисплеи. Компания Planar производит целый ряд моделей таких дисплеев с различными характеристиками. Одной из основных характеристик дисплея является его разрешение. Дисплеи с разрешением точек, такие как AM1, EL468.480 AG1,
EL468.480 AF1, EL468.480 AM8, или точек (EL320.240.36) требуют для работы сними плату видеоадаптера которой поддерживал бы данную панель. Производители видео карт, как правило, предоставляют и схему подключения, если ви деоконтроллер, установленный на плате, поддерживает плоскопанельные электролюминесцентные дисплеи. Такие дисплеи позволяют отображать большие объемы текстовой и графической информации в удобной для восприятия оператором форме,
но сами отличаются при этом довольно большими габаритными размера ми.
С у щ ест в у е т множество приложений, где данные возможности отображения избыточны, где экономичнее применять дисплеи, имеющие меньшие габариты и меньшее разрешение. Дисплеев данного класса компания Planar производит довольно много, можно сказать — целую линейку. Однако покупать дисплей с разрешением,
скажем, 160
×
80 точек и к нему видео карту с заведомой функциональной избыточностью, я думаю, будет недё
шево и нерационально. Других же, более экономичных способов управления этими дисплеями, на первый взгляд, нет. Вместе стем выход в данной ситуации имеется. И об этом пойдет речь далее.
К
РАТКАЯ ХАРАКТЕРИСТИКА
EL
ДИСПЛЕЕВ
P
LANAR
В данной статье будут рассмотрены малогабаритные электролюминесцентные дисплеи компании которые, намой взгляд, незаслуженно имеют меньшую популярность, чем дисплеи с большим разрешением. Вероятно, это связано с мнением о трудностях сих подключением, отсутствием полной информации и примеров успешных применений. Все эти дисплеи имеют схожие эксплуатационные характеристики, одну и туже схему подключения, за исключением не
В
ЗАПИСНУЮ КНИЖКУ ИНЖЕНЕРА
Параллельный порт вместо
видеокарты
Константин Козлов
70
СТА 4/2001
www.cta.ru
Тип дисплея
EL160.80.50
Разрешение, точек
160
×
80
EL160.120.39 160
×
120
EL240.128.45 240
×
128
EL320.240.36 320
×
240
EL480.60.43 480
×
60
EL480.240 PR2 480
×
240
EL640.200 SK
640
×
200
Таблица 1. Примеры малогабаритных
плоскопанельных дисплеев с различным
разрешением компании Planar
У
ПРАВЛЕНИЕ
EL
ДИСПЛЕЯМИ
ЧЕРЕЗ
LPT
ПОРТ
В настоящее время на рынке микроэлектроники есть большой выбор специализированных контроллеров для управления электролюминесцентными дисплеями. При этом надо отметить,
что такие контроллеры применяются,
как правило, в узкоспециализированных устройствах, где они подключаются непосредственно к шине адресов и данных центрального процессора, в качестве которого чаще всего применяются микроконтроллеры компаний (8085, 80C51 и др) или Motorola
(6800 и др. Индустрия таких контроллеров хорошо развита, и сами производители на их базе предлагают множество решений.
Управлять подобными контроллерами довольно просто. Необходимо иметь восемь сигналов для передачи данных и четыре служебных сигнала для операций чтения/записи этих данных. Все промышленные одноплат ные компьютеры (Octagon, Advantech,
Fastwel и пр, да и не только одно платные, обязательно имеют в своем составе параллельный порт LPT. Во встроенных применениях подключаемый к нему принтер используется редко, порт по сути простаивает или ис
© 2001, CTA Тел (095) 234 0635 Факс (095) 232 1653 http://www.cta.ru
пользуется для других нужд, например для дискретного ввода вывода. Поэтому идея использовать порт LPT для управления контроллером малогабаритных дисплеев напрашивается сама собой. С этой целью компания Planar предлагает плату SED1335 controller board (еще одно название — SED1335
DEMO), которая содержит в своем составе контроллер, поддерживающий как LC , таки дисплеи, и статическое ОЗУ 32 кбайт. Остановимся на рассмотрении данного контроллера более подробно, ибо решение на его базе существенно более де шёвое и компактное, чем использование видеокарты.
К
ОНТРОЛЛЕР
E
PSON
SED1335
Ядром платы SED1335 controller board является LCD контроллер компании Epson. Далее приведены его краткие характеристи ки.

Режимы отображения информации:
текстовой, графический, комбини рованный.

Три графические плоскости в графическом режиме с возможностью их перекрытия.

Максимальное разрешение 640
×
256
точек.

Программируемое управление видом курсора.

Плавная вертикальная и горизонтальная прокрутка всего экрана или его части (Внешнее статическое ОЗУ до кбайт (на плате SED1335 controller board установлено 32 кбайт).

Встроенный генератор символов символов размером 5
×
7 точек (к сожалению, кириллица отсутствует).

Возможность реализации генератора символов во внешнем статическом
ОЗУ (до 64 символов размером Возможность реализации генератора символов во внешнем ПЗУ (до символов размером Интерфейс для подключения к процессорам или Диапазон рабочих температур:
–20…+75°С.

Напряжение питания 2,7 5,5 В.

Потребляемая мощность 3,5 мА при В.

Габаритные размеры платы мм.
В ЗАПИСНУЮ КНИЖКУ ИНЖЕНЕРА 71ВидеопамятьОЗУ генератора символов
ПЗУ генератора символов
Интерфейс микропроцессора
V
A0V
A15
VCE
VRD
VWR
,
,
Регистр ввода вывода
VD0VD7
TV
Контроллер для SED 1336F)
VSD
SNC
LCD контроллер дисплей или дисплей, YD,
YDIS
LP, WF
XSCL, Контроллер адреса курсора
Контроллер адреса дисплея
Счетчик регенерации
Счетчик точек
ПЗУ
генератора символов
Контроллер слоев отображения
Интерфейс видеопамяти
Генератор
SEL1
SEL0
RES
RD WR
,
A0,
CS
D0D7
XG
XD
Рис. 1. Блок схема контроллера SED1335
Пример программы контроллера
SED1335 для дисплея EL240.128.45
//
//
// Файл
IOFUNC.HPP //
//
//
#if !defined (__IOFUNC_HPP)
#define __IOFUNC_HPP
#endif
#define STROBE
0x01
#define A0_ADDR 0x02
#define INIT Определение набора инструкций SYSTEM_SET
0x40
#define SLEEP_IN
0x53
#define DISP_ON
0x59
#define DISP_OFF
0x58
#define SCROLL
0x44
#define CSRFORM
0x5D
#define CGRAM_ADR
0x5C
#define CSRDIR_RIGHT
0x4C
#define CSRDIR_LEFT
0x4D
#define CSRDIR_UP
0x4E
#define CSRDIR_DOWN
0x4F
#define HDOT_SCR
0x5A
#define OVLAY
0x5B
#define CSRW
0x46
#define CSRR
0x47
#define MWRITE
0x42
#define MREAD
0x43
// Прототипы функций unsigned char StatusRead (unsigned short port);
unsigned char DataRead (unsigned short port);
void DataWrite (unsigned char data, unsigned short port);
void CommandWrite (unsigned char data, unsigned short port);
void WriteString (char* string, unsigned short port);
void WriteByte (unsigned char byte, unsigned short port);
void StartCursorPos (unsigned char lowb, unsigned char highb, unsigned short СТА 4/2001
www.cta.ru
© 2001, CTA Тел (095) 234 0635 Факс (095) 232 1653 http://www.cta.ru
Блок схема контроллера SED1335 с необходимыми дополнительными узлами показана на рис. При внешней, казалось бы, простоте контроллер SED1335 обладает всеми узлами, присущими его старшим братьям, которые устанавливаются на ви деокарты.
Подключение платы контроллера к параллельному порту не вызывает больших трудностей достаточно только изготовить кабель. Со стороны дисплеев она имеет стандартный интерфейс, к которому можно подключить все перечисленные в табл. 1 панели, кроме EL240.128.45. Данный дисплей уже имеет встроенный контроллер и статическое ОЗУ кбайт, поэтому переходная плата ему не требуется. В табл. 2 показаны варианты разводки кабеля для некоторых типов разъемов, которые могут встретиться пользователю. Рекомендую при изготовлении кабеля отплаты к LPT порту использовать кабельную сборку TCSD 12 S
20.00 01 F N производства компании. Такие сборки можно приобрести в компании ПРОСОФТ. Со стороны дисплея также можно использовать готовый кабель Samtec TCSD В ЗАПИСНУЮ КНИЖКУ ИНЖЕНЕРА 72bТаблица 2. Разводка кабеля для подключения к плате SED1335

Разъём на плате
SED1335,
номер контакта
1
Обозначения
сигнала
Разъём LPT порта
DB 25M
(офисный ПК)
Разъём IDC 26 (CPU
Octagon 5066, 60x0*,
Fastwel CPU686)
Разъём
питания платы
SED1335
2 3
4 5
6 7
8 9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
RES NC.
/WR STB
/RD INIT
/CS GND
A0 AFD
SelfTest GND
GND GND
D0 PD0
D1 PD1
D2 PD2
D3 PD3
D4 PD4
D5 PD5
D6 PD6
D7 PD7
SEL1 GND
READY NC.
GND GND
LUMA NC.
1 16 18 14 19 20 2
3 4
5 6
7 8
9 21

22


1 6
10 2
12 14 3
5 7
9 11 13 15 17 16

18

+12 В В В Файл
IOFINC.CPP
//
//
//
#if !defined (__DOS_H)
#include
#endif
#if !defined (__STRING_H)
#include
#endif
#if !defined (__IOFUNC_HPP)
#include "iofunc.hpp"
#endif
// Чтение флагов состояния unsigned char StatusRead (unsigned short port)
{
unsigned char byte = inportb(port+2);
unsigned char data;
outportb(port+2, ((byte | A0_ADDR) &
INIT) &
STROBE);
//A0=0,WR=1,RD >0
data = inportb(port);
outportb(port+2, ((byte | A0_ADDR) | INIT) &
STROBE);
//A0=0,WR=1,RD >1
return(data);
}
// Чтение данных и позиции курсора unsigned char DataRead (unsigned short port)
{
unsigned char byte = inportb(port+2);
unsigned char data;
outportb(port+2, ((byte &
A0_ADDR) &
INIT) &
STROBE);//A0=1,WR=1,RD >0
data = inportb(port);
outportb(port+2, ((byte &
A0_ADDR) | INIT) &
STROBE);
//A0=1,WR=1,RD >1
return(data);
}
// Запись данных void DataWrite (unsigned char data, unsigned short port)
{
unsigned char byte = inportb(port+2);
outportb(port+2, ((byte | A0_ADDR) | INIT) |
STROBE);//A0=0,WR >0,RD =1
outportb(port,data);
outportb(port+2, ((byte | A0_ADDR) | INIT) &
STROBE);
//A0=0,WR >1,RD=1
}
// Запись команд (инструкций CommandWrite (unsigned char data, unsigned short port)
{
unsigned char byte = inportb(port+2);
outportb(port+2, ((byte &
A0_ADDR) | INIT) |
STROBE);//A0=1,RD =1,WR >0
outportb(port,data);
outportb(port+2, ((byte &
A0_ADDR) | INIT) &
STROBE); //
A0=1,RD=1,WR >1
}
* Для плат х в данном случае требуется переходная плана ВОВ.
СТА 4/2001
www.cta.ru
© 2001, CTA Тел (095) 234 0635 Факс (095) 232 1653 http://www.cta.ru

D 20.00 01 F N, который годится для всех дисплеев, кроме EL240.128.45 и Закончив изготовление соответствующих кабелей, подготовив подходящий источник питания, мы можем перейти к программированию контроллера. Замечу только, что потребление по цепи +12 В будет определяться только используемым EL дисплеем, самому контроллеру +12 Вне требуется.
Программирование
контроллера Epson SED1335
На аппаратном уровне обращение к контроллеру ничем не отличается от циклов чтения/записи данных периферийных микросхем в устройствах,
реализованных на микропроцессорах или микроконтроллерах, например 8080 или i8051. Временная диаграмма цикла чтения/записи приведена на рис. 2. Соотношения временных интервалов сигналов отражает табл. 3. Для формирования команд записи или чтения необходимо всего четыре служебных сигнала, подаваемых на контроллер A0, WR
___
, RD
___
, CS
___
. Как видно из табл. 3, длительности этих сигналов имеют ограничения только
В ЗАПИСНУЮ КНИЖКУ ИНЖЕНЕРА, RD
D0-D7
(Запись)
D0-D7
(Чтение)
Рис. 2. Диаграмма цикла чтения/записи
// Отобразить текстовую строку по текущему адресу void WriteString (char* string, unsigned short port)
{
int i;
CommandWrite(MWRITE,port);
for(i = 0; i < strlen(string); i++)
DataWrite(string[i],port);
}
// Записать байт в видеопамять по текущему адресу void WriteByte (unsigned char byte, unsigned short port)
{
CommandWrite(MWRITE,port); DataWrite(byte,port);
}
// Установить курсор в требуемую позицию void StartCursorPos (unsigned char lowb, unsigned char highb,
unsigned short port)
{
CommandWrite(CSRW,port); DataWrite(lowb,port);
DataWrite(highb,port);
}
//
//
//
Файл EPC1335.CPP //
//
//
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "iofunc.hpp"
#define LPT1 0x378
//
//
//
MAIN
//
//
//
void main(void)
{
int i;
puts("Write to EL Инициализация контроллера для дисплея EL240.128.45
CommandWrite(SYSTEM_SET, LPT1);
DataWrite(0x36,LPT1); // внутренний генератор символов,
один дисплей // ширина символа 8 пикселов
DataWrite(0x07,LPT1); // высота символа 16 пикселов
// 30 количество символов в строке (30 симв * 8 пикс = точек
DataWrite(0x23,LPT1); // длина одной строки в байтах
Таблица 3. Соотношения временных интервалов сигналов (для диаграмм рис. 2)
Сигнал
A0, CS
__
Обозна
чение
t
AH8
Параметр
V
DD
=4,5 5,5 В
V
DD
=2,7 4,5 В
Время удержания адреса, нс
10

min
max
min
max
10

t
AW8
Время установления адреса, нс, Системный цикл, нс
См. прим.

См. прим.

t
CC
Длительность стробирующего импульса, нс Время установления данных, нс
120

120

t
DH8
Время удержания данных, нс
5

5

t
ACC8
Время доступа сигнала Время запрета вывода 50 10 55
Примечание. Для команд управления памятью и системных t
CYC8
= 2t
C
+ t
CC
+ t
CEA
+75 > t
ACV
+ Все остальные команды t
CYC8
= 4t
C
+ t
CC
+ 30 СТА 4/2001
www.cta.ru
© 2001, CTA Тел (095) 234 0635 Факс (095) 232 1653 http://www.cta.ru
по минимальным значениям. Сигнал select) мы использовать не будем, так как у нас всего один контроллер и выбирать нам из нескольких не приходится, поэтому вход данного сигнала надо просто замкнуть на
«землю». Для формирования сигнала будет использоваться выходной сигнал параллельного порта AFD
(auto feed), сигнала WR
___
— сигнал, сигнала RD
___
— сигнал INIT. Для передачи данных D0 D7 используются соответствующие линии порта Система команд контроллера предоставляет пользователю широкий выбор возможностей для реализации его замыслов по отображению данных.
Вместе стем она проста и довольно легка в изучении. Список команд приведен в табл. 4. Приводить полную расшифровку системы команд представляется нецелесообразным, заинтересованные читатели могут её найти в
«Руководстве пользователя контроллера Как видно из табл. 4, типичная команда управления состоит из байта управления и следующих за ней байтов данных. Так, команда SYSTEM команда конфигурации системы) состоит из управляющего байта и восьми байтов данных. Отметим также, что запись управляющего слова производится при сигнале A0 (AFD), равном логической единице, а запись данных при A0, равном логическому нулю. В
данной ситуации мы также не рассматриваем подробно саму команду, а отсылаем читателя к Руководству пользователя Сточки зрения интерфейса (если бы мы программировали с помощью процессора, контроллер имеет два адреса для записи базовый адрес для записи или чтения данных (A0=0) и базовый адрес для записи управляющих команд (A0=1). Но применительно к параллельному порту мы будем просто говорить о состоянии сигнала
А0 при записи команд или данных. Во врезке приведен пример программы контроллера на языке С для дисплея. В данном случае
В ЗАПИСНУЮ КНИЖКУ ИНЖЕНЕРА количество линий в кадре 128
DataWrite(0x1E,LPT1); // диапазон адресов виртуального экрана, мл. байт
DataWrite(0x00,LPT1); // ст. байт установить начальный адрес и отображаемую область // начальный адрес, мл. байт // ст. байт // 128 линий на блок прокрутки автоматический сдвиг курсора вправо горизонтальный сдвиг при прокрутке, колич. пикселов
CommandWrite(HDOT_SCR,LPT1);
DataWrite(0x0,LPT1);
// режим overlay
CommandWrite(OVLAY,LPT1);
DataWrite(0x01,LPT1); // текстовой режим, две плоскости установить позицию курсора очистить видеопамять = 0; i < 0x7FFF; i++) DataWrite(0,LPT1);
// разрешить вывод данных на дисплей
CommandWrite(DISP_ON,LPT1);
DataWrite(0x05,LPT1);
// отобразить что то полезное
WriteString("Hello, World!",LPT1);
StartCursorPos(30,0,LPT1);
WriteString("My internal character set:",LPT1);
// вывести все символы внутреннего
// знакогенератора на экран
StartCursorPos(60,0,LPT1);
for(i = 0; i < 256; i++) WriteByte(i,LPT1);
} // void main...
Таблица 4. Основные команды контроллера SED1335
Тип
Команда
Код
Шестнадцате
ричный код
Описание команды
Количество
байтов
RD WR A0 D7 D6 D5 D4 D3 D2
D1
D0
Управление системой SET
1 0
1 0
1 0
0 0
0 0
0 Инициализировать контроллер и дисплей IN
1 0
1 0
1 0
1 0
0 1
1 Перейти в спящий режим
0
Управление дисплеем ON/OFF
1 0
1 0
1 0
1 1
0 0
D
58, 59
Разрешение/запрет вывода на дисплей и мерцания 0
1 0
1 0
0 0
1 0
0 Установить начальный адрес и область отображения 0
1 0
1 0
1 1
1 0
1 Установить тип курсора ADR
1 0
1 0
1 0
1 1
1 0
0 Установить адрес ОЗУ генератора символов 0
1 0
1 0
0 от С до Установить направление движения курсора SCR
1 0
1 0
1 0
1 1
0 1
0 Установить позицию горизонтальной прокрутки 0
1 0
1 0
1 1
0 1
1 Установить формат перекрытия экрана
1
Управление курсором 0
1 0
1 0
0 0
1 1
0 Установить адрес курсора 0
1 0
1 0
0 0
1 1
1 Чтение адреса курсора
2
Управление памятью 0
1 0
1 0
0 0
0 1
0 Запись в видеопамять 0
1 0
1 0
0 0
0 1
1 Чтение видеопамяти

СТА 4/2001
www.cta.ru
© 2001, CTA Тел (095) 234 0635 Факс (095) 232 1653 http://www.cta.ru
контроллер настраивается на отображение данных в текстовом режиме с использованием внутреннего генератора символов. Как видно, управлять контроллером довольно просто. Автор этой статьи потратил больше времени на изучение системы команд, чем на написание данной программы. Надо сказать, что этот пример приведен только с целью первого знакомства и никак не отражает все возможности контроллера SED1335. Программирование графических режимов можно предложить заинтересованному пользователю в качестве домашнего задания. На самом деле отображение данных в виде мнемосхем или законченных картинок представляется более интересным, чем вывод текста. Размеры рассматриваемых дисплеев малы, и текстовые сообщения получаются, как правило, малоинформативными, поэтому здесь как нигде уместны графические режимы, тем более что в данных режимах возможны организация нескольких страниц с различными картинками в видеопамяти контроллера и их быстрое переключение или наложение друг на друга.
З
АКЛЮЧЕНИЕ
На сегодняшний день решение о применении параллельного порта для управления малогабаритными EL дисплеями находит все больше поклонни ков.
Так, например, компания производящая оборудование в формате, поставляет со своими процессорными платами CPU188 5,
CPU686, CPU686E специальный драйвер для управления платой контроллера с поддержкой дисплеев, EL320.240.36,
EL240.128.45, EL160.120.39,
EL160.80.50. Этот драйвер поддерживает без видеокарты вывод данных на дисплеи в текстовом режиме 3. Таким образом, все программы пользователя,
если они не предполагают прямого отображения данных в видеопамять,
могут выводить информацию на дисплей зачастую даже без предварительной адаптации программного обеспечения.

Автор — сотрудник фирмы
ПРОСОФТ
Телефон: (095) 234 0636
Факс: (095) 234 0640
E mail: root@prosoft.ru
В ЗАПИСНУЮ КНИЖКУ ИНЖЕНЕРА 75СТА 4/2001
www.cta.ru
© 2001, CTA Тел (095) 234 0635 Факс (095) 232 1653 http://www.cta.ru


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал