16-битные микроконтроллеры Microchip. Часть 3

№ 11’2006
PDF версия
Основной средой разработки для всех семейств (и 8-, и 16-битных) является MPLAB IDE, которую предоставляет компания Microchip. Среда разработки бесплатная, актуальная версия на сентябрь 2006 года — 7.42.

Все статьи цикла:

Программные и аппаратные средства разработки

Среды разработки

Основной средой разработки для всех семейств (и 8-, и 16-битных) является MPLAB IDE, которую предоставляет компания Microchip. Среда разработки бесплатная, актуальная версия на сентябрь 2006 года — 7.42 [4].

Среда разработки MPLAB имеет следующие встроенные средства и возможности:

  • Менеджер проекта и рабочей области.
  • Текстовый редактор с подсветкой кода для ассемблеров всех семейств и языка Си. Возможен парсинг кода и вывод списка элементов программы (функций, переменных, констант, структур и т. п.). Текстовый редактор поддерживает запись и выполнение макросов.
  • Ассемблер для всех семейств Microchip. Для 16-битных контроллеров — ассемблер ASM30. В состав среды входят заголовочные файлы и скрипты линкера для всех контроллеров.
  • Программный симулятор для всех семейств Microchip, который обеспечивает симуляцию большинства периферийных модулей, трассировку выполняемого кода, произвольное число точек останова, пошаговое выполнение. Симулятор имеет счетчик времени выполнения, логический анализатор (графическое представление изменений логических уровней на выводах контроллера). Симулятор позволяет имитировать работу внешних устройств: аналоговый сигнал на входе АЦП, терминал RS-232 и т. п. Возможно изменение любого служебного регистра или ячейки ОЗУ в соответствии с заданной в текстовом файле последовательностью. Начиная с версии 7.40 в состав симулятора входит модуль DMCI (Data Monitor and Control Interface). Этот модуль устанавливается как отдельный плагин, он позволяет отображать в реальном времени данные массива в виде графика и изменять значение по любому адресу в ОЗУ. Наличие окон Watch (значения переменных) и Local (то же самое, но для локальных и автоматических переменных функции) характерно как для симулятора, так и для интерфейса внутрисхемных отладчиков и эмуляторов.
  • Среда разработки поддерживает использование плагинов как от Microchip, так и от сторонних разработчиков. Например, плагин Visual Initializer от Microchip позволяет с помощью визуальных средств настроить все периферийные модули контроллера и получить на выходе код инициализации на языке Си или ассемблере.
  • Поддержка компиляторов языков высокого уровня сторонних производителей (Hi-Tech, IAR, CCS).
  • Поддержка всех программаторов Microchip: PICSTART+, Promate II, Promate III, программаторов начального уровня PICkit1 и PICkit 2.
  • Поддержка внутрисхемного отладчикапрограмматора MPLAB ICD2, совместимого с любыми контроллерами 16-битного семейства.
  • Поддержка внутрисхемных эмуляторов ICE 2000 и ICE 4000. Последний предназначен для эмуляции 16-битных семейств.
  • Поддержка внутрисхемного отладчикаэмулятора REAL ICE.
  • Мощная система документации на среду разработки, симулятор, ассемблеры.
  • Поддержка систем контроля версий: CVS, Subversion, Merant PCVS, MS SourceSafe.

В составе среды разработки MPLAB IDE поставляется ASM30 — ассемблер для 16-битных семейств. Так как все контроллеры dsPIC30/33 и PIC24F/H совместимы по системе команд (за исключением инструкций ядра ЦОС), возможно использование разработанного ранее кода при переходе на другое 16-битное семейство.

Кроме MPLAB IDE можно упомянуть среду разработки от известного производителя компиляторов для встраиваемых систем IAR IDE for dsPIC [5]. На сентябрь 2006 года актуальной является версия 1.20B, которая поставляется в комплекте с компилятором языка Си. Продукты IAR Systems достаточно популярны в России для контроллеров семейств x51, ARM, AVR, однако для профессиональной разработки приложений для dsPIC30/dsPIC33/PIC24F/PIC24H среда IAR малопригодна.

