Модернизация информационного табло "Бегущая строка"

 














ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

(ДИПЛОМНЫЙ ПРОЕКТ)

Специальность 230101 «Вычислительные машины, комплексы, системы и сети»

на тему Модернизация информационного табло «Бегущая строка»

СОДЕРЖАНИЕ


ВВЕДЕНИЕ6

РАЗДЕЛ 1. СИСТЕМОТЕХНИЧЕСКИЙ9

1.1 Обзор источников информации9

1.2 Анализ процесса отображения информационного табло.17

1.3 Разработка функциональной схемы19

1.4 Разработка общего алгоритма вывода строки21

.5 Выбор микроконтроллера

.6 Анализ неисправностей устройства

.7 Выводы

РАЗДЕЛ 2. ПРОЕКТНО-КОНСТРУКТОРСКИЙ27

2.1 Выбор элементной базы 27

2.2 Разработка принципиальной схемы устройства38

2.3 Разработка алгоритма работы микроЭВМ 38

2.4 Разработка исходных текстов программ микро-ЭВМ46

2.5 Разработка программы для ПК47

2.6 Разработка печатной платы устройства53

2.7 Выводы 70

РАЗДЕЛ 3. ЭКСПЛУАТАЦИОННЫЙ 72

3.1 Технические данные об изделии 72

3.2 Функциональный состав 72

3.3 Описание принципиальной схемы 74

3.4 Описание работы устройства 77

3.5 Общие указания по эксплуатации78

3.6 Указания мер безопасности79

3.7 Подготовка изделия к работе79

3.8 Характерные неисправности и методы их устранения80

3.9 Техническое обслуживание 81

РАЗДЕЛ 4. ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКИЙ82

4.1 Расчет себестоимости аппаратных средств82

4.2 Расчет затрат на оплату труда сотрудника84

4.3 Расчет затрат на электроэнергию85

4.5 Расчет себестоимости разработки программного обеспечения87

РАЗДЕЛ 5. ЗАЩИТА И БЕЗОПАСНОСТЬ ИНФОРМАЦИИ93

РАЗДЕЛ 6. БЕЗОПАСНОСТЬ ЖИЗНЕДЕЯТЕЛЬНОСТИ99

6.1 Способы защиты от поражения электрическим током99

6.2 Требования к персоналу, обслуживающему ПЭВМ и устройство101

6.3 Техника безопасности при обслуживании ПЭВМ и устройства101

6.4 Методы и средства обеспечения безопасности жизнедеятельности при работе с электроустановками 103

Заключение107

Список использованных источников109

ПРИЛОЖЕНИЕ А110

ПРИЛОЖЕНИЕ Б113

ПРИЛОЖЕНИЕ В 116

АННОТАЦИЯ

информационное табло строка программный

МОДЕРНИЗАЦИЯ ИНФОРМАЦИОННОГО ТАБЛО «БЕГУЩАЯ СТРОКА»

Дипломный проект. 99 с., 5 рис.,15 табл., 11 источников, 3 прил., 9 л. чертежей ф. А1.

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

В состав устройства входят: светодиодная матрица, блок управления на основе высокопроизводительной однокристальной микро-ЭВМ, датчик температуры наружного воздуха, блок питания. Блок управления содержит микроконтроллер, микросхему памяти текстовой информации, 4-х кнопочную клавиатуру, адаптер интерфейса RS-232, однопроводной интерфейс, блок силовых ключей, сдвиговый регистр.

Блок управления построен с использованием микроконтроллера ATmega32L. Он управляет ключами строк, выдает данные в сдвиговый регистр для формирования изображения на матрице. Информация для вывода на экран хранится в энергонезависимой внешней Flash-памяти. Для ее подключения к контроллеру используется интерфейс SPI. Цифровой датчик температуры подключается по однопроводному интерфейсу напрямую к одному из портов ввода-вывода микроЭВМ. Запись текста, настройка времени, даты, параметров устройства производится с помощью ПК, который подключается с использованием USB адаптера интерфейса RS-232.

Конструктивно устройство представляет собой коробку, закрытую с одной стороны прозрачным органическим стеклом. Под ним располагается светодиодная матрица, образованная отдельными модулями. Каждый модуль несет 64 светодиода. Между модулями сигналы строк объединяются короткими паянными перемычками; сигналы столбцов подаются на каждый модуль собственным шлейфом от блока управления. Блок управления крепится на задней стенке устройства. На боковой поверхности устройства располагаются разъемы питания, подключения ПК, датчика температуры, а также 4 кнопки управления.

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



ВВЕДЕНИЕ


Бегущая строка используется для передачи различной рекламной и справочной информации, как на улице, так и в общественных местах: в супермаркетах, выставочных центрах, банках, офисах, концертных и спортивных залах, учебных учреждениях. Использование бегущей строки в транспорте повышает эффективность рекламных объявлений для определенной целевой аудитории. Текстовая реклама в виде плакатов и вывесок смотрится не так эффектно и не так броско. Бегущая строка сразу же обращает на себя внимание своей динамичностью, яркостью и доступному изложению информации. К тому же не следует менять плакаты для рекламы разной продукции или разного рода оповещений. Нужно всего лишь запрограммировать бегущую строку на отображение другого текста, что легко делается посредством компьютера.

Цель данного дипломного проекта - модернизировать существующее устройство бегущей строки, используемое на кафедре ЭВС ВСГУТУ. Разработанное выпускниками ВУЗа ранее, оно содержит в себе как положительные стороны, так и недостатки. Положенный в основу схемы модульный принцип построения дает возможность доработки устройства, расширения его функциональных возможностей, повышения качественных характеристик. В то же время, ширина существующего табло невелика, что уменьшает читаемость текста, его информативность. Настройка и программирование бегущей строки производится только с ПК по интерфейсу RS-232, что в ряде случаев делает неудобным пользование строкой. Добавлены четырех модулей светодиодов, что увеличивает ее длину до 112 столбцов. На панели устанавливаются дополнительные 2 кнопки подстройки текущего времени и даты. Для соедения информационного табло с ПК используется USB адаптер интерфейса RS-232. Добавляется поддержка стандартной клавиатуры PC AT с разъемом PS2, с помощью которой можно запрограммировать все параметры табло, а главное - изменить текст бегущей строки. Кроме текста и времени, на табло выводится температура, которая измеряется внешним датчиком. Этот датчик может быть установлен в помещении или на улице. При такой большой ширине табло уже необходима поддержка широких шрифтов, с размером символов 8 х 8 точек. Начертание любого символа может быть запрограммировано пользователем.

Сложность модернизации дипломного проэкта заключается в том что данный проект был ранее модернезирован, в следствие этого было отсутствие конкретногоописания устройства (Бегущая строка) ,а так же отсутствие полноценной прошивки микроконтроллера. Модернизация данного устройства заключается в добавление 2 кнопок регулирования скорости движения информации, также установлен в корпус блок питания, исправлена принципиальная схема, существенно откорректирована прошивка микроконтроллера. В пояснительной записке описывается полный цикл разработки устройства бегущей строки, от подробного анализа проблемы и постановки технического задания до проектирования и изготовления опытного образца. Системотехнический раздел описывает требования, предъявляемые к устройству, основные моменты его функционирования, а также общую схему построения устройства.

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

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

Организационно-экономический раздел содержит расчет стоимости проектирования, изготовления и эксплуатации.

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

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

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



РАЗДЕЛ 1 СИСТЕМОТЕХНИЧЕСКИЙ


1.1 Обзор источников информации


Посредством сети Интернет были найдены несколько отечественных фирм-производителей графических и текстовых табло.

