このページの本文へ

前へ 1 2 3 次へ

塩田紳二のWindows 8 IN-N-OUT 第10回

ARM版Windows RT搭載機を発売するのはどのメーカーか?

2012年07月06日 12時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

ARM系を含む組み込みデバイス一般では、I2CやGPIO、UARTといった組み込み用のインターフェースを使う。これらは基板内での接続で抜き差しが起こらないほか、デバイスも自身のタイプや能力などを通知することはなく、ソフトウェア側が情報を完全に把握していることを前提としている

 これに対して、これまで携帯電話のような簡易な機器では、メインCPUが直接カメラを制御していた。組み込み系ではプロセッサーと周辺デバイスの接続も、簡易なインターフェースが好まれるし、モバイル系デバイスではインターフェース自体の消費電力も低いもの(例えば信号の電圧が低いもの)を使う傾向があった。このような場合には、「I2C」※1のような組み込み向け汎用のインターフェースや、単純なシリアル通信、1bitのデジタル信号(GPIOと呼ばれる組み込み系CPUのインターフェース)や専用のインターフェースなどが使われる。
※1 Inter-Integrated Circuitの略。2本の信号線で最大112個のデバイスを接続可能なシリアルバス。10kbps~3.4Mbps程度の通信が可能。旧フィリップス社の半導体部門(現NXPセミコンダクター)で開発された。

 Windows RTの開発にあたり、マイクロソフトはこうした組み込み用インターフェースに対応した。やり方としては、既存のUSBやクラスドライバーという仕組みを使い、ここに「シンプル・ペリフェラル・バス」(SP-Bus)を定義。I2Cや「UART」といった、組み込み向けのインターフェースバスを扱えるようにした。

 PCのハードウェアでは、USBやPCI Expressといったひとつのインターフェースでデバイスを接続するが、組み込み系では、デバイスの接続に例えばI2CとGPIOを組み合わせたり、あるいはUARTとGPIOを組み合わせて使うことがある。デバイスとのデータのやりとりにはI2Cを使うが、デバイスからの割り込み信号は、GPIO経由で受け取るといった接続形態で設計するわけだ。

 またUSBなどでは、デバイス自身がホストに対して「自分はどのようなデバイスであるか」を通知する機能がある。だが組み込み系の場合、基板上に実装されるデバイスが抜き差しされることは基本的にありえないので、このような面倒は必要ない。プログラムは特定のアドレスに特定のデバイスがあることを前提に作られる。そのためARM系システムでは、組み込まれているデバイスを表データなどで表現し、これをファームウェアの一部となる「ACPI」で管理する。そのほかにもWindows RTでは、SD I/Oや、Embedded MMC※2などがサポートされる。
※2 MMCのインターフェースを組み込み用にしたストレージ用フラッシュメモリーの接続インターフェース。

Windows RTでは、I2CやUARTで接続されたデバイスの情報をACPI内に固定した情報として記憶する。ACPIは起動時にWindowsからデバイスを列挙するような場合に呼び出される

 Windows RTの場合、I2CやUART、GPIOについてはそれぞれにデバイスドライバーが必要になるが、上位とのインターフェースはSP-BusのAPIに統一される。接続されたデバイスは、USBのようなクラスドライバー構成となるわけだ。例えばタッチパネルの場合、カーネル側からはI2C接続でもUSB接続であっても、どちらもHID(Human Interface Device)であるかのように見える。そのため上位のモジュールでは、USB接続もI2C接続も同じように、「HIDによるポインティングデバイス」として扱うことが可能になる。

タッチパネルはUSBまたはI2C接続とされているが、USBで定義したHIDとして扱われる。Windowsのカーネルからはいずれも、HIDによるポインティングデバイスとして扱われる。HIDCLASS.sysの大半はマイクロソフトが開発。下位のバスドライバーはバスに合わせて作られるが、ひな形になるクラスは用意される

 こうしたデバイスドライバーは、原則として半導体メーカー側が開発する。また半導体メーカーは、内蔵GPUなどのデバイスドライバーも開発して、ハードウェアメーカーに提供する。Windows RTの場合、GPUはPCと同じくDirectXを使って制御する。DirectXではGPUの仕様をバージョンごとに定義しており、これに準拠するグラフィックスドライバーを組み込むことで、Windowsが持つグラフィックス機能を利用できるようになる。

 なお、Windows 7からはすべての描画がDirectX経由となったために、条件を満たしたDirectXドライバーさえあれば、Windowsを動作させられる。ただし、Windows 8/RTには、GPUを使わずビデオメモリーを直接操作する「ソフトウェアGPUドライバー」も存在する。これはWindowsのセットアップやブルースクリーン時など、Windowsが動作してない場合に描画を行なうためのものとなっている。

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン