JP6174305B2 - データ送信装置、通信制御方法、及び通信制御プログラム - Google Patents

データ送信装置、通信制御方法、及び通信制御プログラム Download PDF

Info

Publication number
JP6174305B2
JP6174305B2 JP2012172697A JP2012172697A JP6174305B2 JP 6174305 B2 JP6174305 B2 JP 6174305B2 JP 2012172697 A JP2012172697 A JP 2012172697A JP 2012172697 A JP2012172697 A JP 2012172697A JP 6174305 B2 JP6174305 B2 JP 6174305B2
Authority
JP
Japan
Prior art keywords
data
bus
area
output
storage unit
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
JP2012172697A
Other languages
English (en)
Other versions
JP2014033339A (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.)
Toyota Motor Corp
Original Assignee
Toyota Motor 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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2012172697A priority Critical patent/JP6174305B2/ja
Priority to US14/417,359 priority patent/US9703736B2/en
Priority to EP12882258.2A priority patent/EP2882146B1/en
Priority to CN201280075118.XA priority patent/CN104541480B/zh
Priority to PCT/JP2012/077164 priority patent/WO2014020779A1/ja
Publication of JP2014033339A publication Critical patent/JP2014033339A/ja
Application granted granted Critical
Publication of JP6174305B2 publication Critical patent/JP6174305B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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
    • 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/40032Details regarding a bus interface enhancer
    • 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/40143Bus networks involving priority mechanisms
    • H04L12/4015Bus networks involving priority mechanisms by scheduling the transmission of messages at the communication node
    • 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/40143Bus networks involving priority mechanisms
    • H04L12/40163Bus networks involving priority mechanisms by assigning priority to messages according to a message field
    • 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/407Bus networks with decentralised control
    • H04L12/413Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD]
    • H04L12/4135Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD] using bit-wise arbitration
    • 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/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、データ送信装置、通信制御方法、及び通信制御プログラムに関する。
