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

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

Info

Publication number
WO2014020779A1
WO2014020779A1 PCT/JP2012/077164 JP2012077164W WO2014020779A1 WO 2014020779 A1 WO2014020779 A1 WO 2014020779A1 JP 2012077164 W JP2012077164 W JP 2012077164W WO 2014020779 A1 WO2014020779 A1 WO 2014020779A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
bus
area
priority
output
Prior art date
Application number
PCT/JP2012/077164
Other languages
English (en)
French (fr)
Inventor
光太朗 原
Original Assignee
トヨタ自動車株式会社
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 トヨタ自動車株式会社 filed Critical トヨタ自動車株式会社
Priority to EP12882258.2A priority Critical patent/EP2882146B1/en
Priority to US14/417,359 priority patent/US9703736B2/en
Priority to CN201280075118.XA priority patent/CN104541480B/zh
Publication of WO2014020779A1 publication Critical patent/WO2014020779A1/ja

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

Definitions

  • the present invention relates to a data transmission device, a communication control method, and a communication control program.
  • a network system in which a plurality of processing devices such as an ECU (Electronic Control Unit) are connected to a bus is widely used.
  • a plurality of ECUs in such a network system can perform information processing assigned to each of the ECUs, output processing results to a bus, and provide them to other ECUs.
  • a process called communication arbitration may be performed in order to prevent a plurality of ECUs from outputting data to the bus at the same timing.
  • Communication arbitration is performed, for example, in a network system in which communication based on CAN (Controller Area Network) is performed.
  • each ECU compares the data transmitted by itself with the result of monitoring the bus state, and judges that the communication arbitration has been won if the bus state is in line with the data transmitted by the ECU. This is done with the rule that data output continues.
  • each ECU preferentially writes high-priority transmission data to the transmission buffer when there are a plurality of transmission data requested to be transmitted.
  • a system is disclosed (for example, see Patent Document 1).
  • a plurality of buffer memories are provided, the sending digital information is stored in one of the plurality of buffer memories according to the type of sending digital information, and attached to a standby number or data that changes as the transmission process proceeds.
  • An apparatus for setting a transfer order according to priority is disclosed (for example, see Patent Document 2).
  • Patent Documents 1 and 2 do not assume that data is output to a bus in which communication arbitration is performed, the following problems may occur.
  • the transfer order is set according to the standby number that changes according to the progress of the transmission process and the priority that accompanies the data”.
  • the degree does not assume the priority used for communication arbitration.
  • the data in the plurality of buffer memories to which the sending digital information is allocated according to the “type of sending digital information” that is unrelated to the priority. Must be read and the order determination process must be performed, and the burden on the apparatus related to memory access and software processing is excessive.
  • a data transmission device and a communication control program capable of preferentially outputting data having high priority related to communication arbitration to the bus without overloading the device. For the purpose.
  • one embodiment of the present invention provides: An output unit that outputs data to the bus, and communicates with other competing data that is about to be output to the bus by using priority information given to the data that the self is about to output to the bus An output unit that determines whether to output data to the bus based on the result of arbitration; A storage unit in which a plurality of areas are set from a high area priority area to a low area area; A distribution unit that writes the data requested to be transmitted to a region having a higher region priority in the storage unit, as the priority information given to the data is higher. The output unit preferentially outputs the data stored in the region having a high region priority among the data stored in the plurality of regions to the bus. A data transmission device.
  • a plurality of flag storage units corresponding to a plurality of areas in the storage unit When the distribution unit writes the requested data to any area in the storage unit, it sets a flag in the flag storage unit corresponding to the written area,
  • the output unit may preferentially output data stored in a region having a high region priority among the regions in the storage unit corresponding to the flag storage unit in which the flag is set, to the bus. .
  • the output unit has the highest priority for data that has not been output to the bus for a certain period of time among the data stored in the plurality of regions in the storage unit, regardless of the region priority of the initially stored region. It may be output to the bus.
  • the plurality of areas in the storage unit include an exception area dedicated to data that is not output to the bus for the certain period of time,
  • the distribution unit determines data that has not been output to the bus, moves the determined data from another area to the exception area,
  • the output unit may output the data stored in the exception area to the bus with the highest priority.
  • Another aspect of the present invention is: Based on the result of communication arbitration using the priority information given to the data to be output to the bus with other competing data to be output to the bus, the data is transferred to the bus.
  • a data transmission device that determines whether or not to output, An area having a higher area priority in a storage unit in which a plurality of areas are set from an area having a higher area priority to an area having a lower area priority as the priority information given to the data of the transmission requested is higher.
  • Write on the Out of the data stored in the plurality of areas the data stored in the area having a high area priority is preferentially output to the bus. This is a communication control method.
  • Another aspect of the present invention is as follows: Based on the result of communication arbitration using the priority information given to the data to be output to the bus with other competing data to be output to the bus, the data is transferred to the bus.
  • Write to Of the data stored in the plurality of areas the data stored in the area having a high area priority is preferentially output to the bus. It is a communication control program.
  • a data transmission device, a communication control method, and a communication control program capable of preferentially outputting data having high priority related to communication arbitration to a bus without excessive processing load can be provided.
  • composition of network system 1 containing ECU10 concerning one example. It is an example of composition of ECU10. It is a format example of the frame which each ECU outputs to a bus. It is an example of the correspondence between transmission MBOX and ID. It is an example of the flowchart which shows the flow of the process performed by CAN driver 12C. It is an example of the flowchart which shows the flow of the process performed by the CAN controller. It is a figure which shows a mode that an inconvenience arises in ECU * of the comparative example to which only single transmission MBOX is set. It is a figure which shows a mode that ECU10 of a present Example preferentially outputs the data with high priority which concerns on communication arbitration to a bus
  • FIG. 1 is a configuration example of a network system 1 including an ECU 10 according to an embodiment.
  • the network system 1 is connected to the ECUs 10 # 0, 10 # 1 connected to the bus 2, the ECUs 10 # 2, 10 # 3, 10 # 4 connected to the bus 3, the bus 2 and the bus 3, and the bus 2 And a gateway device 50 that relays between the bus 3.
  • the “data transmission device” in the claims corresponds to, for example, “ECU”.
  • bus 2 and the bus 3 for example, communication based on CAN is performed, and each ECU can acquire data flowing through the bus.
  • the bus 2 and the bus 30 are, for example, twisted pair cables and transmit signals by a differential voltage method.
  • FIG. 2 is a configuration example of each ECU (hereinafter referred to as ECU 10 when not distinguished from each other). Note that some of the ECUs may not have the configuration shown in FIG. 2 or some of the functions described below.
  • the ECU 10 includes, for example, a CPU (Central Processing Unit) 11, a program memory 12 that stores a program executed by the CPU 11, a RAM (Random Access Memory) 13 that functions as a working memory, and a peripheral I that serves as an interface with peripheral devices. / O14, a CAN controller 15, and a CAN transceiver 16.
  • a CPU Central Processing Unit
  • a program memory 12 that stores a program executed by the CPU 11
  • RAM Random Access Memory
  • peripheral I that serves as an interface with peripheral devices.
  • O14 a CAN controller
  • the program memory 12 is, for example, a ROM (Read Only Memory), an EEPROM (Electrically Erasable and Programmable Read Only Memory), an HDD (Hard Disk Drive), etc., and programs such as the application program 12A, the communication middleware 12B, and the CAN driver 12C. Store.
  • ROM Read Only Memory
  • EEPROM Electrically Erasable and Programmable Read Only Memory
  • HDD Hard Disk Drive
  • the application program 12A is a program for performing information processing assigned to each ECU.
  • the application program 12A performs, for example, a given calculation periodically and stores the calculation result in the shared area 13A of the RAM 13.
  • the communication middleware 12B converts the data stored in the shared area 13A into a format corresponding to the CAN driver 12C, for example, periodically or when there is a processing request from the application program 12A, and writes it to the transmission buffer 13B. And provided to the CAN driver 12C. Further, the communication middleware 12B converts the data written in the reception buffer 13C into a format that can be interpreted by the application program 12A, stores it in the shared area 13A, and provides it to the application program 12A. The CAN driver 12C stores the data written in the transmission buffer 13B in one of the transmission MBOXs.
  • the controller reading area 13D includes a plurality of transmission MBOX (message boxes) 13Da, 13Db, 13Dc.
  • the number of transmission MBOXs may be any number as long as it is plural. In the following description, it is assumed that three transmission MBOXs are set.
  • the CAN controller 15 includes a protocol controller, a frequency divider for dividing the CPU clock, transmission control registers 15Aa, 15Ab, 15Ac,. Each transmission control register corresponds to each transmission MBOX.
  • the CAN controller 15 transmits / receives various data to / from the bus 10 or the bus 20 via the CAN transceiver 16.
  • the processor that controls the CAN controller 15 may be the same as or different from the CPU 11.
  • the CAN controller 15 When outputting data (frames) to the bus, the CAN controller 15 converts a frame stored in one of the transmission MBOXs into a serial transmission signal by an NRZ (Non-Return-to-Zero) method, Output to the CAN transceiver 16.
  • the CAN controller 15 outputs a voltage whose logic level is Low to the bit whose converted signal is “0 (dominant)”, and outputs a voltage whose logic level is High to the bit “1 (recessive)”.
  • the CAN transceiver 16 converts the transmission signal acquired from the CAN controller 15 into a differential voltage and outputs it to the bus. Further, when acquiring data from the bus, the CAN transceiver 16 reads the differential voltage of the bus and outputs a reception signal shaped so as to be included in a predetermined voltage range to the CAN controller 15. A comparator is attached to the reception terminal Rx of the CAN controller 15, and a predetermined threshold voltage is compared with a reception signal from the CAN transceiver 16 to generate digital data of “1” and “0” to generate a reception buffer 13C. To store.
  • FIG. 3 is a format example of a frame output from each ECU to the bus.
  • a frame output in one transmission includes a start-of-frame (SOF) indicating the start of the frame, an ID as a data identifier, a remote transmission request (RTR) for identifying the data frame and the remote frame, and a data byte.
  • SOF start-of-frame
  • RTR remote transmission request
  • a control field representing the number, a data field that is the substance of the data to be transferred, a CRC sequence to which a CRC for checking a frame error is added, an ACK slot to receive a notification (ACK) from a unit that has received a correct message, and an ACK It includes a delimiter, an end of frame (EOF) indicating the end of the frame, and the like.
  • EEF end of frame
  • each ECU compares the data transmitted by itself with the result of monitoring the bus state.
  • the dominant is given priority and the state of the bus becomes dominant.
  • the node that transmitted the recessive determines that it has lost communication arbitration due to the difference in the bus state from the node that transmitted the recessive and stops transmission.
  • the node that transmitted the dominant wins communication arbitration when other nodes are performing recessive transmission. This means that the priority is high.
  • the communication middleware 12B stores the data stored in the shared area 13A in the transmission buffer 13B in response to a request from the application program 12A.
  • information corresponding to “ID” in the frame format (hereinafter simply referred to as “ID”) is given to the data stored in the shared area 13A by the application program 12A.
  • ID is assumed to be any integer from 1 to 10, for example.
  • the CAN driver 12C stores the data stored in the transmission buffer 13B in the transmission MBOX corresponding to the ID assigned to the data while adding data necessary as a frame.
  • FIG. 4 is an example of a correspondence relationship between the transmission MBOX and the ID. In each transmission MBOX, data for one frame is stored, and when data is already stored in the transmission MBOX, the CAN driver 12C does not store data in the transmission MBOX. As can be seen from the correspondence relationship shown in FIG. 4, data having a high priority in communication arbitration is stored in the transmission MBOX 13Aa.
  • the transmission MBOX 13Ab stores data having a medium priority in communication arbitration.
  • the transmission MBOX 13Ac stores data with low priority in communication arbitration.
  • the CAN driver 12C sets, for example, a flag “1” in the transmission request register 15Aa.
  • the CAN driver 12C sets, for example, a flag “1” in the transmission request register 15Ab.
  • the CAN driver 12C sets, for example, a flag “1” in the transmission request register 15Ac. That is, the transmission request register 15Aa corresponds to the transmission MBOX 13Aa, the transmission request register 15Ab corresponds to the transmission MBOX 13Ab, and the transmission request register 15Ab corresponds to the transmission MBOX 13Ab.
  • FIG. 5 is an example of a flowchart showing a flow of processing executed by the CAN driver 12C. This flowchart is repeatedly executed, for example, at a predetermined cycle.
  • the CAN driver 12C determines whether data is stored in the transmission buffer 13B (S100). If no data is stored in the transmission buffer 13B, the CAN driver 12C ends one routine of this flowchart.
  • the CAN driver 12C When data is stored in the transmission buffer 13B, the CAN driver 12C reads the ID of the data stored in the transmission buffer 13B (S102), and determines whether the ID is 4 or less (S104).
  • the CAN driver 12C determines whether or not the transmission MBOX 13Da is in the “free” state (S106). When the transmission MBOX 13Da is in an “empty” state, the CAN driver 12C writes the data stored in the transmission buffer 13B to the transmission MBOX 13Da (S108), and sets a flag “1” in the transmission request register 15Aa (S110). If the transmission MBOX 13Da is not in the “vacant” state, the CAN driver 12C ends one routine of this flowchart.
  • the CAN driver 12C determines whether the ID is 7 or less (S112).
  • the CAN driver 12C determines whether or not the transmission MBOX 13Db is in an “empty” state (S114). When the transmission MBOX 13Db is in the “vacant” state, the CAN driver 12C writes the data stored in the transmission buffer 13B to the transmission MBOX 13Db (S116), and sets a flag “1” in the transmission request register 15Ab (S118). If the transmission MBOX 13Db is not in the “empty” state, the CAN driver 12C ends one routine of this flowchart.
  • the CAN driver 12C determines whether or not the transmission MBOX 13Dc is in the “free” state (S120). When the transmission MBOX 13Dc is in an “empty” state, the CAN driver 12C writes the data stored in the transmission buffer 13B to the transmission MBOX 13Dc (S122), and sets a flag “1” in the transmission request register 15Ac (S124). When the transmission MBOX 13Dc is not in the “free” state, the CAN driver 12C ends one routine of this flowchart.
  • the CAN controller 15 outputs the data (frame) stored in the transmission MBOX corresponding to the transmission request register in which the flag “1” is set to the bus via the CAN transceiver 16. At this time, if the flag “1” is set in a plurality of transmission request registers, the CAN controller 15 tries to output the data stored in the transmission MBOX 13Aa to the bus with the highest priority (when the communication arbitration is won).
  • FIG. 6 is an example of a flowchart showing a flow of processing executed by the CAN controller 15. This flowchart is repeatedly executed, for example, at a predetermined cycle.
  • the CAN controller 15 first determines whether or not the flag “1” is set in the transmission request register 15Aa (S200).
  • the CAN controller 15 When the flag “1” is set in the transmission request register 15Aa, the CAN controller 15 reads data from the transmission MBOX 13Da and tries output to the bus (S202). If the CAN controller 15 wins the communication arbitration and the output to the bus is successful, the CAN controller 15 clears the flag of the transmission request register 15Aa to zero (S204, 206).
  • the CAN controller 15 determines whether or not the flag “1” is set in the transmission request register 15Ab (S208).
  • the CAN controller 15 When the flag “1” is set in the transmission request register 15Ab, the CAN controller 15 reads data from the transmission MBOX 13Db and tries to output to the bus (S210). If the CAN controller 15 wins the communication arbitration and the output to the bus is successful, the CAN controller 15 clears the flag of the transmission request register 15Ab to zero (S212, 214).
  • the CAN controller 15 determines whether or not the flag “1” is set in the transmission request register 15Ac (S216).
  • the CAN controller 15 When the flag “1” is set in the transmission request register 15Ac, the CAN controller 15 reads data from the transmission MBOX 13Dc and tries output to the bus (S218). When the CAN controller 15 wins the communication arbitration and the output to the bus is successful, the CAN controller 15 clears the flag of the transmission request register 15Ac to zero (S220, 222).
  • FIG. 7 is a diagram showing how the above-described inconvenience occurs in the comparative example ECU * in which only a single transmission MBOX is set.
  • the ECU * only one transmission MBOX is set, and data stored in the transmission buffer is stored in the transmission MBOX in accordance with FIFO (First In, First Out) or in ascending order of ID.
  • FIFO First In, First Out
  • data having a small ID may be stored in the transmission buffer immediately after the data having a large ID is stored in the transmission MBOX. In this case, if the data previously stored in the transmission MBOX continues to lose the communication arbitration, the subsequent data with a small ID is not stored in the transmission MBOX, and the waiting state must be continued.
  • FIFO First In, First Out
  • FIG. 8 is a diagram illustrating a state in which the ECU 10 according to the present embodiment preferentially outputs data having high priority related to communication arbitration to the bus.
  • the transmission request order is frame # 1 (ID10) ⁇ frame # 2 (ID1) ⁇ frame # 3 (ID5)
  • the output order to the bus is frame # 2 (ID1) ⁇ frame #. 3 (ID5) ⁇ frame # 1 (ID10)
  • frame # 2 and frame # 3 are more likely to be output to the bus earlier than the ECU * of the comparative example.
  • the CAN controller 15 can automatically determine which transmission MBOX should be read and output to the bus in accordance with the value of the transmission request register. For example, there is no need to perform processing such as checking the ID by referring to the contents of all data stored in the transmission MBOX. As a result, it is possible to preferentially output data having a high priority related to communication arbitration to the bus without increasing the processing load in the CAN controller 15.
  • the processing for preferentially outputting data having high priority related to communication arbitration to the bus is performed in the hierarchy below the communication middleware 12B, and therefore the application program 12A is modified. There is no need. For this reason, when applied to existing ECUs and other devices, the burden of software modification is small.
  • data having a high priority related to communication arbitration is output to the bus preferentially, and data that is stored in the transmission MBOX for a certain period and is not output to the bus (hereinafter, “waiting time excess data”).
  • the output to the bus may be tried with the highest priority regardless of the ID.
  • such a transmission MBOX dedicated to exceptional measures is set, and the waiting time excess data is moved from the originally stored transmission MBOX to the transmission MBOX dedicated to exceptional measures.
  • FIG. 9 is an example of a correspondence relationship between the transmission MBOX, ID, and transmission request register when performing exceptional measures.
  • the communication middleware 12B monitors the elapsed time since it is stored in the transmission MBOX.
  • the communication middleware 12B moves the waiting time excess data to the transmission MBOX 13Da in FIG.
  • the driver 12C is instructed.
  • the CAN driver 12C moves the waiting time excess data to the transmission MBOX 13Da and clears the flag of the transmission request register corresponding to the transmission MBOX in which the waiting time excess data is initially stored, to the transmission request register 15Aa corresponding to the transmission MBOX 13Da.
  • Such processing may be realized by changing an internal flag of the CAN controller 15 without moving data between transmission MBOXes.
  • FIG. 10 is a configuration example of the ECU 10 when transmission MBOX corresponding to all IDs is set.
  • a transmission MBOX dedicated to exception measures and a corresponding transmission request register may be set.
  • the present invention can be used in the computer manufacturing industry, the computer software industry, the manufacturing industry of various systems using computers, and the like.

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)