В сентябре 2006 года компания Hi-Tech Software, выпускающая один из лучших компиляторов языка Си для 8-битных микроконтроллеров Microchip, анонсировала выход новой версии среды разработки HI-TIDE 3.11. В ней добавлена поддержка 16-битных семейств на уровне создания проекта. К сожалению, HI-TIDE не поддерживает симуляцию для 16-битных контроллеров и аппаратные средства разработки Microchip, поэтому пока она не пригодна для профессионального использования.

Для пользователей операционной системы Linux можно рекомендовать среду разработки с открытым исходным кодом Piklab [6]. Из 16-битных семейств она пока поддерживает только dsPIC30, но проект активно развивается — в будущем можно ожидать добавления PIC24F/H и dsPIC33.

Компиляторы с языка Си

Для 16-битных семейств компания Microchip предлагает компилятор MPLAB C30 (актуальная версия на сентябрь 2006 года — 2.03), в состав которого входят: собственно компилятор исходных файлов в объектные; линкер; генератор библиотечных файлов. Компилятор C30 основан на известном компиляторе с открытым исходным кодом GCC, однако выполняемые файлы доступны только для ОС Windows. На сайте компании Microchip размещены исходные коды компилятора [7] для последней выпущенной версии, что позволяет самостоятельно произвести сборку под любую операционную систему.

Основные особенности компилятора C30:

  • совместимый с ANSI C, в комплекте поставляются стандартные библиотеки;
  • поддержка типов 32-bit double и 64-bit double, 64-битного целого (long long);
  • поддержка всех 16-битных семейств Microchip;
  • поддержка смешанного кода Си + asm;
  • поддержка расширенных настроек оптимизации кода;
  • наличие встроенных (intrinsincs) функций для работы с DSP-ядром.

Microchip предоставляет два варианта компилятора — платную версию и полнофункциональную «студенческую» версию. Студенческая версия работает без ограничений 60 дней, после этого возможна лишь компиляция без использования оптимизации.

Кроме MPLAB C30 можно отметить следующие компиляторы с языка Си (актуальность — сентябрь 2006 года):

  • HI-TECH dsPICC v. 9.60 — компилятор от известного австралийского производителя Hi-Tech Software [8]. Компилятор интегрируется в среду разработки MPLAB IDE, но может работать и в составе среды HI-TIDE 3.11 от Hi-Tech (см. ниже «Среды разработки»). Доступны версии компилятора как для OS Windows, так и для Linux.
  • IAR IDE for dsPIC 1.20B — этот продукт поставляется в составе интегрированной среды известного производителя средств разработки для встраиваемых систем IAR Systems [9]. Малопригоден для профессионального применения. Последняя версия компилятора доступна уже больше года, обновлений пока не предвидится. Компилятор поддерживает лишь небольшое число контроллеров семейства dsPIC30.
  • microC for dsPIC 2.0.0.0 — компилятор и среда разработки от компании mikroElektronika [10]. Малопригоден для профессионального применения, так как не имеет возможности запуска из командной строки и лишь частично удовлетворяет спецификации ANSI C. Компания microElektronika также предлагает компиляторы языков Pascal и Basic для 16-битных семейств Microchip, однако они имеют те же ограничения для профессионального применения.

В качестве примера приведем результаты сравнительного теста компиляторов C30, dsPICC и IAR. Компилировался один из вариантов теста Whetstone (вычисления с плавающей точкой). Симуляция проводилась в среде разработки MPLAB IDE для компиляторов dsPICC и C30 и в среде IAR для компилятора IAR 1.20B. Результаты симуляции проверены на макете с контроллером dsPIC30F6012 (~29,25 MIPS, тактовая частота — 117,9648МГц) (табл. 4).

Таблица 4. Результаты сравнительных тестов компиляторов Си для 16-битных микроконтроллеров Microchip

Из таблицы видно, что компилятор HI-TECH значительно уступает IAR и C30 как по плотности кода, так и по времени выполнения. Для тестирования использовалась одна из первых версий, однако проверка последней версии от 19 сентября 2006 года показала, что хотя время выполнения теста уменьшилось примерно на 10 процентов, плотность кода осталась прежней.

Компилятор IAR немного опережает C30 по скорости выполнения, однако заметно проигрывает по плотности кода. Из таблицы видно, что в симуляторе среды IAR допущены значительные нарушения — количество командных тактов, указанных симулятором, отличается от реального.

Библиотеки функций

Компания Microchip предоставляет разработчикам большое количество библиотек для компилятора MPLAB C30, что является еще одним аргументом для использования его в качестве основного средства разработки. Часть библиотек распространяется бесплатно, некоторые библиотеки — платные, однако с ними можно ознакомиться, скачав демонстрационную версию с сайта компании после регистрации. Платные библиотеки доступны для скачивания в виде скомпилированных библиотечных файлов, что ограничивает область их применения. Возможны различные формы оплаты при приобретении библиотек — либо единовременная оплата, либо лицензионные отчисления. В таблице 5 приведен список библиотек, предоставляемых компанией Microchip для 16-битных семейств.

Таблица 5. Библиотеки для 16-битных семейств Microchip

Библиотека математических функций

Исходные коды доступны на сайте Microchip и в составе компилятора MPLAB C30. Для увеличения скорости выполнения библиотеки реализованы на ассемблере, но все функции могут быть вызваны из Си-кода.

Тип аргументов и возвращаемых результатов — IEEE-754 (плавающая точка), реализованы арифметические, тригонометрические, логарифмические функции, функция взятия корня, функции округления и т. д. — то есть все стандартные математические функции языка Си.

Библиотека работы с периферийными модулями. Исходные коды доступны на сайте Microchip и в составе компилятора MPLAB C30.

Реализованы функции для работы со следующими периферийными модулями: порты ввода–вывода и внешние прерывания, таймеры, модули захвата и сравнения, модуль ШИМ для управления двигателями, модуль квадратурного энкодера, RTCC, CRC, UART, SPI, I2C, DCI, CAN, 10- и 12-битный АЦП.

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

  • векторные операции: сложение и вычитание векторов, свертка, вычисление корреляционной функции, максимум, минимум, умножение и масштабирование;
  • операции с матрицами: сложение, вычитание, умножение, масштабирование, транспонирование;
  • оконные функции: функции окон Блекмана, Хамминга, Ханнинга, Кайзера и Батлета;
  • функции фильтрации: КИХ-фильтрация, БИХ-фильтрация;
  • функции преобразований: дискретное косинусное преобразование, БПФ, обратное БПФ.

Все функции библиотеки оптимизированы по скорости— преобразование Фурье (256 отсчетов) выполняется за 476 мкс (40 MIPS).

Библиотека софт-модема предназначена для реализации программных модемов по спецификациям ITU-T V.21, V.22, V22bis, V.23, V.32 и V.32bis.

Пакет, включающий реализацию V.22bis/V.22, V.23, V.21, поставляется бесплатно. Поддержка остальных спецификаций осуществляется на платной основе. Для реализации V.32bis (скорость обмена от 4,8 до 14,4 кбод, модуляция QAM/TCM) необходима производительность не менее 15 MIPS.

Библиотека распознавания речи предназначена для реализации речевых систем дистанционного управления. Так как в библиотеке реализовано распознавание английской речи, библиотека вряд ли будет интересна российским разработчикам.

Библиотека шумоподавления. Библиотека предназначена для увеличения соотношения «сигнал–шум» речевого сигнала в следующих приложениях: системы hands-free, системы оповещения, телекоммуникации, телефонные гарнитуры и т. д. Библиотека поставляется на платной основе. Применение библиотеки позволяет улучшить SNR на 10–20 дБ для типовых приложений, для использования необходима производительность 1 MIPS.

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

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

Библиотека подавления эха в каналах связи предназначена для использования в коммуникационных системах — для подавления отражения аналоговых сигналов в линиях связи. Полностью соответствует стандарту ITU-T G.168. Типовое значение коэффициента подавления — 70 дБ (минимальное 40 дБ).

Библиотека симметричных алгоритмов шифрования. Предоставляются следующие функции:

  • Хэш-алгоритмы SHA-1 (поток до 423 кбайт/с), MD5 (поток до 656 кбайт/с).
  • Алгоритмы шифрования: AES-128, T-DES. При последовательности «шифрование–дешифрование» обеспечивается следующая скорость потока данных: для AES-128 — 232 кбайт/с, для T-DES — 49 кбайт/с.
  • Генератор случайных чисел по спецификации ANSI X9.82.
  • Поддержка различных функций обмена ключами.

Часть библиотеки (только алгоритмы шифрования T-DES, AES-128) предоставляется бесплатно в виде объектных модулей.