ECU(Electronic Control Unit)等の処理装置が複数個、バスに接続された構成のネットワークシステムが普及している。こうしたネットワークシステムにおける複数のECUは、それぞれが自己に割り当てられた情報処理を行い、処理結果をバスに出力して他のECUに提供することができる。また、こうしたネットワークシステムでは、同じタイミングで複数のECUがデータをバスに出力するのを回避するため、通信調停と称される処理が行われることがある。通信調停は、例えば、CAN(Controller Area Network)に基づく通信が行われるネットワークシステムで行われる。CANにおける通信調停は、各ECUが、自己が送信したデータとバス状態をモニターした結果を比較し、バス状態が、自己が送信したデータに沿ったものであれば通信調停に勝ったと判断して、データの出力を続行するという規則で行われる。
また、各種ECUが通信バスに接続された構成のシステムであって、各ECUが、送信要求のあった送信データが複数存在する場合に、優先度の高い送信データを優先的に送信バッファに書き込むシステムが開示されている(例えば、特許文献1参照)。
また、複数のバッファメモリを備え、送出用ディジタル情報の種類に応じて複数のバッファメモリのいずれかに送出用ディジタル情報を格納し、送信処理の進行に応じて変化する待機番号やデータに付随する優先度に応じて転送順序を設定する装置が開示されている(例えば、特許文献2参照)。
特開平9−200234号公報 特開平7−222257号公報
しかしながら、特許文献1及び2に記載の技術は、通信調停が行われるバスにデータを出力することを想定していないため、以下のような問題が生じ得る。
特許文献1に記載のシステムでは、「優先度の高い送信データを優先的に送信バッファに書き込む」としているが、この優先度は、通信調停に用いられる優先度を想定していない。また、仮に優先度が通信調停に用いられる優先度と同視できるとしても、優先度の低い第1の送信データが送信バッファに書き込まれた後に、優先度の高い第2の送信データが生成された場合、優先度の低い第1の送信データが通信調停に負け続ける結果、優先度の高い第2の送信データが送信バッファ内で(或いはその前段階のメモリ領域内で)送信待ち状態を継続せざるを得ないという状況が生じ得る。
また、特許文献2に記載の装置では、「送信処理の進行に応じて変化する待機番号やデータに付随する優先度に応じて転送順序を設定する」としているが、特許文献1と同様、優先度は、通信調停に用いられる優先度を想定していない。また、仮に優先度が通信調停に用いられる優先度と同視できるとしても、優先度とは無関係の「送出用ディジタル情報の種類」に応じて送出用ディジタル情報が割り振られる複数のバッファメモリ内のデータを、全て読み込んだ上で順序決定処理を行う必要があり、メモリアクセスやソフトウェア処理に係る装置の負担が過大である。
一つの側面によれば、通信調停に係る優先度が高いデータを、装置の負担を過大にすることなく、優先的にバスに出力することが可能なデータ送信装置、及び通信制御プログラムを提供することを目的とする。
上記目的を達成するための本発明の一態様は、
バスにデータを出力する出力部であって、前記バスに出力されようとしている他の競合データとの間で、自己が前記バスに出力しようとしているデータに付与された優先度情報を用いて通信調停を行った結果に基づき、前記バスにデータを出力するか否かを決定する出力部と、
領域優先度の高い領域から低い領域まで複数の領域が設定された記憶部と、
送信要求がなされたデータを、該データに付与された前記優先度情報が高いものである程、前記記憶部における前記領域優先度の高い領域に書き込む分配部と、
前記記憶部における前記複数の領域に対応する複数のフラグ格納部と、を備え、
前記分配部は、前記送信要求がなされたデータを前記記憶部におけるいずれかの領域に書き込んだとき、該書き込んだ領域に対応する前記フラグ格納部にフラグを立て、
前記出力部は、前記フラグが立てられた前記フラグ格納部に対応する前記記憶部における領域のうち、前記領域優先度の高い領域に格納されたデータを優先的にデータを前記バスに出力する、
データ送信装置である。
本発明の一態様において、
前記記憶部における複数の領域に対応する複数のフラグ格納部を備え、
前記分配部は、前記送信要求がなされたデータを前記記憶部におけるいずれかの領域に書き込んだとき、該書き込んだ領域に対応する前記フラグ格納部にフラグを立て、
前記出力部は、前記フラグが立てられたフラグ格納部に対応する前記記憶部における領域のうち、前記領域優先度の高い領域に格納されたデータを優先的に前記バスに出力するものとしてもよい。
また、本発明の一態様において、
前記出力部は、前記記憶部における複数の領域に格納されたデータのうち、一定期間、前記バスに出力されていないデータについては、当初格納された領域の領域優先度に拘わらず、最優先で前記バスに出力するものとしてもよい。
この場合、
前記記憶部における複数の領域には、前記一定期間、前記バスに出力されていないデータ専用の例外領域が含まれ、
前記分配部は、前記バスに出力されていないデータを判別して、該判別したデータを他の領域から前記例外領域に移動させ、
前記出力部は、前記例外領域に格納されたデータを最優先で前記バスに出力するものとしてもよい。
本発明の他の態様は、
バスに出力されようとしている他の競合データとの間で、自己が前記バスに出力しようとしているデータに付与された優先度情報を用いて通信調停を行った結果に基づき、前記バスにデータを出力するか否かを決定するデータ送信装置が、
送信要求がなされたデータを、該データに付与された前記優先度情報が高いものである程、領域優先度の高い領域から低い領域まで複数の領域が設定された記憶部における前記領域優先度の高い領域に書き込むと共に前記送信要求がなされたデータを前記記憶部におけるいずれかの領域に書き込んだとき、前記記憶部における前記複数の領域に対応する複数のフラグ格納部のうちの該書き込んだ領域に対応する前記フラグ格納部にフラグを立て、
前記フラグが立てられた前記フラグ格納部に対応する前記記憶部における領域のうち、前記領域優先度の高い領域に格納されたデータを優先的に前記バスに出力する、
通信制御方法である。
また、本発明の他の態様は、
バスに出力されようとしている他の競合データとの間で、自己が前記バスに出力しようとしているデータに付与された優先度情報を用いて通信調停を行った結果に基づき、前記バスにデータを出力するか否かを決定するデータ送信装置に、
送信要求がなされたデータを、該データに付与された前記優先度情報が高いものである程、領域優先度の高い領域から低い領域まで複数の領域が設定された記憶部における前記領域優先度の高い領域に書き込ませると共に前記送信要求がなされたデータを前記記憶部におけるいずれかの領域に書き込ませたとき、前記記憶部における前記複数の領域に対応する複数のフラグ格納部のうちの該書き込ませた領域に対応する前記フラグ格納部にフラグを立てさせ、
前記フラグが立てられた前記フラグ格納部に対応する前記記憶部における領域のうち、前記領域優先度の高い領域に格納されたデータを優先的に前記バスに出力させる、
通信制御プログラムである。
一実施態様によれば、通信調停に係る優先度が高いデータを、処理負荷を過大にすることなく、優先的にバスに出力することが可能なデータ送信装置、通信制御方法、及び通信制御プログラムを提供することができる。
一実施例に係るECU10を含むネットワークシステム1の構成例である。 ECU10の構成例である。 各ECUがバスに出力するフレームの形式例である。 送信MBOXとIDの対応関係の一例である。 CANドライバ12Cにより実行される処理の流れを示すフローチャートの一例である。 CANコントローラ15により実行される処理の流れを示すフローチャートの一例である。 単独の送信MBOXのみ設定される比較例のECU*において、上記の不都合が生じる様子を示す図である。 本実施例のECU10が通信調停に係る優先度が高いデータを優先的にバスに出力する様子を示す図である。 例外措置を行う場合の送信MBOXとID、送信要求レジスタの対応関係の一例である。 全てのIDに対応する送信MBOXを設定した場合のECU10の構成例である。
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
以下、図面を参照し、本発明のデータ送信装置、通信制御方法、及び通信制御プログラムの実施例について説明する。
図1は、一実施例に係るECU10を含むネットワークシステム1の構成例である。ネットワークシステム1は、バス2に接続されたECU10#0、10#1と、バス3に接続されたECU10#2、10#3、10#4と、バス2及びバス3に接続され、バス2とバス3の間を中継するゲートウェイ装置50とを備える。なお、特許請求の範囲における「データ送信装置」は、例えば「ECU」に対応する。
バス2及びバス3では、例えば、CANに基づく通信が行われ、各ECUは、バスを流れるデータを取得することができる。バス2及びバス30は、例えば、ツイストペアケーブルであり、差動電圧方式によって信号を伝達する。
[ECU]
図2は、各ECU(以下、ECUを区別しないときはECU10と表記して説明する)の構成例である。なお、各ECUのうち一部が、図2に示す構成、又は以下に説明する機能の一部を備えないものとしても構わない。
ECU10は、例えば、CPU(Central Processing Unit)11と、CPU11が実行するプログラムを格納したプログラムメモリ12と、ワーキングメモリとして機能するRAM(Random Access Memory)13と、周辺機器とのインターフェースとなる周辺I/O14と、CANコントローラ15と、CANトランシーバ16とを備える。
プログラムメモリ12は、例えば、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)、HDD(Hard Disk Drive)等であり、アプリケーションプログラム12A、通信ミドルウェア12B、CANドライバ12C等のプログラムを格納する。
アプリケーションプログラム12Aは、各ECUに割り当てられた情報処理を行うためのプログラムである。アプリケーションプログラム12Aは、例えば、周期的に所与の演算を行い、演算結果をRAM13の共用領域13Aに格納する。
通信ミドルウェア12Bは、例えば、定期的に、或いはアプリケーションプログラム12Aからの処理要求があったときに、共用領域13Aに格納されたデータをCANドライバ12Cに対応した形式に変換し、送信バッファ13Bに書き込み、CANドライバ12Cに提供する。また、通信ミドルウェア12Bは、受信バッファ13Cに書き込まれたデータに対し、アプリケーションプログラム12Aが解釈可能な形式に変換等を行なって共用領域13Aに格納し、アプリケーションプログラム12Aに提供する。CANドライバ12Cは、送信バッファ13Bに書き込まれたデータを、いずれかの送信MBOXに格納する。
RAM13には、アプリケーションプログラム12A及び通信ミドルウェア12Bで共用される共用領域13A、送信バッファ13B、と受信バッファ13C、コントローラ読出領域13D等の領域が設定される。コントローラ読出領域13Dは、複数の送信MBOX(メッセージボックス)13Da、13Db、13Dc…を含む。送信MBOXの数は、複数であれば如何なる数であってもよい。以下の説明では、送信MBOXを3つ設定するものとして説明する。
通信ミドルウェア12B、及びCANドライバ12Cのより詳細な機能、並びにRAM13に設定された各領域の役割については後述する。
CANコントローラ15は、プロトコルコントローラや、CPUクロックを分周する分周器、送信制御レジスタ15Aa、15Ab、15Ac、…等を備える。各送信制御レジスタは、各送信MBOXに対応している。
CANコントローラ15は、CANトランシーバ16を介して、バス10又はバス20との間で種々のデータを送受信する。なお、CANコントローラ15を制御するプロセッサは、CPU11と同一であっても異なるものであってもよい。
CANコントローラ15は、バスにデータ(フレーム)を出力する際には、いずれかの送信MBOXに格納されたフレームを、NRZ(Non‐Return‐to‐Zero)方式でシリアルの送信信号に変換し、CANトランシーバ16に出力する。CANコントローラ15は、変換後の信号が"0(ドミナント)"のビットには論理レベルがLowの電圧を出力し、"1(リセッシブ)"のビットには論理レベルがHighの電圧を出力する。
CANトランシーバ16は、CANコントローラ15から取得した送信信号を差動電圧に変換してバスに出力する。また、CANトランシーバ16は、バスからデータを取得する際には、バスの差動電圧を読み取り、所定の電圧範囲に含まれるように整形した受信信号をCANコントローラ15に出力する。CANコントローラ15の受信端子Rxにはコンパレータが取り付けられており、所定の閾値電圧とCANトランシーバ16からの受信信号とを比較して"1"、"0"のデジタルデータを生成して受信バッファ13Cに格納する。
図3は、各ECUがバスに出力するフレームの形式例である。1回の送信において出力されるフレームは、フレームの開始を表すスタートオブフレーム(SOF)、データの識別子であるID、データフレームとリモートフレームを識別するためのリモートトランスミッションリクエスト(RTR)、データのバイト数等を表すコントロールフィールド、転送するデータの実体であるデータフィールド、フレームの誤りをチェックするためのCRCを付加するCRCシーケンス、正しいメッセージを受信したユニットからの通知(ACK)を受けるACKスロット及びACKデリミタ、フレームの終了を表すエンドオブフレーム(EOF)等を含む。
バス2及びバス3では、IDとRTRにより表される優先度に基づく通信調停が行われる。複数のECUから同時にフレームが送信される場合、各ECUは、自己が送信したデータとバス状態をモニターした結果を比較する。ここで、リセッシブとドミナントが別々のECUから同時に送信された場合、ドミナントが優先され、バスの状態はドミナントとなる。このとき、リセッシブを送信したノードは自己が送信したものとバス状態の違いにより、通信調停に負けたと判断して送信を停止する。係る原理により、複数のECUから同時にフレームが送信開始された場合、他ノードがリセッシブ送信を行っているときにドミナントを送信したノードが通信調停に勝つことになるので、IDの値が小さいフレームほど、優先度が高いということになる。
[送信制御]
以下、通信ミドルウェア12B、CANドライバ12C、及びCANコントローラ15による送信制御について、より詳細に説明する。
〔通信ミドルウェア12B、及びCANドライバ12Cの処理〕
通信ミドルウェア12Bは、アプリケーションプログラム12Aの依頼に応じて、共用領域13Aに格納されたデータを送信バッファ13Bに格納する。ここで、共用領域13Aに格納されたデータには、フレームの形式における「ID」に相当する情報(以下、単にIDと表記する)がアプリケーションプログラム12Aによって付与されている。IDは、例えば1〜10のいずれかの整数をとるものとする。
CANドライバ12Cは、送信バッファ13Bに格納されたデータを、フレームとして必要なデータを付加しつつ、データに付与されたIDに応じた送信MBOXに格納する。図4は、送信MBOXとIDの対応関係の一例である。各送信MBOXには、1フレーム分のデータが格納され、既に送信MBOXにデータが格納されている場合、CANドライバ12Cは、当該送信MBOXへのデータの格納を行わない。図4に示す対応関係から分かるように、送信MBOX13Aaには、通信調停における優先度が高いデータが格納される。また、送信MBOX13Abには、通信調停における優先度が中程度のデータが格納される。また、送信MBOX13Acには、通信調停における優先度が低いデータが格納される。
更に、CANドライバ12Cは、送信MBOX13Aaにデータを格納すると、送信要求レジスタ15Aaに、例えばフラグ「1」を立てる。また、CANドライバ12Cは、送信MBOX13Abにデータを格納すると、送信要求レジスタ15Abに、例えばフラグ「1」を立てる。CANドライバ12Cは、送信MBOX13Acにデータを格納すると、送信要求レジスタ15Acに、例えばフラグ「1」を立てる。すなわち、送信要求レジスタ15Aaは送信MBOX13Aaに対応し、送信要求レジスタ15Abは送信MBOX13Abに対応し、送信要求レジスタ15Abは送信MBOX13Abに対応する。
図5は、CANドライバ12Cにより実行される処理の流れを示すフローチャートの一例である。本フローチャートは、例えば所定周期で繰り返し実行される。
まず、CANドライバ12Cは、送信バッファ13Bにデータが格納されているか否かを判定する(S100)。送信バッファ13Bにデータが格納されていない場合、CANドライバ12Cは、本フローチャートの1ルーチンを終了する。
送信バッファ13Bにデータが格納されている場合、CANドライバ12Cは、送信バッファ13Bに格納されたデータのIDを読み込み(S102)、IDが4以下であるか否かを判定する(S104)。
IDが4以下である場合、CANドライバ12Cは、送信MBOX13Daが「空き」状態であるか否かを判定する(S106)。送信MBOX13Daが「空き」状態である場合、CANドライバ12Cは、送信バッファ13Bに格納されたデータを送信MBOX13Daに書き込み(S108)、送信要求レジスタ15Aaにフラグ「1」を立てる(S110)。送信MBOX13Daが「空き」状態でない場合、CANドライバ12Cは、本フローチャートの1ルーチンを終了する。
IDが4を超える場合、CANドライバ12Cは、IDが7以下であるか否かを判定する(S112)。
IDが7以下である場合、CANドライバ12Cは、送信MBOX13Dbが「空き」状態であるか否かを判定する(S114)。送信MBOX13Dbが「空き」状態である場合、CANドライバ12Cは、送信バッファ13Bに格納されたデータを送信MBOX13Dbに書き込み(S116)、送信要求レジスタ15Abにフラグ「1」を立てる(S118)。送信MBOX13Dbが「空き」状態でない場合、CANドライバ12Cは、本フローチャートの1ルーチンを終了する。
IDが7を超える場合、CANドライバ12Cは、送信MBOX13Dcが「空き」状態であるか否かを判定する(S120)。送信MBOX13Dcが「空き」状態である場合、CANドライバ12Cは、送信バッファ13Bに格納されたデータを送信MBOX13Dcに書き込み(S122)、送信要求レジスタ15Acにフラグ「1」を立てる(S124)。送信MBOX13Dcが「空き」状態でない場合、CANドライバ12Cは、本フローチャートの1ルーチンを終了する。
〔CANコントローラ15の処理〕
CANコントローラ15は、フラグ「1」が立っている送信要求レジスタに対応する送信MBOXに格納されたデータ(フレーム)を、CANトランシーバ16を介してバスに出力する。このとき、CANコントローラ15は、複数の送信要求レジスタにフラグ「1」が立っている場合には、送信MBOX13Aaに格納されたデータを最優先にバスに出力しようとし(通信調停に勝った場合に実際に出力する;以下同じ)、次いで送信MBOX13Abに格納されたデータをバスに出力しようとし、送信MBOX13Aaにも送信MBOX13Abにもデータが格納されていない場合に送信MBOX13Acに格納されたデータをバスに出力しようとする。CANコントローラ15は、送信MBOXに格納されたデータをバスに出力できた場合、対応する送信要求レジスタのフラグをゼロクリアする。
図6は、CANコントローラ15により実行される処理の流れを示すフローチャートの一例である。本フローチャートは、例えば所定周期で繰り返し実行される。
CANコントローラ15は、まず、送信要求レジスタ15Aaにフラグ「1」が立っているか否かを判定する(S200)。
送信要求レジスタ15Aaにフラグ「1」が立っている場合、CANコントローラ15は、送信MBOX13Daからデータを読み込み、バスへの出力を試行する(S202)。そして、CANコントローラ15は、通信調停に勝ち、バスへの出力が成功した場合には、送信要求レジスタ15Aaのフラグをゼロクリアする(S204、206)。
送信要求レジスタ15Aaにフラグ「1」が立っていない場合、CANコントローラ15は、送信要求レジスタ15Abにフラグ「1」が立っているか否かを判定する(S208)。
送信要求レジスタ15Abにフラグ「1」が立っている場合、CANコントローラ15は、送信MBOX13Dbからデータを読み込み、バスへの出力を試行する(S210)。そして、CANコントローラ15は、通信調停に勝ち、バスへの出力が成功した場合には、送信要求レジスタ15Abのフラグをゼロクリアする(S212、214)。
送信要求レジスタ15Abにフラグ「1」が立っていない場合、CANコントローラ15は、送信要求レジスタ15Acにフラグ「1」が立っているか否かを判定する(S216)。
送信要求レジスタ15Acにフラグ「1」が立っている場合、CANコントローラ15は、送信MBOX13Dcからデータを読み込み、バスへの出力を試行する(S218)。そして、CANコントローラ15は、通信調停に勝ち、バスへの出力が成功した場合には、送信要求レジスタ15Acのフラグをゼロクリアする(S220、222)。
係る処理によって、低優先度のフレームが通信調停に負け続けることによって、後続の高優先度のフレームの待ち状態が長時間継続するという不都合が生じるのを抑制することができる。
[他の構成との比較等]
図7は、単独の送信MBOXのみ設定される比較例のECU*において、上記の不都合が生じる様子を示す図である。ECU*では、送信MBOXを一つのみ設定する、送信バッファに格納されたデータを、FIFO(First In, First Out)に従い、或いはIDが小さい順に送信MBOXに格納する。しかしながら、IDが大きいデータを送信MBOXに格納した直後に、IDが小さいデータが送信バッファに格納されることも当然に生じうる。この場合、先に送信MBOXに格納されたデータが通信調停に負け続けると、後続のIDが小さいデータは送信MBOXに格納されず、待ち状態を継続せざるを得ないことになる。
この点、本実施例のECU10では、送信MBOXをIDに応じて複数設定し、IDが小さい、すなわち通信調停に係る優先度が高いデータを優先的にバスに出力しようとする。この結果、先にバスへの出力が試行されるデータは通信調停に勝つ可能性が高くなり、前述のような不都合が生じるのを抑制することができる。図8は、本実施例のECU10が通信調停に係る優先度が高いデータを優先的にバスに出力する様子を示す図である。
また、本実施例のECU10では、CANコントローラ15は、送信要求レジスタの値に応じて自動的に、いずれの送信MBOXからデータを読み込んでバスに出力すればよいかを判断することができるため、例えば送信MBOXに格納された全てのデータの内容を参照してIDをチェックするといった処理を行う必要が無い。この結果、CANコントローラ15における処理負荷を過大にすることなく、通信調停に係る優先度が高いデータを、優先的にバスに出力することができる。
また、本実施例のECU10では、通信調停に係る優先度が高いデータを、優先的にバスに出力するための処理は、通信ミドルウェア12B以下の階層で行われるため、アプリケーションプログラム12Aに改変を行う必要が無い。このため、既存のECUその他の装置に適用する際に、ソフトウェア改変の負担が小さい。
[まとめ]
以上説明した本実施例のECU10によれば、通信調停に係る優先度が高いデータを、処理負荷を過大にすることなく、優先的にバスに出力することができる。
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、通信調停に係る優先度が高いデータを、優先的にバスに出力することを原則としつつ、一定期間、送信MBOXに格納されたままバスに出力されないデータ(以下、「待ち時間超過データ」と称する)については、IDに関わらず、最優先でバスへの出力を試行するものとしてもよい。この場合、こうした例外措置専用の送信MBOXを設定しておき、待ち時間超過データを、当初格納された送信MBOXから例外措置専用の送信MBOXに移動させる。図9は、例外措置を行う場合の送信MBOXとID、送信要求レジスタの対応関係の一例である。送信MBOXに格納されてからの経過時間の監視は、通信ミドルウェア12Bが行い、通信ミドルウェア12Bは、待ち時間超過データが発生すると、当該待ち時間超過データを図9における送信MBOX13Daに移動させるようにCANドライバ12Cに指示する。CANドライバ12Cは、待ち時間超過データを送信MBOX13Daに移動させると共に、待ち時間超過データが当初格納された送信MBOXに対応する送信要求レジスタのフラグをゼロクリアし、送信MBOX13Daに対応する送信要求レジスタ15Aaにフラグ「1」を立てる。なお、係る処理は、送信MBOX間のデータの移動を行わず、CANコントローラ15の内部フラグを変更すること等によって実現されても構わない。
また、実施例では、送信MBOXを3つ(例外措置専用の送信MBOXを設定する場合は4つ)設定することを例示したが、これに限らず、例えば、全てのID(1、2、…n)に対応する送信MBOXを設定してもよい。図10は、全てのIDに対応する送信MBOXを設定した場合のECU10の構成例である。図10に示す構成に対し、更に例外措置専用の送信MBOX、及び対応する送信要求レジスタを設定してもよい。
1 ネットワークシステム
2、3 バス
10 ECU
11 CPU
12 プログラムメモリ
12A アプリケーションプログラム
12B 通信ミドルウェア
12C CANドライバ
13 RAM
13A 共用領域
13B 送信バッファ
13C 受信バッファ
13D コントローラ読出領域
13Da、13Db、13Dc、… 送信MBOX
14 周辺I/O
15 CANコントローラ
15Aa、15Ab、15Ac、… 送信制御レジスタ
16 CANトランシーバ
50 ゲートウェイ装置

