8. サンプルプログラム概要
8.4 ダウンロードファイル
(1) ダウンロードファイルの形式
サンプルプログラムではビルド成果物としてTwinCATで転送可能なダウンロードファイルを出力しま す。ダウンロードファイルの形式を示します。
表 8-8 ダウンロードファイルの形式
項目 内容
ファイル名接頭辞 バンク0:”ECATFW__B0”
バンク1:”ECATFW__B1”
ファイル拡張子 efw
ファイル形式 モトローラ S形式
(2) ダウンロードファイルとバンクの関係
ダウンロードファイルは各バンク専用となり、他のバンクやモード向けのものは使用できません。ダウン ロードファイルとバンクの関係を示します。
デュアルモードのダウンロードファイルはBANK1向けですが、アドレス範囲がBANK0の範囲であるこ とに注意してください。これは書き換え後に起動バンクを入れ替えることでBANK0として実行されるた めです。
表 8-9 ダウンロードファイルとバンクの関係
リニアモード デュアルモード
ダウンロードファイル ECATFW__B1_xxx.efw ECATFW__B0_xxx.efw ECATFW__B1_xxx.efw 書き換え対象バンク BANK1 BANK0 BANK1
アドレス範囲 4MB製品 FFC0_0000H~
FFDF_7FFFH FFE0_0000H~
FFFF_7FFFH FFE0_0000H~
FFFF_FFFFH アドレス範囲 2MB 製品 FFE0_0000H~
FFEF_7FFFH FFF0_0000H~
FFFF_7FFFH FFF0_0000H~
FFFF_FFFFH ダウンロード前に確認すべ
きFirmware Writable Bank の値
1 0 1
ダウンロード時にプログラ ムを実行しているバンク
BANK0 BANK1 BANK0
(3) ファイルダウンロード時のチェック項目
ダウンロードファイルのデータでファームウェアを書き換えるため、不正なファイルを使用すると動作しな くなる可能性があります。
このため、幾つかのチェック項目を設けています。
チェック項目とチェック内容などを示します。
表 8-10 ダウンロードファイルのチェック項目
項目 チェック内容 チェックするタイミング
ファイル名接頭辞 文字列
BANK0の場合:”ECATFW__B0”
BANK1の場合:”ECATFW__B1”
ダウンロード開始時に接頭辞が正しいか チェック
ファイルパスワード 数字8桁
デフォルト値:00000000
ダウンロード開始時にパスワードが一致 するかチェック
アドレス範囲 モトローラSレコードフォーマッ トのアドレスフィールド
ダウンロード中はアドレスが書き換え対 象バンクのアドレス範囲内かチェック チェックサム モトローラSレコードフォーマッ
トのチェックサムフィールド
ダウンロード中は受信レコードから算出 したチェックサムが一致するかチェック
(4) リニアモードでのダウンロードファイル書き込み
リニアモードではプログラムを実行しているバンクとは反対側のバンクにダウンロードファイルを書き込 みます。
BANK0のユーザープログラムを実行中にBANK0用のダウンロードファイルを書き込むことはできませ
ん。また、同様にBANK1のユーザープログラムを実行中にBANK1用のダウンロードファイルを書き込む ことはできません。
このため、ユーザーは事前に書き込み対象バンクがどちらかを調べ、適切なダウンロードファイルを用意 する必要があります。
書き込み可能なバンクは、オブジェクト”Firmware Writable Bank”の値としてEtherCATマスターから確認 できます。
図 8-4 リニアモードにおけるバンクとダウンロードファイルの関係
(5) デュアルモードでのダウンロードファイル書き込み
デュアルモードでモードではリブート後に起動バンクを入れ替えるため
書き込み対象バンクは常にBANK1にする
ダウンロードファイルはBANK0にマッピングしたものを使用する ことになります。
ダウンロードファイルのファイル形式であるモトローラSレコードフォーマットに含まれるアドレスは
BANK0を示しているので、BANK1に書き込む際はアドレスを-2MBまたは-1MBして書き込みます。
ECATFW_B0_
XXX.efw ECATFW_B1_
XXX.efw BANK1
BANK0
BOOT BOOT
BOOT→BANK0コード実行 BANK0→BANK1コード書換
Boot Loader Reserved
BANK1
BANK0
Boot Loader Reserved ECATFW_B1_
XXX.efw Write
BOOT→BANK1コード実行 BANK1→BANK0コード書換
Write ECATFW_B0_
XXX.efw
BANK1 Write ECATFW_B1_XXX.efw BANK0にマッピングされたダウンロードファイルを BANK1に書き込むためアドレスをー2MB(-1MB)する
Firmware Writable Bank = 1
Firmware Writable Bank = 0