Abstract

 バスにデータを出力する出力部であって、前記バスに出力されようとしている他の競合データとの間で、自己が前記バスに出力しようとしているデータに付与された優先度情報を用いて通信調停を行った結果に基づき、前記バスにデータを出力するか否かを決定する出力部と、領域優先度の高い領域から低い領域まで複数の領域が設定された記憶部と、送信要求がなされたデータを、該データに付与された優先度情報が高いものである程、前記記憶部における領域優先度の高い領域に書き込む分配部と、を備え、前記出力部は、前記複数の領域に格納されたデータのうち、前記領域優先度の高い領域に格納されたデータを優先的に前記バスに出力する、データ送信装置。

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に格納されず、待ち状態を継続せざるを得ないことになる。図7の例では、比較例のECU*において、送信要求順がフレーム#1(ID10)→フレーム#2(ID1)→フレーム#3(ID5)であった場合、バスへの出力順も、フレーム#1(ID10)→フレーム#2(ID1)→フレーム#3(ID5)となるが、フレーム#1(ID10)が調停に負け続ける結果、後続のフレームはIDに関わらず待ち状態が継続する可能性が高い。
 この点、本実施例のECU10では、送信MBOXをIDに応じて複数設定し、IDが小さい、すなわち通信調停に係る優先度が高いデータを優先的にバスに出力しようとする。この結果、先にバスへの出力が試行されるデータは通信調停に勝つ可能性が高くなり、前述のような不都合が生じるのを抑制することができる。図8は、本実施例のECU10が通信調停に係る優先度が高いデータを優先的にバスに出力する様子を示す図である。図8の例では、送信要求順がフレーム#1(ID10)→フレーム#2(ID1)→フレーム#3(ID5)であった場合、バスへの出力順はフレーム#2(ID1)→フレーム#3(ID5)→フレーム#1(ID10)となり、フレーム#2やフレーム#3は、比較例のECU*よりも早くバスに出力される可能性が高い。
 また、本実施例の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、及び対応する送信要求レジスタを設定してもよい。
 本発明は、コンピュータ製造業、コンピュータソフトウェア産業、並びにコンピュータを利用した種々のシステムの製造業等に利用することができる。
 本国際出願は、2012年8月3日に出願された日本国特許出願2012-172697に基づく優先権を主張するものであり、日本国特許出願2012-172697の全内容をここに本国際出願に援用する。
 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 (6)

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

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP12882258.2A EP2882146B1 (en) 2012-08-03 2012-10-19 Data transmission device, communication control method, and communication control program
US14/417,359 US9703736B2 (en) 2012-08-03 2012-10-19 Data transmission apparatus, communication control method, and communication control program
CN201280075118.XA CN104541480B (zh) 2012-08-03 2012-10-19 数据发送装置、通信控制方法及通信控制程序

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2014020779A1 true WO2014020779A1 (ja) 2014-02-06

