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

 

Tiny InterNet Interface FAQ от akTINIy

(v1 ноябрь 2002 API ver 1.02x)

 Последнее обновление:

22.03.2003

 

Что такое TINI?

 Это сокращение от «Tiny InterNet Interface»- «Миниатюрный Интернет Интерфейс».

Представляет собой плату аналогичную обычному 72х ногому SIMM модулю памяти, устанавливаемому в компьютеры. На плате установлены все основные микросхемы от микроконтроллера до трансформатора гальванической развязки Ethernet. TINI использует специальную оригинальную операционную систему на основе языка Java. Разработчик и производитель Dallas Semiconductor – (http://www.maxim-ic.com).

 Что такое TINI Chip Set?

Как явствует из названия это набор микросхем: это микроконтроллер, сетевой контроллер и микросхема памяти (Flash ROM).

 

Микроконтроллер – DS80C390 (или новый DS80C400). Поддерживает встроенные последовательный, CAN интерфейсы и параллельные порты. Располагает разветвленной системой ввода/вывода. Позволяет адресовать до 512 Кб Flash ROM и до 4 Мб RAM

 

Сетевой контроллер как понятно отвечает за функционирование сетевых приложений и поддерживает стандарт Ethernet 10 BaseT

 

 Flash ROM содержит себе «прошивку» (firmware) TINI OS, код виртуальной Java машины и стандартные Java классы и другие программные элементы.

Более подробно смотри (http://aktiniy.narod.ru/atini/index.htm)

Что представляет собой сама плата TINI.

Плата TINI представляет собой комбинацию TINI Chip Set и остальных элементов установленных на плате размером со стандартный SIMM модуль. На плате установлены формирователи 0го (S0) последовательного интерфейса, «чип» формирователя 1-Wire шины, часы реального времени (RTC), а так же чип с уникальным Ethernet MAC адресом и батарейка резервного питания для RAM и RTC.

Более подробно смотри (http://aktiniy.narod.ru/hard/index.htm)

Есть ли почтовые рассылки обсуждающие TINI?

На данный момент, к сожалению только англоязычные, как и фирменные от Dallas Semiconductor, так и от третьих источников. Основной это конечно от Далласа. Если интересно подписаться и почитать архивы, то сходите на http://www.iButton.com/TINI там все есть. Хотелось бы конечно сделать русский, но, к сожалению людей осваивающих TINI довольно мало для поднятия своего листа.

Где взять TINI?

Тут, по всей видимости, рецептов нет. Стандартно - у поставщиков продукции Dallas/Maxim. Хотя я лично сразу (на складе) в Москве найти не смог. Все в основном под заказ, от 3х недель и от 120 уев. Лично мой как понятно от «крестного».

Где взять «мамку» для TINI?

Если фирменную то см. вопрос «Где взять TINI». Хотя мне лично родная «мамка» не очень нравится, и я использую самоделку. Первый мой вариант был прост и незатейлив:

         а) Была взята стандартная «макетка» размером 200х210 мм и шагом 2.54

б) Из старой метеринки от PC с помощью фена выпаян SIMM slot и впаян в «макетку»

в) Туда же был добавлен стабилизатор питания, 16C552 + формирователи для 2х RS-232 и прочая обвеска в соответствии со схемой стандартной мамки. Все «связано» МГТФом

Вот такой вариант минимальной стоимости. Второй вариант нынешний, это уже нормальная заказная плата, заточенная под мои нужды. Сейчас она в виде макета, но скоро ожидаю «подарка» от крестного в виде нормальной печатной платы. Видимо у меня будет некоторый излишек плат, если кому интересно, то можно и поделиться.

Могу ли я использовать привычные средства разработки для программирования TINI?

Естественно можете. Просто необходимо убедится  в том, что, в Ваш IDE импортированы специфические Java классы, предназначенные для работы с TINI, а не только свои стандартные. Пример того как используется IntelliJ IDEA в работе... (http://aktiniy.narod.ru/tutor/apps/intellij_idea.htm)

Куда я могу сообщить об найденных мною «багах» в ПО TINI?

На мой взгляд, существует два варианта: а) при нормальном владении «аглицким» Вы помещаете сообщение в Dallas Bug Tracking System (bugreport@dalsemi.com) и ждете ответа. б) и видимо более правильный, 1е Вы внимательно читаете FAQи и смотрите, нет ли там упоминания об ошибке, если есть, то читаете ответ и вопрос закрыт. Есть ошибка «оригинальная» J то Вы при наличии знания языка отписываетесь в Dallas и обязательно выносите сообщение об ошибке на суд общественности. В конце концов, если мы не поможем друг, другу, нам не поможет никто. В этом FAQе поднято несколько вопросов, не освященных в импортных материалах, и я с удовольствием помещу сюда и Ваш вопрос-ответ.

