Суббота, 18.08.2018, 15:25
Главная
· RSS
Меню сайта
Наш опрос
Применяете ли Вы информационные технологии в своей профессиональной деятельности?
Всего ответов: 315
Статистика
 Работа секций
Главная » Статьи » 2014 » Разработка и применение информационных технологий в образовательном процессе: проблемы и перспективы

РАЗРАБОТКА ЭЛЕКТРОННЫХ УСТРОЙСТВ С ПРОЦЕССОРНЫМ УПРАВЛЕНИЕМ
Шубина Н. В.,
ФГБОУ ВПО «Нижнетагильская государственная социально-педагогическая академия»,
 г. Нижний Тагил, Россия 

РАЗРАБОТКА ЭЛЕКТРОННЫХ УСТРОЙСТВ С ПРОЦЕССОРНЫМ УПРАВЛЕНИЕМ 

 Технические средства обучения чрезвычайно удобны для предоставления наглядной информации. Особенно актуальны они при изучении различных дисциплин, так или иначе связанных с информатикой. Студентов и учащихся всегда интересуют устройства, явно отображающие какую-либо информацию, особенно если она представлена не на экране компьютера (как, например, средства визуализации, моделирования каких-либо процессов на экране компьютера), а на вновь созданных устройствах, которыми можно управлять извне.

   Персональный компьютер включает в себя целый комплекс компонентов для обработки и передачи данных, необходимый для создания управления внешним устройством. Наличие микропроцессора упрощает процесс проектирования аппаратных схем управления и сокращает время от создания принципиальной схемы до готового продукта. Применение системы программирования на языке высокого уровня является наиболее универсальным вариантом для создания программной части управления внешними устройствами.

   Мы разработали аппаратную и программную часть для демонстрации управления внешним устройством с помощью персонального компьютера.

   При разработке решены следующие задачи:

1. Разработка управляемого устройства – светодиодного экрана 8х8 RGB.

2. Сопряжение управляемого устройства с управляющим устройством.