Family

ID=50027500

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/077164 WO2014020779A1 (ja) 2012-08-03 2012-10-19 データ送信装置、通信制御方法、及び通信制御プログラム

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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10720861B2 (en) 2018-03-15 2020-07-21 Fanuc Corporation Motor control device and motor control method
CN113452591A (zh) * 2021-06-21 2021-09-28 合安科技技术有限公司 基于can总线连续数据帧的回路控制方法及装置

Families Citing this family (7)

* 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
CN105959195B (zh) * 2016-06-23 2020-02-21 北京东土科技股份有限公司 工业互联网现场层宽带总线技术实现方法
CN106209542B (zh) * 2016-06-23 2019-08-02 北京东土科技股份有限公司 工业互联网现场层宽带总线架构系统
JP6531750B2 (ja) 2016-12-12 2019-06-19 トヨタ自動車株式会社 送信装置
JP6988723B2 (ja) * 2018-07-17 2022-01-05 株式会社オートネットワーク技術研究所 車載通信装置、通信プログラム及びメッセージ送信方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07222257A (ja) 1994-02-04 1995-08-18 Mazda Motor Corp 多重伝送装置
JPH09200234A (ja) 1996-01-16 1997-07-31 Denso Corp デ−タ送信装置
JPH09247192A (ja) * 1996-03-05 1997-09-19 Mitsubishi Electric Corp リアルタイム通信方式
JPH1013463A (ja) * 1996-06-25 1998-01-16 Nec Commun Syst Ltd キュー制御方法
JP2003283556A (ja) * 2002-03-26 2003-10-03 Hitachi Ltd データ通信中継装置及びシステム
JP2003333888A (ja) * 2002-05-10 2003-11-21 Seiko Epson Corp モータ制御装置およびモータ制御方法
JP2007158926A (ja) * 2005-12-07 2007-06-21 Fujitsu Ltd メッセージ制御プログラム、メッセージ制御装置、及びメッセージ制御方法
JP2009284085A (ja) * 2008-05-20 2009-12-03 Autonetworks Technologies Ltd 中継装置及び中継方法