Как работает «сборщик мусора» (garbage collector)?

«Мусорщик» автоматически включается при работе приложения в момент, когда объем свободной памяти, падает менее чем до 64Кб. В отличие от стандартной реализации Java при вызове System.gc() «сборщик» начинает работу немедленно. Так же можно запустить «сборщика» из  Slush командой gc, которая так же немедленно начнет свою работу.

Что такое карта распределения памяти Flash ROM? Сколько памяти доступно для моего приложения?

Всего доступно 8 банков памяти по 64 Кбайт каждый, общий объем Flash ROM 512 Кбайт.

Вот как они распределены:

         Банк 0 – Начальный загрузчик (Boot Loader)

         Банки 1,2 – Firmware (tini.hex)

         Банки 3-6 – TINI API (tiniapi.hex)

Банк 7 – Первое Java приложение стартуемое при загрузке TINI OS (обычно Slush) или Ваша программа

 

Свое приложение, которое необходимо запускать при старте TINI Вы поместите в 7й Банк на место Slush. При этом необходимо помнить, что максимальный объем приложения – 64Кбайт 

Могу ли я использовать батарейное питание для TINI?

Несомненно. Однако стоит рассчитать мощность батареек или АКБ исходя из того, что максимальный потребляемый TINI ток равен 250 мА при напряжении питания 5 Вольт. Если Вы хотите использовать АКБ, то необходимо позаботится об автоматическом зарядном устройстве. Тут простор для творчества огромен. Можно использовать и однопроводные «менеджеры» зарядных устройств типа DS2438 и т.д.

О чем горят светодиоды?

Всего на верхней стороне платы TINI установлено 4 светодиода,


 

обозначенные как: ST, LK, RX, TX. Свечение ST говорит о том, что микроконтроллер запущен. Остальные показывают статус работы Ethernet контроллера. LK означает наличие связи по сети Ethernet (естественно только во том случае если TINI подключен к сети). Так же LK загорается во время цикла загрузки TINI. Соответственно RX и TX говорят о том, что идет прием/передача информации по Ethernet.

Поддерживает ли TINI Fast Ethernet (100 BaseT)?

Нет. Текущая реализация на DS80C390 работает только с 10 BaseT.

Могу ли я использовать Jini на своем TINI?

К сожалению в настоящее время нет. TINI не поддерживает «сериализацию» и механизм RMI.

Существует ли в TINI поддержка «сеарилизации»?

