沼津高専 電子制御工学科
標準MIRS IO制御ボードFPGA回路詳細設計書
MIRSSTND-DDSN-0001
改訂記録
版数 作成日 作成者 承認 改訂内容
A01 2004.7.2 長澤 長澤 初版


目次

  1. はじめに
  2. 概要
  3. 機能・性能
  4. ソフトウェアビジビリティ
  5. FPGAピン割り当て
  6. 回路構成

はじめに

本仕様書は標準MIRS(MIRSSTND)のIOの制御を司るAT互換PC用ISA拡張ボードに搭載されているFPGAに書き込む回路情報について規定する。

概要

標準MIRS(MIRSSTND)のIO制御拡張ボードは、アリテック社のD40-10-208(以下 IO制御ボードと称す。)にMIRS用ドータボードを搭載して実現する。基板上に搭載されているFPGAはALTERA社EPC10K10QC208-4である。本ボードでは以下の周辺回路の制御部を実現する。

  1. 16文字X2行液晶表示回路(M1632/L1672相当品)
  2. 車輪駆動用モータ
  3. ロータリーエンコーダ
  4. 超音波センサ
  5. タッチセンサ
  6. 白線センサ
  7. 赤外線センサ
IO制御ボードはISAバスを介してAT互換PCと接続され、各周辺回路とはドータボー ドを介して接続される。ドータボードの役割は主としてコネクタ変換程度で、 ほとんどのデジタル制御回路はFPGA上で実現される。本仕様書はこのFPGAで実 現する回路について規定する。
図1にIO制御ボード内のFPGAとISAバスおよび周辺回路の接続関係を示す。
IO制御ボード
図1
アリテック社の本ボードはISAバス側の配線は購入時からされており、その詳 細はアリテック社のマニュアル"マイコンビルだー取扱説明書"に記されている。

機能・性能

  1. LCD制御回路
    16文字X2行液晶表示モジュール(M1632/L1672相当品:以下LCDモジュールと呼 ぶ)をISAバスに接続する。 LCDモジュールは3つの制御信号と8ビtの双方向データバスによって制御され るが、ISAバスへのIOアクセスがそのままLCDモジュールの2組のレジスタのアクセスと なるように制御信号を生成する。
  2. 車輪駆動用モータ
    モータの速度制御はPWM信号によって行う。回転方向とPWM信号をHブリッジ LL298(STMicroelectoronics)の2つ入力信号に変換して出力する。
  3. ロータリーエンコーダ
    ロータリエンコーダの2相のパルスをカウントする16bitのカウンタが中心であ る。順回転で加算され、逆回転で減算される。回転方向の順、逆はロータリエンコーダの2相のパルスにより判別され、AがBより進んでいるとき順回転となる。負の値は2の補数表現であらわされる。
  4. 超音波センサ
    2bitの超音波センサ番号をUSS制御ポートアドレスにに書き込むと、幅0.4[ms]、 周波数約40[kHz]の超音波パルスを送信する。同時に回りこみ除去回路へのガー ドタイミングパルスを出力する。又、超音波センサから受信信号を受けとると、割り込み信号を、割り込み信号のリセットを行うまでCPUへ出力し続ける。
  5. 汎用入力ポート
    タッチセンサ、白線センサ、赤外線センサはその検出信号が、そのまま汎用入 力ポートに入力される。ソフトウェアから汎用入力ポートを読み込むとその時 点の各センサの状態が読める。
  6. 赤外線コード検出
    ポストに設けられた赤外線コード送信器から出力される赤外線コードを復調す る。コードは12bit、コードを検出するとflagビットがsetされコードが読み込まれる とflagはリセットされる。赤外線コードの復調は使用するFPGAのゲート数の不 足から1つのセンサのみとする。ただし、4つの赤外線センサのうちコード復 調を行うセンサの選択ができるようにする。

ソフトウェアビジビリティ

