JP5811073B2 - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP5811073B2
JP5811073B2 JP2012245568A JP2012245568A JP5811073B2 JP 5811073 B2 JP5811073 B2 JP 5811073B2 JP 2012245568 A JP2012245568 A JP 2012245568A JP 2012245568 A JP2012245568 A JP 2012245568A JP 5811073 B2 JP5811073 B2 JP 5811073B2
Authority
JP
Japan
Prior art keywords
data
command frame
transmission
communication unit
frame transmission
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
Application number
JP2012245568A
Other languages
English (en)
Other versions
JP2014095944A (ja
Inventor
青木 充
充 青木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2012245568A priority Critical patent/JP5811073B2/ja
Priority to DE102013220450.7A priority patent/DE102013220450B4/de
Publication of JP2014095944A publication Critical patent/JP2014095944A/ja
Application granted granted Critical
Publication of JP5811073B2 publication Critical patent/JP5811073B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、シリアル通信を行う電子制御装置に関する。
マイクロセカンドバスは、シリアル通信のスタンダードとして広くパワーASICや多チャンネルスイッチ製品に採用されているSPI(Serial Peripheral Interface)通信に変わる通信方式として提案されている(例えば、特許文献1を参照)。
このマイクロセカンドバスは、データフレームとコマンドフレームを送信するように構成されている。データフレームは、予め設定された一定周期毎に到来するフレーム送信タイミングで定期的に送信される。コマンドフレームは、任意のタイミングでコマンドフレーム送信要求が発生したときに送信される。
米国特許出願公開第2004/0217385号明細書
しかし、コマンドフレームは、1フレームで送信することができるデータ量に上限がある。このため、コマンドフレームで送信するデータ量がこの上限を超える場合には、複数のコマンドフレームを送信する必要がある。すなわち、ソフトウェアによりコマンドフレーム送信要求を発生させる処理を複数回実行する必要がある。これにより、コマンドフレーム送信要求を発生させる処理を実行するCPUの負荷が高くなり、CPUで実行される他の処理に影響を及ぼすおそれがあるという問題があった。
本発明は、こうした問題に鑑みてなされたものであり、コマンドフレームを送信するときのCPUの負荷を低減することを目的とする。
上記目的を達成するためになされた請求項1,2に記載の電子制御装置は、CPUと、通信バスを介してデータをシリアル通信により送信する第1通信部と、通信バスを介して第1通信部とシリアル通信可能に接続された第2通信部とを備える。そして第1通信部では、データフレーム送信手段が、予め設定された送信周期毎に、制御対象を制御するための制御データを示すデータフレームを第2通信部へ送信する。
また第1通信部では、格納手段に、第2通信部に対して予め設定された処理の実行を指示するコマンドフレームとして送信するためのコマンドフレーム用データが格納され、コマンドフレーム送信手段が、コマンドフレームの送信を要求するためのコマンドフレーム送信要求が発生した場合に、格納手段に格納されているコマンドフレーム用データをコマンドフレームとして第2通信部へ送信する。
そして当該電子制御装置は、CPUとは別にハードウェアを備え、このハードウェアは、コマンドフレーム用データを格納手段へ転送する処理と、コマンドフレーム送信要求を発生させる処理とを実行することが可能に構成される。
また、請求項1に記載の電子制御装置では、ハードウェアは、CPUによる処理を行うことなくコマンドフレーム用データを格納手段へ転送する第1転送部である。そして、コマンドフレーム用データを複数に分割して、分割された複数のコマンドフレーム用データのそれぞれを分割データとして、CPUは、複数の分割データのそれぞれをコマンドフレームとして複数回にわたって送信する場合に、複数の分割データのうち、コマンドフレームとして最も早く送信するデータを第1送信データとして、第1送信データを格納手段へ転送する転送処理と、転送処理が完了した後に、コマンドフレームの送信を要求するための送信要求信号を第1通信部へ出力する出力処理とを実行するように構成される。
第1通信部のコマンドフレーム送信手段は、送信要求信号が第1通信部に入力すると、コマンドフレーム送信要求が発生したと判断する。第1通信部は、更に、コマンドフレームを第2通信部へ送信した後に、その旨を示す送信完了信号を第1転送部へ出力する第1出力手段を備える。
第1転送部は、送信完了信号が第1転送部に入力する毎に、複数の分割データのうち格納手段へ転送されていない分割データを1つ選択して、選択した分割データを格納手段へ転送し、分割データを転送した後に、その旨を示す転送完了信号を第1通信部へ出力する第2出力手段を備える。
第1通信部のコマンドフレーム送信手段は、更に、転送完了信号が第1通信部に入力すると、コマンドフレーム送信要求が発生したと判断する。
また、請求項2に記載の電子制御装置では、ハードウェアは、CPUによる処理を行うことなくコマンドフレーム用データを格納手段へ転送する第2転送部である。そして、コマンドフレーム用データを複数に分割して、分割された複数のコマンドフレーム用データのそれぞれを分割データとして、コマンドフレーム送信手段は、格納手段に新たに分割データが格納されると、コマンドフレーム送信要求が発生したと判断する。
第1通信部は、更に、コマンドフレーム送信手段がコマンドフレームを送信した後に、格納手段に格納されている分割データを消去する消去手段を備える。第2転送部は、複数の分割データを格納するとともに、消去手段により分割データが消去される毎に、複数の分割データのうち格納手段へ転送されていない分割データを、当該第2転送部に格納された順に1つ選択して、選択した分割データを格納手段へ転送する。
このように構成された電子制御装置では、コマンドフレームを送信するために、コマンドフレーム用データを格納手段へ転送し、その後に、コマンドフレーム送信要求を発生させる必要がある。そして、請求項1に記載の電子制御装置では、これらの処理を、CPUとは別に設けられたハードウェアで実行させることができる。これにより、CPUは、コマンドフレームを送信するときに、コマンドフレーム用データを格納手段へ転送し、その後に、コマンドフレーム送信要求を発生させる必要がなくなる。このため、コマンドフレームを送信するときのCPUの負荷を低減することができる。
ECU1の構成を示すブロック図である。 第1実施形態のコマンドフレームの送信タイミングを示すタイミングチャートである。 RAM13、DMAコントローラ15およびMSBコントローラ16の構成を示すブロック図である。 第1実施形態のCPUフレーム送信処理を示すフローチャートである。 DMACフレーム送信処理を示すフローチャートである。 第1実施形態のMSBCフレーム送信処理を示すフローチャートである。 第1実施形態のコマンドフレームの送信手順を示すフローチャートである。 第2実施形態のMSBCフレーム送信処理を示すフローチャートである。 第2実施形態のコマンドフレームの送信タイミングを示すタイミングチャートである。 第3実施形態のMSBコントローラ16の構成を示すブロック図である。 第3実施形態のCPUフレーム送信処理を示すフローチャートである。 第3実施形態のMSBCフレーム送信処理を示すフローチャートである。 第3実施形態のコマンドフレームの送信手順を示すフローチャートである。
(第1実施形態)
以下に本発明の第1実施形態を図面とともに説明する。
本実施形態の電子制御装置(以下、ECUという)1は、車両に搭載され、車両のエンジン(不図示)の制御を行う。
ECU1は、図1に示すように、マイクロコンピュータ(以下、マイコンという)2と、パワーデバイス3と、マイクロセカンドバス(Micro Second Bus)4とを備える。
マイコン2は、エンジンを制御するための処理を実行し、車両に取り付けられた電気負荷(インジェクタ等)を制御するための制御信号を出力する。
マイコン2は、CPU11、ROM12、RAM13、タイマ14、DMA(Direct Memory Access)コントローラ15およびマイクロセカンドバス(以下、MSBという)コントローラ16と、これらを相互に接続するバス17とを備える。
CPU11は、エンジンを制御するためのプログラムに基づいて処理を実行する。ROM12は、CPU11によって実行されるプログラムを格納するための不揮発性メモリである。RAM13は、CPU11の演算結果等を一時格納するための揮発性メモリである。
タイマ14は、図1では1つのみ示しているが、予め設定されたオンタイミングとオフタイミングとの間でハイレベルになるパルス信号を生成して出力する機能を有するタイマ、および、入力したパルスの立ち上がり時刻から立下り時刻までの時間を計測する機能を有するタイマなど複数設けられている。
DMAコントローラ15は、データ転送を要求する信号を入力すると、RAM13に記憶されているデータをCPU11の処理を介すことなく転送するDMA転送を実行する機能を有する。
MSBコントローラ16は、マイコン2とパワーデバイス3との間に設けられたマイクロセカンドバス4を介してパワーデバイス3との間で行う高速シリアル通信を制御する。そしてMSBコントローラ16は、入力したパラレルデータをシリアルデータに変換して出力するシリアライザ161と、入力したシリアルデータをパラレルデータに変換して出力するデシリアライザ162とを備える。
次にパワーデバイス3は、マイクロセカンドバス(MSB)コントローラ21、駆動回路群22およびレジスタ23を備える。
MSBコントローラ21は、マイクロセカンドバス4を介してマイコン2との間で行う高速シリアル通信を制御する。そしてMSBコントローラ21は、入力したパラレルデータをシリアルデータに変換してMSBコントローラ16のデシリアライザ162へ出力するシリアライザ211と、MSBコントローラ16のシリアライザ161から入力したシリアルデータをパラレルデータに変換して出力するデシリアライザ212とを備える。
駆動回路群22は、複数の駆動回路で構成されており、MSBコントローラ21のデシリアライザを介してマイコン2から入力した上記制御信号に基づいて、車両に取り付けられた電気負荷を駆動するための駆動信号を生成して出力する。図1では一例として、インジェクタ駆動回路221、バルブ駆動回路222、ヒータ駆動回路223、リレー駆動回路224およびプリドライバ回路225を示している。インジェクタ駆動回路221は、インジェクタ(不図示)を駆動する駆動信号を生成する。またバルブ駆動回路222は、インジェクタへの燃料供給を調整するバルブ(不図示)を駆動する駆動信号を生成する。またヒータ駆動回路223は、O2センサヒータ(不図示)を駆動する駆動信号を生成する。またリレー駆動回路224は、メインリレー(不図示)をオン/オフする駆動信号を生成する。またプリドライバ回路225は、高電圧または大電流を必要とするパワー素子を駆動する駆動回路を動作させるための信号を生成する。
レジスタ23は、パワーデバイス3の設定を示す情報と、パワーデバイス3の状態を示す情報を記憶する。
マイクロセカンドバス4は、ダウンストリームバス31と、アップストリームバス32と、通信クロックバス33とを備える。
ダウンストリームバス31は、MSBコントローラ16からMSBコントローラ21へシリアルデータを送信するためのバスである。
アップストリームバス32は、MSBコントローラ21からMSBコントローラ16へシリアルデータを送信するためのバスである。
通信クロックバス33は、MSBコントローラ16からMSBコントローラ21へクロック信号を送信するためのバスである。
そしてマイクロセカンドバス4では、ダウンストリームバス31およびアップストリームバス32の両方で、通信クロックバス33で送信される通信クロックに同期した通信が行われる。なお、マイクロセカンドバス4の最大クロック周波数は40MHzである。また、最大の有効データは64bitである。
このように構成されたECU1において、マイコン2は、図2に示すように、予め設定された一定周期Tc毎に到来するフレーム送信タイミングTfで定期的に、データフレームをダウンストリームバス31を介してMSBコントローラ21へ送信する(図2のデータフレームDFを参照)。データフレームには、上記制御信号を示すデータが含まれる。
ただしマイコン2は、CPU11により実行される処理により任意のタイミングでコマンドフレーム送信要求(図2のコマンドフレーム送信要求TR1を参照)が発生したときに、その直後のフレーム送信タイミングTfで、データフレームに代えて、コマンドフレームを、ダウンストリームバス31を介してMSBコントローラ21へ送信する(図2のコマンドフレームCFを参照)。コマンドフレームは、レジスタ23へのリード/ライトを行う場合に使用される。
なお、上記一定周期Tc内において、上記データフレームおよび上記コマンドフレームの何れも送信されていないときに送信されているフレームは、データとして無効なフレームであり、パッシブフレームという(図2のパッシブフレームPFを参照)。
また図3に示すように、MSBコントローラ16は、上述のシリアライザ161およびデシリアライザ162(図3では不図示)に加えて、コマンドフレーム送信バッファ163、データフレーム送信バッファ164およびマルチプレクサ165を備える。
コマンドフレーム送信バッファ163は、コマンドフレームとして送信されるデータを一時的に格納する。データフレーム送信バッファ164は、データフレームとして送信されるデータを一時的に格納する。
マルチプレクサ165は、コマンドフレーム送信時にはコマンドフレーム送信バッファ163に格納されているデータを選択し、データフレーム送信時にはデータフレーム送信バッファ164に格納されているデータを選択して、シリアライザ161に出力する。
次に、フレームを送信するためにCPU11が実行する処理(以下、CPUフレーム送信処理という)の手順を説明する。このCPUフレーム送信処理は、マイコン2の動作中に繰り返し実行される処理である。
CPUフレーム送信処理が実行されると、CPU11は、図4に示すように、まずS10にて、コマンドフレームとして送信されるデータ(以下、コマンドフレーム送信用データという)がRAM13に新たに記憶されたか否かを判断する。ここで、コマンドフレーム送信用データがRAM13に新たに記憶されていない場合には(S10:NO)、CPUフレーム送信処理を一旦終了する。
一方、コマンドフレーム送信用データがRAM13に新たに記憶されている場合には(S10:YES)、S20にて、RAM13に記憶されているコマンドフレーム送信用データをコマンドフレームとして送信する場合の送信回数n(nは正の整数)を決定する。具体的には、例えば、コマンドフレーム送信用データを、1回のコマンドフレームで送信することができる最大データ量(本実施形態では32bit)毎に分割することにより、送信回数nを決定することができる。なお図3では、RAM13に記憶されているコマンドフレーム送信用データDCが、第1送信データDC1、第2送信データDC2、第3送信データDC3、・・・、第n送信データDCn(nは正の整数)に分割されている状態を示している。
そしてS30にて、DMA転送が完了したことを示すDMA完了割込信号がDMAコントローラ15からMSBコントローラ16に入力した場合に、コマンドフレーム送信要求が発生したとMSBコントローラ16が判断するように、MSBコントローラ16に対して設定を行う。
さらにS40にて、DMA転送が完了した後に、その旨を示すDMA完了割込信号を出力するように、DMAコントローラ15に対して設定を行うとともに、S50にて、DMAコントローラ15において、DMAコントローラ15の起動回数を、送信回数nから1を減算した値(すなわち、(n−1)回)に設定する。またS60にて、DMAコントローラ15において、後述の転送データ指示アドレスを、RAM13に記憶されているコマンドフレーム送信用データの先頭アドレスと、上記先頭アドレスに上記最大データ量(本実施形態では32bit)とを加算した値(図3では、第2送信データDC2の先頭アドレス)に設定する。
その後S70にて、RAM13に記憶されているコマンドフレーム送信用データのうち、上記先頭アドレスと、上記先頭アドレスに上記最大データ量(本実施形態では32bit)を加算したアドレスとの間に格納されているデータ(図3では、第1送信データDC1)を、コマンドフレーム送信バッファ163へ転送する(図3の矢印YT1を参照)。
そしてS80にて、コマンドフレームの送信が完了した後に、その旨を示す送信完了割込信号を出力するように、MSBコントローラ16に対して設定を行う。
その後S90にて、コマンドフレームの送信をMSBコントローラ16に要求する旨を示すフレーム送信要求信号をMSBコントローラ16へ出力し、CPUフレーム送信処理を一旦終了する。
次に、フレームを送信するためにDMAコントローラ15が実行する処理(以下、DMACフレーム送信処理という)の手順を説明する。このDMACフレーム送信処理は、マイコン2の動作中に繰り返し実行される処理である。
DMACフレーム送信処理が実行されると、DMAコントローラ15は、図5に示すように、まずS210にて、MSBコントローラ16から送信完了割込信号が入力したか否かを判断する。ここで、送信完了割込信号が入力していない場合には(S210:NO)、DMACフレーム送信処理を一旦終了する。
一方、送信完了割込信号が入力した場合には(S210:YES)、S220にて、DMA転送の回数を示す転送回数カウンタの値(以下、転送回数Ctという)が上記の起動回数(すなわち、(n−1)回)以上であるか否かを判断する。
ここで、転送回数Ctが起動回数未満である場合には(S220:NO)、S230にて、上記転送データ指示アドレスと、上記転送データ指示アドレスに上記最大データ量(本実施形態では32bit)を加算したアドレスとの間に格納されているデータ(図3では、第2送信データDC2、第3送信データDC3、・・・、第n送信データDCnの中の何れか1つの送信データ)をコマンドフレーム送信バッファ163へ転送する(図3の矢印YT2,YT2,・・・,YTnを参照)。その後S240にて、MSBコントローラ16へDMA完了割込信号を出力する。
そしてS250にて、転送回数カウンタをインクリメント(1加算)する。さらにS260にて、次に転送するデータの先頭アドレスを指示するように転送データ指示アドレスを更新して、DMACフレーム送信処理を一旦終了する。具体的には、転送データ指示アドレスに設定されている値と、上記最大データ量(本実施形態では32bit)とを加算した値を、新たに転送データ指示アドレスとして設定する。
またS220にて、転送回数Ctが起動回数以上である場合には(S220:YES)、S270にて、転送回数カウンタをリセット(0に設定)して、DMACフレーム送信処理を一旦終了する。
次に、フレームを送信するためにMSBコントローラ16が実行する処理(以下、MSBCフレーム送信処理という)の手順を説明する。このMSBCフレーム送信処理は、マイコン2の動作中に繰り返し実行される処理である。
MSBCフレーム送信処理が実行されると、MSBコントローラ16は、図6に示すように、まずS310にて、フレーム送信タイミングが到来したか否かを判断する。ここで、フレーム送信タイミングが到来していない場合には(S310:NO)、MSBCフレーム送信処理を一旦終了する。
一方、フレーム送信タイミングが到来した場合には(S310:YES)、S320にて、コマンドフレーム送信要求が発生したか否かを判断する。なおS320では、CPU11からフレーム送信要求信号が入力した場合、またはDMAコントローラ15からDMA完了割込信号が入力した場合に、コマンドフレーム送信要求が発生したと判断する。
ここで、コマンドフレーム送信要求が発生したと判断した場合には(S320:YES)、S330にて、コマンドフレーム送信バッファ163に格納されているデータをコマンドフレームとして送信し、その後S340にて、DMAコントローラ15へ送信完了割込信号を出力し、MSBCフレーム送信処理を一旦終了する。
一方、コマンドフレーム送信要求が発生していないと判断した場合には(S320:NO)、S350にて、データフレーム送信バッファ164に格納されているデータをデータフレームとして送信し、MSBCフレーム送信処理を一旦終了する。
次に、このように構成されたECU1において、コマンドフレームを連続して送信する場合に行われる処理の順序を図3と図7を用いて説明する。なお図7では、コマンドフレームを3回連続して送信する場合の処理順序を示している。そして図7では、S410〜S520の処理ブロックのうち、実線の矩形で示されるブロックはソフトウェアによる処理であることを示し、破線の矩形で示されるブロックはハードウェアによる処理であることを示す。
図7に示すように、まずS410にて、CPU11が、DMAコントローラ15の起動回数を2回に設定する。そしてS420にて、CPU11が、第1送信データDC1(図3を参照)をコマンドフレーム送信バッファ163へ転送する(図3の矢印YT1を参照)。その後S430にて、CPU11が、フレーム送信要求信号をMSBコントローラ16へ出力する。
そしてS440にて、MSBコントローラ16が、第1送信データDC1のコマンドフレームを送信する。その後S450にて、MSBコントローラ16が送信完了割込信号を出力し(図3の矢印YI1を参照)、DMAコントローラ15が起動する。
そしてS460にて、DMAコントローラ15が、第2送信データDC2(図3を参照)をコマンドフレーム送信バッファ163へ転送する(図3の矢印YT2を参照)。その後S470にて、DMAコントローラ15が、MSBコントローラ16へDMA完了割込信号を出力すると(図3の矢印YI2を参照)、S480にて、MSBコントローラ16が、第2送信データDC2のコマンドフレームを送信する。
その後S490にて、MSBコントローラ16が送信完了割込信号を出力し(図3の矢印YI1を参照)、DMAコントローラ15が起動する。そしてS500にて、DMAコントローラ15が、第3送信データDC3(図3を参照)をコマンドフレーム送信バッファ163へ転送する(図3の矢印YT3を参照)。その後S510にて、DMAコントローラ15が、MSBコントローラ16へDMA完了割込信号を出力すると(図3の矢印YI2を参照)、S520にて、MSBコントローラ16が、第3送信データDC3のコマンドフレームを送信する。
このように構成されたECU1は、CPU11と、マイクロセカンドバス4を介してデータをシリアル通信により送信するMSBコントローラ16と、マイクロセカンドバス4を介してMSBコントローラ16とシリアル通信可能に接続されたMSBコントローラ21とを備える。そしてMSBコントローラ16では、予め設定された一定周期Tc毎に、エンジンを制御するための制御データを示すデータフレームをMSBコントローラ21へ送信する(S350)。
またMSBコントローラ16では、コマンドフレーム送信バッファ163に、コマンドフレームとして送信するためのコマンドフレーム送信用データが格納され、コマンドフレーム送信要求が発生した場合に(S320:YES)、コマンドフレーム送信バッファ163に格納されているコマンドフレーム送信用データをコマンドフレームとしてMSBコントローラ21へ送信する(S330)。
そしてECU1は、CPU11とは別にDMAコントローラ15を備え、このDMAコントローラ15は、コマンドフレーム送信用データをコマンドフレーム送信バッファ163へ転送する処理(S230)と、コマンドフレーム送信要求を発生させる処理(S240)とを実行することが可能に構成される。
このように構成されたECU1では、コマンドフレームを送信するために、コマンドフレーム送信用データをコマンドフレーム送信バッファ163へ転送し、その後に、コマンドフレーム送信要求を発生させる必要がある。そしてECU1では、これらの処理を、CPU11とは別に設けられたハードウェアで実行させることができる。これにより、CPU11は、コマンドフレームを送信するときに、コマンドフレーム送信用データをコマンドフレーム送信バッファ163へ転送し、その後に、コマンドフレーム送信要求を発生させる必要がなくなる。このため、コマンドフレームを送信するときのCPU11の負荷を低減することができる。
また、コマンドフレーム送信用データを複数に分割して、分割された複数のコマンドフレーム送信用データのそれぞれを、第1送信データDC1、第2送信データDC2、第3送信データDC3、・・・、第n送信データDCn(nは正の整数)として、CPU11は、これら複数の送信データのそれぞれをコマンドフレームとして複数回にわたって送信する場合に、これら複数の送信データのうち、コマンドフレームとして最も早く送信する第1送信データDC1をコマンドフレーム送信バッファ163へ転送する転送処理(S70)と、この転送処理が完了した後に、フレーム送信要求信号をMSBコントローラ16へ出力する出力処理(S90)とを実行するように構成されている。
またMSBコントローラ16は、フレーム送信要求信号がMSBコントローラ16に入力すると、コマンドフレーム送信要求が発生したと判断し(S320)、更に、コマンドフレームをMSBコントローラ21へ送信した後に、送信完了割込信号をDMAコントローラ15へ出力する(S340)。
またDMAコントローラ15は、送信完了割込信号がDMAコントローラ15に入力する毎に、第2送信データDC2、第3送信データDC3、・・・、第n送信データDCnのうちコマンドフレーム送信バッファ163へ転送されていない送信データを1つ選択して、選択した送信データをコマンドフレーム送信バッファ163へ転送し(S230)、転送した後に、DMA完了割込信号をMSBコントローラ16へ出力する(S240)。
またMSBコントローラ16は、更に、DMA完了割込信号がMSBコントローラ16に入力すると、コマンドフレーム送信要求が発生したと判断する(S320)。
このように構成されたECU1では、第1送信データDC1をコマンドフレーム送信バッファ163へ転送する転送処理と、この転送処理が完了した後に、フレーム送信要求信号をMSBコントローラ16へ出力する出力処理をCPU11が行うことにより、第2送信データDC2、第3送信データDC3、・・・、第n送信データDCnをコマンドフレーム送信バッファ163へ転送する処理と、この転送処理が完了した後に、コマンドフレーム送信要求を発生させる処理をDMAコントローラ15が実行する。
すなわち、コマンドフレームをn回にわたって送信する場合に、(n−1)回の送信においてCPU11が上記転送処理および上記出力処理を行う必要がなくなる。このため、コマンドフレームを複数回にわたって連続して送信する場合に、CPU11の負荷を低減することができる。
以上説明した実施形態において、マイクロセカンドバス4は本発明における通信バス、MSBコントローラ16は本発明における第1通信部、MSBコントローラ21は本発明における第2通信部、S350の処理は本発明におけるデータフレーム送信手段、コマンドフレーム送信バッファ163は本発明における格納手段、S330の処理は本発明におけるコマンドフレーム送信手段である。
また、DMAコントローラ15は本発明における第1転送部、第i送信データ(i=1,2,3,・・・,n)は本発明における分割データ、S70の処理は本発明における転送処理、S90の処理は本発明における出力処理、S340の処理は本発明における第1出力手段、S240の処理は本発明における第2出力手段、送信完了割込信号は本発明における送信完了信号、DMA完了割込信号は本発明における転送完了信号である。
(第2実施形態)
以下に本発明の第2実施形態を図面とともに説明する。なお第2実施形態では、第1実施形態と異なる部分を説明する。
第2実施形態のECU1は、MSBCフレーム送信処理が変更された点以外は第1実施形態と同じである。
次に、第2実施形態のMSBCフレーム送信処理の手順を説明する。このMSBCフレーム送信処理は、マイコン2の動作中に繰り返し実行される処理である。
MSBCフレーム送信処理が実行されると、MSBコントローラ16は、図8に示すように、まずS510にて、フレーム送信タイミングが到来したか否かを判断する。ここで、フレーム送信タイミングが到来していない場合には(S510:NO)、MSBCフレーム送信処理を一旦終了する。
一方、フレーム送信タイミングが到来した場合には(S510:YES)、S520にて、データフレーム送信バッファ164に格納されているデータをデータフレームとして送信する。
その後S530にて、コマンドフレーム送信要求が発生したか否かを判断する。なおS320では、CPU11からフレーム送信要求信号が入力した場合、またはDMAコントローラ15からDMA完了割込信号が入力した場合に、コマンドフレーム送信要求が発生したと判断する。
ここで、コマンドフレーム送信要求が発生したと判断した場合には(S530:YES)、S540にて、コマンドフレーム送信バッファ163に格納されているデータをコマンドフレームとして送信し、MSBCフレーム送信処理を一旦終了する。一方、コマンドフレーム送信要求が発生していないと判断した場合には(S530:NO)、MSBCフレーム送信処理を一旦終了する。
これによりMSBコントローラ16は、図9に示すように、一定周期TcでデータフレームDFが送信される場合において、コマンドフレーム送信要求TRが発生すると、その直後のデータフレーム送信が完了した後に、コマンドフレームCFを送信する。なお本実施形態では、一定周期Tcは、データフレームDFを送信するのに要する時間と、コマンドフレームCFを送信するのに要する時間との和よりも長くなるように設定されている。
このように構成されたECU1では、MSBコントローラ16は、データフレームの送信が完了した後に、コマンドフレームを送信する(S540)。これにより、データフレームの代わりにコマンドフレームを送信することがなく、データフレームの送信を遅らせることなくコマンドフレームを送信することができる。
以上説明した実施形態において、S540の処理は本発明におけるコマンドフレーム送信手段である。
(第3実施形態)
以下に本発明の第3実施形態を図面とともに説明する。なお第3実施形態では、第1実施形態と異なる部分を説明する。
第3実施形態のECU1は、図10に示すように、DMAコントローラ15を省略して、MSBコントローラ16がFIFO(First In First Out)メモリ166を備えるように変更された点以外は第1実施形態と同じである。
FIFOメモリ166は、データが格納された順に、格納されたデータを出力することができるように構成されている。またFIFOメモリ166は、コマンドフレーム送信バッファ163にデータが格納されていない場合に、FIFOメモリ166に格納されているデータを出力するように構成されている。
次に、フレームを送信するためにCPU11が実行する処理(以下、CPUフレーム送信処理という)の手順を説明する。このCPUフレーム送信処理は、マイコン2の動作中に繰り返し実行される処理である。
CPUフレーム送信処理が実行されると、CPU11は、図11に示すように、まずS610にて、コマンドフレームとして送信されるデータ(以下、コマンドフレーム送信用データという)がRAM13に新たに記憶されたか否かを判断する。ここで、コマンドフレーム送信用データがRAM13に新たに記憶されていない場合には(S610:NO)、CPUフレーム送信処理を一旦終了する。
一方、コマンドフレーム送信用データがRAM13に新たに記憶されている場合には(S610:YES)、S620にて、FIFOメモリ166からコマンドフレーム送信バッファ163にデータが転送されると自動でコマンドフレームを送信するように、MSBコントローラ16に対して設定を行う。
そしてS630にて、RAM13に記憶されているコマンドフレーム送信用データを、1回のコマンドフレームで送信することができる最大データ量(本実施形態では32bit)毎に分割する。その後S640にて、コマンドフレーム送信用データを分割することにより生成された第1送信データDC1、第2送信データDC2、第3送信データDC3、・・・、第n送信データDCn(nは正の整数)を、FIFOメモリ166へ転送して、CPUフレーム送信処理を一旦終了する。なおS640では、第1送信データDC1、第2送信データDC2、第3送信データDC3、・・・、第n送信データDCnの順にFIFOメモリ166へ転送される(図10を参照)。
次に、フレームを送信するためにMSBコントローラ16が実行する処理(以下、MSBCフレーム送信処理という)の手順を説明する。このMSBCフレーム送信処理は、マイコン2の動作中に繰り返し実行される処理である。
MSBCフレーム送信処理が実行されると、MSBコントローラ16は、図12に示すように、まずS710にて、フレーム送信タイミングが到来したか否かを判断する。ここで、フレーム送信タイミングが到来していない場合には(S710:NO)、MSBCフレーム送信処理を一旦終了する。
一方、フレーム送信タイミングが到来した場合には(S710:YES)、S720にて、コマンドフレーム送信バッファ163にデータが格納されているか否かを判断する。ここで、コマンドフレーム送信バッファ163にデータが格納されている場合には(S720:YES)、S730にて、コマンドフレーム送信バッファ163に格納されているデータをコマンドフレームとして送信し、その後S740にて、コマンドフレーム送信バッファ163に格納されているデータを消去して、MSBCフレーム送信処理を一旦終了する。
一方、コマンドフレーム送信バッファ163にデータが格納されていない場合には(S720:NO)、S750にて、データフレーム送信バッファ164に格納されているデータをデータフレームとして送信し、MSBCフレーム送信処理を一旦終了する。
次に、このように構成されたECU1において、FIFOメモリ166を用いてコマンドフレームを連続して送信する場合に行われる処理の順序を図10と図13を用いて説明する。なお図13では、コマンドフレームを3回連続して送信する場合の処理順序を示している。そして図13では、S610〜S680の処理ブロックのうち、実線の矩形で示されるブロックはソフトウェアによる処理であることを示し、破線の矩形で示されるブロックはハードウェアによる処理であることを示す。
図13に示すように、まずS810にて、CPU11が、FIFOメモリ166からコマンドフレーム送信バッファ163にデータが転送されると自動でコマンドフレームを送信するように、MSBコントローラ16に対して設定を行う。
その後S820にて、CPU11が、第1送信データDC1、第2送信データDC2および第3送信データDC3をFIFOメモリ166に配置する。そしてS830にて、FIFOメモリ166が、第1送信データDC1をコマンドフレーム送信バッファ163へ転送する(図10の矢印YT11を参照)。なお、第1送信データDC1が送信されることにより、第1送信データDC1が格納されていた領域に第2送信データDC2が格納される(図10の矢印YT12を参照)とともに、第2送信データDC2が格納されていた領域に第3送信データDC3が格納される(図10の矢印YT13を参照)。
その後S840にて、MSBコントローラ16が、第1送信データDC1のコマンドフレームを送信する。
そしてS850にて、FIFOメモリ166が、空になったコマンドフレーム送信バッファ163へ第2送信データDC2を転送する。なお、第2送信データDC2が送信されることにより、第2送信データDC2が格納されていた領域に第3送信データDC3が格納される。その後S860にて、MSBコントローラ16が、第2送信データDC2のコマンドフレームを送信する。
さらにS870にて、FIFOメモリ166が、空になったコマンドフレーム送信バッファ163へ第3送信データDC3を転送する。これによりS880にて、MSBコントローラ16が、第3送信データDC3のコマンドフレームを送信する。
このように構成されたECU1は、CPU11と、マイクロセカンドバス4を介してデータをシリアル通信により送信するMSBコントローラ16と、マイクロセカンドバス4を介してMSBコントローラ16とシリアル通信可能に接続されたMSBコントローラ21とを備える。そしてMSBコントローラ16では、予め設定された一定周期Tc毎に、エンジンを制御するための制御データを示すデータフレームをMSBコントローラ21へ送信する(S750)。
またMSBコントローラ16では、コマンドフレーム送信バッファ163に、コマンドフレームとして送信するためのコマンドフレーム送信用データが格納され、コマンドフレーム送信バッファ163にデータが格納されている場合に(S720:YES)、コマンドフレーム送信バッファ163に格納されているコマンドフレーム送信用データをコマンドフレームとしてMSBコントローラ21へ送信する(S730)。
そしてECU1は、CPU11とは別にFIFOメモリ166を備え、このFIFOメモリ166は、CPU11による処理を行うことなくコマンドフレーム送信用データをコマンドフレーム送信バッファ163へ転送する。
またMSBコントローラ16は、コマンドフレーム送信バッファ163に新たにコマンドフレーム送信用データが格納されると、コマンドフレーム送信要求が発生したと判断し(S720:YES)、コマンドフレームを送信する(S730)。すなわち、FIFOメモリ166がコマンドフレーム送信用データをコマンドフレーム送信バッファ163へ転送する処理は、コマンドフレーム送信要求を発生させる処理に相当する。
このように構成されたECU1では、コマンドフレームを送信するために、コマンドフレーム送信用データをコマンドフレーム送信バッファ163へ転送し、その後に、コマンドフレーム送信要求を発生させる必要がある。そしてECU1では、これらの処理を、CPU11とは別に設けられたハードウェアで実行させることができる。これにより、CPU11は、コマンドフレームを送信するときに、コマンドフレーム送信用データをコマンドフレーム送信バッファ163へ転送し、その後に、コマンドフレーム送信要求を発生させる必要がなくなる。このため、コマンドフレームを送信するときのCPU11の負荷を低減することができる。
また、コマンドフレーム送信用データを複数に分割して、分割された複数のコマンドフレーム送信用データのそれぞれを、第1送信データDC1、第2送信データDC2、第3送信データDC3、・・・、第n送信データDCn(nは正の整数)として、MSBコントローラ16は、コマンドフレーム送信バッファ163に新たに第i送信データ(i=1,2,3,・・・,n)が格納されると、コマンドフレーム送信要求が発生したと判断する(S720:YES)。
またMSBコントローラ16は、コマンドフレームを送信した後に、コマンドフレーム送信バッファ163に格納されている第i送信データを消去する(S740)。
またFIFOメモリ166は、複数の第i送信データを格納するとともに、コマンドフレーム送信バッファ163に格納された第i送信データが消去される毎に、複数の第i送信データのうちコマンドフレーム送信バッファ163へ転送されていない第i送信データを、FIFOメモリ166に格納された順に1つ選択して、選択した第i送信データをコマンドフレーム送信バッファ163へ転送する。
このように構成されたECU1では、CPU11が、第1〜n送信データDC1〜nをFIFOメモリ166に格納する処理を行うことにより、その後、FIFOメモリ166が、第1〜n送信データDC1〜nをコマンドフレーム送信バッファ163へ転送する処理と、コマンドフレーム送信要求を発生させる処理を実行するようにすることができる。
すなわち、コマンドフレームをn回にわたって送信する場合に、n回の送信においてCPU11が、第1〜n送信データDC1〜nをコマンドフレーム送信バッファ163へ転送する処理と、コマンドフレーム送信要求を発生させる処理を行う必要がなくなる。このため、コマンドフレームを複数回にわたって連続して送信する場合に、CPU11の負荷を低減することができる。
以上説明した実施形態において、S750の処理は本発明におけるデータフレーム送信手段、S730の処理は本発明におけるコマンドフレーム送信手段、FIFOメモリ166は本発明における第2転送部、S740の処理は本発明における消去手段である。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
1…ECU、4…マイクロセカンドバス、11…CPU、15…DMAコントローラ、16,21…MSBコントローラ、163…コマンドフレーム送信バッファ、166…FIFOメモリ

Claims (3)

  1. CPU(11)と、
    通信バスを介してデータをシリアル通信により送信する第1通信部(16)と、
    前記通信バスを介して前記第1通信部とシリアル通信可能に接続された第2通信部(21)とを備える電子制御装置(1)であって、
    前記第1通信部は、
    予め設定された送信周期毎に、制御対象を制御するための制御データを示すデータフレームを前記第2通信部へ送信するデータフレーム送信手段(S350,S750)と、
    前記第2通信部に対して予め設定された処理の実行を指示するコマンドフレームとして送信するためのコマンドフレーム用データが格納される格納手段(163)と、
    前記コマンドフレームの送信を要求するためのコマンドフレーム送信要求が発生した場合に、前記格納手段に格納されている前記コマンドフレーム用データを前記コマンドフレームとして前記第2通信部へ送信するコマンドフレーム送信手段(S330,S540,S730)とを備え、
    当該電子制御装置は、前記CPUとは別に、
    前記コマンドフレーム用データを前記格納手段へ転送する処理と、前記コマンドフレーム送信要求を発生させる処理とを実行することが可能に構成されたハードウェア(15,166)を備え、
    前記ハードウェアは、前記CPUによる処理を行うことなく前記コマンドフレーム用データを前記格納手段へ転送する第1転送部(15)であり、
    前記コマンドフレーム用データを複数に分割して、分割された複数の前記コマンドフレーム用データのそれぞれを分割データとして、
    前記CPUは、
    複数の前記分割データのそれぞれを前記コマンドフレームとして複数回にわたって送信する場合に、複数の前記分割データのうち、前記コマンドフレームとして最も早く送信するデータを第1送信データとして、前記第1送信データを前記格納手段へ転送する転送処理(S70)と、
    前記転送処理が完了した後に、前記コマンドフレームの送信を要求するための送信要求信号を前記第1通信部へ出力する出力処理(S90)と
    を実行するように構成され、
    前記第1通信部の前記コマンドフレーム送信手段は、
    前記送信要求信号が前記第1通信部に入力すると、前記コマンドフレーム送信要求が発生したと判断し、
    前記第1通信部は、更に、
    前記コマンドフレームを前記第2通信部へ送信した後に、その旨を示す送信完了信号を前記第1転送部へ出力する第1出力手段(S340)を備え、
    前記第1転送部は、
    前記送信完了信号が前記第1転送部に入力する毎に、複数の前記分割データのうち前記格納手段へ転送されていない前記分割データを1つ選択して、選択した前記分割データを前記格納手段へ転送し、
    前記分割データを転送した後に、その旨を示す転送完了信号を前記第1通信部へ出力する第2出力手段(S240)を備え、
    前記第1通信部の前記コマンドフレーム送信手段は、更に、
    前記転送完了信号が前記第1通信部に入力すると、前記コマンドフレーム送信要求が発生したと判断する
    ことを特徴とする電子制御装置。
  2. CPU(11)と、
    通信バスを介してデータをシリアル通信により送信する第1通信部(16)と、
    前記通信バスを介して前記第1通信部とシリアル通信可能に接続された第2通信部(21)とを備える電子制御装置(1)であって、
    前記第1通信部は、
    予め設定された送信周期毎に、制御対象を制御するための制御データを示すデータフレームを前記第2通信部へ送信するデータフレーム送信手段(S350,S750)と、
    前記第2通信部に対して予め設定された処理の実行を指示するコマンドフレームとして送信するためのコマンドフレーム用データが格納される格納手段(163)と、
    前記コマンドフレームの送信を要求するためのコマンドフレーム送信要求が発生した場合に、前記格納手段に格納されている前記コマンドフレーム用データを前記コマンドフレームとして前記第2通信部へ送信するコマンドフレーム送信手段(S330,S540,S730)とを備え、
    当該電子制御装置は、前記CPUとは別に、
    前記コマンドフレーム用データを前記格納手段へ転送する処理と、前記コマンドフレーム送信要求を発生させる処理とを実行することが可能に構成されたハードウェア(15,166)を備え、
    前記ハードウェアは、前記CPUによる処理を行うことなく前記コマンドフレーム用データを前記格納手段へ転送する第2転送部(166)であり、
    前記コマンドフレーム用データを複数に分割して、分割された複数の前記コマンドフレーム用データのそれぞれを分割データとして、
    前記コマンドフレーム送信手段は、前記格納手段に新たに前記分割データが格納されると、前記コマンドフレーム送信要求が発生したと判断し、
    前記第1通信部は、更に、
    前記コマンドフレーム送信手段が前記コマンドフレームを送信した後に、前記格納手段に格納されている前記分割データを消去する消去手段(S740)を備え、
    前記第2転送部は、
    複数の前記分割データを格納するとともに、前記消去手段により前記分割データが消去される毎に、複数の前記分割データのうち前記格納手段へ転送されていない前記分割データを、当該第2転送部に格納された順に1つ選択して、選択した前記分割データを前記格納手段へ転送する
    ことを特徴とする電子制御装置。
  3. 前記コマンドフレーム送信手段(S540)は、前記データフレームの送信が完了した後に、前記コマンドフレームを送信し、
    前記送信周期は、前記データフレームを送信するのに要するデータフレーム送信時間と、前記コマンドフレームを送信するのに要するコマンドフレーム送信時間との和よりも長い
    ことを特徴とする請求項1または請求項2に記載の電子制御装置。
JP2012245568A 2012-11-07 2012-11-07 電子制御装置 Active JP5811073B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012245568A JP5811073B2 (ja) 2012-11-07 2012-11-07 電子制御装置
DE102013220450.7A DE102013220450B4 (de) 2012-11-07 2013-10-10 Elektronische Steuereinheit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012245568A JP5811073B2 (ja) 2012-11-07 2012-11-07 電子制御装置

Publications (2)

Publication Number Publication Date
JP2014095944A JP2014095944A (ja) 2014-05-22
JP5811073B2 true JP5811073B2 (ja) 2015-11-11

Family

ID=50489974

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012245568A Active JP5811073B2 (ja) 2012-11-07 2012-11-07 電子制御装置

Country Status (2)

Country Link
JP (1) JP5811073B2 (ja)
DE (1) DE102013220450B4 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6690648B2 (en) 1998-02-24 2004-02-10 Canon Kabushiki Kaisha Data communication apparatus, method, and system utilizing reception capability information of a destination node
JP3494040B2 (ja) * 1998-10-27 2004-02-03 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3843667B2 (ja) * 1999-10-15 2006-11-08 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP2003006978A (ja) * 2001-06-21 2003-01-10 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
EP1426841B1 (de) * 2002-12-02 2010-06-02 Infineon Technologies AG Anordnung bestehend aus einer programmgesteuerten Einheit und einem mit dieser verbundenen Power-Baustein

Also Published As

Publication number Publication date
DE102013220450A1 (de) 2014-05-08
DE102013220450B4 (de) 2020-04-23
JP2014095944A (ja) 2014-05-22

Similar Documents

Publication Publication Date Title
JP5330513B2 (ja) 調停装置、調停システム、調停方法、半導体集積回路、及び画像処理装置
JP2011154556A (ja) 半導体記憶装置
CN108228498A (zh) 一种dma控制装置和图像处理器
JP6235758B2 (ja) 周波数および電力管理
JP2006293927A (ja) ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi
JP5811073B2 (ja) 電子制御装置
JP5852431B2 (ja) 画像処理装置、その制御方法、及びプログラム
JP2012065306A (ja) 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体
JP2012190283A (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP6074486B2 (ja) 画像処理装置、その制御方法、及びプログラム
JP2022113819A (ja) 中継装置、中継方法及びコンピュータプログラム
WO2014026572A1 (zh) 一种时序控制方法及nand flash控制器
JP5677206B2 (ja) データ受信装置、半導体集積回路、およびデータ受信装置の制御方法
JP2009163531A (ja) 割り込み管理機構およびマイクロコンピュータ
JP7318439B2 (ja) 電子制御装置
JP2005142670A (ja) 電子制御装置
KR101785446B1 (ko) 메모리 시스템 및 이의 제어 방법
JP2014022939A (ja) 電子制御装置
TW201436503A (zh) 伺服器控制系統及方法
US8180957B2 (en) Memory control unit and memory control method
JP2011019148A (ja) 画像処理装置及び画像形成装置
JP4190969B2 (ja) バスシステム及びambaにおけるバス調停システム
JP4328223B2 (ja) データ送信装置およびデータ受信装置
JP4107278B2 (ja) プロセッサ制御回路および情報処理装置
JP5919827B2 (ja) 電源装置、電源制御方法及び電源制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150213

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: 20150818

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150831

R151 Written notification of patent or utility model registration

Ref document number: 5811073

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250