TOPPERS BASE PLATFORM のポーティングの検討～ USB ミドルウェアの解析 ～創価大学 理工学部 共生創造理工学科 伊与田健敏
近年、組込みマイコンも機能が豊富になり、マルチメディア機能や USB のホスト機能を持つものが多くなり、TOPPERS においても組込みシステム技術者の育成を目指した教材として、マルチメディア機能やファイルシステム、USB 機能をサポートするミドルウェアを備えた「TOPPERS BASE PLATFORM」が開発された。
今後の幅広い利用を考え、そのポーティングを検討する上で最も困難と考えられる USB ミドルウェアのポーティング作業の第一段階として、その USB 機能を担うミドルウェアの機能や構成について解析する。

１． はじめになどを備えたものが存在していなかった。 そのために、組込み機器用のリアルタイムＯＳとして、オープンソーヒューマンインターフェースやマルチメディアに関係するスのＴＯＰＰＥＲＳは μITRON 準拠の JSP カーネルの開ミドルウェアの開発が進まなかったのではないかと考えら発に始まり、ASP カーネルや FMP カーネルなど発展をれる。

続けており、様々な機器に組み込まれ利用されている。

このような状況に対して、私の研究室では、今までにまた、組込みシステムのソフトウェア開発を担う人材育成開発されたＴＯＰＰＥＲＳの公式成果物（ソフトウェア）を同にも活用されている。

時に使用して試すことができ、さらにマルチメディア機能組み込みシステムにおいても、応用分野によってはなどに関係するミドルウェアを開発するための土台となるヒューマンインターフェースが必要となる場合がある。ＴＯ「ＴＯＰＰＥＲＳ用参照ハードウェア（TOPPERS Reference

ＰＰＥＲＳプロジェクトの公式の成果物の中で、ヒューマンHardware、以後ＴＲＨと略記）」を２０１１年に提案し、作製インターフェースを構成するために必要となる音声入出に取り組んできた。

力、グラフィックス表示、ポインティング入力などを担うミド

TRH-α1 は図１のような構成で、Ｈ８マイコンを中心

ルウェアは、ＴＯＰＰＥＲＳプロジェクトの公式の成果物のに、パソコンと同等なファイルシステムやマルチメディア中には見当たらなかった。

機能などを有している。図２が実際に作成した TRH-α1

ＴＯＰＰＥＲＳプロジェクトにおいては、リアルタイムカーの基板である。この TRH-α1 は、マウスやキーボードなネルをはじめとする様々なソフトウェアは開発されてきたどのヒューマンインターフェース機器や USB メモリーなどが、それらを動作させる土台となるハードウェアについての周辺機器を接続するために USB のホスト機能を備えは規定されておらず、それぞれの開発者が身近にあるている。

ハードウェアを前提にしてソフトウェアが開発されてきたと組込みシステムは、パソコンの周辺機器として USB の考えられる。そして、今まで用いられてきたハードウェアターゲットデバイスになる場合もあるが、同時に USB のホで音声入出力やグラフィックス表示、ポインティング入力スト機能を持つことが出来れば、様々な USB デバイスを

図１ TOPPERS 参照ハードウェア（ TRH-α1 ）の構成

図２ TRH-α1 （部品実装済み基板）

接続して活用することが可能になり、組込みシステムの可能性を広げることが出来る。TRH-α1 に USB のホスト機能を搭載したのも、そのような考えからである。

２． ＵＳＢは難しい!
組込みシステムにＵＳＢのホスト機能を搭載しようと何年にも渡って様々な取り組みを行なってきた。その中で近年、組込みマイコンのシステムも機能が豊富になり、 痛感することは、「ＵＳＢは本当に難しい」ということである。
マルチメディア機能や USB のホスト機能を持つものが多ＵＳＢもネットワークなどの通信規格と同じようにシリアくなってきた。同時に、その機能を活用するためのミドルル通信であり、パケットが基本となっている。有線ＬＡＮのウェアの重要性についても関心が高まってきたといえる。

規格であるイーサネットにおいて、コントローラチップはそして、ついに、TOPPERS においても、組込みシステ

イーサネットで規定されたパケットの送信と受信ができれム技術者の育成を目指した教材として、マルチメディアばよい。上位のプロトコルは、下位のプロトコルのペイ機能やファイルシステム、USB のホスト／ターゲット機能ロードとして入れ子になって運ばれるので、比較的理解をサポートするミドルウェアを備えた「TOPPERS BASEは容易である。

PLATFORM」が開発された [1]。

一方、ＵＳＢは、パケットを基本としてはいるものの複TOPPERS BASE PLATFORM がサポートしているのは、 雑なプロトコルを使っている。その例として、図３に示され今のところＡＲＭコアのマイコンで、USB の機能に関してているのが、コントロール転送のプロトコルである [2]。

は SYNOPSYS が提供する USB の IP に対してのみである。 ＵＳＢのプロトコルは３つの段階（階層）で構成される。
しかし、今後は様々なマイコンにおいて幅広く利用されていくものと考えられる。

まず基本になるのが、パケットである。パケットはトークンパケット、データパケット、ハンドシェイクパケットの３種

そこで、本研究室では、TRH-α1 やルネサスの GRSAKURA ボードを対象に TOPPERS BASE PLATFORM類がある。実際にデータの転送を担っているのはデータパケットである。のポーティングに取り組み始めている。その中で、おそら

次に、これらのパケットによって構成されるのがトランく最も困難な作業が USB 機能を担うミドルウェアのポーザクションである。トランザクションは基本的に、トークンパティング作業だと考えており、本稿で、そのポーティング

ケット・データパケット・ハンドシェイクパケットの３つから構作業の第一段階として、TOPPERS BASE PLATFORM成され、これがデータ転送の基本単位となる。トランザクの USB 機能を担うミドルウェアの機能や構成について、ションは、SETUP トランザクション、ＩＮトランザクション、Ｏ現時点での解析して得られた内容について述べる。

ＵＴトランザクションの３種類がある。

図３

USB のプロトコル（文献 [2] より引用）

最後が、転送（トランスファー）である。転送は、複数のトランザクションから構成されている。図３の中で、(a)トランザクションの種類 と書かれている説明のところで、細長
い横長の長方形で書かれているのが「トランザクション」であり、それらが横一列で並んで構成されているのが「転送」である。（ｂ）プロトコル手順 とかかれているところの図は、各トランザクションにおけるパケットが見えるように書かれている。このように複雑な３つの階層があるのが USBのプロトコルであり、それを正しく認識して理解すること自体が大変である。
さて、組込みシステム用に USB のミドルウェアを作成しようとすれば、USB のコントローラについて知らなければならない。この時に悩ましいのが、コントローラは上記の階層に照らして、どの単位で処理を担ってくれるのか、ということが見えにくいという点である。組込み機器用のいろいろな USB コントローラを調べてみると、概ね「トランザクション」を単位として処理してくれるようである。
しかし、１つのトランザクションにおいてデータパケットが１つ含まれているので、そのデータパケットの送信や受信という意味で「パケットの送信」「パケットの受信」という言葉がよく出てくるが、惑わされてはいけない。USB におけるデータ転送の基本単位はあくまで「トランザクション」であり、データ転送の際に USB コントローラは自動的に「トランザクション」を構成してくれる、ということなのである。

３． TOPPERS BASE PLATFORM における
USB ミドルウェアの階層構造
いよいよ本題の TOPPERS BASE PLATFORM における USB の機能を担うソフトウェアの構造について述べていく。