« 2009年4月 | トップページ | 2009年6月 »

2009.05.29

ユニバーサルJTAGプログラマ

今週行われたIPAXでは静展示しておりました新製品「ユニバーサルJTAGプログラマ」ですが、ようやく試作器が出来上がり、動作するようになりました。

ユニバーサルJTAGプログラマ

このUSB-JTAG書き込み器はuPD78F0730が載っていて、中にトラ技BIOSが入っているので、トラ技78Kマイコンとして認識されます。

フライリードケーブルで、XILINXのSpartan3A評価ボードと接続します。
Universal JTAG Programmer

MITOUJTAGからでも認識できるようにして、MITOUJTAGを立ち上げればバウンダリスキャンができました。
Unipro3

今のところ動作速度や性能は、78K基板で作るUSB-JTAGと同じです。(同じファームウェアを使っているので当然ですが・・)
ただ、専用のバッファICが入っているので、波形のキレはこちらのほうが優れています。

これから、DOSプロンプト版の書き込み専用ソフトウェアをつくり、また動作速度のいっそうの向上を図り、さらに便利な機能を付けたりして、早ければ来週中、遅くとも6月の10日ごろまでには販売を開発できるようにしようと思います。

価格は、ケースなし版が8000円台前半、ケースあり版が9000円台後半で頑張りたいと思います。
どうぞよろしくお願いします。

| | コメント (2)

2009.05.25

IPAX2009に出展します!

なひたふは、明日から東京ドームシティで開催されるIPAX2009に出展します!
(※独立行政法人情報処理推進機構の主催する展示会です。)

Ipax2009


今回の展示会では、もう従来のようなやり方をしないことにしました。
展示会というとどうしても「ちょろっとブースに入って製品を見ているだけで、業者の人と目が合った瞬間に追いかけてきて、無理やりパンフレットを渡されて説明される」というパターンがあります。ビックサイトとか幕張とかの展示会に行くとそういうのが良くありますが、自分もそうなっていたのではないかと反省する次第です。

もう、そういう展示会はのやり方はやめました。
もう、こちらからは一方的に製品の説明をすることはいたしません。

逆に、ご来場いただいた皆様にJTAGの悩みをいろいろと教えていただきたいと考えております。

今回のテーマは、ずばり、

JTAGの悩み、なんでも相談室

JTAGについて、皆様が普段から疑問に思っていること、感じていることなど、をお聞かせください。
当社ブースに私がいたら、声をかけてください。
  「JTAGでこんなことができないか」
  「そもそもJTAGの○○機能はどういう仕組みでうごいているのか?」
  「MITOUJTAGの開発方針でこうしてほしかった」
  「こういう装置が○○円くらいで作れないか・・」

など、どのようなことでもかまいません。いただいたご質問は、その場ですぐ、他社とのNDAに引っかからない範囲でお答えさせていただきます。展示会で直接お会いすると、メールではお答えできないことでもお答えできてしまいます。ぜひこの機会にお越しください。

また、Universal JTAG Programmerと、JTAGの小冊子についてもサンプル版ができているかと思います。
小冊子 JTAGの基礎知識

Universal JTAG Programmerというのは、1万円未満で購入できる、X/A/L社のCPLD/FPGA対応の万能USB-JTAGプログラミング・ケーブルです。現在、鋭意半田付け中です。
Universal JTAG Programmer 鋭意開発中!


もちろん、例年のように当社製品(PCIe基板とかMITOUJTAGとか)のデモンストレーションも行っておりますので、そちらの件もお気軽にお問い合わせください。

あと、私も講演させていただくことになっているのですが、5月27日(水)の16:40ごろからということで詳しい時間はまだ決まっていません。発表時間が10分しかないので、MITOUJTAGの製品紹介を行うには短すぎます。

そこで、未踏の成果を商品化してくる際に苦労した点や、これまでどういう考えで開発し発展させてきたのか、某国政府系機関にパクられそうになって回避した話、これからのMITOUJTAGの方向性など、気軽な話題にしようと思います。

展示会についての詳しい開催内容はこちらをご覧ください。

また、ノベルティにコクヨのカドケシスティックを配ろうと思っています。先週、浅草橋の文具店で100個、箱買いしてきました。赤、青、白、緑と4色あります。先着100名様限定です。
ノベルティはカドケシスティック


展示会は明日からです。どうぞお越しください。

| | コメント (0)

