レジスタへのアクセスが基本! SHマイコンで遊ぼうWindows Embedded CEでマイコンとシリアル通信(1)(1/3 ページ)

Windows Embedded CEで、マイコンとシリアル通信を行うまでを解説。まずは「マイコンに慣れる」ところからはじめよう

» 2011年01月07日 00時00分 公開
[佐藤 晶則,@IT MONOist]

 特集「“Phidgets”で簡単ハードウェア開発」では、“Phidgets”というデジタルI/OとA/Dコンバータの機能を持ったインターフェイスボードについて、その使い方やプログラミングの方法を解説しました。このようなハードウェアは組み込み開発の初心者の方には、非常に便利なものです。

 しかし、組み込み開発の現場において、開発者はハードウェアの仕様を詳しく知っておきたい、必要に応じて仕様を変更したいという要求があります。Phidgetsのような完成されたハードウェアは汎用性が高いですが、そのような要求には応えられません。また、ハードウェアの細かい部分を知らずに開発を行うと、何か問題が起きたときに対処ができません。

 家電製品やロボットなどの組み込みシステムを開発する際、ターゲット機器向けの評価ボード(ハードウェア)などを製作し、それをベースに開発するケースがあります。ここでよく用いられるのが「マイクロコンピュータ」、略して「マイコン」です。マイコンは、皆さんが使っているPCほどの性能はありませんが、LEDを光らせたり、モータを回したりするなどの単純な制御に向いています。マイコンは、こうした組み込みシステムには欠かせない存在です。

 本連載では、このマイコンを使って、組み込みコンピュータである「eBox-3310」とシリアル通信をするところまでを解説していきます。これができるようになれば、スイッチやLED、センサなどが思いのまま動かせます。また、マイコンのさまざまな機能を組み合わせて使うことにより、より柔軟な組み込みシステムを作れるようになります。

 今回は組み込み開発初心者の方を対象に、「まずマイコンに慣れること」を目的に解説していきたいと思います(シリアル通信やWindows Embedded CEについては、次回以降に紹介します)。


1.開発環境の準備

 今回使用するマイコンは、ルネサス エレクトロニクスの「SH7125」です。秋月電子通商で販売されている「SH7125Fベースボードキット」(図1)には、開発に必要なものがほぼそろっています(DC5Vのアダプタは別途購入する必要があります)。本連載では、同キットを使って解説を進めていきます。

SH7125Fベースボードキット 図1 SH7125Fベースボードキット

 開発環境は、ルネサス エレクトロニクスの「HEW(High-performance Embedded Workshop)」の評価版を利用します。同キット内のCD-ROMにインストールマニュアルとセットアップファイルが入っていますので、マニュアルの指示に従ってインストールしてください。また、必要に応じてWebサイトからアップデートを行ってください。

2.マイコン開発の基礎知識

 世の中にはたくさんの種類のマイコンがあり、それぞれの持つ機能は異なります。秋月電子通商で手に入るものでも、「PIC」「AVR」「H8」「SH」などさまざまです。しかし、マイコンの機能を使うための基本的な方法は、どのマイコンでもそんなに変わりません。一般的な(私が知る限りの)マイコンは、「レジスタ」と呼ばれる記憶領域の読み込み/書き込みにより、その機能が発揮されます。

 例えば、今回使用するSH7125のポートAを見てみましょう。ポートAは、16ビットの入出力ポートです。ポートAには16ビットの「データレジスタ」と呼ばれるレジスタがあり、各ビットがポートAの各端子に対応しています。ポートAがすべて“出力”に設定されている場合、ポートAのデータレジスタにすべて「1」を書き込むと、ポートAの各端子に5Vが出力されます(「0」を書き込めば0Vとなります)。逆に“入力”に設定されている場合は、データレジスタを読み込むことによって、5Vは「1」、0Vは「0」として認識できます。

 では、ポートAの各ビットの入出力設定はどのように行うのでしょうか。これも、特定のレジスタへの書き込みによって実現されます。ポートAの「I/Oレジスタ」の目的のビットに「1」をセットすると“出力”、「0」をセットすると“入力”になります。

 このように、マイコンの機能はレジスタへのアクセスによって発揮されることがお分かりいただけたでしょうか。値を読んだり書き込んだりするだけですから、とても単純で分かりやすいですね。

 また、マイコンには人間が書いたプログラムを「コンパイル」する機能はありませんので、開発用PCで一度コンパイルし、その後でマイコンに書き込むという方法で開発します。この方法を「クロスコンパイル」と呼び、マイコンの開発の際にたびたび用いられます。

3.HEWの使い方

 基本的な使い方はマニュアルに書いてありますが、一部マニュアルと異なる点があるので詳しく述べたいと思います。新しくプログラムを作る際には、次の手順を踏んでください。

 HEWを起動すると、「ようこそ!」ダイアログ(図2)が出てきます。ここで、[新規プロジェクトワークスペースの作成]を選択し、[OK]ボタンを押下します。

HEWの「ようこそ!」ダイアログ 図2 HEWの「ようこそ!」ダイアログ

 すると、「新規プロジェクトワークスペース」ダイアログ(図3)が表示されるので、プロジェクトタイプを[Application]とし、ワークスペース名(任意)を入力してください。ほかは変更せず、[OK]ボタンを押下します。

「新規プロジェクトワークスペース」ダイアログ 図3 「新規プロジェクトワークスペース」ダイアログ

 続けて、「新規プロジェクト」のダイアログが表示されます。以降、9つのダイアログを経て新規プロジェクトの設定を行います。1番目と3番目のダイアログだけ以下(図4)(図5)のように設定し、ほかは何も変更せず、[次へ]を押下してください。最後に出てくる「概要」ダイアログもそのまま[OK]ボタンを押下してください。これでプログラムのひな型が完成します。

「CPU設定」ダイアログ 図4 「CPU設定」ダイアログ(1番目のダイアログ)
・CPUシリーズ:SH-2
・CPUタイプ:SH7125

「生成ファイル設定」ダイアログ 図5 「生成ファイル設定」ダイアログ(3番目のダイアログ)
・「I/Oレジスタ定義ファイル」の「ハードウェアセットアップ関数生成」を「C/C++ source file」に設定

 実際にプログラムを書き込むソースファイルは、先ほど設定した「プロジェクト名.c」というC言語のファイルです。これを開いてみると、すでに何行かプログラムが書かれています。main関数だけを残してすべて消してしまっても構いませんし、そのままmain関数の中身を書きはじめても構いません。いずれの場合も、以下のようにプログラムの先頭で必ず「iodefine.h」をインクルードしてください。

#include "iodefine.h" 

 iodefine.hには、先述のレジスタが共用体によって定義されています。使いたいレジスタへのアクセス方法を知りたいときには、このファイルを見ましょう。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.