Family Cites Families (18)

* 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 ビル管理システムの情報伝送方式
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 データ転送制御装置
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
US20100293290A1 (en) * 2008-01-25 2010-11-18 Nobuhiko Arashin Relay device, terminal, priority communication control method, program, and recording medium
US20110083161A1 (en) * 2008-06-04 2011-04-07 Takayuki Ishida Vehicle, maintenance device, maintenance service system, and maintenance service method
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

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07222257A (ja) 1994-02-04 1995-08-18 Mazda Motor Corp 多重伝送装置
JPH09200234A (ja) 1996-01-16 1997-07-31 Denso Corp デ−タ送信装置
JPH09247192A (ja) * 1996-03-05 1997-09-19 Mitsubishi Electric Corp リアルタイム通信方式
JPH1013463A (ja) * 1996-06-25 1998-01-16 Nec Commun Syst Ltd キュー制御方法
JP2003283556A (ja) * 2002-03-26 2003-10-03 Hitachi Ltd データ通信中継装置及びシステム
JP2003333888A (ja) * 2002-05-10 2003-11-21 Seiko Epson Corp モータ制御装置およびモータ制御方法
JP2007158926A (ja) * 2005-12-07 2007-06-21 Fujitsu Ltd メッセージ制御プログラム、メッセージ制御装置、及びメッセージ制御方法
JP2009284085A (ja) * 2008-05-20 2009-12-03 Autonetworks Technologies Ltd 中継装置及び中継方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10720861B2 (en) 2018-03-15 2020-07-21 Fanuc Corporation Motor control device and motor control method
CN113452591A (zh) * 2021-06-21 2021-09-28 合安科技技术有限公司 基于can总线连续数据帧的回路控制方法及装置

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6174305B2 (ja) データ送信装置、通信制御方法、及び通信制御プログラム
Di Natale et al. Understanding and using the controller area network communication protocol: theory and practice
RU2454710C2 (ru) Коммуникационный модуль
US10153825B2 (en) Vehicle-mounted control device
US7613197B2 (en) Multi-processor system and message transferring method in the same
JP2006254450A (ja) 大域的非同期ネットワークオンチップシステムにおける通信ノードアーキテクチャ
JP7394185B2 (ja) 通信システム
JP2006191337A (ja) バス間のメッセージ転送を行うゲートウエイ装置及びそれを使用したネットワークシステム
JP2009502072A (ja) FlexRay通信モジュール及びFlexRay通信制御装置、並びにFlexRay通信接続とFlexRay加入者装置との間でメッセージを伝送する方法
JP2006191339A (ja) バス間のメッセージ転送を行うゲートウエイ装置
Jo et al. Multi-core gateway architecture and scheduling algorithm for high-performance gateway implementation
EP1591907B1 (en) Resource management
US8473579B2 (en) Data reception management apparatus, systems, and methods
KR20170117326A (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
CN113157465B (zh) 基于指针链表的消息发送方法及装置
KR20050080704A (ko) 프로세서간 데이터 전송 장치 및 방법
JP2014204160A (ja) ゲートウェイ装置
JP2009116561A (ja) データ転送システム
CN111797050A (zh) 片上系统
JP2014036417A (ja) 処理装置、ネットワークシステム、及び通信制御プログラム
Rahim et al. Comparison of CAN, TTP and Flexray Communication Protocols
Bartolini et al. Using priority inheritance techniques to override the size limit of CAN messages
EP4312410A1 (en) A can communication controller and a method of operating a can communication controller
Kim et al. Communication using controller area network protocol
CN116055422A (zh) 一种控制数据包发送顺序的装置以及方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12882258

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14417359

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2012882258

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2012882258

Country of ref document: EP