Universal Interface:Introduction
このページでは、"Universal Interface Board"とよぶ、独自開発のPC用ディジタル入出力ボードを紹介します。
PCと実世界の物理現象とをつなぐにはインターフェイスが必要です。 多くの場合は、大きく二段階に分けられ、センサやアクチュエータによる物理量と電気信号の変換、電気信号のPCへの入出力を組み合わせます。 この電気信号は電圧変化といった形のアナログ信号の場合もあれば、二値信号の組やパルスなどのディジタル信号の場合もあります。

このような信号はいくつかの方法でPCに入力されます。

  • PCの拡張スロット、PCIバスやCバス、ISAバス、PC104バスなどに接続された汎用/専用の入出力ボード類
  • シリアルポート、パラレルポート、USBなどの先に接続された入出力機器
  • ネットワーク直結の信号入出力機器
この中でもっとも高速な部類はPCに直接接続されたボード類で、PCIバスの場合には理論上は毎秒数十MByteの高速転送ができます。多くの情報を扱ったり、速度が要される場合の第一の選択肢になります。
このような背景からPCIバス用のインターフェイスボードは多数市販されています。
アドテックシステムサイエンス  →インタフェース など このページで紹介する"Universal Interface Board"(ユニバーサルインターフェイス、UnivIF、UIF)は、文字通りUniversal(万能)なPCIバス用のディジタル信号インターフェイスです。

インターフェイスは一般にそれぞれ固有の機能を持っています。 ディジタル信号を扱うものでも、多ビットの入出力を行うもの、通信を行うもの、パルスの計測を行うものなど多種にわたります。 それに対して、Universal Interfaceはそれ自体のみではなにもできませんが、設定データをダウンロードすることで、単なる入出力やカウンタを必要な数組み合わせたり、入力情報を加工したりできるようになるインターフェイスです。

詳しくは後述しますが、 Altera社のCPLD/FPGAである FLEX6000シリーズ、同10Kシリーズを心臓部に搭載し、インターフェイス機能を受け持ちます。 アドテックシステムサイエンス社製のPCI-ローカルバスブリッジLSIを搭載しています。そのため、PCIバスの複雑さは考える必要がありません。 CPLD/FPGAの内部データ設定のための回路を搭載しています。そのため、電源投入後に随時、機能を変更することができます。 TTL 75245型のバスバッファ(74HC245など)を入出力コネクタに介在させています。 外部の不適切な回路やショートから内部を守ります。 といった要素から構成されています。 多くの場合は、市販のインターフェイスボードを買ってくれば、事足りるにも関わらず、このようなボードの開発を行い、愛用しているには理由があります。
市販品は当然機能が固定されていますが(多少は設定可能ですが)、時として自分の要求に合わないことがあります。たとえば、ロボット制御をしたいとき、その基本であるサーボモータの制御を行うには、モータへの指令出力(PWM)、エンコーダパルスカウンタ、ゼロ点/リミット検出が必要となりますが、普通はこれをすべて備えたインターフェイスはなく、それぞれ単機能のものを買ってくることになります。制御したいモータが2個程度だと、それぞれのボードはチャネルや機能が余るのに、スロットを3個も消費します。回路規模や入出力の本数を考えるとそんなに大きいものではありません。
昔のCバスやISAバス時代には、そんなときはボードをつくってしまうという選択肢がありました。ところが、PCIバスは複雑であり、簡単には設計製作ができません。できたとしても、金銭的、時間的コストがわりにあいません。
それに対して本ボードは、多少ディジタル回路の設計ができれば、自分の欲しい機能をすぐに得ることができます。もちろん、規模に限界はありますが。
本来はインターフェイスとして開発されましたが、入力された信号を内部で加工した上でPC側に渡すことも、もちろんできます。入力にA/Dコンバータを接続すれば、ボード上でディジタルフィルタなどの信号処理、画像処理なども行うことができます。
回路データのダウンロードは専用のソフトで1〜2秒程度で完了します。 そのため、インターフェイス開発中のデバッグも容易ですし、運用時も機能を切り替えながら使うことも可能です。
はんだ付けしてつくった回路はICを抜いてくる以上のリサイクルはなかなか難しいのですが、本ボードの場合は、回路は画面上で書いた回路図/HDLで書いた設計データで、ほとんどソフトです。そのため、適当に切り張りして流用することや、ライブラリ化が容易です。
一方で、ボード自身も、ある用途に使い終わったら、すぐに別の用途に転用できます。
そのため、使えば使うほどコストパフォーマンスが上がります。
自分で人件費0円で適当につくっちゃったこともあるのかもしれませんが、ボード原材料費は2万円をきっています。 専門に量産すればもっと安くなるかも知れませんが、現在のところ、量産はされていません。
ただ、現時点でこのボードは作者の手作り品しかなく、販売予定もありません。 量産してみたいという会社募集中です。

