2008.02.02
岸本 俊夫

TINI 開発環境の導入

 Maxim/Dallas Semiconductor が開発・製造・販売しているモジュールに TINI(Tiny InterNet Interfaces) というものがあります。

 72ピンの SIMM ボード上に MPU、S-RAM、フラッシュ ROM、リアルタイムクロック、 LAN コントローラ、シリアルコントローラ、1-Wire ネットワークコントローラ、 CAN コントローラなどが実装されています。

 開発言語は Java です。実行環境は JDK 1.1.8+αの機能を持っているようです。 特筆すべき点は、非常に簡単にインターネット端末あるいはサーバを 作成できることです。

 2003年 11月 21日に TINI OS バージョン 1.12 がリリースされました。

1.TINI とは

 TINI とは Tiny InterNet Interface の略です。TINI は商品を指す名前ではなく、 プラットホームあるいはアーキテクチャの概念です。商品としては本家の Maxim/Dallas Semiconductor が販売しているボードとサードパーティが販売している ボードがあります。

  iButton
  Systronix

 TINI のマイクロプロセッサは DS80C390 と DS80C400 の 2種類があります。 前者を使用するものを「TINI390」、後者を使用するものを「TINI400」と区別します。

 TINI を使用した機器は次のようなものがあるようです。一般に入手可能なものは 評価キットしか見当たらないようです。

  TINI AMEDES
  RealSpace6

 2番目のものは以前 IPv6 普及・高度化推進協議会 で 実験装置として配布された情報家電コントローラです。幸運にも入手できた方は、 本家から開発環境をダウンロードして遊んでみましょう。

 情報家電コントローラをお持ちでない方は、本家あるいは Systronix の 通信販売サイトから購入しましょう。

 TINI390 SIMM ボードと評価用ソケットボード E10 を本家から購入し、Hello World を 動かすところまでやってみましょう。

[Top] [Index]

2.用意するもの(ハードウェア)

 購入したのが TINI400 が発表される前だったので、TINI390 を使用します。

 DSTINI1 および E10 は iButton 通販サイト から購入できます。

 AC アダプタ M-238 は 秋月電子通商 から購入できます。

 RS-232C ストレートケーブルを自作するのだったら、TxD、RxD、SGND および DTR (つまり 2、3、4、5ピン)を接続してください。

[Top] [Index]

3.用意するもの(ソフトウェア)

  1. TINI 開発環境は TINI Software からダウンロードできます。ライセンスに合意する場合は、ページ下方の [Agree] を 押して FTP サイトに進んでください。

    TINI SDK 1.02f は tini1_02f.tgz です。 2003年 12月 8日時点での最新バージョンは tini1_12.tgz です。 これら 2つのファイルをダウンロードしてください。

    例えば、tini1_02f.tgz は d:\tini1.02f の下に、tini1_12.tgz は d:\tini1.12 の下に 展開されたものとします。異なるディレクトリに展開したときは、以降の説明をご自分の 環境に読みかえてください。

  2. J2SE SDK は java.sun.com 日本語 から ダウンロードできます。ダウンロードした .exe ファイルを実行し、 適当なディレクトリにインストールしてください。ここでは d:\j2sdk1.4.2 に インストールしたとします。

    実行環境が c:\Program Files\Jave\j2re1.4.2 にインストールされますので ご注意ください。

  3. Java Communications API はここから ダウンロードできます。ダウンロードしたファイルを展開してください。ここでは d:\commapi に展開したとします。

    次のファイルを指定されたディレクトリにコピーしてください。コピー先が 2ヶ所ありますので、注意してください。実行環境と開発環境です。

    Java Communications API が正しくコピーされていないと、後で JavaKit を 起動したときに Port Name の欄に COM1、COM2 の選択肢が表示されません。

 詳細な説明書が欲しいときは、すばらしい参考書が本家から提供されていますので、 ダウンロードして読んでください。英語です。TINI390 についての説明ですので、 TINI400 を使用するときは付属のドキュメントで相違点を確認してください。

  The TINI Specification and Developer's Guide tinispec.pdf(3.7MB)

[Top] [Index]

