В связи с тем, что АСУ ТП на основе МК имеют определенные особенности, возникла необходимость разработки научно обоснованного комплекса методических рекомендаций, позволяющих:
- разработчику стека TCP/IP: создавать стеки протоколов, наиболее полно отвечающие задачам коммуникации АСУ ТП на основе микроконтроллеров с внешней средой;
- разработчику, осуществляющему адаптацию стека TCP/IP под целевую платформу: более эффективно использовать, как возможности самого стека, так и аппаратных возможностей целевой платформы;
- разработчику, осуществляющему интеграцию стека TCP/IP в управляющую программу микроконтроллеров: наиболее полно и максимально безопасно для стабильности работы системы задействовать применяемый стек в своей программе.
Вопросы разработки оптимального стека TCP/IP и его эффективной адаптации под различные целевые системы разбирались в цикле статей [2], но четкий комплекс методических требований для каждого этапа интеграции стека в целевую систему АСУ ТП на основе МК сформулирован не был. В работе [5] также затрагивается данный вопрос, но рассматривается исключительно в контексте реализации непереносимого стека для конкретного микроконтроллера, не выявляя никаких обобщающих рекомендаций, которые могут быть приняты, как методика.
Особенности АСУ ТП на основе МК, влияющих на использование стеков TCP/IP
По результатам исследовательской деятельности авторов, микроконтроллеры, как подкласс микропроцессорных систем, имеют следующие особенности:
- невысокая производительность микропроцессорного ядра (см. таблицу 1);
- незначительный объем встроенной памяти программ (16-512 кб);
- значительные трудности использования исполняемого кода из внешних носителей большого объема (более 2-4 Мб);
- подавляющее большинство микроконтроллеров не содержит модуля управления памятью;
- многообразие микропроцессорных ядер, используемых в микроконтроллерах, и, как следствие, большое количество несовместимых друг с другом систем команд;
- многообразие реализаций контроллеров коммуникационных интерфейсов; используемых для подключения микроконтроллера к сетям с протоколом TCP/IP;
- разнообразие сред разработки программного обеспечения;
- затрудненная реализация системы динамически подгружаемых модулей;
- объединение в одной области постоянной памяти микроконтроллера операционной системы, стека TCP/IP и других компонентов.
Из этого вытекают следующие особенности АСУ ТП на основе МК, влияющие на реализацию стека TCP/IP:
- незначительная общая вычислительная мощность;
- незначительный объем оперативной памяти;
- невозможность выделения значительных вычислительных мощностей и объемов оперативной памяти для нужд стека TCP/IP, так как работа стека не является первоочередной для АСУ ТП любого типа;
- при использовании автономного питания зачастую не устанавливаются элементы внешней оперативной памяти, что еще более ужесточает требования к потреблению оперативной памяти стеком TCP/IP.
Таблица 1
Результаты синтетического теста производительности Dhrystone [9] для различных типов микропроцессорных ядер (Таблица составлена по материалам [3, 6, 7, 8])
|
Тип микросхемы |
Частота, МГц |
DMIPS |
Dhrystone /c |
DMIPS /МГц |
Дата анонса, г. |
80486DX2 |
процессор общего назначения |
66 |
12 |
21084 |
0.18 |
1992 |
ATmega64 |
микроконтроллер общего назначения |
14.7 |
4.83 |
8487 |
0.32 |
2003 |
AVR32UC3A |
микроконтроллер общего назначения |
66 |
91 |
159887 |
1.37 |
2006 |
LPC2148 |
микроконтроллер общего назначения |
60 |
54.7 |
96107.9 |
0,91 |
2004 |
STM32F103 |
микроконтроллер общего назначения |
72 |
76.7 |
120802.5 |
1.07 |
2006 |
Pentium 4 |
процессор общего назначения |
3066 |
432 |
759024 |
0.14 |
2002 |
Core i7 |
процессор общего назначения |
3800 |
1960 |
3443720 |
0.51 |
2008 |
Особенности стеков TCP/IP, применимых для использования в АСУ ТП на основе МК
В соответствии с написанным выше, авторы выделяют следующие особенности стеков TCP/IP, применимых в составе АСУ ТП на основе МК:
- невозможность использования элементов стеков TCP/IP, предназначенных для высокопроизводительных и требовательных к объему оперативной памяти настольных и серверных систем, таких, как Windows, Linux, Mac OSX, BSD;
- затрудненная реализация протоколов, требующих высокой производительности процессорного ядра, таких, как SSL, PPTP, L2TP;
- наличие в составе стека поддержки наиболее распространенных протоколов прикладного уровня;
- реализация интерфейса BSD-сокетов, как протокола прикладного уровня в отличие от стеков протокола TCP/IP для настольных систем Windows, Linux, MacOSX, BSD;
- значительная привязанность стека TCP/IP к среде, в которой он разработан и типу микроконтроллера, для которого он разрабатывался, что влечет за собой значительные трудности при попытке использования стека TCP/IP, предназначенного для одной АСУ ТП на другой.
Для проверки выдвинутых предположений решено было прибегнуть к сравнительному анализу стека TCP/IP, используемого в составе операционной системы настольного компьютера, и уже существующего стека для АСУ ТП на основе МК.
Сравнительный анализ стека TCP/IP для АСУ ТП на основе МК и стека TCP/IP для настольной системы
Для сравнительного анализа стека TCP/IP для АСУ ТП на основе МК и стека TCP/IP настольной системы предложены следующие критерии:
- область применения;
- необходимые и достаточные для нормальной работы стека аппаратные ресурсы;
- внутренняя структура.
Областью применения стека TCP/IP настольной системы являются рабочие станции, персональные компьютеры, серверы, мейнфреймы. Стек TCP/IP для АСУ ТП на основе МК используется в интеллектуальных датчиков, управляющих контроллерах, контроллерах исполнительных механизмов и других блоках АСУ ТП.
Требуемые аппаратные ресурсы в контексте вычислительной мощности микропроцессорного ядра для стеков TCP/IP настольных систем и АСУ ТП на основе МК можно увидеть в таблице 1 - пункты 6, 7 и 4, 5 соответственно. В контексте требуемого объема оперативной памяти для нормальной работы стека TCP/IP современной настольной системы необходим объем от 128 МБ оперативной памяти и 64-512 кБ - для стека TCP/IP для АСУ ТП на основе МК.
Сравнение внутренней структуры стеков является наиболее важным компонентом сравнительного анализа, так как позволяет подтвердить либо опровергнуть перечисленные в пункте 3 особенности стеков TCP/IP для АСУ ТП на основе МК. Сравнение будет производиться в рамках открытой модели сетевого взаимодействия систем - OSI [1].
Сравнительный анализ структуры стека TCP/IP для АСУ ТП на основе МК и стека TCP/IP для настольной системы
Для сравнительного анализа структуры в качестве стека TCP/IP для АСУ ТП на основе МК был выбран стек RL-ARM TCPNet компании Keil, как типичный представитель семейства встраиваемых стеков. В качестве стека TCP/IP для настольной системы был взят стек TCP/IP операционной системы Windows XP, как наиболее распространенный.
Сравнительный анализ структуры заключается в сопоставлении компонентов, которыми реализуется тот или иной уровень модели OSI, и интерфейсов API, используемых для связи между различными уровнями. Результаты приведены в таблице 2.
Таблица 2
Сравнительный анализ реализации уровней модели OSI в стеке TCP/IP Windows XP и встраиваемом стеке Keil RL-ARM TCPNet
Уровни модели OSI |
Стек TCP/IP Windows |
Keil RL-ARM TCPNet |
7. Прикладной уровень |
Пользовательское программное обеспечение, реализующее прикладные протоколы |
Пользовательское программное обеспечение, API BSD-сокетов, Протоколы SNMP, SNTP, SMTP, FTP, HTTP, TFTP, Telnet, DNS |
6. Представления |
API BSD-сокетов
|
Прототипы функций установки связи, передачи данных и других операций |
5. Сеансовый |
Закрытое ядро стека |
Закрытое ядро стека |
4. Транспортный |
||
3. Сетевой |
||
2. Канальный уровень |
API для взаимодействия с драйверами сетевых карт |
|
Драйверы протоколов Ethernet, PPP, SLIP |
Прототипы функций для взаимодействия с периферийными устройствами, реализующими связь по протоколу Ethernet, PPP или SLIP |
|
Драйверы сетевых карт и устройств с последовательным интерфейсом, INF-файлы с командами для модемов |
Драйверы контроллеров Ethernet, UART, модема |
|
1. Физический уровень |
Аппаратный контроллер Ethernet или UART |
Аппаратный контроллер Ethernet или UART, контроллер физического уровня Ethernet |
Проведенный анализ показывает, что для стека протоколов TCP/IP АСУ ТП на основе МК характерно:
- наличие модулей, реализующих наиболее распространенные прикладные протоколы (HTTP, FTP, SNMP, SMTP, SNTP и др.);
- реализация интерфейс BSD-стеков как протокола прикладного уровня;
- наличие собственных уникальных функций API для взаимодействия прикладных протоколов с другими уровнями стека;
- отсутствие протоколов для шифрованной передачи данных и реализации виртуальных частных сетей;
- использование ограниченного количества протоколов канального уровня (Ethernet, PPP, SLIP);
- использование ограниченного количества физических интерфейсов соединения (Ethernet, модем);
- наличие набора драйверов для наиболее распространенных контроллеров. коммуникационных интерфейсов.
Таким образом, сравнительный анализ структур стеков TCP/IP подтвердил выделенные в пункте 3 особенности стека TCP/IP для АСУ ТП на основе МК.
Рекомендации по разработке, применению и использованию стеков TCP/IP для АСУ ТП на основе МК
Итогом работы, проведенной авторами статьи, можно назвать следующий комплекс методических рекомендаций, включающий в себя три модуля:
Модуль 1: Рекомендации для разработчиков стеков TCP/IP для АСУ ТП на основе МК:
- минимально необходимый набор протоколов прикладного уровня - HTTP, FTP, SNMP v2c/v3, Telnet, DNS, SNTP;
- основной интерфейс взаимодействия со стеком - API BSD-сокетов;
- возможность настройки стека с помощью конфигурационных файлов, находящихся на внешнем носителе;
- наличие API для расширения набора протоколов канального уровня;
- минимально необходимый набор протоколов канального уровня - Ethernet и PPP;
- наличие драйверов контроллеров Ethernet и UART для наиболее распространенных семейств микроконтроллеров (Atmel AVR32UC3A, NXP LPC1700/2300/2400/3250, STMicroelectronics STM32, Microchip PIC16/18/24/32/30);
- наличие драйверов для распространенных аппаратных контроллеров Ethernet (Wiznet W5100, Crystal CS8900, Microchip ENC28J60);
- наличие примеров применения стека для различных сред разработки программного обеспечения;
- наличие возможности переноса стека на неподдерживаемые на данный момент аппаратные архитектуры и среды разработки программного обеспечения;
Модуль 2: Рекомендации для специалистов, осуществляющих процесс адаптации стека TCP/IP под архитектуру и среду разработки программного обеспечения целевой платформы:
- обоснованный выбор микроконтроллера по таким параметрам, как производительность микропроцессорного ядра, объем оперативной и постоянной памяти;
- предварительное составление необходимых и достаточных для работы стека списка функций драйвера;
- изучение исходные тексты аналогичных драйверов для других микроконтроллеров.
Модуль 3: Рекомендации разработчику, осуществляющему интеграцию стека TCP/IP в управляющую программу микроконтроллера:
- контроль размера стека задач, необходимого для запуска и работы функции стека;
- ограничение максимального количества одновременно осуществляемых соединений TCP/IP;
- контроль необходимости дополнительных модулей, требуемых для запуска выбранного прикладного протокола;
- изучение списка прикладных протоколов, уже реализованных в стеке, для предотвращения дублирования функционала.
Ряд рекомендаций, изложенных здесь, был успешно применен авторами в процессе адаптации стека RL-ARM TCPNet к микроконтроллеру MDR32F9Q2I компании «Миландр» [4].
Рецензенты:
Цветков Г.А., д.т.н., профессор кафедры «Безопасность жизнедеятельности», ФГБОУ ВПО «Пермский национальный исследовательский политехнический университет», г. Пермь;
Колмогоров Г.Л., д.т.н., профессор кафедры «Динамика и прочность машин», ФГБОУ ВПО «Пермский национальный исследов