JP2017204286A - 車両用制御装置 - Google Patents

車両用制御装置 Download PDF

Info

Publication number
JP2017204286A
JP2017204286A JP2017125749A JP2017125749A JP2017204286A JP 2017204286 A JP2017204286 A JP 2017204286A JP 2017125749 A JP2017125749 A JP 2017125749A JP 2017125749 A JP2017125749 A JP 2017125749A JP 2017204286 A JP2017204286 A JP 2017204286A
Authority
JP
Japan
Prior art keywords
software
access authority
unit
privileged mode
vehicle control
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.)
Granted
Application number
JP2017125749A
Other languages
English (en)
Other versions
JP6349444B2 (ja
Inventor
統宙 月舘
Tsunamichi TSUKIDATE
統宙 月舘
成沢 文雄
Fumio Narisawa
文雄 成沢
祐 石郷岡
Hiroshi Ishigooka
祐 石郷岡
朋仁 蛯名
Tomohito Ebina
朋仁 蛯名
昌義 川津
Masayoshi Kawatsu
昌義 川津
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 Automotive Systems 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 Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2017125749A priority Critical patent/JP6349444B2/ja
Publication of JP2017204286A publication Critical patent/JP2017204286A/ja
Application granted granted Critical
Publication of JP6349444B2 publication Critical patent/JP6349444B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】本発明は、安全度水準の異なる複数のソフトウェアを動作させる場合であっても、処理負荷を抑えつつ安全性を確保することができる車両用制御装置を提供することを目的とする。
【解決手段】本発明は、記憶部と、該記憶部に記憶される複数のソフトウェアの動作を制御するソフトウェア制御部と、前記ソフトウェア制御部の動作モードを特権モードと非特権モードとの間で切り換える動作モード切換部と、前記記憶部に対する前記各ソフトウェアのアクセス権限を切り換えるアクセス権限切換部とを備えることを特徴とする。
【選択図】図8

Description

本発明は、車両用制御装置に関するものである。
近年の多くの車両制御システムは、電子化された車両制御機器を操作するECU、すなわち電子制御装置(Electronic Control Unit)と、複数のECU間の通信を可能にする車載LAN(Local Area Network)から構成されている。
車両制御システムは環境負荷の低減や安全要求に伴い、システムの高機能化、機能の分散化、複雑化が進んでいる。その結果、ECUのソフトウェアアーキテクチャの標準化、安全装置の電子制御化とその安全性確保の仕組みの重要性が増大している。
例えば、カーメーカは分散させた機能毎に専用のECUを用意するため、一つの車両制御システムに複数のECUが混在する。標準化された車両制御装置のソフトウェアアーキテクチャを導入することで、仕様の異なるECUを組合せて車両制御システムを構築することを容易にしている。AUTOSARアーキテクチャでは、マイコンに依存する機能単位や、センサやアクチュエータの制御処理のアルゴリズム、設定パラメータ単位でモジュール化が行われているため、マイコンが変更となっても対象となるモジュールを修正するだけで、他のモジュールを修正することなく対応できる。
また、車両制御機器における安全装置の電子制御化にともない機能安全の仕組みが車両制御システムに導入されてきている。ここで、機能安全とはシステムに不具合が生じたときにシステムが安全側に遷移することで安全を確保する考えである。例えば自動車向け機能安全規格ISO26262では、安全度水準であるASIL(AutomotiveSafety Integrity Level)が設けられている。
一般的な車両制御システムは、コスト増加抑制や性能最適化の要求を満たすべく、さまざまな制御アプリケーションによって構成されており、さまざまな安全度水準のソフトウェアが混在することになる。機能安全規格ISO26262では安全要求が異なるソフトウェア間の干渉を防止することが求められている。具体的には、安全度水準の低いQMのソフトウェアが暴走して、ASILD等の安全度水準の高いソフトウェアが格納されているメモリへアクセスし、データを破壊することを防ぐことである。従って、一般的な車両制御システムにおいて機能安全規格ISO26262に準拠するには、ソフトウェア間の干渉を防止する仕組みが必要となる。
このような仕組みの一例として、特許文献1では、安全度の異なるタスクを実行する場合には、ユーザモードとカーネルモードとの間で動作モードを切り換えることが提案されている。
特開2012−247978号公報
しかし、上記従来技術では、安全度水準の異なるタスクを実行すべく動作モードを切り換える際に、負荷の大きい割り込み処理を行うものである。従って、上記従来技術では、安全性を確保できたとしても、オーバーヘッドが増加してしまうという問題がある。
そこで、本発明は、安全度水準の異なる複数のソフトウェアを動作させる場合であっても、処理負荷を抑えつつ安全性を確保することができる車両用制御装置を提供することを目的とする。
本発明は、記憶部と、該記憶部に記憶される複数のソフトウェアの動作を制御するソフトウェア制御部と、前記ソフトウェア制御部の動作モードを特権モードと非特権モードとの間で切り換える動作モード切換部と、前記記憶部に対する前記各ソフトウェアのアクセス権限を切り換えるアクセス権限切換部とを備えることを特徴とする。
本発明によれば、安全度水準の異なる複数のソフトウェアを動作させる場合であっても、処理負荷を抑えつつ安全性を確保することができる。
本発明の実施形態に係る車両用制御装置の構成図である。 車両用制御装置のメモリ保護領域アクセス権限設定管理テーブルの例を示す図である。 車両用制御装置のメモリ保護領域アクセス権限管理テーブルの例を示す図である。 車両用制御装置のメモリ保護領域活性状態管理テーブルの例を示す図である。 車両用制御装置のメモリ保護領域活性パターン管理テーブルの例を示す図である。 車両用制御装置の動作モード管理テーブルの例を示す図である。 車両用制御装置で動作するソフトウェアの安全度水準と動作モードの例を示す図である。 車両用制御装置のプログラム切換ID管理テーブルの例を示す図である。 車両用制御装置の前回プログラムID管理テーブルの例を示す図である。 車両用制御装置のテーブルサイズ管理テーブルの例を示す図である。 車両用制御装置の前回動作モードフラグ管理テーブルの例を示す図である。 車両用制御装置の割り込み処理用退避データ管理テーブルの例を示す図である。 車両用制御装置のソフトウェア制御部の例を示す図である。 車両用制御装置のMPU設定部の動作フローの例を示す図である。 車両用制御装置の動作モード切換部の動作フローの例を示す図である。 車両用制御装置のアクセス権限切換部の動作フローの例を示す図である。 車両用制御装置で動作するソフトウェアの安全度水準と動作モードの他の例を示す図である。
図1は、本発明の実施形態に関わる車両用制御装置の構成図である。以下、車両用制御装置として、エンジンを制御する装置であるECU1を元に説明する。エンジン制御装置ECU1は演算装置(CPU)11、記憶部としてのメモリ12、入出力回路13、CANコントローラ14、スロットルセンサ15、ペダルセンサ16を備える。
演算装置(CPU)11は、CPUコア111、メモリ保護装置(MPU)112からなる。CPUコア111は、メモリ12が記憶(格納)している複数のソフトウェア(本実施形態では「プログラム」と称することがある。)を実行するプロセッサ(Central Processing Unit)である。演算装置(CPU)11は、特権モード、非特権モードと呼ばれる動作モードを有しており、両動作モードは、割り込み処理によって切り換えることができる。なお、CPUコア111の数は1つとしているが、CPUコア111の数は複数でもかまわない。
メモリ保護装置(MPU)112は、主にメモリ12へのアクセス権限を管理する装置であり、ソフトウェアのアクセス権限を監視するアクセス権限違反監視部を備える。アクセス権限を管理するとは、メモリ12のアドレス空間に対し、任意の領域にアクセス権限を設定し、その設定を有効化、無効化することである。さらにメモリ12に対するアクセスを監視し、アクセスに異常(即ち、違反)があればCPUコア111の処理を無効又は中止して、処理結果が反映されないようにする。同等の機能を、回路デバイスなどのハードウェアを用いて構成することもできる。また、メモリ保護装置(MPU)112は、メモリ12を分割して複数の記憶領域を設定する記憶領域設定部を備えている。後述するメモリ保護領域は、この記憶領域設定部により設定される領域である。
メモリ12はプログラム領域121とデータ記憶領域122を有する。プログラム領域121は、ソフトウェア制御部1121、アクセス権限切換部1212、動作モード切換部1213、MPU設定部1214を格納する。データ記憶領域122は後述の図2で説明するメモリアクセス権限管理テーブル1220010、図3で説明するメモリ保護領域アクセス権限管理テーブル1220021、図4で説明するメモリ保護領域活性状態管理テーブル1220030、図5で説明するメモリ保護領域活性パターン管理テーブル1220040、図6で説明する動作モード管理テーブル1220050、図8で説明するプログラム切換ID管理テーブル1220060、図9で説明する前回プログラムID管理テーブル1220070、図10で説明するテーブルサイズ管理テーブル1220080、図11で説明する前回動作モードフラグ管理テーブル1220090、図12で説明する割り込み処理用退避データ管理テーブル12200100を格納する。
本実施形態では、エンジン制御ECU1の構成を機能安全規格ISO26262対応のECUアーキテクチャとしているが構成はこれに限らない。例えば、データを保存するための不揮発性メモリ(バックアップラム)や水温センサなどを備えてもよい。
エンジン制御装置1のデータ記憶領域122に格納されるテーブルを下記より説明する。
図2は、メモリアクセス権限管理テーブル1220010の例を示す図である。メモリアクセス権限管理テーブル1220010は、MPUが管理する、メモリ12に対するデフォルトのアクセス権限の設定情報を管理するテーブルであり、先頭アドレスフィールド1220011、後尾アドレスフィールド1220012、特権モード書き込みフィールド1220013、特権モード実行フィールド1220014、特権モード読み込みフィールド1220015、非特権モード書き込みフィールド1220016、非特権モード実行フィールド1220017、非特権モード読み出しフィールド1220018からなる。説明の都合上、本実施形態ではメモリ12に対するデフォルトのアクセス権限の設定情報を管理するためにメモリアクセス権限管理テーブル1220010を用いるが、これに限らない。
先頭アドレスフィールド1220011は、メモリ保護ユニット(MPU)112が管理するメモリを示す先頭アドレスを保持する。後尾アドレスフィールド1220012は、メモリ保護ユニット(MPU)112が管理するメモリの後尾を示すアドレスを保持する。特権モード書き込みフィールド1220013は、演算装置(CPU)11が特権モード時に先頭アドレスと後尾アドレスによって指定された領域(以下、メモリ保護領域)に対し、書き込み可能か判断するための値を保持する。ここでは0か1の値を保持し、0の場合は書き込み不可とし、1の場合は書き込み可能とする。特権モード実行フィールド1220014は、演算装置(CPU)11が特権モード時にメモリ保護領域に対し、処理を実行可能か判断するための値を保持する。ここでは0か1の値を保持し、0の場合は処理の実行不可とし、1の場合は処理の実行可能とする。特権モード読み込みフィールド1220015は、演算装置(CPU)11が特権モード時にメモリ保護領域に対し、読み出し可能か判断するための値を保持する。ここでは0か1の値を保持し、0の場合は読み出し不可とし、1の場合は読み出し可能とする。非特権モード書き込みフィールド1220016は、演算装置(CPU)11が非特権モード時にメモリ保護領域に対し、書き込み可能か判断するための値を保持する。ここでは0か1の値を保持し、0の場合は書き込み不可とし、1の場合は書き込み可能とする。非特権モード実行フィールド1220017は、演算装置(CPU)11が非特権モード時にメモリ保護領域に対し、処理を実行可能か判断するための値を保持する。ここでは0か1の値を保持し、0の場合は処理の実行不可とし、1の場合は処理の実行可能とする。非特権モード読み出しフィールド1220018は、演算装置(CPU)11が非特権モード時にメモリ保護領域に対し、読み出し可能か判断するための値を保持する。ここでは0か1の値を保持し、0の場合は処理の実行不可とし、1の場合は処理の実行可能とする。ここで、メモリ領域12のデフォルトのアクセス権限は、特権モードの書き込み、実行、読み出しは許可するが、非特権モードの書き込み、実行、読み出しは許可されない、としたがこれに限らない。例えば、特権モード、非特権モードにおいても書き込み、実行、読み出しを許可してもかまわない。
図3は、メモリ保護領域アクセス権限管理テーブル1220020の例を示す図である。メモリ保護領域アクセス権限設定管理テーブル1220020は、MPUが管理する、メモリ12に対するアクセス権限の設定情報を管理するテーブルであり、メモリ保護領域番号フィールド1220021、先頭アドレスフィールド1220022、後尾アドレスフィールド1220023、特権モード書き込みフィールド1220024、特権モード実行フィールド1220025、特権モード読み込みフィールド1220026、非特権モード書き込みフィールド書き込み1220027、非特権モード実行フィールド1220028、非特権モード読み出しフィールド1220029からなる。説明の都合上、本実施形態ではメモリ12に対するアクセス権限の設定情報を管理するためにメモリ保護領域アクセス権限管理テーブル1220020を用いるが、これに限らない。
メモリ保護領域アクセス権限管理テーブル1220020では、複数のメモリ保護領域1〜4を有し、アクセス権限切換部は、各メモリ保護領域に対し、異なるアクセス権限を設定する。また、メモリ保護領域2,3は、実際には同じ領域であるが、アクセス権限切換部は、このメモリ保護領域2,3に対し、ソフトウェアの安全度に応じて異なるアクセス権限を設定する。
メモリ保護領域番号フィールド1220021は、メモリ保護ユニット(MPU)12が管理するメモリ保護領域の領域番号を保持する。ここではメモリ保護領域が設定可能な領域は合計4領域としているがこれに限らない。先頭アドレスフィールド1220022は、メモリ保護ユニット(MPU)112が管理するメモリ保護領域を示す先頭アドレスを保持する。後尾アドレスフィールド1220023は、メモリ保護ユニット(MPU)112が管理するメモリ保護領域の後尾を示すアドレスを保持する。特権モード書き込みフィールド1220024は、演算装置(CPU)11がメモリ保護領域に対し、書き込み可能か判断するための値を保持する。ここでは0か1の値を保持し、0の場合は書き込み不可とし、1の場合は書き込み可能とする。
特権モード実行フィールド1220025、演算装置(CPU)11が特権モード時に先頭アドレスと後尾アドレスによって指定された領域に対し、処理を実行可能か判断するための値を保持する。ここでは0か1の値を保持し、0の場合は処理の実行不可とし、1の場合は処理の実行可能とする。
特権モード読み出しフィールド1220026は、演算装置(CPU)11が特権モード時にメモリ領域に対し、読み出し可能か判断するための値を保持する。ここでは0か1の値を保持し、0の場合は読み出し不可とし、1の場合は読み出し可能とする。非特権モード書き込みフィールド1220027は、演算装置(CPU)11が非特権モード時にメモリ保護領域に対し、書き込み可能か判断するための値を保持する。ここでは0か1の値を保持し、0の場合は書き込み不可とし、1の場合は書き込み可能とする。非特権モード実行フィールド1220028は、演算装置(CPU)11が非特権モード時にメモリ保護領域に対し、処理を実行可能か判断するための値を保持する。ここでは0か1の値を保持し、0の場合は処理の実行不可とし、1の場合は処理の実行可能とする。非特権モード読み出しフィールド1220029は、演算装置(CPU)11が非特権モード時にメモリ保護領域に対し、読み出し可能か判断するための値を保持する。ここでは0か1の値を保持し、0の場合は処理の実行不可とし、1の場合は処理の実行可能とする。ここで、先頭アドレス220022と後尾アドレス220023によって範囲指定されないメモリ12へのアクセス権限は、メモリアクセス権限管理テーブル1220010で設定されたデフォルトのアクセス権限に設定される。
図4はメモリ保護領域活性状態管理テーブル1220030の例を示す図である。メモリ保護領域活性状態管理テーブル1220030は、メモリ保護ユニット(MPU)112がメモリ保護領域に設定したアクセス権限が有効か無効かを管理するためのテーブルであり、メモリ保護領域番号フィールド1220031、活性状態フィールド1220032からなる。
メモリ保護領域番号フィールド1220031は、メモリ保護ユニット(MPU)112が管理するメモリ保護領域の領域番号を保持する。ここではメモリ保護領域を4領域としているが、領域数はこれに限らない。
活性状態フィールド1220032は、メモリ保護ユニット(MPU)112が管理するメモリ保護領域の活性状態の値を保持する。ここでは0か1の値を保持し、0の場合は該当するメモリ領域に設定されたアクセス権限の設定は無効となり、1の場合は該当するメモリ領域に設定されたアクセス権限の設定が有効となる。活性状態の値が0を保持した場合、該当するメモリ領域に設定されたアクセス権限は、メモリ保護領域アクセス権限管理テーブル1220010におけるデフォルトのアクセス権限である。
図5はメモリ保護領域活性パターン管理テーブル1220040の例を示す図である。メモリ保護領域活性パターン管理テーブル1220040は、メモリ保護領域活性状態管理テーブル1220030の活性状態フィールド1220032に設定するメモリ保護領域の活性状態の設定パターンであり、メモリ保護領域番号フィールド1220041、活性パターン1フィールド1220042、活性パターン2フィールド1220043からなる。
この図5のメモリ保護領域活性パターン管理テーブル1220040にあるとおり、アクセス権限切換部は、複数のメモリ保護領域ごとに設定されるアクセス権限のパターンを活性パターン1及び活性パターン2として複数管理し、このパターンを切り換えることにより、複数のメモリ保護領域領域に対する個別のアクセス権限を一括して切り換える。
メモリ保護領域番号フィールド1220041は、メモリ保護ユニット(MPU)112が管理するメモリ保護領域の領域番号を保持する。ここではメモリ保護領域を4領域としているが、領域数はこれに限らない。
活性パターン1フィールド1220042は、メモリ保護領域活性状態管理テーブル1220030の活性状態フィールド1220032に設定するメモリ保護領域の活性状態の設定パターンの一つである。ここでは全メモリ領域に対して、活性状態を設定しているが、一部のメモリ領域に対してのみ活性状態を設定してもよい。活性パターン2フィールド1220043は、メモリ保護領域活性状態管理テーブル1220030の活性状態フィールド1220032に設定するメモリ保護領域の活性状態の設定パターンの一つである。ここでは全メモリ領域に対して、活性状態を設定しているが、一部のメモリ領域に対してのみ活性状態を設定してもよい。
図6は動作モード管理テーブル1220050の例を示す図である。動作モード管理テーブル1220050は、演算装置(CPU)11の動作モードを管理するためのテーブルであり、動作モードフラグフィールド1220051からなる。
動作モードフラグフィールド1220051は、演算装置(CPU)11の動作モードを示す値を保持する。ここでは0か1の値を保持し、0を保持するときは演算装置(CPU)11の動作モードは特権モード、1を保持するときは非特権モードを示す。
本実施形態では、各ソフトウェアが一般的な安全度水準(ASIL、QM)による区分とは別に、動作モードによる分類によって区分されている。これを図7を用いて説明する。具体的には、各ソフトウェアは、特権モードで動作可能な特権モード動作ソフトウェア(ASILOS)と、非特権モードで動作可能な非特権モード動作ソフトウェア(ASILアプリ1〜2、QMアプリ1〜3)とに区分される。また、非特権モード動作ソフトウェアは、さらに安全度に応じて複数段階に区分されている。図7では、非特権モード動作ソフトウェアのうち比較的安全度が高いASILアプリ1〜2と、比較的安全度が低いQMアプリ1〜3とに区分されている。
安全度水準の区分に基づいて説明すると、同じASILであるソフトウェア(ASILOSと、ASILアプリ1〜2)がさらに安全度に応じて複数段階に区分されており、安全度が比較的低い方のソフトウェア(ASILアプリ1〜2)は、QMアプリと同じ非特権モード動作ソフトウェアに分類されている。
これは、各ソフトウェアが安全度に応じていわば高・中・低の3段階に区分される状態とも言える。
このように、本実施形態では、ソフトウェアの分類分けが工夫されており、非特権モードで動作させるソフトウェアの範囲が、通常は特権モードで動作させることが想定される安全度水準ASILのソフトウェアの一部を含むように拡張されている。
そして、ソフトウェア制御部が動作させるソフトウェアを特権モード動作ソフトウェアと非特権モード動作ソフトウェアとの間で切り換える場合には、動作モード切換部が動作モードを切り換える。一方、ソフトウェア制御部が動作させるソフトウェアを同じ動作モードで動作するソフトウェア同士の間で切り換える場合には、アクセス権限切換部がソフトウェアの安全度に応じてアクセス権限を切り換える。
図8はプログラム切換ID管理テーブル1220060の例を示す図である。プログラム切換ID管理テーブル1220060は、演算装置(CPU)11が実行するプログラムにおいて、ソフトウェア間のパーティショニングを実現するために割り当てるIDを管理するテーブルであり、プログラムNo.フィールド1220061、プログラム名フィールド1220062、安全度水準フィールド1220063、動作モードフィールド1220064、プログラム切換フィールドID1220065からなる。
プログラムNo.フィールド1220061は、エンジン制御ECU1において実行されるソフトウェアに割り振られるナンバーである。
プログラム名フィールド1220062は、エンジン制御ECU1において実行されるソフトウェアの名称である。
安全度水準フィールド1220063は、エンジン制御ECU1において実行されるソフトウェアに割り付けられた安全度水準である。ここで、安全度水準はASILとQMに大別され、QMが割り付けられたソフトウェアに比べASILが割り付けられたソフトウェアに対する安全度水準が高い。
ところで、安全度水準は、ソフトウェアに異常が発生した場合にシステムに与える影響の大きさに基づいて設定されており、安全度水準が高いソフトウェアとは、動作の際に要求される安全度が高いことを意味する。
動作モードフィールド1220064は、該当するプログラム実行時に求められる演算装置(CPU)11の動作モードを示す。ここではOSや一部のアプリケーションに対し特権モードでの動作が割り当てられ、そのほかのアプリケーションは非特権モードで動作する。
プログラム切換IDフィールド1220065は、前回動作したプログラムのプログラム切換IDを保持する。プログラム切換IDはASILレベルと、実行動作モードの組み合わせで一意に決定される。ここでは、ASILレベルがASIL、実行動作モードが特権モードのプログラムに対し1が割り付けられ、ASILレベルがASIL、実行動作モードが非特権モードのプログラムに対し2が割り付けられ、ASILレベルがQM、実行動作モードが非特権モードのプログラムに対し3が割り付けられるが、プログラム切換IDの設定はこれに限らない。
図9は前回プログラム切換ID管理テーブル1220070の例を示す図である。前回プログラム切換ID管理テーブル1220070は、前回プログラム切換IDフィールド1220071からなる。
前回プログラム切換IDフィールド1220071は、前回動作したプログラムのプログラム切換IDの値を保持する。
図10はテーブルサイズ管理テーブル1220080の例を示す図である。テーブルサイズ管理テーブル1220080は、名称フィールド1220081、総数フィールド1220082、プログラム個数フィールド1220083、メモリ保護領域数フィールド1220084からなる。
名称フィールド1220081は、テーブルサイズ管理テーブル1220080で管理する対象の名称である。
総数フィールド1220082は、テーブルサイズ管理テーブル1220080で管理する対象の総数を表す。
プログラム個数フィールド1220083は、プログラム切換ID管理テーブル1220060が管理するプログラムIDの最大数を示す。
メモリ保護領域数フィールド1220084は、メモリ保護領域アクセス権限管理テーブル1220020で管理するメモリ保護領域番号の最大数を示す。
図11は前回動作モードフラグ管理テーブル1220090の例を示す図である。前回動作モードフラグ管理テーブル1220090は、前回実行されたプログラムの演算装置(CPU)11の動作モードを示す値を管理するテーブルであり、前回動作モードフラグフィールド1220091からなる。
前回動作モードフラグフィールド1220091は、前回実行されたプログラムの演算装置(CPU)11の動作モードを示す値を保持する。ここでは0か1の値を保持し、0を保持するときは前回プログラムが実行した際の演算装置(CPU)11の動作モードが特権モードであること示し、1を保持するときは非特権モードを示す。
図12は割り込み処理用退避データ管理テーブル1220100の例を示す図である。割り込み処理用退避データ管理テーブル1220100は、OSによる割り込み処理時に退避するデータを管理するテーブルであり、動作モードフィールド1220101、プログラムカウンタフィールド1220102からなる。
動作モードフィールド1220101は、OSの割り込み処理の直前の演算装置(CPU)111の動作モードを示す値を保持する。ここでは0か1の値を保持し、0を保持するときは演算装置(CPU)11の動作モードは特権モード、1を保持するときは非特権モードを示す。
プログラムカウンタフィールド1220102は、演算装置(CPU)111がOSの割り込み処理の直前に実行したメモリのアドレスである。
以上のテーブルが実施例1のエンジン制御ECU1の記憶領域122に格納される。
これよりエンジン制御ECU1のプログラム領域121に格納されているプログラムの動作フローについて説明する。
図13はソフトウェア制御部1211の動作フローである。以下、図13の各ステップについて説明する。診断設定情報送信実行部1211は、iに0を代入する(S1211000)。診断設定情報確認用データ生成部1211は、iに1を加える(S1211001)。ソフトウェア制御部1211は、iがテーブルサイズ管理テーブル1220080で管理するプログラム個数の総数を超えているかを判定する(S1211002)。iがプログラム個数の総数を超えている場合には処理を終了し、超えていない場合はS1211003に進む。ソフトウェア制御部1211は、後述の図11で説明するMPU設定部1215を呼ぶ(S1211003)。これにより実行するプログラムに応じた演算装置(CPU)11の動作モードの変更や、メモリ12に割り付けられたメモリ保護領域の活性状態を変更し、メモリ保護を実現する。ソフトウェア制御部1211は、プログラム切換ID管理テーブル1220060のiに該当するプログラムNo.のプログラムを実行し、ステップ1211001に進む(S1211004)。
図14はMPU設定部1215の動作フローである。以下、図14の各ステップについて説明する。MPU設定部1215は、プログラム切換ID管理テーブル1220060からiと等しいプログラムNo.のプログラム切換IDを取得する(S1215000)。MPU設定部1215は、前回プログラム切換ID管理テーブル1220070から前回のプログラム切換IDを取得する(S1215001)。MPU設定部1215は、取得したプログラム切換IDと前回のプログラム切換IDを比較し(S1215002)、両者の値が等しい場合には、ステップステップ1215006に進み、異なる場合にはステップ1215003に進む。MPU設定部1215は、取得したプログラム切換IDと前回のプログラム実行IDのうち、どちらかのプログラムIDが1の場合には、S1215004に進み、異なる場合にはS1215005に進む。MPU設定部1215は、後述の図15の動作モード切換部1213を呼び、演算装置(CPU)の動作モードを切り換える (S1215004)。MPU設定部1215は、後述の図13のアクセス権限切換部1212を呼び、メモリ領域の活性状態を変更し、メモリ12へのアクセス権限を切り換える (S1215005)。MPU設定部1215は、前回プログラム切換ID管理テーブル1220070の前回のプログラムIDを今回のプログラムIDで更新し(S1215006)、処理を終了する。
図15は動作モード切換部1213の動作フローである。以下、図15の各ステップについて説明する。動作モード切換部1213は、動作モードフラグ管理テーブル1220050から演算装置(CPU)11の動作モードフラグを取得する(S1213000)。動作モード切換部1213は、OSの割り込み処理を実施し、現在のプログラムカウンタと動作モードフラグを割り込み処理用退避データ管理テーブル1220100に退避させる(S1213001)。動作モード切換部1213は、割り込み処理用退避データ管理テーブル1220100から動作モードフラグを取得する(S1213002)。動作モード切換部1213は、取得した動作モードフラグの値を反転し、割り込み処理用退避データ管理テーブル1220100の動作モードフラグを反転した値で更新する(S1213003)。動作モード切換部1213は、OSによる割り込み処理を終了し、割り込み処理用退避データ管理テーブル1220100から退避した動作モードフラグとプログラムカウンタを取得し(S1213004)、プログラムカウンタ、動作モードフラグを更新し処理を終了する。
図16はアクセス権限切換部1212の動作フローである。以下、図16の各ステップについて説明する。アクセス権限切換部1212は、プログラム切換ID管理テーブル1220060からiに該当するプログラムNo.のプログラム切換IDを取得する(S1212000)。アクセス権限切換部1212は、前回プログラム切換ID管理テーブル1220070から前回プログラム切換IDを取得する(S1212001)。アクセス権限切換部1212は、jに0を代入する(S1212002)。アクセス権限切換部1212は、取得したプログラムIDと前回プログラムIDの組み合わせを比較し(S1212003)、組み合わせが(1,3)または(3,1)であればステップ1212004に、異なる場合はステップ1212007に進む。S1212003でYesの場合、アクセス権限切換部1212は、jに1を加える(S1212004)。アクセス権限切換部1212は、メモリ保護領域活性状態管理テーブル1220030のjと同じメモリ保護領域番号の活性状態を、メモリ保護領域活性パターン管理テーブル1220040のjと同じメモリ保護領域番号の活性パターン2の値に設定する(S1212005)。アクセス権限切換部1212は、テーブルサイズ管理テーブル1220080のメモリ保護領域数とjを比較し(S1212006)、メモリ領域数がjよりも小さいステップ1212006に、大きい場合にはステップ12120010に進む。S1212003でNoの場合、アクセス権限切換部1212は、jに1を加える(S1212007)。アクセス権限切換部1212は、メモリ保護領域活性状態管理テーブル1220030のjと同じメモリ保護領域番号の活性状態を、メモリ保護領域活性パターン管理テーブル1220040のjと同じメモリ保護領域番号の活性パターン1の値に設定する(S1212008)。アクセス権限切換部1212は、テーブルサイズ管理テーブル1220080のメモリ保護領域数とjを比較し(S1212009)、メモリ領域数がjよりも小さいステップ1212006に、大きい場合にはステップ12120010に進む。アクセス権限切換部1212は、前回プログラム切換ID管理テーブル1220070の前回プログラム切換IDを、取得したプログラム切換IDの値で更新する(S1212010)。
次に、本実施形態の車両用制御装置で行われる動作を図8を用いて説明する。
まず、ソフトウェア制御部1211は、プログラムNo.1として、非特権モードで動作する安全度水準QMのソフトウェア「QMアプリ1」を動作させている。そして、QMアプリ1の実行中に、ソフトウェア制御部1211は、プログラムNo.2として、非特権モードで動作する安全度水準ASILのソフトウェア「ASILアプリ1」を動作させようとする。このとき、「QMアプリ1」と「ASILアプリ1」とは、動作モードは非特権モードで同じであるため動作モード切換部による動作モード切換は不要であるが、安全度が異なることに起因してアクセス権限が異なるため、アクセス権限切換部がアクセス権限を切り換える。ここで、安全度水準(即ち、安全度水準がASILかQMか)に基づいて動作モードを切り換える方法では、動作させるソフトウェアを「QMアプリ1」から「ASILアプリ1」に変更する時点で動作モード切換部による動作モード切換が必要となる。しかし、本実施形態では、処理負荷(オーバヘッド)の大きな動作モード切換の処理が不要であり、アクセス権限切換の処理で済むため、ソフトウェアを「QMアプリ1」から「ASILアプリ1」に変更する際の処理を高速化する。
次に、ソフトウェア制御部1211は、プログラムNo.3として、非特権モードで動作する安全度水準ASILのソフトウェア「ASILOS」を動作させようとする。このとき、「ASILアプリ1」と「ASILOS」とでは動作モードが異なるため、動作モード切換部が動作モードを切り換える。ここでは、処理負荷の大きな動作モード切換の処理が発生する。
次に、ソフトウェア制御部1211は、プログラムNo.4として、非特権モードで動作する安全度水準QMのソフトウェア「QMアプリ2」を動作させようとする。このとき、「ASILOS」と「QMアプリ2」とでは動作モードが異なるため、動作モード切換部が動作モードを切り換える。ここでも、処理負荷の大きな動作モード切換の処理が発生する。
次に、ソフトウェア制御部1211は、プログラムNo.5として、非特権モードで動作する安全度水準ASILのソフトウェア「ASILアプリ2」を動作させようとする。従来であれば動作モード切換部による動作モード切換が必要であったが、本実施形態では動作モード切換は不要であり、アクセス権限切換部がアクセス権限を切り換える。
次に、ソフトウェア制御部1211は、プログラムNo.6として、非特権モードで動作する安全度水準QMのソフトウェア「QMアプリ3」を動作させようとする。ここで、安全度水準に基づいて動作モードを切り換える方法では、作モード切換部による動作モード切換が必要であるが、本実施形態では動作モード切換は不要であり、アクセス権限切換部がアクセス権限を切り換える。
このように、動作させるソフトウェアをプログラムNo.1から6まで順次変更する上記の例では、従来は4回必要であった動作モード切換が、本実施形態であれば2回で済む。このように、本実施形態によれば、動作するソフトウェアが順次変更されながら行われる車両制御全体としての負荷(オーバヘッド)を減少させることができる。
一般的に、車両制御に用いられるソフトウェアは、安全度が低いものの方が安全度が高いものに比べて多い。従って、安全度の比較的低いソフトウェア間ではアクセス権限切換によるメモリ保護を採用することで、動作モード切換が必要な対象を安全度の比較的高いソフトウェアに絞ることができる。即ち、動作モード切換が必要となる安全度を引き上げることができる。従って、全体として、動作モード切換の回数を減少させることができる。
以上のように、通常のソフトウェアアーキテクチャでは、一つのタスクに異なる安全度のソフトウェアが混在しており、異なる安全要求のソフトウェアにおいてパーティショニングを適用すると、メモリ保護ユニット(MPU)によるアクセス制限が発生する。従来手法ではアクセス権限切り換え処理は、実行中の処理の中断が伴うOSの割り込み機能によって実現されるため、既存のソフトウェアでは、メモリ保護ユニット(MPU)で管理するアクセス権限の切り換えが頻発し、処理中断によるオーバーヘッド増加が懸念されていた。
一方、本実施形態によれば、安全度水準の異なる複数のソフトウェアを動作させる場合であっても、処理負荷を抑えつつ安全性を確保することができる。即ち、メモリ保護装置112が管理するメモリ保護領域の活性状態を柔軟にコントロールすることで、同一の演算装置(CPU)11の動作モードで異なる安全度のソフトウェア間のメモリ保護を実現することができる。また、演算装置(CPU)11の動作モードの切換と、メモリ保護装置112が管理するメモリ保護領域の活性状態の設定を活用することで、OSの割り込み頻度の少ない高速なメモリアクセス権限の切換をすることができる。
なお、車両用制御装置がアクセス権限違反を検出した場合、ドライバにその旨を報知するものであっても良い。例えば、ユーザインタフェース用の車両用制御装置を含む複数の車両用制御装置が車載ネットワークを介して接続される車両制御システムを例に説明すると、いずれかの車両用制御装置がメモリアクセスの異常(即ち、違反)を検出した場合、ユーザインタフェース用の車両用制御装置に異常情報を送信し、異常情報を受信した前記ユーザインタフェース用の車両用制御装置がドライバーへの警告に関する指令を行う方法がある。
また、アクセス異常情報を記憶するバックアップメモリを車両用制御装置に設け、ソフトウェアのアクセスに権限違反があった場合には、バックアップメモリに保存するようにしてもよい。この場合には、車載ネットワークを介して解析ツールを車両用制御装置に接続し、解析ツールからメモリアクセス異常情報を要求するメッセージを送信することにより、このメッセージを受信した車両用制御装置がメモリアクセス異常情報を解析ツールに送信することで、メモリアクセス異常情報を取り出すことができる。
なお、上記実施形態においては、特権モードで動作可能なソフトウェアがASILOSであり、非特権モード動作ソフトウェアが安全度に応じて複数段階に区分される例を説明したが、これに限定されず、特権モード動作ソフトウェアが安全度に応じて複数段階に区分されるものであってもよい。この場合には、同じ特権モードにおいてアクセス権限切換部がソフトウェアの安全度に応じてアクセス権限を切り換える。一例としては、図17に示すように、ASIL OSとASIC−Cアプリが特権モード動作ソフトウェアであり、非特権モード動作ソフトウェアがASIL−Bアプリ、ASIL−Aアプリ、QMアプリである例が考えられる。

Claims (11)

  1. 記憶部と、
    該記憶部に記憶される複数のソフトウェアの動作を制御するソフトウェア制御部と、
    前記ソフトウェア制御部の動作モードを特権モードと非特権モードとの間で切り換える動作モード切換部と、
    前記記憶部に対する前記各ソフトウェアのアクセス権限を切り換えるアクセス権限切換部とを備えることを特徴とする車両用制御装置。
  2. 前記各ソフトウェアは、特権モードで動作可能な特権モード動作ソフトウェアと、非特権モードで動作可能な非特権モード動作ソフトウェアとに区分され、
    前記ソフトウェア制御部が動作させるソフトウェアを前記特権モード動作ソフトウェアと前記非特権モード動作ソフトウェアとの間で切り換える場合には、前記動作モード切換部が動作モードを切り換え、
    前記ソフトウェア制御部が動作させるソフトウェアを同じ動作モードで動作するソフトウェア同士の間で切り換える場合には、前記アクセス権限切換部が前記ソフトウェアの安全度に応じて前記アクセス権限を切り換えることを特徴とする請求項1記載の車両用制御装置。
  3. 前記非特権モード動作ソフトウェアは、安全度に応じて複数段階に区分されることを特徴とする請求項1記載の車両用制御装置。
  4. 前記ソフトウェアのアクセス権限を監視するアクセス権限違反監視部を備え、
    前記アクセス権限違反監視部がアクセス権限違反を検知すると処理を中止することを特徴とする請求項1記載の車両用制御装置。
  5. 前記ソフトウェアのアクセス権限を監視するアクセス権違反監視部を備え、
    前記アクセス権限違反監視部がにアクセス権限違反を検知すると違反に関する情報を保存することを特徴とする請求項1記載の車両用制御装置。
  6. 前記記憶部を分割して複数の記憶領域を設定する記憶領域設定部を備え、
    前記アクセス権限切換部は、前記複数の記憶領域に対し、異なるアクセス権限を設定することを特徴とする請求項1記載の車両用制御装置。
  7. 前記記憶部を分割して複数の記憶領域を設定する記憶領域設定部を備え、
    前記アクセス権限切換部は、前記複数の記憶領域の中の同じ記憶領域に対し、ソフトウェアの安全度に応じて異なるアクセス権限を設定することを特徴とする請求項1記載の車両用制御装置。
  8. 前記アクセス権限切換部は、前記複数の記憶領域ごとに設定されるアクセス権限のパターンを複数管理し、
    前記パターンを切り換えることにより、前記複数の記憶領域に対する個別のアクセス権限を一括して切り換えることを特徴とする請求項6又は7記載の車両用制御装置。
  9. 前記アクセス権限切換部は、前記記憶部に対して設定されるアクセス権限を、前記ソフトウェアの実行中に再設定することを特徴とする請求項1記載の車両用制御装置。
  10. 前記非特権モードで動作させるソフトウェアの範囲は、通常は前記特権モードで動作させるソフトウェアの一部を含む、ことを特徴とする請求項1に記載の車両用制御装置。
  11. 前記アクセス権限切換部が、
    前記ソフトウェア制御部が前記非特権モードで動作し、第1の安全度水準が設定された第1のソフトウェアを動作させ、
    前記第1のソフトウェアの実行中に、前記非特権モードで動作し、前記第1の安全度水準よりも高い第2の安全度水準が設定された第2のソフトウェアを動作させようとする際に、
    前記アクセス権限切換部がアクセス権限を切り換える、ことを特徴とする請求項10、又は1に記載の車両用制御装置。
JP2017125749A 2017-06-28 2017-06-28 車両用制御装置 Active JP6349444B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017125749A JP6349444B2 (ja) 2017-06-28 2017-06-28 車両用制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017125749A JP6349444B2 (ja) 2017-06-28 2017-06-28 車両用制御装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013202960A Division JP2015067107A (ja) 2013-09-30 2013-09-30 車両用制御装置

Publications (2)

Publication Number Publication Date
JP2017204286A true JP2017204286A (ja) 2017-11-16
JP6349444B2 JP6349444B2 (ja) 2018-06-27

Family

ID=60323317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017125749A Active JP6349444B2 (ja) 2017-06-28 2017-06-28 車両用制御装置

Country Status (1)

Country Link
JP (1) JP6349444B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020166328A1 (ja) * 2019-02-13 2020-08-20 オムロン株式会社 制御装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007287103A (ja) * 2006-04-20 2007-11-01 Nec Electronics Corp マイクロコンピュータ及びメモリアクセスの制御方法
US20120210085A1 (en) * 2009-10-15 2012-08-16 Fts Computertechnik Gmbh Method for executing security-relevant and non-security-relevant software components on a hardware platform
JP2013109393A (ja) * 2011-11-17 2013-06-06 Toyota Motor Corp 情報処理装置およびメモリ保護装置の動作確認方法
JP2013161299A (ja) * 2012-02-06 2013-08-19 Toyota Motor Corp 情報処理装置、インタフェースアクセス方法
JP2013171467A (ja) * 2012-02-21 2013-09-02 Toyota Motor Corp 情報処理装置、車両用電子制御装置、データ読み書き方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007287103A (ja) * 2006-04-20 2007-11-01 Nec Electronics Corp マイクロコンピュータ及びメモリアクセスの制御方法
US20120210085A1 (en) * 2009-10-15 2012-08-16 Fts Computertechnik Gmbh Method for executing security-relevant and non-security-relevant software components on a hardware platform
JP2013109393A (ja) * 2011-11-17 2013-06-06 Toyota Motor Corp 情報処理装置およびメモリ保護装置の動作確認方法
JP2013161299A (ja) * 2012-02-06 2013-08-19 Toyota Motor Corp 情報処理装置、インタフェースアクセス方法
JP2013171467A (ja) * 2012-02-21 2013-09-02 Toyota Motor Corp 情報処理装置、車両用電子制御装置、データ読み書き方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020166328A1 (ja) * 2019-02-13 2020-08-20 オムロン株式会社 制御装置
JP2020135046A (ja) * 2019-02-13 2020-08-31 オムロン株式会社 制御装置
JP7115351B2 (ja) 2019-02-13 2022-08-09 オムロン株式会社 制御装置
US11875065B2 (en) 2019-02-13 2024-01-16 Omron Corporation Control device

Also Published As

Publication number Publication date
JP6349444B2 (ja) 2018-06-27

Similar Documents

Publication Publication Date Title
WO2015045507A1 (ja) 車両用制御装置
US10127161B2 (en) Method for the coexistence of software having different safety levels in a multicore processor system
US10489332B2 (en) System and method for per-task memory protection for a non-programmable bus master
CN108351840B (zh) 车辆控制装置
US7523229B2 (en) Memory protection during direct memory access
JP2009251967A (ja) マルチコアシステム
US20220052871A1 (en) Vehicle control system, vehicle control method, and non-transitory computer-readable medium in which vehicle control program is stored
JP2001014220A (ja) ソフトウェア制御される電子装置のパーティション分割および監視方法
JPWO2017098643A1 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JP5533789B2 (ja) 車載電子制御装置
JP2013161299A (ja) 情報処理装置、インタフェースアクセス方法
JP5975923B2 (ja) 車両用制御装置
JP6349444B2 (ja) 車両用制御装置
CA2551045C (en) Input-output control apparatus, input-output control method, process control apparatus and process control method
US10269194B2 (en) Multiprocessor system and vehicle control system
JP2019049928A (ja) 電子制御装置及び電子制御装置の制御方法
US11947970B2 (en) Information processing device, moving object, and information processing method
CN110574343A (zh) 用于保护车辆安全系统的操作系统的方法和半导体电路
EP3246821B1 (en) Semiconductor device and its memory access control method
CN107179980B (zh) 用于监视计算系统的方法和相应的计算系统
JP5842833B2 (ja) 情報処理装置、プログラム
JP2017204083A (ja) メモリ保護システム
CN108700861B (zh) 用于运行用于机动车的控制设备的方法
JP5703505B2 (ja) バスパーティション構造を備えるコンピュータ
JP2015099517A (ja) 車両制御装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180413

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180604

R150 Certificate of patent or registration of utility model

Ref document number: 6349444

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350