Научно Производственное Предприятие "Электронное табло" (www.eltablo.ru <#"justify">Модель таблоОписаниеЦена, руб.РБС-080-128x8bВысота символа: 80 мм Разрешение: 128x8 точек Кол-во символов на экране: 16-21 Расстояние видимости: 30 м Размеры: 1350x150x60 мм18750РБС-080-192x8bВысота символа: 80 мм Разрешение: 128x8 точек Кол-во символов на экране: 24-32 Расстояние видимости: 30 м Размеры: 2000x150x60 мм25750РБС-120-128x8bВысота символа: 120 мм Разрешение: 128x8 точек Кол-во символов на экране: 16-21 Расстояние видимости: 50 м Размеры: 2000x180x60 мм20350РБС-120-192x8bВысота символа: 120 мм Разрешение: 128x8 точек Кол-во символов на экране: 24-32 Расстояние видимости: 50 м Размеры: 3000x180x60 мм28550

Общество с Ограниченной Отвественостью "Электроникс групп"

Компания занимается продажей, монтажом и настройкой всех основных видов табло.

В зависимости от модели, электронное табло бегущая строка может иметь разрешение по вертикали 8 и 16 точек. Табло бегущая строка с разрешением по вертикали в 16 пикселей стоят дороже, но они имеют несколько серьезных преимуществ:

большее расстояние видимости;

информация может выводиться в две строки;

помимо букв можно использовать различные графические фигуры.

Весь ассортимент информационных табло бегущая строка разделяется на три основные группы: для помещений, транспорта и уличного использования. Каждая группа имеет свои особенности, например, корпуса уличных табло герметизируются, а табло для транспорта способны питаться от низковольтной сети. В комплекте с каждой электронной бегущей строкой поставляется пакет программного обеспечения, которое позволяет наиболее полно использовать богатый функционал оборудования. Любое такое табло может выполнять функции часов-календаря. Информация о точном времени при отключении электронной бегущей строки сохраняется в энергонезависимом участке памяти. Дополнительно информационная строка может комплектоваться датчиками для измерения температуры воздуха, атмосферного давления, относительной влажности воздуха и радиационного фона. Все эти параметры среды также выводятся на экран с нужной заказчику периодичностью и в необходимом порядке. Для создания динамичных и запоминающихся объявлений на табло бегущая строка можно использовать не только буквы и цифры, но также и различные спецэффекты. В составе поставляемого нами программного обеспечения находится эмулятор, который позволяет предварительно посмотреть, как то или иное объявление будет выглядеть на табло. С помощью наших табло вы сможете расписать задачи по выведению различных блоков информации в нужное время. Программное обеспечение позволяет подгружать пользовательские шрифты, знаки и логотипы, что дает еще больше возможностей для отображения ваших текстовых сообщений. Информационное табло работает автономно, прокручивая ранее заложенную в нее информацию.

Управление табло бегущая строка может осуществляться несколькими способами:

посредством персонального компьютера через СОМ-порт;

через USB-интерфейс;

через интерфейсы RS-422 и RS-485 (при подключении к одной линии нескольких табло);

посредством дистанционного пульта на ИК лучах;

по сети GSM и GPRS; и WI-FI.



Таблица 2 СТРОКИ ОФИСНЫЕ (цена для красного и зеленого цвета)ГабаритыВысота символаКол-во символовРазрешение, пикселейЯркостьРасстояние видимостиЦенаПримечание725х140х75 мм80 мм8-1064х81,5 Кддо 30 м14 9701070х140х75 мм80 мм12-1696х81,5 Кддо 30 м17 4701100х190х75 мм120 мм8-1064х81,5 Кддо 50 м16 1651410х140х75 мм80 мм16-21128х81,5 Кддо 30 м19 7901625х190х75 мм120 мм12-1696х81,5 Кддо 50 м18 0501710х260х90 мм200 мм8-1064х81,5 Кддо 80 м36 0304 диода в пикселе1755х140х75 мм80 мм20-26160х81,5 Кддо 30 м23 5602095х140х75 мм80 мм24-32192х81,5 Кддо 30 м24 4302150х190х75 мм120 мм16-21128х81,5 Кддо 50 м22 1102540х400х130 мм300 мм8-1064х81,5 Кддо 140 м48 7907 диодов в пикселе2550х260х90 мм200 мм12-1696х81,5 Кддо 80 м47 1854 диода в пикселе2700х220х90 мм120 мм20-26160х81,5 Кддо 50 м26 4603220х220х90 мм120 мм24-32192х81,5 Кддо 30 м30 6703380х270х90 мм200 мм16-21128х81,5 Кддо 80 м62 1004 диода в пикселеУправление: компьютер (программа-загрузчик информации в табло - в комплекте поставки), подключение через COM-порт компьютера, интерфейс связи RS232 (кабель связи с ПК - 15м минимум)Дополнительные опции: отображение текущей даты и времени; установка датчиков температуры, давления и др.; двустороннее исполнение табло; увеличение длины сетевого кабеля / кабеля связи; преобразователь интерфейса USB-RS232; интерфейс связи RS-485 Общество с Ограниченной Отвественостью "ДИАН"

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

По желанию заказчика бегущая строка выполняется в различных конфигурациях определяющих высоту текста, яркость свечения, цвет, длину строки. В качестве внутреннего стандарта инженерами ООО "ДИАН" принята бегущая строка со структурой экрана 8 х 128 (8 точек по вертикали на 128 точек по горизонтали). При такой конфигурации бегущей строки одновременно выводится 21 символ узким шрифтом или 16 широким шрифтом. ООО "ДИАН" разработало и выпускает бегущие строки с высотой символа 95, 130, 200, 280, 340 и 680 мм. Этот модельный ряд бегущих строк обеспечивает качественное восприятие информации на расстояниях с 1-2 метров (строка DIS-60) и до 210-240 метров (строка DIS-680). Управление бегущей строкой осуществляется при помощи стандартной компьютерной клавиатуры (при этом расстояние от строки до клавиатуры не должно превышать 25 метров!), либо компьютера. Бегущая строка управляемая от компьютера значительно проще в управлении. При этом длина интерфейсного кабеля увеличивается до 150 м., а используя специальные преобразователи возможно увеличить длину интерфейса до 1000 м. Если прокладка управляющего кабеля затруднена или невозможна для загрузки информации в бегущую строку используются беспроводная передача данных Wi-Fi, GPRS, существующие локальные сети Ethernet. Управление бегущей строкой с компьютера даёт возможность сохранять набранные тексты и оперативно загружать заранее подготовленную информацию. Управляющая программа оснащена эмулятором бегущей строки позволяющим, не загружая текст в бегущую строку, контролировать правильность вводимой информации, проводить отладку различных эффектов вывода текстовых сообщений. Табло бегущая строка не восприимчиво к температурным перепадам и атмосферным осадкам. Бегущая строка сохраняет работоспособность в широком диапазоне температур, от -40° до +55° по Цельсию. Гарантия на изделие 12 месяцев. Срок службы 5 лет.

Информационная строка DIS-95r

Габаритные размеры: 1500 х 170 х 90

Напряжение питания: 220 В (+/-10%), 50 Гц

Потребляемая мощность: 60 Ватт

Режим работы: непрерывный

Структура строки: 8 х 128

Высота символа: 95 мм

Яркость светодиода: 500 мКд

Количество шрифтов: 2 (узкий, широкий)

Количество алфавитов: 2 (латинский, кириллица)

Количество символов в строке: 16 широким шрифтом / 21 узким шрифтом

Общее количество вводимых символов текста: 24 000

Управление: Компьютерная клавиатура (длина интерфейса до 25 м); Компьютер (ос Windows 2000/ХР, наличие СОМ порта)

Интерфейс передачи данных: RS 232 (RS 485 по договорённости, длина интерфейса RS 232 до 150м, RS 485 до 1000 м)

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

Информационная строка

Клавиатура управления / программное обеспечение

Интерфейсный кабель 10м

Элементы крепления

Инструкция по эксплуатации
Стоимость стандартной комплектации: 23 800 рублей

1.2 Анализ процесса отображения информационного табло


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

Цветность. Существуют три больших класса: монохромные (одного цвета свечения), многоцветные и полноцветные. В монохромных табло следует только понять и выбрать, какой цвет предпочтителен. В основном используется 3 цвета - красный, зеленый, желтый. Под полноцветным табло понимаются изделия с воспроизведением всей гаммы цветов (до 16,7 миллионов цветов), многоцветные табло воспроизводят ограниченное количество цветов (от 3 до 65536).

Яркость. Для табло наружного размещения, или предназначенных для работы в помещении, но в условиях прямого уличного освещения (например, витрина) используются светоизлучающие источники яркого типа. Так, для нормального наблюдения картинки на табло в ярких лучах летнего солнца необходимы источники света с силой 1,2...3 канделы. ( Для ориентировки - 1 кандела по силе света соответствует примерно лампочке мощностью 1 Вт.) В помещениях можно использовать источники света значительно менее мощные. Как правило, достаточно 30...150 милликандел. Качество цветопередачи и яркость свечения определяются типом и количеством светодиодов каждого цвета, входящих в состав одного кластера. Наиболее высокая яркость свечения и естественная передача цветов достигается при использовании в составе кластеров высокоэффективных светодиодов Pure-Green (525 нм), Ultra-Red(660 нм), Blue (470 нм).

Изображение.

Для воспроизведения текста необходимо иметь как минимум 7 строк, чтобы воспроизвести символы размером 5 х 7 точек. По горизонтали число точек может быть произвольным, однако слишком короткая бегущая строка имеет плохую читаемость, а слишком длинная - высокую стоимость. Поэтому выбор размерности матрицы - это всегда компромисс между стоимостью и желанием заказчика. Большее число строк позволяет использовать красивые шрифты со сложным начертанием символов, наклонные, жирные и т.д., а также использовать символы разного размера. Это придает тексту большую привлекательность и эффективность. Практический предел - 16 строк.

Пылевлагозащищенность.

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

Спецэффекты.

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

Программирование.

Практически все модели могут программироваться как с помощью обычной PC-совместимой клавиатуры, так и с помощью ПК. Подключение осуществляется через интерфейс RS-232. Некоторые фирмы предлагают возможность подключения бегущей строки через WiFi, Ethernet или другим "экзотическим" способом, н-р, через GSM-модем. Это также удобно для табло, удаленных на значительное расстояние, но повышает стоимость конечного продукта.


1.3 Разработка функциональной схемы


Функциональная схема устройства приведена на листе 1 графического приложения. Светодиодная матрица представляет собой набор из светодиодов, соединенных по строкам и столбцам в 2 группы. Аноды светодиодов образуют строковые сигналы управления, а катоды - сигналы столбцов. Из-за большого числа светодиодов вся матрица разделена на 2 подматрицы, сигналы строк в которых управляются от независимых ключей - усилителей тока. Усилители столбцов представляют собой нижние ключи, которые подключаются к сдвиговому регистру. В регистр информация загружается в последовательном коде от микроконтроллера, который управляет всем устройством. Верхними ключами строк контроллер управляет непосредственно с выходов своих 8-битных портов. Текст, выводимый бегущей строкой, а также все параметры этого текста, спецэффекты, хранятся в специальной энергонезависимой flash-памяти, с которой контроллер связан по интерфейсу SPI.

Настройка работы бегущей строки, запись текста, параметров осуществляются с ПК через USB адаптер интерфейса RS-232. Для его поддержки в устройстве предусмотрен специальный адаптер, который преобразует сигналы ТТЛ-уровня в сигналы стандарта RS-232 и обратно. Стандартный COM-порт ПК имеет всего 8 сигналов, из которых используется всего 2: TxD - передача данных и RxD - прием данных. Обмен данными осуществляется в полудуплексном режиме, по протоколу Modbus ASCII.

Датчик температуры представляет собой интегральную микросхему типа DS1820 производства фирмы Dallas. Данные выдаются в цифровом виде, по специальному однопроводному интерфейсу 1-Wire®. Этот уникальный интерфейс позволяет передавать команды и данные в обоих направлениях всего по одному проводу, а также запитывать сам датчик от этого же провода. Разумеется, для подключения датчика требуется также "земляной" провод. Более того, специальная система адресации и связанных с этим команд позволяет посадить на общую шину неограниченное число датчиков, благодаря наличию у каждого датчика уникального, неповторяющегося, 64-битного адреса, записываемого при их производстве. В данном устройстве подключение нескольких датчиков не требуется, поэтому эта возможность не используется. Корректность передаваемых по интерфейсу информации проверяется специальным 8-битным циклическим кодом CRC8. Описание интерфейса 1-Wire® и его системы команд приведено в Приложении А.

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

Питание табло осуществляется от внешнего источника постоянного тока, который представляет собой сетевой адаптер с выходным напряжением +6..9В и током до 1 А. Стабилизатор +5В вырабатывает напряжение, необходимое для работы цифровых микросхем. Для питания светодиодной матрицы используется дополнительный регулируемый стабилизатор пониженного напряжения, к выходу которого подключаются ключи строк и столбцов. Это позволяет исключить использование токоограничительных резисторов в цепях столбцов и повысить яркость изображения за счет быстрого переключения между строками. Вместе с резисторами светодиоды создавали бы RC-цепь с ограниченным временем нарастания тока, что при динамической развертке изображения крайне нежелательно. Последовательное подключение стабилизаторов +5В и питания светодиодов распределяет тепловую нагрузку на оба стабилизатора, снижая их нагрев от выделяемой мощности до безопасного уровня.


1.4 Разработка общего алгоритма вывода строки


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

Бегущая строка представляет собой текст, движущийся справа налево с заданной скоростью. По достижении конца текста вывод строки прекращается. Текст бегущей строки хранится в энергонезависимой FLASH-памяти, с которой контроллер связывается по SPI-интерфейсу. Предельный размер строки составляет 6912 символов; оставшаяся из 8 Кбайт память используется как ПЗУ знакогенератора, т.е. для хранения растрового шрифта. Фактическая длина строки хранится в специальном параметре, который записывается в память EEPROM контроллера.

Во FLASH-памяти текст записан в обычном виде, в ASCII-кодировке. При выводе очередного символа на экран из памяти считывается его код. Затем с помощью функции знакогенератора определяется начертание символа, состоящее из 5 байт. После этого последовательно, друг за другом с определенной скоростью, в видеопамять сдвигаются эти 5 байтов, после которых идет пустой байт (0x00), служащий разделителем между символами.

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

Перед каждым запуском строки оба счетчика инициализируются, т.е. обнуляются. Увеличение счетчика текущего символа происходит только после того, как будут сдвинуты все 6 байт изображения предыдущего символа. По достижении конца текста вывод символов прекращается, однако сдвиг изображения продолжается до тех пор, пока за левым краем экрана не исчезнет последний символ строки. Это реализуется проверкой соответствующих условий. В сильно упрощенном виде весь процесс показан на листе 9 Графического приложения. На самом деле, при выводе бегущей строки участвуют сразу несколько параллельных задач, таких как обслуживание прерывания от системного таймера, отсчитывающего интервалы времени 1 мс, и задача подсчета интервала сдвига изображения на 1 столбец влево, и др.


.5 Выбор микроконтроллера


В настоящее время существует множество самых разнообразных типов микроЭВМ, называемых микроконтроллерами, отличающихся быстродействием, объемом оперативной и постоянной памяти программ, данных, системой команд, функциональными возможностями и пр. Немаловажным обстоятельством является удобство в использовании ОМЭВМ для разработчика.

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

Светодиодная матрица.(6 линий)

Матрица образуется объединением светодиодов в 8 строк и 112 столбцов. Сигналы управления столбцов формируются в сдвиговом регистре, данные в который в последовательном коде передаются с контроллера. Для этого нужно всего 2 линии: данных и тактирования. Для заполнения информации всей строки потребуется всего 112 тактов. Во время сдвига все светодиоды панели должны быть погашены, т.е. после гашения очередной строки и включением следующей выдерживается вынужденная пауза, длительность которой зависит от производительности контроллера и эффективности программного кода, отвечающего за заполнение регистра.

В любой момент времени в табло может быть включена только одна строка, или ни одной. Всего строк 8, поэтому можно применить один дешифратор с 3 входами и 8 выходами. Двоичный код на входах определяет активную строку; для полного выключения всех строк на дешифратор с контроллера должен поступать еще один сигнал разрешения/запрета.

Итого имеем 2 линии для сдвигового регистраную т строкуыходами. но применить один дешифратор 3 х 8 строка, или ни одной и 4 линии дешифратора строк, т.е. всего 6 линий.

Клавиатура(2 линии)

Для подстройки текущего времени табло достаточно иметь 2 кнопки. При нажатии на одну кнопку активируется режим подстройки времени. Далее при повторном ее нажатии осуществляется переход от часов к минутам, от минут к секундам. При этом подстраиваемое значение мигает. Нажатие второй кнопки циклически изменяет значение параметра. После установки секунд нажатие первой кнопки выводит из данного режима. память.(4 линии)

Эта ИМС подключается к контроллеру по SPI-интерфейсу, имеющему всего 4 линии: MOSI, MISO, SCK, CS.

Адаптер сопряжения RS-232(2 линии)

Сам адаптер сопряжения ничего не требует, однако чтобы он работал, требуется собственно наличие этого интерфейса у микроконтроллера. Для него выделяются две линии: TxD, RxD.

Датчик температуры(1 линия)

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

Итого требуется 15 линий ввода-вывода, а также интерфейсы SPI, UART, таймеры подсчета текущего времени, регенерации изображения, и обслуживания датчика температуры.

Не менее высокие требования к оперативной памяти. Буферы приема и передачи пакетов протокола Modbus требуют каждый по 40 байтов. "Видеопамять", т.е. хранение состояния каждого светодиода, требует 8*112 бит = 112 байт плюс 8 байт для сдвига - 120 байт. Однопроводный интерфейс вместе с датчиком температуры требует минимум 20 байтов. Внешняя Flash-память текста осуществляет запись информации постранично, по 32 байта. Для ее обслуживания в оперативной памяти также выделяется буфер соответствующего размера. Плюс дополнительные многочисленные байтовые и двухбайтовые переменные, такие как указатели, счетчики, временные переменные, приводят к необходимости иметь более 256 байт ОЗУ.

Текст и параметры бегущей строки хранятся во внешней Flash-памяти. Но есть отдельная группа параметров, которая касается работы непосредственно аппаратной части устройства, н-р, режим работы, корректоры почасового и суточного хода часов, и пр. Эти параметры должны сохраняться в энергонезависимой перепрограммируемой памяти контроллера, т.н. EEPROM. Их немного, поэтому достаточно будет минимального объема, который предоставляет программисту в распоряжение семейство AVR.


1.6 Анализ неисправностей устроиства


Отсутствие блока питания, не корректная работа датчика температуры, разрыв паики на платах


1.7 Выводы


В данном разделе нами было определено что достаточно источники света с силой 30...150 милликандел,т.к информационное табло находится в помнщении. Питание табло осуществляется от внешнего источника постоянного тока, который представляет собой сетевой адаптер с выходным напряжением +6..9В и током до 1 А. Стабилизатор +5В вырабатывает напряжение, необходимое для работы цифровых микросхем. Для питания светодиодной матрицы используется дополнительный регулируемый стабилизатор пониженного напряжения, к выходу которого подключаются ключи строк и столбцов.

И требования к микроконтроллеру имеют следующий вид:

объем постоянной памяти более 7 Кб;

объем оперативной памяти более 256 байт;

наличие памяти EEPROM;

интерфейс SPI;

интерфейс UART(RS-232);

3 независимых таймера;

минимум 10 линий ввода-вывода;




РАЗДЕЛ 2. ПРОЕКТНО-КОНСТРУКТОРСКИЙ


2.1 Выбор элементной базы


Для успешного построения устройства нам необходимо выбрать тип микроЭВМ, светодиодов, микросхем стабилизаторов и адаптера RS-232, ключевых элементов и пр., т.е. всех составляющих схемы разрабатываемого устройства.

Микроконтроллер.

В современных микроЭВМ применяются следующие архитектуры процессоров:(Reduce Instruction Set Commands) - архитектура с сокращенным набором команд;(Complex Instruction Set Commands) - традиционная архитектура с расширенным набором команд;(Advanced RISC-machine) - усовершенствованная RISC архитектура.

Главная задача RISC архитектуры - обеспечение наивысшей производительности процессора. Её отличительными чёртами является:

малое число команд процессора (несколько десятков);

каждая команда выполняется за минимальное время (1-2 машинных цикла, такта).

максимально возможное число регистров общего назначения процессора (несколько тысяч);

увеличенная разрядность процессора (12,14,16 бит).

Современная RISC архитектура включает, как правило, только последние 3 пункта, т.к. за счет повышенной плотности компоновки БИС стало возможным реализовать большое количество команд. архитектура применяется в основном в больших микропроцессорных комплектах, высокопроизводительных ЭВМ. Для реализации нашего устройства достаточно будет использовать простой контроллер с RISC архитектурой, имеющего развитые средства разработки, отладки программ и записи их в память микросхемы.

Отбрасывая ОМЭВМ, предназначенные для работы с аналоговыми сигналами (DSP), для выполнения большого объема вычислений, получаем всего несколько семейств микроконтроллеров, доступных широкой массе потребителей: Microchip PIC, Atmel AVR, Intel MCS'51, Motorola 68HC05, и пр. Они отличаются в основном системой команд и производительностью. Рисунок 1 показывает сравнительную производительность микроконтроллеров этих семейств.


Рисунок 1 - Сравнительная характеристика некоторых микропроцессорных платформ


То, что одно семейство, имеющее короткое время исполнения команд, например, AVR, эффективнее другого, с более "длинными" командами, например MCS'51, однозначно утверждать нельзя. AVR-семейство представляет собой чистую RISC-архитектуру, программы для микроконтроллеров этого типа достаточно длинные, объемные, т.к. все операции проводятся через РОНы. У микроконтроллеров семейства PIC система команд урезанная, и состоит всего из 33 команд. Хотя они исполняются достаточно быстро, общая производительность низка. Примерно то же самое относится к семейству HC05. Однокристальные микроЭВМ семейства C'51 пользуются спросом и уважением разработчиков всего мира, в первую очередь за эффективную систему команд, дающую хорошую производительность системы в целом, не смотря на длинный командный цикл. Сравнивая два противоположных в этом плане семейства AVR и C'51, в конечном итоге их производительности примерно равны: за одно и то же время они делают одну и ту же "работу".

Немаловажным обстоятельством является удобство в использовании ОМЭВМ для разработчика. Стандартные МК фирмы Intel имели внутреннюю память программ с УФ-стиранием, либо с масочным ПЗУ, что сильно сдерживало их использование в "домашних" условиях. Фирма ATMEL разработала полный аналог этих МК, с добавлением такой функции, как ISP - программирование в системе: для перезаписи программы в контроллер требуются считанные секунды. семейство контроллеров продолжает развиваться и по сей день, обеспечивая разработчика широким набором встроенной периферии. В сравнении с семейством MCS'51 оно более удобно в использовании, т.к. в AVR каждый модуль - таймер, счетчик, интерфейс UART, SPI и др., независим друг от друга. В 51-х контроллерах этого не скажешь: таймеры и интерфейсы так или иначе взаимосвязаны. Для нашего устройства с большой нагрузкой на ПО, где необходимо осуществлять подсчет текущего времени суток, динамически формировать изображение на матрице, выдерживать строгие временные интервалы для поддержки однопроводного интерфейса - и все с разной частотой и периодичностью, AVR подходит более всего.

Набор AVR-микроконтроллеров достаточно широк. Для выбора конкретного типа необходимо подсчитать минимальное число выводов, а также определить необходимые встроенные аппаратные средства для поддержки работы других элементов.

В таблице 3 приведены некоторые типы AVR-микроконтроллеров. Они отличаются набором периферии, объемом внутренней памяти программ и данных, числом доступных портов ввода-вывода, корпусами, быстродействием, напряжением питания и пр. Излишние функциональные возможности нежелательны, т.к. это увеличивает стоимость контроллера; их недостаток, наоборот, приведет к невозможности выполнения поставленной задачи. Чтобы правильно выбрать тип контроллера, необходимо иметь представление о программе, выполняемой на нем, и ее задачах. Она потребует достаточно много места: один протокол Modbus только в "чистом" виде, т.е. только процедуры приема и отправки байтов, кодирования/декодирования пакетов, занимают около 1 Кб (modbus.asm). Обработка команд, поступающих с ПК, также потребует около 1 Кб постоянной памяти (command.asm). Обеспечение работы однопроводного интерфейса и обслуживание датчика температуры занимает примерно 1,5 Кб (ds18x.asm). Обработчики прерываний от системных таймеров и связанные с ними процедуры займут около 2 Кб. Основной модуль программы займет еще примерно 2 Кб. Получается, объем только постоянной памяти программ должен быть не менее 7 Кбайт.



Таблица 3 - Микроконтроллеры семейства AVR.

AVR ®FLASH (KB)EEPROM (Bytes)RAM (Bytes) With 32 RegisterInstructionsI/O pinsInterruptsExt InterruptsSPIUARTTWIHardware Multiplier8-bit timer16-bit timerPWMWatchdog TimerRTC TimerAnalog Comp10-bit A/D ChannelsOn Chip RC-OscillatorBrown Out DetectorIn System ProgrammingSelf Program MemoryVcc(V)Clock Speed (MHz)PackagesATtiny11L1-3290641(+5)----1--Y-Y-Y-Y-2.7-5.50-28-pin DIP, SOICATtiny111-3290641(+5)----1--Y-Y-Y-Y-4.0-5.50-68-pin DIP, SOICATtiny12V1643290651(+5)----1--Y-Y-YYY-1.8-5.50-18-pin DIP, SOICATtiny12L1643290651(+5)----1--Y-Y-YYY-2.7-5.50-48-pin DIP, SOICATtiny121643290651(+5)----1--Y-Y-YYY-4.0-5.50-88-pin DIP, SOICATtiny15L1643290681(+5)----2-1Y-Y4YYY-2.7-5.51.68-pin DIP, SOICATtiny26L2128128+3211816111(+8)111-2-4Y-Y11YYY-2.7-5.50-820-pin DIP, SOIC32-pin MLFATtiny262128128+3211816111(+8)111-2-4Y-Y11YYY-4.5-5.50-1620-pin DIP, SOIC32-pin MLFATtiny28V2-32902051(+8)----1--Y-Y-Y-Y-1.8-5.50-128-pin DIP32-pin TQFP, MLFATtiny28L2-32902051(+8)----1--Y-Y-Y-Y-2.7-5.50-428-pin DIP32-pin TQFP, MLFAT90S120016432891531----1--Y-Y-Y-Y-2.7-6.00-420-pin DIP, SOIC, SSOPAT90S120016432891531----1--Y-Y-Y-Y-4.0-6.00-1220-pin DIP, SOIC, SSOPAT90S23132128128+3212015102-1--111Y-Y---Y-2.7-6.00-420-pin DIP, SOICAT90S23132128128+3212015102-1--111Y-Y---Y-4.0-6.00-1020-pin DIP, SOICAT90LS23232128128+32120321----1--Y-----Y-2.7-6.00-48-pin DIP, SOICAT90S23232128128+32120321----1--Y-----Y-4.0-6.00-108-pin DIP, SOICAT90LS23432128128+32120521----1--Y---Y-Y-2.7-6.00-18-pin DIP, SOICAT90LS23432128128+32120521----1--Y---Y-Y-2.7-6.00-48-pin DIP, SOICAT90S23432128128+32120521----1--Y---Y-Y-4.0-6.00-108-pin DIP, SOICAT90LS44334256128+321202014211--111Y-Y6-YY-2.7-6.00-428-pin DIP32-pin TQFPAT90S44334256128+321202014211--111Y-Y6-YY-4.0-6.00-828-pin DIP32-pin TQFPAT90S85158512512-321303212211--112Y-Y---Y-2.7-6.00-440-pin DIP44-pin PLCC, TQFPAT90S85158512512-321303212211--112Y-Y---Y-4.0-6.00-840-pin DIP44-pin PLCC, TQFPAT90LS85358512512-321303216211--213YYY8--Y-2.7-6.00-440-pin DIP44-pin PLCC, TQFPAT90S85358512512-321303216211--213YYY8--Y-4.0-6.00-840-pin DIP44-pin PLCC, TQFPATmega8L85121K+3213023182111Y213YYY4+2YYYY2.7-5.50-828-pin DIP6+232-pin MLF, TQFPATmega885121K+3213023182111Y213YYY4+2YYYY4.5-5.50-1628-pin DIP6+232-pin MLF, TQFPATmega8535L8512512-3213032203111Y214YYY8YYYY2.7-5.50-840-pin DIP44-pin TQFP, MLFATmega85358512512-3213032203111Y214YYY8YYYY4.5-5.50-1640-pin DIP44-pin TQFP, MLFATmega8515L8512512+3213035163111Y112Y-Y-YYYY2.7-5.50-840-pin DIP44-pin TQFP, MLGATmega85158512512+3213035163111Y112Y-Y-YYYY4.5-5.50-1640-pin DIP44-pin TQFP, MLGATmega161L165121K+321303520312-Y214YYY--YYY2.7-5.50-440-pin DIP44-pin TQFPATmega161165121K+321303520312-Y214YYY--YYY4.0-5.50-840-pin DIP44-pin TQFPATmega162V165121K+3213035203(+16)121Y226YYY-YYYY1.8-3.60-140-pin DIP44-pin TQFP, MLFATmega162L165121K+3213035203(+16)121Y226YYY-YYYY2.7-5.50-840-pin DIP44-pin TQFP, MLFATmega162165121K+3213035203(+16)121Y226YYY-YYYY4.5-5.50-1640-pin DIP44-pin TQFP, MLFATmega163L165121K+3213032172111Y213YYY8YYYY2.7-5.50-440-pin DIP44-pin TQFPATmega163165121K+3213032172111Y213YYY8YYYY4.0-5.50-840-pin DIP44-pin TQFPATmega16L165121K+3213032203111Y214YYY8YYYY2.7-5.50-840-pin DIP44-pin TQFP, MLFATmega16165121K+3213032203111Y214YYY8YYYY4.5-5.50-1640-pin DIP44-pin TQFP, MLFATmega323L321K2K+3213032193111Y214YYY8YYYY2.7-5.50-440-pin DIP44-pin TQFPATmega323321K2K+3213032193111Y214YYY8YYYY4.0-5.50-840-pin DIP44-pin TQFPATmega32L321K2K+3213032203111Y214YYY8YYYY2.7-5.50-840-pin DIP44-pin TQFP, MLFATmega32321K2K+3213032203111Y214YYY8YYYY4.5-5.50-1640-pin DIP44-pin TQFP, MLFATmega64L642K4K+3213353348121Y226+2YYY8YYYY2.7-5.50-864-pin TQFP, MLFATmega64642K4K+3213353348121Y226+2YYY8YYYY4.5-5.50-1664-pin TQFP, MLFATmega169V165121K+3213954221(+16)111Y214YYY8YYYY1.8-3.60-164-pin TQFP, MLFATmega169L165121K+3213954221(+16)111Y214YYY8YYYY2.7-3.60-464-pin TQFP, MLFATmega103L1284K4K+321214816811--214YYY8--Y-2.7-3.60-464-pin TQFPATmega1031284K4K+321214816811--214YYY8--Y-4.0-5.50-664-pin TQFPATmega128L1284K4K+3213353348121Y226+2YYY8YYYY2.7-5.50-864-pin TQFP, MLFATmega1281284K4K+3213353348121Y226+2YYY8YYYY4.5-5.50-1664-pin TQFP, MLF



Всем требованиям рассмотренных в разделе 1.5 удовлетворяет микросхема ATmega32L (см. Приложение Б). Следует отметить, что она имеет четыре 8-битных порта, поэтому избыточное число выводов можно использовать, исключив, н-р, дешифратор строк. Эту задачу возлагаем теперь на ПО.

Адаптер интерфейса RS-232.

Для построения адаптера интерфейса RS-232 фирма MAXIM выпустила ряд микросхем, отличающихся числом линий связи и электрическими параметрами. В настоящее время существуют их более дешевые аналоги пр-ва других фирм, например, ADM, STM.

При выборе той или иной ИМС необходимо руководствоваться следующими соображениями:

Должно быть минимально необходимое число линий;

Корпус типа DIP для монтажа на плату 3 класса точности;

Однополярное напряжение питания.

Вообще, из представленных в таблице 4 ИМС подойдет любая, т.к. связь с ПК будет осуществляться по протоколу Modbus, а он требует только двух линий передачи данных. Выберем те, которые имеют минимальное число выводов, т.е в корпусе DIP-16. Всем критериям удовлетворяют только 2 типа: MAX202 и MAX232. Неудивительно, что именно эти ИМС пользуются наибольшей популярностью у разработчиков и встречаются наиболее часто в различных любительских и профессиональных схемах.

Адаптер переходник с интерфейса RS-232 на USB интерфейс.

Основные характеристики:

Производитель - Orient Hero International Ltd

Модель - USS-101

Параметры производительности:

Скорость передачи данных - 1 Мбит/сек

Прочие характеристики:

Длина кабеля - 0.8 метра

Прочее:

Со стороны COM порта для крепежа используются винты


Таблица 4 - Микросхемы преобразователей RS-232



Датчик температуры

При выборе типа датчиков температуры использовалась таблица 5.

Таблица 5 - Параметры распространенных датчиков температуры


В сравнении с датчиками серии ds1820 фирмы Dallas они проигрывают в точности и удобстве подключения. Можно, конечно, использовать термозависимые сопротивления типа ТСМ, ТСП и др., но это требует использования АЦП, схем согласования, и дополнительной программной обработки первичных результатов. Датчики фирмы Dallas имеют отличную точность (0,5°С), требуют всего 2 провода (земляной и сигнальный), выдают данные в цифровом виде. Конечно, связь по однопроводному интерфейсу без использования аппаратной поддержки требует более сложного программного обеспечения, но из-за относительной медлительности интерфейса и за счет использования в связи с этим системы прерываний нагрузка на процессор получается минимальной.

Прочие элементы.

Цифровые микросхемы регистров, дешифраторов можно использовать любые из ТТЛ, ТТЛШ, КМОП-логики, серий 555, 1533, 1554.

Резисторы с допуском 5-10% - типа МЛТ, С2-23 соответствующей мощности; конденсаторы: электролитические К50-35 или импортные аналоги VISHAY, JAMICON и др., в цепях питания для подавления помех К10-17б.

Остальные элементы - по назначению, с подходящими конструктивными, технологическими, электрическими параметрами.

2.2 Разработка принципиальной схемы устройства


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

Блок силовых ключей собран на транзисторах VT1 - VT16 типа КТ816А. Максимальный ток IКЭ = 1 А, напряжение UКЭ = 25В. Резисторы R4 - R19 ограничивают ток базы при подаче на вход канала напряжения лог. 0. Минимальный ток базы, необходимый для насыщения транзистора, равен:



Сопротивление токоограничивающего резистора равно:



По ряду E24 выбираем сопротивление резистора 470 Ом.

Остальные элементы схемы устанавливаются в соответствии с технической документацией на соответствующие ИМС, и расчета не требуют.


2.3 Разработка алгоритма работы микроЭВМ


Алгоритм работы микроЭВМ должен обеспечивать следующие функции:

заполнение сдвигового регистра столбцов данными, соответствующими текущей строке;

поочередное включение строк светодиодной матрицы при динамическом формировании изображения;

формирование изображения на матрице в соответствии с текущем режимом работы;

чтение Flash-памяти при отображении текста бегущей строки;

учет текущего времени суток и автоматическая коррекция хода часов;

поддержка однопроводного интерфейса;

периодическое считывание показаний температурного датчика;

обеспечение связи с ПК по интерфейсу RS-232, по протоколу Modbus;

выполнение команд, прием и выдача данных на ПК;

обслуживание дополнительных кнопок подстройки часов.

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

Рассмотрим принцип динамического формирования изображения на светодиодной матрице, управляемой сигналами строк (аноды) и столбцов (катоды). Формирование изображения и вывод его на дисплей - две разные задачи, которые стыкуются между собой с помощью буфера в оперативной памяти - т.н. видеопамяти. Она представляет собой просто область ОЗУ, в которой каждый бит определяет состояние соответствующего ему светодиода. Первая задача - формирование изображения - отвечает за заполнение этой видеопамяти определенными значениями; вторая задача - вывод на дисплей - считывает эту видеопамять и управляет светодиодами.

Поскольку доступ к информации осуществляется побайтно, т.е. группами по 8 бит, а число строк в разрабатываемом устройстве также равно 8, то само собой напрашивается решение представлять состояние каждого столбца в виде отдельного байта, где их число равно общему числу столбцов. Таким образом, чтобы сдвинуть "бегущий" текст на одну позицию влево, достаточно информацию, хранимую в видеопамяти, сдвинуть на один байт в сторону "левого" байта. Шрифт текста бегущей строки представляет собой символы размером 5 х 7 точек. Исключение составляют некоторые большие символы, такие как русская заглавная буква "Д" и др., где требуется 8 строк. Каждый символ текста на матрице занимает 5 столбцов; расстояние между символами одинарное, в один столбец. Изображение каждого символа хранится в энергонезависимой памяти, в специально отведенной для этих целей области, называемой знакогенератором. Каждый символ занимает 5 байт; таким образом требуется 5 х 256 = 1280 байтов.

Текст бегущей строки выводится справа налево; от старших байтов видеопамяти в сторону младших. Поэтому когда символ уже находится в пределах матрицы, обращения к знакогенератору не происходит: его изображение с определенной скоростью перемещается по видеопамяти, пока не выйдет совсем. Чтение знакогенератора требуется, чтобы "ввести" символ в рабочее поле. Это делается следующим образом. На самом деле видеопамять имеет несколько большую длину, как раз на ширину символа. Невидимые столбцы (5 шт) располагаются справа от матрицы, т.е. они занимают самые старшие 5 байт видеопамяти. При сдвиге изображения на один столбец влево они также участвуют в работе, но остаются невидимыми. Через каждые 6 сдвигов, когда эта область будет пуста, происходит обращение к памяти текста. Для этого организуется специальный счетчик, который указывает на текущую позицию символа в тексте. Его размерность равна слову, т.е. 2 байтам. Перед запуском бегущей строки этот счетчик (другими словами: "бегунок", позиция курсора, указатель и пр.) инициализируется, т.е. указывает на самый первый символ текста. Считанный ASCII-код символа затем умножается на 5, чтобы получить начальный адрес в памяти знакогенератора, где находится его изображение. Считанные 5 байтов знакогенератора копируются в старшие 5 байтов видеопамяти, заполняя опустевшее место самого правого, невидимого символа. Когда достигается граница текста, что проверяется простым сравнением счетчика текущей позиции с длиной текста, заполнение отключается - при сдвиге видеопамяти она заполняется нулями.

Немного по-другому происходит формирование изображения при выводе текущего времени суток и температуры. Время представляется в формате ЧЧ:ММ:СС. Учет текущего времени осуществляется в процедуре прерывания от системного таймера, который настроен точно на частоту 1 Гц. Самому устройству "знать" время нет необходимости, поэтому в памяти время хранится в виде, оптимальном для процедуры формирования изображения. Всего выделяется 6 байт: 2 для значений часа, 2 - для минут и 2 - для секунд. 2 байта нужны для раздельного хранения значений единиц и десятков. При отображении времени и температуры изображение статично, т.е. не сдвигается ни в какую сторону. Позиция каждого символа на матрице определена заранее и не меняется. Для заполнения видеопамяти изображением времени и температуры используется всего одна отдельная процедура. Она последовательно символ за символом "печатает" текст на изображении. Примерное изображение приведено на рисунке 2.


Рисунок 1 - Вывод текущего времени и температуры.


Первым обрабатывается счетчик десятков часов. Значение десятков часов (на рис.2 оно равно 1), представленное в двоичном коде 0x0116, преобразуется в ASCII-код 0x31 путем простого прибавления числа 0x30 (см. таблицу ASCII-кодов). Затем это значение используется как адрес при обращении к ПЗУ знакогенератора, где считываются 5 байтов изображения. Эти значения копируются в область видеопамяти, начиная с 12-ого байта. Так на дисплее появляется изображение цифры "1". Далее обрабатывается счетчик единиц часов. После этого в байтах с адресами 24 и 25 записывается значение 0x36 - это изображение двоеточия, разделяющего минуты от часов. И так далее.

Аналогично выводится температура, но здесь требуется преобразование форматов. Датчик температуры типа DS1820 выдает значение в своем, специфическом формате.


Рисунок 2 - Формат представления температуры датчика DS18B20.


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

Только после этого двоичный код преобразуется в двоично-десятичный, состоящий из трех разрядов - байтов. Печать этих байтов осуществляется аналогично выводу времени. Преобразование в двоично-десятичный код, в особенности дробной части числа, будет рассмотрено в следующей главе. В зависимости от знака, на дисплей перед температурой выводится символ "+" или "-".

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

Теперь о непосредственном выводе изображения. Для этого используется таймер, работающий с периодом 400 Гц. Каждые 2,5 мс вызывается процедура, которая включает очередную строку светодиодов. Т.к. строк 8, то регенерация всего изображения будет происходить за 20 мс, т.е. с частотой 50 Гц. Эту частоту можно изменить, установив соответствующий параметр.

Перед включением следующей строки предыдущая гасится. Затем в цикле, который выполняется с запретом любых прерываний для скорейшего завершения, из видеопамяти последовательно считываются байты. Из них выделяется только один бит, соответствующий текущей строке. Младший бит соответствует верхней строке, старший - нижней. Этими битами заполняется сдвиговый регистр, после чего строка включается. Это осуществляется подачей на анодный строковый сигнал напряжения питания светодиодной матрицы. Столбцовые ключи коммутируют катоды светодиодов на "землю".

Получается, формирование изображения на светодиодной матрице намного проще, чем заполнить видеопамять правильными значениями.

Одна из задач микроконтроллера - работа с внешней Flash-памятью. Ее подключение осуществляется по SPI-интерфейсу, а обмен данными выполняется по командам.


Таблица 6 - Система команд Flash-памяти AT25640.

Имя командыКод командыОписаниеWREN0000 X110Разрешение записиWRDI0000 X100Запрет записиRDSR0000 X101Чтение регистра состоянияWRSR0000 X001Запись регистра состоянияREAD0000 X011Чтение данныхWRITE0000 X010Запись данных

Работа с микросхемой начинается с выдачи активного сигнала CS, после которого она готова к обмену информацией по SPI-интерфейсу. Первым байтом всегда идет код команды. После этого передаются данные. При чтении или записи данных на микросхему передается еще и адрес, который достаточно послать один раз за обращение. После этого счетчик адреса будет автоматически увеличиваться на 1 при каждом считывании байта.

Довольно сложной задачей является поддержка работы однопроводного интерфейса. Он достаточно медленный, а одно обращение к датчику температуры занимает минимум 5 мс. Поэтому для приема и выдачи битов используется прерывание от вспомогательного таймера. Кроме того, обмен данными осуществляется по специальному протоколу, которого также нужно придерживаться. Линейным программированием здесь хороших результатов не добьешься, т.к. помимо обслуживания датчика, микроконтроллер выполняет целый ряд других, не менее важных задач. Выходом из положения стало использование принципа "автоматного" программирования. Программный код, отвечающий за обслуживание однопроводного интерфейса, разбит на отдельные блоки, называемые состояниями. Микроконтроллер в части касающейся может быть только в одном состоянии, т.е. периодически выполняет один и тот же блок. Переходы между состояниями зависят от разных условий, что и дало название автоматного программирования по аналогии с автоматами на жесткой логике в схемотехнике. Кроме этого, используются некоторые специальные приемы, облегчающие программирование и значительно сокращающие время на обслуживание.

Рассмотрим задачу подключения к ПК через последовательный интерфейс RS-232. Связь осуществляется по протоколу Modbus. С использованием этого протокола информация передается группами, называемыми пакетами. Существуют две разновидности Modbus, отличающиеся способом кодирования байтов: Modbus RTU и Modbus ASCII. В RTU-режиме каждый байт передается как есть. Появление ошибок определяется циклическим избыточным кодом CRC. Достоинством этой схемы является более высокая скорость передачи по сравнению с ASCII-режимом, но требует большей вычислительной мощности от ЭВМ из-за использования CRC-кода. В ASCII-режиме каждый байт передается двумя ASCII-кодами шестнадцатеричного представления. Обнаружение ошибок обеспечивается линейным циклическим кодом LRC, который представляет собой простую сумму всех байт пакета (за исключением первого и последнего) без учета переноса.

Каждый пакет состоит из полей:

Признак начала пакета - символ ":" (только в ASCII-режиме)

Адрес устройства

Код функции

Адрес

Данные

Контрольная сумма

Признак конца пакета - символы CRLF (только в ASCII-режиме).

Хотя в RTU-режиме фактическая скорость передачи информации выше почти в 2 раза, режим ASCII предпочтительнее использовать в микроконтроллерных устройствах. Это обусловлено его простотой, большей надежностью, лучшей синхронизацией, более легким исполнением на ассемблере, хотя, конечно, кодирование каждого байта в виде двух кодов и декодирование на приеме значительно усложняют процедуры приема-отправки сообщений. В остальном ASCII-режим предпочтительнее.

Главное правило протокола - на любой пакет, посланный одним устройством (запрос), должен придти ответный пакет (подтверждение). Если ответа не последовало в течении определенного времени тайм-аута, пакет считается потерянным, и передача повторяется. Принимающее устройство, обнаруживая ошибку в данных, уничтожает принятую часть пакета и ответа не формирует. Данное требование обусловлено полудуплексным режимом передачи информации.


2.4 Разработка исходных текстов программ микро-ЭВМ


В нашем устройстве были использован микроконтроллер фирмы ATMEL, который имеет развитые средства поддержки, разработки и отладки. К ним относится среда проектирования программ для AVR микроконтроллеров, называемая AVR Studio ver. 4.12 SP3. Это чрезвычайно удобная среда проектирования предназначена для написания ассемблерных и Си-программ для МК, и их отладки. Программирование осуществляется по интерфейсу RS-232 с помощью программатора AVRISP. Исходный текст ассемблерной программы для микроЭВМ приведен в Приложении В. На каждое действие в программе даны комментарии, облегчающие понимание программы. Широко используются макросы, значительно сокращающие объем текста, что повышает читаемость программы.

Вся программа разбита на модули, каждый из которых предназначен для решения своей задачи:.avr- главный модуль программы.avr- набор макросовx.avr- модуль работы с датчиками серии DS18x.avr- описание команд работы с ПК.avr- обслуживание протокола modbus.avr- набор математических процедур

При разработке программы были решены некоторые необычные, сложные задачи, например, перевод дробной части числа из двоичного формата в десятичный. Эта процедура находится в модуле math.avr. Простой перевод из двоичного в двоично-десятичный формат даст неправильный результат. К примеру, число 0x01 для целой части означает число, равное 1. При дробном представлении двоичный код 0x01 равен 2-8=0,00390625. Это есть вес младшего разряда. Соответственно, вес старшего разряда равен 0,5. Нам такое большое число цифр после запятой не нужно - достаточно четырех, из которых впоследствии можно использовать любое из них. Таким образом, двоичный код, например, 0x80 должен дать цифру 5000, представленную в двоично-десятичном формате. Но сначала нам надо преобразовать дробное представление хотя бы в обычное двоичное. Это осуществляется в цикле, который повторяется 8 раз - по числу дробных разрядов. Если в текущем разряде стоит "1", то его вес прибавляется к общей сумме, которая перед запуском цикла обнуляется. Вес старшего разряда равен 5000 (500 для трех разрядов, 50 тыс. для пяти разрядного числа и т.д.). При переходе к следующему, более младшему разряду, текущий вес понижается в 2 раза. Деление на 2 заменяется простой операцией побитного сдвига вправо.

Есть другой способ - просто умножить двоичное представление дробного числа на 5000 и откинуть младший байт. Но это потребует 16-битной операции умножения, т.е. 16 тактов вместо 8.

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


2.5 Разработка программы для ПК


Для программирования бегущей строки используется персональный компьютер. Связь с ПК осуществляется через USB адаптер подключаемый к COM-порту устройства, по интерфейсу RS-232. Программа обслуживания бегущей строки разработана в среде Delphi 6.0. Она содержит всего 2 формы: основную и редактор шрифта. В основной форме пользователь может прописать текст бегущей строки, задать скорость ее движения и интервал между повторами. Кроме того, предоставляется возможность синхронизации с панелью, когда ее изображение копируется на экран ПК. В этом режиме можно увидеть в удаленном режиме, что именно отображается на панели в каждый момент времени.

Любая программа на Delphi состоит из модулей. В разработанной программе имеется 4 модуля:

модуль обслуживания основного окна интерфейса;

модуль обслуживания редактора шрифта;

модуль обслуживания COM-порта ПК;

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

Разберем для начала, на каком принципе построено взаимодействие с бегущей строкой. ПК и строка образуют простейшую сеть, без адресации, ведущим устройством в которой является ПК. Бегущая строка самостоятельно инициировать передачу не может; она всегда посылает ответный пакет на запрос, исходящий от ПК. Формат кадра протокола следующий:

байт с кодом 0x3A, или символ ':' (двоеточие);

код функции - 1 байт;

данные (от 0 до 120 байтов);

контрольная сумма (1 байт);

байт с кодом 0x0A или 0x0D ("возврат каретки" или "перевод строки").

Код функции определяет действие, которое должно выполнить строка. В ответном пакете этот код функции повторяется, т.е. ПК всегда знает, что выполнило, или какие данные отправило устройство.

Программный модуль ComPort.pas обеспечивает работу с COM-портом. Практически весь модуль взят из книги [12]. Он описывает процедуры захвата порта, работы с ним (прием / передача байтов), работу с дополнительными сигналами порта (DTR, DTS, RTS, CTS, RI, CD), освобождение порта. Преимущество этого модуля состоит в том, что он практически не тормозит центральный процессор, вся работа с портом осуществляется асинхронно, т.е. необходимые процедуры или функции вызываются при появлении соответствующих условий. Для этого используется поток (TThread). Он непрерывно отслеживает состояние COM-порта, и вызывает всего 2 процедуры:

TReadByteEvent - по поступлению нового символа по COM-порту;

TChangeStateEvent - по изменению сигналов на входах порта.

Программный модуль Modbus.pas работает с массивами данных, структурированных по правилам протокола Modbus. Он является связующим звеном между программой на ПК и программой на контроллере бегущей строки. Чтобы отправить данные на устройство, этот модуль принимает от основной программы (модуль main.pas) запрос в виде массива данных, в котором указаны:[0] - длина данных, или общее количество байт для отправки;[1] - код функции;[2..255] - данные функции.

Этот запрос преобразуется в кадр, т.е. производится кодирование информации, добавляются служебные символы в начало и конец кадра, вычисляется контрольная сумма. Затем этот запрос отсылается в COM-порт. Здесь COM-порт представляется в виде файла, в который можно записать неограниченное число байт. Один за другим эти байты будут отправлены с порта, в том порядке, в каком они были записаны в этот файл.

Ответный кадр от устройства приходит уже в виде отдельных байтов, из которых модуль Modbus должен сложить правильный кадр. Любые байты, приходящие с порта, будут игнорироваться до тех пор, пока не будет принят символ с кодом 0x3A. Это признак начала пакета, после которого остальные байты будут помещаться в специальный буфер RxPack[0..255] до приема символа с кодом 0x0A или 0x0D. За эти действия отвечает процедура OnReadByte. Когда будет принят весь кадр, за его обработку отвечает процедура ReadFrame. Эта процедура проверяет контрольную сумму, производит декодирование информации, и передачу принятого пакета на верхний (прикладной) уровень.

В основной программе (модуль main.pas) за связь с устройством отвечает процедура TForm1.OnReadFrame. Она запускается из модуля modbus.pas, и является асинхронной по отношению к остальной программе. Ее запуск всегда инициируется приемом пакета от устройства. Отправить запрос на устройство сравнительно просто: для этого надо указать код функции, данные, которые сопровождают ее (н-р, адрес или значение параметра для записи), и обязательно указать длину этого запроса в байтах. После этого вызвать процедуру MBLink.Send. И можно быть увереным, что если качество связи хорошее, это пакет обязательно дойдет до адресата и вернется в виде ответа, реакцией на который будет запуск процедуры OnReadFrame с тем же кодом функции.

В этой процедуре с помощью конструкции case .. of .. осуществляется анализ кода функции. На каждый код функции программа реагирует каким-либо соответствующим действием, н-р, отправкой следующего запроса, записью данных, или просто завершением сеанса связи. Сеанс связи - это последовательное выполнение связанных друг с другом одним смыслом запросов, приводящих к выполнению определенной задачи. Рассмотрим все типы сеансов. Текущий сеанс связи хранится в переменной Mode:

- основной режим работы, с ожиданием действий пользователя;

- опрос параметров устройства при запуске программы;

- синхронизация с панелью;

- чтение памяти знакогенератора;

- чтение FLASH-памяти устройства;

- запись данных на панель;

- верификация;

Сразу после запуска программы на ПК устанавливается режим 1 с выдачей контрольной команды check_net - проверка связи. Если связь с устройством установлена (кабель подключен, COM-порт настроен правильно, и устройство включено), то обязательно придет ответный пакет с тем же кодом функции. Эта функция "пустая", т.е. не требует от устройства никаких действия. В этом можно убедиться, если посмотреть программный код в модуле commands.asm:

.cseg_net:;Проверка связи

Однако для ПК этот код является "стартовым выстрелом" для начала работы с панелью. В процедуре OnReadFrame в ответ на приход этого кода функции формируется тут же новый запрос get_time - чтение текущего времени устройства. Устройство отвечает на него, и процедура OnReadFrame запускается еще раз, но уже с кодом get_time в принятом пакете. При обработке этого кода функции на устройство отправляется пакет get_date - чтение текущей даты устройства. На этом процесс завершается, и программа переходит в режим 0.

В режиме синхронизации с панелью каждые 0,25 сек формируется запрос read_info, на что устройство посылает 112 байтов видеопамяти. При приеме пакета на мониторе отображаются состояния всех светодиодов, т.е. пользователь видит картинку, которую "рисует" панель в данный момент времени. При этом другие команды пользователя блокируются.

Память знакогенератора имеет большой объем - 1280 байт, и не может быть считана за один раз. Поэтому это выполняется в сеансе связи с номером 3. При приеме от устройства очередной порции информации программа формирует следующий запрос, но уже с другим адресом. Устройство, приняв пакет с кодом read_sign, выдает данные из таблицы знакогенератора, начиная с адреса, указанного в функции read_sign - он идет вторым байтом пакета. Когда вся память будет считана, программа переходит в основной режим работы.

Аналогичным образом идет работа в остальных режимах, т.к. они предназначены для обмена большим объемом информации. Верификация данных - проверка на правильность записи данных. После того, как пользователь ввел текст бегущей строки и записал его в Flash-память устройства, программа проверяет правильность записи повторным чтением текста и сравнением его с исходным. При несовпадении данных программа выдает сообщение.

Вспомогательный модуль EditForm предназначен для редактирования начертаний символов. Каждый символ имеет размер 5 х 7 точек, т.е. занимает 5 байт. Пользователь может выбрать нужный символ, и нажатием мыши на графическом поле зажечь или погасить светодиод. После внесенных изменений необходимо выполнить команду записи таблицы знакогенератора, иначе они будут утеряны.


Рисунок 3 - Графическое представление программы.


Графическое представление программы представляет собой окно. Центральная часть основное рабочее поле где выводятся символы, в верхнем левом углу находится панель меню где можно отрыть, сохранить, осуществить необходимые настройки. Под рабочем полем расположена строка ввода текста в конце её расположена кнопка очистки всей строки, ниже расположены инструменты управления скорости перемещения бегущей строки, правее расположенны 2 кнопки одна из них для записи информации в память устройства, а другая для счивания с устройства. Правее расположена метка синхронизации она служит для связи и обновления информации между устройством и ПК. Делее расположена метка блокировки панели она служит для запрета или разрешения работы устройства. В нижней части окна расположена строка справочной информации: канал подключения (COM2), скорость передачи данных (19200 байт/сек), статус (поиск, проверка,готов), дата, время.


2.6 Разработка печатной платы устройства


Чертеж печатной платы приведен на листе 4 Графического приложения.

Топология печатной платы была разработана в соответствии с принципиальной схемой; для этих целей применялся САПР PCAD-2001. Эта система проектирования электронных блоков, узлов, ПП используется многими профессиональными разработчиками из-за ее многофункциональности, удобства в работе, простоте понимания.

Материал ПП - двусторонний фольгированный стеклотекстолит марки СФ-2-0,35. Основная ширина дорожек - 0,6 мм.


ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА (ДИПЛОМНЫЙ ПРОЕКТ) Специальность 230101 «Вычислительные машины,

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2019 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