ТОП 10:

Средства и системы разработки микроконтроллеров.



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

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

- редактор исходных текстов;

- компилятор/ассемблер;

- программный симулятор;

- аппаратный эмулятор;

- программатор.

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

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

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

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

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

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

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

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

Программатор. Последний инструмент разработчика - это программатор памяти программ микроконтроллера. Хотя некоторые производители микроконтроллеров предпочитают выпускать их с масочнопрограммируемой памятью программ, они обычно выпускают также аналогичные версии микроконтроллеров с E(E)PROM памятью для разработки приложений. Это значит, что существует возможность непосредственного программирования микроконтролле­ра при разработке приложения.

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

Системы ввода/вывода (СВВ). Способы подключения СВВ к процессору, их достоинства и недостатки.

Функции систем ввода/вывода(СВВ). Их структура.

1. Обеспечение преобразования форматов квантов данных, поступающих от ПУ в форматы ЦП или оперативной памяти. И обратное преобразование при выводе информации.

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

3. Формирование управляющих сигналов, регламентирующих работу ПУ при различных режимах его работы.

4. Получение управляющей информации от процессора и преобразование ее в сигнал, управляющих работой ПУ.

Два режима работы системы ввода/вывода:

1. центрально-синхронный режим работы СВВ(рис.2).

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

В таких устройствах 1 команда ввода/вывода обеспечивает обмен одного кванта данных.

Для передачи массива данных необходимо организовать систему переходов. Для таких систем время обработки данных = сумме операций ввода/вывода + сумма времени, затрачиваемого на операции вычисления.

Достоинства: Медленнодействующий, но дешевый.

Наиболее быстродействующим является асинхронный принцип ввода/вывод

 

30. Организация адресного пространства системы ввода/вывода. Совмещенное и выделенное адресное пространство, достоинства и недостатки.
Адресное пространство системы ввода/вывода

Как и обращение к памяти, операции ввода/вывода также предполагают наличие некоторой системы адресации, позволяющей выбрать один из модулей СВВ, a также одно из подключенных к нему внешних устройств. Адрес модуля и ВУ является составной частью соответствующей команды, в то время как расположение дан­ных на внешнем устройстве определяется пересылаемой на ВУ информацией.

Адресное пространство ввода/вывода может быть совмещено с адресным про­странством памяти или быть выделенным. При совмещении адресного пространства для адресации модулей ввода/выво­да отводится определенная область адресов (рис. 8.2). Обычно все операции с моду­лем ввода/вывода осуществляются с использованием входящих в него внутренних регистров: управления, состояния, данных. Фактически процедура ввода/вывода сводится к записи информации в одни регистры МВВ и считыванию ее из других регистров. Это позволяет рассматривать регистры МВВ как ячейки основной па­мяти и работать с ними с помощью обычных команд обращения к памяти, при этом в системе команд ВМ вообще могут отсутствовать специальные команды ввода и вывода. Так, модификацию регистров МВВ можно производить непосредствен­но с помощью арифметических и логических команд. Адреса регистрам МВВ на­значаются в области адресного пространства памяти, отведенной под систему вво­да/вывода.

Рис. 8.2.Распределение совмещенного адресного пространства

Такой подход представляется вполне оправданным, если учесть, что ввод/вы­вод обычно составляет малую часть всех операций, выполняемых вычислитель­ной машиной, чаще всего не более 1% от общего числа команд в программе.

Реализация концепции совмещенного адресного пространства в ВМ с кэш-па­мятью и виртуальной адресацией сопряжена с определенными проблемами. В част­ности, усложняется отображение виртуального адреса устройства ввода/вывода на физическое ВУ. Сложности также возникают и с кэшированием регистров МВВ.

Сформулируем преимущества и недостатки совмещенного адресного простран­ства.

Достоинства совмещенного адресного пространства:

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

Недостатки совмещенного адресного пространства:

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

Совмещенное адресное пространство используется в вычислительных маши­нах MIPS и SPARC.