3. Разработка программного обеспечения для управления разработанным устройством.

   Предметом исследования является управление внешними устройствами с помощью микропроцессора.

   Объектом исследования является светодиодный экран 8х8 RGB, подключенный к LPT порту персонального компьютера.

   Светодиод (англ. LED – light emitting diode) – это полупроводниковый прибор, преобразующий электрический ток непосредственно в световое излучение [9].

   Применение светодиодов обширно, и не только в освещении. Их используют при создании рекламных экранов, праздничной индикации, бегущих строк. Также удобно использовать их при обучении для демонстрации возможностей, например, микроконтроллеров. Дисплейная технология BrightSide – это еще одно применение LED. Это комплекс передовых технологий в области HDR-изображений с большим динамическим диапазоном [11].

   LED состоит из полупроводникового кристалла на подложке, корпуса с контактными выводами и оптической системы.

   Технология RGB в принципе позволяет не только получить белый цвет, но и перемещаться по цветовой диаграмме при изменении тока через разные LED [1]. Этим процессом можно управлять вручную или посредством программы, можно также получать различные цветовые температуры. Поэтому RGB-матрицы широко используются в светодинамических системах. Кроме того, большое количество LED в матрице обеспечивает высокий суммарный световой поток и большую осевую силу света.

   Яркость LED очень хорошо поддается регулированию, но не за счет снижения напряжения питания, а так называемым методом широтно-импульсной модуляции (ШИМ), для чего необходим специальный управляющий блок (он может быть совмещен с блоком питания и конвертором, а также с контроллером управления цветом RGB-матрицы). Метод ШИМ заключается в том, что на LED подается не постоянный, а импульсно-модулированный ток, причем частота сигнала должна составлять сотни или тысячи герц, а ширина импульсов и пауз между ними может изменяться. Средняя яркость LED становится управляемой, в то же время LED не гаснет. Небольшое изменение цветовой температуры LED при диммировании несравнимо с аналогичным смещением для ламп накаливания [14].

   Спектр излучения LED близок к монохроматическому, в чем его кардинальное отличие от спектра солнца или лампы накаливания. Какие-либо данные о вредном воздействии LED на человеческий глаз отсутствуют.

   LED находят применение практически во всех областях светотехники,. LED оказываются незаменимы в дизайнерском освещении благодаря их чистому цвету, а также в светодинамических системах. Выгодно же их применять там, где дорого обходится частое обслуживание, где необходимо жестко экономить электроэнергию и где высоки требования по электробезопасности [12].

   Главной особенностью регистра ИР24 является двунаправленная параллельная шина данных [10]. То есть одни и те же выводы микросхемы используются как для параллельной записи информации в регистр, так и для параллельного чтения информации из регистра. При этом двунаправленные выводы данных имеют повышенную нагрузочную способность. Это позволяет легко сопрягать ИР24 с многоразрядными микросхемами памяти и с двунаправленными буферами.

   Для управления RGB светодиодами в разработанном устройстве используется микросхема КР1533ИР24.

   Внешние устройства можно подключать как внутренним способом (по шинам ISA, PCI и др.), так и внешним (COM, LPT, USB, GAME и др.) [2].

   В настоящее время наиболее распространен порт USB, однако управление с его помощью затруднено [6; 8].

   Мы использовали порт LPT, так как это частично избавляет нас от риска вывести из строя внутренние компоненты и обеспечивает простоту подключения.

   Изготовление и программирование устройств сопряжения с компьютером начнем с LPT порта.

   Как правило, в IBM-совместимом компьютере присутствуют один разъем параллельного коммуникационного порта (LPT-порт) [4; 12]. LPT порт расположен на задней стенке системного блока компьютера, представляет собой 25 контактный разъем типа розетка. Выводы расположены в 2 ряда: в первом ряду расположены выводы 1–13, во втором 14–25 соответственно [13].

   Для LPT-порта используются 25-контактный разъем («розетка») типа DB-25S. Порт LPT чаще всего используется принтером, хотя это только узкая область его применения.

   При посылке какой-либо информации в порт, на линиях d0–d7 [4; 6; 13] появится набор сигналов, т. е. распределение напряжений низкого уровня и высокого уровня, соответствующих логическому нулю (0 В) или единице (3,5 В).

  Напряжение останется на выводах разъема до тех пор, пока туда не будет переслано другое число или не будет выключен компьютер.

  Схема внешнего устройства подключается на LPT порт компьютера. Она имеет 8 входов для ввода данных и один вход для ввода стробирующего импульса. Для увеличения числа выходов применяется сдвиговый регистр.

   Основу схемы составляют сдвиговые регистры К1533ИР24 с последовательной загрузкой данных. Микросхемы представляют собой восьмиразрядный универсальный сдвиговый регистр с выходом на три состояния и могут применяться в качестве буферного запоминающего устройства для временного хранения данных, для преобразования данных из параллельной формы в последовательную (и наоборот), для задержки сигналов [3, 15] (рис. 1).


Рис. 1. Условное графическое обозначение КР1533ИР24 [7].

   Схема состоит из восьми одинаковых каналов. Каждый канал состоит из трех сдвиговых регистров К1533ИР24, подключенных последовательно, позволяющих управлять восемью RGB светодиодами (всего 24 отдельных светодиода) (рис. 2).

   Управляющей программой на выходной порт принтера (Порт 888) подается байт данных, синхронизируемый сигналом строб (Порт 890). На вход каждого канала с LPT порта компьютера поступает один бит данных. Для заполнения всего экрана необходимо подать стробируемых 24 байта в параллельный порт. При этом все три восьмибитовых регистра канала заполняются полностью. Для смены следующего кадра подаются очередные 24 байта. Цикл работы устройства составляет 24 такта.