IOポート仕様
名称IO port Address[hex]R/WPort Name機能
LCD 0100R/WLCD Control LCDの制御レジスタ
bit15-87-0
機能未使用LCDのRS=0のレジスタ(LCDのマニュアルを参照)
0102R/WLCD Data LCDのデータレジスタ
bit15-87-0
機能未使用LCDのRS=1のレジスタ(LCDのマニュアルを参照)
PWM
信号生成
0110WPWM 0 PWM出力0信号制御
bit15-876543210
機能未使用DIR(回転方向)Duty幅を7bitで 設定
100%:1111111,0%:0000000
0112WPWM 1 PWM出力1信号制御
bit15-876543210
機能未使用DIR(回転方向)Duty幅を7bitで 設定
100%:1111111,0%:0000000
Rotary
Encoder
0120R/WRE_X ロータリエンコーダXの制御
書き込み:0x01を書き込むことでカウント値がリセットされる。
読み込み:16bitのカウンタデータが読み込まれる。リセットされない限りカ ウント値は積算される。順回転で加算され、逆回転で減算される。回転方向の 順、逆はロータリエンコーダの2相のパルスにより判別され、AがBより進んで いるとき順回転となる。負の値は2の補数表現であらわされる。
bit15-0
機能ロータリエンコーダパルスカウント値
0122R/WRE_Y ロータリエンコーダYの制御
Xと同様
超音波
センサ
0130WUSS_Send 超音波信号の送信
このアドレスに書き込むことにより、下位2bitで示される超音波センサ送信器に40KHzの超音波を0.4ms間送信する。
bit15-210
機能未使用センサ番号:0-3
0132WUSS_Ctl 超音波受信信号割り込みの制御
このアドレスに書き込むことにより、受信信号による割り込みのマスク、リ セットを行う。bit1に1を書き込とマスク、0でアンマスク。bit0に1を書き 込むとリセット。
bit15-210
機能未使用MaskReset
汎用
入力
0140RGIO デジタル入力入力
標準MIRS(MIRSSTND)では4種類の入力信号をこのポートから読み込む。
  1. MP:モータ用電源のON/OFF
  2. WLS1-4:白線センサ1-4
  3. IRS1-4:赤外線センサ1-4(赤外線センサの有無のみ。コード判別は0x15Xポー トで設定し読み込む)
  4. TS1-4:タッチセンサ1-4
bit1514-1211-87-43-0
機能MP未使用 WLSIRSTS
4321 4321 4321
赤外線
コード
0150WIRS_sel 赤外線コード復調センサの指定
このアドレスに書き込むことにより、下位2bitで示される赤外線センサの符号 検出を開始する。最低でもコードの出力周期以上の時間(20ms)保持しなければならな い。
bit15-210
機能未使用センサ番号
00:IRS1
01:IRS2
10:IRS3
11:IRS4
0152RIr_Code 赤外線検出コード
flag:コード検出したとき1にセットされ、このアドレスを読み込むとリセッ トされる。
bit1514-1211-0
機能flag未使用コード(コードは赤外線符号出力器の仕様を参照すること)

割り込みポート仕様
IRQ番号信号名称機能
5USS_int超音波検出の立ち上が りでsetされ、USS_Ctlに0x01を書き込むとリセットされる。

FPGAピン割り当て