В случае выделенного адресного пространства для обращения к модулям вво­да/вывода применяются специальные команды и отдельная система адресов. Это позволяет разделить шины для работы с памятью и шины ввода/вывода, что дает возможность совмещать во времени обмен с памятью и ввод/вывод. Кроме тог:., адресное пространство памяти может быть использовано по прямому назначению в полном объеме. В вычислительных машинах фирмы IBM и микроЭВМ на базе процессоров фирмы Intel система ввода/вывода, как правило, организуется в со­ответствии с концепцией выделенного адресного пространства.

Достоинства выделенного адресного пространства:

  • адрес внешнего устройства в команде ввода/вывода может быть коротким. В большинстве СВВ количество внешних устройств намного меньше количе­ства ячеек памяти. Короткий адрес ВУ подразумевает такие же короткие ко­манды ввода/вывода и простые дешифраторы;
  • программы становятся более наглядными, так как операции ввода/вывода вы­полняются с помощью специальных команд;
  • разработка СВВ может проводиться отдельно от разработки памяти, Недостатки выделенного адресного пространства: ввод/вывод производится только через аккумулятор центрального процессо­ра. Для передачи информации от ВУ в РОН, если аккумулятор занят, требуется выполнение четырех команд (сохранение содержимого аккумулятора, be из ВУ, пересылка из аккумулятора в РОН, восстановление содержимого аккумулятора);
  • перед обработкой содержимого ВУ это содержимое нужно переслать в ЦП.

 

31. Категории и структура внешних устройств.
Внешние устройства

Связь ВМ с внешним миром осуществляется с помощью самых разнообразных, внешних устройств. Каждое ВУ подключается к МВВ посредством индивидуальной шины. Интерфейс, по которому организуется такое взаимодействие МВВ и ВУ, часто называют малым. Индивидуальная шина обеспечивает обмен данными и управляющими сигналами, а также информацией о состоянии участников обмена. Внешнее устройство, подключенное к МВБ, обычно называют периферийным ус­тройством (ПУ). Все множество ПУ можно свести к трем категориям [200]:

  • для общения с пользователем;
  • для общения с ВМ;
  • для связи с удаленными устройствами.

Примерами первой группы служат видеотерминалы и принтеры. Ко второй группе причисляются внешние запоминающие устройства (магнитные и оптичес­кие диски, магнитные ленты и т. п.), датчики и исполнительные механизмы. От­метим двойственную роль внешних ЗУ, которые, с одной стороны, представляют собой часть памяти ВМ, а с другой — являются внешними устройствами. Нако­нец, устройства третьей категории позволяют ВМ обмениваться информацией с удаленными объектами, которые могут относиться к двум первым группам. В роли удаленных объектов могут выступать также другие ВМ.

 

Рис. 8.3.Структура внешнего устройства

 

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

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

32. Модули ввода-вывода. Функции модуля ввода-вывода.

Модули ввода/вывода

Функции модуля

Модуль ввода/вывода в составе вычислительной машины отвечает за управление одним или несколькими ВУ и за обмен данными между этими устройствами с од­ной стороны, и основной памятью или регистрами ЦП — с другой. Основные функ­ции МВВ можно сформулировать следующим образом:

  • локализация данных;
  • управление и синхронизация;
  • обмен информацией;
  • буферизация данных;
  • обнаружение ошибок.

Локализация данных

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

Управление и синхронизация

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

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

Обмен информацией

Основной функцией МВВ является обеспечение обмена информацией. Со сторо­ны «большого» интерфейса — это обмен с ЦП, а со стороны «малого» интерфей­са — обмен с ВУ. В таком плане требования к МВВ непосредственно проистекают из типовой последовательности операций, выполняемых процессором при вводе/выводе.

1. Выбор требуемого внешнего устройства.

2. Определение состояния МВБ и ВУ.

3. Выдача указания модулю ввода/вывода на подключение нужного ВУ к про­цессору.

4. Получение от МВБ подтверждения о подключении затребованного ВУ к про­цессору.

5. Распознавание сигнала готовности устройства к передаче очередной порции информации.

