+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 96.07 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

Организация TCP/IP стека для МК на основе embedded module Tibbo

23.12.2013 14:00

В данной обзорной статье речь пойдет об организации TCP/IP стека в вашем проекте на основе встраиваемых модулей от Tibbo Technology.

В большинстве случаев разработчики работают со своим МК через последовательный порт. Это не всегда удобно. Часто возникает задача "общаться" с устройством удаленно через TCP/IP стек. Проблема поднимается не впервые. Например, вот здесь  эта задача озвучена и решена с достаточно подробным описанием. В приведенной ссылке даже есть фото и краткое упоминание о модуле Tibbo EM100. Дело в том, что наша компания является официальным представителем Tibbo Technology в РФ. Поэтому немного обидно, что о нашем продукте упомянули вскользь, не раскрыв полного функционала и возможностей продукта. Я прекрасно знаю эту оранжевую коробочку под названием EM100, которая выпускается уже более 10 лет и которая используется на многих объектах наших бескрайних просторов. Но уже много воды утекло с момента релиза данного модуля. Попробуем создать TCP/IP стек для устройства на основе модуля Tibbo, параллельно рассмотрев возможности продукта.

Создание TCP/IP стека.

Для решения данной задачи нам понадобяться:

  • Embedded module Tibbo
  • Бесплатная прошивка с открытыми исходниками Serial Over Ip
  • Бесплатная утилита Device Explorer(в составе TIDE)
  • Бесплатный набор утилит Tibbo Device Server ToolKit (TDST)

Embedded Modules (EM) - это небольшие интеллектуальные модули, которые имеют собственный микропроцессор, минимально-необходимую обвязку для быстрого старта, различные встроенные протоколы. Как правило, в EM запущена собственная операционная система, которая не предназначена для общения с человеком. Цель использования EM - это в максимально короткие сроки и с минимальными затратами организовать тот или иной функционал в устройстве.

Семейство продукции Embedded modules от Tibbo Technology - это достаточно мощные модули, на которых уже реализованы физический уровень интерфейса 10/100 BaseT, организована полноценная работа со стеком протоколов TCP/IP, имеется от 1 до 4 последовательных портов UART на CMOS уровне (TTL совместимый). В продаже существуют модификации модулей с интегрированным разъемом Ethernet и без него. Для подключения последнего требуются внешние разъем и трансформаторы или разъем со встроенными трансформаторами. Размеры модулей варьируются, но в целом они не превышают (или превышают незначительно) разъем RJ45.

Я выбрал модель EM1206+RJ203, краткие характеристики:

  • Основан на высокопроизводительном 88МГц ASIC (T1000) контроллере.
  • 100BaseT со встроенной трансформаторной развязкой (при использовании RJ203).
  • До 1024КБ flash-памяти под прошивку, приложения и данные.
  • 2КБ EEPROM для хранения данных.
  • Часы реального времени (RTC)..
  • До 17 линий ввода/вывода общего назначения (включая 8 линий прерываний).
  • Линии контроля двух внешних светодиода состояния.
  • 4 встроенных светодиода:
  • зелезный и красный светодиоды состояния;
  • зеленый и желтый светодиоды статуса Ethernet.
  • Программно-контролируемый встроенный PLL.
  • Надежные схемы сброса питания.
  • Питание: 230мА @ 3.3В (100BaseT режим, PLL включен).
  • Размеры: 33.2x18.1x5.5мм.

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

Последовательный порт, необходимо завести на контроллер вашего устройства. Как я писал выше, на модуле EM1206 реализован CMOS уровень (TTL совместимый), так что линии Rx/Tx можно подключать к ножкам МК напрямую.

Удобное ПО для работы

В программной части все еще проще. Запускаем Device Explorer, который автоматически обнаруживает модуль в сети (средствами посылки UDP broadcast запросов), заливаем прошивку. Процесс занимает не более 1 минуты.

Запускаем DS Manager, который позволяет задать параметры как последовательного интерфейса, так и параметры хоста:

Краткие характеристики прошивки Serial Over IP:

  • Полно- и полудуплексные режимы последовательного порта.
  • Доступные режимы: сервер, клиент и сервер/клиент.
  • Множество других опций для соединений последовательного порта и ethernet.
  • 8КБ на каждый буффер приема/передачи (в каждом направлении по одному буферу).
  • Конфигурация хранится в EEPROM.
  • Детальная индикация состояния через светодиоды.
  • Настройка через RS232 или ethernet (UDP команды, Telnet).
  • Удаленный контроль всех линий ввода/вывода (включая RTS, CTS, DTR и DSR).
  • "On-the-fly" комманды для конфигурации последовательного порта.
  • "Модемные" команды через RS232 для управления сетевым соединением.
  • Прямое управление ADSL модемом.
  • Поддержка UDP, TCP, ARP, ICMP (ping), DHCP, PPPoE, LCP протоколов.
  • Встроенный веб-интерфейс управления.