Рис. 2. Расположение светодиодов на матрице

 

   Работает схема (рис. 3) следующим образом.

   Все 8 каналов работают одинаково. На вход канала подается бит данных (Дата 0) 11 вывод микросхемы К1533ИР24. Далее подается сигнал строб (перепад напряжения из «0» в «1») на 12 вывод микросхемы.

   Когда на тактовом входе С (12 вывод) появляется логическая единица, регистр считывает бит со входа данных (11 вывод) и записывает его в самый младший разряд, сдвигая данные на 1 позицию внутри регистра. На выходе 7 появляется записанный бит данных. При поступлении на тактовый вход следующего импульса, записанный ранее бит сдвигается на один разряд, а его место занимает вновь пришедший бит. За 8 тактов заполняется весь регистр, и первый бит появляется на выходе 17 микросхемы (предназначен для последовательного соединения сдвиговых регистров). Он подключен на вход 11 следующей микросхемы для увеличения числа разрядов канала.

   За 24 такта заполняется весь канал. Данные появляются на выходах трех регистров. К каждому выходу через токоограничительные резисторы подключены катоды светодиодов. При низком логическом уровне на выходе микросхемы ток проходит от плюса блока питания через светодиод и резистор, светодиод загорается.

   Особенностью данной схемы является статическая индикация. После смены одного кадра картинка на экране не меняется, поэтому в отличие от динамической индикации отсутствует неприятное мерцание.  


Рис. 3. Принципиальная схема устройства, один канал.

 Печатная плата устройства приведена на рисунке 4.


Рис. 4. Печатная плата устройства

 

Разработчики Windows XP с целью обеспечения безопасности использования совместных аппаратных ресурсов компьютера запретили к ним прямой доступ из программ пользовательского режима. Чтобы все-таки обратиться к порту, необходимо все операции проводить через драйвер. Библиотека inpout32.dll является готовым инструментом, позволяющим обращаться к LPT порту в Windows XP [5].

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

Для управления через параллельный порт используем восьмибитовый канал данных (Порт 888) и 1 бит порта 890 в качестве строба. Каждый бит канала данных подключен к цепочке из трех сдвиговых регистров К1533ИР24, позволяющих управлять восемью RGB светодиодами (всего 24 отдельных светодиода).

В канал данных (порт 888) программа выдает 1 байт, поступающий на вход сдвиговых регистров, который записывается в регистры при формировании строба (выдача «0», затем «1» в порт 890). Для заполнения всего регистра необходимо выдать 24 байт данных, при этом будет заполнен и выдан на экран 1 кадр. После небольшой паузы выдается следующий байт со стробом для смены кадров.

Данные в параллельный порт выдаются с частотой 3500 Гц. Для глаз смена кадров происходит незаметно. На экран можно выдавать без задержки до 145 кадров в секунду.

Программа управления написана на языке С++ и состоит из трех частей: формирование одного кадра изображения, выдача изображения на светодиодный экран и выдача изображения на монитор компьютера.

Для формирования одного кадра изображения применяется обработка предыдущего кадра по определенному алгоритму. Начальный кадр может быть пустым. Для этого создается промежуточная матрица размером 8х8 ячеек:

int P[8][8] ;

Для ее обнуления выполняется программа обнуления промежуточной матрицы:

for(s=0;s<8;s++)

                               {

                               for(int x=0;x<8;x++)

                                               {

                                               P[s][x]=0;

                                               }

                               }

Если необходим начальный рисунок, то он задается кодом:

                int P[8][8]=                           {

                                               {0,1,2,3,4,5,6,7},

                                               {1,2,3,4,5,6,7,6},

                                               {2,3,4,5,6,7,6,5},

                                               {3,4,5,6,7,6,5,4},

                                               {4,5,6,7,6,5,4,3},

                                               {5,6,7,6,5,4,3,2},

                                               {6,7,6,5,4,3,2,1},

                                               {7,6,5,4,3,2,1,0}

                                               };

Числа в матрице соответствуют цвету светодиодной ячейки:

0 – черный цвет – светодиод погашен;

1 – красный цвет светодиода;

2 – зеленый цвет светодиода;

3 – желтый цвет светодиода;

4 – синий цвет светодиода;

5 – фиолетовый цвет светодиода;

6 – голубой цвет светодиода;

7 – белый цвет светодиода.

Промежуточные цвета получаются смешиванием трех основных цветов.

Таблица цвета


Единица в таблице соответствует зажженному светодиоду. При трех единицах (значение в таблице 7) светодиодная ячейка загорается белым цветом. Десятичному значению 7 соответствует двоичное значение 111.

Алгоритм получения следующего кадра может быть любой. Например, цвет всех ячеек меняется в зависимости от цвета окружающих ячеек:

                for(s=1;s<9;s++)

                               {

                               for(int x=1;x<9;x++)

                                               {

                                               O[s-1][x-1]=(P[s-1][x]+P[s][x-1]+P[s][x+1]+P[s+1][x]+P[s-1][x-1]+P[s-1][x+1]+P[s+1][x-1]+P[s+1][x+1])/6;

                                               }

                                }

В результате выполнения кода вычисляются значения в основной матрицы O[8][8], которая и выдается на светодиодный экран и монитор компьютера. Для этого необходимо сделать еще одно преобразование в отдельные матрицы R[8][8], G[8][8], B[8][8]. Десятичные значения матрицы O[8][8] преобразуются в двоичные значения матриц R[8][8], G[8][8], B[8][8].

 

//Преобразование матрицы O в RGB                                                        

                for(s=0;s<8;s++)

                               {

                               for(int x=0;x<8;x++)

                                               {

                                               R[s][x] = (O[s][x])%2;

                                               G[s][x] = (O[s][x]/2)%2;

                                               B[s][x] = (O[s][x]/4)%2;

                                               }

                               }

Далее выполняется подпрограмма вывода на светодиодный экран Drow(100);

и вывод на дисплей компьютера:

for(s=0;s<8;s++)

                {

                for(int x=0;x<8;x++)

                               {

CBrush BlackBrush(RGB(R[s][x]*255, G[s][x]*255, B[s][x]*255)),

                               *pOldBrush;

                               pDC->SelectObject(&BlackPen);

                               pOldBrush = pDC->SelectObject(&BlackBrush);

                               pDC->Ellipse(x*50+10, s*50+10, x*50+60, s*50+60);

                               }

                }

Подпрограмма вывода на светодиодный экран Drow(100) преобразует значения матриц R, G, B в матрицу Y[8][24] для вывода на порт LPT, в соответствии с реальным расположением светодиодов по ячейкам.

void Drow(int time) //Вывод на светодиодный экран