Библиотека несимметричных алгоритмов шифрования. Предоставляет следующие функции:

  • функции шифрования–дешифрования открытого ключа RSA (1024/2048 бит);
  • протокол подтверждения открытого ключа Diffie-Hellman (1024/2048 бит);
  • цифровая подпись и проверка цифровой подписи DSA (1024 бит) и RSA (1024/2048 бит);
  • хэш-алгоритмы SHA-1 и MD5;
  • генератор случайных чисел по спецификации ANSI X9.82.

Библиотеки сжатия речи. Microchip предлагает три библиотеки сжатия речи, предназначенные для использования в автоответчиках, аварийных извещателях, диктофонах и т. п.:

  • CELP — платная библиотека, основанная на кодеке Speex с открытыми исходными кодами. Обеспечивает сжатие и декодирование речевого сигнала с коэффициентом 1:16 и оценкой качества PESQ = 3.7 – 4.2 (из 5.0). Может использоваться с контроллерами dsPIC30/33.
  • G.711 — бесплатная библиотека, основанная на стандарте ITU-T G.711. Библиотека содержит компандер и экспандер A-law и u-law, обеспечивает сжатие с коэффициентом 1:2 и оценкой качества PESQ = 4.3 – 4.5. Может использоваться с любым контроллером 16-битного семейства.
  • G.726А — платная библиотека, основанная на стандарте ITU-T G.726A (ADPCM). Обеспечивает сжатие и декодирование речевого сигнала с коэффициентами от 1:3.2 до 1:8 с оценкой качества PESQ = 4.3 – 4.5. Может использоваться с контроллерами dsPIC30/33.

Стек протоколов TCP/IP. Библиотека TCP/IP [11] может использоваться с любым контроллером 16-битного семейства. Модульная система позволяет использовать только необходимые уровни стека и интегрировать библиотеку в уже разработанные устройства.

Поддерживаются следующие протоколы: ARP, IP, ICMP, UDP, TCP, DHCP, SNMP, HTTP, FTP, TFTP. Возможна реализация сервера FTP и HTTP на базе памяти программ или внешней памяти. Стек (без протоколов FTP и TFTP) использует не более 12 кбайт программной памяти.

Стек поддерживает 10-Base T Ethernet-контроллер ENC28J60 от Microchip. Контроллер ENC28J60 выпускается в компактном 28-выводном корпусе, содержит драйверы MAC и PHY, 8 кбайт буферной памяти, SPI-интерфейс для обмена данными с хост-контроллером.

Библиотека FAT16. Бесплатная библиотека файловой системы FAT16 может использоваться с любым контроллером с 16-битной архитектурой от Microchip. Библиотека поддерживает Flash-карты памяти SD/MMC и CompacFlash. Так как библиотека поставляется в виде открытых исходных кодов, разработчик может самостоятельно добавить поддержку других устройств хранения данных.

В библиотеке реализованы стандартные функции: fopen, fread, fwrite, fseek и т. д. Для использования библиотеки требуется 16 кбайт программной памяти и 1,5 кбайт ОЗУ.

Операционные системы реального времени

Большой объем программной памяти и ОЗУ, а также программный стек позволяют полностью использовать все возможности операционных систем реального времени (RTOS) при разработке объемного приложения на контроллерах dsPIC30/33 и PIC24F/H.

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

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

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

RTOS, рекомендуемая компанией Microchip для использования с 16-битными контроллерами, разработана компанией CMX System [12]. Предлагается три различных варианта:

  • CMX-RTX — вытесняющая RTOS, поддерживающая управление задачами, событиями, системными таймерами, ресурсами задач, а также распределение памяти. Сервисы: семафоры, сообщения, очереди сообщений. Все функции RTOS требуют наличия 3,6 кбайт памяти программ. Каждая задача требует 28 байт ОЗУ для хранения сервисной информации.
  • CMX-Tiny+ — упрощенная версия полнофункциональной вытесняющей RTOS CMX-RTX. Требует наличия 2,3 кбайт памяти программ. Каждая задача требует 13 байт ОЗУ для хранения сервисной информации.
  • CMX-Scheduler — свободно распространяемое вытесняющее ядро переключения задач, поддерживающее до 5 задач. Ядро совместимо с системами CMX-RTX и CMX-Tiny+ и может использоваться для простых, но требовательных к ресурсам систем или для изучения функционирования вытесняющей RTOS. Ядро CMX-Scheduler требует наличия 0,9 кбайт памяти программ. Каждая задача требует 11 байт ОЗУ для хранения сервисной информации.

