Главная страница  Комбинированное использование портов 

1 2 [ 3 ] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

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

Язык высокого уровня целесообразно использовать для микроконтроллеров с большим объемом памяти, или в тех случаях, когда время, отведенное на разработку приложения, очень ограничено. Конечно, для этого необходимо знание соответствующего языка. Но лучше обратитесь к главам 3 и 4 настоящей книги, где описаны 35 команд PIC-микроконтроллеров и основы ассемблера. Вы убедитесь, что этих знаний вполне достаточно для написания программы.

СИаЕМА РАЗРАБОТКИ

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

Ассемблер и компилятор языка высокого уровня

Комплекс разработки всегда включает как минимум ассемблер и иногда один или несколько компиляторов языков высокого, которые используются для программирования.

Ассемблер переводит мнемокоды команд машинного языка в двоичные (бинарные) коды, исполняемые Р1С-микроконтроллером. Текст с последовательностью мнемокодов называется листингом, или исходным ?соЭол4программы, в то время как бинарный код назьшается объектным, или исполняемым.

Компилятор переводит операции, операторы и другие ко1гструтс-ции языка высокого уровня, образующие исходный текст программы, в исполняемый бинарный код Р1С-микроконтроллера.

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

Эти обе программы, ассемблер и/или компилятор, должны обязательно прогоняться на так называемом хост-компьютере. Ьтг.ко1

качестве может выступать практически любая машина: специализированная система производителя PIC-микроконтроллеров (все более и более редкий случай, так как это очень дорого), мощная ЭВМ (V.\X, рабочая станция Sun, Apollo или HP и т.п.) или просто, л это становится правилом, IBM совместимый ПК. Последний вариант позволяет уменьшить капиталовложения, поскольку наверняка уже имеется IBM совместимый компьютер, используемый для других целей.

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

Эмулятор и симулятор

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

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

Для подключения эмулятора к компьютеру обычно используется последовательный интерфейс RS232. Через него в эмулятор загружается программа микроконтроллера и осуществляется управление ее выполнением с помощью специальной компьютерной программы. Так как эмулятор - это разрозненная версия Р1С-микроконтролле-ра, вы имеете доступ к его различным внутренним узлам и шинам, частности, можете узнать, по каким адресам проходит програм-**а, Какие коды записаны в управляющие регистры и т.п. В случае



ПоследобательнаО интерфеОс


Приложение

Рис 2.1

Общий вид эмулятора

необходимости можно остановить исполняемую программу, чтобы считать состояние памяти или некоторых регистров.

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

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

Симулятор значительно дешевле, чем эмулятор, ведь это только программа, сложность которой пропорциональна сложности микроконтроллера. Стоит он в десятки раз меньше, чем эмулятор.

Регистры и порты ввода/вывода микроконтроллера представляются переменными, хранящимися в памяти компьютера. Так,

З-разрядный параллельный порт представлен байтом данных. Достаточно считать эти данные, чтобы в любой момент знать о ходе рыполнения программы и состоянии выходов. Ввод данных через цорт можно имитировать записью соответствующих данных в па-jiHTb. Процедура моделирования операций обмена через порты ввода /вывода растягивается во времени, но если она хорошо проведена, то позволяет проверить 80% функций программы микроконтроллера.

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

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

РАЗРАБОТКА ПРОГРААШНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ПРОМЫШЛЕННОГО ПРИМЕНЕНИЯ

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

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

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



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

Когда программное обеспечение написано, его необходимо протестировать. В зависимости от обстоятельств и специфики разрабатываемого устройства применяют симулятор или эмулятор. По .завершении тестирования можно выполнить натурное моделирование работы устройства. Для этого предназначены перепрограммируемые версии микроконтроллера {EEPROM - с электрическим стиранием или UVPROM - с ультрафиолетовым стиранием), идентичные версии OTP, которую вы сможете использовать позже, когда программное обеспечение будет доработано.

Именно перепрограммируемые версгп-i следует использовать для проведения последних тестов устройства на макете или опытном образце. Это позволит в случае необходимости внести нужные изме-нени51. Если все окажется правильным, переходите к программированию микросхем OTP.

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

Общий алгоритм разработки приложения приведен на рис. 2.2.

СРЕДСТВА РАЗРАБОТКИ ФИРМЫ MICROCHIP

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

Конечно, симулятор не имеет смысла полностью заменить эм) лятор. Однако он позволяет любо.му внимательному разработчик)

Выбор э;1ементноО базь

Разработка алгоритма программного обеспечения

Вибор язака программирования

HanuccHue программы

Испытание программы

TecmupoboHDe приложения

Изготобление OTP или масочных bepcuD микроконтооллероЬ

Тестирование опытных образцов

Возбрат 1< предыдушему этапу, если обнаружено ошибка

Потребность 6 током ЬозЬрате бозникает очень редко, сбидетельстбует о глохом тестиробании приложечия

Разрешение, на произЬодстЬо серии

рис. 2,2

Последовательность разработки приложения

достаточно точно протестировать свое приложение, особенно если окончательную доводку проводить с использованием микросхем версии UVPROM (с ультрафиолетовым стиранием).

Системы Picstait-16b и Picstart-16c

Фирма Microchip предлагает различные средства разработки, среди которых - вн)трисхемный эмулятор PICMASTER, способный поддерживать все микросхемы PIC 16СХХ. Программное обеспечение эмулятора работает под ОС Windows. Этот прод)кт можно пореко-**ендовать любому серьезному разработчику, который располагает Достаточными средствами для его приобретения.

Есть и более приемлемые по цене продукты, которые позволяют успешно разрабатывать приложения на основе PIC 1 бСХХ. Речь идет

системе разработки микроконтроллерных приложений, известной под названием PICSTART-16.



1 2 [ 3 ] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.