2009.05.21

IPAXに出展するためにマスクが必要!?

特殊電子回路は来週開催される展示会、IPAX(5月26日~27日@東京ドームシティー)に出展するのですが、運営事務局から「都内で新型インフルエンザの二次感染者が多数発生した場合、マスクの着用を義務付けることになるので、予め必要数を自社にて確保しておいてください」というメールが来ました。

しかし、マスクは日本全国どこも品薄です。
昨日はマスクを買いに行ったもののどこも売り切れでした。

今日、神田駅前の薬品問屋街で入荷してもらって、ようやく3箱(計9個)を入手できました!
のどぬーる

買いに行ってくれた者の話によると、な、なんと、路上で「マスク 20個10000円」で売るおじさんまで出没したとのこと。この先どうなっちゃんでしょう。

| | コメント (1)

2009.05.17

万能USB-JTAGプログラマを近々リリース!

●USBでJTAGを使って、いろんなFPGAやCPLDに書き込みがしたい!
●パソコンにパラレルポートがない!
●どうして、あるメーカーのUSB-JTAGケーブルは、他のメーカーのFPGAに書き込めないの!?
●パラレル-USB変換ケーブルでは、パラレルポートJTAGが動かない!

今まで、そういうご意見・ご要望を多くいただいていました。

そこで、「どのメーカーのFPGAでも、CPLDでも、USB経由のJTAGで書き込みできる万能ライタ」をリリースすることに決定しました。
Ujp1

この基板の回路は、トラ技78Kマイコンで使われたuPD78F0730を中心に、バスバッファなどを一つの基板に載せた構成になっています。バッファは二電源タイプのバッファを用いているので、1.5V~5.0VまでワイドレンジなJTAG信号を作り出すことができます。
この基板にはXILINX互換の14pin,9pinと、ALTERA互換の10pinのJTAGコネクタがついているので、大概のFPGA基板にはそのままつなぐことができます。

また、BitStreamファイルをメールで送られて、「これを書き込んでね」と渡された経験があるかたもいらっしゃるかとおもいます。しかし、BitStreamファイルだけあってもFPGAには書き込めません。FPGAベンダーからiMPACTなり、Qualtus2なり、ispVMなりをダウンロードしてこなければなりません。しかし、そういう巨大なツールは数ギガバイトあるので、ダウンロードだけで一苦労です。
この新製品はDOSプロンプトで動く小さなプログラムで書き込むので、数百キロバイトです。手軽に小回りの効く使い方が考えられます。

しかも、JTAGだけではなく、SPIの信号も出せるようにします。FPGAのコンフィギュレーション用メモリとして最近注目を浴びている「SPIフラッシュメモリ」への書き込みまで、このケーブル一本でできてしまうお得な構成です。

価格は、ケース付きで1万円を切る値段で頑張ろうと思います。ケースなしの基板のみ(バルク品)なら8000円代を目指します。

書き込み対象デバイス(現時点でのサポート予定)
・XILINX XC95/95XL,CoolRunner2,XC18V,XCF00S/XCF00P,Spartan2/2E,Spartan3/3E/3A/3AN/3ADSP,Virtex2/2Pro,Virtex4.Virtex5
・ALTERA
MAX2,Cyclone,Cyclone2
・Lattice
XP2

機能
・アプリケーションはDOSプロンプトから操作する
・各種デバイスの書き込み、消去、ブランクチェック、ベリファイ
・SPIメモリへの書き込み
・JTAG信号は、1.5~5.0Vまで対応
・新しいアルゴリズムが出たらアップデート可能

開発中の画面はこんな感じです
Ujp2

IPAXのころにはサンプル品が出せると思います。
今月中には販売を開始する予定です。

もう、メーカーごとにケーブルを買い換える必要もありません。パラレルポートがついたパソコンを探す必要もありません。そのような苦労を忘れることができます。

どうぞご期待ください。

| | コメント (4)

2009.05.16

MITOUJTAG Webデモ版を更新

MITOUJTAG Web版のデモを更新しました。
操作感覚や、デバイスの端子が見えるという雰囲気を味わっていただくことができます。

下の図のように、MITOUJTAG BASIC版の画面イメージに近づきました。
Mjws090516

今回の改良で、個々のデバイスをマウスでぐりぐり動かしたり、ホイールで拡大・縮小ができるようになりました。

