JP2010218435A - プログラム生成装置、プログラム生成プログラム、プログラム生成方法、制御装置及びコンピュータプログラム - Google Patents
プログラム生成装置、プログラム生成プログラム、プログラム生成方法、制御装置及びコンピュータプログラム Download PDFInfo
- Publication number
- JP2010218435A JP2010218435A JP2009066782A JP2009066782A JP2010218435A JP 2010218435 A JP2010218435 A JP 2010218435A JP 2009066782 A JP2009066782 A JP 2009066782A JP 2009066782 A JP2009066782 A JP 2009066782A JP 2010218435 A JP2010218435 A JP 2010218435A
- Authority
- JP
- Japan
- Prior art keywords
- frequency
- setting information
- change
- program
- order
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Power Sources (AREA)
Abstract
【課題】クロック信号により動作する機器の処理速度を低下させることなく安全にクロック信号の周波数を切り替える制御装置、その制御装置に実行させるコンピュータプログラムを生成するプログラム生成装置を提供する。
【解決手段】複数のモード情報から組み合わせた2つのモード情報に係る分周値の変化量を算出し、算出結果に基づいて、分周値を変更する分周器22,23,24の順序を決定する。そして、組み合わせた2つの設定情報の一方を変更前の設定情報とし、他方を変更後の設定情報として、この2つが変更前後の設定情報である場合には、決定した順序で分周器22,23,24に分周値が設定されるようコンピュータプログラムを生成する。生成したコンピュータプログラムを、クロック信号により動作する機器の処理速度を低下させることなく安全にクロック信号の周波数を切り替えるマイコン10で実行する。
【選択図】図6
【解決手段】複数のモード情報から組み合わせた2つのモード情報に係る分周値の変化量を算出し、算出結果に基づいて、分周値を変更する分周器22,23,24の順序を決定する。そして、組み合わせた2つの設定情報の一方を変更前の設定情報とし、他方を変更後の設定情報として、この2つが変更前後の設定情報である場合には、決定した順序で分周器22,23,24に分周値が設定されるようコンピュータプログラムを生成する。生成したコンピュータプログラムを、クロック信号により動作する機器の処理速度を低下させることなく安全にクロック信号の周波数を切り替えるマイコン10で実行する。
【選択図】図6
Description
本発明は、コンピュータにクロック信号を分周する複数の分周器それぞれに分周値を設定させるプログラムを生成するプログラム生成装置、プログラム生成プログラム、プログラム生成方法、生成したコンピュータプログラムを実行する制御装置及びコンピュータプログラムに関する。
特許文献1には、クロック信号で動作するマイクロコンピュータ(以下、マイコンと言う)等に対してクロック信号を供給するクロック発生回路が開示されている。特許文献1に記載のクロック発生回路は、高い周波数のクロック信号を発生させるクロック発生源と、低い周波数のクロック発生源との2種類のクロック発生源とが搭載されている。そして、マイコンを高い周波数のクロック信号で動作させることで高速処理を可能とし、低い周波数のクロック信号で動作させることで処理速度は低下するが消費電力を低減させることを可能としている。
ところで、1つの基板上に、マイコンの他に複数の周辺機器が搭載される場合がある。マイコン及び各周辺機器は、動作可能なクロック信号の周波数が決まっており、マイコン等が所定値以上のクロック信号の周波数が供給された場合、誤動作又故障を引き起こすおそれがある。このため、クロック発生源からマイコン等にクロック信号を供給する場合、最小の周波数に切り替えたクロック信号をマイコン等に供給して誤動作等の発生を防ぐことが一般的となっている。
図8は、クロック信号の周波数を切り替える場合について説明するための模式図である。例として、上限値が60MHzのマイコン10、及び30MHzの周辺機器30が、240MHzの周波数のクロック信号を発生するPLL(Phase Locked Loop)回路21からクロック信号が供給される場合について説明する。マイコン10は、PLL回路21から第1分周器22及び第2分周器23を介してクロック信号が供給される。周辺機器30は、マイコン10が動作制御する機器、又はECUの処理能力を向上させるためのマイコン10とは異なるマイコン等である。周辺機器30は、PLL回路21から第1分周器22及び第3分周器24を介してクロック信号が供給される。
この場合において、第1分周器22の分周値が「1/4」、第2分周器23が「1/1」に設定されている場合、マイコン10は、60MHzで動作する。また、第3分周器24の分周値が「1/2」に設定されている場合、周辺機器30は、30MHzで動作する。このとき、マイコン10を40MHzで動作させる場合、第1分周器22の分周値を「1/2」とし、第2分周器23の分周値を「1/3」とすることで、マイコン10には40MHzの周波数のクロック信号が供給される。このとき、第3分周器24の分周値を変更しなければ、周辺機器30には60MHzの周波数のクロック信号が供給される。この場合、周辺機器30の上限値を超えてクロック信号が供給されることで、周辺機器30は誤動作又は故障となるおそれがある。
そこで、各機器に供給するクロック信号を切り替える場合には、分周器から出力される周波数が最小となるように全ての分周器の分周値を再設定して、各機器に最低周波数のクロック信号を供給するようになっている。この場合、一時的でも各機器は、最低周波数で動作するため、各機器の処理速度は著しく低下するといった問題が発生する。
本発明はかかる事情に鑑みてなされたものであり、その目的とするところは、コンピュータに、クロック信号により動作する機器の処理速度を低下させることなく安全にクロック信号の周波数を切り替えさせるコンピュータプログラムを生成するプログラム生成装置、プログラム生成プログラム、プログラム生成方法、安全にクロック信号の周波数を切り替える制御装置及びその制御装置に実行させるコンピュータプログラムを提供することにある。
本発明に係るプログラム生成装置は、クロック信号を分周する複数の分周器それぞれに分周値を設定するための設定情報が異なる設定情報に変更された場合、複数の分周器に分周値が設定される順序を決定するコンピュータプログラムを生成するプログラム生成装置であって、複数の設定情報から2つの設定情報の可能な組み合わせを全て生成する組み合わせ生成手段と、該組み合わせ生成手段が生成した全ての組み合わせについて、組み合わせた2つの設定情報に係る各分周値の変化量を算出する算出手段と、該算出手段が算出した分周値の変化量に基づいて、分周値を設定する分周器の順序を決定する決定手段と、前記組み合わせ生成手段が組み合わせた2つの設定情報の一方を変更前の設定情報に、他方を変更後の設定情報として設定し、変更前後の設定情報に基づいて前記決定手段が決定した順序で複数の分周器に分周値が設定されるようにするコンピュータプログラムを生成するプログラム生成手段とを備えることを特徴とする。
本発明に係るプログラム生成装置は、前記組み合わせ生成手段が生成した全ての組み合わせについて、組み合わせた2つの設定情報の一方を他方より時間的に先として、取り得る全ての時系列順序を設定する設定手段と、該設定手段が設定した時系列順序の先と後とで、前記設定情報に係る分周値が減少している分周器を検出する検出手段とをさらに備え、前記決定手段は、前記検出手段が検出した分周器で、かつ、前記算出手段が算出した分周値の変化量が大きい分周器から順に分周値が設定されるように順序を決定するようにしてあることを特徴とする。
本発明に係るプログラム生成装置は、複数の分周器には、優先度が設定されており、前記決定手段は、複数の分周器に設定された優先度に基づいて順序を決定するようにしてあることを特徴とする。
本発明に係るプログラム生成装置は、前記プログラム生成手段は、複数の設定情報それぞれを変更後の設定情報として設定し、変更前の設定情報に拘わらずに、変更後の設定情報に基づいて、所定の分周値が分周器それぞれに設定されるようにするコンピュータプログラムを生成するようにしてあることを特徴とする。
本発明に係るプログラム生成プログラムは、クロック信号を分周する複数の分周器それぞれに分周値を設定するための設定情報が異なる設定情報に変更された場合、複数の分周器に分周値が設定される順序を決定するコンピュータプログラムを、コンピュータに生成させるプログラム生成プログラムであって、コンピュータを、複数の設定情報から2つの設定情報の可能な組み合わせを全て生成する組み合わせ生成手段、該組み合わせ生成手段が生成した全ての組み合わせについて、組み合わせた2つの設定情報に係る分周値の変化量を算出する算出手段、該算出手段が算出した分周値の変化量に基づいて、分周値を設定する分周器の順序を決定する決定手段、及び、前記組み合わせ生成手段が組み合わせた2つの設定情報の一方を変更前の設定情報とし、他方を変更後の設定情報として設定し、変更前後の設定情報に基づいて前記決定手段が決定した順序で複数の分周器に分周値が設定されるようにするコンピュータプログラムを生成するプログラム生成手段として機能させることを特徴とする。
本発明に係るプログラム生成方法は、クロック信号を分周する複数の分周器それぞれに分周値を設定するための設定情報が異なる設定情報に変更された場合、複数の分周器に分周値が設定される順序を決定するコンピュータプログラムを生成するプログラム生成方法であって、複数の設定情報から2つの設定情報の可能な組み合わせを全て生成し、生成した全ての組み合わせについて、組み合わせた2つの設定情報に係る分周値の変化量を算出し、算出した分周値の変化量に基づいて、分周値を設定する分周器の順序を決定し、組み合わせた2つの設定情報の一方を変更前の設定情報とし、他方を変更後の設定情報として設定し、変更前後の設定情報に基づいて決定した順序で複数の分周器に分周値が設定されるようにするコンピュータプログラムを生成することを特徴とする。
本発明に係る制御装置は、本発明に係るプログラム生成方法によって作成されたコンピュータプログラムを実行する制御装置であって、前記コンピュータプログラムを実行した場合、変更時に前記分周器それぞれに設定されている分周値及び設定すべき分周値に基づいて、前記分周器に係る分周値を変更する順序を決定する決定手段と、該決定手段が決定した順序に基づいて、複数の分周器に分周値を設定する設定手段とを備えることを特徴とする。
本発明に係るコンピュータプログラムは、コンピュータに、本発明に係るプログラム生成方法によって作成されたコンピュータプログラムを実行させるコンピュータプログラムにおいて、コンピュータを、前記コンピュータプログラムを実行した場合、変更時に前記分周器それぞれに設定されている分周値及び設定すべき分周値に基づいて、前記分周器に係る分周値を変更する順序を決定する決定手段、及び、該決定手段が決定した順序に基づいて、複数の分周器に分周値を設定する設定手段として機能させることを特徴とする。
本発明では、複数の設定情報から組み合わせた2つの設定情報に係る分周値の変化量を算出し、算出結果に基づいて、分周値を変更する分周器の順序を決定する。そして、組み合わせた2つの設定情報の一方を変更前の設定情報とし、他方を変更後の設定情報として、この2つが変更前後の設定情報である場合には、決定した順序で複数の分周器に分周値が設定されるようコンピュータプログラムを生成する。
このように生成したコンピュータプログラムを、分周器に分周値を設定するコンピュータで実行させることで、コンピュータは、分周器に設定された分周値を変更する場合、変更前後の2つの設定情報から分周値を変更する分周器の順序を取得することができる。そして、コンピュータは、取得した順序で分周器の分周値を変更する。変更する順序を、例えば変更前後で分周値が小さくなり、かつ、変化量が大きい順に決定することで、コンピュータは、クロック信号の周波数を大きく低下させる分周器から、分周値を切り替えるようになる。周波数を大きく変化させる分周器の分周値を後に切り替えた場合、切替前の周波数が、分周器に接続されている機器の上限値を超える可能性がある。このため、最初にクロック信号の周波数を大きく低下させる分周器の分周値を切り替えることで、機器の上限値の周波数を超えたクロック信号が、機器に供給されないようにできるため、機器の誤動作又は故障を防止できる。また、機器の誤動作又は故障を防止するために全分周器の分周値を最小にした場合、機器には最低周波数のクロック信号が供給されるため、一の分周器の分周値のみを大きく下げることで、機器の処理速度が低下し過ぎることを防止できる。
本発明では、設定情報の変更前後で、分周値が小さくなり、かつ、分周値の変化量が大きい分周器から分周値を先に設定するようにする。これにより、クロック信号の周波数を小さくし、かつ、変化量が大きい分周器から、分周値が切り替わるようになる。分周器は、クロック信号の周波数を一度大きく下げ、その後、小さく上げるため、分周器から機器に供給されるクロック信号を、最低周波数とせず、かつ、機器の上限値を超えない周波数とすることができる。その結果、処理速度を低下させることなく、安全にクロック信号の周波数を切り替えることを実現することができる。
本発明においては、分周器に設定された優先度を考慮して、分周値を変更する順序が決定されるため、製造者が予め優先度を設定しておくことで、より安全にクロック信号の周波数を分周する分周値を変更することが可能となる。
本発明においては、設定情報を取得できない場合であっても、より安全にクロック信号の周波数を分周する分周値を変更することが可能となる。
本発明では、生成したコンピュータプログラムを、分周器に分周値を設定するコンピュータで実行させることで、コンピュータは、分周器に設定された分周値を変更する場合、変更前後の2つの設定情報から分周値を変更する分周器の順序を取得することができる。そして、コンピュータは、取得した順序で分周器の分周値を変更する。変更する順序を、例えば変更前後で分周値が小さくなり、かつ、変化量が大きい順に決定することで、コンピュータは、クロック信号の周波数を大きく低下させる分周器から、分周値を切り替えるようになる。周波数を大きく変化させる分周器の分周値を後に切り替えた場合、切替前の周波数が、分周器に接続されている機器の上限値を超える可能性がある。このため、最初にクロック信号の周波数を大きく低下させる分周器の分周値を切り替えることで、機器の上限値の周波数を超えたクロック信号が、機器に供給されないようにできるため、機器の誤動作又は故障を防止できる。また、機器の誤動作又は故障を防止するために全分周器の分周値を最小にした場合、機器には最低周波数のクロック信号が供給されるため、一の分周器の分周値のみを大きく下げることで、機器の処理速度が低下し過ぎることを防止できる。
以下、本発明の好適な実施形態について図面を参照して説明する。
本実施形態に係るプログラム生成装置は、ソフトウェアの開発環境が整ったコンピュータである。プログラム生成装置は、図8で説明した構成において、第1、第2及び第3分周器21,22,23に分周値を設定する図示しない制御部(例えば、CPU:Central Processing Unit)で実行されるコンピュータプログラムを生成する。
本実施形態では、第1、第2及び第3分周器22,23,24は、モード情報(設定情報)に基づいて分周値が設定される。モード情報は、各分周器22,23,24と、それぞれに設定する分周値とが対応付けられたデータである。各分周器22,23,24は、あるモード情報に基づいて設定されている分周値が、別のモード情報に基づいて切り替えられる際に、所定の順序(以下、切替順序と言う)で分周値が切り替えられる。本実施形態に係るプログラム生成装置は、切替順序を決定し、決定した切替順序をプログラムコード内で定義付けたコンピュータプログラムを生成する。
図1は、プログラム生成装置の構成を模式的に示すブロック図である。
プログラム生成装置は、CPU1、記憶部2、入力部3、表示部4及び大容量記憶部5を備えている。記憶部2は、例えばROM(Read Only Memory)であって、本実施形態に係るプログラム生成プログラムが記憶されており、CPU1は、記憶部2からプログラムを読み出して、プログラム生成処理を実行する。入力部3は、ユーザーが文字又は数字等のプログラムコードを入力するためのキーボード又はポインティングデバイス等である。表示部4は、例えば液晶表示ディスプレイであり、ユーザーが入力部3から入力したプログラムコード又はCPU1の処理結果等を表示する。
大容量記憶部5は、例えばHDD(Hard Disk Drive)であって、モード・周波数テーブルが記憶されている。図2は、モード・周波数テーブルを模式的に示す図である。モード・周波数テーブルは、例えばプログラム作成者が予め用意したデータテーブルである。モード・周波数テーブルは、「Normal」、「Sleep1」及び「Sleep2」の3つのモード情報を格納している。各分周器は、モード情報に基づいて分周値が設定される。例えば、「Normal」のモード情報に基づいて分周値を設定する場合、第1、第2及び第3分周器22,23,24には、「1/4」、「1/1」及び「1/2」の分周値が設定される。これらモード情報には、モードID「0」、「1」及び「2」が割り当てられている。
また、モード・周波数テーブルは、モード情報毎にマイコン10及び周辺機器30に供給されるクロック信号の周波数を格納している。例えば、「Normal」のモード情報に基づいて分周値を設定する場合、マイコン10には、240×1/4×1/1=60MHzのクロック信号が供給される(図8参照)。周辺機器30には、240×1/4×1/2=30MHzのクロック信号が供給される。なお、モード・周波数テーブルは、マイコン及び周辺機器に供給されるクロック信号の周波数の情報が格納されていなくてもよい。
さらに、モード・周波数テーブルは、第1、第2及び第3分周器に設定された優先度を格納している。後に詳述するが、優先度は、切替順序を決定する際に用いられ、優先度が高い分周器は、優先度が低い分周器より切替順序が先となるよう決定される。従って、図2では、第1、第2及び第3分周器22,23,24には、「1」、「2」及び「2」の優先度が設定されているため、第2及び第3分周器23,24は、第1分周器22より切替順序が先となる。なお、優先度は、分周器の数、又は回路構成によって決定されてもよいし、分周器に接続される機器に応じて決定されてもよい。
上述のように構成されたプログラム生成装置は、例えばユーザーが入力部3から処理の開始操作が入力されることで、切替順序を決定するコンピュータプログラムを生成するプログラム生成処理を実行し、プログラムコードを生成する。以下、プログラム生成処理について説明する。
CPU1は、大容量記憶部5に記憶されるモード・周波数テーブルから、2つのモードIDの組み合わせを全て生成する。図2のモード・周波数テーブルの場合、CPU1は、モードID「0」及び「1」と、モードID「0」及び「2」と、モードID「1」及び「2」との3つの組み合わせを生成する。
次に、CPU1は、各組み合わせに、可能な全ての時間列順序を設定する。例えばモードID「0」及び「1」の組み合わせの場合、「0」、「1」の順序と、「1」、「0」の順序とを設定する。従って、図2のモード・周波数テーブルの場合、合計6通りの順序が設定される。
CPU1は、設定した6通りの順序それぞれについて、分周器22,23,24の切替順序を決定する。まず、CPU1は、設定した時間列順序が先のモードID及び後のモードIDとで、分周値が小さくなっている分周器を検出する。そして、CPU1は、検出した分周器に対応する分周値が、設定された時間列順序の先後で変化した変化量を算出し、変化量が大きい順に切替順序を決定する。さらに変化量が等しい場合には、優先度に従って切替順序を決定する。
例えば、モードID「0」及び「1」の組み合わせで、「0」、「1」の順に順序が設定されている場合について説明する。図2において、第2分周器23の分周値は、「1/1」から「1/3」に切り替わっており、その変化量は「1−((1/3)/(1/1))=2/3」である。また、第3分周器24の分周値は、「1/2」から「1/4」に切り替わっており、その変化量は「(1−((1/4)/(1/2)))=1/2」である。従って、第3分周器24より第2分周器23の分周値の変化量は大きく、CPU1は、第2分周器23の順序を、第3分周器24より先に決定する。その結果、CPU1は、切替順序を、「第2分周器23、第3分周器24、第1分周器22」の順に決定する。なお、分周値の変化量は、単純に(切替前の分周値)/(切替後の分周値)と定義してもよい。また、分周値の変化量を逆に(切替後の分周値)/(切替前の分周値)としてもよく、この場合は変化量の小さいものから先に分周値を切り替えるように決定する。
また、変化量を(1−(切替後の分周値)/(切替前の分周値))と定義して、モードID「2」、「0」の順に順序が設定されている場合について説明する。この場合、第2分周器23の分周値は、「1/3」から「1/1」に切り替わっており、その変化量は「−2」である。また、第3分周器24の分周値は、「1/8」から「1/2」に切り替わっており、その変化量は「−3」である。この場合、変化量が大きい方から変更順位を決定するため、「−2」>「−3」より、CPU1は、切替順序を、「第2分周器23、第3分周器24、第1分周器22」の順に決定する。即ち、周波数を上げる設定の変更順位が後になる。
次に、CPU1は、上述の分周値の変化量が等しい場合、各分周器22,23,24に設定された優先度に基づいて分周値を設定する順序を修正する。本実施形態では、第1、第2及び第3分周器22,23,24には、「1」、「2」及び「2」の優先度が設定されているため、CPU1は、第1分周器22よりも、第2又は第3分周器23,24の順序が先となるように、順序を修正する。
CPU1は、設定した6通りの時間列順序それぞれについて分周器の切替順序を決定した後、クロック切替パターンテーブルを生成する。図3は、クロック切替パターンテーブルを模式的に示す図である。クロック切替パターンテーブルは、分周器22,23,24に分周値を設定する制御部に実行させるコンピュータプログラムを生成するためのデータである。
クロック切替パターンテーブルは、時間列順序が設定された2つのモードIDと、2つのモードIDに基づいて決定した切替順序とが対応付けられて格納しており、それぞれに「0」から「5」のクロックIDを割り当てている。例えば、クロックID「0」の場合、「0」、「1」の順に時系列順序が設定されたモードIDに、「第2分周器23、第3分周器24、第1分周器22」の順に決定された切替順序が割り当てられている。
クロック切替パターンテーブルにおいて、時系列順序が先に設定されたモードIDは、分周値が切り替えられる前の分周器の設定に用いられたモード情報のモードIDとして設定される。また、時系列順序が後に設定されたモードIDは、分周値が切り替えられる際に分周器の設定に用いられるモード情報のモードIDとして設定される。従って、クロック切替パターンテーブルでは、切替順序を、分周値の切替前後でモード情報がどのように変化しているかが対応付けている。
また、クロック切替パターンテーブルは、例外処理としてのデータを格納しており、それぞれに「6」から「8」のクロックIDを割り当てている。例外処理としてのデータは、時系列順序を先に設定するモードIDがなく、モードID「0」、「1」、「2」それぞれが時系列順序の後に設定されている場合に、全分周器22,23,24を全て一度に最小の分周値に設定してから後のモードの分周値に設定されるよう対応付けている。
このクロック切替パターンテーブルから生成したコンピュータプログラムを実行することで、分周器22,23,24に分周値を設定する制御部は、分周値の切替前後のモード情報を取得するだけで、切替順序を取得することができる。切替順序は、切替前後で分周値が小さくなった分周器、かつ、分周値の変化量が大きい分周器が先となるように決定されている。従って、制御部は分周値を切り替える際には、最初に、クロック信号の周波数を大きく低下させる分周器の分周値を切り替える。
周波数が高くなるように変化させる分周器の分周値を後に切り替えた場合、切替前の周波数が、分周器に接続されている機器の上限値を超える可能性がある。このため、最初にクロック信号の周波数を大きく低下させる分周器の分周値を切り替えることで、機器の上限値の周波数を超えたクロック信号が、機器に供給されないようにできるため、機器の誤動作又は故障を防止できる。また、機器の誤動作又は故障を防止するために全分周器の分周値を最小にした場合、機器には最低周波数のクロック信号が供給されるため、必要な分周器の分周値のみを必要なだけ下げることで、機器の処理速度が低下し過ぎることを防止できる。
また、クロック切替パターンテーブルが例外処理としてのデータを格納しているため、制御部は、切替前のモード情報が取得できない場合には、まず全分周器22,23,24に最小の分周値を設定する。この結果、各分周器からは最低周波数のクロック信号が出力されるため、切替後のモードがどんなモードであっても、切替途中で各分周器に接続されている機器の上限値の周波数を超えたクロック信号が、機器に供給されないようにして、機器の誤動作又は故障を防止できる。
CPU1は、クロック切替パターンテーブルの生成後、クロック切替パターンテーブルに基づいて、C言語及びアセンブリ言語等のソースコードを生成する。図4は、クロック切替パターンテーブルに基づいて生成されたコンピュータプログラムのソースコードを示す図である。図4に示すソースコードは、オブジェクトコードに変換され、分周器22,23,24に分周値を設定する制御部により実行される。
例えば「Normal」のモード情報に基づいて分周器に分周値が設定されており、「Sleep1」のモード情報に基づいて分周値が切り替えられる場合、制御部は、分周値の切替前後のモード情報のモードID「0」及び「1」を取得する。モードID「0」、「1」の時系列順序には、クロックID「0」が割り当てられているため、制御部は、ソースコードの「case 0」に係るプログラムを実行し、第2分周器23に分周値「1/3」を設定し、次に第3分周器24に分周値「1/4」を設定し、最後に第1分周器22に分周値「1/2」を設定する処理を実行する。
次に、プログラム生成装置のCPU1が実行する処理の動作について説明する。図5は、CPU1が実行するプログラム生成処理のフローチャートである。
CPU1は、大容量記憶部5からモード・周波数テーブルを取得する(S1)。次に、CPU1は、取得したテーブルから2つのモードIDの組み合わせを全て生成し(S2)、各組み合わせに、可能な全ての時系列順序を設定する(S3)。CPU1は、分周値が小さくなっている分周器を検出し(S4)、検出した分周器に対応する分周値が、設定された時間列順序の先後で変化した変化量を算出する(S5)。そして、CPU1は、変化量が大きい順に切替順序を決定する(S6)。
次に、CPU1は、算出した変化量で等しいものがあるか否かを判定する(S7)。算出した変化量で等しいものがない場合(S7:NO)、CPU1は、処理をS9に移行する。一方、変化量が等しいものがある場合(S7:YES)、CPU1は、変化量が等しい分周器の優先度を取得して、優先度に基づく切替順序を修正する(S8)。具体的には、優先度が高い分周器を、低い分周器より順序を先にする。その後、CPU1は、例外処理としてのデータを生成する(S9)。
そして、CPU1は、生成したクロック切替パターンテーブルに基づいて、図4に示すソースコードを生成する(S10)。このとき、CPU1は、時系列順序が先に設定されたモードIDを、分周値が切り替えられる前の分周器の設定に用いられたモード情報のモードIDとして設定する。また、CPU1は、時系列順序が後に設定されたモードIDを、分周値が切り替えられる際に分周器の設定に用いられるモード情報のモードIDとして設定する。これにより、分周値の切替前後でモード情報がどのように変化しているかに従って、切替順序を決定することができる。その後、CPU1は、本処理を終了する。
以上説明したように、切替順序を、切替前後で分周値が小さくなった分周器、かつ、分周値の変化量が大きい分周器が先となるように決定されている。従って、制御部は分周値を切り替える際には、最初に、クロック信号の周波数を大きく低下させる分周器の分周値を切り替える。これにより、機器の上限値の周波数を超えたクロック信号が、機器に供給されないようにできるため、機器の誤動作又は故障を防止できる。また、各分周器の分周値を最低値まで落とすことなく一度で切り替えるため、機器の処理速度が低下し過ぎることを防止できる。
次に、上述のプログラム生成装置で生成したコンピュータプログラムを実行するマイコンと、それを備えるECUとについて説明する。図6は、マイコンを備えるECUの概略的な構成を示す図である。
ECU(Electronic Control Unit)は、マイコン10と、クロック信号生成回路20と、周辺機器30とを備えている。ECUは、例えばエンジン制御又はトランスミッション制御等を実行し、各種制御に応じてマイコン10が処理を実行することにより、車両を適切な状態にしている。
マイコン10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、及びRAM(Random Access Memory)13を備えている。ROM12には、プログラム生成装置が生成したコンピュータプログラムが記憶されており、CPU11は、ROM12に記憶されたプログラムを適宜読み出して、RAM13にデータを記憶しつつ、各種処理を実行する。例えば、CPU11は、クロック信号生成回路20が有する分周器22,23,24に分周値を設定し、クロック信号の周波数を切り替える。
マイコン10のCPU11、及び周辺機器30は、クロック信号生成回路20から、所定周波数の動作クロック信号に同期して動作する。クロック信号生成回路20は、PLL回路21と、複数の第1、第2及び第3分周器22,23,24とを備えている。PLL回路21は、図示しない発振器が出力するクロック信号の基準周波数を整数倍した周波数(240MHz)のクロック信号を生成する。発振器は、例えば、水晶振動子・セラミックス発振子等を用いた一般的な発振回路である。第1、第2及び第3分周器22,23,24は、PLL回路21が出力するクロック信号を設定された分周値1/Nで分周して出力する。第1分周器22は、PLL回路21に接続されており、第1分周器22には、第2及び第3分周器23,24それぞれが接続されている。そして、第2分周器23には、CPU11が接続され、第3分周器24には周辺機器30が接続されている。
このクロック信号生成回路20において、例えば、図2で説明した「Normal」のモード情報に基づいて分周器22,23,24に分周値が設定されている場合、第2分周器23から出力されるクロック信号の周波数は240×1/4×1/1=60MHzとなる。従って、マイコン10には、60MHzのクロック信号が供給される。
このように、PLL回路21の分周器22,23,24の分周値を変えることにより、PLL回路21から出力されるクロック信号の周波数を変化させることができる。可変する周波数範囲は、PLL回路21に接続されるマイコン10のCPU11及び周辺機器30に依存する。例えば、CPU11又は周辺機器30は、クロック信号の周波数に対して限界動作周波数を持っている。このため、CPU11又は周辺機器30に入力されるクロック信号の周波数が、限界動作周波数を超えないように、第1、第2及び第3分分周器22,23,24の分周値を設定する。
次に、上述のように構成されるECUにおいて、CPU11の動作について説明する。図7は、CPU11が実行する処理のフローチャートである。
CPU11は、分周値を切り替えるか否かを判定する(S20)。分周値の切り替えは、例えば、自身又は周辺機器30の動作状況に応じて決定される。分周値を切り替えない場合(S20:NO)、CPU11は、本処理を終了する。分周値を切り替える場合(S20:YES)、CPU1は、分周値の切替前後のモード情報を取得する(S21)。切替前のモード情報は、例えばRAM13に記憶されている。切替後のモード情報は、例えば分周値の切り替えと共に決定される。
CPU11は、切替前のモード情報を取得できたか否かを判定する(S22)。切替前のモード情報を取得できない場合(S22:NO)、即ち、切替前のモード情報が不明である場合、CPU11は、例外処理(図3におけるクロックID6,7,8)を実行し、全分周器22,23,24に最小の分周値を設定する(S23)。その後、切替後の分周値に切り替える(S25)これにより、各分周器からは一旦最低周波数のクロック信号が出力され、その後切替後の周波数に設定されるため、各分周器に接続されている機器の上限値の周波数を超えたクロック信号が、機器に供給されないようにして、クロックの切り替えができ、機器の誤動作又は故障を防止できる。その後、CPU11は、本処理を終了する。
一方、切替前のモード情報を取得できた場合(S22:YES)、CPU11は、切替前後のモード情報から、クロックIDを特定し、これにより図4のソースコードに相当する部分の実行により、切替順序を取得し(S24)、取得した切替順序に基づいて、順に分周値を切り替える(S25)。例えば、「Normal」のモード情報に基づいて分周器に分周値が設定されており、「Sleep1」のモード情報に基づいて分周値を切り替える場合、CPU11は、分周値の切替前後のモード情報のモードID「0」及び「1」を取得する。モードID「0」、「1」の時系列順序には、クロックID「0」が割り当てられているため、CPU11は、図4に示すソースコードの「case 0」に係る処理を実行し、第2分周器23に分周値「1/3」を設定し、次に第3分周器24に分周値「1/4」を設定し、最後に第1分周器22に分周値「1/2」を設定する。その後、CPU11は、本処理を終了する。
以上のように、各分周器の分周値を設定するCPU11は、プログラム生成装置で生成したコンピュータプログラムを実行した場合、切替前後のモード情報を取得することで、分周器の切替順序を取得することができる。また、エラー等によりCPU11が切替前のモード情報を取得できなかった場合でも、CPU11は、例外処理として、最小の分周値を各分周器に一旦設定した後、切替後の分周値(周波数)に設定するため、より安全にクロック信号の周波数を切り替えることができる。
なお、本実施形態では、クロック信号生成回路20は、3つの分周器を備えているが、分周器の数及び回路構成等は適宜変更可能である。また、マイコン10が各分周器に分周値を設定しているが、マイコン10以外に処理装置を設け、その処理装置でクロック信号生成回路2の動作制御を行うようにしてもよい。さらに、プログラム生成装置は、図4に示すソースコードを生成するものとして説明したが、オブジェクトコードを生成し、CPUに直接書き込むようにしてもよい。
以上、本発明の好適な実施形態について、具体的に説明したが、各構成及び動作等は適宜変更可能であって、上述の実施の形態に限定されることはない。
1 CPU
2 記憶部
10 マイコン
21 PLL回路
22,23,24 分周器
30 周辺機器
2 記憶部
10 マイコン
21 PLL回路
22,23,24 分周器
30 周辺機器
Claims (8)
- クロック信号を分周する複数の分周器それぞれに分周値を設定するための設定情報が異なる設定情報に変更された場合、複数の分周器に分周値が設定される順序を決定するコンピュータプログラムを生成するプログラム生成装置であって、
複数の設定情報から2つの設定情報の可能な組み合わせを全て生成する組み合わせ生成手段と、
該組み合わせ生成手段が生成した全ての組み合わせについて、組み合わせた2つの設定情報に係る各分周値の変化量を算出する算出手段と、
該算出手段が算出した分周値の変化量に基づいて、分周値を設定する分周器の順序を決定する決定手段と、
前記組み合わせ生成手段が組み合わせた2つの設定情報の一方を変更前の設定情報に、他方を変更後の設定情報として設定し、変更前後の設定情報に基づいて前記決定手段が決定した順序で複数の分周器に分周値が設定されるようにするコンピュータプログラムを生成するプログラム生成手段と
を備えることを特徴とするプログラム生成装置。 - 前記組み合わせ生成手段が生成した全ての組み合わせについて、組み合わせた2つの設定情報の一方を他方より時間的に先として、取り得る全ての時系列順序を設定する設定手段と、
該設定手段が設定した時系列順序の先と後とで、前記設定情報に係る分周値が減少している分周器を検出する検出手段と
をさらに備え、
前記決定手段は、
前記検出手段が検出した分周器で、かつ、前記算出手段が算出した分周値の変化量が大きい分周器から順に分周値が設定されるように順序を決定するようにしてある
ことを特徴とする請求項1に記載のプログラム生成装置。 - 複数の分周器には、優先度が設定されており、
前記決定手段は、
複数の分周器に設定された優先度に基づいて順序を決定するようにしてある
ことを特徴とする請求項1又は2に記載のプログラム生成装置。 - 前記プログラム生成手段は、
複数の設定情報それぞれを変更後の設定情報として設定し、変更前の設定情報に拘わらずに、変更後の設定情報に基づいて、所定の分周値が分周器それぞれに設定されるようにするコンピュータプログラムを生成するようにしてある
ことを特徴とする請求項1から3の何れか一つに記載のプログラム生成装置。 - クロック信号を分周する複数の分周器それぞれに分周値を設定するための設定情報が異なる設定情報に変更された場合、複数の分周器に分周値が設定される順序を決定するコンピュータプログラムを、コンピュータに生成させるプログラム生成プログラムであって、
コンピュータを、
複数の設定情報から2つの設定情報の可能な組み合わせを全て生成する組み合わせ生成手段、
該組み合わせ生成手段が生成した全ての組み合わせについて、組み合わせた2つの設定情報に係る分周値の変化量を算出する算出手段、
該算出手段が算出した分周値の変化量に基づいて、分周値を設定する分周器の順序を決定する決定手段、及び、
前記組み合わせ生成手段が組み合わせた2つの設定情報の一方を変更前の設定情報とし、他方を変更後の設定情報として設定し、変更前後の設定情報に基づいて前記決定手段が決定した順序で複数の分周器に分周値が設定されるようにするコンピュータプログラムを生成するプログラム生成手段
として機能させることを特徴とするプログラム生成プログラム。 - クロック信号を分周する複数の分周器それぞれに分周値を設定するための設定情報が異なる設定情報に変更された場合、複数の分周器に分周値が設定される順序を決定するコンピュータプログラムを生成するプログラム生成方法であって、
複数の設定情報から2つの設定情報の可能な組み合わせを全て生成し、
生成した全ての組み合わせについて、組み合わせた2つの設定情報に係る分周値の変化量を算出し、
算出した分周値の変化量に基づいて、分周値を設定する分周器の順序を決定し、
組み合わせた2つの設定情報の一方を変更前の設定情報とし、他方を変更後の設定情報として設定し、変更前後の設定情報に基づいて決定した順序で複数の分周器に分周値が設定されるようにするコンピュータプログラムを生成する
ことを特徴とするプログラム生成方法。 - 請求項6に記載のプログラム生成方法によって作成されたコンピュータプログラムを実行する制御装置であって、
前記コンピュータプログラムを実行した場合、変更時に前記分周器それぞれに設定されている分周値及び設定すべき分周値に基づいて、前記分周器に係る分周値を変更する順序を決定する決定手段と、
該決定手段が決定した順序に基づいて、複数の分周器に分周値を設定する設定手段と
を備えることを特徴とする制御装置。 - コンピュータに、請求項6に記載のプログラム生成方法によって作成されたコンピュータプログラムを実行させるコンピュータプログラムにおいて、
コンピュータを、
前記コンピュータプログラムを実行した場合、変更時に前記分周器それぞれに設定されている分周値及び設定すべき分周値に基づいて、前記分周器に係る分周値を変更する順序を決定する決定手段、及び、
該決定手段が決定した順序に基づいて、複数の分周器に分周値を設定する設定手段
として機能させることを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009066782A JP2010218435A (ja) | 2009-03-18 | 2009-03-18 | プログラム生成装置、プログラム生成プログラム、プログラム生成方法、制御装置及びコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009066782A JP2010218435A (ja) | 2009-03-18 | 2009-03-18 | プログラム生成装置、プログラム生成プログラム、プログラム生成方法、制御装置及びコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010218435A true JP2010218435A (ja) | 2010-09-30 |
Family
ID=42977176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009066782A Pending JP2010218435A (ja) | 2009-03-18 | 2009-03-18 | プログラム生成装置、プログラム生成プログラム、プログラム生成方法、制御装置及びコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010218435A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102011083618A1 (de) | 2010-09-29 | 2012-03-29 | Yazaki Corp. | Anzeigevorrichtung und Verfahren zum Übertragen von Bilddaten |
-
2009
- 2009-03-18 JP JP2009066782A patent/JP2010218435A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102011083618A1 (de) | 2010-09-29 | 2012-03-29 | Yazaki Corp. | Anzeigevorrichtung und Verfahren zum Übertragen von Bilddaten |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4686065B2 (ja) | クロック制御装置およびクロック制御方法 | |
JP2018523872A (ja) | 電力配分ネットワーク(pdn)ドループ/オーバシュート緩和 | |
JP2017506458A5 (ja) | ||
JP2012208804A (ja) | クロック信号生成回路 | |
TWI567526B (zh) | 調整時脈頻率 | |
KR20190018171A (ko) | 전압 드룹을 위한 클록 조정 | |
JP2010113641A (ja) | プロセッサシステムの動作方法およびプロセッサシステム | |
JP5808097B2 (ja) | 半導体装置及び半導体装置におけるリセット制御方法 | |
JP2008227936A (ja) | クロック生成回路、クロック選択回路、及び半導体集積回路 | |
JP2010218435A (ja) | プログラム生成装置、プログラム生成プログラム、プログラム生成方法、制御装置及びコンピュータプログラム | |
JP2014090344A (ja) | クロック信号初期化回路およびその方法 | |
JP6219118B2 (ja) | 発振器 | |
JP2002202829A (ja) | マイクロコンピュータ | |
JP2009152886A (ja) | クロック生成回路およびその使用方法 | |
JPWO2008117361A1 (ja) | 論理シミュレーション方法及び論理シミュレータ | |
JP5486368B2 (ja) | マイクロコンピュータ及びマイクロコンピュータの制御方法 | |
JPH11194849A (ja) | データ処理方法および装置、情報記憶媒体 | |
JP5056886B2 (ja) | クロック信号生成装置及び電子装置 | |
JP5977308B2 (ja) | スリープモードを有する電子回路 | |
JPH076155A (ja) | シングルチップ・マイクロコンピュータ | |
JPH11232164A (ja) | アドレス発生回路 | |
WO1995023370A1 (en) | Method to control a computer having an adjustable clock generator and a microprocessor system | |
JP2016184366A (ja) | タイマ補正装置、タイマ補正方法及びタイマ補正プログラム | |
JP2005071203A (ja) | マイクロプロセッサ | |
JP6227952B2 (ja) | 位相同期回路、位相同期方法及びプログラム |