Microsemi DG0440 SmartFusion2 デバイス上で Modbus TCP リファレンス デザインを実行する
マイクロセミ本社
One Enterprise、Aliso Viejo、
カリフォルニア 92656 米国
米国内: +1 800-713-4113
米国外: +1 949-380-6100
ファックス: +1 949-215-4996
メールアドレス: sales.support@microsemi.com
www.microsemi.com
© 2017 マイクロセミ コーポレーション。 全著作権所有。 Microsemi および Microsemi のロゴは、Microsemi Corporation の商標です。 その他すべての商標およびサービス マークは、それぞれの所有者の財産です。
Microsemiは、ここに含まれる情報、または特定の目的に対するその製品とサービスの適合性に関して、保証、表明、または保証を行いません。また、Microsemiは、製品または回路のアプリケーションまたは使用から生じるいかなる責任も負わないものとします。 本契約に基づいて販売される製品およびMicrosemiが販売するその他の製品は、限定的なテストの対象であり、ミッションクリティカルな機器またはアプリケーションと組み合わせて使用しないでください。 パフォーマンス仕様は信頼できると考えられていますが、検証されていません。購入者は、製品のすべてのパフォーマンスおよびその他のテストを、単独で、および最終製品と一緒に、または最終製品にインストールして、実行および完了する必要があります。 購入者は、Microsemiが提供するデータおよびパフォーマンスの仕様またはパラメーターに依存してはなりません。 製品の適合性を独自に判断し、それをテストおよび検証するのは購入者の責任です。 本契約に基づいてMicrosemiが提供する情報は、「現状有姿」ですべての過失とともに提供され、そのような情報に関連するすべてのリスクは完全に購入者にあります。 Microsemiは、そのような情報自体またはそのような情報によって記述されたものに関係なく、明示的または暗黙的に、特許権、ライセンス、またはその他のIP権をいかなる当事者にも付与しません。 このドキュメントで提供される情報はMicrosemiの所有物であり、Microsemiは、このドキュメントの情報または製品やサービスをいつでも予告なしに変更する権利を留保します。
Microsemiについて
Microsemi Corporation(Nasdaq:MSCC)は、航空宇宙および防衛、通信、データセンター、および産業市場向けの半導体およびシステムソリューションの包括的なポートフォリオを提供しています。 製品には、高性能で放射線硬化されたアナログミックスドシグナル集積回路、FPGA、SoC、およびASICが含まれます。 電力管理製品; タイミングおよび同期デバイスと正確な時間ソリューション。時間の世界標準を設定します。 音声処理デバイス; RFソリューション; ディスクリートコンポーネント。 エンタープライズストレージおよび通信ソリューション、セキュリティテクノロジー、スケーラブルなアンチamp製品; イーサネット ソリューション; Power-over-Ethernet IC およびミッドスパン。 カスタム設計機能とサービスと同様に。 Microsemi はカリフォルニア州アリソ ビエホに本社を置き、世界中に約 4,800 人の従業員を擁しています。 詳細はこちら www.microsemi.com.
改訂履歴
改訂履歴には、ドキュメントに実装された変更内容が記述されます。変更内容は、最新の出版物から順に改訂順にリストされます。
改訂 7.0
Libero v11.8 ソフトウェア リリースのドキュメントを更新しました。
改訂 6.0
このドキュメントのリビジョン 6.0 では、次の変更が行われました。
- Libero SoC、FlashPro、および SoftConsole の設計要件が、5 ページの「設計要件」で更新されました。
- ガイド全体を通じて、デモ デザインで使用される SoftConsole プロジェクトの名前と関連するすべての図が更新されます。
改訂 5.0
Libero v11.7 ソフトウェア リリース (SAR 76559) のドキュメントを更新しました。
改訂 4.0
Libero v11.6 ソフトウェア リリース (SAR 72924) のドキュメントを更新しました。
改訂 3.0
Libero v11.5 ソフトウェア リリース (SAR 63972) のドキュメントを更新しました。
改訂 2.0
Libero v11.3 ソフトウェア リリース (SAR 56538) のドキュメントを更新しました。
改訂 1.0
Libero v11.2 ソフトウェア リリース (SAR 53221) のドキュメントを更新しました。
IwIP と FreeRTOS を使用して SmartFusion2 デバイスで Modbus TCP リファレンス デザインを実行する
導入
Microsemiは、SmartFusion®2 SoC FPGAデバイスのリファレンスデザインを提供し、
SmartFusion2 SoC FPGA の 0557 速イーサネット メディア アクセス コントローラ (TSEMAC) 機能をサポートし、Modbus プロトコルを実装します。リファレンス デザインは、UG2: SmartFusionXNUMX SoC FPGA アドバンスト開発キット ユーザー ガイドで実行されます。このデモ ガイドでは、次の内容について説明します。
- シリアル ギガビット メディア独立インターフェイス (SGMII) PHY に接続された SmartFusion2 TSEMAC の使用。
- SmartFusion2 MAC ドライバーと軽量 IP (IwIP) 伝送制御プロトコル (TCP) または IP スタック、および無料のリアルタイム オペレーティング システム (RTOS) の統合。
- 産業オートメーション プロトコル、TCP または IP 上の Modbus を使用したアプリケーション層。
- リファレンスデザインを実行する方法
SmartFusion2 SoC FPGA のマイクロコントローラ サブシステム (MSS) には、TSEMAC ペリフェラルのインスタンスがあります。TSEMAC は、ホスト プロセッサとイーサネット ネットワーク間で、次のデータ転送速度 (回線速度) で構成できます。
- 10 Mbps
- 100 Mbps
- 1000 Mbps
SmartFusion2 デバイスの TSEMAC インターフェイスの詳細については、UG0331: SmartFusion2 マイクロコントローラ サブシステム ユーザー ガイドを参照してください。
Modbusプロトコルの使用
Modbusは、アプリケーション層メッセージングプロトコルであり、
オープン システム相互接続 (OSI) モデル。異なる種類のバスまたはネットワークに接続されたデバイス間のクライアントまたはサーバー通信を可能にします。これは、機能コードによって指定された多くのサービスを提供するサービス プロトコルです。Modbus 機能コードは、Modbus 要求または応答プロトコル データ ユニットの要素です。Modbus プロトコルのコンポーネントには次のものが含まれます。
- イーサネット経由のTCPまたはIP
- さまざまなメディアを介した非同期シリアル伝送
- ワイヤー:
- TIA-232-E の翻訳
- EIA-422
- EIA/TIA-485-A ファイバー
- 無線
- 高速トークンパッシングネットワークModbus PLUS
次の図は、さまざまな通信ネットワークの Modbus 通信スタックを示しています。
図1 • Modbus通信スタック
SmartFusion2デバイスでのModbusプロトコルの使用
Modbus TCP サーバーは SmartFusion2 アドバンス開発キット上で実行され、ホスト PC 上で実行されている Modbus TCP クライアントに応答します。次の図は、SmartFusion2 デバイス上の Modbus TCP サーバーとアプリケーションのブロック図を示しています。
図2 • SmartFusion2上のModbus TCPサーバーとアプリケーションのブロック図
0RGEXV 7&3 $SSOLFDWLRQ | 0RGEXV 7&3 6HUYHU |
、Z、3 7&3 RU、3 6WDFN | |
)UHH5726 | )ルプズドゥ |
6PDUW)XVLRQ2 $GYDQFHG 'HYHORSPHQW .LW (+:) |
設計要件
次の表に、ハードウェアおよびソフトウェアの設計要件を示します。
表1 • リファレンス設計の要件と詳細
設計要件: 説明
ハードウェア
- SmartFusion2 アドバンス開発キット
– USB A - mini-Bケーブル
– 12Vアダプター
リビジョン A 以降 - イーサネットケーブル RJ45
- 以下のシリアル端末エミュレーション プログラムのいずれか:
– ハイパーターミナル
– テラターム
– パテ - ホスト PC またはラップトップ Windows 64 ビット オペレーティング システム
ソフトウェア
- Libero® システムオンチップ (SoC) v11.8
- ソフトコンソール v4.0
- FlashPro プログラミング ソフトウェア v11.8
- USBからUARTへのドライバー –
- MSS イーサネット MAC ドライバー v3.1.100
- シリアル端末エミュレーションプログラム HyperTerminal、TeraTerm、または PuTTY
- ブラウザ Mozilla Firefox または Internet Explorer
デモの設計
次のセクションでは、IwIP と FreeRTOS を使用した SmartFusion2 デバイス上の Modbus TCP リファレンス デザインのデモ デザインについて説明します。
デモのデザイン fileは次の場所からダウンロードできます。
http://soc.microsemi.com/download/rsc/?f=m2s_dg0440_liberov11p8_df
デモのデザイン fileには次のものが含まれます。
- リベロ
- プログラミング files
- ホストツール
- お読みください
次の図は、デザインの最上位構造を示しています。 file詳細については、Readme.txtを参照してください。 file.
図3 • デモデザイン Fileトップレベルの構造
デモ設計機能
リファレンス デザインには以下が含まれます。
- Libero SoC Verilog プロジェクトを完了する
- SoftConsole ファームウェア プロジェクト
リファレンス デザインは、空き Modbus 通信スタック設定に応じて、次の Modbus 機能コードをサポートできます。
- 入力レジスタの読み取り(機能コード0×04)
- 保持レジスタの読み取り(機能コード0×03)
- 単一レジスタへの書き込み(機能コード0×06)
- 複数のレジスタを書き込む(機能コード0×10)
- 複数のレジスタの読み取りまたは書き込み(機能コード 0×17)
- コイルの読み取り(機能コード0×01)
- シングルコイルの書き込み(機能コード0×05)
- 複数のコイルを書き込む(機能コード0×0F)
- 離散入力の読み取り(機能コード(0×02)
リファレンス デザインは、すべての無料の Modbus 通信スタック設定に対して次の Modbus 機能コードをサポートします。
- 入力レジスタの読み取り(機能コード0×04)
- 離散入力の読み取り(機能コード(0×02)
- 複数のコイルを書き込む(機能コード0×0F)
- 保持レジスタの読み取り(機能コード0×03)
デモデザインの説明
この設計は、TSEMAC を 0331 ビット インターフェイス (TBI) 操作用に構成することにより、SGMII PHY インターフェイスを使用して実装されます。TSEMAC TBI インターフェイスの詳細については、UG2: SmartFusionXNUMX マイクロコントローラ サブシステム ユーザー ガイドを参照してください。
Libero SoC ハードウェア プロジェクト
次の図は、リファレンス デザイン スレーブ ファームウェアが実行されるハードウェア デザイン実装を示しています。
図4 • Libero SoCのトップレベルハードウェア設計
Libero SoC ハードウェア プロジェクトでは、次の SmartFusion2 MSS リソースと IP が使用されます。
- TSEMAC TBIインターフェース
- SmartFusion0 アドバンスト開発キットの RS-232 通信用の MMUART_2
- クロックソースとしての専用入力パッド 0
- 次のインターフェースとなる汎用入出力 (GPIO):
- 発光ダイオード(LED):4つの数字
- 押しボタン: 4つの数字
- デュアルインラインパッケージ(DIP)スイッチ:4つの数字
- 次のボード リソースは Modbus コマンドに関連付けられています。
- LED(コイル)
- DIP スイッチ (個別入力)
- プッシュボタン(個別入力)
- リアルタイムクロック (RTC) (入力レジスタ)
- 高速シリアル インターフェイス (SERDESIF) SERDES_IF IP は、SERDESIF_3 EPCS レーン 3 用に構成されています。次の図を参照してください。高速シリアル インターフェイスの詳細については、UG0447 - SmartFusion2 および IGLOO2 FPGA 高速シリアル インターフェイス ユーザー ガイドを参照してください。
次の図は、高速シリアル インターフェイス コンフィギュレータ ウィンドウを示しています。
図5 • 高速シリアルインターフェースコンフィギュレータウィンドウ
パッケージピン割り当て
LED、DIP スイッチ、プッシュボタン スイッチ、および PHY インターフェイス信号のパッケージ ピン割り当ては、次の表から 5 ページの表 9 までに記載されています。
表2 • LEDとパッケージのピン割り当て
- 出力パッケージピン
- LED_1 D26
- LED_2 F26
- LED_3 A27
- LED_4 C26
表3 • DIPスイッチとパッケージピンの割り当て
- 出力パッケージピン
- ディップ1 F25
- DIP2 G25
- DIP3 J23
- DIP4 J22
表4 • プッシュボタンスイッチとパッケージピンの割り当て
- 出力パッケージピン
- スイッチ1 J25
- スイッチ2 H25
- スイッチ3 J24
- スイッチ4 H23
表5 • PHYインターフェース信号とパッケージピンの割り当て
- ポート名 方向 パッケージ ピン
- PHY_MDC出力F3
- PHY_MDIO 入力 K7
- PHY_RST出力F2
SoftConsole ファームウェア プロジェクト
スタンドアロンの SoftConsole IDE を使用して SoftConsole プロジェクトを呼び出します。リファレンス デザインには、次のバージョンのスタックが使用されます。
- lwIP TCP または IP スタック バージョン 1.3.2
- Modbus TCP サーバー バージョン 1.5 (フリーモッドバス) Modbus TCPサーバーとして完全な機能コードサポートのための機能強化
- フリーRTOS (www.freertos.org)
次の図は、SoftConsole ソフトウェア スタックの設計のディレクトリ構造を示しています。
図6 • SoftConsoleプロジェクトエクスプローラーウィンドウ
SoftConsole ワークスペースは、Modbus TCP アプリケーション (lwIP と FreeRTOS を使用) と、ハードウェア設計に対応するすべてのファームウェアおよびハードウェア抽象化レイヤーを含むプロジェクト Modbus_TCP_App で構成されます。
次の図は、デモに使用されたドライバーのバージョンを示しています。
図7 • デモデザインドライバーのバージョン
デモ デザインのセットアップ
次の手順では、SmartFusion2 Advanced Development Kit ボードのデモをセットアップする方法について説明します。
- USB A から mini-B ケーブルを使用してホスト PC を J33 コネクタに接続します。USB からユニバーサル非同期受信機/送信機 (UART) へのブリッジ ドライバーが自動的に検出されます。
- 検出された 4 つの通信 (COM) ポートから、いずれかの COM ポートを右クリックし、[プロパティ] を選択します。次の図に示すように、選択した COM ポートのプロパティ ウィンドウが表示されます。
- 次の図に示すように、プロパティ ウィンドウで場所が USB FP5 シリアル コンバーター C になっていることを確認します。
注記: シリアル ポート構成の COM ポート番号をメモし、COM ポートの場所が USB FP5 シリアル コンバーター C に指定されていることを確認します。
図8 • デバイス マネージャー ウィンドウ
- USB ドライバーが自動的に検出されない場合は、USB ドライバーをインストールしてください。
- FTDI ミニ USB ケーブルを介してシリアル端末通信を行うには、FTDI D2XX ドライバーをインストールします。ドライバーとインストール ガイドは次の場所からダウンロードします。
www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip - 次の表に示すように、SmartFusion2 アドバンスト開発キット ボード上のジャンパーを接続します。ジャンパーの位置については、19 ページの付録「ジャンパーの位置」を参照してください。
注意: ジャンパー接続を行う前に、電源スイッチ SW7 をオフにします。
表 6 • SmartFusion2 Advanced Development Kit のジャンパ設定
- ジャンパーピンからピンへコメント
- J116、J353、J354、J54 1 2 これらはAdvanced Development Kitボードのデフォルトのジャンパー設定です。ジャンパーが
- J123 2 3がそれに応じて設定されます。
- J124、J121、J32 1 2 JTAG FTDI によるプログラミング
- SmartFusion42 アドバンス開発キット ボードの J2 コネクタに電源を接続します。
- このデザインexampファイルは静的IPモードと動的IPモードの両方で実行できます。デフォルトでは、プログラミング file動的 IP モード用に が提供されます。
- 静的IPの場合、ホストPCを
RJ2 ケーブルを使用する SmartFusion45 高度開発キット ボード。 - 動的 IP の場合は、RJ21 ケーブルを使用して、開いているネットワーク ポートのいずれかを SmartFusion2 アドバンス開発キット ボードの J45 コネクタに接続します。
- 静的IPの場合、ホストPCを
ボードセットアップスナップショット
すべてのセットアップ接続を含む SmartFusion2 アドバンスト開発キット ボードのスナップショットは、付録「Modbus TCP リファレンス デザインを実行するためのボード セットアップ」(18 ページ) に記載されています。
デモ デザインの実行
次の手順では、デモ デザインを実行する方法について説明します。
- デザインをダウンロードする file から:
http://soc.microsemi.com/download/rsc/?f=m2s_dg0440_liberov11p8_df - 電源スイッチ SW7 をオンにします。
- 次のようなシリアル端末エミュレーション プログラムを起動します。
- ハイパーターミナル
- パテ
- TeraTerm
注: このデモではハイパーターミナルが使用されます。
プログラムの構成は次のとおりです。 - ボーレート: 115200
- 8データビット
- 1ストップビット
- パリティなし
- フロー制御なし
シリアル端末エミュレーション プログラムの設定方法については、「シリアル端末エミュレーション プログラムの設定」を参照してください。
- FlashPro ソフトウェアを起動します。
- [新しいプロジェクト] をクリックします。
- [新しいプロジェクト] ウィンドウで、次の図に示すようにプロジェクト名を入力します。
図9 • FlashPro 新規プロジェクト
- [参照] をクリックして、プロジェクトを保存する場所に移動します。
- プログラミングモードとしてシングルデバイスを選択します。
- [OK] をクリックしてプロジェクトを保存します。
- [デバイスの構成] をクリックします。
- 参照をクリックし、Modbus_TCP_top.stpがある場所に移動します。 file が見つかり、を選択します file. デフォルトの場所は次のとおりです。
(\SF2_Modbus_TCP_Ref_Design_DF\プログラミングfile\Modbus_TCP_top.stp)。必要なプログラミング file 次の図に示すように、選択され、デバイスにプログラムする準備が整います。
図10 • FlashProプロジェクトの設定
- [PROGRAM] をクリックしてデバイスのプログラミングを開始します。プログラムが成功したことを示すメッセージが表示されるまで待ちます。このデモでは、Modbus アプリケーションをアクティブ化するために、SmartFusion2 デバイスにアプリケーション コードを事前にプログラムする必要があります。SmartFusion2 デバイスは、FlashPro ソフトウェアを使用して Modbus_TCP_top.stp で事前にプログラムされています。
図11 • FlashProプログラム合格
注: 静的 IP モードで設計を実行するには、20 ページの「付録: 静的 IP モードでの設計の実行」に記載されている手順に従ってください。
- SmartFusion2 高度開発ボードの電源を入れ直します。
次の図に示すように、IP アドレスを含むウェルカム メッセージがハイパーターミナル ウィンドウに表示されます。
図12 • IPアドレス付きハイパーターミナル
ホストPCで新しいコマンドプロンプトを開き、フォルダに移動します
(\SF2_Modbus_TCP_Ref_Design_DF\HostTool) ここで
SmartFusion2_Modbus_TCP_Client.exe file 存在する場合は、コマンドを入力します: SmartFusion2_Modbus_TCP_Client.exe次の図に示すように。
図13 • Modbusクライアントの起動
次の図は、実行中の Modbus TCP 機能を示しています。機能は次のとおりです。
- 離散入力の読み取り(機能コード02)
- 保持レジスタの読み取り(機能コード03)
- 入力レジスタの読み取り(機能コード04)
- 複数のコイルを書き込む(機能コード15)
図14 • Modbus機能コードのデモンストレーション
リファレンス デザインで説明されている Modbus 関数の詳細については、17 ページの「Modbus 関数の実行」を参照してください。
- デモを実行した後、ハイパーターミナルを閉じます。
Modbus関数の実行
このセクションでは、リファレンス デザインで実証されている Modbus 機能について説明します。
ディスクリート入力の読み取り(機能コード 02)
GPIO は 4 つの DIP スイッチと 4 つの押しボタン スイッチに接続されています。SmartFusion2 アドバンス開発キットの DIP スイッチと押しボタン スイッチをオン/オフにします。ディスクリート入力を読み取る機能コードは、次の図に示すようにスイッチのステータスを表示します。
図15 • 離散入力の読み取り
保持レジスタの読み取り(機能コード 03)
次の図は、ファームウェアで定義されているグローバル バッファ データを示しています。
図16 • 保持レジスタの読み取り
入力レジスタの読み取り(機能コード 04)
次の図は、リアルタイム カウンター (RTC) がカウントした秒数を示しています。
図17 • 入力レジスタの読み取り
複数のコイルの書き込み(機能コード0×0F)
次の図は、GPIO に接続された LED を切り替えるための Write Multiple Coils レジスタ データを示しています。
図18 • 複数のコイルを書き込む
付録: Modbus TCP リファレンス デザインを実行するためのボードのセットアップ
次の図は、SmartFusion2 Advanced Development Kit ボード上でリファレンス デザインを実行するためのボード設定を示しています。
図 19 • SmartFusion2 Advanced Development Kit ボードのセットアップ
付録: ジャンパーの位置
次の図は、SmartFusion2 アドバンス開発キット ボード上のジャンパーの位置を示しています。
図 20 • SmartFusion2 アドバンス開発キット シルクスクリーン トップ View
注記: 赤で強調表示されたジャンパーはデフォルトで設定されています。緑で強調表示されたジャンパーは手動で設定する必要があります。
注記: 前の図のジャンパーの位置は検索可能です。
付録: 静的 IP モードでデザインを実行する
次の手順では、静的 IP モードで設計を実行する方法について説明します。
- SoftConsole プロジェクトのプロジェクト エクスプローラー ウィンドウを右クリックし、次の図に示すように [プロパティ] に移動します。
図21 • SoftConsoleプロジェクトのプロジェクトエクスプローラーウィンドウ
- Modbus_TCP_App のプロパティ ウィンドウのツール設定で、シンボル NET_USE_DHCP を削除します。次の図は、Modbus_TCP_App のプロパティ ウィンドウを示しています。
図22 • プロジェクトエクスプローラーのプロパティウィンドウ
- デバイスが静的IPモードで接続されている場合、ボードの静的IPアドレスは169.254.1.23です。ホストTCP/IP設定を変更してIPアドレスを反映させます。次の図と図24を参照してください。
図23 • ホストPCのTCP/IP設定
図24 • 静的IPアドレス設定
注記: これらの設定が構成されたら、デザインをコンパイルし、デザインをフラッシュ メモリにロードし、SoftConsole を使用してデザインを実行します。
DG0440 デモ ガイド リビジョン 7.0
ドキュメント / リソース
![]() |
Microsemi DG0440 SmartFusion2 デバイス上で Modbus TCP リファレンス デザインを実行する [pdf] ユーザーガイド DG0440 SmartFusion2 デバイスでの Modbus TCP リファレンス デザインの実行、DG0440、SmartFusion2 デバイスでの Modbus TCP リファレンス デザインの実行、SmartFusion2 デバイスでの設計 |