JP2024070053A - Electronic control apparatus and core-to-core communication method - Google Patents

Electronic control apparatus and core-to-core communication method Download PDF

Info

Publication number
JP2024070053A
JP2024070053A JP2022180412A JP2022180412A JP2024070053A JP 2024070053 A JP2024070053 A JP 2024070053A JP 2022180412 A JP2022180412 A JP 2022180412A JP 2022180412 A JP2022180412 A JP 2022180412A JP 2024070053 A JP2024070053 A JP 2024070053A
Authority
JP
Japan
Prior art keywords
message
electronic control
data
control device
processor core
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.)
Pending
Application number
JP2022180412A
Other languages
Japanese (ja)
Inventor
新之介 永沼
Shinnosuke Naganuma
隆博 飯田
Takahiro Iida
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
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 Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2022180412A priority Critical patent/JP2024070053A/en
Publication of JP2024070053A publication Critical patent/JP2024070053A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

To transfer a large amount of data at a high speed while guaranteeing reliability of data transfer.SOLUTION: An electronic control apparatus includes a first processor core, a second processor core, and a shared memory accessible from the first processor core and the second processor core. The first processor core includes a first SOME/IP conversion unit which converts data received in CAN communication to SOME/IP message, and stores the SOME/IP message converted by the first SOME/IP conversion unit in the shared memory. The second processor core includes a second SOME/IP conversion unit which converts SOME/IP message to a format available in an application, acquires the SOME/IP message stored in the shared memory and converts the SOME/IP message acquired by the second SOME/IP conversion unit to a format available in the application, to be provided to the application.SELECTED DRAWING: Figure 3

Description

本発明は、自動車用通信規格のSOME/IPを用いたデータ転送方法に関する。 The present invention relates to a data transfer method using the SOME/IP automotive communication standard.

近年はSOA(Service-oriented architecture)の概念が車載ネットワークにも取り入れられ、SOME/IPと呼ばれるプロトコルが使用されるようになった。このSOME/IPはEthernet(Ethernetは登録商標、以下同じ)に基づいて作成されたプロトコルであるため、通常はEthernetを経由してデータを転送する。SOME/IPを転送する際、Ethernet、IP、TCPと経由する各プロトコルでデータの誤りが検出され、データ転送の信頼性を保証している。 In recent years, the concept of SOA (Service-oriented architecture) has been adopted in in-vehicle networks, and a protocol called SOME/IP has come into use. Since SOME/IP is a protocol created based on Ethernet (Ethernet is a registered trademark, the same applies below), data is usually transferred via Ethernet. When transferring SOME/IP, data errors are detected in each of the protocols it passes through, Ethernet, IP, and TCP, ensuring the reliability of data transfer.

SOME/IPメッセージをマルチコア上で動作する異なるOS間において転送する場合、Ethernetを使用して送ると、大容量データでは処理時間が長くなる。SOME/IPメッセージを共有メモリを介してコア間で転送する方法は確立していない。また、Ethernetを経由することで保証されていたデータ転送の信頼性の補償が困難である。 When transferring SOME/IP messages between different OSs running on multiple cores, sending them over Ethernet results in long processing times for large volumes of data. There is no established method for transferring SOME/IP messages between cores via shared memory. In addition, it is difficult to guarantee the reliability of data transfer that was guaranteed by going via Ethernet.

EthernetではCRCと呼ばれるデータ誤り検出が採用されており、CRCによってデータ転送の信頼性を保証している。CRCはCANでも採用されており、フレームフォーマットにCRC用の領域が用意されている。そのため、これらのプロトコルはプロトコル自体にCRCが実装されている。一方、SOME/IPメッセージフォーマットはCRC等の誤り検出を行うための値が実装されておらず、SOME/IPメッセージ単体ではデータの信頼性の保証が困難である。 Ethernet uses a data error detection method called CRC, which ensures the reliability of data transfer. CRC is also used in CAN, and an area for CRC is provided in the frame format. For this reason, these protocols implement CRC in the protocol itself. On the other hand, the SOME/IP message format does not implement values for error detection such as CRC, making it difficult to ensure the reliability of data with SOME/IP messages alone.

本技術分野の背景技術として、以下の先行技術がある。特許文献1(国際公開2020/217202号)には、乗物のオンボードの通信ネットワークにおいて、SOME/IP通信プロトコルを用いて、サービスインスタンスの要求側エンティティ及び提供側エンティティの間でメッセージを伝送する。サービスインスタンスに関連付けられた通信を考慮して、要求側及び提供側の相互認証を行う。本ステップは、サービスインスタンスへのアクセスを認可する、要求側及び提供側の予め割り当てられた証明書の存在及び相互の有効性を検証することと、提供側によってサービスが提供されるセキュリティレベルが、要求側及び提供側においてサービスに予め割り当てられた最低のセキュリティレベル未満ではないことを検証することとを含む。証明書及びセキュリティレベルの検証に成功した場合、サービスインスタンスに関連付けられた少なくとも1つの通信メッセージを提供側から要求側に、及びその逆に伝送する。SOME/IP通信プロトコルを用いるメッセージ又はデータの伝送方法が記載されている。 The following prior art is included as background art in this technical field. In Patent Document 1 (WO 2020/217202), a message is transmitted between a requesting entity and a providing entity of a service instance using the SOME/IP communication protocol in an on-board communication network of a vehicle. Mutual authentication of the requesting entity and the providing entity is performed taking into account the communication associated with the service instance. This step includes verifying the existence and mutual validity of pre-assigned certificates of the requesting entity and the providing entity that authorize access to the service instance, and verifying that the security level at which the service is provided by the providing entity is not lower than the minimum security level pre-assigned to the service at the requesting entity and the providing entity. If the verification of the certificate and the security level is successful, at least one communication message associated with the service instance is transmitted from the providing entity to the requesting entity and vice versa. A method for transmitting messages or data using the SOME/IP communication protocol is described.

国際公開2020/217202号International Publication No. 2020/217202

マルチコアのコア間通信では、大容量のデータを高速で転送できる方法が求められており、また、データ転送の信頼性の保証も重要である。前述したように、通常、SOME/IPメッセージはEthernetを経由して転送されるが、共有メモリを使用する方が大容量のデータを高速で転送できる。 Multi-core inter-core communication requires a method for transferring large volumes of data at high speed, and it is also important to guarantee the reliability of data transfer. As mentioned above, SOME/IP messages are usually transferred via Ethernet, but using shared memory allows for the transfer of large volumes of data at high speed.

しかし、共有メモリを使用して、Ethernetを経由しないことにより、Ethernet、IP、TCP等のプロトコルにおけるCRC等のデータ誤り検出が実施されないため、データ転送の信頼性が保証されない。 However, by using shared memory and not going through Ethernet, data error detection such as CRC in protocols such as Ethernet, IP, and TCP is not performed, so the reliability of data transfer cannot be guaranteed.

特許文献1は、SOME/IP通信プロトコルを用いる乗り物上におけるデータまたはメッセージの伝送の改良を開示しており、本発明で解決しようとしている、CANデータのSOME/IPメッセージへの変換や、SOME/IPメッセージを利用し、異なるOSのコア間通信を実現するものではなく、また、SOME/IPプロトコルの信頼性を高めるものでもない。 Patent document 1 discloses an improvement to the transmission of data or messages on a vehicle using the SOME/IP communication protocol, but does not address the problems that the present invention aims to solve, such as converting CAN data into SOME/IP messages or using SOME/IP messages to realize communication between cores of different OSs, nor does it improve the reliability of the SOME/IP protocol.

また、CANで転送された受信データをコア間で転送する場合、受信側コアではアプリケーションでデータを使用可能にするサービス変換が必要となる。このような処理を行うS2S(signal to service)は、処理が遅いという問題がある。SOME/IPプロトコルを用いる場合は、このS2Sを使用する必要がなくなる。 In addition, when receiving data transferred via CAN and transferring it between cores, the receiving core needs to perform service conversion to make the data usable by the application. S2S (signal to service), which performs this type of processing, has the problem of being slow. When using the SOME/IP protocol, there is no need to use S2S.

本発明は、共有メモリを使用したコア間通信で、データ転送の信頼性が保証しつつ、大容量のデータを高速で転送する方法の提供を目的とする。 The present invention aims to provide a method for transferring large volumes of data at high speeds while ensuring the reliability of data transfer in inter-core communication using shared memory.

本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、電子制御装置であって、CAN通信でデータを受信する第1プロセッサコアと、アプリケーションが動作する第2プロセッサコアと、前記第1プロセッサコア及び前記第2プロセッサコアがアクセス可能な共有メモリとを備え、前記第1プロセッサコアは、CAN通信で受信したデータをSOME/IPメッセージに変換する第1SOME/IP変換部を有し、前記第1SOME/IP変換部で変換されたSOME/IPメッセージを前記共有メモリに格納し、前記第2プロセッサコアは、SOME/IPメッセージを前記アプリケーションで利用可能な形式に変換する第2SOME/IP変換部を有し、前記共有メモリに格納されたSOME/IPメッセージを取得し、前記第2SOME/IP変換部で前記取得したSOME/IPメッセージを前記アプリケーションで利用可能な形式に変換して、前記アプリケーションに提供することを特徴とする。 A representative example of the invention disclosed in the present application is as follows. That is, an electronic control device includes a first processor core that receives data via CAN communication, a second processor core on which an application runs, and a shared memory accessible to the first processor core and the second processor core, the first processor core has a first SOME/IP conversion unit that converts data received via CAN communication into a SOME/IP message, and stores the SOME/IP message converted by the first SOME/IP conversion unit in the shared memory, the second processor core has a second SOME/IP conversion unit that converts the SOME/IP message into a format usable by the application, and acquires the SOME/IP message stored in the shared memory, converts the acquired SOME/IP message into a format usable by the application in the second SOME/IP conversion unit, and provides the message to the application.

