JP6117120B2 - イベント管理装置、イベント管理方法およびモータシステム - Google Patents
イベント管理装置、イベント管理方法およびモータシステム Download PDFInfo
- Publication number
- JP6117120B2 JP6117120B2 JP2014007236A JP2014007236A JP6117120B2 JP 6117120 B2 JP6117120 B2 JP 6117120B2 JP 2014007236 A JP2014007236 A JP 2014007236A JP 2014007236 A JP2014007236 A JP 2014007236A JP 6117120 B2 JP6117120 B2 JP 6117120B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- trigger
- event management
- generated
- event
- 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.)
- Active
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60L—PROPULSION OF ELECTRICALLY-PROPELLED VEHICLES; SUPPLYING ELECTRIC POWER FOR AUXILIARY EQUIPMENT OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRODYNAMIC BRAKE SYSTEMS FOR VEHICLES IN GENERAL; MAGNETIC SUSPENSION OR LEVITATION FOR VEHICLES; MONITORING OPERATING VARIABLES OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRIC SAFETY DEVICES FOR ELECTRICALLY-PROPELLED VEHICLES
- B60L50/00—Electric propulsion with power supplied within the vehicle
- B60L50/10—Electric propulsion with power supplied within the vehicle using propulsion power supplied by engine-driven generators, e.g. generators driven by combustion engines
- B60L50/16—Electric propulsion with power supplied within the vehicle using propulsion power supplied by engine-driven generators, e.g. generators driven by combustion engines with provision for separate direct mechanical propulsion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B15/00—Systems controlled by a computer
- G05B15/02—Systems controlled by a computer electric
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P80/00—Climate change mitigation technologies for sector-wide applications
- Y02P80/10—Efficient use of energy, e.g. using compressed air or pressurized fluid as energy carrier
- Y02P80/15—On-site combined power, heat or cool generation or distribution, e.g. combined heat and power [CHP] supply
Description
本発明の実施形態は、イベント管理装置、イベント管理方法およびモータシステムに関する。
一般に、イベント管理装置はCPUのみにより起動制御されることが想定されている。CPUによる起動制御では処理実行のオーバーヘッドなどが発生するため、モータ制御処理などにおける厳しいハードリアルタイム性能要求を満たせないおそれがある。
より高性能なイベント管理装置およびイベント管理方法、ならびに、そのようなイベント管理装置を用いたモータシステムを提供する。
実施形態によれば、複数のトリガのそれぞれと、タスク開始ポインタと、が互いに関連付けられたイベントキューレジスタと、前記複数のトリガのうちのいずれかが生成されると、生成されたトリガと関連付けられたタスク開始ポインタに基づいてタスクを実行するタスク実行制御部と、を備え、前記複数のトリガのうちの少なくとも1つは、イベント管理装置内で生成される自己トリガである、イベント管理装置が提供される。
以下、実施形態について、図面を参照しながら具体的に説明する。本実施形態に係るイベント管理装置100は、一例としてモータを制御するために用いられる。
図1は、本実施形態に係るイベント管理装置100を用いたモータシステムの概略を示すブロック図である。モータシステムは、CPU(Central Processing Unit)2と、イベント管理装置100と、PMD(Programmable Motor Driver)3と、インバータ4と、モータ5と、電流センサ6aと、ADC(Analog to Digital Converter)6bと、回転角センサ7aと、角度変換器7bと、を備えている。CPU2、イベント管理装置100、PMD3、ADC6bおよび角度変換器7bは、MCU(Micro Control Unit)1上に搭載されてもよい。
CPU2はイベント管理装置100を制御する。図示していないが、CPU2が複数のイベント管理装置100を制御してもよい。イベント管理装置100はベクトルエンジンとも呼ばれ、起動イベントトリガ(以下単にトリガという)に同期してタスクを実行する。PMD3は、イベント管理装置100の制御に応じて、インバータ4を制御するための制御信号を生成する。インバータ4は制御信号に応じてモータ5を駆動する。電流・電圧センサ6aはモータ5におけるアナログ値(例えばモータ5に流れる電流や各部の電圧)を検出する。ADC6bは検出されたアナログ値に対してAD変換を行ってデジタル信号を得る。回転角センサ7aはモータ5の回転角を検出する。角度変換器7bは検出された回転角を角度に変換する。なお、PMD3およびインバータ4はモータ5を制御するものであるため、両者を合わせてモータ制御部とも呼ぶ。
イベント管理装置100には複数種類のトリガが入力される。トリガの1つはCPU2によって生成されるCPUトリガであってもよい。また、トリガの1つはイベント管理装置100自身が生成する自己トリガであってもよい。さらに、トリガの1つは、CPU2およびイベント管理装置100以外のユニットが生成する外部トリガであってもよい。外部トリガは、例えば、PMD3を周期的に動作させるためのキャリア信号(三角波信号、鋸波信号)に基づくトリガ、AD変換処理が完了したことに同期してADC6bが生成するADCトリガ、回転角センサ7aにより検出されたモータ5の回転角に基づいて角度変換器7bが生成する回転角トリガなどがある。
仮にCPU2しかトリガを生成できないとすると、ハードリアルタイム性能要求が厳しいモータ5の制御において、処理実行のオーバーヘッドにより性能要求を満たせなかったり、CPU2からのオフロード処理において自走制御が困難であったりする。そこで本実施形態では、CPUトリガだけでなく、自己トリガや外部トリガに同期してタスクを実行可能なイベント管理装置100を用いる。
以下、トリガおよびタスクの具体例を説明する。
図2は、CPUトリガおよびタスクの例を説明する図である。同図は「ベクトル制御」と呼ばれるモータ制御に適用される。CPU2は、CPUトリガとして、起動コマンドをイベント管理装置100に発行する。このCPUトリガに応じて、イベント管理装置100は予め定めた出力スケジュールの結果に基づいてPMD3にデータをセットする。そして、PMD3は、インバータ4を介してモータ5を駆動するとともに、ADC6bにPMDトリガを発行する。
図2は、CPUトリガおよびタスクの例を説明する図である。同図は「ベクトル制御」と呼ばれるモータ制御に適用される。CPU2は、CPUトリガとして、起動コマンドをイベント管理装置100に発行する。このCPUトリガに応じて、イベント管理装置100は予め定めた出力スケジュールの結果に基づいてPMD3にデータをセットする。そして、PMD3は、インバータ4を介してモータ5を駆動するとともに、ADC6bにPMDトリガを発行する。
このPMDトリガに応じて、電流・電圧センサ6aおよびADC6bは、モータ5におけるアナログ値をデジタル信号に変換する。このAD変換処理が完了すると、ADC6bはイベント管理装置100にADCトリガ(ADC割込み)を発行する。このADCトリガに応じて、イベント管理装置100は予め定めた入力スケジュールに基づいてデジタル信号を取得し、割込みとしてCPUに転送する。このような処理が繰り返される。
図3は、自己トリガおよびタスクの例を説明する図である。図3では、イベント管理装置100自身が生成する自己トリガについて説明している。自己トリガは、例えば分割されたタスクスケジュールの制御に用いられる。自己トリガによる具体的な動作例については後述する。
図4は、外部トリガおよびタスクの例を説明する図である。同図は、モータ5の回転角に基づくトリガにおける処理を示しており、「矩形波駆動」と呼ばれるモータ制御に適用される。回転角センサ7aおよび角度変換器7bは、例えばモータ回転角60度ごとに、回転角トリガをイベント管理装置100に発行する。この回転角トリガに応じて、イベント管理装置100は、例えばADC6bからAD変換データを直接取り込んで、タスクスケジュール制御処理を行う。
図5は、外部トリガおよびタスクの例を説明する図である。同図は、PMD3を周期的に動作させるためのキャリア信号に基づくトリガにおける処理を示しており、「三角波/過変調駆動」と呼ばれるモータ制御に適用される。イベント管理装置100はPMD3に所定周期の三角波(PWM波形)をキャリア信号として供給する。そして、PMD3は三角波に同期して(例えば三角波の山(ピーク)と谷(ボトム)の半周期ごとに)、イベント管理装置100にトリガを発行する。このトリガに応じて、イベント管理装置100は、例えばADC6bからAD変換データを、回転角センサ7aおよび角度変換器7bからモータ5の回転角情報をそれぞれ直接取り込んで、タスクスケジュール制御処理を行う。
続いて、イベント管理装置100について説明する。図6は、イベント管理装置100の概略を示すブロック図である。イベント管理装置100は、CPUトリガレジスタ(CPU TRG)11と、自己トリガレジスタ(SELF TRG)12と、イベントコントローラ13と、タスクスケジューラ14と、タスク実行制御部15と、命令メモリ16とを備えている。
なお、図6の周辺モジュール8は、図1のPMD3、ADC6bおよび回転角センサ7aなどイベント管理装置100に接続されているモジュールの総称であり、外部トリガを生成可能な任意のモジュールである。以下では、トリガとして10種類のトリガTRG0〜TRG9が生成される例を説明する。ここでは、トリガTRG0がCPUトリガであり、トリガTRG1が自己トリガであり、トリガTRG2〜9が外部トリガとする。
命令メモリ16には、スケジュール実行の最小単位であるタスクが、タスクコードとして格納されている。本実施形態では、32個のタスクコードTASK0〜TASK31が命令メモリ16に格納されているとする。これらタスクコードの少なくとも1つが、自己トリガを生成するタスクであってもよい。
CPUトリガレジスタ11には、CPUトリガが設定される。 自己トリガレジスタ12には、自己トリガが設定される。
CPUトリガレジスタ11には、CPUトリガが設定される。 自己トリガレジスタ12には、自己トリガが設定される。
イベントコントローラ13は、どのトリガが生成されたかに応じて、実行すべきタスクを指定する。イベントコントローラ13は、起動イベント選択部20と、イベントキュー30とを有する。
起動イベント選択部20は、選択レジスタ(SEL)21と、マルチプレクサ22とを有する。選択レジスタ21には、複数のトリガが同時に生成された場合に、いずれのトリガを優先して処理すべきかを示す値が設定される。マルチプレクサ22は、複数のトリガが同時に生成された場合に、選択レジスタ21に設定された値に基づき、トリガを1つずつ順に選択する。なお、起動イベント選択部20は省略してもよい。
起動イベント選択部20は、選択レジスタ(SEL)21と、マルチプレクサ22とを有する。選択レジスタ21には、複数のトリガが同時に生成された場合に、いずれのトリガを優先して処理すべきかを示す値が設定される。マルチプレクサ22は、複数のトリガが同時に生成された場合に、選択レジスタ21に設定された値に基づき、トリガを1つずつ順に選択する。なお、起動イベント選択部20は省略してもよい。
イベントキュー30は、イベントキューレジスタ(EVTQ)31と、マルチプレクサ32と、制御レジスタ(CNT)33と、原因レジスタ(CAUSE)34と、状態レジスタ(STATUS)35と、イベント制御部36とを有する。
イベントキューレジスタ31には、複数のトリガTRG0〜TRG9のそれぞれと、タスク開始ポインタPTRとが互いに関連付けられている。本実施形態のイベントキューレジスタ31には、10種類のトリガに関連付けられた10個のタスク開始ポインタPTRが設定される。タスク開始ポインタPTRは、タスクコードTASK0〜TASK31とそれぞれ対応する0〜31のいずれかの値に設定される。以下では、トリガTRGk(k=0〜9)にタスク開始ポインタPTRkが関連付けられているものとする。
マルチプレクサ32は、イベント制御部36の制御に基づいて、タスク開始ポインタPTR0〜PTR9のうちの1つを選択する。選択されたタスク開始ポインタはタスクスケジューラ14に出力される。
制御レジスタ33は各トリガに対応して設けられ、イネーブル信号が設定される。例えば、制御レジスタ33が“0”に設定されていれば、対応するトリガTRGkが生成されてもタスクの実行が禁止されることを示す。一方、制御レジスタ33が“1”に設定されていれば、対応するトリガTRGkが生成された場合にタスクの実行が許可されることを示す。
原因レジスタ34は各トリガに対応して設けられ、多重イベントトリガ要求の有無が設定される。多重イベントトリガ要求とは、あるトリガに応じてタスクが実行されている最中に、さらに同一のトリガが生成された状態をいう。例えば、原因レジスタ34が“0”に設定されていれば、対応するトリガTRGkについて多重イベントトリガ要求がないことを示す。一方、原因レジスタ34が“1”に設定されていれば、対応するトリガTRGkについて多重イベントトリガ要求が発生したことを示す。このような多重イベントトリガ要求は本来禁止されているが、発生することもあり得る。そこで、原因レジスタ34を設けることで、多重イベントトリガの発生を検出できる。原因レジスタ34に設定された値はフェールセーフ情報として利用できる。
状態レジスタ35は各トリガに対応して設けられ、受付状態レジスタ(RCV)35aと、実行状態レジスタ(VLD)35bとを含む。
受付状態レジスタ35aには、トリガが生成されたか否かを示す値が設定される。例えば、受付状態レジスタ35aが“0”に設定されていれば、対応するトリガTRGkが生成されていないことを示す。一方、受付状態レジスタ35aが“1”に設定されていれば、対応するトリガTRGkが生成されたことを示す。
実行状態レジスタ35bには、トリガに応じたタスクが実行中であるか否かを示す値が設定される。例えば、実行状態レジスタ35bが“0”に設定されていれば、対応するトリガTRGkに応じたタスクが実行中でないことを示す。一方、実行状態レジスタ35bが“1”に設定されていれば、対応するトリガTRGkに応じたタスクが実行中であることを示す。
受付状態レジスタ35aには、トリガが生成されたか否かを示す値が設定される。例えば、受付状態レジスタ35aが“0”に設定されていれば、対応するトリガTRGkが生成されていないことを示す。一方、受付状態レジスタ35aが“1”に設定されていれば、対応するトリガTRGkが生成されたことを示す。
実行状態レジスタ35bには、トリガに応じたタスクが実行中であるか否かを示す値が設定される。例えば、実行状態レジスタ35bが“0”に設定されていれば、対応するトリガTRGkに応じたタスクが実行中でないことを示す。一方、実行状態レジスタ35bが“1”に設定されていれば、対応するトリガTRGkに応じたタスクが実行中であることを示す。
イベント制御部36は、制御レジスタ33、原因レジスタ34および状態レジスタ35への書き込みおよび読み出しを行う。また、イベント制御部36は、これらのレジスタから読み出した値に基づく制御を行う。例えば、イベント制御部36は、状態レジスタ35から読み出した値に基づいて、マルチプレクサ32がいずれのタスク開始ポインタを選択すべきかを設定する。また、イベント制御部36は、状態レジスタ35から読み出した値に基づいて、タスクスケジューラ14にタスクスケジューラ動作を指示する。さらに、イベント制御部36はタスクが終了した旨の通知をタスクスケジューラ14から受信し、これに応じて状態レジスタ35を書き換える。
タスクスケジューラ14はイベントコントローラ13からの制御に応じてタスクスケジューラ動作を行う。より具体的には、タスクスケジューラ14は、イベントコントローラ13から出力されるタスク開始ポインタに応じて、実行されるべきタスクを制御する。タスクスケジューラ14は、タスク開始ポインタレジスタ41(TSKINITP)と、タスクスケジュールテーブル42と、タスクスケジュール制御部43と、タスク起動制御部44とを有する。
タスク開始ポインタレジスタ41には、マルチプレクサ32によって選択されたタスク開始ポインタPTRが設定される。タスクスケジュールテーブル42には、タスクスケジュール(例えば、図2の出力スケジュールや入力スケジュール)として、タスク開始ポインタレジスタ41に設定されたタスク開始ポインタPTRと、実行されるべきタスクとの関係が予め設定されている。
図7は、タスクスケジュールテーブル42の構造の一例を示す図である。タスクスケジュールテーブル42には、タスク開始ポインタPTR、実行タスクコード、ENDビットおよびADCビットが互いに関連付けられている。ENDビットおよびADCビットは、制御ビットとも呼ばれる。
実行タスクコードは、関連付けられたタスク開始ポインタPTRに応じて、初めに実行されるべきタスクを示す。
ENDビットは“0”または“1”に設定される。ENDビットが“0”に設定されていれば、関連付けられた実行タスクコードが示すタスクの実行後、タスクスケジュールテーブル42において後続のタスクを実行すべきことを示す。ENDビットが“1”に設定されていれば、関連付けられた実行タスクコードが示すタスクの実行後、タスクスケジューラ動作を完了すべきことを示す。
ADCビットは“0”または“1”に設定される。ADCビットが“1”に設定されていれば、関連付けられた実行タスクコードが示すタスクの実行後、ADCトリガが生成されるまで「待ち状態」とすべきことを示す。つまり、ADCビットが“1”に設定されている場合、ADCトリガの生成によって、後続のタスクが実行される。
ENDビットは“0”または“1”に設定される。ENDビットが“0”に設定されていれば、関連付けられた実行タスクコードが示すタスクの実行後、タスクスケジュールテーブル42において後続のタスクを実行すべきことを示す。ENDビットが“1”に設定されていれば、関連付けられた実行タスクコードが示すタスクの実行後、タスクスケジューラ動作を完了すべきことを示す。
ADCビットは“0”または“1”に設定される。ADCビットが“1”に設定されていれば、関連付けられた実行タスクコードが示すタスクの実行後、ADCトリガが生成されるまで「待ち状態」とすべきことを示す。つまり、ADCビットが“1”に設定されている場合、ADCトリガの生成によって、後続のタスクが実行される。
図7の例では、タスク開始ポインタレジスタ41にタスク開始ポインタPTR0が設定された場合、まずTASK5で示されるタスクが実行され、続いて、TASK6で示されるタスクが実行される。その後、イベント管理装置100はADCトリガが生成されるのを待つ。ADCトリガが生成されると、TASK9で示されるタスクが実行される。続いて、TASK7で示されるタスクが実行された後、タスクスケジューラ動作が完了する。
タスクスケジュール制御部43は、イベント制御部36からタスク制御の指示を受けると、タスクスケジュールテーブル42に基づいてタスクスケジューラ動作を行う。より具体的には、タスクスケジュール制御部43は、タスクスケジュールテーブル42から制御ビットを読み出し、タスク起動制御部44に通知する。
タスク起動制御部44は、タスク開始ポインタPTRに応じてタスクスケジュールテーブル42から実行タスクコードを読み出し、これをタスク実行制御部15に通知する。
タスク起動制御部44は、タスク開始ポインタPTRに応じてタスクスケジュールテーブル42から実行タスクコードを読み出し、これをタスク実行制御部15に通知する。
タスク実行制御部15は、通知されたタスクコードを命令メモリ16から読み出し、これを実行する。また、タスク実行制御部15はタスクの実行が完了すると、その旨をタスク起動制御部44を介してタスクスケジュール制御部43に通知する。この通知に応じて、タスクスケジュール制御部43は、タスクスケジュールテーブル42から制御ビットを読み出す。タスク起動制御部44は読み出された制御ビットに応じた処理(例えば、後続のタスクを実行したり、ADCタスクが実行されるのを待ったり)を行う。
図8は、イベント管理装置100の処理の一例を示すフローチャートである。なお、図8は、1つのトリガTRGが生成された場合の処理を示している。
まず、各レジスタが初期設定される(S1)。図9は、S1後の各レジスタの値を模式的に示す図である。例えば、制御レジスタ33には、各トリガTRGに応じてタスクの実行を許可する“1”が設定される。原因レジスタ34、状態レジスタ35における受付状態レジスタ35aおよび実行状態レジスタ35bには、“0”が初期値として設定される。また、所定のタスク開始コードPTRがイベントキューレジスタ31に設定される。なお、この段階では、タスク開始ポインタレジスタ41には何も設定されない。
イベント管理装置100はトリガTRGが生成されるのを待つ(S2)。トリガTRGが生成されると(S2のYES)、イベント制御部36は生成されたトリガTRGに対応する受付状態レジスタ35aを“1”に設定する(S3)。以下、トリガTRG0が生成された場合を例に取って説明を続ける。
図10は、S3後の各レジスタの値を模式的に示す図である。図示のように、トリガTRG0に対応する受付状態レジスタ35aが“1”に設定される。他の受付状態レジスタ35aは“0”のままである。
図10は、S3後の各レジスタの値を模式的に示す図である。図示のように、トリガTRG0に対応する受付状態レジスタ35aが“1”に設定される。他の受付状態レジスタ35aは“0”のままである。
S3の後、タスク開始ポインタレジスタ41には、トリガTRG0に関連付けられたタスク開始ポインタPTR0が設定される。さらに、イベント制御部36は、トリガTRG0に対応する受付状態レジスタ35aおよび実行状態レジスタ35bを、それぞれ“0”,“1”に設定する(S4)。これにより、タスクスケジューラ14が起動する。
図11は、S4後の各レジスタの値を模式的に示す図である。タスク開始ポインタレジスタ(TSKINITP)41にタスク開始ポインタPTR0が設定され、かつ、トリガTRG0に対応する受付状態レジスタ35aおよび実行状態レジスタ35bが、それぞれ“0”,“1”に設定される。
図11は、S4後の各レジスタの値を模式的に示す図である。タスク開始ポインタレジスタ(TSKINITP)41にタスク開始ポインタPTR0が設定され、かつ、トリガTRG0に対応する受付状態レジスタ35aおよび実行状態レジスタ35bが、それぞれ“0”,“1”に設定される。
次に、タスクスケジュール制御部43は、タスク開始ポインタPTR0に関連付けられた制御ビットをタスクスケジュールテーブル42から読み出し、タスク起動制御部44に通知する(S5)。タスク起動制御部44はタスク開始ポインタPTR0に関連付けられた実行タスクコードをタスクスケジュールテーブル42から読み出す。読み出された実行タスクコードはタスク実行制御部15に通知される。これにより、タスク実行制御部15は通知されたタスクコードを実行する(S6)。
図7に例示するタスクスケジュールテーブル42によると、タスク開始ポインタPTR0が設定された場合、タスクコードTASK5,TASK6,TASK9およびTASK7が順に実行される。最後のタスクコードTASK7が実行されすべてのタスクコードの実行が完了すると(S7のYES)、タスクスケジューラ14の動作が完了し、その旨がタスクスケジューラ14からイベント制御部36へ通知される。これに応じて、イベント制御部36はトリガTRG0に対応する実行状態レジスタ35bを“0”に設定する(S8)。そして、イベント管理装置100は次のトリガTRGが生成されるのを待つ(S2)。
図12は、S8後の各レジスタの値を模式的に示す図である。図示のように、すべての受付状態レジスタ35aおよび実行状態レジスタ35bが“0”に設定され、次のトリガTRGを受付可能な状態となる。
図12は、S8後の各レジスタの値を模式的に示す図である。図示のように、すべての受付状態レジスタ35aおよび実行状態レジスタ35bが“0”に設定され、次のトリガTRGを受付可能な状態となる。
図13は、図3に示す自己トリガによるイベント管理装置100の処理の具体例を説明する図である。図13(a)はイベントキューレジスタ31であり、図13(b)はタスクスケジュールテーブル42であり、図示するように設定されていたとする。ここで、トリガTRG0は外部トリガであり、トリガTRG1,TRG2は自己トリガであるとする。より具体的には、トリガTRG1はタスクTASK3を実行することによって生成され、トリガTRG2はタスク12を実行することにより生成される。
トリガTRG0が生成されると、タスク開始ポインタPTR0およびタスクスケジュールテーブル42に基づいて、タスクTASK1,TASK2,TASK3が順に実行される。TASK3が実行されることで、自己トリガTRG1が生成される。
トリガTRG1が生成されると、タスク開始ポインタPTR3およびタスクスケジュールテーブル42に基づいて、タスクTASK11,TASK12が順に実行される。TASK12が実行されることで、自己トリガTRG2が生成される。
トリガTRG2が生成されると、タスク開始ポインタPTR5およびタスクスケジュールテーブル42に基づいて、タスクTASK21,TASK22,TASK23,TASK24が順に実行され、タスクスケジュール動作は完了する。
図14は、図3に示す自己トリガによるイベント管理装置100の処理の別の具体例を説明する図である。図14(a)に示すようにイベントキューレジスタ31が設定され、図14(b)に示すようにタスクスケジュールテーブル42が設定されていたとする。ここで、トリガTRG0,TRG1は外部トリガであり、トリガTRG2は自己トリガであるとする。より具体的には、トリガTRG2はタスクTASK3を実行することによって生成される。
また、タスクTASK1〜TASK7のまとまりを、便宜上スケジュール1と呼ぶ。そして、タスクTASK11,TASK12のまとまりを、スケジュール2と呼ぶ。図14(b)に示すように、スケジュール1は、タスクTASK1〜TASK3と、タスクTASK4〜TASK7に分割されている。
また、タスクTASK1〜TASK7のまとまりを、便宜上スケジュール1と呼ぶ。そして、タスクTASK11,TASK12のまとまりを、スケジュール2と呼ぶ。図14(b)に示すように、スケジュール1は、タスクTASK1〜TASK3と、タスクTASK4〜TASK7に分割されている。
イベント管理装置100では、外部トリガTRG0が生成された後に外部トリガTRG1が生成された場合、スケジュール1を中断してスケジュール2を実行できる。以下、詳細に説明する。
トリガTRG0が生成されると、タスク開始ポインタPTR0およびタスクスケジュールテーブル42に基づいて、タスクTASK1,TASK2が順に実行される。
トリガTRG0が生成されると、タスク開始ポインタPTR0およびタスクスケジュールテーブル42に基づいて、タスクTASK1,TASK2が順に実行される。
さらにタスクTASK3の実行中に、トリガTRG1が生成されたとする。この場合、まずタスクTASK3の実行を完了し、自己トリガTRG2が生成される。この自己トリガTRG2は受付状態レジスタ35aにキューイングされる。
そして、トリガTRG1に対応するタスク開始ポインタPTR3およびタスクスケジュールテーブル42に基づいて、タスクTASK11,TASK12が順に実行される。これにより、スケジュール2が完了する。
そして、トリガTRG1に対応するタスク開始ポインタPTR3およびタスクスケジュールテーブル42に基づいて、タスクTASK11,TASK12が順に実行される。これにより、スケジュール2が完了する。
続いて、キューイングされた自己トリガTRG2に対応するタスク開始ポインタPTR5およびタスクスケジュールテーブル42に基づいて、タスクTASK4,TASK5,TASK6,TASK7が順に実行される。以上により、タスクスケジュール動作は完了する。このように、本実施形態では自己トリガを用いるため、スケジュール1を、タスクTASK1〜TASK3と、タスクTASK4〜TASK7に分割して実行できる。
図15は、イベント管理装置100の処理の別の例を示すフローチャートである。なお、図8とは異なり、図15は複数のトリガTRGが同時に生成された場合の処理を示している。以下、図8との相違点を中心に説明する。
複数のトリガTRGが生成された場合(S2のYES)、イベント制御部36は生成されたすべてのトリガTRGに対応する受付状態レジスタ35aを“1”に設定する(S3)。以下、トリガTRG0,TRG1が生成された場合の例を説明する。
図16は、S3後の各レジスタの値を模式的に示す図である。トリガTRG0,TRG1に対応する2つの受付状態レジスタ35aが“1”に設定される。そして、タスクスケジューラ14およびタスク実行制御部15により、予め定めた優先順位が高い順にタスクが実行される。ここでは、トリガTRG0〜TRG9の順に優先順位が高いものとする。この場合、トリガTRG0に対応するタスクが先に実行される(S4〜S6)。そして、トリガTRG0に対応するタスクの終了後(S7のYES)、トリガTRG0に対応する実行状態レジスタ35bが“0”に設定される(S8)。
図17は、S8後の各レジスタの値を模式的に示す図である。トリガTRG0に対応する受付状態レジスタ35aおよび実行状態レジスタ35bは“0”に設定される。一方、トリガTRG1に対応する受付状態レジスタ35aは“1”のままである。
このように、“1”に設定された受付状態レジスタ35aが残っている場合(S9のYES)、後続のタスクが実行される。すなわち、トリガTRG1に対応するタスクが実行される(S4〜S6)。以降の処理は図8と同様であるので、説明を省略する。
このように、“1”に設定された受付状態レジスタ35aが残っている場合(S9のYES)、後続のタスクが実行される。すなわち、トリガTRG1に対応するタスクが実行される(S4〜S6)。以降の処理は図8と同様であるので、説明を省略する。
続いて、多重イベントトリガ要求について説明する。例えば、トリガTRG0が生成され、トリガTRG0に対応するタスクが実行されているときに、さらにトリガTRG0が生成されたとする。この場合、イベント制御部36はトリガTRG0に対応する受付状態レジスタ35aを“1”に設定する。各レジスタの値は図18のようになる。
このような場合でも、タスクスケジューラ14は実行中のスケジュールを継続して実行する。一方、イベント制御部36はトリガTRG0に対応するタスクの実行中にトリガTRG0が生成されたとして、原因レジスタ34を“1”に設定する。これにより、各レジスタの値は図19のようになり、イベント管理装置100は多重イベント受付状態となる。
このように、本実施形態では、イベントキューレジスタ31に、複数のトリガと、タスク開始ポインタとを関連付けて設定する。このトリガには、イベント管理装置100自身が生成する自己トリガを含んでいる。そのため、スケジュールを分割して実行することが可能となり、高性能なタスクスケジュール制御を実現できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
2 CPU
3 PMD
4 インバータ
5 モータ
6a 電流・電圧センサ
6b ADC
7a 回転角センサ
7b 角度変換器
15 タスク実行制御部
20 起動イベント選択部
31 イベントキューレジスタ
100 イベント管理装置
3 PMD
4 インバータ
5 モータ
6a 電流・電圧センサ
6b ADC
7a 回転角センサ
7b 角度変換器
15 タスク実行制御部
20 起動イベント選択部
31 イベントキューレジスタ
100 イベント管理装置
Claims (5)
- 複数のトリガのそれぞれと、タスク開始ポインタと、が互いに関連付けられたイベントキューレジスタと、
前記複数のトリガのうちのいずれかが生成されると、生成されたトリガと関連付けられたタスク開始ポインタに基づいてタスクを実行するタスク実行制御部と、を備え、
前記複数のトリガのうちの少なくとも1つは、イベント管理装置内で生成される自己トリガである、イベント管理装置。 - 前記タスク実行制御部が第1のタスクを実行することにより、前記自己トリガが生成される、請求項1に記載のイベント管理装置。
- 前記複数のトリガのうちの第1のトリガに関連付けられたタスク開始ポインタに基づいてタスクが実行されている際に、さらに前記第1のトリガが生成されると、多重イベントが発生したことを示す値が設定される原因レジスタを備える、請求項1に記載のイベント管理装置。
- モータと、
イベント管理装置と、
前記イベント管理装置の制御に応じてモータを制御するモータ制御部と、を備え、
前記イベント管理装置は、
複数のトリガのそれぞれと、タスク開始ポインタと、が互いに関連付けられたイベントキューレジスタと、
前記複数のトリガのうちのいずれかが生成されると、生成されたトリガと関連付けられたタスク開始ポインタに基づいてタスクを実行するタスク実行制御部と、を有し、
前記複数のトリガのうちの少なくとも1つは、前記イベント管理装置内で生成される自己トリガである、モータシステム。 - 複数のトリガのそれぞれと、タスク開始ポインタと、が互いに関連付けられたイベントキューレジスタを備えるイベント管理装置におけるイベント管理方法であって、
前記複数のトリガのうちのいずれかが生成されると、生成されたトリガと関連付けられたタスク開始ポインタに基づいてタスクを実行するステップを備え、
前記複数のトリガのうちの少なくとも1つは、前記イベント管理装置内で生成される自己トリガである、イベント管理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014007236A JP6117120B2 (ja) | 2014-01-17 | 2014-01-17 | イベント管理装置、イベント管理方法およびモータシステム |
US14/474,300 US20150202969A1 (en) | 2014-01-17 | 2014-09-02 | Event management apparatus, event management method, and motor system |
EP14183534.8A EP2897048A1 (en) | 2014-01-17 | 2014-09-04 | Event management apparatus, event management method, and motor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014007236A JP6117120B2 (ja) | 2014-01-17 | 2014-01-17 | イベント管理装置、イベント管理方法およびモータシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015136259A JP2015136259A (ja) | 2015-07-27 |
JP6117120B2 true JP6117120B2 (ja) | 2017-04-19 |
Family
ID=51492845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014007236A Active JP6117120B2 (ja) | 2014-01-17 | 2014-01-17 | イベント管理装置、イベント管理方法およびモータシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150202969A1 (ja) |
EP (1) | EP2897048A1 (ja) |
JP (1) | JP6117120B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018098443A1 (en) * | 2016-11-28 | 2018-05-31 | Amazon Technologies, Inc. | On-demand code execution in a localized device coordinator |
US10783016B2 (en) | 2016-11-28 | 2020-09-22 | Amazon Technologies, Inc. | Remote invocation of code execution in a localized device coordinator |
DE102018207175A1 (de) * | 2018-05-08 | 2019-11-14 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Aktivieren von Tasks in einem Betriebssystem |
US11200331B1 (en) | 2018-11-21 | 2021-12-14 | Amazon Technologies, Inc. | Management of protected data in a localized device coordinator |
US11372654B1 (en) | 2019-03-25 | 2022-06-28 | Amazon Technologies, Inc. | Remote filesystem permissions management for on-demand code execution |
US11106496B2 (en) * | 2019-05-28 | 2021-08-31 | Microsoft Technology Licensing, Llc. | Memory-efficient dynamic deferral of scheduled tasks |
JP6896195B1 (ja) * | 2020-08-28 | 2021-06-30 | 三菱電機株式会社 | 制御装置及び画像記録方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE188559T1 (de) * | 1992-12-23 | 2000-01-15 | Centre Electron Horloger | Multi-tasking-steuerungsgerät mit geringem energieverbrauch |
DE19500957A1 (de) * | 1994-07-19 | 1996-01-25 | Bosch Gmbh Robert | Verfahren zur Steuerung von technischen Vorgängen oder Prozessen |
JP4560078B2 (ja) * | 2007-12-06 | 2010-10-13 | 本田技研工業株式会社 | コミュニケーションロボット |
JP5029675B2 (ja) * | 2009-11-13 | 2012-09-19 | 沖電気工業株式会社 | マルチ呼処理スレッド処理方法及び呼処理装置 |
US8898124B2 (en) * | 2010-12-16 | 2014-11-25 | International Business Machines Corporation | Controlling database trigger execution with trigger return data |
-
2014
- 2014-01-17 JP JP2014007236A patent/JP6117120B2/ja active Active
- 2014-09-02 US US14/474,300 patent/US20150202969A1/en not_active Abandoned
- 2014-09-04 EP EP14183534.8A patent/EP2897048A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP2897048A1 (en) | 2015-07-22 |
US20150202969A1 (en) | 2015-07-23 |
JP2015136259A (ja) | 2015-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6117120B2 (ja) | イベント管理装置、イベント管理方法およびモータシステム | |
US10274936B2 (en) | Control apparatus | |
JP6017260B2 (ja) | マルチスレッドプロセッサ | |
US10162673B2 (en) | Controller preventing communication collisions between parallel control programs | |
US20120143941A1 (en) | Apparatus for controlling service of network robot system based on remote procedure calls and method thereof | |
JP5994679B2 (ja) | 処理装置、及び処理装置の制御方法 | |
JP2010086129A (ja) | マルチスレッドプロセッサ | |
JP2015225396A (ja) | 車両制御装置 | |
WO2012042556A1 (ja) | D/a変換装置、周辺装置、及びplc | |
JP5195408B2 (ja) | マルチコアシステム | |
JP2008041059A (ja) | マルチプロセッサ制御装置及び情報処理装置 | |
JP2005190195A (ja) | マイクロコントローラ | |
JP2002099434A (ja) | 制御装置 | |
JP2009163531A (ja) | 割り込み管理機構およびマイクロコンピュータ | |
JP2017016250A (ja) | バリア同期装置、バリア同期方法及びプログラム | |
JP2013242816A (ja) | Dspカード及びデータ転送方法 | |
JP6648541B2 (ja) | 制御装置 | |
JP2011159290A (ja) | 処理装置 | |
JP2018061350A (ja) | 半導体装置、モータ制御システム、及び半導体装置の制御方法 | |
JP5838237B2 (ja) | マルチスレッドプロセッサ | |
JP2016051417A (ja) | データ転送装置データ転送システム | |
JP5441185B2 (ja) | 割り込みコントローラ及び時分割割り込み発生方法 | |
JP2006146641A (ja) | マルチスレッドプロセッサ及びマルチスレッドプロセッサの割込み方法 | |
JP2015215685A (ja) | 情報処理装置及び情報処理プログラム | |
JP5536864B2 (ja) | マルチスレッドプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160218 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170221 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170322 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6117120 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |