JP2009054041A - 模擬マイクロコンピュータ装置 - Google Patents
模擬マイクロコンピュータ装置 Download PDFInfo
- Publication number
- JP2009054041A JP2009054041A JP2007221670A JP2007221670A JP2009054041A JP 2009054041 A JP2009054041 A JP 2009054041A JP 2007221670 A JP2007221670 A JP 2007221670A JP 2007221670 A JP2007221670 A JP 2007221670A JP 2009054041 A JP2009054041 A JP 2009054041A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- abnormality
- microcomputer
- unit
- program
- 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
Links
Images
Abstract
【課題】CPUに暴走等の異常が発生しても、制御対象が安全に作動可能な模擬マイクロコンピュータ装置を提供する。
【解決手段】模擬マイクロコンピュータ装置は、制御対象の動作を制御するためのプログラムである第一のプログラムを実行する第一のCPUと、第一のCPUの周辺リソースとして機能し、前記第一のCPUからの前記制御対象を制御するための信号の出力を制御する第二のプログラムを実行する第二のCPUと、第一のCPUと第二のCPUの異常を監視し、第一のCPUと第二のCPUの少なくとも一方の異常を検出すると、第二のCPUにリセット信号を出力する異常監視部とを備え、前記リセット信号が入力されると、第二のCPUは前記制御対象が安全な動作を行なうように制御するプログラムである第三のプログラムを実行するように構成される。
【選択図】図6
【解決手段】模擬マイクロコンピュータ装置は、制御対象の動作を制御するためのプログラムである第一のプログラムを実行する第一のCPUと、第一のCPUの周辺リソースとして機能し、前記第一のCPUからの前記制御対象を制御するための信号の出力を制御する第二のプログラムを実行する第二のCPUと、第一のCPUと第二のCPUの異常を監視し、第一のCPUと第二のCPUの少なくとも一方の異常を検出すると、第二のCPUにリセット信号を出力する異常監視部とを備え、前記リセット信号が入力されると、第二のCPUは前記制御対象が安全な動作を行なうように制御するプログラムである第三のプログラムを実行するように構成される。
【選択図】図6
Description
本発明は、機器を制御するマイクロコンピュータに組み込まれるソフトウェアを開発し評価するためのソフトウェア開発装置等に用いられる模擬マイクロコンピュータ装置に関する。
電子機器を制御するマイクロコンピュータを備えた電子制御装置、例えば車両のエンジンを制御する電子制御ユニット(ECU)のような電子制御装置では、エンジン等の制御対象機器の高性能化、高機能化といった技術トレンドに沿って、使用されるマイクロコンピュータの性能も年々進化しており、現状の電子制御装置に使用されているマイクロコンピュータの性能よりも進化したマイクロコンピュータを想定して新しいアプリケーションプログラム(ロジック)が開発されている。
通常、性能が進化した次世代のマイクロコンピュータは開発時点で存在せず、現在のマイクロコンピュータよりも性能を向上させた次期マイクロコンピュータが組み込まれた電子制御装置が実在しない場合、現状のマイクロコンピュータをベースにして先行ロジックの開発を行なわざるを得ない。
しかし、現状のマイクロコンピュータが組み込まれた電子制御装置を用いて先行ロジックの先行開発を行う場合には、現状のマイクロコンピュータに搭載されているCPUの処理能力の不足、メモリ容量の不足、周辺リソースの不足等の問題があるため、次期マイクロコンピュータ及びそのアプリケーションプログラムの開発が遅れ、新製品の開発に支障を来たしていた。
尚、現状の電子機器に組み込まれているマイクロコンピュータは、電子機器のコストを低く抑えるために、現状のシステムに最適な仕様でCPU性能及び周辺機能が選択され、CPUやCPUの周辺リソースが1つのパッケージの中に組み込まれているため、それぞれの機能変更はマイクロコンピュータを変更しない限り不可能である。
そこで、特許文献1には、アプリケーション処理機能と通信機能を備えた中央ブロックと、マイクロコンピュータの周辺装置を擬似的にソフトウェアで実現して入出力処理を行う疑似マイクロコンピュータ周辺装置、演算機能、及び通信機能を有し、前記中央ブロックとPCIバスで接続される周辺ブロックと、電子制御ユニットのハードウェアに相当する回路を有し、前記周辺ブロックに接続するインタフェース回路ブロックとを備え、前記中央ブロックの通信機能と、前記疑似マイクロコンピュータ周辺装置との間にある前記演算機能に、バスコントローラが設けられ、前記PCIバスで前記中央ブロックの通信機能とこのバスコントローラとの間が接続され、前記バスコントローラと前記疑似マイクロコンピュータ周辺装置との間は内部バスで接続され、前記PCIバス、前記バスコントローラ、及び前記内部バスを介して、前記通信機能と前記疑似マイクロコンピュータ周辺装置との間で、直接データの送受信が行われるように構成されたソフトウェア開発装置が提案されている。
当該ソフトウェア開発装置では、中央ブロック及び周辺ブロックに、マイクロコンピュータのCPUと周辺リソースとを接続するバス相当の機能を実現するソフトウェアであるIOドライバが実装され、その間がPCIバスで接続されるとともに、中央ブロックにはIOドライバとアプリケーションプログラムを接続するソフトウェアであるプラットフォームが実装され、周辺ブロックにはFPGAでなる疑似マイクロコンピュータ周辺装置がファームウェアとして実装されている。
特開2004−234530号公報
上述した従来のソフトウェア開発装置は、図1に示すように、CPUと割り込みコントローラやキャプチャ等の周辺リソースで構成されるマイクロコンピュータの機能を分解して、アプリケーションプログラムを実行するCPUの処理内容を中央ブロックであるCPUボードに割り付け、マイクロコンピュータの周辺リソースによる処理内容を周辺ブロックであるIOボードに割り付けていたために、マイクロコンピュータのCPUが処理していた周辺リソースに対するI/O処理(図中、「マイコンI/O」と記す。)をCPUボードで処理する構成となっていた。
しかし、このような周辺リソースに対するI/O処理はマイクロコンピュータのハードウェア構成に依存する処理であったために、模擬するマイクロコンピュータが変更される度に、CPUボードをそれに合わせるべくI/O処理を実行するIOドライバを交換したり、場合によってはCPUボード自体を交換しなければならなかった。
つまり、上述した従来のソフトウェア開発装置であっても、中央ブロックに実装されるプラットフォームやIOドライバがアプリケーションプログラムと完全に分離されず、一部がアプリケーションプログラムに組み込まれていたこともあり、ターゲットとするマイクロコンピュータを変更する場合には、それに対応して周辺ブロックのファームウェアやIOドライバを変更するばかりでなく、中央ブロックに実装されるプラットフォームやIOドライバ、さらにはアプリケーションプログラムを変更して交換するという煩雑な作業が要求されるものであったため、汎用化という観点で更なる改良の余地があった。
そこで、本願発明者らは、ターゲットとするマイクロコンピュータが変更される場合であっても迅速に対応でき、スピーディなソフトウェア開発が可能となる模擬マイクロコンピュータ装置として、マイクロコンピュータに設けられるCPUによって処理されるアプリケーションプログラムを実行する第一のCPUと、マイクロコンピュータに設けられる周辺リソースとして機能する第二のCPUと、第一のCPUと第二のCPUとの間でのデータの遣り取りを行なう共有メモリを備え、周辺リソースとなる第二のCPUに対する入出力処理をFPGAで実行するIO処理部を備えた模擬マイクロコンピュータ装置を開発中である。
このような模擬マイクロコンピュータ装置を実際の車両に搭載して、先行ロジックの検証を行なう場合には、最終製品であるマイクロコンピュータと異なりノイズ耐性が弱いため、CPUに暴走等の異常が発生したり、共有メモリに異常なデータが書き込まれたときでも、事故の発生を未然に回避すべく、種々の安全機能を備える必要がある。
通常、マイクロコンピュータ装置にはCPUの異常を検出してリセット信号を出力するウォッチドッグ回路等の異常監視装置が設けられているが、複数のCPUが協働して作動するように複雑に構成された模擬マイクロコンピュータ装置では、各CPUにリセット信号が出力されても、個々のCPUが立ち上がり、制御対象を適切に制御できるようになるまで時間が掛かり、制御対象の安全性の確保という点で更なる改善の余地があった。
また、模擬マイクロコンピュータ装置から取り出される各種の制御データを検証して開発ロジックの評価が行なわれるのであるが、そのような異常監視装置が作動した時点で、既に検証データの信頼性も損なわれるため、データの信頼性管理も要求されていた。
本発明は、上述の問題点に鑑み、CPUに暴走等の異常が発生したときでも、制御対象の安全な動作が確保できる模擬マイクロコンピュータ装置を提供し、メモリに異常なデータが書き込まれたときでも、検証データの信頼性が確保できる模擬マイクロコンピュータ装置を提供する点にある。
上述の目的を達成するため、本発明による模擬マイクロコンピュータ装置の特徴構成は、制御対象の動作を制御するためのプログラムである第一のプログラムを実行する第一のCPUと、第一のCPUの周辺リソースとして機能し、前記第一のCPUからの前記制御対象を制御するための信号の出力を制御する第二のプログラムを実行する第二のCPUと、第一のCPUと第二のCPUの異常を各別に監視し、第一のCPUと第二のCPUの少なくとも一方の異常を検出すると、第二のCPUにリセット信号を出力する異常監視部とを備え、前記リセット信号が入力されると、第二のCPUは前記制御対象が安全な動作を行なうように制御するプログラムである第三のプログラムを実行する点にある。
上述の構成によれば、異常監視部により第一のCPUまたは第二のCPUの何れかの異常が検出されてリセット信号が出力されると、第二のCPUにより前記制御対象が安全な動作を行なうように制御する第三のプログラムが実行されるため、制御対象が異常な動作を行なうことによって生じる事故を防ぐことができるようになる。
以上説明した通り、本発明によれば、CPUに暴走等の異常が発生しても、制御対象が安全に作動可能な模擬マイクロコンピュータ装置を提供することができるようになった。
以下に、本発明による模擬マイクロコンピュータ装置で構成されるソフトウェア開発装置の実施形態を説明する。
以下に、制御対象である車両のエンジンを制御する電子制御ユニット(以下、「ECU」と記す。)に組み込まれるマイクロコンピュータのアプリケーションプログラムの先行開発に、模擬マイクロコンピュータ装置が適用される場合を説明する。尚、模擬マイクロコンピュータ装置は、車両に搭載される電子制御ユニットのアプリケーションプログラムの開発用途に限るものではなく、制御用のマイクロコンピュータを備えたOA機器のアプリケーションプログラムの開発等、組み込みソフトウェアの開発に広く適用可能なものである。
図2に示すように、模擬マイクロコンピュータ装置(以下、「ソフトウェア開発装置」と記す。)100は、車両CのエンジンENGがマウントされるエンジンルームに配置されるECU101の接続コネクタを外し、ECU101に替えてこのコネクタに接続されるハーネスHをソフトウェア開発装置100に直接接続して使用される。
ソフトウェア開発装置100は、表示装置210やデータを入力するためのキーボード220を備えた上位のホストコンピュータ200に接続されている。S1,S2はそれぞれロジック装置200とホストコンピュータ200を動作させるための電源スイッチである。ソフトウェア開発装置100の状態が表示装置210でモニタされ、ソフトウェア開発装置100の各種の動作モードの設定がキーボード220を介して行なわれる。
ソフトウェア開発装置100は、車両Cに搭載してエンジンENGに直接接続して使用することができ、パーソナルコンピュータ240に制御され、車両の様々な運転状況を擬似的に発生することができる車両の運転状況発生装置230に接続して、車両Cが存在しない場合でもECU101に組み込まれるマイクロコンピュータのアプリケーションプログラムが開発できるように構成されている。
一般に、ECU101は、図3に示すように、エンジン回転数信号や車速信号等のパルス入力、水温センサや吸気温センサ等からのアナログ入力、及びスタータスイッチ、電気負荷スイッチ、シフト位置スイッチやエアコン信号等のデジタル入力が入力されるバッファBと、バッファBに入力された信号を処理するマイクロコンピュータMと、マイクロコンピュータMで処理された信号を増幅して出力するドライバDを備えて構成されている。
シフト制御ソレノイドやVVT(可変バルブタイミング)ソレノイドへのアナログ出力、点火信号や燃料の噴射信号等のパルス出力、ISC(アイドル速度制御)用のパルス出力、及び、チェックエンジンランプ、メインリレーやエヤコンカット信号等のデジタル信号等がECU101からドライバDを介してエンジンに出力される。
マイクロコンピュータMは、アプリケーションプログラムが格納されるROMや演算処理に使用されるRAMを備えたメモリ109、アプリケーションプログラムを実行するCPU102、及び、入出力制御を行う周辺リソースが一つのパッケージに収納されたものである。
周辺リソースには、入力系のリソースと出力系のリソースが含まれ、入力系のリソースとしてデジタル信号を扱う入力ポート103とラッチポート104、アナログ入力を扱うA/Dコンバータ105、及びパルス入力を扱うキャプチャ106等が設けられ、出力系のリソースとしてデジタル信号を出力する出力ポート112、パルス信号を出力するPWM(パルス幅変調器)113とコンペア114、及びアナログ信号を出力するシリアル115等が設けられている。
これらの周辺リソースは内部バス110によってメモリ109及びCPU102に相互に接続されている。また、マイクロコンピュータMの内部には、これらの周辺リソースに加えて、内部タイマ107や割り込みコントローラ108が設けられている。
車両の運転状態を表す各センサやスイッチ類からの信号が入力回路であるバッファBを介してECU101に取り込まれると、ECU101の入力回路で入力信号が信号処理され、マイクロコンピュータMに入力される。入力された信号は入力系の周辺リソースでCPUが処理可能な値に変換され、演算部であるメモリ109とCPU102では入力信号から車両状態が検出され、車両状態に応じた出力要求信号が生成される。
この出力要求信号は前述の出力系の周辺リソースで出力信号に変換され、マイクロコンピュータMから出力される。ECU101の出力回路であるドライバDはこの出力信号に従って車両に装備された各アクチュエータを駆動し、この出力制御の結果が破線で示すように、車両からの入力信号に反映される。
本発明によるソフトウェア開発装置100は、上述したECU101に搭載されるべきターゲットとなる新規なマイクロコンピュータ(以下、「仮想マイクロコンピュータ」と記す。)を模擬するエミュレータとして機能し、図4及び図5に示すように、マザーボード10と、IOボード20と、インタフェースボード30とからなる模擬部を備えている。
マザーボード10には、第一のアプリケーションプログラムであるエンジン制御プログラムを実行する第一のCPU12と、メモリと、PCIバスインタフェース回路と、PCIバスを中継するブリッジであるスターファブリックのような高速LANインタフェース回路が搭載されている。第一のCPU12は、例えば、インテル社のペンティアムプロセッサ(ペンティアムはインテル社の登録商標)のような汎用のパーソナルコンピュータに用いられる数GHzの高機能のCPUが用いられる。
IOボード20には、ターゲットとなる仮想マイクロコンピュータの入力系及び出力系の周辺リソースとして機能させる第二のアプリケーションプログラムを実行する第二のCPUを備えたマイクロコンピュータで構成されるファームウェア21と、百数十MHzで動作するCPUと、メモリと、仮想マイクロコンピュータのCPUと入出力系のリソースを接続する機能を模擬し、第一のCPUと第二のCPU間を接続する内部バスとして機能する共有メモリ部24を備えたIO処理部23と、PCIバスインタフェース回路と、PCIバスを中継するブリッジであるスターファブリックのような高速LANインタフェース回路が搭載されている。
共有メモリ部24は、ファームウェア21との間で遣り取りされる制御データやインタフェースボード30との間で遣り取りされる入出力データを格納する複数のレジスタを備えたFPGA(Field Programmable Gate Alley)で構成される。IOボード20のメモリには、共有メモリ部24に格納された制御データ等をマザーボード10側と遣り取りするPCI通信ドライバ26、LAN通信ドライバ28等が格納されている。
インタフェースボード30には、ファームウェア21とエンジンEGNまたは上述の運転状況発生装置230との間を接続する入出力回路31が搭載されている。
マザーボード10とIOボード20間は、データ通信バスとしてのPCIバスで接続され、IOボード20とインタフェースボード30間は複数の入出力信号ラインで接続されている。
第一のCPU12を備えたマザーボード10により仮想マイクロコンピュータのCPUが模擬され、第二のCPUを備えたファームウェア21により仮想マイクロコンピュータのCPUの周辺リソースが模擬され、IO処理部23により仮想マイクロコンピュータのCPUと周辺リソース間のIO処理が実行されることにより模擬マイクロコンピュータ装置が構成されている。
以下、詳述する。マザーボード10のメモリには、第一のアプリケーションプログラムとしてのエンジン制御用のアプリケーションプログラム15、PCI通信ドライバ16、PCIを介して後述の共有メモリ部にアクセスする仮想レジスタとしてのメモリドライバ17、IOボード20との通信を行なう第一のLAN通信ドライバ18、ホストコンピュータ200との通信を行なう第二のLAN通信ドライバ等が格納されている。
第一のアプリケーションプログラム15とメモリドライバ17は相互に独立して構築され、メモリドライバ17を介して共有メモリ部24から読み出された制御信号が第一のアプリケーションプログラム15に引き渡され、第一のアプリケーションプログラム15で演算された出力データがメモリドライバ17を介して共有メモリ部に格納される。
ファームウェア21で発生し、アプリケーションプログラムにより実行される各演算を起動する割込みイベント等の制御データがPCIバスを介して共有メモリ部22に記憶され、共有メモリ部24に記憶された制御データがPCIバスを介してマザーボード10に読み取られるように構成されている。読み取られた制御データに基づいて実行されるアプリケーションプログラムの演算結果である出力信号がPCIバスを介して共有メモリ部24に記憶された後に各ファームウェア21を介してインタフェースボード30に出力される。
ファームウェア21は上述したように既存のマイクロコンピュータをコアとして構成され、当該マイクロコンピュータのROMに格納された第二のアプリケーションプログラムである制御プログラムに基づいて、上述した入力ポート103やラッチポート104、A/Dコンバータ105、キャプチャ106、出力ポート112、PWM(パルス幅変調器)113やコンペア114、シリアル115、内部タイマ107等の周辺リソースが模擬される。尚、個々の周辺リソースをFPGAやハードウェア回路で構成することも可能であるが、既存のマイクロコンピュータを用いて構成することにより、異なる周辺リソースを容易に構築でき、ターゲットとなる仮想マイクロコンピュータに応じてフレキシブル且つ迅速に機能を変更することができる。
当該マイクロコンピュータのROMには、第二のアプリケーションプログラムに加えて第三のプログラムとしての保護プログラムが格納され、後述する異常監視部により第一のCPUまたは第二のCPUに異常が発生したと検出された後に実行され、制御対象となるエンジン及びエンジンが搭載された車両を保護するように構成されている。
各ファームウェア21は外部割込み信号線とデータ転送用の外部メモリバスを介して共有メモリ部22と接続され、各ファームウェア21で発生したイベントが外部割込み信号線を介して共有メモリ部22に格納されると、仮想レジスタとしてのメモリドライバ17によりPCIバスを介して読み取られて第一のアプリケーションプログラムに引き渡され、第一のアプリケーションプログラムで設定されている所定の演算処理が起動される。
インタフェースボード30は、ポート割付変換ボードと、ポート割付変換ボードのコネクタに挿入される複数の標準回路ボード及び機能ボードでなる入出力回路31を備え、ポート割付変換ボードに挿入される標準回路ボード及び機能ボードの組み合わせにより任意の数の入出力回路を実現できるように構成されている。標準回路ボードはウォーニングランプの点灯信号やCANバス等のシリアル信号を入出力するドライバ回路やバッファ回路を備えたデジタル信号回路で構成され、機能ボードはパワートレーン出力回路、アナログ信号入出力回路、エンジンに対する噴射信号、点火信号、電子スロットル制御信号等を入出力する信号処理用の低機能マイクロコンピュータを備えた入出力処理回路で構成されている。
以上説明したように、マザーボード10とIOボード20によりターゲットとなる仮想マイクロコンピュータが模擬され、インタフェースボード30により仮想マイクロコンピュータの周辺入出力回路が模擬され、インタフェースボード30を介して制御対象であるエンジンEGNと接続可能に構成されることにより、アプリケーションプログラムが実行されるECUとしての実環境が模擬される。
このような構成を採用することにより、第一のCPUと、第二のCPUを備えた周辺リソース間のI/O処理がIOボード上に具現化されるため、ターゲットとなる仮想マイクロコンピュータが変更された場合であっても、マザーボード上のアプリケーション等を変更する必要が無く、共有メモリに定義されるデータマップの変更や追加に対応して必要な場合に共有メモリに対するインタフェースドライバであるメモリドライバをマッチングさせるだけで対応できるようになる。
上述のソフトウェア開発装置100の基本動作について説明する。アプリケーションプログラムは、時間同期処理(時間系割り込み処理)と非時間同期処理の2つの処理を行なう。時間同期処理は外部状態に依存せず、一定の時間間隔で定期的に行う処理であり、非時間同期処理は、外部状態、即ち、エンジンの運転状態に依存して発生する処理である。この非時間同期処理には、例えば、エンジンの回転信号、車速信号、燃料の噴射タイミング信号、点火タイミング信号等による割り込み処理が含まれる。このような外部状態によりランダムに変化する事象をイベントと呼ぶこととすると、非時間同期処理は、外部状態によりイベント情報を検出して、そのイベントに同期して行なう処理ということができる。
上述の時間同期処理と非時間同期処理とを行なうために、マザーボード10には、仮想マイクロコンピュータ周辺として機能するべく、時間系割り込みと非時間系割り込みを発生させるとともに入出力データを格納する仮想レジスタが設けられており、メモリドライバ17により読み書きされる共有メモリ部22上のデータが仮想レジスタに格納され、第一のCPUに読み取られるように構成されている。
第一のアプリケーションプログラムは、共有メモリ部22に書き込まれた外部イベント(ファームウェアのタイマ、エンジン回転信号、車速信号、通信信号等によりセットされる割込みフラグ)が起点となって動作するように、割込みフラグによって起動する割込みルーチンを備え、外部割込みフラグの入力があると、この割込みルーチンが起動するようになっている。
仮想レジスタに割込み要因が1つでも存在すれば、その時のIOデータが仮想レジスタから読み出され、対応する第一のアプリケーションプログラムの一部が起動され、割込みフラグがリセットされて所定の演算処理が実行され、その結果である出力データが仮想レジスタに書き込まれる。
仮想レジスタに書き込まれた出力データはメモリドライバ17によりIOボード20の共有メモリ部22の所定領域に書き込まれ、その値が模擬周辺機能ブロックであるファームウェア21に出力される。尚、大量のデータを送受信する場合は、バースト転送が行われ、通信効率が上げられる。ポートデータやラッチデータ等の速度が要求されないビットデータは、メモリドライバの前処理、後処理で一括して送受信される。
このようにしてファームウェア21で検出された外部イベントやタイマ割込みがFPGAで構成される共有メモリ部22に割込みフラグとして格納されたことがメモリドライバにより読み出されることにより順次アプリケーションプログラムが実行される。
図6に示すように、上述の模擬マイクロコンピュータ装置100には、第一のCPU12と第二のCPU22の異常を各別に監視し、第一のCPUまたは第二のCPUの何れかの異常を検出すると、第二のCPU22にリセット信号を出力する異常監視部4を備えている。
異常監視部4は、模擬マイクロコンピュータ装置100に電源を供給する電源回路に備えた第一のウォッチドッグ回路41と、共有メモリ部24(IO処理部の一部)を構成するFPGAに設けられた第二のウォッチドッグ回路42と、第一または第二のウォッチドッグ回路41,42の何れかから出力されるリセット信号により第二のCPU22にリセット信号を出力するANDゲート回路43で構成されている。
第一のウォッチドッグ回路41は、第一のCPUのシリアル出力ポート(例えばRC232CやUSBポート)から出力され、第二のCPU22を経由して入力されたるウォッチドッグパルスWDCを監視し、第二のウォッチドッグ回路42は複数(本実施形態では二つ)のCPU22から出力されたウォッチドッグパルスWDC1,WDC2を監視する。
異常監視部4は、夫々のウォッチドッグパルスが所定時間継続して入力されないときに、監視対象である何れかのCPUに暴走等の異常が発生したと判断してリセット信号を出力する。ウォッチドッグ回路の具体的構成は特に限定されるものではなく、公知の構成を採用することができる。
また、図7に示すように、第一のウォッチドッグ回路41をFPGA上に構成し、第一及び第二のCPUの異常をFPGAで検出するように構成するものであってもよい。
模擬マイクロコンピュータ装置100に電源が投入され、起動すると、第一のアプリケーションプリグラムが第一のCPU12により実行され、第一のアプリケーションプリグラムを実行する第二のCPU22により実現される周辺リソース21とインタフェースボード30を介してエンジンENGが制御される。同時に、第一のCPU12は、共有メモリ部24を介して得られたエンジンEGNとの間の制御データをLANを介してホストコンピュータ200に送信する。ホストコンピュータ200は、第一のCPU12から送信された制御データをオペレータが目視できるように表示装置210(図2参照)に表示し、内部のメモリに記憶する。
図8に示すように、模擬マイクロコンピュータ装置100が作動している間、異常監視部4により第一のCPU12及び第二のCPU22が監視され、第一のウォッチドッグ回路41または第二のウォッチドッグ回路42の何れか一方または双方からリセット信号が出力されると(SA1,SA2,SA3)、ANDゲート回路43を介して第二のCPU22がリセットされる(SA4)。ANDゲート回路43から出力されるリセット信号は、第一のウォッチドッグ回路41の動作に関与しないFPGAに、第一のウォッチドッグ回路41から出力されるリセット信号をモニタするために、信号線(図6中、破線で示す。)を介してモニタ信号として入力される。
FPGAでは、モニタ信号が入力され、或は、第二のウォッチドッグ回路42からリセット信号が出力されると、内部レジスタの所定領域にCPU異常(制御異常)が発生した旨のフラグを設定し(SA5)、警報のために報知部でブザーを鳴動させ(SA6)、第二のCPU22に対してCPU異常発生信号を出力する(SA7)とともに、共有メモリの所定領域にCPU異常発生データを書き込む(SA8)。
図9に示すように、第二のCPU22は、異常監視部4から出力されたリセット信号に基づくリセット状態から復帰すると(SB1,Yes)、退避走行モードに移行し(SB2)、パワーオンリセット回路からのリセット信号に基づくリセット状態から復帰すると(SB1,No)、ステップSB3の処理に移行する。ここで、異常監視部4から出力されたリセット信号によるリセットであるか否かの判断は、FPGAの内部レジスタにセットされたCPU異常フラグに基づいてFPGAから出力されるCPU異常発生信号によって行なわれる。
CPU異常発生信号が出力されていない正常状態のときには(SB3)、第二のアプリケーションプログラムである通常のプログラムを実行してファームウェアとして機能し(SB3)、退避走行モードのときには(SB3)、第二のアプリケーションプログラムの実行に替えて、制御対象であるエンジンEGNを保護する第三のプログラムである保護プログラムを実行する(SB5)。
システムの電源がオフされるまでステップSB3からの処理を繰り返し、システムの電源がオフされると処理を終了する(SB6)。つまり、IO処理部は、異常監視部4から出力されたリセット信号を検出すると、CPU異常発生信号を出力して第二のCPU22により保護プログラムが実行されるように制御する。
ステップSB5では、第二のCPU22は、第一のCPU12の状態に関わらず保護プログラムを実行し、エンジンEGNを低速の退避走行モードに制御することにより車両、エンジン、乗員であるオペレータを保護する。尚、保護プログラムにはエンジンを制御信号を遣り取りする第二のアプリケーションプログラムの一部機能と、安全に車両が停止できるようにエンジンを制御する第一のアプリケーションプログラムの一部機能が組み込まれている。
本実施形態では、二つの第二CPU22のうちの一方が第二アプリケーションプログラムまたは保護プログラムを実行し、他の第二のCPU22が予備として設けられているが、複数の第二CPU22を通信線で接続して、協働して保護プログラムを実行するように構成してもよい。この場合に、第二のCPU22は、夫々異なる第二アプリケーションプログラムを独立して実行することにより夫々異なる入出力リソースを模擬するように構成できる。
尚、第二のCPU22で保護プログラムが実行されている間、つまり、内部レジスタにCPU異常発生フラグが設定されているときに、IO処理部23は、第一のCPU12から共有メモリに制御データが書き込まれても第二のCPU22に対して第一のCPU12からの出力データの出力処理を行なわない。
図10に示すように、第一のCPU12は、異常監視部4から出力されたリセット信号に基づくリセット状態から復帰すると(SC1,Yes)、走行制御データ及び試験データに異常が発生していると判断して、ホストコンピュータ200に制御異常発生情報及びデータ異常発生情報を送信する(SC2)。尚、異常監視部4からのリセット信号に基づくリセット状態であったか否かは、共有メモリにセットされたCPU異常発生データにより判断される。
次に、第一のCPU12は第一のアプリケーションプログラムを実行し(SC3)、共有メモリに異常が発生すると(SC4)、ホストコンピュータ200に試験データ異常発生情報を送信する(SC5)。システムの電源がオフされるまでステップSC3からの処理を繰り返し、システムの電源がオフされると処理を終了する(SC6)。
走行制御データ異常発生情報が送信されたホストコンピュータ200は、第一のCPU12から送信された制御データのモニタ処理を中断し、表示装置210にCPUに異常が発生した旨のメッセージを表示する。
試験データ異常発生情報が送信されたホストコンピュータ200は、第一のCPU12から送信された制御データのモニタ処理を中断し、表示装置210に共有メモリに異常が発生した旨のメッセージを表示する。
共有メモリの異常はFPGAに備えたメモリ監視部により検出され、その結果が共有メモリの所定領域に格納される。メモリ監視部は定期的に共有メモリの異常発生を監視するために共有メモリの所定領域にベリファイ用のデータを書き込み、その後読み出して、書込みデータと読出しデータを照合する。照合の結果、書込みデータと読出しデータが不一致のときに共有メモリに異常が発生したと判断して、メモリ異常発生情報を共有メモリの所定領域に格納するのである。
共有メモリに異常が発生すると、ホストコンピュータ200によりモニタされている制御データの信頼性が損なわれたと判断して、そのようなデータを評価から排除するためにこのような処理が行なわれる。尚、共有メモリをブロックに分割構成することにより、同時に全ての共有メモリが破損することが無いように配慮され、ブロック毎にメモリ異常発生情報の書込み領域を設定すればよい。
このように、何れのCPUに異常が生じたときでも第二のCPU22がリセットされ、正常復帰した第二のCPUにより車両の安全確保のために保護プログラムが実行されることにより、制御対象が異常な動作を行なうことによって生じるエンジンの破壊等の事故を防ぐことができ、さらには、エンジンが異常な動作をすることによって生じる交通事故を防ぐことができる。第一のCPU12が正常時に第二のCPU22に異常が生じた場合には、IO処理部を介して第一のCPU12にCPU異常情報が出力され、ホストコンピュータを介してオペレータに異常発生が報知される。このとき、第一のCPU12は待機状態を維持する。
第二のCPU22が正常時に第一のCPU12に異常が生じた場合には、報知部から発せられるブザーの鳴動音によりオペレータに異常発生が報知される。
以上説明したように、模擬マイクロコンピュータ装置は、ホストコンピュータに接続され、制御対象の動作を制御するアプリケーションプログラムを、マイクロコンピュータを模擬した環境で実行する模擬部と、模擬部によって制御対象の制御が行なわれる際のデータが記憶されるメモリ部と、メモリ部の異常を監視し、異常を検出すると、模擬部にメモリ異常信号を出力するメモリ監視部と、模擬部の異常を監視し、異常を検出すると、模擬部にリセット信号を出力する異常監視部とを備えて構成され、模擬部は、リセット信号が入力されると、制御対象が安全な動作を行なうように制御する保護プログラムを実行するとともに、ホストコンピュータに制御異常発生情報を送信し、メモリ異常信号が入力されるとホストコンピュータにデータ異常発生情報を送信するように構成されている。
上述した実施形態では、第一のCPU12として汎用の高機能CPUが用いられるものを説明したが、想定される次世代のマイクロコンピュータの機能を実現できるような処理速度等の諸機能を備えたCPUであれば実施例に例示したものに限るものではない。
上述した実施形態では、マイクロコンピュータに組み込まれる第二のCPUに比べて、実環境で細かなノイズ対策が施されていないマザーボードの方がノイズ耐性が低いという想定の下で、少なくとも第二のCPUで保護プログラムが実行されるように、異常監視部から第二のCPUにのみリセット信号が出力されるものを説明したが、第一のCPUにもリセット信号が出力されるように構成してもよい。この場合、第一のCPUはリセットの後、共有メモリに格納されたCPU異常発生情報に基づいてホストコンピュータにCPU異常発生情報を送信する用に構成すればよい。
上述した模擬マイクロコンピュータ装置の具体構成は例示に過ぎず、各部の具体的な構成は、本発明の作用効果を奏する限りにおいて、構築するシステムに応じて適宜変更設計することが可能である。
4:異常監視部
10:マザーボード
12:第一のCPU
20:IOボード
21:ファームウェア
22:第二のCPU
23:IO処理部
24:共有メモリ部(FPGA)
30:インタフェースボード
41:第一のウォッチドッグ回路
42:第二のウォッチドッグ回路
43:ゲート回路
10:マザーボード
12:第一のCPU
20:IOボード
21:ファームウェア
22:第二のCPU
23:IO処理部
24:共有メモリ部(FPGA)
30:インタフェースボード
41:第一のウォッチドッグ回路
42:第二のウォッチドッグ回路
43:ゲート回路
Claims (5)
- 制御対象の動作を制御するためのプログラムである第一のプログラムを実行する第一のCPUと、
第一のCPUの周辺リソースとして機能し、前記第一のCPUからの前記制御対象を制御するための信号の出力を制御する第二のプログラムを実行する第二のCPUと、
第一のCPUと第二のCPUの異常を監視し、第一のCPUと第二のCPUの少なくとも一方の異常を検出すると、第二のCPUにリセット信号を出力する異常監視部と、
を備え、
前記リセット信号が入力されると、第二のCPUは前記制御対象が安全な動作を行なうように制御するプログラムである第三のプログラムを実行する模擬マイクロコンピュータ装置。 - 第一のCPUと第二のCPUの間の入出力情報を中継する共有メモリ部を備えたIO処理部を備え、
前記IO処理部は、前記異常監視部から出力されたリセット信号を検出すると、第二のCPUにより前記第三のプログラムが実行されるように制御する請求項1記載の模擬マイクロコンピュータ装置。 - 前記異常監視部は、
第一のCPUから出力されるウォッチドッグパルスを監視する第一のウォッチドッグ回路と、
前記IO処理部に設けられ、第二のCPUから出力されるウォッチドッグパルスを監視する第二のウォッチドッグ回路と、
第一または第二のウォッチドッグ回路の何れかから出力されるリセット信号により第二のCPUにリセット信号を出力するゲート回路と、
第一のウォッチドッグ回路から出力されるリセット信号を前記IO処理部に通知する信号線を備えている請求項2記載の模擬マイクロコンピュータ装置。 - 前記異常監視部が、第一のCPUと第二のCPUの間の入出力情報を中継する共有メモリ部を備えたIO処理部に設けられ、前記IO処理部は、前記異常監視部から出力されたリセット信号を検出すると、第二のCPUにより前記第三のプログラムが実行されるように制御する請求項1記載の模擬マイクロコンピュータ装置。
- ホストコンピュータに接続され、制御対象の動作を制御するアプリケーションプログラムを、マイクロコンピュータを模擬した環境で実行する模擬部と、
前記模擬部によって前記制御対象の制御が行なわれる際のデータが記憶されるメモリ部と、
前記メモリ部の異常を監視し、異常を検出すると、前記模擬部にメモリ異常信号を出力するメモリ監視部と、
前記模擬部の異常を監視し、異常を検出すると、前記模擬部にリセット信号を出力する異常監視部と、
を備え、
前記模擬部は、前記リセット信号が入力されると、前記制御対象が安全な動作を行なうように制御する保護プログラムを実行するとともに、前記ホストコンピュータに制御異常発生情報を送信し、
前記模擬部は、前記メモリ異常信号が入力されると前記ホストコンピュータにデータ異常発生情報を送信する模擬マイクロコンピュータ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007221670A JP2009054041A (ja) | 2007-08-28 | 2007-08-28 | 模擬マイクロコンピュータ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007221670A JP2009054041A (ja) | 2007-08-28 | 2007-08-28 | 模擬マイクロコンピュータ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009054041A true JP2009054041A (ja) | 2009-03-12 |
Family
ID=40505051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007221670A Pending JP2009054041A (ja) | 2007-08-28 | 2007-08-28 | 模擬マイクロコンピュータ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009054041A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010237287A (ja) * | 2009-03-30 | 2010-10-21 | Denso Corp | 車両用表示装置 |
JP2015228077A (ja) * | 2014-05-30 | 2015-12-17 | 株式会社日立情報通信エンジニアリング | マイクロプロセッサ自動復帰システム |
US10585755B2 (en) | 2016-11-29 | 2020-03-10 | Ricoh Company, Ltd. | Electronic apparatus and method for restarting a central processing unit (CPU) in response to detecting an abnormality |
CN112241352A (zh) * | 2020-11-03 | 2021-01-19 | 中国航空工业集团公司西安航空计算技术研究所 | 一种网格化容错计算机平台的监控系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05342060A (ja) * | 1992-06-10 | 1993-12-24 | Nippondenso Co Ltd | Cpuの異常監視装置 |
JPH06131314A (ja) * | 1992-10-22 | 1994-05-13 | Toyota Motor Corp | 中央処理装置の異常監視装置 |
JP2004013626A (ja) * | 2002-06-07 | 2004-01-15 | Fujitsu Ten Ltd | マイコンのロジック開発装置 |
-
2007
- 2007-08-28 JP JP2007221670A patent/JP2009054041A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05342060A (ja) * | 1992-06-10 | 1993-12-24 | Nippondenso Co Ltd | Cpuの異常監視装置 |
JPH06131314A (ja) * | 1992-10-22 | 1994-05-13 | Toyota Motor Corp | 中央処理装置の異常監視装置 |
JP2004013626A (ja) * | 2002-06-07 | 2004-01-15 | Fujitsu Ten Ltd | マイコンのロジック開発装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010237287A (ja) * | 2009-03-30 | 2010-10-21 | Denso Corp | 車両用表示装置 |
JP2015228077A (ja) * | 2014-05-30 | 2015-12-17 | 株式会社日立情報通信エンジニアリング | マイクロプロセッサ自動復帰システム |
US10585755B2 (en) | 2016-11-29 | 2020-03-10 | Ricoh Company, Ltd. | Electronic apparatus and method for restarting a central processing unit (CPU) in response to detecting an abnormality |
CN112241352A (zh) * | 2020-11-03 | 2021-01-19 | 中国航空工业集团公司西安航空计算技术研究所 | 一种网格化容错计算机平台的监控系统 |
CN112241352B (zh) * | 2020-11-03 | 2023-10-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种网格化容错计算机平台的监控系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4476320B2 (ja) | 監視制御回路を有する車載電子制御装置 | |
JP2008009795A (ja) | 診断装置,回線診断方法及び回線診断プログラム | |
US9707908B2 (en) | Driving device | |
JP6133622B2 (ja) | 車両制御装置 | |
CN104281217A (zh) | 微型计算机 | |
JP2009054041A (ja) | 模擬マイクロコンピュータ装置 | |
JP2010128627A (ja) | 車載用電子制御装置 | |
JP2007034910A (ja) | マルチcpuシステム及びスケジューラ | |
JP5094777B2 (ja) | 車載用電子制御装置 | |
JPS5968004A (ja) | 車載用コンピユ−タのフエイルセ−フ方法 | |
JPWO2008099931A1 (ja) | マイクロコンピュータの模擬装置 | |
JP2003285702A (ja) | 車載電子制御装置 | |
KR100636513B1 (ko) | 전자 회로 및 내장형 시스템 | |
JP4573842B2 (ja) | シミュレーション装置 | |
US20040186938A1 (en) | Microcomputer logic development | |
JP3827615B2 (ja) | マイコンのロジック開発装置及び開発方法 | |
JP5575086B2 (ja) | 電子制御装置 | |
JP2010049355A (ja) | 模擬マイクロコンピュータ装置 | |
JP2010244376A (ja) | ソフトウェア開発装置、及び、ソフトウェア開発装置を用いたデバッグ方法 | |
JP2010224971A (ja) | ソフトウェア開発装置、実車試験方法、及びエミュレーション方法 | |
US20140380086A1 (en) | Load driving device | |
JP4935336B2 (ja) | システムバスのインタフェース | |
JP2019030218A (ja) | 人型ロボットなどのサイバーフィジカルシステムにおける物理機能例外処理方式 | |
JP5156440B2 (ja) | マイクロコンピュータの模擬装置 | |
KR101856065B1 (ko) | Obd 테스트 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101110 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110301 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110906 |