Claims (5)

  1. バスにデータを出力する出力部であって、前記バスに出力されようとしている他の競合データとの間で、自己が前記バスに出力しようとしているデータに付与された優先度情報を用いて通信調停を行った結果に基づき、前記バスにデータを出力するか否かを決定する出力部と、
    領域優先度の高い領域から低い領域まで複数の領域が設定された記憶部と、
    送信要求がなされたデータを、該データに付与された前記優先度情報が高いものである程、前記記憶部における前記領域優先度の高い領域に書き込む分配部と、
    前記記憶部における前記複数の領域に対応する複数のフラグ格納部と、を備え、
    前記分配部は、前記送信要求がなされたデータを前記記憶部におけるいずれかの領域に書き込んだとき、該書き込んだ領域に対応する前記フラグ格納部にフラグを立て、
    前記出力部は、前記フラグが立てられた前記フラグ格納部に対応する前記記憶部における領域のうち、前記領域優先度の高い領域に格納されたデータを優先的にデータを前記バスに出力する、
    データ送信装置。
  2. 請求項1記載のデータ送信装置であって、
    前記出力部は、前記記憶部における複数の領域に格納されたデータのうち、一定期間、前記バスに出力されていないデータについては、当初格納された領域の領域優先度に拘わらず、最優先で前記バスに出力する、
    データ送信装置。
  3. 請求項記載のデータ送信装置であって、
    前記記憶部における複数の領域には、前記一定期間、前記バスに出力されていないデータ専用の例外領域が含まれ、
    前記分配部は、前記バスに出力されていないデータを判別して、該判別したデータを他の領域から前記例外領域に移動させ、
    前記出力部は、前記例外領域に格納されたデータを最優先で前記バスに出力する、
    データ送信装置。
  4. バスに出力されようとしている他の競合データとの間で、自己が前記バスに出力しようとしているデータに付与された優先度情報を用いて通信調停を行った結果に基づき、前記バスにデータを出力するか否かを決定するデータ送信装置が、
    送信要求がなされたデータを、該データに付与された前記優先度情報が高いものである程、領域優先度の高い領域から低い領域まで複数の領域が設定された記憶部における前記領域優先度の高い領域に書き込むと共に前記送信要求がなされたデータを前記記憶部におけるいずれかの領域に書き込んだとき、前記記憶部における前記複数の領域に対応する複数のフラグ格納部のうちの該書き込んだ領域に対応する前記フラグ格納部にフラグを立て、
    前記フラグが立てられた前記フラグ格納部に対応する前記記憶部における領域のうち、前記領域優先度の高い領域に格納されたデータを優先的に前記バスに出力する、
    通信制御方法。
  5. バスに出力されようとしている他の競合データとの間で、自己が前記バスに出力しようとしているデータに付与された優先度情報を用いて通信調停を行った結果に基づき、前記バスにデータを出力するか否かを決定するデータ送信装置に、
    送信要求がなされたデータを、該データに付与された前記優先度情報が高いものである程、領域優先度の高い領域から低い領域まで複数の領域が設定された記憶部における前記領域優先度の高い領域に書き込ませると共に前記送信要求がなされたデータを前記記憶部におけるいずれかの領域に書き込ませたとき、前記記憶部における前記複数の領域に対応する複数のフラグ格納部のうちの該書き込ませた領域に対応する前記フラグ格納部にフラグを立てさせ、
    前記フラグが立てられた前記フラグ格納部に対応する前記記憶部における領域のうち、前記領域優先度の高い領域に格納されたデータを優先的に前記バスに出力させる、
    通信制御プログラム。
