詫間電波工業高等専門学校研究紀要 第 36 号 (2008)

マイコン機能を搭載した教育・研究用 FPGA ボードの開発
月本功*

森宗太一郎*

高木正夫*

Development of FPGA Board with Microcomputer Functions
for Education and Research
Isao TSUKIMOTO, Taichiro MORIMUNE and Masao TAKAGI

Synopsis
Recently, programable LSIs and microcomputers are used in a lot of electric circuits. Therefore, theeducation about programable LSIs and microcomputers is necessary. On the other hand, different
functions are needed in research and education. While, the cost needed for developing printed circuitboards with different functions for some applications is very high. Thus, the FPGA board with
Microcomputer function is developed by this research. Software CPU system “NiosII” that iscomposed in this FPGA can correspond to different functions, because specification for any
applications can be corrected flexibly. And, USB function and Ethernet one, etc. were added to thecircuit based on original NiosII CPU board designed in Infohobby, Ltd.

はじめにFPGA はアルテラ社の低価格 FPGA“cyclone シリーズ”を採用した。またアルテラ社は自社 FPGA用のソフトウェアコアプロセッサとして「NiosII」をリリースしており、本ボードでもこのマイコンを利用することとした。
図１に本ボードの構成図を示す。本ボードにはマイコンシステムを構成するため必要となるフラッシュメモリ、SRAM 実装している。

SRAMSRAM
I/F

SRAM
I/F
USB
1CH

LED
２個

PIO
I/F

PIO
I/F

PUSH
SWITCH
２個

PIO
I/F

PIO I/FDIP
SWITCH２個

2.1 構成本 FPGA ボ ー ド は イ ン フ ォ ホ ビ ー 社 のNiosIICPUカードを基板として開発を行った１）。

CONFIG
ROM

PIO
I/F

オプション

割り込み
制御

･ 追加I/O･ カスタムI/ONIOSII
コア

タイマ（ 複数可）

3.3V/1.5V
変換

図１
*LAN
1CH
(ｵﾌﾟｼｮﾝ )

UART
I/F

1.5V

ASM CN

構成と仕様

JTAG CN*

2.

RS232C
2CH

CN3

UART
I/F

USB CNSPII/F

XPORT CN

FLASH
メモリ

CN2

FPGA
NIOSII CPU

拡張機能（ 設計）

BUS
SWITCH

拡張 CN

現在、FPGA 等のプログラマブル LSI を使用してのディジタル回路設計が非常に多く行われるようになり、従来高価であったプログラマブルLSI も低価格が進んでいる。プログラマブル LSIはユーザが設計した回路データを書き込むことでユーザオリジナルの機能を実現できる LSI である。プログラマブル LSI の設計は HDL（ハードウェア記述言語）で行うことから、HDL の知識は不可欠なものとなっている。一方、組み込み機器で多く使用されるマイコンも高性能・低価格化が進み、HDL 同様、マイコンについての知識も重要である。そのため、プログラマブル LSIを使用した HDL 学習用ボードやマイコン学習用ボードなど多くの教材が市販されている。しかし、双方を学習可能な教材はほとんど存在しない。
FPGA が高性能化した現状において、FPGA に組み込むことのできるソフトウェアマイコンがリリースされ、FPGA にオリジナルのマイコンシステムを構築することが可能となった。そこで本研究では、学生実験や研究に適したハードウェア仕様を検討し、マイコン機能を搭載可能な教育・研究用 FPGA ボードを開発したので報告する。

3.3V
5V/3.3V
変換

5V

電源 CN

1.

構成図

電子工学科
57

THE BULLETIN OF TAKUMA NATIONAL COLLEGE OF TECHNOLOGY No.36 (2008)

外部との通信用には、RS232CとUSB機能を搭載している。さらに、オプション機能として、イーサネットに接続するためのXPORTを搭載し、TCP/IPによる通信機能やWEBサーバ機能も実現可能である2）。
本ボードの外観を図２に示す。本ボードは、機能拡張用に 40 ピンの外部接続用コネクタが実装され、FPGA に接続されている。学習教材用途や研究用途ごとに追加回路が必要な場合は、その回路を別ボードとして製作し、機能拡張用コネクタで本ボードと接続することで、外部回路が FPGAに接続される。別ボードとのインターフェース回路を FPGA 内に実現することで、各事例に対応できる。

マイコンの構成変更の手順やプログラム開発手順を調べた。本IOボードを使用するには、IOボー
ド上のLED等の表示器を制御するための機能をNiosIIマイコンに組み込む必要がなる。こういった機能追加の作業には、開発ツール「SOPCビルダ」を使用する。SOPCビルダでは、機能ライブラリの中から必要な機能を選択、追加し、必要な設定やコンパイル等の操作をした後、FPGAにNiosIIマイコンを書き込むことで、オリジナルマイコンを構成する3）。
また、外部ボード制御用に HDL で設計した拡張機能を、NiosII マイコンと組み合わせて FPGAに組み込むことで、さらに機能拡張が可能である。

