(58)【調査した分野】(Int.Cl.,DB名)
メモリの所定領域に書き込まれた複数の転送データの全てを所定の周期でDMA転送するDMAコントローラと、該DMAコントローラからの転送データによってオン/オフに制御されるスイッチとを備えるスイッチ回路で前記スイッチをオン/オフに制御する方法において、
前記転送データは、前記スイッチをオンに制御するためのオンデータ、オフに制御するためのオフデータ又はオン/オフに制御するため以外に用いられる第3のデータであり、
前記所定領域の全域に前記第3のデータを予め書き込んでおき、
前記所定の周期内で前記スイッチをオンに制御すべき位相及びオフに制御すべき位相の夫々にて前記スイッチにDMA転送される転送データの転送元アドレスを算出し、
算出した夫々の転送元アドレスに書き込まれた第3のデータに前記オンデータ及びオフデータを上書きすること
を特徴とするスイッチのオン/オフ制御方法。
前記所定領域内の奇数番目(又は偶数番目)のアドレスの中から、前記スイッチをオンに制御すべき位相及びオフに制御すべき位相の夫々にて前記スイッチにDMA転送される転送データの転送元アドレスを算出し、
前記所定領域内の偶数番目(又は奇数番目)のアドレスのうち、任意のアドレスに書き込まれた第3のデータに他の第3のデータを上書きすること
を特徴とする請求項1から4の何れか1項に記載のスイッチのオン/オフ制御方法。
メモリの所定領域に書き込まれた複数の転送データの全てを所定の周期でDMA転送するDMAコントローラと、該DMAコントローラからの転送データによってオン/オフに制御されるスイッチとを備えるスイッチ回路において、
前記転送データは、前記スイッチをオンに制御するためのオンデータ、オフに制御するためのオフデータ又はオン/オフに制御するため以外に用いられる第3のデータであり、
前記所定領域の全域に前記第3のデータを書き込む書込手段と、
前記所定の周期内で前記スイッチをオンに制御すべき位相及びオフに制御すべき位相の夫々にて前記スイッチにDMA転送される転送データの転送元アドレスを算出する算出手段と、
該算出手段が算出した夫々の転送元アドレスに書き込まれた第3のデータに前記オンデータ及びオフデータを上書きする上書手段と
を備えることを特徴とするスイッチ回路。
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、非特許文献2に開示された技術によれば、CPUが、PWM制御のための1周期分のコマンドをメモリに書き込んだ後にDMA転送の設定及び起動を実行しなければならず、1周期分のコマンドを生成してメモリに書き込む処理の負荷は、依然として軽いと言えるものではなかった。
【0009】
本発明は斯かる事情に鑑みてなされたものであり、その目的とするところは、制御データによって各種動作が制御されるスイッチをオン/オフに制御する際の処理負荷を軽減することが可能なスイッチのオン/オフ制御方法及びスイッチ回路を実現することにある。
【課題を解決するための手段】
【0010】
本発明に係るスイッチのオン/オフ制御方法は、メモリの所定領域に書き込まれた複数の転送データの全てを所定の周期でDMA転送するDMAコントローラと、該DMAコントローラからの転送データによってオン/オフに制御されるスイッチとを備えるスイッチ回路で前記スイッチをオン/オフに制御する方法において、前記転送データは、前記スイッチをオンに制御するためのオンデータ、オフに制御するためのオフデータ又はオン/オフに制御するため以外に用いられる第3のデータであり、前記所定領域の全域に前記第3のデータを予め書き込んでおき、前記所定の周期内で前記スイッチをオンに制御すべき位相及びオフに制御すべき位相の夫々にて前記スイッチにDMA転送される転送データの転送元アドレスを算出し、算出した夫々の転送元アドレスに書き込まれた第3のデータに前記オンデータ及びオフデータを上書きすることを特徴とする。
【0011】
本発明に係るスイッチのオン/オフ制御方法は、前記オンデータ(又はオフデータ)が書き込まれた転送元アドレスの内容に前記第3のデータを上書きし、前記スイッチをオンに制御すべき位相(又はオフに制御すべき位相)にて前記スイッチにDMA転送される転送データの転送元アドレスを更新し、更新した転送元アドレスに書き込まれた第3のデータに前記オンデータ(又はオフデータ)を上書きすることを特徴とする。
【0012】
本発明に係るスイッチのオン/オフ制御方法は、記憶部を用意し、前記オンデータ(又はオフデータ)が書き込まれた転送元アドレスを前記記憶部に記憶し、該記憶部に記憶した転送元アドレス及び更新した転送元アドレスを比較し、比較結果が一致する場合、前記第3のデータの上書き及び前記オンデータ(又はオフデータ)の上書きを禁止することを特徴とする。
【0013】
本発明に係るスイッチのオン/オフ制御方法は、前記オンデータ(又はオフデータ)を、算出又は更新した転送元アドレスと該転送元アドレス
に隣り合うアドレスとに書き込まれた第3のデータに上書きすることを特徴とする。
【0014】
本発明に係るスイッチのオン/オフ制御方法は、第2の記憶部を用意し、前記スイッチ回路は、前記スイッチを複数備え、該複数のスイッチは、前記DMAコントローラからの転送データの1つによって個別にオン及びオフに制御されるようにしてあり、前記所定の周期内で前記スイッチの何れをもオン/オフに制御しない位相の範囲を予め設定し、設定した位相の範囲内で前記スイッチにDMA転送される転送データの転送元アドレスの範囲を前記第2の記憶部に記憶しておき、該第2の記憶部に記憶した転送元アドレスの範囲内の任意のアドレスに書き込まれた第3のデータに他の第3のデータを上書きすることを特徴とする。
【0015】
本発明に係るスイッチのオン/オフ制御方法は、前記所定領域内の奇数番目(又は偶数番目)のアドレスの中から、前記スイッチをオンに制御すべき位相及びオフに制御すべき位相の夫々にて前記スイッチにDMA転送される転送データの転送元アドレスを算出し、前記所定領域内の偶数番目(又は奇数番目)のアドレスのうち、任意のアドレスに書き込まれた第3のデータに他の第3のデータを上書きすることを特徴とする。
【0016】
本発明に係るスイッチのオン/オフ制御方法は、前記所定領域内で相前後してDMA転送される転送データの境界を予め設定し、前記境界より前側(又は後側)の転送データがDMA転送されている間に、後側(又は前側)の任意の転送データに他の転送データを上書きすることを特徴とする。
【0017】
本発明に係るスイッチ回路は、メモリの所定領域に書き込まれた複数の転送データの全てを所定の周期でDMA転送するDMAコントローラと、該DMAコントローラからの転送データによってオン/オフに制御されるスイッチとを備えるスイッチ回路において、前記転送データは、前記スイッチをオンに制御するためのオンデータ、オフに制御するためのオフデータ又はオン/オフに制御するため以外に用いられる第3のデータであり、前記所定領域の全域に前記第3のデータを書き込む書込手段と、前記所定の周期内で前記スイッチをオンに制御すべき位相及びオフに制御すべき位相の夫々にて前記スイッチにDMA転送される転送データの転送元アドレスを算出する算出手段と、該算出手段が算出した夫々の転送元アドレスに書き込まれた第3のデータに前記オンデータ及びオフデータを上書きする上書手段とを備えることを特徴とする。
【0018】
本発明に係るスイッチ回路は、前記オンデータ(又はオフデータ)が書き込まれた転送元アドレスの内容に前記第3のデータを上書きする第2の上書手段と、前記スイッチをオンに制御すべき位相(又はオフに制御すべき位相)にて前記スイッチにDMA転送される転送データの転送元アドレスを更新する更新手段とを備え、前記上書手段は、前記更新手段が更新した転送元アドレスに書き込まれた第3のデータに前記オンデータ(又はオフデータ)を上書きするようにしてあることを特徴とする。
【0019】
本発明に係るスイッチ回路は、前記オンデータ(又はオフデータ)が書き込まれた転送元アドレスを記憶する記憶手段と、該記憶手段が記憶した転送元アドレス及び前記更新手段が更新した転送元アドレスを比較する比較手段と、該比較手段による比較結果が一致する場合、前記第3のデータの上書き及び前記オンデータ(又はオフデータ)の上書きを禁止する禁止手段とを備えることを特徴とする。
【0020】
本発明に係るスイッチ回路は、前記上書手段は、前記オンデータ(又はオフデータ)を、前記算出手段又は更新手段夫々が算出又は更新した転送元アドレスと該転送元アドレス
に隣り合うアドレスとに書き込まれた第3のデータに上書きすることを特徴とする。
【0021】
本発明に係るスイッチ回路は、前記スイッチ回路は、前記スイッチを複数備え、該複数のスイッチは、前記DMAコントローラからの転送データの1つによって個別にオン及びオフに制御されるようにしてあり、前記所定の周期内で前記スイッチの何れをもオン/オフに制御しない位相の範囲が予め設定されており、設定された位相の範囲内で前記スイッチにDMA転送される転送データの転送元アドレスの範囲を記憶する第2の記憶手段と、該第2の記憶手段が記憶した転送元アドレスの範囲内の任意のアドレスに書き込まれた第3のデータに他の第3のデータを上書きする第3の上書手段とを備えることを特徴とする。
【0022】
本発明に係るスイッチ回路は、
前記算出手段は、前記所定領域内の奇数番目(又は偶数番目)のアドレスの中から、前記スイッチをオンに制御すべき位相及びオフに制御すべき位相の夫々にて前記スイッチにDMA転送される転送データの転送元アドレスを算出する
ようにしてあり、前記所定領域内の偶数番目(又は奇数番目)のアドレスのうち、任意のアドレスに書き込まれた第3のデータに他の第3のデータを上書きする第4の上書手
段を備えることを特徴とする。
【0023】
本発明に係るスイッチ回路は、前記所定領域内で相前後してDMA転送される転送データの境界が予め設定されており、
前記上書手段は、前記境界より前側(又は後側)の転送データがDMA転送されている間に、後側(又は前側)の任意の転送データに他の転送データを上書きする
ようにしてあることを特徴とする。
【0024】
本発明にあっては、メモリの所定領域内の全ての転送データを所定の周期でDMA転送し、DMA転送した転送データをスイッチに与えてスイッチを周期的にオン/オフに制御する。各転送データは、スイッチをオン/オフに制御するためのオンデータ/オフデータ、又はスイッチのオン/オフ制御とは無関係の第3のデータであり、そのうちの第3のデータを予め所定領域の全域に書き込でおく。例えば、所定の周期内でスイッチをオン及びオフ夫々に制御すべき位相を取得した場合、又は目標とするデューティが与えられてスイッチをオン及びオフ夫々に制御すべき位相を算出した場合、取得又は算出した夫々の位相にてスイッチにDMA転送される転送データの転送元アドレスを算出し、算出した夫々の転送元アドレスに予め書き込まれた第3のデータにオンデータ及びオフデータを上書きする。
つまり、スイッチのオン/オフ制御とは無関係の固定的な制御データをメモリの所定領域の全域に一律に書き込んでおき、スイッチをオン及びオフ夫々に制御すべき位相に対応するメモリの転送元アドレスの内容に夫々オンデータ及びオフデータを上書きした後に、メモリの所定領域内の全ての転送データを順次DMA転送することにより、オンデータ及びオフデータ夫々が書き込まれた転送元アドレスに応じた位相でスイッチがオン/オフに制御される。
【0025】
本発明にあっては、スイッチをオン/オフに制御する位相の更新に先立ち、オンデータ及び/又はオフデータが書き込まれた更新前の転送元アドレスの内容に第3のデータを上書きする。その後、スイッチをオン及び/又はオフに制御すべき新たな位相にてスイッチにDMA転送される転送データの転送元アドレスを更新する。そして、スイッチのオン制御に係る転送元アドレスを更新した場合は、更新した転送元アドレスの内容にオンデータを上書きし、スイッチのオフ制御に係る転送元アドレスを更新した場合は、更新した転送元アドレスの内容にオフデータを上書きする。
つまり、オンデータ及び/又はオフデータが書き込まれる転送元アドレスを更新する際に、更新前の転送元アドレスの内容に第3のデータを上書きし、上書きに対応して更新した転送元アドレスの内容にオンデータ及び/又はオフデータを上書きすることにより、スイッチがオン及び/又はオフに制御される位相が簡単に更新される。
【0026】
本発明にあっては、更新前のオンデータ及び/又はオフデータが書き込まれた転送元アドレスを記憶部に記憶し、記憶した転送元アドレスと更新後の転送元アドレスとを比較して、一致したアドレスに書き込まれたオンデータ及び/又はオフデータに対する第3データの上書きと、第3データに対するオンデータ及び/又はオフデータの上書きとを禁止する。
これにより、スイッチをオン及び/又はオフに制御すべき位相の更新の前後でオンデータ及び/又はオフデータの転送元アドレスに変化がない場合は、メモリの所定領域内への不要な書き込みが省略される。
【0027】
本発明にあっては、算出した転送元アドレスに書き込まれた第3のデータにオンデータを上書きする場合、算出した転送元アドレスから前/後に離隔したアドレスに書き込まれた第3のデータにもオンデータを上書きする。また、算出した転送元アドレスに書き込まれた第3のデータにオフデータを上書きする場合、算出した転送元アドレスから前/後に離隔したアドレスに書き込まれた第3のデータにもオフデータを上書きする。
これにより、オンデータ及びオフデータの何れか一方又は両方が二度書きされるため、スイッチに対するオン/オフ制御が確実に行われる。
【0028】
本発明にあっては、1つの転送データによって個別にオン及びオフに制御される複数のスイッチの何れをもオン/オフに制御することがない位相の範囲が予め設定される場合、設定された位相の範囲内でスイッチにDMA転送される転送データの転送元アドレスの範囲を第2の記憶部に記憶しておく。この転送元アドレスの範囲内には常に第3のデータが保持されている。この状態で例えばスイッチにオン/オフ制御以外の他の制御を行う場合、第2の記憶部に記憶した転送元アドレスの範囲内の任意のアドレスに書き込まれた第3のデータに、上記他の制御に対応した他の第3のデータを上書きする。
これにより、他の第3のデータを上書きしても差し支えない転送元アドレスのサーチが必要になることも、スイッチに対するオン/オフ制御に影響を与えることもなしに、スイッチに対する他の制御が行われる。
【0029】
本発明にあっては、その内容にオンデータ及びオフデータの夫々を上書きすべきアドレスは、両方ともメモリの所定領域内の奇数番目のアドレスの中から算出するか、又は両方とも偶数番目のアドレスの中から算出する。この状態で例えばスイッチにオン/オフ制御以外の他の制御を行う場合、オンデータ及びオフデータを奇数番目のアドレスの内容に上書きするときは、偶数番目のアドレスのうち、任意のアドレスの内容に、上記他の制御に対応した他の第3のデータを上書きする。また、オンデータ及びオフデータを偶数番目のアドレスの内容に上書きするときは、奇数番目のアドレスのうち、任意のアドレスの内容に、上記制御に対応した他の第3のデータを上書きする。
これにより、他の第3のデータを上書きしても差し支えない転送元アドレスのサーチが必要になることも、スイッチに対するオン/オフ制御に影響を与えることもなしに、スイッチに対する他の制御が随時行われる。
【0030】
本発明にあっては、メモリの所定領域内の転送データを更新する処理が、例えば時間的に前後に分割される場合、分割された各処理で更新すべき転送データの境界を予め設定する。そして、設定した境界より前側の転送データがDMA転送されている間に、後側の任意の転送データに他の転送データを上書きして更新する。また、設定した境界より後側の転送データがDMA転送されている間に、前側の任意の転送データに他の転送データを上書きして更新する。
これにより、スイッチに対するオン/オフ制御に影響を与えることなく、スイッチがオン/オフに制御される位相が更新される。
【発明の効果】
【0031】
本発明によれば、スイッチのオン/オフ制御とは無関係の固定的な制御データをメモリの所定領域の全域に一律に書き込んでおき、そのうちの2つの制御データ夫々にオンデータ及びオフデータを上書きしてDMA転送を起動することにより、スイッチがオン/オフに制御される。
従って、制御データによって各種動作が制御されるスイッチをオン/オフに制御する際の処理負荷を軽減することが可能となる。
【発明を実施するための形態】
【0033】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。ここでは、本発明に係るスイッチ装置が備えるスイッチとして、Infineon社製のSPOCに代表されるインテリジェントパワーデバイス、具体的にはSPI通信インタフェースを有する複数チャンネルIPD(以下、単にIPDという)を用いた例について説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係るスイッチ回路の構成例を示すブロック図である。スイッチ回路は、CPU11を有するマイクロコンピュータからなる。CPU11は、プログラム等の情報を記憶するROM12、一時的に発生した情報を記憶するRAM(メモリ、記憶部及び第2の記憶部に相当)13、定周期の信号を発生するタイマ14、DMA要求に対するDMA転送を制御するDMAコントローラ15、割込要求を処理する割込コントローラ16、及びSPIに準拠する通信を行うSPIコントローラ17と互いにバス接続されている。
【0034】
スイッチ回路は、また、4つのMOSFET(以下、単にFETという)181を有するIPD(スイッチに相当)18を備え、SPIコントローラ17及びIPD18の間は、SPI通信におけるマスタ出力/スレーブ入力(MOSI:Master Out Slave In )、マスタ入力/スレーブ出力(MISO:Master In Slave Out )、及びクロック(SCK:Serial Clock )の各信号線によって接続されている。本実施の形態1では、SPIコントローラ17がマスタに、IPD18が内蔵する不図示のSPIインタフェースがスレーブに設定されている。
【0035】
RAM13は、DMAコントローラ15によるDMA転送によってSPIコントローラ17に転送される複数のコマンド(転送データに相当)が書き込まれるコマンドテーブル(所定領域に相当)131と、DMA転送によってSPIコントローラ17から転送されるレスポンスが書き込まれるレスポンステーブル132とを含んでなる。コマンドテーブル131のサイズによって、上述のFET181がオン/オフに制御されるときのデューティの精度が決定付けられる(詳細については後述する)。
【0036】
タイマ14は、DMAコントローラ15がコマンドテーブル131及びレスポンステーブル132夫々を対象にDMA転送を行うためのトリガとなるDMA要求を定周期で発生する。タイマ14が発生したDMA要求は、DMAコントローラ15の2つのDMAチャネル(後述する)に各別に与えられる。
【0037】
DMAコントローラ15は、複数のDMA要求を夫々受け付けるためのDMAチャネルを複数有する。DMAコントローラ15は、何れかのDMA要求を受け付けた場合、CPU11に対してバスのホールドを要求する信号(所謂HOLD信号)を与え、CPU11からアクノレッジ信号(所謂HOLDA信号)が与えられたときに、受け付けたDMA要求に対するDMA転送を実行する。夫々のDMAチャネルについて設定された一連のDMA転送が完了した場合、DMAコントローラ15は、割込コントローラ16に対してDMA完了の割込要求を与える。
【0038】
DMAコントローラ15は、各DMAチャネルについて、例えばDMAの転送元アドレスを示すレジスタと、DMAの転送先アドレスを示すレジスタと、DMAの転送回数を示すレジスタと、DMAの転送サイズ、転送元アドレスのカウント方向(インクリメント/デクリメント/固定)及び転送先アドレスのカウント方向(インクリメント/デクリメント/固定)を示すレジスタと、DMA転送の許可/禁止を示すレジスタとを有する。1回のDMA転送が行われる都度、転送回数は1つだけデクリメントされる。
【0039】
割込コントローラ16は、複数の割込要求を受け付け可能に構成されており、何れかの割込要求を受け付けた場合、CPU11に対してインタラプトを要求する信号(所謂INT信号)を与え、CPU11からアクノレッジ信号(所謂INTA信号)が与えられたときに、各割込要求に対応する割込ベクタをバスに送出する。バスに送出された割込ベクタがCPU11に読み込まれた場合、CPU11が各割込要求に対応する割込処理を実行するようになっている。本実施の形態1では、DMA完了の割込要求の優先度を最も高くしてある。
【0040】
SPIコントローラ17は、MOSIの信号線に送出するコマンドをバッファリングする送信バッファと、MISOの信号線から受信したレスポンスをバッファリングする受信バッファとを有する。送信バッファ及び受信バッファの夫々は、メモリにマッピングされたアドレス、又は入出力ポートのアドレスが割り当てられており、CPU11又はDMAコントローラ15からバスを介してアクセスされる。本実施の形態1では、コマンドが送信される間、且つレスポンスが受信される間にのみ、SPIコントローラ17がSCKの信号線にクロックを送出する。
【0041】
IPD18は、MOSIの信号線からコマンドを受信してコマンドに応じた処理を行い、MISOの信号線に処理結果としてのレスポンスを送出する。IPD18が有する4つのFET181の夫々は、Nチャネル型のMOSFETからなり、夫々のドレインが+B電源に接続され、夫々のソースからの出力1,2,3,4が負荷19に供給される。4つのFET181の夫々は、MOSIの信号線から受信される出力コマンドに含まれる相異なる1ビットによってオン/オフに制御される。
【0042】
上述の構成において、コマンドテーブル131の先頭アドレスが転送元アドレスに設定されるDMA転送では、転送先アドレスがSPIコントローラ17の送信バッファのアドレスに設定され、転送先アドレスのカウント方向が“固定”に設定される。転送サイズは、IPD18のコマンド長に合わせて1バイトに設定される。また、レスポンステーブル132の先頭アドレスが転送先アドレスに設定されるDMA転送では、転送元アドレスがSPIコントローラ17の受信バッファのアドレスに設定され、転送元アドレスのカウント方向が“固定”に設定され、転送サイズが1バイトに設定される。コマンドテーブル131及びレスポンステーブル132夫々の先頭アドレスに設定された転送元アドレス及び転送先アドレスは、1回のDMA転送が行われる都度、1つだけインクリメントされる。
【0043】
これにより、コマンドテーブル131に書き込まれたコマンドは、DMAコントローラ15が制御するDMA転送により、タイマ14が発生するDMA要求の周期で順次SPIコントローラ17の送信バッファに転送されてIPD18に送信される。また、SPIコントローラ17がIPD18から受信して受信バッファにバッファリングしたレスポンスは、DMAコントローラ15が制御するDMA転送により、タイマ14が発生したDMA要求の周期で順次レスポンステーブル132に転送される。
【0044】
ところで、SPIコントローラ17がSCKの信号線に送出するクロックは、SPIコントローラ17が有する不図示の分周器が、不図示の原クロックを分周して生成した信号に基づいている。SPIコントローラ17が1つのコマンドをMOSIの信号線に送出するには、少なくとも上記クロックの周期の8倍に相当する時間が必要であるが、この時間よりも、SPIコントローラ17の送信バッファにコマンドがDMA転送される時間間隔の方が十分長くなるようにしてある。換言すれば、タイマ14が発生するDMA要求の周期の1/8の周期よりも、上記クロックの周期の方が十分短くなるように、上記分周器の分周比を選択してある。
【0045】
次に、コマンドテーブル131及びレスポンステーブル132の夫々とIPD18との間で授受されるコマンド及びレスポンスについて説明する。
図2は、本発明の実施の形態1に係るスイッチ回路におけるコマンド及びレスポンスの授受を説明するためのタイミング図である。
図2に示す6つのタイミング図では、何れも同一の時間軸を横軸にしてあり、図の上からコマンドテーブル131からのDMA転送の実行状態、DMAコントローラ15から割込コントローラ16に与えられるDMA完了割込のオン/オフ状態、MOSIの信号線上のデータの内容、MISOの信号線上のデータの内容、SPIコントローラ17の受信バッファの内容、及びレスポンステーブル132へのDMA転送の実行状態を示してある。
【0046】
コマンドテーブル131には、例えば先頭アドレスから順に、コマンドAからコマンドZまでの26のコマンドが書き込まれているものとする。各コマンドは、タイマ14が発生したDMA要求の周期でDMA転送される。コマンドテーブル131の末尾に書き込まれたコマンドZが時刻t1でSPIコントローラ17の送信バッファ(以下、単に送信バッファという)にDMA転送された場合、MOSIの信号線上にコマンドZが送出される。コマンドZが送出される間にMISOの信号線上に送出されるレスポンスは、コマンドZの1つ前のコマンドYに対するレスポンスYである。
【0047】
一方、レスポンスYより更に1つ前のレスポンスXが受信されてからレスポンスYの受信が完了するまでの間、SPIコントローラ17の受信バッファ(以下、単に受信バッファという)にはレスポンスXが保持されている。このレスポンスXは、時刻t1におけるコマンドZのDMA転送とほぼ同時にレスポンステーブル132にDMA転送される。DMAコントローラ15によるDMA転送が2つ同時に行われることはないから、コマンドZのDMA転送とレスポンスXのDMA転送との間に僅かな時間差が生じるが、ここではその時間差を無視する。
【0048】
さて、時刻t1におけるDMA転送が完了した場合、DMAコントローラ15から割込コントローラ16に対してDMA完了割込が発生し、このDMA完了割込に応じた割込処理にて、DMAコントローラ15に対する設定が行われる。その結果、コマンドテーブル131から送信バッファへのDMA転送の転送元アドレスは、コマンドテーブル131の先頭アドレス、即ちコマンドAが書き込まれたアドレスに設定される。また、受信バッファからレスポンステーブル132へのDMA転送の転送先アドレスは、レスポンステーブル132の先頭アドレスに設定される。
【0049】
その後、時刻t2では、コマンドテーブル131の先頭アドレスに書き込まれたコマンドAが送信バッファにDMA転送されてMOSIの信号線上に送出され、その間にMISOの信号線上には、レスポンスZが送出される、また、レスポンスYが受信されてからレスポンスZの受信が完了するまでの間、受信バッファにはレスポンスYが保持されており、このレスポンスYが、時刻t2におけるコマンドAのDMA転送とほぼ同時にレスポンステーブル132の先頭アドレスに転送される。
【0050】
以下同様にして、時刻t3では、コマンドテーブル131の2番目のアドレスに書き込まれたコマンドBが送信バッファにDMA転送され、受信バッファに保持されたレスポンスZが、レスポンステーブル132の2番目のアドレスに転送される。また、時刻t4では、コマンドテーブル131の3番目のアドレスに書き込まれたコマンドCが送信バッファにDMA転送され、受信バッファに保持されたレスポンスAが、レスポンステーブル132の3番目のアドレスに転送される。このように、コマンドが書き込まれているアドレスのオフセット(テーブルの先頭アドレスとの差分)と、コマンドに対応するレスポンスが転送されるアドレスのオフセットとの間には、アドレス2つ分のずれが生じることに留意する。
【0051】
次に、コマンドテーブル131の内容によってFET181をオン/オフに制御する具体例について説明する。
図3は、本発明の実施の形態1に係るスイッチ回路におけるコマンドとFET181のオン/オフ制御との対応を示す説明図である。
図3では、FET181がオン/オフに制御される周期(所定の周期に相当)における位相(単位はラジアン:以下同様)を横軸にしてあり、図の上段から、FET181をオン/オフに制御するためのコマンドテーブル131の内容A及び内容B夫々と、FET181のオン/オフ状態とを示してある。FET181をオン/オフに制御する周期は、例えば10msである。
【0052】
以下、特に断りのない限り、コマンドテーブル131に13個のコマンドが書き込まれるものとする。また、コマンドテーブル131内のコマンドのうち、1番目のアドレス内のコマンドによって位相0におけるFET181のオン/オフ状態が制御され、y番目(y=2,3,・・10,11,12,13)のアドレス内のコマンドによって位相Pz(z=2,・・a,b,c,d)におけるFET181のオン/オフ状態が制御されるものとする。よって、FET181がオン/オフに制御されるときのデューティの精度は、7.7%(=100/13)となる。例えば、コマンドテーブル131のサイズを、100個のコマンドが書き込めるサイズとした場合は、上記デューティの精度が1%となる。
【0053】
コマンドによる制御の対象となるFET181は、コマンドの下位4ビットの夫々によって指定される。各FET181に対応するビットが1(又は0)である場合、夫々のFET181がオン(又はオフ)に制御される。以下では、特に断りのない限り、着目する特定のFET181をオン及びオフ夫々に制御するコマンドをONコマンド(オンデータに相当)及びOFFコマンド(オフデータに相当)と表記する。DIAGコマンドは、FET181のオン/オフ制御とは無関係の診断コマンド(第3のデータに相当)である。
【0054】
図3の下段に示すように、位相P3でFET181をオンに制御し、位相PbでFET181をオフに制御する場合、従来は、コマンドテーブル131の第1番目及び第2番目のアドレス(位相0及びP2に対応)と第11〜13番目のアドレス(位相Pb〜Pdに対応)とにOFFコマンドを準備して書き込み、第3〜10番目のアドレス(位相P3〜Paに対応)にONコマンドを準備して書き込む必要があった。コマンドテーブル131のサイズが大きい場合は、CPU11の処理負荷がその分だけ増加するという問題があった。
【0055】
これに対し、本実施の形態1では、
図3の上段に示すように、先ずコマンドテーブル131の全域、即ち連続する全ての番地に定型のDIAGコマンドを単純にコピーして書き込み、その後
図3の中段に示すように、コマンドテーブル131の第3番目及び第11番目のアドレス(位相P3及びPbに対応)夫々に書き込まれたDIAGコマンドにONコマンド及びOFFコマンドを上書きすることによって、CPU11の処理負荷を軽減する。DMAコントローラ15のDMAチャネルに空きがある場合は、例えばROM12に記憶したDIAGコマンドのデータをDMA転送にてコマンドテーブル131の全域に書き込むことにより、CPU11の処理負荷が飛躍的に軽減される。DIAGコマンドは、レジスタの読出コマンド等の他のコマンドであってもよい。
【0056】
以下では、上述したスイッチ回路の動作を、それを示すフローチャートを用いて説明する。以下に示す処理は、ROM12に予め格納されている制御プログラムに従って、CPU11により実行される。
図4は、本発明の実施の形態1に係るスイッチ回路でFET181をオン/オフに制御するCPU11の処理手順を示すフローチャートである。
図4の処理は、例えば本スイッチ回路を初期化した後で最初にFET181をオン/オフに制御するときに起動される。
【0057】
図4で用いられるオン位相及びオフ位相の夫々は、負荷19に供給する電力をPWM制御するためにFET181をオン及びオフに制御すべき位相であって、RAM13から随時読み出し可能であるものとする。オン位相及びオフ位相は、例えば、CPU11が不図示の通信手段によって外部から適時取得するものであってもよいし、目標とするデューティに基づいてCPU11が適時演算するものであってもよい。
【0058】
以下に示すフローチャートでは、ONコマンド、OFFコマンド及びDIAGコマンドの夫々を、オンデータ、オフデータ及び診断コマンドと表記する(後述する他の実施の形態におけるフローチャートについても同様)。
【0059】
図4の処理が起動された場合、CPU11は、コマンドテーブル131の全域に診断コマンドを書き込む(S10:書込手段に相当)。その後、CPU11は、RAM13からオン位相を読み出し(S11)、読み出したオン位相に基づいて、オンデータを書き込むべきオンアドレス(オン位相にてスイッチにDMA転送されるべき転送データの転送元アドレスに相当)を算出する(S12:算出手段に相当)。そして、CPU11は、算出したオンアドレスに書き込まれている診断コマンドにオンデータを上書きし(S13:上書手段に相当)、後の参照のためにオンアドレスをRAM13に記憶しておく(S14:記憶手段に相当)。但し、オンアドレスを算出する過程で、CPU11のレジスタ等にオンアドレスが記憶される場合は、ステップS14の処理が不要となる(後述するオフアドレスについても同様)。
【0060】
次いで、CPU11は、RAM13からオフ位相を読み出し(S15)、読み出したオフ位相に基づいて、オフデータを書き込むべきオフアドレス(オフ位相にてスイッチにDMA転送されるべき転送データの転送元アドレスに相当)を算出する(S16:算出手段に相当)。そして、CPU11は、算出したオフアドレスに書き込まれている診断コマンドにオフデータを上書きし(S17:上書手段に相当)、後の参照のためにオフアドレスをRAM13に記憶しておく(S18:記憶手段に相当)。
【0061】
その後、CPU11は、DMAコントローラ15に対してDMA転送を禁止する設定を行った(S19)後、DMA転送に係る転送元アドレス、転送回数等の設定を行い(S20)、最後にDMA転送を許可する設定を行って(S21)
図4の処理を終了する。
【0062】
DMA転送を許可する設定が行われた後は、DMAコントローラ15によって、タイマ14からの定周期のDMA要求が受け付けられ、コマンドテーブル131に書き込まれたDIAGコマンド、ONコマンド、OFFコマンド等のコマンドが、上記定周期で1つずつSPIコントローラ17にDMA転送される。コマンドテーブル131の内容が全てDMA転送された場合、DMA完了の割込要求に応じた割込処理では、
図4のステップS19〜S21に示す処理が実行されるようにすればよい。但し、DMAコントローラ15がDMA転送のリピート機能を有する場合、即ち、DMA転送の完了時に、転送元アドレス、転送回数等の設定が自動的にリロードされる場合は、特段の割込処理は不要である。
【0063】
以上のように本実施の形態1によれば、RAM13に含まれるコマンドテーブル131内の全てのコマンドを例えば10ms周期でDMA転送し、DMA転送したコマンドをIPD18に与えてIPD18(具体的にはIPD18が有するFET181:以下同様)を10ms周期でオン/オフに制御する。各コマンドは、IPD18をオン/オフに制御するためのONコマンド(オンデータ)/OFFコマンド(オフデータ)、又はIPD18のオン/オフ制御とは無関係のDIAG(診断)コマンドであり、そのうちのDIAGコマンドを予めコマンドテーブル131の全域に書き込でおく。そして、10msの周期内でIPD18をオン及びオフ夫々に制御すべき位相をRAM13から読み出し、読み出した夫々の位相にてIPD18にDMA転送されるコマンドの転送元アドレス(オンアドレス及びオフアドレス)を算出し、算出した夫々の転送元アドレスに予め書き込まれたDIAGコマンドにONコマンド及びOFFコマンドを上書きする。
【0064】
つまり、IPD18のオン/オフ制御とは無関係の固定的な制御データである診断コマンドをコマンドテーブル131の全域に一律に書き込んでおき、IPD18をオン及びオフ夫々に制御すべき位相に対応するコマンドテーブル131内のオンアドレス及びオフアドレスの内容に夫々オンデータ及びオフデータを上書きした後に、コマンドテーブル131内の全てのコマンドを順次DMA転送することにより、オンデータ及びオフデータ夫々が書き込まれたオンアドレス及びオフアドレスに応じた位相でIPD18がオン/オフに制御される。
従って、制御データによって各種動作が制御されるスイッチをオン/オフに制御する際の処理負荷を軽減することが可能となる。
【0065】
(実施の形態2)
実施の形態1が、IPD18をオン/オフに制御する位相の更新を考慮しない形態であるのに対し、実施の形態2は、実施の形態1での処理を実行した後に、IPD18をオン/オフに制御する位相を更新する形態である。
実施の形態2におけるスイッチ回路のハードウェア構成は、実施の形態1と同じであるため、対応する箇所に同様の符号を付してその説明を省略する。
【0066】
図5は、本発明の実施の形態2に係るスイッチ回路におけるコマンドとFET181のオン/オフ制御との対応を示す説明図である。
図5では、FET181がオン/オフに制御される周期における位相を横軸にしてあり、図の最上段から順番に、FET181をオン/オフに制御するためのコマンドテーブル131の内容B、内容A及び内容Cの夫々と、FET181のオン/オフ状態とを示してある。
【0067】
ここでは、前述の
図3の下段に示すように、位相P3でFET181をオンに制御し、位相PbでFET181をオフに制御する状態から、
図5の最下段に示すように、位相P3でFET181をオンに制御し、位相P9でFET181をオフに制御する状態に更新する場合について説明する。制御の更新前は、
図5の最上段に示すように、コマンドテーブル131の第3番目のアドレスにONコマンドが、第11番目のアドレスにOFFコマンドが、夫々書き込まれている。
【0068】
制御の更新に際し、
図5の第2段目に示すように、コマンドテーブル131の全域がDIAGコマンドで埋め尽くされるようにする。つまり、
図3の上段に示すコマンドテーブル131の内容Aに戻す。そのために、ONコマンド及びOFFコマンドが夫々書き込まれていた第3番目及び第11番目のアドレス夫々の内容にDIAGコマンドを上書きする。
【0069】
次いで、新たにRAM13から読み出したオン位相及びオフ位相の夫々に基づいてオンアドレス及びオフアドレスを更新する。ここでは、オンアドレスは更新前と同じアドレスであり、オフアドレスはコマンドテーブル131の第9番目のアドレスになるものとする。そして、更新したオンアドレス及びオフアドレス夫々の内容にONコマンド及びOFFコマンドを上書きして、
図5の第3段目に示すような、コマンドテーブル131の内容Cとする。
【0070】
なお、更新の前後におけるオンアドレス(又はオフアドレス)が一致するか否かを判定し、オンアドレス(又はオフアドレス)が一致する場合は、オンアドレス(又はオフアドレス)にDIAGコマンドとオンコマンド(又はオフコマンド)とを上書きしないようにしてもよい。
【0071】
以下では、上述したスイッチ回路の動作を、それを示すフローチャートを用いて説明する。以下に示す処理は、ROM12に予め格納されている制御プログラムに従って、CPU11により実行される。
図6は、本発明の実施の形態2に係るスイッチ回路でFET181に対するオン/オフ制御を更新するCPU11の処理手順を示すフローチャートである。
【0072】
図5の処理は、RAM13に記憶されるオン位相及び/又はオフ位相が更新されたときに起動される。以下に示すフローチャートでは、「アドレスの内容に上書きする」ことを、単に「アドレスに上書きする」と表記する(後述する他の実施の形態におけるフローチャートについても同様)。
【0073】
図6の処理が起動された場合、CPU11は、例えば
図4のステップS14で記憶したオンアドレス、即ち、更新前にオンデータが書き込まれていたアドレスをRAM13から読み出す(S31)。そして、CPU11は、更新されたオン位相をRAM13から新たに読み出し(S32)、新たに読み出したオン位相に基づいて、オンデータを上書きすべきオンアドレスを更新する(S33:更新手段に相当)。次いで、CPU11は、RAM13から読み出したオンアドレスと更新したオンアドレスとを比較して(S34:比較手段に相当)、比較結果が一致するか否かを判定し(S35)、一致する場合(S35:YES)、後述するステップS41へ処理を移す(禁止手段に相当)。
【0074】
比較判定した2つのアドレスが一致しない場合(S35:NO)、CPU11は、RAM13から読み出したオンアドレスに診断コマンドを上書きする(S36:第2の上書手段に相当)と共に、更新したオンアドレスに書き込まれている診断コマンドにオンデータを上書きし(S37:上書手段に相当)、更新したオンアドレスをRAM13に記憶する(S38:記憶手段に相当)。但し、オンアドレスを算出する過程で、CPU11のレジスタ等(記憶部に相当)にオンアドレスが記憶される場合は、ステップS38の処理が不要となる(後述するオフアドレスについても同様)。
【0075】
次いで、CPU11は、例えば
図4のステップS18で記憶したオフアドレス、即ち、更新前にオフデータが書き込まれていたアドレスをRAM13から読み出す(S41)。そして、CPU11は、更新されたオフ位相をRAM13から新たに読み出し(S42)、新たに読み出したオフ位相に基づいて、オフデータを上書きすべきオフアドレスを更新する(S43:更新手段に相当)。次いで、CPU11は、RAM13から読み出したオフアドレスと更新したオフアドレスとを比較して(S44:比較手段に相当)、比較結果が一致するか否かを判定し(S45)、一致する場合(S45:YES)、
図6の処理を終了する(禁止手段に相当)。
【0076】
比較判定した2つのアドレスが一致しない場合(S45:NO)、CPU11は、RAM13から読み出したオンアドレスに診断コマンドを上書きする(S46:第2の上書手段に相当)と共に、更新したオフアドレスに書き込まれている診断コマンドにオフデータを上書きし(S47:上書手段に相当)、更新したオフアドレスをRAM13に記憶して(S48:記憶手段に相当)
図6の処理を終了する。
【0077】
なお、上述のフローチャートでは、ステップS35及びS45夫々にて、更新の前後におけるオンアドレス及びオフアドレスが一致するか否かを判定しているが、ステップS35及び/又はS45の判定を行わずに、ステップS36及び/又はS46に処理を引き継ぐようにしてもよい。
このように、コマンドテーブル131におけるONコマンド及び/又はOFFコマンドの書き込みアドレスを更新することにより、FET181をオン/オフに制御する位相を適時更新する。
【0078】
以上のように本実施の形態2によれば、IPD18をオン/オフに制御する位相の更新に先立ち、ONコマンド(オンデータ)及び/又はOFFコマンド(オフデータ)が書き込まれた更新前の転送元アドレス(オンアドレス及び/又はオフアドレス)を一時的に記憶し、記憶した転送元アドレスの内容にDIAG(診断)コマンドを上書きする。その後、IPD18をオン及び/又はオフに制御すべき新たな位相にてIPD18にDMA転送されるコマンドの転送元アドレスを更新する。そして、IPD18のオン制御に係る転送元アドレスを更新した場合は、更新した転送元アドレスにONコマンドを上書きし、IPD18のオフ制御に係る転送元アドレスを更新した場合は、更新した転送元アドレスにOFFコマンドを上書きする。
従って、オンデータ及び/又はオフデータが書き込まれるオンアドレスを更新する際に、更新前のオンアドレス及び/又はオフアドレスの内容を診断コマンドで上書きし、上書きに対応して更新したオンアドレス及び/又はオフアドレスの内容にオンデータ及び/又はオフデータを上書きすることにより、IPD18をオン及び/又はオフに制御する位相を簡単に更新することが可能となる。
【0079】
また、実施の形態2によれば、更新前のオンアドレス及び/又はオフアドレスをRAM13に記憶し、記憶したオンアドレス及び/又はオフアドレスと更新後の対応するオンアドレス及び/又はオフアドレスとを比較して、一致したアドレスに書き込まれたオンデータ及び/又はオフデータに対するDIAGコマンドの上書きと、DIAGコマンドに対するオンデータ及び/又はオフデータの上書きとを禁止する。
従って、IPD18をオン及び/又はオフに制御すべき位相の更新の前後でオンアドレス及び/又はオフアドレスに変化がない場合は、コマンドテーブル131への不要な書き込みを省略することが可能となる。
【0080】
(実施の形態3)
実施の形態1が、オン位相及びオフ位相夫々に対応するコマンドテーブル131内のオンアドレス及びオフアドレスにのみONコマンド及びOFFコマンドを上書きする形態であるのに対し、実施の形態3は、オンアドレス及びオフアドレスの夫々から離隔したアドレスにもONコマンド及びOFFコマンドを上書きする形態である。
実施の形態3におけるスイッチ回路のハードウェア構成は、実施の形態1と同じであるため、対応する箇所に同様の符号を付してその説明を省略する。
【0081】
図7のA及びBは、本発明の実施の形態3に係るスイッチ回路におけるコマンドとFET181のオン/オフ制御との対応を示す説明図である。
図7A及びBでは、FET181がオン/オフに制御される周期における位相を横軸にしてある。
図7A及びBの夫々では、上段にFET181をオン/オフに制御するためのコマンドテーブル131の内容D及び内容Eを、下段にFET181のオン/オフ状態を示してある。
【0082】
図7Aに示すように、FET181をオン及びオフ夫々に制御すべきオン位相に対応するオンアドレスと、該アドレスから1番地だけ離隔したアドレスとにONコマンド及びOFFコマンドを上書きすることにより、FET181に対するオン/オフの制御が確実となる。
【0083】
例えば、FET181をオンに制御すべきオン位相が位相P3(又はP4)である場合、位相P4(又はP3)に対応するアドレスにもONコマンドを上書きする。これにより、FET181が位相P3でオンに制御されなかった場合であっても、位相P4ではオンに制御される確率が高まる。同様にFET181をオフに制御すべきオフ位相が位相P9(又はPa)である場合、位相Pa(又はP9)に対応するアドレスにもOFFコマンドを上書きする。これにより、FET181が位相P9でオフに制御されなかった場合であっても、位相Paではオフに制御される確率が高まる。
【0084】
図7Bに移って、FET181をオン及びオフ夫々に制御すべきオン位相及びオフ位相に対応するアドレスと、該アドレスから2番地以上離隔したアドレスとにONコマンド及びOFFコマンドを上書きすることにより、FET181に対するオン/オフの制御が確実となる。
【0085】
例えば、FET181をオンに制御すべきオン位相が位相P3(又はP5)である場合、位相P5(又はP3)に対応するアドレスにもONコマンドを上書きする。これにより、FET181が位相P3でオンに制御されなかった場合であっても、位相P5ではオンに制御される確率が高まる。同様にFET181をオフに制御すべきオフ位相が位相P9(又はPb)である場合、位相Pb(又はP9)に対応するアドレスにもOFFコマンドを上書きする。これにより、FET181が位相P9でオフに制御されなかった場合であっても、位相Pbではオフに制御される確率が高まる。
【0086】
以下では、上述したスイッチ回路の動作を、それを示すフローチャートを用いて説明する。以下に示す処理は、ROM12に予め格納されている制御プログラムに従って、CPU11により実行される。
図8は、本発明の実施の形態3に係るスイッチ回路でFET181に対するオン制御を更新するCPU11の処理手順を示すフローチャートである。
図8の処理は、RAM13に記憶されるオン位相が更新されたときに起動される。
【0087】
図8の処理が起動された場合、CPU11は、例えば
図4のステップS12又はS14で記憶したオンアドレス、即ち、更新前にオンデータが書き込まれていたアドレスに診断コマンドを上書きし(S50:第2の上書手段に相当)、更に、上書きしたアドレスから1番地離隔したアドレス又は2番地以上離隔したアドレスにも診断コマンドを上書きする(S51:第2の上書手段に相当)。アドレスが離隔する方向は、アドレスが増加する方向であっても減少する方向であってもよい。その後、CPU11は、更新されたオン位相をRAM13から新たに読み出し(S52)、新たに読み出したオン位相に基づいて、オンデータを書き込むべきオンアドレスを更新する(S53:更新手段に相当)。
【0088】
次いで、CPU11は、更新したオンアドレスにオンデータを上書きし(S54:上書手段に相当)、更に、上書きしたアドレスから1番地離隔したアドレス又は2番地以上離隔したアドレスにオンデータを上書きする(S55:上書手段に相当)。その後、CPU11は、更新したオンアドレスをRAM13に記憶して(S56:記憶手段に相当)
図8の処理を終了する。但し、オンアドレスを算出する過程で、CPU11のレジスタ等にオンアドレスが記憶される場合は、ステップS
56の処理が不要となる。
【0089】
なお、上述のフローチャートでは、オン位相が更新された場合について説明したが、オフ位相が更新された場合に、FET181に対するオ
フ制御を更新するCPU11の処理手順を示すフローチャートは、
図8と同様に示される。具体的には、
図8におけるオンアドレス、オン位相及びオンデータの夫々を、オフアドレス、オフ位相及びオフデータに置き換えたものとすればよい。
【0090】
以上のように本実施の形態3によれば、算出した転送元アドレス(オンアドレス)に書き込まれたDIAGコマンドにONコマンド(オンデータ)を上書きする場合、算出した転送元アドレスから前/後に1番地以上離隔したアドレスに書き込まれたDIAGコマンドにもONコマンドを上書きする。また、算出した転送元アドレス(オフアドレス)に書き込まれたDIAGコマンドにOFFコマンド(オフデータ)を上書きする場合、算出した転送元アドレスから前/後に1番地以上離隔したアドレスに書き込まれたDIAGコマンドにもOFFコマンドを上書きする。
従って、オンデータ及びオフデータの何れか一方又は両方を二度書きすることにより、IPD18に対するオン/オフ制御を確実に行うことが可能となる。
【0091】
(実施の形態4)
実施の形態1〜3が、FET181をオン/オフに制御するコマンド及びDIAGコマンドをDMA転送する形態であるのに対し、実施の形態4は、IPD18にFET181をオン/オフに制御するコマンド及びDIAコマンドと、それ以外の制御コマンドとをDMA転送する形態である。
実施の形態4におけるスイッチ回路のハードウェア構成は、実施の形態1と同じであるため、対応する箇所に同様の符号を付してその説明を省略する。
【0092】
図9は、本発明の実施の形態4に係るスイッチ回路におけるコマンドとFET181のオン/オフ制御との対応を示す説明図である。
図9では、FET181がオン/オフに制御される周期における位相を横軸にしてあり、図の上段から順番に、4つのFET181をオン/オフに制御するためのコマンドテーブル131の内容Fと、出力1〜4夫々に対応するFET181のオン/オフ状態とを示してある。
【0093】
図9の最上段に示すコマンドテーブル131の内容Fでは、1つの出力コマンドに含まれる下位4ビットの1/0によって、出力1〜4夫々に対応するFET181がON/OFFに制御されることを表している。例えば、出力1に対応するFET181は、位相P3でオンに制御され、位相P9でオフに制御される。同様に出力2,3,4夫々に対応するFET181は、位相P4,P5,P6でオンに制御され、位相Pa,Pb,Pcでオフに制御される。
【0094】
図9に示す例のように、0から2πまでの1周期における各位相のうち、IPD18の出力1〜4夫々に対応するFET181の何れもがオン/オフに制御されない位相の範囲が予め設定される場合、設定された位相の範囲に対応するコマンドテーブル131内のアドレスの範囲には、常にDIAGコマンドが書き込まれることとなる。具体的には、コマンドテーブル131における第1番目、第2番目、第7番目、第8番目及び第13番目のアドレスである。このようなアドレスの範囲を記憶しておき(第2の記憶手段に相当)、記憶した範囲内の何れかのアドレスに書き込まれたDIAGコマンドに対して、IPD18を制御するための他の制御コマンドを上書きする(第3の上書手段に相当)ことにより、各FET181のオン/オフ制御に影響を与えることなく、IPD18の動作が制御される。
【0095】
即ち、上書きされた他の制御コマンドがDMA転送によってSPIコントローラ17に転送され、更にSPI通信によってIPD18に受信されたときに、IPD18が他の制御コマンドによって制御される。他の制御コマンドの例として、例えば、ラッチ状態に保持されたFET181を解除するコマンドや、出力1〜4についてのセンス電流を切り替えるコマンドが挙げられる。
【0096】
以上のように本実施の形態4によれば、1つのコマンドによって個別にオン及びオフに制御される4つのFET181の何れをもオン/オフに制御することがない位相の範囲が予め設定される場合、設定された位相の範囲内でスイッチにDMA転送される転送データの転送元アドレスの範囲をRAM13に記憶しておく。この転送元アドレスの範囲内には常にDIAG(診断)コマンドが保持されている。この状態で例えばIPD18にオン/オフ制御以外の他の制御を行う場合、RAM13に記憶した転送元アドレスの範囲内の任意のアドレスに書き込まれたDIAGコマンドに、上記他の制御に対応した他の制御コマンドを上書きする。
従って、他の制御コマンドを上書きしても差し支えない転送元アドレスのサーチが必要になることも、IPD18に対するオン/オフ制御に影響を与えることもなしに、IPD18に対する他の制御を行うことが可能となる。
【0097】
(実施の形態5)
実施の形態4が、常時DIAGコマンドが保持されることとなる転送元アドレスの範囲を記憶しておき、記憶したアドレスの範囲内の任意のアドレスの内容に他の制御コマンドを上書きする形態であるのに対し、実施の形態5は、その内容にONコマンド又はOFFコマンドが上書きされる転送元アドレスと、他の制御コマンドが上書きされる転送元アドレスとを1つおきに分けて準備する形態である。
実施の形態5におけるスイッチ回路のハードウェア構成は、実施の形態1と同じであるため、対応する箇所に同様の符号を付してその説明を省略する。
【0098】
図10は、本発明の実施の形態5に係るスイッチ回路におけるコマンドとFET181のオン/オフ制御との対応を示す説明図である。
図10では、FET181がオン/オフに制御される周期における位相を横軸にしてあり、図の上段にFET181をオン/オフに制御するためのコマンドテーブル131の内容Gを、下段にFET181のオン/オフ状態を示してある。
【0099】
本実施の形態5では、例えば、コマンドテーブル131のサイズを200個のコマンドが書き込めるサイズとし、予めコマンドテーブル131の全域にDIAGコマンドを書き込んでおく(書込手段に相当)。コマンドテーブル131内のDIAGコマンドにONコマンド又はOFFコマンドを上書きする場合は、コマンドテーブル131に含まれる100個の奇数番目のアドレスの中から上書きすべきアドレスを算出す
る。このため、IPD18がオン/オフに制御されるときのデューティの精度は、1%となる。また、コマンドテーブル131内のDIAGコマンドに他の制御コマンドを上書きする場合は、100個の偶数番目のアドレスのうち、任意のアドレスの内容に上書きする(第4の上書手段に相当)。複数の偶数番目のアドレスの内容に他の制御コマンドを上書きしてもよい。
【0100】
このように、FET181をオン/オフに制御するためのコマンドを上書きするアドレスと、DIAGコマンド以外の他の制御コマンドを上書きするアドレスとを分離することにより、FET181をオン/オフに制御する周期における任意の位相で、任意の制御コマンドをIPD18に与えることができる。
なお、奇数番目のアドレスの内容に他の制御コマンドを上書きし、偶数番目のアドレスの内容にONコマンド又はOFFコマンドを上書きするようにしてもよい。
【0101】
以上のように本実施の形態5によれば、その内容にONコマンド(オンデータ)及びOFFコマンド(オフデータ)の夫々を上書きすべきアドレスは、両方ともコマンドテーブル131内の奇数番目のアドレスの中から算出するか、又は両方とも偶数番目のアドレスの中から算出する。この状態で例えばIPD18にオン/オフ制御以外の他の制御を行う場合、ONコマンド及びOFFコマンドを奇数番目のアドレスの内容に上書きするときは、偶数番目のコマンドが書き込まれる任意のアドレスに書き込まれたDIAGコマンドに、他の制御コマンドを上書きする。また、ONコマンド及びOFFコマンドを偶数番目のアドレスの内容に上書きするときは、奇数番目のコマンドが書き込まれる任意のアドレスに書き込まれたDIAGコマンドに他の制御コマンドを上書きする。
従って、他の制御コマンドを上書きしても差し支えない転送元アドレスのサーチが必要になることも、IPD18に対するオン/オフ制御に影響を与えることもなしに、IPD18に対する他の制御を随時行うことが可能となる。
【0102】
また、実施の形態5によれば、実施の形態1でIPD18をオン/オフに制御するデューティの精度を1%にする場合と比較して、コマンドテーブル131のサイズを2倍にしておくことにより、実施の形態1の場合と同精度のデューティでIPD18をオン/オフに制御することが可能となる。
【0103】
(実施の形態6)
実施の形態1〜5が、コマンドテーブル131の内容を更新すべきタイミングを明示しない形態であるのに対し、実施の形態6は、FET181をオン/オフに制御する周期における前半及び後半のタイミングでコマンドテーブル131内の異なる領域の内容を更新する形態である。
実施の形態6におけるスイッチ回路のハードウェア構成は、実施の形態1と同じであるため、対応する箇所に同様の符号を付してその説明を省略する。
【0104】
図11のA及びBは、本発明の実施の形態6に係るスイッチ回路におけるコマンドとFET181のオン/オフ制御との対応を示す説明図である。
図11A及びBでは、FET181がオン/オフに制御される周期における位相を横軸にしてある。
図11A及びBの夫々では、下段にFET181のオン/オフ状態を、その上段にFET181をオン/オフに制御するためのコマンドテーブル131の内容H及び内容Iを示す。
図11Aの最上段には、コマンドテーブル131の内容の更新処理の実行状態を示してある。
【0105】
さて、コマンドテーブル131内のアドレスを転送元アドレスとするDMA転送と、CPU11によるコマンドテーブル131の更新処理とが直接的に競合することは無いと言える。しなしながら、例えばCPU11がオンアドレスを更新する場合、更新前のオンアドレスの内容にDIAGコマンドを上書きした後で、更新後のオンアドレスにONコマンドを上書きする前に、更新前後のオンアドレスの内容がDMA転送されると、その周期ではFET181がオンにならず、1周期分だけFET181のオン/オフ制御ができなくなる。これを回避するには、CPU11がコマンドテーブル131の一部の領域(又は他の領域)を更新している期間中は、前記一部の領域(又は他の領域)がDMA転送の対象とならないことが保証されるようにすればよい。
【0106】
そこで、
図11Aの最上段に示すように、コマンドテーブル131の全域を更新する処理を、例えばFET181をオン/オフに制御する周期における位相0及びP7の2箇所で起動される処理に分割する。そして、これら2つの更新処理によって更新される領域の境界を、例えば位相P6及びP7の中間位相に対応するアドレスに設定する。つまり、位相0で起動される更新処理にて、上記アドレスの境界より後側のアドレスの内容を更新する(第5の上書手段に相当)。そして、位相P7で起動される更新処理にて、上記アドレスの境界より前側のアドレスの内容を更新す
る。これにより、コマンドテーブル131の内容の更新処理とDMA転送との干渉が防止される。
【0107】
なお、上記2つの更新処理の夫々が処理中に、処理対象の領域がDMA転送されることがない限り、これら2つの更新処理が起動されるべき位相が、位相0及びP7に限定されることはなく、上記アドレスの境界が、位相P6及びP7の中間位相に対応するアドレスに限定されることもない。例えば、上記2つの更新処理が、FET181をオン/オフに制御する周期内で、時間的に等間隔で起動されるようにしてもよい。また、上記更新処理が、上記周期内で3回以上起動されてもよく、その場合は、その起動回数に応じて、各更新処理の更新対象となる領域の境界のアドレスを適当に設定すればよい。
【0108】
次に、位相0及びP7で起動される更新処理のうち、一方の更新処理を省略できる場合について説明する。
図11Aの最下段に示すように、例えばFET181をオンに制御するオン位相が位相0に固定されており、FET181をオフに制御するオフ位相が位相P7〜Pdの間で変化する場合、位相P7で起動される更新処理は省略が可能である。つまり、コマンドテーブル131に書き込まれたコマンドのうち、位相P0及びP2〜P6の夫々に対応する1番目及び2番目〜6番目のアドレス内のコマンドは、ONコマンド及びDIAGコマンドに固定されており、これらのコマンドを更新する必要がない。
【0109】
これに対し、位相P7〜Pdに対応する7番目〜13番目のアドレス内のコマンドは、うち1つがOFFコマンド、他はDIAGコマンドであって、どちらのコマンドであるかは、FET181をオフに制御すべきオフ位相によって変化する(図ではOFF/DGと表記する)。このため、位相P0で起動される更新処理によるコマンドの更新が必要とされる。
図11Aでは、DIAGコマンドがOFFコマンドに更新される位相が位相P7からPdまで変化するときに、FET181がオフに制御される位相が位相P7からPdまで変化する様子を示す。
【0110】
図11Bに移って、例えばFET181をオフに制御するオフ位相が位相Pdに固定されており、FET181をオンに制御するオン位相が位相0〜P6の間で変化する場合、位相P0で起動される更新処理は省略が可能である。つまり、コマンドテーブル131に書き込まれたコマンドのうち、位相P7〜Pc及びPdの夫々に対応する7番目〜12番目及び13番目のアドレス内のコマンドは、DIAGコマンド及びOFFコマンドに固定されており、これらのコマンドを更新する必要がない。
【0111】
これに対し、位相P0〜P6に対応する1番目〜6番目のアドレス内のコマンドは、うち1つがOFFコマンド、他はDIAGコマンドであって、どちらのコマンドであるかは、FET181をオフに制御すべきオフ位相によって変化する。このため、位相P7で起動される更新処理によるコマンドの更新が必要とされる。
図11Bでは、DIAGコマンドがONコマンドに更新される位相が位相0からP6まで変化するときに、FET181がオンに制御される位相が位相0からP6まで変化する様子を示す。
【0112】
以上のように本実施の形態6によれば、コマンドテーブル131内のコマンドを更新する処理が、位相0及び位相P7で起動される2つの更新処理に分割されており、分割された各更新処理で更新すべきコマンドの境界を、位相P6及びP7の中間に対応するアドレスに設定する。そして、設定した境界より前側のコマンドがDMA転送されている間に、後側の任意のコマンドに他のコマンドを上書きして更新する。また、設定した境界より後側のコマンドがDMA転送されている間に、前側の任意のコマンドに他のコマンドを上書きして更新する。
従って、IPD18に対するオン/オフ制御に影響を与えることなく、IPD18をオン/オフに制御する位相を更新することが可能となる。
【0113】
また、実施の形態6によれば、コマンドテーブル131内のコマンドを更新する処理が起動される起動周期を、IPD18がオン/オフに制御されるPWM周期の丁度半分にすることにより、例えば偶数番目及び奇数番目夫々の起動周期で起動された処理によって、コマンドテーブル131の前側及び後側の領域内のコマンドを更新するように、ソフトウェアの設計を簡略化することが可能となり、併せてコマンドテーブル131内のコマンドを漏れなく確実に更新することが可能となる。
【0114】
今回開示された実施の形態は、全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。また、各実施の形態で記載されている技術的特徴は、お互いに組み合わせることが可能である。