以下、図面を参照しながら、超音波診断装置の実施形態について詳細に説明する。
図1は、本実施形態に係る超音波診断装置100の構成例を示す図である。図1に示すように、超音波診断装置100は、本体部10とホスト部20とを有している。本体部10とホスト部20とは、超音波診断装置100の筐体に搭載されている。本体部10は、超音波画像診断に使用する複数のハードウェア機器を収容する。本体部10は、ハードウェア機器として、送信回路12、受信回路13、送受信制御回路14、信号処理回路15、メモリ16及び電源回路17等を有する。ホスト部20は、超音波画像診断のために本体部10を制御するコンピュータである。ホスト部20は、本体部10にケーブル又はバックプレーン(Back Plane)を介して接続されている。本体部10には超音波プローブ11が着脱可能に取り付けられている。また、ホスト部20には生体情報収集器200が着脱可能に取り付けられている。超音波プローブ11及び生体情報収集器200も超音波画像診断に使用するハードウェア機器の一例である。
図2は、超音波診断装置100内での制御データの流れを示す図である。図2の矢印は制御データの流れを表す。図2の点線は、電気的な接続関係を表している。本実施形態に係る制御データは、各種ハードウェア機器に対してホスト制御回路21から送信されるデータであって、当該ハードウェア機器に対する制御パラメータの設定に関するデータを意味する。
図1及び図2に示すように、超音波プローブ11は、超音波を送受信する。超音波プローブ11は、例えば、複数の振動子、整合層、音響レンズ及びバッキング材を有する。複数の振動子は、送信回路12から供給される駆動信号に基づいて超音波を発生する。整合層は、複数の振動子と生体との間のインピーダンスマッチングに供される。音響レンズは、例えばシリコンゴムといった柔軟性を有する材料で形成され、超音波をビーム状に収束させる。バッキング材は、複数の振動子から放射方向に対して後方への超音波の伝搬を防止する。超音波プローブ11から被検体に超音波が送信されると、送信された超音波は、被検体の体組織における音響インピーダンスの不連続面で次々と反射され、複数の振動子により受信されて電気信号(エコー信号)に変換される。エコー信号の振幅は、超音波が反射される不連続面における音響インピーダンスの差に依存する。また、送信された超音波パルスが、移動している血流または心臓壁等の表面で反射された場合のエコー信号は、ドプラ効果により、移動体の超音波送信方向の速度成分に依存して、周波数偏移を受ける。超音波プローブ11は、送受信制御回路14から供給されるプローブ制御パラメータに関する制御データに従って動作する。例えば、超音波プローブ11の振動子数が送信回路12及び受信回路13のチャンネル数より多い場合、プローブ制御パラメータは、超音波プローブ11の振動子を切り替えるためのハードウェアスイッチ制御データが該当する。超音波プローブ11がモータで揺動させるメカプローブの場合、プローブ制御パラメータは、モータ制御データが該当する。
送信回路12は、超音波プローブ11に駆動信号を供給する電気回路である。送信回路12は、送受信制御回路14から供給されるパルス繰り返し周波数(PRF:Pulse Repetition Frequency)や送信位置情報、送信開口、送信遅延等の送信制御パラメータに関する制御データに従って、超音波プローブ11から所望の超音波パルスが送信されるように駆動信号を生成する。具体的には、送信回路12は、トリガ発生回路、遅延回路及びパルサ回路等により実現される。トリガ発生回路は、所定のレート周波数で、送信超音波を形成するためのレートパルスを繰り返して発生する。遅延回路は、超音波プローブ11から発生される超音波をビーム状に集束して送信指向性を決定するために必要な複数の振動子毎の遅延時間を、トリガ発生回路が発生する各レートパルスに対し与える。パルサ回路は、レートパルスに基づくタイミングで、超音波プローブ11に設けられる複数の振動子へ駆動信号(駆動パルス)を印加する。遅延回路により各レートパルスに対し与える遅延時間を変化させることで、複数の振動子の表面からの送信方向が任意に調整可能となる。なお、送信制御パラメータは制御パラメータの一種である。
受信回路13は、超音波プローブ11から供給されるエコー信号に対して各種信号処理を施して受信信号を生成する電気回路である。受信回路13は、超音波プローブ11から得られるエコー信号を、送受信制御回路14から供給される受信開口情報や受信遅延等の受信制御パラメータに関する制御データに従って、走査線に対応するデジタル信号(ビームデータ)を生成する。具体的には、受信回路13は、プリアンプ、A/D変換器、復調器及びビームフォーマ(加算器)等により実現される。プリアンプは、超音波プローブ11が受信したエコー信号をチャネル毎に増幅してゲイン補正処理を行う。A/D変換器は、ゲイン補正されたエコー信号をデジタル信号に変換する。復調器は、デジタル信号を復調する。ビームフォーマは、例えば、復調されたデジタル信号に受信指向性を決定するのに必要な遅延時間を与えて、遅延時間が与えられた複数のデジタル信号を加算する。ビームフォーマの加算処理により、受信指向性に応じた方向からの反射成分が強調されたビームデータが生成される。なお受信制御パラメータは制御パラメータの一種である。
送受信制御回路14は、本体部10の制御を行うプロセッサを有する。送受信制御回路14は、ホスト制御回路21からの命令に従い各種制御データを超音波プローブ11、送信回路12、受信回路13、信号処理回路15、メモリ16及び電源回路17等に送信して設定する。この際、送受信制御回路14は、各種制御パラメータを一時的にメモリ16に保存し、適切なタイミングでメモリ16から読み出して超音波プローブ11、送信回路12、受信回路13、信号処理回路15、メモリ16及び電源回路17等に送信してもよい。
具体的には、送受信制御回路14は、ホスト制御回路21から指示された画像モードやビーム数、フレームレート、診断深さ等の送受信制御パラメータに関する制御データを受信し、当該送受信制御パラメータに基づいてPRFを決定する。送受信制御回路14は、メモリ16に記憶されている送受信位置情報、送信開口、送信遅延等の送信制御パラメータに関する制御データを送信回路12に送信する。送受信制御回路14は、メモリ16に記憶されている受信開口情報、受信遅延等の受信制御パラメータに関する制御データを受信回路13に送信する。送受信制御回路14は、メモリ16に記憶されているデジタルフィルタ処理条件等の信号処理制御パラメータに関する制御データを信号処理回路15に送信する。送受信制御回路14は、信号処理回路15から受信したビームデータをホスト制御回路21の管理下の記憶装置23に転送する。
メモリ16は、送受信制御回路14からの各種制御データを一時的に記憶する記憶装置である。メモリ16は、各種超音波スキャンモード、接続する超音波プローブ11、並列同時受信数等の情報に基づいて、送信回路12、受信回路13、信号処理回路15に転送し、設定する各種制御パラメータに関する制御データを保存する。ここで保存される制御データの制御パラメータは、例えば、フレーム情報やベクトル情報、ビーム情報、送信素子位置、送信遅延、送信開口、受信素子位置、受信遅延、受信開口、ヘッダ情報、デジタルフィルタ係数等である。メモリ16は、ROM(Read Only Memory)やRAM(random access memory)、EEPROM(登録商標)(Electrically Erasable Programmable Read Only Memory)フラッシュメモリ(flash memory)等の半導体メモリ素子、ハードディスク等によって構成することが可能である。
電源回路17は、超音波プローブ11、送信回路12、受信回路13、送受信制御回路14、信号処理回路15、メモリ16、ハードウェアタイマ31等の本体部10に接続又は収容されているハードウェア機器に電力を供給する。本実施形態においては一例として電源回路17は、送受信制御回路14を介して超音波プローブ11、送信回路12、受信回路13、信号処理回路15、メモリ16及びハードウェアタイマ31に電力を供給するものとする。電源回路17は、送受信回路14から供給される画像モードの種別や各画像モードでの送信電圧値等の電源制御パラメータに関する制御データに従って動作する。画像モードとしては、一般の超音波画像診断に使用される如何なる種類のものでも適用可能であるが、一例として、BモードやCモード、PWモード等が挙げられる。
ハードウェアタイマ31は、水晶発振器から発生する一定周期のクロック信号又は当該クロック信号の分周信号に基づいて時間を計数(カウント)するハードウェア機器である。ハードウェアタイマ31は、図1に示すように、制御データの設定先又は中継器として機能する送受信制御回路14に設けられるものとする。なお、ハードウェアタイマ31は、制御データの設定先である超音波プローブ11や送信回路12、受信回路13、信号処理回路15、メモリ16等の本体部10に接続又は収容される如何なるハードウェア機器に設けられてもよい。
ホスト部20は、ホスト制御回路21、画像生成回路22、記憶装置23、表示機器24、操作機器25及び電源回路26等のハードウェア機器を有する。
ホスト制御回路21は、超音波診断装置100の制御を行うプロセッサである。例えば、ホスト制御回路21は、操作機器25により設定された診断モードや各種制御データに基づいて超音波診断装置100全体の制御を行う。ホスト制御回路21は、一例として、CPU(以下、ホストCPUと呼ぶ)51とROMやRAM等のメモリ(以下、ホストメモリと呼ぶ)52とを有する。ホストCPU51とホストメモリ52とは任意の規格に準拠したマザーボードに取り付けられている。
ホストCPU51は、パワーマネージメント機能を有するものが用いられる。このようなホストCPU51としては、例えば、市販のATX(Advanced Technology eXtended)又は超音波診断装置用に開発されたATX等の規格に従うCPUが用いられる。具体的には、ホストCPU51は、CPUコア53、チップセット54及び電力制御回路55等を含む。CPUコア53は、ホストメモリ52等に記憶された各種ソフトウェアプログラムを読み出して解釈し、当該ソフトウェアプログラムに記述された各種処理を実行する。ソフトウェアプログラムとしては、例えば、超音波画像診断を実行するための画像診断プログラムがある。画像診断プログラムの実行により、CPUコア53は、各種ハードウェア機器にチップセット54を介して一連の制御データを送信する。CPUコア53は、他のソフトウェアプログラムとして、時間をカウントするソフトウェアプログラムであるソフトウェアタイマを実行する事も可能である。
チップセット54は、CPUコア53と図示しない外部バスとの間のデータ伝送を制御する集積回路である。外部バスは、CPUコア53と本体部10や画像生成回路22、記憶装置23、表示機器24、操作機器25、電源回路26、生体情報収集器200等の周辺機器との間で各種データの送受信を行うデータ伝送路(バス)である。
電力制御回路55は、消費電力を低減するため、超音波診断装置100内の各機器の動作を監視及び制御する集積回路である。当該機能はパワーマネージメント機能と呼ばれている。パワーマネージメント機能の実現により、電力制御回路55は、ホスト部20の電源回路26から、画像生成回路22、記憶装置23、表示機器24、操作機器25、生体情報収集器200、ホストメモリ52、CPUコア53、チップセット54等のホスト部20の各種ハードウェア機器への電力の供給を、当該ハードウェア機器の使用状況に応じて制御する。
なおホストCPU51の構成は、上記構成のみに限定されない。ホストCPU51は、レジスタやメモリ制御装置、GPU(Graphical Processing Unit)等の他の構成要素を実装してもよい。
画像生成回路22は、超音波画像を生成するプロセッサである。画像生成回路22は、記憶装置23に記憶されているビームデータをスキャンコンバートして2次元又は3次元のBモード画像やカラードプラ画像を生成する。
記憶装置23は、大容量のHDD(Hard Disk Drive)やSSD(Solid State Drive)、フラッシュメモリ等により構成される。一例として、記憶装置23は、送受信制御回路14から供給されるビームデータを保存する。他の例として、記憶装置23は、画像生成回路22から供給される超音波画像や付加情報等を記憶する。
表示機器24は、液晶ディスプレイ、有機ELディスプレイ、LEDディスプレイ、プラズマディスプレイ、CRTディスプレイ等の任意のディスプレイである。表示機器24は、一例として、画像生成回路22から出力される超音波画像を表示する。他の例として、表示機器24は、各種の診断用パラメータを表示する。
操作機器25は、操作者からの各種指示を受け付けるマンマシーンインタフェース(Man-Machine Interface)である。具体的には、操作機器25は、マウス、キーボード、パネルスイッチ、スライダースイッチ、トラックボール、ロータリーエンコーダ、操作パネル、およびタッチコマンドスクリーン(TCS:Touch Command Screen)である。操作機器25は、超音波診断装置100に対して各種の診断モードや診断モードに付随する各種のパラメータを入力する。
電源回路26は、ホスト制御回路21や画像生成回路22、記憶装置23、表示機器24、操作機器25、生体情報収集器200等のホスト部20に収容又は接続されているハードウェア機器に電力を供給する。本実施形態においては一例として電源回路26は、ホスト制御回路21を介して画像生成回路22、記憶装置23、表示機器24、操作機器25、生体情報収集器200に電力を供給するものとする。
生体情報収集器200は、ホスト部20との間で有線又は無線を介して通信可能に接続されている。生体情報収集器200は、被検体の血圧や脈拍等の生体情報を収集する。生体情報収集器200にはハードウェアタイマ201が設けられている。ハードウェアタイマ201の構成は、ハードウェアタイマ31と同様である。なお、生体情報収集器200は、本体部10に接続されてもよい。
本体部10と生体情報収集器200とは機器部に分類する事が可能である。機器部は、超音波画像診断に使用するハードウェア機器とハードウェアタイマとを有する。ハードウェア機器としては、超音波プローブ11や送信回路12、受信回路13、送受信制御回路14、信号処理回路15、メモリ16、電源回路17、ハードウェアタイマ31、生体情報収集器200が挙げられる。ハードウェアタイマとしては、送受信制御回路14に含まれるハードウェアタイマ31や生体情報収集器200に含まれるハードウェアタイマ201が挙げられる。ホスト部20は当該機器部に接続され、当該ハードウェア機器に制御データを送信する。
以下、本実施形態に係る超音波診断装置100の詳細について説明する。
上記の通り、ホスト制御回路21は、超音波診断装置100に収容され又は接続される各種ハードウェア機器に一連の制御データの系列を送信する。ホスト制御回路21と本体部10とは高速通信が可能な外部バスにより接続されている。このような外部バスとしては、例えば、高速シリアル通信が可能なPCI_Exprees(以下、PCIeと表記する)が用いられる。一方、本体部10内のハードウェア機器間、本体部10と超音波プローブ11との間、ホスト部20と生体情報収集器200との間は、PCIeに比してデータ転送速度が低い低速シリアル通信で接続されている。従って、ホスト制御回路21が本体部10のハードウェア機器に一連の制御データの系列を送信する際、制御データの渋滞を回避するため、制御データの間に既定の時間間隔(以下、待ち時間と呼ぶ)をあける必要がある。
また、消費電力削減のため、電力制御回路55によるパワーマネージメント機能により、ホスト制御回路21に収容又は接続されているハードウェア機器が使われていない時や使用頻度が少ないときには、当該ハードウェア機器への電力の供給を低減又は停止させている。動作停止状態(休止状態)から動作可能状態に移行するために電力の供給を再開したとしても、ハードウェア機器が安定して動作可能な活動可能に移行するまでに時間を要する。動作停止状態から動作可能状態に移行するまでの間、ハードウェア機器への制御データの設定を待つことになる。この移行期間の影響で、連続する制御データ間に予め設けていた待ち時間が変わってしまう。そこで、変わってしまった待ち時間の補正を行う。制御データ間待ち時間は、制御するハードウェア機器に応じて異なるが、数usecから数msecまでの値に設定されることが多い。
ここで、制御データの設定処理の問題点について2点の具体例を示す。具体例1:生体情報収集器200は独立マイコン制御機器になっている。電源回路26から電源が供給されたり、解除されたりすると、生体情報収集器200のマイコンが起動する。動作停止状態から動作可能状態への移行時間としては、数usec~数msecを要する。マイコンが完全に立ち上がる前にホスト制御回路21が生体情報収集開始命令を送信すると、生体情報収集器200が当該命令を失う場合がある。具体例2:上記の通り、ホスト制御回路21と本体部10との間は高速PCIeにより接続されているが、本体部内のハードウェア機器はPCIe通信に比してデータ転送速度の遅い通信手段を用いて接続されている。遅い通信に対して読み書き(Read/Write)する時には、通信速度を考慮して、通信完了までの待ち時間が必要だが、これを待たずに次のアクセスをしてしまうと、転送中のデータが変わってしまったり、読み出し値が間違ったりして、ハードウェア機器の誤動作を起こす恐れがある。
ここで、図6を参照しながら、本実施形態に対する比較例に係る制御データの設定処理の問題点について説明する。図6は、比較例に係る制御データの設定処理の流れを示す図である。より詳細には、図6は、一連の制御データD1と制御データD2とを待ち時間WTをあけて、超音波診断装置100のあるハードウェア機器に設定するときの流れを示している。ハードウェア機器は、超音波プローブ11、送信回路12、受信回路13、送受信制御回路14、信号処理回路15、メモリ16、電源回路17、生体情報収集器200等の超音波診断装置100に収容又は接続される如何なる機器でもよい。ホストCPU51は、動作停止状態にある機器と動作可能状態にある機器とに分けて記述される。動作停止状態にある機器の一例としてチップセット54が記述され、動作可能状態にある機器の一例としてソフトウェアが記述される。ソフトウェアは、ホストCPU51のうちのCPUコア53により実現されるため、ハードウェアとしてはCPUコア53を意味する。
操作者が操作機器25を介して超音波診断装置のモード変更等を指示した場合、CPUコア53は、画像診断プログラム等のソフトウェアを実行する。チップセット54は、電力制御回路55により瞬時に動作停止状態から動作可能状態に復帰することはできず、動作停止状態から動作可能状態への移行期にあるものとする。ソフトウェアは、制御データD1を設定先のハードウェア機器に送信するため、まず、制御データD1の設定命令をチップセット54に送信する(ステップSZ1)。チップセット54は、動作可能状態にないため、ハードウェア機器に制御データD1を送信することはできない。ステップSZ1が行われるとホストCPUのソフトウェアは、ソフトウェアタイマを使用して待ち時間WTのカウントを開始する(ステップSZ2)。ソフトウェアタイマとしては、例えば、C言語のsleep関数が使用される。ステップSZ2の後、チップセット54が動作可能状態に復帰するものとする。
動作可能状態に復帰するとチップセット54は、設定命令に従い制御データD1を、PCIe等の外部バスを介して、設定先のハードウェア機器に送信する。当該ハードウェア機器が制御データD1を受信すると、当該ハードウェア機器に制御データD1が設定される。ソフトウェアは、待ち時間WTのカウントが完了すると(ステップSZ4)、制御データD2の設定命令をチップセット54に供給し(ステップSZ5)、チップセット54は、設定命令に従い制御データD2を、PCIe等の外部バスを介して、設定先のハードウェア機器に供給し、当該ハードウェア機器に設定する。
上記の通り比較例においては、CPUコア53がソフトウェアタイマを使用することにより待ち時間WTを確保することを試みている。動作停止状態から動作可能状態に移行するまでに時間を要するので、ソフトウェアが制御データD1の設定命令を下す時点(ステップSZ1)から、実際にチップセット54等がこれを実行し、本体部10等のハードウェア機器にPCIe等の外部バスを介して送信する時点(ステップSZ3)までにタイムラグが生じる場合がある。一方、ソフトウェアは、設定命令を下した後(ステップSZ1)、待ち時間WTのカウントを行っている(ステップSZ2)。従って、実際に制御データD1をハードウェア機器に送信する時点(ステップSZ3)と制御データD2をハードウェア機器に送信する時点(ステップSZ6)との時間間隔が待ち時間WTより短くなる。このため、設定先のハードウェア機器が誤動作する場合がある。
本実施形態に係る超音波診断装置100は、本体部10とホスト制御回路21とを有する。本体部10は、超音波画像診断に使用するハードウェア機器とハードウェアタイマ31とを有する。ホスト制御回路21は、第1の制御データから既定の待ち時間の経過後に第2の制御データを送信する場合、第1の制御データの送信を契機としてハードウェアタイマ31,201との協働により既定の待ち時間をカウントし、既定の待ち時間のカウントの完了を契機として第2の制御データを送信する。上記の構成により、待ち時間を確実に確保することを試みる。以下、本実施形態に係る制御データの設定処理例を詳細に説明する。なお、以下の説明においては、具体的に説明するため、制御データの設定先のハードウェア機器は、本体部10の送受信制御回路14、又は送受信制御回路14に接続されている超音波プローブ11、送信回路12、受信回路13、信号処理回路15、メモリ16、電源回路17等であり、ハードウェアタイマは送受信制御回路14に設けられたハードウェアタイマ31であるとする。なお、本実施形態は他のハードウェア機器及び他のハードウェアタイマにも同様に適用可能である。
(実施例1)
実施例1に係るホスト制御回路21は、ハードウェアタイマ31とソフトウェアタイマとの協働により待ち時間WTをカウントする。より詳細には、ホスト制御回路21は、ソフトウェアタイマによる時間のカウントとハードウェアタイマ31に対するポーリング(Polling)とに基づいて、待ち時間WTをカウントする。なお、実施例1に係るハードウェアタイマ31は、例えば1usecや1msec単位のカウンタを想定する。ハードウェアタイマ31は、インクリメントによりカウントするように構成されている。
図3は、実施例1に係る制御データの設定処理例を示す図である。図3の設定処理は、一連の制御データD1と制御データD2とをハードウェア機器に設定する処理を例示している。ステップSA1前においてホストCPU51のチップセット54は、電力制御回路55により動作停止状態にあり、操作機器25による操作者からのモード変更指示を契機として、電力制御回路55により動作可能状態への復帰を開始する。しかし、チップセット54は、ステップSA1の開始時において動作停止状態から動作可能状態に移行している途中であるものとする。CPUコア53は、ステップSA1の開始時において動作可能状態にあるとする。
図3に示すように、まず、ホスト制御回路21のホストCPU51のソフトウェア(CPUコア53)は、操作機器25による操作者からの指示に従い、制御データD1を設定先のハードウェア機器に送信するため、制御データD1の設定命令をチップセット54に送信する(ステップSA1)。チップセット54は、ステップSA1の時点では動作可能状態になく、制御データD1をハードウェア機器に送信することはできないものとする。
ステップSA1が行われるとソフトウェアは、ソフトウェアタイマを使用して、待ち時間WTのカウントを開始する(ステップSA2)。待ち時間WTは、制御データD1及びD2の種類に応じて予め設定されている。
ステップSA2が行われるとソフトウェアは、ハードウェアタイマ31からの時刻情報HT1の要求命令をチップセットに送信する(ステップSA3)。チップセット54は、ステップSA3の時点でも動作可能状態に復帰しておらず、時刻情報HT1の要求をハードウェア機器に送信できていないものとする。
ステップSA3の後、チップセット54が動作可能状態に復帰するものとする。動作可能状態に復帰するとチップセット54は、ステップSA1の設定命令に従い、ハードウェア機器に制御データD1を送信する(ステップSA4)。ハードウェア機器が制御データD1を受信すると、当該ハードウェア機器に制御データD1が設定される。
また、チップセット54は、ステップSA3の要求命令に従い、ハードウェアタイマ31に時刻情報HT1を要求する(ステップSA5)。ハードウェアタイマ31は、当該要求に応答して、当該要求を受けた時刻又はそれに近接する時刻を時刻情報HT1としてチップセットに供給する(ステップSA6)。時刻情報HT1は、制御データD1がハードウェア機器に送信された時刻と同視することが可能である。チップセット54は、時刻情報HT1をソフトウェアに供給する(ステップSA7)。ソフトウェアは、時刻情報HT1を保持する。
その後、ソフトウェアは、ソフトウェアタイマによる待ち時間WTのカウントを完了する(ステップSA8)。ステップSA8が行われるとソフトウェアは、ハードウェアタイマ31からの時刻情報HT2の要求命令をチップセット54に送信し(ステップSA9)、チップセット54は、当該要求命令に従い時刻情報HT2をハードウェアタイマ31に要求する(ステップSA10)。ハードウェアタイマ31は、当該要求に応答して、当該要求を受けた時刻を時刻情報HT2としてチップセット54に送信し(ステップSA11)、チップセット54は時刻情報HT2をソフトウェアに送信する(ステップSA12)。
ステップSA12が行われるとソフトウェアは、時刻情報HT2と時刻情報HT1との差分が待ち時間WT以上であるか否かを判定する(ステップSA13)。差分が待ち時間WT以上でないと判定した場合(ステップSA13:NO)、ソフトウェアは、ステップSA9~SA12を繰り返し、ハードウェアタイマ31から最新の時刻情報HT2を要求する。ステップSA13において時刻情報HT2と時刻情報HT1との差分が待ち時間WT以上であると判定された場合(ステップSA13:YES)、ソフトウェアは、制御データD2の設定命令をチップセット54に送信し(ステップSA14)、チップセット54は、当該要求に従い制御データD2をハードウェア機器に送信する(ステップSA15)。
以上により、実施例1に係る制御データの設定処理が終了する。なお、図3に示す時系列は一例でありこれに限定されない。チップセット54が活動停止状態から活動可能状態に復帰するまでの時間は、状況に応じて種々様々であり、制御データD1及び時刻情報HT1をハードウェア機器に送信する時刻は、図3に示すような要求命令(ステップSA3)の後であることに限定されず、待ち時間WTのカウントの開始(ステップSA2)から要求命令(ステップSA3)の間の場合もあるし、設定命令(ステップSA1)と待ち時間WTのカウントの開始(ステップSA2)との間の場合もある。
上記の通り、実施例1に係るホスト制御回路21は、制御データD1の送信を契機として、ソフトウェアタイマを使用して待ち時間WTのカウントを開始すると共に、ハードウェアタイマ31から時刻情報HT1を収集する。ホスト制御回路21は、ソフトウェアタイマを使用した待ち時間WTのカウントの完了を契機として、ハードウェアタイマ31から時刻情報HT2を収集する。ホスト制御回路21は、時刻情報HT1と時刻情報HT2との差分が待ち時間WT以上でない場合、所定時間の経過を契機として、待ち時間WTを再び収集し、差分が待ち時間WT以上である場合、制御データD2をハードウェア機器に送信する。このように、ホスト制御回路21は、ソフトウェアタイマによる待ち時間WTのカウントの完了を確認すると共に、制御データD1及びD2の供給先のハードウェア機器に設けられたハードウェアタイマ31をポーリングすることにより待ち時間WTを確保する。これにより、ホストCPU51が動作停止状態から動作可能状態に移行した直後であっても、制御データD1と制御データD2との間に確実に待ち時間WTを確保することが可能になる。
(実施例2)
実施例2に係るホスト制御回路21は、ハードウェアタイマ31による待ち時間のカウントの完了を契機とした割り込み(Interrupt)を利用して、待ち時間をカウントする。実施例2に係るハードウェアタイマ31は、デクリメントによりカウントするように構成されている。デクリメントカウンタの場合、ハードウェアタイマ31は、値が0になったことを契機として、ホスト制御回路21のホストCPUへ割り込みを送信することにより、カウントが完了したことを通知する。
図4は、実施例2に係る制御データの設定処理例を示す図である。図4の設定処理は、図3の設定処理と同様、一連の制御データD1と制御データD2とを送受信制御回路14等の本体部10に設けられているハードウェア機器に設定する処理を例示している。ステップSB1前においてホストCPU51のチップセット54は、電力制御回路55により動作停止状態にあり、操作機器25による操作者からのモード変更指示を契機として、電力制御回路55により動作可能状態への復帰を開始する。しかし、チップセット54は、ステップSB1の開始時において動作停止状態から動作可能状態に移行している途中であるものとする。CPUコア53は、ステップSB1の開始時において動作可能状態にあるとする。
図4に示すように、まず、ホスト制御回路21のホストCPU51のソフトウェアは、操作機器25による操作者からの指示に従い、制御データD1を設定先のハードウェア機器に送信するため、制御データD1の設定命令をチップセット54に送信する(ステップSB1)。チップセット54は、ステップSB1の時点では動作可能状態に復帰しておらず、制御データD1をハードウェア機器に送信することはできないものとする。
ステップSB1が行われるとソフトウェアは、待ち時間WTをハードウェアタイマ31に送信するため、待ち時間WTと共にカウント命令をチップセット54に送信する(ステップSB2)。チップセット54は、ステップSB2の時点でも動作可能状態に復帰しておらず、カウント命令をハードウェアタイマ31に送信することはできないものとする。
ステップSB2の後、チップセット54が動作可能状態に移行するものとする。動作可能状態に復帰するとチップセット54は、ステップSB1の設定命令に従い、ハードウェア機器に制御データD1を送信する(ステップSB3)。ハードウェア機器が制御データD1を受信すると、当該ハードウェア機器に制御データD1が設定される。
また、チップセット54は、ステップSB2のカウント命令に従い、ハードウェアタイマ31に待ち時間WTを送信してカウントを指示する(ステップSB4)。ステップSB4が行われるとハードウェアタイマ31は、待ち時間WTのカウントを開始する(ステップSB5)。ハードウェアタイマ31は、待ち時間WTをデクリメントすることによりカウントする。そして待ち時間WTが0になるとハードウェアタイマ31は、待ち時間WTのカウントを完了する(ステップSB6)。
ステップSB6が行われるとハードウェアタイマ31は、カウントが完了した旨を表す完了情報を、チップセット54を経由してソフトウェアに送信する。具体的には、ハードウェアタイマ31は、完了情報をチップセット54に送信し(ステップSB7)、チップセットは、完了情報をソフトウェアに送信する(ステップSB8)。ステップSB8が行われるとソフトウェアは、制御データD2の設定命令をチップセット54に供給し(ステップSB9)、チップセット54は、当該要求に従い制御データD2をハードウェア機器に供給する(ステップSB10)。
以上により、実施例2に係る制御データの設定処理が終了する。なお、図4に示す時系列は一例でありこれに限定されない。チップセット54が活動停止状態から活動可能状態に復帰するまでの時間は、状況に応じて種々様々であり、制御データD1をハードウェア機器に送信する時刻は、図4に示すようなカウント命令(ステップSB2)の後であることに限定されず、設定命令(ステップSB1)とカウント命令(ステップSB2)との間の場合もある。
上記の通り、実施例2に係るホスト制御回路21は、制御データD1の送信を契機として、ハードウェアタイマ31に対して待ち時間WTのカウントの要求を送信し、ハードウェアタイマ31は、当該要求の受信を契機として、待ち時間WTのカウントを開始し、待ち時間WTのカウントの完了を契機として、カウントが完了した事を表す完了情報を送信する。ホスト制御回路21は、完了情報の受信を契機として、制御データD2をハードウェア機器に送信する。このようにホスト制御回路21は、制御データD1及びD2の供給先のハードウェアタイマ31に待ち時間WTをカウントさせ、ハードウェアタイマ31からカウントが完了した事が割り込みとして通知させることにより、待ち時間WTを確保する。これにより、ホストCPU51が動作停止状態から動作可能状態に移行した直後であっても、制御データD1と制御データD2との間に確実に待ち時間WTを確保することが可能になる。
(実施例3)
実施例3に係るホスト制御回路21は、複数種類の制御データ系列をハードウェア機器に設定する。制御データ系列の種類の個数は、2以上であれば幾つでも構わない。また、設定対象のハードウェア機器は、同一機器でもよいし、異なる機器でもよい。実施例3に係る本体部10は、ハードウェアタイマ31として、複数個のハードウェアタイマ31を有する。ホスト制御回路21は、複数の待ち時間で複数の制御データ系列を送信する場合、複数個のハードウェアタイマ31を利用して複数の待ち時間をカウントする。
一例として、ホスト制御回路21は、第1種の制御データ系列DAと第2種の制御データ系列DBとを単一のハードウェア機器に送信するものとする。制御データDAについては、第1の制御データDA1と第1の制御データDA1に後続する第2の制御データDA2とを待ち時間WTAを空けて設定するものとし、制御データDBについては、第1の制御データDB1と第1の制御データDB1に後続する第2の制御データDB2とを待ち時間WTBを空けて設定するものとする。
図5は、実施例3に係る複数制御データの設定処理例を示す図である。図5に示すように、ホスト制御回路21は、制御データ系列DAと制御データ系列DBとについて、実施例1に係る設定処理を並列的に実行する。制御データ系列DAのためのハードウェアタイマ31を「ハードウェアタイマA」と表記し、制御データ系列DBのためのハードウェアタイマ31を「ハードウェアタイマB」と表記する。ハードウェアタイマAとハードウェアタイマBとは、カウントの単位時間が異なっているものとする。より詳細には、ハードウェアタイマAの単位時間は1usecであり、ハードウェアタイマBの単位時間は1msecであるとする。また、図5のステップSC1前においてホストCPU51のチップセット54は、電力制御回路55により動作停止状態にあり、操作機器25による操作者からのモード変更指示を契機として、電力制御回路55により動作可能状態への復帰を開始する。しかし、チップセット54は、ステップSC1の開始時において動作停止状態から動作可能状態に移行している途中にあるものとする。CPUコア53は、ステップSC1の開始時において動作可能状態にあるとする。なお、図5においては、簡便のため、チップセット54とソフトウェアとを区別して表記せず、チップセット54とソフトウェアとを包含するホスト制御回路51を表記し、これに伴いタイムラグの図示も省略している。
図5に示すように、ホスト制御回路21は、制御データDA1をハードウェア機器に供給する(ステップSC1)。ステップSC1が行われるとホスト制御回路21は、ソフトウェアタイマを使用して待ち時間WTAのカウントを開始する(ステップSC2)。待ち時間WTAのカウントと同時にホスト制御回路21は、ハードウェアタイマAに時刻情報HTA1を要求し(ステップSC3)、ハードウェアタイマAは第1の時刻情報HTA1をホスト制御回路21に送信する(ステップSC4)。ホスト制御回路21は、受信した第1の時刻情報HTA1を保持する。
また、ホスト制御回路21は、制御データDA1の供給(ステップSC1)後、制御データDB1をハードウェア機器に供給する(ステップSD1)。ステップSD1が行われるとホスト制御回路21は、ソフトウェアタイマを使用して待ち時間WTBのカウントを開始する(ステップSD2)。待ち時間WTBのカウントと同時にホスト制御回路21は、ハードウェアタイマBに時刻情報HTB1を要求し(ステップSD3)、ハードウェアタイマBは第1の時刻情報HTB1をホスト制御回路21に送信する(ステップSD4)。ホスト制御回路21は、受信した第1の時刻情報HTB1を保持する。
待ち時間WTAのカウントが完了すると(ステップSC5)、ホスト制御回路21は、ハードウェアタイマAに時刻情報HTA2を要求し(ステップSC6)、ハードウェアタイマAは第2の時刻情報HTA2をホスト制御回路21に送信する(ステップSC7)。そしてホスト制御回路21は、時刻情報HTA2と時刻情報HTA1との差分が待ち時間WTA以上であるか否かを判定する(ステップSC8)。差分が待ち時間WTA以上でないと判定した場合(ステップSC8:NO)、ホスト制御回路21は、ステップSC6~SC7を繰り返し、ハードウェアタイマ31から最新の時刻情報HTA2を要求する。ステップSC8において時刻情報HTA2と時刻情報HTA1との差分が待ち時間WTA以上であると判定された場合(ステップSC8:YES)、ホスト制御回路21は、制御データDA2を、ハードウェア機器に供給する(ステップSC9)。
待ち時間WTBのカウントが完了すると(ステップSD5)、ホスト制御回路21は、ハードウェアタイマBに時刻情報HTB2を要求し(ステップSD6)、ハードウェアタイマBは第2の時刻情報HTB2をホスト制御回路21に送信する(ステップSD7)。そしてホスト制御回路21は、時刻情報HTB2と時刻情報HTB1との差分が待ち時間WTB以上であるか否かを判定する(ステップSD8)。差分が待ち時間WTB以上でないと判定した場合(ステップSD8:NO)、ホスト制御回路21は、ステップSD6~SD7を繰り返し、ハードウェアタイマ31から最新の時刻情報HTB2を要求する。ステップSD8において時刻情報HTB2と時刻情報HTB1との差分が待ち時間WTB以上であると判定された場合(ステップSD8:YES)、ホスト制御回路21は、制御データDB2を、ハードウェア機器に供給する(ステップSD9)。
以上により、実施例3に係る複数制御データの設定処理が終了する。
なお、複数制御データの設定処理は上記処理例に限定されない。例えば、ホスト制御回路21は、制御データ系列DAと制御データ系列DBとについて、実施例2に係る設定処理を並列的に実行してもよい。また、ハードウェアタイマA及びBは、単位時間が異なるものとしたが、同一でもよい。また、実施例3は、1個のハードウェアタイマのみを使用して待ち時間WTA及びWTBをカウントしてもよい。実施例3に係るホスト制御回路21は、3種以上の制御データ系列について並列的に実施例1又は実施例2の設定処理を実行してもよい。
(総括)
本実施形態に係る超音波診断装置100によれば、パワーマネージメントが強化されたホストCPU21を使用する場合に起きる制御データの設定遅れに伴う待ち時間が確保できない問題を解決することができる。ひいては、待ち時間を確保できないことで起きていた超音波診断装置100の誤動作を回避又は低減することができる。
ホストCPU21のパワーマネージメントを無効にするか、パワーマネージメントを一時停止することで、上記問題を解決することも可能ではある。しかし、パワーマネージメントを無効にする場合は、消費電力を下げる機能が働なくなるので、消費電力を下げる要求にこたえることができない。また、パワーマネージメントを一時停止する場合、BIOS(Basic Input/ Output System)を変更する必要があるため、市販のATXを使用することができず、カスタムATXを開発する必要があり、ホストCPU21の開発コストが増加する。
本実施形態に係るホストCPU51は市販のATX規格に準拠したCPUを用いることができるので、低消費電力の要求も満たしながら、制御データ設定の仕様をも満足させ、ひいては、低価格、低消費電力、安定的な超音波診断装置100を実現することができる。
以上説明した少なくとも1つの実施形態によれば、系列的に制御データを設定する際に制御データ間の既定の待ち時間を確実に確保することができる。
上記説明において用いた「プロセッサ」という文言は、例えば、CPU、GPU、或いは、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC))、プログラマブル論理デバイス(例えば、単純プログラマブル論理デバイス(Simple Programmable Logic Device:SPLD)、複合プログラマブル論理デバイス(Complex Programmable Logic Device:CPLD)、及びフィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA))等の回路を意味する。プロセッサは記憶回路に保存されたプログラムを読み出し実行することで機能を実現する。なお、記憶回路にプログラムを保存する代わりに、プロセッサの回路内にプログラムを直接組み込むよう構成しても構わない。この場合、プロセッサは回路内に組み込まれたプログラムを読み出し実行することで機能を実現する。一方、プロセッサが例えばASICである場合、プログラムが記憶回路に保存される代わりに、当該機能がプロセッサの回路内に論理回路として直接組み込まれる。なお、本実施形態の各プロセッサは、プロセッサごとに単一の回路として構成される場合に限らず、複数の独立した回路を組み合わせて1つのプロセッサとして構成し、その機能を実現するようにしてもよい。さらに、図1における複数の構成要素を1つのプロセッサへ統合してその機能を実現するようにしてもよい。
いくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、実施形態同士の組み合わせを行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。