JP2013062734A - Information processing device - Google Patents

Information processing device Download PDF

Info

Publication number
JP2013062734A
JP2013062734A JP2011200779A JP2011200779A JP2013062734A JP 2013062734 A JP2013062734 A JP 2013062734A JP 2011200779 A JP2011200779 A JP 2011200779A JP 2011200779 A JP2011200779 A JP 2011200779A JP 2013062734 A JP2013062734 A JP 2013062734A
Authority
JP
Japan
Prior art keywords
driver
application
communication
transmission
reception
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.)
Withdrawn
Application number
JP2011200779A
Other languages
Japanese (ja)
Inventor
Tomokazu Moriya
友和 守谷
Koji Yura
浩司 由良
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 JP2011200779A priority Critical patent/JP2013062734A/en
Publication of JP2013062734A publication Critical patent/JP2013062734A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an information processing device capable of communication between application programs at low cost.SOLUTION: An information processing device which is connected to a bus for communication with external devices and executes a plurality of application programs includes: instruction execution means for executing instructions from the plurality of application programs; a controller for performing control on the basis of a communication protocol adopted for communication with the external devices; and a driver for controlling the controller. The driver includes: a plurality of interface units associated with the plurality of application programs; and a common processing unit for executing instructions from the plurality of application programs. The communication between the plurality of application programs is performed under the control of the driver.

Description

本発明は、複数のアプリケーションプログラムを実行する情報処理装置に関する。   The present invention relates to an information processing apparatus that executes a plurality of application programs.

近年、特に車載制御装置の分野において、複数のECU(Electronic Control Unit)によって実行されていた制御を統合して、一の(或いは、より少数の)ECUに実行させることが進められている。車両に搭載されるECUとしては、エンジンの点火制御等を行うエンジンECU、ドアロックの施錠/解錠等を行うボデーECU、電子制御式ブレーキ装置のソレノイド制御等を行うブレーキECU、パワーステアリング装置を制御するステアリングECU等、種々のものが存在する。   In recent years, particularly in the field of in-vehicle control devices, it has been promoted to integrate control executed by a plurality of ECUs (Electronic Control Units) to be executed by one (or a smaller number) of ECUs. The ECU mounted on the vehicle includes an engine ECU that performs engine ignition control, a body ECU that locks / unlocks a door lock, a brake ECU that performs solenoid control of an electronically controlled brake device, and a power steering device. There are various types such as a steering ECU to be controlled.

このように、複数の機能を統合した情報処理装置は、ハードウエア面のコストを低減することができるため、種々の分野で用いられている。   As described above, an information processing apparatus in which a plurality of functions are integrated is used in various fields because it can reduce hardware costs.

特許文献1には、車両に搭載されたECUを統合した場合における通信モジュールの制御に特徴を有する制御装置について記載されている。この制御装置では、ECUのアプリケーションに含まれるボデー制御アプリケーションやAFS制御アプリケーション等の複数のアプリケーションプログラムがそれぞれ異なる周期で制御処理を行う場合に、複数の制御モジュールのうち、アプリケーションの制御周期に整合した制御モジュールを用いて他のECUとの通信を行っている。   Patent Document 1 describes a control device characterized by control of a communication module when an ECU mounted on a vehicle is integrated. In this control apparatus, when a plurality of application programs such as a body control application and an AFS control application included in an ECU application perform control processing at different periods, the control period of the plurality of control modules is matched with the control period of the application. Communication with other ECUs is performed using a control module.

特開2010−274783号公報JP 2010-274783 A

しかしながら、上記従来の制御装置においては、統合されたECUにより実行されるアプリケーションプログラム間の通信を、どのようにして行うかについての考慮がなされていない。   However, in the above-described conventional control device, no consideration is given to how communication between application programs executed by the integrated ECU is performed.

仮に、内部バスを用いてアプリケーションプログラム間の通信を行う場合、アプリケーションプログラム毎に二重化されたハードウエアを備える必要があり、ECUの統合によるコスト低減の効果が限定的になる場合がある。   If communication between application programs is performed using an internal bus, it is necessary to provide redundant hardware for each application program, and the cost reduction effect due to ECU integration may be limited.

本発明はこのような課題を解決するためのものであり、アプリケーションプログラム間の通信を低コストで行うことが可能な情報処理装置を提供することを、主たる目的とする。   The present invention is for solving such problems, and a main object thereof is to provide an information processing apparatus capable of performing communication between application programs at low cost.

上記目的を達成するための本発明の一態様は、
外部機器との通信を行うためのバスに接続され、複数のアプリケーションプログラムを実行する情報処理装置であって、
前記複数のアプリケーションプログラムからの命令を実行する命令実行手段と、
前記外部機器との通信において採用される通信プロトコルに基づく制御を行うコントローラと、
前記コントローラを制御するドライバと、を備え、
前記ドライバは、前記複数のアプリケーションプログラムに対応した複数のインターフェース部と、前記複数のアプリケーションプログラムからの指示を実行する共通処理部と、を有し、
前記複数のアプリケーションプログラム間の通信は、前記ドライバの制御下で行われることを特徴とする、
情報処理装置である。
In order to achieve the above object, one embodiment of the present invention provides:
An information processing apparatus connected to a bus for communicating with an external device and executing a plurality of application programs,
Instruction execution means for executing instructions from the plurality of application programs;
A controller that performs control based on a communication protocol employed in communication with the external device;
A driver for controlling the controller,
The driver includes a plurality of interface units corresponding to the plurality of application programs, and a common processing unit that executes instructions from the plurality of application programs,
Communication between the plurality of application programs is performed under the control of the driver,
Information processing apparatus.

この本発明の一態様によれば、アプリケーションプログラム間の通信を低コストで行うことができる。   According to this aspect of the present invention, communication between application programs can be performed at low cost.

本発明の一態様において、
前記外部機器との通信に用いられる送信バッファ及び受信バッファを備え、
前記複数のアプリケーションプログラム間の通信は、前記複数のアプリケーションプログラムのうち送信側のアプリケーションプログラムの指示により前記送信バッファに書き込まれたデータを、前記ドライバが前記受信バッファにコピーし、前記複数のアプリケーションプログラムのうち受信側のアプリケーションプログラムに受信通知を行うことによって実行されるものとしてもよい。
In one embodiment of the present invention,
A transmission buffer and a reception buffer used for communication with the external device;
In the communication between the plurality of application programs, the driver copies the data written in the transmission buffer according to the instruction of the transmission side application program among the plurality of application programs, and the plurality of application programs Of these, it may be executed by notifying the reception side application program of reception.

この場合、
受信識別子と受信対象の関係を規定したテーブルを備え、
前記ドライバは、前記送信バッファに書き込まれたデータに含まれる受信識別子を用いて前記テーブルを検索することにより、前記受信側のアプリケーションプログラムを特定するものとしてもよい。
in this case,
It has a table that defines the relationship between reception identifiers and reception targets,
The driver may specify the receiving-side application program by searching the table using a reception identifier included in data written in the transmission buffer.

本発明によれば、アプリケーションプログラム間の通信を低コストで行うことが可能な情報処理装置を提供することができる。   ADVANTAGE OF THE INVENTION According to this invention, the information processing apparatus which can perform communication between application programs at low cost can be provided.