図３

3.

図２ 外観図2.2 仕様本ボードはマイコンの機能を構成する上での最小構成とした。主な仕様を表１に示す。なお表１は標準的な構成であるが、設定を変更することで、クロックアップや、内部タイマの追加、割り込み機能の追加など、要求に応じカスタマイズ可能である。
表１ 主な仕様

IO ボードとの接続プログラム開発手順

FPGA 内部の ROM には、作成したユーザプログラムをボードにダウンロードする機能やメモリダンプ機能などをもったデバッグモニタ（GERMS モニタ）を保存している。またマイコン起動時に動作するブートプログラムは FPGA
内の RAM に保存している。
NiosII マイコンが起動すると、まずブートプログラムが起動する。ブートプログラムはモード選択スイッチ（SW2）の状態に応じて、(1)デバッ
グモニタの起動、(2)SRAM 内のユーザプログラ
ムをフラッシュメモリへコピー、(3)フラッシュメモリ内のユーザプログラムの起動、のいずれかの処理を行う。図４に SW2 によるモード切り替
えフローを示す。
ボード電源 投入またはSW1による再起動

SW2 ONNo

Yes

ユーザプログラム起動
SW2 2秒以上 ON
No
Yes

プログラム
保存

スイッチ入力、LED、７セグメント表示器を各４回路、LCD表示器を１回路実装した図３右のIO
ボードを試作し、本ボードと組み合わせて、NiosII
58

GEAMモニタ
起動

SW1:リセットスイッチ
SW2:モード切り替えスイッチ

図４ スイッチによるモードの切り替え詫間電波工業高等専門学校研究紀要 第 36 号 (2008)

ユーザプログラム開発時には、(1)と(2)を使用する。まず、パソコン上で、作成したソースプログラムをコンパイルし、ダウンロード用のインテル HEX ファイルを作成する。次に SW2 を短時間（２秒以内）押した状態で、マイコンを起動（リセット操作で）することで、デバッグモニタを起動して、マイコンにプログラムをダウンロードする。プログラムはボード上の SRAM に１時的に保存され、SRAM 上でプログラムが自動的に実行される。正常動作するかどうか、この段階でデバッグを行う。
設計したプログラム動作に問題なければ、(2)のモードで SRAM 内のユーザプログラムをフラッシュメモリに転送する。(2)は、マイコンをリセットし、SW2 を２秒以上押し続けた状態にすることで実行される。
スイッチ SW2 を押していない状態でリセット
すると、フラッシュメモリに保存した、最新のユーザプログラムが自動実行される。

4.

卒業研究への適用事例

4.1 DC ブラシレスモータの PWM 制御
電子機器への組み込み用途では、アクチュエータとしてのモータや、外部情報を取り込むためのセンサを扱うことが多い。そこで、本卒業研究テーマではモータ駆動の用途にも本 FPGA ボードを使用できるよう、モータ制御機能および回転角検出センサ信号処理回路を VHDL で設計し、本FPGA ボードの機能追加を行った。本件では、
Nidec 社のアンプ一体型 DC ブラシレスモータ「22H055C030」を制御対象モータとした。また、回転角検出センサには、インフォホビー社製エンコーダモジュール「IHA/05005ECS(Type-300)」を使用した。
モータ駆動用の PWM 信号発生回路のブロック図を図５に示す。図５の Setting 信号は PWM信号のデューティ比を設定する信号で、Limit 信号は PWM のデューティ比の上限を設定する信号である。PWM 信号はクロックパルスをカウントした値と Setting 値を比較し、Setting 値がカウント値より大きいと１を、小さいと 0 を出力することで得られる。なお、使用したモータの仕様か
ら PWM 周波数は 20kHz とした。
エンコーダモジュールは、図６に示すように A相、B 相信号が 90 度位相差で出力する。また回転方向により位相進みと遅れの関係が逆になる。
回転軸方向から見て左回転の場合、A 相が B 相より 90 度進み、右回転の場合は 90 度位相遅れとなる。このような A 相、B 相信号は一般的に使用されるエンコーダ回路と同様であり、本件で設計した回路は多くの用途にも使用可能である。

Limit

リミッタ回路Setting
CLK

比較回路

1000進カウンタ

Reset

PWM信号

図５ PWM 信号発生回路のブロック図

A相
B相
左回転

A相
B相

右回転

図６ エンコーダの A/B 相信号波形設計した PWM 制御回路と、エンコーダ出力処理回路を NiosII マイコンへ拡張機能として追加し、FPGA に書き込み、動作実験を行った。実験は図７のように、モータから発生するサージからFPGA ボードを保護する保護回路を追加して行った。その結果、PWM のデューティ比設定に応じてモータ回転数が増減することを確認できた。
またエンコーダの A/B 相信号を処理した回転角情報の取得にも成功した。
モータ

