Аппаратный эмулятор микроконтроллера 89СХ051 
В рамках
программы BASCOM Колледж, я хотел бы предложить Моим Читателям строительство
одного из самых полезных для конструктора устройств: аппаратного эмулятора. Однако
прежде, чем перейти к более подробному описанию предлагаемого устройства, профессиональная этика предписывает мне сделать следующее заявление: Аппаратный эмулятор процессора 89CX051, предназначен для работы с компилятором
BASCOM, был разработан компанией MCS Electronics и GRIFO. Я не являюсь автором данного
устройства, и единственной моей заслугой является разработка платы и тестирование системы. Схема эмулятора был опубликована с разрешения и одобрения компании MCS Electronics.
Аппаратный эмулятор является устройством, который только
упрощает создание программ для
микропроцессоров. Во многих случаях он позволяет тестировать программы, но только при помощи компьютера и соответствующего программного обеспечения, без
необходимости программирования микроконтроллера. Говоря проще: компьютер,
подключенный к отлаживаемому устройству при помощи эмулятора „делает вид", что он
является вставленным в панельку микроконтроллером. Какие это дает преимущества
программисту? Огромные и, прежде всего, значительную экономию времени. В процессорах 89CX051 есть, EEPROM, , в которой хранится память программы, и в нее легко прошивать, но на это всегда уходит драгоценное время. Кроме того, программатор микроконтроллеров – это устройство достаточно дорогое, а его самостоятельное изготовление не простая
задача. Использование аппаратного
эмулятора позволяет затянуть необходимость программирования микроконтроллера до
последнего момента, когда написана программа будет уже многократно проверена и исправлена.
Аппаратный эмулятор, особенно в сочетании с описанной далее тестовой
платой, дает возможность приобщиться к микроконтроллерам не только
электронщиком, но и программистам, далеким от пайки.
Теперь скажем несколько слов о возможностях и ограничениях,
предлагаемого устройства. Оно может работать с двумя программами –
компиляторами: BASCOM LT и BASCOM8051.
Я проверил работу устройства с обоими программами и результаты были более чем
обнадеживающими! Однако при отсутствии одной из перечисленных программ эмулятор абсолютно бесполезен. Эмуляция только процессоров AT89C2051 и AT89C4051. Эмуляция других
процессоров не возможна. Однако, как мы и договорились, сначала по программе
нашего колледжа мы используем только эти процессоры, поэтому ограничение не
слишком обременительное. Нашим эмулятором можно проверить работу большой части
функций программ. Большинство, но не все! Ограничение тут – скорость работы
эмулятора, он работает значительно медленней настоящего процессора. Здесь в
выгодном положении, вы счастливые обладатели компьютеров современной
конфигурации, на базе процессор Pentium II или лучше. Их более быстрый
процессор компьютера, даст большее соответствие реальным условия работы
исследуемого устройства. Предлагаемое устройство очень простое и легко повторяемое.
Это полностью отвечает современным тенденциям, которые лежат в основе нашей
школы программирования процессоров: простая схема, а весь «ум» устройства
реализован в его программной части. Поэтому я призываю вас по максимуму
использовать эмулятор, при этом все усилия вкладывать в создание программ. Как он работает? 
На рисунке 1 приведен пример электрической цепи аппаратного эмулятора процессоров 89CX051. Тем не менее, дать ответ
на поставленный выше вопрос будет довольно сложно. Как вы уже знаете, я не
являюсь автором этой схемы, а также ... я не знаю, как она работает. Не
вдаваясь в принципы работы программы BASCOM, которые в свою очередь являются
секретом производителя, Мы можем лишь заключить, что передача информации между
эмулятором и компьютер находится в соответствии с протоколом данных в шине I2C.
Для передачи данных были использованы двусторонний преобразователи I2C -
8-битную шину данных. Эмулятор подключается ко всем цепям выводов микроконтроллера за
исключением входов кварцевого резонатора и входа сброса. При этом эти цепи оказываются не подключенные ни к чему, так как при работе с эмулятором не нужен кварц и не нужна цепи сброса процессора. Схема эмулятора всегда работает только совместно с
отлаживаемым устройством. Сборка и налаживание 
На рисунке 2 показа двухсторонняя печатная плата, выполненная
с металлизацией отверстий. Монтаж устройства производиться в обычном порядке,
начиная от микросхем и заканчивая установкой разъема CON2 и
кабелем с вилкой эмулятора. Эмулятор собранный из исправных элементов и без ошибок не
требует ни какой наладки и после подключения к параллельному порту компьютера,
на котором установлена программа Байском должен сразу заработать. Использование
эмулятора, будет дано позже, в цикле статей описывающих байском, а пока я дам
вам только основы. Эмулятор нужно подключить к тестовой плате вместо процессора.
С тестовой платы берется напряжение питания 5 Вольт. Подключите друг к другу (в
выключенном состоянии) три устройства: эмулятор, ПК и тестируемую плату
включите питание и запустите на вашем компьютере BASCOM. Загрузите программу,
работу, которой вы хотите проверить, скомпилируйте и запустите эмулятор. Дальнейшие шаги зависят от функций, выполняемых проверяемой программой. А как быть не терпеливым которые еще не собрали ни одного
устройства на 89CX051 или тестовую плату, но хотели бы проверить работу
эмулятора? Это можно сделать очень простым способом. 
К панельке DIL20 припаять провода «пауком» как показано
на рисунке 3 семи сегментный дисплей. Он должен быть с общим катодом! Подайте
питание 5 Вольт (20 нога +, нога 10 -) и подключите эмулятор. Затем в редакторе Байском и очень короткую программу: после
его компиляции запустите эмулятор (рисунок 4) и мы увидим поведение дисплея. На
нем будут отображаться цифры от 0 до 9 циклически. 
Dim R As Byte 'объявление переменной, на диалекте Байскома Dim A As Word 'объявление переменной, на диалекте Байскома Dim Cyfra(10) As Byte 'объявление переменной, на диалекте Байскома Cyfra (1) = 127 ' код цифры "0" Cyfra (2) = 6 ' код цифры "1" Cyfra (3) = 155 ' код цифры "2" Cyfra (4) = 143 ' код цифры "3" Cyfra (5) = 166 ' код цифры "4" Cyfra (6) = 173 ' код цифры "5" Cyfra (7) = 189 ' код цифры "6" Cyfra (8) = 7 ' код цифры "7" Cyfra (9) = 191 ' код цифры "8" Cyfra (10) = 175 ' код цифры "9" Do For R = 1 To 10 P3 = Cyfra (r) Print R For A = 1 To 1000 : Next A ‘цикл задержки зависит от быстродействия вашего компьютера Next R Loop |
|