本発明の一実施例に係る情報処理装置1のハードウエア構成例である。It is a hardware structural example of the information processing apparatus 1 which concerns on one Example of this invention. 本発明の一実施例に係る情報処理装置1の機能構成例である。It is an example of functional composition of information processor 1 concerning one example of the present invention. 受信識別子テーブル36の一例である。4 is an example of a reception identifier table 36. CANドライバ25により実行される送信処理の流れを示すフローチャートである。4 is a flowchart showing a flow of transmission processing executed by a CAN driver 25. CANドライバ25により実行される送信確認処理の流れを示すフローチャートである。4 is a flowchart showing a flow of a transmission confirmation process executed by a CAN driver 25. CANドライバ25により実行される疑似受信処理(A)の流れを示すフローチャートである。4 is a flowchart showing a flow of pseudo reception processing (A) executed by a CAN driver 25. CANドライバ25により実行される送信確認バッファ処理(A)の流れを示すフローチャートである。4 is a flowchart showing a flow of a transmission confirmation buffer process (A) executed by a CAN driver 25. CANドライバ25により実行される受信処理の流れを示すフローチャートである。4 is a flowchart showing a flow of reception processing executed by a CAN driver 25. アプリケーションプログラムからの指示によるCANドライバ25及びCANコントローラ40の状態遷移を示す図である。It is a figure which shows the state transition of the CAN driver 25 and the CAN controller 40 by the instruction | indication from an application program. 統合前の複数のECUの接続関係を例示した図である。It is the figure which illustrated the connection relation of a plurality of ECUs before unification. 本実施例とは異なるアーキテクチャによりECU_AとECU_Bを統合した場合の統合ECUの構成を例示した図である。It is the figure which illustrated the structure of integrated ECU at the time of integrating ECU_A and ECU_B by the architecture different from a present Example. 本実施例の情報処理装置1によるアプリ間の通信の流れ等を示す図である。It is a figure which shows the flow etc. of the communication between applications by the information processing apparatus 1 of a present Example. 本実施例の情報処理装置1を、統合ECUとして実現するための開発処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the development process for implement | achieving the information processing apparatus 1 of a present Example as integrated ECU.

以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。   DESCRIPTION OF EMBODIMENTS Hereinafter, embodiments for carrying out the present invention will be described with reference to the accompanying drawings.

以下、図面を参照し、本発明の一実施例に係る情報処理装置1について説明する。情報処理装置1は、車両に搭載された制御装置(ECU)として好適に用いられるものであるが、これに限定されず、種々の用途に適用可能である。   Hereinafter, an information processing apparatus 1 according to an embodiment of the present invention will be described with reference to the drawings. The information processing device 1 is preferably used as a control device (ECU) mounted on a vehicle, but is not limited to this and can be applied to various uses.

[ハードウエア構成、基本機能]
図1は、本発明の一実施例に係る情報処理装置1のハードウエア構成例である。情報処理装置1は、主要な構成として、CPU10と、プログラムメモリ20と、主記憶装置30と、CAN(Controller Area Network)コントローラ40と、CANトランシーバ50と、周辺I/O60と、周辺機器70と、を備える。また、情報処理装置1は、図示された構成の他にも、HDD(Hard Disk Drive)等の補助記憶装置、ドライブ装置等を備えてもよい。
[Hardware configuration, basic functions]
FIG. 1 is a hardware configuration example of an information processing apparatus 1 according to an embodiment of the present invention. The information processing apparatus 1 includes, as main components, a CPU 10, a program memory 20, a main storage device 30, a CAN (Controller Area Network) controller 40, a CAN transceiver 50, a peripheral I / O 60, and peripheral devices 70. . The information processing apparatus 1 may include an auxiliary storage device such as an HDD (Hard Disk Drive), a drive device, and the like in addition to the illustrated configuration.

CPU10は、例えば、プログラムカウンタ、命令フェッチユニット、命令キュー、命令発行部、汎用レジスタ、ALU(Arithmetic Logic Unit)、MUL(乗算器)、DIV(除算器)、LSU(Load Store Unit)その他の演算器を備える。CPU10は、プログラムメモリ20から命令をフェッチし、演算結果や他の機器からロードした結果等を、内蔵する汎用レジスタや主記憶装置30等に格納する。   The CPU 10 includes, for example, a program counter, an instruction fetch unit, an instruction queue, an instruction issuing unit, a general-purpose register, an ALU (Arithmetic Logic Unit), a MUL (multiplier), a DIV (divider), an LSU (Load Store Unit), and other operations. Equipped with a bowl. The CPU 10 fetches an instruction from the program memory 20 and stores an operation result, a result loaded from another device, or the like in a built-in general-purpose register or the main storage device 30.

プログラムメモリ20は、例えば、ROM(Read Only Memory)やEEPROM(Electronically Erasable and Programmable Read Only Memory)である。プログラムメモリ20には、BIOS等の初期処理用プログラムの他、アプリケーションプログラムA(21)、アプリケーションプログラムB(22)(以下、単にアプリA、Bと表記する)、通信ミドルウエアA(23)、通信ミドルウエアB(24)、CANドライバ25、その他の各種プログラムが格納されている。各プログラムの内容については後述する。   The program memory 20 is, for example, a ROM (Read Only Memory) or an EEPROM (Electronically Erasable and Programmable Read Only Memory). In the program memory 20, in addition to an initial processing program such as BIOS, application program A (21), application program B (22) (hereinafter simply referred to as applications A and B), communication middleware A (23), The communication middleware B (24), the CAN driver 25, and other various programs are stored. The contents of each program will be described later.

ここで、アプリケーションプログラム及び対応する通信ミドルウエア等が二個存在するのはあくまで例示であり、本発明の適用上、アプリケーションプログラム等は複数であれば如何なる個数であってもよい。   Here, the existence of two application programs and corresponding communication middleware is merely an example, and for application of the present invention, any number of application programs or the like may be used.

主記憶装置30は、例えばRAM(Random Access Memory)である。主記憶装置30には、アプリA、Bの演算結果等が格納されるワーキングメモリとして機能する他、送信PDU(Protocol Data Unit)バッファA(31)、送信PDUバッファB(32)、送信PDUフラグA(33)、送信PDUフラグB(34)、受信PDUバッファ35、受信識別子テーブル36等が格納される。   The main storage device 30 is, for example, a RAM (Random Access Memory). The main storage device 30 functions as a working memory for storing the calculation results of the applications A and B, a transmission PDU (Protocol Data Unit) buffer A (31), a transmission PDU buffer B (32), and a transmission PDU flag. A (33), transmission PDU flag B (34), reception PDU buffer 35, reception identifier table 36, and the like are stored.

以下、数値符号を省略し、単に通信ミドルウエアA、B、送信PDUバッファA、B、送信PDUフラグA、B等と表記する。   Hereinafter, numerical symbols are omitted, and are simply referred to as communication middleware A and B, transmission PDU buffers A and B, transmission PDU flags A and B, and the like.

送信PDUバッファA、B、送信PDUフラグA、B、及び受信PDUバッファ35は、例えば専用領域として確保された主記憶装置30上の領域である。受信識別子テーブル36は、ROM等に記憶されており、情報処理装置1の起動時等に主記憶装置にコピーされて用いられる。なお、これらのデータ領域又はデータのうち一部は、レジスタ、キャッシュメモリ、フラッシュメモリ等の他の記憶装置に設定・格納されてもよい。   The transmission PDU buffers A and B, the transmission PDU flags A and B, and the reception PDU buffer 35 are areas on the main storage device 30 that are reserved as dedicated areas, for example. The reception identifier table 36 is stored in a ROM or the like, and is used by being copied to the main storage device when the information processing apparatus 1 is started up. A part of these data areas or data may be set and stored in other storage devices such as a register, a cache memory, and a flash memory.

