(57)【要約】【課題】  ＰＣから周辺機器への、モトローラＳデータの通信時において、新たに専用コマンドを新設すること無く、比較的発見し難いモトローラＳデータのサム値の通信方法を提供する。【解決手段】  周辺機器へのモトローラＳデータの送信時において、送信する前記モトローラＳデータを所定のブロックに分割し、該ブロック内におけるモトローラＳレコードのアドレス順と該モトローラＳレコードの送信順の対応関係を符号化する符号化手段と、前記ＰＣから周辺機器への前記モトローラＳデータの受信時において、受信した前記モトローラＳデータを所定のブロックに分割し、該ブロック内における前記モトローラＳレコードの到着順と前記モトローラＳレコードのアドレス順の対応関係を復号化する復号化手段とを用いてモトローラＳデータのサム値を通信することを特徴とする。【選択図】  図１
2007219915.tif 000002
【特許請求の範囲】
【請求項１】
ＰＣから周辺機器へのモトローラＳデータの送信時において、送信する前記モトローラＳデータを所定のブロックに分割し、該ブロック内におけるモトローラＳレコードのアドレス順と該モトローラＳレコードの送信順の対応関係を符号化する符号化手段と、前記ＰＣから周辺機器への前記モトローラＳデータの受信時において、受信した前記モトローラＳデータを所定のブロックに分割し、該ブロック内における前記モトローラＳレコードの到着順と前記モトローラＳレコードのアドレス順の対応関係を復号化する復号化手段とを用いてモトローラＳデータのサム値を通信することを特徴とする、モトローラＳデータのサム値通信方式。
【請求項２】
前記モトローラＳデータの送信時において、サム値の各桁に対応する１６進コードを、ブロック内における前記モトローラＳレコードのアドレスの順と前記モトローラＳレコードの送信順の対応関係に符号化する符号化手段と、前記モトローラＳデータの受信時において、ブロック内における前記モトローラＳレコードの到着順とモトローラＳレコードのアドレス順の対応関係をサム値の各桁に対応する１６進コードに復号化する復号化手段とを用いて、前記モトローラＳデータのサム値を通信することを特徴とする、請求項１記載のモトローラＳデータのサム値通信方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＣから周辺機器へのモトローラＳデータのサム値の通信方式に関する。
【背景技術】
【０００２】
はじめに、図５を参照してモトローラＳデータについて説明する。
【０００３】
モトローラＳデータは、複数のレコードから構成されている。各レコードは、ＡＳＣＩＩコードとＣＲ、ＬＦコードで構成されている。レコードタイプＳ０レコードは、モトローラＳデータの始まりを示すヘッダレコードである。レコードタイプＳ１〜Ｓ３のレコードは、データを格納するデータレコードである。レコードタイプＳ７〜Ｓ９のレコードは、モトローラＳデータの終端を示すエンドレコードである。スタートマークは、Ｓであり、レコードの開始を表す。レコードタイプは、０、１、２、３、７、８、９の何れかであり、レコードの種類を表す。バイトカウントはアドレスからチェックサムまでのバイト数を表す。データは書込みデータである。チェックサムは、バイトカウントからチェックサムの前までのデータ値を１６進で加算した結果の１の補数である。
【０００４】
前記のように、モトローラＳデータは、ヘッダレコードをデータの始めとし、エンドレコードをデータの終わりとすることが規定されている。また、一般的には、各データレコードは、そのアドレス順に整列して、使用されることが多い。しかしながら、各データレコード間の順序関係について特に規定は設けられていない。
【０００５】
次に、周辺機器におけるファームウェアの更新について説明する。
【０００６】
図８に示すように、周辺機器におけるファームウェアの更新では、ＰＣから周辺機器に対して、モトローラＳデータ（書き換え用データ）を送信し、周辺機器が受信したモトローラＳデータを、フラッシュＲＯＭに書込む方法が一般的に行なわれている。しかしながら、モトローラＳデータの送信には、次のような問題が存在する。これを図９により説明する。
（１）データレコードの欠落
周辺機器側では、モトローラＳデータの各レコードに存在するチェックサムを使用して、レコード毎のチェックを行うことができる。しかしながら、モトローラＳデータ全体についてチェックを行うようになっていないため、通信時に、一部のデータレコードが欠落してしまった場合、これを検出できない。
（２）改竄
送信時に、レコード単位で改竄が行われ、チェックサムもこれに矛盾しないように改竄が行われてしまった場合、レコード毎のチェックサムが正しければ、周辺機器側では、この改竄を検出できない。
【０００７】
前記問題に対応する一つの方法として、図１０に示すように、モトローラＳデータと共に専用のコマンド（ＳＶＥＲＵＰコマンド）を用いて、サム値を送信する方法である（例えば、特許文献１参照。）。周辺機器側では、受信したモトローラＳデータをＲＡＭ上で展開してＲＯＭのイメージを作成し、展開したＲＯＭのイメージからサム値を算出する。専用のコマンド（ＳＶＥＲＵＰコマンド）により受信したサム値と、算出したサム値を比較し、問題がなかった場合にはＲＯＭを書き換えるというものである。
【０００８】
しかしながら、上記の方法では、ＳＶＥＲＵＰコマンドのように、サム値を送信するための専用コマンドを用意する必要がある。また、専用コマンドでサム値を送信しているので、サム値の所在が、明示的でわかり易くなっている。このため、サム値を改竄することは比較的容易であるという問題がある。
【０００９】
【特許文献１】特開２０００−１２２８８４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ＰＣから周辺機器への、モトローラＳデータの通信時において、新たに専用コマンドを新設すること無く、比較的発見し難いモトローラＳデータのサム値の通信方法を提供することにある。
【課題を解決するための手段】
【００１１】
ＰＣから周辺機器へのモトローラＳデータの送信時において、送信する前記モトローラＳデータを所定のブロックに分割し、該ブロック内におけるモトローラＳレコードのアドレス順と該モトローラＳレコードの送信順の対応関係を符号化する符号化手段と、前記ＰＣから周辺機器への前記モトローラＳデータの受信時において、受信した前記モトローラＳデータを所定のブロックに分割し、該ブロック内における前記モトローラＳレコードの到着順と前記モトローラＳレコードのアドレス順の対応関係を復号化する復号化手段とを用いてモトローラＳデータのサム値を通信することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ＰＣから周辺機器への、モトローラＳデータの通信時において、新たに専用コマンドを新設すること無く、比較的発見し難いモトローラＳデータのサム値の通信が可能となる。
【発明を実施するための最良の形態】
【００１３】
以下に、本発明の実施の形態を図１〜図７にもとづいて説明する。
【００１４】
モトローラＳデータのサム値の送信処理を、図２を参照して説明する。図２は、ＰＣから周辺機器へのモトローラＳデータの送信時における流れを模式的に説明する模式図である。０２０１はＰＣ、０２０２は通信ケーブル、０２０３は周辺機器である。ＰＣ０２０１は、通信ケーブル０２０２を通して、周辺機器０２０３と接続している。ＰＣ０２０１では、モトローラＳデータにサム値を加えて符号化する。ＰＣ０２０１は、符号化したモトローラＳデータを、通信ケーブル０２０２を通して、周辺機器０２０３に送信する。周辺機器０２０３は、通信ケーブル０２０２を通して符号化したモトローラＳデータを受信する。周辺機器０２０３では、受信した符号化したモトローラＳデータを、復号化してサム値を取出す。
【００１５】
次に、サム値を付加して符号化したモトローラＳデータの構成について説明する。図３は、サム値を付加して符号化したモトローラＳデータの構成を説明するための模式図である。０３０１はモトローラＳデータ、０３０２はデータレコードの先頭部分、０３０３はサム値を付加した状態のデータレコードの先頭部分、０３０４は符号化したモトローラＳデータである。モトローラＳデータ０３０１は、ヘッダレコード、データレコード、エンドレコードより構成されている。符号化したモトローラＳデータ０３０４は、通常のモトローラデータと同様に、ヘッダレコード、データレコード、エンドレコードより構成されている。更に、データレコードの先頭部分は、サム値を付加し、符号化された状態（データレコードの先頭部分が並び替えられた状態）となっている。符号化したモトローラＳデータ０３０４は、以下の手順で作成される。
（１）モトローラＳデータ０３０１より、データレコードの先頭部分０３０２を取出す。
（２）サム値を付加する為、データレコードの先頭部分０３０２を、
所定のブロックに分け、各ブロック内において、データレコードを並び替え、
サム値を付加した状態のデータレコードの先頭部分０３０３を得る。
（３）サム値を付加した状態のデータレコードの先頭部分０３０３を戻し、
符号化したモトローラＳデータ０３０４を得る。
【００１６】
次に、図１、図４を参照して、モトローラＳデータのサム値の符号化／復号化について説明する。図１は、モトローラＳデータのサム値の符号化／復号化を説明するための模式図である。０１０１はモトローラＳデータ、０１０２は符号化したモトローラＳデータである。２バイトのサム値ＡＣ８ＡＨをモトローラＳデータに付加して、符号化する場合について説明する。
【００１７】
モトローラＳデータ０１０１は、ヘッダレコード、データレコード、エンドレコードから構成される。データレコード部分は、複数のデータレコードより構成されており、各データレコードはそのアドレス順に並んでいる。データレコード部分の先頭に、４つのブロックを作成する。更に、１つのブロックは、４つのレコードで構成する。４つのブロックは、それぞれ、サム値ＡＣ８ＡＨの１桁目から４桁目に対応する。
【００１８】
図４は、１６進コードと置換行列の変換のテーブルである。本例では、置換行列を、データレコードの並び替えを表すために使用している。例えば、（１２３４／２３１４）は、１番目のレコードを２番目に、２番目のレコードを３番目に、３番目のレコードを１番目に、４番目のレコードを４番目に並び替えることを表す。図４の１６進コード→置換行列変換テーブルによると、１６進コード‘Ａ’、‘Ｃ’、‘８’、‘Ａ’はそれぞれ（１２３４／２３１４）、（１２３４／３１２４）、（１２３４／３４１２）、（１２３４／２３１４）に対応する。
【００１９】
これらの置換行列に従い、ブロック１〜ブロック４の中のデータレコードを並べ替え、符号化したモトローラＳデータ０１０２を作成する。
【００２０】
次に、モトローラＳデータの復号化について説明する。符号化したモトローラＳデータ０１０２のデータレコード部分から、４つのブロックを取出す。４つのブロックは、それぞれ、サム値の１桁目から４桁目に対応している。ブロック１〜ブロック４において、データレコードをアドレス順に並び替える。この並び変え前後の順序関係から、ブロック１〜ブロック４に対して（１２３４／３１２４）、（１２３４／２３１４）、（１２３４／３４１２）、（１２３４／３１２４）の置換行列を得る。更に図４の置換行列→１６進変換テーブルを用いて１６進コードに変換し、サム値ＡＣ８ＡＨを得る。
【００２１】
次に、モトローラＳデータのサム値符号化処理の動作について説明する。図６は、モトローラＳデータのサム値符号化処理のフローチャートである。図６のフローチャートにおいて、ｉは変数とする。また、変数ｓｕｍ［］には、サム値が１６進コードで記録されているものとする。
【００２２】
処理０６０１において、ｉを０とし、判断０６０２に進む。判断０６０２では、ｉが４未満であるかどうかを判断する。ｉが４未満である場合には、処理０６０３に進み、ｉが４未満でなかった場合、モトローラＳデータのサム値符号化処理を終了する。処理０６０３において、サム値のｉ桁目に該当する１６進コードｓｕｍ［ｉ］を取得し、処理０６０４に進む。処理０６０４において、図４に記載の１６進コード→置換行列変換テーブルを用いて、１６進コードを置換行列に変換し、処理０６０５に進む。処理０６０５において、ｉ番目のブロックに該当する４つのデータレコードを取得し、処理０６０６に進む。処理０６０６において、処理０６０４において取得した置換行列に従い、４つのデータレコードを並び替え処理０６０７に進む。処理０６０７において、ｉ＝ｉ＋１とし、判断０６０２に進む。
【００２３】
次に、モトローラＳデータのサム値復号化処理の動作について説明する。図７はモトローラＳデータのサム値復号化処理のフローチャートである。図７のフローチャートにおいて、ｉは変数とする。また、ｓｕｍ［］は、サム値を１６進コードで記録するための変数である。
【００２４】
処理０７０１において、ｉを０とし、判断０７０２に進む。判断０７０２では、ｉが４未満であるかどうかを判断する。ｉが４未満である場合には、処理０７０３に進み、ｉが４未満でなかった場合、モトローラＳデータのサム値復号化処理を終了する。処理０７０３において、４つのデータレコードを取得し、処理０７０４に進む。処理０７０４において、処理０７０３において取得した４つのモトローラＳデータレコードの到着順と、モトローラＳレコードのアドレス順の対応関係より置換行列を生成し、処理０７０５に進む。処理０７０５において、図４に記載の置換行列→１６進コード変換テーブルを用いて、置換行列を１６進コードに変換し、処理０７０６に進む。処理０７０６において、処理０７０５で変換した１６進コードを、ｓｕｍ［ｉ］（サム値のｉ桁目に該当）に記録し、処理０７０７に進む。処理０７０７において、ｉ＝ｉ＋１とし、判断０７０２に進む。
【００２５】
本例では、１ブロックを４レコードで構成し、４ブロックを使用して、サム値が２バイト（１６進コードで４桁）の時の方式について説明したが、サム値が４バイト、または８バイトの場合にも、同様の方式でモトローラＳデータのサム値の通信が可能である。
【図面の簡単な説明】
【００２６】
【図１】本発明の一例におけるモトローラＳデータのサム値の符号化／復号化を説明するための模式図である。
【図２】本発明の一例におけるＰＣから周辺機器へのモトローラＳデータとサム値の通信を説明する模式図である。
【図３】本発明の一例におけるサム値を付加し符号化したモトローラＳデータの構成を説明するための模式図である。
【図４】本発明の一例における１６進コードと置換行列の変換のテーブルである。
【図５】モトローラＳデータのフォーマットを説明するための図である。
【図６】本発明の一例における、モトローラＳデータのサム値符号化処理のフローチャートである。
【図７】本発明の一例における、モトローラＳデータのサム値復号化処理のフローチャートである。
【図８】従来技術の周辺機器のファームウェアの更新を説明するための模式図である。
【図９】従来技術の周辺機器のファームウェアの更新を説明するための模式図である。
【図１０】従来技術の周辺機器のファームウェアの更新を説明するための模式図である。
【符号の説明】
【００２７】
０１０１…モトローラＳデータ、０１０２…符号化したモトローラＳデータ、０２０１…ＰＣ、０２０２…通信ケーブル、０２０３…周辺機器、０３０１…モトローラＳデータ、０３０２…データレコードの先頭部分、０３０３…サム値を付加した状態のデータレコードの先頭部分、０３０４…符号化したモトローラＳデータ。
【図１】
2007219915.tif 000003
【図２】
2007219915.tif 000004
【図３】
2007219915.tif 000005
【図４】
2007219915.tif 000006
【図５】
2007219915.tif 000007
【図６】
2007219915.tif 000008
【図７】
2007219915.tif 000009
【図８】
2007219915.tif 000010
【図９】
2007219915.tif 000011
【図１０】
2007219915.tif 000012