本発明の一態様によれば、共有メモリを使用したコア間通信で、データ転送の信頼性が保証しつつ、大容量のデータを高速で転送できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。 According to one aspect of the present invention, large volumes of data can be transferred at high speeds while ensuring the reliability of data transfers in inter-core communication using shared memory. Problems, configurations, and effects other than those described above will become clear from the description of the following embodiment.

実施例1のマルチコアマイコンの構成を示す図である。FIG. 1 is a diagram illustrating a configuration of a multi-core microcomputer according to a first embodiment. 実施例1のECUの構成を示す図である。FIG. 2 is a diagram showing a configuration of an ECU according to the first embodiment. 実施例1の各コアで実行される処理を示すブロック図である。FIG. 2 is a block diagram showing a process executed by each core in the first embodiment. 実施例1のCANとCAN FDのフレームフォーマットを示す図である。FIG. 2 is a diagram showing frame formats of CAN and CAN FD in the first embodiment. 実施例1のSOME/IPのメッセージフォーマットを示す図である。FIG. 2 is a diagram showing a message format of SOME/IP in the first embodiment. 実施例1のCANデータを使用して作成されたSOME/IPメッセージを示す図である。FIG. 13 is a diagram showing a SOME/IP message created using the CAN data of the first embodiment. 実施例2のSOME/IPメッセージに付加されるCRC値を示す図である。FIG. 11 is a diagram showing a CRC value added to a SOME/IP message in the second embodiment. 実施例2のCRCの演算処理を示す図である。FIG. 11 is a diagram illustrating a CRC calculation process according to the second embodiment. 実施例2のPayload CRC誤りを検出した場合にアプリに通知する処理のフローチャートである。13 is a flowchart of a process of notifying an application when a payload CRC error is detected according to the second embodiment. 実施例2のPayload CRC誤りを検出した場合に再送を要求する処理のフローチャートである。13 is a flowchart of a process for requesting retransmission when a Payload CRC error is detected in the second embodiment. 実施例3の第2SOME/IP変換部の周辺の構成を示す図である。FIG. 13 is a diagram illustrating the peripheral configuration of a second SOME/IP conversion unit according to the third embodiment. 実施例4の連続データに生じた欠損値の補完方法を示す図である。FIG. 13 is a diagram showing a method for complementing missing values occurring in continuous data in Example 4. 実施例4の連続データに生じた欠損を補完するデータ補完処理のフローチャートである。13 is a flowchart of a data complementation process for complementing a loss occurring in continuous data according to a fourth embodiment. 実施例4の離散データに生じた欠損値の補完方法を示す図である。FIG. 13 is a diagram showing a method for complementing missing values occurring in discrete data in Example 4. 実施例4の離散データに生じた欠損を補完するデータ補完処理のフローチャートである。13 is a flowchart of a data complementation process for complementing a loss occurring in discrete data according to the fourth embodiment. 実施例5の第2SOME/IP変換部の周辺の構成を示す図である。FIG. 13 is a diagram showing the peripheral configuration of a second SOME/IP conversion unit according to a fifth embodiment. 実施例5の第2SOME/IP変換部の周辺の別の構成を示す図である。FIG. 13 is a diagram showing another configuration of the periphery of the second SOME/IP conversion unit of the fifth embodiment.

<実施例1>
図1は、マルチコアマイコン1の構成を示す図である。本実施例のマルチコアマイコン1は、処理を実行する第1コア2、処理を実行する第2コア3、第1コアRAM4、第2コアRAM5、第1コア不揮発性メモリ6、第2不揮発性メモリ7、マルチコアマイコン外部とデータを送受信する通信コントローラ8、及び第1コア2と第2コア3とで参照できるRAMである共有メモリ9を有する。また、各構成要素は、内部バス10を通して接続される。
Example 1
1 is a diagram showing the configuration of a multi-core microcomputer 1. The multi-core microcomputer 1 of this embodiment has a first core 2 that executes processing, a second core 3 that executes processing, a first core RAM 4, a second core RAM 5, a first core non-volatile memory 6, a second non-volatile memory 7, a communication controller 8 that transmits and receives data to and from the outside of the multi-core microcomputer, and a shared memory 9 that is a RAM that can be referenced by the first core 2 and the second core 3. In addition, each component is connected via an internal bus 10.

マルチコアマイコン1は、二つ以上のコアが搭載されているマイクロコンピュータである。コアが一つのマイコンは、シングルコアマイコンと呼ばれる。マイコンのパフォーマンスを高める場合、マイコン内コアの動作周波数を高くして処理のスピードを上げる方法と、単に処理に用いるマイコン内のコアの数を増やす方法とがある。動作周波数を高くする場合は電力消費が大きくなるが、マルチコアマイコンでは低い動作周波数でもパフォーマンスが向上し消費電力を抑制できる。本実施例では2コアのマイコンを使用して説明する。 The multi-core microcomputer 1 is a microcomputer equipped with two or more cores. A microcomputer with one core is called a single-core microcomputer. There are two ways to improve the performance of a microcomputer: increasing the operating frequency of the cores in the microcomputer to increase processing speed, or simply increasing the number of cores in the microcomputer used for processing. Increasing the operating frequency increases power consumption, but with a multi-core microcomputer, performance can be improved and power consumption can be reduced even at a low operating frequency. In this embodiment, a two-core microcomputer will be used for explanation.

第1コア2及び第2コア3は、実際に処理を実行するデバイスであり、様々なデバイスからデータを受け取り、様々な演算を行う。前述したとおり、コアの動作周波数を上げることでパフォーマンスが向上するが、消費電力が増加する。 The first core 2 and the second core 3 are the devices that actually execute the processing, receiving data from various devices and performing various calculations. As mentioned above, increasing the operating frequency of the cores improves performance, but increases power consumption.

第1コアRAM4は、第1コア2が処理を実行する際に使用する作業用のメインメモリである。また、第2コアRAM5は、第2コア3が処理を実行する際に使用する作業用のメインメモリである。揮発性メモリデバイスで構成され、マイコンの電源が切れると使用していたデータが消去される。 The first core RAM 4 is a working main memory used by the first core 2 when executing processes. The second core RAM 5 is a working main memory used by the second core 3 when executing processes. It is made up of a volatile memory device, and the data being used is erased when the microcomputer is turned off.

内部バスとは、マルチコアマイコン1の内部の回路をつなぐ伝送路である。 The internal bus is a transmission path that connects the internal circuits of the multi-core microcontroller 1.

マルチコアマイコン1は、車両に搭載される電子制御装置(ECU)に実装されている。ECUは、エンジン、パワーステアリング装置、制御ブレーキ装置などの車両搭載機器を制御する。 The multi-core microcomputer 1 is implemented in an electronic control unit (ECU) installed in a vehicle. The ECU controls the engine, power steering device, controlled brake device, and other on-board equipment.

図2は、ECU10の構成を示す図である。ECU10は、図1で述べたマルチコアマイコン1の他に、CANとの通信を可能とするCANトランシーバ11やEthernet接続を可能とするLANポート12等を有する(Ethernetは登録商標、以下同じ)。CANトランシーバ11は、後述するCANバス15に接続される。他ECU16からCANバス15を経由してCANトランシーバ11が受け取る信号やLAN12からEthernetを経由してLANポート12が受け取る信号は、マルチコアマイコン1の通信コントローラ8に送られる。通信コントローラ8は、CAN経由の信号を扱うCANコントローラ13とEthernet経由の信号を扱うイーサスイッチ14等を有する。 Figure 2 is a diagram showing the configuration of the ECU 10. In addition to the multi-core microcomputer 1 described in Figure 1, the ECU 10 has a CAN transceiver 11 that enables communication with the CAN and a LAN port 12 that enables Ethernet connection (Ethernet is a registered trademark, the same applies below). The CAN transceiver 11 is connected to a CAN bus 15, which will be described later. Signals received by the CAN transceiver 11 from other ECUs 16 via the CAN bus 15 and signals received by the LAN port 12 from the LAN 12 via Ethernet are sent to the communication controller 8 of the multi-core microcomputer 1. The communication controller 8 has a CAN controller 13 that handles signals via the CAN and an Ethernet switch 14 that handles signals via the Ethernet.

CANバス15は、CANプロトコルでデータを転送する伝送路であり、CAN HighとCAN Lowと呼ばれる2本の通信線で構成される。CANではこの2本の通信線に印加される電圧の差で0と1のCAN信号を送信する。このような形式によって、ノイズ耐性を向上できる。CANプロトコルの詳細は後述する。 The CAN bus 15 is a transmission path that transfers data using the CAN protocol, and is composed of two communication lines called CAN High and CAN Low. In CAN, CAN signals of 0 and 1 are transmitted by the difference in voltage applied to these two communication lines. This format can improve noise resistance. Details of the CAN protocol will be described later.

CANコントローラ13は、CANバス15で転送されるデータのうち、必要なデータは割り込みを発生させて受信し、不要なデータは無視するなどの機能を備えたモジュールである。 The CAN controller 13 is a module that has the function of receiving necessary data by generating an interrupt and ignoring unnecessary data among the data transferred via the CAN bus 15.

イーサスイッチ14は、Ethernet Switchの略であり、LANポート12から受け取ったEthernetのデータの転送先を制御するモジュールである。イーサスイッチ14は、Ethernetで転送されるデータに含まれる送信元や宛先などの情報に基づいてデータの転送先を制御する。 The Ethernet switch 14 is an abbreviation for Ethernet Switch, and is a module that controls the transfer destination of Ethernet data received from the LAN port 12. The Ethernet switch 14 controls the transfer destination of data based on information such as the sender and destination contained in the data transferred via Ethernet.