CANコントローラ40は、CANドライバ25によって制御され、CANトランシーバ50を介して、CANバス80との間で種々のデータを送受信する。   The CAN controller 40 is controlled by the CAN driver 25 and transmits / receives various data to / from the CAN bus 80 via the CAN transceiver 50.

CANバス80は、例えばツイストペアケーブルであり、差動電圧方式によって信号を伝達する。CANバス80には、例えば情報処理装置1以外の車載制御装置(ECU)が通信ノードとして接続され、CANバス80を流れる信号を各通信ノードが参照できる構成となっている。CANバス80では、車両内通信として用いられているCANプロトコルに従って、情報の送受信が行われている。CANプロトコルでは、ビットスタッフィングルール等の特徴的なルールが採用されている。   The CAN bus 80 is, for example, a twisted pair cable, and transmits a signal by a differential voltage method. For example, an in-vehicle control device (ECU) other than the information processing device 1 is connected to the CAN bus 80 as a communication node so that each communication node can refer to a signal flowing through the CAN bus 80. The CAN bus 80 transmits and receives information according to the CAN protocol used for in-vehicle communication. In the CAN protocol, characteristic rules such as a bit stuffing rule are adopted.

なお、CANバス80として例示した外部バスでは、CANに限らず、LIN(Local Interconnect Network)に代表される低速なボデー系通信プロトコル、MOST(Media Oriented Systems Transport)に代表されるマルチメディア系通信プロトコル、FlexRay等の通信プロトコルが採用されても構わない。   The external bus exemplified as the CAN bus 80 is not limited to CAN, but a low-speed body communication protocol typified by LIN (Local Interconnect Network), and a multimedia communication protocol typified by MOST (Media Oriented Systems Transport). , A communication protocol such as FlexRay may be employed.

CANバス80に情報を出力する際には、CANコントローラ40は、送信PDUバッファA又はBに格納されたフレームを、NRZ(Non‐Return‐to‐Zero)方式でシリアルの送信信号に変換し、CANトランシーバ50に出力する。CANコントローラ40は、変換後の信号が“0(ドミナント)”のビットには論理レベルがLowの電圧を、“1(リセッシブ)”のビットには論理レベルがHighの電圧を出力する。CANトランシーバ50は、CANコントローラ40から取得した送信信号を差動電圧に変換してCANバス80に出力する。すなわち、CANトランシーバ50は、送信データが「0」の時に、Hラインの電圧をハイレベル(例えば3.5[V])にするとともにLラインの電圧をローレベル(例えば1.5[V])にし、送信データが「1」の時にHラインの電圧をローレベル(例えば2.5[V])にするとともにLラインの電圧をハイレベル(例えば2.5[V])にする。   When outputting information to the CAN bus 80, the CAN controller 40 converts the frame stored in the transmission PDU buffer A or B into a serial transmission signal by the NRZ (Non-Return-to-Zero) method, Output to the CAN transceiver 50. The CAN controller 40 outputs a voltage having a logic level of low to a bit whose converted signal is “0 (dominant)”, and outputs a voltage having a logic level of high to a bit of “1 (recessive)”. The CAN transceiver 50 converts the transmission signal acquired from the CAN controller 40 into a differential voltage and outputs the differential voltage to the CAN bus 80. That is, when the transmission data is “0”, the CAN transceiver 50 sets the voltage of the H line to a high level (for example, 3.5 [V]) and sets the voltage of the L line to a low level (for example, 1.5 [V]). When the transmission data is “1”, the voltage of the H line is set to a low level (for example, 2.5 [V]) and the voltage of the L line is set to a high level (for example, 2.5 [V]).

CANバス80から情報を取得する際には、CANトランシーバ50は、CANバス80の差動電圧を読み取り、所定の電圧範囲に含まれるように整形した受信信号をCANコントローラ40に出力する。CANコントローラ40の受信端子Rxにはコンパレータが取り付けられており、所定の閾値電圧とCANトランシーバ50からの受信信号とを比較して“1”、“0”のデジタルデータを生成して受信PDUバッファ35に格納する。   When acquiring information from the CAN bus 80, the CAN transceiver 50 reads the differential voltage of the CAN bus 80 and outputs a received signal shaped to be included in a predetermined voltage range to the CAN controller 40. A comparator is attached to the reception terminal Rx of the CAN controller 40, and a predetermined threshold voltage is compared with a reception signal from the CAN transceiver 50 to generate digital data of “1” and “0” to receive the PDU buffer. 35.

周辺I/O60は、例えば周辺機器70とのインターフェースとして機能する。周辺機器70は、例えば各種車載センサに接続されたA/D変換器であり、センサ出力値をデジタル値に変換して周辺I/O60に出力する。周辺I/O60に入力されたデータはCPU10に伝達され、車両制御に用いられる。このほか、周辺機器70としては、アクチュエータ、スイッチ等が該当し得る。   The peripheral I / O 60 functions as an interface with the peripheral device 70, for example. The peripheral device 70 is, for example, an A / D converter connected to various in-vehicle sensors, converts the sensor output value into a digital value, and outputs the digital value to the peripheral I / O 60. Data input to the peripheral I / O 60 is transmitted to the CPU 10 and used for vehicle control. In addition, the peripheral device 70 may be an actuator, a switch, or the like.

[ソフトウエア構成等]
図2は、本発明の一実施例に係る情報処理装置1の機能構成例である。図中、破線で示すブロックはソフトウエア機能であり、実線で示すブロックはハードウエア機能である。アプリA、Bは、それぞれ異なるタスクを処理するアプリケーションである。例えば、情報処理装置1が車両のエンジン制御装置である場合、アプリAが点火時期制御を行い、アプリBがスロットル開度制御やスタータモータ制御を行う等、役割が分担されている。
[Software configuration, etc.]
FIG. 2 is a functional configuration example of the information processing apparatus 1 according to an embodiment of the present invention. In the figure, blocks indicated by broken lines are software functions, and blocks indicated by solid lines are hardware functions. Applications A and B are applications that process different tasks. For example, when the information processing apparatus 1 is a vehicle engine control apparatus, the application A performs ignition timing control, and the application B performs throttle opening control and starter motor control.

通信ミドルウエアA、B、及びCANドライバ25は、オペレーティングシステムの一部として機能する。CANドライバ25は、CANコントローラ40に依存する下位層のソフトウエアであり、アプリA、B及び通信ミドルウエアA、Bは、CANコントローラ40に依存しない上位層のソフトウエアである。   The communication middleware A and B and the CAN driver 25 function as a part of the operating system. The CAN driver 25 is lower-layer software that depends on the CAN controller 40, and the applications A and B and the communication middleware A and B are upper-layer software that does not depend on the CAN controller 40.

通信ミドルウエアA、Bは、例えば、アプリA、Bからの処理要求をCANドライバ25に対応した形式に変換し、CANドライバ25に出力する。また、通信ミドルウエアA、Bは、CANドライバ25から入力されるデータを受け付け、アプリA,Bが解釈可能な形式に変換等を行なってアプリA、Bに出力する。   For example, the communication middlewares A and B convert processing requests from the applications A and B into a format corresponding to the CAN driver 25 and output the converted request to the CAN driver 25. The communication middleware A and B accepts data input from the CAN driver 25, converts the data into a format interpretable by the applications A and B, and outputs the converted data to the applications A and B.

