TINI - интерфейс для управления встроенными системами,
приборами и оборудованием через Интернет
Тенденции - дистанционное управление через Интернет
«Леонардо в роли домохозяйки»
Надир Шакур , журнал «Компания», №30
Производители и продавцы бытовой техники ожидают
значительного роста продаж в России. По самым оптимистичным оценкам,
они увеличатся на 20% по сравнению с аналогичным периодом прошлого
года. Среди главных причин ожидаемого бума специалисты называют
назревшую у большинства россиян необходимость в ротации техники,
устаревшей за последнее десятилетие, и относительную стабилизацию
экономики. Тем не менее, российский потребитель еще далек от забот
западноевропейцев, активно внедряющих в свои жилища и быт новейшие
цифровые и Интернет-технологии.
«Телевизор в оконной раме»
Александр Сергеев, журнал «Компания», №31
Сочетание одних технологий с другими - одна из
главнейших тенденций современного рынка hi-tech: Персональный компьютер
не существует в изоляции и не является чем-то обособленным - его
возможности расширяются и дополняются множеством новых приложений.
Конвергенция компьютерной отрасли и индустрии бытовой электроники
открывает перед пользователями новые, небывалые перспективы: Philips и
Intel по-разному видят конвергенцию двух отраслей. Если Крейг Баррет из
Intel мыслит компьютер в качестве составной части домашних электронных
систем, то топ-менеджеры Philips придерживаются иного мнения. "По мере
того как бытовая техника будет умнеть, компьютеры должны постепенно
исчезнуть. Не в прямом смысле - просто компьютеры станут "невидимыми",
их функции возьмет на себя бытовая электроника..."
Суть проблемы.
До недавнего времени при
проектировании систем или устройств, управляемых из Интернета,
разработчики сталкивалась с проблемой сопряжения быстродействующих
компьютерных сетей и "медленных" сетей с распределенными параметрами,
которые используются для связи и сбора информации из систем,
встроенных в промышленное или бытовое оборудование. Для таких сетей
быстродействие не является основным требованием, а на первый план
выходят адаптивность, живучесть и открытость. Под адаптивностью
понимают возможность настройки при изменении конфигурации сети.
Живучесть предполагает способность выполнять установленные функции в
условиях воздействия внешней среды и отказов компонентов системы.
Открытость сети означает возможность её модернизации без нарушения
функционирования. Наиболее приемлемой по функциональным возможностям и
по ценовым характеристикам сетью для объединения встроенных систем
является однопроводная сеть MicroLAN, разработанная фирмой Dallas
Semiconductor. Сравнительный анализ и более подробную информацию по
реализации данной сети см. в разделе Пресс-форум
В качестве интерфейса между двумя типами сетей в этом случае выступает
плата TINI (Tiny InterNet Interface), также разработанная специалистами
Dallas Semiconductor.
Что такое TINI.
Можно ли, находясь в Москве в режиме
реального времени проконтролировать технологический процесс, идущий в
Могилеве, или - наоборот? - Очень даже можно! Позволит сделать это
небольшая и недорогая плата TINI, разработанная специалистами Dallas
Semiconductor, которая может напрямую управляться через соответствующую
Web-страницу.
Плата TINI отлично справляется с
задачей интеграции медленных однопроводных территориально
рассредоточенных структур с такими производительными сетями как
Industrial Internet и другими. Управляемые устройства могут
настраиваться удаленно только за счет того, что микроконтроллеры,
входящие в структуру TINI, напрямую подключаются через браузер к
соответствующей Web-странице и не требуют дополнительного компьютера.
Платформа TINI объединяет мощный чипсет
и оперативные средства Java, раскрывающие широкие возможности
ввода-вывода микроконтроллеров Dallas. Программист, кодируя на Java,
получает доступ к управлению вводом/выводом через API, включающем
интерфейсы Ethernet, RS 232, I2C, 1-Wire, CAN и параллельную шину.
Применяя API, программисты просто описывают необходимые функции и
могут не заботиться о сопряжении с периферийной аппаратурой на низком
уровне.
TINI может использоваться в
промышленном контроле и управлении, измерительных системах, бытовых
приборах, образовании и любительском конструировании. Причем, если
вначале предполагалось использование в коммерческих и промышленных
целях, то сейчас есть много примеров бытовых и любительских устройств,
например в журнале Hard and Soft № 7/2001 есть заметка о тостере,
выжигающем изображение солнца или тучи, в зависимости от того, какой
прогноз погоды был получен TINI, дозвонившейся до местной метеостанции.
TINI представляет собой стандартный
72-контактный SIMM-модуль с размером платы 102.9мм x 31.8мм. На модуле
установлен TINI-чипсет, основой которого является микроконтроллер
DS80C390. Этот микроконтроллер имеет следующие особенности:
- набор команд, совместимый с 8051
- машинный цикл 4 такта
- 4Кб встроенной SRAM могут использоваться как память программ/данных/стек
- адресуется до 4Мб внешней памяти
- два встроенных CAN 2.0B контроллера
- два встроенных UART
Микроконтроллер на плате TINI работает
с тактовой частотой 18 МГц. К одному из UART подключена микросхема
преобразователей уровней DS232A, благодаря чему TINI имеет
RS-232-совместимый порт. Второй последовательный порт микроконтроллера
используется для реализации 1-Wire-интерфейса посредством микросхемы
DS2480. На плате может быть установлена одна или две микросхемы SRAM с
организацией 512Kx8 (в корпусах TSOP-32).
Для обеспечения энергонезависимого
хранения данных использован контроллер DS1321, который в случае
пропадания основного питания запрещает обращения к памяти и переводит
память на питание от 3-х вольтовой литиевой батарейки (CR1632), которая
тоже установлена на плате.
В качестве часов реального времени
применена микросхема DS1315. Она использует ту же литиевую батарейку
для резервного питания. Кроме SRAM TINI имеет микросхему FLASH ROM типа
AM29F040B объемом 512Кбайт с возможностью перепрограммирования в
системе.
В дополнение ко всему этому на плате
установлена микросхема контроллера Ethernet типа SMC91C94, имеющая
100-выводной корпус QFP. Тактируется она от собственного генератора,
который имеет отдельный кварцевый резонатор на частоту 20 МГц.
На 72-контактном разъеме TINI в полном
объеме присутствуют шины микроконтроллера, что позволяет подключать
внешнюю память и различные периферийные устройства.
Плата TINI предназначена для установки
в другие устройства, поэтому она не имеет собственного стабилизатора
напряжения питания. Вместо этого она требует стабилизированного
напряжения питания 5В, ток потребления - не более 250 мА.
Ссылки по теме:
- /pdf/Dallas_Sem/ibutton/tini/dstini2.pdf - Data Sheet
- /pdf/Dallas_Sem/ibutton/tini/hardware/tini_board.pdf - схема TINI
- /pdf/Dallas_Sem/ibutton/tini/hardware/mechrevB72.pdf - механический чертёж
Для того, чтобы начать работать с TINI, нужна еще
одна плата, которая называется TINI SOCKET (панелька для TINI).
Конструктивно TINI SOCKET представляет собой стандартную плату Eurocard
размером 100мм x 160мм. Полная схема TINI Socket находится по адресу /pdf/Dallas_Sem/ibutton/tini/socket72revC.pdf.
Существуют различные варианты TINI SOCKET. В
основном эта плата содержит разъемы: собственно 72-контактную
SIMM-панельку для TINI, разъем RJ45 (Ethernet), RJ11 (1-Wire), D-SUB-9
(RS-232), панельку для i-Button и разъем питания. TINI SOCKET вариант
Е10 содержит все необходимые разъемы, а также посадочные места для
микросхем расширения памяти, сдвоенного UARTa, интерфейса CAN и другие.
На плате собран выпрямитель и импульсный
стабилизатор на микросхеме LT1376, который допускает подключение на
вход переменного напряжения от 9 до 18 В, или постоянного от 9 до 25 В.
Дополнительно на плате установлена микросхема
EEPROM, подключенная по внутренней 1-Wire-шине. Эта микросхема
предназначена для хранения Ethernet MAC-адреса.
Плата имеет возможность расширения, для чего имеются
места для установки дополнительных элементов. А это дополнительная
72-контактная SIMM-панелька для расширения памяти (или системы в
целом), дополнительная 512 Кб FLASH ROM, сдвоенный UART PC16552D плюс
микросхемы преобразователей уровней, интерфейс CAN на микросхеме
PCA82C250.
Работа с платформой TINI.
- - Аппаратное обеспечение TINI
- - Программное обеспечение TINI
- - Начало работы с TINI
- - Дополнительные ссылки по теме
Перед разработчиками достаточно часто встает задача
удаленного управления разнообразным оборудованием и (или) съёмом
показаний измерительных систем или датчиков. Одним из способов решения
её может быть использование глобальной сети Интернет. Для облегчения и
удешевления процесса разработки интерфейса подключения к сети фирмой
Dallas Semiconductor создана платформа TINI. Аббревиатура TINI
расшифровывается как Tiny InterNet Interface - очень маленький
(крошечный) интерфейс для Интернет. Аналогичные решения предлагаются и
другими производителями, например Atmel, HP, Microchip, Zilog . Можно
отметить следующие преимущества TINI:
- мощный чипсет, в основе которого турбо вариант 8051 - самого популярного микроконтроллера
- поддержка развитого ввода-вывода
- небольшие размеры
- доступность как отдельных микросхем чипсета, так и готового
модуля (TINI-board), для быстрого начала работы над собственным
проектом
- для создания приложений используется Java - мощный
платформо-независимый язык программирования. Возможности чипсета
реализуются через дополнительные, специфичные для TINI классы
- низкая цена модуля и свободно распространяемое программное обеспечение.
Рис. 1. TINI board
Аппаратное обеспечение TINI.
Конструктивно TINI board выполнена в виде стандартного 72-контактного SIMM-модуля (см. рис. 1), на котором расположены:
- DS80C390, программно совместимый с 8051 микроконтроллер, основные отличия которого:
- - 4-тактный машинный цикл
- - 40 МГц максимальная тактовая частота
- - 16/32 битный математический сопроцессор
- - 256 + 4096 байт встроенного ОЗУ
- - возможность адресовать до 4-х мегабайт внешней памяти
- - 2 встроенных контроллера шины CAN 2.0B
- - 2 последовательных порта
- - сторожевой таймер.
- 512 Кбайт флэш-памяти.
- 512 Кбайт или 1 Мбайт статического ОЗУ.
- Контроллер энергонезависимой памяти с литиевой батарейкой.
- Контроллер 10Base-T Ethernet.
- Драйвер RS-232.
- 2 интерфейса однопроводной шины 1-Ware.
- Часы-календарь реального времени.
Структурная схема TINI board приведена на рис. 2.
Рис. 2. Структурная схема TINI board
Микроконтроллер относится к семейству
High Speed микроконтроллеров фирмы Dallas Semiconductor, которые при
одинаковой тактовой частоте работают в 2,5 - 3 раза быстрее, чем
оригинальный 8051. Частота кварцевого резонатора равна 18,432 МГц,
внутри микроконтроллера производится удвоение тактовой частоты, то есть
он работает на частоте 36,864 МГц. Длительность одно-цикловых команд
составляет 108,5 н сек.
Память TINI board разделена на 3 сегмента:
- сегмент кода размером 1 мегабайт
- сегмент данных размером 2 мегабайта
- сегмент периферии размером 1 мегабайт.
Если не используются внешние
декодирующие схемы, то флэш-память объемом 512 Кбайт занимает всё
адресное пространство сегмента кода. В нём располагаются:
- начальный загрузчик
- операционная система
- Java API
- первая Java программа, запускаемая операционной системой
(обычно это slush, оболочка операционной системы, однако вместо нее
можно поместить любое приложение, размер которого не превышает 64
Кбайт).
В адресном пространстве сегмента данных
находится ОЗУ. Его объём, в зависимости от модификации TINI board равен
512 Кбайт или 1 Мбайт. В ОЗУ располагается файловая система TINI и так
называемая "куча". При отключении основного источника тока, контроллер
энергонезависимой памяти подключает микросхемы ОЗУ к литиевой
батарейке. Она позволяет сохранить содержимое ОЗУ неизменным в течение
10 лет. Периферийный сегмент используют контроллер Ethernet и
часы-календарь реального времени (RTC, Real-Time Clock). В свободное
адресное пространство этого сегмента (около 928 Кбайт) можно добавлять
другие периферийные устройства.
TINI поддерживает два интерфейса
фирменной однопроводной сети 1-Wire. Один из них реализован на выходе
порта ввода-вывода микроконтроллера с открытым истоком, и считается
внутренним, другой использует специальную микросхему формирователь
сигналов 1-Wire, может работать на большие расстояния, и считается
внешним. Эта микросхема (DS2480S) подключается ко второму
последовательному порту микроконтроллера. Первый последовательный порт
имеет преобразователь уровней (драйвер) RS232. Выводы второго
последовательного порта могут использоваться также для организации
второго интерфейса CAN, два аппаратных контроллера которого встроены в
DS80C390. Системное время и дата поддерживаются микросхемой RTC DS1315,
которая для обеспечения энергонезависимости, также подключена к
литиевой батарейке. Основные микросхемы чипсета TINI board перечислены
в таблице 1. В минимальную систему могут входить только три из них -
микроконтроллер, ОЗУ и флэш-память.
Таблица 1. Чипсет TINI.
Наименование |
Назначение |
Производитель |
Примечание |
DS80C390-FNR |
Микроконтроллер |
Dallas Semiconductor |
|
AM29F040B-55EC |
Флэш-память |
Advanced Micro Devices |
Могут использоваться другие типы и производители |
HY628400ALLT2-55 |
ОЗУ | Hyundai |
Одна или две микросхемы с организацией 512K*8, могут использоваться другие типы и производители. |
LAN91C96 |
Контроллер Ethernet |
Standard MicroSystems Corporation |
|
PM-1006 |
Изолирующий трансформатор 10/100BASE-T |
Premier Magnetics, Inc. |
|
DS1315EN-5 |
Часы-календарь реального времени |
Dallas Semiconductor |
|
DS1321E |
Контроллер энерго-независимой памяти |
Dallas Semiconductor |
|
DS2433S |
EEPROM с интерфейсом 1-Wire |
Dallas Semiconductor |
Подключено к внутреннему однопроводному интерфейсу, служит для сохранения сетевых установок TINI. |
DS2480S |
Преобразователь последовательного интерфейса в 1-Wire |
Dallas Semiconductor |
Формирователь сигналов для внешней однопроводной шины |
DS2502P-UNW |
Add-Only ПЗУ с интерфейсом 1-Wire |
Dallas Semiconductor |
Подключено к внутреннему однопроводному интерфейсу, содержит идентифицирующую информацию TINI. |
DS232AE-N |
Драйвер RS-232 |
Dallas Semiconductor |
|
Программное обеспечение TINI.
Второй, может быть даже более важной,
составной частью платформы TINI является фирменное программное
обеспечение (рис. 3). Для TINI реализованы виртуальная Java-машина и
библиотека классов для выполнения базовых операций. Разработчик
приложения обращается к библиотеке используя API (Application
Programming Interface, интерфейс прикладного программирования). TINI
API содержат описания большинства классов из следующих базовых пакетов
Java:
- -java.lang
- -java.io
- -java.net
- -java.util
Для реализации специфичных для TINI функций создан пакет com.dalsemi, который содержит следующие субпакеты:
- -com.dalsemi.system
- -com.dalsemi.tininet
- -com.dalsemi.shell
- -com.dalsemi.comm
- -com.dalsemi.onewire
Классы из этого пакета обеспечивают
доступ к аппаратному обеспечению TINI, поддержку сетевых протоколов,
реализующих TELNET и FTP серверы. Класс com.dalsemi.comm в основном
предназначен для реализации связи с TINI при конфигурировании ее через
последовательный порт. Для использования последовательных коммуникаций
в приложениях предназначен пакет javax.comm фирмы Sun, он также
реализован на TINI. Не все классы, определенные в TINI API встроены в среду периода выполнения. Это сделано для экономии места во флэш-памяти. Классы, не включенные в среду периода выполнения, могут быть включены в приложение при его построении.
Рис. 3. Программное обеспечение TINI
Для доступа к оборудованию на низком
уровне или написанию критичных по времени участков программы
программист может использовать собственные методы, то есть
реализовывать некоторые процедуры на языке ассемблера. Поддержка
собственных методов реализована в TINI JVM, а компилятор с ассемблера
включен в пакет фирменного программного обеспечения.
В основании среды периода выполнения лежит операционная система. Она состоит из трех основных компонент:
- планировщики процессов и потоков
- подсистема управления памятью
- подсистема управления вводом-выводом
Планирование процессов заключается в
организации простого цикла из запущенных процессов. Очередному процессу
выделяется для работы 8-миллисекундный интервал для выполнения, по
истечении которого он приостанавливается и помещается в конец очереди
процессов. Каждый процесс имеет собственный планировщик потоков,
который также работает по кругу, но уже с двух миллисекундным
интервалом.
Подсистема управления памятью
распределяет ее для всех процессов (системных и приложений), управляет
файловой системой и производит сборку неиспользуемой более памяти в
кучу. К куче относится оперативная память сегмента данных от окончания
системной области и до конца сегмента данных. Память, выделенная
приложению, не освобождается явно при его завершении. Сборкой
неиспользуемых блоков памяти занимается независимый процесс сборщика
мусора, который всегда запускается при старте системы.
Подсистема ввода-вывода разделена на
два компонента: стек TCP/IP и менеджер ввода-вывода для остальных
устройств. Стек TCP/IP обеспечивает большинство возможностей больших
систем и поддерживает множество сетевых интерфейсов, включая Ethernet и
PPP (Point-to-Point Protocol). Менеджер ввода-вывода предназначен для
управления интерфейсами CAN, 1-Wire, параллельной шиной и отдельными
выводами портов микроконтроллера.
Начало работы с TINI.
Аппаратное обеспечение, необходимое для начала работы с TINI:
- DSTINI1-512 (или DSTINI1-1MG) - соответственно TINI с 512 КБайтами ОЗУ (или 1 Мбайт).
- Кросс-плата, на которой должны быть, как минимум, следующие
разъемы: 72-пиновый SIMM коннектор для установки TINI, DB9F и RJ45 для
подключения к последовательному порту RS232 и сети Ethernet
соответственно, и разъем для подачи питания на TINI. Можно
использовать DSTINIS-005 (E10 socket board) от Dallas Semiconductor
(рис. 4), или изготовить ее самостоятельно, в этом случае необходимо
обязательно соединить выводы 12 (выход CE0/ микроконтроллера) и 45
(вход выбора кристалла флэш-памяти) TINI, а также подать +5 Вольт на
вывод 9 (вход Vpp TINI board).
- Стабилизированный источник питания с выходным напряжением 5 Вольт (+ 5%) и током нагрузки не менее 300 мА.
- Модемный ("прямой") кабель RS232.
- Патч-корд Ethernet 10Base-T.
Рис.4. E10 socket board
Программное обеспечение, необходимое для начала работы с TINI:
- Фирменное программное обеспечение TINI. Его необходимо загрузить с FTP-сервера Dallas Semiconductor ftp://ftp.dalsemi.com/pab/tini, текущая версия 1.02b, файл tini1_02b.tgz, размер 3301054 байт.
- Стандартный комплект разработчика Java - Java 2 SDK. Он свободно доступен с веб-сайта фирмы Sun http://java.sun.com/j2se/, текущая версия 1.31, файл j2sdk-1_3_1-win.exe, размер 34440521 байт.
- Комплект Java Communications API, также свободно доступен для загрузки с http://java.sun.com/products/javacomm/, текущая версия 2.0, файл javacomm20-win32.zip, размер 272690 байт.
Загрузка интерпретатора JVM, API, операционной системы и оболочки slush во флэш-память TINI.
TINI поставляется без установленной операционной
системы, во флэш-памяти находится только начальный загрузчик программ
из последовательного порта. Для загрузки операционной системы и
конфигурирования TINI для последующей работы в сети Ethernet
последовательность действий может быть такой:
- Распакуйте файл tini1_02b.tgz архиватором WinZip. Если вы, например, укажете путь для извлеченных файлов c:\work, то будет создана директория c:\work\tini1.02b, содержащая файлы из архива.
- Установите Java 2 SDK. Для этого запустите файл j2sdk-1_3_1-win.exe и задайте директорию для установки, например c:\work\jdk1.31.
- Установите Java Communications API. Для этого:
- распакуйте с помощью WinZip файл javacomm20-win32.zip, например, в директорию c:\work. Будет создана
директория c:\work\commapi, содержащая файлы из архива.
- скопируйте файл win32com.dll из директории c:\work\commapi в директорию c:\work\jdk1.31\jre\bin.
- скопируйте файл comm.jar из директории c:\work\commapi в директорию c:\work\jdk1.31\jre\lib\ext.
- скопируйте файл javax.comm.properties из директории c:\work\commapi в директорию c:\work\jdk1.31\jre\lib.
- В директории c:\work\tini1.02b создайте bat-файл javakit2.bat со следующим содержимым:
set classpath=c:\work\tini1.01b\bin\tini.jar
c:\work\jdk1.31\bin\java -classpath c:\work\tini1.02b\bin\tini.jar
JavaKit
- Выключите компьютер и подсоедините к его свободному RS232
порту кросс-плату с установленной TINI (кабель должен быть модемным).
6. Включите компьютер и подайте питание на TINI.
- Запустите файл javakit2.bat, это приведет к запуску JavaKit.
- В окне Port Name выберите последовательный порт, к которому подключена TINI.
- Нажмите кнопку Open Port, после этого должна стать доступной кнопка Reset.
- Нажмите кнопку Reset. Через линию DTR последовательного порта импульс сброса поступит на вход RESET микроконтроллера и приведет к запуску программы начального загрузчика из последовательного порта.
Она передаст в терминальное окно JavaKit сообщение следующего вида:
TINI loader 05-15-00 17:45
Copyright ©2000 Dallas Semiconductor. All rights reserverd.
- Загрузите в TINI операционную систему. Для этого в меню File выполните команду Load File, выберите файл c:\work\tini1.02b\bin\tini.tbin и нажмите кнопку Open. Произойдет загрузка файла, это займет несколько минут.
- Очистите кучу. Для этого наберите на клавиатуре следующие команды:
- b18<Enter> - будет выбран банк 18 флэш-ПЗУ
- f0<Enter> - этот банк будет заполнен байтом 00.
- Загрузите в TINI оболочку slush, для чего повторно выполните команду Load File из меню File, открыв теперь файл c:\work\tini1.02b\bin\slush.tbin. Загрузка его займет уже меньше времени, так как файл короче.
- Выйдите из начального загрузчика TINI, набрав на клавиатуре команду:
- e<Enter>
- Произойдет старт операционной системы TINI и запуск оболочки slush. На экран при этом будут выведены следующие сообщения:
----> TINI Boot <----
TINI OS 1.02b
API Version 800A
и так далее, и в конце:
Hit any key to login.
- Нажмите на любую клавишу, а затем введите логин и пароль - root и tini соответсвено. Теперь можно вводить команды slush.
- Чтобы получить справку по доступным командам напечатайте: help<Enter> . Справку по конкретной команде можно получить напечатав:
help имя_команды<Enter>
- Установите текущее время и дату. Например, если нужно установить 14 часов 35 минут 00 секунд 22 августа 2001 года, наберите:
date 08222001143500<Enter>
Выполнив команду date без параметров, вы прочитаете дату и время из TINI.
- С помощью команды ipconfig задайте ip-адрес TINI (его, а также маску подсети необходимо предварительно узнать у вашего системного администратора).
ipconfig -a ip_адрес -m маска_подсети<Enter>
Например:
ipconfig -a 192.168.0.15 -m 255.255.255.0<Enter>
После выполнения этой команды будет задан адрес TINI в вашей сети и
вы получите на экране сообщение о старте Telnet и FTP серверов на TINI.
- Все готово! Теперь можно закончить работу с JavaKit, отсоединить TINI от последовательного порта (предварительно, на всякий случай, выключив и компьютер и TINI), и подключить ее к сети Ethernet
соответствующим кабелем.
Примечание. Перечисленные выше программные средства можно получить у нас на CD.
Дополнительные ссылки по теме:
- www.ibutton.com/TINI - официальная страница TINI.
- www.jguru.com/faq/TINI - вопросы и ответы поTINI.
- www.smartsc.com/tini - сайт с большим количеством разнообразной информации по TINI.
- www.systronix.com - сайт фирмы Systronix, специализирующейся на встроенных системах.
- www.elin.ru/tini - страница отечественной фирмы НТК "Элин", посвященная TINI.
Контактная информация
За более подробной информацией о платформе TINI обращайтесь к Бобровичу Владимиру. E-mail: bvv@rainbow.msk.ru.