図3は、各コアで実行される処理を示すブロック図である。マルチコアマイコン1は、後述するCANデータを受信する受信部101を有する第1コア2と、第1コア2で受け取ったデータを利用する第2コア3と、二つのコア間2、3の間のデータの移動を可能とするための共有メモリ9を有する。本実施例では、第1コア2に搭載された受信部101が、他ECU16からCANデータを受信し、第1SOME/IP変換部102が、後述するCANの実データを取り出して、SOME/IPのメッセージフォーマットに従ったSOME/IPメッセージを作成し、共有メモリ9を介して、第2コア3に転送する。第2コア3では、第2SOME/IP変換部103が、サービス変換を行い、アプリケーションへのデータ転送を可能とする。 Figure 3 is a block diagram showing the processing executed by each core. The multi-core microcomputer 1 has a first core 2 having a receiver 101 for receiving CAN data (described later), a second core 3 for using the data received by the first core 2, and a shared memory 9 for enabling data transfer between the two cores 2, 3. In this embodiment, the receiver 101 mounted on the first core 2 receives CAN data from another ECU 16, and a first SOME/IP converter 102 extracts actual CAN data (described later), creates a SOME/IP message according to the SOME/IP message format, and transfers it to the second core 3 via the shared memory 9. In the second core 3, a second SOME/IP converter 103 performs service conversion to enable data transfer to an application.

共有メモリ9は、複数のコアのいずれからも参照できるようなRAM領域である。共有メモリ9を使用することで、外部の通信経路を経由せずに、データを異なるコアに転送できる。 The shared memory 9 is a RAM area that can be referenced by any of the multiple cores. By using the shared memory 9, data can be transferred to different cores without going through an external communication path.

CANは、Controller Area Networkの略であり、車載ネットワークプロトコルのうち、現在最も普及しているプロトコルである。 CAN stands for Controller Area Network, and is currently the most widely used in-vehicle network protocol.

CANを経由して転送されるデータは、フレーム単位で定義されており、CANデータの1フレームにはCANを経由して転送されるフレームを識別するためのID等の様々な情報が含まれる。フレームに含まれるデータのうち、実際にアプリケーションなどで制御に使用されるデータは、データフィールドと呼ばれる領域に格納されており、0-8byteの範囲で転送される。CANのフレームフォーマットは後述する。この他にもCANを拡張したCAN FDと呼ばれるプロトコルもある。CAN FDは自動車の機能の増化に伴って開発された通信プロトコルで、CANより高速に多くのデータを転送できる。CAN FDプロトコルによって転送されるフレームのデータフィールドは、0-64byteの範囲でデータが格納される。CAN FDのフレームフォーマットは後述する。 Data transferred via CAN is defined in frame units, and one frame of CAN data contains various information such as an ID for identifying the frame transferred via CAN. Of the data contained in the frame, the data actually used for control by applications, etc. is stored in an area called the data field, and is transferred in the range of 0-8 bytes. The CAN frame format will be described later. There is also a protocol called CAN FD, which is an extension of CAN. CAN FD is a communications protocol developed in response to the increase in automotive functionality, and can transfer larger amounts of data at higher speeds than CAN. The data field of a frame transferred using the CAN FD protocol stores data in the range of 0-64 bytes. The CAN FD frame format will be described later.

プロトコルとは、コンピュータ上でデータのやり取りをするために取り決められた、通信の形式や手順であり、取り決められたプロトコルに従うことによって、異なるメーカー同士の部品でも通信できる。 A protocol is a communication format or procedure agreed upon for exchanging data on a computer, and by following the agreed upon protocol, parts from different manufacturers can communicate with each other.

SOME/IPは、後述するSOAという概念を車載ネットワークで実現するためにEthernetをベースとして作成されたプロトコルであり、後述するOSI参照モデルでは上位層に分類される。SOME/IPでは、車載プリケーションの機能や処理がサービス単位で定義され、これらのサービスを利用するときは、車載ネットワーク上からサービスを検索する。サービスを検索するECUをクライアント、サービス提供するECUをサーバーとすると、検索されたサービスを提供するサーバーは、サービスが提供可能であることをクライアントへ通知する。クライアントは、通知によってサービスを確認したら、データの送信をサーバーへ要求する。サーバーは、問題なければ、要求を承認し、周期的又は値が変更されるタイミングで、クライアントへデータを送信する。 SOME/IP is a protocol created based on Ethernet to realize the concept of SOA (described later) on an in-vehicle network, and is classified as a higher layer in the OSI reference model (described later). In SOME/IP, the functions and processing of in-vehicle applications are defined on a service-by-service basis, and when using these services, the services are searched for on the in-vehicle network. If the ECU searching for a service is considered the client and the ECU providing the service is considered the server, the server that provides the searched service notifies the client that the service is available. After the client confirms the service through the notification, it requests the server to send data. If there are no problems, the server approves the request and sends the data to the client periodically or when the value is changed.

SOAは、Service Oriented Architectureの略であり、コンピュータシステムを構築する際の一つの考え方である。SOAでは、アプリケーションの機能をサービス単位で部品化し、アプリケーションの外部からサービスを利用できる状態にする。部品化されたサービスを組み合わせて、システムを構築し、実装できる。 SOA stands for Service Oriented Architecture, and is a concept used when building computer systems. In SOA, application functions are modularized into service units, allowing services to be used from outside the application. Systems can be built and implemented by combining modularized services.

OSI参照モデルは、異なるネットワークアーキテクチャを統一するための概念である。OSI参照モデルでは7階層に分類されている。
7層:アプリケーション層
6層:プレゼンテーション層
5層:セッション層
4層:トランスポート層
3層:ネットワーク層
2層:データリンク層
1層:物理層
The OSI reference model is a concept for unifying different network architectures. The OSI reference model is classified into seven layers.
Layer 7: Application layer Layer 6: Presentation layer Layer 5: Session layer Layer 4: Transport layer Layer 3: Network layer Layer 2: Data link layer Layer 1: Physical layer

上位層ほどソフトウェアによる設定が必要となり、下層ほどハードウェアに関する設定が必要となる。例えば、Ethernetでは、物理層はLANケーブル等を差し込む接続口であり。データリンク層はEthernetのフレームを受け取る層である。ネットワーク層とトランスポート層はEthernetに乗せられるTCPやIPである。このように細かく分類されているが、SOME/IPはセッション層からアプリケーション層を包含するプロトコルである。このように複数の層をまたぐプロトコルも存在し、例えばCANも物理層とデータリンク層をまたぐプロトコルである。 The higher the layer, the more software configuration is required, and the lower the layer, the more hardware configuration is required. For example, in Ethernet, the physical layer is the connection port where a LAN cable is inserted. The data link layer is the layer that receives Ethernet frames. The network layer and transport layer are TCP and IP that are carried on Ethernet. Although they are classified in this way, SOME/IP is a protocol that encompasses everything from the session layer to the application layer. In this way, there are also protocols that span multiple layers; for example, CAN is a protocol that spans the physical layer and data link layer.

図4は、CANとCAN FDのフレームフォーマットを示す図である。他のECUから受け取るCANのデータは、CANプロトコル(CAN FDを含む)のフォーマットで転送されるデータであり、このデータの中には、ID、コントロールフィールド、データフィールド201,202、CRC等のCANプロトコル特有の情報が含まれる。 Figure 4 shows the frame formats of CAN and CAN FD. CAN data received from other ECUs is data transferred in the format of the CAN protocol (including CAN FD), and this data includes information specific to the CAN protocol, such as the ID, control field, data fields 201 and 202, and CRC.

SOME/IPのメッセージフォーマットに変換して使用されるCANの実データは、CANデータのうちデータフィールドに格納されたデータ201a、211a、211b等である。CANとCAN FD共に、複数のデータを転送可能であり、両者はデータの最大値と通信速度が異なる。 The actual CAN data that is converted into the SOME/IP message format and used is data 201a, 211a, 211b, etc. stored in the data field of the CAN data. Both CAN and CAN FD can transfer multiple data, but the maximum data value and communication speed are different between the two.

SOME/IPメッセージフォーマットは、SOME/IPプロトコルで使用できるデータの形式である、SOME/IPメッセージフォーマットに従って作成されたデータの纏まりをSOME/IPメッセージと定義する。以下、SOME/IPメッセージフォーマットを説明する。 The SOME/IP message format is a data format that can be used with the SOME/IP protocol. A SOME/IP message is defined as a collection of data created according to the SOME/IP message format. The SOME/IP message format is explained below.

図5は、SOME/IPのメッセージフォーマットを示す図である。第1SOME/IP変換部113は、CANの実データに基づいて、SOME/IPメッセージを作成する処理を実行する。SOME/IPのメッセージフォーマットは、下記の情報を必要とする。
Service ID
Method ID
Length
Client ID
Session ID
Protocol Version
Interface Version
Message Type
Return Code
Payload
5 is a diagram showing the SOME/IP message format. The first SOME/IP converter 113 executes a process of creating a SOME/IP message based on actual data of the CAN. The SOME/IP message format requires the following information:
Service ID
Method ID
Length
Client ID
Session ID
Protocol Version
Interface Version
Message Type
Return Code
Payload

それぞれの領域を説明する。 Explain each area.

Service IDは、後述するサービスの種類を示す。Method IDは、Methodの種類を示す。Service IDとMethod IDを纏めてMessage IDと呼ぶこともある。 The Service ID indicates the type of service, which will be described later. The Method ID indicates the type of Method. The Service ID and Method ID are sometimes collectively called the Message ID.

Lengthは、Client IDからPayloadまでのメッセージ長である。 Length is the message length from the Client ID to the Payload.

Client IDは、ECU内の呼び出し元を識別するための識別情報である。Session IDは、同一の送信者から転送されたメッセージを区別するための識別情報である。Client IDとSession IDを纏めてRequest IDと呼ぶこともある。 The Client ID is identification information used to identify the caller within the ECU. The Session ID is identification information used to distinguish messages forwarded from the same sender. The Client ID and Session ID are sometimes collectively referred to as the Request ID.

Protocol Versionは、SOME/IPのプロトコルバージョンを示す。 Protocol Version indicates the protocol version of SOME/IP.

