Menu Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


Отладочный модуль для микроконтроллеров серии MCS51. Энциклопедия радиоэлектроники и электротехники

Бесплатная техническая библиотека

Энциклопедия радиоэлектроники и электротехники / Микроконтроллеры

Комментарии к статье Комментарии к статье

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

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

Принципиальная схема отладочного модуля для МК серии MCS51 изображена на рисунке. Большинство узлов выполнено по типовым схемам, а устройство сопряжения с последовательным портом персонального компьютера (ПК) заимствовано из прибора, описанного в статье С. Кулешова и Ю. Зауменного "Программатор микросхем ПЗУ" ("Радио", 1995, № 10, с. 22-25). К свободным выводам портов P1 и P3 микроконтроллера DD1 (на схеме они заканчиваются стрелками) можно подключать различные периферийные устройства. Вилку XP1 соединяют кабелем с розеткой одного из последовательных портов ПК, под управлением которого будет работать модуль.

Отладочный модуль для микроконтроллеров серии MCS51
(нажмите для увеличения)

После подачи напряжения питания конденсатор C3 заряжается через резистор R1. По сигналу сброса RES, формируемому элементом DD3.4, МК DD1 переходит в исходное состояние и выполняет подготовительные операции, в том числе устанавливает уровень логической 1 на всех выводах порта P3. Триггер на элементах DD3.1, DD3.2 находится в состоянии, когда его выходным сигналом установлено такое распределение памяти, что область адресов 0-7FFFH памяти программ занимает ПЗУ (DD5), а 8000H-0FFFFH - ОЗУ (DD6). Выполняется программа Монитор, находящаяся в ПЗУ. Набирая команды Монитора на клавиатуре ПК, оператор может работать с ОЗУ и периферией модуля.

Для перевода триггера в другое состояние необходимо подать с управляющего ПК описанную ниже команду Монитора RESET, которая устанавливает сигнал MOD=0. Адреса ОЗУ и ПЗУ памяти программ меняются местами и начинает работать программа, предварительно занесенная оператором в ОЗУ модуля. Это позволяет эмулировать работу реального устройства и проверять программы, оттранслированные в младшие адреса памяти, например, подготовленные для записи в ПЗУ. Кнопка SB1 служит для установки МК в исходное состояние без изменения распределения памяти. Вновь запустить Монитор можно только, нажав на кнопку SB2 или выключив и включив питание. Это позволяет в отлаживаемых программах свободно оперировать состоянием порта P3 (например, работая с периферией), не опасаясь случайно переключить распределение памяти.

Светодиод HL1 служит простейшим средством отображения информации и весьма полезен, особенно если связь с ПК по той или иной причине отсутствует. После подачи питания он мигает с частотой примерно 1 Гц, что свидетельствует о работоспособности Монитора. Стабилитрон защищает устройство от неправильной полярности или повышенного напряжения источника питания +5 В.

Программа Монитор (табл.1) обеспечивает управление модулем и его взаимодействие через последовательный порт RS-232C с ПК, из которого передаются команды и данные, необходимые для работы над конкретной задачей. Через этот же порт ПК получает и отображает на своем экране результаты работы модуля. В ПК должна быть запущена коммуникационная программа "Telemax" из широко распростран╦нной оболочки Norton Commander 5.0, "Hyper Terminal" из Windows 95 OSR2 или другая подобная. В крайнем случае можно обойтись и без специальной программы, просто посылая командой MS DOS файлы с подготовленными данными в последовательный порт ПК.

Отладочный модуль для микроконтроллеров серии MCS51
(нажмите для увеличения)

Настраивая коммуникационную программу, следует удалить строки инициализации модема, установить режимы "Локальное эхо" и "Трансляция CR/LF", при необходимости выбрать терминал ANSI и кодовую таблицу ASCII. Режим работы последовательного порта должен быть следующим: скорость - 4800 Бод, число бит на символ - 8, контроль паритета выключен, число стоп-битов - 1. Если все правильно, набираемый на клавиатуре ПК текст будет поступать в отладочный модуль, а его ответы - отображаться на экране.

Команды Монитора можно набирать как в верхнем, так и нижнем регистрах клавиатуры. Все символы должны быть в кодировке ASCII. Клавиша [BackSpace] удаляет из буфера отладочного модуля последний введ╦нный символ. Каждая команда состоит из имени и операнда. Признаком окончания имени служит символразделитель: пробел, табуляция, перевод строки или возврат каретки. Далее будем условно обозначать его символом подчеркивания (_), но вводить можно любой из названных.