JP2012172697A 2012-08-03 2012-08-03 データ送信装置、通信制御方法、及び通信制御プログラム Active JP6174305B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2012172697A JP6174305B2 (ja) 2012-08-03 2012-08-03 データ送信装置、通信制御方法、及び通信制御プログラム
US14/417,359 US9703736B2 (en) 2012-08-03 2012-10-19 Data transmission apparatus, communication control method, and communication control program
EP12882258.2A EP2882146B1 (en) 2012-08-03 2012-10-19 Data transmission device, communication control method, and communication control program
CN201280075118.XA CN104541480B (zh) 2012-08-03 2012-10-19 数据发送装置、通信控制方法及通信控制程序
PCT/JP2012/077164 WO2014020779A1 (ja) 2012-08-03 2012-10-19 データ送信装置、通信制御方法、及び通信制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012172697A JP6174305B2 (ja) 2012-08-03 2012-08-03 データ送信装置、通信制御方法、及び通信制御プログラム

Publications (2)

Publication Number Publication Date
JP2014033339A JP2014033339A (ja) 2014-02-20
JP6174305B2 true JP6174305B2 (ja) 2017-08-02

Family

ID=50027500

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012172697A Active JP6174305B2 (ja) 2012-08-03 2012-08-03 データ送信装置、通信制御方法、及び通信制御プログラム