4.実行環境 TINI OS 1.02f とシェル Slush のインストール

 購入直後の TINI390 SIMM ボードはテスト環境しか入っていないようです。 実行環境は TINI OS 1.02b でした。

 実行環境を 1.02f にバージョンアップし、このバージョンに対応した TINI のシェルである Slush を導入します。

  1. ソケットボード E10 に TINI390 SIMM ボードをセットしてください。
  2. E10 の J6 コネクタ(DB9 メス)と PC を RS-232C ストレートケーブルで 接続してください。
  3. E10 のジャンパ J1 をショートさせてください。J1 はボタンソケットのそばに あります。
  4. PC で JavaKit を起動してください。コマンドプロンプトで下記のように 入力してください。ただし TINI 開発環境 TINI1.12 と J2SE SDK の インストールディレクトリはご自分の環境に合わせて読みかえてください。

    > javaw -cp d:\tini1.12\bin\tini.jar;d:\j2sdk1.4.2\jre\lib\ext\comm.jar JavaKit [Enter]
  5. JavaKit ウィンドウの下方の Port Name を RS-232C ストレートケーブルを 接続した COM ポートに設定し、Baud Rate を 115200 に設定し、[OpenPort] を 押してください。
  6. E10 に AC アダプタを接続して電源を投入してください。
  7. JavaKit の DTR を Set にセットし、[Reset] を押してください。うまくいくと 次のメッセージが表示されます。

    TINI loader 05-15-00 17:45
    Copyright (C) 2000 Dallas Semiconductor. All rights reserved.
    
    >
  8. メニュー File -- Load File を実行し、 d:\tini1.02f\bin\tini.tbin を選択し [開く] を押してください。
    ローディングが始まります。

    Loading File: D:\tini1.02f\bin\tini.tbin
    
    Please wait ... (ESC to abort).
    
    Load complete
    >

    この間 1分弱かかります。

  9. 同様にして slush.tbin をロードしてください。これは数秒で終わります。
  10. フラッシュメモリをクリアします。JavaKit で次のように入力してください。

    > B18 [Enter]
    > F0  [Enter]
    > E   [Enter]

    これで TINI が再起動します。

     
    ---> TINI Boot <---
    TINI OS 1.02f
    API Version 800E
    
        ....

    これですべてのファイルとネットワーク設定が初期化されました。

  11. AC アダプタを E10 から抜いて電源を OFF し、ジャンパー J1 をオープンして ください。

[Top] [Index]

5.実行環境 TINI OS 1.12 とシェル Slush のインストール

 ここまでの作業でインストールした実行環境は 1.02f で、 これは最新版ではありません。

 続いて、最新の実行環境をインストールします。わざわざ 1.02b → 1.02f → 1.12 と 段階を追ってアップグレードするのは、直接 1.02b → 1.12 のアップグレードパスが 用意されていないためです。Cf. tini1.12/docs/Installation_390.txt

  1. E10 を Ethernet ケーブルでネットワークに接続し、AC アダプタを接続して 電源を投入してください。
  2. JavaKit で [Enter] を押して、ログインプロンプトが表示されたら、次のように 入力してください。

    Hit any key to login.
    TINI login: root    [Enter]
    TINI password: tini [Enter]
    TINI \>
  3. LAN の設定を行います。JavaKit で次のように入力してください。

    TINI \> ipconfig -a 192.168.10.180 -m 255.255.255.0 [Enter]
        ....
    OK to proceed? (Y/N): y

    ここで IP アドレス 192.168.10.180 とサブネットマスク 255.255.255.0 は ご自分のネットワーク環境に合わせてください。

  4. PC 側で FTP クライアントソフト(例えば FFFTP)を起動し、次のファイルを TINI のルートディレクトリにバイナリ転送してください。

    転送前後のファイルサイズが等しいことを確認してください。

  5. JavaKit で次のように入力してください。

    (注意)YES とタイプしてから Data has been programmed successfully と 表示されるまでに電源が切れると二度とプログラムをロードできなくなります。 もちろん実行環境も起動しません。こうなると TINI390 SIMM ボードを Maxim/Dallas に送り返してローダを書込んでもらうことになります。

    TINI \> java LoaderLoader.tini tini112-bank0.tbin2 [Enter]
    This is the TINI390 LoaderLoader Version 1.1.0
    
    WARNING
    This software attempts to reflash your boot loader and resets your TINI.
    In the event of a power failure during the flash process, your TINI will
    become unusable and you will have to reload the boot loader. See the
    accompanying documentation for more information.
    
    Have you read the documentation? (type YES in capital letters) -> YES [Enter]
    
    DO NOT POWER CYCLE THE TINI UNTIL THIS PROGRAM TELLS YOU TO DO SO
    
    If you are running over the network, your connection will now be terminated.
    Erasing flash memory...
    Programming flash memory...
    Verifying data...
    Programming flash memory...
    Verifying data...
    
    Data has been programmed successfully. Please reset your TINI.
  6. AC アダプタを E10 から抜いて電源を OFF し、ジャンパー J1 をショートして ください。
  7. JavaKit の DTR を Set にセットし、[Reset] を押してください。うまくいくと 次のメッセージが表示されます。

    TINI Software - Copyright (C) 1999-2003 Maxim Integrated Products
    Detailed product information available at http://www.maxim-ic.com
    
    Welcome to the TINI Boot Loader 1.12.
    
    >
  8. メニュー File -- Load File を実行し、 d:\tini1.12\bin\tini112-bank1to6.tbin を選択し [開く] を押してください。
    ローディングが始まります。

    Loading File: D:\tini1.12\bin\tini112-bank1to6.tbin
    
    Please wait ... (ESC to abort).
    
    Load complete
    >

    この間約 1分かかります。

  9. 同様にして Slush.tbin をロードしてください。これは数秒で終わります。
  10. フラッシュメモリをクリアします。JavaKit で次のように入力してください。

    > B18 [Enter]
    > F0  [Enter]
    > E   [Enter]

    これで TINI が再起動します。

     
    ----> TINI Boot <----
    TINI OS 1.12 - Copyright (C) 1999 - 2003 Maxim Integrated Products
    API Version: 9004
    
        ....

    これですべてのファイルとネットワーク設定が初期化されました。

  11. AC アダプタを E10 から抜いて電源を OFF し、ジャンパー J1 をオープンして ください。
  12. E10 に AC アダプタを接続して電源を投入してください。
  13. JavaKit で [Enter] を押して、ログインプロンプトが表示されたら、次のように 入力してください。

    Hit any key to login.
    TINI login: root    [Enter]
    TINI password: tini [Enter]
    TINI \>
  14. 再度 LAN の設定を行います。JavaKit で次のように入力してください。

    TINI \> ipconfig -a 192.168.10.180 -m 255.255.255.0 [Enter]
    TINI \> ipconfig -C                                 [Enter]

    ここで IP アドレス 192.168.10.180 とサブネットマスク 255.255.255.0 は ご自分のネットワーク環境に合わせてください。

 ここまででやっと最新の実行環境を TINI に導入できました。 後は必要なアプリケーションを FTP で TINI に転送し、コマンドライン入力して 実行するだけです。

[Top] [Index]

6.Hello World の作成

  1. ソースファイル HelloWorld.java を作成します。テキストエディタで 次のように入力してください。

    class HelloWorld
    {
        public static void main( String[] args )
        {
            System.out.println( "Hello World" );
        }
    }
  2. バッチファイル HelloWorld.bat を作成します。テキストエディタで 次のように入力してください。

    javac -O -target 1.1 -bootclasspath d:\tini1.12\bin\tiniclasses.jar HelloWorld.java
    java -classpath d:\tini1.12\bin\tini.jar TINIConvertor -f HelloWorld.class -d d:\tini1.12\bin\tini.db -o HelloWorld.tini
    pause
  3. コマンドプロンプトで HelloWorld.bat を実行してください。 HelloWorld.tini ができます。
  4. PC 側で FTP クライアントソフト(例えば FFFTP)を起動し、HelloWorld.tini を TINI にバイナリ転送してください。
  5. JavaKit で次のように入力してください。

    TINI \> java HelloWorld.tini [Enter]
    Hello World
    
    TINI \>

    「Hello World」と表示されるはずです。

(C) 2003 by KISHIMOTO Toshio (ALELE.NET), all rights reserved.
このドキュメントに関するお問い合わせは下記まで

/*history*/
0.12003.09.16TKOriginal
0.1.12003.12.08TKTINI OS 1.12 に対応した。
0.1.22004.01.05TK5.(8)の誤りを訂正した。
1.02008.02.02TK花ライオン用に変更。
/*eof*/