CANドライバ25は、例えば、アプリA用インターフェース部25Aと、アプリB用インターフェース部25Bと、共通処理部25Cと、を備える。アプリA用インターフェース部25Aは、通信ミドルウエアAからの処理要求を共通処理部25Cに伝達し、共通処理部25Cから入力されるデータを通信ミドルウエアAに出力する。アプリB用インターフェース部25Bは、通信ミドルウエアBからの処理要求を共通処理部25Cに伝達し、共通処理部25Cから入力されるデータを通信ミドルウエアBに出力する。共通処理部25Cは、CANコントローラ40に対しては、CANコントローラ40を制御するためのレジスタへの書き込み等を行う。   The CAN driver 25 includes, for example, an application A interface unit 25A, an application B interface unit 25B, and a common processing unit 25C. The application A interface unit 25A transmits a processing request from the communication middleware A to the common processing unit 25C, and outputs data input from the common processing unit 25C to the communication middleware A. The application B interface unit 25B transmits a processing request from the communication middleware B to the common processing unit 25C, and outputs data input from the common processing unit 25C to the communication middleware B. For the CAN controller 40, the common processing unit 25C performs writing to a register for controlling the CAN controller 40, and the like.

以下、CANドライバ25による送受信処理について、より詳細に説明する。CANドライバ25は、受信識別子テーブル36を参照して、データを受信するアプリケーションプログラムを特定する。   Hereinafter, transmission / reception processing by the CAN driver 25 will be described in more detail. The CAN driver 25 refers to the reception identifier table 36 and identifies an application program that receives data.

図3は、受信識別子テーブル36の一例である。図中、IF−AはアプリA用インターフェース部25Aを示し、IF−BはアプリB用インターフェース部25Bを示している。すなわち、CANドライバ25は、識別子が0x10であれば、アプリA用インターフェース部25A、通信ミドルウエアAを介してアプリAにデータを受信させると共に、アプリB用インターフェース部25B、通信ミドルウエアBを介してアプリBにもデータを受信させる。また、CANドライバ25は、識別子が0x120であれば、アプリA用インターフェース部25A、通信ミドルウエアAを介してアプリAにデータを受信させる。また、CANドライバ25は、識別子が0x205であれば、アプリB用インターフェース部25B、通信ミドルウエアBを介してアプリBにデータを受信させる。   FIG. 3 is an example of the reception identifier table 36. In the figure, IF-A indicates an application A interface unit 25A, and IF-B indicates an application B interface unit 25B. That is, if the identifier is 0x10, the CAN driver 25 causes the application A to receive data via the application A interface unit 25A and the communication middleware A, and also uses the application B interface unit 25B and the communication middleware B. The application B also receives data. If the identifier is 0x120, the CAN driver 25 causes the application A to receive data via the application A interface unit 25A and the communication middleware A. If the identifier is 0x205, the CAN driver 25 causes the application B to receive data via the application B interface unit 25B and the communication middleware B.

受信識別子テーブル36は、いずれのアプリケーションプログラムも受信しないデータについての識別子は登録していない。これによって、テーブルのデータサイズを低減することができる。   The reception identifier table 36 does not register an identifier for data that is not received by any application program. Thereby, the data size of the table can be reduced.

なお、CANドライバ25がテーブルを参照して受信先を特定する構成に代えて、通信ミドルウエアA、Bがそれぞれ個別にテーブルを管理し、入力されたデータに付随する識別子を判別してアプリA、Bにデータを受信させるかどうかを判断してもよい。   Instead of the configuration in which the CAN driver 25 refers to the table to identify the receiving destination, the communication middleware A and B individually manage the table, and determine the identifier associated with the input data to determine the application A , B may determine whether to receive data.

送信PDUフラグA、Bは、例えば、何も処理を行っていないことを表す“Empty”、送信中であることを表す“Sending”、送信待ちであることを表す“Waiting”の三値をとり得る。CANドライバ25は、送信PDUフラグA、Bの内容を参照し、各アプリによるデータ送信段階を判別する。以下、処理フローを示しながらCANドライバ25の処理について説明する。   The transmission PDU flags A and B take three values, for example, “Empty” indicating that no processing is performed, “Sending” indicating that transmission is in progress, and “Waiting” indicating that transmission is awaiting. obtain. The CAN driver 25 refers to the contents of the transmission PDU flags A and B, and determines the data transmission stage by each application. Hereinafter, processing of the CAN driver 25 will be described with reference to a processing flow.

[処理フロー]
CANドライバ25は、〔1〕アプリケーションプログラムから送信指示がなされたとき、〔2〕CANコントローラ40から送信確認割り込みを受けたとき、〔3〕CANコントローラ40から受信通知割り込みを受けたときに、以下に説明する処理を行う。送信確認割り込みとは、CANコントローラ40が送信動作を完了したときにCANコントローラ40からCANドライバ25に出力される通知である。
[Processing flow]
The CAN driver 25: [1] When a transmission instruction is issued from the application program, [2] When a transmission confirmation interrupt is received from the CAN controller 40, [3] When a reception notification interrupt is received from the CAN controller 40, The process described in is performed. The transmission confirmation interrupt is a notification output from the CAN controller 40 to the CAN driver 25 when the CAN controller 40 completes the transmission operation.

〔1〕アプリケーションプログラムから送信指示がなされたとき
この場合、CANドライバ25は、送信処理を行う。図4は、CANドライバ25により実行される送信処理の流れを示すフローチャートである。ここでは、アプリAから送信指示がなされたものとするが、アプリBから送信指示がなされた場合は、フローの説明中のアプリAとアプリBをそっくり入れ替えればよい。
[1] When a transmission instruction is issued from the application program In this case, the CAN driver 25 performs transmission processing. FIG. 4 is a flowchart showing a flow of transmission processing executed by the CAN driver 25. Here, it is assumed that a transmission instruction is issued from the application A. However, when a transmission instruction is issued from the application B, the application A and the application B in the description of the flow may be interchanged.

まず、CANドライバ25は、送信PDUフラグAが“Empty”であるか否かを判定する(S100)。   First, the CAN driver 25 determines whether or not the transmission PDU flag A is “Empty” (S100).

CANドライバ25は、送信PDUフラグAが“Empty”である場合は、アプリAから通信ミドルウエアA、アプリA用インターフェース25Aを介して入力された送信PDUデータを、送信PDUバッファAにコピーする(S102)。   When the transmission PDU flag A is “Empty”, the CAN driver 25 copies the transmission PDU data input from the application A via the communication middleware A and the application A interface 25A to the transmission PDU buffer A ( S102).

次に、CANドライバ25は、送信PDUフラグBが“Sending”であるか否かを判定する(S104)。送信PDUフラグBが“Sending”でない場合は、アプリBの指示によるデータ送信中ではないため、送信PDUフラグAを“Sending”に変更し(S106)、CANコントローラ40に対して送信PDUバッファAに格納されている「ID、長さ、データ」を設定し、送信のトリガーをかける(S108)。   Next, the CAN driver 25 determines whether or not the transmission PDU flag B is “Sending” (S104). If the transmission PDU flag B is not “Sending”, the data transmission according to the instruction from the application B is not in progress, so the transmission PDU flag A is changed to “Sending” (S106), and the transmission PDU buffer A is sent to the CAN controller 40. The stored “ID, length, data” is set, and the transmission is triggered (S108).

送信のトリガーは、前述のように、CANコントローラ40内のレジスタに値を書き込むこと等によって行われる。   As described above, the transmission is triggered by writing a value in a register in the CAN controller 40 or the like.