Теперь наше устройство прозрачно пробрасывает поток данных в сеть Ethernet и обратно. На удаленной машине можно установить драйвер виртуального COM порта.

Опционально, при использовании внешнего модуля расширения GA1000, устройства Tibbo позволяют передавать данные по беспроводному протоколу передачи данных WiFi (802.11 b/g). GA1000 элементарно подключается к контроллеру, через утилиту DS Manager можно настроить параметры подключения к точке доступа.

Помимо стандартных режимов работы в локальной сети, в embedded модулях Tibbo реализован объект, позволяющий автоматически подключаться к провайдеру по технологии PPPoE, что позволяет использовать устройство, как клиент, для подключения к удаленным серверам по всему миру. 

И это все? А где же интеллект, где же логика?

Embedded modules Tibbo являются свободно программируемыми, при этом процесс отладки и загрузки приложений осуществляется через сеть Ethernet. Программирование осуществляется на объектно-ориентированных событийных языках Tibbo Basic и Tibbo C. Для кодирования используется среда разработки от производителя Tibbo IDE. На устройствах запущена операционная система TiOS, которая обрабатывает приложение, написанное пользователем и скомпилированное в мнемокоды в режиме интерпретации. Модули имеют на борту линии ввода/вывода общего назначения (GPIO), что позволяет использовать embedded module как микроконтроллер.

На большинстве моделей реализован веб-сервер, который позволяет пользователю запрограммировать веб-интерфейс управления. На некоторых моделях реализованы часы реального времени RTC.
Таким образом, функционал модуля определяется только разработчиком. Если не достаточно прошивки SoI, откройте исходники и добавьте то, что нужно. Или с нуля создайте собственный проект. Например, реализовав протокол вашего контроллера и подцепив к проекту OPC Server (от Tibbo), устройство можно подключить к SCADA системе, а используя программную библиотеку AggreGate Agent появляется возможность подключения устройства к AggreGate Server.

Давайте рассмотрим простенький пример: необходимо сравнить полученный параметр от МК с константой, и если параметр превысил значение, передать предупреждение на сервер. Элементарно:
Инициализируем последовательный порт:

sub on_sys_init ser.num=0 'выбираем первый последовательный порт ser.rxbuffrq(4) 'Резервируем 4*256-16=1008 байт под буфер прием последовательного порта ser.txbuffrq(4) 'Резервируем 4*256-16=1008 байт под буфер передачи последовательного порта ..... sys.buffalloc 'Зарезервируем выделенные буферы памяти. ser.num=0 ser.flowcontrol=DISABLED 'Выключаем управление потоком ser.baudrate=12 'ser.div9600/(38400/9600) устанавливаем скорость 38400 ser.enabled=YES 'Включаем порт ....... end sub

Инициализируем сокет:

sub on_sys_init ..... sock.num=0 sock.rxbuffrq(4) sock.txbuffrq(4) ..... sys.buffalloc sock.num=0 sock.protocol=PL_SOCK_PROTOCOL_TCP sock.localportlist="2000,3000" sock.inconmode=PL_SOCK_INCONMODE_ANY_IP_ANY_PORT sock.targetip="192.168.1.100" sock.targetport="1001" end sub

Получим данные, сравним и отправим на сервер критическое событие:
sub on_ser_data_arrival 'Событие. Активируется при появлении данных на последовательном интерфейсе. dim s as string s = ser.getdata(ser.rxlen) If val(s) > Critical_value then sock.num = 0 sock.connect sock.setdata("Внимание! Превышение параметра: "+s) sock.send end if end sub

Как видно, программирование совсем не сложное.

Если вам не хочется возиться с распайкой, можно использовать готовые отладочные платы, например, EM500EV:

Достаточно подключить шлейф на интерфейсный разъем и вы получаете тот же функционал, что и при встраиваемом решении.

Замена МК на Tibbo embedded module.

Если в вашем проекте не требуется мгновенных реакций, то Tibbo EM можно использовать как главный микроконтроллер вашего устройства. Модули создавались для максимально удобной работы с ними. Свободное программирование на высокоуровневых языках Tibbo Basic и Tibbo C позволят сократить время на разработку прошивки в разы. Как пример, можно рассмотреть создание собственного контроллера доступа с реле для управления замками или подключения внешней сигнализации, веб-сервером, последовательными портами, беспроводной связью WiFi, клавиатурой и дисплеем (принципиальные схемы можно скачать здесь):

\

Последовательные порты могут использоваться для подключения считывателей RFID или магнитных карт. Реле служат для управления замками. Нужно открыть дверь? Для этого необходимо активировать реле. Из принципиальной схемы мы видим, что реле у нас "висит" на линии DTR0 (или GPIO5), нужно активировать эту линию:

.... io.num = PL_IO_NUM_5 io.enabled = YES io.state = LOW ....

Наконец, если вам интересно создание собственных устройств автоматизации, посмотрите обзор аппаратной платформы автоматизации TPS от Tibbo.

Ссылки по теме

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

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

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

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



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года