項番ピン番号名称IN/OUT機能
1144 RE_XBINロータリエンコーダX_B相
2147 RE_XAINロータリエンコーダX_A相
3148 RE_XBINロータリエンコーダY_B相
4149 RE_XAINロータリエンコーダY_A相
5150 WLS1IN白線センサ信号1
6157 WLS2IN白線センサ信号2
7158 WLS3IN白線センサ信号3
8159 WLS4IN白線センサ信号4
9160 IRS1IN赤外線センサ信号1
10161 IRS2IN赤外線センサ信号2
11162 IRS3IN赤外線センサ信号3
12163 IRS4IN赤外線センサ信号4
13164 TS1INタッチセンサ信号1
14166 TS2INタッチセンサ信号2
15167 TS3INタッチセンサ信号3
16168 TS4INタッチセンサ信号4
17169 MR1OUT右モータPWM1
18170 MR2OUT右モータPWM2
19172 ML1OUT左モータPWM1
20173 ML2OUT左モータPWM1
項番ピン番号名称IN/OUT機能
21204 UT1OUT超音波センサ1送信信号
22203 UR1IN超音波センサ1受信信号
23202 UT2OUT超音波センサ2送信信号
24200 UR2IN超音波センサ2受信信号
25199 UT3OUT超音波センサ3送信信号
26198 UR3IN超音波センサ3受信信号
27197 UT4OUT超音波センサ4送信信号
28196 UR4IN超音波センサ4受信信号
29195 UTIMOUT超音波センサ受信ガードタイミング
30193 LCD_RSOUTLCD Register Select
31192 LCD_RWOUTLCD Read/Write
32191 LCD_EOUTLCD Enable
33190 LCD_DB0IN/OUTLCD Data 0
33189 LCD_DB1IN/OUTLCD Data 1
33187 LCD_DB2IN/OUTLCD Data 2
33179 LCD_DB3IN/OUTLCD Data 3
33177 LCD_DB4IN/OUTLCD Data 4
33176 LCD_DB5IN/OUTLCD Data 5
33175 LCD_DB6IN/OUTLCD Data 6
33174 LCD_DB7IN/OUTLCD Data 7
34XXX ISAバス信号マイコンビルダーのマニュアル参照

回路構成

図2に回路全体のブロック図を示す。

FPGA内部回路構成
図2
1.アドレスデコーダ部
ISAバスのアドレス信号をデコードし各モジュールの選 択信号を生成する。
2.PWMモジュール
PWMモジュール
図3
モータ速度制御のためのPWM信号を生成する。IO-Write命令のデータ8bit を保持するレジスタとフリーランのカウンタの値を比較することにより レジスタ値に応じたDuty比のPWM信号を生成する。
3.ロータリエンコーダモジュール
REモジュール
図4
ロータリエンコーダからのA相とB相のパルスの位相を比較し、カウントアップ 信号とカウントダウン信号を生成する。それらの信号で16bitのカウンタを UP/Downする。
4.超音波センサモジュール
USSモジュール
図5
センサ選択IO書き込み命令の下位2bitをレジスタに保持し、その出力と1:4 のセレクタでセンサを選択する。受信信号の前縁微分信号で割り込み信号を flipflopにラッチし、IRQ5を出力する。割り込みマスク信号はffに保持され マスク信号が1の時はIR5に出力しない。
5.汎用入力ポートモジュール
汎用入力モジュール
図6
モータパワーON信号、白線センサ信号、タッチセンサ信号、赤外線センサ信号 をそのアドレスのIOread時にデータバスに載せる。
6.赤外線コード検出モジュール
IR Code Det. モジュール
図6
選択された赤外線信号の立ち上がりを検出し、この信号でデジタルPLL回路の 同期引き込みを行う。同期信号で赤外線センサ信号をサンプルし12bitシフトレジス タに順次取り込む。コード検出器は赤外線のシフトレジスタの内容が信号パター ンに一致しているかを同期信号ごとにチェックし、信号パターンに一致したと きにその内容を12bitラッチ回路にラッチ信号を送る。同時にflagレジスタを セットする。フラグコントロール回路はフラグ保持のレジスタと、データの読 み込み時にフラグをリセットする機能を実現する。
7.液晶ディスプレイ制御モジュール
LCDモジュール
図7
ISAバスのIO−RD/WR信号からLCDの制御信号RW,E信号を生成する。RS信号はア ドレスの下位1bitをそのままLCD基板に接続する。双方向のバストランシーバ でデータの方向を制御する。


関連文書