このMITOUJTAG Webデモでは、本物に近づけるために、起動直後にはデバイスがありません。ツールバーの「デバイス自動認識ボタン(青いボタン)」を押すと、「2つのデバイスが見つかった」と表示され、BGAのものとSOPのものがJTAGチェーンに追加されます。このあたりが本物っぽいです。

その後、SAMPLEボタンやEXTESTボタン、連続動作ボタンを押すと、BGAの端子の絵がチカチカと変化します。

このデモ版は、Webブラウザの中でJavaScrpiptを使って絵を切り換えているだけにすぎませんが、近い将来、本物のデバイスが操作できるようにしようと思います。
このデモ版は下のリンクを開くだけで、無料ですぐに試すことができます。
インストール作業も、ActiveXもいりません。パソコンとJavaScrpitが動くブラウザさえあれば動きます。
http://www.tokudenkairo.co.jp/webscan/

どうぞお気軽にお試しください。

| | コメント (0)

2009.05.11

幻のJTAG講演資料

ハードディスクを整理していたら、昔の講演で使ったJTAGの資料を発見しました。

Kouenshiryou

これは、忘れもしない2006年の2月のこと。日本テクノセンターでの講演資料です。
http://www.j-techno.co.jp/test/index.cgi?mode=sem&unit=2006020804

創業当時右も左もわからなかったころ、日経に載ったとか展示会に出たとかで、テクノセンターから講演依頼を受けた私は二つ返事で快諾しました。

しかし、よくよく考えてみると、実習付きで計11時間30分の講演。

・・・11時間半。気の遠くなるような時間です。

さてどうしよう。半分ぐらい講演して、半分くらい実習して・・。それでも5~6時間は喋らなければならないので、普通にJTAGの概要だけ喋ったのでは決して場が持ちません。

困った私は、自分が持っていたJTAGの知識をすべてパワーポイントに詰め込み、連日徹夜して計227ページのプレゼン資料に纏め上げました。とにかく長い時間喋らなければならないので、普段は秘密にしていたJTAGの独自解析結果や、JTAGの規格に従ってちゃんと作っていないデバイスの実例、それからFPGAやCPLDなどのデバイスプログラミングの話、そのほか(秘)ノウハウなども含めたのです。

今読み返しみると、よくここまで細かく詳しく書いたなと思います。自分が自分でないみたいです。

その講演の結果は・・・というと、バウンダリスキャンで基板検査を期待していた人には不評、FPGAのデバッグを期待していた人には大好評という形で、評価はスパッと50%/50%に分かれたのです。

さすがに2日間の講演をやってみると、へろへろに疲れます。しかも、講演費用はほとんど胴元に取られてしまうので、当社としては全く儲かりません。
その後もセンターから何度か再講演の依頼をいただいたのですが、すべて丁重にお断りさせていただきました。それゆえ、これは幻の資料となってしまいました。

しかし、ハードディスクに入れておいて寝かせておくのも勿体ないので、編集して製本してJTAGの小冊子を作ろうかなと思います。
JTAGに関する書籍が日本にない(坂巻先生の本は絶版になってしまった)現状ですので、日本で唯一の印刷されたJTAGの資料になると思います。
小冊子が出来たら、ご興味のある方に無料で差し上げようと思います。

| | コメント (9)

2009.05.09

MITOUJTAGのページをリニューアルしています

MITOUJTAGのページがだんだん分かりにくくなってきたので、
大規模なリニューアルをすることにしました。
とりあえず、徹夜で、リンクなどを整理しました。

生まれ変わったJTAG情報ページをぜひご覧下さい。

http://www.tokudenkairo.co.jp/jtag/

来週は、JTAGをネタにして遊べるオモシロコンテンツを増やしていきたいと思います。
どうぞよろしくお願いします。

| | コメント (0)

2009.05.03

Ajax版のMITOUJTAG開発つづき

今日はAjax版のMITOUJTAGの開発を続けています。
Webブラウザの中でMITOUJTAGが動くというものです。

ローカルPCの中ではInternetExplorerを立ち上げておいて、サーバから送られてきた指示にしたがってローカルPCのUSBにつながったJTAGケーブルの信号を操作します。各種シーケンスやJTAG信号の解釈等はすべてクラウドの中のサーバが行い、ローカルPCは画面の表示とJTAG信号の操作のみを行うという構想です。