Interface Versionは、後述するサービスインターフェイスのメジャーバージョンを示す。Message Typeは、SOME/IPのメッセージのタイプを示す。 Interface Version indicates the major version of the service interface described below. Message Type indicates the type of SOME/IP message.

Return Codeは、requestが正常に処理されたかを示す戻り値である。Payloadは、データである。 Return Code is the return value that indicates whether the request was processed successfully. Payload is the data.

ここで、サービスとは、各ECUが提供するアプリケーションであり、アプリケーション内に含まれる関数がMethodである。 Here, a service is an application provided by each ECU, and a function contained within the application is a method.

Methodは、SOME/IPを使用する際の一つの考え方であり、サービス内に含まれる関数を指す。具体的には、前述したSOME/IPプロトコルで説明した、サービスを要求するアプリケーションをクライアント、サービスと提供するアプリケーションをサーバーとしている。サービスは、1又は複数の関数の組み合わせで構成され、関数はMethodという単位で管理され、各MethodにはMethod IDが付与される。SOME/IPでは、どのサービスのどのMethod(関数)から取得したデータであるかをヘッダー情報に記載する。 A method is one way of thinking when using SOME/IP, and refers to a function contained within a service. Specifically, as explained in the SOME/IP protocol above, an application that requests a service is the client, and an application that provides the service is the server. A service is made up of a combination of one or more functions, and functions are managed in units called Methods, with each Method being assigned a Method ID. In SOME/IP, the header information indicates which Method (function) of which service the data was obtained from.

サービスインターフェイスは、サービスを持つ機能にアクセスするためのインターフェースである。SOME/IPでサービスを使用する場合、サービスインターフェイスを通してデータを取得する。 A service interface is an interface for accessing the functionality that provides the service. When using a service in SOME/IP, data is obtained through the service interface.

前述したSOME/IPメッセージフォーマットのうちPayload以外の情報301をHeaderと呼び、CANの実データが格納されるPayload部分302を単にPayloadと呼ぶ。 In the SOME/IP message format described above, the information other than the payload 301 is called the Header, and the payload portion 302 in which the actual CAN data is stored is simply called the Payload.

図6に、CANデータを使用して作成されたSOME/IPメッセージを示す。SOME/IP作成の段階ではアプリケーションへ向けたシリアライズは行われないため、実データをそのまま変数として格納できる。第1SOME/IP変換部では、CANデータに含まれるIDに基づいてヘッダーを作成し、図4に示すCANの実データ201a、211a、211bが、SOME/IPメッセージフォーマットのPayload部分へ格納される。本実施例では、CANデータのIDによりSOME/IPのHeaderを作成しており、IDが異なるCANの実データは同一のSOME/IPパケットに纏めることはできない。CANデータのIDにより、SOME/IPメッセージを通して、アプリケーション側で受信するCANデータの種類を判別できる。 Figure 6 shows a SOME/IP message created using CAN data. At the SOME/IP creation stage, serialization to the application is not performed, so the actual data can be stored as is as a variable. The first SOME/IP conversion unit creates a header based on the ID included in the CAN data, and the actual CAN data 201a, 211a, and 211b shown in Figure 4 are stored in the payload portion of the SOME/IP message format. In this embodiment, the SOME/IP header is created using the CAN data ID, and actual CAN data with different IDs cannot be bundled together in the same SOME/IP packet. The CAN data ID allows the type of CAN data received by the application side to be determined through the SOME/IP message.

SOME/IPは、通常、Ethernetを経由して転送されるデータの上位プロトコルとなっている。本実施例では、共有メモリ9を介してSOME/IPメッセージを転送することで、大容量データのコア間通信において、Ethernet通信経由の場合に比べ、高速で通信できる。また、第1コア側でSOME/IPに変換することにより、言語環境が異なるコア間においても、二つのコアでデータを利用可能となり、データ利用における利便性を向上できる。 SOME/IP is normally a higher-level protocol for data transferred via Ethernet. In this embodiment, by transferring SOME/IP messages via shared memory 9, large volumes of data can be communicated between cores at higher speeds than via Ethernet. In addition, by converting to SOME/IP on the first core side, data can be used by two cores even between cores with different language environments, improving the convenience of data usage.

<実施例2>
本実施例において、作成したSOME/IPメッセージと合わせて、CRCを計算し共有メモリ9に格納する。CRCは、巡回冗長検査とも呼び、データの誤り検出符号の一つである。CANのフレームや、Ethernetのフレームでも、CRCは用いられており、CANやEthernetのフレームにはCRC値が含まれている。フレームに含まれる情報に基づいてCRC値を算出し、付加されたCRC値が受信時に検査される。しかし、SOME/IPのメッセージフォーマットにはCRCフィールドが定義されていないので、SOME/IP単体での誤り検出は不可能である。前述したようにSOME/IPは通常Ethernetで送られることを前提として作成されたプロトコルであり、SOME/IPがアプリに届くまでに経由する、Ethernet、IP、TCP等の各プロトコルで誤り検出が実施される。そのため、作成したSOME/IPメッセージを共有メモリ9を介して転送する場合、同様の誤り検出を実施することで、データの信頼性を保証できる。そこで、本実施例では、SOME/IPメッセージにCRC値が含まれないため(CRC値を含めた場合、SOME/IPのメッセージフォーマットと異なるため受信不可となる)、作成したSOME/IPメッセージと別に算出したCRC値を共有メモリ9へ格納することとした。
Example 2
In this embodiment, a CRC is calculated and stored in the shared memory 9 together with the created SOME/IP message. The CRC is also called a cyclic redundancy check, and is one of the data error detection codes. The CRC is also used in CAN frames and Ethernet frames, and the CAN and Ethernet frames contain a CRC value. The CRC value is calculated based on the information contained in the frame, and the added CRC value is checked when the frame is received. However, since the CRC field is not defined in the SOME/IP message format, error detection is not possible in the SOME/IP alone. As described above, the SOME/IP is a protocol created on the assumption that it is usually sent via the Ethernet, and error detection is performed in each protocol, such as Ethernet, IP, and TCP, through which the SOME/IP passes before reaching the application. Therefore, when the created SOME/IP message is transferred via the shared memory 9, the reliability of the data can be guaranteed by performing a similar error detection. Therefore, in this embodiment, since the SOME/IP message does not include a CRC value (if a CRC value were included, it would differ from the SOME/IP message format and would therefore be unreceivable), a CRC value calculated separately from the created SOME/IP message is stored in shared memory 9.

図7は、SOME/IPメッセージに付加されるCRC値を示す図である。本実施例では、Header301に基づいて算出されるHeader CRCと、Payload302に基づいて算出されるPayload CRCの二つのCRCをSOME/IPメッセージに付加する。例えば、作成されたSOME/IPメッセージの後続するアドレスにCRCを格納することによって、CRCとSOME/IPメッセージを関連付けて、CRCをSOME/IPメッセージに付加する。実施例では、二つのCRCのそれぞれに4byteを使用している。これにより、転送されたデータに誤りがあるかを判定でき、HeaderとPayloadのいずれに誤りがあるかを区分けできる。 Figure 7 shows the CRC value added to the SOME/IP message. In this embodiment, two CRCs are added to the SOME/IP message: a Header CRC calculated based on Header 301, and a Payload CRC calculated based on Payload 302. For example, the CRC is stored in a subsequent address of the created SOME/IP message, and the CRC is added to the SOME/IP message by associating the CRC with the SOME/IP message. In this embodiment, 4 bytes are used for each of the two CRCs. This makes it possible to determine whether there is an error in the transferred data, and to distinguish whether the error is in the Header or the Payload.

図8を参照して、本実施例におけるCRCの演算処理を説明する。 The CRC calculation process in this embodiment will be explained with reference to Figure 8.

ステップ401:第1コア2がCANのデータを受信後、CANフレームに含まれるIDに基づいて、SOME/IPのメッセージフォーマット合わせてデータを変換し、ヘッダーなどの情報を作成して、SOME/IPメッセージを作成する。 Step 401: After the first core 2 receives the CAN data, it converts the data to match the SOME/IP message format based on the ID contained in the CAN frame, creates information such as a header, and creates a SOME/IP message.

ステップ402:ステップ401で作成されたSOME/IPメッセージのうち、先頭16byteのHeaderの情報に基づいてCRCを算出する。本実施例ではHeader CRCは4byteの固定長とする。 Step 402: Calculate the CRC based on the first 16 bytes of the Header information of the SOME/IP message created in step 401. In this embodiment, the Header CRC has a fixed length of 4 bytes.

ステップ403:ステップ401で作成されたSOME/IPメッセージのうち、先頭16byteより後のPayloadの情報に基づいてCRCを算出する。本実施例ではPayload CRCはPayloadのデータ長により変化することなく4byteの固定長とする。 Step 403: Calculate the CRC based on the payload information after the first 16 bytes of the SOME/IP message created in step 401. In this embodiment, the payload CRC has a fixed length of 4 bytes and does not change depending on the data length of the payload.

ステップ404:作成されたSOME/IPメッセージを共有メモリに格納し、当該SOME/IPメッセージの後ろに続けて4byteずつHeader CRCとPayload CRCの順番で格納する。 Step 404: The created SOME/IP message is stored in shared memory, and the Header CRC and Payload CRC are stored 4 bytes after the SOME/IP message, in that order.

Header CRCによって、SOME/IP変換部103で読み込む前に不正データを検出できる。また、Payload CRCによって、データがアプリで使用可能な正しいデータかを判別できる。 The Header CRC makes it possible to detect invalid data before it is read by the SOME/IP conversion unit 103. In addition, the Payload CRC makes it possible to determine whether the data is valid and can be used by the application.

Payload CRCによって、データに誤りがあると判定される場合、二つの処理(図9、図10)が可能である。PayloadのCRCで誤りを検出した際の対応について説明する。 If the payload CRC determines that there is an error in the data, two processing options (Figures 9 and 10) are available. We will explain how to handle an error detected by the payload CRC.

