На начало  
Карта сайта
О себе
TINI ?
"Железо"
Справочник
Софт
Проекты
Документация
FAQ
Ссылки
Связь

 Что такое TINI и с чем его есть ?

 

Собственно говоря TINI является самостоятельной аппаратно-програм-мной платформой базирующийся на высокоскоростном микроконтроллере DS80C390* производства Dallas Semiconductor и работающей под управлением собственной OS (если конечно так можно выразится) базирующийся на основе Java VM. Я не опечатался, да, да именно встроенная Java машина написанная для 51 ядра.

 

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

 Начнем с ознакомительного курса.

 Итак, вкратце что может «машинка» ? Может (или не может, как напишите софтяру) справляется с интеграцией довольно медленных однопроводных (и двух и n-проводных J) рассредоточенных  сетей с более производительными сетками типа Ethernet. Во невидаль скажите Вы, ага, почти, а может ли скажем PicoWEB (ни в коем случае не умоляя достоинств последнего) аль ему подобный, легонько так перебросить пару пакетов из MicroLAN в Ethernet, принимать команды через WEB интерфейс и заметнуть данные в Modbus ? Нет ? НЕТ !Плюс к этому, SMTP, плюс FTP в общем плюсов много, хотя надо признать и не один сплошной плюс, есть и своя ложка дегтя. Но пока только мед, деготь далее . Если серьезно, то на плате размером с SIMM модуль  имеет в своем комплекте интерфейсы: Ethernet (полный со всеми формирователями), RS-232 , 1-Wire, CAN , I2C, SPI (реализуются программно) и естественно параллельную шину, по сути просто доступные для Вашей работы стандартные 51-е порты. Вот  вкратце описание, теперь думаю пора перейти от лирики к архитектуре.

 АРХИТЕКТУРА TINI Board

 TINI Board представляет из себя стандартный 72х пиновый SIMM модуль на котором установлен так называемый TINI Chip Set, базой которого является как уже говорилось выше DS89C390 (или новый DS89C400, но на его основе уже совершенно другая плата)

 

     - Машинный цикл за 4 такта

     - Максимальная тактовая частота – 40 МГц

     - Встроенный мат. сопроцессор – 16/32 бит

     - 4 Кб встроенного статического ОЗУ

     - 4 Кб встроенного статического ОЗУ (ее можно использовать как память                программ /данных/стек)

     - 2 встроенных CAN 2.0B контроллера (формирователи не установлены)

     - 2 встроенных последовательных порта

     - WDT (сторожевой таймер)

   ну и естественно программная совместимость со стандартными MSC-51 семейством

 

 

  К базовыми элементами TINI относятся:

  - Микроконтроллер принадлежащий к очень интересному семейству High Speed компании Dallas Semiconductor, который при прочих равных условиях в 2-3 раза производительнее стандартного 8051. Частота опорного кварцевого генератора на плате составляет 18.432 МГц, далее внутри самого «чипа» производится удвоение тактовой частоты, т.е. он (микроконтроллер) фактически работает на частоте 36.864.

 - Флэш-память – AMD AM29F040B объемом 512 Кб

 - Статическое ОЗУ – в оригинале HY628400A (в моем варианте установлен SEC           K6T4008C1B) объемом от 512 Кб до 1024 Кб в зависимости от варианта исполнения (да здравствуют паяльники )

 - Интерфейсы CAN и UARTы встроены в сам микроконтроллер, для формирования стандартных уровней RS-232 на плате установлен чип DS232A, для CANа же требуется отдельный внешний драйвер

 - Так же на плате установлен отдельный контроллер Ethernet SMC LAN91C96 + «сетевой» трансформатор + вся необходимая мелочевка для получения полноценно 10Base-T Ethernet

 - Дополнительно к TINI можно «прикрутить» внешний контроллер последовательных портов типа 16C552 и таким образом можно получить дополнительно 2 полноценных RS-232

 - На плате установлен драйвер внешней однопроводной шины DS2480 подключенный ко второму UARTу, который вполне может выполнять роль и второго CAN интерфейса

 - Естественно всякая обвязка  из EEPROM (DS2433) и EPROM MAC адреса для Ethernet (DS2502)

 

 Память TINI Board разделена на 3 сегмента:

 - Сегмент памяти кодов размером 1Мб       (0х000000 – 0х0FFFFF)

 - Сегмент памяти данных размером 2 Мб    (0x100000 – 0x2FFFFF)

 - Сегмент периферии размером 1 Мб          (0x300000 – 0x3FFFFF)

 

 Вся память у нас распределена таким образом:

 - Bootstrap Loader (начальный загрузчик)

 - OS

 - JAVA API

 - и, ура 64 Кб для приложений, по умолчанию*NIX подобная оболочка операционной    среды, называемая slush ( с разговорного аглицкого переводится как   сентиментальная болтовня :-)

 В адресное пространство сегмента данных вписывается ОЗУ где расположена файловая система (жалко что винт нельзя навесить ..хотя такой проект уже есть) и «куча» Java VM. При обесточивании TINI происходит автоматическое подключение ОЗУ к литиевой батарейки . Про сегмент флэш-памяти сказать особо нечего и так все ясно. В периферийном адресном пространстве обитает Ethernet контроллер и часы реального времени (DS1315). Все остальное свободное адресное пространство можно и нужно использовать по своему усмотрению. К примеру как я уже писал выше, можно добавить последовательные порты, подключить LCD и еще много чего ( у кого на что хватает фантазии и денег)в общем остается примерно 920 Кб адресов (во написал, грузите апельсины бочками…)

 Естественно TINI поддерживает 1-Wire интерфейс. MicroLAN двух «веточный», 1-я «ветка» зарезервированная для внутреннего применения на нее навешаны EEPROM и EPROM MAC адреса Ethernet (очень интересная сноска на это есть в «Лицензионном соглашении» советую прочитать ), вторая «ветка» подключена через драйвер формирователь DS2480 и используется для внешних подключений ( с возможность программирования 1-Wire EEPROM).

 С чем есть TINI ?

 Второй составной частью платформы TINI является фирменное программное обеспечение. Для TINI написана специальная (и сколько я не смотрел похоже единственная) Java машина и соответствующие библиотеки Java классов. При разработке используется свободно распространяемое программное обеспечение основанное на кросс-платформенном языке JAVA.

  Для программиста доступны основные базовые классы Java API:

 - java.lang                  - java.io

 - java.net                   -  java.util

 Для работы со специфичными функциями TINI используются следующие базовые классы:

  - com.dalsemi.system              - com.dalsemi.tininet

 - com.dalsemi.shell                  -com.dalsemi.comm

 - com.dalsemi.onewire

 