6. Прием (передача) порции информации.

7. Циклическое повторение двух предшествующих пунктов до завершения пере­дачи информации в полном объеме.

8. Логическое отсоединение ВУ от процессора.

С учетом описанной процедуры функция обмена информацией с ЦП включает в себя:

дешифровку команды: МВБ получает команды из ЦП в виде сигналов на шине управления;

пересылку данных между МВБ и ЦП по шине данных;

извещение о состоянии: из-за того, что БУ — медленные устройства, важно знать состояние модуля ввода/вывода. Так, в момент получения запроса на пересыл­ку данных в центральный процессор МВВ может быть не готов выполнить эту пересылку, поскольку еще не завершил предыдущую команду. Этот факт дол­жен быть сообщен процессору с помощью соответствующего сигнала. Возмож­ны также сигналы, уведомляющие о возникших ошибках;

распознавание адреса; МВВ обязан распознавать адрес каждого ВУ, которым он управляет.

Наряду с обеспечением обмена с процессором МВВ должен выполнять функ­цию обмена информацией с ВУ. Такой обмен также включает в себя передачу дан­ных, команд и информации о состоянии.

Буферизация

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

Обнаружение ошибок

Еще одной из важнейших функций МВБ является обнаружение ошибок, возника­ющих в процессе ввода/вывода. Центральный процессор следует оповещать о каж­дом случае обнаружения ошибки. Причинами возникновения последних бывают самые разнообразные факторы, которые в первом приближении можно свести к следующим группам:

Источником ошибок может стать и несовершенство системного программного обеспечения (ПО):

  • непредвиденные последовательности команд или кодовые комбинации;
  • некорректное распределение памяти;
  • недостаточный размер буфера ввода/вывода;
  • недостаточно продуманные и оттестированные комбинации системных модулей.

Среди ошибок, порождаемых пользовательским ПО, наиболее частыми явля­ются:

  • нарушение последовательности выполнения программы;
  • некорректные процедуры.

Вероятность возникновения ошибки внутри процессора для современных ЦП оценивается величиной порядка 10-18, в то время как для остальных составляющих ВМ она лежит в диапазоне 10-8 – 10-12.

33. Структура модуля ввода-вывода, описание регистров (привести схему).

34. Методы управления вводом-выводом: программно управляемый ввод/вывод.
Программно управляемый ввод/вывод

Наиболее простым методом управления вводом/выводом является программно управляемый ввод/вывод, часто называемый также вводом /выводом с опросом. Здесь ввод/вывод происходит под полным контролем центрального процессора и реа­лизуется специальной процедурой ввода/вывода. В этой процедуре ЦП с помощью команды ввода/вывода сообщает модулю ввода/вывода, а через него и внешнему устройству о предстоящей операции. Адрес модуля и ВУ, к которому производит­ся обращение, указывается в адресной части команды ввода или вывода. Модуль исполняет затребованное действие, после чего устанавливает в единицу соответ­ствующий бит в своем регистре состояния. Ничего другого, чтобы уведомить ЦП, модуль не предпринимает. Следовательно, для определения момента за­вершения операции или пересылки очередного элемента блока данных про­цессор должен периодически опрашивать и анализировать содержимое регис­тра состояния МВБ.

Иллюстрация процедуры программно управляемого ввода блока данных с уст­ройства ввода приведена на рис. 8.6. Данные читаются пословно. Для каждого читаемого слова ЦП должен оставаться в цикле проверки, пока не определит, что слово находится в регистре данных МВБ, то есть доступно для считывания.

Процедура начинается с выдачи процессором команды ввода, в которой указан адрес конкретного МВБ и конкретного ВУ. Существуют четыре типа команд В/ВЫВ, которые может получить МВБ: управление, проверка, чтение и за­пись.

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

Команда проверки применяется для проверки различных ситуаций, возникаю­щих в МВБ и ВУ в процессе ввода/вывода. С помощью таких команд ЦП спосо­бен выяснить, включено ли ВУ, готово ли оно к работе, завершена ли последняя операция ввода/вывода и не возникли ли в ходе ее выполнения какие-либо ошибки. Действие команды сводится к установке или сбросу соответствующих разрядов регистра состояния МВБ.

Команда чтения побуждает модуль получить элемент данных из ВУ и занести его в регистр данных (РД). ЦП может получить этот элемент данных, запросив МВБ поместить его на шину данных.

Команда записи заставляет модуль принять элемент данных (байт или слово) с шины данных и переслать его в РД с последующей передачей в ВУ.

Рис. 8.6.Программно управляемый ввод данных

 

Если к МВБ подключено несколько ВУ, то в процедуре ввода/вывода нужно производить циклический опрос всех устройств, с которыми в данный момент up-. -изводятся операции В/ВЫВ.

Из блок-схемы (см. рис. 8.6) явно виден основной недостаток программно управляемого В/ВЫВ — неэффективное использование процессора из-за ожидания готовности очередной порции информации, в течение которого никаких иных по­лезных действий ЦП не выполняет. Кроме того, пересылка даже одного слова тре­бует выполнения нескольких команд. ЦП должен тратить время на анализ битов состояния МВБ, запись в МВБ битов управления, чтение или запись данных со скоростью, определяемой внешним устройством. Все это также отрицательно ска­зывается на эффективности ввода/вывода.

Главным аргументом в пользу программно управляемого ввода/вывода является простота МВБ, поскольку основные функции по управлению В/ВЫВ берет на себя процессор. При одновременной работе с несколькими ВУ приоритет уст­ройств легко изменить программными средствами (последовательностью опроса). Наконец, подключение к СВВ новых внешних устройств или отключение ранее подключенных также реализуется без особых сложностей.

35. Методы управления вводом-выводом: ввод/вывод по прерываниям.
Ввод/вывод по прерываниям

Как уже отмечалось, основным недостатком программно управляемого В/ВЫВ являются простои процессора в ожидании, пока модуль ввода/вывода выполнит очередную операцию. Альтернативой может быть вариант, когда ЦП выдает команду В/ВЫВ, а затем продолжает делать другую полезную работу. Когда ВУ готово к обмену данными, оно через МВВ извещает об этом процессор с помощью запроса на прерывание. ЦП осуществляет передачу очередного элемента данных, после чего возобновляет выполнение прерванной программы.

Обсудим процесс ввода блока данных е использованием В/ВЫВ по прерываниям (рис. 8.7). Оставим без внимания такие подробности, как сохранение и восстановления контекста, действия, выполняемые при завершении пересылки блока данных, а также в случае возникновения ошибок.

Процедура ввода блока данных по прерываниям реализуется следующим образом. ЦП выдает команду чтения, а затем продолжает выполнение других заданий, например другой программы. Получив команду, МВВ приступает к вводу элемента данных с ВУ. Когда считанное слово оказывается в регистре данных модуля, VIBB формирует на управляющей линии сигнал прерывания ЦП. Выставив зап­рос, МВВ помещает введенную информацию на шину данных, после чего он готов к следующей операции В/ВЫВ. ЦП в конце каждого цикла команды проверяет наличие запросов прерывания. Когда от МВВ приходит такой сигнал, ЦП сохра­няет контекст текущей программы и обрабатывает прерывание. В рассматривае­мом случае ЦП читает слово из модуля, записывает его в память и выдает модулю команду на считывание очередного слова. Далее ЦП восстанавливает контекст прерванной программы и возобновляет ее выполнение.

Рис. 8.7.Ввод данных по прерыванию

 

Этот метод эффективнее программно управляемого В/ВЫВ, поскольку устра­няет ненужные ожидания, однако обработка прерывания занимает достаточно много времени ЦП. Кроме того, каждое слово, пересылаемое из памяти в модуль В/ВЫВ или в противоположном направлении, как и при программно управляе­мом В/ВЫВ, проходит через ЦП.







Последнее изменение этой страницы: 2016-04-19; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.204.194.190 (0.021 с.)