図9は、Payload CRC誤りを検出した場合にアプリに通知する処理のフローチャートである。 Figure 9 is a flowchart of the process for notifying the app when a payload CRC error is detected.

ステップ501:まず、第1コア側の処理完了を検出する。本実施例で用いるマイコンには、処理結果が共有メモリ9に格納された後に格納完了を通知する割り込み処理機能があるため、この割り込みによって処理完了を検出する。処理完了検出の実装方法は様々な方法を採用できる。 Step 501: First, detect the completion of processing on the first core side. The microcomputer used in this embodiment has an interrupt processing function that notifies the completion of storage after the processing result is stored in the shared memory 9, so the completion of processing is detected by this interrupt. Various methods can be adopted as a method for implementing the detection of the completion of processing.

ステップ502:ステップ501において第1コア側の処理完了を検出したら、共有メモリ9からSOME/IPデータとCRCデータを取り出す。データは、先頭アドレスから16byteがSOME/IPのHeaderとなっている。Payloadは可変長データであるため、Headerに含まれるLengthに記録されたデータに基づいてPayloadの長さを計算する。また、本実施例において、CRCは、4byteの固定長のHeader CRCと4byteの固定長のPayload CRCがPayloadの直後に格納されているため、Payloadの直後の8byteをCRCとして取り出して、4byteのHeader CRCと4byteのPayload CRCに分離する。 Step 502: When completion of processing on the first core side is detected in step 501, the SOME/IP data and CRC data are extracted from the shared memory 9. The data consists of 16 bytes from the first address that constitute the SOME/IP Header. Since the Payload is variable length data, the length of the Payload is calculated based on the data recorded in the Length included in the Header. Also, in this embodiment, the CRC consists of a 4-byte fixed-length Header CRC and a 4-byte fixed-length Payload CRC that are stored immediately after the Payload, so the 8 bytes immediately after the Payload are extracted as the CRC and separated into a 4-byte Header CRC and a 4-byte Payload CRC.

ステップ503:ステップ502により取り出されたSOME/IPとHeader CRCを用いてCRCチェックを行う。SOME/IPメッセージのHeaderは先頭16byteの固定長であり、この16byteのデータに基づいてCRCを計算する。CRCを計算したら、共有メモリからSOME/IPメッセージと同時に取り出したHeader CRCと値を比較し、両者の値が一致すれば「1」、一致しなければ「0」のように、結果を判定するためのフラグを格納する。 Step 503: A CRC check is performed using the SOME/IP and Header CRC extracted in step 502. The Header of the SOME/IP message has a fixed length of the first 16 bytes, and the CRC is calculated based on these 16 bytes of data. Once the CRC has been calculated, the value is compared with the Header CRC extracted from the shared memory at the same time as the SOME/IP message, and a flag is stored to determine the result, such as "1" if the two values match, or "0" if they do not match.

ステップ504:ステップ503の結果が一致を示す「1」である場合、ステップ506へ遷移する。ステップ503の結果が不一致を示す「0」である場合、ステップ505へ遷移する。 Step 504: If the result of step 503 is "1" indicating a match, transition to step 506. If the result of step 503 is "0" indicating a mismatch, transition to step 505.

ステップ505:ステップ504においてSOME/IPのHeaderに異常があると判定されたので、SOME/IPのデータを正常に読み込めないため、受け取ったSOME/IPメッセージを破棄する。破棄の後、特に処理を行うことなく処理を終了する。 Step 505: Since it was determined in step 504 that there is an abnormality in the SOME/IP header, the SOME/IP data cannot be read correctly, so the received SOME/IP message is discarded. After discarding, the process ends without performing any special processing.

ステップ506:ステップ504においてSOME/IPのHeaderに異常がないと判定されたので、SOME/IPのPayloadのCRCチェックを行う。Header情報に含まれるLengthに記録されたデータに基づいてSOME/IPメッセージのPayload部分を読み込み、読み込んだPayloadに基づいてCRCを計算する。CRCを計算したら、共有メモリからSOME/IPメッセージと同時に取り出したPayload CRCと比較し、両者の値が一致すれば「1」、一致しなければ「0」のように、結果を判定するためのフラグを格納する。 Step 506: Since it was determined in step 504 that there was no abnormality in the SOME/IP header, a CRC check is performed on the SOME/IP payload. The payload portion of the SOME/IP message is read based on the data recorded in the Length included in the Header information, and the CRC is calculated based on the read payload. Once the CRC is calculated, it is compared with the payload CRC retrieved from the shared memory at the same time as the SOME/IP message, and a flag is stored to determine the result, such as "1" if the two values match, or "0" if they do not match.

ステップ507:ステップ506の結果が一致を示す「1」である場合、ステップ509へ遷移する。ステップ506の結果が不一致を示す「0」である場合、ステップ508へ遷移する。 Step 507: If the result of step 506 is "1" indicating a match, transition to step 509. If the result of step 506 is "0" indicating a mismatch, transition to step 508.

ステップ508:ステップ507でPayloadに異常があると判定された場合、SOME/IPのPayload部分に利用不可というステータスを上書きする。Payloadの長さはこの時点で決まっているため、利用不可のステータスとして、エラーが分かる数値をPayloadのデータ長に書き込む。なお、エラーが分かる数値は、Payloadの一部(例えば、先頭から所定長)に書き込んでもよい。 Step 508: If step 507 determines that there is an abnormality in the payload, the status "unavailable" is overwritten in the payload portion of SOME/IP. Since the length of the payload is determined at this point, a numerical value indicating an error is written to the data length of the payload as the status of unavailability. Note that the numerical value indicating an error may be written to a portion of the payload (for example, a predetermined length from the beginning).

ステップ509:ステップ502で取り出したSOME/IPのHeaderと、ステップ507の判定結果によってステップ506で読み込んだPayload又はステップ508でエラーが分かる数値が上書きされたPayloadをアプリケーションへ転送する。アプリケーションへ転送されるデータは、SOME/IPのHeaderとPayloadが組み合わされたSOME/IPメッセージのみで、CRCは転送不要のため破棄する。 Step 509: The SOME/IP Header extracted in step 502 and, depending on the result of the determination in step 507, either the Payload read in step 506 or the Payload overwritten with a value indicating an error in step 508 are transferred to the application. The data transferred to the application is only the SOME/IP message combining the SOME/IP Header and Payload; the CRC is discarded as it does not need to be transferred.

本実施例によってPayloadのデータに異常がある場合、アプリケーションへデータが利用不可となっていることを通知できる。 With this embodiment, if there is an abnormality in the payload data, the application can be notified that the data is unavailable.

また、PayloadのCRCに異常がある場合、再送を要求してもよい。 If there is an error in the CRC of the payload, a retransmission may be requested.

図10は、Payload CRC誤りを検出した場合に再送を要求する処理のフローチャートである。 Figure 10 is a flowchart of the process for requesting retransmission when a payload CRC error is detected.

図10に示す処理において、ステップ501~ステップ507及びステップ509は、図9に示す処理と同じである。 In the process shown in FIG. 10, steps 501 to 507 and step 509 are the same as the process shown in FIG. 9.

ステップ601:ステップ507でPayloadに異常があると判定された場合、第1コア側へ再送を要求する。再送要求の実装方法は様々な方法を採用できる。再送要求の後、アプリケーションへデータを転送することなく処理を終了する。 Step 601: If it is determined in step 507 that there is an abnormality in the payload, a retransmission is requested to the first core. Various methods can be used to implement the retransmission request. After the retransmission request, the process ends without transferring the data to the application.

図10に示す処理では、Payloadに異常がある場合、第1コア側へデータの再送を要求できる。 In the process shown in Figure 10, if there is an abnormality in the payload, a request can be made to the first core to resend the data.

また、HeaderとPayloadの二つのCRCを付加することで、SOME/IPメッセージの信頼性を高め、さらに、異常がある場合にSOME/IPメッセージのどの部分に誤りがあるかを検出できるようになり、フレームの破棄、アプリへの利用不可の通知、再送要求などの、異常の原因に適する処理を実行できる。 Adding two CRCs, one for the header and one for the payload, increases the reliability of the SOME/IP message and, if an abnormality occurs, makes it possible to detect which part of the SOME/IP message is in error, allowing appropriate processing to be performed depending on the cause of the abnormality, such as discarding the frame, notifying the application that it is unavailable, or requesting a resend.

<実施例3>
図11は、実施例3の第2コア3に含まれる第2SOME/IP変換部103の周辺の構成を示す図である。
Example 3
FIG. 11 is a diagram showing a configuration around the second SOME/IP conversion unit 103 included in the second core 3 of the third embodiment.

実施例1及び実施例2において、第2コア3の第2SOME/IP変換部103は、予め実装されているSOME/IPの処理関数によって構成でき、本実施例のために新たに作成される必要はない。第2SOEM/IP変換部103の実装方法はコアの仕様によって変わるが、入力と出力はSOME/IPの規格に従っている。そのため、共有メモリ9からCRC演算部701を通して転送されるSOME/IPメッセージと、通常のEthernet受信部702を経由して転送されるSOME/IPメッセージは、必要とするインターフェースが同一であり、同一の第2SOME/IP変換部103で処理できる。 In the first and second embodiments, the second SOME/IP conversion unit 103 of the second core 3 can be configured using pre-implemented SOME/IP processing functions and does not need to be newly created for this embodiment. The implementation method of the second SOME/IP conversion unit 103 varies depending on the core specifications, but the input and output comply with the SOME/IP standards. Therefore, the SOME/IP message transferred from the shared memory 9 through the CRC calculation unit 701 and the SOME/IP message transferred via the normal Ethernet receiving unit 702 require the same interface and can be processed by the same second SOME/IP conversion unit 103.

