デジタル入出力システムの構成例

JTAGツールを接続した様子 サポート

システムの概要

簡易的なデジタル入出力システムとして動作するシステムの例を示します。下記のハードウェア構成で動作する サンプルソフトウェア(FPGA HDL System Verilog, Python アプリケーション)を公開しますのでご利用ください。

  • デジタル入力用FPGAファームウェア(S1FRM0001)
  • デジタル出力用FPGAファームウェア(S1FRM0002)
  • Raspberry Pi 用 Python アプリケーション

上記のFPGA ファームウェア、Python アプリケーションは、Apache License Version 2.0 ライセンスで公開します。この部分に関しては、改変して生成物を配布する場合でもソースコードの公開の義務はありません。 

サンプルシステムハードウェア構成図
ハードウェア構成

システムの特徴

  • ボード間は、CANバスを通じて通信を行います。
    ビットレート:1Mbps、最大バス長:40m(1Mbps時)
  • ステーションIDは、2~255 の範囲で設定できます。
  • ステーション数は最大120まで追加できます。(CANドライバの上限)
  • FPGAファームウェアは無償ライセンス版の開発ツールでプログラミング可能

Python アプリケーションの動作概要

status_request.py 各ステーションに対して状態の送信を要求する。
message_monitor.py CANメッセージのモニタを行う。(DIステーションから状態変化でメッセージが送出される。)
config_read.py ベースボード上のFRAMに格納された先頭8バイトのデータを読む。
config_write.py ベースボード上のFRAMの先頭8バイトにデータを書き込む。デジタル入力では末尾の1バイトでチャタリングフィルターのディレー時間を設定する。
do_cont.py デジタル出力の制御信号を送信する。

関連資料