Country Status (5)

Country Link
US (1) US9703736B2 (ja)
EP (1) EP2882146B1 (ja)
JP (1) JP6174305B2 (ja)
CN (1) CN104541480B (ja)
WO (1) WO2014020779A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150086894A (ko) * 2014-01-21 2015-07-29 한국전자통신연구원 캔 통신 송신 전력 제어 장치 및 방법
TWI569995B (zh) * 2014-05-30 2017-02-11 Icm Inc Information gateway and its interference with vehicle operation
US10284387B2 (en) * 2015-05-29 2019-05-07 GM Global Technology Operations LLC Hybrid intra-vehicle communication network
CN106209542B (zh) * 2016-06-23 2019-08-02 北京东土科技股份有限公司 工业互联网现场层宽带总线架构系统
CN105959195B (zh) * 2016-06-23 2020-02-21 北京东土科技股份有限公司 工业互联网现场层宽带总线技术实现方法
JP6531750B2 (ja) * 2016-12-12 2019-06-19 トヨタ自動車株式会社 送信装置
JP6698729B2 (ja) 2018-03-15 2020-05-27 ファナック株式会社 モータ制御装置およびモータ制御方法
JP6988723B2 (ja) * 2018-07-17 2022-01-05 株式会社オートネットワーク技術研究所 車載通信装置、通信プログラム及びメッセージ送信方法
CN113452591B (zh) * 2021-06-21 2023-04-07 合安科技技术有限公司 基于can总线连续数据帧的回路控制方法及装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4593282A (en) * 1983-04-14 1986-06-03 At&T Information Systems Inc. Network protocol for integrating synchronous and asynchronous traffic on a common serial data bus
JPH0630472A (ja) 1992-07-10 1994-02-04 Mazda Motor Corp 多重伝送装置
JPH0684083A (ja) 1992-09-04 1994-03-25 Hitachi Ltd ビル管理システムの情報伝送方式
JPH07222257A (ja) 1994-02-04 1995-08-18 Mazda Motor Corp 多重伝送装置
JP3503321B2 (ja) 1996-01-16 2004-03-02 株式会社デンソー デ−タ送信装置
JPH09247192A (ja) * 1996-03-05 1997-09-19 Mitsubishi Electric Corp リアルタイム通信方式
JP2937867B2 (ja) * 1996-06-25 1999-08-23 日本電気通信システム株式会社 キュー制御方法
JP3702790B2 (ja) 2001-01-10 2005-10-05 株式会社デンソー マイクロコンピュータ
JP2002354000A (ja) 2001-05-25 2002-12-06 Mitsubishi Electric Corp ブリッジ装置
US6694235B2 (en) * 2001-07-06 2004-02-17 Denso Corporation Vehicular relay device, in-vehicle communication system, failure diagnostic system, vehicle management device, server device and detection and diagnostic program
US6970921B1 (en) 2001-07-27 2005-11-29 3Com Corporation Network interface supporting virtual paths for quality of service
JP2003281080A (ja) * 2002-03-20 2003-10-03 Matsushita Electric Ind Co Ltd データ転送制御装置
JP3828444B2 (ja) * 2002-03-26 2006-10-04 株式会社日立製作所 データ通信中継装置及びシステム
JP3972724B2 (ja) 2002-05-10 2007-09-05 セイコーエプソン株式会社 モータ制御装置
JP2007158926A (ja) 2005-12-07 2007-06-21 Fujitsu Ltd メッセージ制御プログラム、メッセージ制御装置、及びメッセージ制御方法
DE102006019305A1 (de) * 2006-04-26 2007-10-31 Robert Bosch Gmbh Verfahren zur Datenübertragung von und zu einem Steuergerät
FR2922038B1 (fr) * 2007-10-05 2011-06-10 Peugeot Citroen Automobiles Sa Procede de gestion des trames de donnees dans un bus de communication de type bus can
WO2009093473A1 (ja) * 2008-01-25 2009-07-30 Panasonic Corporation 中継装置、端末、優先通信制御方法、プログラム及び記録媒体
JP5147533B2 (ja) * 2008-05-20 2013-02-20 株式会社オートネットワーク技術研究所 中継装置及び中継方法
JPWO2009147734A1 (ja) * 2008-06-04 2011-10-20 ルネサスエレクトロニクス株式会社 車両、メンテナンス装置、メンテナンスサービスシステム及びメンテナンスサービス方法
JP5007315B2 (ja) * 2009-04-03 2012-08-22 本田技研工業株式会社 車載のゲートウェイ装置
JP5326897B2 (ja) * 2009-07-17 2013-10-30 株式会社デンソー 通信システム
JP5578713B2 (ja) * 2010-06-28 2014-08-27 ルネサスエレクトロニクス株式会社 情報処理装置
JP2012080379A (ja) * 2010-10-04 2012-04-19 Renesas Electronics Corp 半導体データ処理装置及びデータ処理システム
US9064050B2 (en) * 2010-10-20 2015-06-23 Qualcomm Incorporated Arbitrating bus transactions on a communications bus based on bus device health information and related power management
DE102012204586A1 (de) * 2012-03-22 2013-10-17 Bayerische Motoren Werke Aktiengesellschaft Gateway, Knoten und Verfahren für ein Fahrzeug

