
- •Тверской государственный технический университет
- •Методические указания к выполнению расчетно-графической работы по дисциплине
- •В в е д е н и е
- •1. Задание на расчетно-графическую работу
- •I.I. Цели проектирования
- •I.2. Состав проектируемой системы управления
- •I.3. Функции системы управления
- •1.4.Исходные данные к выполнению расчетно-графической работы
- •2. Организация выполнения расчетно-графической работы
- •3. Методические указания к выполнение расчетно-графической работы
- •4. Рекомендации по разработке принципиальной схемы
- •Список рекомендуемой литературы
3. Методические указания к выполнение расчетно-графической работы
3.1. ЧАСТЬ № 1. Подсистема вывода информации для специализированной микроконтроллерной системы управления
3.1.1. Структура МСИ и кодирование символов
Устройство отображения построено на линейке матричных светодиодных индикаторов (МСИ) типа АЛ306 [2], который представляет собой набор светодиодов, расположенных в узлах координатной сетки 7 * 5. Внутреннюю структуру индикатора поясняет рис.3.
При подаче на i-й вход строки высокого, а на j-й вход столбца низкого уровня, светодиод (i,j) загорается. Максимально допустимое значение тока через открытый светодиод составляет 11 мА. Падение напряжения на открытом светодиоде при протекании через него тока 10 мА составляет 2В.
Формат МСИ и кодирование символа "А" показаны на рис.4.
3.1.2. Общая организация программного обеспечения
Приведенная ниже организация программного обеспечения (ПО) носит рекомендательный характер и может быть аргументировано изменена разработчиком.
Разрабатываемое ПО контроллера управления линейкой МСИ условно можно разбить на шесть программ.
1. Основная программа.В ее функции входит анализ текущего времени, а также начальная настройка таймеров-счетчиков, каналов АЦП, задание начальных условий, вызов подпрограммы индикации DISPLAY, по истечение T сек - подпрограммы опроса порта P0 и P3 и вычисления функций F1,F2 и признака F0. Блок-схема основной программы приведена на рис.5.
Два счетчика RT1 и RT2 производят временной отсчет 50 мс и T сек соответственно.
2. Программа расчета времени.Является обработчиком прерывания от таймера- счетчика 0 (TC0) каждые 250 мкс. Состоит из одного блока : увеличение счетчика RT1 на единицу , после чего осуществляется возврат в основную программу.
3. Программа индикации ( DISPLAY). Рассматривается в разделе 3.1.5.
4. Программа опроса порта P0 и вычисления F1. Задание на вычисление функции F1 аналогично заданию к лабораторной работе N4 лабораторного курса "ТП специализированных ЦВМ". Поэтому для получения более подробной информации рекомендуется обратиться к методическим указаниям к этому лабораторному курсу.
5. Программ опроса порта и вычисление F2 . Рассматривается в разделе 3.6.
6. Программа вычисления признака F0. Значению признакаF0 присваивается значение 0 , 1 , 2 или 3 в зависимости от вычисленных значений функций F1 и F2 ( см. табл. 1 ) .
3.1.3. Разработка функциональной схемы устройства отображения
Общая функциональная схема устройства отображения с четырьмя МСИ изображена на рис. 6. В ее состав помимо МСИ включены порты P1 и P2 контроллера ВЕ51 , буферные схемы для согласования нагрузочной способности порта P1 и линейки МСИ , а также для ограничения по току , протекающему через светодиод МСИ , дешифратор ДШ для выборки соответствующей колонки устройства отображения ,
буферные схемы Бi с открытым коллектором для согласования нагрузочной способности дешифратора по току.
В основу работы устройства отображения положены общие принципы получения немерцающего изображения, известные из телевидения. В проектируемом устройстве каждая колонка линейки МСИ регенерируется с частотой 20 Гц , что является достаточным для выдачи необходимых сообщений без заметных глазу мерцаний. Поясним работу устройства отображения примером . Пусть необходимо выдать сообщение в виде символа "A", коды которого приведены на рис.4. Перед каждой выдачей очередного кода символа на линейку МСИ производиться гашение всех колонок путем выдачи на вход CS выборки кристалла ДШ уровня, запрещающего дешифрацию кода, поступающего на информационные входы ДШ. Подобный сигнал телевидении называется сигналом бланкирования (гашения) развертки . Отметим, что этот сигнал выдается седьмым разрядом порта P2-P2.7.
После выдачи сигнала бланкирования произведем выдачу через порт P1 первого байта символа "A" - 7E, а через P2 (вернее через его младшие семь разрядов) - адрес 0 колонки, в которой необходимо засветить этот байт, после чего снимем сигнал бланкирования. При этом ДШ произведет дешифрацию адреса колонки и левая колонка светодиодов МИС1 начнет отображать заданный код. После небольшой паузы (10 мкс) процесс повторяется с выдачей очередных кодов символов - 11, 11, 11, 7F, а в случае выдачи целого сообщения - до конца сообщения.
3.1.4. Кодирование сообщений.
Для упрощения алгоритма управления устройством отображения желательно (хотя и не обязательно ) выполнить кодировку сообщений в соответствии с рис.7. Каждый символ сообщения кодируется шестью байтами - пятью информационными и одним байтом пробела для задания межсимвольного расстояния. Поскольку выдача сообщений производится в режиме бегущей строки, то после последнего символа сообщение следует поместить коды пробела (6 байт).
Излагаемый ниже алгоритм управления отображением предполагает также кодировку так называемого "хвоста", представляющего собой повтор кодировки первых символов сообщения.
Такая организация данных для каждого сообщения позволяет упростить переадресации при выдаче сообщений на линейку МСИ. Длина "хвоста" определяется количеством МСИ и равна количеству колонок в линейке МСИ.
3.1.5. Разработка подпрограммы отображения
Блок-схема программы отображения DISPLAY изображена на рис.8. Считается, что вызов программы будет производиться каждые 50 мс (20 раз в сек). Смещение кода по линейке МСИ должно происходить через каждые 500 мс.
Результат каждого вычисления функций F1 и F2 хранится в признаке пользователя F0.
Примем следующие обозначения:
CHR0 - количество символов фамилии,
CHR1 - количество символов имени,
CHR2 - количество символов отчества,
CHR3 - количество символов группы,
TABL0 - начальный адрес таблицы кодов фамилии,
TABL1 - начальный адрес таблицы кодов имени,
TABL2 - начальный адрес таблицы кодов отчества,
TABL3 - начальный адрес таблицы кодов группы,
TABL - начальный адрес текущей таблицы в DPTR,
ZDR - вычитающий счетчик ожидания очередного смещения кодов по линейке МСИ для имитации движения СООБЩЕНИЯ. Изменяется от 10 (500мс/50мс) до нуля,
F0 - признак, указывающий какое сообщение необходимо выдавать на индикацию,
FOLD - старый признак сообщения,
DISP - текущее смещение в таблице, служит для смещения сообщения в линейке МСИ,
MDL - текущее максимальное смещение кодов по линейке МСИ,
MDL0 - максимальное смещение кодов по линейке МСИ для нулевого сообщения,
MDL1 - максимальное смещение кодов по линейке МСИ для первого сообщения,
MDL2 - максимальное смещение кодов по линейке МСИ для второго сообщения,
MDL3 - максимальное смещение кодов по линейке МСИ для третьего сообщения.
Определим длины таблиц для каждого из сообщений:
Length0 = 6*(CHR0 + 1) + 5*S - 1,
Length1 = 6*(CHR1 + 1) + 5*S - 1,
Length2 = 6*(CHR2 + 1) + 5*S - 1,
Length3 = 6*(CHR3 + 1) + 5*S - 1,
Тогда общая длина таблицы сообщений определяется по формуле:
Length = 6*(CHR0 + CHR1 + CHR2 + CHR3 + 4) + 20*S - 4,
Величины максимальных смещений кодов по линейке МСИ для каждого сообщения определяются по формулам:
MDL0 = 6*CHR0 + 5,
MDL1 = 6*CHR1 + 5,
MDL2 = 6*CHR2 + 5,
MDL3 = 6*CHR3 + 5,
Поясним алгоритм работы программы DISPLAY.
Работа подпрограммы начинается проверкой текущего и предыдущего признака выдаваемого сообщения F0 и FOLD. Если эти признаки равны (блок 1), то производится индикация с помощью подпрограммы SHOW 5*S байт массива, начальный адрес которых определяется суммой содержимого DPTR и DISP (блок 2). Из счетчика ZDR вычитается единица и осуществляется проверка его на нуль (блоки 3-4). Если ZDR не равен нулю, то производится выход из подпрограммы. В противном случае обнуление счетчика ZDR означает, что истекло 500 мс и необходимо произвести смещение кодов по линейке МСИ для реализации режима бегущей строки. При организации данных, приведенной на рис.7., для указанного смещения достаточно увеличить на единицу текущее смещение DISP (блок 6), предварительно восстановив начальное значение счетчика ZDR (блок 5). Проверкой текущего значения DISP с величиной MDL (блок 7) осуществляется проверка достижения смещения кодов по линейке МСИ до максимального, и, если это условие выполняется, производится обнуление (блок 8) DISP, что при последующих вызовах подпрограммы DISPLAY приведет к выборке очередных байт на индикацию с начала массива текущего сообщения.
Если признаки F0 и FOLD не равны между собой, то это означает, что при вычислении функции F1 и F2 произошло изменение признака F0 и на индикацию будет выдаваться другое сообщение. В блоке 9 производится обновление признака FOLD, а в блоках 10-18 формирование в DPTR и MLD начального адреса и максимального смещения по линейке МСИ для текущего сообщения соответственно.
Блоки 19-20 производят формирование начального смещения DISP и значения счетчика ZDR, после чего выполняются блоки 2-8 описанным выше способом. Отметим также, что при первом вызове подпрограммы DISPLAY для правильного функционирования необходимо предварительно обеспечить неравенство признаков F0 и FOLD для начальной инициализации регистра DPTR, текущего смещения DISP, максимального смещения MDL и счетчика ZDR.
Подпрограмма SHOW производит индикацию 5*S байт массива с начальным адресом DPTR+DISP на линейке МСИ. Блок схема подпрограммы SHOW приведена на рис.9. Примем следующие обозначения:
SELC - код выборки колонки в линейке МСИ. Изменяется от 0 до МС=5*S-1.
CN - счетчик задержки на свечение колонки. Изменяется от 5 до 0, обеспечивая задержку 5 мкс.
Работа подпрограммы поясняется комментариями.
3.1.6. Содержание отчета по части №1
Задание на расчетно-графическую работу.
Структура микроконтроллерной системы управления.
Функциональная схема подсистемы вывода информации.
Блок-схемы программ подсистемы вывода информации и описание алгоритма функционирования.
Кодировка сообщений
Массивы кодов сообщений
Текст программ подсистемы вывода информации.
Разработка принципиальной схемы подсистемы вывода информации (расчет схем сопряжения).
Принципиальная схема подсистемы вывода информации (А3).
3.2. ЧАСТЬ № 2. Подсистема вывода аналоговой информации для микроконтроллерной системы управления
3.2.1.Выбор метода аналого-цифрового преобразования
Предлагаемая подсистема аналогового опроса производит аналого-цифровое преобразование методом двойного интегрирования. Существует несколько аргументов в пользу указанного метода по равнению с другими:
Во-первых, простота реализации в аппаратуре и дешевизна входящих в нее электронных компонентов;
Во-вторых, время аналого-цифрового преобразования указанным методом для проектируемого устройства не является критичным, поскольку преобразование n-аналоговых сигналов 8-разрядным кодом производится в наихудшем случае до 15 мс, а это время не превышает 50 мс цикл регенерации линейки МСИ;
В-третьих, применение этого метода позволяет избежать введения дополнительной аппаратуры для управления аналоговым коммутатором. Действительно, для управления коммутатором потребуется в общем случае j=log2(n) цифровых сигналов для выбора одного из n аналоговых сигналов на вход АЦП. Если предположить, что порт P3 будет осуществлять прием цифрового кода аналогового сигнала, то практически все разряды портов контроллера будут задействованы и потребуется введение дополнительного коммутатора, который производил бы переключение отдельных разрядов, например порта P0, для управления аналоговым коммутатором. Применение метода двойного интегрирования снимает указанную проблему.
3.2.2. Разработка функциональной схемы подсистемы аналогового опроса
Функциональная схема подсистемы аналогового опроса приведена на рис.10. Предполагаем, что диапазон изменения аналоговых сигналов Yi составляет -10...0В. Предполагаем также, что Eоп= +10В.
Подсистема аналогового опроса работает следующим образом. Первоначально на вход интегратора подается положительное напряжение Eоп. При этом на выходе интегратора установится отрицательный уровень, что повлечет за собой установление логического нуля на выходе компаратора.
Аналого-цифровое преобразование по методу двойного интегрирования состоит из двух этапов. На первом этапе производится интегрирование входного аналогового сигнала Yi строго определенное время Т1, которое обычно равно времени счета счетчика от 0 до переполнения (в нашем случае 8-разр.счетчик, следовательно считает до 256, т.е. 256 мкс). Отсчет временного интервала Т1начинается с момента времени t0смены знака интеграла напряжения Yi. Конец этапа интегрирования входного сигнала происходит в момент времени t1. В это время на вход интегратора подается опорное напряжение Eоп и одновременно запускается таймер, отсчитывающий цифровой эквивалент аналогового сигнала. Процесс отсчета заканчивается в момент времени t2, который определяется моментом смены знака интегрируемого напряжения. Таким образом, в течение времени T2таймер производит отсчет цифрового эквивалента преобразуемого сигнала.
Общее время преобразования определяется по формуле:
TАЦП=T1+T2. (1)
Максимальное преобразование равно 2*256 мкс. Время Т1должно быть таким, чтобы при максимальном входном напряжении Yi (в нашем случае -10В), т.е. при Yi=-Eоп,
интегратор не вошел в насыщение (что в общем случае зависит еще и от правильного выбора величины RC). Выбор RC следует произвести самостоятельно, для чего необходимо вывести соответствующие формулы.
Приведенная на рис.10. функциональная схема АЦП обладает одним существенным недостатком. При определении общего времени преобразования по формуле (1) предполагалось, что время от момента подачи на вход интегратора входного напряжения Yi и до момента t0бесконечно мало и им можно было пренебречь. Такое предположение будет справедливо только в случае, если величина напряжения начальных условий на выходе интегратора Uнусоставляет некоторую небольшую (порядка -0.1 ... -0.5 В ) величину. Если Uну>0, то представленная схема будет неправильно осуществлять аналого-цифровое преобразование. При Uну<0 общее время преобразования будет составлять величину TАЦП=T0+T1+T2, где T0- время интегрирования входного аналогового сигнала до момента времени t0. При этом величина T0будет соизмерима с T1и T2и ею пренебрегать уже нельзя. Особенно T0будет большой при малых значениях входного сигнала. В таком случае T0будет соизмеримо с TАЦП.
Для устранения указанного недостатка приведенную функциональную схему необходимо доработать. Указанная доработка заключается в установке перед началом аналого-цифрового преобразования на выходе интегратора напряжений начальных условий Uну, которое должно составлять величину порядка -0.1 ... -0.5 В.
Эту доработку необходимо выполнить самостоятельно. Следует учесть, что начальную установку интегратора необходимо производить в блоке инициализации основной программы и после каждого аналого-цифрового преобразования.
Временная диаграмма работы АЦП приведена на рис.11.
3.2.3 Разработка алгоритма управления аналого-цифровым преобразователем.
Блок-схема аналого-цифрового преобразователя приведена на рис.12. В представленной блок-схеме для представления напряжения начальных условий используется интегрирование опорного напряжения до достижения на выходе интегратора отрицательного напряжения.
В блоке 1 инициализации производится настройка таймера-счетчика 1 (TC1) на режим 8-битного таймера, а также подготовка начального адреса массива Z-30h пространстве DSEG. В блоках 2-3 осуществляется установка на выходе интегратора начального напряжения Uну. Для этого производится выдача через порт P3 кода, который коммутирует опорное напряжение Eоп на вход интегратора, после чего начинается процесс интегрирования. По достижению на выходе интегратора нулевого напряжения срабатывает компаратор, который устанавливает свое выходное напряжение на уровне логического нуля. При интегрировании контроллер производит опрос разряда порта P3.0, на который подан выход компаратора. При установлении опрашиваемого разряда в нуль начинается основной цикл аналого-цифрового преобразования.
В блоке 5 осуществляется обнуление TC1 и триггера переполнения этого счетчика TF1, в блоке G производится подключение входного напряжения Yi на вход интегратора и начало интегрирования. Контроллер в блоке 7 осуществляет ожидание момента времени t0, после чего запускает TC1 ( блок 8) и ожидает t1 - момента переполнения TC1, т.е. установления TF1 в единицу ( блок 9). После этого производится коммутация на вход интегратора опорного напряжения Eоп ( блок 10 ) и ожидание момента t2 ( блок 11 ).
По достижению t2 осуществляется останов TC1 и запись цифрового кода аналогового сигнала в 1-й элемент массива Z, после чего процесс преобразования повторяется для следующего входного сигнала.
После опроса всех аналоговых сигналов необходимо выполнить обработку массива Z путем вычисления функции F2.
3.2.4. Содержание отчета по части №2
Структура подсистемы ввода аналоговых сигналов
Выбор типа и разработка функциональной схемы АЦП
Блок-схема программ подсистемы ввода аналоговых сигналов и описание алгоритмов их функционирования (включая блок-схему для функции F2)
Текст программ подсистемы ввода аналоговых сигналов
Разработка принципиальной схемы подсистемы ввода аналоговых сигналов
Принципиальная схема подсистемы ввода аналоговых сигналов (А3)
3.3. ЧАСТЬ № 3. Подсистема ввода дискретной информации для специализированной микроконтроллерной системы управления
3.4. ЧАСТЬ № 4.Подсистема управления для специализированной микроконтроллерной системы управления