Кроме RTOS компании CMX System можно упомянуть следующие операционные системы:

  • jacOS — портированная для контроллеров dsPIC30 бесплатная кооперативная RTOS, которая известна многим разработчикам, использующим 8-битные контроллеры Microchip [13]. jacOS поддерживает следующие сервисы: двоичные и счетные семафоры, сообщения, тайм-ауты, маскируемые события. Возможно использование сервисов в прерываниях. Актуальная версия на сентябрь 2006 года — 1.07.0. По запросу доступна версия для всех 16-битных семейств.
  • Salvo — кооперативная RTOS компании Pumpkin Inc. [14]. Поддерживает следующие сервисы: двоичные и счетные семафоры, сообщения, очередь сообщений. Актуальная версия на сентябрь 2006 года — 4.0.0.
  • uC/OS-II — порт известной вытесняющей RTOS компании Micrium [15], поддерживающий до 256 задач, семафоры, сообщения, очереди сообщений, управление системными таймерами и т. п. Актуальная версия на август 2006 года: для dsPIC30 — 2.76, для PIC24F/H и dsPIC33— 2.83.

Digital Filter Design и dsPICworks

Компания Microchip предоставляет разработчикам два пакета ПО для MS Windows, предназначенных для моделирования систем цифровой обработки сигналов.

Digital Filter Design

Пакет программ, предназначенный для синтеза и анализа характеристик цифровых фильтров (рис. 3). Основные характеристики пакета:

  • Синтез КИХ-фильтров с помощью метода взвешивания (метода оконных функций) и метода вычисления оптимальных (по Чебышеву) коэффициентов. Синтез НЧ, ВЧ, ПФ, РФ фильтров до 513 порядка.
  • Синтез БИХ-фильтров методом билинейного z-преобразования. Синтез НЧ, ВЧ, ПФ, РФ. Для фильтров ВЧ и НЧ максимальный порядок — 10, для ПФ и РФ — 20. Для синтеза фильтра могут использоваться следующие функции аналогового фильтра-прототипа: Баттерворта, Чебышева I рода, Чебышева II рода, Золоторева-Кауэра (эллиптическая), Бесселя.
  • Графическое отображение основных характеристик фильтра: АЧХ, ФЧХ, групповая задержка, импульсная характеристика, переходная характеристика, карта нулей и полюсов.
  • Экспорт коэффициентов фильтра в .h-файл, совместимый с DSP-библиотекой для контроллеров dsPIC30/33.
  • Экспорт коэффициентов фильтра в пакет обработки сигналов dsPICworks.
  • Интеграция с системой инженерных вычислений MATLAB.
Рис. 3. Расчет полосового БИХ!фильтра в программе Digital Filter Design

Пакет Digital Filter Design поставляется в двух конфигурациях — полной (стоимость $249) и усеченной — Lite (стоимость $29). В усеченной версии отсутствует интеграция сMATLAB, а порядок синтезируемых фильтров ограничен следующим образом: КИХ — 64, БИХ — 4.

dsPICworks

Бесплатный пакет программ, предназначенный для моделирования систем цифровой обработки сигналов (рис. 4). Процесс работы с пакетом выглядит следующим образом: импортирование или генерация сигнала — цифровая обработка сигнала — анализ полученных результатов. Такая схема работы позволяет отладить ЦОС алгоритм на ПК, а уже затем реализовать его на целевой аппаратной платформе.

Рис. 4. Моделирование системы цифровой обработки сигналов в программе dsPICworks

Пакет dsPICworks имеет следующие возможности:

  • Генерация сигналов: синусоидальных, прямоугольных, пилообразных. Генерация единичного импульса, ступеньки, сигнала вида sin(x)/x, экспоненциальной функции, шума с заданным распределением.
  • Импорт сигналов из среды разработки MPLAB IDE и текстовых файлов.
  • Арифметические и тригонометрические операции с сигналом: масштабирование, ограничение, умножение на функцию, сдвиг, производная и т. п.
  • Функции цифровой обработки: фильтрация (возможно использование коэффициентов фильтра, рассчитанного в программе Digital Filter Design), БПФ, обратное БПФ, свертка, интерполяция и т. п.
  • Отображение сигналов и спектров: осциллограмма сигнала, 2-мерный и 3-мерный (частота, амплитуда, время) спектр сигнала, возможность курсорных измерений.
  • Экспорт сигнала в текстовый и двоичный файл.

