IPC@CHIP+CoDeSys или маленькие ядра для большой артиллерии. Микроконтроллеры
Ядром почти любого современного электронного устройства является микроконтроллер с соответствующей обвязкой. Чем больше интегрированных узлов сочетает микроконтроллер, тем проще труд разработчика, меньше габариты и стоимость устройства.
Вусловиях рыночной конкуренции важнейшую роль играет не только цена, но и время выхода на рынок нового изделия. Чем быстрее мы можем разрабатывать и производить новые продукты, тем выше наши шансы на коммерческий успех. Сейчас существует немало семейств микроконтроллеров, обладающих отличными техническими характеристиками и доступными ценами. Но переход на новый микроконтроллер всегда связан с немалыми сложностями, самая значительная из которых — необходимость освоения его программирования на низком уровне. Мы должны изучить назначение системных регистров, последовательность их настройки, тонкости и ошибки в разных типах микросхем. Далее нам придется адаптировать сделанные раньше библиотеки, чтобы хоть в какой-то степени использовать результаты своей предыдущей работы, а не начинать все с нуля. Если же наше устройство должно взаимодействовать с компьютером или другими устройствами в сети, то снова возникают проблемы. Нужно ли разрабатывать оригинальные протоколы или искать готовые решения? Есть ли они для данного микроконтроллера? Сколько это стоит? Как программировать верхний уровень?
Часто подобные рассуждения приводят к мысли воспользоваться встраиваемой компьютерной платой вместо микроконтроллера. Это сразу решает огромное число проблем не только с аппаратными ресурсами, но и с программированием. Мы можем прибегнуть к готовым программам, вместо того чтобы писать их снова и снова. Причем к нашим услугам будут новейшие мировые технологии: стандартные сетевые протоколы, инструменты Интернета, файловая система, поддержка баз данных и стыковка с офисными приложениями. Существует большая ниша устройств, для которых решения на микроконтроллерах сложны и оправданы лишь при высокой серийности производства. Многие задачи такого типа гарантированно решаются с помощью встраиваемой компьютерной платы. Но это не всегда приемлемо из-за габаритов, высокой стоимости и избыточности подобных плат.
В идеальном случае желательно иметь микроконтроллер, оснащенный полноценной операционной системой и широким набором готовых программно-аппаратных решений для типовых узлов. Мы уже рассказывали о семействе микроконтроллеров IPC@CHIP в [1] и [2]. По сути, IPC@CHIP — полноценный компьютер, свернутый в корпус микросхемы. С его помощью можно достаточно легко самостоятельно создавать устройства, обладающие комплексом технических характеристик, присущих серийной продукции крупных мировых брендов.
Еще одной яркой чертой IPC@CHIP является опциональная поддержка системы МЭК 61131-3 программирования CoDeSys. Это позволяет создавать устройства, программируемые конечным пользователем в интерактивной графической среде. Допустим, наше устройство должно иметь возможность настройки. Для начала мы можем снабдить его кнопками, индикатором. А можем пойти дальше и дополнить его компьютерной программой конфигурирования. В таком случае придется написать конфигуратор для компьютера и протокол связи. Но вполне вероятно, что в процессе развития устройства нам придется постоянно дополнять и переделывать конфигуратор. Вероятно, часть потенциальных заказчиков откажется от покупки нашего устройства из-за отсутствия нужных опций. Полностью преодолеть данную проблему можно, если предоставить пользователям возможность не только настраивать параметры, но и программировать новые функции. Поддержка CoDeSys означает комплексное решение проблемы, причем с наименьшими усилиями. Бесплатная среда программирования CoDeSys включает OPC- и DDE-серверы. Таким образом решается еще одна часто возникающая проблема — стыковка нашего устройства с базами данных и офисными приложениями на персональном компьютере.
На рис. 1 показано управление контроллером печатной машины c карманного компьютера. Контроллеры реализованы на SC13 IEC. Данные со всех контроллеров по сети Ethernet поступают на PC и отображаются в MS Excel. Оперативная информация о ходе выполнения заказов также доступна через веб-серверы, встроенные в SC13 IEC. Благодаря встроенной визуализации CoDeSys, программирование контроллера свелось к поддержке дискретных счетчиков готовой продукции и считыванию штрих-кода заказа. Все современные технологии присутствуют за счет использования готовых программных компонентов.
В конце прошлого года семейство IPC@CHIP пополнилось двумя новыми микросхемами — SC123 и SC143. Для краткости мы будем называть их SC1x3. Итак, рассмотрим новинки подробнее.
Аппаратные возможности чипов SC1x3
Первое отличие SC1x3 от SC1x заметно сразу. Микросхемы SC123/143 выполнены в более компактном корпусе BGA177 (рис. 2) размером 27×27×5 мм.
Напряжение питания составляет 3,3 В. Расширен температурный диапазон. Стандартные серийные чипы функционируют при температуре от –25 до +85 °C. Важной характеристикой новой серии является повышенная до 96 МГц тактовая частота процессора.
Есть и более существенные изменения, которые привели к определенным изменениям как в аппаратном, так и в программном обеспечении чипа. Прежде всего, это увеличение разрядности адресной шины чипа с 20 до 24 бит. Теперь объем ОЗУ чипа расширился до 8 Мбайт.
Расширился и объем внутренней флэш-памяти — в SC123 до 2 Мбайт, в SC143 до 8 Мбайт. Во многих случаях такого объема достаточно, но не стоит забывать о возможности расширения энергонезависимой памяти за счет внешних карт памяти MMC и CompactFlash. Можно использовать карты памяти объемом до 2 Гбайт.
Особо нужно выделить коммуникационные возможности чипов серии SC1x3. Микроконтроллеры фирмы BECK IPC традиционно применялись в различных коммуникационных приложениях благодаря богатым сетевым возможностям. В новой серии чипов набор сетевых интерфейсов расширен. К ним относятся два канала сети — CAN и USB.
Подверглись изменениям и интерфейсы, имеющиеся в предыдущей серии. Теперь BECK IPC@CHIP имеет не один, а два Ethernet-интерфейса, что позволяет ему найти применение в устройствах, способных выполнять функции маршрутизаторов.
Число последовательных каналов также увеличилось вдвое. Теперь их четыре. Каждый из каналов можно использовать для построения таких интерфейсов, как RS-232 или RS-485.
Ну и последнее по поводу аппаратных возможностей чипа. Интерфейсы SPI и I2C отныне имеют аппаратную поддержку, что, естественно, привело к увеличению скорости передачи данных по этим каналам. В таблице приведены сравнительные данные чипов SC1x и SC1x3.
Компания BECK IPC GmbH улучшила практически все технические характеристики своих чипов. К тому же все микроконтроллеры семейства IPC@CHIP выпускаются теперь по бессвинцовой технологии.
Программные возможности чипов SC1x3
Главной составляющей программного обеспечения IPC@CHIP является встроенная многозадачная операционная система реального времени IPC@CHIP-RTOS. Подробно на ее компонентах мы останавливаться не будем, поскольку они рассмотрены в статье [1].
Архитектура RTOS для SC1x3 в целом аналогична SC1x. Как и в случае с аппаратными ресурсами, многие характеристики операционной системы улучшены, кроме того, добавлены новые возможности.
Кратко опишем эти изменения. Во-первых, число одновременно выполняющихся задач увеличилось до 50, число таймеров, событий, семафоров — до 100, сокетов — до 96.
Важные изменения коснулись файловой системы: RTOS в SC1x3 поддерживает длинные имена файлов и FAT32.
Поскольку в чипах появились новые сетевые интерфейсы USB и CAN, то соответственно появились функции API для работы с ними.
Особое внимание фирма BECK IPC уделила вопросам сетевой безопасности, что привело к появлению в чипе защищенных протоколов, таких как SSH, SSL, IPCSec.
Следует также отметить, что теперь разработчику доступен не только хорошо известный протокол IP v.4, но и довольно новый протокол IP шестой версии.
Однако главное изменение в структуре программного обеспечения BECK IPC@CHIP связано с увеличением разрядности адресной шины до 24 бит. Естественно, понадобился новый компилятор. Теперь для разработки программ для BECK IPC@CHIP рекомендуется использовать интегрированную среду Paradigm C/C++. Заметим, что фирма Paradigm Systems выпустила специальную редакцию компилятора для BECK IPC@CHIP. Комплекс разработки Paradigm C++ стоит несколько дороже, чем использовавшийся для SC1x Borland C++, но, по отзывам пользователей, он удобнее.
Несмотря на смену компилятора программное обеспечение для SC1x выполняется на SC1x3. Для этого необходимо перекомпилировать «старый» проект в Paradigm C++, благо делается это очень просто, так как Paradigm C++ поддерживает формат файлов проекта Borland C++.
Применение BECK IPC@CHIP для построения программируемых логических контроллеров (ПЛК)
Одним из самых распространенных применений BECK IPC@CHIP является построение на его основе программируемых логических контроллеров (ПЛК). IPC@CHIP — это готовое вычислительное ядро ПЛК, которое достаточно дополнить необходимыми периферийными модулями: дискретными входами/выходами, индикаторами, АЦП и т. д.
Имеется два аспекта, делающих BECK IPC@CHIP популярным в данной области. Во-первых, использование ядра принципиально упрощает проектирование ПЛК. Микропроцессор, ОЗУ, ППЗУ, тактовый генератор, контроллеры интерфейсов и шины расширения, контроллер Ethernet — все это находится в одном небольшом чипе.
Второй аспект еще более важен, чем первый. BECK IPC@CHIP имеет встроенную поддержку среды МЭК 61131-3 программирования CoDeSys. Это означает, что наше устройство, построенное на базе IPC@CHIP, можно превратить в современный ПЛК практически без усилий и дополнительных затрат.
Микроконтроллеры IPC@CHIP с индексом IEC поставляются с лицензией на систему исполнения CoDeSys. В комплект поставки входит специальный SDK для разработки драйверов. Достаточно написать функции поддержки наших аппаратных расширений и полноценный ПЛК, программируемый в CoDeSys, готов [2].
Что же нового в этом плане дают нам IPC@CHIP SC1x3? На первый взгляд, все попрежнему. В настоящее время SC1x3-IEC программируется в CoDeSys v2.3. Единственное существенное нововведение связано с появлением в чипах шины CAN — теперь CoDeSys IPC@CHIP поддерживает сеть CANopen. Назвать данную сеть широко распространенной в нашей стране нельзя. Несмотря на все ее технические достоинства, надежность и удобство применения, она слишком сложна в программной реализации. Безусловно, существуют коммерческие библиотеки на языке C. Однако из-за объемности и сложности технического сопровождения стоят они немало. В итоге, в типовых для CAN задачах у нас достаточно массово применяются упрощенные сети, построенные на базе RS-485. SC1x3-IEC включает не только полноценную поддержку CANopen, но и обеспечивается конфигуратором сети, встроенным в CoDeSys. IPC@CHIP позволяет быстро разрабатывать устройства с CANopen без дополнительных затрат. Это еще одно уникальное свойство IPC@CHIP. Впрочем, после выпуска первого в мире микроконтроллера со встроенной ОС, а затем и появления практически бесплатной поддержки CoDeSys, вполне можно было ожидать чего-либо подобного.
Весной этого года компания 3S-Software Solutions GmbH выпускает принципиально новую версию комплекса CoDeSys 3.0, и фирма BECK IPC уже анонсировала применение этой версии для программирования чипов SC1x3. Об идеологии новой версии CoDeSys можно узнать из статьи основателя фирмы 3S Дитера Хесса [3]. Мы лишь кратко рассмотрим ее ключевые моменты.
CoDeSys 3.0 — это принципиально новый продукт, который разрабатывался параллельно с текущей версией 2.3 на платформе Microsoft .NET. CoDeSys 3.0 по-прежнему остается системой МЭК-программирования, но с множественными расширениями.
Основное расширение коснулось МЭК-языков. Теперь CoDeSys поддерживает объектно-ориентированное программирование (ООП) со всеми его замечательными возможностями — наследованием, инкапсуляцией и полиморфизмом. Роль классов выполняют функциональные блоки. Программист совершенно спокойно может отказаться от возможностей ООП и писать программы на классических МЭК-языках. Все расширения сделаны опциональными с полным сохранением совместимости.
Еще одна новая возможность CoDeSys позволяет запрограммировать несколько ПЛК в одном проекте. Мы также можем создавать клоны проектов и включать в проект параметрические (непрограммируемые) устройства.
CoDeSys 3.0 — многокомпонентная система. К компонентам CoDeSys 3.0 относятся редакторы, конфигураторы, компиляторы. В новой версии CoDeSys пользователь получил возможность устанавливать различные компоненты и их версии отдельно, с помощью специального инструмента. Такая возможность называется «Профили версий».
Ну и последнее изменение — самое масштабное, с далеко идущими последствиями для пользователей CoDeSys. CoDeSys 3.0 — это не только система программирования, но и так называемая автоматизированная платформа. То есть CoDeSys 3.0 можно самостоятельно расширять, оснащая его собственными компонентами. Это достигается благодаря многокомпонентности CoDeSys 3.0. OEM может создавать компоненты CoDeSys 3.0 самостоятельно, используя Microsoft Visual Studio .NET. Например, встроить редактор и транслятор для своего языка программирования или добавить уникальный конфигуратор собственных устройств. В итоге, можно изменить CoDeSys до неузнаваемости и тонко настроить его под свои нужды.
Ожидать поддержку CoDeSys 3.0 в IPC@CHIP стоит не ранее нынешней осени. Это ни в коем случае не означает, что придется повременить с разработкой проектов на IPC@CHIP. Напротив, заложив в свои продукты SC1x3 сегодня, мы сможем выпустить на рынок контроллер с поддержкой CoDeSys 3.0 одновременно с крупнейшими лидерами западного рынка промышленной автоматизации. Возможность уникальная, хотя и совершенно реальная.
Популярность семейства микроконтроллеров IPC@CHIP растет в нашей стране достаточно быстро. Благодаря целому ряду уникальных свойств, мы имеем возможность выпускать устройства, поддерживающие новейшие компьютерные технологии даже в штучных заказных приложениях. Для создания таких устройств на базе микросхем SC1x достаточно иметь персональный компьютер и обычный паяльник. Новая серия SC1x3 расширяет диапазон применения IPC@CHIP в сторону серийных промышленных изделий. В этом случае себестоимость самого устройства достигает уровня себестоимости устройств на классических микроконтроллерах. Причем время и цена разработки оказываются меньше в разы. Семейство IPC@CHIP активно развивается, сохраняя лидирующие позиции, несмотря на многие попытки ряда компаний использовать идею микроконтроллера с высокоуровневыми возможностями программирования.
Литература
- 1. Петров И. В. Пастушенков Д. В. IPC@CHIP, или Маленькие ядра для большой артиллерии-2 // Компоненты и технологии. 2005. № 6.
- 2. Пастушенков Д. В. IPC@CHIP+CoDeSys, или Маленькие ядра для большой артиллерии-3 // Компоненты и технологии. 2005. № 7.
- 3. Хесс. Д.Объектно-ориентированные расширения МЭК 61131-3 // СТА. 2006. № 2.