一方、CANドライバ25は、送信PDUフラグBが“Sending”である場合は、アプリBの指示によるデータ送信中であるため、送信PDUフラグAを“Waiting”に変更する(S110)。   On the other hand, when the transmission PDU flag B is “Sending”, the CAN driver 25 changes the transmission PDU flag A to “Waiting” because data transmission is in accordance with an instruction from the application B (S110).

S104でいずれの判定を得た場合も、CANドライバ25は、戻り値「CAN_OK」をアプリAに返す(S112)。   Regardless of which determination is obtained in S104, the CAN driver 25 returns a return value “CAN_OK” to the application A (S112).

CANドライバ25は、S100において送信PDUフラグAが“Empty”でないと判定された場合は、戻り値「CAN_BUSY」をアプリAに返す(S114)。   If it is determined in S100 that the transmission PDU flag A is not “Empty”, the CAN driver 25 returns a return value “CAN_BUSY” to the application A (S114).

戻り値「CAN_BUSY」がアプリAに返されるのは、アプリA自身が、直前に指示した送信処理が未だ完了していない場面であり、アプリAの設計上、想定内の場面である。一方、他のアプリ(アプリB)のための送信処理途中にアプリAから送信指示がなされた場合には、送信PDUフラグAが“Waiting”に変更され、後に図5のフローで待ち状態が解除されて送信が行われる。この結果、アプリAから見ると、単に処理がある程度遅延したのに過ぎず、戻り値「CAN_BUSY」が返されることもないため、アプリAの設計上、想定外の事象は生じない。これによって、後述する機能統合前のソフトウエアに大きな変更をすることなく、機能統合を行うことができる。   The return value “CAN_BUSY” is returned to the application A when the application A itself has not yet completed the transmission process instructed immediately before. On the other hand, when a transmission instruction is issued from application A during transmission processing for another application (application B), transmission PDU flag A is changed to “Waiting”, and the waiting state is released later in the flow of FIG. And transmission is performed. As a result, when viewed from the application A, the process is merely delayed to some extent, and the return value “CAN_BUSY” is not returned. Therefore, an unexpected event does not occur in the design of the application A. As a result, function integration can be performed without major changes in software before function integration described later.

〔2〕CANコントローラ40から送信確認割り込みを受けたとき
この場合、CANドライバ25は、送信確認処理を行う。図5は、CANドライバ25により実行される送信確認処理の流れを示すフローチャートである。
[2] When a transmission confirmation interrupt is received from the CAN controller 40 In this case, the CAN driver 25 performs a transmission confirmation process. FIG. 5 is a flowchart showing a flow of transmission confirmation processing executed by the CAN driver 25.

まず、CANドライバ25は、送信PDUフラグAが“Sending”であるか否かを判定する(S200)。   First, the CAN driver 25 determines whether or not the transmission PDU flag A is “Sending” (S200).

送信PDUフラグAが“Sending”である場合は、図6に示す疑似受信処理(A)を行う(S210〜S220)。図6は、CANドライバ25により実行される疑似受信処理(A)の流れを示すフローチャートである。疑似受信処理とは、アプリケーションプログラム間の送受信を、CANバス80を介した通信に擬して行う処理であり、これを採用することによって、後述する機能統合が容易となる。   When the transmission PDU flag A is “Sending”, the pseudo reception process (A) shown in FIG. 6 is performed (S210 to S220). FIG. 6 is a flowchart showing the flow of the pseudo reception process (A) executed by the CAN driver 25. The pseudo reception process is a process of performing transmission / reception between application programs by simulating communication via the CAN bus 80. By adopting this, function integration described later is facilitated.

CANドライバ25は、疑似受信処理において、まず送信PDUバッファAから受信識別子を読み出し(S210)、読み出した受信識別子を用いて図3に示す受信識別子テーブル36を検索する(S212)。そして、対応行が存在するか否かを判定する(S214)。   In the pseudo reception process, the CAN driver 25 first reads a reception identifier from the transmission PDU buffer A (S210), and searches the reception identifier table 36 shown in FIG. 3 using the read reception identifier (S212). Then, it is determined whether or not a corresponding row exists (S214).

対応行が存在する場合、受信対象としてアプリBが指定されているか(図3の例では、識別子が0x10又は0x205であるか)否かを判定する(S216)。   If there is a corresponding row, it is determined whether or not application B is designated as a reception target (in the example of FIG. 3, the identifier is 0x10 or 0x205) (S216).

受信対象としてアプリBが指定されている場合、アプリAからアプリBへのデータ送信であるため、疑似受信を行う。すなわち、送信PDUバッファAに格納されたデータを受信PDUバッファ35にコピーし(S218)、アプリB用インターフェース部25Bを介して通信ミドルウエアBに受信通知呼び出しを行うことにより、アプリBに受信PDUバッファ35の内容を読み出させる(S220)。   When the application B is designated as the reception target, the data is transmitted from the application A to the application B, and therefore pseudo reception is performed. That is, the data stored in the transmission PDU buffer A is copied to the reception PDU buffer 35 (S218), and a reception notification call is made to the communication middleware B via the application B interface unit 25B. The contents of the buffer 35 are read (S220).

なお、本実施例ではアプリA、Bしか存在しないため、対応行が存在する=アプリBへのデータ送信であるとみなしてもよく、S216の判定は省略することができる。アプリAからアプリA自身へのデータ送信が行われることは考えにくいからである。   In the present embodiment, since only the applications A and B exist, it may be considered that the corresponding row exists = data transmission to the application B, and the determination in S216 can be omitted. This is because data transmission from the application A to the application A itself is unlikely.

一方、S214において対応行が存在しないと判定された場合、及びS216において受信対象としてアプリBが指定されていないと判定された場合は、疑似受信を行わない。これらを満たす場合とは、アプリAから外部機器へのデータ送信が指示されたことを意味する。   On the other hand, if it is determined in S214 that no corresponding row exists, or if it is determined in S216 that the application B is not designated as a reception target, pseudo reception is not performed. The case where these are satisfied means that the data transmission from the application A to the external device is instructed.

CANドライバ25は、疑似受信処理(A)を終了すると、CANドライバ25は、図7に示す送信確認バッファ処理(A)を行う(S230〜S236)。図7は、CANドライバ25により実行される送信確認バッファ処理(A)の流れを示すフローチャートである。   When the CAN driver 25 ends the pseudo reception process (A), the CAN driver 25 performs a transmission confirmation buffer process (A) shown in FIG. 7 (S230 to S236). FIG. 7 is a flowchart showing the flow of the transmission confirmation buffer process (A) executed by the CAN driver 25.

CANドライバ25は、送信確認バッファ処理において、まず送信PDUフラグBが“Waiting”であるか否かを判定する(S230)。   In the transmission confirmation buffer process, the CAN driver 25 first determines whether or not the transmission PDU flag B is “Waiting” (S230).

送信PDUフラグBが“Waiting”である場合、送信PDUフラグBを“Sending”に変更し(S232)、CANコントローラ40に対して送信PDUバッファBに格納されている「ID、長さ、データ」を設定し、送信のトリガーをかける(S234)。   When the transmission PDU flag B is “Waiting”, the transmission PDU flag B is changed to “Sending” (S232), and “ID, length, data” stored in the transmission PDU buffer B with respect to the CAN controller 40 Is set to trigger transmission (S234).