保護回路FPGA ボード

図７試験回路構成
4.2 電光掲示板遠隔制御システムの開発
本 FPGA ボードには、オプションとして Xportを実装可能である。Xport は TCP/IP－シリアル変換機能を有しており、FPGA は複雑な TCP/IP 通信を意識することなく、単純なシリアル通信で容易にイーサネットに接続可能である。
59

THE BULLETIN OF TAKUMA NATIONAL COLLEGE OF TECHNOLOGY No.36 (2008)

本事例では本ボードを使用して遠隔で電子機器を制御する場合の開発課題等を調べるため、電光掲示板の遠隔制御システムの開発を試みた。
システム構成を図８に示す。掲示板は双葉電子工業製電光掲示板「GP1054A」を採用し、図８に示すように、RS232C によるシリアル通信で掲示板を制御する。本システムでは Xport の Web サーバ機能を利用し、Java アプレットを使用して作成した Xport 上のホームページから掲示板に表示したい文字を送信する。
本件の電光掲示板は、RS232C 通信プロトコルに規定があり、HDL でハードウェアとして実現するには処理が複雑である。そのため、本事例では FPGA ボードを NiosII マイコンボードとして使用し、FPGA に HDL によるハードウェア追加は行わず、マイコンプログラミングで掲示板制御を実現した。本事例はマイコンボードとして本ボードを使用した事例である。
イーサネットFPGAボード

TCP/IP

Xport
FPGA
パソコン
WebブラウザでXportのホームページから文字送信

シリアル通信

NisoII
マイコン
RS232C

電光掲示板

図８

電光掲示板遠隔制御システムの構成

4.3 ロックインアンプ用 A/D コンバータ製作
電子工学科の森宗研究室では卒業研究・特別研
究において物質の光学的特性と光デバイスの光電変換特性の測定・解析を行っている。そこでは、微少な信号を測定するため、ロックインアンプという特殊なアンプを使用している。ロックインア
ンプの出力はアナログ信号であり、パソコンにデータを取り込んで処理する場合は AD コンバー
タにより、アナログ信号をディジタル信号に変換する必要がある。市販製品を使用しても実現可能であるが、本事例では、アナログデバイゼス製AD 変換 IC「 AD7721」と組み合わせる周辺回路を設計し、A/D ボードを試作した。このボードと本 FPGA ボードと組み合わせることで、安価なデータ測定システムを製作した。
システム構成を図９に示す。本事例では、図９の AD 変換部の制御とディジタルデータの取り込み、および測定データのパソコンへの送信を本60

FPGA ボードが行っている。ここでは AD 変換部の制御回路は VHDL で設計し、NiosII マイコンと組み合わせて FPGA に組み込み使用している。パソコンへのデータ送信機能は、NiosII マイコンのプログラムで実現し、タイマ割り込みを使用して、１秒ごとにデータをパソコンに通信する。
A/Dボード１２V

電源 １５V
NJM
7812

AD変換部

５V

水晶発振器
（10MHZ)
ディジタル信号

NJM
7805

レギュレータ部

バッファ用オペアンプ部

FPGA
ボード

パソコン

１２ビット
NiosⅡ コネクタ
マイコン （USB)
リファレンスIC AD変換器（AD780）（AD7721） 制御信号

外部入力FPGA
AD623

コネクタ（BNC)

AD820

アナログ信号
ディジタル回路

アナログ回路AC/DC

図９ AD 変換システム構成

5.

むすび

現在のディジタル回路設計の現場では、プログ
ラマブル LSI が多く使用されるようになっている。その設計にはハードウェア記述言語 HDL を使用する。そのためディジタル回路設計においてHDL の知識は重要である。また電子機器内にはマイコンが数多く使用されており、これについて学ぶことも必要である。
そこで本研究では、アルテラ社製の Cyclone シ
リーズ FPGA を搭載した FPGA ボードを開発し、ソフトウェアマイコン「NiosII」を実装可能なハードウェア環境を構築した。また本ボードにはUSB 機能やイーサネットに接続するための機能も搭載した。
本論文では、FPGA の構成、仕様等の概要報告と、実際に本ボードを使用した卒業研究事例を紹介した。これらの事例では、回路の 1 部を HDLで設計し FPGA で動作させたほか、その回路をNiosII マイコン新機能として機能拡張を行った。
本 FPGA ボードは汎用性が高く、紹介した事例以外にも広く利用可能であると考えている。具体には、本校専攻科の特別実験・演習で教材開発での使用を予定している。

参考文献1)” イ ン フ ォ ホ ビ ー 社 NiosII CPU カ ー ド<Btype>ユーザーズマニュアル”,有限会社イン
フォホビー
2)日高亜友、中村雄次、瀬木千秋、和田好司：”
センサとインターネット接続”，CQ 出版社
3)”NioSysTM で始める NiosII 開発”,東京エレクトロニックシステム株式会社