Ethernet経由で転送されるSOME/IPメッセージは、EthernetフレームのPayload部分に含まれるSOME/IPメッセージであり、第2SOME/IP変換部103で受信する際にEthernet、IP、TCP等のプロトコルで使用されるヘッダー情報が削除された状態である。また、インターフェースが同一とは、共有メモリ9から受信するSOME/IPメッセージと、Ethernetから受信するSOME/IPメッセージで扱いが同じであり、第2SOME/IP変換部103で使用される引数や出力方法は同一であることを意味する。 A SOME/IP message transferred via Ethernet is a SOME/IP message included in the payload portion of an Ethernet frame, and has header information used in protocols such as Ethernet, IP, and TCP deleted when it is received by the second SOME/IP conversion unit 103. In addition, the same interface means that the SOME/IP message received from the shared memory 9 and the SOME/IP message received from the Ethernet are handled in the same way, and the arguments and output method used by the second SOME/IP conversion unit 103 are the same.

このような構成にすることで、構成の複雑化を抑制できる。構成の複雑化の抑制によって、ソフトウェアの保守性が向上し、不具合発生時に容易にデバックできる。 By configuring in this way, we can prevent the configuration from becoming too complicated. By preventing the configuration from becoming too complicated, we can improve the maintainability of the software and make it easier to debug when a problem occurs.

<実施例4>
本実施例において、第1コア2が受信するCANのデータは必ずしも正常な値を受信できるとは限らない。データ送信元で異常があった場合に欠損値が生じることがある。CANの規格に、欠損値がある場合に再送する処理は設けられていない。そのため欠損値が生じた場合、アプリケーションで正しく処理できない可能性がある。そのため、そのようなケースに対応するため、第1SOME/IP変換部102にデータを補完する機能を持たせる。欠損値は、CANのフレームで転送されるデータに基づいて検出できる。欠損値を検出した場合、アプリケーションで対応できるが、本実施例では、アプリケーションより手前で、欠損値に対する処理を実行する。
Example 4
In this embodiment, the CAN data received by the first core 2 is not necessarily a correct value. Missing values may occur when an abnormality occurs at the data transmission source. The CAN standard does not provide for a process to resend a missing value. Therefore, when a missing value occurs, there is a possibility that the application cannot process it correctly. Therefore, in order to deal with such cases, the first SOME/IP conversion unit 102 is provided with a function to complement data. Missing values can be detected based on data transferred in CAN frames. When a missing value is detected, it can be handled by the application, but in this embodiment, processing for the missing value is performed before the application.

図12は、連続データに生じた欠損値の補完方法を示す図である。 Figure 12 shows how to complement missing values in continuous data.

実際に受信した連続値801a、801b、801c、801dにおいて、値801bと値801cの間の3番目に値の欠損が生じた場合、アプリケーションの仕様に合わせたデータ802(例えば、アプリケーションの動作に影響しないように前後値から計算される値802)で欠損値を補完する。 When a missing value occurs at the third value between values 801b and 801c among the consecutive values 801a, 801b, 801c, and 801d actually received, the missing value is complemented with data 802 that matches the application specifications (for example, value 802 calculated from the previous and next values so as not to affect the operation of the application).

図13は、連続データに生じた欠損を補完するデータ補完処理のフローチャートである。 Figure 13 is a flowchart of the data completion process that complements missing data in continuous data.

ステップ901:CANのデータを受信する。CANのデータを受信するECUのCANのIDを登録しておき、指定のIDを持つCANの信号を到来したら、CANのデータを受信する。 Step 901: Receive CAN data. The CAN ID of the ECU that will receive the CAN data is registered, and when a CAN signal with the specified ID arrives, the CAN data is received.

ステップ902:受信したCANのデータのIDやデータフィールドを確認し、データの種類や、欠損値の有無を判定する。CANのフレームのデータフィールドには、複数のデータが含まれていることがあり、各データの区切りはバイトポジションなどで、静的に定義される。バイトポジションとは、CANのフレーム内のデータフィールドに含まれるデータの始まりの位置を示すものであり、CANで転送されるフレームの内容は静的に定義されている。 Step 902: Check the ID and data field of the received CAN data to determine the type of data and whether or not there are missing values. The data field of a CAN frame may contain multiple pieces of data, and the delimiters for each piece of data are statically defined by byte positions, etc. The byte position indicates the starting position of the data contained in the data field in the CAN frame, and the contents of the frames transferred by CAN are statically defined.

ステップ903:受信したCANのデータが値の欠損を示す場合、ステップ904へ進む。受信したCANのデータが値の欠損がないことを示す場合、ステップ905へ進む。 Step 903: If the received CAN data indicates a missing value, proceed to step 904. If the received CAN data indicates no missing value, proceed to step 905.

ステップ904:データが欠損している場合、受信したCANのデータのIDに基づいて連続値か離散値かを判定し、連続値であればCANのデータフィールドの値を、前後値から計算した値(例えば、前回値と次回値との平均値、近似関数を用いて前回値と次回値から計算される値)で書き換え、ステップ905へ進む Step 904: If data is missing, determine whether the value is continuous or discrete based on the ID of the received CAN data. If it is continuous, rewrite the value in the CAN data field with a value calculated from the previous and next values (e.g., the average value of the previous and next values, or a value calculated from the previous and next values using an approximation function), and proceed to step 905.

ステップ905:ステップ903又はステップ904から受け取ったデータに基づいてSOME/IPメッセージを作成する。受け取ったCANのデータから、IDに基づいてヘッダーを作成し、データフィールドの値をPayloadへ格納する。受け取るデータに応じて処理が変わらない。 Step 905: Create a SOME/IP message based on the data received from step 903 or step 904. Create a header based on the ID from the received CAN data, and store the value of the data field in Payload. The process does not change depending on the data received.

このように実装することで、受信したデータが、物理値のような連続データであるときに、欠損したデータを補完するデータの付与が可能となる。 By implementing it in this way, when the received data is continuous data such as physical values, it becomes possible to add data to complement missing data.

また、転送されるデータが離散値の場合についても考慮が必要である。 It is also necessary to consider the case where the data being transferred is a discrete value.

図14は、離散データに生じた欠損値の補完方法を示す図である。 Figure 14 shows how to complement missing values in discrete data.

実際に受信した離散値1001a、1001b、1001c、1001dにおいて、値1001bと値1001cの間の3番目に値の欠損が生じた場合、アプリケーションの仕様に合わせたデータ1002(例えば、アプリケーションの動作に影響しないように前回値を複製したデータ1002)で欠損値を補完する。 When a missing value occurs at the third position between values 1001b and 1001c among the actually received discrete values 1001a, 1001b, 1001c, the missing value is complemented with data 1002 that matches the application specifications (for example, data 1002 that is a copy of the previous value so as not to affect the operation of the application).

図15は、離散データに生じた欠損を補完するデータ補完処理のフローチャートである。 Figure 15 is a flowchart of the data completion process that complements missing data.

図15に示す処理において、ステップ901~ステップ903及びステップ905は、図13に示す処理と同じである。 In the process shown in FIG. 15, steps 901 to 903 and step 905 are the same as the process shown in FIG. 13.

ステップ1101:データが欠損している場合、受信したCANのデータのIDに基づいて連続値か離散値かを判定し、離散値であればCANのデータフィールドの値を前回値を複製したデータで書き換え、ステップ905へ進む。 Step 1101: If data is missing, determine whether the value is continuous or discrete based on the ID of the received CAN data. If it is discrete, rewrite the value in the CAN data field with data that is a duplicate of the previous value, and proceed to step 905.

前述したいずれの補完方法も、アプリに影響が生じない範囲で実装されるため、必ずしも有効な補完が可能とは限らない。しかし、これにより、アプリケーション側で特別な処理を実行することなく、通常のデータとして処理が可能となる。 All of the above mentioned completion methods are implemented to the extent that they do not affect the app, so they may not always provide effective completion. However, this allows the data to be processed as normal data without the application having to perform any special processing.

<実施例5>
通常、SOME/IPは車載ネットワーク上のサービスを検索し使用するものであり、初めに受信要求が必要であるため、一方的なデータ送信ができない。本実施例では、受信要求と関係なく、受信したCANデータから作成したSOME/IPメッセージを第2コア3側へ送るための受信機構が必要となる。本実施例では後述する二つの方法を提案する。
Example 5
Normally, SOME/IP searches for and uses services on the in-vehicle network, and since a receive request must be made first, one-way data transmission is not possible. In this embodiment, a receiving mechanism is required to send a SOME/IP message created from the received CAN data to the second core 3 side, regardless of the receive request. In this embodiment, two methods are proposed, which will be described later.

図16は、実施例5の第2コア3に含まれる第2SOME/IP変換部103の周辺の構成を示す図である。 Figure 16 is a diagram showing the peripheral configuration of the second SOME/IP conversion unit 103 included in the second core 3 of the fifth embodiment.

初めに、CRC演算部701は、SOME/IPのメッセージとCRCデータを共有メモリ9から読み出す。取り出したデータに基づいて、前述の実施例に記載したHeader CRCとPayload CRCを用いて誤り検査を行う。CRCによってデータに異常がないことを確認した後、SOME/IPメッセージをバッファ1201に格納する。 First, the CRC calculation unit 701 reads the SOME/IP message and CRC data from the shared memory 9. Based on the extracted data, an error check is performed using the Header CRC and Payload CRC described in the previous embodiment. After confirming that there are no abnormalities in the data using the CRC, the SOME/IP message is stored in the buffer 1201.

次に、第2SOME/IP変換部103は、アプリケーション1202から受信要求1203を受け取ったら、バッファ1201にデータが格納されているかを判定する。データが格納されていると判定されると、第2SOME/IP変換部103がバッファ1201に格納されたデータをデシリアライズして、アプリケーション1202へ転送する。 Next, when the second SOME/IP conversion unit 103 receives a receive request 1203 from the application 1202, it determines whether data is stored in the buffer 1201. If it determines that data is stored, the second SOME/IP conversion unit 103 deserializes the data stored in the buffer 1201 and transfers it to the application 1202.

