FPGAを用いたMG3用 インターフェース回路の解説
FPGAについて オートパイロット機能を備えた航空機 産業用ロボット 出典:JALホームページ 出典:技術革新ハンドアックス
FPGAについて FPGA ・ハードウェアの高速性 ・ソフトウェアの持つ柔軟性 FPGA (アルテラ社) オートパイロット機能を備えた航空機 産業用ロボット FPGA ・ハードウェアの高速性 ・ソフトウェアの持つ柔軟性 出典:JALホームページ FPGA (アルテラ社) 出典:技術革新ハンドアックス
MG3:MIRS Generation3の特徴 第2世代に比べプラットフォームが大幅に変更されている <特徴> ・OSの変更(搭載機器の増設が可能となった) ・USBカメラ ・無線LANアダプタ ・PICを用いた超音波センサ ・PICを用いたモーター駆動
OSについて RT-Linux ver2.3 CentOS 5.2 変更 OSによるリアルタイム処理が可能 旧MIRS 現行MIRS 変更 RT-Linux ver2.3 CentOS 5.2 OSによるリアルタイム処理が可能 OSによるリアルタイム 処理は不可能
OSについて RT-Linux ver2.3 CentOS 5.2 変更 しかし・・・・ 超音波センサーとモータは リアルタイム性が必要 旧MIRS 現行MIRS 変更 RT-Linux ver2.3 CentOS 5.2 OSによるリアルタイム処理が可能 OSによるリアルタイム 処理は不可能 しかし・・・・ 超音波センサーとモータは リアルタイム性が必要 PICを用いて リアルタイム性を確保
リアルタイム性の確保 PIC PIC CPUボード 超音波センサー モーター データを逐次的に送るシリアル通信が必要 シリアル通信
リアルタイム性の確保 PIC PIC CPUボード 超音波センサー モーター シリアルポート シリアル通信 シリアルポートが不足している 超音波 センサーが占有 シリアルポート CPUボード
リアルタイム性の確保 PIC PIC CPUボード 超音波センサー モーター FPGAボード シリアルポート シリアル通信 シリアル通信 シリアル通信 回路を構築 超音波 センサーが占有 FPGAボード シリアルポート CPUボード
FPGAボード 現行FPGAボード 開発環境 PC-104仕様 QuartusⅡ 注意点:出力方法をttf形式にすること
FPGA周辺の構成 FPGAボード ドーターボード モーター コントロールボード TS IRS WS モーター モーター 超音波 センサ CPUボード USBカメラ シリアル通信 シリアル通信 8bitデータバス FPGAボード ドーターボード シリアル通信 モーター コントロールボード ON/OFF ON/OFF ON/OFF TS IRS WS モーター モーター
センサーからの 信号は常時FPGAに送信されている FPGAを経由したセンサーとCPUの通信方法 信号処理モジュール FPGA 16進数アドレス センサーからの 信号は常時FPGAに送信されている その他 動作 信号 アドレスデコーダ 20bit アドレスバス CPU 信号処理モジュール 動作 信号 ・・・・・・・・・・・・・・ IO センサー 12個 ×12 センサー 信号 8bit データバス 12bit センサー信号 FPGAを経由したセンサーとCPUの通信方法
FPGA上の信号処理 モジュールで保持する FPGAを経由したセンサーとCPUの通信方法 信号処理モジュール FPGA 16進数アドレス その他 FPGA上の信号処理 モジュールで保持する 動作 信号 アドレスデコーダ 20bit アドレスバス CPU 信号処理モジュール 動作 信号 ・・・・・・・・・・・・・・ IO センサー 12個 ×12 センサー 信号 8bit データバス 12bit センサー信号 FPGAを経由したセンサーとCPUの通信方法
FPGAを経由したセンサーとCPUの通信方法 信号処理モジュール FPGA 16進数アドレス その他 動作 信号 アドレスデコーダ 20bit アドレスバス CPU 信号処理モジュール 信号の受信要求 動作 信号 ・・・・・・・・・・・・・・ IO センサー 12個 ×12 センサー 信号 8bit データバス 12bit センサー信号 FPGAを経由したセンサーとCPUの通信方法
FPGAを経由したセンサーとCPUの通信方法 信号処理モジュール FPGA 16進数アドレス その他 動作 信号 アドレスデコーダ 20bit アドレスバス CPU 信号処理モジュール 信号処理モジュール動作アドレス 動作 信号 ・・・・・・・・・・・・・・ IO センサー 12個 ×12 センサー 信号 8bit データバス 12bit センサー信号 FPGAを経由したセンサーとCPUの通信方法
FPGAを経由したセンサーとCPUの通信方法 信号処理モジュール FPGA 16進数アドレス その他 動作 信号 アドレスデコーダ 20bit アドレスバス CPU 信号処理モジュール 指定したセンサの信号を読み取る 動作 信号 ・・・・・・・・・・・・・・ IO センサー 12個 ×12 センサー 信号 8bit データバス 12bit センサー信号 FPGAを経由したセンサーとCPUの通信方法
8bitで12個のセンサー信号は一度に処理できない FPGAを経由したセンサーとCPUの通信方法 信号処理モジュール FPGA 16進数アドレス その他 動作 信号 アドレスデコーダ 20bit アドレスバス CPU 信号処理モジュール 動作 信号 8bitで12個のセンサー信号は一度に処理できない ・・・・・・・・・・・・・・ IO センサー 12個 ×12 センサー 信号 8bit データバス 12bit センサー信号 FPGAを経由したセンサーとCPUの通信方法
FPGAを経由したセンサーとCPUの通信方法 信号処理モジュール FPGA 16進数アドレス その他 信号処理 モジュールで対処 動作 信号 アドレスデコーダ 20bit アドレスバス CPU 信号処理モジュール 動作 信号 ・・・・・・・・・・・・・・ IO センサー 12個 ×12 センサー 信号 8bit データバス 12bit センサー信号 FPGAを経由したセンサーとCPUの通信方法
信号処理モジュールの詳細 12個のセンサー信号を8bitと4bitに分割
信号処理モジュールの詳細 INDATA[0~7] INDATA[8~11] 12個のセンサー信号を8bitと4bitに分割 DLATCH回路内で保持
DLATCH回路の構成 D-flip flop 信号保持部
読みたい信号によって動作させるDLATCHを選択 信号処理モジュールの詳細 INDATA[0~7] TIP_ADD0 1のとき、DLATCH回路が動作する 読みたい信号によって動作させるDLATCHを選択 TIP_ADD1 INDATA[8~11]
TIP_ADDが1のとき、スリーステートから センサ信号が出力 される 信号処理モジュールの詳細 TIP_ADDが1のとき、スリーステートから センサ信号が出力 される スリーステート
スリーステート Y X Z X (INDATA) Y (TIP_ADD) Z (B_SD) ハイインピーダンス 1
12bitのセンサー信号を8bitのデータバスで送信可能 信号処理モジュールの詳細 8bit データバス8bit 4bit B_IORN 12bitのセンサー信号を8bitのデータバスで送信可能 LOWのとき、CPUが信号を受信する
他のモジュールを実装する時はアドレスデコーダの再設計が必要 アドレスデコーダ(VHDLにより記述) FPGA 標準機では信号処理 モジュールのみ選択 他のモジュールを実装する時はアドレスデコーダの再設計が必要 16進数アドレス その他 動作 信号 アドレスデコーダ 20bit アドレスバス CPU 信号処理モジュール 動作 信号 ・・・・・・・・・・・・・・ IO センサー 12個 ×12 センサー 信号 8bit データバス 12bit センサー信号
VHDLの内容 ① ポートの定義 入力/出力ピンの設定 ② アーキテクチャの宣言 入力されるビット数の定義 ③ ケース文の定義 入力/出力ピンの設定 ② アーキテクチャの宣言 入力されるビット数の定義 ③ ケース文の定義 アドレスバス20ビットに対応する動作をケース文にて定義 ※ 赤外線等を追加するときには、ケース文を追加する TIP_ADD0 1 TIP_ADD1