JP3763182B2 - コンフィギュレーションromの検査方法及び装置 - Google Patents
コンフィギュレーションromの検査方法及び装置 Download PDFInfo
- Publication number
- JP3763182B2 JP3763182B2 JP11903997A JP11903997A JP3763182B2 JP 3763182 B2 JP3763182 B2 JP 3763182B2 JP 11903997 A JP11903997 A JP 11903997A JP 11903997 A JP11903997 A JP 11903997A JP 3763182 B2 JP3763182 B2 JP 3763182B2
- Authority
- JP
- Japan
- Prior art keywords
- configuration rom
- information
- read
- directory
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Computer And Data Communications (AREA)
- Small-Scale Networks (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、IEEE1394高速シリアルバス対応の機器を開発する際に、IEEE1394で規定しているプロトコルを満たしているかどうかを検査するための方法及び装置に関する。
【0002】
【従来の技術】
IEEE1394高速シリアルバス(以下1394シリアルバスという)を用いてデジタルビデオ信号及びデジタルオーディオ信号の送受信を行う機能を備えたデジタルビデオカメラが既に商品化されている。また、パーソナルコンピュータ(以下PCという)に周辺装置を接続するインターフェースとして1394シリアルバスが注目されている。
【0003】
1394シリアルバス対応の機器内では64ビットのアドレスを使用することができる。そのうち上位16ビットはノードIDを示し、図11に示すようにノードIDに続く48ビットのアドレスの“FFFF F000 0000h”から“FFFF FFFF FFFFh”までのエリアはレジスタ空間と呼ばれており、1394シリアルバスに接続された機器間で共通な情報が書き込まれる。レジスタ空間の“FFFF F000 0400h”からコンフィギュレーションROMが設けられる。
【0004】
図12にコンフィギュレーションROMの構成例を示す。1394シリアルバス対応の機器を開発する際には、コンフィギュレーションROMに正しいデータが書き込まれているかどうかを検査することが必要である。
【0005】
従来は、この検査を以下の手順で実行していた。コンフィギュレーションROMの先頭のオフセット値“FFFF F000 0400h”は決まった値である。また、オフセット値以降に書かれているバス情報ブロック(Bus_Info_Block)やルートディレクトリーの長さ(root_directory_length)等が例えば図12に示したように分かっていれば、そこに書かれている長さ分のデータを読み出せば、コンフィギュレーションROM全体の情報を読み出すことができる。
【0006】
【発明が解決しようとする課題】
しかしながら、従来の方法では、コンフィギュレーションROM全体の情報は簡単に読み出せるが、その情報を人間が見て、ROMの構造やCRCデータが正しいかどうかを判断する必要があった。また、コンフィギュレーションROMに書かれている各種データの長さを判断する必要があった。このため、コンフィギュレーションROMをバージョンアップして内部のデータ構造が変わった場合やデータ構造の分からないコンフィギュレーションROMに対しては正しいかどうかを判断することができなかった。
【0007】
また、長さが合っていても、各ディレクトリー(directory)やリーフ(leaf)のオフセットが図12のように連続して取られておらず、飛び飛びになっている場合には、全体の情報を正しく読み出すことができなかった。
【0008】
本発明はこのような問題点に鑑みてなされたものであって、コンフィギュレーションROMに書かれているデータを自動的に読み出すと共に、読み出したデータのチェックやそのチェック結果の表示を自動的に行えるようにしたコンフィギュレーションROMの検査方法及び装置を提供することを目的とする。
【0009】
【課題を解決するための手段】
本発明では、コンフィギュレーションROM内のディレクトリーやリーフのオフセット値やそこに書かれている長さ情報等をもとに、全体の情報を読み出す。また、読み出した情報をもとにCRC計算を行い、その読み出したデータの信頼性を検査する。また、さらに視覚的にもコンフィギュレーションROMの構造が理解しやすいように、データの意味を示すテキスト情報と共に全体を表示し、コンフィギュレーションROM情報にエラーがあった場合には、エラー情報も表示する。
【0010】
【発明の実施の形態】
以下本発明の実施の形態について図面を参照しながら詳細に説明する。
【0011】
図1に本発明を適用したシステムの構成を示す。このシステムはPCシステム1のPC本体2とカメラ一体型ビデオテープレコーダ(以下CAMという)5との間を1394シリアルバス6で接続したものである。そして、PCIバス対応のIEEE1394インターフェースボード(以下1394 I/Fボードと略す)4をPC本体2のPCIスロットに挿入し、PC本体2上で本発明のアプリケーションを作成し、アシンクロナスパケットを送受信することによって、所望の機器(ここではCAM)のIEEE1394プロトコルを検査することを実現した例である。なお、この場合のCAM5が備えているコンフィギュレーションROMに書かれているデータの構成は図12に示した通りとする。
【0012】
図2は図1のPC本体2の内部の構成の概略を示すものである。ここで、図1と同一の部分には図1に付した番号と同一の番号が付してある。
【0013】
PC本体2の内部に設けられた1394 I/Fボード4には、物理層コントロールブロック(PHY)11と、リンク層コントロールブロック(LINK)12とが設けられている。
【0014】
物理層コントロールブロック11は1394シリアルバスの初期化やバスの使用権の調停等を行う。また、リンク層コントロールブロック12との間で、各種制御信号の通信を行うとともに、これらの信号を1394シリアルバス6に対して送受信する。
【0015】
リンク層コントロールブロック12は、パケットの作成/検出、誤り訂正処理等を行う。コンフィギュレーションROMはリンク層コントロールブロック12の内部に設けられている。
【0016】
PCシステム1のPC本体2の内部には、さらにCPU14と、RAM15と、モニターインターフェース16と、ファイルメモリ17と、アプリケーションメモリ18とが設けられている。
【0017】
CPU14はPC本体2の全体の制御等を行う。RAM15はCPU14が各種データの処理を行う際のワークエリアとなる。モニターインターフェース16はモニター3との間の制御信号の通信やモニター3に対するビデオ信号の送信を行う。ファイルメモリ17は各種ファイルを格納する。アプリケーションメモリ18は各種アプリケーションを格納する。ファイルメモリ17及びアプリケーションメモリ18は、実際にはハードディスク装置の記憶エリアの一部として構成される。
【0018】
RAM15上のアプリケーションプログラムは物理層コントロールブロック11とリンク層コントロールブロック12の制御、コマンドやレスポンスの作成等の処理を行う。このアプリケーションプログラムはコマンドやレスポンスを作成するときにはリンク層コントロールブロック12内に設けられたレジスタの所定のアドレスにデータを書き込む。また、他の機器が送信したコマンドやレスポンスは、前記レジスタの所定のアドレスに書き込まれた後、このアプリケーションプログラムにより読み出される。
【0019】
なお、実際にはPC本体2内には、さらにキーボードインターフェースやROM等が設けられているが、ここでは省略した。
【0020】
図3は図2に示したPC本体2がコンフィギュレーションROMを検査する際の処理を示すフローチャートである。まず、PC本体2内のアプリケーションメモリ17上のコンフィギュレーションROM検査用アプリケーションを立ち上げ、検査を開始する。
【0021】
PC本体2内の1394インターフェースボード4は、1394バス6を介してCAM5内のコンフィギュレーションROMの先頭の1クワドレット(quadlet)分のデータを読み出し、CRCの長さ(CRC_Length)とROM CRC値(rom_crc_value)をRAM15に保存する(ステップS1)。このCRCの長さには、先頭の1クワドレットを除く、コンフィギュレーションROM全体の長さが書かれている。
【0022】
コンフィギュレーションROMの先頭の1クワドレットのデータから、バス情報ブロックの長さ(Bus_Info_Block_length)が04hであると分かるので、さらに4クワドレット分のデータを読み出し、保存する(ステップS2)。
【0023】
次に、ルートディレクトリー(root_directory)の先頭1クワドレット分のデータを読み出し、ルートディレクトリーのCRC値を保存する(ステップS3)。
【0024】
ルートディレクトリーの先頭1クワドレット分のデータから、ルートディレクトリーの長さ(root_directory_length)が04hであると分かるため、さらに4クワドレット分のデータを読み出し、保存する(ステップS4)。
【0025】
ルートディレクトリー等のディレクトリー(directory)には、さらに他のディレクトリーやリーフへのオフセット値が書かれている可能性があるため、保存しておいたルートディレクトリーのキーデータをもとに、オフセットを指し示すデータがないか検索する(ステップS5)。
【0026】
キーデータの構造例を図4に、キータイプ(key_type)のコードを図5に、キータイプ及びキーの値(key_value)のコードを図6に示す。例えばルートディレクトリーの3クワドレット目のキーデータである“8Dh”は、“10001101”である。したがって、先頭の2ビットの“10”(=1)がキータイプのオフセットを示す。そして、残りの6ビットの“001101”(=0D)に対応するエントリーネームはノードユニークIDであり、キータイプがリーフである。つまり、これはノードユニークIDリーフ(Node_Unique_Id leaf)へのオフセットであることを意味する。同様に、3クワドレット目のキーデータである“D1h”は、ユニットディレクトリー(Unit_Directory)へのオフセットであることを意味する。
【0027】
ステップS5での検索の結果、オフセットを指示するデータがあった場合には、そのオフセット値が示すアドレスからデータを読み出し、保存する(ステップS6)。ここでは、ノードユニークIDリーフとユニットディレクトリーを読み出す。この時、ノードユニークIDリーフとユニットディレクトリーのオフセット値を比較して小さいほうのオフセットから読み出す。
【0028】
図12では、ノードユニークIDリーフのオフセット値が“05h”であり、ユニットディレクトリーのオフセット値が“01h”であるから、ユニットディレクトリーのオフセット値のほうが小さい。したがって、まずユニットディレクトリーのオフセット値が指し示すアドレスを1クワドレット分だけ読み出すと、ユニットディレクトリーの長さ(Unit_Directory_length)は“02h”であることが分かる。したがって、さらに2クワドレット分のデータを読み出し、保存する(ステップS6)。このとき、ユニットディレクトリーのCRC値も保存しておく。
【0029】
ユニットディレクトリーもディレクトリーであるため、ステップS5と同様にしてキーデータをもとに、他のリーフやディレクトリーへのオフセットが書かれていないかチェックする(ステップS7)。
【0030】
もし、他のリーフやディレクトリーへのオフセットが含まれていたら、再びまだ読み出していないノードユニークIDリーフのオフセットと新たに検索して発見したオフセットを合わせ、オフセットの昇順に並べ換える。
【0031】
図12の場合には、オフセット情報は含まれていなかったため、次にノードユニークIDリーフを1クワドレット分だけ読み出し、保存する。読み出しによりノードユニークIDリーフの長さ(Node_Unique_Id_leaf_length)は“02h”であることが分かる。したがって、さらに2クワドレット分読み出し、読み出したデータを保存する。このとき、ノードユニークIDリーフのCRC値も保存しておく。
【0032】
さらに読み出すべきディレクトリーやリーフのオフセットはこれ以上存在しないため、これでコンフィギュレーションROMの情報を全て読み出すことができた。
【0033】
それを確認するために、読み出した全データと保存しておいたCRCの長さに1加えた値とを比較する。そして、その値が等しければ良い。もし、この値が等しくなければ、各々のリーフやディレクトリーの長さや情報が間違っているか、あるいはリーフやディレクトリーへのオフセット値が間違っている可能性がる。読み出した長さの正誤情報もチェック結果として、モニターインターフェース15を介してモニター3に表示する(ステップS8)。
【0034】
そして、読み出したコンフィギュレーションROMの値をISO/IEC13213で定義されているCRC−16計算式に通して、データの正当性をチェックする。まず、各々のディレクトリー及びリーフ単位でCRC計算を行い、保持しておいた各々のCRC値と等しいかどうかチェックする。全ディレクトリー及びリーフについてのチェックが終わったら、コンフィギュレーションROM全体のCRCを計算し、ROM_CRC値と等しいかどうかチェックする。CRC値の正誤情報もチェック結果として表示する。最後に、読み出したデータにデータの意味を示すテキスト情報も付加して、コンフィギュレーションROMを表にしてモニター3に表示する。その下に読みだしたROM情報のチェック結果も表示する(ステップS8)。
【0035】
読み出したデータが正しかった場合のチェック結果の表示例を図7に示す。この表示例では、画面上部に日時等が、中央部にはコンフィギュレーションROM内部のアドレス及びデータ構造等が、下部にはチェック結果が表示されている。そして、チェック結果は、CRC長のチェック結果、バス情報ブロックのROM_CRC値のチェック結果、ルートディレクトリーのCRC値のチェック結果、ユニットディレクトリーのCRC値のチェック結果、及びノードユニークIDリーフのCRC値のチェック結果が全てOKであることが表示されている。
【0036】
一方、誤りがあった場合の表示例を図8に示す。ここでは、CRC長のチェック結果とノードユニークIDリーフのCRC値のチェック結果はOKであるが、バス情報ブロックのROM_CRC値のチェック結果及びルートディレクトリーのCRC値のチェック結果にエラーがあることが表示されている。そして、エラーについてはCRC値について具体的に表示している。
【0037】
また、ディレクトリーの階層構造がより深い場合のチェック結果例を正しかった場合について図9及び図10に示す。ここで、図9はモニター3に表示されている画面の上部を示し、図10は下部を示す。
【0038】
図7〜図10に示したように、チェックした日時やチェック内容のタイトルなども表示しておけば、後でそのファイルを参照したときに、バージョン管理やデバッグ等に非常に有効である。
【0039】
以上の検査結果はテキストファイルとしてファイルメモリ16に保存することができる(ステップS9)。
【0040】
なお、本実施の形態では、CRCの計算を最後に実行したが、各リーフ/ディレクトリー単位あるいはデータを読み出しながらクワドレット単位で計算してもよい。
【0041】
このように、本実施の形態では、コンフィギュレーションROMの各ディレクトリーやリーフ間が連続で確保されていなくても、全情報を正確に読み出し、表示することができる。また、キータイプやキーの値をもとに、各ディレクトリー内の情報をテキストでも表示することによって、どのような情報が書かれているのかが理解しやすい。
【0042】
さらに、全データ及び各ディレクトリー/リーフのCRCチェックを行い、データの信頼性を検査し、結果を表示することによって、エラーの検出も行える。
また、検査結果をファイルにセーブすることによって、その場限りの検査ではなく、履歴を残すことができる上に、バグが出た場合にも後でそのデータをもとに原因を追及することが容易にできる。
【0043】
さらに、簡単操作かつ短時間でIEEE1394プロトコルを自動的にチェックできる。
【0044】
また、IEEE1394コンフォーマンステスター(ConformanceTester)を操作するユーザーは、プロトコルを知らなくても検査できる。検査結果はテキストファイルとして保存できるため、履歴を残したりデバッグなどに非常に有効に使える。検査用データの文法エラーもチェックできるため、プロトコルを正しく検査でき、かつ、ソースは書き換えなくても、データを書き換えるだけで任意のパケットの送受を行えるため、プロトコル及びセット仕様の変更等にも柔軟に対応できる。
【0045】
【発明の効果】
以上詳細に説明したように、本発明によれば、コンフィギュレーションROMの各ディレクトリー/リーフ構造がコンフィギュレーションROM上に連続的に取られていなくても、正しく全情報を読み出すことができる。また、読み出した結果を、視覚的に理解しやすく表示し、データのチェックまで行ってくれるため、検査装置のユーザーはプロトコルを知らなくても、その仕様を満たしているかどうかをチェックすることができる。
【0046】
さらに、その結果をファイルにセーブできるため、デバッグやバージョンの管理などに非常に有効である。
【図面の簡単な説明】
【図1】本発明を適用したシステムの構成を示す図である。
【図2】図1のPC本体の内部の構成の概略を示す図である。
【図3】図2に示したPC本体がコンフィギュレーションROMを検査する際の処理を示すフローチャートである。
【図4】キーデータの構造例を示す図である。
【図5】キータイプのコードを示す図である。
【図6】キータイプ及びキーの値のコードを示す図である。
【図7】読み出したデータが正しかった場合のチェック結果の表示例を示す図である。
【図8】読み出したデータに誤りがあった場合の表示例を示す図である。
【図9】ディレクトリーの階層構造がより深い場合のチェック結果の表示例の画面上部を示す図である。
【図10】ディレクトリーの階層構造がより深い場合のチェック結果の表示例の画面下部を示す図である。
【図11】レジスタ空間のアドレスを示す図である。
【図12】コンフィギュレーションROMの構成例を示す図である。
【符号の説明】
1…PCシステム、2…PC本体、3…モニター、4…1394インターフェースボード、6…1394シリアルバス、14…CPU、17…ファイルメモリ、18…アプリケーションメモリ。
【発明の属する技術分野】
本発明は、IEEE1394高速シリアルバス対応の機器を開発する際に、IEEE1394で規定しているプロトコルを満たしているかどうかを検査するための方法及び装置に関する。
【0002】
【従来の技術】
IEEE1394高速シリアルバス(以下1394シリアルバスという)を用いてデジタルビデオ信号及びデジタルオーディオ信号の送受信を行う機能を備えたデジタルビデオカメラが既に商品化されている。また、パーソナルコンピュータ(以下PCという)に周辺装置を接続するインターフェースとして1394シリアルバスが注目されている。
【0003】
1394シリアルバス対応の機器内では64ビットのアドレスを使用することができる。そのうち上位16ビットはノードIDを示し、図11に示すようにノードIDに続く48ビットのアドレスの“FFFF F000 0000h”から“FFFF FFFF FFFFh”までのエリアはレジスタ空間と呼ばれており、1394シリアルバスに接続された機器間で共通な情報が書き込まれる。レジスタ空間の“FFFF F000 0400h”からコンフィギュレーションROMが設けられる。
【0004】
図12にコンフィギュレーションROMの構成例を示す。1394シリアルバス対応の機器を開発する際には、コンフィギュレーションROMに正しいデータが書き込まれているかどうかを検査することが必要である。
【0005】
従来は、この検査を以下の手順で実行していた。コンフィギュレーションROMの先頭のオフセット値“FFFF F000 0400h”は決まった値である。また、オフセット値以降に書かれているバス情報ブロック(Bus_Info_Block)やルートディレクトリーの長さ(root_directory_length)等が例えば図12に示したように分かっていれば、そこに書かれている長さ分のデータを読み出せば、コンフィギュレーションROM全体の情報を読み出すことができる。
【0006】
【発明が解決しようとする課題】
しかしながら、従来の方法では、コンフィギュレーションROM全体の情報は簡単に読み出せるが、その情報を人間が見て、ROMの構造やCRCデータが正しいかどうかを判断する必要があった。また、コンフィギュレーションROMに書かれている各種データの長さを判断する必要があった。このため、コンフィギュレーションROMをバージョンアップして内部のデータ構造が変わった場合やデータ構造の分からないコンフィギュレーションROMに対しては正しいかどうかを判断することができなかった。
【0007】
また、長さが合っていても、各ディレクトリー(directory)やリーフ(leaf)のオフセットが図12のように連続して取られておらず、飛び飛びになっている場合には、全体の情報を正しく読み出すことができなかった。
【0008】
本発明はこのような問題点に鑑みてなされたものであって、コンフィギュレーションROMに書かれているデータを自動的に読み出すと共に、読み出したデータのチェックやそのチェック結果の表示を自動的に行えるようにしたコンフィギュレーションROMの検査方法及び装置を提供することを目的とする。
【0009】
【課題を解決するための手段】
本発明では、コンフィギュレーションROM内のディレクトリーやリーフのオフセット値やそこに書かれている長さ情報等をもとに、全体の情報を読み出す。また、読み出した情報をもとにCRC計算を行い、その読み出したデータの信頼性を検査する。また、さらに視覚的にもコンフィギュレーションROMの構造が理解しやすいように、データの意味を示すテキスト情報と共に全体を表示し、コンフィギュレーションROM情報にエラーがあった場合には、エラー情報も表示する。
【0010】
【発明の実施の形態】
以下本発明の実施の形態について図面を参照しながら詳細に説明する。
【0011】
図1に本発明を適用したシステムの構成を示す。このシステムはPCシステム1のPC本体2とカメラ一体型ビデオテープレコーダ(以下CAMという)5との間を1394シリアルバス6で接続したものである。そして、PCIバス対応のIEEE1394インターフェースボード(以下1394 I/Fボードと略す)4をPC本体2のPCIスロットに挿入し、PC本体2上で本発明のアプリケーションを作成し、アシンクロナスパケットを送受信することによって、所望の機器(ここではCAM)のIEEE1394プロトコルを検査することを実現した例である。なお、この場合のCAM5が備えているコンフィギュレーションROMに書かれているデータの構成は図12に示した通りとする。
【0012】
図2は図1のPC本体2の内部の構成の概略を示すものである。ここで、図1と同一の部分には図1に付した番号と同一の番号が付してある。
【0013】
PC本体2の内部に設けられた1394 I/Fボード4には、物理層コントロールブロック(PHY)11と、リンク層コントロールブロック(LINK)12とが設けられている。
【0014】
物理層コントロールブロック11は1394シリアルバスの初期化やバスの使用権の調停等を行う。また、リンク層コントロールブロック12との間で、各種制御信号の通信を行うとともに、これらの信号を1394シリアルバス6に対して送受信する。
【0015】
リンク層コントロールブロック12は、パケットの作成/検出、誤り訂正処理等を行う。コンフィギュレーションROMはリンク層コントロールブロック12の内部に設けられている。
【0016】
PCシステム1のPC本体2の内部には、さらにCPU14と、RAM15と、モニターインターフェース16と、ファイルメモリ17と、アプリケーションメモリ18とが設けられている。
【0017】
CPU14はPC本体2の全体の制御等を行う。RAM15はCPU14が各種データの処理を行う際のワークエリアとなる。モニターインターフェース16はモニター3との間の制御信号の通信やモニター3に対するビデオ信号の送信を行う。ファイルメモリ17は各種ファイルを格納する。アプリケーションメモリ18は各種アプリケーションを格納する。ファイルメモリ17及びアプリケーションメモリ18は、実際にはハードディスク装置の記憶エリアの一部として構成される。
【0018】
RAM15上のアプリケーションプログラムは物理層コントロールブロック11とリンク層コントロールブロック12の制御、コマンドやレスポンスの作成等の処理を行う。このアプリケーションプログラムはコマンドやレスポンスを作成するときにはリンク層コントロールブロック12内に設けられたレジスタの所定のアドレスにデータを書き込む。また、他の機器が送信したコマンドやレスポンスは、前記レジスタの所定のアドレスに書き込まれた後、このアプリケーションプログラムにより読み出される。
【0019】
なお、実際にはPC本体2内には、さらにキーボードインターフェースやROM等が設けられているが、ここでは省略した。
【0020】
図3は図2に示したPC本体2がコンフィギュレーションROMを検査する際の処理を示すフローチャートである。まず、PC本体2内のアプリケーションメモリ17上のコンフィギュレーションROM検査用アプリケーションを立ち上げ、検査を開始する。
【0021】
PC本体2内の1394インターフェースボード4は、1394バス6を介してCAM5内のコンフィギュレーションROMの先頭の1クワドレット(quadlet)分のデータを読み出し、CRCの長さ(CRC_Length)とROM CRC値(rom_crc_value)をRAM15に保存する(ステップS1)。このCRCの長さには、先頭の1クワドレットを除く、コンフィギュレーションROM全体の長さが書かれている。
【0022】
コンフィギュレーションROMの先頭の1クワドレットのデータから、バス情報ブロックの長さ(Bus_Info_Block_length)が04hであると分かるので、さらに4クワドレット分のデータを読み出し、保存する(ステップS2)。
【0023】
次に、ルートディレクトリー(root_directory)の先頭1クワドレット分のデータを読み出し、ルートディレクトリーのCRC値を保存する(ステップS3)。
【0024】
ルートディレクトリーの先頭1クワドレット分のデータから、ルートディレクトリーの長さ(root_directory_length)が04hであると分かるため、さらに4クワドレット分のデータを読み出し、保存する(ステップS4)。
【0025】
ルートディレクトリー等のディレクトリー(directory)には、さらに他のディレクトリーやリーフへのオフセット値が書かれている可能性があるため、保存しておいたルートディレクトリーのキーデータをもとに、オフセットを指し示すデータがないか検索する(ステップS5)。
【0026】
キーデータの構造例を図4に、キータイプ(key_type)のコードを図5に、キータイプ及びキーの値(key_value)のコードを図6に示す。例えばルートディレクトリーの3クワドレット目のキーデータである“8Dh”は、“10001101”である。したがって、先頭の2ビットの“10”(=1)がキータイプのオフセットを示す。そして、残りの6ビットの“001101”(=0D)に対応するエントリーネームはノードユニークIDであり、キータイプがリーフである。つまり、これはノードユニークIDリーフ(Node_Unique_Id leaf)へのオフセットであることを意味する。同様に、3クワドレット目のキーデータである“D1h”は、ユニットディレクトリー(Unit_Directory)へのオフセットであることを意味する。
【0027】
ステップS5での検索の結果、オフセットを指示するデータがあった場合には、そのオフセット値が示すアドレスからデータを読み出し、保存する(ステップS6)。ここでは、ノードユニークIDリーフとユニットディレクトリーを読み出す。この時、ノードユニークIDリーフとユニットディレクトリーのオフセット値を比較して小さいほうのオフセットから読み出す。
【0028】
図12では、ノードユニークIDリーフのオフセット値が“05h”であり、ユニットディレクトリーのオフセット値が“01h”であるから、ユニットディレクトリーのオフセット値のほうが小さい。したがって、まずユニットディレクトリーのオフセット値が指し示すアドレスを1クワドレット分だけ読み出すと、ユニットディレクトリーの長さ(Unit_Directory_length)は“02h”であることが分かる。したがって、さらに2クワドレット分のデータを読み出し、保存する(ステップS6)。このとき、ユニットディレクトリーのCRC値も保存しておく。
【0029】
ユニットディレクトリーもディレクトリーであるため、ステップS5と同様にしてキーデータをもとに、他のリーフやディレクトリーへのオフセットが書かれていないかチェックする(ステップS7)。
【0030】
もし、他のリーフやディレクトリーへのオフセットが含まれていたら、再びまだ読み出していないノードユニークIDリーフのオフセットと新たに検索して発見したオフセットを合わせ、オフセットの昇順に並べ換える。
【0031】
図12の場合には、オフセット情報は含まれていなかったため、次にノードユニークIDリーフを1クワドレット分だけ読み出し、保存する。読み出しによりノードユニークIDリーフの長さ(Node_Unique_Id_leaf_length)は“02h”であることが分かる。したがって、さらに2クワドレット分読み出し、読み出したデータを保存する。このとき、ノードユニークIDリーフのCRC値も保存しておく。
【0032】
さらに読み出すべきディレクトリーやリーフのオフセットはこれ以上存在しないため、これでコンフィギュレーションROMの情報を全て読み出すことができた。
【0033】
それを確認するために、読み出した全データと保存しておいたCRCの長さに1加えた値とを比較する。そして、その値が等しければ良い。もし、この値が等しくなければ、各々のリーフやディレクトリーの長さや情報が間違っているか、あるいはリーフやディレクトリーへのオフセット値が間違っている可能性がる。読み出した長さの正誤情報もチェック結果として、モニターインターフェース15を介してモニター3に表示する(ステップS8)。
【0034】
そして、読み出したコンフィギュレーションROMの値をISO/IEC13213で定義されているCRC−16計算式に通して、データの正当性をチェックする。まず、各々のディレクトリー及びリーフ単位でCRC計算を行い、保持しておいた各々のCRC値と等しいかどうかチェックする。全ディレクトリー及びリーフについてのチェックが終わったら、コンフィギュレーションROM全体のCRCを計算し、ROM_CRC値と等しいかどうかチェックする。CRC値の正誤情報もチェック結果として表示する。最後に、読み出したデータにデータの意味を示すテキスト情報も付加して、コンフィギュレーションROMを表にしてモニター3に表示する。その下に読みだしたROM情報のチェック結果も表示する(ステップS8)。
【0035】
読み出したデータが正しかった場合のチェック結果の表示例を図7に示す。この表示例では、画面上部に日時等が、中央部にはコンフィギュレーションROM内部のアドレス及びデータ構造等が、下部にはチェック結果が表示されている。そして、チェック結果は、CRC長のチェック結果、バス情報ブロックのROM_CRC値のチェック結果、ルートディレクトリーのCRC値のチェック結果、ユニットディレクトリーのCRC値のチェック結果、及びノードユニークIDリーフのCRC値のチェック結果が全てOKであることが表示されている。
【0036】
一方、誤りがあった場合の表示例を図8に示す。ここでは、CRC長のチェック結果とノードユニークIDリーフのCRC値のチェック結果はOKであるが、バス情報ブロックのROM_CRC値のチェック結果及びルートディレクトリーのCRC値のチェック結果にエラーがあることが表示されている。そして、エラーについてはCRC値について具体的に表示している。
【0037】
また、ディレクトリーの階層構造がより深い場合のチェック結果例を正しかった場合について図9及び図10に示す。ここで、図9はモニター3に表示されている画面の上部を示し、図10は下部を示す。
【0038】
図7〜図10に示したように、チェックした日時やチェック内容のタイトルなども表示しておけば、後でそのファイルを参照したときに、バージョン管理やデバッグ等に非常に有効である。
【0039】
以上の検査結果はテキストファイルとしてファイルメモリ16に保存することができる(ステップS9)。
【0040】
なお、本実施の形態では、CRCの計算を最後に実行したが、各リーフ/ディレクトリー単位あるいはデータを読み出しながらクワドレット単位で計算してもよい。
【0041】
このように、本実施の形態では、コンフィギュレーションROMの各ディレクトリーやリーフ間が連続で確保されていなくても、全情報を正確に読み出し、表示することができる。また、キータイプやキーの値をもとに、各ディレクトリー内の情報をテキストでも表示することによって、どのような情報が書かれているのかが理解しやすい。
【0042】
さらに、全データ及び各ディレクトリー/リーフのCRCチェックを行い、データの信頼性を検査し、結果を表示することによって、エラーの検出も行える。
また、検査結果をファイルにセーブすることによって、その場限りの検査ではなく、履歴を残すことができる上に、バグが出た場合にも後でそのデータをもとに原因を追及することが容易にできる。
【0043】
さらに、簡単操作かつ短時間でIEEE1394プロトコルを自動的にチェックできる。
【0044】
また、IEEE1394コンフォーマンステスター(ConformanceTester)を操作するユーザーは、プロトコルを知らなくても検査できる。検査結果はテキストファイルとして保存できるため、履歴を残したりデバッグなどに非常に有効に使える。検査用データの文法エラーもチェックできるため、プロトコルを正しく検査でき、かつ、ソースは書き換えなくても、データを書き換えるだけで任意のパケットの送受を行えるため、プロトコル及びセット仕様の変更等にも柔軟に対応できる。
【0045】
【発明の効果】
以上詳細に説明したように、本発明によれば、コンフィギュレーションROMの各ディレクトリー/リーフ構造がコンフィギュレーションROM上に連続的に取られていなくても、正しく全情報を読み出すことができる。また、読み出した結果を、視覚的に理解しやすく表示し、データのチェックまで行ってくれるため、検査装置のユーザーはプロトコルを知らなくても、その仕様を満たしているかどうかをチェックすることができる。
【0046】
さらに、その結果をファイルにセーブできるため、デバッグやバージョンの管理などに非常に有効である。
【図面の簡単な説明】
【図1】本発明を適用したシステムの構成を示す図である。
【図2】図1のPC本体の内部の構成の概略を示す図である。
【図3】図2に示したPC本体がコンフィギュレーションROMを検査する際の処理を示すフローチャートである。
【図4】キーデータの構造例を示す図である。
【図5】キータイプのコードを示す図である。
【図6】キータイプ及びキーの値のコードを示す図である。
【図7】読み出したデータが正しかった場合のチェック結果の表示例を示す図である。
【図8】読み出したデータに誤りがあった場合の表示例を示す図である。
【図9】ディレクトリーの階層構造がより深い場合のチェック結果の表示例の画面上部を示す図である。
【図10】ディレクトリーの階層構造がより深い場合のチェック結果の表示例の画面下部を示す図である。
【図11】レジスタ空間のアドレスを示す図である。
【図12】コンフィギュレーションROMの構成例を示す図である。
【符号の説明】
1…PCシステム、2…PC本体、3…モニター、4…1394インターフェースボード、6…1394シリアルバス、14…CPU、17…ファイルメモリ、18…アプリケーションメモリ。
Claims (8)
- IEEE1394高速シリアルバス対応の機器に内蔵されているコンフィギュレーションROMを検査する方法であって、
前記コンフィギュレーションROM内の全ての情報を、前記コンフィギュレーションROMに書かれているディレクトリー、リーフの長さ及びオフセット値等の情報をもとに前記バスを介して読み出すことを特徴をするコンフィギュレーションROMの検査方法。 - 前記コンフィギュレーションROM内の情報を全て読み出した後、CRC計算を実行することにより、コンフィギュレーションROM内の情報が正しいかどうかを判断する請求項1に記載のコンフィギュレーションROMの検査方法。
- 読み出したコンフィギュレーションROM内の全情報を、オフセット値及び各情報の意味と共に表示し、かつ読み出した情報が正しいかどうかを表示する請求項2に記載のコンフィギュレーションROMの検査方法。
- 前記の表示した全情報をファイルにセーブする請求項3に記載のコンフィギュレーションROMの検査方法。
- IEEE1394高速シリアルバス対応の機器に内蔵されているコンフィギュレーションROMを検査する装置であって、
前記コンフィギュレーションROM内の全ての情報を、前記コンフィギュレーションROMに書かれているディレクトリー、リーフの長さ及びオフセット値等の情報をもとに前記バスを介して読み出すことを特徴をするコンフィギュレーションROMの検査装置。 - 前記コンフィギュレーションROMから読み出した情報のCRC計算を実行する手段を有する請求項5に記載のコンフィギュレーションROMの検査装置。
- 読み出したコンフィギュレーションROM内の全情報を、オフセット値及び各情報の意味と共に表示し、かつ読み出した情報が正しいかどうかを表示する手段を有する請求項6に記載のコンフィギュレーションROMの検査装置。
- 前記の表示した全情報をファイルとして記憶する手段を有する請求項7に記載のコンフィギュレーションROMの検査装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11903997A JP3763182B2 (ja) | 1997-05-09 | 1997-05-09 | コンフィギュレーションromの検査方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11903997A JP3763182B2 (ja) | 1997-05-09 | 1997-05-09 | コンフィギュレーションromの検査方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10307760A JPH10307760A (ja) | 1998-11-17 |
JP3763182B2 true JP3763182B2 (ja) | 2006-04-05 |
Family
ID=14751444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11903997A Expired - Fee Related JP3763182B2 (ja) | 1997-05-09 | 1997-05-09 | コンフィギュレーションromの検査方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3763182B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1187058A3 (en) | 2000-08-30 | 2003-01-02 | Seiko Epson Corporation | Printing apparatus, data storage medium, interface device, printer control method, and interface control method |
KR101063462B1 (ko) | 2002-08-29 | 2011-09-08 | 템플 유니버시티-오브 더 커먼웰쓰 시스템 오브 하이어 에듀케이션 | 아릴 및 헤테로아릴 프로펜 아미드, 이들의 유도체 및 이의치료학적 용도 |
DE10339535A1 (de) * | 2003-08-26 | 2005-03-24 | Deutsche Thomson-Brandt Gmbh | Verfahren zum Abfragen von Informationen bezüglich einer Netzwerkteilnehmerstation in einem Netzwerk verteilter Stationen sowie Netzwerkteilnehmerstation für die Durchführung des Verfahrens |
-
1997
- 1997-05-09 JP JP11903997A patent/JP3763182B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10307760A (ja) | 1998-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7117348B2 (en) | Method and system for detecting the validity of configuration data | |
US20110093675A1 (en) | Method for protecting redundant data | |
CA2743111C (en) | Detecting lost and out of order posted write packets in a peripheral component interconnect (pci) express network | |
US6643714B1 (en) | Modification and use of configuration memory used during operation of a serial bus | |
US20220358270A1 (en) | Chip verification system and verification method therefor | |
JP3763182B2 (ja) | コンフィギュレーションromの検査方法及び装置 | |
ES2291677T3 (es) | Procedimiento y sistema para la determinacion de la topologia de un sistema de analisis modular. | |
CN114610557B (zh) | 设备驱动单元的测试方法及装置 | |
TWI394040B (zh) | Host, memory device, and host access to the memory device | |
JP2019096200A (ja) | 書き換え確認装置、書き換え確認方法及び書き換え確認コンピュータプログラム | |
KR102174456B1 (ko) | 직렬 통신 인터페이스에서의 동기화 장치 및 방법 | |
CN113034873A (zh) | 传感器通信方法、装置和系统 | |
JP2002314542A (ja) | 機器状態情報抽出方法、機器状態試験装置、ネットワーク機器及びサービス診断システム | |
JP3613930B2 (ja) | Ieee1394プロトコル検査方法及び装置 | |
JPH04137153A (ja) | 接続経路のチェック方式 | |
US20040049511A1 (en) | Method for acquiring and monitoring hardware data of computer system | |
CN112765053B (zh) | 数据处理方法及装置 | |
JP2765659B2 (ja) | データ処理装置の自己テスト方式 | |
JP2008226020A (ja) | レジスタ検証装置、方法及びプログラム | |
JPH01155452A (ja) | データ処理システムの接続確認方式 | |
KR0132343Y1 (ko) | 모니터 식별정보 제어장치 | |
JP2006133969A (ja) | 情報処理装置、起動エラー検出方法、及びプログラム | |
JP2003114861A (ja) | 電子機器 | |
JPS6261974B2 (ja) | ||
JPH0652332A (ja) | シングルチップマイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051124 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051227 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060109 |
|
LAPS | Cancellation because of no payment of annual fees |