本実施例では、共有メモリ9から読み出したSOME/IPメッセージを、直ぐにアプリケーション1201へ転送できないため、一時的にバッファ1201に格納するSOME/IPメッセージ受信機構を設けた。 In this embodiment, since the SOME/IP message read from the shared memory 9 cannot be immediately transferred to the application 1201, a SOME/IP message receiving mechanism is provided that temporarily stores the message in the buffer 1201.

バッファ1201は、データを一時的に保存する領域であり、前後の処理部の処理速度の差を吸収する。バッファ1201にはサイズが定義される。サイズを定義するために、バッファ1201が取り扱うデータ長を把握する必要がある。静的に定義する場合は、バッファのサイズは一つのSOME/IPメッセージのサイズの最大値以上にするとよい。本実施例では、SOME/IPメッセージのサイズの最大値はEthernetで転送可能なデータ量の最大値から、Ethernet、IP、TCPのヘッダーに必要なデータ量を減じた、1460byteを最大値とするとよい。 Buffer 1201 is an area that temporarily stores data, and absorbs differences in the processing speed of the preceding and following processing units. A size is defined for buffer 1201. In order to define the size, it is necessary to know the data length that buffer 1201 handles. When defining the size statically, the buffer size should be set to be equal to or greater than the maximum size of one SOME/IP message. In this embodiment, the maximum size of a SOME/IP message should be set to 1,460 bytes, which is the maximum amount of data that can be transferred over Ethernet minus the amount of data required for the Ethernet, IP, and TCP headers.

本実施例でバッファ1201に格納されるSOME/IPメッセージは可変長データであるため、動的にバッファ用のメモリを確保してもよい。可変長データを格納するメモリの使用量を節約できるというメリットがある。 In this embodiment, the SOME/IP messages stored in the buffer 1201 are variable-length data, so memory for the buffer may be dynamically allocated. This has the advantage of saving on the amount of memory used to store variable-length data.

バッファ1201用の記憶領域の確保は、様々な方法で実装できる。 Allocating memory space for buffer 1201 can be implemented in a variety of ways.

また、バッファ1201には、キューやリングバッファなど様々な形態がある。キューは、FIFOとも呼ばれ、先に登録されたデータが先に取り出される構造のバッファである。順序性を伴ってデータが格納されるため、後から入力されたデータが先に処理されない特徴がある。リングバッファは円環状バッファとも呼ばれ、循環構造を取っている。先頭から順番に読み出すとと、末尾の次が次回のアクセスする先頭となる構造のバッファである。リングバッファでは最も古い内容から更新される処理となる。 Buffer 1201 also comes in various forms, such as a queue or a ring buffer. A queue, also known as a FIFO, is a buffer with a structure in which data that is registered first is retrieved first. Data is stored in an orderly manner, so data input later is not processed first. A ring buffer, also known as a circular buffer, has a cyclic structure. When data is read from the top in order, the data next to the end becomes the top for the next access. In a ring buffer, the oldest contents are updated first.

デシリアライズとは、バイト列にシリアルに並んだデータを、アプリケーションで利用できる形式の並列データを変換する処理である。逆に、シリアライズ処理によって、アプリケーションから受け取る並列データをバイト列に並んだシリアルデータに変換できる。 Deserialization is the process of converting data arranged serially in a byte sequence into parallel data in a format that can be used by an application. Conversely, serialization can convert parallel data received from an application into serial data arranged in a byte sequence.

バイト列とは、特定の形式が与えられていないデータの並びであり、このままではアプリケーションが使用できない。デシリアライズによって、バイト列からデータ構造を作成し、アプリケーションで扱いやすいデータ形式に変換する。 A byte sequence is a sequence of data without a specific format, and applications cannot use it in this state. Deserialization creates a data structure from the byte sequence and converts it into a data format that is easy for applications to handle.

このようにバッファ1201を設けることで、アプリケーション側が任意のタイミングでデータを取得できる。 By providing buffer 1201 in this way, the application can obtain data at any time.

図17は、実施例5の第2コア3に含まれる第2SOME/IP変換部103の周辺の別の構成を示す図である。図17に示す態様では、アプリケーション1202内にアプリケーションバッファ1301が設けられる。 Figure 17 is a diagram showing another configuration of the periphery of the second SOME/IP conversion unit 103 included in the second core 3 of the fifth embodiment. In the aspect shown in Figure 17, an application buffer 1301 is provided in the application 1202.

はじめに、CRC演算部701は、SOME/IPメッセージとCRCデータを共有メモリ9から読み出す。取り出したデータに基づいて、前述の実施例に記載したHeader CRCとPayload CRCを用いて誤り検査を行う。CRCによってデータに異常がないことを確認した後、SOME/IPメッセージを第2SOME/IP変換部103へ送る。 First, the CRC calculation unit 701 reads the SOME/IP message and CRC data from the shared memory 9. Based on the extracted data, an error check is performed using the Header CRC and Payload CRC described in the previous embodiment. After confirming that there are no abnormalities in the data using the CRC, the SOME/IP message is sent to the second SOME/IP conversion unit 103.

次に、第2SOME/IP変換部103は、データをアプリケーションで使用できる形式に変換した後、アプリケーション1202内のアプリケーションバッファ1301にデータを格納する。アプリケーション1202は所定のタイミング(例えば、所定の時間間隔)でアプリケーションバッファ1301にデータが格納されているかを判定する。データが格納されていると判定されると、データ受信機能によってアプリケーション1202を受信待機状態にして、アプリケーションバッファ1301からデータを受け取る。 Next, the second SOME/IP conversion unit 103 converts the data into a format that can be used by the application, and then stores the data in the application buffer 1301 in the application 1202. The application 1202 determines whether data is stored in the application buffer 1301 at a predetermined timing (e.g., a predetermined time interval). If it is determined that data is stored, the data reception function puts the application 1202 into a reception standby state, and receives the data from the application buffer 1301.

アプリケーション1202が管理する記憶領域であるアプリケーションバッファ1301を設ける構成によって、余計なバッファを設けることなく、データを転送でき、リソースを節約できる。 By providing an application buffer 1301, which is a storage area managed by the application 1202, data can be transferred without providing an unnecessary buffer, thereby saving resources.

以上に説明したように、本発明の実施例によると、SOME/IPメッセージを用いてコア間通信する際に算出されたCRCをSOME/IPと同時に共有メモリを介して転送するので、データ転送の信頼性が保証しつつ、大容量のデータを高速で転送できる。 As described above, according to an embodiment of the present invention, when communicating between cores using a SOME/IP message, the CRC calculated is transferred via shared memory simultaneously with the SOME/IP, so that large volumes of data can be transferred at high speed while ensuring the reliability of the data transfer.

なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。 The present invention is not limited to the above-described embodiments, but includes various modified examples and equivalent configurations within the spirit of the appended claims. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to having all of the configurations described. Furthermore, a portion of the configuration of one embodiment may be replaced with the configuration of another embodiment. Furthermore, the configuration of another embodiment may be added to the configuration of one embodiment. Furthermore, other configurations may be added, deleted, or replaced with part of the configuration of each embodiment.

また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。 Furthermore, each of the configurations, functions, processing units, processing means, etc. described above may be realized in part or in whole in hardware, for example by designing them as integrated circuits, or may be realized in software by a processor interpreting and executing a program that realizes each function.

各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。 Information such as programs, tables, and files that realize each function can be stored in a storage device such as a memory, hard disk, or SSD (Solid State Drive), or in a recording medium such as an IC card, SD card, or DVD.

また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。 In addition, the control lines and information lines shown are those considered necessary for explanation, and do not necessarily represent all control lines and information lines necessary for implementation. In reality, it is safe to assume that almost all components are interconnected.

1 マルチコアマイコン
2 第1コア
3 第2コア
4 第1コアRAM
5 第2コアRAM
6 第1コア不揮発性メモリ
7 第2コア不揮発性メモリ
8 通信コントローラ
9 共有メモリ
10 内部バス
11 CANトランシーバ
12 LAN
13 CANコントローラ
14 イーサネットスイッチ
15 CANバス
16 他ECU
101 受信部
102 第1SOME/IP変換部
103 第2SOME/IP変換部
201 CANデータフィールド
201a CAN実データ
211 CAN FDデータフィールド
211a-b CAN FD実データ
301 SOME/IPヘッダー情報
302 SOME/IP Payload
701 CRC演算部
702 Ethernet受信部
1201 バッファ
1202 アプリケーション
1203 受信要求
1301 アプリケーションバッファ
1 Multi-core microcomputer 2 First core 3 Second core 4 First core RAM
5 Second Core RAM
6 First core non-volatile memory 7 Second core non-volatile memory 8 Communication controller 9 Shared memory 10 Internal bus 11 CAN transceiver 12 LAN
13 CAN controller 14 Ethernet switch 15 CAN bus 16 Other ECU
101 Receiving section 102 First SOME/IP conversion section 103 Second SOME/IP conversion section 201 CAN data field 201a CAN actual data 211 CAN FD data field 211a-b CAN FD actual data 301 SOME/IP header information 302 SOME/IP Payload
701 CRC calculation unit 702 Ethernet reception unit 1201 Buffer 1202 Application 1203 Reception request 1301 Application buffer

Claims (14)