開発の動機は、ロボット用のインターフェイスボードの開発でした。

当時在籍していた東北大学江村研究室で4脚歩行ロボットの制御システムの改修が計画されました。 もともとは2脚ロボットと同様、MS-DOSで動くNECのPC9801/9821シリーズのパソコンで制御されていました。 パソコンの老朽化に伴う改修で、その機会にPCもIBM PC/AT互換系に更新することにしました。 そのとき、最大の問題になったのがインターフェイスです。ロボットは12個のDCサーボモータで動作するため、モータへの指令出力(D/A)とエンコーダカウンタ、ゼロ点等のスイッチ入力、センサからのアナログ信号入力がありました。 このなかでも、エンコーダカウンタがやっかいで、当時リーズナブルな価格帯で探していたものは最大でも1枚4チャネル、あっというまにスロットがうまります。 これは昔から同じですが、以前はCバスに独自につくった12チャネルのD/Aとカウンタボードを刺していました。 しかし、PCIであったため、そう簡単につくるわけにもいきません。そこで、それを機会に以前から企んでいた構想を提案し、必要な部材を購入していただき、開発を始めました。その結果、ボード2枚に各々8チャネルのPWM発生回路(フィルタを外付けしてアナログ出力)とエンコーダカウンタ、ゼロ点入力回路を搭載し、ボード2枚でモータ類を賄いました。
ちなみに、制御OS側はすでに2脚ロボットで実績をあげていたLinuxによる制御システム一式を持ち込み、ロボット固有の部分を書き換える形で実装しました。
さらに蛇足ですが、先に改修した2脚はというと、メインコントローラのみをLinuxに置き換え、ハードとやり取りをするスレーブコントローラをMS-DOSのままにしていたため、このような問題は先送りにされていました。


その後、その"Universal"さを活かし、ロボット用インターフェイスにとどまらず、モーションキャプチャ用のディジタル信号処理や、画像処理回路の試作、信号分析装置のためのダミー信号発生器などなどに活用しています。
その過程で、最初は基板加工機で1日かけて作っていた基板も、外注となり、さらにデバイスをパワーアップしたVersion 3まで開発されて延べ枚数も10枚を越え、各種オプションボードも増えています。
これまで、「汎用」を意図しても、手間の余計にかかった一品料理になることが多かったのですが、珍しく、真に汎用を発揮しています。
本ボードの開発は東北大学大学院江村研究室在籍中から行っております。 開発には、大学研究費、文部科学省科学研究費補助金、中谷電子計測技術振興財団技術開発助成の協力を受けております。ここに謝意を表します。 現在のところ、残念ながらこのボードは設計データを公開しているだけで、市販はされていません。 そのため、利用ご希望の方には部品の入手方法のご提供のみとなります。 専用プリント基板に関しては、すでにマスクができていますので、製作単価のみでご提供可能と思われます。
(入手のご希望があれば、製作を依頼した梅沢無線電機さんに直接申し込み可能なように依頼してみます。東北大ほかで校費扱い可能でした)

その他、データに関しては基本的に公開致します。また、本ページの情報やデータを元に商品化をご検討いただける場合は是非ご相談下さい。 情報公開のためにつくったページですので、本ページの情報のご利用に制限はございません。 ご利用に関する詳細につきましては、<#>pageinfoこちらをご覧下さい。


発表済文献等:
03/09/06 工事開始