{

int Y[8][24];          // общая матрица на вывод

                int A[24];      // массив для вывода на устройство

// пересчет общей матрицы Y исходя из значений матриц R, G, B

for(int i=0;i<8;i++)// по строкам

{                                                                                                                                                          

                Y[i][0]  = !B[i-i%2+0][i%2*4+0];

                Y[i][1]  = !G[i-i%2+0][i%2*4+0];

                Y[i][2]  = !R[i-i%2+0][i%2*4+1];

                Y[i][3]  = !G[i-i%2+1][i%2*4+0];

                Y[i][4]  = !B[i-i%2+1][i%2*4+1];

                Y[i][5]  = !R[i-i%2+0][i%2*4+0];

                Y[i][6]  = !R[i-i%2+1][i%2*4+0];

                Y[i][7]  = !B[i-i%2+1][i%2*4+0];

                Y[i][8]  = !R[i-i%2+0][i%2*4+2];

                Y[i][9]  = !B[i-i%2+0][i%2*4+1];

                Y[i][10] = !G[i-i%2+1][i%2*4+2];

                Y[i][11] = !G[i-i%2+1][i%2*4+1];

                Y[i][12] = !G[i-i%2+0][i%2*4+2];

                Y[i][13] = !G[i-i%2+0][i%2*4+1];

                Y[i][14] = !B[i-i%2+1][i%2*4+2];

                Y[i][15] = !R[i-i%2+1][i%2*4+1];

                Y[i][16] = !G[i-i%2+1][i%2*4+3];

                Y[i][17] = !R[i-i%2+0][i%2*4+3];

                Y[i][18] = !R[i-i%2+1][i%2*4+3];

                Y[i][19] = !R[i-i%2+1][i%2*4+2];

                Y[i][20] = !B[i-i%2+0][i%2*4+3];

                Y[i][21] = !B[i-i%2+0][i%2*4+2];

                Y[i][22] = !G[i-i%2+0][i%2*4+3];

                Y[i][23] = !B[i-i%2+1][i%2*4+3];

}

// вывод основного массива на экран

for(i=0;i<24;i++) //24 бит данных

{

A[i]=Y[0][i]*1+Y[1][i]*2+Y[2][i]*4+Y[3][i]*8+Y[4][i]*16+Y[5][i]*32+Y[6][i]*64+Y[7][i]*128;

                Out32(Data, A[i]); //Выдать данные

                Out32(Strob, 0);   //Выдать строб

                Out32(Strob, 1);   //Снять строб


   Для удобства просмотра готовых программ предусмотрена визуализация рисунков светодиодного экрана на дисплее (рис. 5). Также она позволяет видеть результаты работы программы, когда экран не подключен. Таким образом, возможно программирование экрана без доступа к нему.

   В процессе создания проекта были изучены методы программирования портов ввода-вывода.

   Разработана собственная схема устройства и программа управления им с помощью персонального компьютера с использованием RGB светодиодов с общим анодом на микросхемах КР1533ИР24 со статической индикацией.

   Разработанные программы позволяют создавать различные динамические рисунки и бегущие строки даже при отключенном экране.

   Созданное нами устройство позволяет облегчить изучение алгоритмов программирования создания динамических рисунков. 

ЛИТЕРАТУРА

  1. An, P. PC Interfacing: Practical Guide to Gentronic RS 232 and Game Ports / Р. Аn. Newnes, 1998. – 250 p.
  2. Ralf Brown Interrupt List. Release 61 [Электронный ресурс]. – Режим доступа: http://www.ctyme.com/rbrown.htm. Дата обращения – 13.09.2012. Загл. с экрана.
  3. Аванесян, Г. Р. Интегральные микросхемы ТТЛ, ТТЛШ : Справочник / Г. Р. Аванесян, В. П. Лёвшин. – М. : Машиностроение, 1993. – 256 с.
  4. Гук, М. Ю. Аппаратные средства IBM PC. Энциклопедия / М. Ю. Гук. – СПб. : Питер, 2006. – 1072 с.
  5. Иванов, Д. В. Сопряжение компьютеров с внешними устройствами / Д. В. Иванов. – 2006 [Электронный ресурс]. – Режим доступа: www.pcports.ru. Дата обращения – 13.09.2012. Загл. с экрана.
  6. Калайджян, Т. Работа с внешними устройствами с помощью портов ввода/вывода. / Т. Калайджян. – 2002 [Электронный ресурс]. – Режим доступа: www.desy.de/~tigrank/iocontrol.pdf. Дата обращения – 12.09.2012. Загл. с экрана.
  7. Киборгов.нет. Каталог электронных компонентов [Электронный ресурс]. – Режим доступа: http://kiborgov.net/doc/led/2088RGBMatrix.pdf. Дата обращения – 14.09.2012. Загл. с экрана.
  8. Ковтун, В. Программы работы с COM и LPT портом / В. Ковтун. – 2006 [Электронный ресурс]. – Режим доступа: http://pccontrol.bib.com.ua. Дата обращения – 13.09.2012. Загл. с экрана.
  9. Промэлектроника. Каталог электронных компонентов [Электронный ресурс]. – Режим доступа: www.promelec.ru. Дата обращения – 13.09.2012. Загл. с экрана.
  10. Ревич, Ю. В. Занимательная микроэлектроника / Ю. В. Ревич. – СПб. : БХВ – Петербург, 2007. – 592 с.
  11. Самарин, А. Технология и применение HDR дисплеев. / А. Самарин // Компоненты и технологии. – 2007. – № 7. – С. 46–54.
  12. Светодиодные лампы, фонари, светильники – продукция и подсветка по технологии 21 века [Электронный ресурс]. – Режим доступа: http://www.ledlight.com.ua/led.html. Дата обращения – 13.09.2012. Загл. с экрана.
  13. Фигурнов, В. Э. IBM PC для пользователя. Краткий курс. / В. Э. Фигурнов. Изд. 7-е. – М. : ИНФРА-М, 1997. – 480 с.
  14. Хоровиц, П. Искусство схемотехники. В 3-х томах: Т. 2. / П. Хоровиц, У. Хилл / пер. с англ. – М. : Мир, 1993. – 371 с.
  15. Шило, В. Л. Популярные цифровые микросхемы: Справочник / В. Л. Шило. – М. : Металлургия, 1988. – 352 с.

Категория: Разработка и применение информационных технологий в образовательном процессе: проблемы и перспективы | Добавил: grebnevaDM (09.02.2014)
Просмотров: 734
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright E. I. © 2018
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Научное Агентство ВАКИЗДАТ
  • журнал "Школа будущего"
  • Бесплатный хостинг uCoz