Приняв разделитель, Монитор сравнивает первые четыре ранее принятых и находящихся в буфере символа с содержимым имеющейся в ПЗУ таблицы команд. Обнаружив совпадение, он запоминает адрес обработчика команды из той же таблицы и начинает при╦м операнда - одного или нескольких шестнадцатиричных чисел. Условимся, что одно- и двубайтные адреса внутренней и внешней памяти МК будут обозначены соответственно XX и XXXX, длина блока - YYYY, прочие данные - ZZ или ZZZZ. Например, XXXX,YYYY - блок внешней памяти данных, начинающийся с адреса XXXX, длиной YYYY байт. Все незначащие нули необходимо указывать. Операнд также должен закончиться разделителем, после приема которого запускается обработчик команды. Разделитель, введ╦нный в пустой буфер, игнорируется.

RESET_ ZZZZ_ - включается второй режим распределения памяти, МК приводится в исходное состояние, управление передается по адресу ZZZZ. Для нормальной работы команды требуется исправное ОЗУ.

DATA_ XXXX:_ ZZ_ [ZZ_][XXXX:_ZZ_ [ZZ_]._- вводится информация в последовательные ячейки внешней памяти данных, начиная с адреса XXXX . Квадратные скобки вводить не нужно, они лишь говорят о том, что число операндов ZZ_ может быть произвольным. Ввод данных заканчивается символом точки. В табл. 2 приведен пример использования команд DATA и RESET для ввода в ОЗУ простой программы и ее запуска.

READ_XX_ или READ_XXXX_ - читается слово (два последовательных байта) из ячеек памяти внутреннего или внешнего ОЗУ данных. Результат в виде шестнадцатиричного числа (байт по старшему адресу - первым) передается в последовательный порт.

WRITE_XX,ZZ_, WRITE_XX,ZZZZ_, WRITE_XXXX,ZZ_ или WRITE_XXXX,ZZZZ_ - записывается байт ZZ или слово ZZZZ по адресу XX или ХХХХ.

Следует иметь в виду, что команды READ и WRITE реализованы с использованием косвенной адресации, поэтому с регистрами специальных функций работать не могут. Для доступа к регистрам следует специально для каждого из них написать процедуры обмена с прямой адресацией. Примером может служить обработчик команды SPEED. Если в модуле установлен МК с 256-байтным внутренним ОЗУ, команды READ и WRITE смогут работать с его дополнительными 128 байтами по адресам 80H-0FFH.

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

SAVE_XXXX,YYYY_ - в последовательный порт передается содержимое блока внешней памяти данных.

CALL_ZZZZ_ - вызывается подпрограмма, начинающаяся с адреса ZZZZ. Для возврата в Монитор она должна закончиться командой RET. На время выполнения подпрограммы прерывания запрещены.

CHECK_XXXX,YYYY_ - вычисляется контрольная сумма - младший байт суммы всех байтов блока внешней памяти данных.

FILL_XXXX,YYYY,ZZ_ - заполняется байтом ZZ область внешней памяти данных и вычисляется ее контрольная сумма.

COPY_XXXX,YYYY,ZZZZ_ или COPY_PXXXX,YYYY,ZZZZ_ - копируется по адресу ZZZZ блок внешней памяти данных. Символ P указывает, что копируемая область находится в памяти программ. Одновременно вычисляется контрольная сумма.

TEST_XXXX,YYYY_ - проверяется исправность блока внешнего ОЗУ. При отсутствии ошибок выводится сообщение "OK", в противном случае - "XXXX: YY<>ZZ", где XXXX - адрес сбойной ячейки, YY - записанное в нее, а ZZ - считанное значение. Команда не разрушает содержимого оперативной памяти.

SPEED_ZZ_ или SPEED_ZZ+_ - изменяется скорость обмена данными через последовательный порт. По умолчанию она равна 4800 Бод (определяется байтом программы Монитора по адресу 2DH). Значение, равное операнду ZZ, помещается в регистр TH1 микроконтроллера и определяет скорость работы его при╦мопередатчика. Знак плюс в операнде приводит к удвоению скорости за счет установки бита PCON.7.

Последовательный порт ПК может работать со скоростями 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600 Бод и выше. Возможность достаточно точной настройки последовательного порта МК серии MSC51 на указанные скорости зависит от частоты примененного кварцевого резонатора. Например, если она равна 12 МГц, порт может быть настроен на 300, 600, 1200, 2400 и 4800 Бод командой SPEED с операндами соответственно 98, CC, E6, F3 и F3+. Применив резонатор на 11 МГц, можно было бы достичь скорости 9600 Бод. Однако при передаче файлов МК, вероятно, не будет успевать обрабатывать поступающие со слишком высокой скоростью данные.

Описанный набор команд может быть расширен и дополнен без повторной трансляции Монитора и даже без стирания ПЗУ. Обработчик новой команды размещают в его свободной области. Имя команды (четыре первых символа в верхнем регистре) записывают, начиная с адреса 5ABH, далее следуют двубайтный адрес обработчика и байт 0FFH. Обработчик должен заканчиваться переходом по адресу 23FH.

Все упоминаемые далее однобайтные адреса ячеек относятся к внутреннему ОЗУ МК. Монитор использует банки регистров 0 и 2, а также ячейки 20H-3FH. Стек растет с адреса 50H. В свободное от приема и обработки команд время микроконтроллер непрерывно выполняет подпрограмму, находящуюся в ПЗУ по адресу, указанному в ячейках 35H и 36H. По умолчанию он равен 063H. Эта подпрограмма, периодически изменяя состояние разряда P3.4, зажигает и гасит светодиод HL1. Частота мигания зависит от содержимого ячейки 3DH. Если предполагается использовать этот разряд для других целей, следует подать команду WRITE_35,006A_.

В ячейках 37H и 38H находится адрес обработчика прерывания от последовательного порта, который фактически служит костяком Монитора и определяет его реакции на команды оператора. По умолчанию здесь записан 0, что соответствует вызову стандартного обработчика, находящегося в ПЗУ по адресу 081H.

Записав по адресу 3BH код, отличный от 0, можно активизировать функцию "Эхо". Все принимаемые через последовательный порт данные Монитор будет отсылать обратно. Это позволит выключить "Локальное эхо" в коммуникационной программе, а при необходимости - сохранить в текстовом файле все посылаемые отладочному модулю команды и его ответы на них.

Число по адресу 3AH задает паузу между приемом команды Монитором и ответом на нее, необходимую для переключения некоторых коммуникационных программ с передачи на прием (для "Telemax" этого не требуется). Оно равно длительности паузы в секундах, умноженной на 50.

Один из результатов работы команд, оперирующих блоками памяти (LOAD, SAVE, CHECK, FILL, COPY), - контрольная сумма блока, помещаемая в ячейку 39H. Ее можно использовать для контроля правильности исполнения перечисленных команд.

Монитор может непосредственно принимать создаваемые многими ассемблерами файлы формата Intel HEX. Достаточно переслать такой файл в последовательный порт ПК с помощью коммуникационной программы или просто командой MSDOS COPY <имя файла> COM2. Предварительно используемый порт (в данном случае COM2) должен быть настроен командой MODE COM2:4800,N,8,1. Информация будет записана во внешнюю память данных отладочного модуля, а в случае несовпадения контрольных сумм выдано соответствующее сообщение.

Каждая строка файла формата Intel HEX начинается символом двоеточия, за которым без пробелов следуют представленные двузначными шестнадцатиричными числами байты:

  • число байтов данных, содержащихся в строке;
  • старший и младший байты адреса первого из байтов данных;
  • нулевой байт;
  • байты данных (их число задано первым байтом строки);
  • контрольная сумма
  • младший байт обычной суммы всех байтов строки, взятой со знаком минус.

HEX-файл всегда завершается строкой, содержащей после двоеточия нулевые значения числа байтов данных и адреса, за которыми следуют признак последней строки (01) и контрольная сумма, равная FF. В табл.3 приведен пример такого файла, содержащего те же данные, что и вводимые командой Монитора DATA согласно табл.2.

Автор: В.Оглезнев, г.Ижевск

Смотрите другие статьи раздела Микроконтроллеры.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Ранняя Вселенная не была ледяной 28.11.2025

Понимание того, как формировались первые структуры во Вселенной, требует взгляда в эпохи, в которых не существовало ни звезд, ни галактик, ни привычных нам источников света. Научные группы по всему миру пытаются восстановить картину тех времен при помощи слабейших радиосигналов, оставшихся от водорода, который наполнял космос вскоре после Большого взрыва. Новые результаты, полученные на радиотелескопе Murchison Widefield Array в Австралии, неожиданным образом меняют представление об этих ранних этапах. Сразу после Большого взрыва, произошедшего около 13,8 миллиарда лет назад, пространство стремительно расширялось и остывало. Через несколько сотен тысяч лет образовался нейтральный водород, и началась так называемая эпоха тьмы, когда Вселенная была лишена источников излучения. Лишь значительно позже гравитация собрала газ в плотные области, где зародились первые звезды и ранние черные дыры, а их интенсивное излучение привело к реионизации водорода и окончательному появлению света. ...>>

Устройство идеальной очистки воздуха 28.11.2025

Качество воздуха в закрытых помещениях давно стало важнейшим фактором здоровья, особенно в городах, где люди проводят подавляющую часть времени внутри зданий. В последние годы исследователи уделяют все больше внимания именно тем технологиям, которые способны задерживать или разрушать вредоносные частицы до того, как они попадут в дыхательные пути человека. Одним из таких новаторских направлений стала разработка инженеров Университета Британской Колумбии в Оканагане, которые предложили принципиально иной подход к очистке воздуха в присутствии людей. По словам профессора Школы инженерии доктора Санни Ли, традиционные персонализированные вентиляционные системы действительно могут улучшать качество воздуха вокруг пользователя, однако их принцип работы имеет ряд ограничений. Человек вынужден находиться в строго определенной зоне, а одновременное использование одной системы несколькими людьми снижает эффективность. Кроме того, непрерывный поток сухого очищенного воздуха способен вызывать ...>>

Ощущение текстуры через экран гаджета 27.11.2025

Гаджеты научились передавать изображение и звук с впечатляющей реалистичностью, но тактильные ощущения по-прежнему остаются недоступными для полноценной цифровой симуляции. Именно поэтому инженеры и исследователи во всем мире стремятся создать технологии, которые позволят "почувствовать" виртуальный объект так же естественно, как и настоящий. Новая разработка специалистов Северо-Западного университета США стала одним из самых заметных шагов в этом направлении. Возглавлявшая исследование аспирантка Сильвия Тан (Sylvia Tan) подчеркивает, что прикосновение остается последним фундаментальным чувственным каналом, для которого пока нет зрелого цифрового аналога. По ее словам, если визуальные и звуковые интерфейсы давно обеспечивают высокую степень реалистичности, то осязание лишь начинает приближаться к этому уровню. В недавней публикации в журнале Science Advances Тан отмечает, что новая технология способна изменить само представление о взаимодействии человека с устройствами. Разработ ...>>

Случайная новость из Архива

Искусственный интеллект услышит болезни людей 05.09.2024

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

Микрофон обычного телефона способен заменить дорогостоящее диагностическое оборудование, превращая повседневное устройство в мощный инструмент для раннего обнаружения заболеваний. Такая система уже показывает свою эффективность в борьбе с туберкулезом в Индии, где ежегодно от этой болезни умирает почти 250 000 человек. Хотя туберкулез поддается лечению, миллионы остаются недиагностированными, что способствует его распространению. Раннее выявление заболевания с помощью ИИ может существенно изменить эту ситуацию.

Google разработала свою модель ИИ на основе анализа 300 миллионов звуковых фрагментов, включающих кашель, чихание и дыхание. Эти данные были собраны из открытых источников, таких как видео на YouTube, а также из записей кашля пациентов в больнице в Замбии. Исследования показали, что звуки, издаваемые телом, содержат важную информацию о состоянии здоровья, что позволяет ИИ эффективно диагностировать различные заболевания.

Одним из практических применений этой технологии стало приложение Swaasa, разработанное индийской компанией Salcit Technologies. В это приложение была интегрирована модель Google для улучшения точности диагностики туберкулеза и оценки состояния легких. Пользователи могут записать 10-секундный образец кашля и получить результат с точностью до 94%. Такое решение особенно полезно в условиях, где доступ к традиционным медицинским услугам ограничен.

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

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

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

Другие интересные новости:

▪ Фотогальванический модуль с эффективностью преобразования 23,8%

▪ Метод полной очистки рек от мусора

▪ Кому хорошо в одиночестве

▪ Бутылка вина в протонном ускорителе

▪ 2004 год глазами Intel

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта Истории из жизни радиолюбителей. Подборка статей

▪ статья Овощерезка из стиральной машины. Чертеж, описание

▪ статья Насколько опасны астероиды? Подробный ответ

▪ статья Цинния изящная. Легенды, выращивание, способы применения

▪ статья Термостабилизатор с изолированным датчиком. Энциклопедия радиоэлектроники и электротехники

▪ статья Монета и шляпа. Секрет фокуса

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2025