Also Published As

Publication number Publication date
EP2882146A4 (en) 2015-08-19
JP2014033339A (ja) 2014-02-20
WO2014020779A1 (ja) 2014-02-06
EP2882146B1 (en) 2017-11-22
EP2882146A1 (en) 2015-06-10
US20150212958A1 (en) 2015-07-30
CN104541480B (zh) 2018-06-29
CN104541480A (zh) 2015-04-22
US9703736B2 (en) 2017-07-11

Similar Documents

Publication Publication Date Title
JP6174305B2 (ja) データ送信装置、通信制御方法、及び通信制御プログラム
Di Natale et al. Understanding and using the controller area network communication protocol: theory and practice
US10153825B2 (en) Vehicle-mounted control device
EP3852313A1 (en) Network communication system, fraud detection electronic control unit and anti-fraud handling method
US7613197B2 (en) Multi-processor system and message transferring method in the same
JP2006254450A (ja) 大域的非同期ネットワークオンチップシステムにおける通信ノードアーキテクチャ
JP7394185B2 (ja) 通信システム
US7428608B2 (en) Communication system, communication circuit and communication method
CN113157465B (zh) 基于指针链表的消息发送方法及装置
JP2006253922A (ja) ゲートウェイ装置及びゲートウェイ装置におけるデータ転送方法
EP1591907B1 (en) Resource management
JP5728043B2 (ja) ゲートウェイ装置
JP4217386B2 (ja) Fifo装置
US20110292944A1 (en) Fly-by and ack-accelerated arbitration for broadcast packets
JP2014036417A (ja) 処理装置、ネットワークシステム、及び通信制御プログラム
JP3034405B2 (ja) ローカルエリアネットワーク装置
WO2024190421A1 (ja) 車載中継装置、中継方法および中継プログラム
JPH1117710A (ja) シリアルインタフェース回路
EP4312410A1 (en) A can communication controller and a method of operating a can communication controller
Bartolini et al. Using priority inheritance techniques to override the size limit of CAN messages
JP3613203B2 (ja) セル送信制御回路及びその方法
JP2007102509A (ja) 調停装置
JP2010154329A (ja) Ieee1394通信lsiおよびアシンクロナス送信方法
CN117221997A (zh) 分布式异构无线网络调控方法、装置、系统、终端及介质
Vyas et al. Methods for equitable distribution of bus access among nodes of Controller Area Network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150825

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160331

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160408

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20160513

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170403

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170706

R151 Written notification of patent or utility model registration

Ref document number: 6174305

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151