そして、送信PDUフラグAを“Empty”に変更し(S236)、送信確認バッファ処理を終了する。S230において送信PDUフラグBが“Waiting”でなければ、単にS236の処理を行って送信確認バッファ処理を終了する。   Then, the transmission PDU flag A is changed to “Empty” (S236), and the transmission confirmation buffer process is terminated. If the transmission PDU flag B is not “Waiting” in S230, the process of S236 is simply performed and the transmission confirmation buffer process is terminated.

CANドライバ25は、送信確認バッファ処理(A)を終了すると、アプリA用インターフェース部25Aを介して通信ミドルウエアAに受信通知呼び出しを行う(S240)。図中に呼び出し関数を例示する。   When the CAN driver 25 completes the transmission confirmation buffer process (A), the CAN driver 25 calls the communication middleware A via the application A interface unit 25A (S240). The call function is illustrated in the figure.

S200において送信PDUフラグAが“Sending”でないと判定された場合、CANドライバ25は、送信PDUフラグBが“Sending”であるか否かを判定する(S250)。なお、本実施例ではアプリケーションプログラムはAとBのみであるため、S250の判定は省略しても構わない。   When it is determined in S200 that the transmission PDU flag A is not “Sending”, the CAN driver 25 determines whether or not the transmission PDU flag B is “Sending” (S250). In the present embodiment, since the application programs are only A and B, the determination in S250 may be omitted.

送信PDUフラグAが“Sending”でない場合は、疑似受信処理(B)を行い(S260)、次に送信確認バッファ処理(B)を行う(S270)。疑似受信処理(B)は、図6に示した疑似受信処理(A)においてAとBの関係をそっくり入れ替えたものであるため、説明を省略する。また、送信確認バッファ処理(B)についても、図7に示した送信確認バッファ処理(A)においてAとBの関係をそっくり入れ替えたものであるため、説明を省略する。   If the transmission PDU flag A is not “Sending”, a pseudo reception process (B) is performed (S260), and then a transmission confirmation buffer process (B) is performed (S270). The pseudo reception process (B) is a process in which the relationship between A and B is completely replaced in the pseudo reception process (A) shown in FIG. The transmission confirmation buffer process (B) is also described in the transmission confirmation buffer process (A) shown in FIG.

CANドライバ25は、送信確認バッファ処理(B)を終了すると、アプリB用インターフェース部25Bを介して通信ミドルウエアBに受信通知呼び出しを行う(S280)。   After completing the transmission confirmation buffer process (B), the CAN driver 25 calls the reception notification to the communication middleware B via the application B interface unit 25B (S280).

〔3〕CANコントローラ40から受信通知割り込みを受けたとき
この場合、CANドライバ25は、受信処理を行う。図8は、CANドライバ25により実行される受信処理の流れを示すフローチャートである。
[3] When a reception notification interrupt is received from the CAN controller 40 In this case, the CAN driver 25 performs reception processing. FIG. 8 is a flowchart showing a flow of reception processing executed by the CAN driver 25.

まず、CANドライバ25は、CANコントローラ40の受信データをロックする(S300)。   First, the CAN driver 25 locks the received data of the CAN controller 40 (S300).

次に、CANドライバ25は、CANコントローラ40から受信識別子を読み出し(S302)、読み出した受信識別子を用いて図3に示す受信識別子テーブル36を検索する(S304)。そして、対応行が存在するか否かを判定する(S306)。   Next, the CAN driver 25 reads the reception identifier from the CAN controller 40 (S302), and searches the reception identifier table 36 shown in FIG. 3 using the read reception identifier (S304). Then, it is determined whether or not a corresponding row exists (S306).

対応行が存在する場合、CANコントローラ40の受信データを受信PDUバッファ35にコピーする(S308)。   If there is a corresponding row, the reception data of the CAN controller 40 is copied to the reception PDU buffer 35 (S308).

そして、受信対象としてアプリAが指定されているか(図3の例では、識別子が0x10又は0x120であるか)否かを判定する(S310)。   Then, it is determined whether or not the application A is designated as the reception target (in the example of FIG. 3, the identifier is 0x10 or 0x120) (S310).

受信対象としてアプリAが指定されている場合、アプリA用インターフェース部25Aを介して通信ミドルウエアAに受信通知呼び出しを行うことにより、アプリAに受信PDUバッファ35の内容を読み出させる(S312)。   When the application A is designated as the reception target, the application A is made to read out the contents of the reception PDU buffer 35 by calling the communication middleware A through the application A interface unit 25A (S312). .

続いて、CANドライバ25は、受信対象としてアプリBが指定されているか(図3の例では、識別子が0x10又は0x205であるか)否かを判定する(S314)。   Subsequently, the CAN driver 25 determines whether or not the application B is designated as a reception target (in the example of FIG. 3, the identifier is 0x10 or 0x205) (S314).

受信対象としてアプリBが指定されている場合、アプリB用インターフェース部25Bを介して通信ミドルウエアBに受信通知呼び出しを行うことにより、アプリBに受信PDUバッファ35の内容を読み出させる(S316)。   When the application B is designated as the reception target, the application B is made to read the contents of the reception PDU buffer 35 by calling the communication middleware B via the application B interface unit 25B (S316). .

そして、CANドライバ25は、CANコントローラ40の受信データを解放し(S318)、受信処理を終了する。   Then, the CAN driver 25 releases the reception data of the CAN controller 40 (S318) and ends the reception process.

ここで、図4〜8のフローを実行する前に、CANドライバ25は、CANコントローラ40を送受信可能な状態に遷移させる必要がある。CANドライバ25の共通処理部25Cは、アプリA用インターフェース部25A又はアプリB用インターフェース部25Bが受け付けたアプリA又はBからの指示によって、CANドライバ25及びCANコントローラ40の状態を図9に示すように遷移させる。図9は、アプリケーションプログラムからの指示によるCANドライバ25及びCANコントローラ40の状態遷移を示す図である。アプリA、Bは、CANドライバ25に対して、例えば図中“Score”と表記した状態指示信号を送信する。CANドライバ25は、アプリA、Bから受信した“Score”のうち最も値の大きいものに対応する状態に、CANドライバ25及びCANコントローラ40の状態を遷移させる。   Here, before executing the flows of FIGS. 4 to 8, the CAN driver 25 needs to transition the CAN controller 40 to a state in which transmission and reception are possible. The common processing unit 25C of the CAN driver 25 shows the states of the CAN driver 25 and the CAN controller 40 according to instructions from the application A or B received by the application A interface unit 25A or the application B interface unit 25B as shown in FIG. Transition to. FIG. 9 is a diagram illustrating state transition of the CAN driver 25 and the CAN controller 40 according to an instruction from the application program. The applications A and B transmit, for example, a state instruction signal expressed as “Score” in the drawing to the CAN driver 25. The CAN driver 25 transitions the states of the CAN driver 25 and the CAN controller 40 to a state corresponding to the largest value among “Score” received from the applications A and B.

なお、上記処理フローは、アプリ間の通信であってもCANバス80にデータを出力する(CANバス80からの受信はしない)処理の流れとなっているが、CANドライバ25及びCANコントローラ40の設定によって、係るデータ出力をしない構成としてもよい。例えば、CANドライバ25が受信識別子を判別して内部通信であると判定した場合には、CANコントローラ40に対して所定領域のレジスタ書き込み等を行い、これを受けたCANコントローラ40は、CANバス80へのデータ出力を行わず送信確認割り込みを擬似的に行うように設定してもよい。   The above processing flow is a processing flow for outputting data to the CAN bus 80 (not received from the CAN bus 80) even in communication between applications. However, the CAN driver 25 and the CAN controller 40 Depending on the setting, the data output may not be performed. For example, if the CAN driver 25 determines the reception identifier and determines that the communication is internal communication, the CAN controller 40 writes a register in a predetermined area to the CAN controller 40, and the CAN controller 40 that has received the CAN driver 80 receives the CAN bus 80. It may be set so as to perform a transmission confirmation interrupt in a pseudo manner without outputting data to the.