電子制御装置であって、
CAN通信でデータを受信する第1プロセッサコアと、
アプリケーションが動作する第2プロセッサコアと、
前記第1プロセッサコア及び前記第2プロセッサコアがアクセス可能な共有メモリとを備え、
前記第1プロセッサコアは、
CAN通信で受信したデータをSOME/IPメッセージに変換する第1SOME/IP変換部を有し、
前記第1SOME/IP変換部で変換されたSOME/IPメッセージを前記共有メモリに格納し、
前記第2プロセッサコアは、
SOME/IPメッセージを前記アプリケーションで利用可能な形式に変換する第2SOME/IP変換部を有し、
前記共有メモリに格納されたSOME/IPメッセージを取得し、
前記第2SOME/IP変換部で前記取得したSOME/IPメッセージを前記アプリケーションで利用可能な形式に変換して、前記アプリケーションに提供することを特徴とする電子制御装置。
An electronic control device,
a first processor core that receives data through CAN communication;
a second processor core on which an application runs;
a shared memory accessible to the first processor core and the second processor core;
The first processor core is
A first SOME/IP conversion unit converts data received through CAN communication into a SOME/IP message;
storing the SOME/IP message converted by the first SOME/IP conversion unit in the shared memory;
The second processor core is
a second SOME/IP converter for converting a SOME/IP message into a format usable by said application;
Obtaining a SOME/IP message stored in the shared memory;
The electronic control device according to claim 1, wherein the second SOME/IP conversion unit converts the acquired SOME/IP message into a format usable by the application and provides the converted message to the application.
請求項1に記載の電子制御装置であって、
前記第1プロセッサコアは、前記第1SOME/IP変換部で変換されたSOME/IPメッセージに基づいて誤り検出符号を計算し、
前記計算された誤り検出符号をSOME/IPメッセージと関連付けて前記共有メモリに格納することを特徴とする電子制御装置。
2. The electronic control device according to claim 1,
the first processor core calculates an error detection code based on the SOME/IP message converted by the first SOME/IP conversion unit;
The electronic control device further comprises: an electronic control unit that stores the calculated error detection code in the shared memory in association with the SOME/IP message.
請求項2に記載の電子制御装置であって、
前記第1プロセッサコアは、前記SOME/IPメッセージのヘッダーから誤り検出符号を計算し、前記計算された誤り検出符号を前記共有メモリへ格納することを特徴とする電子制御装置。
3. The electronic control device according to claim 2,
The electronic control device according to claim 1, wherein the first processor core calculates an error detection code from a header of the SOME/IP message and stores the calculated error detection code in the shared memory.
請求項2に記載の電子制御装置であって、
前記第1プロセッサコアは、前記SOME/IPメッセージのペイロードから誤り検出符号を計算し、前記計算された誤り検出符号を前記共有メモリへ格納することを特徴とする電子制御装置。
3. The electronic control device according to claim 2,
The electronic control device, wherein the first processor core calculates an error detection code from a payload of the SOME/IP message and stores the calculated error detection code in the shared memory.
請求項4に記載の電子制御装置であって、
前記第2プロセッサコアは、前記共有メモリから取得した誤り検出符号によって、前記SOME/IPメッセージの異常を検出した場合、利用不可能であることを示すデータを当該SOME/IPメッセージに書き込むことを特徴とする電子制御装置。
5. The electronic control device according to claim 4,
The electronic control device is characterized in that when the second processor core detects an abnormality in the SOME/IP message using an error detection code obtained from the shared memory, it writes data indicating that the SOME/IP message is unavailable into the SOME/IP message.
請求項4に記載の電子制御装置であって、
前記第2プロセッサコアは、前記共有メモリから取得した誤り検出符号によって、前記SOME/IPメッセージの異常を検出した場合、当該SOME/IPメッセージの再送を前記第1プロセッサコアに要求することを特徴とする電子制御装置。
5. The electronic control device according to claim 4,
An electronic control device characterized in that when the second processor core detects an abnormality in the SOME/IP message using an error detection code obtained from the shared memory, it requests the first processor core to resend the SOME/IP message.
請求項1に記載の電子制御装置であって、
前記第2SOME/IP変換部は、前記共有メモリから取得したSOME/IPメッセージと、Ethernet経由で他のECUから転送されたSOME/IPメッセージの両方を変換して、前記アプリケーションに提供可能であることを特徴とする電子制御装置。
2. The electronic control device according to claim 1,
The second SOME/IP conversion unit is capable of converting both SOME/IP messages obtained from the shared memory and SOME/IP messages transferred from other ECUs via Ethernet and providing them to the application.
請求項1に記載の電子制御装置であって、
前記第1SOME/IP変換部は、CAN通信で受信した複数のCANデータを纏めて一つのSOME/IPメッセージに変換することを特徴とする電子制御装置。
2. The electronic control device according to claim 1,
The electronic control device, wherein the first SOME/IP conversion unit collects a plurality of CAN data received through CAN communication and converts them into one SOME/IP message.
請求項1に記載の電子制御装置であって、
前記第1SOME/IP変換部は、CAN通信で受信したデータが欠損している場合、前後のデータから計算された値で欠損値を補完することを特徴とする電子制御装置。
2. The electronic control device according to claim 1,
The electronic control device, wherein when data received via CAN communication is missing, the first SOME/IP conversion unit complements the missing value with a value calculated from previous and following data.
請求項1に記載の電子制御装置であって、
前記第1SOME/IP変換部は、CAN通信で受信したデータが欠損している場合、前回値を複製して欠損値を補完することを特徴とする電子制御装置。
2. The electronic control device according to claim 1,
The electronic control device, wherein the first SOME/IP conversion unit, when data received through CAN communication is missing, replicates a previous value to complement the missing value.
請求項1に記載の電子制御装置であって、
前記第2プロセッサコアは、前記共有メモリに格納されたSOME/IPメッセージを受信する機構を有することを特徴とする電子制御装置。
2. The electronic control device according to claim 1,
The electronic control device according to claim 1, wherein the second processor core has a mechanism for receiving a SOME/IP message stored in the shared memory.
請求項11に記載の電子制御装置であって、
前記第2プロセッサコアは、前記共有メモリから取得したSOME/IPメッセージを格納するバッファを有することを特徴とする電子制御装置。
12. The electronic control device according to claim 11,
The electronic control device according to claim 1, wherein the second processor core has a buffer for storing a SOME/IP message obtained from the shared memory.
請求項11に記載の電子制御装置であって、
前記第2プロセッサコアで動作するアプリケーションは、前記共有メモリから取得したSOME/IPメッセージを格納するバッファを有することを特徴とする電子制御装置。
The electronic control device according to claim 11,
The electronic control device according to claim 1, wherein the application running on the second processor core has a buffer for storing a SOME/IP message obtained from the shared memory.
電子制御装置が実行するコア間通信方法であって、
前記電子制御装置は、CANプロトコルに従ってデータを受信する第1プロセッサコアと、アプリケーションが動作する第2プロセッサコアと、前記第1プロセッサコア及び前記第2プロセッサコアがアクセス可能な共有メモリとを有し、
前記コア間通信方法は、
前記第1プロセッサコアが、CAN通信で受信したデータをSOME/IPメッセージに変換し、前記変換されたSOME/IPメッセージを前記共有メモリに格納し、
前記第2プロセッサコアが、前記共有メモリに格納されたSOME/IPメッセージを取得し、前記取得したSOME/IPメッセージを前記アプリケーションで利用可能な形式に変換して、前記アプリケーションに提供することを特徴とするコア間通信方法。
An inter-core communication method executed by an electronic control device, comprising:
The electronic control device includes a first processor core that receives data according to a CAN protocol, a second processor core on which an application runs, and a shared memory accessible by the first processor core and the second processor core;
The inter-core communication method includes:
The first processor core converts data received through CAN communication into a SOME/IP message and stores the converted SOME/IP message in the shared memory;
An inter-core communication method characterized in that the second processor core acquires a SOME/IP message stored in the shared memory, converts the acquired SOME/IP message into a format usable by the application, and provides it to the application.
JP2022180412A 2022-11-10 2022-11-10 Electronic control apparatus and core-to-core communication method Pending JP2024070053A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022180412A JP2024070053A (en) 2022-11-10 2022-11-10 Electronic control apparatus and core-to-core communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022180412A JP2024070053A (en) 2022-11-10 2022-11-10 Electronic control apparatus and core-to-core communication method

Publications (1)

Publication Number Publication Date
JP2024070053A true JP2024070053A (en) 2024-05-22

Family

ID=91121931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022180412A Pending JP2024070053A (en) 2022-11-10 2022-11-10 Electronic control apparatus and core-to-core communication method

Country Status (1)

Country Link
JP (1) JP2024070053A (en)

Similar Documents

Publication Publication Date Title
US11016911B2 (en) Non-volatile memory express over fabric messages between a host and a target using a burst mode
US7817634B2 (en) Network with a constrained usage model supporting remote direct memory access
CN111327603B (en) Data transmission method, device and system
EP0525985B1 (en) High speed duplex data link interface
US6321269B1 (en) Optimized performance for transaction-oriented communications using stream-based network protocols
US20050223128A1 (en) Accelerated TCP (Transport Control Protocol) stack processing
KR20060131776A (en) Increasing tcp re-transmission process speed
US11726666B2 (en) Network adapter with efficient storage-protocol emulation
EP4092970A1 (en) Monitoring controller area network (can) xl nodes
JP2002305535A (en) Method and apparatus for providing a reliable protocol for transferring data
CN110870286B (en) Fault tolerance processing method and device and server
JP2009502072A (en) FlexRay communication module, FlexRay communication control device, and method for transmitting a message between a FlexRay communication connection and a FlexRay subscriber device
US20100082875A1 (en) Transfer device
US7181675B2 (en) System and method for checksum offloading
US7765317B1 (en) System and methods for locating FPDU headers when markers are disabled
WO2024227389A1 (en) Data transmission system, method and apparatus, communication device and storage medium
CN114615353A (en) RMAP target side IP core based on AXI bus and command response method thereof
US20120041998A1 (en) Network Interface for Accelerating XML Processing
JP2024070053A (en) Electronic control apparatus and core-to-core communication method
US7764676B1 (en) Method and system for processing network information
CN118426984A (en) Universal information security service request-response method, system, storage medium and HSM verification platform
KR20170117326A (en) Direct memory access control device for at least one processing unit having a random access memory
CN113411198B (en) Communication method and device based on dual channels and RSSP-I, electronic equipment and storage medium
JP7005201B2 (en) Communication message converter
CN111586040B (en) High-performance network data receiving method and system