Эти классы являются фирменными и включены в стандартный freeware пакет ПО для TINI Board. В основном они предназначены для поддержки аппаратуры TINI, обеспечивают сетевую поддержку, реализуют сервисы типа FTP, TELNET. Так же существует множество классов от сторонних поставщиков, в основном реализованных в рамках программы OpenSource (встречаются даже такая экзотика, типа - классы работы с протоколами ModBus ).

 

 

Для непосредственного низкоуровневого доступа к «железякам», программист имеет возможность использовать так называемый Native Method, т.е. по сути, писать кусок наиболее критичного кода на «Нативном», т.е. родном для контроллера языке ассемблера.

  Операционка TINI состоит из трех основных компонентов:

 - Планировщик – процессов и потоков

 - Подсистема управление памятью

 - Подсистема управление вводом/выводом

 Собственно планировщики работают в циклическом режиме. Каждому процессу (более подробно организация и ограничения планировщиков описаны в главе «Ограничения» для каждой конкретной версии TINI firmware) для работы выделяется 8-миллесекундный интервал , по истечению которого процесс приостанавливается и помещается в конец очереди. Кучей называется сегмент оперативной памяти начинающийся с конца системной области и протирается до конца сегмента данных. В эту самую кучу сваливаются неиспользуемая более память, а дальше уже трудиться «сборщик мусора» являющийся автостартуемым, независимым процессом занимающимся освобождением драгоценной для нас памяти в случае если Ваше приложение явно вернуло выделенную ему память по окончанию работы .

 Подсистема ввода/вывода разделена на две части: одна часть работает с TCP/IP стеком, другая обслуживает все остальные периферийные устройства. И хотя на данный момент реализация TCP/IP не является полной, однако поддерживаются все основные сетевые примочки типа PPP, TELNET, HTTP,FTP,SMTP. Вторая часть обозначенная на рисунке как менеджер ввода/вывода непосредственно отвечает за работу периферийных интерфейсов UART,1-Wire,CAN портами ввода/вывода.

 В принципе думаю для ознакомления с платформой TINI вполне достаточно и можно сформировать какое никакое свое мнение. Далее рекомендую прочитать «Главу» описывающую ограничения TINI Board.

 Особо хочется поблагодарить моего «крестного» за то, что, он купился на мои уговоры и отдал мне в бессрочное пользование комплект TINI. Без его консультаций мне было бы существенно тяжелее осваивать «машинку», да что там говорить студенческие заработки не позволяют разбрасываться денежками на финансирование интересов :-).

 БОЛЬШОЕ Спасибо, «Дядя Миша» :-)


| TINI? | Железо | Справочник | Софт | Проекты | Документация | FAQ | Связь |

Ссылки | На главную страницу

 
Используются технологии uCoz