Возможности программы позволяют загрузить реальный сигнал, полученный из MPLAB IDE (дамп памяти контроллера) и промоделировать алгоритм обработки сигнала.

Отладочные и демонстрационные платы

Компания Microchip предлагает разработчикам большой выбор отладочных и демонстрационных плат для микроконтроллеров 16-битных семейств. Использование отладочной платы позволяет начать знакомство с контроллером, акцентировав внимание на архитектуре и периферии, а не на разработке собственного аппаратного обеспечения. Как правило, в комплекте с отладочной платой поставляется CD с последней версией среды разработки MPLAB IDE, набором документации, демонстрационной версией компилятора, библиотеками и примерами кода.

Для 16-битного семейства доступно 10 отладочных плат (табл. 6).

Таблица 6. Отладочные платы для 16-битных микроконтроллеров Microchip

Для ознакомления и начала работы с 16-битными микроконтроллерами рекомендуется использовать отладочную плату Explorer 16. Она поддерживает новые семейства (PIC24F/H, dsPIC33) и разработана с учетом дальнейшего наращивания функциональности с помощью дочерних модулей PICTail Plus. На сентябрь 2006 года выпускаются следующие модули расширения:

  • PICTail Plus SD/MMC — модуль для подключения Flash-карт SD/MMC.
  • PICTail Ethernet — модуль с 10-Base T Ethernet контроллером Microchip ENC24J60, согласующим трансформатором и разъемом RJ-45.

Планируются к выпуску следующие платы расширения:

  • PICTail Plus IrDA — модуль с инфракрасным трансивером TFDU100.
  • PICTail Plus CompactFlash — модуль для подключения Flash-карт CompactFlash.
  • PICTail Plus Wireless — модуль с RF-трансивером, соответствующим спецификации IEEE 802.15.4
  • PICTail Plus Voice — модуль содержит НЧ-фильтр 4 порядка, усилитель мощности, громкоговоритель 1 Вт, Serial EEPROM объемом 1 Mбит. Предназначен для реализации систем голосового оповещения и т. п.

Отладчики и эмуляторы

ICD-2 — универсальный внутрисхемный программатор-отладчик является, он наиболее популярным отладочным средством для микроконтроллеров Microchip всех семейств, включая 16-битные. Это связано с возможностью осуществлять программирование и внутрисхемную отладку большинства контроллеров с Flash-памятью.

Механизм отладки основан на наличии в контроллере модуля BDM (Background Debug Module), который недоступен пользователю, но может использоваться аппаратными средствами отладки.

При инициализации модуля в неиспользуемую область программной памяти прошивается специальный код, которому передается управление в случае остановки выполнения программы. Код отладчика предназначен для обмена данными модуля BDM и ICD-2, передачи состояния регистров, данных в ОЗУ, содержимого EEPROM и т. п. Остановку выполнения программы и передачу управления обратно CPU-ядру осуществляет модуль BDM.

ICD-2 позволяет выполнять следующие операции (совместно со средой разработки MPLAB IDE):

  • запуск программы;
  • остановка программы;
  • пошаговое выполнение программы;
  • сброс контроллера;
  • программирование, чтение и проверка программного кода;
  • чтение и запись ОЗУ, EEPROM.

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

Условная точка останова позволяет прерывать выполнение программы при возникновении указанного пользователем события:

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

Применение условных точек останова позволяет:

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

Модуль BDM в новых 16-битных микроконтроллерах обеспечивает некоторые функции аппаратного эмулятора:

  • останов по входу в режим SLEEP;
  • останов по переполнению сторожевого таймера;
  • счетчик командных тактов.

Все микроконтроллеры 16-битных семейств Microchip поддерживают возможность внутрисхемной отладки с помощью ICD-2 и среды разработки MPLAB IDE. Следует обратить внимание на то, что для использования режима внутрисхемной отладки необходимо зарезервировать часть программной памяти и ОЗУ с помощью опций компилятора.

REAL ICE. Летом 2006 года на ежегодном семинаре MASTERS’06 компания Microchip объявила о завершении разработки и начале тестирования нового внутрисхемного эмулятора для 16-битных семейств, получившего название REAL ICE.