これを開発するには、
・JavaScriptを使ってUSBの通信をし、JTAGを操作する
・サーバとクライアントPCがAjaxで通信して、JTAGの各種シーケンスやりとりする
・画面を動的に作成して、クライアントのPC上に描画する
という、課題があります。

まず、サーバとクライアントPCの中でJTAGの通信を行う件ですが、これは
 画面を開く
 →サーバ接続
 →JTAGデバイス検出
 →バウンダリスキャン SAMPLE
 →連続サンプリング・・・

という一連の操作がうまくいくようになりました。
Mja_1_2

JTAGケーブルには、トラ技78Kマイコンで作るUSB-JTAGを使っています。
まだグラフィカルな表示はできていなくて、ピンの状態をHやLの文字で表示するのみです。
サンプリング速度は、毎秒20回程度といったところでしょうか。サーバはインターネットの向こう側にあるので、10~数十msの遅延があるはずです。

描画のほうも少し手がけてみました。
サーバ上でGDやlibpngを動かしてPNGのファイルを動的に生成し、インターネット上で通信してみたところ、次のような絵を100枚送るのにだいたい5秒かかりました。
Mja_2
(この絵は乱数で適当に作ったもので、実際のデバイスのピンの状態を見ているものではありません。あくまでも画像生成と送信試験のためのものです。)

PNGファイルは圧縮がかかっているので、生成するのに意外と時間がかかるようです。しかし、圧縮のアルゴリズムはかなり賢いようで、見事に小さなファイルサイズにしれます。
サーバで圧縮して送るか、それとも圧縮せずに通信に負担をかけて大きなファイルを送るか、悩むところです。
とにかく、毎秒20回といったところでしょうか。

インターネット越しに、バウンダリスキャンと画面描画ができたので、これらをつなげれば、それなりに遊べるものが作れそうです。画面の更新速度がどの程度出るかは未知数で、今後の楽しみにとっておきます。

これが完成すれば、Webの画面を通じてCPLDやFPGAやROMに書き込みしたり、回路のデバッグできるようになります。日本中のいろんなところにいる人が、ネットを通じて1台の基板の動作を見ながらわいわいと意見を述べ合って、自分の回路を書き込んだりできるのって、素晴らしいと思いませんか?

今日分かってきたのは、意外とサーバに負荷がかかるということです。1台のサーバに10人くらいのユーザが同時ログインできるかと思ったのですが、実際はどうなるか、やってみないとなんともいえません。

この構想に基づくWebアプリケーションはIPAX2009に間に合わせたいと思っています。

| | コメント (2)

2009.05.02

WDMコントローラをリリースしました

昨日から開発していた、WDMデバイスドライバコントローラをリリースしました。

画面は次の図のようになりました。

Wdmctl1_2

今日の改良で、複数のデバイスを1回の操作で有効/無効/アンインストールできるようにしました。
ハードウェアIDを複数書いておけば、それらが一斉に処理されます。

「無効」を押すと、こうなります。
Wdmctl4

「有効」を押すと、こうなります。
Wdmctl5


この機能は、複数のデバイス(≒ハードウェア)が単一のドライバ(≒SYSファイル)を参照しているときに、参照カウンタが0にならないとメモリ上からアンロードされないというOSの仕様に対処するためものです。
ドライバ(=SYSファイル)を開発しているパソコンの中では頻繁にSYSファイルがアップデートされると思いますが、毎回毎回WDMをインストールするのは至極面倒です。そのような場合、C:\Windows\system32\driversの中の***.sysを直接書き換えられれば良いのですが、参照しているデバイス数が0にならないと、sysファイルを書き換えてもそれがロードされないのです。
そういうわけで、複数のデバイスを一斉に無効/有効する機能を用意しました。
つまり、一斉無効→sysを書き換え→一斉有効とすれば、WDMのインストール手続きを経ることなく、WDMドライバの実体をアップデートできます。
これは、ドライバを利用したアプリを開発したり、アプリを使う分にはまったく関係ないのですが、ドライバを開発するときのみ問題になることです。


さて、デバイスを操作する際に必要なハードウェアIDとは何かということですが、これは「ハードウェアを一意に識別するためのID」です。このIDはINFファイルに書かれているのですが、それではわかりにくいので、一覧を表示できるようにしました。
Wdmctl2

このリスト上をダブルクリックすれば、目的のハードウェアIDがリストに追加されます。

また、PCIやUSBデバイスの場合は、ベンダID、デバイスIDからハードウェアIDを生成する機能をつけました。

Wdmctl3

このような感じで、Windowsのデバイスマネージャを使うことなく、さらに、デバイスマネージャに表示されていないデバイスに対してさえも、有効/無効/インストール/アンインストールの操作ができるようになりました。
デフォルトでは、「WDM版汎用PCI Expressドライバ」をインストールするようになっていますが、INFファイルやハードウェアIDの設定を変更すれば、どのようなデバイスにも使えます。

このツールは使い方を一歩間違えると大変危険です。くれぐれも使い方にはご注意ください。

ダウンロードはこちらにあります。
http://www.tokudenkairo.co.jp/pcie/index.html#devdrvにあります。

どなたでも無償でご利用いただけます。

どうぞよろしくお願いします。


| | コメント (0)

2009.05.01

WDMデバイスのコントローラ

WDMデバイスドライバのインストール・アンインストール・開始・停止が、自分のプログラムからコントロールできるようになりました。
普通、WDMドライバのインストールは、プラグアンドプレイによって呼び出されるます。USBに新しいデバイスが挿されたり、PCIに新しいデバイスを挿入して電源を入れたりすることで、OS(バスドライバ)が新規デバイスを見つけて、WDMドライバのインストールルーチンを呼び出すからです。

しかし、特定ハードウェアに対応しないWDMデバイスドライバ(カーネルモードでメモリやI/Oを操作したり、任意のハードウェアにアクセスするためだけにあるようなドライバ)を作りたいときもあります。例えば、パラレルポート操作用ドライバとか、汎用PCI Expressドライバなどです。
このような特殊なWDMドライバは、特定のハードウェアの検出によって呼び出されるわけではないので、インストールは極めて面倒です。  その例

ハードウェアの追加ウィザードを開いて、「その他のデバイス」、とか選んでいってINFファイルを指定すれば無理やりインストールできないこともありませんが、WindowsのGUIを操作するのは苦痛です。

常々この手順を何とかしたいと思っていました。NT形式のドライバなら、サービスマネージャとかで簡単にできるのですが、WDMの場合のやり方は一般的には広く知られていません。

その答えはdevconというツールの中にありました。devconは、マイクロソフトがドライバ開発者のために配布しているツールで、コントロールパネルのハードウェアウィザードやデバイスマネージャをコマンドラインから操作することができるようなものです。そのソースコードはDDKのディスクの中にあります。そのソースを読めば、どのような順番でどのAPIをアクセスすればよいかがわかります。ほとんどはsetupapiの中のAPIをアクセスすることになります。

そういうわけで、WDMドライバをインストールするプログラムを作ってみました。
Tkdv1

① hardwareIDと書かれた欄に、インストールしたいデバイスのハードウェアID(識別するための任意の文字列)を入れ、INFファイルを指定します。ハードウェアIDはINFファイルに書かれています。
汎用PCI ExpressドライバのハードウェアIDは、"*root\tkpe"です。

② 「操作→インストール」を実行すると、INFファイルを読み込んで、インストールされます。
Tkdv3

③ デバイスマネージャに、インストールされたデバイスが登場します。
Tkdv2

④ 「無効」ボタンを押すと、そのデバイスドライバを無効(停止)にできます。
Tkdv4

⑤ 「有効」ボタンを押すと、そのデバイスドライバを再び有効(再起動)にできます。
Tkdv2

⑥ アンインストールを押すと、そのデバイスドライバが削除されます。
Tkdv5


これでもう、デバイスマネージャもハードウェアウィザードも、マウスで操作しないでよくなりました。

このツールがどのような場合に便利かというと、PCIとかPCI Expressは、FPGAをコンフィギュレーションすると、FPGA内のレジスタもクリアされてしまうから、BAR0とかの設定も全部消えてしまうのです。だからといって、パソコンを再起動するのは芸がなさすぎます。
そのため、今まで私はデバイスマネージャを開いて目的のデバイスドライバを無効→有効とやってきたのですが、デバイスマネージャで目的のデバイスを選んで、マウスで右クリックして、プルダウンメニューの中から目的の処理を選ぶ・・・・というのが大変でした。
これからは、このツールを使って「無効」「有効」を押せばよいだけなので、FPGAを載せたPCI (e)ボードの開発がぐっと楽になるというわけです。

このツールは近日公開予定です。

| | コメント (0)

« 2009年4月 | トップページ | 2009年6月 »