また、上記処理フローは、Inner Priority Inversionの問題について考慮していないが、係る問題は、アプリA用インターフェース部25A、アプリB用インターフェース部25Bの下位層に位置づけられる機能によって解決できる。具体的には、送信PDUバッファA、Bをそれぞれ多重化し、送信時にはバッファ上にある“Waiting”状態のデータ間で優先順位を判定して最も優先順位の高いデータをCANコントローラ40に設定して送信トリガをかけ、“Sending”状態に移行させる。また、“Sending”状態のデータについても、バッファ上にある“Waiting”状態のデータ中で、“Sending”状態のデータよりも優先順位が高いデータが存在する場合には、“Sending”状態のデータの送信を中止し、優先順位の高いデータをCANコントローラ40に設定して送信トリガをかけ、“Sending”状態に移行させてもよい。   Further, the above processing flow does not consider the problem of Inner Priority Inversion, but such a problem can be solved by a function positioned in a lower layer of the application A interface unit 25A and the application B interface unit 25B. Specifically, the transmission PDU buffers A and B are multiplexed, the priority is determined between the “Waiting” state data on the buffer at the time of transmission, and the highest priority data is set in the CAN controller 40. Apply transmission trigger and shift to "Sending" state. In addition, for data in the “Sending” state, if data in the “Waiting” state on the buffer has a higher priority than data in the “Sending” state, the data in the “Sending” state May be stopped, data with high priority set in the CAN controller 40, a transmission trigger may be applied, and a transition to the “Sending” state may be made.

[機能統合との関係]
本実施例の情報処理装置1は、前述のように、元々別体として存在していた複数の制御装置等(以下、ECUと称する)を一個の装置に統合した統合ECUに、好適に適用される。図10は、統合前の複数のECUの接続関係を例示した図である。図示するように、統合前の構成では、ECU_A、ECU_B、ECU‐CがCANバスに接続され、CANバスによってECU間の通信が可能な構成となっている。係る構成では、各ECUは、それぞれ通信ミドルウエア、CANドライバ、CANコントローラ、CANトランシーバを備えている。
[Relationship with functional integration]
As described above, the information processing apparatus 1 according to the present embodiment is preferably applied to an integrated ECU in which a plurality of control devices (hereinafter referred to as ECUs) that originally existed as separate bodies are integrated into a single device. The FIG. 10 is a diagram illustrating a connection relationship between a plurality of ECUs before integration. As shown in the figure, in the configuration before integration, ECU_A, ECU_B, and ECU-C are connected to the CAN bus, and communication between the ECUs is possible via the CAN bus. In such a configuration, each ECU includes communication middleware, a CAN driver, a CAN controller, and a CAN transceiver.

図11は、本実施例とは異なるアーキテクチャによりECU_AとECU_Bを統合した場合の統合ECUの構成を例示した図である。係る構成では、ECU_A、ECU_Bに搭載されていたアプリA、Bは、それぞれ専用の通信ミドルウエア、CANドライバ、CANコントローラを備えており、CANトランシーバのみが共通化されている。この結果、通信ミドルウエアやCANドライバに関しては統合前後で余り修正を加える必要が無いものの、CANコントローラを二個備えることにより、コスト低減の効果が十分でない。   FIG. 11 is a diagram illustrating a configuration of an integrated ECU when ECU_A and ECU_B are integrated using an architecture different from that of the present embodiment. In such a configuration, the applications A and B installed in the ECU_A and ECU_B are each provided with dedicated communication middleware, a CAN driver, and a CAN controller, and only the CAN transceiver is shared. As a result, the communication middleware and the CAN driver do not need to be modified much before and after the integration, but the cost reduction effect is not sufficient by providing two CAN controllers.

更に、図11の構成では、アプリAからアプリBにデータ送信する場合、内部バス80*を備える必要がある。CANトランシーバは共通化されているため、アプリAのための送信動作と、アプリBのための受信動作を同時に行うことができないからである。このように、内部バスを備える必要性等が、ECUの統合においてコスト低減の面からネックとなる場合があった。図11における太線矢印は、アプリ間の通信の流れを示し、太線破線の矢印は、統合ECUと他のECUとの間の通信の流れを示している。   Furthermore, in the configuration of FIG. 11, when data is transmitted from the app A to the app B, it is necessary to provide the internal bus 80 *. This is because the CAN transceiver is shared, and therefore the transmission operation for application A and the reception operation for application B cannot be performed simultaneously. As described above, the necessity of providing an internal bus or the like may become a bottleneck in terms of cost reduction in ECU integration. A thick line arrow in FIG. 11 indicates a flow of communication between applications, and a thick line broken line arrow indicates a flow of communication between the integrated ECU and another ECU.

図12は、本実施例の情報処理装置1によるアプリ間の通信の流れ等を示している。図12における太線矢印は、アプリ間の通信の流れを示し、太線破線の矢印は、統合ECUと他のECUとの間の通信の流れを示している。   FIG. 12 shows a flow of communication between applications by the information processing apparatus 1 according to the present embodiment. The thick line arrows in FIG. 12 indicate the flow of communication between applications, and the thick broken line arrows indicate the flow of communication between the integrated ECU and other ECUs.

また、図13は、本実施例の情報処理装置1を、統合ECUとして実現するための開発処理の流れを示すフローチャートである。   FIG. 13 is a flowchart showing the flow of development processing for realizing the information processing apparatus 1 of this embodiment as an integrated ECU.

まず、ECU_Aが実行していたアプリケーションプログラム及び通信ミドルウエアを抽出し(S400)、次いでECU_Bが実行していたアプリケーションプログラム及び通信ミドルウエアを抽出する(S402)。   First, the application program and communication middleware executed by ECU_A are extracted (S400), and then the application program and communication middleware executed by ECU_B are extracted (S402).

次に、マイコン初期設定をコーディングする(S404)。係る処理は、CANドライバ25におけるアプリケーションプログラム及び通信ミドルウエアの設定部分を含む。   Next, the microcomputer initial setting is coded (S404). Such processing includes an application program and communication middleware setting part in the CAN driver 25.

次に、CANドライバ25と、抽出したソフトウエアと、初期設定部分を対象マイコンに実装する(S406)。   Next, the CAN driver 25, the extracted software, and the initial setting part are mounted on the target microcomputer (S406).

そして、動作確認を行い(S408)、開発処理を終了する。   Then, the operation is confirmed (S408), and the development process is terminated.

[まとめ]
本実施例の情報処理装置1では、上位層のアプリA、B及び通信ミドルウエアA、Bに関しては統合前のものに余り修正を加える必要が無く、CANドライバ25にのみ特徴的な修正を加えることでアプリケーションプログラム間の通信を実現することができる。また、内部バスを用いる必要が無く、メモリ上に設定されたバッファやフラグを用いてアプリケーションプログラム間の通信を行うため、アプリケーションプログラム間の通信を低コストで実現することができる。
[Summary]
In the information processing apparatus 1 according to the present embodiment, the upper layer applications A and B and the communication middleware A and B do not need to be modified so much as those before the integration, and a characteristic modification is applied only to the CAN driver 25. Thus, communication between application programs can be realized. Further, since it is not necessary to use an internal bus and communication between application programs is performed using buffers and flags set on a memory, communication between application programs can be realized at low cost.

更に、本実施例の情報処理装置1では、受信識別子テーブル36を用いてCANドライバ25が受信アプリの判別を行うため、上位層の通信ミドルウエアが受信可否の判別をする必要が無く、上位層のソフトウエア負荷を軽減することができる。   Furthermore, in the information processing apparatus 1 according to the present embodiment, the CAN driver 25 determines the reception application using the reception identifier table 36, so that it is not necessary for the upper layer communication middleware to determine whether or not reception is possible. The software load can be reduced.

以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。   The best mode for carrying out the present invention has been described above with reference to the embodiments. However, the present invention is not limited to these embodiments, and various modifications can be made without departing from the scope of the present invention. And substitutions can be added.

1 情報処理装置
10 CPU
20 プログラムメモリ
21 アプリケーションプログラムA
22 アプリケーションプログラムB
23 通信ミドルウエアA
24 通信ミドルウエアB
25 CANドライバ
25A アプリA用インターフェース部
25B アプリB用インターフェース部
25C 共通処理部
30 主記憶装置
31 送信PDUバッファA
32 送信PDUバッファB
33 送信PDUフラグA
34 送信PDUフラグB
35 受信PDUバッファ
36 受信識別子テーブル
40 CANコントローラ
50 CANトランシーバ
60 周辺I/O
70 周辺機器
1 Information processing device 10 CPU
20 Program memory 21 Application program A
22 Application program B
23 Communication middleware A
24 Communication middleware B
25 CAN driver 25A interface unit for application A 25B interface unit for application B 25C common processing unit 30 main storage device 31 transmission PDU buffer A
32 Transmission PDU buffer B
33 Transmission PDU flag A
34 Transmission PDU flag B
35 Reception PDU buffer 36 Reception identifier table 40 CAN controller 50 CAN transceiver 60 Peripheral I / O
70 Peripherals

Claims (3)

外部機器との通信を行うためのバスに接続され、複数のアプリケーションプログラムを実行する情報処理装置であって、
前記複数のアプリケーションプログラムからの命令を実行する命令実行手段と、
前記外部機器との通信において採用される通信プロトコルに基づく制御を行うコントローラと、
前記コントローラを制御するドライバと、を備え、
前記ドライバは、前記複数のアプリケーションプログラムに対応した複数のインターフェース部と、前記複数のアプリケーションプログラムからの指示を実行する共通処理部と、を有し、
前記複数のアプリケーションプログラム間の通信は、前記ドライバの制御下で行われることを特徴とする、
情報処理装置。
An information processing apparatus connected to a bus for communicating with an external device and executing a plurality of application programs,
Instruction execution means for executing instructions from the plurality of application programs;
A controller that performs control based on a communication protocol employed in communication with the external device;
A driver for controlling the controller,
The driver includes a plurality of interface units corresponding to the plurality of application programs, and a common processing unit that executes instructions from the plurality of application programs,
Communication between the plurality of application programs is performed under the control of the driver,
Information processing device.
請求項1に記載の情報処理装置であって、
前記外部機器との通信に用いられる送信バッファ及び受信バッファを備え、
前記複数のアプリケーションプログラム間の通信は、前記複数のアプリケーションプログラムのうち送信側のアプリケーションプログラムの指示により前記送信バッファに書き込まれたデータを、前記ドライバが前記受信バッファにコピーし、前記ドライバが前記複数のアプリケーションプログラムのうち受信側のアプリケーションプログラムに受信通知を行うことによって実行される、
情報処理装置。
The information processing apparatus according to claim 1,
A transmission buffer and a reception buffer used for communication with the external device;
In the communication between the plurality of application programs, the driver copies the data written in the transmission buffer according to the instruction of the transmission side application program among the plurality of application programs, and the driver copies the plurality of application programs to the reception buffer. It is executed by sending a reception notification to the receiving side application program among
Information processing device.
請求項2に記載の情報処理装置であって、
受信識別子と受信対象の関係を規定したテーブルを備え、
前記ドライバは、前記送信バッファに書き込まれたデータに含まれる受信識別子を用いて前記テーブルを検索することにより、前記受信側のアプリケーションプログラムを特定する、
情報処理装置。
An information processing apparatus according to claim 2,
It has a table that defines the relationship between reception identifiers and reception targets,
The driver specifies the application program on the receiving side by searching the table using a reception identifier included in the data written in the transmission buffer.
Information processing device.
JP2011200779A 2011-09-14 2011-09-14 Information processing device Withdrawn JP2013062734A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011200779A JP2013062734A (en) 2011-09-14 2011-09-14 Information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011200779A JP2013062734A (en) 2011-09-14 2011-09-14 Information processing device

Publications (1)

Publication Number Publication Date
JP2013062734A true JP2013062734A (en) 2013-04-04

Family

ID=48187026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011200779A Withdrawn JP2013062734A (en) 2011-09-14 2011-09-14 Information processing device

Country Status (1)

Country Link
JP (1) JP2013062734A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014185045A1 (en) * 2013-05-14 2014-11-20 株式会社デンソー Display control device, display control method, and program
WO2020183954A1 (en) * 2019-03-13 2020-09-17 日本電気株式会社 Vehicle control system, vehicle control method, and non-transitory computer-readable medium in which vehicle control program is stored

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014185045A1 (en) * 2013-05-14 2014-11-20 株式会社デンソー Display control device, display control method, and program
JP2014221620A (en) * 2013-05-14 2014-11-27 株式会社デンソー Display controller and program
US9868397B2 (en) 2013-05-14 2018-01-16 Denso Corporation Display control device, and display control method
WO2020183954A1 (en) * 2019-03-13 2020-09-17 日本電気株式会社 Vehicle control system, vehicle control method, and non-transitory computer-readable medium in which vehicle control program is stored

Similar Documents

Publication Publication Date Title
US7908409B2 (en) Methods and apparatus for providing data transfer control
JP4728020B2 (en) Vehicle control software and vehicle control apparatus
JP2012128788A (en) Vehicle control device and data communication method
JP5745868B2 (en) Multiprocessor system
JP2011022934A (en) Electronic control unit and method for detecting failure
CN117321580A (en) Seamlessly integrated micro-controller chip
JP4419943B2 (en) Data transfer device between CPUs
JP2013062734A (en) Information processing device
US8910179B2 (en) Systems and methods for providing semaphore-based protection of system resources
US20130117533A1 (en) Coprocessor having task sequence control
JP6519515B2 (en) Microcomputer
GB2412767A (en) Processor with at least two buses between a read/write port and an associated memory with at least two portions
US7254667B2 (en) Data transfer between an external data source and a memory associated with a data processor
JP2004252574A (en) Inter-task communication method, program, recording medium and electronic equipment
JP2010113419A (en) Multicore controller
JP2004013626A (en) Logic development system for microcomputer
US20030084226A1 (en) Data transmission device
JP2012114724A (en) Electronic control device
EP4231161A1 (en) A processing system, related integrated circuit, device and method
US11956188B1 (en) Security aware routing in an in-vehicle communication network
JP6865707B2 (en) Vehicle control device
JP2012247907A (en) Information processing apparatus
JP6416488B2 (en) Semiconductor device
JP2006142898A (en) On-vehicle electronic control system
JP2011221569A (en) Access management device, information processor, and access management method

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141202