REAL ICE (рис. 5) предназначен для работы в составе среды MPLAB IDE и имеет расширенную функциональность по сравнению с внутрисхемным отладчиком ICD-2:

  • интерфейс USB 2.0 High Speed (480 Mbps), питание от USB;
  • поддержка всех функций ICD-2 (внутрисхемное программирование, безусловные и условные точки останова, пошаговое выполнение и т. д.);
  • до 6 аппаратных и 1000 программных точек останова (в зависимости от типа контроллера);
  • трассировка кода (буфер 512 кбайт);
  • обновление значений переменных в окне Watch среды разработки в реальном времени в ходе выполнения программы;
  • 8 универсальных входов–выходов с логическими уровнями позволяют генерировать стробы при определенном событии (что может быть полезно, например, при синхронизации с логическим анализатором) или сохранять в журнал трассировки состояния универсальных входов;
  • аппаратная кнопка запуска и останова эмуляции;
  • автоматическое определение типа контроллера, возможность безопасного горячего подключения к отлаживаемой схеме;
  • модульная конструкция: дочерние модули LVDS передатчика и приемника позволяют производить отладку удаленных устройств (например, в климатической камере).
Рис. 5. Внутрисхемный эмулятор REAL ICE

Эмулятор REAL ICE, так же как и ICD-2, использует часть аппаратных ресурсов отлаживаемого кристалла, но в значительно меньшей степени — всего 68 байт ОЗУ. Планируется выпуск специальных модулей с кристаллами, у которых увеличено количество аппаратных точек останова и не используются для отладки пользовательские ресурсы (ОЗУ, выводы).

Начало производства REAL ICE и выпуск версии MPLAB IDE с поддержкой эмулятора запланированы на октябрь–ноябрь 2006 года.

Заключение

Сегодня компания Microchip Technology выпускает около 70 видов 16-битных контроллеров семейств PIC24F, PIC24H, dsPIC30 и dsPIC33. Спектр возможных применений этих устройств чрезвычайно широк благодаря мощным вычислительным возможностям и развитой системе периферийных модулей. Низкое соотношение потребляемой мощности к производительности (около 5 мВт/MIPS) в сочетании с гибкой схемой тактирования и энергосберегающих режимов позволяет применять новые семейства PIC24F/H и dsPIC33 в автономных устройствах. При этом эффективность системы команд 16-битного ядра Microchip настолько высока, что во многих часто встречающихся в практике задачах скорость выполнения кода оказывается выше, чем у 32-битных микроконтроллеров, не говоря уже о задачах цифровой обработки сигналов [16, 17].

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

Microchip осуществляет всестороннюю поддержку разработчиков, начиная с публикаций исходных кодов библиотек, примеров применения и заканчивая проведением онлайновых веб-семинаров [18] и поддержкой веб-форума [19].

К концу 2006 — началу 2007 года планируется выпуск микроконтроллеров семейств PIC24F/H и dsPIC33 в 18- и 28-выводных корпусах с мультиплексором выходов периферийных модулей на порты общего назначения. Это будут одни из самых миниатюрных микроконтроллеров с производительностью 40 MIPS и самые миниатюрные контроллеры с ядром цифровой обработки сигналов.

Литература

  1. DS39747C: PIC24FJ128GA Family Data Sheet.
  2. DS70165D: dsPIC33F Family Data Sheet.
  3. http://www.microchip.com/stellent/groups/dspic_sg/documents/devicedoc/en027621.zip
  4. http://www.microchip.com/mplab/
  5. http://www.iar.com/
  6. http://piklab.sourceforge.net/
  7. http://www.microchip.com/c30/
  8. http://www.htsoft.com/products/dspicccompiler.php
  9. http://www.iar.com/
  10. http://www.mikroe.com/en/compilers/mikroc/dspic/
  11. http://www.microchip.com/tcpip/
  12. http://www.cmx.com/microchip/index.htm
  13. http://jacos.narod.ru/
  14. http://www.pumpkininc.com/
  15. http://www.micrium.com/microchip/index.html
  16. http://benchmarks.caxapa.ru/?test=13
  17. http://benchmarks.caxapa.ru/?test=23
  18. http://techtrain.microchip.com/webseminars/Main.aspx
  19. http://forum.microchip.com/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *