以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係る通信システム10の構成を示す。通信システム10は、送信装置20と、受信装置30と、通信路40とを備える。
送信装置20は、通信路40を介して受信装置30に接続され、送信側装置から受け取った送信データを含むメッセージを受信装置30に対して送信する。本実施形態に係る送信装置20は、一例として圧力センサ等のセンサを含む装置に接続され、センサから取得されたセンサデータを含むメッセージを受信装置30に対して送信する。
受信装置30は、通信路40を介して送信装置20に接続され、送信装置20からメッセージを受信して受信データを受信側装置に供給する。本実施形態に係る受信装置30は、一例として送信装置20から受信したメッセージに含まれるセンスデータを受信側装置に供給する。これを受けて、受信側装置は、センサデータに応じて通信システム10が設けられた車両またはエンジン等の装置を制御する。
通信路40は、送信装置20および受信装置30の間を接続する。通信路40は、一例として車載ネットワーク用の通信路であり、シリアル信号線を用いた接続であってよい。
なお、通信システム10は、上記した用途以外の各種の通信インターフェイスとして利用されてもよい。また、受信装置30は、通信システム10の実際の応用で使用される受信装置ではなく、例えば送信装置20または通信路40の試験または診断等に用いられる試験装置または診断装置等が有する受信装置であってもよい。
図2は、本実施形態に係るメッセージの一例を示す。本例において、メッセージは、論理ハイ(論理H)、および論理ロー(論理L)の2値をとるシリアル信号によって伝送される。論理Hは、予め定められた閾値電圧以上の電圧値をとってよく、論理Lは、閾値電圧未満の電圧値をとってよい。メッセージは、複数のパルスを含む。各パルスは、論理Lから論理Hへと立ち上がり、パルスに応じて予め定められた時間の後に論理Lへと立ち下がる。パルスが論理Hとなる期間の時間幅を、パルス幅と呼ぶ。
本実施形態においては、通信方式としてSENT(Single-Edge Nibble Transmission)プロトコルを用いる場合を例に説明する。SENTプロトコルにおいて、メッセージは、同期校正(Synchronization/Calibration)パルス、ステータス&コミュニケーション(Status&Communication)パルス、複数(3つ)のファースト1・データ(fast 1 data)パルス、複数(3つ)のファースト2・データ(fast 1 data)パルス、CRCパルス、およびポーズパルスを含む。
同期校正パルスは、予め定められたパルス幅(「同期パルス幅」と示す。)を有する。SENTプロトコルにおいて、同期校正パルスは、52単位期間(「ティック」とも示す。)のパルス幅の間論理Hをとるパルス幅不変のパルスである。ここで、SENTプロトコルにおいては、パルス幅は、送信装置20および受信装置30の間で予め定められた時間長のティック(例えば3us)を単位として定義される。同期校正パルスは、同期パルスの一例であり、メッセージの先頭位置を示す。
ステータス&コミュニケーションパルス(「ステータスパルス」とも示す。)は、同期校正パルスの次のパルスであり、ステータス等のデータ値に応じたパルス幅(「データパルス幅」と示す。)の間論理Hをとるパルス幅可変のパルスである。ステータスパルスは、ステータス等のデータを伝送するものであり、「第2データパルス」とも示す。ステータスパルスは、ステータス等を示す4ビット(1ニブル)のデータを伝送する。
ファースト1・データパルスは、ステータスパルスの次の3つのパルスであり、ファースト1・データの値に応じたパルス幅(データパルス幅)を有するパルス幅可変のパルスである。ファースト2・データパルスは、ファースト1・データパルスの次の3つのパルスであり、ファースト2・データの値に応じたパルス幅(データパルス幅)を有するパルス幅可変のパルスである。これらのデータパルスは、「第1データパルス」の一例である。これらのデータパルスは、それぞれ4ビットのデータ(「第1データ」の一例としてのデータ)を伝送する。
CRCパルスは、ファースト2・データパルスの次のパルスであり、誤り検出/訂正符号の値に応じたパルス幅を有するパルス幅可変のパルスである。CRCパルスは、4ビットの誤り検出/訂正符号を伝送する。
ポーズパルスは、連続するメッセージ間に配置されるパルスであり、前のメッセージのCRCパルスの末尾から次のメッセージの同期校正パルスの前までの間を満たすパルス幅を有する。ポーズパルスのパルス幅は、最小でも同期校正パルスのパルス幅よりも大きく設定される。なお、SENTプロトコルにおいては、ポーズパルスはオプションであり、ポーズパルスを用いない場合にはCRCパルスおよび同期校正パルスの間の信号は論理Lとされる。
SENTプロトコルにおいては、以上に示した各パルス間に4ティックの論理Lの期間が設けられる。
図3は、本実施形態に係るメッセージにおけるデータパルスのパルス幅とデータ値の対応を示す。なお、本図は、ステータスデータおよび誤り検出/訂正符号としてのデータを伝送するステータスパルスおよびCRCパルスにも適用される。
SENTプロトコルにおいては、本図に示すようにデータ値0を示すパルスは12ティックのパルス幅を有し、データ値1を示すパルスは13ティックのパルス幅を有し、以下同様にデータ値15(0xF)を示すパルスは27ティックのパルス幅を有する。
図4は、本実施形態に係るメッセージのステータスパルスによって伝送されるデータの第1例を示す。SENTプロトコルは、ファースト1・データおよびファースト2・データによるデータ伝送に加え、複数メッセージのステータスパルスに分割してデータをエンコードするデータ伝送(Slowチャネルによるデータ伝送)を規定する。Slowチャネルによるデータ伝送には、ShortフォーマットおよびEnhancedフォーマットの2種類のフォーマットが規定されている。本図は、このうちShortフォーマットを示す。
Shortフォーマットにおいては、送信装置20は、連続する16個のメッセージを含むメッセージ群の各メッセージに含まれるステータスパルスに分割してデータをエンコードする。本図において、ニブル番号は、Shortフォーマットにおけるステータスパルスの番号を示し、メッセージ群中のメッセージの番号と同じである。各ステータスパルスは、4ビット(1ニブル)のデータを有するが、Shortフォーマットにおいてはこのうち2ビット(シリアルデータビット3および2)を使用する。
Shortフォーマットにおいて、シリアルデータビット3は、ニブル1~16に「1000000000000000」のビット列を含む。シリアルデータビット2は、ニブル1~4にメッセージID(図中「MID」)、ニブル5~12にデータ、ニブル13~16にCRCを含む。Shortフォーマットにおけるシリアルデータビット3および2にエンコードされるデータは、「第2データ」の一例である。
メッセージIDは、Slowチャネルで伝送するデータに関する4ビットのメッセージ識別番号である。データは、Slowチャネルで伝送する8ビットのデータである。CRCは、Slowチャネルで伝送するデータに関するCRCであり、メッセージIDおよびデータ部分のCRCであってよい。
図5は、本実施形態に係るメッセージのステータスパルスによって伝送されるデータの第2例を示す。本図は、Enhancedフォーマットにおいてコンフィグレーションビットを0とする場合を示す。
Enhancedフォーマットにおいては、送信装置20は、連続する18個のメッセージを含むメッセージ群の各メッセージに含まれるステータスパルスに分割してデータをエンコードする。本図において、ニブル番号は、Enhancedフォーマットにおけるステータスパルスの番号を示し、メッセージ群中のメッセージの番号と同じである。Enhancedフォーマットにおいても、各ステータスパルス(1ニブル)のうち2ビット(シリアルデータビット3および2)を使用する。
Enhancedフォーマットにおいて、コンフィグレーションビットを0とする場合、シリアルデータビット3は、ニブル1~6に「111111」、ニブル7に「0」、ニブル8にコンフィグレーションビット「0」、ニブル9~12にメッセージID(一部)、ニブル13に「0」、ニブル14~17にメッセージID(一部)、ニブル18に「0」を含む。シリアルデータビット2は、ニブル1~6にCRC、ニブル7~18にデータを含む。Enhancedフォーマットにおけるシリアルデータビット3および2にエンコードされるデータは、「第2データ」の一例である。
メッセージIDは、Slowチャネルで伝送するデータに関する8ビットのメッセージ識別番号である。データは、Slowチャネルで伝送する12ビットのデータである。CRCは、Slowチャネルで伝送するデータに関するCRCであり、メッセージIDおよびデータ部分のCRCであってよい。
図6は、本実施形態に係るメッセージのステータスパルスによって伝送されるデータの第3例を示す。本図は、Enhancedフォーマットにおいてコンフィグレーションビットを1とする場合を示す。
Enhancedフォーマットにおいて、コンフィグレーションビットを1とする場合、シリアルデータビット3は、ニブル1~6に「111111」、ニブル7に「0」、ニブル8にコンフィグレーションビット「1」、ニブル9~12にメッセージID、ニブル13に「0」、ニブル14~17にデータ(一部)、ニブル18に「0」を含む。シリアルデータビット2は、ニブル1~6にCRC、ニブル7~18にデータ(一部)を含む。
メッセージIDは、Slowチャネルで伝送するデータに関する4ビットのメッセージ識別番号である。データは、Slowチャネルで伝送する16ビットのデータである。CRCは、Slowチャネルで伝送するデータに関するCRCであり、メッセージIDおよびデータ部分のCRCであってよい。
受信装置30は、ShortフォーマットおよびEnhancedフォーマットを、シリアルデータビット3が「1」であるメッセージが6個連続するか否かによって判別することができる。Shortフォーマットの場合、受信装置30は、シリアルデータビット3が「1」であるメッセージがメッセージ群の先頭であると判別することができる。Enhancedフォーマットの場合、受信装置30は、シリアルデータビット3において6個連続する「1」の先頭の「1」を含むメッセージがメッセージ群の先頭であると判別することができる。
図7は、本実施形態に係る受信装置30の構成を示す。受信装置30は、受信部700と、パルス情報格納部710と、検索部720と、調整部730と、検出部740と、特定部750と、抽出部760と、データ出力部770とを備える。
受信部700は、送信装置20によって送信された1または複数のメッセージに含まれる複数のパルスを、通信路40を介して受信する。受信部700は、一例として通信路40から受信した信号を閾値電圧と比較することにより、信号の論理値(論理Hまたは論理L)を判定する。そして、受信部700は、受信された信号列から判定結果を用いてパルスを特定して、複数のパルスのそれぞれについてパルス周期またはパルス幅を示すパルス情報を算出する。
本実施形態において、受信部700は、判定した信号の論理値を観測して、各パルスのパルス周期またはパルス幅を検出する。受信部700は、専用回路によって実現されてよく、これに代えてマイクロコントローラ等におけるプログラム実行により実現されてもよい。受信部700は、信号が論理Lから論理Hへと変化する2つのタイミングの時間間隔を計測することにより、パルス間隔(これらのタイミングの間に位置するパルスのパルス幅にパルス間のインターバルを加えた時間幅)、すなわちパルス周期を計測することができる。これに代えて、受信部700は、信号が論理Lから論理Hへと変化するタイミングから信号が論理Hから論理Lへと変化するタイミングの時間間隔を計測することにより、パルス幅を計測することができる。
ここで、図2に示したようにパルス間に固定長のインターバル(例えば4ティック)が設けられる場合等のようにパルス幅とパルス周期の間に1対1の関係が成り立っている場合、受信装置30は、パルス周期およびパルス幅のいずれを用いても受信するメッセージの内容を正しく解釈することができる。そこで、本願においては、パルス周期またはパルス幅を示す情報を「パルス情報」と表す。パルス情報は、パルス周期またはパルス幅の値そのものを直接示すものであってよく、これに代えて、パルス周期またはパルス幅の値が何らかの規則により変換されることによってパルス周期またはパルス幅の値を間接的に示すものであってもよい。
パルス情報格納部710は、受信部700に接続される。パルス情報格納部710は、バッファ715を有し、受信された複数のパルスのそれぞれについてパルス周期またはパルス幅を示すパルス情報をバッファ715に格納する。バッファ715は、受信された複数のパルスのそれぞれのパルス情報を、受信順に順次記憶するFIFO(ファーストイン・ファーストアウト)バッファであってよい。また、バッファ715は、受信装置30として機能するコンピュータのメモリ上で実現されてもよい。
検索部720は、パルス情報格納部710に接続され、受信された複数のパルスについてバッファ715に格納された複数のパルス情報のうち、同期パルス許容範囲内のパルス周期またはパルス幅を示すパルス情報を検索する。検索部720は、バッファ715内の各パルス情報を受信順に検索して、同期パルス許容範囲内のパルス情報を受信順に発見する。検索部720が発見したパルス情報に対応するパルス(「第1パルス」と示す。)は、同期パルスの候補となる。
調整部730は、検索部720に接続され、第1パルスについてのパルス情報が示すパルス周期またはパルス幅と同期パルスの基準周期または基準幅とに基づいて、データパルス許容範囲を調整する。これにより、調整部730は、例えば送信装置20および受信装置30の間で1ティックの時間長を3usと定めていたにもかかわらず、182usのパルス幅の第1パルスを検出した場合、1ティックの時間長を3.5us(=182/52)とみなし、データパルス許容範囲を42us(3.5us×12)~94.5us(3.5us×27)±20%に調整する。これにより、送信装置20が送信するパルスにおける1ティックの時間長に誤差がある場合においても、受信装置30は、同期パルスの候補となる第1パルスのパルス周期またはパルス幅に基づいて1ティックの時間長を調整し、後続するデータパルス等のパルス周期またはパルス幅を正しく判別できる。
検出部740は、パルス情報格納部710および調整部730に接続され、検索部720が検索したパルス情報に対応する第1パルスに対して予め定められた相対位置にある第2パルスについてバッファ715に格納されたパルス情報が、データパルス許容範囲内のパルス周期またはパルス幅を示すか否かを検出する。本実施形態において、検出部740は、バッファ715内における第1パルスのパルス情報の位置を、検索部720から調整部730を介して受け取る。また、検出部740は、調整部730によって調整されたデータパルス許容範囲または調整された1ティックの時間長を調整部730から受け取る。検出部740は、バッファ715内における第1パルスから予め定められた相対位置(例えば第1パルスの次のパルス)にある第2パルスをデータパルス候補とする。検出部740は、バッファ715内における第2パルスのパルス情報の読み出しをパルス情報格納部710へと要求して、第2パルスのパルス情報を取得する。そして、検出部740は、バッファ715から読み出された第2パルスのパルス情報が、データパルス許容範囲内のパルス周期またはパルス幅を示すかを検出する。
特定部750は、検出部740に接続され、第2パルスのパルス情報がデータパルス許容範囲内のパルス周期またはパルス幅を示すことを条件として、第1パルスを同期パルスとして特定する。特定部750は、検出部740の検出結果およびバッファ715内における第1パルスのパルス情報の位置を検出部740から受け取る。特定部750は、第2パルスのパルス情報がデータパルス許容範囲内のパルス周期またはパルス幅を示す旨の検出結果を受け取ったことに応じて、第1パルスが同期パルスであったと判定する。この場合、特定部750は、第1パルスが同期パルスであることを示す情報を、第1パルスのパルス情報に対応付けてバッファ715に格納することをパルス情報格納部710に指示する。
抽出部760は、パルス情報格納部710に接続され、同期パルスと判定された第1パルスを基準として予め定められた個数分のパルス(図2の例においては同期パルス~CRCパルスまでのパルス)をメッセージに含まれるパルスとして抽出する。そして、抽出部760は、メッセージに含まれる各パルスについてバッファ715に格納されたパルス情報をパルス情報格納部710を介してバッファ715から読み出して、データ出力部770に供給する。
データ出力部770は、抽出部760に接続され、メッセージに含まれる各パルスについてバッファに格納されたパルス情報に応じた受信データを受信側装置に出力する。
以上に示した受信装置30によれば、同期パルス許容範囲内のパルス周期またはパルス幅を有するパルスを無条件に同期パルスと判定するのではなく、同期パルスに対して予め定められた相対位置(同期パルスと同一メッセージ内におけるステータスパルス、データパルス、およびCRCパルスの少なくとも1つに対応する位置)にあるパルスがデータパルス許容範囲内のパルス周期またはパルス幅を有することも判定条件に加える。これにより、受信装置30は、より高い精度で同期パルスを検出することができる。
図8は、本実施形態に係る受信装置30の動作の状態遷移を示す。受信装置30は、アイドル状態800、受信開始状態810、受信処理状態820、および送信処理状態830の各状態の間で動作状態を遷移させながら受信処理を行なう。
(1)アイドル状態800
受信装置30は、起動後初期化を完了すると、アイドル状態800となる。また、受信装置30は、受信した1または複数のメッセージに含まれる送信単位のデータを受信側装置へと送信し、バッファ715が空となった場合は、アイドル状態800に遷移する。本実施形態に係る受信装置30は、図4に示したShortフォーマットのメッセージについてはSlowチャネル1周期分の16メッセージ分を送信単位とし、図5および図6に示したようなEnhancedフォーマットのメッセージ群についてはSlowチャネル1周期分の18メッセージ分のデータを送信単位とする。受信装置30は、例えば256メッセージ等更に多くのメッセージを含むEnhancedフォーマットに対応してもよい。なお、メッセージがSlowチャネルを含まない場合には、受信装置30は、1メッセージ分を送信単位としてもよい。
アイドル状態800において、受信装置30は、受信側装置からの受信要求を待つ。起動後初めて受信要求を受けると、受信装置30は、受信開始状態810に遷移する。起動後2回目以降の受信要求を受けた場合、受信装置30は、受信処理状態820に遷移する。
(2)受信開始状態810
受信装置30は、受信開始状態810において、メッセージの受信の開始処理を行なう。例えば、受信装置30は、バッファ715のエントリを指し示す各種のバッファポインタを初期化する。このようなバッファポインタの一例としては、受信部700が次に受信するパルスを格納するエントリを示すストアポインタ、抽出部760が次に抽出するパルスを格納するエントリを示す出力ポインタ、検索部720が次の検索を始めるべきエントリを示すロードポインタ等が挙げられる。
また、受信装置30は、受信開始状態810において、受信部700によるパルスの受信を開始する。本実施形態に係る受信装置30は、図9に関して後述するように割り込みおよびタイマカウンタを用いてパルスを検出するので、受信開始状態810において割り込みおよびタイマカウンタの設定を行なう。
(3)受信処理状態820
受信装置30は、受信処理状態820において、通信路40からのパルスの受信処理を行なう。受信部700は、パルスを順次受信し、受信したパルスのパルス情報をバッファ715におけるストアポインタによって指定されるエントリに格納するようパルス情報格納部710に指示する。そして、受信部700は、ストアポインタをインクリメントする。
検索部720、調整部730、検出部740、および特定部750は、ストアポインタがロードポインタよりも先のエントリを示すことに応じて、ロードポインタおよびストアポインタの手前までの範囲で同期パルスを検索して特定する。
送信単位分の全メッセージのパルスがバッファ715に溜まると、受信装置30は、送信単位分の全メッセージのデータを受信側装置へと出力すべく送信処理状態830に遷移する。また、バッファ715の容量がShortフォーマットまたはEnhancedフォーマットに含まれる全メッセージを格納するのに十分でない場合、および同期パルスとして送信されたパルスが同期パルス許容範囲内のパルス周期またはパルス幅を有さずメッセージが認識できない場合等においては、送信単位分のパルスがバッファ715に溜まる前に、バッファ715がバッファフルとなる(すなわちストアポインタが出力ポインタに追いつく)ことがある。この場合、受信装置30は、送信単位分の全メッセージのパルスがバッファ715に溜まっていなくても、バッファフルとなったことに応じて、これまでに溜まった分のデータを受信側装置へと出力すべく一旦送信処理状態830に遷移する。この場合、受信装置30は、送信単位の一部についてのデータを受信側装置へと出力した後に受信処理状態820に戻り、送信単位分の最終データに対応するパルスまでバッファ715に溜まったことに応じて、残りのデータを受信側装置へと出力すべく再度送信処理状態830に遷移する。
(4)送信処理状態830
受信装置30は、送信処理状態830において、バッファ715に溜まったパルスに応じたデータを受信側装置へ送信する送信処理を行なう。抽出部760は、バッファ715における出力ポインタが指すエントリから順に、同期パルスとして特定されたパルスを見つけてメッセージを抽出する。データ出力部770は、抽出されたメッセージに含まれる受信データを受信側装置に出力する。
送信単位分の全メッセージのデータを出力すべく送信処理状態830に遷移してきた場合には、受信装置30は、送信単位分の全メッセージのデータを受信側装置へと送信し終えたことに応じてアイドル状態800に遷移する。バッファフルによって送信処理状態830に遷移してきた場合には、受信装置30は、送信単位の一部についてのデータを受信側装置へと送信してバッファフルを解消した後、残りのデータについてのパルスを受信すべく受信処理状態820に遷移する。ここで受信装置30は、バッファ715に溜まっている全てのメッセージに含まれるデータを受信側装置へと送信して、バッファ715をなるべく空に近い状態としてよい。
送信単位の一部のデータを受信側装置へと出力済で残りのデータを出力すべく送信処理状態830に遷移してきた場合には、受信装置30は、残りの全メッセージのデータを受信側装置へと送信し終えたことに応じてアイドル状態800に遷移する。
本実施形態においては、1ティックの長さが3us等であり、パルス周期は最小で48us(12+4ティック)であるから、受信側装置に対するデータ出力に伴う情報処理を行なう時間的余裕が十分にある。このため、受信装置30は、1パルス分の受信待ちの間にバッファフルを解消すべく一旦送信処理状態830に遷移した後に受信処理状態820に戻ることができる。時間的余裕がない受信装置30においては、受信処理状態820および送信処理状態830を並列にまたは並行して実行可能としてよい。
図9は、本実施形態に係る受信装置30の受信動作のフローを示す。本図の例において、受信装置30は、マイクロコントローラ等のプロセッサ、メモリ、および割込みコントローラ等を有するコンピュータに受信プログラムを実行させ、コンピュータを受信装置30内の各構成要素として機能させることにより実現されてよい。受信部700は、コンピュータの割り込み機能およびタイマカウンタ機能を用いて受信処理を行なう。
受信装置30は、図8の受信開始状態810において、受信信号の立ち上がりまたは立ち下がりの少なくとも一方を検出したことに応じて割り込みを発生するように割込コントローラを設定する。これにより、受信部700は、受信信号の立ち上がりまたは立ち下がりの少なくとも一方を検出したことに応じて割り込みを発生する。本実施形態に係る受信部700は、受信信号の立ち下がり(論理Hから論理Lへの変化)を検出したことに応じて割り込みを発生する。これにより、受信部700は、図2における、同期パルスの立ち下がり、ステータスパルスの立ち下がり、ファースト1・データおよびファースト2・データの各データパルスの立ち下がり、CRCパルスの立ち下がり、およびポーズパルスの立ち下がりの各タイミングで割り込みを発生する。受信部700は、割り込み同士の間の期間をタイマカウンタで測定することにより、各パルスのパルス周期を測定することができる。これに代えて、受信部700は、受信信号の立ち上がりに応じて割り込みを発生してもよい。また、受信部700は、受信信号の立ち上がりおよび立ち下がりの両方で割り込みを発生して、パルス幅を測定するようにしてもよい。
本実施形態に係る受信部700は、タイマカウンタの初期値を、最大値に設定し、タイマカウンタの1単位時間毎にダウンカウントさせる。例えば、タイムカウント値が16ビットの場合、受信部700は、タイムカウント値の初期値を0xFFFF(16進数のFFFF)とする。これにより、タイマカウンタがカウントした時間の長さは、タイムカウント値の2の補数となる。タイマカウンタの1単位時間は、例えば50ns等、1ティックの時間と比較して相当小さくてよい。
受信部700は、図8の受信処理状態820において、図9に示した割込処理を実行する。S900において、受信部700は、受信信号の立ち下がりを検出したことに応じて割り込みを発生し、割込処理を開始する。S905において、受信部700は、タイマカウンタによるタイムカウントを停止させる。
S910において、受信部700は、タイマカウンタのタイムカウント値を読み出して、ワーク変数(作業用変数)workに代入する。S915において、受信部700は、ワーク変数workの2の補数をとり、受信信号の前回の立ち下がり後タイマカウンタを初期値に設定してからS905においてタイムカウントを停止させるまでのカウント数を算出する。このカウント数は、パルス周期を示すパルス情報の一例である。
S920において、受信部700は、ワーク変数workの値(カウント数)を、バッファ715に格納することをパルス情報格納部710に指示する。これを受けて、パルス情報格納部710は、バッファ715におけるストアポインタが指すエントリにカウント数を格納し、ストアポインタを進める。これにより、パルス情報格納部710は、割り込みの発生間隔に応じたパルス周期またはパルス幅を示すパルス情報をバッファ715に格納することができる。
S925において、受信部700は、バッファ715がバッファフルとなったか否かを検査する。受信部700は、ストアポインタが、バッファ715の出力ポインタ、すなわち次にデータを出力すべきパルス情報のエントリを指すポインタに追いついたことに応じてバッファフルとなったと判定する。これに代えて、受信部700は、空きエントリ数が下限値未満となったことに応じてバッファフル相当と判定してもよい。受信部700は、バッファフルとなった場合には、S930において、タイマカウンタのタイマ処理を停止し、データ取得を停止する。
S935において、受信部700は、次の割り込みまでの時間をカウントするべくタイマカウント値を最大値に初期化する。S940において、受信部700は、タイマカウンタによるタイムカウントを開始し、受信信号の今回の立ち下がりから次回の立ち下がりまでの時間の計測を開始する。
S945において、受信部700は、割込コントローラが有する割込フラグをクリアする。S950において、受信部700は、割込処理ルーチンから割込元の処理ルーチンへと復帰する。
以上に示した受信装置30によれば、マイクロコントローラ等の割り込み機能を活用して受信信号のパルス周期またはパルス幅を検出し、バッファ715に格納することができる。このため、受信装置30(または受信装置30および受信側装置を含む装置)が元々通信処理のためにマイクロコントローラ等を有している場合には、通信路40からの信号の受信のためにハードウェア構成の追加を最小限に抑えることができる。
図10は、本実施形態に係る受信装置30における同期パルスの検索フローを示す。本図の例において、受信装置30は、マイクロコントローラ等のプロセッサおよびメモリを有するコンピュータに受信プログラムを実行させ、コンピュータを受信装置30内の各構成要素として機能させることにより実現されてよい。受信装置30内の検索部720、調整部730、検出部740、および特定部750は、コンピュータの各種機能を用いて同期パルスの検索処理を行なう。
S1000において、検索部720は、バッファ715内のロード位置にあるエントリ(ロードカウンタによって指定されるエントリ)のパルス情報をワーク変数workに代入する。このワーク変数workは、図9に示したワーク変数と異なるものであってもよい。S1005において、検索部720は、バッファ715内のロード位置の次のエントリのパルス情報をワーク変数work2に代入する。
S1010において、検索部720は、ワーク変数workが示すパルス情報が、同期パルス許容範囲内であるか否かを判定する。例えば、同期パルスとして許容されるパルス周期の誤差±20%である場合、検索部720は、56ティック±20%、すなわち134.4us(56×3us×0.8)~201.6us(56×3us×1.2)を同期パルス許容範囲として用いてよい。なお、パルス情報がタイマカウンタの1単位時間を基準として表現されている場合には、検索部720は、タイマカウンタの1単位時間を基準として表現した同期パルス許容範囲を用いてよい。
S1010において、ワーク変数が示すパルス情報が同期パルス許容範囲内でない場合、検索部720は、対象のパルス情報が同期パルスのものでないと判定し、S1040に処理を進める。S1040において、検索部720は、ロードカウンタをインクリメントすることによって検索処理の対象とするロード位置をインクリメントする。インプリメンテーションによっては、検索部720は、同期パルス許容範囲内でないと判断したパルス情報に対応付けて、同期パルスでないことを示す情報をバッファ715に格納するようにしてもよい。
S1045において、次に検査すべきエントリがバッファ715内に残っている場合(すなわちロードポインタが出力ポインタに追いついていない場合)、検索部720は、処理をS1000に進めて次のエントリに格納されたパルス情報の検査を進める。S1045において、次に検査すべきエントリがバッファ715内に残っていない場合には、検索部720は、S1050において、同期パルスが検出されなかったことを検索処理の呼出元のルーチンに通知する。
S1010において、ワーク変数が示すパルス情報が同期パルス許容範囲内である場合、検索部720は、バッファ715内のロード位置にあるエントリのパルスが同期パルスの候補となる第1パルスであると判定する。この場合、S1015において、調整部730は、ワーク変数workが示すパルス情報を変数sync_countに代入し、ワーク変数workが示すパルス情報を同期パルスの規定ティック数(例えば56)で割った値を変数base_countに代入する。この変数base_countは、第1パルスのパルス周期を基準として求めた1ティックの時間(タイマカウンタのカウント数)となる。このようにして、調整部730は、第1パルスについてのパルス情報が示すパルス周期またはパルス幅と同期パルスの基準周期または基準幅とに基づいて、1ティックの時間を調整する。本図の例においては、調整部730は、第1パルスについてのパルス情報が示すパルス周期の、同期パルスの基準周期に対する比率に基づいて、1ティックの時間を調整する。パルス情報としてパルス幅を用いる場合には、調整部730は、第1パルスについてのパルス情報が示すパルス幅の、同期パルスの基準パルス幅に対する比率に基づいて、1ティックの時間を調整してよい。
S1020において、調整部730は、ワーク変数work2を変数base_countで割った値をワーク変数work3に代入する。ワーク変数work2は、第1パルスに対して予め定められた相対位置(本例において第1パルスの次)にある第2パルスのパルス情報であり、ワーク変数work3は、第1パルスが同期パルスの規定パルス周期を有する前提で求めた第2パルスのパルス周期(ティック数)となる。
S1025において、検出部740は、ワーク変数work3の値が、データパルス許容範囲内のティック数(16~31ティック)の範囲内か否かを検出する。これにより、検出部740は、第2パルスのパルス情報が、調整部730が1ティックの時間を調整することによって調整されたデータパルス許容範囲内か否かを検出することができる。第2パルスのパルス情報がデータパルス許容範囲内でない場合、検出部740は、第1パルスが同期パルスでないと判断し、処理をS1040に進める。
S1025において第2パルスのパルス情報がデータ許容範囲内の場合、特定部750は、S1030において第1パルスを同期パルスとして特定する。特定部750は、バッファ715内のロードポインタが指し示すエントリに、第1パルスが同期パルスであることを示す情報を格納する。一例として、特定部750は、バッファ715のエントリに含まれる同期パルスフラグを1にセットすることにより、第1パルスが同期パルスであることを示してよい。S1035において、特定部750は、同期パルスが検出されたことを検索処理の呼び出し元のルーチンに通知する。
以上に示した受信装置30によれば、同期パルスを検出する条件として、同期パルスに対して予め定められた相対位置にあるパルスがデータパルス許容範囲内のパルス周期またはパルス幅を有することも加えることができ、より高い精度で同期パルスを検出することができる。本図の例において、検出部740は、同期パルスの次のパルス(図2におけるステータスパルス)のパルス情報がデータパルス許容範囲内にあるかを判断する。これに代えて、検出部740は、例えばファースト1・データまたはファースト2・データ内のデータパルス、若しくはCRCパルスのパルス情報がデータパルス許容範囲内にあるかを判定条件に加えてよい。また、検出部740は、メッセージに含まれる同期パルス以降の2以上のパルスのパルス情報がそれぞれデータパルス許容範囲内にあるかを判定条件に加えてもよい。受信装置30は、複数のパルスのパルス情報を一旦バッファ715に格納してから同期パルスの検出処理を行なう構成をとるので、ハードウェアによるパルスの逐次処理と比較して、同期パルスおよび他のパルスを含む2以上のパルスのパルス周期またはパルス幅を検査して同期パルスを検出する情報処理を実現しやすくなる。
また、以上に示した受信装置30によれば、同期パルスの候補となる第1パルスのパルス情報に応じてデータパルス許容範囲を調整することができる。これにより、送信装置20が送信するパルスにおける1ティックの時間長が受信装置30における1ティックの時間長に対して相対的に誤差がある場合であっても、受信装置30は、同期パルスのパルス周期またはパルス幅に基づいて1ティックの時間長を調整してからデータパルスのパルス周期またはパルス幅を検査して、高い精度で同期パルスを検出できる。なお、送信装置20および受信装置30が同一クロックに基づいて動作する場合においては、受信装置30は、調整部730を備えない構成をとってもよい。
図11は、本実施形態に係るバッファ715に格納される内容の一例を示す。バッファ715は、複数のバッファエントリを有する。本図においては、各バッファエントリにエントリ番号0~を付している。各バッファエントリは、通信路40から受信するパルスのそれぞれに対して順次割り当てられ、対象パルスのパルス情報と、対象パルスが同期パルスであるか否かを示す情報(本図においては同期パルスフラグ)を含む。
パルス情報は、検索部720によって受信された対象パルスのパルス周期またはパルス幅を示す。本図の例において、パルス情報は、対象パルスのパルス周期を示す。本図においては、説明の便宜上パルス情報はティック数で表現されているが、バッファ715は、パルス情報として、タイマカウンタのカウント値等の他の形式で表現された情報を格納してよい。
同期パルスフラグは、特定部750によって格納され、対象パルスが同期パルスと判定された場合に1、対象パルスが同期パルスでないと判定された場合に0に設定される。なお、本図の例は、図2に示したメッセージの各パルスが、バッファ715のエントリ番号1~10に格納された状態を示す。
図12は、本実施形態に係る受信装置30のデータ出力動作のフローを示す。本図の例において、受信装置30は、マイクロコントローラ等のプロセッサおよびメモリを有するコンピュータに受信プログラムを実行させ、コンピュータを受信装置30内の各構成要素として機能させることにより実現されてよい。受信装置30内の抽出部760およびデータ出力部770は、コンピュータの各種機能を用いてバッファ715内に格納された各パルスに応じたデータを受信側装置に出力するデータ出力処理を行なう。
S1200において、抽出部760は、バッファ715から次にデータ出力処理を行うべきメッセージの同期パルスを検出する。本実施形態に係る抽出部760は、バッファ715の出力ポインタによって指し示されるエントリから順に出力ポインタを進めながらバッファ715を検索して、同期パルスである旨の情報が記録されたエントリ(同期パルスフラグ=1のエントリ)を検出する。これにより、抽出部760は、前回送信したメッセージの後にある同期パルス以外のパルスを破棄する。なお、同期パルスである旨の情報が記録されたエントリがバッファ715に格納されていない場合には、抽出部760は、同期パルスに対応するエントリがバッファ715に格納されるまで待つ。
S1210において、抽出部760は、バッファ715に格納された、検出した同期パルスから始まる1メッセージ分のパルスをメッセージに含まれるパルスとして検出する。1メッセージ分のエントリがバッファ715に格納されていない場合には、抽出部760は、1メッセージ分のエントリがバッファ715に格納されるまで待つ。
S1220において、抽出部760は、バッファ715内に送信単位分の全メッセージのパルスを検出したか否かを判定する。抽出部760は、送信単位の最初にShortフォーマットのメッセージを検出した場合、16メッセージ分の全パルスを検出したことに応じて送信単位分の全パルスを検出したと判定する。抽出部760は、送信単位の最初にEnhancedフォーマットのメッセージを検出した場合、フォーマットに応じて予め規定された数のメッセージの全パルスを検出したことに応じて送信単位分の全パルスを検出したと判定する。抽出部760は、送信単位の最初にSlowチャネルを含まないメッセージを検出した場合、およびSlowチャネルを使用しない設定が適用されている場合には、1メッセージ分の全パルスを検出したことに応じて送信単位分の全パルスを検出したと判定してもよい。抽出部760は、送信単位分の全パルスを検出したと判定したことに応じて処理をS1230に進める。この処理の遷移は、図8における、送信単位のデータ受信済に伴う受信処理状態820から送信処理状態830への状態遷移に相当する。抽出部760は、送信単位分の全パルスを検出していないと判定したことに応じて処理をS1250に進める。
S1230において、抽出部760は、送信単位分の全メッセージのそれぞれについて、同期パルスを基準として1メッセージ分のパルスを各メッセージに含まれるパルスとしてバッファ715から抽出する。そして、抽出部760は、各パルスについてバッファ715に格納されたパルス情報をデータ出力部770に供給する。本実施形態に係る抽出部760は、メッセージ毎に、バッファ715の出力ポインタを進めながら1メッセージ分のパルスのパルス情報をバッファ715から読み出す。データ出力部770は、送信単位分の全メッセージのパルス情報に応じた受信データを受信側装置へ送信する。データ出力部770は、送信単位分の全メッセージのパルス情報に応じた受信データを受信側装置へ送信する。
S1240において、抽出部760は、バッファ715から送信済のデータに関するメッセージを削除する。ここで、本実施形態に係る抽出部760のように、バッファ715の出力ポインタを進めながら全メッセージのパルスを読み出す場合には、抽出部760は、出力ポインタを1メッセージ分進めた時点でそのメッセージを削除することとなる。抽出部760は、送信単位分のメッセージを受信側装置へと送信し終えると、当該送信単位についてのデータ出力動作を終了する。抽出部760は、データ出力動作の終了に伴って、受信装置30の状態をアイドル状態800へと遷移させる。ここで、受信側装置が次の創始単位のメッセージを受信することを受信装置30に指示した場合には、受信装置30は、アイドル状態800から受信処理状態820へと状態遷移し、本図のフローを実行する。
S1220において送信単位分の全パルスを検出していないと判定した場合、S1250において、抽出部760は、バッファ715がバッファフルとなったかどうかを検査する。バッファ715がバッファフルでない場合、抽出部760は、処理をS1200へと進めて送信単位内の次のメッセージを検出する。バッファ715がバッファフルとなった場合、抽出部760は、送信単位未満のデータを受信側装置へと出力してバッファ715を空けるために、S1260へと処理を進める。この処理の遷移は、図8の受信処理状態820から送信処理状態830への状態遷移に相当する。
S1260において、抽出部760は、バッファ715に溜まった送信単位未満となる1または複数のメッセージのそれぞれについて、同期パルスを基準として1メッセージ分のパルスを各メッセージに含まれるパルスとして抽出する。そして、抽出部760は、各パルスについてバッファ715に格納されたパルス情報をデータ出力部770に供給する。本実施形態に係る抽出部760は、メッセージ毎に、バッファ715の出力ポインタを進めながら1メッセージ分のパルスのパルス情報をバッファ715から読み出す。データ出力部770は、送信単位未満となる1または複数のメッセージのパルス情報に応じた受信データを受信側装置へ送信する。
S1270において、抽出部760は、S1240と同様に、バッファ715から送信済のデータに関するメッセージを削除する。抽出部760は、処理をS1200へと進めて送信単位の残りのメッセージの検出を行う。この処理の遷移は、図8の送信処理状態830から受信処理状態820への状態遷移に相当する。
以上に示した受信装置30によれば、受信装置30が受信したメッセージを一旦バッファ715へと格納し、送信単位分のデータを揃えて受信側装置へと送信する。また、同期パルスが検出できないメッセージを受信してバッファ715が消費された等によって送信単位分のメッセージがバッファ715に格納されずにバッファフルとなった場合においても、受信装置30は、送信単位未満となるメッセージを一旦受信側装置へと送信することにより、次のメッセージを受信できるようにすることができる。なお、受信装置30は、送信単位分のメッセージを受信側装置に送信し終える前に、バッファフルを複数回検出し、送信単位の一部のメッセージを受信側装置へと送信してもよい。
なお、受信装置30は、ShortフォーマットおよびEnhancedフォーマットのように、第2データを分割して第2データパルスにエンコードした複数のメッセージを含むメッセージ群を受信した場合においては、S1220に関して示したように、メッセージ群に含まれる全メッセージを送信単位としてよい。各メッセージは、同期パルス、第1データの値に応じたデータパルス幅を有する第1データパルス(例えばファースト1・データパルスおよびファースト2・データパルス)、および、第2データを分割してエンコードした部分データの値に応じたデータパルス幅を有する第2データパルス(例えばステータスパルス)を含む。
この場合、抽出部760は、S1220において、バッファ715に格納された各メッセージのパルス情報に基づいて、第2データを分割してエンコードした複数のメッセージを含むメッセージ群の先頭メッセージを検出して、メッセージ群に含まれる複数のメッセージのパルスを抽出してよい。具体的には、抽出部760は、バッファ715に格納された一連のメッセージのそれぞれのフォーマットをチェックして、いずれのメッセージがメッセージ群の先頭メッセージであるかを特定する。
本実施形態に係る抽出部760は、各メッセージのステータスパルスにエンコードされたシリアルデータビット3をチェックして、各メッセージが図4から図6に示したフォーマットのいずれの位置にあるかを特定する。例えば、抽出部760は、あるメッセージAのシリアルデータビット3が1であり、メッセージAに続く15個のメッセージのシリアルデータビット3が0であることを確認した場合、メッセージAがShortフォーマットのメッセージ群の先頭メッセージであることを検出し、メッセージAに続く15個のメッセージがShortフォーマットの対応する位置にあるメッセージであることを特定する。また例えば、抽出部760は、あるメッセージBから6メッセージ連続でシリアルデータビット3が1であり、その後2つのメッセージのシリアルデータビット3が0である場合に、メッセージBがEnhancedフォーマットでコンフィグレーションビットが0である図5のメッセージ群の先頭メッセージであることを検出し、メッセージBに続く17個のメッセージがEnhancedフォーマット(コンフィグレーションビット=0)の対応する位置にあるメッセージであることを特定する。ここで、抽出部760は、メッセージBを1番目としたときに13番目および18番目のメッセージのシリアルデータビット3が0であることを更に確認してもよい。
このようにして、抽出部760は、バッファ715に格納された2以上のメッセージのパルス情報を用いて、複数のメッセージを含むメッセージ群のフォーマットをチェックすることができ、メッセージ群の先頭メッセージを誤検出して誤った第2データを送信側装置に供給する可能性を大幅に低減することができる。
送信単位に含まれるべき全メッセージをチェックして先頭メッセージを特定するために、抽出部760は、メッセージ群に含まれるべきメッセージの数よりも多いメッセージがバッファ715に格納されたことに応じて、メッセージ群の先頭メッセージを検出する処理を行ってもよい。例えばShortフォーマットおよびEnhancedフォーマットのように、フォーマットによってメッセージ群に含まれるメッセージの数が異なる場合には、抽出部760は、メッセージ数が最大のフォーマット分の全メッセージに相当する数のパルスがバッファ715に格納されてからメッセージ群の先頭メッセージを検出する処理を行ってもよい。
また、抽出部760は、メッセージ群に含まれるべきメッセージの数の2倍-1以上に予め定められた数以上のメッセージがバッファ715に格納されたことに応じて、メッセージ群の先頭メッセージを検出してもよい。メッセージ群に含まれるメッセージのほぼ2倍のメッセージがバッファ715に格納されたことに応じて先頭メッセージの検出を行うことで、抽出部760は、大きな通信エラーが発生していない限り確実にメッセージ群の先頭メッセージを検出し、かつその先頭メッセージを含むメッセージ群の全メッセージの全パルスをバッファ715から抽出することができる。
以上のように、メッセージ群の全メッセージを抽出してから第2データを送信側装置へと供給する場合、抽出部760は、第1データについては1メッセージ単位等より短い送信単位でバッファ715から抽出し、第2データよりも先に送信側装置へと供給するようにしてもよい。
図13は、本実施形態に係るデバイス1300の構成を示す。デバイス1300は、温度センサ1310および圧力センサ1315等のセンサによって検出したセンスデータを通信路40を介して受信装置30へと送信するセンサデバイスである。すなわち、本実施形態に係るデバイス1300は、受信装置30へと送信すべきセンスデータ等のデータを発生する図1の送信側装置としての機能と、発生したデータを受信装置30へと送信する図1の送信装置20としての機能とを有する。デバイス1300は、一例としてIC(集積回路)またはLSI(大規模集積回路)等により実現されてよく、1パッケージとして実装されてよい。これに代えて、デバイス1300は、例えば温度センサ1310のチップ、圧力センサ1315のチップ、および処理ユニット1335等を含む複数のチップを基板上に実装したようなマルチチップモジュールとして実現されてもよい。
デバイス1300は、温度センサ1310と、圧力センサ1315と、セレクタ1320と、ADC1325(ADコンバータ1325)と、不揮発性メモリ1330と、発振器1332と、処理ユニット1335とを備える。温度センサ1310は、デバイス1300の外部の温度を検出し、検出した温度に応じたセンスデータを出力する。圧力センサ1315は、デバイス1300の外部の圧力を検出し、検出した圧力に応じたセンスデータを出力する。デバイス1300は、これらに代えて、またはこれらに加えて、他の1または複数種類のセンサを備えてもよい。
セレクタ1320は、温度センサ1310および圧力センサ1315のセンスデータ出力に接続され、処理ユニット1335からの制御に応じて温度センサ1310および圧力センサ1315のいずれのセンスデータをADC1325へと供給するかを切替える。セレクタ1320は、他のセンサおよびデバイス1300に外部接続されるサーミスタ等の外部センサの少なくとも1つにも接続されてよく、これらからのセンスデータを含めてADC1325に供給するセンスデータを切替え可能であってよい。ADC1325は、セレクタ1320に接続され、セレクタ1320によって選択されたアナログのセンスデータをデジタルのセンスデータに変換する。
不揮発性メモリ1330は、デバイス1300が使用する各種の情報を記憶する。本実施形態に係る不揮発性メモリ1330は、例えば4Kビット等といった全記憶セルの一括消去が可能であるが、一部分のみの書き込みができないフラッシュメモリまたはEEPROM等である。発振器1332は、デバイス1300を動作させるクロック信号を出力する。本図において発振器1332は、クロック信号を処理ユニット1335に供給する。発振器1332は、必要に応じてデバイス1300内のセンサ、セレクタ1320、ADC1325、および不揮発性メモリ1330の少なくとも1つのもクロック信号を供給してもよい。
処理ユニット1335は、ADC1325、不揮発性メモリ1330、および発振器1332に接続される。処理ユニット1335は、発振器1332からのクロック信号に応じて動作し、ADC1325からセンスデータを受け取って、通信路40(本例においてSENT通信路)を介して受信装置30へと送信する。また、処理ユニット1335は、デバイス1300内の回路の調整、センスデータの補正、および不揮発性メモリ1330の読み書き等の処理を行う。
本実施形態に係る処理ユニット1335は、一例としてマイクロコントローラ等におけるプログラム実行を含む回路により実現される。これに代えて、処理ユニット1335は、デバイス1300専用の回路によって実現されてもよい。
処理ユニット1335は、設定部1345と、補正部1350と、データ変換部1355と、第1通信部1360と、第2通信部1365と、メモリ制御部1370とを有する。設定部1345は、デバイス1300の初期化処理において、処理ユニット1335におけるメインメモリ内の設定パラメータおよび設定可能な各種のレジスタ等を設定する。本実施形態に係る設定部1345は、デバイス1300の初期化処理において、不揮発性メモリ1330に予め書き込まれた各種の設定値をメモリ制御部1370を介して読み出して、処理ユニット1335における対応するメモリ領域およびレジスタ等に設定する。
補正部1350は、例えば予め定められた周期でセレクタ1320を切替えて、温度センサ1310からの温度センスデータおよび圧力センサ1315からの圧力センスデータを取得する。取得したセンスデータは、デバイス1300の個体特有の誤差を有していることから、補正部1350は、取得したセンスデータの種類に応じた補正を行う。ここで、補正部1350は、設定部1345によって設定された補正パラメータを用いて補正処理を行う。
データ変換部1355は、補正部1350によって補正されたセンスデータを通信路40へと送信するデータ形式に変換する。データ変換部1355は、パラレル-シリアル変換、送信するメッセージのフォーマットへの変換、およびその他の必要なデータ変換を行う。
第1通信部1360は、第1シリアルインターフェイスの一例であり、データ変換部1355によってメッセージのフォーマットに変換されたデータを、通信路40へと送信する。本実施形態に係る第1通信部1360は、一例としてSENT用の送信インターフェイスであり、デバイス1300の実使用時に検出されるセンスデータを含むメッセージを、SENT通信路を介して受信装置30へと送信する。このようなメッセージは、センスデータを図2に示したファースト1データおよびファースト2データの少なくとも一方に含んでよい。ここで、データ変換部1355は、当該デバイス1300の個体に固有の製造固有データ等を例えばSENTメッセージのSlowチャネルにエンコードしてもよく、第1通信部1360は製造固有データ等がエンコードされたメッセージを通信路40へと送信してもよい。
第2通信部1365は、第2シリアルインターフェイスの一例であり、主にデバイス1300の製造中に使用される通信インターフェイスである。本実施形態に係る第2通信部1365は、双方向シリアルインターフェイスであってよく、一例としてI2C通信インターフェイスである。第2通信部1365は、デバイス1300の出荷前に不揮発性メモリ1330に設定しておくべき各種の情報を不揮発性メモリ1330へと書き込むことを指示するメモリ書込コマンドをデバイス1300の製造装置(または製造現場に配置された書込装置)から受け取ったことに応じて、書き込み対象の情報をメモリ制御部1370を介して不揮発性メモリ1330に書き込む。このメモリ書込コマンドは、不揮発性メモリ1330への書き込み要求の一例である。また、第2通信部1365は、不揮発性メモリ1330のメモリ読出コマンドを製造装置等から受け取ったことに応じて、メモリ制御部1370を介して不揮発性メモリ1330の内容を読み出して製造装置等へと返信する。また、第2通信部1365は、デバイス1300内における不揮発性メモリ1330以外のレジスタ等に対する書き込みまたは読み出しを指示するレジスタ書込コマンドまたはレジスタ読出コマンドを製造装置等から受け取ったことに応じて、レジスタ等に対する書き込みまたは読み出しを行う。
初期化処理中に設定部1345が設定する全てのパラメータ値およびレジスタ値等をデバイス1300の出荷前に不揮発性メモリ1330に書き込んでおけば、デバイス1300は、実使用環境においてスタンドアローンで最適な動作を行う。したがって、デバイス1300の出荷後には、デバイス1300は、通常は第2通信部1365を介した通信を行う必要性はない。ただし、デバイス1300の供給を受けて自動車等の装置に組み込む製造業者が、供給されたデバイス1300の設定を自社の装置向けに変更したい場合等には、第2通信部1365を介した通信機能を利用してもよい。
メモリ制御部1370は、不揮発性メモリ1330の一括消去、メモリ書き込みおよびメモリ読み出しを制御する。メモリ制御部1370は、第2通信部1365がI2C通信インターフェイスから受け取った一括消去コマンドに応じて、不揮発性メモリ1330を一括消去する。また、メモリ制御部1370は、第2通信部1365がI2C通信インターフェイスから受け取ったメモリ書込コマンドに応じて、書き込み対象の情報またはデータを不揮発性メモリ1330へと書き込む。また、メモリ制御部1370は、第2通信部1365がI2C通信インターフェイスから受け取ったメモリ読出コマンドに応じて、不揮発性メモリ1330における読み出し対象のアドレスから情報またはデータを読み出してI2C通信インターフェイスを介して返送する。
図14は、本実施形態に係る不揮発性メモリ1330に格納される情報の一例を示す。本実施形態に係る不揮発性メモリ1330は、一括消去される記憶領域内に、調整情報、補正情報、設定情報、および製造情報等のような複数カテゴリの情報を記憶する。
調整情報は、デバイス1300内の回路を調整するための情報である。本実施形態に係るデバイス1300は、一例として、発振器1332の発振周波数を調整するための発振器調整用データ、およびADC1325の出力を調整して入力アナログ値に対してリニアな出力デジタル値を出力させるためのADC調整用データ等の調整情報を不揮発性メモリ1330に格納する。
補正情報は、温度センサ1310および圧力センサ1315が出力するセンスデータの値を補正するための情報である。本実施形態に係るデバイス1300は、一例として、温度センサ1310からのセンスデータを補正するための温度補正用データおよび圧力センサ1315からのセンスデータを補正するための圧力補正用データ等の補正情報を不揮発性メモリ1330に格納する。
設定情報は、デバイス1300における設定可能な動作仕様を設定するための情報である。デバイス1300に要求される動作仕様は、供給先によって異なりうる。デバイス1300は、デバイス1300の供給先に応じた設定を行なうための設定機能を有し、設定情報を不揮発性メモリ1330に格納しておくことで、供給先向けの製品として機能する。本実施形態に係るデバイス1300は、一例として、デバイス1300における第1通信部1360を介した通信機能を設定するための通信設定情報(図中「通信設定用データ」)を含む設定情報を不揮発性メモリ1330に格納する。このような通信設定用データは、例えばSENTプロトコルのSlowチャネルにエンコードするデータの内容を設定するために用いられる。
製造情報は、このデバイス1300の製造に関する情報である。本実施形態に係るデバイス1300は、一例として、このデバイス1300の製造に固有の製造固有データを不揮発性メモリ1330に格納する。製造固有データは、デバイス1300の製造日時、デバイス1300を切り出したウェハの識別情報、ウェハにおけるデバイス1300の位置情報、デバイス1300の製造場所情報、デバイス1300の製造者情報、およびデバイス1300の製造番号の少なくとも1つを含んでよい。
なお、デバイス1300は、調整情報、補正情報、設定情報、および製造情報の少なくとも1つを不揮発性メモリ1330内に有しない仕様であってもよい。また、デバイス1300は、例えばデバイス1300の製品名、製品番号、およびシリアル番号等の少なくとも1つのようなデバイス1300の個体を識別するための情報等の他の種類の情報も不揮発性メモリ1330に格納する仕様であってもよい。
図15は、本実施形態に係る製造システム1500の一例を示す。製造システム1500は、デバイス1300を製造し、デバイス1300の出荷前に図14に示した情報を不揮発性メモリ1330に書き込んで、製品出荷用のデバイス1300を完成させる。ここで、製造システム1500においては、製品完成までの複数の段階で不揮発性メモリ1330に書き込むべき情報が発生する。しかし、デバイス1300のサイズおよびコストを低減するために、不揮発性メモリ1330は、一括消去をすることができるが記憶領域の一部のみに対する書き込みができない。そこで、本実施形態に係る製造システム1500は、ある第1情報を不揮発性メモリ1330に書き込んだ後に、不揮発性メモリ1330に書き込むべきある第2情報を取得すると、元の第1情報が書き込まれた不揮発性メモリ1330を一旦一括消去した後に、元の第1情報および新たな第2情報を不揮発性メモリ1330に書き込む処理を行う。
製造システム1500は、デバイス製造装置1510と、製造情報書込装置1520と、デバイス情報DB1525と、検査装置1530と、調整情報書込装置1540と、評価装置1550と、補正情報書込装置1560と、設定情報書込装置1570とを備える。これらの各装置は、一体としてデバイス1300の製造に用いられ、デバイス1300の製造装置または製造装置群として機能する。
デバイス製造装置1510は、一括消去可能な不揮発性メモリ1330を有するデバイス1300を製造する。この段階では、デバイス1300は、製品として機能する必要な情報が不揮発性メモリ1330に書き込まれておらず、製造途中の中間品である。デバイス製造装置1510は、このようなデバイス1300を製造するための複数のプロセス装置を含んでよい。このようなプロセス装置の一例としては、エッチング装置、成膜装置、露光装置、ダイシング装置、ハンドラ装置、ワイヤボンディング装置、モールド装置、および検査装置等が挙げられる。
デバイス製造装置1510は、製造したデバイス1300について、製造に関する製造情報を製造情報書込装置1520に供給する。ここで、デバイス製造装置1510は、ウェハからダイシングした半導体チップを、ピッカーによってトレイに移動し、トレイからピックアップしてパッケージングする。このため、デバイス製造装置1510は、このような半導体チップの移動をトレースすることにより、各デバイス1300に含まれる半導体チップが、どのウェハのどの位置からいつ切り出されたものかを特定することができる。したがって、製造システム1500は、デバイス1300を切り出したウェハの識別情報、およびウェハにおけるデバイス1300の位置情報等のような情報を製造情報に含めることができる。
製造情報書込装置1520は、デバイス製造装置1510による製造の後にデバイス1300の第2通信部1365に接続され、デバイス製造装置1510によって製造された各デバイス1300の不揮発性メモリ1330に、デバイス製造装置1510から受け取った製造情報を書き込む。製造情報書込装置1520は、製造情報の書き込み前に不揮発性メモリ1330を一括消去して初期化してもよい。また、不揮発性メモリ1330の記憶領域全体にデータを一括書き込みする必要がある場合においては、デバイス製造装置1510から受け取った製造情報と、ダミーの補正情報、設定情報、および製造情報等の未取得の情報とを含む一括書込データを生成して、第2通信部1365を介して不揮発性メモリ1330に書き込む。また、製造情報書込装置1520は、デバイス1300の不揮発性メモリ1330への製造情報の書き込みに応じて、そのデバイス1300に対応付けて製造情報をデバイス情報DB1525に登録する。
デバイス情報DB1525は、デバイス製造装置1510が製造した複数のデバイス1300のそれぞれに対応付けて、そのデバイス1300の不揮発性メモリ1330に書き込んだ情報を記憶する。本実施形態において、各デバイス1300内の不揮発性メモリ1330は一括消去されることから、製造中のある段階においてある第1情報を不揮発性メモリ1330に書き込んだとしても、別の段階において別の第2情報を不揮発性メモリ1330に書き込む前に不揮発性メモリ1330を一括消去する必要がある。このため、デバイス情報DB1525は、各デバイス1300に対応付けて不揮発性メモリ1330に書き込んだ情報を記憶しておく。
検査装置1530は、デバイス1300を検査し、デバイス1300の検査結果に応じた調整情報を生成する。例えば、検査装置1530は、発振器1332を動作させて発振周波数を計測し、計測結果に応じて発振器1332の発振周波数が目標周波数に対して予め定められた誤差範囲内となるように調整するための発振器調整データを生成する、検査装置1530は、例えば予め定めた測定期間の間におけるクロック信号の分周パルスをデバイス1300内のカウンタによって計測させる等により、発振器1332の発振周波数を計測することができる。
また例えば、検査装置1530は、ADC1325を動作させて入力アナログ値に対する出力アナログ値を測定し、測定結果に応じてADC1325の出力を調整するためのADC調整用データを生成する。検査装置1530は、例えばデバイス1300内の1または複数の定電圧をADC1325に順次入力するようにデバイス1300を設定し、これに応じてADC1325が出力する出力デジタル値を第2通信部1365を介して読み出す。検査装置1530は、このようにして得られた複数の出力デジタル値を用いて、ADC調整用データを生成してよい。また、デバイス1300が外部センサからの入力端子を有する場合には、検査装置1530は、この入力端子を介して1または複数の電圧をデバイス1300に入力し、各電圧に応じてADC1325が出力する出力デジタル値を用いてADC調整用データを生成してもよい。検査装置1530は、生成した調整情報を調整情報書込装置1540へと供給する。
調整情報書込装置1540は、検査装置1530による検査の後にデバイス1300に接続され、検査された各デバイス1300について、検査装置1530から受け取った調整情報をデバイス1300の不揮発性メモリ1330に書き込む。本実施形態において、調整情報書込装置1540は、調整情報の書き込み前にすでに情報(この段階では製造情報)が書き込まれたデバイス1300の不揮発性メモリ1330を一旦一括消去する。調整情報書込装置1540は、一括消去によって消去された情報についてはデバイス情報DB1525に登録された情報を取得して、新たに取得された情報(この段階では調整情報)と共に、第2通信部1365を介してデバイス1300の不揮発性メモリ1330に書き込む。また、調整情報書込装置1540は、デバイス1300の不揮発性メモリ1330への調整情報の書き込みに応じて、そのデバイス1300に対応付けて調整情報をデバイス情報DB1525に登録する。
評価装置1550は、デバイス1300のセンサを評価し、デバイス1300のセンサの評価結果に基づいて、補正情報を生成する。例えば、評価装置1550は、デバイス1300の外気温を様々に変化させて、温度センサ1310からのセンスデータを第1通信部1360を介して受け取る。評価装置1550は、このようにして取得した様々な温度下におけるセンスデータを用いて、温度センサ1310からのセンスデータの値を補正するための温度補正用データを生成する。また例えば、評価装置1550は、デバイス1300の外気圧を様々に変化させて、圧力センサ1315からのセンスデータを第1通信部1360を介して受け取る。評価装置1550は、このようにして取得した様々な気圧下におけるセンスデータを用いて、圧力センサ1315からのセンスデータの値を補正するための圧力補正用データを生成する。評価装置1550は、生成した調整情報を補正情報書込装置1560へと供給する。
補正情報書込装置1560は、評価装置1550による評価の後にデバイス1300に接続され、評価された各デバイス1300について、評価装置1550から受け取った補正情報をデバイス1300の不揮発性メモリ1330に書き込む。本実施形態において、補正情報書込装置1560は、補正情報の書き込み前に、すでに情報(この段階では製造情報および調整情報)が書き込まれたデバイス1300の不揮発性メモリ1330を一旦一括消去する。補正情報書込装置1560は、一括消去によって消去された情報についてはデバイス情報DB1525に登録された情報を取得して、新たに取得された情報(この段階では補正情報)と共に、第2通信部1365を介してデバイス1300の不揮発性メモリ1330に書き込む。また、補正情報書込装置1560は、デバイス1300の不揮発性メモリ1330への補正情報の書き込みに応じて、そのデバイス1300に対応付けて補正情報をデバイス情報DB1525に登録する。
設定情報書込装置1570は、全製品に共通して不揮発性メモリ1330に書き込むべき製造情報、調整情報、および補正情報等の書き込みが終わった後にデバイス1300に接続され、製造システム1500の管理者からの入力等に応じて、デバイス1300の供給先に応じた設定を行なうための設定情報を取得する。本実施形態において、設定情報書込装置1570は、設定情報の書き込み前に、すでに情報(この段階では製造情報、調整情報、および補正情報)が書き込まれたデバイス1300の不揮発性メモリ1330を一旦一括消去する。補正情報書込装置1560は、一括消去によって消去された情報についてはデバイス情報DB1525に登録された情報を取得して、新たに取得された情報(この段階では設定情報)と共に、第2通信部1365を介してデバイス1300の不揮発性メモリ1330に書き込む。また、補正情報書込装置1560は、デバイス1300の不揮発性メモリ1330への設定情報の書き込みに応じて、そのデバイス1300に対応付けて設定情報をデバイス情報DB1525に登録する。
以上に示した製造システム1500によれば、不揮発性メモリ1330への書き込みに一括消去が必要な場合においても、製造工程の複数箇所で発生する情報を、不揮発性メモリ1330に順次書き込むことができる。なお、以上において製造システム1500は、製造情報、調整情報、補正情報、および設定情報の順に不揮発性メモリ1330に書き込むが、これに代えて製造システム1500は、製造工程に合わせて任意の順序で各種情報を不揮発性メモリ1330に書き込んでよい。
以上に示した製造システム1500においては、製造情報書込装置1520、調整情報書込装置1540、補正情報書込装置1560、および設定情報書込装置1570は、不揮発性メモリ1330への情報の書き込みに応じて、書き込んだ情報をデバイス情報DB1525に登録する。これに代えて、デバイス製造装置1510、検査装置1530、評価装置1550、および設定情報書込装置1570の少なくとも1つは、生成した情報を一旦デバイス情報DB1525に登録してよい。この場合、製造情報書込装置1520、調整情報書込装置1540、補正情報書込装置1560、および設定情報書込装置1570のうち対応する書込装置は、既に不揮発性メモリ1330に書き込まれた情報および新たに不揮発性メモリ1330に書き込むべき情報をデバイス情報DB1525から取得して不揮発性メモリ1330に書き込んでもよい。
また、製造情報書込装置1520、調整情報書込装置1540、補正情報書込装置1560、および設定情報書込装置1570の少なくとも1つは、接続先のデバイス1300からデバイス1300の個体を特定可能な情報(シリアル番号等)を一括消去前に読み出して、製造システム1500側で認識しているデバイス1300と合致するかを確認してもよい。これにより、製造システム1500は、あるデバイス1300のトレースに誤りが生じた場合において、そのデバイス1300に他のデバイス1300の情報を書き込むのを防ぐことができる。
また、製造システム1500は、デバイス情報DB1525を有しない構成を採ってもよい。このような構成においては、製造情報書込装置1520、調整情報書込装置1540、補正情報書込装置1560、および設定情報書込装置1570は、不揮発性メモリ1330に既に書き込まれた第1情報(元の情報)および第2情報(新たな情報)の書き込みにおいて、第1情報が書き込まれた不揮発性メモリ1330から第1情報を読み出した後に不揮発性メモリ1330を一旦一括消去し、読み出された第1情報と新たな第2情報とを不揮発性メモリ1330に書き込んでもよい。
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、(1)操作が実行されるプロセスの段階または(2)操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および/またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび/またはアナログハードウェア回路を含んでよく、集積回路(IC)および/またはディスクリート回路を含んでよい。プログラマブル回路は、論理AND、論理OR、論理XOR、論理NAND、論理NOR、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
図16は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ2200の例を示す。コンピュータ2200にインストールされたプログラムは、コンピュータ2200に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の1または複数のセクションとして機能させることができ、または当該操作または当該1または複数のセクションを実行させることができ、および/またはコンピュータ2200に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ2200に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、CPU2212によって実行されてよい。
本実施形態によるコンピュータ2200は、CPU2212、RAM2214、グラフィックコントローラ2216、およびディスプレイデバイス2218を含み、それらはホストコントローラ2210によって相互に接続されている。コンピュータ2200はまた、通信インターフェイス2222、ハードディスクドライブ2224、DVD-ROMドライブ2226、およびICカードドライブのような入/出力ユニットを含み、それらは入/出力コントローラ2220を介してホストコントローラ2210に接続されている。コンピュータはまた、ROM2230およびキーボード2242のようなレガシの入/出力ユニットを含み、それらは入/出力チップ2240を介して入/出力コントローラ2220に接続されている。
CPU2212は、ROM2230およびRAM2214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ2216は、RAM2214内に提供されるフレームバッファ等またはそれ自体の中にCPU2212によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス2218上に表示されるようにする。
通信インターフェイス2222は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ2224は、コンピュータ2200内のCPU2212によって使用されるプログラムおよびデータを格納する。DVD-ROMドライブ2226は、プログラムまたはデータをDVD-ROM2201から読み取り、ハードディスクドライブ2224にRAM2214を介してプログラムまたはデータを提供する。ICカードドライブは、プログラムおよびデータをICカードから読み取り、および/またはプログラムおよびデータをICカードに書き込む。
ROM2230はその中に、アクティブ化時にコンピュータ2200によって実行されるブートプログラム等、および/またはコンピュータ2200のハードウェアに依存するプログラムを格納する。入/出力チップ2240はまた、様々な入/出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入/出力コントローラ2220に接続してよい。
プログラムが、DVD-ROM2201またはICカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ2224、RAM2214、またはROM2230にインストールされ、CPU2212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ2200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ2200の使用に従い情報の操作または処理を実現することによって構成されてよい。
例えば、通信がコンピュータ2200および外部デバイス間で実行される場合、CPU2212は、RAM2214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェイス2222に対し、通信処理を命令してよい。通信インターフェイス2222は、CPU2212の制御下、RAM2214、ハードディスクドライブ2224、DVD-ROM2201、またはICカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
また、CPU2212は、ハードディスクドライブ2224、DVD-ROMドライブ2226(DVD-ROM2201)、ICカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM2214に読み取られるようにし、RAM2214上のデータに対し様々なタイプの処理を実行してよい。CPU2212は次に、処理されたデータを外部記録媒体にライトバックする。
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU2212は、RAM2214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM2214に対しライトバックする。また、CPU2212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU2212は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ2200上またはコンピュータ2200近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ2200に提供する。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。