Разделы
Публикации
Популярные
Новые
|
Главная » Классические однокристальные микроконтроллеры 1 ... 12 13 14 15 16 17 18 ... 20 процессор точек останова Процессор точек останова позволяет останавливать выполнение программы или выполнять иные действия, например, запускать или останавливать трассировщик при выполнении заданных пользователем условий. В отличие от механизма обычных точек останова, процессор точек останова позволяет на аппаратном уровне формировать и отслеживать условия практически любой степени сложности, и при этом эмулируемый процесс не выводится из масгптаба реального времени. Б некоторых моделях эмуляторов процессор точек останова может дополнительно использоваться для динамического управления трассировщиком. Профилировщик Профилировщик (иначе анализатор эффективности программного кода) позволяет получить по результатам прогона отлаживаемой программы следующую информацию: количество обращений к различным участкам программы; время, затраченное на выполнение различных участков программы. Анализ статистической информации, поставляемой профилировщиком, позволяет легко выявлять мертвые или перенапряженные участки программ и в результате оптимизировать структуру отлаживаемой программы. Интегрированная среда разработки Интегрированная среда разработки - это программная оболочка, объединяющая различные программные и программно-аппаратные комплексы, используемые в процессе разработки. В общем случае, различные модели внутрисхемных эмуляторов могут предоставлять пользователю разнообразные возможности по контролю и управлению функционированием отлаживаемых устройств с разного рода ограничениями. Например, это может быть некорректное обрабатывание прерываний в пошаговом режиме или запрет на использование последовательного порта и т. п. Также необходимо помнить, что каждая реальная модель эмулятора имеет свой перечень поддерживаемых микроконтроллеров и компиляторов. Однако необходимо иметь в виду, что для большинства широко используемых микроконтроллеров существуют и доступны, в том числе и для отечественных разработчиков, внутрисхемные эмуляторы, которые не имеют ограничений по использованию каких-либо ресурсов отлаживаемых микроконтроллеров. Основные возможности реального внутрисхемного эмулятора проиллюстрируем на примере модели PICE-51. Эмулятор PICE-51 PICE-51 - эмулятор, созданный с применением программируемых матриц большой емкости. Это позволило резко сократить размеры эмулятора без ущерба его функциональным возможностям, минимизировать отклонения электрических и частотных характеристик эмулятора от характеристик эмулируемого процессора и тем самым, добиться максимальной точности эмуляции на частотах до 33 Мгц при напряжениях питания от 3,3 до 5 В. Перезагружаемая аппаратная структура эмулятора обеспечивает эмуляцию практически всех микроконтроллеров семейства 8051 как отечественного производства, так и производства фирм Atmel, Dallas, Intel, ISSI, Philips, Siemens, SST, Temic, OKI, AMD, MHS и других. Программная поддержка PICE-51 работает в среде Windows и предоставляет пользователю обширный сервис как по разработке программ, так и по их отладке. Эмулятор состоит из основной платы размером 80x76 мм, сменного адаптера под конкретный процессор и сменной эмуляционной головки под конкретный тип корпуса. На основной плате реализованы трассировщик и процессор точек останова. Плата сменного адаптера содержит эмулирующий процессор под конкретный тип микроконтроллера. Эмуляционные головки обеспечивают установку эмулятора в колодки DIP и PLCC на плате пользователя. Питание эмулятора осуществляется от блока питания -1-5 В, 0,5 А или непосредственно от отлаживаемого устройства. Связь с компьютерол1 осуществляется по гальванически развязанному каналу RS-232C на скорости 115 кбод. Характеристики аппаратуры эмулятора Точная эмуляция - отсутствие каких-либо ограничений на использование программой пользователя ресурсов микроконтроллера. До 256К эмулируемой памяти программ и данных. Поддержка бан-кированной модели памяти. Распределение памяти между эмулятором и устройством пользователя с точностью до одного байта. До 512К аппаратных точек останова по доступу к памяти программ и данных. Аппаратная поддержка для отладки программ на языках высокого уровня. Трассировка восьми произвольных внешних сигналов. Четыре выхода синхронизгщии аппаратуры пользователя. * Трассировщик реального времени с буфером объемом от 16 до 64К фреймов по 64 бита с доступом на лету . Трассировка адреса, данных, сигналов управления, таймера реального времени и восьми внешних сигналов пользователя. Программируемый фильтр трассировки. Аппаратный процессор точек останова с возможностью задания сложного условия останова эмуляции по комбинацхги сигналов адреса, данных, управления, восьми внешних сигналов, таймера реального времени, счетчиков событий и таймера задержки. Четыре комплексных точки останова, которые могут быть использованы независимо или в комбинациях по условиям AND/OR/IF-THEN. * 48-разрядный таймер реального времени. * Прозрачная эмуляция - доступ на лету к эмулируемой памяти, точкам останова, процессору точек останова, буферу трассировки, таймеру реального времени. Управляемый генератор тактовой частоты для эмулируемого процессора. Возможность плавного изменения тактовой часто^ ты от 500 кГц до 40 МГц. Гальванически развязанный от компьютера канал связи RS-232C со скоростью обмена 115 кбод. Встроенная система самодиагностики аппаратуры эмулятора Характеристики программного обеспечения Программный интерфейс PICE-51 представляет собой интегрированную среду разработки, поддерживающую все этапы разработки программного обеспечения - от написания исходного текста программы до ее компиляции и отладки. Среда ориентирована на отладку программ на языке высокого уровня по исходному тексту. Встроенный многооконный редактор предназначен для написания исходных текстов программ. Встроенный редактор поддерживает операции с блоками текста, поиск/замену, цветовое выделение синтаксических конструкций языка Си и ассемблера. Встроенный менеджер проектов поддерживает автоматическую компиляцию программ, написанных для компилятора Си и ассемблера фирм IAR Systems, Keil Software, Raisonance и ассемблера МСА-51 фирмы Фитон . Все опции компиляторов задаются в форме диалогов. Переход от редактирования исходного текста к отладке и обрат-!io происходит прозрачно , т. е. менеджер проектов автоматически запускает компиляцию изменившихся исходных текстов, активизй рует отладчик, осуществляет загрузку программ. Программное обеспечение работает в среде Windows 95/98/NT/2000. Поддерживается разработка программ на уровне ведения проектов для макроассемблера МСА-51 фирмы Фитон , который входит в комплект поставки, а также для пакетов кросс-средств производства фирм Keil Software, IAR Systems, Raisonance. Поддерживается полнофункциональная символьная отладка программ, созданных с помощью компиляторов: ассемблер ASM51 фирмы Intel; компилятор PL/M фирмы Intel; ассемблер и компилятор Си фирмы Avocet Systems; ассемблер и компилятор Си фирмы Hi-Tech; ассемблер и компилятор Си фирмы Crossware; ассемблер и компилятор Си фирмы Tasking Software. Автоматическое сохранение и загрузка файлов конфигурации аппаратуры, интерфейса и опций отладки. Обеспечивается совместимость файлов конфигурации с симулятором PDS-51. Обеспечена переносимость проектов между эмулятором PICE-51 и симулятором PDS-51; Возможность настройки цветов, шрифтов и других параметров для всех окон одновременно и для каждого окна в отдельности; Для обновления версий PICE-51 достаточно обновить его программное обеспечение. Симуляторы Симулятор - программное средство, способное имитировать работу микроконтроллера и его памяти. Как правило, симулятор содержит в своем составе: отладчик, функции которого аналогичны функциям отладчика в эмуляторе; модель ЦПУ и памяти. Более продвинутые симуляторы содержат в своем составе модели встроенных периферийных устройств, таких как таймеры, порты, АЦП и системы прерываний. Симулятор должен уметь загружать файлы программ во всех Популярных форматах, максимально полно отображать информацию о состоянии ресурсов симулируемого микроконтроллера, а также предоставлять возможности по симуляции выполнения загруженной Программы в различных режимах. В процессе отладки модель выполняет программу, и на экране компьютера отображается текущее состояние модели. Загрузив программу в симулятор, пользователь имеет возможность запускать ее в пошаговом или непрерывном режимах, зада- : Q -A . in in CL Q < < S О Q О CL О i LU Q. О a. о с q к с a о с § a CO 2 CM ra о ffl CO X о i g Ш 1= О < a: in О о < X CJ и CO CO й - -1 О 5§S 5 cm CO О >< О о га .г- V- Р-СО со со о о о о схо о о с; со со со in Q < < ll i m < (О 0) Ю о о : -2 in 5 О g : СИ S in < с о 0 ю со !р Ш Ln 1Л со со со .. со 3- о § о с/3 <,со со о X U. со i; X со со . со in Jo in ООО X о cji со со со 2 о in in CL Q < < in Q о [1- О О О о о о о ?n. < gaxb условные или безусловные точки останова, контролировать и свободно модифицировать содержимое ячеек памяти и регистров симулируемого микропроцессора. С помощью симулятора можно быстро проверить логику выполнения программы, правильность вьшолнения арифметических операций. В зависимости от класса используемого отладчика, различные сймуляторы могут поддерживать высокоуровневую символьную отладку программ. Некоторые модели симуляторов могут содержать ряд дополнительных программных средств, например имитатор внешней среды. Наличие имитатора внешней среды позволяет пользователю создавать и гибко использовать модель внешней среды микроконтроллера, функционирующую и воздействующую на отлаживаемую программу по заданному алгоритму. В реальной системе МК обычно занимается считыванием информации с подключенных к МК внешних устройств (датчиков), обработкой этой информации и выдачей управляющих воздействий на исполнительные устройства. Чтобы в простом симуляторе смоделировать работу датчика, нужно вручную изменять текущее состояние модели периферийного устройства, к которому в реальной системе подключен датчик. Если, например, при приеме байта через последовательный порт взводится некоторый флажок, а сам байт попадает в определенный регистр, то оба эти действия нужно производить в симуляторе вручную. В некоторых моделях эта проблема решена: сймуляторы имеют встроенные средства для создания моделей подключенных к МК внешних устройств, включая средства графического отображения информации. Основные возможности реального программного отладчика-симулятора проиллюстрируем на примере симулятора PDS-51. Симулятор PDS-51 PDS-51 - это интегрированный комплекс профессиональных средств для разработки систем на базе микроконтроллеров семейства 805], включающий интегрированную среду разработки, макроассемблер, отладчик-симулятор, интерфейс внешней среды (имитатор внешней среды), примеры программ и проектов, мощную систему контекстной помощи, электронные гипертекстные руководства по Всем компонентам пакета. PDS-51 работает в среде Windows. С помощью PDS-51 можно эффективно разрабатывать и отлаживать программы, используя не только входящий в комплект макроассемблер МСА-51, но и популярные пакеты кросс-средств фирм Keil Software и IAR Systems, для которых также предоставляется воз- можность разработки программ на уровне ведения проектов. Помимо указанных пакетов. PDSol обеспечивает полнофункдионалы-iyto символьную отладку программ, созданных с помощью пакетов кросс-средств фирм Franklin Software, Avocet Systems, Hi-Tech Software, Tasking Soltware. Пользователю предостав.11яется обширный сервис по выполнению отлаживаемой программы в различных режимах, .манипуляции различными типами точек останова, просмотру и модификации состояния ресурсов микроконтроллера. Поддерживается отладка программ по исходному тексту, а также просмотр и изменение значений сложных обьектов языка высокого уровня - массивов, структур, указателей. Интегрированная среда разработки Среда разработки программ PDS-51 интегрирует в себе средства, используемые при разработке программ для .микроконтроллеров MCS-51. Обеспечивается интерактивная поддержка всех этапов разработки от написания исходного текста до зашивки готовой программы в ПЗУ микроконтроллера, а именно: написание исходных текстов программ с помощью встроенного многооконного редактора; настройка опций кросс-средств, используемых для компиляции программы (ассемблера, компилятора Си, линкера, библиотекаря). Настройка производится с помощью диалогов, снабженных контекстной справочной информацией; компиляция и линковка программы. Если компилятор обнаруживает ошибки в исходном тексте программы, то строка с ошибкой в окне редактора подсвечивается и ошибки можно сразу же исправить; отладка программы; зашивка программы в ПЗУ микроконтроллера. Интегрированность среды PDS-51 проявляется в том, что перечисленные этапы разработки связываются в одно це;юе. Самые трудоемкие этапы, а именно компиляция/линковка с диагностикой и исправлением ошибок максимально упрощены. PDS-51 самостоятельно следит за изменениями, которые вы вносите в исходные тексты своих программ. Например, исправив ошибку в исходном тексте, вы можете нажатием одной кнопки выполнить программу до курсора заставить PDS-5i перетранслировать изменившиеся модули, загрузить полученную программу в память отладчика и запустить ее до указанной строки. Переход от отладки к редактированию происходит так же прозрачно и быстро. Отладочные возможности PDS-51 Симулятор PDS-51 представляет собой программно-логическую модель микроконтроллера, имитирующую (симулирующую) работу всех его узлов - памяти, АЛУ, системы команд, регистров, периферийных устройств и 1. д. Основные возможности PDS-51: отслеживание выполнения программы по ее исходному тексту; просмотр и изменение значений любых переменных; встроенный анализатор эффективности программного кода; точки останова по сложному условию; точки останова по доступу к ячейкам памяти; просмотр стека вызовов подпрограмм и функций; встроенньп! строчный ассемблер; возможность выполнения программы назад на большое количество шагов, а также в непрерывном режиме. При этом состояние модели микроконтроллера полностью восстанавливается; точный подсчет интервалов времени и многое другое. В симуляторе PDS-51 реализована возможность моделировать устройства, подключенные к микроконтроллеру снаружи (так называемое моделирование внешней среды), например, внешнюю логику, датчики, клавиатуру, исполнительные устройства (дисплеи), задавать периодические и непериодические во.здействия и т. п. С помощью Си-подобного языка пользователь может создать модель внешней среды, а затем вести отладку программы своего контроллера с учетом его взаимодействия с внешней средой. Очевидной особенностью программных симуляторов являегся то обстоятельство, что исполнение программ, загруженных в симулятор, происходит в масштабе времени, отличном от реального. Однако низкая цена и возможность ведения отладки даже в условиях отсутствия макета отлаживаемого устройства делают программные симуляторы весьма эффективным средством отладки. Отдельно необходимо подчеркнуть, что существует целый класс ошибок, которые могут быть обнаружены только при помощи симулятора. Отладочные мониторы Отладочный монитор - специальная программа, загружаемая в память отлаживаемой системы. Она вынуждает процессор пользователя выполнять кроме прикладной задачи еще и отладочные функции: загрузку прикладных кодов пользователя в свободную от монитора память; установку точек останова; запуск и останов загруженной программы в реальном времени; проход программы пользователя по шагам; просмотр, редактирование содержимого памяти и управляющих регистров. Программа монитора обязательно должна работать в связке с внешним компьютером или пассивным терминалом, на которых и происходит визуализация и управление процессом отладки. Повторим, что отладочные мониторы используют тот процессор, который уже стоит на плате пользователя. Достоинством этого подхода являются очень малые затраты при сохранении возможности вести отладку в реальном времени. Главным недостатком является отвлечение ресурсов микроконтроллера на отладочные и связные процедуры. Например, монитор занимает некоторый объем памяти, прерывания, последовательный кана.л. Объем отвлекаемых ресурсов зависит от искусства разработчика монитора. Платы развития Платы развития или как принято их называть в зарубежной литературе оценочные платы (Evaluation Boards) являются своеобразными конструкторами для макетирования прикладных систем. В последнее время при вьшуске новой модели кристалла микроконтроллера фирма-производитель обязательно выпускает и соответствующую плату развития. Обычно это печатная плата с установленным на ней микроконтроллером, плюс вся необходимая ему стандартная обвязка. На этой плате также устанавливают схемы связи с внешним компьютером. Как правило, там же имеется свободное поле для монтажа прикладных схем пользователя. Иногда имеется уже готовая разводка для установки дополнительных устройств, рекомендуемых фирмой, например, ПЗУ, ОЗУ, ЖКИ-дисплея, клавиатуры, АЦП и др. Кроме учебных или макетных целей, такие доработанные гюльзова-телем платы стало выгодно (с точки зрения экономии времени) использовать в качестве одноплатных контроллеров, встраиваемых в малосерийную продукцию (тиражом 5...20 шт.). Для большего удобства платы развития комплектуются еще и простейшим средством отладки на базе монитора отладки. Однако здесь проявились два разных подхода: один используется для микроконтроллеров, имеющих внешнюю шину, а второй - для микрокопт-роллеров, не имеющих ее. В первом случае отладочный монитор поставляется фирмой в виде микросхемы ПЗУ, которая воавляется в специальную розетку на плате развития. Плата также имеет ОЗУ для программ пользователя и канал связи с внешним компьютером или терминалом. Примером здесь может служить плата развития фирмы Intel для микроконтроллера 8051. Во втором случае плата развития имеет встроенные схемы программирования внутреннего ПЗУ микроконтроллера, которые управляются от внешнего компьютера. В этом случае программа монитора просто заносится в ПЗУ микроконтроллера совместно с прикладными кодами пользователя. Прикладная программа при этом специально должна быть подготовлена: в нужные ее места вставляют вызовы отладочных подпрограмм монитора. Затем осуществляется пробный прогон. Чтобы внести в программу исправления, пользователю надо стереть ПЗУ и произвести повторную запись. Готовую прикладную программу получают из отлаженной путем удаления всех вызовов мониторных функций и самого монитора отладки. Примерами могут служить платы развития фирмы Microchip для своих Р1С-контроллеров. Такой же принцип и у плат для отладки микроконтроллеров 80С750 Philips или 89С2051 Atmel. Важно отметить, что в дополнение к монитору платы развития иногда комплектуются еще и программами отладки, которые запускаются на внешнем компьютере в связке с монитором. Эти программы в последнее время заметно усложнились и зачастую имеют высокопрофессиональный набор отладочных функций, например, отладчик-симулятор или различные элементы, присущие в чистом виде интегрированным средам разработки. В состав поставляемых комплектов могут входить и программы прикладного характера, наиболее часто встречающиеся на практике. Таким образом, выбирая инструментальные средства отладки, целесообразно принимать в расчет следующий комплекс показателей: перечень поддерживаемых микроконтроллеров; ограничения на ресурсы эмулируемых/симулируемых микроконтроллеров; возможность символьной отладки; перечень поддерживаемых компиляторов; сервисные возможности. Завершая разговор о инструментальных средствах отладки, сформулируем основные родовые признаки внутрисхемного эмулятора и программного отладчика-симулятора, которые, возможно, помогут начинающему разработчику более полно понять сильные и слабые стороны этих средств. Эмулятор Область применения Эмулятор применяется как для отладки программного обеспечения, так и аппаратуры. Основные свойства и возможности 1. Возможность использования в реальном объекте: реальные частоты, напряжения. 2. Исполнение программы в реальном времени. 3. Максимальное соответствие поведения эмулятора и микропроцессора. 4. Трассировка большого количества параметров, включая внешние сигналы. 5. Останов по большому количеству разнообразных условий, включающих, в том числе, и состояние внешней среды. 6. Богатые возможности для поиска ошибок, связанных с нарушением логики взаимодействия программы и внешней аппаратуры. Это особенно хорошо проявляется в случае, когда даже предварительно отлаженная на симуляторе программа ведет себя не так, как ожидается. Пример из практики: ошибка в аппаратуре - бит готовности в матрице выставлялся случайным образом, что приводило к считыванию неверных данных. Для нахождения ошибки был использован трассировщик и процессор точек останова. По временному интервалу возникновения готовности, которая фиксировалась в трассировщике, бьша вычислена ошибка формирования готовности в матрице. 7. Эмулятор возможно использовать в качестве тестера при настройке аппаратуры. Язык скриптов позволяет автоматизировать процесс тестирования и сбора диагностики. 8. Эмулятор можно использовать для изучения поведения внешней среды, например, сбора статистических данных, измерения временных характеристик, которые впоследствии могут быть использованы при разработке программного обеспечения. 9. Эмулятор надо физически присоединить к контроллеру, что не всегда удобно. Симулятор Область применения Эмулятор применяется исключительно для отладки программного обеспечения. Он максимально удобен для отладки программ, не за вязанных на взаимодействие с устройствами ввода/вывода, т. е. имею*! щих, в основном, вычислительный характер, математических функций. Основные свойства и возможности точное моделирование ядра; доступ ко всем внутренним ресурсам модели процессора, что далеко не всегда возможно в эмуляторе; возможность моделирования внешней среды; полный контроль над временем; > останов по условию; возможность выцолнения программы в обратном порядке; * самый главный недостаток - если аппаратура, окружающая микроконтроллер в устройстве пользователя, имеет свои сложные алгоритмы работы, то создание модели такой среды может стать весьма трудоемкой задачей, сопоставимой с трудоемкостью собственной программы. Тем более, что такая модель также может содержать ошибки и не быть адекватной реальной системе. Сочетая возможности эмулятора/симулятора и языка сценариев, можно создавать автоматизированные комплексы для сбора данных, проверки программ, проверки устройств. Особенности использования эмулятора и симулятора рТогическое управление Применение Симулятор Можно точно совмещать во времени внешние события (моделируются) и ключевые точки в программе. Очень полезно для отладки внештатных ситуаций. Необходимо для проверки работоспособности программы при [ наплыве внешних событий. Подобная проверка с помощью эмулятора требует наличия сложного и дорогого тестового стенда. [Динамическое управление Эмулятор Полный контроль над временем и [доступ ко всем ресурсам модели процессора и модели внешней среды. При работе с эмулятором мы не можем остановить программу выполняющую задачу динамического управления для контроля и/или изменения параметров. Просто изменять параметры модели внешней среды, что полезно для проверки системы во всем диапазоне параметров объекта и особо для внештатных ситуаций. Например, при создании программы управления двигателем внутреннего сгорания можно варьировать степень' износа, температуру, качество смеси. Создание адекватной модели управляемого объекта трудоемко и не всегда возможно. [Программа отлаживается во взаимодействии с реальным объектом и его внешней средой. Для отладки при помощи симулятора требуется создание модели внешней среды, что по трудоемкости сопоставимо с {написанием самой программы, или ручная пошаговая имитация [входных воздействий. HoriHoe соответствие работы эмулятора и микропроцессора. [Симулятор может иметь погрешности и ошибки модели микропроцессора. Здесь работает сам микропроцессор. Работа с реальным объектом. Возможно использовать эмулятор как средство для снятия динамических характеристик объекта. Невозможно пройти профамму по шагам.
В качестве иллюстрации использования внутрисхемного эмулятора и программного отладчика-симулятора, приведем два примера отладки реального устройства. В первом примере производилась отладка макета с помогцью внутрисхемного эмулятора PICE-51. Во втором примере отладка производилась с помощью программного отладчика-симулятора PDS-51. Периферия отлаживаемого устройства моделировалась с помощью интерфейса внешней среды, входящей в состав PDS-51. Желающие воспользоваться отладчиком-симулятором PDS-51 для учебных или иных целей, могут посетить сайт http: www.phyton.ru и свободно скачать симулятор PDS-51. При этом надо иметь ввиду, что свободно распространяемый PDS-51, в отличие от коммерческой версии PDS-51, имеет ограничения по объему отлаживаемой программы. Пример 1. Сопряжение графического жидкокристаллического индикатора с микроконтроллером Ниже приводится ознакомительное описание возможностей, системы команд и линий интерфейса внутренних контроллеров графического индикатора. Затем обсуждается вопрос подключения индикатора к .микроконтроллеру семейства MCS-51. Далее дан текст драйвера ЖК-индикатора, который может быть легко адаптирован пользователем под свои нужды. Помимо знакосинтезирующих индикаторов с фиксированным распределением знакомест отображаемых символов, все большее применение находят графические жидкокристаллические индикаторы. Речь идет не об LCD-дисплеях компьютеров, а о более простых дешевых индикаторах с разрешением от 60*16 до 122*32 точек, построенных на универсальных контроллерах SED1520/1521. 298 f акие жидкокристаллические индикаторы применяются в устройствах промышленной электроники, быту и в медицинских приборах. Индикаторы с указанным разрешением на основе SED1520/1521 выпускаются многими фирмами и имеют незначительные отличия в дизайне печатных плат. Конструктивные размеры и эксплуатационные характеристики индикаторов, выпускаемых разными фирмами, как правило, не изменяются, что позволяет говорить об их полной взаимозаменяемости. Ниже рассматриваются варианты сопряжения индикатора PG12232А фирмы Powertip с микроконтроллером семейства MCS-51 и некоторые вопросы, связанные с отладкой программы поддержки указанного ЖКИ. Контроллер ЖК-матриц SED1520/1521 Контроллеры SED1520 и SED152] специально разработаны для управления матрицами графических ЖКИ и самостоятельно вырабатывают все необходимые напряжения для управления пикселями (точками, разрядами, сегментами) матрицы, используя для этого только напряжение питания. SED1521 является расширителем контроллера SED1520 и позволяет увеличить количество используемых сегментов в матрице ЖКИ. В индикаторах, имеющих разрядность больше, чем 122*32 пикселей, можно увидеть несколько контроллеров SED1521, включенных последовательно (каскадно). Контроллер SED1520 способен поддерживать в режиме мультиплексирования только 976 сегментов (61*16). Совместное использование SED1520 и SED1521 позволяет увеличить количество используемых сегментов до 3904 (122*32). Каждый контроллер, как правило, поддерживает часть сегментов матрицы индикатора. Интерфейс у контроллеров одинаковый. Доступ к конкретному контроллеру, а следовательно, и к соответствующей части ЖК-матрицы, определяется только сигналами CS (Chip Select, активный уровень низкий), которые индивидуальны для каждого контроллера. С помощью команд, приведенных в табл. 1, внешний процессор способен управлять индикатором на основе контроллеров SED1520/1521. Таблица отражает не весь набор команд контроллеров SED, а лишь наиболее часто употребляемые команды. Помимо перечисленных (сигналы Chip Select упоминались ранее), у контроллеров SED1520/1521 есть еще один вход - вход тактовой частоты CL. Типичное (паспортное) значение тактовой частоты составляет 2 кГц. Однако никаких, сбоев в работе индикатора не происходит при изменении тактовой частоты от 1,5 до 3 кГц (хотя визуально было замечено незначительное изменение контрастности, легко устраняемое регулятором контрастности). Именно такой диапазон частот тактирования использовался авторами при работе с индикатором. Вполне возможно, что он может быть даже еще более широким. Низкое значение частоты тактирования объясняется очень просто. Чем ниже частота, тем меньше энергопотребление схемы, да и используется данная тактовая частота исключительно для регенерации сегментов индикатора и никакого отношения к управляющим сигналам (АО, WR, RD) не имеет. Согласно документации на контроллеры SED, длительность сигналов WR и RD не может быть менее 1 мкс. Минимальное время, в течении которого RD и WR должны быть активны, составляет 200 не. Индикатор PG12232A фирмы Powertip Мы не беремся рассматривать оптические, климатические, прочностные и эргономические параметры индикаторов и способы их подсветки. Основная задаш сводится к схемотехническому подключению индикатора к микроконтроллеру семейства A4CS-51. Индикатор PG12232A представляет собой ЖК матрицу из 3904 точек (122*32). В нем используется контроллер SED1520 и дополнительный контроллер SED1521. Каждый контроллер поддерживает 61 столбец в каждой странице матрицы индикатора. В табл. 2 показано соответствие номеров контактов разъема индикатора с функциональным назначениемсигналов управления контроллеров SED. Габаритные размеры печатной платы индикатора составляют 84x36 мм. Размеры ЖКИ-экрана - 66x27,5 мм. Рабочая область, где формируется собственно изображение, лежит в прямоугольнике 53,6x15,6 мм. С учетом предыдущего раздела большая часть перечисленных в табл. 2 сигналов не нуждается в описании. Напомним, что CS1 и CS2 - это сигналы выбора соответственно основного контроллера (SED1520) и расширителя (SED1521). Назначение линий питания индикатора: Vss - Vdd ~ Vee - потенциал с наименьшим значением (общий провод, называемый земля ); потенциал с наибольшим значением, питание +5 Б; потенциал управления контрастностью дисплея (некоторое значение, получаемое с движка подстро-ечного резистора номиналом 10 кОм включенного о о ш т s ffl о. о ш да в ш Ц § о о л я о о с >s (Л 2 о CD u >s ro ro Q >s Ш X -o Ш с о ; £ ш о сс S о о. о о о ш =г о о. с 15 л да о о о б ? 1 о О С m - о >s о. о II I >s - ?5 § (Г ro 1С о D к a: о 55 i J3 s о Ш lo Q. 0) Ц § CL H X о lij s: < T Ш Ш с CL § I CL 5 0 <- CL >S 1 § 5 ro 0) =l g i Ш о != ro i & Й CL 0) 0) ro CT m о о с w о ro Ш X 0) Ш о 2 CL 5 ro J ш S q: 5 >< о CL t- ; Q 5 j Ш Ц i g Ш .0 S- 3 ro 5 ro 3 ro 1С Q. ro n H ro о о t о -a 5 CL ro 0) Q. I- С о ш ю =r о U1 Ь X о о 10 CU о Q 5 W W о g S .S S OSS CL Я' ¥ о 5 й- CL £0 о н го \о у- Л о са о ю ш о S О I- го 1!а|з I I го й-о ц о о о < СП § А, к - между Vss и Vdd для индикаторов со стандартны температурным диапазоном); контакты управления подсветкой индикатора. Таблица 2 Контакты разъема индикатора
Организация ЖК-матрицы и видеопамяти ЖК-матрица, используемая в индикаторе PG12232A, по способу подключения к контроллерам разделена на две равные части, левую и правую. За правую половину матрицы отвечает контроллер SED1520, за левую соответственно - SED1521. Любая ноло вина матрицы содержит 4 горизонтальные страницы (еще их называют полями ) по 8 строк в каждой. Длина такой строки - 61 пиксе.чь, высота - всего один пиксель. Нижние 8 строк - это нулевая страница, верхние 8 строк - страница номер три. Можно сказать и по-другому: каждая страница содержит столбцы пикселей, пронумерованные справа налево и имеющие номера от О до 60. Любой столбец состоит из 8 пикселей. Верхний в столбце пиксель обозначается D7, нижний - DO. Каждому пикселю столбца соответствует одна ячейка видеопамяти индикатора и, следовательно, один бит в байте данных. Нумерация бит в байте совпадает с номерами пикселей в столбце ЖК матрицы, т. е. за пиксель с наименьшим номером в столбце одной строки отвечает младший бит соответствующего байта в памяти SED контроллера. Причем соответствие ячеек памяти и пикселей взаимно однозначное. Другими словами, при записи информации в видеопамять индикатора следует помнить, что каждый записываемый байт должен попасть в отведенное для него место. Точное местоположение записываемого байта определяется внешним процессором, который должен указать, в какой столбец какой страницы следует записать передаваемый байт. Для этого у контроллеров SED есть специальные команды (см. табл. 1). Подключение индикатора к портам контроллера Подключение индикатора возможно к свободным линиям любого порта микроконтроллера семейства MCS-51. Как известно, линии порта РО микроконтроллеров семейства MCS-51 могут переключаться как в нуль , так и в полноценную единицу только при записи байта во внешнюю память данных по командам MOVX. Конструктивно любая линия этого порта содержит на выходе пару транзисторов, один из которых подключает выходную линию к низкому потенциалу (земли), другой к высокому потенциалу (+5 В). При этом схема построена так, что одновременно оба транзистора могут быть закрытыми (третье или серое состояние выхода), а открываются только по одному, чтобы предотвратить возникновение сквозного тока. Если же обращение к линиям порта РО производится с помощью других команд (как к порту, а не к шине), то его выходные линии работают в режиме отрытого стока , т. е. стоки выходных транзисторов не имеют подтягивающих к шине питания резисторов. Таким образом, при подключении шины данных 1И1дикатора к РО и обращении к этой шине через порт ввода/вывода микроконтроллера вам придется устанавливать на плату внешний [юдтягивающий резистор на каждую линию порта. Остальные порты Pi микроконтроллеров семейства MCS-51 имеют только один транзистор на выходе, который включен по схеме с общим эмиттером (вернее, с общим стоком). Если такой транзистор закрыт, то на его стоке потенциал практически равен напряжению питания. Резистор, соединяющий сток транзистора с шиной питания, носит название подтягивающего резистора. Такие резисторы (а на каждую линию порта необходим свой подтягивающий резистор), интегрируются в кремниевый кристалл микроконтроллера н имеют номинал порядка 30...50 кОм. В некоторых моделях микроконтроллеров семейства MCS-5i эти резисторы могут программно подключаться и отключаться. Подключение индикатора к порту РО вместо внешней памяти данных (или совместно с ней) вполне возможно, поскольку рекомендуемые длительности сигналов управления контроллерами SEDI520/1521 адекватны соответствующим сигналам чтения и записи типичного микроконтроллера семейства MCS-51. Но большинство разработчиков современной аппаратуры пользуются лишь внутренней памятью микроконтроллеров и используют порты РО и Р2 для собственных нужд, а не как шину адреса данных. Такой вариант подключения далее и будем рассматривать. Желательно, чтобы линии шины данных D0-D7 индикатора были правильно подключены к любому восьмибитному порту MCS-51, а не раскиданы по линиям разных портов, тогда данные легко записывать в выбранный порт микроконтроллера MCS-51 и передавать в SED1520/1521 побайтно. Под правильным подключением следует понимать взаимно однозначное соответствие между разрядами шины данных индикатора и нумерацией линий ввода/вывода выбранного порта внешнего микроконтроллера MCS-51. Младший разряд шины данных индикатора следует соединить с линией порта микроконтроллера имеющей минимальный номер и т. д. Линии управления индикатора АО, CS1, CS2, WR подключаются к любым свободным линиям портов микроконтроллера MCS-51. Необходимость в линии RD, как мы дальше убедимся, отпадает. Это станет очевидно после отладки системы при помощи внутрисхемного эмулятора. Линия RD неактивна, когда находится в высоком состоянии (см. табл. 1), поэтому соединим ее с питанием +5 В. На время работы с эмулятором линия RD подключена к порту Р1.3 микроконтроллера. Линия сброса индикатора и выбора интерфейса (RES) соответственно подключается к земле . Программа поддержки графического индикатора Для упрощения алгоритма обмена между микроконтроллером семейства MCS-51 и индикатором не будем проводить операцию чтения из контроллера индикатора с целью анализа состояния статус-* ного регистра или модификации данных в его видеопамяти, а будем только записывать в него инструкции и данные. Такой режим B03t можен и практикуется в случае жестких временных ограничений на время вьшолнения программы, формирующей изображение на экране дисплея, и при отсутствии дефицита памяти. При этом исполь- зуется всего три команды контроллеров SED (см. табл. 1): выбор адреса страницы; выбор адреса столбца; запись байта данных. Первоначально алгоритм работы с индикатором все же содержал подпрограмму анализа бита состояния BUSY контроллера SED. Так вот, состояние internal operation*, когда контроллер индикатора занят, не удалось зафиксировать ни разу, даже при работе управляющего микроконтроллера семейства MCS-51 на тактовой частоте 33 МГц. Об этом пойдет речь в следующем разделе. Следовательно, промежуток времени между любыми соседними обращениями MCS-51 к контроллерам индикатора достаточно большой, и все внутренние операции в SED1520/1521 успевают закончиться. Поэтому тратить драгоценное время на анализ состояния сигнала BUSY в нашем случае не стоит. Существует несколько способов формирования массива данных, соответствующего некоторому изображению на экране индикатора (для краткости будем называть такой массив данных одним словом образ ): запись образа изображения из памяти программ микроконтроллера MCS-51; запись образа изображения из памяти данных микроконтроллера MCS-51; чтение-модификация-запись данных в видеопамяти индикатора. Первый способ предполагает наличие в памяти программ готового образа, который переписывается в видеопамять индикатора. Это удобно для заставок, поскольку изображение статическое. Для оживления выводимой на экран индикатора картинки придется иметь несколько образов в памяти программ. Это могут быть образы, содержащие как полную информацию, так и информацию о части изображения, поскольку данные в видеопамяти можно менять по частям. Для работы с индикатором понадобится всего одна программа, копирующая образы из кодовой памяти в видеопамять. Способ номер два наиболее универсален. Но он предполагает наличие внешней памяти данных. В некоторой области памяти данных формируется образ, который затем копируется в видеопамять индикатора. Поскольку выбранная область памяти данных легко модифицируется микроконтроллером, то такой способ наиболее приемлем для анимирования выводимого изображения. Одна простая программа переписывает сформированный образ в видеопамять индикатора, а вот программ, имеющих доступ к области памяти данных, под названием образ может быть несколько. Третий способ хорош тем, что не отбирает ресурсы микроконтроллера, поскольку все операции по формированию изображения проводятся непосредственно в видеопамяти индикатора. Но это на первый взгляд. На самом деле программа, формирующая таким образом изображение, вряд ли получится короткой и простой. Для каждого вновь разрабатываемого приложения всегда можно подобрать комбинацию способов формирования изображения. Ниже приведен текст простой подпрограммы SED, которая переписывает образ из кодовой памяти в видеопамять индикатора. Подпрограмма легко модифицируется для работы с памятью данных. Для Этого достаточно заменить команду MOVC на MOVX. Написана программа На ассемблере фирмы Фитон . .ASEG IRAM,DATA ;Абсолютный сегмент .ORG YYYH ;Адрес во внутренней памяти данных. 1 ... 12 13 14 15 16 17 18 ... 20 |
© 2004-2024 AVTK.RU. Поддержка сайта: +7 495 7950139 в тональном режиме 271761
Копирование материалов разрешено при условии активной ссылки. |