Да, начиная с версии 1.11, в состав API включили поддержку сериализации. Существуют определенные ограничения на использование сериализации с которыми можно познакомиться на страничке описывающей ограничения версии 1.11. (http://aktiniy.narod.ru/files/software/limit_111.htm#serial)

Поддерживается ли RMI?

Нет.

Как мне увеличить объем ОЗУ на плате TINI?

 

TINI по умолчанию имеет два стандартных места для размещения «чипов» ОЗУ (512 Кб х 8), но в основном устанавливается только один (фото справа). Firmware по умолчанию поддерживает оба «чипа» памяти, т.ч. Вам по сути дела необходимо только купить и впаять необходимую микросхему.

Что можно использовать? Практически любые ОЗУ 512Кх8 со временем доступа 55 нс., в TSOP-II корпусе. Я у себя использую Samsungовские «чипы» K6T4008C1B-1VB55. Так же можно использовать Хитачевские HM628512BLTT-5,HM628512BLTT-5SL,HM628512BLTT-5UL.

Как отключить «анонимный» доступ к FTP?

Для отключения анонимного доступа  необходимо отредактировать переменную FTP_ALLOW_ANON в /etc/.startup файла и установить ее значение в false (по умолчанию-true).

            - setenv FTP_ALLOW_ANON false
 

И не забудьте перезагрузить TINI для получения эффекта от Ваших манипуляций.

 Для чего нужен файл /etc/.startup?

/etc/.startup содержит инструкции Slush для выполнения их во время загрузки TINI.

Вот примерное содержание файла:

########
#Autogen'd slush startup file
setenv FTPServer enable
setenv TelnetServer enable
setenv SerialServer enable
##
#Add user calls to setenv here:
##
initializeNetwork
########
#Add other user additions here:
 
Вы можете добавить сюда команду на запуск своего приложения, и оно будет 
автоматически запущено во время старта TINI. 

Для чего нужен файл /etc/.tininet?

Файл содержит имя «хоста» и доменное имя TINI. Имя «хоста» и домена возможно задавать из командной строки Slush, но это просто неудобно. Установка имен осуществляется командой ipconfig.

Вот примерное содержание файла:

HostName:AKTINIY
DomainName:ak.net

Как очистить «кучу»?

-Необходимо установить соединение между Вашим PC и TINI по последовательному каналу

-Сделать сброс TINI

-В терминальном окне JavaKit набрать команду “b18” и “f0”

 При очистке «кучи» будут уничтожены все данные в ОЗУ и потеряны текущие настройки. После очистки необходимо перезагрузить TINI и в случае необходимости восстановить данные о IP адресе.

Как сконфигурировать TINI для работы с DHCP?

Использовать команду ipconfig -d. При этом не хило убедиться в том, что у Вас в сети есть DHCP сервер. Советую прочитать «Ограничения http://aktiniy.narod.ru/files/software/limitation.htm » там описаны несовместимые с TINI DHCP сервера.

Для чего нужен файл /etc/passwd?

Файл /etc/passwd необходим для хранения имен и паролей всех пользователей. По умолчанию поддерживается две записи о пользователях: root (пароль-tini)и guests (пароль-guests). Есть два варианта модификации информации о пользователях, использовать команду passwd и вносить изменения в файл ручками.

Вот примерное содержание файла:

root:b9f0b678328e5f506c0290ca3b4edba1943462d9:128
guest:df1dab4424d0c9f46886135c8b7abc8d3ec036e7:0                                       

 Поля в файле отделены друг от друга двоеточием (:) Первое поле содержит имя пользователя; второе является «хэшем» пароля, а третья UID (идентификатор пользователя)

! Стоит обратить внимание на «привилегии» доступа к файлу, они должны обязательно иметь значение «доступа по чтению» (Read Permission) как “Other”. С помощью команда ls -l /etc/passwd можно проверить все флаги файла. Они должны иметь вид -rwxr--

Где можно найти примеры для TINI?

Множество примеров есть в архиве с firmware. Так же доступны множество различных сайтов с дополнительными проектами и примерами. К сожалению русскоязычных на осень 2002 года я не нашел (если у кого есть ссылки на Рунет - поделитесь).  А так для владеющих «аглицким»:

http://www.smartsc.com/tini/TiniHttpServer/

http://www.smartsc.com/tini/TEd/

http://www.ibutton.com/TINI/developers/community.html

http://www.wilson.co.uk/Software/Tini/TiniTim.zip

http://www.tini.prug.or.jp/app-eng.html

http://www.visi.com/~nordquis/TINI/

http://akTINIy.narod.ru

Какая версия firmware последняя? 

На сей момент самая последняя версия – 1.11.

(ftp://ftp.dalsemi.com/pub/tini/tini1_11.tgz)

Где можно найти полное описание на «чип» микроконтроллера TINI?

Описание DS80C390 можно взять на сайте Maxim/Dallas.  http://www.dalsemi.com/datasheets/pdfs/80c390_userguide.pdf.

Так же можно посмотреть описание всего этого интересного семейства контроллеров:

http://www.dalsemi.com/datasheets/pdfs/hsmicro_userguide.pdf. 

Где можно найти полное описание на Ethernet контроллер ?

Описание на чип контроллера Ethernet применяемого в TINI – SMSC LAN91C96 можно скачать с сайта производителя: http://www.smsc.com/main/catalog/lan91c96.html

Где можно найти принципиальную схему TINI?

http://www.ibutton.com/TINI/hardware/tini_board.pdf

http://aktiniy.narod.ru/files/Pub/tini_board.zip

Где можно посмотреть «распиновку» платы TINI?

Можно взять фирменное описание 72 pin версии TINI - http://www.ibutton.com/TINI/dstini1.pdf , или перевод http://aktiniy.narod.ru/files/Pub/tini_pin.zip

Как мне отключить FTP сервер?

Вариантов два: если Вам необходимо отключить сервер немедленно, то необходимо выполнить команду stopserver -f  в командной строке Slush. Для полного отключения сервера просто закомментируйте необходимую строчку в файле /etc/.startup. Во втором варианте необходимо перезагрузить TINI для получения эффекта, либо изменения вступят в силу только при следующей перезагрузке TINI.

Какие номера можно присваивать в качестве UID для использования в /etc/passwd?

Идентификатор пользователя или UID, может принимать значение от 1 до 255 включительно. Нулевой UID зарезервирован для гостевого входа в систему и не может быть использован в качестве аргумента в команде adduser.

UID 127 имеет привилегия “superuser”. UID 128 закреплен за root. 

Где можно взять «софт» web сервера для TINI?

Один сервер  -TINWebServer идет в качестве примера в архиве TINI firmware. Еще один очень такой интересный сервер доступен на http://www.smartsc.com/tini/TiniHttpServer/

Поддерживает ли TINI Java 2?

Нет. Текущие библиотеки классов для TINI основаны на JDK 1.1.

Что такое начальный загрузчик?

Начальный загрузчик (НЗ) или Boot Loader это первая программа, с которой Вы столкнетесь при работе с TINI. Он необходим для загрузки, модернизации ПО TINI и очистки «кучи».  НЗ записывается в 0й банк Flash ROM и взаимодействует с JavaKit установленной на Вашем компьютере.

Я хочу подключить TINI к своему PC, используя Ethernet подключение. Возможно ли подключение без использования сетевого хаба?

Несомненно. Необходимо установить и настроить сетевую карту и использовать «кроссовый» кабель. Он отличается от обычного Ethernet кабеля тем, что на обычном кабеле все контакты соединены один в один, а в кроссовом кабеле контакты приемника и передатчика «кроссированы».

 
Кросс кабель
Нормальный кабель
Сигнал
Контакт TINI
Контакт PC
Контакт TINI
Контакт хаба
TX+
1
3
1
1
TX-
2
6
2
2
RX+
3
1
3
3
Нет соединения
4
4
4
4
Нет соединения
5
5
5
5
RX-
6
2
6
6
Нет соединения
7
7
7
7
Нет соединения
8
8
8
8

1й контакт RJ-45 разъема находится справа, если смотреть на разъем сверху, защелка снизу.

!!! Не забудьте про то, что TINI поддерживает только 10 Мбит Ethernet!!!

Что за формат используется для загрузки программ во Flash ROM TINI?

Обычный Intel Hexadecimal Object File Format (сокращенно hex) формат. Документацию можно взять на  ftp://download.intel.com/support/processors/i960/devtools/intelhex.pdf.

Если говорить кратко то формат поддерживает только символы из набора ASCII в диапазоне 0-9,A-F и «:»

Файл может имеет примерно такой вид:

:020000040007F3

:1000000096D2000480030A160000000000000000E1

:1000100000310000000015B500184E001A50001CF9

...

:1096C0000E190EC3BF3A0F190EC3A90FB8001AB175

:1096D000010165022D023300000001010003120F99

:0696E000B000E2EB0F6F89

:00000001FF

 Каждая строка имеет вид:

 
    :[nn][aaaa][tt][dddd...dd][cc]

 где:

 
: = Начало данных
n = Количество фактических байт данных (область dddd…dd)
a = Адрес загрузки данных
t = Тип записи (см. ниже)
d = Сами данные
c = Контрольная сумма
 

Все области, кроме данных являются областями фиксированной длинны. Область

данных может иметь длину от 0 до 255. Естественно что все закодировано в

шестнадцатеричный формат.

Тип записи может иметь вид:

0x00 = Область данных
0x01 = Конец Файла 
0x02 = Область Расширенного Адресного сегмента 
0x03 = Начало Адресной области 
0x04 = Расширенная Линейная Адресная область
0x05 = Начало Линейной Адресной области
 
TINI использует Расширенную Линейную Адресную область для выбора банка Flash 
ROM и расчета смещения адреса загрузки относительно начала указанного банка. В 
приведенном примере загрузка будет произведена в начало 7го банка  
(:020000040007F3)

Контрольная сумма рассчитывается стандартным образом. Конец файла всегда должен иметь длину области данных 0х00 и заканчиваться (:00000001FF).

Я хочу, что бы моя программа автоматически запускалась при старте TINI. Что для этого нужно сделать?

Для этого необходимо добавить запись в /etc/.startup. Подробности см. (описание Slush http://aktiniy.narod.ru/files/software/slush.htm)

Где найти более подробную информацию о применяемой в TINI Flash ROM.

В TINI стандартно используется Flash Am29F040B-55EC объемом 4 Мбит (512 Кбайт х8) производства AMD. Описание можно скачать http://www.amd.com/products/nvd/techdocs/21445.pdf

Какой кабель необходим для связи TINI и компьютера?

Стандартный 9 штырьковый кабель «папа» со стороны TINI , «мама» со стороны PC.  Нуль-модемный для этих целей не подходит! Очень хорошо подходят кабели от APC UPS.

Я новичок в Java подскажите, где мне найти простейшую программу типа “Hello TINI”. И как ее запустить на TINI.

См. Раздел Помощи (http://aktiniy.narod.ru/tutor/apps/apps.htm)

Где можно найти описание «чипа» последовательного порта установленного на плате TINI?

В TINI в качестве формирователя сигналов порта RS-232 используется DS232A. Его описание можно скачать http://www.dalsemi.com/DocControl/pdfs/232a.pdf.

Доступны ли какие либо исходники кроме текстов загрузчика?

Нет. И более того сейчас с сайта Dallas исчезли и они.

Где-то в Инете прочитал о том, что на платах TINI установлены не те резисторы? Это правда? Что делать?

В принципе это правда, но с оговорками. Эти платы были произведены с 20 по 24 марта 2000 г, на заводе в Штатах. Сейчас производство перенесли в Азию (Филиппины) и таких проблем пока не было. При этом это было больше двух лет назад, и бракованные платы вряд ли попадут к нам в Россию. Но на всякий случай укажу, как отличить брак от нормальных плат. На плате TINI есть наклейка (обычно на чипе памяти, обведено красным см. фото)

Так вот, бракованные платы имеют следующую надпись на наклейке: DSTINI, 0011A ES, 115059

Брак был связан с неправильными номиналами двух резисторов в цепях Ethernet. Более подробная информация раньше была в mail list от Далласа, если интересно поднимите архивы.

Что такое JavaKit и как им пользоваться?

По сути дела это обычная «терминалка» написанная на Java, с элементами непосредственного управления TINI.  Устанавливается на Вашем компьютере и взаимодействует с TINI посредством стандартного последовательного порта.

Что такое Slush и как им пользоваться?

Это маленькая системная оболочка для работы с командной строкой очень смахивающая на UNIXовые «шеллы» типа Bourne shell. Более подробное описание (http://aktiniy.narod.ru/files/software/slush.htm)

Какова частота тактирования контроллера TINI?

Основной кварц работает на частоте 18,432 МГц, при этом производится внутренние удвоение частоты в самом контроллере. Так что фактическая частота равна 36,864 МГц.

Каково количество одновременно работающих Java «ниток»?

TINI OS поддерживает максимально до 32 (API 1.11) и 16 (API 1.02x) «тредов» на процесс и при лимите в 8 процессов (любых, Java, Native , комбинированных). При этом учтите, что Slush так же считается процессом.

Какое  количество одновременно открытых «сокетов» поддерживает TINI?

Не более 24х.

Могу ли я использовать программы объемом более 64 Кб в том случае если я добавлю еще «чип» Flash?

Тут есть две проблемы: 1я-скорее всего Вам просто не хватит ОЗУ для реализации Вашей программы и нормального функционирования системного ПО TINI; 2е- TINI  OS накладывает ограничение на то, что программа должна только в одном 64 Кб банке Flash ROM.

Могу ли я запретить доступ по Telnet пользователям с правами “superuser”?

Да, при использовании firmware v1.0 и выше, можно запретить доступ по телнету пользователю root. Для этого необходимо изменить значение переменной <setenv TELNET_ALLOW_ROOT> на false.

Есть ли методы очистки «кучи» из моей программы?

Да, можно использовать метод TINIOS.blastHeapOnReboot() который установит флаг и при следующей перезагрузке TINI произойдет очистка «кучи». Если очистку необходимо сделать немедленно, то можно использовать комбинацию этого метода и TINIOS.reboot()   

Какое железо и ПО необходимы для начала работы с TINI?

См. «С чего начать ?» (http://aktiniy.narod.ru/tutor/qs/qs.htm)

Я хочу упаковать свой TINI в корпус. Что посоветуете?

К сожалению свободно доступных в России нет. Заказ из Штатов будет сильно проблематичен. Насколько я осведомлен, есть одна фирма в Москве, которая заказывала для себя энное кол-во, но насколько они будут доступны, сказать трудно.

Поддерживает ли TINI IP фрагментацию?

Нет. TINI поддерживает IP дэйтаграммы размером до 1500 байт.  Большие по объему пакеты отбрасываются. Этот размер выбран исходя из требований максимального размера пакета Ethernet (RFC 894).

Ожидается что фрагментации и «сборка» будут добавлены в последующих версиях TINI OS.

Где можно найти примеры работы с 1-Wire сетью?

В архиве firmware v1.02 (1.11) есть пример ../tini1.XX/examples/ListOW позволяющий отсканировать однопроводную сеть на предмет наличия в ней подключенных устройств. В результате Вы получаете список подключенных 1-Wire устройств. Так же какое то количество примеров есть на сайте http://aktiniy.narod.ru .

Какие скорости поддерживает CAN интерфейс TINI?

Скорость передачи по CAN шине можно рассчитать по сл. Формуле:

Скорость передачи (бод) = 18.432 x 10^6 / BRP / (1 + TSEG1 + TSEG2)

 Различными комбинациями значений регистров BPR, TSEG1, TSEG2 можно получить скорости работы 10000 бод, 20000 бод, 50000 бод и 125000 бод при требуемой по стандарту CAN величине ошибки передачи в 0.5 %. Другие скорости, возможно достичь при изменении частоты опорного генератора (кварца контроллера), но при этом величина ошибки может вырасти.

Как отключить сообщение, передаваемое по последовательному порту в момент включения TINI?

Возможно применить команду stopserver –s с дополнительным аргументом –d. При этом консольное сообщение при следующей загрузки будет подавлено.

Есть ли пути обхода выполнения .startup файла при загрузки TINI?

Да есть. Во время загрузки TINI удерживайте клавишу «5» в окне терминала. При этом выполнение .startup файла будет проигнорировано, но сервер последовательного канала будет запущен.

Где можно найти документацию по написанию сервлетов для TINI?

Если в качестве web сервера для TINI Вы будете использовать TiniHttpServer (http://www.smartsc.com/tini/TiniHttpServer/),  то в его документации есть описание работы с сервлетами на платформе TINI.

 Где можно посмотреть пример подключения и примеры программирования LCD совместно с TINI?

Простой пример можно увидеть на сайте DreamFabric  http://www.dreamfabric.com/tini/LCD/index.html 

Где можно посмотреть примеры связи с внешними «железяками» при использовании класса DataPort?

Пример работы с внешним «железом» можно посмотреть на сайте очень интересной компании Vinculum (и не только этот пример) http://www.vinculum.com/IO_Port_Example.html.

Где можно найти документацию на java.* и javax.comm входящих в состав tiniclasses.jar?

Все java классы и методы, используемые TINI, являются стандартными (JDK 1.1) и вся документация соответственно так же стандартная.  В файле API_Diffs.txt идущей в комплекте TINI firmware описаны классы и методы не доступные для использования с TINI.

Поддерживает ли JavaKit работу с командной строкой? Если да, то, какие команды доступны?

Да поддерживает. Список доступных команд можно получить таким образом:

               > java -classpath tini.jar JavaKit -advanced 
 
Вот что получаем в ответ:
 
JavaKit            Version 2.1.8
 
Dallas Semiconductor Corporation
==============================
 
Usage: java JavaKit <-options>
Where options include:
-port             Specifies the COM port to auto open.
-macro            Specifies a macro file to auto load.
                    Pass multiple files separated by commas.
-baud             Specifies the baud rate to use (default is 115200.)
-padSize          Specifies the size of the pad string when
                    writing to Hex files to flash ROM (default is 12.)
-binPause         Specifies the number of milliseconds to pause after
                    a binary segment write. (default is 50ms.)
-exitAfterRun     Specifies that JavaKit should exit after running the
                    macro file specified with "-macro".
-bankSize         Specifies the size of each memory bank.
                    Default: 65536
-ROMSize          Specifies the total size of the Flash ROM.
                    Default: 524288
-log              Generates a log file called JavaKit.log.
-flushWait        Wait time after sending a portion of binary data.
                    Default: 50 ms.
-resetWait        Wait time after sending a DTR toggle.
                    Default: 100 ms.
-debug            Enables debug mode.
-noDTRTest        Instructs JavaKit not to test for DTR connected on
                    File->Load.
-advanced         Show advanced options.
 

Где можно временную диаграмму работы платы TINI?

По всей видимости, уместнее говорить о временной диаграмме работы контроллера, чем всей платы целиком. Все необходимы временные диаграммы работы микроконтроллера, можно посмотреть в его описании http://www.dalsemi.com/datasheets/pdfs/80c390.pdf

Где можно найти примеры использования «нативных» методов для TINI?

Вот один из доступных примеров http://www.vinculum.com/native_example.html.

Что такое «Сторожевой Таймер» (WD)?

WD является автономным таймером/счетчиком, предназначенным для сброса микроконтроллера в случае «зависания» программы. Работает просто: необходимо установить общее время счета (скажем 2 мс) и в период времени меньший времени счета производить принудительный сброс WD. В случае если сброс таймера за назначенное время не произошел, вырабатывается сигнал общего сброса микроконтроллера идентичный внешнему сигналу Reset.

Как правильно использовать «сторожевой таймер»?

DS80C390 используемый в TINI имеет встроенный «сторожевой таймер» (WD). Управление таймером осуществляется с помощью статического метода setWatchdogTimeout() входящего в класс com.dalsemi.system.

Программирование WD довольно просто: необходимо установить время ожидания в методе setWatchdogTimeout  (целое число миллисекунд). Затем в Вашей программе необходимо использовать feedWatchdog() для сброса WD. В случае если сброса таймера не будет, TINI перезагрузится. Аргумент равный 0 в значении setWatchdogTimeout означает выключение WD.

Slush так же поддерживает работы с «собачкой».

Чем отличаются Standart CAN и Extended CAN друг от друга? Что из них поддерживает TINI?

Standart CAN и Extended CAN это две совершенно разных версии CAN протокола. Основное отличие в длине идентификатора сообщения передаваемого по шине.

  • Standard CAN, v2.0A, использует идентификатор сообщений длинной 11 бит

  • Extended CAN, v2.0B, совмести «сверху вниз» с Standart CAN, но при этом поддерживает 29 битный идентификатор сообщения

DS80C390 используемый в TINI имеет в своем составе два CAN контроллера поддерживающих Extended CAN (v2.0B). Естественно при этом поддерживается и Standart CAN.

Поддерживает ли TINI порт I2C? Если да, то, какие выводы используются в качестве SCL и SDA?

Да поддерживает. В качестве выводов использованы выводы основной CAN шины.

         Вывод 10 = CTX = SCL

         Вывод 11 = CRX = SDA

Поддержкой работы с I2C шиной «занимается» класс com.dalsemi.system.I2CPort.

 Возможно ли подключится к TINI по модему?

Да. TINI поддерживает  клиент и сервер PPP с помощью класса com.dalsemi.tininet.ppp. Если Вы подключите модем к одному из последовательных портов TINI, то сможете звонить с него и принимать на него входящие звонки.

 У меня ни как не получается настроить подключение своего TINI к Internet. Что может быть неправильно?

Стоит сказать, что TINI реализация PPP поддерживает только PAP аутентификацию. Ваш же ISP возможно требует применения CHAP аутентификацию, кою TINI не поддерживает. Так же следует проверить IP адрес, либо проверить настройку DHCP и DNS.

Поддерживает ли TINI CHAP аутентификацию?

Нет. На данный момент TINI поддерживает только PAP аутентификацию PPP.

Где можно найти спецификации CAN протокола?

Документацию по CAN «из первых рук» можно взять на сайте разработчика протокола фирмы Bosch: http://www.can.bosch.com/content/Literature.html.

Где можно найти спецификации I2C шины?

На сайте Philips Semiconductor:

http://www-us2.semiconductors.philips.com/acrobat/various/I2C_BUS_SPECIFICATION_3.pdf.

Какие скорости поддерживает CAN интерфейс TINI? И как правильно установить скорость работы?

Различными комбинациями значений регистров BPR, TSEG1, TSEG2 можно получить скорости работы от 10 до 125 Кбод при требуемой по стандарту CAN величине ошибки передачи в 0.5 %. Скорость передачи по CAN шине можно рассчитать по сл. формуле:

Скорость передачи (бод) = 18.432 x 10^6 / BRP / (1 + TSEG1 + TSEG2)

 При программировании скорости передачи следует знать то, что нет прямого метода задания скорости работы шины, для этого необходимо использовать методы com.dalsemi.comm.CanBus класса для установки различных значений управляющих регистров:

 

Скорость передачи

BRP

TSEG1

TSEG2

10 Кбод

88

13

7

20 Кбод

71

5

7

20 Кбод

44

13

7

50 Кбод

41

3

5

50 Кбод

23

10

5

125 Кбод

7

13

7

 

При задании скорости используются следующие методы:

·         setBaudRatePrescaler() изменяет значения BRP в диапазоне значений от

     1 до 256

·         setTSEG1() изменяет значения Timing Segment 1 от 2 до 16

·         setTSEG2() изменяет значения Timing Segment 2 от 2 до 8

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

 
    CanBus bus = new CanBus(CanBus.CANBUS0);
    bus.setBaudRatePrescaler(BRP)
    bus.setTSEG1(TSEG1)
    bus.setTSEG2(TSEG2)
 

При стандартном значении частоты опорного генератора и значениях управляющих регистров мы можем получит скорости до 125 Кбод при стандартном значении коээф. ошибок в 0.5 %. Естественно что можно изменить частоту генератора или переменные регистров для получения произвольной скорости, но при этом возможно увеличение коэфф. ошибок который, по стандарту не может превышать оговоренные 0.5%.

На «борту» DS80C390 есть три аппаратных таймера/счетчика. Все три таймера используются в ПО TINI?

Да firmware TINI использует все таймеры для своей работы. Они используются для:

  • timer 0 Используется планировщиком (1 временная метка = 1 мс)
  • timer 1 Тактирование 1-го последовательного порта
  • timer 2 Тактирование 0-го последовательного порта 

Как получить доступ к «Часам» (RTC) из моей программы?

Необходимо использовать методы класса com.dalsemi.system.Clock  для доступа к часам реального времени (DS1315). Как обычно более подробная информация есть в документации к TINI API.

Где можно найти описание 1-Wire шины?

Можно взять оригинал под названием "iButton Overview" (http://www.ibutton.com/ibutton/standard.pdf). Но я бы посоветовал сходить на сайт московской фирмы «Элин» (http://www.elin.ru) и в их обалденной подборке материалов по продукции Dallas, заметьте на русском языке J найти все что надо.

Поддерживает ли TINI режимы пониженного энергопотребления?

Нет, не поддерживает.

Каково распределение адресного пространства адресуемого классом DataPort?

Распределение адресного пространства TINI имеет вид:

Адреса памяти

Сигнал

Описание

000000 - 07FFFF

CE0

Flash ROM (512Кб на плате TINI)

080000 - 0FFFFF

CE0

Внешняя Flash ROM устанавливаемая на TINI Socket (512 Кб)

100000 - 17FFFF

CE1

Образ SRAM0 (512Кб)

180000 - 1FFFFF

CE1

SRAM0 (512Кб)

200000 - 27FFFF

CE2

SRAM1 (512Кб)

280000 - 2FFFFF

CE2

Образ SRAM1 (512Кб)

300000 - 307FFF

CE3

Область регистров и данных Ethernet Controller

308000 - 30FFFF

CE3

Область регистров и данных периферии (32K)

310000 - 31FFFF

CE3

Часы реального времени

320000 - 38FFFF

CE3

Область регистров и данных периферии  (896K)

000000 - 0FFFFF

PCE0*

ОЗУ или периферия вне платы TINI (1Мб)

100000 - 1FFFFF

PCE1*

ОЗУ или периферия вне платы TINI (1Мб)

200000 - 2FFFFF

PCE2*

ОЗУ или периферия вне платы TINI (1Мб)

300000 - 3FFFFF

PCE3*

ОЗУ или периферия вне платы TINI (1Мб)

 
Дешифрация адресов для внешних устройств (TINI Socket) имеет вид:
 

A23-A20

A19-A16

A15-A12

A11-A8

A7-A4

A3-A0

Описание

0011

10X0

XXXX

XXXX

000X

0X10

Регистр управления ЖКИ, только запись

0011

10X0

XXXX

XXXX

000X

1X10

Регистр данных ЖКИ, только запись

 

 

 

 

 

 

 

0011

10X0

XXXX

XXXX

000X

0X00

Параллельный I/O - выводы ODB0-ODB7 J23, только запись

0011

10X0

XXXX

XXXX

000X

0X01

Параллельный I/O - выводы OСB0-OСB7 J23, только запись

 

 

 

 

 

 

 

0011

10X0

XXXX

XXXX

000X

0X00

Параллельный I/O - выводы IDB0-IDB7 J23, только чтение

0011

10X0

XXXX

XXXX

000X

0X01

Параллельный I/O - выводы IСB0-IСB7 J23, только чтение

 

 

 

 

 

 

 

0011

10X0

XXXX

XXXX

001X

XXXX

Чип последовательного интерфейса 16552 D, чтение/запись

 

 

 

 

 

 

 

 

При этом считается что, все сегменты CE являются только программными сегментами, соответственно PCE сегменты являются только сегментами данных.

Если Вы собираетесь использовать внешнюю Flash ROM, не забудьте снять перемычку CE0(12)-RCE0(45) иначе будет конфликт двух «флэшек».

Поддерживает ли TINI динамическую загрузку классов?

Да (API v1.11). Нет (v1.02e)

Есть ли связь между версией API и версией TINI OS?

Несомненно, при чем прямая связь. Таблица соответствий версий API и TINI OS друг другу указана в таблице:

Версия API

Версия TINI OS

8000

0.6a

8001

1.0 beta 1

8002

1.0 beta 2

8003

1.0 beta 2.1

8004

1.0 beta 2.2

8005

1.0

8006

1.01

8007

1.02 pre-release 1

8008

1.02 pre-release 3

8009

1.02

800A

1.02b

800D

1.02e

9002

1.10

9003

1.11

 

Версию можно посмотреть в файле\tini1.xx\bin\tini.db в первой строке:
 
    JiB ROM API Name Database Version:8009 – API версии 800D для TINI OS 
версии 1.02e 

Какова максимальная скорость передачи по TINI Ethernet интерфейсу?

На прием примерно 40-50 Кбайт/сек, на передачу примерно 70 Кбайт/сек

Есть ли хорошие книги по TINI?

К сожалению только на английском языке, т.ч. можно сказать что нет. Я правда

сделал уже примерно треть перевода, но когда закончу, пока не знаю. Тем, кто

владеет языком сюда http://www.ibutton/TINI/book.html .

 

(С) 2002-2003 AK

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

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

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