以下図面を参照して、本発明に係るデータ収集装置及びデータ収集プログラムについて説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明との均等物に及ぶ点に留意されたい。
宇宙、海底又は地中等の極限環境にデータ収集装置を配置し、配置されたデータ収集装置で収集されたデータを別の装置に送信して集計することによりビックデータ化することが考えられる。人工衛星等が存在する宇宙のような極限環境は、搭載されたデータ収集装置に不具合が発生したとしても、現地に赴いてデータ収集装置を修理することは容易ではない。且つ、電子機器であるデータ収集装置自体にとって、温度や湿度、圧力を含め周囲の環境が地上とは大きく異なる困難な環境である。例えば、人工衛星に搭載されたデータ収集装置は、宇宙放射線の影響を受けるため、地上に配置されるデータ収集装置よりも故障する可能性が高くなる。また、人工衛星、航空機又潜水艇などに搭載されるデータ収集装置では、収集したデータを別の装置、例えば地上に設置されている集計用のサーバ装置に送信するための通信回路の通信速度を大きくすることが容易ではない。
図1は従来のデータ収集装置の回路ブロック図である。
データ収集装置100は、複数のデータ収集部110を有する。複数のデータ収集装置110はそれぞれ、単数又は複数のセンサから送信されたデータを受信するインタフェース回路111と、受信したデータを処理する演算処理部112と、演算処理部112が処理したデータを記憶するメモリ113とを有する。同一の構成を有する複数のデータ収集部110はバックアップ用のデータ収集部として使用される。すなわち、データ収集装置100は、使用しているデータ収集部110が故障した場合に他のデータ収集部110を使用することによりデータ収集を継続できる。
しかしながら、データ収集装置100を極限環境で使用する場合、種々の問題が生じる可能性がある。まず、複数のデータ収集部110を搭載すると、データ収集装置100の重量及び配置スペースが増加すると共に、データ収集装置100を駆動する電池が大型化するおそれがある。
また、データ収集装置100は、データレートが可変であるデータを収集するために最適な構成にすることは容易ではない。センサから送信されるデータは、連続して送信される場合がある一方で、センサから全くデータが送信されない場合もある。というのは、センサにより検出される事象の発生頻度が、一定ではない場合が十分に考えられるからである。しかしながら、データ収集部110は送信されるデータ量に応じて、データ処理速度を変更することは容易ではなく、複数のデータ収集部110はそれぞれ、連続して送信されるデータを受信できるような回路構成で実装される場合が多い。データ収集部110が連続して送信されるデータを受信できるような回路構成で実装されると、データ収集部110は、回路規模が大きくなると共に動作周波数が高くなり、データ収集装置100を駆動する電池が更に大型化するおそれがある。
また、データ収集装置100では、メモリ113に書き込まれたデータを読み出す前に、メモリ113の全てのメモリセルにデータが書き込まれると、センサから送信されたデータを書き込めなくおそれがある。特に、センサからデータが不規則な周期で送信される場合、メモリ113の全てのメモリセルにデータが書き込まれて、センサから送信されたデータを書き込めなくなるタイミングを予測することは容易ではない。メモリ113の全てのメモリセルにデータが書き込まれる前に、メモリ113に書き込まれたデータを外部装置に送信するために、外部装置にデータを送信する頻度を高くすると、演算処理部112がデータ送信処理をする時間が増加する。演算処理部112がデータ送信処理をする時間が増加すると、演算処理部112がデータ送信処理のためビジー状態となり、センサから送信されたデータが受信されない状態になる時間が増加する。
このように、同一の構成を有する複数のデータ収集部110を有するデータ収集装置100を使用して、極限環境において種々のデータを収集する場合、センサから送信されたデータを欠落なく送信することは容易ではない。
そこで、バックアップ用に搭載されるメモリ及び演算処理部をデータ送信処理に使用し且つデータ送信処理に使用されないメモリ及び演算処理部の電源をオフする構成を採用することによって、データ送信処理の高速化及び低電力化が実現されると発明者は考えた。
図2は、第1実施形態に係るデータ収集装置の回路ブロック図である。
データ収集装置1は、データ制御部10と、第1メモリ21と、第2メモリ22と、第3メモリ23と、第1演算処理部31と、第2演算処理部32とを有する。
データ制御部10は、単数又は複数のセンサから送信されるデータを有線または無線通信を介して受信し、受信したデータを第1メモリ21、第2メモリ22又は第3メモリ23の何れかに記憶する。また、データ制御部10は、第1メモリ21、第2メモリ22及び第3メモリ23に記憶されたデータを不図示の送信装置から例えば無線通信網を介して別の装置へ向けて送信するように第1演算処理部31及び第2演算処理部32を制御する。また、データ制御部10は、第1メモリ21、第2メモリ22及び第3メモリ23並びに第1演算処理部31及び第2演算処理部32の電源を個別にオンオフする。
第1メモリ21、第2メモリ22及び第3メモリ23はそれぞれ、複数のメモリセルが配置されるメモリセル領域を有する記憶装置を有する。
第1演算処理部31及び第2演算処理部32はそれぞれ、第1メモリ21、第2メモリ22及び第3メモリ23に記憶されたデータを送信するための演算処理を実行する演算処理装置である。第1演算処理部31及び第2演算処理部32はそれぞれ、データ制御部10から受信する割込み指示信号に基づいて、第1メモリ21、第2メモリ22及び第3メモリ23に記憶されるデータを不図示の送信装置に送信する送信処理を開始する。第1演算処理部31及び第2演算処理部32はそれぞれ、送信処理を終了すると、送信処理終了信号をデータ制御部10に送信する。
第1メモリ21、第2メモリ22及び第3メモリ23並びに第1演算処理部31及び第2演算処理部32は交互に使用するように制御されることが好ましい場合がある。例えば、データ収集装置1が人工衛星に搭載される場合、宇宙放射線から受ける影響を最小限に抑えるため、バックアップとして搭載される素子も動作させることが好ましいためである。
図3は、データ収集装置1の機能ブロック図である。
データ制御部10は、シリアル/パラレル変換部11と、DMAバッファ部12とを有する。データ制御部10は、第1メモリインタフェース部131と、第2メモリインタフェース部132と、第3メモリインタフェース部133とを更に有する。データ制御部10は、第1MPUバススイッチ部141と、第2MPUバススイッチ部142と、DMAバススイッチ部143とを更に有する。データ制御部10は、第1MPUインタフェース部151と、第2MPUインタフェース部152と、構成制御部16とを更に有する。
シリアル/パラレル変換部11は、I2Cバスなどのシリアルデータとしてセンサから送信されるデータを、1バイト又は1ワードのパラレルデータに変換して、DMAバッファ部12に送信する。一例では、シリアル/パラレル変換部11は、パラレルデータに変換したデータを8ビットずつDMAバッファ部12に送信する。
DMAバッファ部12は、メモリバス幅分のデータがシリアル/パラレル変換部11から送信されると、構成制御部16により接続された第1メモリ21、第2メモリ22又は第3メモリ23の何れかに書き込むDMA転送を実行する。DMAバッファ部12は、DMAバス幅毎にデータをDMA転送を実行する。DMAバス幅が32ビットであり、シリアル/パラレル変換部11からパラレルデータに変換したデータが8ビットずつ受信する場合、DMAバッファ部12は、シリアル/パラレル変換部11から4回データを受信する毎にDMA転送を実行する。
また、DMAバッファ部12は、アドレスカウンタ121と、拡張レジスタ122とを有する。アドレスカウンタ121は、DMA転送を実行する毎にインクリメントされる。アドレスカウンタ121がメモリフルを示すアドレスまでインクリメントされると、DMAバッファ部12は、構成制御部16に割込み信号を送信する。すなわち、DMAバッファ部12は、メモリにDMA転送されたデータのデータ量がメモリに記憶可能なデータ量に達したときに、割込み信号を送信する。DMAバッファ部12は、割込み信号を送信した後は、構成制御部16が設定を変更したメモリに対してDMA転送を実行する。
拡張レジスタ122は、第1メモリ21、第2メモリ22及び第3メモリ23の何れか2つ又は全てを単一のメモリとして機能させるときに、メモリフルを示すアドレスを拡張するために使用されるレジスタである。
DMAバッファ部12は、第1演算処理部31又は第2演算処理部32から送信処理終了信号を受信すると、アドレスカウンタ121をクリアする。
第1メモリインタフェース部131は、第1メモリECC部131Eを有し、構成制御部16から送信される信号に基づいて、第1メモリ21との間でデータを送受信すると共に、第1メモリ21が正常に動作可能であるか否かを判定する。
第1メモリインタフェース部131は、第1メモリECC部131Eに記憶されるアルゴリズムに基づいて、第1メモリ21へのアクセスを開始する毎に第1メモリ21に記憶されるデータのエラーをECC(Error Check and Correct)によって検出する。第1メモリインタフェース部131は、ECCによって2ビットエラー、オール1又はオール0などのエラーが検出されたとき、構成制御部16に第1メモリ故障信号を送信する。
第2メモリインタフェース部132及び第3メモリインタフェース部133はそれぞれ、第1メモリインタフェース部131と同一の機能を有する。第2メモリインタフェース部132は、第2メモリ22との間でデータを送受信すると共に、第2メモリ22が正常に動作可能であるか否かを判定する。第2メモリインタフェース部132は、ECCによって2ビットエラー、オール1又はオール0などのエラーが検出されたとき、構成制御部16に第2メモリ故障信号を送信する。第3メモリインタフェース部133は、第3メモリ23との間でデータを送受信すると共に、第3メモリ23が正常に動作可能であるか否かを判定する。第3メモリインタフェース部133は、ECCによって2ビットエラー、オール1又はオール0などのエラーが検出されたとき、構成制御部16に第3メモリ故障信号を送信する。
第1MPUバススイッチ部141は、構成制御部16から受信する指示信号に基づいて、第1メモリ21、第2メモリ22又は第3メモリ23の何れか1つと、第1演算処理部31との間を接続し又は切断する。
第1MPUバススイッチ部141は、構成制御部16から第1メモリ接続指示信号を受信すると、第1メモリインタフェース部131との間を接続する。第1MPUバススイッチ部141は、構成制御部16から第1メモリ切断指示信号を受信すると、第1メモリインタフェース部131との間を切断する。第1MPUバススイッチ部141と第1メモリインタフェース部131との間が接続されることにより、第1メモリ21と第1演算処理部31との間が接続される。
第1MPUバススイッチ部141は、構成制御部16から第2メモリ接続指示信号を受信すると、第2メモリインタフェース部132との間を接続する。第1MPUバススイッチ部141は、構成制御部16から第2メモリ切断指示信号を受信すると、第2メモリインタフェース部132との間を切断する。第1MPUバススイッチ部141と第2メモリインタフェース部132との間が接続されることにより、第2メモリ22と第1演算処理部31との間が接続される。
第1MPUバススイッチ部141は、構成制御部16から第3メモリ接続指示信号を受信すると、第3メモリインタフェース部133の間を接続する。第1MPUバススイッチ部141は、構成制御部16から第3メモリ切断指示信号を受信すると、第3メモリインタフェース部133との間を切断する。第1MPUバススイッチ部141と第3メモリインタフェース部133との間が接続されることにより、第3メモリ23と第1演算処理部31との間が接続される。
第2MPUバススイッチ部142及びDMAバススイッチ部143はそれぞれ、第1第2MPUバススイッチ部141と同一の機能を有する。第2MPUバススイッチ部142は、第1メモリ21、第2メモリ22及び第3メモリ23と第2演算処理部32との間を接続し、又は切断する。DMAバススイッチ部143は、第1メモリ21、第2メモリ22及び第3メモリ23とDMAバッファ部12との間を接続し、又は切断する。
第1MPUインタフェース部151は、第1MPUWDT部151Wを有する。第1MPUインタフェース部151は、構成制御部16から送信される信号に基づいて、第1演算処理部31との間でデータを送受信すると共に、第1演算処理部31が正常に動作可能であるか否かを判定する。
第1MPUインタフェース部151は、第1MPUWDT部151Wに配置されるウォッチドックタイマを使用して、所定の周期で第1演算処理部31が正常に動作しているか否かを判定する。第1MPUインタフェース部151は、所定の周期毎に第1MPUWDT部151Wに配置されるウォッチドックタイマをリセットする指示を第1演算処理部31に送信する。第1演算処理部31の電源がオンしており且つ第1MPUWDT部151Wに配置されるウォッチドックタイマがリセットされない場合、第1MPUインタフェース部151は、第1演算処理部31が故障していると判定する。第1MPUインタフェース部151は、第1演算処理部31が故障していると判定したとき、構成制御部16に第1演算処理部故障信号を送信する。
第2MPUインタフェース部152は、第1MPUインタフェース部151と同一の機能を有する。第2MPUインタフェース部152は、第2演算処理部32との間でデータを送受信すると共に、第2演算処理部32が正常に動作可能であるか否かを判定する。第2MPUインタフェース部152は、第2演算処理部32が故障していると判定したとき、構成制御部16に第2演算処理部故障信号を送信する。
構成制御部16は、メモリ故障判定部161と、DMAバス設定部162と、MUP故障判定部163と、送信処理設定部164と、送信待機設定部165と、送信バス設定部166とを有する。構成制御部16は、メモリ電源制御部167と、MPU電源制御部168とを更に有する。構成制御部16は、メモリ故障レジスタ171と、DMAバスレジスタ172と、MUP故障レジスタ173と、送信処理レジスタ174と、送信待機レジスタ175と、送信バスレジスタ176とを更に有する。構成制御部16は、メモリ電源レジスタ177と、MPU電源レジスタ178とを更に有する。
メモリ故障判定部161は、第1メモリ21、第2メモリ22又は第3メモリ23の何れかの電源がオンされたことを検知すると、対応するメモリインタフェース部に電源オンしたメモリが動作可能であるか否かを判定させる。メモリ故障判定部161は、第1メモリインタフェース部131から第1メモリ故障信号を受信したとき、メモリ故障レジスタ171に第1メモリ21が故障したことを記憶する。メモリ故障判定部161は、第2メモリインタフェース部132から第2メモリ故障信号を受信したとき、メモリ故障レジスタ171に第2メモリ22が故障したことを記憶する。メモリ故障判定部161は、第3メモリインタフェース部133から第3メモリ故障信号を受信したとき、メモリ故障レジスタ171に第3メモリ23が故障したことを記憶する。
DMAバス設定部162は、DMA転送が実行されるメモリを選択する。DMAバス設定部162は、単一のメモリにのみDMA転送を実行するときには、第1メモリ21、第2メモリ22及び第3メモリ23の順にDMA転送を実行するメモリに選択し、DMAバスレジスタ172に記憶する。DMAバス設定部162は、第1メモリ21へのDMA転送が終了して、DMAバス設定部162から割込み信号を受信すると、DMA転送が実行されるメモリとして第2メモリ22を選択する。DMAバス設定部162は、第2メモリ22へのDMA転送が終了して、DMAバッファ部12から割込み信号を受信すると、DMA転送が実行されるメモリとして第3メモリ23を選択する。DMAバス設定部162は、第3メモリ23へのDMA転送が終了して、DMAバッファ部12から割込み信号を受信すると、DMA転送が実行されるメモリとして第1メモリ21を選択する。
DMAバス設定部162は、第1メモリ21、第2メモリ22又は第3メモリ23の何れかが故障しているとき、故障しているメモリを飛ばしてDMA転送が実行されるメモリを選択する。例えば、第3メモリ23が故障しているとき、構成制御部16は、第1メモリ21と第2メモリ22とを交互にDMA転送が実行されるメモリとして選択する。
MPU故障判定部163は、第1MPUインタフェース部151及び第2MPUインタフェース部152に所定の周期毎にMPU故障判定指示信号を送信し、第1演算処理部31及び第2演算処理部32が故障したか否かを判定させる。MPU故障判定部163は、第1MPUインタフェース部151から第1演算処理部故障信号を受信したとき、MUP故障レジスタ173に第1演算処理部31が故障したことを記憶する。メモリ故障判定部161は、第2MPUインタフェース部152から第2演算処理部故障信号を受信したとき、MUP故障レジスタ173に第2演算処理部32が故障したことを記憶する。
送信処理設定部164は、第1演算処理部31又は第2演算処理部32の何れかが送信処理を実行するかを設定する。送信処理設定部164は、DMAバッファ部12から割込み信号を受信すると、第1演算処理部31及び第2演算処理部32の状態に基づいて、送信処理を実行する処理装置を設定する。第1演算処理部31が故障しているときは、送信処理設定部164は、第2演算処理部32に送信処理を実行させるように送信処理レジスタ174を設定する。第2演算処理部32が故障しているときは、送信処理設定部164は、第1演算処理部31に送信処理を実行させるように送信処理レジスタ174を設定する。第1演算処理部31及び第2演算処理部32の双方が故障していないとき、送信処理設定部164は、第1演算処理部31と第2演算処理部32とを交互に動作させるように、送信処理レジスタ174を設定する。送信処理設定部164は、送信処理レジスタ174に設定された演算処理部に割込み指示信号を送信する。
送信処理設定部164は、第1演算処理部31又は第2演算処理部32の何れかが送信処理を実行してビジー状態であるとき、送信処理レジスタ174の設定を変更しない。第1演算処理部31及び第2演算処理部32の双方が同時に送信処理を実行することを防止するためである。
また、送信処理設定部164は、送信処理が実行されるメモリを設定する。送信処理設定部164は、第1メモリ21にDMA転送が終了した後に、第1演算処理部31及び第2演算処理部32がビジー状態ではないと判定すると、送信処理が実行されるメモリとして第1メモリ21を送信処理レジスタ174に記憶する。送信処理設定部164は、第2メモリ22にDMA転送が終了した後に、第1演算処理部31及び第2演算処理部32がビジー状態ではないと判定すると、送信処理が実行されるメモリとして第2メモリ22を送信処理レジスタ174に記憶する。送信処理設定部164は、第3メモリ23にDMA転送が終了した後に、第1演算処理部31及び第2演算処理部32がビジー状態ではないと判定すると、送信処理が実行されるメモリとして第3メモリ23を送信処理レジスタ174に記憶する。
送信処理設定部164は、第1演算処理部31又は第2演算処理部32から送信処理終了信号を受信すると、送信処理レジスタ174をクリアする。
送信待機設定部165は、送信処理設定部164から演算処理部ビジー信号を受信すると、使用されていないメモリの先頭アドレスをDMA転送が実行されていたメモリの最終アドレスの次にマッピングする。例えば、第2メモリ22へのDMA転送及び第1メモリ21の送信処理を実行していたときに、送信待機設定部165は、演算処理部ビジー信号を受信すると、第3メモリ23の先頭アドレスを第2メモリの最終アドレスの次にマッピングする。
送信待機設定部165は、演算処理部ビジー信号を受信すると、DMAバッファ部12に、アドレスカウンタ121と拡張レジスタ122とを使用してメモリフルを示すアドレスを変更するように指示する。例えば、DMAバッファ部12は、演算処理部ビジー信号を受信して第2メモリ22に次いで第3メモリ23にDMA転送を実行する場合、2つのメモリに記憶される合計のデータ量に対応するアドレスがメモリフルを示すアドレスになるように変更する。
送信待機設定部165は、演算処理部ビジー信号と共に送信処理設定部164から送信された待機メモリ信号に対応するメモリを待機メモリとして送信待機レジスタ175に記憶する。例えば、送信待機設定部165は、演算処理部ビジー信号を受信する前にDMA転送が実行されていたメモリが第1メモリ21であった場合、第1メモリ21を待機メモリとして送信待機レジスタ175に記憶する。
送信バス設定部166は、送信処理レジスタ174に記憶される設定に基づいて、第1メモリ21、第2メモリ22及び第3メモリ23と、第1演算処理部31及び第2演算処理部32との間の接続を設定する。
送信バス設定部166は、第1メモリ21及び第1演算処理部31を選択するように送信処理レジスタ174が設定される場合、第1MPUバススイッチ部141に第1メモリ接続指示信号を送信する。送信バス設定部166は、第2メモリ22及び第1演算処理部31を選択するように送信処理レジスタ174が設定される場合、第1MPUバススイッチ部141に第2メモリ接続指示信号を送信する。送信バス設定部166は、第3メモリ23及び第1演算処理部31を選択するように送信処理レジスタ174が設定される場合、第1MPUバススイッチ部141に第3メモリ接続指示信号を送信する。
送信バス設定部166は、第1メモリ21及び第2演算処理部32を選択するように送信処理レジスタ174が設定される場合、第2MPUバススイッチ部142に第1メモリ接続指示信号を送信する。送信バス設定部166は、第2メモリ22及び第2演算処理部32を選択するように送信処理レジスタ174が設定される場合、第2MPUバススイッチ部142に第2メモリ接続指示信号を送信する。送信バス設定部166は、第3メモリ23及び第2演算処理部32を選択するように送信処理レジスタ174が設定される場合、第2MPUバススイッチ部142に第3メモリ接続指示信号を送信する。
メモリ電源制御部167は、DMAバスレジスタ172及び送信処理レジスタ174の設定に基づいて、DMA転送及び送信処理が実行されていないメモリの電源をオフする。メモリ電源制御部167は、第1メモリ21、第2メモリ22及び第3メモリ23それぞれの電源状態をメモリ電源レジスタ177に記憶する。
MPU電源制御部168は、送信処理レジスタ174の設定に基づいて、送信処理が実行されていない演算処理部の電源をオフする。MPU電源制御部168は、第1演算処理部31及び第2演算処理部32それぞれの電源状態をMPU電源レジスタ178に記憶する。
データ制御部10、第1演算処理部31及び第2演算処理部32が実行する処理のプログラムは、コンピュータプログラム記憶部80に記憶される。コンピュータプログラム記憶部80として、CD−ROM、DVDディスク及びUSBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が使用される。
図4はデータ収集装置1の処理フローの一例を示す図であり、図5〜13は図4に示す処理フローの処理における回路動作状態を示す図である。図5〜13において、実線で示されるメモリ及び演算処理部は電源がオンの状態を示し、破線で示されるメモリ及び演算処理部は電源がオフの状態を示す。図5〜13において、実線で示される配線は接続状態を示し、破線で示される配線は切断状態を示す。また、図5〜13において、ハッチングされたメモリは、DMA転送されたデータのデータ量が記憶可能なデータ量に達した状態のメモリを示す。
まず、ステップS1において、メモリ電源制御部167は、第1メモリ21の電源をオンし、DMAバス設定部162は、第1メモリ21にDMAバスを接続する。
次いで、ステップS2において、シリアル/パラレル変換部11は、シリアルデータとしてセンサから送信されるデータをパラレルデータに変換して、DMAバッファ部12に送信する。
次いで、ステップS3において、DMAバッファ部12は、受信したパラレルデータを第1メモリ21に書き込むDMA転送を実行する。次いで、ステップS4において、DMAバッファ部12は、アドレスカウンタ121をインクリメントする。
次いで、図5に示すように、ステップS7において、ステップS3〜S6の処理が繰り返される。
次いで、ステップS8において、DMAバッファ部12は、アドレスカウンタ121がメモリフルを示すアドレスまでインクリメントする。DMAバッファ部12は、アドレスカウンタ121がメモリフルを示すアドレスまでインクリメントされると、第1メモリ21にDMA転送されたデータのデータ量が第1メモリ21に記憶可能なデータ量に達したと判定する。
次いで、図6に示すように、ステップS9において、MPU電源制御部168は、第1演算処理部31の電源をオンする。次いで、DMAバス設定部162は第1メモリ21のDMAバスを分離し、送信バス設定部166は第1メモリ21と第1演算処理部31との間を接続し、送信処理設定部164は第1演算処理部31に割込み指示信号を送信する。
次いで、図7に示すように、ステップS10において、第1演算処理部31は、第1メモリ21に記憶されるデータを送信装置に送信する送信処理を開始する。
次いで、図8に示すように、ステップS11において、メモリ電源制御部167は、第2メモリ22の電源をオンし、DMAバス設定部162は、第2メモリ22のDMAバスを接続する。
次いで、図9に示すように、ステップS11〜13において、第1メモリ21に記憶されるデータの送信処理と共に、第2メモリ22へのDMA転送が実行される。
次いで、図10に示すように、ステップS14において、第1演算処理部31は、第1メモリ21に記憶されるデータの送信処理を終了すると、送信処理終了信号をデータ制御部10に送信する。
次いで、図11に示すように、ステップS15において、送信処理設定部164は送信処理レジスタ174をクリアし、第1メモリ21と第1演算処理部31との間の接続が切断される。次いで、メモリ電源制御部167は第1メモリ21の電源をオフし、MPU電源制御部168は第1演算処理部31の電源をオフする。
次いで、ステップS16において、アドレスカウンタ121がメモリフルを示すアドレスまでインクリメントする。
次いで、図12に示すように、ステップS17において、MPU電源制御部168は、第2演算処理部32の電源をオンする。次いで、DMAバス設定部162は第2メモリ22のDMAバスを分離し、送信バス設定部166は第2メモリ22と第2演算処理部32との間を接続し、送信処理設定部164は第2演算処理部32に割込み指示信号を送信する。
次いで、図13に示すように、ステップS18において、第2演算処理部32は、第2メモリ22に記憶されるデータを送信装置に送信する送信処理を開始する。
以降、第3メモリ23の電源をオンし、第3メモリ23にDMA転送を開始し、データ収集装置1は、第1メモリ21〜第3メモリ23並びに第1演算処理部31及び第2演算処理部32を順次切り替えながら、DMA転送及び送信処理を繰り返す。
図14はデータ収集装置1の処理フローの他の例を示す図であり、図15〜19は図14に示す処理フローの処理における回路動作状態を示す図である。図15〜19において、実線で示されるメモリ及び演算処理部は電源がオンの状態を示し、破線で示されるメモリ及び演算処理部は電源がオフの状態を示す。図15〜19において、実線で示される配線は接続状態を示し、破線で示される配線は切断状態を示す。また、図15〜19において、ハッチングされたメモリは、DMA転送されたデータのデータ量が記憶可能なデータ量に達した状態のメモリを示す。
図14に示す処理フローは、第1メモリ21に記憶されるデータの送信処理が終了する前に、第2メモリ22へのDMA転送が終了する場合の処理フローを示すことが図4に示す処理フローと相違する。
ステップS1〜13は、図4に示す処理フローと同様な処理が実行される。
次いで、図15に示すように、ステップS14において、DMAバッファ部12は、アドレスカウンタ121がメモリフルを示すアドレスまでインクリメントする。DMAバッファ部12は、アドレスカウンタ121がメモリフルを示すアドレスまでインクリメントされると、第2メモリ22にDMA転送されたデータのデータ量が第2メモリ22に記憶可能なデータ量に達したと判定する。
次いで、図16に示すように、ステップS15において、メモリ電源制御部167は、第3メモリをオンし、構成制御部16は、DMAバスを第2メモリ22から第3メモリ23に変更する。次いで、第1演算処理部31がビジーであるので、DMAバッファ部12は、第2メモリ22及び第3メモリ23に記憶される合計のデータ量がフルアドレスになるように変更する。
次いで、図17に示すように、ステップS16〜17において、第1メモリ21に記憶されるデータの送信処理と共に、第3メモリ23へのDMA転送が実行される。
次いで、図18に示すように、ステップS18において、第1演算処理部31は、第1メモリ21に記憶されるデータの送信処理を終了すると、送信処理終了信号をデータ制御部10に送信する。
次いで、図19に示すように、ステップS19において、送信処理設定部164は送信処理レジスタ174をクリアし、第1メモリ21と第1演算処理部31との間の接続が切断される。次いで、メモリ電源制御部167は第1メモリ21の電源をオフし、MPU電源制御部168は第1演算処理部31の電源をオフする。
次いで、MPU電源制御部168は第2演算処理部32の電源をオンし、第2メモリ22に記憶されたデータの送信処理を開始する。以降、データ収集装置1は、第1メモリ21〜第3メモリ23並びに第1演算処理部31及び第2演算処理部32を順次切り替えながら、DMA転送及び送信処理を繰り返す。
図20は、データ収集装置1の他の処理における回路動作状態を示す図である。
データ収集装置1は、第1センサデータ及び第2センサデータの2つのデータを同時に受信するときに、第1メモリ21及び第2メモリ22の2つのメモリにDMA転送を実行する処理が可能である。2つのセンサデータを同時にDMA転送することにより、2つのセンサデータを同時に受信した場合でも、2つのデータを共に記憶することができる。
図21は、データ収集装置1の他の処理における回路動作状態を示す図である。
データ収集装置1は、第1演算処理部31がデータの送信処理を実行している間に、データの送信処理を実行していない第2演算処理部32を使用してメモリに記憶されたデータを解析する処理を実行することが可能である。第2演算処理部32は、第3メモリ23に記憶されるデータを解析する。例えば、第3メモリ23に記憶されるデータが全て同一の値である場合、第2演算処理部32が第3メモリ23に記憶されるデータを解析することにより、第2演算処理部32は、第3メモリ23に記憶されるデータを全て送信しなくてよいと判定できる。第3メモリ23に記憶されるデータを全て送信しなくてよいとの判定に基づいて、データ収集装置1は、第3メモリ23に記憶されるデータを全て送信しない場合、送信処理のために消費する電力を削減することができる。
データ収集装置1は、3つのメモリ及び2つの演算処理部を有するが、データ収集装置は、4つ以上のメモリを有してもよく、3つ以上の演算処理部を有してもよい。
また、データ収集装置1は、1つ又は2つのセンサから送信されるデータを収集するが、3つ以上のセンサから送信されるデータを収集してもよい。データ収集装置1が複数のセンサから送信されるデータを収集する場合、第1メモリ21、第2メモリ22及び第3メモリ23はそれぞれ、センサ毎に分割されたDMA転送用記憶領域を有するように形成されてもよい。第1メモリ21、第2メモリ22及び第3メモリ23がセンサ毎に分割されたDMA転送用記憶領域を有する場合、DMA転送用記憶領域が記憶可能なデータ量は、センサ毎に異なるように形成されてもよい。例えば、データが送信される頻度が高いセンサ用のDMA転送用記憶領域を大きくし、データが送信される頻度が低いセンサ用のDMA転送用記憶領域を小さくしてもよい。
また、データ収集装置1は、第1メモリ21、第2メモリ22又は第3メモリ23の何れかが故障した場合でも、センサから送信されるデータをより正確に収集できるような機能を有してもよい。
図22は、第2実施形態に係るデータ収集装置の機能ブロック図である。
データ制御部40は、OR回路部18と多数決回路部19とを有することが、図3を参照して説明されたデータ制御部10と相違する。
OR回路部18は、書き込みレジスタ181と、読み出しレジスタ182とを有する。書き込みレジスタ181は第1メモリ21、第2メモリ22及び第3メモリ23それぞれについて、書き込み可能であるか否かを記憶する。読み出しレジスタ182は、第1メモリ21、第2メモリ22及び第3メモリ23それぞれについて、読み出し可能であるか否かを記憶する。
OR回路部18は、書き込みレジスタ181の状態に基づいて、第1メモリ21及び第2メモリ22、第2メモリ22及び第3メモリ23又は第3メモリ23及び第1メモリ21に同一データを書き込むようにDMAバッファ部12に指示する。OR回路部18は、2つのメモリに書き込まれたデータを読み出すときに、読み出しレジスタ181に基づいて、データが書き込まれた2つのメモリがアクセス可能か否かを判定する。OR回路部18は、読み出し可能であると判定されたメモリから読み出されたデータを第1演算処理部31又は第2演算処理部32に送信する。OR回路部18は、同一データが書き込まれたメモリの双方が読み出し可能であると判定された場合、何れか一方のメモリから読み出されたデータを第1演算処理部31又は第2演算処理部32に送信する。
多数決回路部19は、第1メモリ21、第2メモリ22及び第3メモリ23それぞれについて、書き込み可能か否かを判定するための書き込みレジスタ191を有する。多数決回路部19は、書き込みレジスタ191の状態に基づいて、第1メモリ21、第2メモリ22及び第3メモリ23の全てのメモリが書き込み可能であると判定した場合に、3つのメモリに同一データを書き込むようにDMAバッファ部12に指示する。
多数決回路部19は、3つのメモリに書き込まれたデータを読み出すときに、読み出されたデータを比較して読み出しデータが「0」であるか又は「1」であるかを判定する。多数決回路部19は、3つの読み出しデータが全て「0」である場合、正しい読み出しデータは「0」であると判定する。多数決回路部19は、2つの読み出しデータが「0」であり他の1つの読み出しデータが「1」である場合、正しい読み出しデータは「0」であると判定する。多数決回路部19は、2つの読み出しデータが「1」であり他の1つの読み出しデータが「0」である場合、正しい読み出しデータは「1」であると判定する。多数決回路部19は、3つの読み出しデータが全て「1」である場合、正しい読み出しデータは「1」であると判定する。多数決回路部19は、正しいと判定した読み出しデータを第1演算処理部31又は第2演算処理部32に送信する。多数決回路部19は、データ収集装置が4つ以上のメモリを有している場合に使用することが好ましい。
また、第1メモリ21、第2メモリ22又は第3メモリ23の何れかが故障したときに、単一のメモリ内部をDMA転送用記憶領域と、送信処理用記憶領域とに分割してもよい。単一のメモリ内部をDMA転送用記憶領域と、送信処理用記憶領域とに分割して、データ制御部10は、記憶領域毎にDMA転送と送信処理とを同時に実行することができる。
また、データ収集装置1は単一のプリント基板に搭載されてもよい。データ収集装置1を単一のプリント基板に搭載することにより、データ収集装置1を小型化することができる。
図23は、データ収集装置1が搭載されるプリント基板の一例を示す図である。
プリント基板50は、データ制御部電源領域51と、第1メモリ電源領域521と、第2メモリ電源領域522と、第3メモリ電源領域523と、第1MPU電源領域531と、第2MPU電源領域532とを有する。
データ制御部電源領域51には、データ制御部10が配置され、外部電源60から電源電圧が供給される。第1メモリ電源領域521には、第1メモリ21を形成する複数の記憶装置20と、電源IC621とが配置される。電源IC621は、電源電圧の供給をオンオフするロードスイッチを有し、データ制御部電源領域51から供給される複数の記憶装置20への電源電圧をオンオフする。第2メモリ電源領域522及び第3メモリ電源領域523は、第1メモリ電源領域521と同一の構成を有する。第1MPU電源領域531には、第1演算処理部31と、電源IC631とが配置される。電源IC631は、電源電圧の供給をオンオフするロードスイッチを有し、データ制御部電源領域51から供給される第1演算処理部31への電源電圧をオンオフする。第2MUP電源領域532は、第1MPU電源領域531と同一の構成を有する。
図24は、プリント基板50の部分斜視図である。
プリント基板50は多層板であり、表面層501と、第2層502と、VCC層503と、GND層504と、第3層505と、裏面層506と、VCC層503及びGND層504を電源領域毎に分離する電源分離部507とを有する。データ制御部電源領域51の電源電圧は、電源用スルーホール508を介して、表面層501の表面に取り出され、表面層501の表面に形成されるパターン配線により、電源IC621に供給される。電源IC621に供給された電源電圧は、電源用スルーホール508を介して第1メモリ電源領域521のVCC層503及びGND層504に供給される。
VCC層503及びGND層504は、プリント基板50内部で電源領域毎に電源分離部507により分離されているので、VCC層503及びGND層504はプリント基板50内部で電源領域を亘って接続されることはない。
また、データ制御部10の機能の一部又は全てはハードウェアで実現してもよく、またソフトウェアで実現してもよい。例えば、シリアル/パラレル変換部11及びDMAバッファ部12はハードウェアで実現し、構成制御部16、メモリ電源制御部167及びMPU電源制御部168はソフトウェアで実現してもよい。
図25は、データ制御部10に処理を実行させるプログラムにより実行される処理の一例を示すフローチャートである。
まず、ステップS101において、データ制御部10は、センサから送信されるデータを第1メモリ21にDMA転送する。次いで、ステップS102において、第1メモリ21に転送されたデータのデータ量が第1メモリ21に記憶可能なデータ量に達したときに、第2メモリ22の電源をオンすると共に、取得したデータを転送するメモリを第1メモリ21から第2メモリ22に変更する。次いで、データ制御部10は、第1メモリ21に記憶されたデータを送信処理の対象とする。
次いで、ステップS103において、データ制御部10は、第1演算処理部31又は第2演算処理部32の何れかが送信処理を実行中であるか否かを判定する。データ制御部10が第1演算処理部31又は第2演算処理部32の何れかも送信処理を実行中でないと判定すると処理はステップS104に進む。データ制御部10が第1演算処理部31又は第2演算処理部32の何れかが送信処理を実行中であると判定すると処理はステップS106に進む。
処理がステップS104に進むと、データ制御部10は、センサから送信されるデータを第2メモリ22に転送する。次いで、ステップS105において、データ制御部10は、第1演算処理部31の電源をオンすると共に、第1メモリ21に記憶されるデータの送信処理を開始する。
一方、処理がステップS106に進むと、データ制御部10は、第2メモリ22の先頭アドレスを第1メモリ21の最終アドレスの次にマッピングする。次いで、ステップS107において、データ制御部10は、センサから送信されるデータを第2メモリ22に転送する。ステップS108において、データ制御部10は、第1演算処理部31又は第2演算処理部32の何れかが実行していた送信処理が終了したと判定する。そして、ステップS109において、データ制御部10は、第1メモリ21に記憶されるデータの送信処理を開始する。
また、データ制御部10と、第1演算処理部31及び第2演算処理部32とは同一のハードウェア構成を有する装置を使用してもよい。データ制御部10と、第1演算処理部31及び第2演算処理部32とが同一のハードウェア構成を有する場合、データ制御部10が故障した場合、第1演算処理部31又は第2演算処理部32の何れかがデータ制御部10の機能を代替できる。第1演算処理部31又は第2演算処理部32の何れかは不図示の記憶装置に記憶されるデータ制御部10の機能を実行するためのプログラムを読み込むことによって、データ制御部10の機能を代替できる。
また、データ制御部10が実行する処理の一部を第1演算処理部31及び第2演算処理部32又は他の演算処理装置が実行してもよい。例えば、第1メモリ21、第2メモリ22及び第3メモリ23並びに第1演算処理部31及び第2演算処理部32の電源をオンオフする処理は、データ制御部10以外の演算処理装置が実行してもよい。
データ収集装置1は、何れかが故障したときにバックアップとして機能する3つの第1メモリ21、第2メモリ22及び第3メモリ23を順次使用して処理を実行するため、バックアップ用として搭載されるメモリを有効活用することができる。バックアップとして機能する2つの第1演算処理部31及び第2演算処理部32を順次使用して処理を実行するため、バックアップ用として搭載される演算処理装置を有効活用することができる。
また、データ収集装置1では、第1メモリ21、第2メモリ22及び第3メモリ23並びに第1演算処理部31及び第2演算処理部32が使用されないとき、データ制御部10から切り離されて電源がオフにされるので、消費電力が低減される。また、一方の演算処理装置が送信処理を実行している間、他方の演算処理装置は送信処理を実行せずに待機しているので、2つの演算処理装置が同時に送信処理を実行することはない。2つの演算処理装置が同時に送信処理を実行することはないので、データ収集装置1を駆動するための電力を供給する電池の容量を小さくすることができる。
また、データ収集装置1では、図14等を参照して説明したように、送信されるデータ量が多い場合には2つのメモリを単一のメモリとして処理することができる。また、データ収集装置1では、単一のメモリ内部に複数のDMA転送用記憶領域を形成してもよい。データ収集装置1では、複数のセンサから送信されるデータを収集する場合でも、記憶領域の大きさは自由に設定可能である。